@signageos/cli 2.3.1 → 2.3.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/README.md +1 -0
- package/dist/Applet/Build/appletBuildCommand.js +28 -72
- package/dist/Applet/Generate/Templates/rspack.config.mjs.template +12 -12
- package/dist/Applet/Generate/appletGenerateCommand.d.ts +23 -62
- package/dist/Applet/Generate/appletGenerateCommand.js +398 -365
- package/dist/Applet/Start/appletStartCommand.js +69 -131
- package/dist/Applet/Test/Upload/appletTestRunCommand.js +89 -177
- package/dist/Applet/Test/Upload/appletTestRunFacade.js +4 -27
- package/dist/Applet/Test/Upload/appletTestUploadCommand.js +98 -223
- package/dist/Applet/Test/Upload/appletTestUploadFacade.js +39 -102
- package/dist/Applet/Test/appletTestCommand.js +6 -36
- package/dist/Applet/Upload/appletUploadCommand.js +199 -305
- package/dist/Applet/Upload/appletUploadCommandHelper.js +103 -138
- package/dist/Applet/Upload/appletUploadFacade.d.ts +2 -2
- package/dist/Applet/Upload/appletUploadFacade.js +172 -263
- package/dist/Applet/Upload/appletUploadFacadeHelper.js +39 -52
- package/dist/Applet/appletCommand.d.ts +22 -62
- package/dist/Applet/appletCommand.js +9 -39
- package/dist/Applet/appletErrors.js +5 -24
- package/dist/Applet/appletFacade.js +106 -141
- package/dist/Applet/appletServerHelper.js +16 -53
- package/dist/Auth/loginCommand.js +96 -137
- package/dist/Cache/tmpCache.js +35 -13
- package/dist/Cli/helper.js +1 -2
- package/dist/Cli/packageVersion.js +82 -123
- package/dist/Command/commandDefinition.js +0 -1
- package/dist/Command/commandProcessor.js +40 -129
- package/dist/Command/globalArgs.js +7 -5
- package/dist/CommandLine/IProgressBar.js +0 -1
- package/dist/CommandLine/progressBarFactory.js +31 -11
- package/dist/CustomScript/Generate/customScriptGenerateCommand.js +17 -56
- package/dist/CustomScript/Generate/customScriptGenerateFacade.js +82 -106
- package/dist/CustomScript/Upload/customScriptUploadCommand.js +44 -120
- package/dist/CustomScript/customScriptCommand.js +6 -36
- package/dist/CustomScript/customScriptFacade.js +175 -294
- package/dist/Device/Connect/connectCommand.js +72 -136
- package/dist/Device/Content/setContentCommand.js +33 -78
- package/dist/Device/PowerAction/powerActionCommand.js +22 -65
- package/dist/Device/deviceCommand.js +7 -37
- package/dist/Device/deviceFacade.js +67 -123
- package/dist/Emulator/IEmulator.js +0 -1
- package/dist/Emulator/createDomain.js +33 -12
- package/dist/Emulator/emulatorFacade.js +74 -131
- package/dist/Emulator/emulatorFactory.js +112 -124
- package/dist/Firmware/Upload/firmwareUploadCommand.js +133 -221
- package/dist/Firmware/Upload/firmwareUploadFacade.js +64 -110
- package/dist/Firmware/Upload/firmwareUploadHelper.js +27 -5
- package/dist/Firmware/firmwareCommand.js +5 -35
- package/dist/Lib/archive.js +45 -60
- package/dist/Lib/childProcess.js +27 -5
- package/dist/Lib/fileSystem.js +62 -82
- package/dist/Lib/git.d.ts +1 -1
- package/dist/Lib/git.js +44 -82
- package/dist/Organization/Get/organizationGetCommand.js +14 -50
- package/dist/Organization/List/organizationListCommand.js +12 -46
- package/dist/Organization/SetDefault/organizationSetDefaultCommand.js +18 -56
- package/dist/Organization/organizationCommand.js +7 -37
- package/dist/Organization/organizationFacade.js +97 -172
- package/dist/RunControl/runControlHelper.js +11 -60
- package/dist/Timer/wait.js +1 -2
- package/dist/Timing/List/timingListCommand.js +20 -62
- package/dist/Timing/timingCommand.js +5 -35
- package/dist/generalCommand.js +1 -2
- package/dist/helper.js +48 -109
- package/dist/index.js +15 -45
- package/dist/parameters.js +17 -40
- package/package.json +16 -18
- package/dist/Applet/Build/appletBuildCommand.js.map +0 -1
- package/dist/Applet/Generate/appletGenerateCommand.js.map +0 -1
- package/dist/Applet/Start/appletStartCommand.js.map +0 -1
- package/dist/Applet/Test/Upload/appletTestRunCommand.js.map +0 -1
- package/dist/Applet/Test/Upload/appletTestRunFacade.js.map +0 -1
- package/dist/Applet/Test/Upload/appletTestUploadCommand.js.map +0 -1
- package/dist/Applet/Test/Upload/appletTestUploadFacade.js.map +0 -1
- package/dist/Applet/Test/appletTestCommand.js.map +0 -1
- package/dist/Applet/Upload/appletUploadCommand.js.map +0 -1
- package/dist/Applet/Upload/appletUploadCommandHelper.js.map +0 -1
- package/dist/Applet/Upload/appletUploadFacade.js.map +0 -1
- package/dist/Applet/Upload/appletUploadFacadeHelper.js.map +0 -1
- package/dist/Applet/appletCommand.js.map +0 -1
- package/dist/Applet/appletErrors.js.map +0 -1
- package/dist/Applet/appletFacade.js.map +0 -1
- package/dist/Applet/appletServerHelper.js.map +0 -1
- package/dist/Auth/loginCommand.js.map +0 -1
- package/dist/Cache/tmpCache.js.map +0 -1
- package/dist/Cli/helper.js.map +0 -1
- package/dist/Cli/packageVersion.js.map +0 -1
- package/dist/Command/commandDefinition.js.map +0 -1
- package/dist/Command/commandProcessor.js.map +0 -1
- package/dist/Command/globalArgs.js.map +0 -1
- package/dist/CommandLine/IProgressBar.js.map +0 -1
- package/dist/CommandLine/progressBarFactory.js.map +0 -1
- package/dist/CustomScript/Generate/customScriptGenerateCommand.js.map +0 -1
- package/dist/CustomScript/Generate/customScriptGenerateFacade.js.map +0 -1
- package/dist/CustomScript/Upload/customScriptUploadCommand.js.map +0 -1
- package/dist/CustomScript/customScriptCommand.js.map +0 -1
- package/dist/CustomScript/customScriptFacade.js.map +0 -1
- package/dist/Device/Connect/connectCommand.js.map +0 -1
- package/dist/Device/Content/setContentCommand.js.map +0 -1
- package/dist/Device/PowerAction/powerActionCommand.js.map +0 -1
- package/dist/Device/deviceCommand.js.map +0 -1
- package/dist/Device/deviceFacade.js.map +0 -1
- package/dist/Emulator/IEmulator.js.map +0 -1
- package/dist/Emulator/createDomain.js.map +0 -1
- package/dist/Emulator/emulatorFacade.js.map +0 -1
- package/dist/Emulator/emulatorFactory.js.map +0 -1
- package/dist/Firmware/Upload/firmwareUploadCommand.js.map +0 -1
- package/dist/Firmware/Upload/firmwareUploadFacade.js.map +0 -1
- package/dist/Firmware/Upload/firmwareUploadHelper.js.map +0 -1
- package/dist/Firmware/firmwareCommand.js.map +0 -1
- package/dist/Lib/archive.js.map +0 -1
- package/dist/Lib/childProcess.js.map +0 -1
- package/dist/Lib/fileSystem.js.map +0 -1
- package/dist/Lib/git.js.map +0 -1
- package/dist/Organization/Get/organizationGetCommand.js.map +0 -1
- package/dist/Organization/List/organizationListCommand.js.map +0 -1
- package/dist/Organization/SetDefault/organizationSetDefaultCommand.js.map +0 -1
- package/dist/Organization/organizationCommand.js.map +0 -1
- package/dist/Organization/organizationFacade.js.map +0 -1
- package/dist/RunControl/runControlHelper.js.map +0 -1
- package/dist/Timer/wait.js.map +0 -1
- package/dist/Timing/List/timingListCommand.js.map +0 -1
- package/dist/Timing/timingCommand.js.map +0 -1
- package/dist/generalCommand.js.map +0 -1
- package/dist/helper.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/parameters.js.map +0 -1
|
@@ -1,4 +1,27 @@
|
|
|
1
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
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,48 +31,24 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
32
|
});
|
|
10
33
|
};
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
36
|
};
|
|
38
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
38
|
exports.uploadCode = exports.ensureCustomScriptVersion = exports.addToConfigFile = exports.getConfig = void 0;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const os = __importStar(require("os"));
|
|
41
|
+
const fs = __importStar(require("fs-extra"));
|
|
42
|
+
const z = __importStar(require("zod"));
|
|
43
|
+
const prompts_1 = __importDefault(require("prompts"));
|
|
44
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
45
|
+
const log_1 = require("@signageos/sdk/dist/Console/log");
|
|
46
|
+
const archive_1 = require("../Lib/archive");
|
|
47
|
+
const fileSystem_1 = require("../Lib/fileSystem");
|
|
48
|
+
const runtimeFileSystem_1 = require("@signageos/sdk/dist/Development/runtimeFileSystem");
|
|
49
|
+
const CONFIG_FILE_NAME = '.sosconfig.json';
|
|
50
|
+
const CUSTOM_SCRIPTS_BUILDS_DIRNAME = 'custom_scripts_builds';
|
|
51
|
+
const PlatformSchema = z.strictObject({
|
|
53
52
|
/** List of files/directories that are part of the custom script for a particular platform. */
|
|
54
53
|
rootDir: z.string(),
|
|
55
54
|
/** Main file of the particular platform script that will be executed. */
|
|
@@ -57,7 +56,7 @@ var PlatformSchema = z.strictObject({
|
|
|
57
56
|
/** What type of runtime is the script for the particular platform (i.e. node.js, bash,...). */
|
|
58
57
|
runtime: z.string(),
|
|
59
58
|
});
|
|
60
|
-
|
|
59
|
+
const ConfigSchema = z.object({
|
|
61
60
|
uid: z.string().optional(),
|
|
62
61
|
name: z.string(),
|
|
63
62
|
version: z.string(),
|
|
@@ -76,16 +75,9 @@ var ConfigSchema = z.object({
|
|
|
76
75
|
* Load and validate the config file .sosconfig.json
|
|
77
76
|
*/
|
|
78
77
|
function getConfig(workDir) {
|
|
79
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
80
|
-
|
|
81
|
-
return
|
|
82
|
-
switch (_a.label) {
|
|
83
|
-
case 0: return [4 /*yield*/, loadConfigFromFile(workDir)];
|
|
84
|
-
case 1:
|
|
85
|
-
config = _a.sent();
|
|
86
|
-
return [2 /*return*/, ConfigSchema.parse(config)];
|
|
87
|
-
}
|
|
88
|
-
});
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
const config = yield loadConfigFromFile(workDir);
|
|
80
|
+
return ConfigSchema.parse(config);
|
|
89
81
|
});
|
|
90
82
|
}
|
|
91
83
|
exports.getConfig = getConfig;
|
|
@@ -93,213 +85,138 @@ exports.getConfig = getConfig;
|
|
|
93
85
|
* Add data to the config file .sosconfig.json
|
|
94
86
|
*/
|
|
95
87
|
function addToConfigFile(workDir, data) {
|
|
96
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
case 1:
|
|
102
|
-
previousContent = _a.sent();
|
|
103
|
-
filePath = getConfigFilePath(workDir);
|
|
104
|
-
newContent = Object.assign({}, previousContent, data);
|
|
105
|
-
return [4 /*yield*/, fs.writeFile(filePath, JSON.stringify(newContent, undefined, '\t') + '\n')];
|
|
106
|
-
case 2:
|
|
107
|
-
_a.sent();
|
|
108
|
-
return [2 /*return*/];
|
|
109
|
-
}
|
|
110
|
-
});
|
|
88
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
+
const previousContent = yield loadConfigFromFile(workDir);
|
|
90
|
+
const filePath = getConfigFilePath(workDir);
|
|
91
|
+
const newContent = Object.assign({}, previousContent, data);
|
|
92
|
+
yield fs.writeFile(filePath, JSON.stringify(newContent, undefined, '\t') + '\n');
|
|
111
93
|
});
|
|
112
94
|
}
|
|
113
95
|
exports.addToConfigFile = addToConfigFile;
|
|
114
96
|
function loadConfigFromFile(workDir) {
|
|
115
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
case 1:
|
|
123
|
-
if (!(_a.sent())) {
|
|
124
|
-
throw new Error("Config file ".concat(CONFIG_FILE_NAME, " not found"));
|
|
125
|
-
}
|
|
126
|
-
fileContent = fs.readFileSync(filePath, 'utf-8');
|
|
127
|
-
return [2 /*return*/, JSON.parse(fileContent)];
|
|
128
|
-
}
|
|
129
|
-
});
|
|
97
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
const filePath = getConfigFilePath(workDir);
|
|
99
|
+
if (!(yield fs.pathExists(filePath))) {
|
|
100
|
+
throw new Error(`Config file ${CONFIG_FILE_NAME} not found`);
|
|
101
|
+
}
|
|
102
|
+
const fileContent = fs.readFileSync(filePath, 'utf-8');
|
|
103
|
+
return JSON.parse(fileContent);
|
|
130
104
|
});
|
|
131
105
|
}
|
|
132
106
|
function getConfigFilePath(workDir) {
|
|
133
107
|
return path.join(workDir, CONFIG_FILE_NAME);
|
|
134
108
|
}
|
|
135
109
|
function ensureCustomScriptVersion(restApi, config) {
|
|
136
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
response = _a.sent();
|
|
159
|
-
if (!response.newVersion) {
|
|
160
|
-
throw new Error('Custom Script version creation was canceled.');
|
|
161
|
-
}
|
|
162
|
-
(0, log_1.log)('info', chalk_1.default.yellow("Creating Custom Script version ".concat(config.version)));
|
|
163
|
-
return [4 /*yield*/, restApi.customScript.version.create({
|
|
164
|
-
customScriptUid: customScript.uid,
|
|
165
|
-
version: config.version,
|
|
166
|
-
configDefinition: config.configDefinition,
|
|
167
|
-
})];
|
|
168
|
-
case 4: return [2 /*return*/, _a.sent()];
|
|
169
|
-
}
|
|
110
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
111
|
+
const customScript = yield ensureCustomScript(restApi, config);
|
|
112
|
+
const customScriptVersion = yield restApi.customScript.version.get({
|
|
113
|
+
customScriptUid: customScript.uid,
|
|
114
|
+
version: config.version,
|
|
115
|
+
});
|
|
116
|
+
if (customScriptVersion) {
|
|
117
|
+
return customScriptVersion;
|
|
118
|
+
}
|
|
119
|
+
const response = yield (0, prompts_1.default)({
|
|
120
|
+
type: 'confirm',
|
|
121
|
+
name: 'newVersion',
|
|
122
|
+
message: `Do you want to create new custom script version ${config.version}?`,
|
|
123
|
+
});
|
|
124
|
+
if (!response.newVersion) {
|
|
125
|
+
throw new Error('Custom Script version creation was canceled.');
|
|
126
|
+
}
|
|
127
|
+
(0, log_1.log)('info', chalk_1.default.yellow(`Creating Custom Script version ${config.version}`));
|
|
128
|
+
return yield restApi.customScript.version.create({
|
|
129
|
+
customScriptUid: customScript.uid,
|
|
130
|
+
version: config.version,
|
|
131
|
+
configDefinition: config.configDefinition,
|
|
170
132
|
});
|
|
171
133
|
});
|
|
172
134
|
}
|
|
173
135
|
exports.ensureCustomScriptVersion = ensureCustomScriptVersion;
|
|
174
136
|
function ensureCustomScript(restApi, config) {
|
|
175
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
name: config.name,
|
|
187
|
-
title: config.name,
|
|
188
|
-
description: config.description,
|
|
189
|
-
dangerLevel: config.dangerLevel,
|
|
190
|
-
})];
|
|
191
|
-
case 2:
|
|
192
|
-
_a.sent();
|
|
193
|
-
return [2 /*return*/, customScript];
|
|
194
|
-
case 3: throw new Error("Custom Script with uid \"".concat(config.uid, "\" not found"));
|
|
195
|
-
case 4: return [4 /*yield*/, prompts({
|
|
196
|
-
type: 'confirm',
|
|
197
|
-
name: 'create',
|
|
198
|
-
message: "Custom Script \"".concat(config.name, "\" does not exist. Do you want to create it?"),
|
|
199
|
-
})];
|
|
200
|
-
case 5:
|
|
201
|
-
response = _a.sent();
|
|
202
|
-
if (!response.create) {
|
|
203
|
-
throw new Error('Custom Script upload was canceled.');
|
|
204
|
-
}
|
|
205
|
-
(0, log_1.log)('info', chalk_1.default.yellow("Creating Custom Script \"".concat(config.name, "\"")));
|
|
206
|
-
return [4 /*yield*/, restApi.customScript.create({
|
|
207
|
-
name: config.name,
|
|
208
|
-
title: config.name,
|
|
209
|
-
description: config.description,
|
|
210
|
-
dangerLevel: config.dangerLevel,
|
|
211
|
-
})];
|
|
212
|
-
case 6:
|
|
213
|
-
createdCustomScript = _a.sent();
|
|
214
|
-
// TODO ask for permission or read from CLI arg
|
|
215
|
-
(0, log_1.log)('info', chalk_1.default.yellow('Adding Custom Script uid to the config file'));
|
|
216
|
-
return [4 /*yield*/, addToConfigFile(process.cwd(), { uid: createdCustomScript.uid })];
|
|
217
|
-
case 7:
|
|
218
|
-
_a.sent();
|
|
219
|
-
return [2 /*return*/, createdCustomScript];
|
|
137
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
138
|
+
if (config.uid) {
|
|
139
|
+
const customScript = yield restApi.customScript.get(config.uid);
|
|
140
|
+
if (customScript) {
|
|
141
|
+
yield restApi.customScript.update(customScript.uid, {
|
|
142
|
+
name: config.name,
|
|
143
|
+
title: config.name,
|
|
144
|
+
description: config.description,
|
|
145
|
+
dangerLevel: config.dangerLevel,
|
|
146
|
+
});
|
|
147
|
+
return customScript;
|
|
220
148
|
}
|
|
149
|
+
throw new Error(`Custom Script with uid "${config.uid}" not found`);
|
|
150
|
+
}
|
|
151
|
+
const response = yield (0, prompts_1.default)({
|
|
152
|
+
type: 'confirm',
|
|
153
|
+
name: 'create',
|
|
154
|
+
message: `Custom Script "${config.name}" does not exist. Do you want to create it?`,
|
|
155
|
+
});
|
|
156
|
+
if (!response.create) {
|
|
157
|
+
throw new Error('Custom Script upload was canceled.');
|
|
158
|
+
}
|
|
159
|
+
(0, log_1.log)('info', chalk_1.default.yellow(`Creating Custom Script "${config.name}"`));
|
|
160
|
+
const createdCustomScript = yield restApi.customScript.create({
|
|
161
|
+
name: config.name,
|
|
162
|
+
title: config.name,
|
|
163
|
+
description: config.description,
|
|
164
|
+
dangerLevel: config.dangerLevel,
|
|
221
165
|
});
|
|
166
|
+
// TODO ask for permission or read from CLI arg
|
|
167
|
+
(0, log_1.log)('info', chalk_1.default.yellow('Adding Custom Script uid to the config file'));
|
|
168
|
+
yield addToConfigFile(process.cwd(), { uid: createdCustomScript.uid });
|
|
169
|
+
return createdCustomScript;
|
|
222
170
|
});
|
|
223
171
|
}
|
|
224
|
-
function uploadCode(
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
return [4 /*yield*/, generateCustomScriptPlatformCodeArchive(workDir, config, customScriptVersion, platform)];
|
|
233
|
-
case 1:
|
|
234
|
-
codeArchive = _b.sent();
|
|
235
|
-
return [4 /*yield*/, restApi.customScript.version.platform.get({
|
|
236
|
-
customScriptUid: customScriptVersion.customScriptUid,
|
|
237
|
-
version: customScriptVersion.version,
|
|
238
|
-
platform: platform,
|
|
239
|
-
})];
|
|
240
|
-
case 2:
|
|
241
|
-
customScriptVersionPlatform = _b.sent();
|
|
242
|
-
if ((customScriptVersionPlatform === null || customScriptVersionPlatform === void 0 ? void 0 : customScriptVersionPlatform.md5Checksum) === codeArchive.md5Checksum) {
|
|
243
|
-
(0, log_1.log)('info', chalk_1.default.yellow("Skipping upload for ".concat(platform, " - no changes detected")));
|
|
244
|
-
return [2 /*return*/];
|
|
245
|
-
}
|
|
246
|
-
_b.label = 3;
|
|
247
|
-
case 3:
|
|
248
|
-
_b.trys.push([3, , 6, 8]);
|
|
249
|
-
(0, log_1.log)('info', chalk_1.default.yellow("Uploading files for ".concat(platform)));
|
|
250
|
-
return [4 /*yield*/, uploadCodeArchive({
|
|
251
|
-
restApi: restApi,
|
|
252
|
-
customScriptVersion: customScriptVersion,
|
|
253
|
-
platform: platform,
|
|
254
|
-
codeArchive: codeArchive,
|
|
255
|
-
})];
|
|
256
|
-
case 4:
|
|
257
|
-
_b.sent();
|
|
258
|
-
return [4 /*yield*/, restApi.customScript.version.platform.update({
|
|
259
|
-
customScriptUid: customScriptVersion.customScriptUid,
|
|
260
|
-
version: customScriptVersion.version,
|
|
261
|
-
platform: platform,
|
|
262
|
-
mainFile: mainFile,
|
|
263
|
-
runtime: runtime,
|
|
264
|
-
md5Checksum: codeArchive.md5Checksum,
|
|
265
|
-
})];
|
|
266
|
-
case 5:
|
|
267
|
-
_b.sent();
|
|
268
|
-
return [3 /*break*/, 8];
|
|
269
|
-
case 6: return [4 /*yield*/, codeArchive.delete()];
|
|
270
|
-
case 7:
|
|
271
|
-
_b.sent();
|
|
272
|
-
return [7 /*endfinally*/];
|
|
273
|
-
case 8: return [2 /*return*/];
|
|
274
|
-
}
|
|
172
|
+
function uploadCode({ restApi, workDir, platform, config, customScriptVersion, }) {
|
|
173
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
174
|
+
const { mainFile, runtime } = config;
|
|
175
|
+
const codeArchive = yield generateCustomScriptPlatformCodeArchive(workDir, config, customScriptVersion, platform);
|
|
176
|
+
const customScriptVersionPlatform = yield restApi.customScript.version.platform.get({
|
|
177
|
+
customScriptUid: customScriptVersion.customScriptUid,
|
|
178
|
+
version: customScriptVersion.version,
|
|
179
|
+
platform,
|
|
275
180
|
});
|
|
181
|
+
if ((customScriptVersionPlatform === null || customScriptVersionPlatform === void 0 ? void 0 : customScriptVersionPlatform.md5Checksum) === codeArchive.md5Checksum) {
|
|
182
|
+
(0, log_1.log)('info', chalk_1.default.yellow(`Skipping upload for ${platform} - no changes detected`));
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
try {
|
|
186
|
+
(0, log_1.log)('info', chalk_1.default.yellow(`Uploading files for ${platform}`));
|
|
187
|
+
yield uploadCodeArchive({
|
|
188
|
+
restApi,
|
|
189
|
+
customScriptVersion,
|
|
190
|
+
platform,
|
|
191
|
+
codeArchive,
|
|
192
|
+
});
|
|
193
|
+
yield restApi.customScript.version.platform.update({
|
|
194
|
+
customScriptUid: customScriptVersion.customScriptUid,
|
|
195
|
+
version: customScriptVersion.version,
|
|
196
|
+
platform,
|
|
197
|
+
mainFile,
|
|
198
|
+
runtime,
|
|
199
|
+
md5Checksum: codeArchive.md5Checksum,
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
finally {
|
|
203
|
+
yield codeArchive.delete();
|
|
204
|
+
}
|
|
276
205
|
});
|
|
277
206
|
}
|
|
278
207
|
exports.uploadCode = uploadCode;
|
|
279
|
-
function uploadCodeArchive(
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
return [4 /*yield*/, restApi.customScript.version.platform.archive.upload({
|
|
292
|
-
customScriptUid: customScriptVersion.customScriptUid,
|
|
293
|
-
version: customScriptVersion.version,
|
|
294
|
-
platform: platform,
|
|
295
|
-
md5Checksum: codeArchive.md5Checksum,
|
|
296
|
-
size: fileSize,
|
|
297
|
-
stream: fileStream,
|
|
298
|
-
})];
|
|
299
|
-
case 2:
|
|
300
|
-
_b.sent();
|
|
301
|
-
return [2 /*return*/];
|
|
302
|
-
}
|
|
208
|
+
function uploadCodeArchive({ restApi, customScriptVersion, platform, codeArchive, }) {
|
|
209
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
210
|
+
const filePath = codeArchive.filePath;
|
|
211
|
+
const fileSize = (yield fs.stat(filePath)).size;
|
|
212
|
+
const fileStream = fs.createReadStream(filePath);
|
|
213
|
+
yield restApi.customScript.version.platform.archive.upload({
|
|
214
|
+
customScriptUid: customScriptVersion.customScriptUid,
|
|
215
|
+
version: customScriptVersion.version,
|
|
216
|
+
platform,
|
|
217
|
+
md5Checksum: codeArchive.md5Checksum,
|
|
218
|
+
size: fileSize,
|
|
219
|
+
stream: fileStream,
|
|
303
220
|
});
|
|
304
221
|
});
|
|
305
222
|
}
|
|
@@ -310,39 +227,21 @@ function uploadCodeArchive(_a) {
|
|
|
310
227
|
* After archive isn't needed anymore, it should be deleted using the delete method.
|
|
311
228
|
*/
|
|
312
229
|
function generateCustomScriptPlatformCodeArchive(workDir, config, customScriptVersion, platform) {
|
|
313
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
return [2 /*return*/, {
|
|
329
|
-
filePath: archiveFilePath,
|
|
330
|
-
md5Checksum: md5Checksum,
|
|
331
|
-
delete: function () {
|
|
332
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
333
|
-
return __generator(this, function (_a) {
|
|
334
|
-
switch (_a.label) {
|
|
335
|
-
case 0: return [4 /*yield*/, fs.unlink(archiveFilePath)];
|
|
336
|
-
case 1:
|
|
337
|
-
_a.sent();
|
|
338
|
-
return [2 /*return*/];
|
|
339
|
-
}
|
|
340
|
-
});
|
|
341
|
-
});
|
|
342
|
-
},
|
|
343
|
-
}];
|
|
344
|
-
}
|
|
345
|
-
});
|
|
230
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
231
|
+
const buildsDir = yield ensureBuildsDirectory(customScriptVersion);
|
|
232
|
+
const archiveFileName = `${platform}.zip`;
|
|
233
|
+
const archiveFilePath = path.join(buildsDir, archiveFileName);
|
|
234
|
+
yield (0, archive_1.generateZip)(workDir, config.rootDir, archiveFilePath);
|
|
235
|
+
const md5Checksum = yield (0, fileSystem_1.getFileMD5Checksum)(archiveFilePath);
|
|
236
|
+
return {
|
|
237
|
+
filePath: archiveFilePath,
|
|
238
|
+
md5Checksum,
|
|
239
|
+
delete() {
|
|
240
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
241
|
+
yield fs.unlink(archiveFilePath);
|
|
242
|
+
});
|
|
243
|
+
},
|
|
244
|
+
};
|
|
346
245
|
});
|
|
347
246
|
}
|
|
348
247
|
/**
|
|
@@ -351,20 +250,11 @@ function generateCustomScriptPlatformCodeArchive(workDir, config, customScriptVe
|
|
|
351
250
|
* This directory is used to store temporary files generated by the CLI.
|
|
352
251
|
*/
|
|
353
252
|
function ensureBuildsDirectory(customScriptVersion) {
|
|
354
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
case 1:
|
|
360
|
-
runtimeDir = _a.sent();
|
|
361
|
-
buildsDir = path.join(runtimeDir, customScriptVersion.customScriptUid, customScriptVersion.version);
|
|
362
|
-
return [4 /*yield*/, fs.ensureDir(buildsDir)];
|
|
363
|
-
case 2:
|
|
364
|
-
_a.sent();
|
|
365
|
-
return [2 /*return*/, buildsDir];
|
|
366
|
-
}
|
|
367
|
-
});
|
|
253
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
254
|
+
const runtimeDir = yield ensureRuntimeDir();
|
|
255
|
+
const buildsDir = path.join(runtimeDir, customScriptVersion.customScriptUid, customScriptVersion.version);
|
|
256
|
+
yield fs.ensureDir(buildsDir);
|
|
257
|
+
return buildsDir;
|
|
368
258
|
});
|
|
369
259
|
}
|
|
370
260
|
/**
|
|
@@ -373,18 +263,9 @@ function ensureBuildsDirectory(customScriptVersion) {
|
|
|
373
263
|
* This directory is used to store temporary files generated by the CLI.
|
|
374
264
|
*/
|
|
375
265
|
function ensureRuntimeDir() {
|
|
376
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
case 0:
|
|
381
|
-
runtimeDir = path.join(os.tmpdir(), runtimeFileSystem_1.RUNTIME_DIRNAME, CUSTOM_SCRIPTS_BUILDS_DIRNAME);
|
|
382
|
-
return [4 /*yield*/, fs.ensureDir(runtimeDir)];
|
|
383
|
-
case 1:
|
|
384
|
-
_a.sent();
|
|
385
|
-
return [2 /*return*/, runtimeDir];
|
|
386
|
-
}
|
|
387
|
-
});
|
|
266
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
267
|
+
const runtimeDir = path.join(os.tmpdir(), runtimeFileSystem_1.RUNTIME_DIRNAME, CUSTOM_SCRIPTS_BUILDS_DIRNAME);
|
|
268
|
+
yield fs.ensureDir(runtimeDir);
|
|
269
|
+
return runtimeDir;
|
|
388
270
|
});
|
|
389
271
|
}
|
|
390
|
-
//# sourceMappingURL=customScriptFacade.js.map
|