@trackunit/iris-app 0.0.196 → 0.0.199
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/package.json +17 -17
- package/src/executors/build/executor.js +1 -1
- package/src/executors/build/executor.js.map +1 -1
- package/src/executors/publish/executor.js +1 -1
- package/src/executors/publish/executor.js.map +1 -1
- package/src/executors/serve/executor.js +1 -1
- package/src/executors/serve/executor.js.map +1 -1
- package/src/executors/utils/checkPackageVersion.d.ts +5 -5
- package/src/executors/utils/checkPackageVersion.js +21 -13
- package/src/executors/utils/checkPackageVersion.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [0.0.199](https://github.com/Trackunit/manager/compare/iris-app/0.0.198...iris-app/0.0.199) (2023-04-11)
|
|
6
|
+
|
|
7
|
+
## [0.0.198](https://github.com/Trackunit/manager/compare/iris-app/0.0.197...iris-app/0.0.198) (2023-04-11)
|
|
8
|
+
|
|
9
|
+
### Dependency Updates
|
|
10
|
+
|
|
11
|
+
* `iris-app-build-utilities` updated to version `0.0.107`
|
|
12
|
+
* `iris-app-api` updated to version `0.0.84`
|
|
13
|
+
* `iris-app-webpack-plugin` updated to version `0.0.94`
|
|
14
|
+
## [0.0.197](https://github.com/Trackunit/manager/compare/iris-app/0.0.196...iris-app/0.0.197) (2023-04-11)
|
|
15
|
+
|
|
16
|
+
### Dependency Updates
|
|
17
|
+
|
|
18
|
+
* `iris-app-build-utilities` updated to version `0.0.106`
|
|
19
|
+
* `iris-app-api` updated to version `0.0.83`
|
|
20
|
+
* `iris-app-webpack-plugin` updated to version `0.0.93`
|
|
5
21
|
## [0.0.196](https://github.com/Trackunit/manager/compare/iris-app/0.0.195...iris-app/0.0.196) (2023-04-11)
|
|
6
22
|
|
|
7
23
|
### Dependency Updates
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trackunit/iris-app",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.199",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"generators": "./generators.json",
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
"react-dom": "18.2.0",
|
|
13
13
|
"echarts": "^5.4.0",
|
|
14
14
|
"penpal": "^6.2.2",
|
|
15
|
-
"@trackunit/iris-app-build-utilities": "0.0.
|
|
15
|
+
"@trackunit/iris-app-build-utilities": "0.0.107",
|
|
16
16
|
"tsconfig-paths": "3.14.1",
|
|
17
|
-
"@trackunit/iris-app-api": "0.0.
|
|
18
|
-
"@trackunit/css-components": "0.0.
|
|
19
|
-
"@trackunit/css-core": "0.0.
|
|
20
|
-
"@trackunit/ui-design-tokens": "0.0.
|
|
21
|
-
"@trackunit/tailwind-styled-components": "0.0.
|
|
17
|
+
"@trackunit/iris-app-api": "0.0.84",
|
|
18
|
+
"@trackunit/css-components": "0.0.309",
|
|
19
|
+
"@trackunit/css-core": "0.0.78",
|
|
20
|
+
"@trackunit/ui-design-tokens": "0.0.64",
|
|
21
|
+
"@trackunit/tailwind-styled-components": "0.0.55",
|
|
22
22
|
"react-use": "17.4.0",
|
|
23
23
|
"uuid": "8.3.2",
|
|
24
24
|
"date-fns": "2.29.3",
|
|
@@ -41,22 +41,22 @@
|
|
|
41
41
|
"@react-spring/web": "9.6.0",
|
|
42
42
|
"moment-timezone": "0.5.39",
|
|
43
43
|
"react-i18next": "12.1.1",
|
|
44
|
-
"@trackunit/react-core-contexts-test": "0.1.
|
|
44
|
+
"@trackunit/react-core-contexts-test": "0.1.43",
|
|
45
45
|
"@apollo/client": "3.7.10",
|
|
46
|
-
"@trackunit/react-core-contexts-api": "0.2.
|
|
47
|
-
"@trackunit/react-core-hooks": "0.2.
|
|
48
|
-
"@trackunit/iris-app-runtime-core": "0.3.
|
|
49
|
-
"@trackunit/iris-app-runtime-core-api": "0.3.
|
|
46
|
+
"@trackunit/react-core-contexts-api": "0.2.23",
|
|
47
|
+
"@trackunit/react-core-hooks": "0.2.39",
|
|
48
|
+
"@trackunit/iris-app-runtime-core": "0.3.26",
|
|
49
|
+
"@trackunit/iris-app-runtime-core-api": "0.3.24",
|
|
50
50
|
"graphql": "15.8.0",
|
|
51
|
-
"@trackunit/i18n-library-translation": "0.0.
|
|
51
|
+
"@trackunit/i18n-library-translation": "0.0.37",
|
|
52
52
|
"i18next": "21.10.0",
|
|
53
53
|
"i18next-browser-languagedetector": "6.1.8",
|
|
54
54
|
"i18next-resources-to-backend": "1.1.0",
|
|
55
55
|
"@sentry/browser": "7.24.2",
|
|
56
|
-
"@trackunit/css-tailwind": "0.0.
|
|
57
|
-
"@trackunit/css-component-tokens": "0.0.
|
|
56
|
+
"@trackunit/css-tailwind": "0.0.47",
|
|
57
|
+
"@trackunit/css-component-tokens": "0.0.24",
|
|
58
58
|
"csstype": "3.1.1",
|
|
59
|
-
"@trackunit/css-tailwind-custom-properties-plugin": "0.0.
|
|
59
|
+
"@trackunit/css-tailwind-custom-properties-plugin": "0.0.16",
|
|
60
60
|
"get-port": "5.1.1",
|
|
61
61
|
"node-fetch": "2.6.8",
|
|
62
62
|
"rxjs": "7.6.0",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"open": "8.4.0",
|
|
65
65
|
"pacote": "13.6.2",
|
|
66
66
|
"semver": "7.3.8",
|
|
67
|
-
"@trackunit/iris-app-webpack-plugin": "0.0.
|
|
67
|
+
"@trackunit/iris-app-webpack-plugin": "0.0.94",
|
|
68
68
|
"csp-header": "5.1.0",
|
|
69
69
|
"enquirer": "2.3.6",
|
|
70
70
|
"tslib": "2.4.1"
|
|
@@ -26,7 +26,7 @@ const deleteOutputDir = (root, outputPath) => {
|
|
|
26
26
|
* @yields {NodeBuildEvent} the build event
|
|
27
27
|
*/
|
|
28
28
|
async function* default_1(options, context) {
|
|
29
|
-
await (0, checkPackageVersion_1.checkPackageVersion)();
|
|
29
|
+
await (0, checkPackageVersion_1.checkPackageVersion)(false);
|
|
30
30
|
if (!context.workspace) {
|
|
31
31
|
throw new Error("context workspace is required");
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../../libs/iris-app-sdk/iris-app/src/executors/build/executor.ts"],"names":[],"mappings":";;;;AAEA,0EAAsE;AACtE,kFAAyE;AACzE,2BAA4B;AAC5B,+BAAqC;AAErC,2DAAqC;AAErC,8BAA4B;AAC5B,sEAAmE;AACnE,wEAAiE;AAEjE,uCAAyC;AAOzC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,UAAkB,EAAE,EAAE;IAC3D,MAAM,kBAAkB,GAAG,IAAA,cAAO,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACrD,IAAI,kBAAkB,KAAK,IAAI,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;KACpE;IACD,IAAA,WAAM,EAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF;;;;;;GAMG;AACY,KAAK,SAAS,CAAC,WAAE,OAA4B,EAAE,OAAwB;IACpF,MAAM,IAAA,yCAAmB,
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../../libs/iris-app-sdk/iris-app/src/executors/build/executor.ts"],"names":[],"mappings":";;;;AAEA,0EAAsE;AACtE,kFAAyE;AACzE,2BAA4B;AAC5B,+BAAqC;AAErC,2DAAqC;AAErC,8BAA4B;AAC5B,sEAAmE;AACnE,wEAAiE;AAEjE,uCAAyC;AAOzC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,UAAkB,EAAE,EAAE;IAC3D,MAAM,kBAAkB,GAAG,IAAA,cAAO,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACrD,IAAI,kBAAkB,KAAK,IAAI,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;KACpE;IACD,IAAA,WAAM,EAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF;;;;;;GAMG;AACY,KAAK,SAAS,CAAC,WAAE,OAA4B,EAAE,OAAwB;IACpF,MAAM,IAAA,yCAAmB,EAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;IACD,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,QAAS,CAAC,OAAO,CAAC,WAAY,CAAC,CAAC,IAAI,CAAC,CAAC;IAClG,MAAM,gBAAgB,GAAG,IAAA,WAAI,EAC3B,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAY,CAAC,CAAC,IAAI,EACrD,sBAAsB,CACvB,CAAC;IACF,IAAA,6CAAkB,EAAC;QACjB,cAAc;KACf,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;KACrD;IACD,MAAM,eAAe,GAAG,CAAC,YAAa,gBAAgB,kEAAC,CAAC,CAAC,OAAO,CAAC;IACjE,MAAM,aAAa,GAAG,IAAA,uCAAgB,EAAC,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;IACpG,MAAM,gBAAgB,GAAG,YAAa,OAAO,CAAC,aAAa,kEAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7D,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,IAAA,sBAAY,EAAC,MAAM,CAAC,CAAC,IAAI,CAC1C,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACb,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,EACF,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACb,OAAO;YACL,OAAO,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE;YAC3B,OAAO,EAAE,IAAA,cAAO,EAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC;SACjC,CAAC;IACtB,CAAC,CAAC,CACH,CAAC;IACF,OAAO,KAAK,CAAC,CAAC,IAAA,8BAAa,EAAC,UAAwC,CAAC,CAAC;AACxE,CAAC;AApCD,4BAoCC","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ExecutorContext } from \"@nrwl/devkit\";\nimport { eachValueFrom } from \"@nrwl/devkit/src/utils/rxjs-for-await\";\nimport { enableTsConfigPath } from \"@trackunit/iris-app-build-utilities\";\nimport { rmSync } from \"fs\";\nimport { join, resolve } from \"path\";\nimport { Observable } from \"rxjs\";\nimport * as op from \"rxjs/operators\";\n\nimport \"webpack-dev-server\";\nimport { checkPackageVersion } from \"../utils/checkPackageVersion\";\nimport { getDefaultConfig } from \"../utils/defaultWebpackConfig\";\nimport { BuildExecutorSchema } from \"./schema\";\nimport { doRunWebpack } from \"./webpack\";\n\nexport type NodeBuildEvent = {\n outfile: string;\n success: boolean;\n};\n\nconst deleteOutputDir = (root: string, outputPath: string) => {\n const resolvedOutputPath = resolve(root, outputPath);\n if (resolvedOutputPath === root) {\n throw new Error(\"Output path MUST not be project root directory!\");\n }\n rmSync(resolvedOutputPath, { recursive: true, force: true });\n};\n\n/**\n * Build executor for building iris apps.\n *\n * @param {BuildExecutorSchema} options build executor options for this nx executor\n * @param {ExecutorContext} context build executor context for this nx executor\n * @yields {NodeBuildEvent} the build event\n */\nexport default async function* (options: BuildExecutorSchema, context: ExecutorContext) {\n await checkPackageVersion(false);\n if (!context.workspace) {\n throw new Error(\"context workspace is required\");\n }\n const projectRootDir = join(context.root, context.workspace.projects![context.projectName!].root);\n const tileManifestPath = join(\n context.root,\n context.workspace.projects[context.projectName!].root,\n \"iris-app-manifest.ts\"\n );\n enableTsConfigPath({\n projectRootDir,\n });\n if (!options.webpackConfig) {\n throw new Error(\"option.webpackConfig is required\");\n }\n const IrisAppManifest = (await import(tileManifestPath)).default;\n const defaultConfig = getDefaultConfig(\"production\", context.root, projectRootDir, IrisAppManifest);\n const customConfigFile = await import(options.webpackConfig);\n\n const config = await customConfigFile.default(defaultConfig);\n deleteOutputDir(context.root, options.outputPath);\n const observable = doRunWebpack(config).pipe(\n op.tap(stats => {\n // eslint-disable-next-line no-console\n console.info(stats.toString(config.stats));\n }),\n op.map(stats => {\n return {\n success: !stats.hasErrors(),\n outfile: resolve(context.root, options.outputPath),\n } as NodeBuildEvent;\n })\n );\n return yield* eachValueFrom(observable as unknown as Observable<any>);\n}\n"]}
|
|
@@ -56,7 +56,7 @@ function getSettings() {
|
|
|
56
56
|
* @returns {Promise<{ success: boolean }>} The result of the publish.
|
|
57
57
|
*/
|
|
58
58
|
async function runExecutor(options) {
|
|
59
|
-
await (0, checkPackageVersion_1.checkPackageVersion)();
|
|
59
|
+
await (0, checkPackageVersion_1.checkPackageVersion)(true);
|
|
60
60
|
const settings = getSettings();
|
|
61
61
|
const env = process.env.TU_ENV?.toUpperCase() ?? "DEV";
|
|
62
62
|
const clientId = process.env[`TU_CLIENT_ID_${env}`];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../../libs/iris-app-sdk/iris-app/src/executors/publish/executor.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-console */\nimport * as libpub from \"libnpmpublish\";\nimport fetch, { Headers } from \"node-fetch\";\nimport * as open from \"open\";\nimport * as pacote from \"pacote\";\nimport { URL, URLSearchParams } from \"url\";\nimport { checkPackageVersion } from \"../utils/checkPackageVersion\";\nimport { PublishExecutorSchema } from \"./schema\";\n\ninterface PackageJson {\n name: string;\n version: string;\n scripts?: Record<string, string>;\n type?: \"module\" | \"commonjs\";\n main?: string;\n types?: string;\n module?: string;\n exports?: Record<\n string,\n {\n types?: string;\n require?: string;\n import?: string;\n }\n >;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n peerDependencies?: Record<string, string>;\n}\n\ninterface OktaError {\n error: string;\n error_description: string;\n}\n\ninterface AuthorizeDataSuccess {\n device_code: string;\n user_code: string;\n verification_uri: string;\n verification_uri_complete: string;\n expires_in: number;\n interval: number;\n}\n\ntype AuthorizeData = AuthorizeDataSuccess | OktaError;\n\ninterface TokenDataSuccess {\n token_type: string;\n expires_in: number;\n access_token: string;\n scope: string;\n id_token: string;\n}\n\ntype TokenData = TokenDataSuccess | OktaError;\n\ntype PublishError = Error & { code?: string; headers?: { [key: string]: string } };\n\ninterface Settings {\n approvalUrl: URL;\n repoUrl: URL;\n clientId: string;\n authorizationServerBaseUrl: string;\n}\n\nclass NpmConflictError extends Error {}\n\nclass NpmGeneralError extends Error {}\n\nclass ApproveError extends Error {}\n\nfunction sleep(time: number) {\n return new Promise(resolve => setTimeout(resolve, time));\n}\n\nfunction getSettings(): Settings {\n const env = process.env.TU_ENV?.toLowerCase() ?? \"dev\";\n let baseUrl: URL;\n switch (env) {\n case \"prod\":\n baseUrl = new URL(process.env.BASE_URL ?? \"https://apps.iris.trackunit.com/\");\n return {\n approvalUrl: new URL(\"approve/\", baseUrl),\n repoUrl: new URL(\"repo/\", baseUrl),\n clientId: \"0oamfeklvodROR2ul357\",\n authorizationServerBaseUrl: \"https://trackunit-portal.okta.com/oauth2/aus2u3jix1dWU7fwt356\",\n };\n case \"stage\":\n baseUrl = new URL(process.env.BASE_URL ?? \"https://apps.stage.iris.trackunit.com/\");\n return {\n approvalUrl: new URL(\"approve/\", baseUrl),\n repoUrl: new URL(\"repo/\", baseUrl),\n clientId: \"0oa1q2vmx21NcFLOs0h8\",\n authorizationServerBaseUrl: \"https://trackunit-portal-stage.okta.com/oauth2/aus1owd7wny5YVsU00h8\",\n };\n case \"dev\":\n baseUrl = new URL(process.env.BASE_URL ?? \"https://apps.dev.iris.trackunit.com/\");\n return {\n approvalUrl: new URL(\"approve/\", baseUrl),\n repoUrl: new URL(\"repo/\", baseUrl),\n clientId: \"0oamebigau4RkaqZ6357\",\n authorizationServerBaseUrl: \"https://trackunit-portal-dev.okta.com/oauth2/ausj7eh9zeiFhLk4m357\",\n };\n default:\n throw new Error(`Unknown environment: ${env}`);\n }\n}\n\n/**\n * Publish the package to the npm registry.\n *\n * @param {PublishExecutorSchema} options The options provided to the executor.\n * @returns {Promise<{ success: boolean }>} The result of the publish.\n */\nexport default async function runExecutor(options: PublishExecutorSchema) {\n await checkPackageVersion();\n const settings = getSettings();\n\n const env = process.env.TU_ENV?.toUpperCase() ?? \"DEV\";\n const clientId = process.env[`TU_CLIENT_ID_${env}`];\n const clientSecret = process.env[`TU_CLIENT_SECRET_${env}`];\n\n let useAccessToken = false;\n let tokenData: TokenData | null = null;\n if (process.env.TU_TOKEN) {\n tokenData = {\n token_type: \"Bearer\",\n id_token: process.env.TU_TOKEN,\n access_token: process.env.TU_TOKEN,\n expires_in: 0,\n scope: \"unknown\",\n };\n } else if (clientId !== undefined) {\n if (clientId === undefined || clientId.trim() === \"\") {\n console.error(`❌ Missing environment value: TU_CLIENT_ID_${env}`);\n return { success: false };\n }\n if (clientSecret === undefined || clientSecret.trim() === \"\") {\n console.error(`❌ Missing environment value: TU_CLIENT_SECRET_${env}`);\n return { success: false };\n }\n const tokenParams = new URLSearchParams();\n tokenParams.append(\"client_id\", clientId);\n tokenParams.append(\"client_secret\", clientSecret);\n tokenParams.append(\"grant_type\", \"client_credentials\");\n tokenParams.append(\"scope\", \"iris_app_sdk.publish_for_all_accounts iris_app_sdk.approve\");\n const tokenResponse = await fetch(`${settings.authorizationServerBaseUrl}/v1/token`, {\n method: \"POST\",\n body: tokenParams,\n });\n tokenData = (await tokenResponse.json()) as TokenData;\n useAccessToken = true;\n } else {\n const authorizeParams = new URLSearchParams();\n authorizeParams.append(\"client_id\", settings.clientId);\n authorizeParams.append(\"scope\", \"openid profile fms\");\n const authorizeResponse = await fetch(`${settings.authorizationServerBaseUrl}/v1/device/authorize`, {\n method: \"POST\",\n body: authorizeParams,\n });\n const authorizeData = (await authorizeResponse.json()) as AuthorizeData;\n\n if (\"error\" in authorizeData) {\n console.error(`❌ Error occurred: ${authorizeData.error} ${authorizeData.error_description}`);\n return { success: false };\n } else if (!authorizeData.verification_uri_complete) {\n console.error(`❌ Missing verification URI: ${JSON.stringify(authorizeData)}`);\n return { success: false };\n }\n\n console.log(\n `🔐 Attempting to automatically open the Trackunit authentication page in your default browser...\\n If the browser does not open or you wish to use a different device to authorize this request, open the following URL:\\n\\n ${authorizeData.verification_uri_complete}`\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n await ((open as any).default ? (open as any).default : open)(authorizeData.verification_uri_complete);\n\n console.log(\"\\n⏳ Waiting for authentication in the browser...\");\n do {\n await sleep(authorizeData.interval * 1000);\n if (tokenData && \"error\" in tokenData && tokenData.error === \"slow_down\") {\n await sleep(10000);\n }\n const tokenParams = new URLSearchParams();\n tokenParams.append(\"client_id\", settings.clientId);\n tokenParams.append(\"grant_type\", \"urn:ietf:params:oauth:grant-type:device_code\");\n tokenParams.append(\"device_code\", authorizeData.device_code);\n const tokenResponse = await fetch(`${settings.authorizationServerBaseUrl}/v1/token`, {\n method: \"POST\",\n body: tokenParams,\n });\n tokenData = (await tokenResponse.json()) as TokenData;\n } while (\n !(\"id_token\" in tokenData) &&\n !(\"error\" in tokenData && tokenData.error !== \"authorization_pending\" && tokenData.error !== \"slow_down\")\n );\n }\n\n if (\"access_token\" in tokenData) {\n console.log(\"🥳 Successfully authenticated.\");\n\n const manifest = (await pacote.manifest(options.inputPath)) as PackageJson;\n const tarData = await pacote.tarball(options.inputPath);\n\n return await doUploadAppWithRetry(tokenData, useAccessToken, manifest, tarData, settings, 3);\n } else if (\"error\" in tokenData) {\n if (tokenData.error === \"expired_token\") {\n console.error(\"⌛️ Authentication attempt expired\");\n return { success: false };\n } else {\n console.error(`❌ Error occurred: ${tokenData.error} ${tokenData.error_description}`);\n return { success: false };\n }\n } else {\n console.error(\"❌ Unknown error occurred\");\n return { success: false };\n }\n}\n\nasync function doUploadAppWithRetry(\n tokenData: TokenDataSuccess,\n useAccessToken: boolean,\n manifest: PackageJson,\n tarData: Buffer & pacote.FetchResult,\n settings: Settings,\n retryCount: number\n): Promise<{ success: boolean }> {\n try {\n return await doUploadApp(tokenData, useAccessToken, manifest, tarData, settings);\n } catch (e) {\n if (e instanceof NpmConflictError) {\n console.error(\"❌ Unable to ship app package. Cannot publish over existing version.\");\n return { success: false };\n } else {\n if (retryCount > 1) {\n console.error(\"⚠️ Unable to ship app package. Got error from Iris App SDK repository. Retrying publish...\", e);\n await sleep(5000);\n return await doUploadAppWithRetry(tokenData, useAccessToken, manifest, tarData, settings, retryCount - 1);\n } else {\n console.error(\"❌ Unable to ship app package. Got error from Iris App SDK repository.\", e);\n return { success: false };\n }\n }\n }\n}\n\nasync function doUploadApp(\n tokenData: TokenDataSuccess,\n useAccessToken: boolean,\n manifest: PackageJson,\n tarData: Buffer & pacote.FetchResult,\n settings: Settings\n): Promise<{ success: boolean }> {\n const npmFetchOptions: { registry?: string } = {};\n npmFetchOptions.registry = settings.repoUrl.toString();\n const repoHostAndPort = settings.repoUrl.hostname + (settings.repoUrl.port ? \":\" + settings.repoUrl.port : \"\");\n npmFetchOptions[`//${repoHostAndPort}${settings.repoUrl.pathname}:_authToken`] = useAccessToken\n ? tokenData.access_token\n : tokenData.id_token;\n npmFetchOptions[`//${repoHostAndPort}${settings.repoUrl.pathname}/repo/:always-auth`] = true;\n\n console.log(\"🚢 Shipping the app package...\");\n const publishResult = await libpub.publish(manifest, tarData, npmFetchOptions).catch((err: PublishError) => {\n if (err.code === \"EPUBLISHCONFLICT\") {\n return {\n ok: false,\n publishConflict: true,\n };\n } else {\n return {\n ok: false,\n headers: new Headers(err.headers),\n statusText: `Error`,\n text: () => Promise.resolve(`${err.name} ${err.message}`),\n };\n }\n });\n\n const warningsText = publishResult.headers?.get(\"TU-TILE-WARNINGS\");\n if (warningsText) {\n console.log(\"⚠️ \" + decodeURI(warningsText));\n }\n\n if (publishResult.ok) {\n console.log(`🚀 Uploaded the app package version ${manifest.version}`);\n\n return await doApproveAppWithRetry(\n useAccessToken ? tokenData.access_token : tokenData.id_token,\n manifest,\n settings,\n 3\n );\n } else if (\"publishConflict\" in publishResult) {\n if (process.env.SKIP_EXISTING === \"true\") {\n console.log(`⏩ Skipped publishing ${manifest.version} because the version is already published`);\n return await doApproveAppWithRetry(\n useAccessToken ? tokenData.access_token : tokenData.id_token,\n manifest,\n settings,\n 3\n );\n } else {\n throw new NpmConflictError();\n }\n } else {\n throw new NpmGeneralError(\n publishResult.statusText +\n \" \" +\n (await publishResult.text()) +\n \". Trace ID: \" +\n publishResult.headers.get(\"trace-id\")\n );\n }\n}\n\nasync function doApproveAppWithRetry(\n token: string,\n manifest: PackageJson,\n settings: Settings,\n retryCount: number\n): Promise<{ success: boolean }> {\n try {\n return await doApproveApp(token, manifest, settings);\n } catch (e) {\n if (e instanceof ApproveError) {\n if (retryCount > 1) {\n console.error(\n \"⚠️ Unable to approve app package. Got approve error from Iris App SDK repository. Retrying approve...\",\n e\n );\n await sleep(5000);\n return await doApproveAppWithRetry(token, manifest, settings, retryCount - 1);\n } else {\n console.error(\"❌ Unable to approve app package. Got approve error from Iris App SDK repository.\", e);\n return { success: false };\n }\n } else {\n console.error(\"❌ Unable to approve app package. Got error from Iris App SDK repository.\", e);\n return { success: false };\n }\n }\n}\n\nasync function doApproveApp(token: string, manifest: PackageJson, settings: Settings) {\n if (process.env.TU_APPROVE === \"true\") {\n console.log(`🖋️ Approving the app...`);\n const approveResult = await fetch(new URL(`${manifest.name}@${manifest.version}`, settings.approvalUrl), {\n method: \"PUT\",\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n if (approveResult.ok) {\n console.log(`✅ Approved version ${manifest.version} of ${manifest.name}.`);\n return { success: true };\n } else {\n throw new ApproveError(\n `${approveResult.statusText}, ${await approveResult.text()}, Trace ID: ${approveResult.headers.get(\"trace-id\")}`\n );\n }\n } else {\n return { success: true };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../../libs/iris-app-sdk/iris-app/src/executors/publish/executor.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-console */\nimport * as libpub from \"libnpmpublish\";\nimport fetch, { Headers } from \"node-fetch\";\nimport * as open from \"open\";\nimport * as pacote from \"pacote\";\nimport { URL, URLSearchParams } from \"url\";\nimport { checkPackageVersion } from \"../utils/checkPackageVersion\";\nimport { PublishExecutorSchema } from \"./schema\";\n\ninterface PackageJson {\n name: string;\n version: string;\n scripts?: Record<string, string>;\n type?: \"module\" | \"commonjs\";\n main?: string;\n types?: string;\n module?: string;\n exports?: Record<\n string,\n {\n types?: string;\n require?: string;\n import?: string;\n }\n >;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n peerDependencies?: Record<string, string>;\n}\n\ninterface OktaError {\n error: string;\n error_description: string;\n}\n\ninterface AuthorizeDataSuccess {\n device_code: string;\n user_code: string;\n verification_uri: string;\n verification_uri_complete: string;\n expires_in: number;\n interval: number;\n}\n\ntype AuthorizeData = AuthorizeDataSuccess | OktaError;\n\ninterface TokenDataSuccess {\n token_type: string;\n expires_in: number;\n access_token: string;\n scope: string;\n id_token: string;\n}\n\ntype TokenData = TokenDataSuccess | OktaError;\n\ntype PublishError = Error & { code?: string; headers?: { [key: string]: string } };\n\ninterface Settings {\n approvalUrl: URL;\n repoUrl: URL;\n clientId: string;\n authorizationServerBaseUrl: string;\n}\n\nclass NpmConflictError extends Error {}\n\nclass NpmGeneralError extends Error {}\n\nclass ApproveError extends Error {}\n\nfunction sleep(time: number) {\n return new Promise(resolve => setTimeout(resolve, time));\n}\n\nfunction getSettings(): Settings {\n const env = process.env.TU_ENV?.toLowerCase() ?? \"dev\";\n let baseUrl: URL;\n switch (env) {\n case \"prod\":\n baseUrl = new URL(process.env.BASE_URL ?? \"https://apps.iris.trackunit.com/\");\n return {\n approvalUrl: new URL(\"approve/\", baseUrl),\n repoUrl: new URL(\"repo/\", baseUrl),\n clientId: \"0oamfeklvodROR2ul357\",\n authorizationServerBaseUrl: \"https://trackunit-portal.okta.com/oauth2/aus2u3jix1dWU7fwt356\",\n };\n case \"stage\":\n baseUrl = new URL(process.env.BASE_URL ?? \"https://apps.stage.iris.trackunit.com/\");\n return {\n approvalUrl: new URL(\"approve/\", baseUrl),\n repoUrl: new URL(\"repo/\", baseUrl),\n clientId: \"0oa1q2vmx21NcFLOs0h8\",\n authorizationServerBaseUrl: \"https://trackunit-portal-stage.okta.com/oauth2/aus1owd7wny5YVsU00h8\",\n };\n case \"dev\":\n baseUrl = new URL(process.env.BASE_URL ?? \"https://apps.dev.iris.trackunit.com/\");\n return {\n approvalUrl: new URL(\"approve/\", baseUrl),\n repoUrl: new URL(\"repo/\", baseUrl),\n clientId: \"0oamebigau4RkaqZ6357\",\n authorizationServerBaseUrl: \"https://trackunit-portal-dev.okta.com/oauth2/ausj7eh9zeiFhLk4m357\",\n };\n default:\n throw new Error(`Unknown environment: ${env}`);\n }\n}\n\n/**\n * Publish the package to the npm registry.\n *\n * @param {PublishExecutorSchema} options The options provided to the executor.\n * @returns {Promise<{ success: boolean }>} The result of the publish.\n */\nexport default async function runExecutor(options: PublishExecutorSchema) {\n await checkPackageVersion(true);\n const settings = getSettings();\n\n const env = process.env.TU_ENV?.toUpperCase() ?? \"DEV\";\n const clientId = process.env[`TU_CLIENT_ID_${env}`];\n const clientSecret = process.env[`TU_CLIENT_SECRET_${env}`];\n\n let useAccessToken = false;\n let tokenData: TokenData | null = null;\n if (process.env.TU_TOKEN) {\n tokenData = {\n token_type: \"Bearer\",\n id_token: process.env.TU_TOKEN,\n access_token: process.env.TU_TOKEN,\n expires_in: 0,\n scope: \"unknown\",\n };\n } else if (clientId !== undefined) {\n if (clientId === undefined || clientId.trim() === \"\") {\n console.error(`❌ Missing environment value: TU_CLIENT_ID_${env}`);\n return { success: false };\n }\n if (clientSecret === undefined || clientSecret.trim() === \"\") {\n console.error(`❌ Missing environment value: TU_CLIENT_SECRET_${env}`);\n return { success: false };\n }\n const tokenParams = new URLSearchParams();\n tokenParams.append(\"client_id\", clientId);\n tokenParams.append(\"client_secret\", clientSecret);\n tokenParams.append(\"grant_type\", \"client_credentials\");\n tokenParams.append(\"scope\", \"iris_app_sdk.publish_for_all_accounts iris_app_sdk.approve\");\n const tokenResponse = await fetch(`${settings.authorizationServerBaseUrl}/v1/token`, {\n method: \"POST\",\n body: tokenParams,\n });\n tokenData = (await tokenResponse.json()) as TokenData;\n useAccessToken = true;\n } else {\n const authorizeParams = new URLSearchParams();\n authorizeParams.append(\"client_id\", settings.clientId);\n authorizeParams.append(\"scope\", \"openid profile fms\");\n const authorizeResponse = await fetch(`${settings.authorizationServerBaseUrl}/v1/device/authorize`, {\n method: \"POST\",\n body: authorizeParams,\n });\n const authorizeData = (await authorizeResponse.json()) as AuthorizeData;\n\n if (\"error\" in authorizeData) {\n console.error(`❌ Error occurred: ${authorizeData.error} ${authorizeData.error_description}`);\n return { success: false };\n } else if (!authorizeData.verification_uri_complete) {\n console.error(`❌ Missing verification URI: ${JSON.stringify(authorizeData)}`);\n return { success: false };\n }\n\n console.log(\n `🔐 Attempting to automatically open the Trackunit authentication page in your default browser...\\n If the browser does not open or you wish to use a different device to authorize this request, open the following URL:\\n\\n ${authorizeData.verification_uri_complete}`\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n await ((open as any).default ? (open as any).default : open)(authorizeData.verification_uri_complete);\n\n console.log(\"\\n⏳ Waiting for authentication in the browser...\");\n do {\n await sleep(authorizeData.interval * 1000);\n if (tokenData && \"error\" in tokenData && tokenData.error === \"slow_down\") {\n await sleep(10000);\n }\n const tokenParams = new URLSearchParams();\n tokenParams.append(\"client_id\", settings.clientId);\n tokenParams.append(\"grant_type\", \"urn:ietf:params:oauth:grant-type:device_code\");\n tokenParams.append(\"device_code\", authorizeData.device_code);\n const tokenResponse = await fetch(`${settings.authorizationServerBaseUrl}/v1/token`, {\n method: \"POST\",\n body: tokenParams,\n });\n tokenData = (await tokenResponse.json()) as TokenData;\n } while (\n !(\"id_token\" in tokenData) &&\n !(\"error\" in tokenData && tokenData.error !== \"authorization_pending\" && tokenData.error !== \"slow_down\")\n );\n }\n\n if (\"access_token\" in tokenData) {\n console.log(\"🥳 Successfully authenticated.\");\n\n const manifest = (await pacote.manifest(options.inputPath)) as PackageJson;\n const tarData = await pacote.tarball(options.inputPath);\n\n return await doUploadAppWithRetry(tokenData, useAccessToken, manifest, tarData, settings, 3);\n } else if (\"error\" in tokenData) {\n if (tokenData.error === \"expired_token\") {\n console.error(\"⌛️ Authentication attempt expired\");\n return { success: false };\n } else {\n console.error(`❌ Error occurred: ${tokenData.error} ${tokenData.error_description}`);\n return { success: false };\n }\n } else {\n console.error(\"❌ Unknown error occurred\");\n return { success: false };\n }\n}\n\nasync function doUploadAppWithRetry(\n tokenData: TokenDataSuccess,\n useAccessToken: boolean,\n manifest: PackageJson,\n tarData: Buffer & pacote.FetchResult,\n settings: Settings,\n retryCount: number\n): Promise<{ success: boolean }> {\n try {\n return await doUploadApp(tokenData, useAccessToken, manifest, tarData, settings);\n } catch (e) {\n if (e instanceof NpmConflictError) {\n console.error(\"❌ Unable to ship app package. Cannot publish over existing version.\");\n return { success: false };\n } else {\n if (retryCount > 1) {\n console.error(\"⚠️ Unable to ship app package. Got error from Iris App SDK repository. Retrying publish...\", e);\n await sleep(5000);\n return await doUploadAppWithRetry(tokenData, useAccessToken, manifest, tarData, settings, retryCount - 1);\n } else {\n console.error(\"❌ Unable to ship app package. Got error from Iris App SDK repository.\", e);\n return { success: false };\n }\n }\n }\n}\n\nasync function doUploadApp(\n tokenData: TokenDataSuccess,\n useAccessToken: boolean,\n manifest: PackageJson,\n tarData: Buffer & pacote.FetchResult,\n settings: Settings\n): Promise<{ success: boolean }> {\n const npmFetchOptions: { registry?: string } = {};\n npmFetchOptions.registry = settings.repoUrl.toString();\n const repoHostAndPort = settings.repoUrl.hostname + (settings.repoUrl.port ? \":\" + settings.repoUrl.port : \"\");\n npmFetchOptions[`//${repoHostAndPort}${settings.repoUrl.pathname}:_authToken`] = useAccessToken\n ? tokenData.access_token\n : tokenData.id_token;\n npmFetchOptions[`//${repoHostAndPort}${settings.repoUrl.pathname}/repo/:always-auth`] = true;\n\n console.log(\"🚢 Shipping the app package...\");\n const publishResult = await libpub.publish(manifest, tarData, npmFetchOptions).catch((err: PublishError) => {\n if (err.code === \"EPUBLISHCONFLICT\") {\n return {\n ok: false,\n publishConflict: true,\n };\n } else {\n return {\n ok: false,\n headers: new Headers(err.headers),\n statusText: `Error`,\n text: () => Promise.resolve(`${err.name} ${err.message}`),\n };\n }\n });\n\n const warningsText = publishResult.headers?.get(\"TU-TILE-WARNINGS\");\n if (warningsText) {\n console.log(\"⚠️ \" + decodeURI(warningsText));\n }\n\n if (publishResult.ok) {\n console.log(`🚀 Uploaded the app package version ${manifest.version}`);\n\n return await doApproveAppWithRetry(\n useAccessToken ? tokenData.access_token : tokenData.id_token,\n manifest,\n settings,\n 3\n );\n } else if (\"publishConflict\" in publishResult) {\n if (process.env.SKIP_EXISTING === \"true\") {\n console.log(`⏩ Skipped publishing ${manifest.version} because the version is already published`);\n return await doApproveAppWithRetry(\n useAccessToken ? tokenData.access_token : tokenData.id_token,\n manifest,\n settings,\n 3\n );\n } else {\n throw new NpmConflictError();\n }\n } else {\n throw new NpmGeneralError(\n publishResult.statusText +\n \" \" +\n (await publishResult.text()) +\n \". Trace ID: \" +\n publishResult.headers.get(\"trace-id\")\n );\n }\n}\n\nasync function doApproveAppWithRetry(\n token: string,\n manifest: PackageJson,\n settings: Settings,\n retryCount: number\n): Promise<{ success: boolean }> {\n try {\n return await doApproveApp(token, manifest, settings);\n } catch (e) {\n if (e instanceof ApproveError) {\n if (retryCount > 1) {\n console.error(\n \"⚠️ Unable to approve app package. Got approve error from Iris App SDK repository. Retrying approve...\",\n e\n );\n await sleep(5000);\n return await doApproveAppWithRetry(token, manifest, settings, retryCount - 1);\n } else {\n console.error(\"❌ Unable to approve app package. Got approve error from Iris App SDK repository.\", e);\n return { success: false };\n }\n } else {\n console.error(\"❌ Unable to approve app package. Got error from Iris App SDK repository.\", e);\n return { success: false };\n }\n }\n}\n\nasync function doApproveApp(token: string, manifest: PackageJson, settings: Settings) {\n if (process.env.TU_APPROVE === \"true\") {\n console.log(`🖋️ Approving the app...`);\n const approveResult = await fetch(new URL(`${manifest.name}@${manifest.version}`, settings.approvalUrl), {\n method: \"PUT\",\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n if (approveResult.ok) {\n console.log(`✅ Approved version ${manifest.version} of ${manifest.name}.`);\n return { success: true };\n } else {\n throw new ApproveError(\n `${approveResult.statusText}, ${await approveResult.text()}, Trace ID: ${approveResult.headers.get(\"trace-id\")}`\n );\n }\n } else {\n return { success: true };\n }\n}\n"]}
|
|
@@ -19,7 +19,7 @@ const webpackDevServer_1 = require("./webpackDevServer");
|
|
|
19
19
|
* @yields {AsyncGenerator<any, void, unknown>} the serve observable
|
|
20
20
|
*/
|
|
21
21
|
async function* default_1(options, context) {
|
|
22
|
-
await (0, checkPackageVersion_1.checkPackageVersion)();
|
|
22
|
+
await (0, checkPackageVersion_1.checkPackageVersion)(false);
|
|
23
23
|
if (!context.workspace) {
|
|
24
24
|
throw new Error("context workspace is required");
|
|
25
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../../libs/iris-app-sdk/iris-app/src/executors/serve/executor.ts"],"names":[],"mappings":";;;;AAEA,0EAAsE;AACtE,iGAA4F;AAC5F,kFAAyE;AACzE,+BAA4B;AAE5B,2DAAqC;AAErC,8BAA4B;AAC5B,sEAAmE;AACnE,wEAAiE;AAEjE,yDAA2D;AAI3D;;;;;;GAMG;AACY,KAAK,SAAS,CAAC,WAAE,OAA4B,EAAE,OAAwB;IACpF,MAAM,IAAA,yCAAmB,
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../../libs/iris-app-sdk/iris-app/src/executors/serve/executor.ts"],"names":[],"mappings":";;;;AAEA,0EAAsE;AACtE,iGAA4F;AAC5F,kFAAyE;AACzE,+BAA4B;AAE5B,2DAAqC;AAErC,8BAA4B;AAC5B,sEAAmE;AACnE,wEAAiE;AAEjE,yDAA2D;AAI3D;;;;;;GAMG;AACY,KAAK,SAAS,CAAC,WAAE,OAA4B,EAAE,OAAwB;IACpF,MAAM,IAAA,yCAAmB,EAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;IACD,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAY,CAAC,CAAC,IAAI,CAAC,CAAC;IACjG,MAAM,gBAAgB,GAAG,IAAA,WAAI,EAC3B,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAY,CAAC,CAAC,IAAI,EACrD,sBAAsB,CACvB,CAAC;IACF,IAAA,6CAAkB,EAAC;QACjB,cAAc;KACf,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;KACrD;IACD,MAAM,eAAe,GAAG,CAAC,YAAa,gBAAgB,kEAAC,CAAC,CAAC,OAAO,CAAC;IACjE,MAAM,aAAa,GAAG,IAAA,uCAAgB,EAAC,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;IACrG,MAAM,gBAAgB,GAAG,YAAa,OAAO,CAAC,aAAa,kEAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,IAAA,wCAAqB,EAAC,MAAM,CAAC,CAAC,IAAI,CACnD,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACnB,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAE,MAAgC,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,EACF,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QAC5B,OAAO;YACL,OAAO;YACP,YAAY,EAAE,IAAA,mCAAe,EAAC,KAAK,CAAC;YACpC,OAAO,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE;SAC5B,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,KAAK,CAAC,CAAC,IAAA,8BAAa,EAAC,UAAwC,CAAC,CAAC;AACxE,CAAC;AAtCD,4BAsCC","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ExecutorContext } from \"@nrwl/devkit\";\nimport { eachValueFrom } from \"@nrwl/devkit/src/utils/rxjs-for-await\";\nimport { getEmittedFiles } from \"@nrwl/webpack/src/executors/webpack/lib/get-emitted-files\";\nimport { enableTsConfigPath } from \"@trackunit/iris-app-build-utilities\";\nimport { join } from \"path\";\nimport { Observable } from \"rxjs\";\nimport * as op from \"rxjs/operators\";\n\nimport \"webpack-dev-server\";\nimport { checkPackageVersion } from \"../utils/checkPackageVersion\";\nimport { getDefaultConfig } from \"../utils/defaultWebpackConfig\";\nimport { ServeExecutorSchema } from \"./schema\";\nimport { doRunWebpackDevServer } from \"./webpackDevServer\";\n\nimport type webpack = require(\"webpack\");\n\n/**\n * Serve executor for serving iris apps.\n *\n * @param {ServeExecutorSchema} options serve executor options for this nx executor\n * @param {ExecutorContext} context serve executor context for this nx executor\n * @yields {AsyncGenerator<any, void, unknown>} the serve observable\n */\nexport default async function* (options: ServeExecutorSchema, context: ExecutorContext) {\n await checkPackageVersion(false);\n if (!context.workspace) {\n throw new Error(\"context workspace is required\");\n }\n const projectRootDir = join(context.root, context.workspace.projects[context.projectName!].root);\n const tileManifestPath = join(\n context.root,\n context.workspace.projects[context.projectName!].root,\n \"iris-app-manifest.ts\"\n );\n enableTsConfigPath({\n projectRootDir,\n });\n if (!options.webpackConfig) {\n throw new Error(\"option.webpackConfig is required\");\n }\n const IrisAppManifest = (await import(tileManifestPath)).default;\n const defaultConfig = getDefaultConfig(\"development\", context.root, projectRootDir, IrisAppManifest);\n const customConfigFile = await import(options.webpackConfig);\n\n const config = await customConfigFile.default(defaultConfig);\n\n const observable = doRunWebpackDevServer(config).pipe(\n op.tap(({ stats }) => {\n // eslint-disable-next-line no-console\n console.info(stats.toString((config as webpack.Configuration).stats));\n }),\n op.map(({ baseUrl, stats }) => {\n return {\n baseUrl,\n emittedFiles: getEmittedFiles(stats),\n success: !stats.hasErrors(),\n };\n })\n );\n\n return yield* eachValueFrom(observable as unknown as Observable<any>);\n}\n"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @param range range
|
|
6
6
|
* @returns { boolean } true if its a valid version
|
|
7
7
|
*/
|
|
8
|
-
export declare const versionCheck: (pkg: string, localRange: string, range: string) => boolean;
|
|
8
|
+
export declare const versionCheck: (pkg: string, localRange: string, range: string, throwError?: boolean) => boolean;
|
|
9
9
|
/**
|
|
10
10
|
* Get the latest version of the package from the registry.
|
|
11
11
|
*
|
|
@@ -19,19 +19,19 @@ export declare const getLatestRemoteVersion: (pkg: string) => Promise<string>;
|
|
|
19
19
|
* @param {string} managerNodeVersion version of node in the manager
|
|
20
20
|
* @returns { boolean } true if its a valid version
|
|
21
21
|
*/
|
|
22
|
-
export declare function checkNodeVersion(managerNodeVersion: string): Promise<boolean>;
|
|
22
|
+
export declare function checkNodeVersion(managerNodeVersion: string, throwError?: boolean): Promise<boolean>;
|
|
23
23
|
/**
|
|
24
24
|
* Check if the current version of the package is the same as the one in the manager.
|
|
25
25
|
*
|
|
26
26
|
* @param {string} managerNxVersion version of nx in the manager
|
|
27
27
|
* @returns { boolean} true if its a valid version
|
|
28
28
|
*/
|
|
29
|
-
export declare function checkNxVersion(managerNxVersion: string): Promise<boolean>;
|
|
29
|
+
export declare function checkNxVersion(managerNxVersion: string, throwError?: boolean): Promise<boolean>;
|
|
30
30
|
/**
|
|
31
31
|
*
|
|
32
32
|
*/
|
|
33
|
-
export declare function checkTrackunitPackages(packageJson: any): Promise<boolean>;
|
|
33
|
+
export declare function checkTrackunitPackages(packageJson: any, throwError?: boolean): Promise<boolean>;
|
|
34
34
|
/**
|
|
35
35
|
*
|
|
36
36
|
*/
|
|
37
|
-
export declare function checkPackageVersion(): Promise<boolean>;
|
|
37
|
+
export declare function checkPackageVersion(throwError?: boolean): Promise<boolean>;
|
|
@@ -14,10 +14,18 @@ const version_1 = require("./version");
|
|
|
14
14
|
* @param range range
|
|
15
15
|
* @returns { boolean } true if its a valid version
|
|
16
16
|
*/
|
|
17
|
-
const versionCheck = (pkg, localRange, range) => {
|
|
17
|
+
const versionCheck = (pkg, localRange, range, throwError = true) => {
|
|
18
18
|
const localVersion = semver.minVersion(localRange) ?? localRange; // ('^1.0.0') => '1.0.0'
|
|
19
19
|
if (!semver.satisfies(localVersion, range)) {
|
|
20
|
-
|
|
20
|
+
const msg = `Package "${pkg}" outdated. Remote Version: ${range} Local version: ${localRange}. \n Update package using command: 'npm i ${pkg}@${range}'`;
|
|
21
|
+
if (throwError) {
|
|
22
|
+
throw new Error(msg);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
// eslint-disable-next-line no-console
|
|
26
|
+
console.warn("!!! " + msg);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
21
29
|
}
|
|
22
30
|
return true;
|
|
23
31
|
};
|
|
@@ -44,9 +52,9 @@ exports.getLatestRemoteVersion = getLatestRemoteVersion;
|
|
|
44
52
|
* @param {string} managerNodeVersion version of node in the manager
|
|
45
53
|
* @returns { boolean } true if its a valid version
|
|
46
54
|
*/
|
|
47
|
-
async function checkNodeVersion(managerNodeVersion) {
|
|
55
|
+
async function checkNodeVersion(managerNodeVersion, throwError = true) {
|
|
48
56
|
const currentNodeVersion = await process.version.replace(/\r?\n|\r/, ""); // regex removes any linebreaks
|
|
49
|
-
return (0, exports.versionCheck)("node", currentNodeVersion, managerNodeVersion);
|
|
57
|
+
return (0, exports.versionCheck)("node", currentNodeVersion, managerNodeVersion, throwError);
|
|
50
58
|
}
|
|
51
59
|
exports.checkNodeVersion = checkNodeVersion;
|
|
52
60
|
/**
|
|
@@ -55,25 +63,25 @@ exports.checkNodeVersion = checkNodeVersion;
|
|
|
55
63
|
* @param {string} managerNxVersion version of nx in the manager
|
|
56
64
|
* @returns { boolean} true if its a valid version
|
|
57
65
|
*/
|
|
58
|
-
async function checkNxVersion(managerNxVersion) {
|
|
66
|
+
async function checkNxVersion(managerNxVersion, throwError = true) {
|
|
59
67
|
const currentNxVersion = (0, child_process_1.execSync)("nx --version")
|
|
60
68
|
.toString("utf-8")
|
|
61
69
|
.replace(/\r?\n|\r/, ""); // regex removes any linebreaks
|
|
62
|
-
return (0, exports.versionCheck)("nx", currentNxVersion, managerNxVersion);
|
|
70
|
+
return (0, exports.versionCheck)("nx", currentNxVersion, managerNxVersion, throwError);
|
|
63
71
|
}
|
|
64
72
|
exports.checkNxVersion = checkNxVersion;
|
|
65
73
|
/**
|
|
66
74
|
*
|
|
67
75
|
*/
|
|
68
76
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
69
|
-
async function checkTrackunitPackages(packageJson) {
|
|
77
|
+
async function checkTrackunitPackages(packageJson, throwError = true) {
|
|
70
78
|
for (const key in packageJson) {
|
|
71
79
|
const remoteVersion = await (0, exports.getLatestRemoteVersion)(key);
|
|
72
80
|
if (remoteVersion) {
|
|
73
81
|
const localDependencyVersion = packageJson[key];
|
|
74
82
|
// If @trackunit dependencies are linked/added locally using "file://", skip the version check.
|
|
75
83
|
if (!localDependencyVersion.includes("file://")) {
|
|
76
|
-
(0, exports.versionCheck)(key, localDependencyVersion, remoteVersion);
|
|
84
|
+
(0, exports.versionCheck)(key, localDependencyVersion, remoteVersion, throwError);
|
|
77
85
|
}
|
|
78
86
|
}
|
|
79
87
|
}
|
|
@@ -89,14 +97,14 @@ function getLibraries() {
|
|
|
89
97
|
/**
|
|
90
98
|
*
|
|
91
99
|
*/
|
|
92
|
-
async function checkPackageVersion() {
|
|
100
|
+
async function checkPackageVersion(throwError = true) {
|
|
93
101
|
const { trackunitDependencies, trackunitDevDependencies } = getLibraries();
|
|
94
102
|
const managerNodeVersion = version_1.version.managerNodeVersion;
|
|
95
103
|
const managerNxVersion = version_1.version.managerNxVersion;
|
|
96
|
-
await checkNodeVersion(managerNodeVersion);
|
|
97
|
-
await checkNxVersion(managerNxVersion);
|
|
98
|
-
await checkTrackunitPackages(trackunitDependencies);
|
|
99
|
-
await checkTrackunitPackages(trackunitDevDependencies);
|
|
104
|
+
await checkNodeVersion(managerNodeVersion, throwError);
|
|
105
|
+
await checkNxVersion(managerNxVersion, throwError);
|
|
106
|
+
await checkTrackunitPackages(trackunitDependencies, throwError);
|
|
107
|
+
await checkTrackunitPackages(trackunitDevDependencies, throwError);
|
|
100
108
|
return true;
|
|
101
109
|
}
|
|
102
110
|
exports.checkPackageVersion = checkPackageVersion;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkPackageVersion.js","sourceRoot":"","sources":["../../../../../../../libs/iris-app-sdk/iris-app/src/executors/utils/checkPackageVersion.ts"],"names":[],"mappings":";;;;AAAA,yCAA4C;AAC5C,iDAAyC;AACzC,uDAAiC;AACjC,uDAAiC;AACjC,uCAAoC;AAEpC;;;;;;GAMG;AACI,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,UAAkB,EAAE,KAAa,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"checkPackageVersion.js","sourceRoot":"","sources":["../../../../../../../libs/iris-app-sdk/iris-app/src/executors/utils/checkPackageVersion.ts"],"names":[],"mappings":"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","sourcesContent":["import { readJsonFile } from \"@nrwl/devkit\";\nimport { execSync } from \"child_process\";\nimport * as pacote from \"pacote\";\nimport * as semver from \"semver\";\nimport { version } from \"./version\";\n\n/**\n *\n * @param pkg package to look for.\n * @param localRange local version of the package.\n * @param range range\n * @returns { boolean } true if its a valid version\n */\nexport const versionCheck = (pkg: string, localRange: string, range: string, throwError = true) => {\n const localVersion = semver.minVersion(localRange) ?? localRange; // ('^1.0.0') => '1.0.0'\n if (!semver.satisfies(localVersion, range)) {\n const msg = `Package \"${pkg}\" outdated. Remote Version: ${range} Local version: ${localRange}. \\n Update package using command: 'npm i ${pkg}@${range}'`;\n if (throwError) {\n throw new Error(msg);\n } else {\n // eslint-disable-next-line no-console\n console.warn(\"!!! \" + msg);\n return true;\n }\n }\n return true;\n};\n\n/**\n * Get the latest version of the package from the registry.\n *\n * @param pkg package to look for.\n * @returns { Promise<string> } returns versio\n */\nexport const getLatestRemoteVersion = async (pkg: string) => {\n try {\n const manifest = await pacote.manifest(pkg);\n return manifest.version;\n } catch (error) {\n throw new Error(`Error fetching manifest for package ${pkg}`);\n }\n};\n\n/**\n * Check if the current version of the package is the same as the one in the manager.\n *\n * @param {string} managerNodeVersion version of node in the manager\n * @returns { boolean } true if its a valid version\n */\nexport async function checkNodeVersion(managerNodeVersion: string, throwError = true) {\n const currentNodeVersion = await process.version.replace(/\\r?\\n|\\r/, \"\"); // regex removes any linebreaks\n return versionCheck(\"node\", currentNodeVersion, managerNodeVersion, throwError);\n}\n\n/**\n * Check if the current version of the package is the same as the one in the manager.\n *\n * @param {string} managerNxVersion version of nx in the manager\n * @returns { boolean} true if its a valid version\n */\nexport async function checkNxVersion(managerNxVersion: string, throwError = true) {\n const currentNxVersion = execSync(\"nx --version\")\n .toString(\"utf-8\")\n .replace(/\\r?\\n|\\r/, \"\"); // regex removes any linebreaks\n return versionCheck(\"nx\", currentNxVersion, managerNxVersion, throwError);\n}\n\n/**\n *\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function checkTrackunitPackages(packageJson: any, throwError = true) {\n for (const key in packageJson) {\n const remoteVersion: string | undefined = await getLatestRemoteVersion(key);\n if (remoteVersion) {\n const localDependencyVersion: string = packageJson[key];\n // If @trackunit dependencies are linked/added locally using \"file://\", skip the version check.\n if (!localDependencyVersion.includes(\"file://\")) {\n versionCheck(key, localDependencyVersion, remoteVersion, throwError);\n }\n }\n }\n return true;\n}\n\nfunction getLibraries() {\n const packageJsonLocal = readJsonFile(\"package.json\");\n const trackunitDependencies = Object.fromEntries(\n Object.entries(packageJsonLocal.dependencies).filter(([key]) => key.startsWith(\"@trackunit/\"))\n );\n const trackunitDevDependencies = Object.fromEntries(\n Object.entries(packageJsonLocal.devDependencies).filter(([key]) => key.startsWith(\"@trackunit/\"))\n );\n return { trackunitDependencies, trackunitDevDependencies };\n}\n\n/**\n *\n */\nexport async function checkPackageVersion(throwError = true) {\n const { trackunitDependencies, trackunitDevDependencies } = getLibraries();\n const managerNodeVersion = version.managerNodeVersion;\n const managerNxVersion = version.managerNxVersion;\n await checkNodeVersion(managerNodeVersion, throwError);\n await checkNxVersion(managerNxVersion, throwError);\n await checkTrackunitPackages(trackunitDependencies, throwError);\n await checkTrackunitPackages(trackunitDevDependencies, throwError);\n return true;\n}\n"]}
|