pwrdrvr 0.4.0-alpha.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +241 -0
- package/bin/run +5 -0
- package/dist/commands/delete.d.ts +18 -0
- package/dist/commands/delete.d.ts.map +1 -0
- package/dist/commands/delete.js +125 -0
- package/dist/commands/delete.js.map +1 -0
- package/dist/commands/nextjs-version-restore.d.ts +14 -0
- package/dist/commands/nextjs-version-restore.d.ts.map +1 -0
- package/dist/commands/nextjs-version-restore.js +53 -0
- package/dist/commands/nextjs-version-restore.js.map +1 -0
- package/dist/commands/nextjs-version.d.ts +18 -0
- package/dist/commands/nextjs-version.d.ts.map +1 -0
- package/dist/commands/nextjs-version.js +103 -0
- package/dist/commands/nextjs-version.js.map +1 -0
- package/dist/commands/preflight.d.ts +19 -0
- package/dist/commands/preflight.d.ts.map +1 -0
- package/dist/commands/preflight.js +135 -0
- package/dist/commands/preflight.js.map +1 -0
- package/dist/commands/publish-static.d.ts +25 -0
- package/dist/commands/publish-static.d.ts.map +1 -0
- package/dist/commands/publish-static.js +361 -0
- package/dist/commands/publish-static.js.map +1 -0
- package/dist/commands/publish.d.ts +39 -0
- package/dist/commands/publish.d.ts.map +1 -0
- package/dist/commands/publish.js +565 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/config/Application.d.ts +26 -0
- package/dist/config/Application.d.ts.map +1 -0
- package/dist/config/Application.js +99 -0
- package/dist/config/Application.js.map +1 -0
- package/dist/config/Config.d.ts +18 -0
- package/dist/config/Config.d.ts.map +1 -0
- package/dist/config/Config.js +71 -0
- package/dist/config/Config.js.map +1 -0
- package/dist/config/Deployer.d.ts +10 -0
- package/dist/config/Deployer.d.ts.map +1 -0
- package/dist/config/Deployer.js +17 -0
- package/dist/config/Deployer.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/DeployClient.d.ts +102 -0
- package/dist/lib/DeployClient.d.ts.map +1 -0
- package/dist/lib/DeployClient.js +233 -0
- package/dist/lib/DeployClient.js.map +1 -0
- package/dist/lib/FilesExist.d.ts +5 -0
- package/dist/lib/FilesExist.d.ts.map +1 -0
- package/dist/lib/FilesExist.js +26 -0
- package/dist/lib/FilesExist.js.map +1 -0
- package/dist/lib/S3TransferUtility.d.ts +19 -0
- package/dist/lib/S3TransferUtility.d.ts.map +1 -0
- package/dist/lib/S3TransferUtility.js +94 -0
- package/dist/lib/S3TransferUtility.js.map +1 -0
- package/dist/lib/S3Uploader.d.ts +27 -0
- package/dist/lib/S3Uploader.d.ts.map +1 -0
- package/dist/lib/S3Uploader.js +77 -0
- package/dist/lib/S3Uploader.js.map +1 -0
- package/dist/lib/Versions.d.ts +33 -0
- package/dist/lib/Versions.d.ts.map +1 -0
- package/dist/lib/Versions.js +76 -0
- package/dist/lib/Versions.js.map +1 -0
- package/package.json +83 -0
- package/src/commands/delete.ts +135 -0
- package/src/commands/nextjs-version-restore.ts +70 -0
- package/src/commands/nextjs-version.ts +123 -0
- package/src/commands/preflight.ts +148 -0
- package/src/commands/publish-static.ts +416 -0
- package/src/commands/publish.ts +662 -0
- package/src/commands-deprecated/nextjs-docker-auto.skip +590 -0
- package/src/config/Application.ts +98 -0
- package/src/config/Config.ts +81 -0
- package/src/config/Deployer.ts +17 -0
- package/src/index.ts +1 -0
- package/src/lib/DeployClient.ts +334 -0
- package/src/lib/FilesExist.ts +25 -0
- package/src/lib/S3TransferUtility.spec.ts +15 -0
- package/src/lib/S3TransferUtility.ts +113 -0
- package/src/lib/S3Uploader.ts +94 -0
- package/src/lib/Versions.ts +101 -0
- package/src/lib/__snapshots__/S3TransferUtility.spec.ts.snap +12 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationConfig = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const convict_format_with_validator_1 = require("convict-format-with-validator");
|
|
6
|
+
const yaml = tslib_1.__importStar(require("js-yaml"));
|
|
7
|
+
const convict = tslib_1.__importStar(require("ts-convict"));
|
|
8
|
+
let ApplicationConfig = class ApplicationConfig {
|
|
9
|
+
get name() {
|
|
10
|
+
return this._name;
|
|
11
|
+
}
|
|
12
|
+
set name(value) {
|
|
13
|
+
this._name = value.toLowerCase();
|
|
14
|
+
}
|
|
15
|
+
set staticAssetsPath(value) {
|
|
16
|
+
this._staticAssetsPath = value;
|
|
17
|
+
}
|
|
18
|
+
get staticAssetsPath() {
|
|
19
|
+
return this._staticAssetsPath.replace(/\$SEMVER/, this.semVer);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
tslib_1.__decorate([
|
|
23
|
+
convict.Property({
|
|
24
|
+
doc: 'Name of microapps app',
|
|
25
|
+
default: '',
|
|
26
|
+
env: 'APP_NAME',
|
|
27
|
+
}),
|
|
28
|
+
tslib_1.__metadata("design:type", String),
|
|
29
|
+
tslib_1.__metadata("design:paramtypes", [String])
|
|
30
|
+
], ApplicationConfig.prototype, "name", null);
|
|
31
|
+
tslib_1.__decorate([
|
|
32
|
+
convict.Property({
|
|
33
|
+
doc: 'SemVer this version is to be published as',
|
|
34
|
+
default: '0.0.1',
|
|
35
|
+
env: 'APP_SEMVER',
|
|
36
|
+
}),
|
|
37
|
+
tslib_1.__metadata("design:type", String)
|
|
38
|
+
], ApplicationConfig.prototype, "semVer", void 0);
|
|
39
|
+
tslib_1.__decorate([
|
|
40
|
+
convict.Property({
|
|
41
|
+
doc: 'Default file to reference when loading the app with no version',
|
|
42
|
+
default: '',
|
|
43
|
+
env: 'APP_DEFAULT_FILE',
|
|
44
|
+
}),
|
|
45
|
+
tslib_1.__metadata("design:type", String)
|
|
46
|
+
], ApplicationConfig.prototype, "defaultFile", void 0);
|
|
47
|
+
tslib_1.__decorate([
|
|
48
|
+
convict.Property({
|
|
49
|
+
doc: 'Local path to static assets path to upload to S3',
|
|
50
|
+
default: '',
|
|
51
|
+
env: 'APP_STATIC_ASSETS_PATH',
|
|
52
|
+
}),
|
|
53
|
+
tslib_1.__metadata("design:type", String),
|
|
54
|
+
tslib_1.__metadata("design:paramtypes", [String])
|
|
55
|
+
], ApplicationConfig.prototype, "staticAssetsPath", null);
|
|
56
|
+
tslib_1.__decorate([
|
|
57
|
+
convict.Property({
|
|
58
|
+
doc: 'Name of the lambda to deploy to (not full ARN)',
|
|
59
|
+
default: '',
|
|
60
|
+
env: 'APP_LAMBDA_NAME',
|
|
61
|
+
}),
|
|
62
|
+
tslib_1.__metadata("design:type", String)
|
|
63
|
+
], ApplicationConfig.prototype, "lambdaName", void 0);
|
|
64
|
+
tslib_1.__decorate([
|
|
65
|
+
convict.Property({
|
|
66
|
+
doc: 'AWS Account ID to deploy to',
|
|
67
|
+
default: '',
|
|
68
|
+
env: 'AWS_ACCOUNT_ID',
|
|
69
|
+
}),
|
|
70
|
+
tslib_1.__metadata("design:type", String)
|
|
71
|
+
], ApplicationConfig.prototype, "awsAccountID", void 0);
|
|
72
|
+
tslib_1.__decorate([
|
|
73
|
+
convict.Property({
|
|
74
|
+
doc: 'AWS Region to deploy to',
|
|
75
|
+
default: 'us-east-1',
|
|
76
|
+
env: 'AWS_REGION',
|
|
77
|
+
}),
|
|
78
|
+
tslib_1.__metadata("design:type", String)
|
|
79
|
+
], ApplicationConfig.prototype, "awsRegion", void 0);
|
|
80
|
+
ApplicationConfig = tslib_1.__decorate([
|
|
81
|
+
convict.Config({
|
|
82
|
+
// optional default file to load, no errors if it doesn't exist
|
|
83
|
+
file: './microapps.yml',
|
|
84
|
+
// optional parameter. Defaults to 'strict', can also be 'warn'
|
|
85
|
+
validationMethod: 'strict',
|
|
86
|
+
// optionally add parsers like yaml or toml
|
|
87
|
+
parser: {
|
|
88
|
+
extension: ['yml', 'yaml'],
|
|
89
|
+
parse: yaml.load,
|
|
90
|
+
},
|
|
91
|
+
//optional extra formats to use in validation
|
|
92
|
+
formats: {
|
|
93
|
+
url: convict_format_with_validator_1.url,
|
|
94
|
+
ipaddress: convict_format_with_validator_1.ipaddress,
|
|
95
|
+
},
|
|
96
|
+
})
|
|
97
|
+
], ApplicationConfig);
|
|
98
|
+
exports.ApplicationConfig = ApplicationConfig;
|
|
99
|
+
//# sourceMappingURL=Application.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Application.js","sourceRoot":"","sources":["../../src/config/Application.ts"],"names":[],"mappings":";;;;AAAA,iFAA+D;AAC/D,sDAAgC;AAChC,4DAAsC;AAkC/B,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAE5B,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,IAKW,IAAI,CAAC,KAAa;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAiBD,IAKW,gBAAgB,CAAC,KAAa;QACvC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;CAsBF,CAAA;AAxDC;IAAC,OAAO,CAAC,QAAQ,CAAC;QAChB,GAAG,EAAE,uBAAuB;QAC5B,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,UAAU;KAChB,CAAC;;;6CAGD;AAED;IAAC,OAAO,CAAC,QAAQ,CAAC;QAChB,GAAG,EAAE,2CAA2C;QAChD,OAAO,EAAE,OAAO;QAChB,GAAG,EAAE,YAAY;KAClB,CAAC;;iDACoB;AAEtB;IAAC,OAAO,CAAC,QAAQ,CAAC;QAChB,GAAG,EAAE,gEAAgE;QACrE,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,kBAAkB;KACxB,CAAC;;sDACyB;AAG3B;IAAC,OAAO,CAAC,QAAQ,CAAC;QAChB,GAAG,EAAE,kDAAkD;QACvD,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,wBAAwB;KAC9B,CAAC;;;yDAGD;AAKD;IAAC,OAAO,CAAC,QAAQ,CAAC;QAChB,GAAG,EAAE,gDAAgD;QACrD,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,iBAAiB;KACvB,CAAC;;qDACwB;AAE1B;IAAC,OAAO,CAAC,QAAQ,CAAC;QAChB,GAAG,EAAE,6BAA6B;QAClC,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,gBAAgB;KACtB,CAAC;;uDAC0B;AAE5B;IAAC,OAAO,CAAC,QAAQ,CAAC;QAChB,GAAG,EAAE,yBAAyB;QAC9B,OAAO,EAAE,WAAW;QACpB,GAAG,EAAE,YAAY;KAClB,CAAC;;oDACuB;AA5Dd,iBAAiB;IAnB7B,OAAO,CAAC,MAAM,CAAC;QACd,+DAA+D;QAC/D,IAAI,EAAE,iBAAiB;QAEvB,+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,iBAAiB,CA6D7B;AA7DY,8CAAiB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IApplicationConfig } from './Application';
|
|
2
|
+
import { IDeployerConfig } from './Deployer';
|
|
3
|
+
/**
|
|
4
|
+
* Represents a Config
|
|
5
|
+
*/
|
|
6
|
+
export interface IConfig {
|
|
7
|
+
deployer: IDeployerConfig;
|
|
8
|
+
app: IApplicationConfig;
|
|
9
|
+
}
|
|
10
|
+
export declare class Config implements IConfig {
|
|
11
|
+
static configFiles(): string[];
|
|
12
|
+
private static _instance;
|
|
13
|
+
static get instance(): IConfig;
|
|
14
|
+
static get envLevel(): 'dev' | 'qa' | 'prod' | 'local';
|
|
15
|
+
app: IApplicationConfig;
|
|
16
|
+
deployer: IDeployerConfig;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=Config.d.ts.map
|
|
@@ -0,0 +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;AAE7D;;GAEG;AACH,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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var Config_1;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Config = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const convict_format_with_validator_1 = require("convict-format-with-validator");
|
|
7
|
+
const yaml = tslib_1.__importStar(require("js-yaml"));
|
|
8
|
+
const convict = tslib_1.__importStar(require("ts-convict"));
|
|
9
|
+
const ts_convict_1 = require("ts-convict");
|
|
10
|
+
const FilesExist_1 = require("../lib/FilesExist");
|
|
11
|
+
const Application_1 = require("./Application");
|
|
12
|
+
const Deployer_1 = require("./Deployer");
|
|
13
|
+
let Config = Config_1 = class Config {
|
|
14
|
+
static configFiles() {
|
|
15
|
+
const possibleFiles = [
|
|
16
|
+
'./microapps.yaml',
|
|
17
|
+
'./microapps.yml',
|
|
18
|
+
`./microapps-${Config_1.envLevel}.yaml`,
|
|
19
|
+
`./microapps-${Config_1.envLevel}.yml`,
|
|
20
|
+
];
|
|
21
|
+
return FilesExist_1.FilesExist.getExistingFilesSync(possibleFiles);
|
|
22
|
+
}
|
|
23
|
+
static get instance() {
|
|
24
|
+
if (Config_1._instance === undefined) {
|
|
25
|
+
const configLoader = new ts_convict_1.TSConvict(Config_1);
|
|
26
|
+
Config_1._instance = configLoader.load(Config_1.configFiles());
|
|
27
|
+
}
|
|
28
|
+
return Config_1._instance;
|
|
29
|
+
}
|
|
30
|
+
static get envLevel() {
|
|
31
|
+
const nodeEnv = process.env.NODE_ENV || 'dev';
|
|
32
|
+
if (nodeEnv.startsWith('prod')) {
|
|
33
|
+
return 'prod';
|
|
34
|
+
}
|
|
35
|
+
else if (nodeEnv === 'qa') {
|
|
36
|
+
return 'qa';
|
|
37
|
+
}
|
|
38
|
+
else if (nodeEnv === 'local') {
|
|
39
|
+
return 'local';
|
|
40
|
+
}
|
|
41
|
+
return 'dev';
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
tslib_1.__decorate([
|
|
45
|
+
convict.Property(Application_1.ApplicationConfig),
|
|
46
|
+
tslib_1.__metadata("design:type", Object)
|
|
47
|
+
], Config.prototype, "app", void 0);
|
|
48
|
+
tslib_1.__decorate([
|
|
49
|
+
convict.Property(Deployer_1.DeployerConfig),
|
|
50
|
+
tslib_1.__metadata("design:type", Object)
|
|
51
|
+
], Config.prototype, "deployer", void 0);
|
|
52
|
+
Config = Config_1 = tslib_1.__decorate([
|
|
53
|
+
convict.Config({
|
|
54
|
+
// optional default file to load, no errors if it doesn't exist
|
|
55
|
+
file: 'config.yml',
|
|
56
|
+
// optional parameter. Defaults to 'strict', can also be 'warn'
|
|
57
|
+
validationMethod: 'strict',
|
|
58
|
+
// optionally add parsers like yaml or toml
|
|
59
|
+
parser: {
|
|
60
|
+
extension: ['yml', 'yaml'],
|
|
61
|
+
parse: yaml.load,
|
|
62
|
+
},
|
|
63
|
+
//optional extra formats to use in validation
|
|
64
|
+
formats: {
|
|
65
|
+
url: convict_format_with_validator_1.url,
|
|
66
|
+
ipaddress: convict_format_with_validator_1.ipaddress,
|
|
67
|
+
},
|
|
68
|
+
})
|
|
69
|
+
], Config);
|
|
70
|
+
exports.Config = Config;
|
|
71
|
+
//# sourceMappingURL=Config.js.map
|
|
@@ -0,0 +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;AA6BtD,IAAM,MAAM,cAAZ,MAAM,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;AALC;IAAC,OAAO,CAAC,QAAQ,CAAC,+BAAiB,CAAC;;mCACJ;AAEhC;IAAC,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Deployer.d.ts","sourceRoot":"","sources":["../../src/config/Deployer.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,cAAe,YAAW,eAAe;IAM7C,UAAU,EAAG,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeployerConfig = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const ts_convict_1 = require("ts-convict");
|
|
6
|
+
class DeployerConfig {
|
|
7
|
+
}
|
|
8
|
+
tslib_1.__decorate([
|
|
9
|
+
(0, ts_convict_1.Property)({
|
|
10
|
+
doc: 'Name of Deployer Lambda function',
|
|
11
|
+
default: 'microapps-deployer',
|
|
12
|
+
env: 'DEPLOYER_LAMBDA_NAME',
|
|
13
|
+
}),
|
|
14
|
+
tslib_1.__metadata("design:type", String)
|
|
15
|
+
], DeployerConfig.prototype, "lambdaName", void 0);
|
|
16
|
+
exports.DeployerConfig = DeployerConfig;
|
|
17
|
+
//# sourceMappingURL=Deployer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Deployer.js","sourceRoot":"","sources":["../../src/config/Deployer.ts"],"names":[],"mappings":";;;;AAAA,2CAAsC;AAStC,MAAa,cAAc;CAO1B;AANC;IAAC,IAAA,qBAAQ,EAAC;QACR,GAAG,EAAE,kCAAkC;QACvC,OAAO,EAAE,oBAAoB;QAC7B,GAAG,EAAE,sBAAsB;KAC5B,CAAC;;kDACyB;AAN7B,wCAOC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,0CAAqC;AAA5B,8FAAA,GAAG,OAAA"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import * as lambda from '@aws-sdk/client-lambda';
|
|
2
|
+
import type { IDeployerResponse, IDeployVersionPreflightResponse, ILambdaAliasResponse } from '@pwrdrvr/microapps-deployer-lib';
|
|
3
|
+
import { IConfig } from '../config/Config';
|
|
4
|
+
/**
|
|
5
|
+
* Represents a Deploy Version Preflight Result
|
|
6
|
+
*/
|
|
7
|
+
export interface IDeployVersionPreflightResult {
|
|
8
|
+
exists: boolean;
|
|
9
|
+
response: IDeployVersionPreflightResponse;
|
|
10
|
+
}
|
|
11
|
+
export type DeployVersionArgs = Parameters<typeof DeployClient.DeployVersionLite>[0];
|
|
12
|
+
export default class DeployClient {
|
|
13
|
+
static readonly _client: lambda.LambdaClient;
|
|
14
|
+
static readonly _decoder: TextDecoder;
|
|
15
|
+
/**
|
|
16
|
+
* Create an application
|
|
17
|
+
* @param opts
|
|
18
|
+
*/
|
|
19
|
+
static CreateApp(opts: {
|
|
20
|
+
config: IConfig;
|
|
21
|
+
}): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Delete version
|
|
24
|
+
* @param config
|
|
25
|
+
* @param output
|
|
26
|
+
* @returns
|
|
27
|
+
*/
|
|
28
|
+
static DeleteVersion(opts: {
|
|
29
|
+
config: IConfig;
|
|
30
|
+
output: (message: string) => void;
|
|
31
|
+
}): Promise<IDeployerResponse>;
|
|
32
|
+
/**
|
|
33
|
+
* Check if version exists.
|
|
34
|
+
* Optionally get S3 creds for static asset upload.
|
|
35
|
+
* @param config
|
|
36
|
+
* @param output
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
static DeployVersionPreflight(opts: {
|
|
40
|
+
config: IConfig;
|
|
41
|
+
needS3Creds?: boolean;
|
|
42
|
+
overwrite: boolean;
|
|
43
|
+
output: (message: string) => void;
|
|
44
|
+
}): Promise<IDeployVersionPreflightResult>;
|
|
45
|
+
/**
|
|
46
|
+
* Create or update Lambda alias for specified Lambda version
|
|
47
|
+
* @param config
|
|
48
|
+
* @param output
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
static LambdaAlias(opts: {
|
|
52
|
+
appName: string;
|
|
53
|
+
semVer: string;
|
|
54
|
+
lambdaVersionArn: string;
|
|
55
|
+
overwrite: boolean;
|
|
56
|
+
deployerLambdaName: string;
|
|
57
|
+
output: (message: string) => void;
|
|
58
|
+
}): Promise<{
|
|
59
|
+
response: ILambdaAliasResponse;
|
|
60
|
+
}>;
|
|
61
|
+
/**
|
|
62
|
+
* Copy S3 static assets from staging to live bucket.
|
|
63
|
+
* Create API Gateway Integration for app (if needed).
|
|
64
|
+
* Give API Gateway permission to call the Lambda.
|
|
65
|
+
* Create API Gateway routes for this specific version.
|
|
66
|
+
* @param config
|
|
67
|
+
* @param task
|
|
68
|
+
*/
|
|
69
|
+
static DeployVersion(opts: {
|
|
70
|
+
appName: string;
|
|
71
|
+
semVer: string;
|
|
72
|
+
defaultFile?: string;
|
|
73
|
+
lambdaAliasArn?: string;
|
|
74
|
+
deployerLambdaName: string;
|
|
75
|
+
appType: 'lambda' | 'static' | 'lambda-url' | 'url';
|
|
76
|
+
startupType?: 'iframe' | 'direct';
|
|
77
|
+
url?: string;
|
|
78
|
+
overwrite: boolean;
|
|
79
|
+
output: (message: string) => void;
|
|
80
|
+
}): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Copy S3 static assets from staging to live bucket.
|
|
83
|
+
* Create DB records.
|
|
84
|
+
* Proxied to parent account if needed.
|
|
85
|
+
*
|
|
86
|
+
* @param config
|
|
87
|
+
* @param task
|
|
88
|
+
*/
|
|
89
|
+
static DeployVersionLite(opts: {
|
|
90
|
+
appName: string;
|
|
91
|
+
semVer: string;
|
|
92
|
+
defaultFile?: string;
|
|
93
|
+
lambdaAliasArn?: string;
|
|
94
|
+
deployerLambdaName: string;
|
|
95
|
+
appType: 'lambda' | 'static' | 'lambda-url' | 'url';
|
|
96
|
+
startupType?: 'iframe' | 'direct';
|
|
97
|
+
url?: string;
|
|
98
|
+
overwrite: boolean;
|
|
99
|
+
output: (message: string) => void;
|
|
100
|
+
}): Promise<void>;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=DeployClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployClient.d.ts","sourceRoot":"","sources":["../../src/lib/DeployClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const lambda = tslib_1.__importStar(require("@aws-sdk/client-lambda"));
|
|
5
|
+
class DeployClient {
|
|
6
|
+
/**
|
|
7
|
+
* Create an application
|
|
8
|
+
* @param opts
|
|
9
|
+
*/
|
|
10
|
+
static async CreateApp(opts) {
|
|
11
|
+
const { config } = opts;
|
|
12
|
+
const request = {
|
|
13
|
+
type: 'createApp',
|
|
14
|
+
appName: config.app.name,
|
|
15
|
+
displayName: config.app.name,
|
|
16
|
+
};
|
|
17
|
+
const response = await this._client.send(new lambda.InvokeCommand({
|
|
18
|
+
FunctionName: config.deployer.lambdaName,
|
|
19
|
+
Payload: Buffer.from(JSON.stringify(request)),
|
|
20
|
+
}));
|
|
21
|
+
if (response.$metadata.httpStatusCode === 200 && response.Payload !== undefined) {
|
|
22
|
+
const dResponse = JSON.parse(Buffer.from(response.Payload).toString('utf-8'));
|
|
23
|
+
if (!(dResponse.statusCode === 201 || dResponse.statusCode === 200)) {
|
|
24
|
+
throw new Error(`App create failed: ${JSON.stringify(dResponse)}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
throw new Error(`App Create - Lambda Invoke Failed: ${JSON.stringify(response)}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Delete version
|
|
33
|
+
* @param config
|
|
34
|
+
* @param output
|
|
35
|
+
* @returns
|
|
36
|
+
*/
|
|
37
|
+
static async DeleteVersion(opts) {
|
|
38
|
+
const { config, output } = opts;
|
|
39
|
+
const request = {
|
|
40
|
+
type: 'deleteVersion',
|
|
41
|
+
appName: config.app.name,
|
|
42
|
+
semVer: config.app.semVer,
|
|
43
|
+
};
|
|
44
|
+
const response = await this._client.send(new lambda.InvokeCommand({
|
|
45
|
+
FunctionName: config.deployer.lambdaName,
|
|
46
|
+
Payload: Buffer.from(JSON.stringify(request)),
|
|
47
|
+
}));
|
|
48
|
+
if (response.$metadata.httpStatusCode === 200 && response.Payload !== undefined) {
|
|
49
|
+
const dResponse = JSON.parse(Buffer.from(response.Payload).toString('utf-8'));
|
|
50
|
+
if (dResponse.statusCode === 404) {
|
|
51
|
+
output(`App/Version does not exist: ${config.app.name}/${config.app.semVer}`);
|
|
52
|
+
return dResponse;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
output(`App/Version deleted: ${config.app.name}/${config.app.semVer}`);
|
|
56
|
+
return dResponse;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
throw new Error(`Lambda call to DeleteVersion failed: ${JSON.stringify(response)}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Check if version exists.
|
|
65
|
+
* Optionally get S3 creds for static asset upload.
|
|
66
|
+
* @param config
|
|
67
|
+
* @param output
|
|
68
|
+
* @returns
|
|
69
|
+
*/
|
|
70
|
+
static async DeployVersionPreflight(opts) {
|
|
71
|
+
const { config, needS3Creds = true, overwrite, output } = opts;
|
|
72
|
+
const request = {
|
|
73
|
+
type: 'deployVersionPreflight',
|
|
74
|
+
appName: config.app.name,
|
|
75
|
+
semVer: config.app.semVer,
|
|
76
|
+
overwrite,
|
|
77
|
+
needS3Creds,
|
|
78
|
+
};
|
|
79
|
+
const response = await this._client.send(new lambda.InvokeCommand({
|
|
80
|
+
FunctionName: config.deployer.lambdaName,
|
|
81
|
+
Payload: Buffer.from(JSON.stringify(request)),
|
|
82
|
+
}));
|
|
83
|
+
if (response.$metadata.httpStatusCode === 200 && response.Payload !== undefined) {
|
|
84
|
+
const dResponse = JSON.parse(Buffer.from(response.Payload).toString('utf-8'));
|
|
85
|
+
if (dResponse.statusCode === 404) {
|
|
86
|
+
output(`App/Version does not exist: ${config.app.name}/${config.app.semVer}`);
|
|
87
|
+
return { exists: false, response: dResponse };
|
|
88
|
+
}
|
|
89
|
+
else if (dResponse.statusCode > 299) {
|
|
90
|
+
// @ts-expect-error remove awsCredentials from response
|
|
91
|
+
delete dResponse.awsCredentials;
|
|
92
|
+
output(`DeployVersionPreflight failed: ${JSON.stringify(dResponse)}`);
|
|
93
|
+
throw new Error('DeployVersionPreflight failed');
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
output(`App/Version exists: ${config.app.name}/${config.app.semVer}`);
|
|
97
|
+
return { exists: true, response: dResponse };
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
// @ts-expect-error remove awsCredentials from response
|
|
102
|
+
delete dResponse.awsCredentials;
|
|
103
|
+
throw new Error(`Lambda call to DeployVersionPreflight failed: ${JSON.stringify(response)}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Create or update Lambda alias for specified Lambda version
|
|
108
|
+
* @param config
|
|
109
|
+
* @param output
|
|
110
|
+
* @returns
|
|
111
|
+
*/
|
|
112
|
+
static async LambdaAlias(opts) {
|
|
113
|
+
const { appName, deployerLambdaName, lambdaVersionArn, overwrite, output, semVer } = opts;
|
|
114
|
+
const request = {
|
|
115
|
+
type: 'lambdaAlias',
|
|
116
|
+
appName,
|
|
117
|
+
semVer,
|
|
118
|
+
lambdaARN: lambdaVersionArn,
|
|
119
|
+
overwrite,
|
|
120
|
+
};
|
|
121
|
+
output(`Creating alias for version ARN: ${lambdaVersionArn}`);
|
|
122
|
+
const response = await this._client.send(new lambda.InvokeCommand({
|
|
123
|
+
FunctionName: deployerLambdaName,
|
|
124
|
+
Payload: Buffer.from(JSON.stringify(request)),
|
|
125
|
+
}));
|
|
126
|
+
if (response.$metadata.httpStatusCode === 200 && response.Payload !== undefined) {
|
|
127
|
+
const dResponse = JSON.parse(Buffer.from(response.Payload).toString('utf-8'));
|
|
128
|
+
if (dResponse.statusCode > 299) {
|
|
129
|
+
output(`LambdaAlias failed: ${JSON.stringify(dResponse)}`);
|
|
130
|
+
throw new Error('LambdaAlias failed');
|
|
131
|
+
}
|
|
132
|
+
else if (!dResponse.functionUrl) {
|
|
133
|
+
output(`LambdaAlias failed to return functionUrl: ${JSON.stringify(dResponse)}`);
|
|
134
|
+
throw new Error('LambdaAlias failed to return functionUrl');
|
|
135
|
+
}
|
|
136
|
+
else if (dResponse.statusCode === 201) {
|
|
137
|
+
output(`Alias created: ${dResponse.lambdaAliasARN}`);
|
|
138
|
+
return { response: dResponse };
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
output(`Alias ${dResponse.actionTaken}: ${dResponse.lambdaAliasARN}`);
|
|
142
|
+
return { response: dResponse };
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
throw new Error(`Lambda call to LambdaAlias failed: ${JSON.stringify(response)}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Copy S3 static assets from staging to live bucket.
|
|
151
|
+
* Create API Gateway Integration for app (if needed).
|
|
152
|
+
* Give API Gateway permission to call the Lambda.
|
|
153
|
+
* Create API Gateway routes for this specific version.
|
|
154
|
+
* @param config
|
|
155
|
+
* @param task
|
|
156
|
+
*/
|
|
157
|
+
static async DeployVersion(opts) {
|
|
158
|
+
const { appName, semVer, defaultFile, lambdaAliasArn, deployerLambdaName, appType, startupType = 'iframe', url, overwrite, output, } = opts;
|
|
159
|
+
const request = {
|
|
160
|
+
type: 'deployVersion',
|
|
161
|
+
appType,
|
|
162
|
+
startupType,
|
|
163
|
+
appName,
|
|
164
|
+
semVer,
|
|
165
|
+
defaultFile: defaultFile,
|
|
166
|
+
url,
|
|
167
|
+
overwrite,
|
|
168
|
+
...(['lambda', 'lambda-url'].includes(appType) ? { lambdaARN: lambdaAliasArn } : {}),
|
|
169
|
+
};
|
|
170
|
+
const response = await this._client.send(new lambda.InvokeCommand({
|
|
171
|
+
FunctionName: deployerLambdaName,
|
|
172
|
+
Payload: Buffer.from(JSON.stringify(request)),
|
|
173
|
+
}));
|
|
174
|
+
if (response.$metadata.httpStatusCode === 200 && response.Payload !== undefined) {
|
|
175
|
+
const dResponse = JSON.parse(Buffer.from(response.Payload).toString('utf-8'));
|
|
176
|
+
if (dResponse.statusCode === 201) {
|
|
177
|
+
output(`Deploy succeeded: ${appName}/${semVer}`);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
output(`Deploy failed with: ${dResponse.statusCode}`);
|
|
181
|
+
throw new Error(`Lambda call to DeployVersion failed with: ${dResponse.statusCode}`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
throw new Error(`Lambda call to DeployVersion failed: ${JSON.stringify(response)}`);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Copy S3 static assets from staging to live bucket.
|
|
190
|
+
* Create DB records.
|
|
191
|
+
* Proxied to parent account if needed.
|
|
192
|
+
*
|
|
193
|
+
* @param config
|
|
194
|
+
* @param task
|
|
195
|
+
*/
|
|
196
|
+
static async DeployVersionLite(opts) {
|
|
197
|
+
const { appName, semVer, defaultFile, lambdaAliasArn, deployerLambdaName, appType, startupType = 'iframe', url, overwrite, output, } = opts;
|
|
198
|
+
const request = {
|
|
199
|
+
type: 'deployVersionLite',
|
|
200
|
+
appType,
|
|
201
|
+
startupType,
|
|
202
|
+
appName,
|
|
203
|
+
semVer,
|
|
204
|
+
defaultFile: defaultFile,
|
|
205
|
+
url,
|
|
206
|
+
overwrite,
|
|
207
|
+
...(['lambda', 'lambda-url'].includes(appType) ? { lambdaARN: lambdaAliasArn } : {}),
|
|
208
|
+
};
|
|
209
|
+
const response = await this._client.send(new lambda.InvokeCommand({
|
|
210
|
+
FunctionName: deployerLambdaName,
|
|
211
|
+
Payload: Buffer.from(JSON.stringify(request)),
|
|
212
|
+
}));
|
|
213
|
+
if (response.$metadata.httpStatusCode === 200 && response.Payload !== undefined) {
|
|
214
|
+
const dResponse = JSON.parse(Buffer.from(response.Payload).toString('utf-8'));
|
|
215
|
+
if (dResponse.statusCode === 201) {
|
|
216
|
+
output(`Deploy succeeded: ${appName}/${semVer}`);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
output(`Deploy failed with: ${dResponse.statusCode}`);
|
|
220
|
+
throw new Error(`Lambda call to DeployVersionLite failed with: ${dResponse.statusCode}`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
throw new Error(`Lambda call to DeployVersionLite failed: ${JSON.stringify(response)}`);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
exports.default = DeployClient;
|
|
229
|
+
DeployClient._client = new lambda.LambdaClient({
|
|
230
|
+
maxAttempts: 8,
|
|
231
|
+
});
|
|
232
|
+
DeployClient._decoder = new TextDecoder('utf-8');
|
|
233
|
+
//# sourceMappingURL=DeployClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeployClient.js","sourceRoot":"","sources":["../../src/lib/DeployClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilesExist.d.ts","sourceRoot":"","sources":["../../src/lib/FilesExist.ts"],"names":[],"mappings":"AAEA,qBAAa,UAAU;WACD,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;WAWjE,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAUrE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FilesExist = void 0;
|
|
4
|
+
const fs_extra_1 = require("fs-extra");
|
|
5
|
+
class FilesExist {
|
|
6
|
+
static async getExistingFiles(filesToCheck) {
|
|
7
|
+
const existingFiles = [];
|
|
8
|
+
for (const file of filesToCheck) {
|
|
9
|
+
if (await (0, fs_extra_1.pathExists)(file)) {
|
|
10
|
+
existingFiles.push(file);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return existingFiles;
|
|
14
|
+
}
|
|
15
|
+
static getExistingFilesSync(filesToCheck) {
|
|
16
|
+
const existingFiles = [];
|
|
17
|
+
for (const file of filesToCheck) {
|
|
18
|
+
if ((0, fs_extra_1.pathExistsSync)(file)) {
|
|
19
|
+
existingFiles.push(file);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return existingFiles;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.FilesExist = FilesExist;
|
|
26
|
+
//# sourceMappingURL=FilesExist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilesExist.js","sourceRoot":"","sources":["../../src/lib/FilesExist.ts"],"names":[],"mappings":";;;AAAA,uCAAsD;AAEtD,MAAa,UAAU;IACd,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAsB;QACzD,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;YAC/B,IAAI,MAAM,IAAA,qBAAU,EAAC,IAAI,CAAC,EAAE;gBAC1B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;SACF;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,YAAsB;QACvD,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;YAC/B,IAAI,IAAA,yBAAc,EAAC,IAAI,CAAC,EAAE;gBACxB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;SACF;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;CACF;AAtBD,gCAsBC"}
|