@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
package/dist/index.d.ts CHANGED
@@ -1,31 +1,2 @@
1
- #!/usr/bin/env node
2
- import 'source-map-support/register';
3
- import 'reflect-metadata';
4
- import { Command, flags as flagsParser } from '@oclif/command';
5
- import { IConfig as OCLIFIConfig } from '@oclif/config';
6
- declare class PublishTool extends Command {
7
- static flags: {
8
- version: import("@oclif/parser/lib/flags").IBooleanFlag<void>;
9
- help: import("@oclif/parser/lib/flags").IBooleanFlag<void>;
10
- deployerLambdaName: flagsParser.IOptionFlag<string>;
11
- newVersion: flagsParser.IOptionFlag<string>;
12
- repoName: flagsParser.IOptionFlag<string>;
13
- leaveCopy: import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
14
- };
15
- private static escapeRegExp;
16
- private VersionAndAlias;
17
- private IMAGE_TAG;
18
- private IMAGE_URI;
19
- private FILES_TO_MODIFY;
20
- private _restoreFilesStarted;
21
- constructor(argv: string[], config: OCLIFIConfig);
22
- run(): Promise<void>;
23
- restoreFiles(): Promise<void>;
24
- private createVersions;
25
- private writeNewVersions;
26
- private loginToECR;
27
- private publishToECR;
28
- private deployToLambda;
29
- }
30
- export default PublishTool;
1
+ export { run } from '@oclif/command';
31
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAGA,OAAO,6BAA6B,CAAC;AAErC,OAAO,kBAAkB,CAAC;AAK1B,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,eAAe,CAAC;AA2BxD,cAAM,WAAY,SAAQ,OAAO;IAC/B,MAAM,CAAC,KAAK;;;;;;;MA6BV;IAGF,OAAO,CAAC,MAAM,CAAC,YAAY;IAI3B,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,eAAe,CAGnB;IACJ,OAAO,CAAC,oBAAoB,CAAS;gBAEzB,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY;IAK1C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAgOb,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB1C,OAAO,CAAC,cAAc;YAIR,gBAAgB;YA0ChB,UAAU;YAeV,YAAY;YAQZ,cAAc;CAgD7B;AAKD,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,369 +1,6 @@
1
- #!/usr/bin/env node
2
1
  "use strict";
3
- /* eslint-disable no-console */
4
2
  Object.defineProperty(exports, "__esModule", { value: true });
5
- const tslib_1 = require("tslib");
6
- require("source-map-support/register");
7
- // Used by ts-convict
8
- require("reflect-metadata");
9
- const child_process_1 = require("child_process");
10
- const util = tslib_1.__importStar(require("util"));
11
- const lambda = tslib_1.__importStar(require("@aws-sdk/client-lambda"));
12
- const sts = tslib_1.__importStar(require("@aws-sdk/client-sts"));
13
- const command_1 = require("@oclif/command");
14
- const errors_1 = require("@oclif/errors");
15
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
16
- const fs_extra_1 = require("fs-extra");
17
- const listr2_1 = require("listr2");
18
- const Config_1 = require("./config/Config");
19
- const DeployClient_1 = tslib_1.__importDefault(require("./DeployClient"));
20
- const S3Uploader_1 = tslib_1.__importDefault(require("./S3Uploader"));
21
- const asyncSetTimeout = util.promisify(setTimeout);
22
- const asyncExec = util.promisify(child_process_1.exec);
23
- const RUNNING_TEXT = ' RUNS ';
24
- const RUNNING = chalk_1.default.reset.inverse.yellow.bold(RUNNING_TEXT) + ' ';
25
- const lambdaClient = new lambda.LambdaClient({
26
- maxAttempts: 8,
27
- });
28
- class PublishTool extends command_1.Command {
29
- constructor(argv, config) {
30
- super(argv, config);
31
- this.IMAGE_TAG = '';
32
- this.IMAGE_URI = '';
33
- this._restoreFilesStarted = false;
34
- this.restoreFiles = this.restoreFiles.bind(this);
35
- }
36
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping
37
- static escapeRegExp(value) {
38
- return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
39
- }
40
- async run() {
41
- const { flags: parsedFlags } = this.parse(PublishTool);
42
- const version = parsedFlags.newVersion;
43
- const leaveFiles = parsedFlags.leaveCopy;
44
- const lambdaName = parsedFlags.deployerLambdaName;
45
- const ecrRepo = parsedFlags.repoName;
46
- // Override the config value
47
- const config = Config_1.Config.instance;
48
- config.deployer.lambdaName = lambdaName;
49
- config.app.semVer = version;
50
- // Get the account ID and region from STS
51
- // TODO: Move this to the right place
52
- if (config.app.awsAccountID === 0 || config.app.awsRegion === '') {
53
- const stsClient = new sts.STSClient({
54
- maxAttempts: 8,
55
- });
56
- const stsResponse = await stsClient.send(new sts.GetCallerIdentityCommand({}));
57
- if (config.app.awsAccountID === 0) {
58
- config.app.awsAccountID = parseInt(stsResponse.Account, 10);
59
- }
60
- if (config.app.awsRegion === '') {
61
- config.app.awsRegion = stsClient.config.region;
62
- }
63
- }
64
- if (config.app.ecrHost === '') {
65
- config.app.ecrHost = `${config.app.awsAccountID}.dkr.ecr.${config.app.awsRegion}.amazonaws.com`;
66
- }
67
- if (ecrRepo) {
68
- config.app.ecrRepoName = ecrRepo;
69
- }
70
- else if (config.app.ecrRepoName === '') {
71
- config.app.ecrRepoName = `microapps-app-${config.app.name}${Config_1.Config.envLevel}-repo`;
72
- }
73
- this.VersionAndAlias = this.createVersions(version);
74
- const versionOnly = { version: this.VersionAndAlias.version };
75
- this.FILES_TO_MODIFY = [
76
- { path: 'package.json', versions: versionOnly },
77
- // { path: 'deploy.json', versions: this.VersionAndAlias },
78
- { path: 'next.config.js', versions: versionOnly },
79
- ];
80
- // Install handler to ensure that we restore files
81
- process.on('SIGINT', async () => {
82
- if (this._restoreFilesStarted) {
83
- return;
84
- }
85
- else {
86
- this._restoreFilesStarted = true;
87
- }
88
- console.log('Caught Ctrl-C, restoring files');
89
- await S3Uploader_1.default.removeTempDirIfExists();
90
- await this.restoreFiles();
91
- });
92
- if (config === undefined) {
93
- this.error('Failed to load the config file');
94
- }
95
- if (config.app.staticAssetsPath === undefined) {
96
- this.error('StaticAssetsPath must be specified in the config file');
97
- }
98
- //
99
- // TODO: Setup Tasks
100
- //
101
- const tasks = new listr2_1.Listr([
102
- {
103
- title: 'Logging into ECR',
104
- task: async (ctx, task) => {
105
- const origTitle = task.title;
106
- task.title = RUNNING + origTitle;
107
- await this.loginToECR(config);
108
- task.title = origTitle;
109
- },
110
- },
111
- {
112
- title: 'Modifying Config Files',
113
- task: async (ctx, task) => {
114
- const origTitle = task.title;
115
- task.title = RUNNING + origTitle;
116
- // Modify the existing files with the new version
117
- for (const fileToModify of this.FILES_TO_MODIFY) {
118
- task.output = `Patching version (${this.VersionAndAlias.version}) into ${fileToModify.path}`;
119
- if (!(await this.writeNewVersions(fileToModify.path, fileToModify.versions, leaveFiles))) {
120
- task.output = `Failed modifying file: ${fileToModify.path}`;
121
- }
122
- }
123
- task.title = origTitle;
124
- },
125
- },
126
- {
127
- title: 'Preflight Version Check',
128
- task: async (ctx, task) => {
129
- const origTitle = task.title;
130
- task.title = RUNNING + origTitle;
131
- // Confirm the Version Does Not Exist in Published State
132
- task.output = `Checking if deployed app/version already exists for ${config.app.name}/${version}`;
133
- ctx.preflightResult = await DeployClient_1.default.DeployVersionPreflight(config);
134
- if (ctx.preflightResult.exists) {
135
- task.output = `Warning: App/Version already exists: ${config.app.name}/${config.app.semVer}`;
136
- }
137
- task.title = origTitle;
138
- },
139
- },
140
- {
141
- title: 'Serverless Next.js Build',
142
- task: async (ctx, task) => {
143
- const origTitle = task.title;
144
- task.title = RUNNING + origTitle;
145
- task.output = `Invoking serverless next.js build for ${config.app.name}/${version}`;
146
- // Run the serverless next.js build
147
- await asyncExec('serverless');
148
- if (config.app.serverlessNextRouterPath !== undefined) {
149
- task.output = 'Copying Serverless Next.js router to build output directory';
150
- await fs_extra_1.promises.copyFile(config.app.serverlessNextRouterPath, './.serverless_nextjs/index.js');
151
- }
152
- task.title = origTitle;
153
- },
154
- },
155
- {
156
- title: 'Publish to ECR',
157
- task: async (ctx, task) => {
158
- const origTitle = task.title;
159
- task.title = RUNNING + origTitle;
160
- // Docker, build, tag, push to ECR
161
- // Note: Need to already have AWS env vars set
162
- await this.publishToECR(config);
163
- task.title = origTitle;
164
- },
165
- },
166
- {
167
- title: 'Deploy to Lambda',
168
- task: async (ctx, task) => {
169
- const origTitle = task.title;
170
- task.title = RUNNING + origTitle;
171
- // Update the Lambda function
172
- await this.deployToLambda(config, this.VersionAndAlias);
173
- task.title = origTitle;
174
- },
175
- },
176
- {
177
- title: 'Confirm Static Assets Folder Exists',
178
- task: async (ctx, task) => {
179
- const origTitle = task.title;
180
- task.title = RUNNING + origTitle;
181
- // Check that Static Assets Folder exists
182
- if (!(await fs_extra_1.pathExists(config.app.staticAssetsPath))) {
183
- this.error(`Static asset path does not exist: ${config.app.staticAssetsPath}`);
184
- }
185
- task.title = origTitle;
186
- },
187
- },
188
- {
189
- title: 'Upload Files to S3 Staging AppName/Version Prefix',
190
- task: async (ctx, task) => {
191
- const origTitle = task.title;
192
- task.title = RUNNING + origTitle;
193
- // Upload Files to S3 Staging AppName/Version Prefix
194
- await S3Uploader_1.default.Upload(config, ctx.preflightResult.response.s3UploadUrl, ctx.preflightResult.response);
195
- task.title = origTitle;
196
- },
197
- },
198
- {
199
- title: `Creating MicroApp Application: ${config.app.name}`,
200
- task: async (ctx, task) => {
201
- const origTitle = task.title;
202
- task.title = RUNNING + origTitle;
203
- // Call Deployer to Create App if Not Exists
204
- await DeployClient_1.default.CreateApp(config);
205
- task.title = origTitle;
206
- },
207
- },
208
- {
209
- title: `Creating MicroApp Version: ${config.app.semVer}`,
210
- task: async (ctx, task) => {
211
- const origTitle = task.title;
212
- task.title = RUNNING + origTitle;
213
- // Call Deployer to Deploy AppName/Version
214
- await DeployClient_1.default.DeployVersion(config);
215
- task.title = origTitle;
216
- },
217
- },
218
- ]);
219
- try {
220
- await tasks.run();
221
- console.log(`Published: ${config.app.name}/${config.app.semVer}`);
222
- }
223
- catch (error) {
224
- console.log(`Caught exception: ${error.message}`);
225
- }
226
- finally {
227
- await this.restoreFiles();
228
- }
229
- }
230
- async restoreFiles() {
231
- // Put the old files back when succeeded or failed
232
- for (const fileToModify of this.FILES_TO_MODIFY) {
233
- try {
234
- const stats = await fs_extra_1.promises.stat(`${fileToModify.path}.original`);
235
- if (stats.isFile()) {
236
- // Remove the possibly modified file
237
- await fs_extra_1.promises.unlink(fileToModify.path);
238
- // Move the original file back
239
- await fs_extra_1.promises.rename(`${fileToModify.path}.original`, fileToModify.path);
240
- }
241
- }
242
- catch (_a) {
243
- // don't care... if the file doesn't exist we can't do anything
244
- }
245
- }
246
- }
247
- createVersions(version) {
248
- return { version, alias: `v${version.replace(/\./g, '_')}` };
249
- }
250
- async writeNewVersions(path, requiredVersions, leaveFiles) {
251
- const stats = await fs_extra_1.promises.stat(path);
252
- if (!stats.isFile) {
253
- return false;
254
- }
255
- // Make a backup of the file
256
- await fs_extra_1.promises.copyFile(path, `${path}.original`);
257
- // File exists, check that it has the required version strings
258
- let fileText = await fs_extra_1.promises.readFile(path, 'utf8');
259
- for (const key of Object.keys(requiredVersions)) {
260
- const placeHolder = key === 'version' ? '0.0.0' : 'v0_0_0';
261
- if (fileText.indexOf(placeHolder) === -1) {
262
- // The required placeholder is missing
263
- return false;
264
- }
265
- else {
266
- const regExp = new RegExp(PublishTool.escapeRegExp(placeHolder), 'g');
267
- fileText = fileText.replace(regExp, key === 'version' ? requiredVersions.version : requiredVersions.alias);
268
- }
269
- }
270
- // Write the updated file contents
271
- await fs_extra_1.promises.writeFile(path, fileText, 'utf8');
272
- // Leave a copy of the modified file if requested
273
- if (leaveFiles) {
274
- // This copy will overwrite an existing file
275
- await fs_extra_1.promises.copyFile(path, `${path}.modified`);
276
- }
277
- return true;
278
- }
279
- async loginToECR(config) {
280
- this.IMAGE_TAG = `${config.app.ecrRepoName}:${this.VersionAndAlias.version}`;
281
- this.IMAGE_URI = `${config.app.ecrHost}/${this.IMAGE_TAG}`;
282
- try {
283
- await asyncExec(`aws ecr get-login-password --region ${config.app.awsRegion} | docker login --username AWS --password-stdin ${config.app.ecrHost}`);
284
- }
285
- catch (error) {
286
- throw new Error(`ECR Login Failed: ${error.message}`);
287
- }
288
- return true;
289
- }
290
- async publishToECR(config) {
291
- console.log('Starting Docker build');
292
- await asyncExec(`docker build -f Dockerfile -t ${this.IMAGE_TAG} .`);
293
- await asyncExec(`docker tag ${this.IMAGE_TAG} ${config.app.ecrHost}/${this.IMAGE_TAG}`);
294
- console.log('Starting Docker push to ECR');
295
- await asyncExec(`docker push ${config.app.ecrHost}/${this.IMAGE_TAG}`);
296
- }
297
- async deployToLambda(config, versions) {
298
- var _a;
299
- // Create Lambda version
300
- console.log('Updating Lambda code to point to new Docker image');
301
- const resultUpdate = await lambdaClient.send(new lambda.UpdateFunctionCodeCommand({
302
- FunctionName: config.app.lambdaName,
303
- ImageUri: this.IMAGE_URI,
304
- Publish: true,
305
- }));
306
- const lambdaVersion = resultUpdate.Version;
307
- console.log('Lambda version created: ', resultUpdate.Version);
308
- let lastUpdateStatus = resultUpdate.LastUpdateStatus;
309
- for (let i = 0; i < 5; i++) {
310
- // When the function is created the status will be "Pending"
311
- // and we have to wait until it's done creating
312
- // before we can point an alias to it
313
- if (lastUpdateStatus === 'Successful') {
314
- console.log(`Lambda function updated, version: ${lambdaVersion}`);
315
- break;
316
- }
317
- // If it didn't work, wait and try again
318
- await asyncSetTimeout(1000 * i);
319
- const resultGet = await lambdaClient.send(new lambda.GetFunctionCommand({
320
- FunctionName: config.app.lambdaName,
321
- Qualifier: lambdaVersion,
322
- }));
323
- // Save the last update status so we can check on re-loop
324
- lastUpdateStatus = (_a = resultGet === null || resultGet === void 0 ? void 0 : resultGet.Configuration) === null || _a === void 0 ? void 0 : _a.LastUpdateStatus;
325
- }
326
- // Create Lambda alias point
327
- console.log(`Creating the lambda alias for the new version: ${lambdaVersion}`);
328
- const resultLambdaAlias = await lambdaClient.send(new lambda.CreateAliasCommand({
329
- FunctionName: config.app.lambdaName,
330
- Name: versions.alias,
331
- FunctionVersion: lambdaVersion,
332
- }));
333
- console.log(`Lambda alias created, name: ${resultLambdaAlias.Name}`);
334
- }
335
- }
336
- PublishTool.flags = {
337
- version: command_1.flags.version({
338
- char: 'v',
339
- }),
340
- help: command_1.flags.help(),
341
- deployerLambdaName: command_1.flags.string({
342
- char: 'd',
343
- multiple: false,
344
- required: true,
345
- description: 'Name of the deployer lambda function',
346
- }),
347
- newVersion: command_1.flags.string({
348
- char: 'n',
349
- multiple: false,
350
- required: true,
351
- description: 'New semantic version to apply',
352
- }),
353
- repoName: command_1.flags.string({
354
- char: 'r',
355
- multiple: false,
356
- required: true,
357
- description: 'Name (not URI) of the Docker repo for the app',
358
- }),
359
- leaveCopy: command_1.flags.boolean({
360
- char: 'l',
361
- default: false,
362
- required: false,
363
- description: 'Leave a copy of the modifed files as .modified',
364
- }),
365
- };
366
- // @ts-expect-error catch is actually defined
367
- PublishTool.run().catch(errors_1.handle);
368
- exports.default = PublishTool;
3
+ exports.run = void 0;
4
+ var command_1 = require("@oclif/command");
5
+ Object.defineProperty(exports, "run", { enumerable: true, get: function () { return command_1.run; } });
369
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA,+BAA+B;;;AAE/B,uCAAqC;AACrC,qBAAqB;AACrB,4BAA0B;AAC1B,iDAAqC;AACrC,mDAA6B;AAC7B,uEAAiD;AACjD,iEAA2C;AAC3C,4CAA+D;AAE/D,0CAAuD;AACvD,0DAA0B;AAC1B,uCAAsD;AACtD,mCAA4E;AAC5E,4CAAkD;AAClD,0EAA6E;AAC7E,sEAAsC;AACtC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAI,CAAC,CAAC;AAEvC,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,OAAO,GAAG,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC;AAEpE,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC;IAC3C,WAAW,EAAE,CAAC;CACf,CAAC,CAAC;AAWH,MAAM,WAAY,SAAQ,iBAAO;IA8C/B,YAAY,IAAc,EAAE,MAAoB;QAC9C,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QATd,cAAS,GAAG,EAAE,CAAC;QACf,cAAS,GAAG,EAAE,CAAC;QAKf,yBAAoB,GAAG,KAAK,CAAC;QAInC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAjBD,6FAA6F;IACrF,MAAM,CAAC,YAAY,CAAC,KAAa;QACvC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,oCAAoC;IAC3F,CAAC;IAgBD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC;QACvC,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC;QACzC,MAAM,UAAU,GAAG,WAAW,CAAC,kBAAkB,CAAC;QAClD,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC;QAErC,4BAA4B;QAC5B,MAAM,MAAM,GAAG,eAAM,CAAC,QAAQ,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;QAE5B,yCAAyC;QACzC,qCAAqC;QACrC,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,KAAK,EAAE,EAAE;YAChE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC;gBAClC,WAAW,EAAE,CAAC;aACf,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/E,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,EAAE;gBACjC,MAAM,CAAC,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;aAC7D;YACD,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,KAAK,EAAE,EAAE;gBAC/B,MAAM,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,MAAgB,CAAC;aAC1D;SACF;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,EAAE;YAC7B,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,YAAY,MAAM,CAAC,GAAG,CAAC,SAAS,gBAAgB,CAAC;SACjG;QACD,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;SAClC;aAAM,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,EAAE;YACxC,MAAM,CAAC,GAAG,CAAC,WAAW,GAAG,iBAAiB,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,eAAM,CAAC,QAAQ,OAAO,CAAC;SACpF;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAE9D,IAAI,CAAC,eAAe,GAAG;YACrB,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE;YAC/C,2DAA2D;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE;SACP,CAAC;QAE7C,kDAAkD;QAClD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC7B,OAAO;aACR;iBAAM;gBACL,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;aAClC;YACD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAC9C,MAAM,oBAAU,CAAC,qBAAqB,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;SAC9C;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,gBAAgB,KAAK,SAAS,EAAE;YAC7C,IAAI,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;SACrE;QAED,EAAE;QACF,oBAAoB;QACpB,EAAE;QAEF,MAAM,KAAK,GAAG,IAAI,cAAK,CAAW;YAChC;gBACE,KAAK,EAAE,kBAAkB;gBACzB,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;oBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;oBAEjC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAE9B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,KAAK,EAAE,wBAAwB;gBAC/B,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;oBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;oBAEjC,iDAAiD;oBACjD,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE;wBAC/C,IAAI,CAAC,MAAM,GAAG,qBAAqB,IAAI,CAAC,eAAe,CAAC,OAAO,UAAU,YAAY,CAAC,IAAI,EAAE,CAAC;wBAC7F,IACE,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,EACpF;4BACA,IAAI,CAAC,MAAM,GAAG,0BAA0B,YAAY,CAAC,IAAI,EAAE,CAAC;yBAC7D;qBACF;oBAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,KAAK,EAAE,yBAAyB;gBAChC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;oBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;oBAEjC,wDAAwD;oBACxD,IAAI,CAAC,MAAM,GAAG,uDAAuD,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;oBAClG,GAAG,CAAC,eAAe,GAAG,MAAM,sBAAY,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;oBACxE,IAAI,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE;wBAC9B,IAAI,CAAC,MAAM,GAAG,wCAAwC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;qBAC9F;oBAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,KAAK,EAAE,0BAA0B;gBACjC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;oBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;oBAEjC,IAAI,CAAC,MAAM,GAAG,yCAAyC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;oBAEpF,mCAAmC;oBACnC,MAAM,SAAS,CAAC,YAAY,CAAC,CAAC;oBAE9B,IAAI,MAAM,CAAC,GAAG,CAAC,wBAAwB,KAAK,SAAS,EAAE;wBACrD,IAAI,CAAC,MAAM,GAAG,6DAA6D,CAAC;wBAC5E,MAAM,mBAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,+BAA+B,CAAC,CAAC;qBACzF;oBAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,KAAK,EAAE,gBAAgB;gBACvB,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;oBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;oBAEjC,kCAAkC;oBAClC,8CAA8C;oBAC9C,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBAEhC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,KAAK,EAAE,kBAAkB;gBACzB,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;oBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;oBAEjC,6BAA6B;oBAC7B,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;oBAExD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,KAAK,EAAE,qCAAqC;gBAC5C,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;oBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;oBAEjC,yCAAyC;oBACzC,IAAI,CAAC,CAAC,MAAM,qBAAU,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE;wBACpD,IAAI,CAAC,KAAK,CAAC,qCAAqC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;qBAChF;oBAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,KAAK,EAAE,mDAAmD;gBAC1D,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;oBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;oBAEjC,oDAAoD;oBACpD,MAAM,oBAAU,CAAC,MAAM,CACrB,MAAM,EACN,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,EACxC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAC7B,CAAC;oBAEF,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,KAAK,EAAE,kCAAkC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;gBAC1D,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;oBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;oBAEjC,4CAA4C;oBAC5C,MAAM,sBAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAErC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,KAAK,EAAE,8BAA8B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE;gBACxD,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;oBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;oBAEjC,0CAA0C;oBAC1C,MAAM,sBAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBAEzC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;gBACzB,CAAC;aACF;SACF,CAAC,CAAC;QAEH,IAAI;YACF,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;SACnE;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACnD;gBAAS;YACR,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;SAC3B;IACH,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,kDAAkD;QAClD,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE;YAC/C,IAAI;gBACF,MAAM,KAAK,GAAG,MAAM,mBAAE,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,WAAW,CAAC,CAAC;gBAC7D,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;oBAClB,oCAAoC;oBACpC,MAAM,mBAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBAEnC,8BAA8B;oBAC9B,MAAM,mBAAE,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;iBACrE;aACF;YAAC,WAAM;gBACN,+DAA+D;aAChE;SACF;IACH,CAAC;IAEO,cAAc,CAAC,OAAe;QACpC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;IAC/D,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,IAAY,EACZ,gBAA2B,EAC3B,UAAmB;QAEnB,MAAM,KAAK,GAAG,MAAM,mBAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACjB,OAAO,KAAK,CAAC;SACd;QAED,4BAA4B;QAC5B,MAAM,mBAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC;QAE5C,8DAA8D;QAC9D,IAAI,QAAQ,GAAG,MAAM,mBAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC/C,MAAM,WAAW,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC3D,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE;gBACxC,sCAAsC;gBACtC,OAAO,KAAK,CAAC;aACd;iBAAM;gBACL,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC;gBACtE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CACzB,MAAM,EACN,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAE,gBAAgB,CAAC,KAAgB,CAClF,CAAC;aACH;SACF;QAED,kCAAkC;QAClC,MAAM,mBAAE,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE3C,iDAAiD;QACjD,IAAI,UAAU,EAAE;YACd,4CAA4C;YAC5C,MAAM,mBAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC;SAC7C;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,MAAe;QACtC,IAAI,CAAC,SAAS,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC7E,IAAI,CAAC,SAAS,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAE3D,IAAI;YACF,MAAM,SAAS,CACb,uCAAuC,MAAM,CAAC,GAAG,CAAC,SAAS,mDAAmD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CACnI,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACvD;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAAe;QACxC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,MAAM,SAAS,CAAC,iCAAiC,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC;QACtE,MAAM,SAAS,CAAC,cAAc,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,SAAS,CAAC,eAAe,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACzE,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,MAAe,EAAE,QAAmB;;QAC/D,wBAAwB;QACxB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,IAAI,CAC1C,IAAI,MAAM,CAAC,yBAAyB,CAAC;YACnC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU;YACnC,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,OAAO,EAAE,IAAI;SACd,CAAC,CACH,CAAC;QACF,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QAE9D,IAAI,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,4DAA4D;YAC5D,+CAA+C;YAC/C,qCAAqC;YACrC,IAAI,gBAAgB,KAAK,YAAY,EAAE;gBACrC,OAAO,CAAC,GAAG,CAAC,qCAAqC,aAAa,EAAE,CAAC,CAAC;gBAClE,MAAM;aACP;YAED,wCAAwC;YACxC,MAAM,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAEhC,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,CACvC,IAAI,MAAM,CAAC,kBAAkB,CAAC;gBAC5B,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU;gBACnC,SAAS,EAAE,aAAa;aACzB,CAAC,CACH,CAAC;YAEF,yDAAyD;YACzD,gBAAgB,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa,0CAAE,gBAAgB,CAAC;SAC/D;QAED,4BAA4B;QAC5B,OAAO,CAAC,GAAG,CAAC,kDAAkD,aAAa,EAAE,CAAC,CAAC;QAC/E,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,IAAI,CAC/C,IAAI,MAAM,CAAC,kBAAkB,CAAC;YAC5B,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU;YACnC,IAAI,EAAE,QAAQ,CAAC,KAAK;YACpB,eAAe,EAAE,aAAa;SAC/B,CAAC,CACH,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,+BAA+B,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;;AAxZM,iBAAK,GAAG;IACb,OAAO,EAAE,eAAW,CAAC,OAAO,CAAC;QAC3B,IAAI,EAAE,GAAG;KACV,CAAC;IACF,IAAI,EAAE,eAAW,CAAC,IAAI,EAAE;IACxB,kBAAkB,EAAE,eAAW,CAAC,MAAM,CAAC;QACrC,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,sCAAsC;KACpD,CAAC;IACF,UAAU,EAAE,eAAW,CAAC,MAAM,CAAC;QAC7B,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,+BAA+B;KAC7C,CAAC;IACF,QAAQ,EAAE,eAAW,CAAC,MAAM,CAAC;QAC3B,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,+CAA+C;KAC7D,CAAC;IACF,SAAS,EAAE,eAAW,CAAC,OAAO,CAAC;QAC7B,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,gDAAgD;KAC9D,CAAC;CACH,CAAC;AA8XJ,6CAA6C;AAC7C,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,eAAY,CAAC,CAAC;AAEtC,kBAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,0CAAqC;AAA5B,8FAAA,GAAG,OAAA"}
@@ -0,0 +1,34 @@
1
+ import * as lambda from '@aws-sdk/client-lambda';
2
+ import { IDeployVersionPreflightResponse } from '@pwrdrvr/microapps-deployer-lib';
3
+ import { IConfig } from '../config/Config';
4
+ export interface IDeployVersionPreflightResult {
5
+ exists: boolean;
6
+ response: IDeployVersionPreflightResponse;
7
+ }
8
+ export default class DeployClient {
9
+ static readonly _client: lambda.LambdaClient;
10
+ static readonly _decoder: TextDecoder;
11
+ static CreateApp(config: IConfig): Promise<void>;
12
+ /**
13
+ * Check if version exists.
14
+ * Optionally get S3 creds for static asset upload.
15
+ * @param config
16
+ * @param output
17
+ * @returns
18
+ */
19
+ static DeployVersionPreflight(opts: {
20
+ config: IConfig;
21
+ needS3Creds?: boolean;
22
+ output: (message: string) => void;
23
+ }): Promise<IDeployVersionPreflightResult>;
24
+ /**
25
+ * Copy S3 static assets from staging to live bucket.
26
+ * Create API Gateway Integration for app (if needed).
27
+ * Give API Gateway permission to call the Lambda.
28
+ * Create API Gateway routes for this specific version.
29
+ * @param config
30
+ * @param task
31
+ */
32
+ static DeployVersion(config: IConfig, output: (message: string) => void): Promise<void>;
33
+ }
34
+ //# sourceMappingURL=DeployClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeployClient.d.ts","sourceRoot":"","sources":["../../src/lib/DeployClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAEL,+BAA+B,EAIhC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,+BAA+B,CAAC;CAC3C;AAED,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,OAAO,sBAEpB;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAA4B;WAEhC,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB7D;;;;;;OAMG;WACiB,sBAAsB,CAAC,IAAI,EAAE;QAC/C,MAAM,EAAE,OAAO,CAAC;QAChB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;KACnC,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAgC1C;;;;;;;OAOG;WACiB,aAAa,CAC/B,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,IAAI,CAAC;CA6BjB"}
@@ -23,11 +23,20 @@ class DeployClient {
23
23
  throw new Error(`App Create - Lambda Invoke Failed: ${JSON.stringify(response)}`);
24
24
  }
25
25
  }
26
- static async DeployVersionPreflight(config) {
26
+ /**
27
+ * Check if version exists.
28
+ * Optionally get S3 creds for static asset upload.
29
+ * @param config
30
+ * @param output
31
+ * @returns
32
+ */
33
+ static async DeployVersionPreflight(opts) {
34
+ const { config, needS3Creds = true, output } = opts;
27
35
  const request = {
28
36
  type: 'deployVersionPreflight',
29
37
  appName: config.app.name,
30
38
  semVer: config.app.semVer,
39
+ needS3Creds,
31
40
  };
32
41
  const response = await this._client.send(new lambda.InvokeCommand({
33
42
  FunctionName: config.deployer.lambdaName,
@@ -36,10 +45,11 @@ class DeployClient {
36
45
  if (response.$metadata.httpStatusCode === 200 && response.Payload !== undefined) {
37
46
  const dResponse = JSON.parse(Buffer.from(response.Payload).toString('utf-8'));
38
47
  if (dResponse.statusCode === 404) {
39
- console.log(`App/Version do not exist: ${config.app.name}/${config.app.semVer}`);
48
+ output(`App/Version does not exist: ${config.app.name}/${config.app.semVer}`);
40
49
  return { exists: false, response: dResponse };
41
50
  }
42
51
  else {
52
+ output(`App/Version exists: ${config.app.name}/${config.app.semVer}`);
43
53
  return { exists: true, response: dResponse };
44
54
  }
45
55
  }
@@ -47,7 +57,15 @@ class DeployClient {
47
57
  throw new Error(`Lambda call to DeployVersionPreflight failed: ${JSON.stringify(response)}`);
48
58
  }
49
59
  }
50
- static async DeployVersion(config) {
60
+ /**
61
+ * Copy S3 static assets from staging to live bucket.
62
+ * Create API Gateway Integration for app (if needed).
63
+ * Give API Gateway permission to call the Lambda.
64
+ * Create API Gateway routes for this specific version.
65
+ * @param config
66
+ * @param task
67
+ */
68
+ static async DeployVersion(config, output) {
51
69
  const request = {
52
70
  type: 'deployVersion',
53
71
  appName: config.app.name,
@@ -62,10 +80,11 @@ class DeployClient {
62
80
  if (response.$metadata.httpStatusCode === 200 && response.Payload !== undefined) {
63
81
  const dResponse = JSON.parse(Buffer.from(response.Payload).toString('utf-8'));
64
82
  if (dResponse.statusCode === 201) {
65
- console.log(`Deploy succeeded: ${config.app.name}/${config.app.semVer}`);
83
+ output(`Deploy succeeded: ${config.app.name}/${config.app.semVer}`);
66
84
  }
67
85
  else {
68
- console.log(`Deploy failed with: ${dResponse.statusCode}`);
86
+ output(`Deploy failed with: ${dResponse.statusCode}`);
87
+ throw new Error(`Lambda call to DeployVersionfailed with: ${dResponse.statusCode}`);
69
88
  }
70
89
  }
71
90
  else {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeployClient.js","sourceRoot":"","sources":["../../src/lib/DeployClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { IDeployVersionPreflightResponse } from '@pwrdrvr/microapps-deployer-lib';
2
+ export default class S3TransferUtility {
3
+ /**
4
+ * @deprecated 2021-11-27
5
+ *
6
+ * @param s3Path
7
+ * @param destPrefixPath
8
+ * @param bucketName
9
+ * @param preflightResponse
10
+ */
11
+ static UploadDir(s3Path: string, destPrefixPath: string, bucketName: string, preflightResponse: IDeployVersionPreflightResponse): Promise<void>;
12
+ /**
13
+ * Resursively enumerate the files to be uploaded
14
+ * @param dir
15
+ * @returns
16
+ */
17
+ static GetFiles(dir: string): Promise<string | string[]>;
18
+ }
19
+ //# sourceMappingURL=S3TransferUtility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3TransferUtility.d.ts","sourceRoot":"","sources":["../../src/lib/S3TransferUtility.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAIlF,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;;;;OAOG;WACiB,SAAS,CAC3B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,+BAA+B,GACjD,OAAO,CAAC,IAAI,CAAC;IAqDhB;;;;OAIG;WACiB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;CAUtE"}
@@ -11,6 +11,14 @@ const lib_storage_1 = require("@aws-sdk/lib-storage");
11
11
  const mime_types_1 = require("mime-types");
12
12
  const p_map_1 = tslib_1.__importDefault(require("p-map"));
13
13
  class S3TransferUtility {
14
+ /**
15
+ * @deprecated 2021-11-27
16
+ *
17
+ * @param s3Path
18
+ * @param destPrefixPath
19
+ * @param bucketName
20
+ * @param preflightResponse
21
+ */
14
22
  static async UploadDir(s3Path, destPrefixPath, bucketName, preflightResponse) {
15
23
  // Use temp credentials for S3
16
24
  const s3Client = new s3.S3Client({
@@ -49,6 +57,11 @@ class S3TransferUtility {
49
57
  }
50
58
  // Recursive getFiles from
51
59
  // https://stackoverflow.com/a/45130990/831465
60
+ /**
61
+ * Resursively enumerate the files to be uploaded
62
+ * @param dir
63
+ * @returns
64
+ */
52
65
  static async GetFiles(dir) {
53
66
  const dirents = await fs_1.promises.readdir(dir, { withFileTypes: true });
54
67
  const files = await Promise.all(dirents.map((dirent) => {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3TransferUtility.js","sourceRoot":"","sources":["../../src/lib/S3TransferUtility.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,oDAAoD;AACpD,EAAE;;;AAEF,2BAAsD;AACtD,mDAA6B;AAC7B,+DAAyC;AACzC,sDAA8C;AAE9C,2CAAyC;AACzC,0DAAyB;AAEzB,MAAqB,iBAAiB;IACpC;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,SAAS,CAC3B,MAAc,EACd,cAAsB,EACtB,UAAkB,EAClB,iBAAkD;QAElD,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC;YAC/B,WAAW,EAAE,EAAE;YACf,WAAW,EAAE;gBACX,WAAW,EAAE,iBAAiB,CAAC,cAAc,CAAC,WAAW;gBACzD,eAAe,EAAE,iBAAiB,CAAC,cAAc,CAAC,eAAe;gBACjE,YAAY,EAAE,iBAAiB,CAAC,cAAc,CAAC,YAAY;aAC5D;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,MAAM,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAa,CAAC;QACrE,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC/D,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;SACjC;QAED,wCAAwC;QACxC,MAAM,eAAI,CACR,KAAK,EACL,KAAK,EAAE,QAAQ,EAAE,EAAE;YACjB,qDAAqD;YACrD,MAAM,MAAM,GAAG,IAAI,oBAAM,CAAC;gBACxB,MAAM,EAAE,QAAQ;gBAChB,iBAAiB,EAAE,KAAK;gBACxB,MAAM,EAAE;oBACN,MAAM,EAAE,UAAU;oBAClB,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;oBACpC,IAAI,EAAE,qBAAgB,CAAC,QAAQ,CAAC;oBAChC,WAAW,EAAE,wBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,0BAA0B;oBAC/E,YAAY,EAAE,uBAAuB;iBACtC;aACF,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,EACD;YACE,WAAW,EAAE,EAAE;SAChB,CASF,CAAC;IACJ,CAAC;IACD,0BAA0B;IAC1B,8CAA8C;IAE9C;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAW;QACtC,MAAM,OAAO,GAAG,MAAM,aAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtE,CAAC,CAAC,CACH,CAAC;QACF,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;IAC1C,CAAC;CACF;AAlFD,oCAkFC"}
@@ -0,0 +1,27 @@
1
+ import { IDeployVersionPreflightResponse } from '@pwrdrvr/microapps-deployer-lib';
2
+ import { IConfig } from '../config/Config';
3
+ export default class S3Uploader {
4
+ /**
5
+ * Copy files to local upload directory
6
+ * @param config
7
+ * @param s3UploadPath
8
+ * @param preflightResponse
9
+ */
10
+ static CopyToUploadDir(config: IConfig, s3UploadPath: string): Promise<void>;
11
+ static ParseUploadPath(s3UploadPath: string): {
12
+ bucketName: string;
13
+ destinationPrefix: string;
14
+ };
15
+ /**
16
+ * Upload files to S3
17
+ * @deprecated 2021-11-27
18
+ * @param config
19
+ * @param s3UploadPath
20
+ * @param preflightResponse
21
+ */
22
+ static Upload(config: IConfig, s3UploadPath: string, preflightResponse: IDeployVersionPreflightResponse): Promise<void>;
23
+ static removeTempDirIfExists(): Promise<void>;
24
+ private static readonly _tempDir;
25
+ static get TempDir(): string;
26
+ }
27
+ //# sourceMappingURL=S3Uploader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3Uploader.d.ts","sourceRoot":"","sources":["../../src/lib/S3Uploader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAElF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG3C,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B;;;;;OAKG;WACiB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAa3E,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG;QACnD,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;KAC3B;IASD;;;;;;OAMG;WACiB,MAAM,CACxB,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,+BAA+B,GACjD,OAAO,CAAC,IAAI,CAAC;WA2BI,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAa1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IACvD,WAAkB,OAAO,IAAI,MAAM,CAElC;CACF"}