@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.
- package/README.md +11 -2
- package/build/QSTest/functions/IntegrationTest/IntegrationTest.test.js +47 -0
- package/build/QSTest/functions/IntegrationTest/IntegrationTest.test.js.map +1 -0
- package/build/QSTest/functions/IntegrationTest/src/local.js +33 -0
- package/build/QSTest/functions/IntegrationTest/src/local.js.map +1 -0
- package/build/QSTest/functions/IntegrationTest/src/main.js +29 -0
- package/build/QSTest/functions/IntegrationTest/src/main.js.map +1 -0
- package/build/commands/builtin/prebuilt-zips/API.zip +0 -0
- package/build/commands/builtin/prebuilt-zips/FileServe.zip +0 -0
- package/build/commands/builtin/prebuilt-zips/Webroot.zip +0 -0
- package/build/commands/deploy.js +4 -5
- package/build/commands/deploy.js.map +1 -1
- package/build/commands/package.js +1 -1
- package/build/commands/package.js.map +1 -1
- package/build/commands/publish.js +18 -10
- package/build/commands/publish.js.map +1 -1
- package/build/lib/ESBuild.js +8 -6
- package/build/lib/ESBuild.js.map +1 -1
- package/build/lib/IdSrc.js +23 -0
- package/build/lib/IdSrc.js.map +1 -0
- package/build/lib/openAPI/openApiConstruction.js.map +1 -1
- package/build/src/commands/actions/initQuestions.js +140 -0
- package/build/src/commands/actions/initQuestions.js.map +1 -0
- package/build/src/commands/actions/makePackageJson.js +2 -0
- package/build/src/commands/actions/makePackageJson.js.map +1 -0
- package/build/src/commands/actions/setupPackageJson.js +68 -0
- package/build/src/commands/actions/setupPackageJson.js.map +1 -0
- package/build/src/commands/build.js +209 -0
- package/build/src/commands/build.js.map +1 -0
- package/build/src/commands/builtin/ApiDocMaker.js +115 -0
- package/build/src/commands/builtin/ApiDocMaker.js.map +1 -0
- package/build/src/commands/builtin/BuiltInHandler.js +87 -0
- package/build/src/commands/builtin/BuiltInHandler.js.map +1 -0
- package/build/src/commands/builtin/DeployBuiltInZip.js +57 -0
- package/build/src/commands/builtin/DeployBuiltInZip.js.map +1 -0
- package/build/src/commands/builtin/StageWebrootZip.js +94 -0
- package/build/src/commands/builtin/StageWebrootZip.js.map +1 -0
- package/build/src/commands/create.js +90 -0
- package/build/src/commands/create.js.map +1 -0
- package/build/src/commands/deploy.js +220 -0
- package/build/src/commands/deploy.js.map +1 -0
- package/build/src/commands/doctor.js +150 -0
- package/build/src/commands/doctor.js.map +1 -0
- package/build/src/commands/help.js +231 -0
- package/build/src/commands/help.js.map +1 -0
- package/build/src/commands/info.js +71 -0
- package/build/src/commands/info.js.map +1 -0
- package/build/src/commands/init.js +103 -0
- package/build/src/commands/init.js.map +1 -0
- package/build/src/commands/package.js +258 -0
- package/build/src/commands/package.js.map +1 -0
- package/build/src/commands/publish.js +359 -0
- package/build/src/commands/publish.js.map +1 -0
- package/build/src/commands/settings.js +96 -0
- package/build/src/commands/settings.js.map +1 -0
- package/build/src/commands/start.js +181 -0
- package/build/src/commands/start.js.map +1 -0
- package/build/src/commands/test.js +52 -0
- package/build/src/commands/test.js.map +1 -0
- package/build/src/commands/update.js +68 -0
- package/build/src/commands/update.js.map +1 -0
- package/build/src/commands/user.js +20 -0
- package/build/src/commands/user.js.map +1 -0
- package/build/src/expressRoutes/all.js +134 -0
- package/build/src/expressRoutes/all.js.map +1 -0
- package/build/src/expressRoutes/api.js +24 -0
- package/build/src/expressRoutes/api.js.map +1 -0
- package/build/src/expressRoutes/functionBinder.js +201 -0
- package/build/src/expressRoutes/functionBinder.js.map +1 -0
- package/build/src/integration-tests/quickstart-scenario.test.js +86 -0
- package/build/src/integration-tests/quickstart-scenario.test.js.map +1 -0
- package/build/src/lib/CaseUtils.js +57 -0
- package/build/src/lib/CaseUtils.js.map +1 -0
- package/build/src/lib/DirectoryUtils.js +40 -0
- package/build/src/lib/DirectoryUtils.js.map +1 -0
- package/build/src/lib/ESBuild.js +99 -0
- package/build/src/lib/ESBuild.js.map +1 -0
- package/build/src/lib/IdSrc.js +23 -0
- package/build/src/lib/IdSrc.js.map +1 -0
- package/build/src/lib/LiftConfig.js +81 -0
- package/build/src/lib/LiftConfig.js.map +1 -0
- package/build/src/lib/LiftVersion.js +122 -0
- package/build/src/lib/LiftVersion.js.map +1 -0
- package/build/src/lib/Tests/fileCompare.test.js +56 -0
- package/build/src/lib/Tests/fileCompare.test.js.map +1 -0
- package/build/src/lib/askQuestion.js +42 -0
- package/build/src/lib/askQuestion.js.map +1 -0
- package/build/src/lib/executeCommand.js +58 -0
- package/build/src/lib/executeCommand.js.map +1 -0
- package/build/src/lib/fileCompare.js +49 -0
- package/build/src/lib/fileCompare.js.map +1 -0
- package/build/src/lib/openAPI/ApiBuildCollector.js +59 -0
- package/build/src/lib/openAPI/ApiBuildCollector.js.map +1 -0
- package/build/src/lib/openAPI/WebrootFileSupport.js +48 -0
- package/build/src/lib/openAPI/WebrootFileSupport.js.map +1 -0
- package/build/src/lib/openAPI/openApiConstruction.js +237 -0
- package/build/src/lib/openAPI/openApiConstruction.js.map +1 -0
- package/build/src/lib/pathResolve.js +27 -0
- package/build/src/lib/pathResolve.js.map +1 -0
- package/build/src/lib/utils.js +77 -0
- package/build/src/lib/utils.js.map +1 -0
- package/build/src/lift.js +134 -0
- package/build/src/lift.js.map +1 -0
- package/package.json +2 -3
- package/src/commands/builtin/prebuilt-zips/API.zip +0 -0
- package/src/commands/builtin/prebuilt-zips/FileServe.zip +0 -0
- package/src/commands/builtin/prebuilt-zips/Webroot.zip +0 -0
- package/src/commands/deploy.ts +4 -4
- package/src/commands/package.ts +1 -1
- package/src/commands/publish.ts +14 -5
- package/src/lib/ESBuild.ts +11 -9
- package/src/lib/IdSrc.ts +16 -0
- 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.
|
|
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.
|
|
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",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/src/commands/deploy.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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())
|
package/src/commands/package.ts
CHANGED
|
@@ -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] !==
|
|
221
|
+
if (depsOut[m] !== r) console.log(ac.blue.dim(` ${m} exported as ${r}`))
|
|
222
222
|
depsOut[m] = r
|
|
223
223
|
}
|
|
224
224
|
} else {
|
package/src/commands/publish.ts
CHANGED
|
@@ -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 {
|
|
30
|
-
import
|
|
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
|
-
|
|
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 =
|
|
271
|
+
const sfx = decoratedName('')
|
|
263
272
|
|
|
264
273
|
for (const func of response.Functions ?? []) {
|
|
265
274
|
const fName: string = func?.FunctionName ?? ''
|