@unisphere/cli 1.35.0 → 1.37.0

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.
Files changed (59) hide show
  1. package/package.json +4 -4
  2. package/src/lib/commands/applications/activate/check-application-availability.d.ts +8 -0
  3. package/src/lib/commands/applications/activate/check-application-availability.js +24 -0
  4. package/src/lib/commands/applications/activate/check-application-availability.js.map +1 -0
  5. package/src/lib/commands/applications/activate/command.d.ts +2 -0
  6. package/src/lib/commands/applications/activate/command.js +95 -0
  7. package/src/lib/commands/applications/activate/command.js.map +1 -0
  8. package/src/lib/commands/applications/build-command.d.ts +2 -0
  9. package/src/lib/commands/applications/build-command.js +67 -0
  10. package/src/lib/commands/applications/build-command.js.map +1 -0
  11. package/src/lib/commands/applications/command.d.ts +2 -0
  12. package/src/lib/commands/applications/command.js +19 -0
  13. package/src/lib/commands/applications/command.js.map +1 -0
  14. package/src/lib/commands/applications/publish/command.d.ts +2 -0
  15. package/src/lib/commands/applications/publish/command.js +83 -0
  16. package/src/lib/commands/applications/publish/command.js.map +1 -0
  17. package/src/lib/commands/applications/publish/execute/execute.d.ts +2 -0
  18. package/src/lib/commands/applications/publish/execute/execute.js +55 -0
  19. package/src/lib/commands/applications/publish/execute/execute.js.map +1 -0
  20. package/src/lib/commands/applications/publish/execute/sync-application.d.ts +8 -0
  21. package/src/lib/commands/applications/publish/execute/sync-application.js +58 -0
  22. package/src/lib/commands/applications/publish/execute/sync-application.js.map +1 -0
  23. package/src/lib/commands/applications/publish/prepare/build-nx-applications.d.ts +13 -0
  24. package/src/lib/commands/applications/publish/prepare/build-nx-applications.js +74 -0
  25. package/src/lib/commands/applications/publish/prepare/build-nx-applications.js.map +1 -0
  26. package/src/lib/commands/applications/publish/prepare/prepare.d.ts +2 -0
  27. package/src/lib/commands/applications/publish/prepare/prepare.js +94 -0
  28. package/src/lib/commands/applications/publish/prepare/prepare.js.map +1 -0
  29. package/src/lib/commands/applications/publish/types.d.ts +17 -0
  30. package/src/lib/commands/applications/publish/types.js +3 -0
  31. package/src/lib/commands/applications/publish/types.js.map +1 -0
  32. package/src/lib/commands/applications/serve-command.d.ts +2 -0
  33. package/src/lib/commands/applications/serve-command.js +74 -0
  34. package/src/lib/commands/applications/serve-command.js.map +1 -0
  35. package/src/lib/commands/check/command.js +74 -0
  36. package/src/lib/commands/check/command.js.map +1 -1
  37. package/src/lib/commands/info/command.js +16 -0
  38. package/src/lib/commands/info/command.js.map +1 -1
  39. package/src/lib/commands/runtime/publish/prepare/build-nx-runtimes.js +1 -1
  40. package/src/lib/commands/runtime/publish/prepare/build-nx-runtimes.js.map +1 -1
  41. package/src/lib/unisphere.js +2 -0
  42. package/src/lib/unisphere.js.map +1 -1
  43. package/src/lib/utils/aws/download-file-from-bucket.d.ts +8 -0
  44. package/src/lib/utils/aws/download-file-from-bucket.js +40 -0
  45. package/src/lib/utils/aws/download-file-from-bucket.js.map +1 -0
  46. package/src/lib/utils/aws/upload-string-to-aws-bucket.d.ts +10 -0
  47. package/src/lib/utils/aws/upload-string-to-aws-bucket.js +37 -0
  48. package/src/lib/utils/aws/upload-string-to-aws-bucket.js.map +1 -0
  49. package/src/lib/utils/unisphere/augment-workspace-config.js +39 -0
  50. package/src/lib/utils/unisphere/augment-workspace-config.js.map +1 -1
  51. package/src/lib/utils/unisphere/build-unisphere-elements.d.ts +13 -2
  52. package/src/lib/utils/unisphere/build-unisphere-elements.js +28 -2
  53. package/src/lib/utils/unisphere/build-unisphere-elements.js.map +1 -1
  54. package/src/lib/utils/unisphere/types.d.ts +6 -3
  55. package/src/lib/utils/unisphere/types.js +14 -0
  56. package/src/lib/utils/unisphere/types.js.map +1 -1
  57. package/src/lib/utils/unisphere-utils.d.ts +2 -0
  58. package/src/lib/utils/unisphere-utils.js +9 -1
  59. package/src/lib/utils/unisphere-utils.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unisphere/cli",
3
- "version": "1.35.0",
3
+ "version": "1.37.0",
4
4
  "bin": {
5
5
  "unisphere": "./src/index.js"
6
6
  },
@@ -31,14 +31,14 @@
31
31
  "rollup-plugin-analyzer": "4.0.0",
32
32
  "glob": "8.0.3",
33
33
  "rollup-plugin-shim": "1.0.0",
34
- "commander": "9.4.1",
35
34
  "debug": "4.3.4",
35
+ "commander": "9.4.1",
36
36
  "listr2": "8.2.5",
37
+ "fs-extra": "10.1.0",
38
+ "execa": "5.1.1",
37
39
  "colorette": "2.0.20",
38
40
  "cli-table3": "0.6.5",
39
41
  "@octokit/rest": "19.0.5",
40
- "fs-extra": "10.1.0",
41
- "execa": "5.1.1",
42
42
  "archiver": "5.3.2",
43
43
  "fast-glob": "3.2.12",
44
44
  "@aws-sdk/client-s3": "3.216.0",
@@ -0,0 +1,8 @@
1
+ export declare const checkApplicationAvailability: (options: {
2
+ env: string;
3
+ awsRegion: string;
4
+ awsArn: string;
5
+ widgetName: string;
6
+ application: string;
7
+ version: string;
8
+ }) => Promise<void>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkApplicationAvailability = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const unisphere_utils_1 = require("../../../utils/unisphere-utils");
6
+ const is_s3_folder_exists_1 = require("../../../utils/aws/is-s3-folder-exists");
7
+ const debug_1 = require("debug");
8
+ const debug = (0, debug_1.default)('unisphere:runtime:check-element-runtime-availability');
9
+ const checkApplicationAvailability = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
10
+ debug(`Checking application runtime availability`, JSON.stringify(options, null, 2));
11
+ const bucket = (0, unisphere_utils_1.getBucketName)(options.env);
12
+ const bucketPrefix = (0, unisphere_utils_1.getApplicationStaticBucketPrefix)(options.widgetName, options.application, options.version);
13
+ const isApplicationDeployed = yield (0, is_s3_folder_exists_1.isS3FolderExists)({
14
+ bucket,
15
+ prefix: bucketPrefix,
16
+ awsRegion: options.awsRegion,
17
+ awsArn: options.awsArn,
18
+ });
19
+ if (!isApplicationDeployed) {
20
+ throw new Error(`Application ${options.application} with version ${options.version} is not deployed in ${options.env} environment, aborting request`);
21
+ }
22
+ });
23
+ exports.checkApplicationAvailability = checkApplicationAvailability;
24
+ //# sourceMappingURL=check-application-availability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-application-availability.js","sourceRoot":"","sources":["../../../../../../../../packages/unisphere-cli/src/lib/commands/applications/activate/check-application-availability.ts"],"names":[],"mappings":";;;;AAAA,oEAMwC;AACxC,gFAA0E;AAE1E,iCAA0B;AAE1B,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,sDAAsD,CAAC,CAAC;AAErE,MAAM,4BAA4B,GAAG,CAAO,OAOlD,EAAE,EAAE;IACH,KAAK,CACH,2CAA2C,EAC3C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CACjC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,+BAAa,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAE1C,MAAM,YAAY,GAAG,IAAA,kDAAgC,EACnD,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,OAAO,CAChB,CAAC;IAEF,MAAM,qBAAqB,GAAG,MAAM,IAAA,sCAAgB,EAAC;QACnD,MAAM;QACN,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,IAAI,CAAC,qBAAqB,EAAE;QAC1B,MAAM,IAAI,KAAK,CACb,eAAe,OAAO,CAAC,WAAW,iBAAiB,OAAO,CAAC,OAAO,uBAAuB,OAAO,CAAC,GAAG,gCAAgC,CACrI,CAAC;KACH;AACH,CAAC,CAAA,CAAC;AAjCW,QAAA,4BAA4B,gCAiCvC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare const createActivateCommand: (parentCommand: Command) => Command;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createActivateCommand = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const commander_1 = require("commander");
6
+ const debug_1 = require("debug");
7
+ const utils_1 = require("../../../utils/utils");
8
+ const unisphere_utils_1 = require("../../../utils/unisphere-utils");
9
+ const prompts_1 = require("../../../utils/prompts/prompts");
10
+ const broadcast_to_teams_1 = require("../../../utils/broadcast-to-teams");
11
+ const check_application_availability_1 = require("./check-application-availability");
12
+ const download_file_from_bucket_1 = require("../../../utils/aws/download-file-from-bucket");
13
+ const upload_string_to_aws_bucket_1 = require("../../../utils/aws/upload-string-to-aws-bucket");
14
+ const debug = (0, debug_1.default)('unisphere:applications:activate:command');
15
+ const regex = /^[a-z0-9-]+$/;
16
+ const isValidValue = (value) => regex.test(value);
17
+ const createActivateCommand = (parentCommand) => {
18
+ const command = parentCommand.command('activate');
19
+ command
20
+ .option('--verbose', 'output debug logs', false)
21
+ .addArgument(new commander_1.Argument('widgetName', 'the widget name'))
22
+ .addArgument(new commander_1.Argument('application', 'the application name'))
23
+ .requiredOption('--env <id>', 'the environment to deploy to')
24
+ .requiredOption('-v, --version <value>', 'the new version to update the runtime to, like 1.2.3 (without prefix v)')
25
+ .requiredOption('--aws-region <value>', 'The AWS region')
26
+ .option('--aws-arn <name>', 'the aws ARN to assume')
27
+ .option('--dry-run', 'do not upload the file to AWS')
28
+ .option('--teams-webhook-url <url>', 'the teams webhook url')
29
+ .hook('preAction', utils_1.printVerboseHook)
30
+ .action((widgetName, application, options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
31
+ debug(`updating widget ${widgetName} application ${application} to version ${options.version}`);
32
+ if (typeof options.version !== 'string' ||
33
+ !(0, unisphere_utils_1.isValidElementVersion)(options.version)) {
34
+ (0, prompts_1.logErrorAndRethrow)(`invalid version value (did you pass semantic version with major 1?)`);
35
+ }
36
+ if (!isValidValue(widgetName) || !isValidValue(application)) {
37
+ (0, prompts_1.logErrorAndRethrow)(`widget and application name must be a string without spaces and in lowercase`);
38
+ }
39
+ yield (0, check_application_availability_1.checkApplicationAvailability)({
40
+ env: options.env,
41
+ awsRegion: options.awsRegion,
42
+ awsArn: options.awsArn,
43
+ widgetName,
44
+ application,
45
+ version: options.version,
46
+ });
47
+ const bucket = (0, unisphere_utils_1.getBucketName)(options.env);
48
+ const file = yield (0, download_file_from_bucket_1.downloadFileFromBucket)({
49
+ bucket,
50
+ region: options.awsRegion,
51
+ arn: options.awsArn,
52
+ bucketKey: `${(0, unisphere_utils_1.getApplicationStaticBucketPrefix)(widgetName, application, options.version)}/index.html`,
53
+ });
54
+ const newUrlText = "`${newPath}${urlParams.toString() ? '?' + urlParams.toString() : ''}${window.location.hash}`";
55
+ const newVersionReplace = '/[/]\\d+\\.\\d+\\.\\d+[/]/, `/${unisphereDevApp}/`';
56
+ const html = file.replace('<body>', `<body>
57
+ <script>
58
+ const urlParams = new URLSearchParams(window.location.search);
59
+ const unisphereDevApp = urlParams.get('unisphereDevApp');
60
+
61
+ if (unisphereDevApp) {
62
+ const path = window.location.pathname;
63
+ const newPath = path.replace('v1/', 'v1/static/').replace(${newVersionReplace});
64
+ urlParams.delete('unisphereDevApp');
65
+ const newUrl = ${newUrlText};
66
+ window.location.href = newUrl;
67
+ }
68
+ </script>`);
69
+ const prefix = (0, unisphere_utils_1.getApplicationRuntimeBucketPrefix)(widgetName, application, options.version);
70
+ if (!options.dryRun) {
71
+ yield (0, upload_string_to_aws_bucket_1.uploadStringToAWSBucket)({
72
+ bucket,
73
+ region: options.awsRegion,
74
+ arn: options.awsArn,
75
+ prefix,
76
+ fileContent: html,
77
+ fileName: 'index.html',
78
+ });
79
+ }
80
+ else {
81
+ debug(`skipping upload to AWS because of dry run. prefix: ${prefix}, index.html is: ${html}`);
82
+ }
83
+ if (options.teamsWebhookUrl) {
84
+ if (options.dryRun) {
85
+ debug('skipping teams notification because of dry run');
86
+ }
87
+ else {
88
+ (0, broadcast_to_teams_1.broadcastToTeams)(options.teamsWebhookUrl, `${options.env} - Application activation`, `The environment ${options.env} is now using application ${application} for widget ${widgetName} with the version ${options.version}`);
89
+ }
90
+ }
91
+ }));
92
+ return command;
93
+ };
94
+ exports.createActivateCommand = createActivateCommand;
95
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../../../../packages/unisphere-cli/src/lib/commands/applications/activate/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare const createBuildCommand: (parentCommand: Command) => Command;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createBuildCommand = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const commander_1 = require("commander");
6
+ const debug_1 = require("debug");
7
+ const listr2_1 = require("listr2");
8
+ const utils_1 = require("../../utils/utils");
9
+ const workspace_1 = require("../../utils/unisphere/workspace");
10
+ const build_unisphere_elements_1 = require("../../utils/unisphere/build-unisphere-elements");
11
+ const defaults_1 = require("../../utils/listr2/defaults");
12
+ const debug = (0, debug_1.default)('unisphere:application:build');
13
+ const createBuildCommand = (parentCommand) => {
14
+ const command = parentCommand.command('build');
15
+ const noLintOption = new commander_1.Option('--no-lint', 'skip linting');
16
+ noLintOption.defaultValue = false;
17
+ noLintOption.hidden = true;
18
+ command
19
+ .description('build a unisphere app')
20
+ .option('--verbose', 'output debug logs', false)
21
+ .addArgument(new commander_1.Argument('app', 'the app to build'))
22
+ .option('--cwd <name>', 'the working directory')
23
+ .option('--production', 'build in production mode', false)
24
+ .addOption(noLintOption)
25
+ .hook('preAction', utils_1.printVerboseHook)
26
+ .action((app, options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
27
+ const cwd = options.cwd || process.cwd();
28
+ const task = new listr2_1.Listr([
29
+ {
30
+ title: 'Getting workspace',
31
+ task: (ctx) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
32
+ const workspace = yield (0, workspace_1.getUnisphereWorkspace)(cwd, {
33
+ suspendRecursion: true,
34
+ });
35
+ if (!workspace) {
36
+ debug(`No .unisphere file found in the directory ${cwd}`);
37
+ throw new Error(`No .unisphere file found in the directory`);
38
+ }
39
+ ctx.workspace = workspace;
40
+ }),
41
+ },
42
+ {
43
+ title: `Building app ${app}`,
44
+ task: (ctx, task) => {
45
+ var _a, _b;
46
+ const appNxProjectName = (_a = ctx.workspace.config.elements.applications[app]) === null || _a === void 0 ? void 0 : _a.nxProjectName;
47
+ if (!appNxProjectName) {
48
+ throw new Error(`No nx project name found for app ${app}`);
49
+ }
50
+ return (0, build_unisphere_elements_1.createListrForBuildingUnisphereApplication)({
51
+ cwd,
52
+ nxProjectName: appNxProjectName,
53
+ parentTask: task,
54
+ production: options.production,
55
+ lint: (_b = options.lint) !== null && _b !== void 0 ? _b : true,
56
+ verbose: options.verbose,
57
+ baseUrl: './',
58
+ });
59
+ },
60
+ },
61
+ ], (0, defaults_1.getDefaultListrOptions)());
62
+ yield task.run();
63
+ }));
64
+ return command;
65
+ };
66
+ exports.createBuildCommand = createBuildCommand;
67
+ //# sourceMappingURL=build-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-command.js","sourceRoot":"","sources":["../../../../../../../packages/unisphere-cli/src/lib/commands/applications/build-command.ts"],"names":[],"mappings":";;;;AAAA,yCAAsD;AACtD,iCAA0B;AAC1B,mCAA+B;AAC/B,6CAAqD;AACrD,+DAAwE;AACxE,6FAA4G;AAC5G,0DAAqE;AAGrE,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,6BAA6B,CAAC,CAAC;AAE5C,MAAM,kBAAkB,GAAG,CAAC,aAAsB,EAAW,EAAE;IACpE,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,IAAI,kBAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC7D,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC;IAClC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;IAE3B,OAAO;SACJ,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,CAAC;SAC/C,WAAW,CAAC,IAAI,oBAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;SACpD,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC;SAC/C,MAAM,CAAC,cAAc,EAAE,0BAA0B,EAAE,KAAK,CAAC;SACzD,SAAS,CAAC,YAAY,CAAC;SACvB,IAAI,CAAC,WAAW,EAAE,wBAAgB,CAAC;SACnC,MAAM,CAAC,CAAO,GAAG,EAAE,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAEzC,MAAM,IAAI,GAAG,IAAI,cAAK,CACpB;YACE;gBACE,KAAK,EAAE,mBAAmB;gBAC1B,IAAI,EAAE,CAAO,GAAG,EAAE,EAAE;oBAClB,MAAM,SAAS,GAAG,MAAM,IAAA,iCAAqB,EAAC,GAAG,EAAE;wBACjD,gBAAgB,EAAE,IAAI;qBACvB,CAAC,CAAC;oBAEH,IAAI,CAAC,SAAS,EAAE;wBACd,KAAK,CAAC,6CAA6C,GAAG,EAAE,CAAC,CAAC;wBAC1D,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;qBAC9D;oBAED,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC5B,CAAC,CAAA;aACF;YACD;gBACE,KAAK,EAAE,gBAAgB,GAAG,EAAE;gBAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;;oBAClB,MAAM,gBAAgB,GACpB,MAAA,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,0CAAE,aAAa,CAAC;oBAEjE,IAAI,CAAC,gBAAgB,EAAE;wBACrB,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;qBAC5D;oBAED,OAAO,IAAA,qEAA0C,EAAC;wBAChD,GAAG;wBACH,aAAa,EAAE,gBAAgB;wBAC/B,UAAU,EAAE,IAAI;wBAChB,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,IAAI,EAAE,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAI;wBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;gBACL,CAAC;aACF;SACF,EACD,IAAA,iCAAsB,GAAE,CACzB,CAAC;QAEF,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC,CAAA,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAhEW,QAAA,kBAAkB,sBAgE7B"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare const createApplicationsCommand: () => Command;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createApplicationsCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const command_1 = require("./publish/command");
6
+ const build_command_1 = require("./build-command");
7
+ const serve_command_1 = require("./serve-command");
8
+ const command_2 = require("./activate/command");
9
+ const createApplicationsCommand = () => {
10
+ const applicationsCommand = new commander_1.Command('applications');
11
+ applicationsCommand.description('manage Unisphere applications in the current project');
12
+ (0, command_2.createActivateCommand)(applicationsCommand);
13
+ (0, build_command_1.createBuildCommand)(applicationsCommand);
14
+ (0, command_1.createPublishCommand)(applicationsCommand);
15
+ (0, serve_command_1.createServeCommand)(applicationsCommand);
16
+ return applicationsCommand;
17
+ };
18
+ exports.createApplicationsCommand = createApplicationsCommand;
19
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../../../packages/unisphere-cli/src/lib/commands/applications/command.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,+CAAyD;AACzD,mDAAqD;AACrD,mDAAqD;AACrD,gDAA2D;AAEpD,MAAM,yBAAyB,GAAG,GAAY,EAAE;IACrD,MAAM,mBAAmB,GAAG,IAAI,mBAAO,CAAC,cAAc,CAAC,CAAC;IACxD,mBAAmB,CAAC,WAAW,CAC7B,sDAAsD,CACvD,CAAC;IAEF,IAAA,+BAAqB,EAAC,mBAAmB,CAAC,CAAC;IAC3C,IAAA,kCAAkB,EAAC,mBAAmB,CAAC,CAAC;IACxC,IAAA,8BAAoB,EAAC,mBAAmB,CAAC,CAAC;IAC1C,IAAA,kCAAkB,EAAC,mBAAmB,CAAC,CAAC;IACxC,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AAXW,QAAA,yBAAyB,6BAWpC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare const createPublishCommand: (parentCommand: Command) => Command;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPublishCommand = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const commander_1 = require("commander");
6
+ const utils_1 = require("../../../utils/utils");
7
+ const prepare_1 = require("./prepare/prepare");
8
+ const fs = require("fs-extra");
9
+ const process = require("process");
10
+ const debug_1 = require("debug");
11
+ const execute_1 = require("./execute/execute");
12
+ const artifacts_1 = require("../../../utils/artifacts");
13
+ const get_env_variables_1 = require("../../../utils/unisphere/get-env-variables");
14
+ const { envVariables } = (0, get_env_variables_1.getEnvVariables)();
15
+ const debug = (0, debug_1.default)('unisphere:application:publish');
16
+ const createPublishCommand = (parentCommand) => {
17
+ const publishCommand = parentCommand.command('publish');
18
+ publishCommand.description('publish all Unisphere applications of the current project');
19
+ const prepareCommand = publishCommand.command('prepare');
20
+ const executeCommand = publishCommand.command('execute');
21
+ const tagsCheckOption = new commander_1.Option('--no-tags-check', 'bypass github tags checks');
22
+ tagsCheckOption.defaultValue = true;
23
+ tagsCheckOption.hidden = true;
24
+ const noCIOption = new commander_1.Option('--no-ci', 'do not run in CI mode');
25
+ noCIOption.defaultValue = true;
26
+ noCIOption.hidden = true;
27
+ const noLintOption = new commander_1.Option('--no-lint', 'skip linting');
28
+ noLintOption.defaultValue = true;
29
+ noLintOption.hidden = true;
30
+ const cacheKeyOption = new commander_1.Option('--cache-key <name>', 'the cache key');
31
+ cacheKeyOption.hidden = true;
32
+ prepareCommand
33
+ .description('prepare all Unisphere applications of the current project for upload')
34
+ .option('--verbose', 'output debug logs', false)
35
+ .option('--cwd <name>', 'the working directory')
36
+ .addOption(tagsCheckOption)
37
+ .addOption(noCIOption)
38
+ .addOption(noLintOption)
39
+ .addOption(cacheKeyOption)
40
+ .hook('preAction', utils_1.printVerboseHook)
41
+ .action((options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
42
+ debug(`creating unique folder for artifacts`);
43
+ const artifactsRootFolder = yield (0, artifacts_1.createArtifactsFolder)(options.cacheKey);
44
+ debug(`created unique folder for artifacts: ${artifactsRootFolder}`);
45
+ if (options.ci) {
46
+ if (envVariables.GITHUB_OUTPUT) {
47
+ debug(`writing artifactsRootFolder to Github Action output`);
48
+ const output = `artifactsRootFolder=${artifactsRootFolder}\n`;
49
+ yield fs.appendFile(envVariables.GITHUB_OUTPUT, output);
50
+ }
51
+ else {
52
+ throw new Error('Not running in a GitHub Action environment.');
53
+ }
54
+ }
55
+ else {
56
+ debug(`bypassing CI mode (flag --no-ci provided)`);
57
+ }
58
+ yield (0, prepare_1.prepare)(Object.assign(Object.assign({}, options), { cwd: options.cwd || process.cwd(), artifactsRootFolder }));
59
+ debug(`prepare done`);
60
+ }));
61
+ executeCommand
62
+ .description('Upload all Unisphere applications of the current project')
63
+ .option('--verbose', 'output debug logs', false)
64
+ .requiredOption('--env <id>', 'the environment to deploy to')
65
+ .requiredOption('--aws-region <value>', 'The AWS region')
66
+ .option('--cwd <name>', 'the working directory')
67
+ .requiredOption('--artifacts-folder <name>', 'the artifacts folder of this project (provided by `deploy applications prepare` command)')
68
+ .option('--dry-run', 'run the deployment in dry-run mode', false)
69
+ .option('--aws-arn <name>', 'the aws ARN to assume')
70
+ .addOption(tagsCheckOption)
71
+ .hook('preAction', utils_1.printVerboseHook)
72
+ .action((options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
73
+ // todo validate others
74
+ if (!options.artifactsFolder) {
75
+ throw new Error('Missing required option --artifacts-folder');
76
+ }
77
+ yield (0, execute_1.execute)(Object.assign(Object.assign({}, options), { cwd: options.cwd || process.cwd() }));
78
+ debug(`sync done`);
79
+ }));
80
+ return publishCommand;
81
+ };
82
+ exports.createPublishCommand = createPublishCommand;
83
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../../../../packages/unisphere-cli/src/lib/commands/applications/publish/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { SyncOptions } from '../types';
2
+ export declare function execute(options: SyncOptions): Promise<void>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.execute = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const debug_1 = require("debug");
6
+ const listr2_1 = require("listr2");
7
+ const workspace_1 = require("../../../../utils/unisphere/workspace");
8
+ const sync_application_1 = require("./sync-application");
9
+ const unisphere_utils_1 = require("../../../../utils/unisphere-utils");
10
+ const defaults_1 = require("../../../../utils/listr2/defaults");
11
+ const debug = (0, debug_1.default)('unisphere:application:upload:execute');
12
+ function execute(options) {
13
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
14
+ debug(`options: ${JSON.stringify(options)}`);
15
+ const unisphereWorkspace = yield (0, workspace_1.getUnisphereWorkspace)(options.cwd);
16
+ const unisphereElements = unisphereWorkspace.config.elements;
17
+ debug(`Executing upload for elements in repository ${unisphereWorkspace.config.name}`);
18
+ const tasks = new listr2_1.Listr([
19
+ {
20
+ title: 'Sync applications',
21
+ enabled: Object.keys(unisphereElements.applications || {}).length !== 0,
22
+ task: (ctx, task) => tslib_1.__awaiter(this, void 0, void 0, function* () {
23
+ const applicationTasks = Object.entries(unisphereElements.applications || []).map(([application, { hasGithubTag, version, nxProjectName, distributionChannel },]) => ({
24
+ title: `Sync application: ${application}`,
25
+ skip: () => {
26
+ if (distributionChannel === 'none') {
27
+ debug(`Skipping application '${application}' because it has no distribution channel`);
28
+ return true;
29
+ }
30
+ if (options.tagsCheck && !hasGithubTag) {
31
+ debug(`Skipping application '${application}' because it doesn't have a github tag`);
32
+ return true;
33
+ }
34
+ return false;
35
+ },
36
+ task: () => tslib_1.__awaiter(this, void 0, void 0, function* () {
37
+ const bucketPrefix = (0, unisphere_utils_1.getApplicationStaticBucketPrefix)(unisphereWorkspace.config.name, application, version);
38
+ yield (0, sync_application_1.syncApplication)({
39
+ options,
40
+ bucketPrefix,
41
+ name: application,
42
+ nxProjectName,
43
+ version,
44
+ });
45
+ }),
46
+ }));
47
+ return task.newListr(applicationTasks);
48
+ }),
49
+ },
50
+ ].filter(Boolean), (0, defaults_1.getDefaultListrOptions)());
51
+ yield tasks.run();
52
+ });
53
+ }
54
+ exports.execute = execute;
55
+ //# sourceMappingURL=execute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../../../../../../packages/unisphere-cli/src/lib/commands/applications/publish/execute/execute.ts"],"names":[],"mappings":";;;;AAAA,iCAA0B;AAC1B,mCAA+B;AAE/B,qEAA8E;AAC9E,yDAAqD;AACrD,uEAAqF;AACrF,gEAA2E;AAE3E,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,sCAAsC,CAAC,CAAC;AAE5D,SAAsB,OAAO,CAAC,OAAoB;;QAChD,KAAK,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE7C,MAAM,kBAAkB,GAAG,MAAM,IAAA,iCAAqB,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpE,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC;QAE7D,KAAK,CACH,+CAA+C,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,CAChF,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,cAAK,CACrB;YACE;gBACE,KAAK,EAAE,mBAAmB;gBAC1B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;gBACvE,IAAI,EAAE,CAAO,GAAG,EAAE,IAAI,EAAE,EAAE;oBACxB,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CACrC,iBAAiB,CAAC,YAAY,IAAI,EAAE,CACrC,CAAC,GAAG,CACH,CAAC,CACC,WAAW,EACX,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAC9D,EAAE,EAAE,CAAC,CAAC;wBACL,KAAK,EAAE,qBAAqB,WAAW,EAAE;wBACzC,IAAI,EAAE,GAAG,EAAE;4BACT,IAAI,mBAAmB,KAAK,MAAM,EAAE;gCAClC,KAAK,CACH,yBAAyB,WAAW,0CAA0C,CAC/E,CAAC;gCACF,OAAO,IAAI,CAAC;6BACb;4BACD,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE;gCACtC,KAAK,CACH,yBAAyB,WAAW,wCAAwC,CAC7E,CAAC;gCACF,OAAO,IAAI,CAAC;6BACb;4BACD,OAAO,KAAK,CAAC;wBACf,CAAC;wBACD,IAAI,EAAE,GAAS,EAAE;4BACf,MAAM,YAAY,GAAG,IAAA,kDAAgC,EACnD,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAC9B,WAAW,EACX,OAAO,CACR,CAAC;4BACF,MAAM,IAAA,kCAAe,EAAC;gCACpB,OAAO;gCACP,YAAY;gCACZ,IAAI,EAAE,WAAW;gCACjB,aAAa;gCACb,OAAO;6BACR,CAAC,CAAC;wBACL,CAAC,CAAA;qBACF,CAAC,CACH,CAAC;oBAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBACzC,CAAC,CAAA;aACF;SACF,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,IAAA,iCAAsB,GAAE,CACzB,CAAC;QAEF,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;CAAA;AAhED,0BAgEC"}
@@ -0,0 +1,8 @@
1
+ import { SyncOptions } from '../types';
2
+ export declare function syncApplication({ name, bucketPrefix, nxProjectName, options, version, }: {
3
+ name: string;
4
+ options: SyncOptions;
5
+ nxProjectName: string;
6
+ bucketPrefix: string;
7
+ version: string;
8
+ }): Promise<void>;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncApplication = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const unisphere_utils_1 = require("../../../../utils/unisphere-utils");
6
+ const fs_extra_1 = require("fs-extra");
7
+ const upload_to_aws_bucket_1 = require("../../../../utils/aws/upload-to-aws-bucket");
8
+ const debug_1 = require("debug");
9
+ const is_s3_folder_exists_1 = require("../../../../utils/aws/is-s3-folder-exists");
10
+ const artifacts_1 = require("../../../../utils/artifacts");
11
+ const debug = (0, debug_1.default)('unisphere:deploy:deploy-workspace');
12
+ // TODO use Listr2 instead
13
+ function syncApplication({ name, bucketPrefix, nxProjectName, options, version, }) {
14
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
15
+ debug(`Syncing application '${name}' version '${version}'`);
16
+ const { artifactsPath, statusFilePath } = yield (0, artifacts_1.getProjectArtifactsPaths)(options.artifactsFolder, nxProjectName);
17
+ if (!(yield (0, fs_extra_1.pathExists)(artifactsPath))) {
18
+ throw new Error(`Cannot sync application, artifacts path ${artifactsPath} not found`);
19
+ }
20
+ if (!(yield (0, fs_extra_1.pathExists)(statusFilePath))) {
21
+ throw new Error(`Cannot sync application, status file ${statusFilePath} not found`);
22
+ }
23
+ const bucket = (0, unisphere_utils_1.getBucketName)(options.env);
24
+ const isApplicationDeployed = yield (0, is_s3_folder_exists_1.isS3FolderExists)({
25
+ bucket,
26
+ prefix: bucketPrefix,
27
+ awsRegion: options.awsRegion,
28
+ awsArn: options.awsArn,
29
+ });
30
+ if (isApplicationDeployed) {
31
+ debug(`Application '${name}' version '${version}' is already deployed, skipping`);
32
+ return;
33
+ }
34
+ debug(`Uploading application '${name}' '${version}' to AWS S3 (from '${options.artifactsFolder}' to bucket '${bucket}' folder '${bucketPrefix}' )`);
35
+ if (!options.dryRun) {
36
+ yield (0, upload_to_aws_bucket_1.uploadToAWSBucket)({
37
+ sourcePath: artifactsPath,
38
+ bucket,
39
+ prefix: bucketPrefix,
40
+ region: options.awsRegion,
41
+ arn: options.awsArn,
42
+ });
43
+ debug(`Uploaded application '${name}' version '${version}' to AWS S3`);
44
+ }
45
+ else {
46
+ debug('Dry run mode, skipping upload');
47
+ debug(`await uploadToAWSBucket({
48
+ sourcePath: ${artifactsPath},
49
+ bucket: ${bucket},
50
+ prefix: ${bucketPrefix},
51
+ region: ${options.awsRegion},
52
+ arn: ${options.awsArn},
53
+ });`);
54
+ }
55
+ });
56
+ }
57
+ exports.syncApplication = syncApplication;
58
+ //# sourceMappingURL=sync-application.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-application.js","sourceRoot":"","sources":["../../../../../../../../../packages/unisphere-cli/src/lib/commands/applications/publish/execute/sync-application.ts"],"names":[],"mappings":";;;;AAAA,uEAG2C;AAC3C,uCAAsC;AACtC,qFAA+E;AAC/E,iCAA0B;AAC1B,mFAA6E;AAE7E,2DAAuE;AACvE,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,mCAAmC,CAAC,CAAC;AAEzD,0BAA0B;AAC1B,SAAsB,eAAe,CAAC,EACpC,IAAI,EACJ,YAAY,EACZ,aAAa,EACb,OAAO,EACP,OAAO,GAOR;;QACC,KAAK,CAAC,wBAAwB,IAAI,cAAc,OAAO,GAAG,CAAC,CAAC;QAE5D,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,oCAAwB,EACtE,OAAO,CAAC,eAAe,EACvB,aAAa,CACd,CAAC;QAEF,IAAI,CAAC,CAAC,MAAM,IAAA,qBAAU,EAAC,aAAa,CAAC,CAAC,EAAE;YACtC,MAAM,IAAI,KAAK,CACb,2CAA2C,aAAa,YAAY,CACrE,CAAC;SACH;QAED,IAAI,CAAC,CAAC,MAAM,IAAA,qBAAU,EAAC,cAAc,CAAC,CAAC,EAAE;YACvC,MAAM,IAAI,KAAK,CACb,wCAAwC,cAAc,YAAY,CACnE,CAAC;SACH;QAED,MAAM,MAAM,GAAG,IAAA,+BAAa,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE1C,MAAM,qBAAqB,GAAG,MAAM,IAAA,sCAAgB,EAAC;YACnD,MAAM;YACN,MAAM,EAAE,YAAY;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,IAAI,qBAAqB,EAAE;YACzB,KAAK,CACH,gBAAgB,IAAI,cAAc,OAAO,iCAAiC,CAC3E,CAAC;YACF,OAAO;SACR;QAED,KAAK,CACH,0BAA0B,IAAI,MAAM,OAAO,sBAAsB,OAAO,CAAC,eAAe,gBAAgB,MAAM,aAAa,YAAY,KAAK,CAC7I,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACnB,MAAM,IAAA,wCAAiB,EAAC;gBACtB,UAAU,EAAE,aAAa;gBACzB,MAAM;gBACN,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,OAAO,CAAC,SAAS;gBACzB,GAAG,EAAE,OAAO,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,KAAK,CAAC,yBAAyB,IAAI,cAAc,OAAO,aAAa,CAAC,CAAC;SACxE;aAAM;YACL,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACvC,KAAK,CAAC;oBACU,aAAa;gBACjB,MAAM;gBACN,YAAY;gBACZ,OAAO,CAAC,SAAS;aACpB,OAAO,CAAC,MAAM;QACnB,CAAC,CAAC;SACP;IACH,CAAC;CAAA;AAtED,0CAsEC"}
@@ -0,0 +1,13 @@
1
+ import { Listr, ListrTask, ListrTaskWrapper } from 'listr2';
2
+ export declare function createListrForBuildingNxApplications({ cwd, artifactsRootFolder, nxProjectName, version, application, widgetName, distFolder, parentTask, verbose, postTask, }: {
3
+ widgetName: string;
4
+ application: string;
5
+ nxProjectName: string;
6
+ cwd: string;
7
+ version: string;
8
+ distFolder: string;
9
+ artifactsRootFolder: string;
10
+ parentTask: ListrTaskWrapper<any, any, any>;
11
+ verbose: boolean;
12
+ postTask?: ListrTask<any, any, any>;
13
+ }): Promise<Listr<any, any, any>>;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createListrForBuildingNxApplications = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fs_extra_1 = require("fs-extra");
6
+ const path = require("path");
7
+ const debug_1 = require("debug");
8
+ const artifacts_1 = require("../../../../utils/artifacts");
9
+ const defaults_1 = require("../../../../utils/listr2/defaults");
10
+ const unisphere_utils_1 = require("../../../../utils/unisphere-utils");
11
+ const build_unisphere_elements_1 = require("../../../../utils/unisphere/build-unisphere-elements");
12
+ const debug = (0, debug_1.default)('unisphere:deploy:applications:prepare');
13
+ function createListrForBuildingNxApplications({ cwd, artifactsRootFolder, nxProjectName, version, application, widgetName, distFolder, parentTask, verbose, postTask, }) {
14
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
15
+ debug(`Building element '${widgetName}' application '${application}' version ${version} (nxProjectName: ${nxProjectName})`);
16
+ const tasks = parentTask.newListr([
17
+ {
18
+ title: 'Prepare artifacts folders',
19
+ task: (ctx) => tslib_1.__awaiter(this, void 0, void 0, function* () {
20
+ const { rootPath, statusFilePath, artifactsPath } = yield (0, artifacts_1.getProjectArtifactsPaths)(artifactsRootFolder, nxProjectName);
21
+ ctx.rootPath = rootPath;
22
+ ctx.statusFilePath = statusFilePath;
23
+ ctx.artifactsPath = artifactsPath;
24
+ yield (0, fs_extra_1.emptyDir)(rootPath);
25
+ yield (0, fs_extra_1.ensureDir)(artifactsPath);
26
+ }),
27
+ },
28
+ {
29
+ title: 'Prepare production bundle',
30
+ task: (ctx, task) => tslib_1.__awaiter(this, void 0, void 0, function* () {
31
+ return task.newListr([
32
+ {
33
+ title: `Building widget '${widgetName}' application '${application}' with production mode`,
34
+ task: (_, task) => {
35
+ return (0, build_unisphere_elements_1.createListrForBuildingUnisphereApplication)({
36
+ cwd,
37
+ nxProjectName,
38
+ parentTask: task,
39
+ production: true,
40
+ lint: false,
41
+ verbose,
42
+ baseUrl: `/${(0, unisphere_utils_1.getApplicationStaticBucketPrefix)(widgetName, application, version)}/`,
43
+ });
44
+ },
45
+ },
46
+ {
47
+ title: 'Process production bundle',
48
+ task: (ctx) => tslib_1.__awaiter(this, void 0, void 0, function* () {
49
+ yield (0, fs_extra_1.copy)(distFolder, ctx.artifactsPath);
50
+ }),
51
+ },
52
+ ]);
53
+ }),
54
+ },
55
+ {
56
+ title: 'Generate metadata files',
57
+ task: (ctx) => tslib_1.__awaiter(this, void 0, void 0, function* () {
58
+ yield (0, fs_extra_1.outputFile)(ctx.statusFilePath, '');
59
+ yield (0, fs_extra_1.outputFile)(path.join(ctx.artifactsPath, 'info.json'), JSON.stringify({
60
+ widgetName,
61
+ application,
62
+ version,
63
+ createdAt: new Date().toISOString(),
64
+ }, null, 2));
65
+ debug(`Widget '${widgetName}' application '${application}' version ${version} built in ${ctx.rootPath}`);
66
+ }),
67
+ },
68
+ postTask,
69
+ ].filter(Boolean), (0, defaults_1.getDefaultListrOptions)({ collapseSubtasks: true }));
70
+ return tasks;
71
+ });
72
+ }
73
+ exports.createListrForBuildingNxApplications = createListrForBuildingNxApplications;
74
+ //# sourceMappingURL=build-nx-applications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-nx-applications.js","sourceRoot":"","sources":["../../../../../../../../../packages/unisphere-cli/src/lib/commands/applications/publish/prepare/build-nx-applications.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { PrepareOptions } from '../types';
2
+ export declare function prepare(options: PrepareOptions): Promise<void>;