@optimizely/ocp-cli 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +18 -0
- package/bin/opti.js +3 -0
- package/dist/commands/accounts/Whoami.d.ts +3 -0
- package/dist/commands/accounts/Whoami.js +34 -0
- package/dist/commands/accounts/Whoami.js.map +1 -0
- package/dist/commands/accounts/Whois.d.ts +6 -0
- package/dist/commands/accounts/Whois.js +65 -0
- package/dist/commands/accounts/Whois.js.map +1 -0
- package/dist/commands/app/BaseBuildCommand.d.ts +23 -0
- package/dist/commands/app/BaseBuildCommand.js +227 -0
- package/dist/commands/app/BaseBuildCommand.js.map +1 -0
- package/dist/commands/app/Init.d.ts +20 -0
- package/dist/commands/app/Init.js +285 -0
- package/dist/commands/app/Init.js.map +1 -0
- package/dist/commands/app/Logs.d.ts +19 -0
- package/dist/commands/app/Logs.js +230 -0
- package/dist/commands/app/Logs.js.map +1 -0
- package/dist/commands/app/Package.d.ts +4 -0
- package/dist/commands/app/Package.js +51 -0
- package/dist/commands/app/Package.js.map +1 -0
- package/dist/commands/app/Prepare.d.ts +8 -0
- package/dist/commands/app/Prepare.js +112 -0
- package/dist/commands/app/Prepare.js.map +1 -0
- package/dist/commands/app/Register.d.ts +7 -0
- package/dist/commands/app/Register.js +58 -0
- package/dist/commands/app/Register.js.map +1 -0
- package/dist/commands/app/Validate.d.ts +4 -0
- package/dist/commands/app/Validate.js +27 -0
- package/dist/commands/app/Validate.js.map +1 -0
- package/dist/commands/availability/List.d.ts +4 -0
- package/dist/commands/availability/List.js +47 -0
- package/dist/commands/availability/List.js.map +1 -0
- package/dist/commands/directory/Info.d.ts +7 -0
- package/dist/commands/directory/Info.js +92 -0
- package/dist/commands/directory/Info.js.map +1 -0
- package/dist/commands/directory/Install.d.ts +6 -0
- package/dist/commands/directory/Install.js +54 -0
- package/dist/commands/directory/Install.js.map +1 -0
- package/dist/commands/directory/List.d.ts +8 -0
- package/dist/commands/directory/List.js +102 -0
- package/dist/commands/directory/List.js.map +1 -0
- package/dist/commands/directory/ListFunctions.d.ts +7 -0
- package/dist/commands/directory/ListFunctions.js +77 -0
- package/dist/commands/directory/ListFunctions.js.map +1 -0
- package/dist/commands/directory/ListGlobalFunctions.d.ts +6 -0
- package/dist/commands/directory/ListGlobalFunctions.js +72 -0
- package/dist/commands/directory/ListGlobalFunctions.js.map +1 -0
- package/dist/commands/directory/ListInstalls.d.ts +8 -0
- package/dist/commands/directory/ListInstalls.js +81 -0
- package/dist/commands/directory/ListInstalls.js.map +1 -0
- package/dist/commands/directory/Publish.d.ts +8 -0
- package/dist/commands/directory/Publish.js +180 -0
- package/dist/commands/directory/Publish.js.map +1 -0
- package/dist/commands/directory/Status.d.ts +5 -0
- package/dist/commands/directory/Status.js +60 -0
- package/dist/commands/directory/Status.js.map +1 -0
- package/dist/commands/directory/Uninstall.d.ts +6 -0
- package/dist/commands/directory/Uninstall.js +50 -0
- package/dist/commands/directory/Uninstall.js.map +1 -0
- package/dist/commands/directory/Unpublish.d.ts +10 -0
- package/dist/commands/directory/Unpublish.js +181 -0
- package/dist/commands/directory/Unpublish.js.map +1 -0
- package/dist/commands/directory/Uprade.d.ts +8 -0
- package/dist/commands/directory/Uprade.js +100 -0
- package/dist/commands/directory/Uprade.js.map +1 -0
- package/dist/commands/env/GetEnvironment.d.ts +3 -0
- package/dist/commands/env/GetEnvironment.js +28 -0
- package/dist/commands/env/GetEnvironment.js.map +1 -0
- package/dist/commands/env/SetEnvironment.d.ts +4 -0
- package/dist/commands/env/SetEnvironment.js +63 -0
- package/dist/commands/env/SetEnvironment.js.map +1 -0
- package/dist/commands/jobs/List.d.ts +21 -0
- package/dist/commands/jobs/List.js +268 -0
- package/dist/commands/jobs/List.js.map +1 -0
- package/dist/commands/jobs/RuntimeStatus.d.ts +5 -0
- package/dist/commands/jobs/RuntimeStatus.js +65 -0
- package/dist/commands/jobs/RuntimeStatus.js.map +1 -0
- package/dist/commands/jobs/Terminate.d.ts +5 -0
- package/dist/commands/jobs/Terminate.js +45 -0
- package/dist/commands/jobs/Terminate.js.map +1 -0
- package/dist/commands/jobs/Trigger.d.ts +8 -0
- package/dist/commands/jobs/Trigger.js +58 -0
- package/dist/commands/jobs/Trigger.js.map +1 -0
- package/dist/commands/review/List.d.ts +5 -0
- package/dist/commands/review/List.js +81 -0
- package/dist/commands/review/List.js.map +1 -0
- package/dist/commands/review/Open.d.ts +4 -0
- package/dist/commands/review/Open.js +42 -0
- package/dist/commands/review/Open.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/AppContext.d.ts +9 -0
- package/dist/lib/AppContext.js +43 -0
- package/dist/lib/AppContext.js.map +1 -0
- package/dist/lib/AppPackager.d.ts +8 -0
- package/dist/lib/AppPackager.js +40 -0
- package/dist/lib/AppPackager.js.map +1 -0
- package/dist/lib/AppUpdater.d.ts +9 -0
- package/dist/lib/AppUpdater.js +155 -0
- package/dist/lib/AppUpdater.js.map +1 -0
- package/dist/lib/AppUploader.d.ts +8 -0
- package/dist/lib/AppUploader.js +36 -0
- package/dist/lib/AppUploader.js.map +1 -0
- package/dist/lib/Config.d.ts +15 -0
- package/dist/lib/Config.js +47 -0
- package/dist/lib/Config.js.map +1 -0
- package/dist/lib/EnvironmentalOutput.d.ts +1 -0
- package/dist/lib/EnvironmentalOutput.js +21 -0
- package/dist/lib/EnvironmentalOutput.js.map +1 -0
- package/dist/lib/Moria.d.ts +51 -0
- package/dist/lib/Moria.js +30 -0
- package/dist/lib/Moria.js.map +1 -0
- package/dist/lib/MoriaApi.d.ts +22 -0
- package/dist/lib/MoriaApi.js +75 -0
- package/dist/lib/MoriaApi.js.map +1 -0
- package/dist/lib/Rivendell.d.ts +351 -0
- package/dist/lib/Rivendell.js +328 -0
- package/dist/lib/Rivendell.js.map +1 -0
- package/dist/lib/RivendellApi.d.ts +22 -0
- package/dist/lib/RivendellApi.js +90 -0
- package/dist/lib/RivendellApi.js.map +1 -0
- package/dist/lib/Shards.d.ts +3 -0
- package/dist/lib/Shards.js +34 -0
- package/dist/lib/Shards.js.map +1 -0
- package/dist/lib/StringUtils.d.ts +1 -0
- package/dist/lib/StringUtils.js +9 -0
- package/dist/lib/StringUtils.js.map +1 -0
- package/dist/lib/TeminalPassthru.d.ts +5 -0
- package/dist/lib/TeminalPassthru.js +12 -0
- package/dist/lib/TeminalPassthru.js.map +1 -0
- package/dist/lib/TerminalConfirm.d.ts +3 -0
- package/dist/lib/TerminalConfirm.js +26 -0
- package/dist/lib/TerminalConfirm.js.map +1 -0
- package/dist/lib/TerminalInput.d.ts +32 -0
- package/dist/lib/TerminalInput.js +207 -0
- package/dist/lib/TerminalInput.js.map +1 -0
- package/dist/lib/TerminalMenu.d.ts +34 -0
- package/dist/lib/TerminalMenu.js +186 -0
- package/dist/lib/TerminalMenu.js.map +1 -0
- package/dist/lib/TerminalOutput.d.ts +5 -0
- package/dist/lib/TerminalOutput.js +12 -0
- package/dist/lib/TerminalOutput.js.map +1 -0
- package/dist/lib/TerminalSpinner.d.ts +15 -0
- package/dist/lib/TerminalSpinner.js +71 -0
- package/dist/lib/TerminalSpinner.js.map +1 -0
- package/dist/lib/build.d.ts +5 -0
- package/dist/lib/build.js +35 -0
- package/dist/lib/build.js.map +1 -0
- package/dist/lib/checkForUpdate.d.ts +2 -0
- package/dist/lib/checkForUpdate.js +58 -0
- package/dist/lib/checkForUpdate.js.map +1 -0
- package/dist/lib/dev/app.d.ts +8 -0
- package/dist/lib/dev/app.js +53 -0
- package/dist/lib/dev/app.js.map +1 -0
- package/dist/lib/dev/index.d.ts +1 -0
- package/dist/lib/dev/index.js +14 -0
- package/dist/lib/dev/index.js.map +1 -0
- package/dist/lib/dev/logger.d.ts +15 -0
- package/dist/lib/dev/logger.js +58 -0
- package/dist/lib/dev/logger.js.map +1 -0
- package/dist/lib/die.d.ts +5 -0
- package/dist/lib/die.js +14 -0
- package/dist/lib/die.js.map +1 -0
- package/dist/lib/directoryExists.d.ts +1 -0
- package/dist/lib/directoryExists.js +9 -0
- package/dist/lib/directoryExists.js.map +1 -0
- package/dist/lib/formatBuildState.d.ts +2 -0
- package/dist/lib/formatBuildState.js +23 -0
- package/dist/lib/formatBuildState.js.map +1 -0
- package/dist/lib/formatError.d.ts +1 -0
- package/dist/lib/formatError.js +45 -0
- package/dist/lib/formatError.js.map +1 -0
- package/dist/lib/formatJobStatus.d.ts +3 -0
- package/dist/lib/formatJobStatus.js +28 -0
- package/dist/lib/formatJobStatus.js.map +1 -0
- package/dist/lib/formatReviewStatus.d.ts +4 -0
- package/dist/lib/formatReviewStatus.js +28 -0
- package/dist/lib/formatReviewStatus.js.map +1 -0
- package/dist/lib/formatTimstamp.d.ts +1 -0
- package/dist/lib/formatTimstamp.js +25 -0
- package/dist/lib/formatTimstamp.js.map +1 -0
- package/dist/lib/formatVersionState.d.ts +2 -0
- package/dist/lib/formatVersionState.js +35 -0
- package/dist/lib/formatVersionState.js.map +1 -0
- package/dist/lib/gatherAppEnv.d.ts +3 -0
- package/dist/lib/gatherAppEnv.js +71 -0
- package/dist/lib/gatherAppEnv.js.map +1 -0
- package/dist/lib/handleInterrupt.d.ts +1 -0
- package/dist/lib/handleInterrupt.js +17 -0
- package/dist/lib/handleInterrupt.js.map +1 -0
- package/dist/lib/jobRuntime.d.ts +3 -0
- package/dist/lib/jobRuntime.js +16 -0
- package/dist/lib/jobRuntime.js.map +1 -0
- package/dist/lib/parseDate.d.ts +2 -0
- package/dist/lib/parseDate.js +26 -0
- package/dist/lib/parseDate.js.map +1 -0
- package/dist/lib/templating/TemplateRenderer.d.ts +13 -0
- package/dist/lib/templating/TemplateRenderer.js +62 -0
- package/dist/lib/templating/TemplateRenderer.js.map +1 -0
- package/dist/lib/templating/fetchTemplatesManifest.d.ts +1 -0
- package/dist/lib/templating/fetchTemplatesManifest.js +10 -0
- package/dist/lib/templating/fetchTemplatesManifest.js.map +1 -0
- package/dist/lib/templating/types.d.ts +27 -0
- package/dist/lib/templating/types.js +3 -0
- package/dist/lib/templating/types.js.map +1 -0
- package/dist/oo-cli.manifest.json +1142 -0
- package/dist/test/setup.d.ts +0 -0
- package/dist/test/setup.js +4 -0
- package/dist/test/setup.js.map +1 -0
- package/package.json +94 -0
- package/src/commands/accounts/Whoami.ts +19 -0
- package/src/commands/accounts/Whois.ts +51 -0
- package/src/commands/app/BaseBuildCommand.ts +266 -0
- package/src/commands/app/Init.ts +303 -0
- package/src/commands/app/Logs.ts +241 -0
- package/src/commands/app/Package.ts +39 -0
- package/src/commands/app/Prepare.ts +108 -0
- package/src/commands/app/Register.ts +41 -0
- package/src/commands/app/Validate.ts +13 -0
- package/src/commands/availability/List.ts +37 -0
- package/src/commands/directory/Info.ts +83 -0
- package/src/commands/directory/Install.ts +37 -0
- package/src/commands/directory/List.ts +96 -0
- package/src/commands/directory/ListFunctions.ts +60 -0
- package/src/commands/directory/ListGlobalFunctions.ts +54 -0
- package/src/commands/directory/ListInstalls.ts +73 -0
- package/src/commands/directory/Publish.ts +179 -0
- package/src/commands/directory/Status.ts +45 -0
- package/src/commands/directory/Uninstall.ts +32 -0
- package/src/commands/directory/Unpublish.ts +173 -0
- package/src/commands/directory/Uprade.ts +85 -0
- package/src/commands/env/GetEnvironment.ts +14 -0
- package/src/commands/env/SetEnvironment.ts +52 -0
- package/src/commands/jobs/List.ts +278 -0
- package/src/commands/jobs/RuntimeStatus.ts +49 -0
- package/src/commands/jobs/Terminate.ts +29 -0
- package/src/commands/jobs/Trigger.ts +41 -0
- package/src/commands/review/List.ts +76 -0
- package/src/commands/review/Open.ts +28 -0
- package/src/index.ts +15 -0
- package/src/lib/AppContext.ts +47 -0
- package/src/lib/AppPackager.ts +47 -0
- package/src/lib/AppUpdater.ts +177 -0
- package/src/lib/AppUploader.ts +39 -0
- package/src/lib/Config.ts +60 -0
- package/src/lib/EnvironmentalOutput.ts +18 -0
- package/src/lib/Moria.ts +66 -0
- package/src/lib/MoriaApi.ts +86 -0
- package/src/lib/Rivendell.ts +572 -0
- package/src/lib/RivendellApi.ts +99 -0
- package/src/lib/Shards.ts +37 -0
- package/src/lib/StringUtils.ts +4 -0
- package/src/lib/TeminalPassthru.ts +7 -0
- package/src/lib/TerminalConfirm.ts +27 -0
- package/src/lib/TerminalInput.ts +236 -0
- package/src/lib/TerminalMenu.ts +221 -0
- package/src/lib/TerminalOutput.ts +7 -0
- package/src/lib/TerminalSpinner.ts +76 -0
- package/src/lib/build.ts +36 -0
- package/src/lib/checkForUpdate.ts +63 -0
- package/src/lib/dev/app.ts +58 -0
- package/src/lib/dev/index.ts +1 -0
- package/src/lib/dev/logger.ts +77 -0
- package/src/lib/die.ts +10 -0
- package/src/lib/directoryExists.ts +5 -0
- package/src/lib/formatBuildState.ts +20 -0
- package/src/lib/formatError.ts +39 -0
- package/src/lib/formatJobStatus.ts +24 -0
- package/src/lib/formatReviewStatus.ts +27 -0
- package/src/lib/formatTimstamp.ts +21 -0
- package/src/lib/formatVersionState.ts +31 -0
- package/src/lib/gatherAppEnv.ts +75 -0
- package/src/lib/handleInterrupt.ts +13 -0
- package/src/lib/jobRuntime.ts +12 -0
- package/src/lib/parseDate.ts +21 -0
- package/src/lib/templating/TemplateRenderer.ts +65 -0
- package/src/lib/templating/fetchTemplatesManifest.ts +6 -0
- package/src/lib/templating/types.ts +30 -0
- package/src/test/setup.ts +2 -0
- package/src/types/columnify.d.ts +27 -0
- package/src/types/gitignore-parser.d.ts +11 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directoryExists.js","sourceRoot":"","sources":["../../src/lib/directoryExists.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AAEzB,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAClE,CAAC;AAFD,0CAEC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatBuildState = void 0;
|
|
4
|
+
const chalk_1 = require("chalk");
|
|
5
|
+
const Rivendell_1 = require("./Rivendell");
|
|
6
|
+
function formatBuildState(state) {
|
|
7
|
+
switch (state) {
|
|
8
|
+
case Rivendell_1.Rivendell.BuildState.NEW:
|
|
9
|
+
return chalk_1.default.yellow('NEW');
|
|
10
|
+
case Rivendell_1.Rivendell.BuildState.QUEUED:
|
|
11
|
+
return chalk_1.default.yellow('QUEUED');
|
|
12
|
+
case Rivendell_1.Rivendell.BuildState.RUNNING:
|
|
13
|
+
return chalk_1.default.yellow('BUILDING');
|
|
14
|
+
case Rivendell_1.Rivendell.BuildState.FINISHED:
|
|
15
|
+
return chalk_1.default.yellow('FINISHED');
|
|
16
|
+
default: {
|
|
17
|
+
console.error(chalk_1.default.red(`Unrecognized BuildState ${state} `));
|
|
18
|
+
return chalk_1.default.red('UNKNOWN');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.formatBuildState = formatBuildState;
|
|
23
|
+
//# sourceMappingURL=formatBuildState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatBuildState.js","sourceRoot":"","sources":["../../src/lib/formatBuildState.ts"],"names":[],"mappings":";;;AAAA,iCAA0B;AAC1B,2CAAsC;AAEtC,SAAgB,gBAAgB,CAAC,KAA2B;IAC1D,QAAQ,KAAK,EAAE;QACb,KAAK,qBAAS,CAAC,UAAU,CAAC,GAAG;YAC3B,OAAO,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,qBAAS,CAAC,UAAU,CAAC,MAAM;YAC9B,OAAO,eAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,KAAK,qBAAS,CAAC,UAAU,CAAC,OAAO;YAC/B,OAAO,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,KAAK,qBAAS,CAAC,UAAU,CAAC,QAAQ;YAChC,OAAO,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAElC,OAAO,CAAC,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,2BAA2B,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9D,OAAO,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAC7B;KACF;AACH,CAAC;AAhBD,4CAgBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function formatError(error: Error): any;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatError = void 0;
|
|
4
|
+
const RivendellApi_1 = require("./RivendellApi");
|
|
5
|
+
const MoriaApi_1 = require("./MoriaApi");
|
|
6
|
+
var RivendellApiError = RivendellApi_1.RivendellApi.ApiError;
|
|
7
|
+
var MoriaApiError = MoriaApi_1.MoriaApi.ApiError;
|
|
8
|
+
function formatError(error) {
|
|
9
|
+
var _a;
|
|
10
|
+
if (error instanceof RivendellApiError) {
|
|
11
|
+
if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 403) {
|
|
12
|
+
return 'Could not authenticate with the credential configured in ~/.ocp/credentials.json.';
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
return sanitize(errorMessageFromJsonResponse(error));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
else if (error instanceof MoriaApiError) {
|
|
19
|
+
return sanitize(errorMessageFromJsonResponse(error));
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return sanitize(error.message);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.formatError = formatError;
|
|
26
|
+
function errorMessageFromJsonResponse(error) {
|
|
27
|
+
var _a, _b;
|
|
28
|
+
const contentType = (_b = (_a = error.response) === null || _a === void 0 ? void 0 : _a.headers) === null || _b === void 0 ? void 0 : _b.get('content-type');
|
|
29
|
+
if ((contentType === null || contentType === void 0 ? void 0 : contentType.includes('application/json')) && error.responseText) {
|
|
30
|
+
const response = JSON.parse(error.responseText);
|
|
31
|
+
// protocol is that detail will have either a `message` or an `invalids` child
|
|
32
|
+
if (response.detail) {
|
|
33
|
+
return response.detail.message
|
|
34
|
+
? response.detail.message
|
|
35
|
+
: response.detail.invalids
|
|
36
|
+
.map((violation) => `* ${violation.field} ${violation.reason}`)
|
|
37
|
+
.join('\n');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return error.message;
|
|
41
|
+
}
|
|
42
|
+
function sanitize(body) {
|
|
43
|
+
return body.replace('FAILED_PRECONDITION: ', '').replace('INTERNAL: ', '');
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=formatError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatError.js","sourceRoot":"","sources":["../../src/lib/formatError.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAC5C,yCAAoC;AACpC,IAAO,iBAAiB,GAAG,2BAAY,CAAC,QAAQ,CAAC;AACjD,IAAO,aAAa,GAAG,mBAAQ,CAAC,QAAQ,CAAC;AAEzC,SAAgB,WAAW,CAAC,KAAY;;IACtC,IAAI,KAAK,YAAY,iBAAiB,EAAE;QACtC,IAAI,OAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE;YAClC,OAAO,mFAAmF,CAAC;SAC5F;aAAM;YACL,OAAO,QAAQ,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC;SACtD;KACF;SAAM,IAAI,KAAK,YAAY,aAAa,EAAE;QACzC,OAAO,QAAQ,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC;KACtD;SAAM;QACL,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAChC;AACH,CAAC;AAZD,kCAYC;AAED,SAAS,4BAA4B,CAAC,KAAwC;;IAC5E,MAAM,WAAW,eAAG,KAAK,CAAC,QAAQ,0CAAE,OAAO,0CAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACjE,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,kBAAkB,MAAK,KAAK,CAAC,YAAY,EAAE;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChD,8EAA8E;QAC9E,IAAI,QAAQ,CAAC,MAAM,EAAE;YACnB,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO;gBAC5B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;gBACzB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ;qBACvB,GAAG,CAAC,CAAC,SAAoC,EAAE,EAAE,CAAC,KAAK,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;qBACzF,IAAI,CAAC,IAAI,CAAC,CAAC;SACjB;KACF;IAED,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC;AAED,SAAS,QAAQ,CAAC,IAAS;IACzB,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatJobStatus = void 0;
|
|
4
|
+
const chalk_1 = require("chalk");
|
|
5
|
+
const Rivendell_1 = require("./Rivendell");
|
|
6
|
+
var JobStatus = Rivendell_1.Rivendell.JobStatus;
|
|
7
|
+
function formatJobStatus(status) {
|
|
8
|
+
switch (status) {
|
|
9
|
+
case JobStatus.PENDING:
|
|
10
|
+
return chalk_1.default.gray('PENDING');
|
|
11
|
+
case JobStatus.SCHEDULED:
|
|
12
|
+
return chalk_1.default.gray('SCHEDULED');
|
|
13
|
+
case JobStatus.RUNNING:
|
|
14
|
+
return chalk_1.default.yellow('RUNNING');
|
|
15
|
+
case JobStatus.COMPLETE:
|
|
16
|
+
return chalk_1.default.green('COMPLETE');
|
|
17
|
+
case JobStatus.TERMINATED:
|
|
18
|
+
return chalk_1.default.green('TERMINATED');
|
|
19
|
+
case JobStatus.ERROR:
|
|
20
|
+
return chalk_1.default.red('ERROR');
|
|
21
|
+
default: {
|
|
22
|
+
console.error(chalk_1.default.red(`Unrecognized JobStatus ${status}`));
|
|
23
|
+
return chalk_1.default.red('UNKNOWN');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.formatJobStatus = formatJobStatus;
|
|
28
|
+
//# sourceMappingURL=formatJobStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatJobStatus.js","sourceRoot":"","sources":["../../src/lib/formatJobStatus.ts"],"names":[],"mappings":";;;AAAA,iCAA0B;AAC1B,2CAAsC;AACtC,IAAO,SAAS,GAAG,qBAAS,CAAC,SAAS,CAAC;AAEvC,SAAgB,eAAe,CAAC,MAAiB;IAC/C,QAAQ,MAAM,EAAE;QACd,KAAK,SAAS,CAAC,OAAO;YACpB,OAAO,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,KAAK,SAAS,CAAC,SAAS;YACtB,OAAO,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,KAAK,SAAS,CAAC,OAAO;YACpB,OAAO,eAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,KAAK,SAAS,CAAC,QAAQ;YACrB,OAAO,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjC,KAAK,SAAS,CAAC,UAAU;YACvB,OAAO,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,KAAK,SAAS,CAAC,KAAK;YAClB,OAAO,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7D,OAAO,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAC7B;KACF;AACH,CAAC;AAnBD,0CAmBC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatReviewStatus = void 0;
|
|
4
|
+
const chalk_1 = require("chalk");
|
|
5
|
+
const Rivendell_1 = require("./Rivendell");
|
|
6
|
+
var AppVersionState = Rivendell_1.Rivendell.AppVersionState;
|
|
7
|
+
var ReviewStatus = Rivendell_1.Rivendell.ReviewStatus;
|
|
8
|
+
function formatReviewStatus(reviewStatus, state = AppVersionState.PUBLISHED) {
|
|
9
|
+
if (state !== AppVersionState.PUBLISHED) {
|
|
10
|
+
return '';
|
|
11
|
+
}
|
|
12
|
+
switch (reviewStatus) {
|
|
13
|
+
case ReviewStatus.NOT_STARTED:
|
|
14
|
+
return chalk_1.default.yellow('NOT_STARTED');
|
|
15
|
+
case ReviewStatus.IN_REVIEW:
|
|
16
|
+
return chalk_1.default.hex('#EE7600')('IN_REVIEW');
|
|
17
|
+
case ReviewStatus.APPROVED:
|
|
18
|
+
return chalk_1.default.green('APPROVED');
|
|
19
|
+
case ReviewStatus.NOT_REQUIRED:
|
|
20
|
+
return chalk_1.default.green('NOT_REQUIRED');
|
|
21
|
+
default: {
|
|
22
|
+
console.error(chalk_1.default.red(`Unrecognized ReviewStatus ${reviewStatus} `));
|
|
23
|
+
return chalk_1.default.red('UNKNOWN');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.formatReviewStatus = formatReviewStatus;
|
|
28
|
+
//# sourceMappingURL=formatReviewStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatReviewStatus.js","sourceRoot":"","sources":["../../src/lib/formatReviewStatus.ts"],"names":[],"mappings":";;;AAAA,iCAA0B;AAC1B,2CAAsC;AACtC,IAAO,eAAe,GAAG,qBAAS,CAAC,eAAe,CAAC;AACnD,IAAO,YAAY,GAAG,qBAAS,CAAC,YAAY,CAAC;AAE7C,SAAgB,kBAAkB,CAChC,YAA0B,EAC1B,QAAyB,eAAe,CAAC,SAAS;IAElD,IAAI,KAAK,KAAK,eAAe,CAAC,SAAS,EAAE;QACvC,OAAO,EAAE,CAAC;KACX;IACD,QAAQ,YAAY,EAAE;QACpB,KAAK,YAAY,CAAC,WAAW;YAC3B,OAAO,eAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACrC,KAAK,YAAY,CAAC,SAAS;YACzB,OAAO,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC;QAC3C,KAAK,YAAY,CAAC,QAAQ;YACxB,OAAO,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjC,KAAK,YAAY,CAAC,YAAY;YAC5B,OAAO,eAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACrC,OAAO,CAAC,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,YAAY,GAAG,CAAC,CAAC,CAAC;YACvE,OAAO,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAC7B;KACF;AACH,CAAC;AArBD,gDAqBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function timestampToDurationString(ms: number | undefined): string;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.timestampToDurationString = void 0;
|
|
4
|
+
function timestampToDurationString(ms) {
|
|
5
|
+
if (!ms || ms <= 0) {
|
|
6
|
+
return '-';
|
|
7
|
+
}
|
|
8
|
+
const duration = ms / 1000;
|
|
9
|
+
const hours = Math.floor(duration / 3600);
|
|
10
|
+
const minutes = Math.floor((duration - (hours * 3600)) / 60);
|
|
11
|
+
const seconds = Math.trunc(duration - (hours * 3600) - (minutes * 60));
|
|
12
|
+
const out = [];
|
|
13
|
+
if (hours > 0) {
|
|
14
|
+
out.push(`${hours}h`);
|
|
15
|
+
}
|
|
16
|
+
if (minutes > 0) {
|
|
17
|
+
out.push(`${minutes}m`);
|
|
18
|
+
}
|
|
19
|
+
if (seconds > 0) {
|
|
20
|
+
out.push(`${seconds}s`);
|
|
21
|
+
}
|
|
22
|
+
return out.join(' ');
|
|
23
|
+
}
|
|
24
|
+
exports.timestampToDurationString = timestampToDurationString;
|
|
25
|
+
//# sourceMappingURL=formatTimstamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatTimstamp.js","sourceRoot":"","sources":["../../src/lib/formatTimstamp.ts"],"names":[],"mappings":";;;AACA,SAAgB,yBAAyB,CAAC,EAAsB;IAC9D,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;QAClB,OAAO,GAAG,CAAC;KACZ;IACD,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,IAAI,KAAK,GAAG,CAAC,EAAE;QACb,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;KACvB;IACD,IAAI,OAAO,GAAG,CAAC,EAAE;QACf,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;KACzB;IACD,IAAI,OAAO,GAAG,CAAC,EAAE;QACf,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;KACzB;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAnBD,8DAmBC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatVersionState = void 0;
|
|
4
|
+
const chalk_1 = require("chalk");
|
|
5
|
+
const Rivendell_1 = require("./Rivendell");
|
|
6
|
+
function formatVersionState(state) {
|
|
7
|
+
switch (state) {
|
|
8
|
+
case Rivendell_1.Rivendell.AppVersionState.NEW:
|
|
9
|
+
return chalk_1.default.yellow('NEW');
|
|
10
|
+
case Rivendell_1.Rivendell.AppVersionState.PUBLISHED:
|
|
11
|
+
return chalk_1.default.yellow('BUILT');
|
|
12
|
+
case Rivendell_1.Rivendell.AppVersionState.BUILD_FAILED:
|
|
13
|
+
return chalk_1.default.red('BUILD_FAILED');
|
|
14
|
+
case Rivendell_1.Rivendell.AppVersionState.STARTING:
|
|
15
|
+
return chalk_1.default.yellow('PUBLISHING');
|
|
16
|
+
case Rivendell_1.Rivendell.AppVersionState.START_FAILED:
|
|
17
|
+
return chalk_1.default.red('PUBLISHING_FAILED');
|
|
18
|
+
case Rivendell_1.Rivendell.AppVersionState.RUNNING:
|
|
19
|
+
return chalk_1.default.green('PUBLISHED');
|
|
20
|
+
case Rivendell_1.Rivendell.AppVersionState.STOPPING:
|
|
21
|
+
return chalk_1.default.yellow('UNPUBLISHING');
|
|
22
|
+
case Rivendell_1.Rivendell.AppVersionState.STOP_FAILED:
|
|
23
|
+
return chalk_1.default.red('UNPUBLISHING_FAILED');
|
|
24
|
+
case Rivendell_1.Rivendell.AppVersionState.STOPPED:
|
|
25
|
+
return chalk_1.default.red('UNPUBLISHED');
|
|
26
|
+
case Rivendell_1.Rivendell.AppVersionState.UPGRADING_RUNTIME:
|
|
27
|
+
return chalk_1.default.yellow('UPGRADING_RUNTIME');
|
|
28
|
+
default: {
|
|
29
|
+
console.error(chalk_1.default.red(`Unrecognized AppVersionState ${state} `));
|
|
30
|
+
return chalk_1.default.red('UNKNOWN');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.formatVersionState = formatVersionState;
|
|
35
|
+
//# sourceMappingURL=formatVersionState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatVersionState.js","sourceRoot":"","sources":["../../src/lib/formatVersionState.ts"],"names":[],"mappings":";;;AAAA,iCAA0B;AAC1B,2CAAsC;AAEtC,SAAgB,kBAAkB,CAAC,KAAgC;IACjE,QAAQ,KAAK,EAAE;QACb,KAAK,qBAAS,CAAC,eAAe,CAAC,GAAG;YAChC,OAAO,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,qBAAS,CAAC,eAAe,CAAC,SAAS;YACtC,OAAO,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,KAAK,qBAAS,CAAC,eAAe,CAAC,YAAY;YACzC,OAAO,eAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACnC,KAAK,qBAAS,CAAC,eAAe,CAAC,QAAQ;YACrC,OAAO,eAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACpC,KAAK,qBAAS,CAAC,eAAe,CAAC,YAAY;YACzC,OAAO,eAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACxC,KAAK,qBAAS,CAAC,eAAe,CAAC,OAAO;YACpC,OAAO,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClC,KAAK,qBAAS,CAAC,eAAe,CAAC,QAAQ;YACrC,OAAO,eAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACtC,KAAK,qBAAS,CAAC,eAAe,CAAC,WAAW;YACxC,OAAO,eAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC1C,KAAK,qBAAS,CAAC,eAAe,CAAC,OAAO;YACpC,OAAO,eAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAClC,KAAK,qBAAS,CAAC,eAAe,CAAC,iBAAiB;YAC9C,OAAO,eAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,gCAAgC,KAAK,GAAG,CAAC,CAAC,CAAC;YACnE,OAAO,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAC7B;KACF;AACH,CAAC;AA3BD,gDA2BC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateAppEnvs = exports.gatherAppEnv = void 0;
|
|
4
|
+
const dotenv_1 = require("dotenv");
|
|
5
|
+
const fs = require("fs");
|
|
6
|
+
const AppContext_1 = require("./AppContext");
|
|
7
|
+
const Config_1 = require("./Config");
|
|
8
|
+
const die_1 = require("./die");
|
|
9
|
+
function gatherAppEnv(shard) {
|
|
10
|
+
return buildAppEnv(gatherEnvFiles(shard));
|
|
11
|
+
}
|
|
12
|
+
exports.gatherAppEnv = gatherAppEnv;
|
|
13
|
+
function validateAppEnvs(shards) {
|
|
14
|
+
const manifest = AppContext_1.readAppYaml();
|
|
15
|
+
const expected = (manifest && manifest.environment) || [];
|
|
16
|
+
if (Config_1.getEnv() === 'production') {
|
|
17
|
+
validateEnvFiles(shards, manifest);
|
|
18
|
+
}
|
|
19
|
+
validateEnvContents(shards, expected);
|
|
20
|
+
}
|
|
21
|
+
exports.validateAppEnvs = validateAppEnvs;
|
|
22
|
+
function validateEnvFiles(shards, manifest) {
|
|
23
|
+
const errors = [];
|
|
24
|
+
if (manifest.meta.availability && manifest.meta.availability.includes('all')) {
|
|
25
|
+
if (shards.map((s) => `.env.${s}`).some((f) => fs.existsSync(f))) {
|
|
26
|
+
errors.push("Shard specific .env files are not allowed for 'all' availability");
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (errors.length) {
|
|
30
|
+
die_1.die(errors.map((s) => `* ${s}`).join('\n'));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function validateEnvContents(shards, expected) {
|
|
34
|
+
const errors = [];
|
|
35
|
+
for (const shard of shards) {
|
|
36
|
+
const files = gatherEnvFiles(shard);
|
|
37
|
+
errors.push(...validateAppEnv(buildAppEnv(files), expected, files));
|
|
38
|
+
}
|
|
39
|
+
if (errors.length) {
|
|
40
|
+
die_1.die(errors.map((s) => `* ${s}`).join('\n'));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function validateAppEnv(appEnv, expected, envFiles) {
|
|
44
|
+
const errors = [];
|
|
45
|
+
Object.keys(appEnv).forEach((name) => {
|
|
46
|
+
if (!expected.includes(name)) {
|
|
47
|
+
errors.push(`${envFiles}: One of the env files contains a variable not listed in the app.yml: ${name}`);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
expected.forEach((name) => {
|
|
51
|
+
if (!appEnv[name]) {
|
|
52
|
+
errors.push(`${envFiles}: None of the env files provide a value for the required variable: ${name}`);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
return errors;
|
|
56
|
+
}
|
|
57
|
+
function gatherEnvFiles(shard) {
|
|
58
|
+
const files = ['.env', `.env.${Config_1.getEnv()}`];
|
|
59
|
+
if (Config_1.getEnv() === 'production') {
|
|
60
|
+
files.push(`.env.${shard}`);
|
|
61
|
+
}
|
|
62
|
+
return files;
|
|
63
|
+
}
|
|
64
|
+
function buildAppEnv(files) {
|
|
65
|
+
const appEnv = {};
|
|
66
|
+
files.filter((f) => fs.existsSync(f)).forEach((f) => {
|
|
67
|
+
Object.assign(appEnv, dotenv_1.parse(fs.readFileSync(f)));
|
|
68
|
+
});
|
|
69
|
+
return appEnv;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=gatherAppEnv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gatherAppEnv.js","sourceRoot":"","sources":["../../src/lib/gatherAppEnv.ts"],"names":[],"mappings":";;;AAAA,mCAAgD;AAChD,yBAAyB;AACzB,6CAAyC;AACzC,qCAAgC;AAChC,+BAA0B;AAE1B,SAAgB,YAAY,CAAC,KAAa;IACxC,OAAO,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,CAAC;AAFD,oCAEC;AAED,SAAgB,eAAe,CAAC,MAAgB;IAC9C,MAAM,QAAQ,GAAG,wBAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAI,eAAM,EAAE,KAAK,YAAY,EAAE;QAC7B,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;KACpC;IACD,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAPD,0CAOC;AAED,SAAS,gBAAgB,CAAC,MAAgB,EAAE,QAAa;IACvD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC5E,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;YAChE,MAAM,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;SACjF;KACF;IACD,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,SAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KAC7C;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAgB,EAAE,QAAkB;IAC/D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;KACrE;IAED,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,SAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KAC7C;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAyB,EAAE,QAAkB,EAAE,QAAkB;IACvF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,yEAAyE,IAAI,EAAE,CAAC,CAAC;SACzG;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,sEAAsE,IAAI,EAAE,CAAC,CAAC;SACtG;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,QAAQ,eAAM,EAAE,EAAE,CAAC,CAAC;IAC3C,IAAI,eAAM,EAAE,KAAK,YAAY,EAAE;QAC7B,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;KAC7B;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAe;IAClC,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAClD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function handleInterrupt(): void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleInterrupt = void 0;
|
|
4
|
+
const terminal_kit_1 = require("terminal-kit");
|
|
5
|
+
function handleInterrupt() {
|
|
6
|
+
terminal_kit_1.terminal.on('key', (name) => {
|
|
7
|
+
if (name === 'CTRL_C') {
|
|
8
|
+
terminal_kit_1.terminal.grabInput(false);
|
|
9
|
+
terminal_kit_1.terminal.hideCursor(false);
|
|
10
|
+
console.log('^C');
|
|
11
|
+
terminal_kit_1.terminal.eraseDisplayBelow();
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
exports.handleInterrupt = handleInterrupt;
|
|
17
|
+
//# sourceMappingURL=handleInterrupt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleInterrupt.js","sourceRoot":"","sources":["../../src/lib/handleInterrupt.ts"],"names":[],"mappings":";;;AAAA,+CAAsC;AAEtC,SAAgB,eAAe;IAC7B,uBAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE;QAClC,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,uBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC1B,uBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,uBAAQ,CAAC,iBAAiB,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAVD,0CAUC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jobRuntime = void 0;
|
|
4
|
+
function jobRuntime(job) {
|
|
5
|
+
if (job.completedAt) {
|
|
6
|
+
return (new Date(job.completedAt).getTime() - new Date(job.triggeredAt).getTime());
|
|
7
|
+
}
|
|
8
|
+
else if (job.terminatedAt) {
|
|
9
|
+
return (new Date(job.terminatedAt).getTime() - new Date(job.triggeredAt).getTime());
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
return (new Date().getTime() - new Date(job.triggeredAt).getTime());
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.jobRuntime = jobRuntime;
|
|
16
|
+
//# sourceMappingURL=jobRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobRuntime.js","sourceRoot":"","sources":["../../src/lib/jobRuntime.ts"],"names":[],"mappings":";;;AAGA,SAAgB,UAAU,CAAC,GAAQ;IACjC,IAAI,GAAG,CAAC,WAAW,EAAE;QACnB,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KACpF;SAAM,IAAI,GAAG,CAAC,YAAY,EAAE;QAC3B,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KACrF;SAAM;QACL,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KACrE;AACH,CAAC;AARD,gCAQC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isValidDateOrEpochOrDurationString = exports.parseDate = void 0;
|
|
4
|
+
const parse_duration_1 = require("parse-duration");
|
|
5
|
+
const date_fns_1 = require("date-fns");
|
|
6
|
+
const EPOCH_TIMESTAMP_REGEX = /^\d+$/;
|
|
7
|
+
function parseDate(value) {
|
|
8
|
+
const iso = date_fns_1.parseISO(value);
|
|
9
|
+
if (iso.getTime()) {
|
|
10
|
+
return iso;
|
|
11
|
+
}
|
|
12
|
+
else if (EPOCH_TIMESTAMP_REGEX.test(value)) {
|
|
13
|
+
return date_fns_1.fromUnixTime(parseInt(value, 10));
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return new Date(Date.now() - parse_duration_1.default(value));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.parseDate = parseDate;
|
|
20
|
+
function isValidDateOrEpochOrDurationString(value) {
|
|
21
|
+
return EPOCH_TIMESTAMP_REGEX.test(value) ||
|
|
22
|
+
date_fns_1.parseISO(value).getTime() ||
|
|
23
|
+
parse_duration_1.default(value) ? true : false;
|
|
24
|
+
}
|
|
25
|
+
exports.isValidDateOrEpochOrDurationString = isValidDateOrEpochOrDurationString;
|
|
26
|
+
//# sourceMappingURL=parseDate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseDate.js","sourceRoot":"","sources":["../../src/lib/parseDate.ts"],"names":[],"mappings":";;;AAAA,mDAAwD;AACxD,uCAAkD;AAElD,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAEtC,SAAgB,SAAS,CAAC,KAAa;IACrC,MAAM,GAAG,GAAG,mBAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE;QACjB,OAAO,GAAG,CAAC;KACZ;SAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC5C,OAAO,uBAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;KAC1C;SAAM;QACL,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,wBAAa,CAAC,KAAK,CAAE,CAAC,CAAC;KACrD;AACH,CAAC;AATD,8BASC;AAED,SAAgB,kCAAkC,CAAC,KAAa;IAC9D,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;QACtC,mBAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;QACzB,wBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACxC,CAAC;AAJD,gFAIC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Template } from './types';
|
|
2
|
+
export declare class TemplateRenderer {
|
|
3
|
+
private targetDir;
|
|
4
|
+
private template;
|
|
5
|
+
private statusUpdater;
|
|
6
|
+
constructor(targetDir: string, template: Template, statusUpdater: (status: string) => void);
|
|
7
|
+
render(substitutions: {
|
|
8
|
+
[key: string]: string;
|
|
9
|
+
}): Promise<void>;
|
|
10
|
+
private downloadTemplate;
|
|
11
|
+
private extract;
|
|
12
|
+
private pipe;
|
|
13
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TemplateRenderer = void 0;
|
|
4
|
+
const AdmZip = require("adm-zip");
|
|
5
|
+
const chalk_1 = require("chalk");
|
|
6
|
+
const fs = require("fs");
|
|
7
|
+
const glob = require("glob");
|
|
8
|
+
const mustache = require("mustache");
|
|
9
|
+
const node_fetch_1 = require("node-fetch");
|
|
10
|
+
const path = require("path");
|
|
11
|
+
class TemplateRenderer {
|
|
12
|
+
constructor(targetDir, template, statusUpdater) {
|
|
13
|
+
this.targetDir = targetDir;
|
|
14
|
+
this.template = template;
|
|
15
|
+
this.statusUpdater = statusUpdater;
|
|
16
|
+
// globally disable HTML escaping
|
|
17
|
+
mustache.escape = (text) => text;
|
|
18
|
+
}
|
|
19
|
+
async render(substitutions) {
|
|
20
|
+
process.chdir(this.targetDir);
|
|
21
|
+
this.statusUpdater(chalk_1.default.gray(`Downloading ${this.template.name} template...`));
|
|
22
|
+
await this.downloadTemplate();
|
|
23
|
+
this.statusUpdater(chalk_1.default.gray(`Extracting template...`));
|
|
24
|
+
this.extract();
|
|
25
|
+
this.statusUpdater(chalk_1.default.gray(`Rendering template...`));
|
|
26
|
+
glob.sync('**/*', { nodir: true }).forEach((file) => {
|
|
27
|
+
// exclude template.yml`
|
|
28
|
+
if (file === 'template.yml') {
|
|
29
|
+
fs.unlinkSync(file);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const f = mustache.render(file, substitutions);
|
|
33
|
+
if (f !== file) {
|
|
34
|
+
fs.renameSync(path.resolve(file), path.resolve(f));
|
|
35
|
+
file = f;
|
|
36
|
+
}
|
|
37
|
+
const transformed = mustache.render(fs.readFileSync(path.resolve(file)).toString(), substitutions);
|
|
38
|
+
fs.writeFileSync(path.resolve(file), transformed);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
async downloadTemplate() {
|
|
42
|
+
const response = await node_fetch_1.default(`https://s3.amazonaws.com/zaius-public/zdp/app-templates/${this.template.id}.zip`);
|
|
43
|
+
if (response.ok) {
|
|
44
|
+
await this.pipe(response.body, fs.createWriteStream(path.resolve(`${this.template.name}.zip`)));
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
const body = response.body.read();
|
|
48
|
+
throw new Error(`Failed to download template: ${response.statusText}\n${body.toString()}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
extract() {
|
|
52
|
+
const zipFile = path.resolve(`${this.template.name}.zip`);
|
|
53
|
+
const zip = new AdmZip(zipFile);
|
|
54
|
+
zip.extractAllTo(this.targetDir);
|
|
55
|
+
fs.unlinkSync(zipFile);
|
|
56
|
+
}
|
|
57
|
+
async pipe(input, output) {
|
|
58
|
+
return new Promise((resolve) => input.pipe(output).on('finish', resolve));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.TemplateRenderer = TemplateRenderer;
|
|
62
|
+
//# sourceMappingURL=TemplateRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateRenderer.js","sourceRoot":"","sources":["../../../src/lib/templating/TemplateRenderer.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAClC,iCAA0B;AAC1B,yBAAyB;AACzB,6BAA6B;AAC7B,qCAAqC;AACrC,2CAA+B;AAC/B,6BAA6B;AAI7B,MAAa,gBAAgB;IAC3B,YAAoB,SAAiB,EAAU,QAAkB,EAAU,aAAuC;QAA9F,cAAS,GAAT,SAAS,CAAQ;QAAU,aAAQ,GAAR,QAAQ,CAAU;QAAU,kBAAa,GAAb,aAAa,CAA0B;QAChH,iCAAiC;QAChC,QAAQ,CAAC,MAAc,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,aAAsC;QACxD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE9B,IAAI,CAAC,aAAa,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC;QAChF,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9B,IAAI,CAAC,aAAa,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,CAAC,aAAa,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAChD,wBAAwB;YACxB,IAAI,IAAI,KAAK,cAAc,EAAE;gBAC3B,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACpB,OAAO;aACR;YAED,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,IAAI,EAAE;gBACd,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnD,IAAI,GAAG,CAAC,CAAC;aACV;YAED,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;YACnG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,MAAM,QAAQ,GAAG,MAAM,oBAAK,CAAC,2DAA2D,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAChH,IAAI,QAAQ,CAAC,EAAE,EAAE;YACf,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;SACjG;aAAM;YACL,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,CAAC,UAAU,KAAK,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SAC5F;IACH,CAAC;IAEO,OAAO;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,KAA4B,EAAE,MAAuB;QACtE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5E,CAAC;CACF;AAtDD,4CAsDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function fetchTemplatesManifest(): Promise<any>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchTemplatesManifest = void 0;
|
|
4
|
+
const node_fetch_1 = require("node-fetch");
|
|
5
|
+
async function fetchTemplatesManifest() {
|
|
6
|
+
const result = await node_fetch_1.default('http://s3.amazonaws.com/zaius-public/zdp/app-templates/manifest.json');
|
|
7
|
+
return await result.json();
|
|
8
|
+
}
|
|
9
|
+
exports.fetchTemplatesManifest = fetchTemplatesManifest;
|
|
10
|
+
//# sourceMappingURL=fetchTemplatesManifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchTemplatesManifest.js","sourceRoot":"","sources":["../../../src/lib/templating/fetchTemplatesManifest.ts"],"names":[],"mappings":";;;AAAA,2CAA+B;AAExB,KAAK,UAAU,sBAAsB;IAC1C,MAAM,MAAM,GAAG,MAAM,oBAAK,CAAC,sEAAsE,CAAC,CAAC;IACnG,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;AAC7B,CAAC;AAHD,wDAGC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface Template {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
summary: string;
|
|
5
|
+
variables: TemplateVariable;
|
|
6
|
+
type: 'template';
|
|
7
|
+
}
|
|
8
|
+
export interface Scaffold {
|
|
9
|
+
name: string;
|
|
10
|
+
summary: string;
|
|
11
|
+
variables: TemplateVariable;
|
|
12
|
+
type: 'scaffold';
|
|
13
|
+
}
|
|
14
|
+
export interface TemplateVariable {
|
|
15
|
+
name: string;
|
|
16
|
+
question?: string;
|
|
17
|
+
hint?: string;
|
|
18
|
+
suggest?: string;
|
|
19
|
+
required?: boolean;
|
|
20
|
+
hidden?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface TemplateManifest {
|
|
23
|
+
version: number;
|
|
24
|
+
baseTemplateVariables: TemplateVariable[];
|
|
25
|
+
templates: Template[];
|
|
26
|
+
scaffolds: Scaffold[];
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/templating/types.ts"],"names":[],"mappings":""}
|