@pwrdrvr/microapps-publish 0.0.17 → 0.0.21

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 (72) hide show
  1. package/bin/run +5 -0
  2. package/dist/commands/nextjs-docker-auto.d.ts +38 -0
  3. package/dist/commands/nextjs-docker-auto.d.ts.map +1 -0
  4. package/dist/commands/nextjs-docker-auto.js +415 -0
  5. package/dist/commands/nextjs-docker-auto.js.map +1 -0
  6. package/dist/commands/nextjs-version-restore.d.ts +14 -0
  7. package/dist/commands/nextjs-version-restore.d.ts.map +1 -0
  8. package/dist/commands/nextjs-version-restore.js +58 -0
  9. package/dist/commands/nextjs-version-restore.js.map +1 -0
  10. package/dist/commands/nextjs-version.d.ts +16 -0
  11. package/dist/commands/nextjs-version.d.ts.map +1 -0
  12. package/dist/commands/nextjs-version.js +94 -0
  13. package/dist/commands/nextjs-version.js.map +1 -0
  14. package/dist/commands/preflight.d.ts +15 -0
  15. package/dist/commands/preflight.d.ts.map +1 -0
  16. package/dist/commands/preflight.js +111 -0
  17. package/dist/commands/preflight.js.map +1 -0
  18. package/dist/commands/publish.d.ts +23 -0
  19. package/dist/commands/publish.d.ts.map +1 -0
  20. package/dist/commands/publish.js +300 -0
  21. package/dist/commands/publish.js.map +1 -0
  22. package/dist/config/Config.d.ts +0 -2
  23. package/dist/config/Config.d.ts.map +1 -1
  24. package/dist/config/Config.js +0 -5
  25. package/dist/config/Config.js.map +1 -1
  26. package/dist/index.d.ts +1 -30
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +3 -366
  29. package/dist/index.js.map +1 -1
  30. package/dist/lib/DeployClient.d.ts +34 -0
  31. package/dist/lib/DeployClient.d.ts.map +1 -0
  32. package/dist/{DeployClient.js → lib/DeployClient.js} +24 -5
  33. package/dist/lib/DeployClient.js.map +1 -0
  34. package/dist/lib/S3TransferUtility.d.ts +19 -0
  35. package/dist/lib/S3TransferUtility.d.ts.map +1 -0
  36. package/dist/{S3TransferUtility.js → lib/S3TransferUtility.js} +13 -0
  37. package/dist/lib/S3TransferUtility.js.map +1 -0
  38. package/dist/lib/S3Uploader.d.ts +27 -0
  39. package/dist/lib/S3Uploader.d.ts.map +1 -0
  40. package/dist/lib/S3Uploader.js +76 -0
  41. package/dist/lib/S3Uploader.js.map +1 -0
  42. package/dist/lib/Versions.d.ts +27 -0
  43. package/dist/lib/Versions.d.ts.map +1 -0
  44. package/dist/lib/Versions.js +76 -0
  45. package/dist/lib/Versions.js.map +1 -0
  46. package/package.json +11 -2
  47. package/src/commands/nextjs-docker-auto.ts +498 -0
  48. package/src/commands/nextjs-version-restore.ts +73 -0
  49. package/src/commands/nextjs-version.ts +113 -0
  50. package/src/commands/preflight.ts +121 -0
  51. package/src/commands/publish.ts +358 -0
  52. package/src/config/Config.ts +0 -4
  53. package/src/index.ts +1 -454
  54. package/src/{DeployClient.ts → lib/DeployClient.ts} +34 -11
  55. package/src/{S3TransferUtility.ts → lib/S3TransferUtility.ts} +15 -3
  56. package/src/{S3Uploader.ts → lib/S3Uploader.ts} +46 -11
  57. package/src/lib/Versions.ts +95 -0
  58. package/dist/DeployClient.d.ts +0 -15
  59. package/dist/DeployClient.d.ts.map +0 -1
  60. package/dist/DeployClient.js.map +0 -1
  61. package/dist/S3TransferUtility.d.ts +0 -6
  62. package/dist/S3TransferUtility.d.ts.map +0 -1
  63. package/dist/S3TransferUtility.js.map +0 -1
  64. package/dist/S3Uploader.d.ts +0 -8
  65. package/dist/S3Uploader.d.ts.map +0 -1
  66. package/dist/S3Uploader.js +0 -47
  67. package/dist/S3Uploader.js.map +0 -1
  68. package/dist/config/FileStore.d.ts +0 -7
  69. package/dist/config/FileStore.d.ts.map +0 -1
  70. package/dist/config/FileStore.js +0 -17
  71. package/dist/config/FileStore.js.map +0 -1
  72. package/src/config/FileStore.ts +0 -14
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NextJSVersionCommand = void 0;
4
+ const tslib_1 = require("tslib");
5
+ require("reflect-metadata");
6
+ const command_1 = require("@oclif/command");
7
+ const chalk = tslib_1.__importStar(require("chalk"));
8
+ const listr2_1 = require("listr2");
9
+ const Config_1 = require("../config/Config");
10
+ const Versions_1 = require("../lib/Versions");
11
+ const RUNNING_TEXT = ' RUNS ';
12
+ const RUNNING = chalk.reset.inverse.yellow.bold(RUNNING_TEXT) + ' ';
13
+ class NextJSVersionCommand extends command_1.Command {
14
+ async run() {
15
+ const { flags: parsedFlags } = this.parse(NextJSVersionCommand);
16
+ const version = parsedFlags.newVersion;
17
+ const leaveFiles = parsedFlags.leaveCopy;
18
+ // Override the config value
19
+ const config = Config_1.Config.instance;
20
+ config.app.semVer = version;
21
+ this.VersionAndAlias = Versions_1.createVersions(version);
22
+ const versionOnly = { version: this.VersionAndAlias.version };
23
+ this.FILES_TO_MODIFY = [{ path: 'next.config.js', versions: versionOnly }];
24
+ // TODO: Pick and validate the appname/semver from the config and flags
25
+ if (config === undefined) {
26
+ this.error('Failed to load the config file');
27
+ }
28
+ //
29
+ // Setup Tasks
30
+ //
31
+ const tasks = new listr2_1.Listr([
32
+ {
33
+ title: 'Restoring Modified Config Files',
34
+ task: async (ctx, task) => {
35
+ const origTitle = task.title;
36
+ task.title = RUNNING + origTitle;
37
+ await Versions_1.restoreFiles(this.FILES_TO_MODIFY);
38
+ task.title = origTitle;
39
+ },
40
+ },
41
+ {
42
+ title: 'Modifying Config Files',
43
+ task: async (ctx, task) => {
44
+ const origTitle = task.title;
45
+ task.title = RUNNING + origTitle;
46
+ // Modify the existing files with the new version
47
+ for (const fileToModify of this.FILES_TO_MODIFY) {
48
+ task.output = `Patching version (${this.VersionAndAlias.version}) into ${fileToModify.path}`;
49
+ if (!(await Versions_1.writeNewVersions(fileToModify.path, fileToModify.versions, leaveFiles))) {
50
+ task.output = `Failed modifying file: ${fileToModify.path}`;
51
+ }
52
+ }
53
+ task.title = origTitle;
54
+ },
55
+ },
56
+ ], {
57
+ rendererOptions: {
58
+ showTimer: true,
59
+ },
60
+ });
61
+ try {
62
+ await tasks.run();
63
+ }
64
+ catch (error) {
65
+ this.log(`Caught exception: ${error.message}`);
66
+ }
67
+ }
68
+ }
69
+ exports.NextJSVersionCommand = NextJSVersionCommand;
70
+ NextJSVersionCommand.description = 'Apply version to next.config.js overtop of 0.0.0 placeholder';
71
+ NextJSVersionCommand.examples = [
72
+ `$ microapps-publish nextjs-version -n 0.0.13
73
+ ✔ Modifying Config Files [0.0s]
74
+ `,
75
+ ];
76
+ NextJSVersionCommand.flags = {
77
+ version: command_1.flags.version({
78
+ char: 'v',
79
+ }),
80
+ help: command_1.flags.help(),
81
+ newVersion: command_1.flags.string({
82
+ char: 'n',
83
+ multiple: false,
84
+ required: true,
85
+ description: 'New semantic version to apply',
86
+ }),
87
+ leaveCopy: command_1.flags.boolean({
88
+ char: 'l',
89
+ default: false,
90
+ required: false,
91
+ description: 'Leave a copy of the modifed files as .modified',
92
+ }),
93
+ };
94
+ //# sourceMappingURL=nextjs-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextjs-version.js","sourceRoot":"","sources":["../../src/commands/nextjs-version.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import 'reflect-metadata';
2
+ import { Command, flags as flagsParser } from '@oclif/command';
3
+ export declare class PreflightCommand extends Command {
4
+ static description: string;
5
+ static examples: string[];
6
+ static flags: {
7
+ version: import("@oclif/parser/lib/flags").IBooleanFlag<void>;
8
+ help: import("@oclif/parser/lib/flags").IBooleanFlag<void>;
9
+ appName: flagsParser.IOptionFlag<string>;
10
+ newVersion: flagsParser.IOptionFlag<string>;
11
+ deployerLambdaName: flagsParser.IOptionFlag<string>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=preflight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/commands/preflight.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAS/D,qBAAa,gBAAiB,SAAQ,OAAO;IAC3C,MAAM,CAAC,WAAW,SAAwC;IAE1D,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;MAuBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2E3B"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PreflightCommand = void 0;
4
+ const tslib_1 = require("tslib");
5
+ require("reflect-metadata");
6
+ const sts = tslib_1.__importStar(require("@aws-sdk/client-sts"));
7
+ const command_1 = require("@oclif/command");
8
+ const chalk = tslib_1.__importStar(require("chalk"));
9
+ const listr2_1 = require("listr2");
10
+ const Config_1 = require("../config/Config");
11
+ const DeployClient_1 = tslib_1.__importDefault(require("../lib/DeployClient"));
12
+ const RUNNING_TEXT = ' RUNS ';
13
+ const RUNNING = chalk.reset.inverse.yellow.bold(RUNNING_TEXT) + ' ';
14
+ class PreflightCommand extends command_1.Command {
15
+ async run() {
16
+ var _a, _b, _c;
17
+ const config = Config_1.Config.instance;
18
+ const { flags: parsedFlags } = this.parse(PreflightCommand);
19
+ const version = parsedFlags.newVersion;
20
+ const appName = (_a = parsedFlags.appName) !== null && _a !== void 0 ? _a : config.app.name;
21
+ const deployerLambdaName = (_b = parsedFlags.deployerLambdaName) !== null && _b !== void 0 ? _b : config.deployer.lambdaName;
22
+ const semVer = (_c = parsedFlags.newVersion) !== null && _c !== void 0 ? _c : config.app.semVer;
23
+ // Override the config value
24
+ config.deployer.lambdaName = deployerLambdaName;
25
+ config.app.name = appName;
26
+ config.app.semVer = semVer;
27
+ // TODO: Pick and validate the appname/semver from the config and flags
28
+ // Get the account ID and region from STS
29
+ // TODO: Move this to the right place
30
+ if (config.app.awsAccountID === 0 || config.app.awsRegion === '') {
31
+ const stsClient = new sts.STSClient({
32
+ maxAttempts: 8,
33
+ });
34
+ const stsResponse = await stsClient.send(new sts.GetCallerIdentityCommand({}));
35
+ if (config.app.awsAccountID === 0) {
36
+ config.app.awsAccountID = parseInt(stsResponse.Account, 10);
37
+ }
38
+ if (config.app.awsRegion === '') {
39
+ config.app.awsRegion = stsClient.config.region;
40
+ }
41
+ }
42
+ if (config === undefined) {
43
+ this.error('Failed to load the config file');
44
+ }
45
+ //
46
+ // Setup Tasks
47
+ //
48
+ const tasks = new listr2_1.Listr([
49
+ {
50
+ title: 'Preflight Version Check',
51
+ task: async (ctx, task) => {
52
+ const origTitle = task.title;
53
+ task.title = RUNNING + origTitle;
54
+ // Confirm the Version Does Not Exist in Published State
55
+ task.output = `Checking if deployed app/version already exists for ${config.app.name}/${version}`;
56
+ const preflightResult = await DeployClient_1.default.DeployVersionPreflight({
57
+ config,
58
+ needS3Creds: false,
59
+ output: (message) => (task.output = message),
60
+ });
61
+ if (preflightResult.exists) {
62
+ task.output = `Warning: App/Version already exists: ${config.app.name}/${config.app.semVer}`;
63
+ }
64
+ task.title = origTitle;
65
+ },
66
+ },
67
+ ], {
68
+ rendererOptions: {
69
+ showTimer: true,
70
+ },
71
+ });
72
+ try {
73
+ await tasks.run();
74
+ }
75
+ catch (error) {
76
+ this.log(`Caught exception: ${error.message}`);
77
+ }
78
+ }
79
+ }
80
+ exports.PreflightCommand = PreflightCommand;
81
+ PreflightCommand.description = 'Check if app/version are available';
82
+ PreflightCommand.examples = [
83
+ `$ microapps-publish preflight -a release -n 0.0.13
84
+ ✔ Preflight Version Check [0.2s]
85
+ `,
86
+ ];
87
+ PreflightCommand.flags = {
88
+ version: command_1.flags.version({
89
+ char: 'v',
90
+ }),
91
+ help: command_1.flags.help(),
92
+ appName: command_1.flags.string({
93
+ char: 'a',
94
+ multiple: false,
95
+ required: false,
96
+ description: 'Name of the MicroApp',
97
+ }),
98
+ newVersion: command_1.flags.string({
99
+ char: 'n',
100
+ multiple: false,
101
+ required: true,
102
+ description: 'New semantic version to apply',
103
+ }),
104
+ deployerLambdaName: command_1.flags.string({
105
+ char: 'd',
106
+ multiple: false,
107
+ required: true,
108
+ description: 'Name of the deployer lambda function',
109
+ }),
110
+ };
111
+ //# sourceMappingURL=preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/commands/preflight.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import 'reflect-metadata';
2
+ import { Command, flags as flagsParser } from '@oclif/command';
3
+ export declare class PublishCommand extends Command {
4
+ static description: string;
5
+ static examples: string[];
6
+ static flags: {
7
+ version: import("@oclif/parser/lib/flags").IBooleanFlag<void>;
8
+ help: import("@oclif/parser/lib/flags").IBooleanFlag<void>;
9
+ deployerLambdaName: flagsParser.IOptionFlag<string>;
10
+ newVersion: flagsParser.IOptionFlag<string>;
11
+ appLambdaName: flagsParser.IOptionFlag<string>;
12
+ appName: flagsParser.IOptionFlag<string>;
13
+ };
14
+ private VersionAndAlias;
15
+ run(): Promise<void>;
16
+ /**
17
+ * Publish an app version to Lambda
18
+ * @param config
19
+ * @param versions
20
+ */
21
+ private deployToLambda;
22
+ }
23
+ //# sourceMappingURL=publish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAK1B,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAyB/D,qBAAa,cAAe,SAAQ,OAAO;IACzC,MAAM,CAAC,WAAW,SACiH;IAEnI,MAAM,CAAC,QAAQ,WAWb;IAEF,MAAM,CAAC,KAAK;;;;;;;MA6BV;IAEF,OAAO,CAAC,eAAe,CAAY;IAE7B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA8N1B;;;;OAIG;YACW,cAAc;CAkD7B"}
@@ -0,0 +1,300 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublishCommand = void 0;
4
+ const tslib_1 = require("tslib");
5
+ require("reflect-metadata");
6
+ const util = tslib_1.__importStar(require("util"));
7
+ const lambda = tslib_1.__importStar(require("@aws-sdk/client-lambda"));
8
+ const s3 = tslib_1.__importStar(require("@aws-sdk/client-s3"));
9
+ const sts = tslib_1.__importStar(require("@aws-sdk/client-sts"));
10
+ const command_1 = require("@oclif/command");
11
+ const chalk = tslib_1.__importStar(require("chalk"));
12
+ const path = tslib_1.__importStar(require("path"));
13
+ const fs_extra_1 = require("fs-extra");
14
+ const listr2_1 = require("listr2");
15
+ const Config_1 = require("../config/Config");
16
+ const DeployClient_1 = tslib_1.__importDefault(require("../lib/DeployClient"));
17
+ const S3Uploader_1 = tslib_1.__importDefault(require("../lib/S3Uploader"));
18
+ const S3TransferUtility_1 = tslib_1.__importDefault(require("../lib/S3TransferUtility"));
19
+ const lib_storage_1 = require("@aws-sdk/lib-storage");
20
+ const mime_types_1 = require("mime-types");
21
+ const Versions_1 = require("../lib/Versions");
22
+ const asyncSetTimeout = util.promisify(setTimeout);
23
+ const lambdaClient = new lambda.LambdaClient({
24
+ maxAttempts: 8,
25
+ });
26
+ class PublishCommand extends command_1.Command {
27
+ async run() {
28
+ var _a, _b, _c, _d;
29
+ const config = Config_1.Config.instance;
30
+ const RUNNING_TEXT = ' RUNS ';
31
+ const RUNNING = chalk.reset.inverse.yellow.bold(RUNNING_TEXT) + ' ';
32
+ const { flags: parsedFlags } = this.parse(PublishCommand);
33
+ const appLambdaName = (_a = parsedFlags.appLambdaName) !== null && _a !== void 0 ? _a : config.app.lambdaName;
34
+ const appName = (_b = parsedFlags.appName) !== null && _b !== void 0 ? _b : config.app.name;
35
+ const deployerLambdaName = (_c = parsedFlags.deployerLambdaName) !== null && _c !== void 0 ? _c : config.deployer.lambdaName;
36
+ const semVer = (_d = parsedFlags.newVersion) !== null && _d !== void 0 ? _d : config.app.semVer;
37
+ // Override the config value
38
+ config.deployer.lambdaName = deployerLambdaName;
39
+ config.app.lambdaName = appLambdaName;
40
+ config.app.name = appName;
41
+ config.app.semVer = semVer;
42
+ // Get the account ID and region from STS
43
+ // TODO: Move this to the right place
44
+ if (config.app.awsAccountID === 0 || config.app.awsRegion === '') {
45
+ const stsClient = new sts.STSClient({
46
+ maxAttempts: 8,
47
+ });
48
+ const stsResponse = await stsClient.send(new sts.GetCallerIdentityCommand({}));
49
+ if (config.app.awsAccountID === 0) {
50
+ config.app.awsAccountID = parseInt(stsResponse.Account, 10);
51
+ }
52
+ if (config.app.awsRegion === '') {
53
+ config.app.awsRegion = stsClient.config.region;
54
+ }
55
+ }
56
+ this.VersionAndAlias = Versions_1.createVersions(semVer);
57
+ if (config === undefined) {
58
+ this.error('Failed to load the config file');
59
+ }
60
+ if (config.app.staticAssetsPath === undefined) {
61
+ this.error('StaticAssetsPath must be specified in the config file');
62
+ }
63
+ //
64
+ // Setup Tasks
65
+ //
66
+ const tasks = new listr2_1.Listr([
67
+ {
68
+ // TODO: Disable this task if no static assets path
69
+ title: 'Get S3 Temp Credentials',
70
+ task: async (ctx, task) => {
71
+ const origTitle = task.title;
72
+ task.title = RUNNING + origTitle;
73
+ // Confirm the Version Does Not Exist in Published State
74
+ task.output = `Checking if deployed app/version already exists for ${config.app.name}/${semVer}`;
75
+ ctx.preflightResult = await DeployClient_1.default.DeployVersionPreflight({
76
+ config,
77
+ output: (message) => (task.output = message),
78
+ });
79
+ if (ctx.preflightResult.exists) {
80
+ task.output = `Warning: App/Version already exists: ${config.app.name}/${config.app.semVer}`;
81
+ }
82
+ task.title = origTitle;
83
+ },
84
+ },
85
+ {
86
+ // TODO: Disable this task if no Lambda function
87
+ title: 'Deploy to Lambda',
88
+ task: async (ctx, task) => {
89
+ const origTitle = task.title;
90
+ task.title = RUNNING + origTitle;
91
+ // Update the Lambda function
92
+ await this.deployToLambda(config, this.VersionAndAlias, task);
93
+ task.title = origTitle;
94
+ },
95
+ },
96
+ {
97
+ // TODO: Disable this task if no static assets path
98
+ title: 'Confirm Static Assets Folder Exists',
99
+ task: async (ctx, task) => {
100
+ const origTitle = task.title;
101
+ task.title = RUNNING + origTitle;
102
+ // Check that Static Assets Folder exists
103
+ if (!(await fs_extra_1.pathExists(config.app.staticAssetsPath))) {
104
+ this.error(`Static asset path does not exist: ${config.app.staticAssetsPath}`);
105
+ }
106
+ task.title = origTitle;
107
+ },
108
+ },
109
+ {
110
+ // TODO: Disable this task if no static assets path
111
+ title: 'Copy Static Files to Local Upload Dir',
112
+ task: async (ctx, task) => {
113
+ const origTitle = task.title;
114
+ task.title = RUNNING + origTitle;
115
+ // Copy files to local dir to be uploaded
116
+ await S3Uploader_1.default.CopyToUploadDir(config, ctx.preflightResult.response.s3UploadUrl);
117
+ task.title = origTitle;
118
+ },
119
+ },
120
+ {
121
+ // TODO: Disable this task if no static assets path
122
+ title: 'Enumerate Files to Upload to S3',
123
+ task: async (ctx, task) => {
124
+ const origTitle = task.title;
125
+ task.title = RUNNING + origTitle;
126
+ ctx.files = (await S3TransferUtility_1.default.GetFiles(S3Uploader_1.default.TempDir));
127
+ task.title = origTitle;
128
+ },
129
+ },
130
+ {
131
+ // TODO: Disable this task if no static assets path
132
+ title: 'Upload Static Files to S3',
133
+ task: (ctx, task) => {
134
+ const origTitle = task.title;
135
+ task.title = RUNNING + origTitle;
136
+ const { bucketName, destinationPrefix } = S3Uploader_1.default.ParseUploadPath(ctx.preflightResult.response.s3UploadUrl);
137
+ // Use temp credentials for S3
138
+ const s3Client = new s3.S3Client({
139
+ maxAttempts: 16,
140
+ credentials: {
141
+ accessKeyId: ctx.preflightResult.response.awsCredentials.accessKeyId,
142
+ secretAccessKey: ctx.preflightResult.response.awsCredentials.secretAccessKey,
143
+ sessionToken: ctx.preflightResult.response.awsCredentials.sessionToken,
144
+ },
145
+ });
146
+ const pathWithoutAppAndVer = path.join(S3Uploader_1.default.TempDir, destinationPrefix);
147
+ const tasks = ctx.files.map((filePath) => ({
148
+ task: async (ctx, subtask) => {
149
+ const relFilePath = path.relative(pathWithoutAppAndVer, filePath);
150
+ const origTitle = relFilePath;
151
+ subtask.title = RUNNING + origTitle;
152
+ const upload = new lib_storage_1.Upload({
153
+ client: s3Client,
154
+ leavePartsOnError: false,
155
+ params: {
156
+ Bucket: bucketName,
157
+ Key: path.relative(S3Uploader_1.default.TempDir, filePath),
158
+ Body: fs_extra_1.createReadStream(filePath),
159
+ ContentType: mime_types_1.contentType(path.basename(filePath)) || 'application/octet-stream',
160
+ CacheControl: 'max-age=86400; public',
161
+ },
162
+ });
163
+ await upload.done();
164
+ subtask.title = origTitle;
165
+ },
166
+ }));
167
+ task.title = origTitle;
168
+ return task.newListr(tasks, {
169
+ concurrent: 8,
170
+ rendererOptions: {
171
+ clearOutput: false,
172
+ showErrorMessage: true,
173
+ showTimer: true,
174
+ },
175
+ });
176
+ },
177
+ },
178
+ {
179
+ title: `Creating MicroApp Application: ${config.app.name}`,
180
+ task: async (ctx, task) => {
181
+ const origTitle = task.title;
182
+ task.title = RUNNING + origTitle;
183
+ // Call Deployer to Create App if Not Exists
184
+ await DeployClient_1.default.CreateApp(config);
185
+ task.title = origTitle;
186
+ },
187
+ },
188
+ {
189
+ title: `Creating MicroApp Version: ${config.app.semVer}`,
190
+ task: async (ctx, task) => {
191
+ const origTitle = task.title;
192
+ task.title = RUNNING + origTitle;
193
+ // Call Deployer to Deploy AppName/Version
194
+ await DeployClient_1.default.DeployVersion(config, (message) => (task.output = message));
195
+ task.title = origTitle;
196
+ },
197
+ },
198
+ ], {
199
+ rendererOptions: {
200
+ showTimer: true,
201
+ },
202
+ });
203
+ try {
204
+ await tasks.run();
205
+ // this.log(`Published: ${config.app.name}/${config.app.semVer}`);
206
+ }
207
+ catch (error) {
208
+ this.log(`Caught exception: ${error.message}`);
209
+ }
210
+ finally {
211
+ await S3Uploader_1.default.removeTempDirIfExists();
212
+ }
213
+ }
214
+ /**
215
+ * Publish an app version to Lambda
216
+ * @param config
217
+ * @param versions
218
+ */
219
+ async deployToLambda(config, versions, task) {
220
+ var _a;
221
+ // Create Lambda version
222
+ task.output = 'Creating version for Lambda $LATEST';
223
+ const resultUpdate = await lambdaClient.send(new lambda.PublishVersionCommand({
224
+ FunctionName: config.app.lambdaName,
225
+ }));
226
+ const lambdaVersion = resultUpdate.Version;
227
+ task.output = `Lambda version created: ${resultUpdate.Version}`;
228
+ let lastUpdateStatus = resultUpdate.LastUpdateStatus;
229
+ for (let i = 0; i < 5; i++) {
230
+ // When the function is created the status will be "Pending"
231
+ // and we have to wait until it's done creating
232
+ // before we can point an alias to it
233
+ if (lastUpdateStatus === 'Successful') {
234
+ task.output = `Lambda function updated, version: ${lambdaVersion}`;
235
+ break;
236
+ }
237
+ // If it didn't work, wait and try again
238
+ await asyncSetTimeout(1000 * i);
239
+ const resultGet = await lambdaClient.send(new lambda.GetFunctionCommand({
240
+ FunctionName: config.app.lambdaName,
241
+ Qualifier: lambdaVersion,
242
+ }));
243
+ // Save the last update status so we can check on re-loop
244
+ lastUpdateStatus = (_a = resultGet === null || resultGet === void 0 ? void 0 : resultGet.Configuration) === null || _a === void 0 ? void 0 : _a.LastUpdateStatus;
245
+ }
246
+ // Create Lambda alias point
247
+ task.output = `Creating the lambda alias for the new version: ${lambdaVersion}`;
248
+ const resultLambdaAlias = await lambdaClient.send(new lambda.CreateAliasCommand({
249
+ FunctionName: config.app.lambdaName,
250
+ Name: versions.alias,
251
+ FunctionVersion: lambdaVersion,
252
+ }));
253
+ task.output = `Lambda alias created, name: ${resultLambdaAlias.Name}`;
254
+ }
255
+ }
256
+ exports.PublishCommand = PublishCommand;
257
+ PublishCommand.description = 'Publish arbitrary framework app - deploy static assets to S3, alias the $LATEST Lambda function, and add route to API Gateway.';
258
+ PublishCommand.examples = [
259
+ `$ microapps-publish publish -d microapps-deployer-dev -n 0.0.21 -l microapps-app-release-dev -a release
260
+ ✔ Get S3 Temp Credentials [1s]
261
+ ✔ Deploy to Lambda [0.6s]
262
+ ✔ Confirm Static Assets Folder Exists [0.0s]
263
+ ✔ Copy Static Files to Local Upload Dir [0.0s]
264
+ ✔ Enumerate Files to Upload to S3 [0.0s]
265
+ ✔ Upload Static Files to S3 [1s]
266
+ ✔ Creating MicroApp Application: release [0.0s]
267
+ ✔ Creating MicroApp Version: 0.0.21 [1s]
268
+ `,
269
+ ];
270
+ PublishCommand.flags = {
271
+ version: command_1.flags.version({
272
+ char: 'v',
273
+ }),
274
+ help: command_1.flags.help(),
275
+ deployerLambdaName: command_1.flags.string({
276
+ char: 'd',
277
+ multiple: false,
278
+ required: true,
279
+ description: 'Name of the deployer lambda function',
280
+ }),
281
+ newVersion: command_1.flags.string({
282
+ char: 'n',
283
+ multiple: false,
284
+ required: true,
285
+ description: 'New semantic version to apply',
286
+ }),
287
+ appLambdaName: command_1.flags.string({
288
+ char: 'l',
289
+ multiple: false,
290
+ required: false,
291
+ description: 'Name of the application lambda function',
292
+ }),
293
+ appName: command_1.flags.string({
294
+ char: 'a',
295
+ multiple: false,
296
+ required: false,
297
+ description: 'MicroApps app name',
298
+ }),
299
+ };
300
+ //# sourceMappingURL=publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { IApplicationConfig } from './Application';
2
2
  import { IDeployerConfig } from './Deployer';
3
- import { IFileStoreRename } from './FileStore';
4
3
  export interface IConfig {
5
4
  deployer: IDeployerConfig;
6
5
  app: IApplicationConfig;
@@ -12,6 +11,5 @@ export declare class Config implements IConfig {
12
11
  static get envLevel(): 'dev' | 'qa' | 'prod' | 'local';
13
12
  app: IApplicationConfig;
14
13
  deployer: IDeployerConfig;
15
- filestore: IFileStoreRename;
16
14
  }
17
15
  //# sourceMappingURL=Config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/config/Config.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAkB,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAmB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,GAAG,EAAE,kBAAkB,CAAC;CACzB;AAED,qBAmBa,MAAO,YAAW,OAAO;WACtB,WAAW,IAAI,MAAM,EAAE;IAUrC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAU;IAClC,WAAkB,QAAQ,IAAI,OAAO,CAMpC;IAED,WAAkB,QAAQ,IAAI,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAU5D;IAWM,GAAG,EAAG,kBAAkB,CAAC;IAGzB,QAAQ,EAAG,eAAe,CAAC;IAG3B,SAAS,EAAG,gBAAgB,CAAC;CACrC"}
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/config/Config.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAkB,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,GAAG,EAAE,kBAAkB,CAAC;CACzB;AAED,qBAmBa,MAAO,YAAW,OAAO;WACtB,WAAW,IAAI,MAAM,EAAE;IAUrC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAU;IAClC,WAAkB,QAAQ,IAAI,OAAO,CAMpC;IAED,WAAkB,QAAQ,IAAI,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAU5D;IAWM,GAAG,EAAG,kBAAkB,CAAC;IAGzB,QAAQ,EAAG,eAAe,CAAC;CACnC"}
@@ -10,7 +10,6 @@ const ts_convict_1 = require("ts-convict");
10
10
  const FilesExist_1 = require("../lib/FilesExist");
11
11
  const Application_1 = require("./Application");
12
12
  const Deployer_1 = require("./Deployer");
13
- const FileStore_1 = require("./FileStore");
14
13
  let Config = Config_1 = class Config {
15
14
  static configFiles() {
16
15
  const possibleFiles = [
@@ -50,10 +49,6 @@ tslib_1.__decorate([
50
49
  convict.Property(Deployer_1.DeployerConfig),
51
50
  tslib_1.__metadata("design:type", Object)
52
51
  ], Config.prototype, "deployer", void 0);
53
- tslib_1.__decorate([
54
- convict.Property(FileStore_1.FileStoreConfig),
55
- tslib_1.__metadata("design:type", Object)
56
- ], Config.prototype, "filestore", void 0);
57
52
  Config = Config_1 = tslib_1.__decorate([
58
53
  convict.Config({
59
54
  // optional default file to load, no errors if it doesn't exist
@@ -1 +1 @@
1
- {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/config/Config.ts"],"names":[],"mappings":";;;;;AAAA,iFAA+D;AAC/D,sDAAgC;AAChC,4DAAsC;AACtC,2CAAuC;AACvC,kDAA+C;AAC/C,+CAAsE;AACtE,yCAA6D;AAC7D,2CAAgE;AA0BhE,IAAa,MAAM,cAAnB,MAAa,MAAM;IACV,MAAM,CAAC,WAAW;QACvB,MAAM,aAAa,GAAG;YACpB,kBAAkB;YAClB,iBAAiB;YACjB,eAAe,QAAM,CAAC,QAAQ,OAAO;YACrC,eAAe,QAAM,CAAC,QAAQ,MAAM;SACrC,CAAC;QACF,OAAO,uBAAU,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAGM,MAAM,KAAK,QAAQ;QACxB,IAAI,QAAM,CAAC,SAAS,KAAK,SAAS,EAAE;YAClC,MAAM,YAAY,GAAG,IAAI,sBAAS,CAAS,QAAM,CAAC,CAAC;YACnD,QAAM,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,QAAM,CAAC,WAAW,EAAE,CAAC,CAAC;SAC5D;QACD,OAAO,QAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEM,MAAM,KAAK,QAAQ;QACxB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC9C,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YAC9B,OAAO,MAAM,CAAC;SACf;aAAM,IAAI,OAAO,KAAK,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC;SACb;aAAM,IAAI,OAAO,KAAK,OAAO,EAAE;YAC9B,OAAO,OAAO,CAAC;SAChB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CAkBF,CAAA;AAPC;IADC,OAAO,CAAC,QAAQ,CAAC,+BAAiB,CAAC;;mCACJ;AAGhC;IADC,OAAO,CAAC,QAAQ,CAAC,yBAAc,CAAC;;wCACC;AAGlC;IADC,OAAO,CAAC,QAAQ,CAAC,2BAAe,CAAC;;yCACE;AA/CzB,MAAM;IAnBlB,OAAO,CAAC,MAAM,CAAC;QACd,+DAA+D;QAC/D,IAAI,EAAE,YAAY;QAElB,+DAA+D;QAC/D,gBAAgB,EAAE,QAAQ;QAE1B,2CAA2C;QAC3C,MAAM,EAAE;YACN,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,IAAI;SACjB;QAED,6CAA6C;QAC7C,OAAO,EAAE;YACP,GAAG,EAAH,mCAAG;YACH,SAAS,EAAT,yCAAS;SACV;KACF,CAAC;GACW,MAAM,CAgDlB;AAhDY,wBAAM"}
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/config/Config.ts"],"names":[],"mappings":";;;;;AAAA,iFAA+D;AAC/D,sDAAgC;AAChC,4DAAsC;AACtC,2CAAuC;AACvC,kDAA+C;AAC/C,+CAAsE;AACtE,yCAA6D;AA0B7D,IAAa,MAAM,cAAnB,MAAa,MAAM;IACV,MAAM,CAAC,WAAW;QACvB,MAAM,aAAa,GAAG;YACpB,kBAAkB;YAClB,iBAAiB;YACjB,eAAe,QAAM,CAAC,QAAQ,OAAO;YACrC,eAAe,QAAM,CAAC,QAAQ,MAAM;SACrC,CAAC;QACF,OAAO,uBAAU,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAGM,MAAM,KAAK,QAAQ;QACxB,IAAI,QAAM,CAAC,SAAS,KAAK,SAAS,EAAE;YAClC,MAAM,YAAY,GAAG,IAAI,sBAAS,CAAS,QAAM,CAAC,CAAC;YACnD,QAAM,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,QAAM,CAAC,WAAW,EAAE,CAAC,CAAC;SAC5D;QACD,OAAO,QAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEM,MAAM,KAAK,QAAQ;QACxB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC9C,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YAC9B,OAAO,MAAM,CAAC;SACf;aAAM,IAAI,OAAO,KAAK,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC;SACb;aAAM,IAAI,OAAO,KAAK,OAAO,EAAE;YAC9B,OAAO,OAAO,CAAC;SAChB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CAeF,CAAA;AAJC;IADC,OAAO,CAAC,QAAQ,CAAC,+BAAiB,CAAC;;mCACJ;AAGhC;IADC,OAAO,CAAC,QAAQ,CAAC,yBAAc,CAAC;;wCACC;AA5CvB,MAAM;IAnBlB,OAAO,CAAC,MAAM,CAAC;QACd,+DAA+D;QAC/D,IAAI,EAAE,YAAY;QAElB,+DAA+D;QAC/D,gBAAgB,EAAE,QAAQ;QAE1B,2CAA2C;QAC3C,MAAM,EAAE;YACN,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,IAAI;SACjB;QAED,6CAA6C;QAC7C,OAAO,EAAE;YACP,GAAG,EAAH,mCAAG;YACH,SAAS,EAAT,yCAAS;SACV;KACF,CAAC;GACW,MAAM,CA6ClB;AA7CY,wBAAM"}