@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,285 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.CreateCommand = void 0;
|
|
10
|
+
const app_sdk_1 = require("@zaiusinc/app-sdk");
|
|
11
|
+
const chalk_1 = require("chalk");
|
|
12
|
+
const columnify = require("columnify");
|
|
13
|
+
const fs = require("fs");
|
|
14
|
+
const marked = require("marked");
|
|
15
|
+
const MarkedTerminal = require("marked-terminal");
|
|
16
|
+
const node_fetch_1 = require("node-fetch");
|
|
17
|
+
const oo_cli_1 = require("oo-cli");
|
|
18
|
+
const path = require("path");
|
|
19
|
+
const terminal_kit_1 = require("terminal-kit");
|
|
20
|
+
const handleInterrupt_1 = require("../../lib/handleInterrupt");
|
|
21
|
+
const TeminalPassthru_1 = require("../../lib/TeminalPassthru");
|
|
22
|
+
const fetchTemplatesManifest_1 = require("../../lib/templating/fetchTemplatesManifest");
|
|
23
|
+
const TemplateRenderer_1 = require("../../lib/templating/TemplateRenderer");
|
|
24
|
+
const TerminalConfirm_1 = require("../../lib/TerminalConfirm");
|
|
25
|
+
const TerminalInput_1 = require("../../lib/TerminalInput");
|
|
26
|
+
const TerminalMenu_1 = require("../../lib/TerminalMenu");
|
|
27
|
+
const TerminalSpinner_1 = require("../../lib/TerminalSpinner");
|
|
28
|
+
const titleCase = require("title-case");
|
|
29
|
+
const Config_1 = require("../../lib/Config");
|
|
30
|
+
const Rivendell_1 = require("../../lib/Rivendell");
|
|
31
|
+
const die_1 = require("../../lib/die");
|
|
32
|
+
let CreateCommand = class CreateCommand {
|
|
33
|
+
constructor() {
|
|
34
|
+
this.variableId = 0;
|
|
35
|
+
this.substitutions = {};
|
|
36
|
+
this.warnings = [];
|
|
37
|
+
this.onAnswer = async (error, input) => {
|
|
38
|
+
if (error) {
|
|
39
|
+
terminal_kit_1.terminal.eraseDisplayBelow().nextLine(1);
|
|
40
|
+
console.error(chalk_1.default.red(error));
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
input = input.trim();
|
|
44
|
+
if (this.suggestion && input === '') {
|
|
45
|
+
input = this.suggestion;
|
|
46
|
+
}
|
|
47
|
+
if (!this.validateInput(input)) {
|
|
48
|
+
if (this.variable.required && input.length === 0) {
|
|
49
|
+
terminal_kit_1.terminal.red(' This value is required').nextLine(1);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
terminal_kit_1.terminal.red(` Invalid value for ${this.variable.name}`).nextLine(1);
|
|
53
|
+
}
|
|
54
|
+
if (this.variable.hidden) {
|
|
55
|
+
die_1.die(`Invalid value of '${this.variable.name}' field: ${input}. Contact support`);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
await this.askQuestion();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
if (!this.variable.hidden) {
|
|
63
|
+
terminal_kit_1.terminal(chalk_1.default.gray(this.question + ': ')).white(input).nextLine(1);
|
|
64
|
+
}
|
|
65
|
+
this.substitutions[this.variable.name] = input;
|
|
66
|
+
this.variableId++;
|
|
67
|
+
if (!await this.askQuestion()) {
|
|
68
|
+
await this.renderTemplate();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
this.getHint = (input) => {
|
|
73
|
+
if (input.trim() === '' && this.suggestion) {
|
|
74
|
+
return `[Enter] to accept ${this.suggestion}`;
|
|
75
|
+
}
|
|
76
|
+
switch (this.variable.name) {
|
|
77
|
+
case 'display_name':
|
|
78
|
+
if (input.length === 0) {
|
|
79
|
+
return chalk_1.default.yellow('Display Name is required');
|
|
80
|
+
}
|
|
81
|
+
break;
|
|
82
|
+
case 'app_id':
|
|
83
|
+
if (!input) {
|
|
84
|
+
return chalk_1.default.yellow('App ID is required');
|
|
85
|
+
}
|
|
86
|
+
else if (!input.match(/^[a-z]/)) {
|
|
87
|
+
return chalk_1.default.yellow('must start with a lower case letter');
|
|
88
|
+
}
|
|
89
|
+
else if (!input.match(/^[a-z_0-9]+$/)) {
|
|
90
|
+
return chalk_1.default.yellow('can only contain lower case letters, numbers, and underscores');
|
|
91
|
+
}
|
|
92
|
+
else if (input.match(/_$/)) {
|
|
93
|
+
return chalk_1.default.yellow('should not end with an underscore');
|
|
94
|
+
}
|
|
95
|
+
else if (input.length < 3 || input.length > 32) {
|
|
96
|
+
return chalk_1.default.yellow('must be between 3 and 32 characters long');
|
|
97
|
+
}
|
|
98
|
+
break;
|
|
99
|
+
case 'version':
|
|
100
|
+
if (!input.match(app_sdk_1.VERSION_FORMAT)) {
|
|
101
|
+
return chalk_1.default.yellow('must be semver. -beta, -dev, -private pre-releases are allowed');
|
|
102
|
+
}
|
|
103
|
+
break;
|
|
104
|
+
case 'vendor':
|
|
105
|
+
if (!input.match(/^[a-z]/)) {
|
|
106
|
+
return chalk_1.default.yellow('must start with a lower case letter');
|
|
107
|
+
}
|
|
108
|
+
else if (!input.match(app_sdk_1.VENDOR_FORMAT)) {
|
|
109
|
+
return chalk_1.default.yellow('must be snake_case');
|
|
110
|
+
}
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
return '';
|
|
114
|
+
};
|
|
115
|
+
this.validateInput = (input) => {
|
|
116
|
+
if (!input) {
|
|
117
|
+
input = this.suggestion;
|
|
118
|
+
}
|
|
119
|
+
switch (this.variable.name) {
|
|
120
|
+
case 'app_id':
|
|
121
|
+
return app_sdk_1.APP_ID_FORMAT.test(input);
|
|
122
|
+
case 'version':
|
|
123
|
+
return app_sdk_1.VERSION_FORMAT.test(input);
|
|
124
|
+
case 'vendor':
|
|
125
|
+
return app_sdk_1.VENDOR_FORMAT.test(input);
|
|
126
|
+
}
|
|
127
|
+
if (this.variable.required && input.length === 0) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
return true;
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
async init() {
|
|
134
|
+
handleInterrupt_1.handleInterrupt();
|
|
135
|
+
this.manifest = await fetchTemplatesManifest_1.fetchTemplatesManifest();
|
|
136
|
+
// start with base variables
|
|
137
|
+
this.variables = this.manifest.baseTemplateVariables;
|
|
138
|
+
// setting developer vendor
|
|
139
|
+
this.variables.find((v) => v.name === 'vendor').suggest = (await Rivendell_1.Rivendell.whoami()).vendor;
|
|
140
|
+
this.variables.push({
|
|
141
|
+
name: 'template',
|
|
142
|
+
question: 'Select a template project'
|
|
143
|
+
});
|
|
144
|
+
if (!await this.askQuestion()) {
|
|
145
|
+
process.exit(1);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
async renderTemplate() {
|
|
149
|
+
const { app_id, template: templateName } = this.substitutions;
|
|
150
|
+
delete this.substitutions.template;
|
|
151
|
+
let fullPath;
|
|
152
|
+
if (fs.readdirSync(process.cwd()).length === 0) {
|
|
153
|
+
if (await TerminalConfirm_1.TerminalConfirm.ask(`Use current directory (${chalk_1.default.yellow(process.cwd())})?`)) {
|
|
154
|
+
fullPath = process.cwd();
|
|
155
|
+
console.log(chalk_1.default.gray(`Using ${chalk_1.default.yellow(fullPath)}`));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (!fullPath) {
|
|
159
|
+
const suggestion = app_id.replace(/_/g, '-');
|
|
160
|
+
let dirName = await TerminalInput_1.TerminalInput.ask(`Project directory name:`, { defaultValue: suggestion });
|
|
161
|
+
while (fs.existsSync(path.resolve(dirName)) && fs.readdirSync(path.resolve(dirName)).length !== 0) {
|
|
162
|
+
console.log(chalk_1.default.red(`Directory ${path.resolve(dirName)} is not empty!`));
|
|
163
|
+
dirName = await TerminalInput_1.TerminalInput.ask(`Project directory name:`, { defaultValue: suggestion });
|
|
164
|
+
}
|
|
165
|
+
fullPath = path.resolve(dirName);
|
|
166
|
+
console.log(chalk_1.default.gray('Creating directory', chalk_1.default.yellow(fullPath)));
|
|
167
|
+
fs.mkdirSync(fullPath);
|
|
168
|
+
}
|
|
169
|
+
// add latest sdk versions to the substitutions
|
|
170
|
+
const spinner = new TerminalSpinner_1.TerminalSpinner().start(chalk_1.default.gray('Checking latest SDK versions...'));
|
|
171
|
+
await this.getSDKVersions();
|
|
172
|
+
const template = this.manifest.templates.find((t) => t.name === templateName);
|
|
173
|
+
await new TemplateRenderer_1.TemplateRenderer(fullPath, template, (status) => spinner.update(status))
|
|
174
|
+
.render(this.substitutions);
|
|
175
|
+
spinner.stop();
|
|
176
|
+
console.log(chalk_1.default.gray('Performing initial Yarn install'));
|
|
177
|
+
const result = TeminalPassthru_1.TerminalPassthru.exec('yarn');
|
|
178
|
+
if (result.status !== 0) {
|
|
179
|
+
console.log(chalk_1.default.red('There was a problem running yarn. Make sure yarn is installed and then run '
|
|
180
|
+
+ `${chalk_1.default.white('yarn install')} from ${chalk_1.default.white(fullPath)} to install dependencies.`));
|
|
181
|
+
}
|
|
182
|
+
if (this.warnings.length > 0) {
|
|
183
|
+
this.warnings.forEach((warning) => console.warn(warning));
|
|
184
|
+
}
|
|
185
|
+
marked.setOptions({ renderer: new MarkedTerminal() });
|
|
186
|
+
console.log('\n' + marked(`New OCP app project created at \`${fullPath}\`\n` +
|
|
187
|
+
'- View README.md for information on getting started\n' +
|
|
188
|
+
'- Check out the [documentation](https://docs.developers.optimizely.com/optimizely-connect-platform/docs)'));
|
|
189
|
+
}
|
|
190
|
+
get variable() {
|
|
191
|
+
return this.variables[this.variableId];
|
|
192
|
+
}
|
|
193
|
+
get templateOptions() {
|
|
194
|
+
return columnify(this.manifest.templates, { columns: ['name', 'sp', 'summary'] }).split('\n').slice(1);
|
|
195
|
+
}
|
|
196
|
+
get question() {
|
|
197
|
+
if (this.suggestion) {
|
|
198
|
+
return `${this.variable.question} [${chalk_1.default.gray(this.suggestion)}]`;
|
|
199
|
+
}
|
|
200
|
+
if (this.variable.hint) {
|
|
201
|
+
return `${this.variable.question} (${chalk_1.default.gray(this.variable.hint)})`;
|
|
202
|
+
}
|
|
203
|
+
return this.variable.question;
|
|
204
|
+
}
|
|
205
|
+
async askQuestion() {
|
|
206
|
+
if (this.variables.length <= this.variableId) {
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
if (this.variable.hidden) {
|
|
210
|
+
await this.onAnswer(undefined, this.variable.suggest || '');
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
// special case questions:
|
|
214
|
+
switch (this.variable.name) {
|
|
215
|
+
case 'template':
|
|
216
|
+
const index = (await TerminalMenu_1.TerminalMenu.ask(`${this.question}:`, this.templateOptions, { layout: 'row' })).id;
|
|
217
|
+
await this.onAnswer(undefined, this.manifest.templates[index].name);
|
|
218
|
+
break;
|
|
219
|
+
case 'category':
|
|
220
|
+
const categories = ['Commerce Platform', 'Point of Sale', 'Lead Capture', 'Advertising', 'Marketing',
|
|
221
|
+
'Channel', 'Loyalty & Rewards', 'Customer Experience', 'Analytics & Reporting', 'Surveys & Feedback',
|
|
222
|
+
'Reviews & Ratings', 'Content Management', 'Data Quality & Enrichment', 'Productivity', 'CRM',
|
|
223
|
+
'Accounting & Finance', 'CDP / DMP', 'Attribution & Linking', 'Testing & Utilities',
|
|
224
|
+
'Personalization & Content', 'Offers', 'Merchandising & Products', 'Site & Content Experience',
|
|
225
|
+
'Subscriptions'].sort();
|
|
226
|
+
await this.onAnswer(undefined, (await TerminalMenu_1.TerminalMenu.ask(`${this.question}:`, categories)).text);
|
|
227
|
+
break;
|
|
228
|
+
// standard questions
|
|
229
|
+
default:
|
|
230
|
+
await this.onAnswer(undefined, await TerminalInput_1.TerminalInput.ask(`${this.question}:`, { getHint: this.getHint, validate: this.validateInput }));
|
|
231
|
+
}
|
|
232
|
+
return true;
|
|
233
|
+
}
|
|
234
|
+
get suggestion() {
|
|
235
|
+
switch (this.variable.name) {
|
|
236
|
+
case 'display_name':
|
|
237
|
+
if (this.id || fs.readdirSync(process.cwd()).length === 0) {
|
|
238
|
+
const dir = titleCase(this.id || path.basename(process.cwd()).replace(/[^a-zA-Z0-9]+/g, ' ').trim());
|
|
239
|
+
if (dir && this.validateInput(dir)) {
|
|
240
|
+
return dir;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
break;
|
|
244
|
+
case 'app_id':
|
|
245
|
+
const appId = (this.substitutions['display_name'] || '').toLowerCase().replace(/[^0-9a-z_]+/g, '_');
|
|
246
|
+
if (appId.length > 0 && this.validateInput(appId)) {
|
|
247
|
+
return appId;
|
|
248
|
+
}
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
return this.variable.suggest || '';
|
|
252
|
+
}
|
|
253
|
+
getLatestSDKVersion(versions) {
|
|
254
|
+
const major = Object.keys(versions).map((x) => parseInt(x, 10)).sort().reverse()[0].toString();
|
|
255
|
+
return versions[major].stable;
|
|
256
|
+
}
|
|
257
|
+
async getSDKVersions() {
|
|
258
|
+
try {
|
|
259
|
+
// TODO: use semver to only get the latest allowable by the templates to avoid major version incompatibilities
|
|
260
|
+
const deps = await node_fetch_1.default(Config_1.getDependencyFileUrl('node18'));
|
|
261
|
+
const json = await deps.json();
|
|
262
|
+
this.substitutions['app_sdk_version'] = this.getLatestSDKVersion(json['@zaiusinc/app-sdk']);
|
|
263
|
+
this.substitutions['node_sdk_version'] = this.getLatestSDKVersion(json['@zaiusinc/node-sdk']);
|
|
264
|
+
}
|
|
265
|
+
catch (e) {
|
|
266
|
+
this.warnings.push('Error fetching sdk versions, defaulting to latest: ', e.message);
|
|
267
|
+
this.substitutions['app_sdk_version'] = 'latest';
|
|
268
|
+
this.substitutions['node_sdk_version'] = 'latest';
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
__decorate([
|
|
273
|
+
oo_cli_1.param,
|
|
274
|
+
oo_cli_1.optional,
|
|
275
|
+
oo_cli_1.help('The app id / directory to create')
|
|
276
|
+
], CreateCommand.prototype, "id", void 0);
|
|
277
|
+
__decorate([
|
|
278
|
+
oo_cli_1.command,
|
|
279
|
+
oo_cli_1.help('Create a new app project')
|
|
280
|
+
], CreateCommand.prototype, "init", null);
|
|
281
|
+
CreateCommand = __decorate([
|
|
282
|
+
oo_cli_1.namespace('app')
|
|
283
|
+
], CreateCommand);
|
|
284
|
+
exports.CreateCommand = CreateCommand;
|
|
285
|
+
//# sourceMappingURL=Init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Init.js","sourceRoot":"","sources":["../../../src/commands/app/Init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare class LogsCommand {
|
|
2
|
+
appId?: string;
|
|
3
|
+
buildId?: string;
|
|
4
|
+
appVersion?: string;
|
|
5
|
+
trackerId?: string;
|
|
6
|
+
jobId?: string;
|
|
7
|
+
level: string;
|
|
8
|
+
from: string;
|
|
9
|
+
to?: string;
|
|
10
|
+
tail: boolean;
|
|
11
|
+
search?: string[];
|
|
12
|
+
private availability;
|
|
13
|
+
logs(): Promise<void>;
|
|
14
|
+
private printLogEntry;
|
|
15
|
+
private formatLevel;
|
|
16
|
+
private dumpLogs;
|
|
17
|
+
private tailLogs;
|
|
18
|
+
private buildRequest;
|
|
19
|
+
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.LogsCommand = void 0;
|
|
10
|
+
const chalk_1 = require("chalk");
|
|
11
|
+
const oo_cli_1 = require("oo-cli");
|
|
12
|
+
const parseDate_1 = require("../../lib/parseDate");
|
|
13
|
+
const die_1 = require("../../lib/die");
|
|
14
|
+
const handleInterrupt_1 = require("../../lib/handleInterrupt");
|
|
15
|
+
const TerminalSpinner_1 = require("../../lib/TerminalSpinner");
|
|
16
|
+
const Moria_1 = require("../../lib/Moria");
|
|
17
|
+
const Rivendell_1 = require("../../lib/Rivendell");
|
|
18
|
+
const formatError_1 = require("../../lib/formatError");
|
|
19
|
+
var LogLevel = Moria_1.Moria.LogLevel;
|
|
20
|
+
const TAIL_CONFIG = Object.freeze({
|
|
21
|
+
// Each pass of the tail query will cover at least tailminWindowMs.
|
|
22
|
+
// This is done to prevent gaps that may occur (i.e. should encourage at least once delivery).
|
|
23
|
+
minWindowMs: 30000,
|
|
24
|
+
// Each pass of the query will be up to Date.now - tailLag
|
|
25
|
+
// This is done to minimize ordering issue due to log ingest lag
|
|
26
|
+
lagMs: 15000,
|
|
27
|
+
queryIntervalMs: 5000,
|
|
28
|
+
// Size of the dedupe cache.
|
|
29
|
+
dedupeCacheSize: 5000
|
|
30
|
+
});
|
|
31
|
+
// Maximum page size for search results.
|
|
32
|
+
const PAGE_SIZE = 5000;
|
|
33
|
+
let LogsCommand = class LogsCommand {
|
|
34
|
+
constructor() {
|
|
35
|
+
this.availability = '';
|
|
36
|
+
this.printLogEntry = (entry) => {
|
|
37
|
+
const columns = [
|
|
38
|
+
new Date(entry.time).toISOString(),
|
|
39
|
+
this.formatLevel(entry.level),
|
|
40
|
+
entry.message
|
|
41
|
+
];
|
|
42
|
+
console.log(columns.join(' '));
|
|
43
|
+
};
|
|
44
|
+
this.formatLevel = (level) => {
|
|
45
|
+
const padding = 5;
|
|
46
|
+
switch (level.toUpperCase()) {
|
|
47
|
+
case LogLevel.DEBUG: {
|
|
48
|
+
return chalk_1.default.blue('DEBUG'.padEnd(padding));
|
|
49
|
+
}
|
|
50
|
+
case LogLevel.INFO: {
|
|
51
|
+
return chalk_1.default.gray('INFO'.padEnd(padding));
|
|
52
|
+
}
|
|
53
|
+
case LogLevel.WARN: {
|
|
54
|
+
return chalk_1.default.yellow('WARN'.padEnd(padding));
|
|
55
|
+
}
|
|
56
|
+
case LogLevel.ERROR: {
|
|
57
|
+
return chalk_1.default.red('ERROR'.padEnd(padding));
|
|
58
|
+
}
|
|
59
|
+
default:
|
|
60
|
+
return '';
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
async logs() {
|
|
65
|
+
handleInterrupt_1.handleInterrupt();
|
|
66
|
+
if (!parseDate_1.isValidDateOrEpochOrDurationString(this.from)) {
|
|
67
|
+
die_1.die(chalk_1.default.red('Invalid "--from" input, should be an ISO string,' +
|
|
68
|
+
'an epoch timestamp, or relative string (i.e. "5m" for 5 minutes.'));
|
|
69
|
+
}
|
|
70
|
+
const fromDate = parseDate_1.parseDate(this.from);
|
|
71
|
+
let toDate;
|
|
72
|
+
if (!this.appId && !this.buildId && !this.jobId) {
|
|
73
|
+
die_1.die('Either App ID, Build ID or Job ID must be specified.');
|
|
74
|
+
}
|
|
75
|
+
if ((this.appId && this.buildId) || (this.appId && this.jobId) ||
|
|
76
|
+
(this.buildId && this.jobId) || (this.appId && this.buildId && this.jobId)) {
|
|
77
|
+
die_1.die('Only App ID, Build ID or Job ID should be specified.');
|
|
78
|
+
}
|
|
79
|
+
if (this.appId && !this.trackerId) {
|
|
80
|
+
die_1.die('Tracker ID must be specified if App ID is specified.');
|
|
81
|
+
}
|
|
82
|
+
if (this.tail) {
|
|
83
|
+
if (this.to) {
|
|
84
|
+
die_1.die('Cannot specify --tail if specifying --to');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
if (this.to && !parseDate_1.isValidDateOrEpochOrDurationString(this.to)) {
|
|
89
|
+
die_1.die(chalk_1.default.red('Invalid "--to" input, should be an ISO string, ' +
|
|
90
|
+
'an epoch timestamp, or relative string (i.e. "5m" for 5 minutes.'));
|
|
91
|
+
}
|
|
92
|
+
toDate = this.to ? parseDate_1.parseDate(this.to) : new Date();
|
|
93
|
+
}
|
|
94
|
+
this.availability = this.availability ? this.availability : 'us';
|
|
95
|
+
const shard = (await Rivendell_1.Rivendell.shards()).find((_shard) => _shard.id === this.availability);
|
|
96
|
+
if (!shard) {
|
|
97
|
+
die_1.die('Could not find the specified availability zone.');
|
|
98
|
+
}
|
|
99
|
+
if (this.level) {
|
|
100
|
+
if (!Object.values(LogLevel).includes(this.level.toUpperCase())) {
|
|
101
|
+
die_1.die(`Invalid log level. Valid values: ${Object.values(LogLevel).join(', ')}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
if (this.tail) {
|
|
106
|
+
await this.tailLogs(shard, parseDate_1.parseDate('5m'));
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
const spinner = new TerminalSpinner_1.TerminalSpinner().start('');
|
|
110
|
+
try {
|
|
111
|
+
await this.dumpLogs(shard, fromDate, this.printLogEntry, toDate);
|
|
112
|
+
}
|
|
113
|
+
finally {
|
|
114
|
+
spinner.stop();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
catch (e) {
|
|
119
|
+
die_1.die(formatError_1.formatError(e));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async dumpLogs(shard, from, cb, to) {
|
|
123
|
+
let result;
|
|
124
|
+
let count = 0;
|
|
125
|
+
const request = this.buildRequest(from, to);
|
|
126
|
+
do {
|
|
127
|
+
result = await Moria_1.Moria.searchLogging(request, shard);
|
|
128
|
+
result.entries.forEach(cb);
|
|
129
|
+
request.cursor = result.cursor;
|
|
130
|
+
count += result.entries.length;
|
|
131
|
+
} while (result.entries.length > 0);
|
|
132
|
+
return count;
|
|
133
|
+
}
|
|
134
|
+
async tailLogs(shard, from) {
|
|
135
|
+
const dedupeCache = new Set();
|
|
136
|
+
let start = from.valueOf();
|
|
137
|
+
const callback = (entry) => {
|
|
138
|
+
if (!dedupeCache.has(entry.id)) {
|
|
139
|
+
this.printLogEntry(entry);
|
|
140
|
+
dedupeCache.add(entry.id);
|
|
141
|
+
if (dedupeCache.size > TAIL_CONFIG.dedupeCacheSize) {
|
|
142
|
+
dedupeCache.delete(dedupeCache.entries().next().value);
|
|
143
|
+
}
|
|
144
|
+
start = Math.max(start, entry.time);
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
const spinner = new TerminalSpinner_1.TerminalSpinner().start('');
|
|
148
|
+
const query = async () => {
|
|
149
|
+
const end = Date.now() - TAIL_CONFIG.lagMs;
|
|
150
|
+
start = Math.min(start, end + TAIL_CONFIG.minWindowMs);
|
|
151
|
+
await this.dumpLogs(shard, start, callback, end);
|
|
152
|
+
spinner.update(chalk_1.default.gray('Waiting for more logs...'));
|
|
153
|
+
setTimeout(query, TAIL_CONFIG.queryIntervalMs);
|
|
154
|
+
};
|
|
155
|
+
await query();
|
|
156
|
+
}
|
|
157
|
+
buildRequest(from, to) {
|
|
158
|
+
return {
|
|
159
|
+
context: {
|
|
160
|
+
appId: this.appId,
|
|
161
|
+
appVersion: this.appVersion,
|
|
162
|
+
jobId: this.jobId,
|
|
163
|
+
trackerId: this.trackerId,
|
|
164
|
+
buildId: this.buildId,
|
|
165
|
+
},
|
|
166
|
+
pageSize: PAGE_SIZE,
|
|
167
|
+
start: typeof from === 'number' ? from : from.valueOf(),
|
|
168
|
+
end: to ? (typeof to === 'number' ? to : to.valueOf()) : undefined,
|
|
169
|
+
level: this.level,
|
|
170
|
+
terms: this.search
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
__decorate([
|
|
175
|
+
oo_cli_1.option,
|
|
176
|
+
oo_cli_1.help('The App ID (e.g. my_app). Either App ID or Build ID must be specified.')
|
|
177
|
+
], LogsCommand.prototype, "appId", void 0);
|
|
178
|
+
__decorate([
|
|
179
|
+
oo_cli_1.option,
|
|
180
|
+
oo_cli_1.help('The ID of the build. Either App ID or Build ID must be specified. Build IDs are printed by \'ocp app prepare\' command.')
|
|
181
|
+
], LogsCommand.prototype, "buildId", void 0);
|
|
182
|
+
__decorate([
|
|
183
|
+
oo_cli_1.option,
|
|
184
|
+
oo_cli_1.help('The app version (e.g. 1.0.0)')
|
|
185
|
+
], LogsCommand.prototype, "appVersion", void 0);
|
|
186
|
+
__decorate([
|
|
187
|
+
oo_cli_1.option,
|
|
188
|
+
oo_cli_1.help('The Tracker ID of the ODP account')
|
|
189
|
+
], LogsCommand.prototype, "trackerId", void 0);
|
|
190
|
+
__decorate([
|
|
191
|
+
oo_cli_1.option,
|
|
192
|
+
oo_cli_1.help('Show logs for given execution of a job. Use \'ocp jobs list\' command to get the job ID')
|
|
193
|
+
], LogsCommand.prototype, "jobId", void 0);
|
|
194
|
+
__decorate([
|
|
195
|
+
oo_cli_1.option,
|
|
196
|
+
oo_cli_1.help(`Filter app logs by log level. Valid values: ${Object.values(LogLevel).join(', ')}`),
|
|
197
|
+
oo_cli_1.defaultValue('debug')
|
|
198
|
+
], LogsCommand.prototype, "level", void 0);
|
|
199
|
+
__decorate([
|
|
200
|
+
oo_cli_1.option,
|
|
201
|
+
oo_cli_1.help('A start time as an ISO string, an epoch timestamp, or relative string (i.e. "5m" for 5 minutes.) Default: 24h'),
|
|
202
|
+
oo_cli_1.defaultValue('24h')
|
|
203
|
+
], LogsCommand.prototype, "from", void 0);
|
|
204
|
+
__decorate([
|
|
205
|
+
oo_cli_1.option,
|
|
206
|
+
oo_cli_1.help('A end time as an ISO string, an epoch timestamp, or relative string (i.e. "5m" for 5 minutes)')
|
|
207
|
+
], LogsCommand.prototype, "to", void 0);
|
|
208
|
+
__decorate([
|
|
209
|
+
oo_cli_1.flag,
|
|
210
|
+
oo_cli_1.help('Tails the logs'),
|
|
211
|
+
oo_cli_1.defaultValue(false)
|
|
212
|
+
], LogsCommand.prototype, "tail", void 0);
|
|
213
|
+
__decorate([
|
|
214
|
+
oo_cli_1.option,
|
|
215
|
+
oo_cli_1.help('String to search for in log messages. Can be specified multiple times.'),
|
|
216
|
+
oo_cli_1.multiple
|
|
217
|
+
], LogsCommand.prototype, "search", void 0);
|
|
218
|
+
__decorate([
|
|
219
|
+
oo_cli_1.option('a'),
|
|
220
|
+
oo_cli_1.help('The availability zone that will be targeted (default: us)')
|
|
221
|
+
], LogsCommand.prototype, "availability", void 0);
|
|
222
|
+
__decorate([
|
|
223
|
+
oo_cli_1.command,
|
|
224
|
+
oo_cli_1.help('Fetch app logs')
|
|
225
|
+
], LogsCommand.prototype, "logs", null);
|
|
226
|
+
LogsCommand = __decorate([
|
|
227
|
+
oo_cli_1.namespace('app')
|
|
228
|
+
], LogsCommand);
|
|
229
|
+
exports.LogsCommand = LogsCommand;
|
|
230
|
+
//# sourceMappingURL=Logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logs.js","sourceRoot":"","sources":["../../../src/commands/app/Logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.PackageCommand = void 0;
|
|
10
|
+
const fs = require("fs");
|
|
11
|
+
const oo_cli_1 = require("oo-cli");
|
|
12
|
+
const path = require("path");
|
|
13
|
+
const AppContext_1 = require("../../lib/AppContext");
|
|
14
|
+
const AppPackager_1 = require("../../lib/AppPackager");
|
|
15
|
+
const die_1 = require("../../lib/die");
|
|
16
|
+
const directoryExists_1 = require("../../lib/directoryExists");
|
|
17
|
+
let PackageCommand = class PackageCommand {
|
|
18
|
+
package() {
|
|
19
|
+
const workingDir = process.cwd();
|
|
20
|
+
if (!directoryExists_1.directoryExists(this.path)) {
|
|
21
|
+
die_1.die('Specified path to app does not exist');
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
process.chdir(this.path);
|
|
25
|
+
const context = AppContext_1.appContext();
|
|
26
|
+
if (!context.appId || !context.version) {
|
|
27
|
+
die_1.die('Unable to read App ID or version info. Ensure you are uploading the right directory.');
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (context) {
|
|
31
|
+
const packageData = new AppPackager_1.AppPackager('./').package();
|
|
32
|
+
const zipFileName = `${context.appId}@${context.version}.zip`;
|
|
33
|
+
fs.writeFileSync(path.join(workingDir, zipFileName), packageData);
|
|
34
|
+
console.log(`Created package ${zipFileName}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
__decorate([
|
|
39
|
+
oo_cli_1.param,
|
|
40
|
+
oo_cli_1.help('The root directory of the app'),
|
|
41
|
+
oo_cli_1.defaultValue('./')
|
|
42
|
+
], PackageCommand.prototype, "path", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
oo_cli_1.command,
|
|
45
|
+
oo_cli_1.help('Prepare a package for manual upload')
|
|
46
|
+
], PackageCommand.prototype, "package", null);
|
|
47
|
+
PackageCommand = __decorate([
|
|
48
|
+
oo_cli_1.namespace('app')
|
|
49
|
+
], PackageCommand);
|
|
50
|
+
exports.PackageCommand = PackageCommand;
|
|
51
|
+
//# sourceMappingURL=Package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Package.js","sourceRoot":"","sources":["../../../src/commands/app/Package.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yBAAyB;AACzB,mCAAqE;AACrE,6BAA6B;AAC7B,qDAAgD;AAChD,uDAAkD;AAClD,uCAAkC;AAClC,+DAA0D;AAG1D,IAAa,cAAc,GAA3B,MAAa,cAAc;IAQlB,OAAO;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,iCAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC/B,SAAG,CAAC,sCAAsC,CAAC,CAAC;YAC5C,OAAO;SACR;QACD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,OAAO,GAAG,uBAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACtC,SAAG,CAAC,sFAAsF,CAAC,CAAC;YAC5F,OAAO;SACR;QAED,IAAI,OAAO,EAAE;YACX,MAAM,WAAW,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACpD,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,MAAM,CAAC;YAC9D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;SAC/C;IACH,CAAC;CACF,CAAA;AAzBC;IAHC,cAAK;IACL,aAAI,CAAC,+BAA+B,CAAC;IACrC,qBAAY,CAAC,IAAI,CAAC;4CACE;AAIrB;IAFC,gBAAO;IACP,aAAI,CAAC,qCAAqC,CAAC;6CAqB3C;AA5BU,cAAc;IAD1B,kBAAS,CAAC,KAAK,CAAC;GACJ,cAAc,CA6B1B;AA7BY,wCAAc"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseBuildCommand } from './BaseBuildCommand';
|
|
2
|
+
export declare class PrepareCommand extends BaseBuildCommand {
|
|
3
|
+
publish: boolean;
|
|
4
|
+
usePreviousAppEnvValues: boolean;
|
|
5
|
+
bumpDevVersion: boolean;
|
|
6
|
+
prepare(): Promise<void>;
|
|
7
|
+
private updateVersionInAppManifest;
|
|
8
|
+
}
|