From e53727248d665bf956c9568782747457c584ded8 Mon Sep 17 00:00:00 2001 From: lotte Date: Thu, 26 Mar 2020 15:30:41 +0100 Subject: [PATCH] environment.ts script --- Dockerfile | 2 +- README.md | 4 +- angular.json | 45 +---------- e2e/protractor.conf.js | 2 +- package.json | 18 ++++- scripts/set-env.ts | 102 +++++++++++++++++++++++++ src/config/server-config.interface.ts | 47 ++---------- src/environments/environment.common.ts | 25 +++--- src/environments/environment.dev.ts | 5 +- src/environments/environment.prod.ts | 4 +- src/environments/environment.test.ts | 30 ++++---- src/environments/environment.travis.ts | 19 ++--- src/environments/environment.ts | 7 +- tsconfig.ts-node.json | 6 ++ yarn.lock | 74 +++++------------- 15 files changed, 195 insertions(+), 195 deletions(-) create mode 100644 scripts/set-env.ts create mode 100644 tsconfig.ts-node.json diff --git a/Dockerfile b/Dockerfile index 8ac668871e..db9983cace 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ FROM node:12-alpine WORKDIR /app ADD . /app/ -EXPOSE 4200 +EXPOSE 4000 # We run yarn install with an increased network timeout (5min) to avoid "ESOCKETTIMEDOUT" errors from hub.docker.com # See, for example https://github.com/yarnpkg/yarn/issues/5540 diff --git a/README.md b/README.md index a8fdb45b60..890a512e2f 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ import { environment } from '../environment.ts'; Running the app --------------- -After you have installed all dependencies you can now run the app. Run `yarn run start:dev` to start a local server which will watch for changes, rebuild the code, and reload the server for you. You can visit it at `http://localhost:4200`. +After you have installed all dependencies you can now run the app. Run `yarn run start:dev` to start a local server which will watch for changes, rebuild the code, and reload the server for you. You can visit it at `http://localhost:4000`. ### Running in production mode @@ -372,7 +372,7 @@ Frequently asked questions - Where do I write my tests? - You can write your tests next to your component files. e.g. for `src/app/home/home.component.ts` call it `src/app/home/home.component.spec.ts` - How do I start the app when I get `EACCES` and `EADDRINUSE` errors? - - The `EADDRINUSE` error means the port `4000` of `4200` is currently being used and `EACCES` is lack of permission to build files to `./dist/` + - The `EADDRINUSE` error means the port `4000` is currently being used and `EACCES` is lack of permission to build files to `./dist/` - What are the naming conventions for Angular 2? - See [the official angular 2 style guide](https://angular.io/styleguide) - Why is the size of my app larger in development? diff --git a/angular.json b/angular.json index 96bbbc3219..b3fbd82f02 100644 --- a/angular.json +++ b/angular.json @@ -35,22 +35,10 @@ "styles": [ "src/styles.scss" ], - "scripts": [], - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.dev.ts" - } - ] + "scripts": [] }, "configurations": { "production": { - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.prod.ts" - } - ], "optimization": true, "outputHashing": "all", "extractCss": true, @@ -71,28 +59,18 @@ "maximumError": "10kb" } ] - }, - "travis": { - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.travis.ts" - } - ] } } }, "serve": { "builder": "@angular-builders/custom-webpack:dev-server", "options": { - "browserTarget": "dspace-angular-cli:build" + "browserTarget": "dspace-angular-cli:build", + "port": 4000 }, "configurations": { "production": { "browserTarget": "dspace-angular-cli:build:production" - }, - "travis": { - "browserTarget": "dspace-angular-cli:build:travis" } } }, @@ -121,13 +99,7 @@ "styles": [ "src/styles.scss" ], - "scripts": [], - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.test.ts" - } - ] + "scripts": [] } }, "lint": { @@ -152,9 +124,6 @@ "configurations": { "production": { "devServerTarget": "dspace-angular-cli:serve:production" - }, - "travis": { - "devServerTarget": "dspace-angular-cli:serve:travis" } } }, @@ -173,12 +142,6 @@ }, "configurations": { "production": { - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.prod.ts" - } - ], "sourceMap": false, "optimization": { "scripts": false, diff --git a/e2e/protractor.conf.js b/e2e/protractor.conf.js index d407fb0331..1f7806327b 100644 --- a/e2e/protractor.conf.js +++ b/e2e/protractor.conf.js @@ -12,7 +12,7 @@ exports.config = { // Change to 'false' to run tests using a remote Selenium server directConnect: true, // Change if the website to test is not on the localhost - baseUrl: 'http://localhost:4200/', + baseUrl: 'http://localhost:4000/', // ----------------------------------------------------------------- specs: [ './src/**/*.e2e-spec.ts' diff --git a/package.json b/package.json index bf5ec1b141..2f821db00e 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,17 @@ "version": "0.0.0", "scripts": { "ng": "ng", + "config:dev": "ts-node --project ./tsconfig.ts-node.json scripts/set-env.ts --dev", + "config:prod": "ts-node --project ./tsconfig.ts-node.json scripts/set-env.ts --prod", + "config:test": "ts-node --project ./tsconfig.ts-node.json scripts/set-env.ts --test", + "prestart:dev": "yarn run config:dev", + "prestart:prod": "yarn run config:prod", + "prebuild": "yarn run config:dev", + "pretest": "yarn run config:test", + "pretest:headless": "yarn run config:test", + "prebuild:prod": "yarn run config:prod", + "pree2e": "yarn run config:prod", + "pree2e:travis": "yarn run config:travis", "start": "yarn run start:prod", "start:dev": "ng serve", "start:prod": "yarn run build:prod && yarn run serve:ssr", @@ -14,9 +25,10 @@ "test:headless": "node --max_old_space_size=8192 node_modules/@angular/cli/bin/ng test --watch=false --sourceMap=true --browsers=ChromeHeadless --code-coverage", "lint": "ng lint", "e2e": "ng e2e", + "e2e:travis": "ng e2e", "compile:server": "webpack --config webpack.server.config.js --progress --colors", "serve:ssr": "node dist/server", - "ci": "ng lint && yarn run build:prod && yarn test:headless && ng e2e --configuration=travis", + "ci": "ng lint && yarn run build:prod && yarn test:headless && yarn run e2e:travis", "clean:coverage": "rimraf coverage", "clean:dist": "rimraf dist", "clean:doc": "rimraf doc", @@ -65,6 +77,7 @@ "cookie-parser": "1.4.3", "core-js": "^3.6.4", "debug-loader": "^0.0.1", + "deepmerge": "^4.2.2", "express": "4.16.2", "fast-json-patch": "^2.0.7", "file-saver": "^1.3.8", @@ -120,6 +133,7 @@ "css-loader": "3.4.0", "cssnano": "^4.1.10", "deep-freeze": "0.0.1", + "dotenv": "^8.2.0", "fork-ts-checker-webpack-plugin": "^0.4.10", "html-webpack-plugin": "^3.2.0", "jasmine-core": "^3.3.0", @@ -144,7 +158,7 @@ "string-replace-loader": "^2.1.1", "terser-webpack-plugin": "^2.3.1", "ts-loader": "^5.2.0", - "ts-node": "4.1.0", + "ts-node": "^8.8.1", "tslint": "~5.15.0", "typescript": "~3.5.3", "webpack": "^4.0.0", diff --git a/scripts/set-env.ts b/scripts/set-env.ts new file mode 100644 index 0000000000..523d15702b --- /dev/null +++ b/scripts/set-env.ts @@ -0,0 +1,102 @@ +import { writeFile } from 'fs'; +import { environment as commonEnv } from '../src/environments/environment.common'; +import { GlobalConfig } from '../src/config/global-config.interface'; +import { ServerConfig } from '../src/config/server-config.interface'; +import { hasValue } from '../src/app/shared/empty.util'; + +// Configure Angular `environment.ts` file path +const targetPath = './src/environments/environment.ts'; +// Load node modules +const colors = require('colors'); +require('dotenv').config(); +const merge = require('deepmerge'); + +const environment = process.argv[2]; +let environmentFilePath; +switch (environment) { + case '--prod': + case '--production': + environmentFilePath = '../src/environments/environment.prod.ts'; + break; + case '--test': + environmentFilePath = '../src/environments/environment.test.ts'; + break; + default: + environmentFilePath = '../src/environments/environment.dev.ts'; +} + +const processEnv = { + ui: createServerConfig( + process.env.DSPACE_HOST, + process.env.DSPACE_PORT, + process.env.DSPACE_NAMESPACE, + process.env.DSPACE_SSL), + rest: createServerConfig( + process.env.DSPACE_REST_HOST, + process.env.DSPACE_REST_PORT, + process.env.DSPACE_REST_NAMESPACE, + process.env.DSPACE_REST_SSL) +} as GlobalConfig; + +import(environmentFilePath) + .then((file) => generateEnvironmentFile(merge.all(commonEnv, file.environment, processEnv))) + .catch(() => generateEnvironmentFile(merge(commonEnv, processEnv))); + +function generateEnvironmentFile(file: GlobalConfig): void { + buildBaseUrls(file); + const contents = `export const environment = ` + JSON.stringify(file); + console.log(colors.magenta('The file `environment.ts` will be written with the following content: \n')); + console.log(colors.grey(contents)); + writeFile(targetPath, contents, (err) => { + if (err) { + throw console.error(err); + } else { + console.log(colors.magenta(`Angular environment.ts file generated correctly at ${targetPath} \n`)); + } + }); + console.log(file); +} + +// allow to override a few important options by environment variables +function createServerConfig(host?: string, port?: string, nameSpace?: string, ssl?: string): ServerConfig { + const result = { host, nameSpace } as any; + + if (hasValue(port)) { + result.port = Number(port); + } + + if (hasValue(ssl)) { + result.ssl = ssl.trim().match(/^(true|1|yes)$/i) ? true : false; + } + + return result; +} + +function buildBaseUrls(config: GlobalConfig): void { + for (const key in config) { + if (config.hasOwnProperty(key) && config[key].host) { + config[key].baseUrl = [ + getProtocol(config[key].ssl), + getHost(config[key].host), + getPort(config[key].port), + getNameSpace(config[key].nameSpace) + ].join(''); + } + } +} + +function getProtocol(ssl: boolean): string { + return ssl ? 'https://' : 'http://'; +} + +function getHost(host: string): string { + return host; +} + +function getPort(port: number): string { + return port ? (port !== 80 && port !== 443) ? ':' + port : '' : ''; +} + +function getNameSpace(nameSpace: string): string { + return nameSpace ? nameSpace.charAt(0) === '/' ? nameSpace : '/' + nameSpace : ''; +} diff --git a/src/config/server-config.interface.ts b/src/config/server-config.interface.ts index 2234f6d9fb..8797ea3d60 100644 --- a/src/config/server-config.interface.ts +++ b/src/config/server-config.interface.ts @@ -1,46 +1,9 @@ import { Config } from './config.interface'; export class ServerConfig implements Config { - constructor( - public ssl: boolean, - public host: string, - public port: number, - public nameSpace: string) {} - - get baseUrl(): string { - if (this.host) { - return [ - getProtocol(this.ssl), - getHost(this.host), - getPort(this.port), - getNameSpace(this.nameSpace) - ].join(''); - } else { - return ''; - } - } -} - -function getProtocol(ssl: boolean): string { - return ssl ? 'https://' : 'http://'; -} - -function getHost(host: string): string { - return host; -} - -function getPort(port: number): string { - return port ? (port !== 80 && port !== 443) ? ':' + port : '' : ''; -} - -function getNameSpace(nameSpace: string): string { - return nameSpace ? nameSpace.charAt(0) === '/' ? nameSpace : '/' + nameSpace : ''; -} - -function isDefined(value: any): boolean { - return typeof value !== 'undefined' && value !== null; -} - -function isObject(item: any): boolean { - return item && typeof item === 'object' && !Array.isArray(item); + public ssl: boolean; + public host: string; + public port: number; + public nameSpace: string; + public baseUrl?: string; } diff --git a/src/environments/environment.common.ts b/src/environments/environment.common.ts index 94b6c296ab..149ea92a5b 100644 --- a/src/environments/environment.common.ts +++ b/src/environments/environment.common.ts @@ -2,26 +2,25 @@ import { GlobalConfig } from '../config/global-config.interface'; import { NotificationAnimationsType } from '../app/shared/notifications/models/notification-animations-type'; import { BrowseByType } from '../app/+browse-by/+browse-by-switcher/browse-by-decorator'; import { RestRequestMethod } from '../app/core/data/rest-request-method'; -import { ServerConfig } from '../config/server-config.interface'; export const environment: GlobalConfig = { production: true, // Angular Universal server settings. - ui: new ServerConfig( - false, - 'localhost', - 4000, + ui: { + ssl: false, + host: 'localhost', + port: 4000, // NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript - '/', - ), + nameSpace: '/', + }, // The REST API server settings. - rest: new ServerConfig( - true, - 'dspace7.4science.cloud', - 443, + rest: { + ssl: true, + host: 'dspace7.4science.cloud', + port: 443, // NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript - '/server/api', - ), + nameSpace: '/server/api', + }, // Caching settings cache: { // NOTE: how long should objects be cached for by default diff --git a/src/environments/environment.dev.ts b/src/environments/environment.dev.ts index 4a237a7cca..b3de1af50c 100644 --- a/src/environments/environment.dev.ts +++ b/src/environments/environment.dev.ts @@ -1,6 +1,5 @@ -import { environment as defaultEnv } from './environment.common'; import { GlobalConfig } from '../config/global-config.interface'; -export const environment: GlobalConfig = { - ...defaultEnv, +export const environment: Partial = { + production: false }; diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index 9bd439b441..8665b872ee 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -1,6 +1,4 @@ -import { environment as defaultEnv } from './environment.common'; import { GlobalConfig } from '../config/global-config.interface'; -export const environment: GlobalConfig = { - ...defaultEnv, +export const environment: Partial = { }; diff --git a/src/environments/environment.test.ts b/src/environments/environment.test.ts index ce070c70e6..6a0bc37b5d 100644 --- a/src/environments/environment.test.ts +++ b/src/environments/environment.test.ts @@ -1,25 +1,21 @@ // This configuration is currently only being used for unit tests, end-to-end tests use environment.dev.ts -import { environment as defaultEnv } from './environment.common'; import { GlobalConfig } from '../config/global-config.interface'; -import { ServerConfig } from '../config/server-config.interface'; -export const environment: GlobalConfig = { - ...defaultEnv, - - rest: new ServerConfig( - true, - 'rest.com', - 443, +export const environment: Partial = { + rest: { + ssl: true, + host: 'rest.com', + port: 443, // NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript - '/api', - ), - ui: new ServerConfig( - false, - 'dspace.com', - 80, + nameSpace: '/api' + }, + ui: { + ssl: false, + host: 'dspace.com', + port: 80, // NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript - '/angular-dspace', - ), + nameSpace: '/angular-dspace', + }, submission: { autosave: { // NOTE: which metadata trigger an autosave diff --git a/src/environments/environment.travis.ts b/src/environments/environment.travis.ts index cbaf1b9adc..9ba1746ada 100644 --- a/src/environments/environment.travis.ts +++ b/src/environments/environment.travis.ts @@ -1,14 +1,11 @@ -import { environment as defaultEnv } from './environment.common'; import { GlobalConfig } from '../config/global-config.interface'; -import { ServerConfig } from '../config/server-config.interface'; -export const environment: GlobalConfig = { - ...defaultEnv, - rest: new ServerConfig( - false, - 'localhost', - 8080, - // NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript - '/server/api', - ), +export const environment: Partial = { + rest: { + ssl: false, + host: 'localhost', + port: 8080, + // NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript + nameSpace: '/server/api' + } }; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index b6650fe1d8..10767ed7d3 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -1,6 +1 @@ -import { environment as defaultEnv } from './environment.common'; -import { GlobalConfig } from '../config/global-config.interface'; - -export const environment: GlobalConfig = { - ...defaultEnv -}; +export const environment = {"production":true,"ui":{"ssl":false,"port":4000},"rest":{"ssl":true,"port":443},"cache":{"msToLive":{"default":900000},"control":"max-age=60","autoSync":{"defaultTime":0,"maxBufferSize":100,"timePerMethod":{"PATCH":3}}},"form":{"validatorMap":{"required":"required","regex":"pattern"}},"notifications":{"rtl":false,"position":["top","right"],"maxStack":8,"timeOut":5000,"clickToClose":true,"animate":"scale"},"submission":{"autosave":{"metadata":["dc.title","dc.identifier.doi","dc.identifier.pmid","dc.identifier.arxiv"],"timer":5},"icons":{"metadata":[{"name":"dc.author","style":"fas fa-user"},{"name":"default","style":""}],"authority":{"confidence":[{"value":600,"style":"text-success"},{"value":500,"style":"text-info"},{"value":400,"style":"text-warning"},{"value":"default","style":"text-muted"}]}}},"universal":{"preboot":true,"async":true,"time":false},"gaTrackingId":"","logDirectory":".","debug":false,"defaultLanguage":"en","languages":[{"code":"en","label":"English","active":true},{"code":"de","label":"Deutsch","active":true},{"code":"cs","label":"Čeština","active":true},{"code":"nl","label":"Nederlands","active":true},{"code":"pt","label":"Português","active":true}],"browseBy":{"oneYearLimit":10,"fiveYearLimit":30,"defaultLowerLimit":1900,"types":[{"id":"title","type":"title"},{"id":"dateissued","type":"date","metadataField":"dc.date.issued"},{"id":"author","type":"metadata"},{"id":"subject","type":"metadata"}]},"item":{"edit":{"undoTimeout":10000}},"collection":{"edit":{"undoTimeout":10000}},"theme":{"name":"default"}} \ No newline at end of file diff --git a/tsconfig.ts-node.json b/tsconfig.ts-node.json new file mode 100644 index 0000000000..2c7b284162 --- /dev/null +++ b/tsconfig.ts-node.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "commonjs" + } +} diff --git a/yarn.lock b/yarn.lock index fcd1f7e11d..19e34248e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1237,16 +1237,6 @@ resolved "https://registry.yarnpkg.com/@types/stacktrace-js/-/stacktrace-js-0.0.32.tgz#d23e4a36a5073d39487fbea8234cc6186862d389" integrity sha512-SdxmlrHfO0BxgbBP9HZWMUo2rima8lwMjPiWm6S0dyKkDa5CseamktFhXg8umu3TPVBkSlX6ZoB5uUDJK89yvg== -"@types/strip-bom@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" - integrity sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I= - -"@types/strip-json-comments@0.0.30": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" - integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== - "@types/webpack-sources@^0.1.5": version "0.1.6" resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.6.tgz#3d21dfc2ec0ad0c77758e79362426a9ba7d7cbcb" @@ -3328,6 +3318,11 @@ deep-freeze@0.0.1: resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ= +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" @@ -3459,7 +3454,7 @@ di@^0.0.1: resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= -diff@^3.1.0, diff@^3.2.0: +diff@^3.2.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== @@ -3580,6 +3575,11 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" +dotenv@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + duplexer@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" @@ -9268,7 +9268,7 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@^0.5.0, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.12: +source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.12: version "0.5.16" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== @@ -9625,11 +9625,6 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= -strip-json-comments@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - style-loader@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.0.0.tgz#1d5296f9165e8e2c85d24eee0b7caf9ec8ca1f82" @@ -9926,22 +9921,6 @@ ts-loader@^5.2.0: micromatch "^3.1.4" semver "^5.0.1" -ts-node@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-4.1.0.tgz#36d9529c7b90bb993306c408cd07f7743de20712" - integrity sha512-xcZH12oVg9PShKhy3UHyDmuDLV3y7iKwX25aMVPt1SIXSuAfWkFiGPEkg+th8R4YKW/QCxDoW7lJdb15lx6QWg== - dependencies: - arrify "^1.0.0" - chalk "^2.3.0" - diff "^3.1.0" - make-error "^1.1.1" - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map-support "^0.5.0" - tsconfig "^7.0.0" - v8flags "^3.0.0" - yn "^2.0.0" - ts-node@^8.5.2: version "8.6.2" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.6.2.tgz#7419a01391a818fbafa6f826a33c1a13e9464e35" @@ -9953,15 +9932,16 @@ ts-node@^8.5.2: source-map-support "^0.5.6" yn "3.1.1" -tsconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" - integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== +ts-node@^8.8.1: + version "8.8.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.8.1.tgz#7c4d3e9ed33aa703b64b28d7f9d194768be5064d" + integrity sha512-10DE9ONho06QORKAaCBpPiFCdW+tZJuY/84tyypGtl6r+/C7Asq0dhqbRZURuUlLQtZxxDvT8eoj8cGW0ha6Bg== dependencies: - "@types/strip-bom" "^3.0.0" - "@types/strip-json-comments" "0.0.30" - strip-bom "^3.0.0" - strip-json-comments "^2.0.0" + arg "^4.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.6" + yn "3.1.1" tslib@1.10.0: version "1.10.0" @@ -10274,13 +10254,6 @@ v8-compile-cache@2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== -v8flags@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.1.3.tgz#fc9dc23521ca20c5433f81cc4eb9b3033bb105d8" - integrity sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w== - dependencies: - homedir-polyfill "^1.0.1" - validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -10784,11 +10757,6 @@ yn@3.1.1: resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== -yn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" - integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo= - zone.js@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.9.1.tgz#e37c6e5c54c13fae4de26b5ffe8d8e9212da6d9b"