@tremho/mist-lift 2.1.4 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/README.md +11 -2
  2. package/build/QSTest/functions/IntegrationTest/IntegrationTest.test.js +47 -0
  3. package/build/QSTest/functions/IntegrationTest/IntegrationTest.test.js.map +1 -0
  4. package/build/QSTest/functions/IntegrationTest/src/local.js +33 -0
  5. package/build/QSTest/functions/IntegrationTest/src/local.js.map +1 -0
  6. package/build/QSTest/functions/IntegrationTest/src/main.js +29 -0
  7. package/build/QSTest/functions/IntegrationTest/src/main.js.map +1 -0
  8. package/build/commands/builtin/prebuilt-zips/API.zip +0 -0
  9. package/build/commands/builtin/prebuilt-zips/FileServe.zip +0 -0
  10. package/build/commands/builtin/prebuilt-zips/Webroot.zip +0 -0
  11. package/build/commands/deploy.js +4 -5
  12. package/build/commands/deploy.js.map +1 -1
  13. package/build/commands/package.js +1 -1
  14. package/build/commands/package.js.map +1 -1
  15. package/build/commands/publish.js +18 -10
  16. package/build/commands/publish.js.map +1 -1
  17. package/build/lib/ESBuild.js +8 -6
  18. package/build/lib/ESBuild.js.map +1 -1
  19. package/build/lib/IdSrc.js +23 -0
  20. package/build/lib/IdSrc.js.map +1 -0
  21. package/build/lib/openAPI/openApiConstruction.js.map +1 -1
  22. package/build/src/commands/actions/initQuestions.js +140 -0
  23. package/build/src/commands/actions/initQuestions.js.map +1 -0
  24. package/build/src/commands/actions/makePackageJson.js +2 -0
  25. package/build/src/commands/actions/makePackageJson.js.map +1 -0
  26. package/build/src/commands/actions/setupPackageJson.js +68 -0
  27. package/build/src/commands/actions/setupPackageJson.js.map +1 -0
  28. package/build/src/commands/build.js +209 -0
  29. package/build/src/commands/build.js.map +1 -0
  30. package/build/src/commands/builtin/ApiDocMaker.js +115 -0
  31. package/build/src/commands/builtin/ApiDocMaker.js.map +1 -0
  32. package/build/src/commands/builtin/BuiltInHandler.js +87 -0
  33. package/build/src/commands/builtin/BuiltInHandler.js.map +1 -0
  34. package/build/src/commands/builtin/DeployBuiltInZip.js +57 -0
  35. package/build/src/commands/builtin/DeployBuiltInZip.js.map +1 -0
  36. package/build/src/commands/builtin/StageWebrootZip.js +94 -0
  37. package/build/src/commands/builtin/StageWebrootZip.js.map +1 -0
  38. package/build/src/commands/create.js +90 -0
  39. package/build/src/commands/create.js.map +1 -0
  40. package/build/src/commands/deploy.js +220 -0
  41. package/build/src/commands/deploy.js.map +1 -0
  42. package/build/src/commands/doctor.js +150 -0
  43. package/build/src/commands/doctor.js.map +1 -0
  44. package/build/src/commands/help.js +231 -0
  45. package/build/src/commands/help.js.map +1 -0
  46. package/build/src/commands/info.js +71 -0
  47. package/build/src/commands/info.js.map +1 -0
  48. package/build/src/commands/init.js +103 -0
  49. package/build/src/commands/init.js.map +1 -0
  50. package/build/src/commands/package.js +258 -0
  51. package/build/src/commands/package.js.map +1 -0
  52. package/build/src/commands/publish.js +359 -0
  53. package/build/src/commands/publish.js.map +1 -0
  54. package/build/src/commands/settings.js +96 -0
  55. package/build/src/commands/settings.js.map +1 -0
  56. package/build/src/commands/start.js +181 -0
  57. package/build/src/commands/start.js.map +1 -0
  58. package/build/src/commands/test.js +52 -0
  59. package/build/src/commands/test.js.map +1 -0
  60. package/build/src/commands/update.js +68 -0
  61. package/build/src/commands/update.js.map +1 -0
  62. package/build/src/commands/user.js +20 -0
  63. package/build/src/commands/user.js.map +1 -0
  64. package/build/src/expressRoutes/all.js +134 -0
  65. package/build/src/expressRoutes/all.js.map +1 -0
  66. package/build/src/expressRoutes/api.js +24 -0
  67. package/build/src/expressRoutes/api.js.map +1 -0
  68. package/build/src/expressRoutes/functionBinder.js +201 -0
  69. package/build/src/expressRoutes/functionBinder.js.map +1 -0
  70. package/build/src/integration-tests/quickstart-scenario.test.js +86 -0
  71. package/build/src/integration-tests/quickstart-scenario.test.js.map +1 -0
  72. package/build/src/lib/CaseUtils.js +57 -0
  73. package/build/src/lib/CaseUtils.js.map +1 -0
  74. package/build/src/lib/DirectoryUtils.js +40 -0
  75. package/build/src/lib/DirectoryUtils.js.map +1 -0
  76. package/build/src/lib/ESBuild.js +99 -0
  77. package/build/src/lib/ESBuild.js.map +1 -0
  78. package/build/src/lib/IdSrc.js +23 -0
  79. package/build/src/lib/IdSrc.js.map +1 -0
  80. package/build/src/lib/LiftConfig.js +81 -0
  81. package/build/src/lib/LiftConfig.js.map +1 -0
  82. package/build/src/lib/LiftVersion.js +122 -0
  83. package/build/src/lib/LiftVersion.js.map +1 -0
  84. package/build/src/lib/Tests/fileCompare.test.js +56 -0
  85. package/build/src/lib/Tests/fileCompare.test.js.map +1 -0
  86. package/build/src/lib/askQuestion.js +42 -0
  87. package/build/src/lib/askQuestion.js.map +1 -0
  88. package/build/src/lib/executeCommand.js +58 -0
  89. package/build/src/lib/executeCommand.js.map +1 -0
  90. package/build/src/lib/fileCompare.js +49 -0
  91. package/build/src/lib/fileCompare.js.map +1 -0
  92. package/build/src/lib/openAPI/ApiBuildCollector.js +59 -0
  93. package/build/src/lib/openAPI/ApiBuildCollector.js.map +1 -0
  94. package/build/src/lib/openAPI/WebrootFileSupport.js +48 -0
  95. package/build/src/lib/openAPI/WebrootFileSupport.js.map +1 -0
  96. package/build/src/lib/openAPI/openApiConstruction.js +237 -0
  97. package/build/src/lib/openAPI/openApiConstruction.js.map +1 -0
  98. package/build/src/lib/pathResolve.js +27 -0
  99. package/build/src/lib/pathResolve.js.map +1 -0
  100. package/build/src/lib/utils.js +77 -0
  101. package/build/src/lib/utils.js.map +1 -0
  102. package/build/src/lift.js +134 -0
  103. package/build/src/lift.js.map +1 -0
  104. package/package.json +2 -3
  105. package/src/commands/builtin/prebuilt-zips/API.zip +0 -0
  106. package/src/commands/builtin/prebuilt-zips/FileServe.zip +0 -0
  107. package/src/commands/builtin/prebuilt-zips/Webroot.zip +0 -0
  108. package/src/commands/deploy.ts +4 -4
  109. package/src/commands/package.ts +1 -1
  110. package/src/commands/publish.ts +14 -5
  111. package/src/lib/ESBuild.ts +11 -9
  112. package/src/lib/IdSrc.ts +16 -0
  113. package/src/lib/openAPI/openApiConstruction.ts +2 -1
@@ -0,0 +1,237 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.buildOpenApi = void 0;
39
+ /**
40
+ * This is part 2 of 2 -- we take our pre-built json array of definitions and apply them to openApi in this phase.
41
+ */
42
+ const oas30_1 = require("openapi3-ts/oas30");
43
+ const fs_1 = __importDefault(require("fs"));
44
+ const path_1 = __importDefault(require("path"));
45
+ const pathResolve_1 = require("../pathResolve");
46
+ const ac = __importStar(require("ansi-colors"));
47
+ function buildOpenApi(defs_1) {
48
+ return __awaiter(this, arguments, void 0, function* (defs, includePrivate = false, yamlFile) {
49
+ var _a, _b, _c, _d, _e, _f, _g, _h;
50
+ const builder = new oas30_1.OpenApiBuilder();
51
+ const projectPaths = yield (0, pathResolve_1.resolvePaths)();
52
+ if (!projectPaths.verified)
53
+ return new Uint8Array(0); // don't continue if not valid
54
+ // Read our package.json and construct info from that
55
+ const pkgFile = projectPaths.packagePath;
56
+ let pkg = {};
57
+ try {
58
+ pkg = JSON.parse(fs_1.default.readFileSync(pkgFile).toString());
59
+ }
60
+ catch (_j) { }
61
+ const title = (_a = pkg.name) !== null && _a !== void 0 ? _a : '';
62
+ // let summary = pkg.description;
63
+ // let spdx: string = pkg.license ?? ''
64
+ // const contactName: string = pkg.author ?? ''
65
+ const version = (_b = pkg.version) !== null && _b !== void 0 ? _b : '';
66
+ // license and version definitely come from package.json
67
+ // description and title might get overridden by service.info file
68
+ const infoFile = path_1.default.join(projectPaths.functionPath, 'apiService.info.json');
69
+ let svcInfo = {};
70
+ if (fs_1.default.existsSync(infoFile)) {
71
+ svcInfo = JSON.parse(fs_1.default.readFileSync(infoFile).toString());
72
+ }
73
+ // spdx = svcInfo.contact?.spdx ?? spdx
74
+ // const stagePathSegment = '/Dev' // todo: at some point this should be in config somewhere. it is used in many places.
75
+ const info = {
76
+ title: (_c = svcInfo.name) !== null && _c !== void 0 ? _c : title,
77
+ // summary: summary,
78
+ description: svcInfo.description,
79
+ version: (_e = (_d = svcInfo.version) !== null && _d !== void 0 ? _d : version) !== null && _e !== void 0 ? _e : new Date().toUTCString()
80
+ };
81
+ builder.addInfo(info);
82
+ // map our defs into openApi values
83
+ for (const def of defs) {
84
+ const pathDef = {};
85
+ if (def.private === true && !includePrivate)
86
+ continue; // skip private
87
+ const parameters = (_f = def.parameters) !== null && _f !== void 0 ? _f : [];
88
+ let method = def.method;
89
+ if (def.method === undefined) {
90
+ console.log(ac.red(`no method defined for ${def.name}`));
91
+ if (def.allowedMethods !== undefined) {
92
+ console.log(ac.bgBlack.yellowBright('DEPRECATED') + ac.blue(' As of v1.1.8, The use of ') + ac.black.italic('allowedMethods') + ac.blue(' is replaced by the single' +
93
+ ac.black.italic(' method ') + ac.blue('property.') + ac.black.bold('Please update your definition file')));
94
+ def.method = def.allowedMethods.split(',')[0];
95
+ }
96
+ }
97
+ const schemas = (_g = def.schemas) !== null && _g !== void 0 ? _g : {};
98
+ for (const schemaName of Object.getOwnPropertyNames(schemas)) {
99
+ const schema = schemas[schemaName];
100
+ addTypeSchema(builder, schemaName, schema);
101
+ }
102
+ method = method.trim().toLowerCase();
103
+ addFunctionMethod(pathDef, method, def);
104
+ for (const param of parameters) {
105
+ addParameter(pathDef, param);
106
+ }
107
+ addCORSOptionMethod(pathDef);
108
+ const pathMap = (_h = def.pathMap) !== null && _h !== void 0 ? _h : '/' + def.name;
109
+ // pathMap = stagePathSegment + pathMap
110
+ builder.addPath(pathMap, pathDef);
111
+ builder.addSchema('Empty', {
112
+ title: 'Empty Schema',
113
+ type: 'object'
114
+ });
115
+ }
116
+ const outFile = yamlFile !== null && yamlFile !== void 0 ? yamlFile : path_1.default.join(projectPaths.basePath, 'webroot', 'docs', 'apidoc.yaml');
117
+ const str2ab = (str) => {
118
+ const buf = new ArrayBuffer(str.length * 2); // 2 bytes for each char
119
+ const bufView = new Uint8Array(buf);
120
+ for (let i = 0, strLen = str.length; i < strLen; i++) {
121
+ bufView[i] = str.charCodeAt(i);
122
+ }
123
+ return bufView;
124
+ };
125
+ const yaml = builder.getSpecAsYaml();
126
+ const bytes = str2ab(yaml);
127
+ if (!includePrivate) {
128
+ fs_1.default.writeFileSync(outFile, yaml);
129
+ }
130
+ return bytes;
131
+ });
132
+ }
133
+ exports.buildOpenApi = buildOpenApi;
134
+ function addTypeSchema(builder, schemaName, schema) {
135
+ const ref = { title: schemaName, type: 'object', properties: {} };
136
+ for (const prop of Object.getOwnPropertyNames(schema)) {
137
+ const scType = schemaType('', schema[prop], false);
138
+ ref.properties[prop] = scType;
139
+ }
140
+ builder.addSchema(schemaName, ref);
141
+ }
142
+ function addFunctionMethod(pathDef, method, def) {
143
+ var _a, _b, _c;
144
+ // TODO: Define a return schema and put that here
145
+ const retDef = (def.returns)['200'];
146
+ const content = {};
147
+ const mime = (_b = (_a = retDef === null || retDef === void 0 ? void 0 : retDef.content) !== null && _a !== void 0 ? _a : retDef === null || retDef === void 0 ? void 0 : retDef.mime) !== null && _b !== void 0 ? _b : 'text/plain';
148
+ content[mime] = {};
149
+ const methData = {
150
+ summary: def.name,
151
+ description: def.description,
152
+ responses: {
153
+ 200: {
154
+ description: (_c = retDef === null || retDef === void 0 ? void 0 : retDef.description) !== null && _c !== void 0 ? _c : 'Success Response',
155
+ content
156
+ }
157
+ }
158
+ };
159
+ pathDef[method] = methData;
160
+ }
161
+ function addCORSOptionMethod(pathDef) {
162
+ if (pathDef.options === undefined)
163
+ return; // already assinged by definition
164
+ // add options for CORS
165
+ pathDef.options = {
166
+ responses: {
167
+ 200: {
168
+ description: '200 response',
169
+ content: {
170
+ 'application/json': {
171
+ schema: {
172
+ $ref: '#/components/schemas/Empty'
173
+ }
174
+ }
175
+ }
176
+ }
177
+ },
178
+ 'x-amazon-apigateway-integration': {
179
+ responses: {
180
+ default: {
181
+ statusCode: '200'
182
+ }
183
+ },
184
+ requestTemplates: {
185
+ 'application/json': '{"statusCode": 200}'
186
+ },
187
+ passthroughBehavior: 'when_no_match',
188
+ type: 'mock'
189
+ }
190
+ };
191
+ }
192
+ function addParameter(pathDef, param) {
193
+ var _a, _b, _c, _d;
194
+ if (pathDef.parameters === undefined)
195
+ pathDef.parameters = [];
196
+ const parameters = pathDef.parameters;
197
+ const example = (_b = (_a = param.example) !== null && _a !== void 0 ? _a : param.default) !== null && _b !== void 0 ? _b : '';
198
+ const type = (_c = param.type) !== null && _c !== void 0 ? _c : typeof example;
199
+ const deflt = (_d = param.default) !== null && _d !== void 0 ? _d : example;
200
+ parameters.push({
201
+ in: param.in,
202
+ name: param.name,
203
+ description: param.description,
204
+ example,
205
+ required: param.required,
206
+ schema: schemaType(deflt, type, true)
207
+ });
208
+ }
209
+ function schemaType(deflt, namedType, innerOnly) {
210
+ if (typeof namedType === 'object')
211
+ return namedType;
212
+ const typeFormat = namedType.split(':');
213
+ let type = typeFormat[0];
214
+ const format = typeFormat.length > 1 ? typeFormat[1] : undefined;
215
+ if (!(type === 'string' ||
216
+ type === 'number' ||
217
+ type === 'integer' ||
218
+ type === 'boolean' ||
219
+ type === 'int' ||
220
+ type === 'bool')) {
221
+ return innerOnly
222
+ ? {
223
+ $ref: `#/components/schemas/${type}`
224
+ }
225
+ : {
226
+ schema: {
227
+ $ref: `#/components/schemas/${type}`
228
+ }
229
+ };
230
+ }
231
+ if (type === 'int')
232
+ type = 'integer';
233
+ if (type === 'bool')
234
+ type = 'boolean';
235
+ return innerOnly ? { type, format, example: deflt } : { schema: { type, format, example: deflt } };
236
+ }
237
+ //# sourceMappingURL=openApiConstruction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openApiConstruction.js","sourceRoot":"","sources":["../../../../src/lib/openAPI/openApiConstruction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.resolvePaths = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const fs_1 = __importDefault(require("fs"));
9
+ // Find the path roots in the project directory
10
+ function resolvePaths() {
11
+ const cwd = process.cwd();
12
+ let funcPath = path_1.default.join(cwd, 'functions');
13
+ while (true) {
14
+ if (!fs_1.default.existsSync(funcPath)) {
15
+ funcPath = path_1.default.normalize(path_1.default.join(funcPath, '..'));
16
+ }
17
+ else {
18
+ const basePath = path_1.default.normalize(path_1.default.join(funcPath, '..'));
19
+ const buildPath = path_1.default.join(basePath, 'build');
20
+ const packagePath = path_1.default.join(basePath, 'package.json');
21
+ const verified = fs_1.default.existsSync(basePath) && fs_1.default.existsSync(funcPath) && fs_1.default.existsSync(packagePath);
22
+ return { basePath, buildPath, functionPath: funcPath, packagePath, verified };
23
+ }
24
+ }
25
+ }
26
+ exports.resolvePaths = resolvePaths;
27
+ //# sourceMappingURL=pathResolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathResolve.js","sourceRoot":"","sources":["../../../src/lib/pathResolve.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,4CAAmB;AAEnB,+CAA+C;AAC/C,SAAgB,YAAY;IAQ1B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,IAAI,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;IAC1C,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,QAAQ,GAAG,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;YAC1D,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC9C,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;YACvD,MAAM,QAAQ,GAAG,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;YACjG,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAA;QAC/E,CAAC;IACH,CAAC;AACH,CAAC;AArBD,oCAqBC"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.UnzipToFolder = exports.FolderToZip = exports.delay = void 0;
36
+ /* eslint @typescript-eslint/no-var-requires: "off" */
37
+ const executeCommand_1 = require("./executeCommand");
38
+ const ac = __importStar(require("ansi-colors"));
39
+ const fs = __importStar(require("fs"));
40
+ /** General utilities */
41
+ const zipDir = require('zip-dir');
42
+ // pause the given number of milliseconds
43
+ function delay(ms // milliseconds to delay
44
+ ) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ return yield new Promise(resolve => { setTimeout(resolve, ms); });
47
+ });
48
+ }
49
+ exports.delay = delay;
50
+ function FolderToZip(folderPath, zipPath) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ return yield new Promise(resolve => {
53
+ zipDir(folderPath, { saveTo: zipPath }, function (err, buffer) {
54
+ if (err !== '' && err !== undefined && err !== null)
55
+ throw err;
56
+ // `buffer` is the buffer of the zipped file
57
+ // And the buffer was saved to `~/myzip.zip`
58
+ resolve(buffer);
59
+ });
60
+ });
61
+ });
62
+ }
63
+ exports.FolderToZip = FolderToZip;
64
+ function UnzipToFolder(zipPath_1, folderPath_1) {
65
+ return __awaiter(this, arguments, void 0, function* (zipPath, folderPath, replace = true) {
66
+ // TODO: using CLI -- find a good package. "unzip" has vulnerabilities. Try others.
67
+ if (replace)
68
+ fs.rmSync(folderPath, { recursive: true, force: true });
69
+ const result = yield (0, executeCommand_1.executeCommand)('unzip', [zipPath, '-d', folderPath]);
70
+ if (result.retcode !== 0) {
71
+ console.error(ac.red.bold(`failed to stage webroot (${result.retcode}): ${result.errStr}`));
72
+ throw Error();
73
+ }
74
+ });
75
+ }
76
+ exports.UnzipToFolder = UnzipToFolder;
77
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,qDAAiD;AACjD,gDAAiC;AACjC,uCAAwB;AAExB,wBAAwB;AAExB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AAEjC,yCAAyC;AACzC,SAAsB,KAAK,CACzB,EAAU,CAAC,wBAAwB;;;QAEnC,OAAO,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;IAClE,CAAC;CAAA;AAJD,sBAIC;AAED,SAAsB,WAAW,CAC/B,UAAkB,EAClB,OAAe;;QAEf,OAAO,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACjC,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,UAAU,GAAQ,EAAE,MAAkB;gBAC5E,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;oBAAE,MAAM,GAAG,CAAA;gBAC9D,4CAA4C;gBAC5C,4CAA4C;gBAC5C,OAAO,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;CAAA;AAZD,kCAYC;AACD,SAAsB,aAAa;yDACjC,OAAe,EACf,UAAkB,EAClB,UAAmB,IAAI;QAEvB,mFAAmF;QAEnF,IAAI,OAAO;YAAE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACpE,MAAM,MAAM,GAAwC,MAAM,IAAA,+BAAc,EAAC,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;QAC9G,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,OAAO,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YAC3F,MAAM,KAAK,EAAE,CAAA;QACf,CAAC;IACH,CAAC;CAAA;AAbD,sCAaC"}
@@ -0,0 +1,134 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /* eslint @typescript-eslint/no-floating-promises: "off" */
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || function (mod) {
21
+ if (mod && mod.__esModule) return mod;
22
+ var result = {};
23
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
+ __setModuleDefault(result, mod);
25
+ return result;
26
+ };
27
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
28
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
29
+ return new (P || (P = Promise))(function (resolve, reject) {
30
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
31
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
32
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
33
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
34
+ });
35
+ };
36
+ var _a;
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ const ac = __importStar(require("ansi-colors"));
39
+ const process = __importStar(require("process"));
40
+ const LiftVersion_1 = require("./lib/LiftVersion");
41
+ const help_1 = require("./commands/help");
42
+ const init_1 = require("./commands/init");
43
+ const create_1 = require("./commands/create");
44
+ const build_1 = require("./commands/build");
45
+ const test_1 = require("./commands/test");
46
+ const package_1 = require("./commands/package");
47
+ const deploy_1 = require("./commands/deploy");
48
+ const publish_1 = require("./commands/publish");
49
+ const update_1 = require("./commands/update");
50
+ const doctor_1 = require("./commands/doctor");
51
+ const start_1 = require("./commands/start");
52
+ const settings_1 = require("./commands/settings");
53
+ const info_1 = require("./commands/info");
54
+ const command = (_a = process.argv[2]) !== null && _a !== void 0 ? _a : 'help';
55
+ const args = process.argv.slice(3);
56
+ function processCommand() {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ var _a, _b, _c;
59
+ switch (command) {
60
+ case 'version':
61
+ case '--version':
62
+ case '-v':
63
+ console.log(`Lift v${(0, LiftVersion_1.getLiftVersion)().toString()}`);
64
+ return;
65
+ case 'help':
66
+ return (0, help_1.doHelp)((_a = args[0]) !== null && _a !== void 0 ? _a : '');
67
+ case 'doctor':
68
+ yield (0, doctor_1.doDoctor)();
69
+ return;
70
+ case 'init':
71
+ return yield (0, init_1.doInit)((_b = args[0]) !== null && _b !== void 0 ? _b : '');
72
+ case 'create':
73
+ return (0, create_1.doCreate)((_c = args[0]) !== null && _c !== void 0 ? _c : '');
74
+ case 'build':
75
+ {
76
+ const ret = yield (0, build_1.doBuildAsync)(args);
77
+ if (ret !== 0)
78
+ process.exit(-1);
79
+ }
80
+ return;
81
+ case 'test':
82
+ {
83
+ const ret = yield (0, test_1.doTestAsync)(args);
84
+ if (ret !== 0)
85
+ process.exit(ret);
86
+ }
87
+ return;
88
+ case 'start':
89
+ return yield (0, start_1.startLocalServer)();
90
+ case 'package':
91
+ {
92
+ const ret = yield (0, package_1.doPackageAsync)(args);
93
+ if (ret !== 0)
94
+ process.exit(ret);
95
+ }
96
+ return;
97
+ case 'deploy':
98
+ {
99
+ const ret = yield (0, deploy_1.doDeployAsync)(args);
100
+ if (ret !== 0)
101
+ process.exit(ret);
102
+ }
103
+ return;
104
+ case 'publish':
105
+ {
106
+ const ret = yield (0, publish_1.doPublishAsync)();
107
+ if (ret !== 0)
108
+ process.exit(ret);
109
+ }
110
+ return;
111
+ case 'update':
112
+ {
113
+ const ret = yield (0, update_1.doUpdateAsync)();
114
+ process.exit(ret);
115
+ }
116
+ return;
117
+ case 'settings':
118
+ yield (0, settings_1.doSettings)();
119
+ return;
120
+ case 'info':
121
+ yield (0, info_1.doInfo)();
122
+ return;
123
+ }
124
+ return doUnknown(command);
125
+ });
126
+ }
127
+ function doUnknown(command) {
128
+ console.log(ac.red.bold(`Unrecognized command ${command !== null && command !== void 0 ? command : ''}`));
129
+ console.log(ac.grey.dim('try'));
130
+ console.log(ac.blue.dim('help, init, create, build, test, start, package, deploy, publish, settings'));
131
+ console.log('');
132
+ }
133
+ processCommand();
134
+ //# sourceMappingURL=lift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lift.js","sourceRoot":"","sources":["../../src/lift.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tremho/mist-lift",
3
- "version": "2.1.4",
3
+ "version": "2.2.0",
4
4
  "description": "lift command line utility for MistLift development",
5
5
  "main": "build/lift.js",
6
6
  "bin": {
@@ -49,8 +49,7 @@
49
49
  "@aws-sdk/client-api-gateway": "^3.598.0",
50
50
  "@aws-sdk/client-lambda": "^3.598.0",
51
51
  "@aws-sdk/credential-providers": "^3.598.0",
52
- "@tremho/inverse-y": "^2.0.4",
53
- "@tremho/session-tbd": "^2.0.2",
52
+ "@tremho/inverse-y": "^2.0.15",
54
53
  "ansi-colors": "^4.1.3",
55
54
  "body-parser": "^1.20.2",
56
55
  "clear-module": "^4.1.2",
@@ -6,7 +6,7 @@ import {
6
6
  AddPermissionCommand
7
7
  } from '@aws-sdk/client-lambda'
8
8
 
9
- import md5 from 'md5'
9
+ // import md5 from 'md5'
10
10
 
11
11
  import path from 'path'
12
12
  import fs from 'fs'
@@ -15,10 +15,11 @@ import { resolvePaths } from '../lib/pathResolve'
15
15
  import * as ac from 'ansi-colors'
16
16
 
17
17
  import { recurseDirectory } from '../lib/DirectoryUtils'
18
- import { getProjectName, getProjectVersion } from '../lib/LiftVersion'
18
+
19
19
  import { delay } from '../lib/utils'
20
20
  import { doPackageAsync } from './package'
21
21
  import { getAWSCredentials, getSettings, RuntimeType } from '../lib/LiftConfig'
22
+ import { decoratedName } from '../lib/IdSrc'
22
23
  // import { executeCommand } from '../lib/executeCommand'
23
24
 
24
25
  let projectPaths: { basePath: string, buildPath: string, functionPath: string, packagePath: string, verified: boolean }
@@ -110,8 +111,7 @@ export async function deployPackage (
110
111
  const timeout: number = def.timeoutSeconds ?? 0 // zero will mean default (3 seconds on AWS)
111
112
  const memorySize: number = def.memorySize ?? 0 // zero is default (128 [mb] for AWS)
112
113
  // funcname gets decorated with current instance identifier
113
- const idsrc = md5((getProjectName() ?? '') + (getProjectVersion()?.toString() ?? ''))
114
- const dFuncName = funcName + '_' + idsrc
114
+ const dFuncName = decoratedName(funcName)
115
115
 
116
116
  // See if function exists
117
117
  const client: any = new LambdaClient(getAWSCredentials())
@@ -218,7 +218,7 @@ function reconcileVersionImports (
218
218
  if (isDev) {
219
219
  console.error(ac.magenta(` ${m} import is dev-only, not migrated`))
220
220
  } else {
221
- if (depsOut[m] !== undefined) console.log(ac.blue.dim(` ${m} exported as ${r}`))
221
+ if (depsOut[m] !== r) console.log(ac.blue.dim(` ${m} exported as ${r}`))
222
222
  depsOut[m] = r
223
223
  }
224
224
  } else {
@@ -26,8 +26,8 @@ import { gatherFunctionDefinitions } from '../lib/openAPI/ApiBuildCollector'
26
26
  import { delay } from '../lib/utils'
27
27
  import { addBuiltInDefinitions, MakeBuiltinApiDoc } from './builtin/ApiDocMaker'
28
28
  import { DeployApiBuiltin, DeployRootFileserves, DeployWebrootBuiltIn } from './builtin/BuiltInHandler'
29
- import { getProjectName, getProjectVersion } from '../lib/LiftVersion'
30
- import md5 from 'md5'
29
+ import { esbuilder } from '../lib/ESBuild'
30
+ import { decoratedName, getIdDelimiter } from '../lib/IdSrc'
31
31
 
32
32
  let projectPaths: any
33
33
 
@@ -53,6 +53,9 @@ async function publishApi (
53
53
  if (stageName === undefined) stageName = 'Dev'
54
54
  console.log(ac.green.bold(`Publishing Api to ${stageName}`))
55
55
 
56
+ // console.log('esbuild...')
57
+ await esbuilder()
58
+ // console.log('done')
56
59
  // do the built-in deploys
57
60
  await DeployWebrootBuiltIn()
58
61
  await DeployRootFileserves()
@@ -127,6 +130,7 @@ async function publishApi (
127
130
  const publishUrl = `https://${apiId ?? ''}.execute-api.${region}.amazonaws.com/${stageName}`
128
131
  console.log(ac.green.bold(`\n Successfully deployed to ${publishUrl}`))
129
132
  recordLatestPublish(publishUrl)
133
+ // process.exit(0) // this was a dumb idea
130
134
  }
131
135
  function findApiName (): string {
132
136
  const infoFile = path.join(projectPaths.functionPath, 'apiService.info.json')
@@ -208,10 +212,15 @@ class PrereqInfo {
208
212
  }
209
213
 
210
214
  public findARN (name: string): string {
215
+ // console.warn(`>>> finding name ${name} in functions ${JSON.stringify(this.functions)}`)
211
216
  for (const f of this.functions ?? []) {
212
- const lastus = f.name.lastIndexOf('_')
217
+ const lastus = f.name.lastIndexOf(getIdDelimiter())
213
218
  const fname = f.name.substring(0, lastus)
214
- if (fname.toLowerCase() === name.toLowerCase()) return f.arn
219
+ // console.warn('comparing name, fname, lc ', {lastus, fname, name})
220
+ if (fname.toLowerCase() === name.toLowerCase()) {
221
+ // console.warn(">>> Match! ", f)
222
+ return f.arn
223
+ }
215
224
  }
216
225
  console.log("$$$ Couldn't find " + name + ' in ', this.functions)
217
226
  return ''
@@ -259,7 +268,7 @@ async function GetFunctionInfo (info: PrereqInfo): Promise<PrereqInfo> {
259
268
  const listCommand: any = new ListFunctionsCommand({})
260
269
  const response: any = await client.send(listCommand)
261
270
 
262
- const sfx = '_' + md5((getProjectName() ?? '') + (getProjectVersion()?.toString() ?? ''))
271
+ const sfx = decoratedName('')
263
272
 
264
273
  for (const func of response.Functions ?? []) {
265
274
  const fName: string = func?.FunctionName ?? ''