@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,201 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.functionBinder = void 0;
|
|
30
|
+
/* eslint @typescript-eslint/no-var-requires: "off" */
|
|
31
|
+
const path_1 = __importDefault(require("path"));
|
|
32
|
+
const ac = __importStar(require("ansi-colors"));
|
|
33
|
+
const pathResolve_1 = require("../lib/pathResolve");
|
|
34
|
+
const express_1 = __importDefault(require("express"));
|
|
35
|
+
const ApiBuildCollector_1 = require("../lib/openAPI/ApiBuildCollector");
|
|
36
|
+
const openApiConstruction_1 = require("../lib/openAPI/openApiConstruction");
|
|
37
|
+
const inverse_y_1 = require("@tremho/inverse-y");
|
|
38
|
+
const clearModule = require('clear-module');
|
|
39
|
+
const router = express_1.default.Router();
|
|
40
|
+
function functionBinder() {
|
|
41
|
+
const defs = (0, ApiBuildCollector_1.gatherFunctionDefinitions)();
|
|
42
|
+
(0, openApiConstruction_1.buildOpenApi)(defs).then(() => {
|
|
43
|
+
var _a;
|
|
44
|
+
const projectPaths = (0, pathResolve_1.resolvePaths)();
|
|
45
|
+
for (const def of defs) {
|
|
46
|
+
const name = def.name;
|
|
47
|
+
const pathMap = def.pathMap;
|
|
48
|
+
let method = def.method;
|
|
49
|
+
let rpath = '';
|
|
50
|
+
try {
|
|
51
|
+
if (method === undefined) {
|
|
52
|
+
const nstr = (_a = name === null || name === void 0 ? void 0 : name.toString()) !== null && _a !== void 0 ? _a : '';
|
|
53
|
+
console.log(ac.red(`no method defined for ${nstr}`));
|
|
54
|
+
if (def.allowedMethods !== undefined) {
|
|
55
|
+
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' +
|
|
56
|
+
ac.black.italic(' method ') + ac.blue('property.') + ac.black.bold('Please update your definition file')));
|
|
57
|
+
method = def.allowedMethods.split(',')[0];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
method = method.trim().toLowerCase();
|
|
61
|
+
rpath = path_1.default.join(projectPaths.buildPath, 'functions', name, 'src', 'main.js');
|
|
62
|
+
console.warn('loading function', name);
|
|
63
|
+
clearModule(rpath);
|
|
64
|
+
const { start } = require(rpath);
|
|
65
|
+
let entryRoot = pathMap;
|
|
66
|
+
const n = entryRoot.indexOf('/{');
|
|
67
|
+
if (n !== -1)
|
|
68
|
+
entryRoot = entryRoot.substring(0, n) + '/*';
|
|
69
|
+
const callHandler = (pathMap, req, res) => {
|
|
70
|
+
const event = requestToEvent(pathMap, req);
|
|
71
|
+
Promise.resolve(start(event, null, null)).then(respOut => {
|
|
72
|
+
handleResponse(res, respOut);
|
|
73
|
+
}).catch((reason) => undefined);
|
|
74
|
+
};
|
|
75
|
+
if (method === 'get') {
|
|
76
|
+
router.get(entryRoot, (req, res) => callHandler(pathMap, req, res));
|
|
77
|
+
}
|
|
78
|
+
else if (method === 'post') {
|
|
79
|
+
router.post(entryRoot, (req, res) => callHandler(pathMap, req, res));
|
|
80
|
+
}
|
|
81
|
+
else if (method === 'put') {
|
|
82
|
+
router.put(entryRoot, (req, res) => callHandler(pathMap, req, res));
|
|
83
|
+
}
|
|
84
|
+
else if (method === 'patch') {
|
|
85
|
+
router.patch(entryRoot, (req, res) => callHandler(pathMap, req, res));
|
|
86
|
+
}
|
|
87
|
+
else if (method === 'delete') {
|
|
88
|
+
router.delete(entryRoot, (req, res) => callHandler(pathMap, req, res));
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
console.log(ac.red.bold('Cannot map method ') + ac.blue.bold(method));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
// Log.Error(ac.bold.red(e.message.split('\n')[0]))0
|
|
96
|
+
// throw new Error("Unable to load and bind function code at "+ rpath)
|
|
97
|
+
inverse_y_1.Log.Error('Unable load and bind function code', rpath);
|
|
98
|
+
inverse_y_1.Log.Exception(e);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}).catch((reason) => undefined);
|
|
102
|
+
}
|
|
103
|
+
exports.functionBinder = functionBinder;
|
|
104
|
+
function requestToEvent(template, req) {
|
|
105
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
106
|
+
let path = (_a = req.originalUrl) !== null && _a !== void 0 ? _a : '';
|
|
107
|
+
const qi = path.indexOf('?');
|
|
108
|
+
if (qi !== -1)
|
|
109
|
+
path = path.substring(0, qi);
|
|
110
|
+
const ptci = path.indexOf('://') + 3;
|
|
111
|
+
const ei = path.indexOf('/', ptci);
|
|
112
|
+
let host = path.substring(0, ei);
|
|
113
|
+
if (ptci < 3) {
|
|
114
|
+
host = (_g = (_e = (_c = (_b = req.headers) === null || _b === void 0 ? void 0 : _b.host) !== null && _c !== void 0 ? _c : (_d = req.headers) === null || _d === void 0 ? void 0 : _d.origin) !== null && _e !== void 0 ? _e : (_f = req.headers) === null || _f === void 0 ? void 0 : _f.referer) !== null && _g !== void 0 ? _g : '';
|
|
115
|
+
if (!host.startsWith('http')) {
|
|
116
|
+
if (!host.startsWith('https')) {
|
|
117
|
+
host = 'http://' + host;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const cookies = {};
|
|
122
|
+
const cookieString = (_j = (_h = req.headers) === null || _h === void 0 ? void 0 : _h.cookie) !== null && _j !== void 0 ? _j : '';
|
|
123
|
+
const crumbs = cookieString.split(';');
|
|
124
|
+
for (const c of crumbs) {
|
|
125
|
+
const pair = c.split('=');
|
|
126
|
+
if (pair.length === 2)
|
|
127
|
+
cookies[pair[0]] = pair[1];
|
|
128
|
+
}
|
|
129
|
+
const parameters = {};
|
|
130
|
+
const tslots = template.split('/');
|
|
131
|
+
const pslots = path.split('/');
|
|
132
|
+
for (let i = 0; i < tslots.length; i++) {
|
|
133
|
+
const brknm = ((_k = tslots[i]) !== null && _k !== void 0 ? _k : '').trim();
|
|
134
|
+
if (brknm.charAt(0) === '{') {
|
|
135
|
+
const pn = brknm.substring(1, brknm.length - 1);
|
|
136
|
+
parameters[pn] = ((_l = pslots[i]) !== null && _l !== void 0 ? _l : '').trim();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
for (const p of Object.getOwnPropertyNames(req.query)) {
|
|
140
|
+
parameters[p] = req.query[p];
|
|
141
|
+
}
|
|
142
|
+
const eventOut = {
|
|
143
|
+
requestContext: req,
|
|
144
|
+
request: {
|
|
145
|
+
originalUrl: host + req.originalUrl,
|
|
146
|
+
headers: req.headers
|
|
147
|
+
},
|
|
148
|
+
body: req.body,
|
|
149
|
+
cookies,
|
|
150
|
+
parameters
|
|
151
|
+
};
|
|
152
|
+
return eventOut;
|
|
153
|
+
}
|
|
154
|
+
function handleResponse(res, resp) {
|
|
155
|
+
// console.log(">>>>>>>> Handling response >>>>>>>>>")
|
|
156
|
+
var _a;
|
|
157
|
+
if (resp !== undefined) {
|
|
158
|
+
if (resp.cookies !== undefined) {
|
|
159
|
+
// console.log("--- see cookies", resp.cookies)
|
|
160
|
+
let cookies = [];
|
|
161
|
+
if (Array.isArray(resp.cookies)) {
|
|
162
|
+
cookies = resp.cookies;
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
const age = (_a = resp.cookies.expireSeconds) !== null && _a !== void 0 ? _a : 60; // 1 minute
|
|
166
|
+
delete resp.expireSeconds;
|
|
167
|
+
Object.getOwnPropertyNames(resp.cookies).forEach(name => {
|
|
168
|
+
const value = resp.cookies[name];
|
|
169
|
+
cookies.push(`${name}=${value}; Max-Age=${age}; `);
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
// console.log("cookies being set", cookies)
|
|
173
|
+
res.setHeader('set-cookie', cookies);
|
|
174
|
+
delete resp.cookies;
|
|
175
|
+
}
|
|
176
|
+
if (resp.headers !== undefined) {
|
|
177
|
+
// if (resp.statusCode === 301) ClogTrace("Redirecting...");
|
|
178
|
+
for (const hdr of Object.getOwnPropertyNames(resp.headers)) {
|
|
179
|
+
// ClogTrace("Setting header ", hdr, resp.headers[hdr]);
|
|
180
|
+
res.setHeader(hdr, resp.headers[hdr]);
|
|
181
|
+
}
|
|
182
|
+
delete resp.headers;
|
|
183
|
+
// console.log("past setting headers");
|
|
184
|
+
}
|
|
185
|
+
if (resp.statusCode !== undefined) {
|
|
186
|
+
res.statusCode = resp.statusCode;
|
|
187
|
+
delete resp.statusCode;
|
|
188
|
+
}
|
|
189
|
+
if (resp.contentType !== undefined) {
|
|
190
|
+
res.setHeader('Content-Type', resp.contentType);
|
|
191
|
+
delete resp.contentType;
|
|
192
|
+
}
|
|
193
|
+
if (resp.body !== undefined)
|
|
194
|
+
resp = resp.body;
|
|
195
|
+
}
|
|
196
|
+
// console.log("headers to be sent", res.getHeaders())
|
|
197
|
+
// console.log("-- Sending response", resp)
|
|
198
|
+
res.send(resp);
|
|
199
|
+
}
|
|
200
|
+
exports.default = router;
|
|
201
|
+
//# sourceMappingURL=functionBinder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functionBinder.js","sourceRoot":"","sources":["../../../src/expressRoutes/functionBinder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,gDAAuB;AAEvB,gDAAiC;AACjC,oDAAiD;AAEjD,sDAA6B;AAC7B,wEAA4E;AAC5E,4EAAiE;AACjE,iDAAuC;AAEvC,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAC3C,MAAM,MAAM,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;AAE/B,SAAgB,cAAc;IAC5B,MAAM,IAAI,GAAG,IAAA,6CAAyB,GAAE,CAAA;IACxC,IAAA,kCAAY,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;;QAC3B,MAAM,YAAY,GAAG,IAAA,0BAAY,GAAE,CAAA;QAEnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAW,GAAG,CAAC,IAAI,CAAA;YAC7B,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAA;YACnC,IAAI,MAAM,GAAW,GAAG,CAAC,MAAM,CAAA;YAC/B,IAAI,KAAK,GAAG,EAAE,CAAA;YACd,IAAI,CAAC;gBACH,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM,IAAI,GAAW,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAE,mCAAI,EAAE,CAAA;oBAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC,CAAA;oBACpD,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;wBACrC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,4BAA4B;4BAChK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAA;wBAC9G,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC3C,CAAC;gBACH,CAAC;gBAED,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;gBACpC,KAAK,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;gBAC9E,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;gBACtC,WAAW,CAAC,KAAK,CAAC,CAAA;gBAClB,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;gBAEhC,IAAI,SAAS,GAAW,OAAO,CAAA;gBAC/B,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBACjC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAAE,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;gBAE1D,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,GAAQ,EAAE,GAAQ,EAAQ,EAAE;oBAChE,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;oBAC1C,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;wBACvD,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;oBAC9B,CAAC,CAAC,CAAC,KAAK,CAAM,CAAC,MAAW,EAAE,EAAE,CAAC,SAAS,CAAC,CAAA;gBAC3C,CAAC,CAAA;gBAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;oBACrB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;gBACrE,CAAC;qBAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC7B,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;gBACtE,CAAC;qBAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;oBAC5B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;gBACrE,CAAC;qBAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;oBAC9B,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;gBACvE,CAAC;qBAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC/B,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;gBACxE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;gBACvE,CAAC;YACH,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,oDAAoD;gBACpD,sEAAsE;gBACtE,eAAG,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAA;gBACtD,eAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC,KAAK,CAAM,CAAC,MAAW,EAAE,EAAE,CAAC,SAAS,CAAC,CAAA;AAC3C,CAAC;AA3DD,wCA2DC;AAED,SAAS,cAAc,CAAE,QAAgB,EAAE,GAAQ;;IACjD,IAAI,IAAI,GAAW,MAAA,GAAG,CAAC,WAAW,mCAAI,EAAE,CAAA;IACxC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,EAAE,KAAK,CAAC,CAAC;QAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3C,MAAM,IAAI,GAAW,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5C,MAAM,EAAE,GAAW,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1C,IAAI,IAAI,GAAW,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACxC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,IAAI,GAAG,MAAA,MAAA,MAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,IAAI,mCAAI,MAAA,GAAG,CAAC,OAAO,0CAAE,MAAM,mCAAI,MAAA,GAAG,CAAC,OAAO,0CAAE,OAAO,mCAAI,EAAE,CAAA;QAC7E,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,IAAI,GAAG,SAAS,GAAG,IAAI,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAQ,EAAE,CAAA;IACvB,MAAM,YAAY,GAAG,MAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,MAAM,mCAAI,EAAE,CAAA;IAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACtC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,GAAa,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,UAAU,GAAQ,EAAE,CAAA;IAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,CAAC,MAAA,MAAM,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACtC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAC/C,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,MAAA,MAAM,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QAC3C,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC9B,CAAC;IACD,MAAM,QAAQ,GAAQ;QACpB,cAAc,EAAE,GAAG;QACnB,OAAO,EAAE;YACP,WAAW,EAAE,IAAI,GAAI,GAAG,CAAC,WAAsB;YAC/C,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB;QACD,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO;QACP,UAAU;KACX,CAAA;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AACD,SAAS,cAAc,CAAE,GAAQ,EAAE,IAAS;IAC1C,sDAAsD;;IAEtD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,+CAA+C;YAC/C,IAAI,OAAO,GAAQ,EAAE,CAAA;YACrB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAW,MAAA,IAAI,CAAC,OAAO,CAAC,aAAa,mCAAI,EAAE,CAAA,CAAC,WAAW;gBAChE,OAAO,IAAI,CAAC,aAAa,CAAA;gBACzB,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACtD,MAAM,KAAK,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;oBACxC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,aAAa,GAAG,IAAI,CAAC,CAAA;gBACpD,CAAC,CAAC,CAAA;YACJ,CAAC;YACD,4CAA4C;YAC5C,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;YACpC,OAAO,IAAI,CAAC,OAAO,CAAA;QACrB,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,4DAA4D;YAC5D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3D,wDAAwD;gBACxD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;YACvC,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAA;YACnB,uCAAuC;QACzC,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;YAChC,OAAO,IAAI,CAAC,UAAU,CAAA;QACxB,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YAC/C,OAAO,IAAI,CAAC,WAAW,CAAA;QACzB,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IAC/C,CAAC;IACD,sDAAsD;IACtD,2CAA2C;IAC3C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChB,CAAC;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint @typescript-eslint/no-floating-promises: "off" */
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
const tap_1 = __importDefault(require("tap"));
|
|
17
|
+
const tap_assert_1 = require("@tremho/tap-assert");
|
|
18
|
+
const fs_1 = __importDefault(require("fs"));
|
|
19
|
+
const path_1 = __importDefault(require("path"));
|
|
20
|
+
const init_1 = require("../commands/init");
|
|
21
|
+
const create_1 = require("../commands/create");
|
|
22
|
+
const build_1 = require("../commands/build");
|
|
23
|
+
const deploy_1 = require("../commands/deploy");
|
|
24
|
+
const publish_1 = require("../commands/publish");
|
|
25
|
+
const axios_1 = __importDefault(require("axios"));
|
|
26
|
+
function test(t) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const assert = new tap_assert_1.TapAssert(t);
|
|
29
|
+
const testMessage = `test on ${Date.now()}`;
|
|
30
|
+
// start clean
|
|
31
|
+
if (fs_1.default.existsSync('QSTest')) {
|
|
32
|
+
fs_1.default.rmSync('QSTest', { recursive: true });
|
|
33
|
+
}
|
|
34
|
+
// init
|
|
35
|
+
yield (0, init_1.doInit)('QSTest', true);
|
|
36
|
+
// verify project got made
|
|
37
|
+
assert.isTrue(fs_1.default.existsSync('QSTest'), 'created test project');
|
|
38
|
+
// verify we have a functions dir
|
|
39
|
+
assert.isTrue(fs_1.default.existsSync(path_1.default.join('QSTest', 'functions')), 'functions exist');
|
|
40
|
+
// verify we have a node_modules dir
|
|
41
|
+
assert.isTrue(fs_1.default.existsSync(path_1.default.join('QSTest', 'node_modules')), 'node_modules exist');
|
|
42
|
+
// verify we have a webroot dir
|
|
43
|
+
assert.isTrue(fs_1.default.existsSync(path_1.default.join('QSTest', 'webroot')), 'webroot exists');
|
|
44
|
+
// verify we have a package.json
|
|
45
|
+
assert.isTrue(fs_1.default.existsSync(path_1.default.join('QSTest', 'package.json')), 'package.json exists');
|
|
46
|
+
// verify we have webroot/docs
|
|
47
|
+
assert.isTrue(fs_1.default.existsSync(path_1.default.join('QSTest', 'webroot', 'docs', 'apidoc.yaml')), 'yaml exists');
|
|
48
|
+
assert.isTrue(fs_1.default.existsSync(path_1.default.join('QSTest', 'webroot', 'docs', 'swagger-ui-bundle.js')), 'js exists');
|
|
49
|
+
assert.isTrue(fs_1.default.existsSync(path_1.default.join('QSTest', 'webroot', 'docs', 'swagger-ui-standalone-preset.js')), 'js exists');
|
|
50
|
+
assert.isTrue(fs_1.default.existsSync(path_1.default.join('QSTest', 'webroot', 'docs', 'swagger-ui.css')), 'css exists');
|
|
51
|
+
// create
|
|
52
|
+
process.chdir('QSTest');
|
|
53
|
+
yield (0, create_1.doCreate)('IntegrationTest');
|
|
54
|
+
assert.isTrue(fs_1.default.existsSync(path_1.default.join('functions', 'IntegrationTest')), 'function exists');
|
|
55
|
+
assert.isTrue(fs_1.default.existsSync(path_1.default.join('functions', 'IntegrationTest', 'src', 'definition.json')), 'definition.json exists');
|
|
56
|
+
assert.isTrue(fs_1.default.existsSync(path_1.default.join('functions', 'IntegrationTest', 'src', 'local.ts')), 'local.ts exists');
|
|
57
|
+
const maints = path_1.default.join('functions', 'IntegrationTest', 'src', 'main.ts');
|
|
58
|
+
assert.isTrue(fs_1.default.existsSync(maints), 'main.ts exists');
|
|
59
|
+
let content = fs_1.default.readFileSync(maints).toString();
|
|
60
|
+
assert.contains(content, 'Hello, World!', 'Content has expected Hello, World! to start with');
|
|
61
|
+
content = content.replace('Hello, World!', testMessage);
|
|
62
|
+
assert.contains(content, testMessage, 'Contents successfully replaced with test message');
|
|
63
|
+
fs_1.default.writeFileSync(maints, content);
|
|
64
|
+
// build
|
|
65
|
+
yield (0, build_1.doBuildAsync)(['--clean']);
|
|
66
|
+
yield (0, deploy_1.doDeployAsync)([]);
|
|
67
|
+
yield (0, publish_1.doPublishAsync)();
|
|
68
|
+
const publishedJson = fs_1.default.readFileSync('.published').toString();
|
|
69
|
+
const publishedInfo = JSON.parse(publishedJson);
|
|
70
|
+
const apiUrl = publishedInfo.url;
|
|
71
|
+
assert.isTrue(apiUrl.length > 0, 'url exists');
|
|
72
|
+
const testUrl = apiUrl + '/integrationtest';
|
|
73
|
+
const resp = yield axios_1.default.get(testUrl);
|
|
74
|
+
assert.isEqual(resp.status, 200, 'status is 200');
|
|
75
|
+
const data = resp.data.toString();
|
|
76
|
+
assert.isEqual(data, testMessage, 'saw expected data');
|
|
77
|
+
// clean up
|
|
78
|
+
process.chdir('..');
|
|
79
|
+
fs_1.default.rmSync('QSTest', { recursive: true });
|
|
80
|
+
t.end();
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
tap_1.default.test('Integration Quickstart', (t) => __awaiter(void 0, void 0, void 0, function* () {
|
|
84
|
+
yield test(t);
|
|
85
|
+
}));
|
|
86
|
+
//# sourceMappingURL=quickstart-scenario.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quickstart-scenario.test.js","sourceRoot":"","sources":["../../../src/integration-tests/quickstart-scenario.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dashCase = exports.snakeCase = exports.pascalCase = exports.camelCase = exports.separated = void 0;
|
|
4
|
+
// separate a case-joined string into a string of space-separated words
|
|
5
|
+
function separated(instr) {
|
|
6
|
+
let outstr = '';
|
|
7
|
+
for (let i = 0; i < instr.length; i++) {
|
|
8
|
+
const c = instr.charAt(i);
|
|
9
|
+
if (!isAlphaNum(c) || isUpperCase(c)) {
|
|
10
|
+
outstr += ' ';
|
|
11
|
+
}
|
|
12
|
+
outstr += c.toLowerCase();
|
|
13
|
+
}
|
|
14
|
+
return outstr.trim();
|
|
15
|
+
}
|
|
16
|
+
exports.separated = separated;
|
|
17
|
+
function isUpperCase(instr) {
|
|
18
|
+
return (instr === null || instr === void 0 ? void 0 : instr.toUpperCase()) === instr;
|
|
19
|
+
}
|
|
20
|
+
function isAlphaNum(char) {
|
|
21
|
+
let alnum = false;
|
|
22
|
+
const cc = char.toUpperCase().charCodeAt(0);
|
|
23
|
+
if (cc >= 'A'.charCodeAt(0) && cc <= 'Z'.charCodeAt(0))
|
|
24
|
+
alnum = true;
|
|
25
|
+
if (cc >= '0'.charCodeAt(0) && cc <= '9'.charCodeAt(0))
|
|
26
|
+
alnum = true;
|
|
27
|
+
return alnum;
|
|
28
|
+
}
|
|
29
|
+
function camelCase(instr) {
|
|
30
|
+
const seps = separated(instr).split(' ');
|
|
31
|
+
for (let i = 1; i < seps.length; i++) {
|
|
32
|
+
seps[i] = seps[i].charAt(0).toUpperCase() + seps[i].substring(1);
|
|
33
|
+
}
|
|
34
|
+
return seps.join('');
|
|
35
|
+
}
|
|
36
|
+
exports.camelCase = camelCase;
|
|
37
|
+
function pascalCase(instr) {
|
|
38
|
+
const seps = separated(instr).split(' ');
|
|
39
|
+
for (let i = 0; i < seps.length; i++) {
|
|
40
|
+
seps[i] = seps[i].charAt(0).toUpperCase() + seps[i].substring(1);
|
|
41
|
+
}
|
|
42
|
+
return seps.join('');
|
|
43
|
+
}
|
|
44
|
+
exports.pascalCase = pascalCase;
|
|
45
|
+
function snakeCase(instr) {
|
|
46
|
+
return dashCase(instr, '_');
|
|
47
|
+
}
|
|
48
|
+
exports.snakeCase = snakeCase;
|
|
49
|
+
function dashCase(instr, dashChar = '-', allCaps = false) {
|
|
50
|
+
const seps = separated(instr).split(' ');
|
|
51
|
+
let out = seps.join(dashChar);
|
|
52
|
+
if (allCaps)
|
|
53
|
+
out = out.toUpperCase();
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
56
|
+
exports.dashCase = dashCase;
|
|
57
|
+
//# sourceMappingURL=CaseUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CaseUtils.js","sourceRoot":"","sources":["../../../src/lib/CaseUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
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.latestModification = exports.recurseDirectory = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
// Recurse a directory, calling back to a 'for-each' callback for all files in tree
|
|
10
|
+
function recurseDirectory(dirpath, callback) {
|
|
11
|
+
fs_1.default.readdirSync(dirpath).forEach((file) => {
|
|
12
|
+
const fpath = path_1.default.join(dirpath, file);
|
|
13
|
+
// if(fpath.indexOf('node_modules') === -1) {
|
|
14
|
+
const stat = fs_1.default.statSync(fpath);
|
|
15
|
+
if ((callback != null) && !callback(fpath, stat)) {
|
|
16
|
+
if (stat.isDirectory()) {
|
|
17
|
+
recurseDirectory(fpath, callback);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// }
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
exports.recurseDirectory = recurseDirectory;
|
|
24
|
+
// find the latest mod time for matching files in this folder tree
|
|
25
|
+
function latestModification(dirpath, match) {
|
|
26
|
+
let latestTime = new Date(0);
|
|
27
|
+
if (fs_1.default.existsSync(dirpath)) {
|
|
28
|
+
recurseDirectory(dirpath, (filepath, stats) => {
|
|
29
|
+
const basefile = filepath.substring(filepath.lastIndexOf('/') + 1);
|
|
30
|
+
if (basefile.match(match) != null) {
|
|
31
|
+
if (stats.mtime > latestTime)
|
|
32
|
+
latestTime = stats.mtime;
|
|
33
|
+
}
|
|
34
|
+
return false;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return latestTime;
|
|
38
|
+
}
|
|
39
|
+
exports.latestModification = latestModification;
|
|
40
|
+
//# sourceMappingURL=DirectoryUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirectoryUtils.js","sourceRoot":"","sources":["../../../src/lib/DirectoryUtils.ts"],"names":[],"mappings":";;;;;;AACA,4CAA8B;AAC9B,gDAAuB;AAKvB,mFAAmF;AACnF,SAAgB,gBAAgB,CAAE,OAAe,EAAE,QAAoB;IACrE,YAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;QAC/C,MAAM,KAAK,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACtC,6CAA6C;QAC7C,MAAM,IAAI,GAAG,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QACD,IAAI;IACN,CAAC,CAAC,CAAA;AACJ,CAAC;AAZD,4CAYC;AAED,kEAAkE;AAClE,SAAgB,kBAAkB,CAAE,OAAe,EAAE,KAAa;IAChE,IAAI,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;IAC5B,IAAI,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,gBAAgB,CAAC,OAAO,EAAE,CAAC,QAAgB,EAAE,KAAY,EAAE,EAAE;YAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YAClE,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,KAAK,GAAG,UAAU;oBAAE,UAAU,GAAG,KAAK,CAAC,KAAK,CAAA;YACxD,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAZD,gDAYC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
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.readServerConfig = exports.esbuilder = void 0;
|
|
39
|
+
const esbuild = __importStar(require("esbuild"));
|
|
40
|
+
const pathResolve_1 = require("./pathResolve");
|
|
41
|
+
const path_1 = __importDefault(require("path"));
|
|
42
|
+
const fs_1 = __importDefault(require("fs"));
|
|
43
|
+
const serverConfig = readServerConfig();
|
|
44
|
+
function esbuilder() {
|
|
45
|
+
return __awaiter(this, arguments, void 0, function* (triggerRebuild = null, oneShot = true) {
|
|
46
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
47
|
+
// console.warn('esbuilder starting...')
|
|
48
|
+
if (serverConfig.esbuild === undefined && typeof triggerRebuild === 'function') {
|
|
49
|
+
const promise = triggerRebuild();
|
|
50
|
+
return yield promise; // forces real start
|
|
51
|
+
}
|
|
52
|
+
const entryPoints = (_b = (_a = serverConfig.esbuild) === null || _a === void 0 ? void 0 : _a.entryPoints) !== null && _b !== void 0 ? _b : [];
|
|
53
|
+
const outDir = (_d = (_c = serverConfig.esbuild) === null || _c === void 0 ? void 0 : _c.outdir) !== null && _d !== void 0 ? _d : 'webroot';
|
|
54
|
+
const watch = (_f = (_e = serverConfig.esbuild) === null || _e === void 0 ? void 0 : _e.watch) !== null && _f !== void 0 ? _f : false;
|
|
55
|
+
// const breakOnError = serverConfig.esbuild.breakOnError ?? false
|
|
56
|
+
// const breakOnWarn = serverConfig.esbuild.breakOnWarn ?? false
|
|
57
|
+
// console.warn('running esbuild', { entryPoints, outDir, watch })
|
|
58
|
+
const options = (_g = serverConfig.esbuild) !== null && _g !== void 0 ? _g : {}; // get all the config from the user they want
|
|
59
|
+
// enforce the ones we need that may have been given defaults
|
|
60
|
+
delete options.watch; // not a real config
|
|
61
|
+
options.entryPoints = entryPoints;
|
|
62
|
+
if (options.bundle === undefined)
|
|
63
|
+
options.bundle = true;
|
|
64
|
+
options.outdir = outDir;
|
|
65
|
+
const ctx = yield esbuild.context(options);
|
|
66
|
+
// console.log('esbuild...', {ctx})
|
|
67
|
+
/* let result = */ yield ctx.rebuild();
|
|
68
|
+
let more = watch === true;
|
|
69
|
+
do {
|
|
70
|
+
yield sleep(500);
|
|
71
|
+
// console.log("ctx.rebuild()")
|
|
72
|
+
/* result = */ yield ctx.rebuild();
|
|
73
|
+
more = watch === true;
|
|
74
|
+
if (oneShot)
|
|
75
|
+
break;
|
|
76
|
+
} while (more);
|
|
77
|
+
// console.log("done building")
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
exports.esbuilder = esbuilder;
|
|
81
|
+
function readServerConfig() {
|
|
82
|
+
// console.log('readServerConfig...')
|
|
83
|
+
const projectPaths = (0, pathResolve_1.resolvePaths)();
|
|
84
|
+
const confFile = path_1.default.join(projectPaths.basePath, 'localServerConfig.json');
|
|
85
|
+
if (!fs_1.default.existsSync(confFile))
|
|
86
|
+
return {};
|
|
87
|
+
const conf = JSON.parse(fs_1.default.readFileSync(confFile).toString());
|
|
88
|
+
// console.log("server configuration", conf)
|
|
89
|
+
return conf;
|
|
90
|
+
}
|
|
91
|
+
exports.readServerConfig = readServerConfig;
|
|
92
|
+
function sleep(ms) {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
return yield new Promise(resolve => {
|
|
95
|
+
setTimeout(resolve, ms);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=ESBuild.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ESBuild.js","sourceRoot":"","sources":["../../../src/lib/ESBuild.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAkC;AAClC,+CAA4C;AAC5C,gDAAuB;AACvB,4CAAmB;AAEnB,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAA;AAEvC,SAAsB,SAAS;yDAAE,iBAAsB,IAAI,EAAE,UAAmB,IAAI;;QAClF,wCAAwC;QACxC,IAAI,YAAY,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;YAC/E,MAAM,OAAO,GAAkB,cAAc,EAAE,CAAA;YAC/C,OAAO,MAAM,OAAO,CAAA,CAAC,oBAAoB;QAC3C,CAAC;QAED,MAAM,WAAW,GAAG,MAAA,MAAA,YAAY,CAAC,OAAO,0CAAE,WAAW,mCAAI,EAAE,CAAA;QAC3D,MAAM,MAAM,GAAG,MAAA,MAAA,YAAY,CAAC,OAAO,0CAAE,MAAM,mCAAI,SAAS,CAAA;QACxD,MAAM,KAAK,GAAG,MAAA,MAAA,YAAY,CAAC,OAAO,0CAAE,KAAK,mCAAI,KAAK,CAAA;QAClD,kEAAkE;QAClE,gEAAgE;QAEhE,kEAAkE;QAElE,MAAM,OAAO,GAAQ,MAAA,YAAY,CAAC,OAAO,mCAAK,EAAE,CAAA,CAAC,6CAA6C;QAC9F,6DAA6D;QAC7D,OAAO,OAAO,CAAC,KAAK,CAAA,CAAC,oBAAoB;QACzC,OAAO,CAAC,WAAW,GAAG,WAAW,CAAA;QACjC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAA;QACvD,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;QAEvB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC1C,mCAAmC;QAEnC,kBAAkB,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,CAAA;QACtC,IAAI,IAAI,GAAY,KAAK,KAAK,IAAI,CAAA;QAClC,GAAG,CAAC;YACF,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;YAChB,+BAA+B;YAC/B,cAAc,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,CAAA;YAClC,IAAI,GAAG,KAAK,KAAK,IAAI,CAAA;YACrB,IAAI,OAAO;gBAAE,MAAK;QACpB,CAAC,QAAQ,IAAI,EAAC;QACd,+BAA+B;IACjC,CAAC;CAAA;AAnCD,8BAmCC;AAED,SAAgB,gBAAgB;IAC9B,qCAAqC;IACrC,MAAM,YAAY,GAAG,IAAA,0BAAY,GAAE,CAAA;IACnC,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAA;IAC3E,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAA;IAEvC,MAAM,IAAI,GAAQ,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAClE,4CAA4C;IAC5C,OAAO,IAAI,CAAA;AACb,CAAC;AATD,4CASC;AAED,SAAe,KAAK,CAAE,EAAU;;QAC9B,OAAO,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACjC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;IACJ,CAAC;CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decoratedName = exports.getIdSrc = exports.getIdDelimiter = void 0;
|
|
4
|
+
const LiftVersion_1 = require("../lib/LiftVersion");
|
|
5
|
+
function getIdDelimiter() {
|
|
6
|
+
return '_-_';
|
|
7
|
+
}
|
|
8
|
+
exports.getIdDelimiter = getIdDelimiter;
|
|
9
|
+
function getIdSrc() {
|
|
10
|
+
var _a, _b, _c;
|
|
11
|
+
let idsrc = '' + ((_a = (0, LiftVersion_1.getProjectName)()) !== null && _a !== void 0 ? _a : '') + '__v' + ((_c = (_b = (0, LiftVersion_1.getProjectVersion)()) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : '');
|
|
12
|
+
while (idsrc.includes(' '))
|
|
13
|
+
idsrc = idsrc.replace(' ', '_');
|
|
14
|
+
while (idsrc.includes('.'))
|
|
15
|
+
idsrc = idsrc.replace('.', '-');
|
|
16
|
+
return idsrc;
|
|
17
|
+
}
|
|
18
|
+
exports.getIdSrc = getIdSrc;
|
|
19
|
+
function decoratedName(name) {
|
|
20
|
+
return name + getIdDelimiter() + getIdSrc();
|
|
21
|
+
}
|
|
22
|
+
exports.decoratedName = decoratedName;
|
|
23
|
+
//# sourceMappingURL=IdSrc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdSrc.js","sourceRoot":"","sources":["../../../src/lib/IdSrc.ts"],"names":[],"mappings":";;;AACA,oDAAsE;AAEtE,SAAgB,cAAc;IAC5B,OAAO,KAAK,CAAA;AACd,CAAC;AAFD,wCAEC;AACD,SAAgB,QAAQ;;IACtB,IAAI,KAAK,GAAG,EAAE,GAAG,CAAC,MAAA,IAAA,4BAAc,GAAE,mCAAI,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,MAAA,MAAA,IAAA,+BAAiB,GAAE,0CAAE,QAAQ,EAAE,mCAAI,EAAE,CAAC,CAAA;IAC3F,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC3D,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAE3D,OAAO,KAAK,CAAA;AACd,CAAC;AAND,4BAMC;AACD,SAAgB,aAAa,CAAE,IAAY;IACzC,OAAO,IAAI,GAAG,cAAc,EAAE,GAAG,QAAQ,EAAE,CAAA;AAC7C,CAAC;AAFD,sCAEC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// configuration for setting cloud provider credentials
|
|
3
|
+
// may expand later for other MistLift settings/preferences
|
|
4
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6
|
+
};
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.getAWSCredentials = exports.getSettings = exports.areSettingsAvailable = exports.resetLiftConfig = exports.LoadLiftConfig = exports.getUserHome = exports.LiftConfig = void 0;
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
|
11
|
+
const credential_providers_1 = require("@aws-sdk/credential-providers");
|
|
12
|
+
let sLiftConfigLoaded = null;
|
|
13
|
+
// Defines the structure of the .mistlft json file
|
|
14
|
+
// All relevant configuration for the cloud host goes here
|
|
15
|
+
class LiftConfig {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.cloudHost = 'AWS'; // all we support now
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.LiftConfig = LiftConfig;
|
|
21
|
+
// Available for general use because, why not?
|
|
22
|
+
function getUserHome() {
|
|
23
|
+
var _a, _b, _c;
|
|
24
|
+
return (_c = (_b = (_a = process.env.HOME) !== null && _a !== void 0 ? _a : process.env.HOMEPATH) !== null && _b !== void 0 ? _b : process.env.USERPROFILE) !== null && _c !== void 0 ? _c : '~';
|
|
25
|
+
}
|
|
26
|
+
exports.getUserHome = getUserHome;
|
|
27
|
+
function LoadLiftConfig() {
|
|
28
|
+
if (sLiftConfigLoaded == null) {
|
|
29
|
+
const mistlift = path_1.default.join(getUserHome(), '.mistlift');
|
|
30
|
+
let configJson = '{}';
|
|
31
|
+
if (fs_1.default.existsSync(mistlift)) {
|
|
32
|
+
try {
|
|
33
|
+
configJson = fs_1.default.readFileSync(mistlift).toString();
|
|
34
|
+
sLiftConfigLoaded = JSON.parse(configJson);
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
//
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return sLiftConfigLoaded;
|
|
42
|
+
}
|
|
43
|
+
exports.LoadLiftConfig = LoadLiftConfig;
|
|
44
|
+
function resetLiftConfig() {
|
|
45
|
+
sLiftConfigLoaded = null;
|
|
46
|
+
}
|
|
47
|
+
exports.resetLiftConfig = resetLiftConfig;
|
|
48
|
+
function areSettingsAvailable() {
|
|
49
|
+
const mistlift = path_1.default.join(getUserHome(), '.mistlift');
|
|
50
|
+
return fs_1.default.existsSync(mistlift);
|
|
51
|
+
}
|
|
52
|
+
exports.areSettingsAvailable = areSettingsAvailable;
|
|
53
|
+
function getSettings() {
|
|
54
|
+
if (sLiftConfigLoaded == null)
|
|
55
|
+
LoadLiftConfig();
|
|
56
|
+
return sLiftConfigLoaded;
|
|
57
|
+
}
|
|
58
|
+
exports.getSettings = getSettings;
|
|
59
|
+
/**
|
|
60
|
+
* Return the credentials required for AWS based upon our config options.
|
|
61
|
+
*
|
|
62
|
+
* We will use the standard .aws config ini file, looked up by profile or default
|
|
63
|
+
* Prior attempts to have it do more than this failed, and resulted in a default profile choice anyway.
|
|
64
|
+
*/
|
|
65
|
+
function getAWSCredentials() {
|
|
66
|
+
var _a, _b;
|
|
67
|
+
let config = LoadLiftConfig();
|
|
68
|
+
if (config == null) {
|
|
69
|
+
// console.error("No .mistlift configuration found - using AWS default profile");
|
|
70
|
+
config = { cloudHost: 'AWS', awsIniProfile: 'default' };
|
|
71
|
+
}
|
|
72
|
+
if (((_a = config.cloudHost) === null || _a === void 0 ? void 0 : _a.toUpperCase()) !== 'AWS') {
|
|
73
|
+
throw Error('HostType Not Supported');
|
|
74
|
+
}
|
|
75
|
+
let credentials = {};
|
|
76
|
+
const profile = (_b = config.awsIniProfile) !== null && _b !== void 0 ? _b : 'default';
|
|
77
|
+
credentials = (0, credential_providers_1.fromIni)({ profile });
|
|
78
|
+
return credentials;
|
|
79
|
+
}
|
|
80
|
+
exports.getAWSCredentials = getAWSCredentials;
|
|
81
|
+
//# sourceMappingURL=LiftConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiftConfig.js","sourceRoot":"","sources":["../../../src/lib/LiftConfig.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,2DAA2D;;;;;;AAE3D,gDAAuB;AACvB,4CAAmB;AACnB,wEAAuD;AAEvD,IAAI,iBAAiB,GAAsB,IAAI,CAAA;AAE/C,kDAAkD;AAClD,0DAA0D;AAC1D,MAAa,UAAU;IAAvB;QACS,cAAS,GAAW,KAAK,CAAA,CAAC,qBAAqB;IAKxD,CAAC;CAAA;AAND,gCAMC;AAGD,8CAA8C;AAC9C,SAAgB,WAAW;;IACzB,OAAO,MAAA,MAAA,MAAA,OAAO,CAAC,GAAG,CAAC,IAAI,mCAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,mCAAI,OAAO,CAAC,GAAG,CAAC,WAAW,mCAAI,GAAG,CAAA;AACnF,CAAC;AAFD,kCAEC;AAED,SAAgB,cAAc;IAC5B,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC,CAAA;QACtD,IAAI,UAAU,GAAG,IAAI,CAAA;QACrB,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,UAAU,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAA;gBACjD,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YAC5C,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,EAAE;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAdD,wCAcC;AACD,SAAgB,eAAe;IAC7B,iBAAiB,GAAG,IAAI,CAAA;AAC1B,CAAC;AAFD,0CAEC;AAED,SAAgB,oBAAoB;IAClC,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC,CAAA;IACtD,OAAO,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AAChC,CAAC;AAHD,oDAGC;AAED,SAAgB,WAAW;IACzB,IAAI,iBAAiB,IAAI,IAAI;QAAE,cAAc,EAAE,CAAA;IAC/C,OAAO,iBAA+B,CAAA;AACxC,CAAC;AAHD,kCAGC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB;;IAC/B,IAAI,MAAM,GAAG,cAAc,EAAE,CAAA;IAC7B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,iFAAiF;QACjF,MAAM,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA;IACzD,CAAC;IACD,IAAI,CAAA,MAAA,MAAM,CAAC,SAAS,0CAAE,WAAW,EAAE,MAAK,KAAK,EAAE,CAAC;QAC9C,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAA;IACvC,CAAC;IACD,IAAI,WAAW,GAAG,EAAE,CAAA;IACpB,MAAM,OAAO,GAAG,MAAA,MAAM,CAAC,aAAa,mCAAI,SAAS,CAAA;IACjD,WAAW,GAAG,IAAA,8BAAO,EAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAClC,OAAO,WAAW,CAAA;AACpB,CAAC;AAbD,8CAaC"}
|