@dcl/sdk 7.0.6-4086929545.commit-0292186 → 7.0.6-4087883663.commit-054d424
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/cli/commands/build/helpers.d.ts +1 -5
- package/cli/commands/build/helpers.js +10 -10
- package/cli/commands/build/helpers.ts +9 -15
- package/cli/commands/build/index.d.ts +1 -1
- package/cli/commands/build/index.js +22 -17
- package/cli/commands/build/index.ts +19 -19
- package/cli/commands/init/index.d.ts +1 -1
- package/cli/commands/init/index.js +4 -4
- package/cli/commands/init/index.ts +2 -3
- package/cli/commands/preview/index.d.ts +3 -1
- package/cli/commands/preview/index.js +18 -18
- package/cli/commands/preview/index.ts +21 -19
- package/cli/commands/preview/types.d.ts +4 -0
- package/cli/commands/preview/types.js +1 -1
- package/cli/commands/preview/types.ts +6 -0
- package/cli/commands/preview/wire.d.ts +2 -14
- package/cli/commands/preview/wire.js +2 -4
- package/cli/commands/preview/wire.ts +2 -24
- package/cli/commands/start/index.d.ts +1 -1
- package/cli/commands/start/index.js +14 -9
- package/cli/commands/start/index.ts +21 -8
- package/cli/index.js +38 -13
- package/cli/index.ts +20 -10
- package/cli/utils/exec.d.ts +1 -1
- package/cli/utils/exec.js +5 -6
- package/cli/utils/exec.ts +9 -5
- package/cli/utils/log.d.ts +1 -9
- package/cli/utils/log.js +14 -16
- package/cli/utils/log.ts +26 -14
- package/package.json +9 -7
- package/cli/utils/handler.d.ts +0 -6
- package/cli/utils/handler.js +0 -19
- package/cli/utils/handler.ts +0 -23
@@ -18,8 +18,4 @@ export declare const needsDependencies: (components: {
|
|
18
18
|
}, dir: string) => Promise<boolean>;
|
19
19
|
export declare const npm: string;
|
20
20
|
export declare function installDependencies(dir: string): Promise<void>;
|
21
|
-
export declare
|
22
|
-
dir: string;
|
23
|
-
watch: boolean;
|
24
|
-
production: boolean;
|
25
|
-
}) => Promise<void>;
|
21
|
+
export declare function npmRun(cwd: string, command: string, ...args: string[]): Promise<void>;
|
@@ -1,8 +1,9 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.npmRun = exports.installDependencies = exports.npm = exports.needsDependencies = exports.validatePackageJson = exports.validateProjectStructure = exports.getProjectStructure = exports.REQUIRED_PACKAGE_JSON = exports.REQUIRED_FILES = void 0;
|
4
4
|
const path_1 = require("path");
|
5
5
|
const exec_1 = require("../../utils/exec");
|
6
|
+
const log_1 = require("../../utils/log");
|
6
7
|
const object_1 = require("../../utils/object");
|
7
8
|
exports.REQUIRED_FILES = {
|
8
9
|
PACKAGE_JSON: 'package.json',
|
@@ -37,14 +38,13 @@ const needsDependencies = async (components, dir) => {
|
|
37
38
|
exports.needsDependencies = needsDependencies;
|
38
39
|
exports.npm = /^win/.test(process.platform) ? 'npm.cmd' : 'npm';
|
39
40
|
async function installDependencies(dir) {
|
40
|
-
|
41
|
+
(0, log_1.info)('Installing dependencies...');
|
42
|
+
await (0, exec_1.exec)(dir, exports.npm, ['install']);
|
43
|
+
(0, log_1.succeed)('Dependencies installed');
|
41
44
|
}
|
42
45
|
exports.installDependencies = installDependencies;
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
};
|
49
|
-
exports.buildTypescript = buildTypescript;
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQThCO0FBRzlCLDJDQUF1QztBQUN2QywrQ0FBMkQ7QUFLOUMsUUFBQSxjQUFjLEdBQUc7SUFDNUIsWUFBWSxFQUFFLGNBQWM7SUFDNUIsY0FBYyxFQUFFLGVBQWU7SUFDL0IsVUFBVSxFQUFFLFlBQVk7Q0FDekIsQ0FBQTtBQUtZLFFBQUEscUJBQXFCLEdBQUcsRUFBRSxDQUFBO0FBS2hDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxzQkFBYyxDQUFDLENBQUE7QUFBekQsUUFBQSxtQkFBbUIsdUJBQXNDO0FBSy9ELE1BQU0sd0JBQXdCLEdBQUcsS0FBSyxFQUMzQyxVQUF3QyxFQUN4QyxHQUFXLEVBQ1gsUUFBa0IsRUFDQSxFQUFFO0lBQ3BCLE1BQU0sS0FBSyxHQUFHLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDOUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDL0QsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9CLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDL0I7S0FDRjtJQUVELE9BQU8sYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUE7QUFDakMsQ0FBQyxDQUFBO0FBZlksUUFBQSx3QkFBd0IsNEJBZXBDO0FBS00sTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEVBQ3RDLFVBQXdDLEVBQ3hDLEdBQVcsRUFDWCxJQUFVLEVBQ1EsRUFBRTtJQUNwQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBQSxjQUFPLEVBQUMsR0FBRyxFQUFFLHNCQUFjLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUNoSCxPQUFPLElBQUEseUJBQWdCLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFBO0FBQzVDLENBQUMsQ0FBQTtBQVBZLFFBQUEsbUJBQW1CLHVCQU8vQjtBQUtNLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUFFLFVBQXdDLEVBQUUsR0FBVyxFQUFvQixFQUFFO0lBQ2pILE1BQU0sZUFBZSxHQUFHLElBQUEsY0FBTyxFQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNwRCxNQUFNLG9CQUFvQixHQUFHLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDM0UsTUFBTSxrQkFBa0IsR0FBRyxvQkFBb0IsSUFBSSxDQUFDLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFBO0lBRTlHLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxrQkFBa0IsQ0FBQTtBQUNwRCxDQUFDLENBQUE7QUFOWSxRQUFBLGlCQUFpQixxQkFNN0I7QUFHWSxRQUFBLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFLN0QsS0FBSyxVQUFVLG1CQUFtQixDQUFDLEdBQVc7SUFDbkQsTUFBTSxJQUFBLFdBQUksRUFBQyxHQUFHLEVBQUUsR0FBRyxXQUFHLFVBQVUsQ0FBQyxDQUFBO0FBQ25DLENBQUM7QUFGRCxrREFFQztBQUtNLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxFQUNwQyxHQUFHLEVBQ0gsS0FBSyxFQUNMLFVBQVUsRUFLWCxFQUFpQixFQUFFO0lBQ2xCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUE7SUFDekMsTUFBTSxJQUFBLFdBQUksRUFBQyxHQUFHLEVBQUUsR0FBRyxXQUFHLFFBQVEsT0FBTyxFQUFFLEVBQUU7UUFDdkMsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7S0FDbEQsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBYlksUUFBQSxlQUFlLG1CQWEzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgeyBJRmlsZVN5c3RlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZnMnXG5pbXBvcnQgeyBleGVjIH0gZnJvbSAnLi4vLi4vdXRpbHMvZXhlYydcbmltcG9ydCB7IERpY3QsIGhhc1ByaW1pdGl2ZUtleXMgfSBmcm9tICcuLi8uLi91dGlscy9vYmplY3QnXG5cbi8qKlxuICogUmVxdWlyZWQgcHJvamVjdCBkaXJzL2ZpbGVzXG4gKi9cbmV4cG9ydCBjb25zdCBSRVFVSVJFRF9GSUxFUyA9IHtcbiAgUEFDS0FHRV9KU09OOiAncGFja2FnZS5qc29uJyxcbiAgVFNfQ09ORklHX0pTT046ICd0c2NvbmZpZy5qc29uJyxcbiAgU0NFTkVfSlNPTjogJ3NjZW5lLmpzb24nXG59XG5cbi8qKlxuICogUmVxdWlyZWQgXCJwYWNrYWdlLmpzb25cIiBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX1BBQ0tBR0VfSlNPTiA9IHt9XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcmVxdWlyZWQgZmlsZXMgZm9yIGEgcHJvamVjdFxuICovXG5leHBvcnQgY29uc3QgZ2V0UHJvamVjdFN0cnVjdHVyZSA9ICgpID0+IE9iamVjdC52YWx1ZXMoUkVRVUlSRURfRklMRVMpXG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9qZWN0IGZvbGxvd3MgYSB2YWxpZCBzY2VuZSBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUHJvamVjdFN0cnVjdHVyZSA9IGFzeW5jIChcbiAgY29tcG9uZW50czogeyBmczogSUZpbGVTeXN0ZW1Db21wb25lbnQgfSxcbiAgZGlyOiBzdHJpbmcsXG4gIGZpbGVMaXN0OiBzdHJpbmdbXVxuKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgY29tcG9uZW50cy5mcy5yZWFkZGlyKGRpcilcbiAgY29uc3QgcmVxdWlyZWRGaWxlcyA9IG5ldyBTZXQoZmlsZUxpc3QpXG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGggJiYgcmVxdWlyZWRGaWxlcy5zaXplID4gMDsgaSsrKSB7XG4gICAgaWYgKHJlcXVpcmVkRmlsZXMuaGFzKGZpbGVzW2ldKSkge1xuICAgICAgcmVxdWlyZWRGaWxlcy5kZWxldGUoZmlsZXNbaV0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlcXVpcmVkRmlsZXMuc2l6ZSA9PT0gMFxufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHJvamVjdCdzIFwicGFja2FnZS5qc29uXCIgaXMgdmFsaWRcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUGFja2FnZUpzb24gPSBhc3luYyAoXG4gIGNvbXBvbmVudHM6IHsgZnM6IElGaWxlU3lzdGVtQ29tcG9uZW50IH0sXG4gIGRpcjogc3RyaW5nLFxuICBkZXBzOiBEaWN0XG4pOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgcGFja2FnZUpzb24gPSBKU09OLnBhcnNlKGF3YWl0IGNvbXBvbmVudHMuZnMucmVhZEZpbGUocmVzb2x2ZShkaXIsIFJFUVVJUkVEX0ZJTEVTLlBBQ0tBR0VfSlNPTiksICd1dGYtOCcpKVxuICByZXR1cm4gaGFzUHJpbWl0aXZlS2V5cyhwYWNrYWdlSnNvbiwgZGVwcylcbn1cblxuLypcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHJvamVjdCBjb250YWlucyBhbiBlbXB0eSBub2RlX21vZHVsZXMgZm9sZGVyXG4gKi9cbmV4cG9ydCBjb25zdCBuZWVkc0RlcGVuZGVuY2llcyA9IGFzeW5jIChjb21wb25lbnRzOiB7IGZzOiBJRmlsZVN5c3RlbUNvbXBvbmVudCB9LCBkaXI6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBub2RlTW9kdWxlc1BhdGggPSByZXNvbHZlKGRpciwgJ25vZGVfbW9kdWxlcycpXG4gIGNvbnN0IGhhc05vZGVNb2R1bGVzRm9sZGVyID0gYXdhaXQgY29tcG9uZW50cy5mcy5leGlzdFBhdGgobm9kZU1vZHVsZXNQYXRoKVxuICBjb25zdCBpc05vZGVNb2R1bGVzRW1wdHkgPSBoYXNOb2RlTW9kdWxlc0ZvbGRlciAmJiAoYXdhaXQgY29tcG9uZW50cy5mcy5yZWFkZGlyKG5vZGVNb2R1bGVzUGF0aCkpLmxlbmd0aCA9PT0gMFxuXG4gIHJldHVybiAhaGFzTm9kZU1vZHVsZXNGb2xkZXIgfHwgaXNOb2RlTW9kdWxlc0VtcHR5XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgY29uc3QgbnBtID0gL153aW4vLnRlc3QocHJvY2Vzcy5wbGF0Zm9ybSkgPyAnbnBtLmNtZCcgOiAnbnBtJ1xuXG4vKlxuICogUnVucyBcIm5wbSBpbnN0YWxsXCIgZm9yIGRlc2lyZWQgcHJvamVjdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5zdGFsbERlcGVuZGVuY2llcyhkaXI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjKGRpciwgYCR7bnBtfSBpbnN0YWxsYClcbn1cblxuLyoqXG4gKiBCdWlsZCdzIFR5cGVzY3JpcHQgdXNpbmcgXCJ0c2NvbmZpZy5qc29uXCIgZmlsZVxuICovXG5leHBvcnQgY29uc3QgYnVpbGRUeXBlc2NyaXB0ID0gYXN5bmMgKHtcbiAgZGlyLFxuICB3YXRjaCxcbiAgcHJvZHVjdGlvblxufToge1xuICBkaXI6IHN0cmluZ1xuICB3YXRjaDogYm9vbGVhblxuICBwcm9kdWN0aW9uOiBib29sZWFuXG59KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IGNvbW1hbmQgPSB3YXRjaCA/ICd3YXRjaCcgOiAnYnVpbGQnXG4gIGF3YWl0IGV4ZWMoZGlyLCBgJHtucG19IHJ1biAke2NvbW1hbmR9YCwge1xuICAgIGVudjogeyBOT0RFX0VOVjogcHJvZHVjdGlvbiA/ICdwcm9kdWN0aW9uJyA6ICcnIH1cbiAgfSlcbn1cbiJdfQ==
|
46
|
+
async function npmRun(cwd, command, ...args) {
|
47
|
+
await (0, exec_1.exec)(cwd, exports.npm, ['run', command, '--silent', '--', ...args], { env: process.env });
|
48
|
+
}
|
49
|
+
exports.npmRun = npmRun;
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQThCO0FBRzlCLDJDQUF1QztBQUN2Qyx5Q0FBK0M7QUFDL0MsK0NBQTJEO0FBSzlDLFFBQUEsY0FBYyxHQUFHO0lBQzVCLFlBQVksRUFBRSxjQUFjO0lBQzVCLGNBQWMsRUFBRSxlQUFlO0lBQy9CLFVBQVUsRUFBRSxZQUFZO0NBQ3pCLENBQUE7QUFLWSxRQUFBLHFCQUFxQixHQUFHLEVBQUUsQ0FBQTtBQUtoQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsc0JBQWMsQ0FBQyxDQUFBO0FBQXpELFFBQUEsbUJBQW1CLHVCQUFzQztBQUsvRCxNQUFNLHdCQUF3QixHQUFHLEtBQUssRUFDM0MsVUFBd0MsRUFDeEMsR0FBVyxFQUNYLFFBQWtCLEVBQ0EsRUFBRTtJQUNwQixNQUFNLEtBQUssR0FBRyxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzlDLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRXZDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQy9ELElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvQixhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQy9CO0tBQ0Y7SUFFRCxPQUFPLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFBO0FBQ2pDLENBQUMsQ0FBQTtBQWZZLFFBQUEsd0JBQXdCLDRCQWVwQztBQUtNLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxFQUN0QyxVQUF3QyxFQUN4QyxHQUFXLEVBQ1gsSUFBVSxFQUNRLEVBQUU7SUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUEsY0FBTyxFQUFDLEdBQUcsRUFBRSxzQkFBYyxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDaEgsT0FBTyxJQUFBLHlCQUFnQixFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUM1QyxDQUFDLENBQUE7QUFQWSxRQUFBLG1CQUFtQix1QkFPL0I7QUFLTSxNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSxVQUF3QyxFQUFFLEdBQVcsRUFBb0IsRUFBRTtJQUNqSCxNQUFNLGVBQWUsR0FBRyxJQUFBLGNBQU8sRUFBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDcEQsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQzNFLE1BQU0sa0JBQWtCLEdBQUcsb0JBQW9CLElBQUksQ0FBQyxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQTtJQUU5RyxPQUFPLENBQUMsb0JBQW9CLElBQUksa0JBQWtCLENBQUE7QUFDcEQsQ0FBQyxDQUFBO0FBTlksUUFBQSxpQkFBaUIscUJBTTdCO0FBR1ksUUFBQSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0FBSzdELEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxHQUFXO0lBQ25ELElBQUEsVUFBSSxFQUFDLDRCQUE0QixDQUFDLENBQUE7SUFFbEMsTUFBTSxJQUFBLFdBQUksRUFBQyxHQUFHLEVBQUUsV0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtJQUNqQyxJQUFBLGFBQU8sRUFBQyx3QkFBd0IsQ0FBQyxDQUFBO0FBQ25DLENBQUM7QUFMRCxrREFLQztBQUtNLEtBQUssVUFBVSxNQUFNLENBQUMsR0FBVyxFQUFFLE9BQWUsRUFBRSxHQUFHLElBQWM7SUFFMUUsTUFBTSxJQUFBLFdBQUksRUFBQyxHQUFHLEVBQUUsV0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQVUsRUFBRSxDQUFDLENBQUE7QUFDaEcsQ0FBQztBQUhELHdCQUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ3BhdGgnXG5cbmltcG9ydCB7IElGaWxlU3lzdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9mcydcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICcuLi8uLi91dGlscy9leGVjJ1xuaW1wb3J0IHsgaW5mbywgc3VjY2VlZCB9IGZyb20gJy4uLy4uL3V0aWxzL2xvZydcbmltcG9ydCB7IERpY3QsIGhhc1ByaW1pdGl2ZUtleXMgfSBmcm9tICcuLi8uLi91dGlscy9vYmplY3QnXG5cbi8qKlxuICogUmVxdWlyZWQgcHJvamVjdCBkaXJzL2ZpbGVzXG4gKi9cbmV4cG9ydCBjb25zdCBSRVFVSVJFRF9GSUxFUyA9IHtcbiAgUEFDS0FHRV9KU09OOiAncGFja2FnZS5qc29uJyxcbiAgVFNfQ09ORklHX0pTT046ICd0c2NvbmZpZy5qc29uJyxcbiAgU0NFTkVfSlNPTjogJ3NjZW5lLmpzb24nXG59XG5cbi8qKlxuICogUmVxdWlyZWQgXCJwYWNrYWdlLmpzb25cIiBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX1BBQ0tBR0VfSlNPTiA9IHt9XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcmVxdWlyZWQgZmlsZXMgZm9yIGEgcHJvamVjdFxuICovXG5leHBvcnQgY29uc3QgZ2V0UHJvamVjdFN0cnVjdHVyZSA9ICgpID0+IE9iamVjdC52YWx1ZXMoUkVRVUlSRURfRklMRVMpXG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9qZWN0IGZvbGxvd3MgYSB2YWxpZCBzY2VuZSBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUHJvamVjdFN0cnVjdHVyZSA9IGFzeW5jIChcbiAgY29tcG9uZW50czogeyBmczogSUZpbGVTeXN0ZW1Db21wb25lbnQgfSxcbiAgZGlyOiBzdHJpbmcsXG4gIGZpbGVMaXN0OiBzdHJpbmdbXVxuKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgY29tcG9uZW50cy5mcy5yZWFkZGlyKGRpcilcbiAgY29uc3QgcmVxdWlyZWRGaWxlcyA9IG5ldyBTZXQoZmlsZUxpc3QpXG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGggJiYgcmVxdWlyZWRGaWxlcy5zaXplID4gMDsgaSsrKSB7XG4gICAgaWYgKHJlcXVpcmVkRmlsZXMuaGFzKGZpbGVzW2ldKSkge1xuICAgICAgcmVxdWlyZWRGaWxlcy5kZWxldGUoZmlsZXNbaV0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlcXVpcmVkRmlsZXMuc2l6ZSA9PT0gMFxufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHJvamVjdCdzIFwicGFja2FnZS5qc29uXCIgaXMgdmFsaWRcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUGFja2FnZUpzb24gPSBhc3luYyAoXG4gIGNvbXBvbmVudHM6IHsgZnM6IElGaWxlU3lzdGVtQ29tcG9uZW50IH0sXG4gIGRpcjogc3RyaW5nLFxuICBkZXBzOiBEaWN0XG4pOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgcGFja2FnZUpzb24gPSBKU09OLnBhcnNlKGF3YWl0IGNvbXBvbmVudHMuZnMucmVhZEZpbGUocmVzb2x2ZShkaXIsIFJFUVVJUkVEX0ZJTEVTLlBBQ0tBR0VfSlNPTiksICd1dGYtOCcpKVxuICByZXR1cm4gaGFzUHJpbWl0aXZlS2V5cyhwYWNrYWdlSnNvbiwgZGVwcylcbn1cblxuLypcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHJvamVjdCBjb250YWlucyBhbiBlbXB0eSBub2RlX21vZHVsZXMgZm9sZGVyXG4gKi9cbmV4cG9ydCBjb25zdCBuZWVkc0RlcGVuZGVuY2llcyA9IGFzeW5jIChjb21wb25lbnRzOiB7IGZzOiBJRmlsZVN5c3RlbUNvbXBvbmVudCB9LCBkaXI6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBub2RlTW9kdWxlc1BhdGggPSByZXNvbHZlKGRpciwgJ25vZGVfbW9kdWxlcycpXG4gIGNvbnN0IGhhc05vZGVNb2R1bGVzRm9sZGVyID0gYXdhaXQgY29tcG9uZW50cy5mcy5leGlzdFBhdGgobm9kZU1vZHVsZXNQYXRoKVxuICBjb25zdCBpc05vZGVNb2R1bGVzRW1wdHkgPSBoYXNOb2RlTW9kdWxlc0ZvbGRlciAmJiAoYXdhaXQgY29tcG9uZW50cy5mcy5yZWFkZGlyKG5vZGVNb2R1bGVzUGF0aCkpLmxlbmd0aCA9PT0gMFxuXG4gIHJldHVybiAhaGFzTm9kZU1vZHVsZXNGb2xkZXIgfHwgaXNOb2RlTW9kdWxlc0VtcHR5XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgY29uc3QgbnBtID0gL153aW4vLnRlc3QocHJvY2Vzcy5wbGF0Zm9ybSkgPyAnbnBtLmNtZCcgOiAnbnBtJ1xuXG4vKlxuICogUnVucyBcIm5wbSBpbnN0YWxsXCIgZm9yIGRlc2lyZWQgcHJvamVjdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5zdGFsbERlcGVuZGVuY2llcyhkaXI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBpbmZvKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcy4uLicpXG4gIC8vIFRPRE86IHRlc3QgaW4gd2luZG93c1xuICBhd2FpdCBleGVjKGRpciwgbnBtLCBbJ2luc3RhbGwnXSlcbiAgc3VjY2VlZCgnRGVwZW5kZW5jaWVzIGluc3RhbGxlZCcpXG59XG5cbi8qKlxuICogUnVuIE5QTSBjb21tYW5kc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbnBtUnVuKGN3ZDogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcsIC4uLmFyZ3M6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIFRPRE86IHRlc3QgaW4gd2luZG93c1xuICBhd2FpdCBleGVjKGN3ZCwgbnBtLCBbJ3J1bicsIGNvbW1hbmQsICctLXNpbGVudCcsICctLScsIC4uLmFyZ3NdLCB7IGVudjogcHJvY2Vzcy5lbnYgYXMgYW55IH0pXG59XG4iXX0=
|
@@ -2,6 +2,7 @@ import { resolve } from 'path'
|
|
2
2
|
|
3
3
|
import { IFileSystemComponent } from '../../components/fs'
|
4
4
|
import { exec } from '../../utils/exec'
|
5
|
+
import { info, succeed } from '../../utils/log'
|
5
6
|
import { Dict, hasPrimitiveKeys } from '../../utils/object'
|
6
7
|
|
7
8
|
/**
|
@@ -73,23 +74,16 @@ export const npm = /^win/.test(process.platform) ? 'npm.cmd' : 'npm'
|
|
73
74
|
* Runs "npm install" for desired project
|
74
75
|
*/
|
75
76
|
export async function installDependencies(dir: string): Promise<void> {
|
76
|
-
|
77
|
+
info('Installing dependencies...')
|
78
|
+
// TODO: test in windows
|
79
|
+
await exec(dir, npm, ['install'])
|
80
|
+
succeed('Dependencies installed')
|
77
81
|
}
|
78
82
|
|
79
83
|
/**
|
80
|
-
*
|
84
|
+
* Run NPM commands
|
81
85
|
*/
|
82
|
-
export
|
83
|
-
|
84
|
-
|
85
|
-
production
|
86
|
-
}: {
|
87
|
-
dir: string
|
88
|
-
watch: boolean
|
89
|
-
production: boolean
|
90
|
-
}): Promise<void> => {
|
91
|
-
const command = watch ? 'watch' : 'build'
|
92
|
-
await exec(dir, `${npm} run ${command}`, {
|
93
|
-
env: { NODE_ENV: production ? 'production' : '' }
|
94
|
-
})
|
86
|
+
export async function npmRun(cwd: string, command: string, ...args: string[]): Promise<void> {
|
87
|
+
// TODO: test in windows
|
88
|
+
await exec(cwd, npm, ['run', command, '--silent', '--', ...args], { env: process.env as any })
|
95
89
|
}
|
@@ -15,5 +15,5 @@ export declare const args: import("arg").Result<{
|
|
15
15
|
'--dir': StringConstructor;
|
16
16
|
}>;
|
17
17
|
export declare function help(): string;
|
18
|
-
export declare
|
18
|
+
export declare function main(options: Options): Promise<void>;
|
19
19
|
export {};
|
@@ -1,14 +1,16 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
6
|
exports.main = exports.help = exports.args = void 0;
|
4
7
|
const path_1 = require("path");
|
5
8
|
const out_messages_1 = require("../../utils/out-messages");
|
6
|
-
const log_1 = require("../../utils/log");
|
7
9
|
const args_1 = require("../../utils/args");
|
8
10
|
const error_1 = require("../../utils/error");
|
11
|
+
const compile_1 = require("@dcl/dcl-rollup/compile");
|
12
|
+
const fp_future_1 = __importDefault(require("fp-future"));
|
9
13
|
const helpers_1 = require("./helpers");
|
10
|
-
const handler_1 = require("../../utils/handler");
|
11
|
-
const console_1 = require("console");
|
12
14
|
exports.args = (0, args_1.getArgs)({
|
13
15
|
'--watch': Boolean,
|
14
16
|
'-w': '--watch',
|
@@ -19,7 +21,7 @@ exports.args = (0, args_1.getArgs)({
|
|
19
21
|
});
|
20
22
|
function help() {
|
21
23
|
return `
|
22
|
-
Usage: 'dcl build [options]'
|
24
|
+
Usage: 'dcl-commands build [options]'
|
23
25
|
Options:'
|
24
26
|
-h, --help Displays complete help
|
25
27
|
-w, --watch Watch for file changes and build on change
|
@@ -29,11 +31,11 @@ function help() {
|
|
29
31
|
|
30
32
|
Example:
|
31
33
|
- Build your scene:
|
32
|
-
'$ dcl build'
|
34
|
+
'$ dcl-commands build'
|
33
35
|
`;
|
34
36
|
}
|
35
37
|
exports.help = help;
|
36
|
-
|
38
|
+
async function main(options) {
|
37
39
|
const dir = (0, path_1.resolve)(process.cwd(), options.args['--dir'] || '.');
|
38
40
|
const projectStructure = (0, helpers_1.getProjectStructure)();
|
39
41
|
const hasValidProjectStructure = await (0, helpers_1.validateProjectStructure)(options.components, dir, projectStructure);
|
@@ -41,24 +43,27 @@ exports.main = (0, handler_1.main)(async function main(options) {
|
|
41
43
|
throw new error_1.CliError(`Invalid scene structure found. Required files:
|
42
44
|
${(0, out_messages_1.toStringList)(projectStructure)}`);
|
43
45
|
}
|
44
|
-
(0, log_1.succeed)('Project has a valid structure');
|
45
46
|
const hasValidPackageJson = await (0, helpers_1.validatePackageJson)(options.components, dir, helpers_1.REQUIRED_PACKAGE_JSON);
|
46
47
|
if (!hasValidPackageJson) {
|
47
48
|
throw new error_1.CliError(`Invalid "package.json" file. Structure required:
|
48
49
|
${JSON.stringify(helpers_1.REQUIRED_PACKAGE_JSON, null, 2)}`);
|
49
50
|
}
|
50
|
-
(0, log_1.succeed)('Project has a valid "package.json"');
|
51
51
|
const shouldInstallDeps = await (0, helpers_1.needsDependencies)(options.components, dir);
|
52
52
|
if (shouldInstallDeps && !options.args['--skip-install']) {
|
53
|
-
(0, console_1.info)('Installing dependencies...');
|
54
53
|
await (0, helpers_1.installDependencies)(dir);
|
55
54
|
}
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
55
|
+
const watch = !!options.args['--watch'];
|
56
|
+
const watchingFuture = (0, fp_future_1.default)();
|
57
|
+
await (0, compile_1.compile)({
|
58
|
+
project: dir,
|
59
|
+
watch,
|
60
|
+
production: !!options.args['--production'],
|
61
|
+
watchingFuture
|
61
62
|
});
|
62
|
-
|
63
|
-
|
64
|
-
|
63
|
+
if (!watch) {
|
64
|
+
watchingFuture.resolve(null);
|
65
|
+
}
|
66
|
+
await watchingFuture;
|
67
|
+
}
|
68
|
+
exports.main = main;
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBOEI7QUFHOUIsMkRBQXVEO0FBQ3ZELDJDQUEwQztBQUMxQyw2Q0FBNEM7QUFDNUMscURBQWlEO0FBQ2pELDBEQUE4QjtBQUM5Qix1Q0FPa0I7QUFPTCxRQUFBLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQztJQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQixJQUFJLEVBQUUsU0FBUztJQUNmLGNBQWMsRUFBRSxPQUFPO0lBQ3ZCLElBQUksRUFBRSxjQUFjO0lBQ3BCLGdCQUFnQixFQUFFLE9BQU87SUFDekIsT0FBTyxFQUFFLE1BQU07Q0FDaEIsQ0FBQyxDQUFBO0FBRUYsU0FBZ0IsSUFBSTtJQUNsQixPQUFPOzs7Ozs7Ozs7Ozs7R0FZTixDQUFBO0FBQ0gsQ0FBQztBQWRELG9CQWNDO0FBRU0sS0FBSyxVQUFVLElBQUksQ0FBQyxPQUFnQjtJQUN6QyxNQUFNLEdBQUcsR0FBRyxJQUFBLGNBQU8sRUFBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtJQUNoRSxNQUFNLGdCQUFnQixHQUFHLElBQUEsNkJBQW1CLEdBQUUsQ0FBQTtJQUU5QyxNQUFNLHdCQUF3QixHQUFHLE1BQU0sSUFBQSxrQ0FBd0IsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO0lBRTFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtRQUM3QixNQUFNLElBQUksZ0JBQVEsQ0FBQztRQUNmLElBQUEsMkJBQVksRUFBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQTtLQUN0QztJQUVELE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxJQUFBLDZCQUFtQixFQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLCtCQUFxQixDQUFDLENBQUE7SUFFckcsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1FBQ3hCLE1BQU0sSUFBSSxnQkFBUSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQywrQkFBcUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0tBQ3REO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsMkJBQWlCLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUUxRSxJQUFJLGlCQUFpQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ3hELE1BQU0sSUFBQSw2QkFBbUIsRUFBQyxHQUFHLENBQUMsQ0FBQTtLQUMvQjtJQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRXZDLE1BQU0sY0FBYyxHQUFHLElBQUEsbUJBQU0sR0FBTyxDQUFBO0lBRXBDLE1BQU0sSUFBQSxpQkFBTyxFQUFDO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixLQUFLO1FBQ0wsVUFBVSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMxQyxjQUFjO0tBQ2YsQ0FBQyxDQUFBO0lBRUYsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7S0FDN0I7SUFFRCxNQUFNLGNBQWMsQ0FBQTtBQUl0QixDQUFDO0FBM0NELG9CQTJDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgeyBDbGlDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cydcbmltcG9ydCB7IHRvU3RyaW5nTGlzdCB9IGZyb20gJy4uLy4uL3V0aWxzL291dC1tZXNzYWdlcydcbmltcG9ydCB7IGdldEFyZ3MgfSBmcm9tICcuLi8uLi91dGlscy9hcmdzJ1xuaW1wb3J0IHsgQ2xpRXJyb3IgfSBmcm9tICcuLi8uLi91dGlscy9lcnJvcidcbmltcG9ydCB7IGNvbXBpbGUgfSBmcm9tICdAZGNsL2RjbC1yb2xsdXAvY29tcGlsZSdcbmltcG9ydCBmdXR1cmUgZnJvbSAnZnAtZnV0dXJlJ1xuaW1wb3J0IHtcbiAgZ2V0UHJvamVjdFN0cnVjdHVyZSxcbiAgaW5zdGFsbERlcGVuZGVuY2llcyxcbiAgbmVlZHNEZXBlbmRlbmNpZXMsXG4gIHZhbGlkYXRlUHJvamVjdFN0cnVjdHVyZSxcbiAgdmFsaWRhdGVQYWNrYWdlSnNvbixcbiAgUkVRVUlSRURfUEFDS0FHRV9KU09OXG59IGZyb20gJy4vaGVscGVycydcblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICBhcmdzOiBPbWl0PHR5cGVvZiBhcmdzLCAnXyc+XG4gIGNvbXBvbmVudHM6IFBpY2s8Q2xpQ29tcG9uZW50cywgJ2ZzJz5cbn1cblxuZXhwb3J0IGNvbnN0IGFyZ3MgPSBnZXRBcmdzKHtcbiAgJy0td2F0Y2gnOiBCb29sZWFuLFxuICAnLXcnOiAnLS13YXRjaCcsXG4gICctLXByb2R1Y3Rpb24nOiBCb29sZWFuLFxuICAnLXAnOiAnLS1wcm9kdWN0aW9uJyxcbiAgJy0tc2tpcC1pbnN0YWxsJzogQm9vbGVhbixcbiAgJy0tZGlyJzogU3RyaW5nXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gaGVscCgpIHtcbiAgcmV0dXJuIGBcbiAgVXNhZ2U6ICdkY2wtY29tbWFuZHMgYnVpbGQgW29wdGlvbnNdJ1xuICAgIE9wdGlvbnM6J1xuICAgICAgLWgsIC0taGVscCAgICAgICAgICAgICAgICBEaXNwbGF5cyBjb21wbGV0ZSBoZWxwXG4gICAgICAtdywgLS13YXRjaCAgICAgICAgICAgICAgIFdhdGNoIGZvciBmaWxlIGNoYW5nZXMgYW5kIGJ1aWxkIG9uIGNoYW5nZVxuICAgICAgLXAsIC0tcHJvZHVjdGlvbiAgICAgICAgICBCdWlsZCB3aXRob3V0IHNvdXJjZW1hcHNcbiAgICAgIC0tc2tpcC1pbnN0YWxsICAgICAgICAgICAgU2tpcCBpbnN0YWxsaW5nIGRlcGVuZGVuY2llc1xuICAgICAgLS1kaXIgICAgICAgICAgICAgICAgICAgICBQYXRoIHRvIGRpcmVjdG9yeSB0byBidWlsZFxuXG4gICAgRXhhbXBsZTpcbiAgICAtIEJ1aWxkIHlvdXIgc2NlbmU6XG4gICAgICAnJCBkY2wtY29tbWFuZHMgYnVpbGQnXG4gIGBcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1haW4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBkaXIgPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIG9wdGlvbnMuYXJnc1snLS1kaXInXSB8fCAnLicpXG4gIGNvbnN0IHByb2plY3RTdHJ1Y3R1cmUgPSBnZXRQcm9qZWN0U3RydWN0dXJlKClcblxuICBjb25zdCBoYXNWYWxpZFByb2plY3RTdHJ1Y3R1cmUgPSBhd2FpdCB2YWxpZGF0ZVByb2plY3RTdHJ1Y3R1cmUob3B0aW9ucy5jb21wb25lbnRzLCBkaXIsIHByb2plY3RTdHJ1Y3R1cmUpXG5cbiAgaWYgKCFoYXNWYWxpZFByb2plY3RTdHJ1Y3R1cmUpIHtcbiAgICB0aHJvdyBuZXcgQ2xpRXJyb3IoYEludmFsaWQgc2NlbmUgc3RydWN0dXJlIGZvdW5kLiBSZXF1aXJlZCBmaWxlczpcbiAgICAgICR7dG9TdHJpbmdMaXN0KHByb2plY3RTdHJ1Y3R1cmUpfWApXG4gIH1cblxuICBjb25zdCBoYXNWYWxpZFBhY2thZ2VKc29uID0gYXdhaXQgdmFsaWRhdGVQYWNrYWdlSnNvbihvcHRpb25zLmNvbXBvbmVudHMsIGRpciwgUkVRVUlSRURfUEFDS0FHRV9KU09OKVxuXG4gIGlmICghaGFzVmFsaWRQYWNrYWdlSnNvbikge1xuICAgIHRocm93IG5ldyBDbGlFcnJvcihgSW52YWxpZCBcInBhY2thZ2UuanNvblwiIGZpbGUuIFN0cnVjdHVyZSByZXF1aXJlZDpcbiAgICAgICR7SlNPTi5zdHJpbmdpZnkoUkVRVUlSRURfUEFDS0FHRV9KU09OLCBudWxsLCAyKX1gKVxuICB9XG5cbiAgY29uc3Qgc2hvdWxkSW5zdGFsbERlcHMgPSBhd2FpdCBuZWVkc0RlcGVuZGVuY2llcyhvcHRpb25zLmNvbXBvbmVudHMsIGRpcilcblxuICBpZiAoc2hvdWxkSW5zdGFsbERlcHMgJiYgIW9wdGlvbnMuYXJnc1snLS1za2lwLWluc3RhbGwnXSkge1xuICAgIGF3YWl0IGluc3RhbGxEZXBlbmRlbmNpZXMoZGlyKVxuICB9XG5cbiAgY29uc3Qgd2F0Y2ggPSAhIW9wdGlvbnMuYXJnc1snLS13YXRjaCddXG5cbiAgY29uc3Qgd2F0Y2hpbmdGdXR1cmUgPSBmdXR1cmU8YW55PigpXG5cbiAgYXdhaXQgY29tcGlsZSh7XG4gICAgcHJvamVjdDogZGlyLFxuICAgIHdhdGNoLFxuICAgIHByb2R1Y3Rpb246ICEhb3B0aW9ucy5hcmdzWyctLXByb2R1Y3Rpb24nXSxcbiAgICB3YXRjaGluZ0Z1dHVyZVxuICB9KVxuXG4gIGlmICghd2F0Y2gpIHtcbiAgICB3YXRjaGluZ0Z1dHVyZS5yZXNvbHZlKG51bGwpXG4gIH1cblxuICBhd2FpdCB3YXRjaGluZ0Z1dHVyZVxuXG4gIC8vIHRyYWNrIHN0dWZmLi4uXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kZWNlbnRyYWxhbmQvY2xpL2Jsb2IvbWFpbi9zcmMvY29tbWFuZHMvYnVpbGQudHNcbn1cbiJdfQ==
|
@@ -2,20 +2,18 @@ import { resolve } from 'path'
|
|
2
2
|
|
3
3
|
import { CliComponents } from '../../components'
|
4
4
|
import { toStringList } from '../../utils/out-messages'
|
5
|
-
import { succeed } from '../../utils/log'
|
6
5
|
import { getArgs } from '../../utils/args'
|
7
6
|
import { CliError } from '../../utils/error'
|
7
|
+
import { compile } from '@dcl/dcl-rollup/compile'
|
8
|
+
import future from 'fp-future'
|
8
9
|
import {
|
9
10
|
getProjectStructure,
|
10
|
-
buildTypescript,
|
11
11
|
installDependencies,
|
12
12
|
needsDependencies,
|
13
13
|
validateProjectStructure,
|
14
14
|
validatePackageJson,
|
15
15
|
REQUIRED_PACKAGE_JSON
|
16
16
|
} from './helpers'
|
17
|
-
import { main as handler } from '../../utils/handler'
|
18
|
-
import { info } from 'console'
|
19
17
|
|
20
18
|
interface Options {
|
21
19
|
args: Omit<typeof args, '_'>
|
@@ -33,7 +31,7 @@ export const args = getArgs({
|
|
33
31
|
|
34
32
|
export function help() {
|
35
33
|
return `
|
36
|
-
Usage: 'dcl build [options]'
|
34
|
+
Usage: 'dcl-commands build [options]'
|
37
35
|
Options:'
|
38
36
|
-h, --help Displays complete help
|
39
37
|
-w, --watch Watch for file changes and build on change
|
@@ -43,11 +41,11 @@ export function help() {
|
|
43
41
|
|
44
42
|
Example:
|
45
43
|
- Build your scene:
|
46
|
-
'$ dcl build'
|
44
|
+
'$ dcl-commands build'
|
47
45
|
`
|
48
46
|
}
|
49
47
|
|
50
|
-
export
|
48
|
+
export async function main(options: Options) {
|
51
49
|
const dir = resolve(process.cwd(), options.args['--dir'] || '.')
|
52
50
|
const projectStructure = getProjectStructure()
|
53
51
|
|
@@ -58,8 +56,6 @@ export const main = handler(async function main(options: Options) {
|
|
58
56
|
${toStringList(projectStructure)}`)
|
59
57
|
}
|
60
58
|
|
61
|
-
succeed('Project has a valid structure')
|
62
|
-
|
63
59
|
const hasValidPackageJson = await validatePackageJson(options.components, dir, REQUIRED_PACKAGE_JSON)
|
64
60
|
|
65
61
|
if (!hasValidPackageJson) {
|
@@ -67,25 +63,29 @@ export const main = handler(async function main(options: Options) {
|
|
67
63
|
${JSON.stringify(REQUIRED_PACKAGE_JSON, null, 2)}`)
|
68
64
|
}
|
69
65
|
|
70
|
-
succeed('Project has a valid "package.json"')
|
71
|
-
|
72
66
|
const shouldInstallDeps = await needsDependencies(options.components, dir)
|
73
67
|
|
74
68
|
if (shouldInstallDeps && !options.args['--skip-install']) {
|
75
|
-
info('Installing dependencies...')
|
76
69
|
await installDependencies(dir)
|
77
70
|
}
|
78
71
|
|
79
|
-
|
72
|
+
const watch = !!options.args['--watch']
|
80
73
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
74
|
+
const watchingFuture = future<any>()
|
75
|
+
|
76
|
+
await compile({
|
77
|
+
project: dir,
|
78
|
+
watch,
|
79
|
+
production: !!options.args['--production'],
|
80
|
+
watchingFuture
|
85
81
|
})
|
86
82
|
|
87
|
-
|
83
|
+
if (!watch) {
|
84
|
+
watchingFuture.resolve(null)
|
85
|
+
}
|
86
|
+
|
87
|
+
await watchingFuture
|
88
88
|
|
89
89
|
// track stuff...
|
90
90
|
// https://github.com/decentraland/cli/blob/main/src/commands/build.ts
|
91
|
-
}
|
91
|
+
}
|
@@ -12,5 +12,5 @@ export declare const args: import("arg").Result<{
|
|
12
12
|
'--dir': StringConstructor;
|
13
13
|
}>;
|
14
14
|
export declare function help(): Promise<void>;
|
15
|
-
export declare
|
15
|
+
export declare function main(options: Options): Promise<void>;
|
16
16
|
export {};
|
@@ -6,7 +6,6 @@ const args_1 = require("../../utils/args");
|
|
6
6
|
const prompt_1 = require("../../utils/prompt");
|
7
7
|
const fs_1 = require("../../utils/fs");
|
8
8
|
const repos_1 = require("./repos");
|
9
|
-
const handler_1 = require("../../utils/handler");
|
10
9
|
exports.args = (0, args_1.getArgs)({
|
11
10
|
'--yes': Boolean,
|
12
11
|
'-y': '--yes',
|
@@ -14,7 +13,7 @@ exports.args = (0, args_1.getArgs)({
|
|
14
13
|
});
|
15
14
|
async function help() { }
|
16
15
|
exports.help = help;
|
17
|
-
|
16
|
+
async function main(options) {
|
18
17
|
const dir = (0, path_1.resolve)(process.cwd(), options.args['--dir'] || '.');
|
19
18
|
const isEmpty = await (0, fs_1.isDirectoryEmpty)(options.components, dir);
|
20
19
|
const yes = options.args['--yes'];
|
@@ -29,7 +28,8 @@ exports.main = (0, handler_1.main)(async function main(options) {
|
|
29
28
|
await (0, fs_1.extract)(zip, dir);
|
30
29
|
await options.components.fs.unlink(zip);
|
31
30
|
await moveFilesFromDirs(options.components, dir, contentFolders);
|
32
|
-
}
|
31
|
+
}
|
32
|
+
exports.main = main;
|
33
33
|
const moveFilesFromDir = async (components, dir, folder) => {
|
34
34
|
const files = await components.fs.readdir(folder);
|
35
35
|
await Promise.all(files.map(($) => {
|
@@ -44,4 +44,4 @@ const moveFilesFromDirs = async (components, dir, folders) => {
|
|
44
44
|
return moveFilesFromDir(components, dir, folderPath);
|
45
45
|
}));
|
46
46
|
};
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBb0M7QUFFcEMsMkNBQTBDO0FBQzFDLCtDQUE0QztBQUU1Qyx1Q0FBb0U7QUFFcEUsbUNBQXdDO0FBTzNCLFFBQUEsSUFBSSxHQUFHLElBQUEsY0FBTyxFQUFDO0lBQzFCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLElBQUksRUFBRSxPQUFPO0lBQ2IsT0FBTyxFQUFFLE1BQU07Q0FDaEIsQ0FBQyxDQUFBO0FBRUssS0FBSyxVQUFVLElBQUksS0FBSSxDQUFDO0FBQS9CLG9CQUErQjtBQUV4QixLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQWdCO0lBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUEsY0FBTyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSxxQkFBZ0IsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQy9ELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFakMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNwQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsZ0JBQU8sRUFBQyxxREFBcUQsQ0FBQyxDQUFBO1FBRW5GLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTTtLQUNwQjtJQUVELE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFBO0lBQzlCLE1BQU0sRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLEdBQUcsSUFBQSxXQUFPLEVBQUMsS0FBSyxDQUFDLENBQUE7SUFDOUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFBLGFBQVEsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFBLFdBQUksRUFBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUE7SUFDOUUsTUFBTSxJQUFBLFlBQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDdkIsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdkMsTUFBTSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQTtBQUNsRSxDQUFDO0FBakJELG9CQWlCQztBQUVELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxFQUFFLFVBQXFDLEVBQUUsR0FBVyxFQUFFLE1BQWMsRUFBRSxFQUFFO0lBQ3BHLE1BQU0sS0FBSyxHQUFHLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDakQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNkLE1BQU0sUUFBUSxHQUFHLElBQUEsY0FBTyxFQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNuQyxPQUFPLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFBLGNBQU8sRUFBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN4RCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0QsTUFBTSxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNuQyxDQUFDLENBQUE7QUFFRCxNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSxVQUFxQyxFQUFFLEdBQVcsRUFBRSxPQUFpQixFQUFFLEVBQUU7SUFDeEcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNoQixNQUFNLFVBQVUsR0FBRyxJQUFBLGNBQU8sRUFBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbEMsT0FBTyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQ3RELENBQUMsQ0FBQyxDQUNILENBQUE7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luLCByZXNvbHZlIH0gZnJvbSAncGF0aCdcblxuaW1wb3J0IHsgZ2V0QXJncyB9IGZyb20gJy4uLy4uL3V0aWxzL2FyZ3MnXG5pbXBvcnQgeyBjb25maXJtIH0gZnJvbSAnLi4vLi4vdXRpbHMvcHJvbXB0J1xuaW1wb3J0IHsgQ2xpQ29tcG9uZW50cyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnXG5pbXBvcnQgeyBpc0RpcmVjdG9yeUVtcHR5LCBkb3dubG9hZCwgZXh0cmFjdCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZzJ1xuXG5pbXBvcnQgeyBnZXQgYXMgZ2V0UmVwbyB9IGZyb20gJy4vcmVwb3MnXG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgYXJnczogdHlwZW9mIGFyZ3NcbiAgY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZmV0Y2gnIHwgJ2ZzJz5cbn1cblxuZXhwb3J0IGNvbnN0IGFyZ3MgPSBnZXRBcmdzKHtcbiAgJy0teWVzJzogQm9vbGVhbixcbiAgJy15JzogJy0teWVzJyxcbiAgJy0tZGlyJzogU3RyaW5nXG59KVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGVscCgpIHt9XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWluKG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgY29uc3QgZGlyID0gcmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBvcHRpb25zLmFyZ3NbJy0tZGlyJ10gfHwgJy4nKVxuICBjb25zdCBpc0VtcHR5ID0gYXdhaXQgaXNEaXJlY3RvcnlFbXB0eShvcHRpb25zLmNvbXBvbmVudHMsIGRpcilcbiAgY29uc3QgeWVzID0gb3B0aW9ucy5hcmdzWyctLXllcyddXG5cbiAgaWYgKCFpc0VtcHR5ICYmICF5ZXMpIHtcbiAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBjb25maXJtKCdUaGUgZm9sZGVyIHNwZWNpZmllZCBpcyBub3QgZW1wdHksIGNvbnRpbnVlIGFueXdheT8nKVxuXG4gICAgaWYgKCFhbnN3ZXIpIHJldHVyblxuICB9XG5cbiAgY29uc3Qgc2NlbmUgPSAnc2NlbmUtdGVtcGxhdGUnXG4gIGNvbnN0IHsgdXJsLCBjb250ZW50Rm9sZGVycyB9ID0gZ2V0UmVwbyhzY2VuZSlcbiAgY29uc3QgemlwID0gYXdhaXQgZG93bmxvYWQob3B0aW9ucy5jb21wb25lbnRzLCB1cmwsIGpvaW4oZGlyLCBgJHtzY2VuZX0uemlwYCkpXG4gIGF3YWl0IGV4dHJhY3QoemlwLCBkaXIpXG4gIGF3YWl0IG9wdGlvbnMuY29tcG9uZW50cy5mcy51bmxpbmsoemlwKVxuICBhd2FpdCBtb3ZlRmlsZXNGcm9tRGlycyhvcHRpb25zLmNvbXBvbmVudHMsIGRpciwgY29udGVudEZvbGRlcnMpXG59XG5cbmNvbnN0IG1vdmVGaWxlc0Zyb21EaXIgPSBhc3luYyAoY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZnMnPiwgZGlyOiBzdHJpbmcsIGZvbGRlcjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgY29tcG9uZW50cy5mcy5yZWFkZGlyKGZvbGRlcilcbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgZmlsZXMubWFwKCgkKSA9PiB7XG4gICAgICBjb25zdCBmaWxlUGF0aCA9IHJlc29sdmUoZm9sZGVyLCAkKVxuICAgICAgcmV0dXJuIGNvbXBvbmVudHMuZnMucmVuYW1lKGZpbGVQYXRoLCByZXNvbHZlKGRpciwgJCkpXG4gICAgfSlcbiAgKVxuICBhd2FpdCBjb21wb25lbnRzLmZzLnJtZGlyKGZvbGRlcilcbn1cblxuY29uc3QgbW92ZUZpbGVzRnJvbURpcnMgPSBhc3luYyAoY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZnMnPiwgZGlyOiBzdHJpbmcsIGZvbGRlcnM6IHN0cmluZ1tdKSA9PiB7XG4gIGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGZvbGRlcnMubWFwKCgkKSA9PiB7XG4gICAgICBjb25zdCBmb2xkZXJQYXRoID0gcmVzb2x2ZShkaXIsICQpXG4gICAgICByZXR1cm4gbW92ZUZpbGVzRnJvbURpcihjb21wb25lbnRzLCBkaXIsIGZvbGRlclBhdGgpXG4gICAgfSlcbiAgKVxufVxuIl19
|
@@ -6,7 +6,6 @@ import { CliComponents } from '../../components'
|
|
6
6
|
import { isDirectoryEmpty, download, extract } from '../../utils/fs'
|
7
7
|
|
8
8
|
import { get as getRepo } from './repos'
|
9
|
-
import { main as handler } from '../../utils/handler'
|
10
9
|
|
11
10
|
interface Options {
|
12
11
|
args: typeof args
|
@@ -21,7 +20,7 @@ export const args = getArgs({
|
|
21
20
|
|
22
21
|
export async function help() {}
|
23
22
|
|
24
|
-
export
|
23
|
+
export async function main(options: Options) {
|
25
24
|
const dir = resolve(process.cwd(), options.args['--dir'] || '.')
|
26
25
|
const isEmpty = await isDirectoryEmpty(options.components, dir)
|
27
26
|
const yes = options.args['--yes']
|
@@ -38,7 +37,7 @@ export const main = handler(async function main(options: Options) {
|
|
38
37
|
await extract(zip, dir)
|
39
38
|
await options.components.fs.unlink(zip)
|
40
39
|
await moveFilesFromDirs(options.components, dir, contentFolders)
|
41
|
-
}
|
40
|
+
}
|
42
41
|
|
43
42
|
const moveFilesFromDir = async (components: Pick<CliComponents, 'fs'>, dir: string, folder: string) => {
|
44
43
|
const files = await components.fs.readdir(folder)
|
@@ -1,4 +1,6 @@
|
|
1
|
+
import { Lifecycle } from '@well-known-components/interfaces';
|
1
2
|
import { CliComponents } from '../../components';
|
3
|
+
import { PreviewComponents } from './types';
|
2
4
|
export declare function help(): string;
|
3
5
|
interface Options {
|
4
6
|
args: Omit<typeof args, '_'>;
|
@@ -14,5 +16,5 @@ export declare const args: import("arg").Result<{
|
|
14
16
|
'--port': NumberConstructor;
|
15
17
|
'-p': string;
|
16
18
|
}>;
|
17
|
-
export declare
|
19
|
+
export declare function main(options: Options): Promise<Lifecycle.ComponentBasedProgram<PreviewComponents>>;
|
18
20
|
export {};
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
exports.main = exports.args = exports.help = void 0;
|
7
7
|
const path_1 = require("path");
|
8
|
+
const fp_future_1 = __importDefault(require("fp-future"));
|
8
9
|
const interfaces_1 = require("@well-known-components/interfaces");
|
9
10
|
const rooms_1 = require("@dcl/mini-comms/dist/adapters/rooms");
|
10
11
|
const env_config_provider_1 = require("@well-known-components/env-config-provider");
|
@@ -12,9 +13,7 @@ const http_server_1 = require("@well-known-components/http-server");
|
|
12
13
|
const logger_1 = require("@well-known-components/logger");
|
13
14
|
const metrics_1 = require("@well-known-components/metrics");
|
14
15
|
const ws_1 = require("./ws");
|
15
|
-
const fp_future_1 = __importDefault(require("fp-future"));
|
16
16
|
const args_1 = require("../../utils/args");
|
17
|
-
const handler_1 = require("../../utils/handler");
|
18
17
|
const project_1 = require("./project");
|
19
18
|
const port_1 = require("./port");
|
20
19
|
const eth_1 = require("./eth");
|
@@ -30,14 +29,12 @@ exports.args = (0, args_1.getArgs)({
|
|
30
29
|
'--port': Number,
|
31
30
|
'-p': '--port'
|
32
31
|
});
|
33
|
-
|
32
|
+
async function main(options) {
|
34
33
|
const dir = (0, path_1.resolve)(process.cwd(), options.args['--dir'] || '.');
|
35
34
|
await (0, project_1.validateExistingProject)(options.components, dir);
|
36
35
|
await (0, project_1.validateSceneOptions)(options.components, dir);
|
37
36
|
const port = options.args['--port'] || (await (0, port_1.previewPort)());
|
38
|
-
const
|
39
|
-
setTimeout(() => startedFuture.reject(new Error('Timed out starting the server')), 3000);
|
40
|
-
await interfaces_1.Lifecycle.run({
|
37
|
+
const program = await interfaces_1.Lifecycle.run({
|
41
38
|
async initComponents() {
|
42
39
|
const metrics = (0, metrics_1.createTestMetricsComponent)(rooms_1.roomsMetrics);
|
43
40
|
const config = (0, env_config_provider_1.createRecordConfigComponent)(Object.assign({ HTTP_SERVER_PORT: port.toString(), HTTP_SERVER_HOST: '0.0.0.0' }, process.env));
|
@@ -49,6 +46,13 @@ exports.main = (0, handler_1.main)(async function main(options) {
|
|
49
46
|
logs,
|
50
47
|
config
|
51
48
|
});
|
49
|
+
const programClosed = (0, fp_future_1.default)();
|
50
|
+
const signaler = {
|
51
|
+
programClosed,
|
52
|
+
async stop() {
|
53
|
+
programClosed.resolve();
|
54
|
+
}
|
55
|
+
};
|
52
56
|
return {
|
53
57
|
logs,
|
54
58
|
ethereumProvider: eth_1.providerInstance,
|
@@ -56,20 +60,16 @@ exports.main = (0, handler_1.main)(async function main(options) {
|
|
56
60
|
config,
|
57
61
|
metrics,
|
58
62
|
server,
|
59
|
-
ws
|
63
|
+
ws,
|
64
|
+
signaler
|
60
65
|
};
|
61
66
|
},
|
62
67
|
async main({ components, startComponents }) {
|
63
|
-
|
64
|
-
|
65
|
-
await startComponents();
|
66
|
-
startedFuture.resolve();
|
67
|
-
}
|
68
|
-
catch (err) {
|
69
|
-
startedFuture.reject(err);
|
70
|
-
}
|
68
|
+
await (0, wire_1.wire)(dir, components);
|
69
|
+
await startComponents();
|
71
70
|
}
|
72
71
|
});
|
73
|
-
return;
|
74
|
-
}
|
75
|
-
|
72
|
+
return program;
|
73
|
+
}
|
74
|
+
exports.main = main;
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBOEI7QUFDOUIsMERBQThCO0FBQzlCLGtFQUE2RTtBQUM3RSwrREFBd0Y7QUFDeEYsb0ZBQXdGO0FBQ3hGLG9FQUEwRTtBQUMxRSwwREFBeUU7QUFDekUsNERBQTJFO0FBQzNFLDZCQUF3QztBQUd4QywyQ0FBMEM7QUFFMUMsdUNBQXlFO0FBQ3pFLGlDQUFvQztBQUNwQywrQkFBd0M7QUFDeEMsaUNBQTZCO0FBRTdCLFNBQWdCLElBQUk7SUFDbEIsT0FBTyxFQUFFLENBQUE7QUFDWCxDQUFDO0FBRkQsb0JBRUM7QUFPWSxRQUFBLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQztJQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQixJQUFJLEVBQUUsU0FBUztJQUNmLE9BQU8sRUFBRSxNQUFNO0lBQ2YsUUFBUSxFQUFFLE1BQU07SUFDaEIsSUFBSSxFQUFFLFFBQVE7Q0FDZixDQUFDLENBQUE7QUFJSyxLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQWdCO0lBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUEsY0FBTyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sSUFBQSxpQ0FBdUIsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3RELE1BQU0sSUFBQSw4QkFBb0IsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBRW5ELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUEsa0JBQVcsR0FBRSxDQUFDLENBQUE7SUFFNUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxzQkFBUyxDQUFDLEdBQUcsQ0FBb0I7UUFDckQsS0FBSyxDQUFDLGNBQWM7WUFDbEIsTUFBTSxPQUFPLEdBQUcsSUFBQSxvQ0FBMEIsRUFBQyxvQkFBWSxDQUFDLENBQUE7WUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxpREFBMkIsa0JBQ3hDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDakMsZ0JBQWdCLEVBQUUsU0FBUyxJQUN4QixPQUFPLENBQUMsR0FBRyxFQUNkLENBQUE7WUFDRixNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsa0NBQXlCLEVBQUMsRUFBRSxDQUFDLENBQUE7WUFDaEQsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLHNCQUFpQixFQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUM1QyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsbUNBQXFCLEVBQW9CLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDeEcsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFBLDRCQUFvQixFQUFDO2dCQUN2QyxPQUFPO2dCQUNQLElBQUk7Z0JBQ0osTUFBTTthQUNQLENBQUMsQ0FBQTtZQUVGLE1BQU0sYUFBYSxHQUFHLElBQUEsbUJBQU0sR0FBUSxDQUFBO1lBQ3BDLE1BQU0sUUFBUSxHQUF3QztnQkFDcEQsYUFBYTtnQkFDYixLQUFLLENBQUMsSUFBSTtvQkFHUixhQUFhLENBQUMsT0FBTyxFQUFFLENBQUE7Z0JBQ3pCLENBQUM7YUFDRixDQUFBO1lBRUQsT0FBTztnQkFDTCxJQUFJO2dCQUNKLGdCQUFnQixFQUFFLHNCQUFnQjtnQkFDbEMsS0FBSztnQkFDTCxNQUFNO2dCQUNOLE9BQU87Z0JBQ1AsTUFBTTtnQkFDTixFQUFFO2dCQUNGLFFBQVE7YUFDVCxDQUFBO1FBQ0gsQ0FBQztRQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFO1lBQ3hDLE1BQU0sSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFBO1lBQzNCLE1BQU0sZUFBZSxFQUFFLENBQUE7UUFDekIsQ0FBQztLQUNGLENBQUMsQ0FBQTtJQUVGLE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUM7QUFwREQsb0JBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ3BhdGgnXG5pbXBvcnQgZnV0dXJlIGZyb20gJ2ZwLWZ1dHVyZSdcbmltcG9ydCB7IExpZmVjeWNsZSwgSUJhc2VDb21wb25lbnQgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL2ludGVyZmFjZXMnXG5pbXBvcnQgeyByb29tc01ldHJpY3MsIGNyZWF0ZVJvb21zQ29tcG9uZW50IH0gZnJvbSAnQGRjbC9taW5pLWNvbW1zL2Rpc3QvYWRhcHRlcnMvcm9vbXMnXG5pbXBvcnQgeyBjcmVhdGVSZWNvcmRDb25maWdDb21wb25lbnQgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL2Vudi1jb25maWctcHJvdmlkZXInXG5pbXBvcnQgeyBjcmVhdGVTZXJ2ZXJDb21wb25lbnQgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL2h0dHAtc2VydmVyJ1xuaW1wb3J0IHsgY3JlYXRlQ29uc29sZUxvZ0NvbXBvbmVudCB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvbG9nZ2VyJ1xuaW1wb3J0IHsgY3JlYXRlVGVzdE1ldHJpY3NDb21wb25lbnQgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL21ldHJpY3MnXG5pbXBvcnQgeyBjcmVhdGVXc0NvbXBvbmVudCB9IGZyb20gJy4vd3MnXG5cbmltcG9ydCB7IENsaUNvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJ1xuaW1wb3J0IHsgZ2V0QXJncyB9IGZyb20gJy4uLy4uL3V0aWxzL2FyZ3MnXG5pbXBvcnQgeyBJU2lnbmFsZXJDb21wb25lbnQsIFByZXZpZXdDb21wb25lbnRzIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IHZhbGlkYXRlRXhpc3RpbmdQcm9qZWN0LCB2YWxpZGF0ZVNjZW5lT3B0aW9ucyB9IGZyb20gJy4vcHJvamVjdCdcbmltcG9ydCB7IHByZXZpZXdQb3J0IH0gZnJvbSAnLi9wb3J0J1xuaW1wb3J0IHsgcHJvdmlkZXJJbnN0YW5jZSB9IGZyb20gJy4vZXRoJ1xuaW1wb3J0IHsgd2lyZSB9IGZyb20gJy4vd2lyZSdcblxuZXhwb3J0IGZ1bmN0aW9uIGhlbHAoKSB7XG4gIHJldHVybiBgYFxufVxuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIGFyZ3M6IE9taXQ8dHlwZW9mIGFyZ3MsICdfJz5cbiAgY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZmV0Y2gnIHwgJ2ZzJz5cbn1cblxuZXhwb3J0IGNvbnN0IGFyZ3MgPSBnZXRBcmdzKHtcbiAgJy0td2F0Y2gnOiBCb29sZWFuLFxuICAnLXcnOiAnLS13YXRjaCcsXG4gICctLWRpcic6IFN0cmluZyxcbiAgJy0tcG9ydCc6IE51bWJlcixcbiAgJy1wJzogJy0tcG9ydCdcbn0pXG5cbi8vIGNvcHkvcGFzdGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZGVjZW50cmFsYW5kL2NsaS9ibG9iLzMyZGU5NmJjZmM0ZWYxYzI2YzU1ODBjNzc2N2FkNmM4Y2FjM2IzNjcvc3JjL2xpYi9EZWNlbnRyYWxhbmQudHNcbi8vIFRPRE86IHJlZmFjdG9yIHRoaXMgc3R1ZmYgY29tcGxldGVseVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1haW4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBkaXIgPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIG9wdGlvbnMuYXJnc1snLS1kaXInXSB8fCAnLicpXG4gIGF3YWl0IHZhbGlkYXRlRXhpc3RpbmdQcm9qZWN0KG9wdGlvbnMuY29tcG9uZW50cywgZGlyKVxuICBhd2FpdCB2YWxpZGF0ZVNjZW5lT3B0aW9ucyhvcHRpb25zLmNvbXBvbmVudHMsIGRpcilcblxuICBjb25zdCBwb3J0ID0gb3B0aW9ucy5hcmdzWyctLXBvcnQnXSB8fCAoYXdhaXQgcHJldmlld1BvcnQoKSlcblxuICBjb25zdCBwcm9ncmFtID0gYXdhaXQgTGlmZWN5Y2xlLnJ1bjxQcmV2aWV3Q29tcG9uZW50cz4oe1xuICAgIGFzeW5jIGluaXRDb21wb25lbnRzKCkge1xuICAgICAgY29uc3QgbWV0cmljcyA9IGNyZWF0ZVRlc3RNZXRyaWNzQ29tcG9uZW50KHJvb21zTWV0cmljcylcbiAgICAgIGNvbnN0IGNvbmZpZyA9IGNyZWF0ZVJlY29yZENvbmZpZ0NvbXBvbmVudCh7XG4gICAgICAgIEhUVFBfU0VSVkVSX1BPUlQ6IHBvcnQudG9TdHJpbmcoKSxcbiAgICAgICAgSFRUUF9TRVJWRVJfSE9TVDogJzAuMC4wLjAnLFxuICAgICAgICAuLi5wcm9jZXNzLmVudlxuICAgICAgfSlcbiAgICAgIGNvbnN0IGxvZ3MgPSBhd2FpdCBjcmVhdGVDb25zb2xlTG9nQ29tcG9uZW50KHt9KVxuICAgICAgY29uc3Qgd3MgPSBhd2FpdCBjcmVhdGVXc0NvbXBvbmVudCh7IGxvZ3MgfSlcbiAgICAgIGNvbnN0IHNlcnZlciA9IGF3YWl0IGNyZWF0ZVNlcnZlckNvbXBvbmVudDxQcmV2aWV3Q29tcG9uZW50cz4oeyBjb25maWcsIGxvZ3MsIHdzOiB3cy53cyB9LCB7IGNvcnM6IHt9IH0pXG4gICAgICBjb25zdCByb29tcyA9IGF3YWl0IGNyZWF0ZVJvb21zQ29tcG9uZW50KHtcbiAgICAgICAgbWV0cmljcyxcbiAgICAgICAgbG9ncyxcbiAgICAgICAgY29uZmlnXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBwcm9ncmFtQ2xvc2VkID0gZnV0dXJlPHZvaWQ+KClcbiAgICAgIGNvbnN0IHNpZ25hbGVyOiBJQmFzZUNvbXBvbmVudCAmIElTaWduYWxlckNvbXBvbmVudCA9IHtcbiAgICAgICAgcHJvZ3JhbUNsb3NlZCxcbiAgICAgICAgYXN5bmMgc3RvcCgpIHtcbiAgICAgICAgICAvLyB0aGlzIHByb21pc2UgaXMgcmVzb2x2ZWQgdXBvbiBTSUdURVJNIG9yIFNJR0hVUFxuICAgICAgICAgIC8vIG9yIHdoZW4gcHJvZ3JhbS5zdG9wIGlzIGNhbGxlZFxuICAgICAgICAgIHByb2dyYW1DbG9zZWQucmVzb2x2ZSgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbG9ncyxcbiAgICAgICAgZXRoZXJldW1Qcm92aWRlcjogcHJvdmlkZXJJbnN0YW5jZSxcbiAgICAgICAgcm9vbXMsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgbWV0cmljcyxcbiAgICAgICAgc2VydmVyLFxuICAgICAgICB3cyxcbiAgICAgICAgc2lnbmFsZXJcbiAgICAgIH1cbiAgICB9LFxuICAgIGFzeW5jIG1haW4oeyBjb21wb25lbnRzLCBzdGFydENvbXBvbmVudHMgfSkge1xuICAgICAgYXdhaXQgd2lyZShkaXIsIGNvbXBvbmVudHMpXG4gICAgICBhd2FpdCBzdGFydENvbXBvbmVudHMoKVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gcHJvZ3JhbVxufVxuIl19
|
@@ -1,17 +1,16 @@
|
|
1
1
|
import { resolve } from 'path'
|
2
|
-
import
|
2
|
+
import future from 'fp-future'
|
3
|
+
import { Lifecycle, IBaseComponent } from '@well-known-components/interfaces'
|
3
4
|
import { roomsMetrics, createRoomsComponent } from '@dcl/mini-comms/dist/adapters/rooms'
|
4
5
|
import { createRecordConfigComponent } from '@well-known-components/env-config-provider'
|
5
6
|
import { createServerComponent } from '@well-known-components/http-server'
|
6
7
|
import { createConsoleLogComponent } from '@well-known-components/logger'
|
7
8
|
import { createTestMetricsComponent } from '@well-known-components/metrics'
|
8
9
|
import { createWsComponent } from './ws'
|
9
|
-
import future from 'fp-future'
|
10
10
|
|
11
11
|
import { CliComponents } from '../../components'
|
12
12
|
import { getArgs } from '../../utils/args'
|
13
|
-
import {
|
14
|
-
import { PreviewComponents } from './types'
|
13
|
+
import { ISignalerComponent, PreviewComponents } from './types'
|
15
14
|
import { validateExistingProject, validateSceneOptions } from './project'
|
16
15
|
import { previewPort } from './port'
|
17
16
|
import { providerInstance } from './eth'
|
@@ -36,17 +35,14 @@ export const args = getArgs({
|
|
36
35
|
|
37
36
|
// copy/paste from https://github.com/decentraland/cli/blob/32de96bcfc4ef1c26c5580c7767ad6c8cac3b367/src/lib/Decentraland.ts
|
38
37
|
// TODO: refactor this stuff completely
|
39
|
-
export
|
38
|
+
export async function main(options: Options) {
|
40
39
|
const dir = resolve(process.cwd(), options.args['--dir'] || '.')
|
41
40
|
await validateExistingProject(options.components, dir)
|
42
41
|
await validateSceneOptions(options.components, dir)
|
43
42
|
|
44
43
|
const port = options.args['--port'] || (await previewPort())
|
45
|
-
const startedFuture = future<void>()
|
46
44
|
|
47
|
-
|
48
|
-
|
49
|
-
await Lifecycle.run<PreviewComponents>({
|
45
|
+
const program = await Lifecycle.run<PreviewComponents>({
|
50
46
|
async initComponents() {
|
51
47
|
const metrics = createTestMetricsComponent(roomsMetrics)
|
52
48
|
const config = createRecordConfigComponent({
|
@@ -63,6 +59,16 @@ export const main = handler(async function main(options: Options) {
|
|
63
59
|
config
|
64
60
|
})
|
65
61
|
|
62
|
+
const programClosed = future<void>()
|
63
|
+
const signaler: IBaseComponent & ISignalerComponent = {
|
64
|
+
programClosed,
|
65
|
+
async stop() {
|
66
|
+
// this promise is resolved upon SIGTERM or SIGHUP
|
67
|
+
// or when program.stop is called
|
68
|
+
programClosed.resolve()
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
66
72
|
return {
|
67
73
|
logs,
|
68
74
|
ethereumProvider: providerInstance,
|
@@ -70,19 +76,15 @@ export const main = handler(async function main(options: Options) {
|
|
70
76
|
config,
|
71
77
|
metrics,
|
72
78
|
server,
|
73
|
-
ws
|
79
|
+
ws,
|
80
|
+
signaler
|
74
81
|
}
|
75
82
|
},
|
76
83
|
async main({ components, startComponents }) {
|
77
|
-
|
78
|
-
|
79
|
-
await startComponents()
|
80
|
-
startedFuture.resolve()
|
81
|
-
} catch (err: any) {
|
82
|
-
startedFuture.reject(err)
|
83
|
-
}
|
84
|
+
await wire(dir, components)
|
85
|
+
await startComponents()
|
84
86
|
}
|
85
87
|
})
|
86
88
|
|
87
|
-
return
|
88
|
-
}
|
89
|
+
return program
|
90
|
+
}
|
@@ -1,3 +1,3 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSUxvZ2dlckNvbXBvbmVudCxcbiAgSU1ldHJpY3NDb21wb25lbnQsXG4gIElIdHRwU2VydmVyQ29tcG9uZW50LFxuICBJQ29uZmlnQ29tcG9uZW50XG59IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvaW50ZXJmYWNlcydcbmltcG9ydCB7IEhUVFBQcm92aWRlciB9IGZyb20gJ2V0aC1jb25uZWN0J1xuaW1wb3J0IHsgUm9vbUNvbXBvbmVudCB9IGZyb20gJ0BkY2wvbWluaS1jb21tcy9kaXN0L2FkYXB0ZXJzL3Jvb21zJ1xuaW1wb3J0IHsgV2ViU29ja2V0Q29tcG9uZW50IH0gZnJvbSAnLi93cydcblxuZXhwb3J0IHR5cGUgUHJldmlld0NvbXBvbmVudHMgPSB7XG4gIGxvZ3M6IElMb2dnZXJDb21wb25lbnRcbiAgc2VydmVyOiBJSHR0cFNlcnZlckNvbXBvbmVudDxQcmV2aWV3Q29tcG9uZW50cz5cbiAgY29uZmlnOiBJQ29uZmlnQ29tcG9uZW50XG4gIG1ldHJpY3M6IElNZXRyaWNzQ29tcG9uZW50PGFueT5cbiAgZXRoZXJldW1Qcm92aWRlcjogSFRUUFByb3ZpZGVyXG4gIHJvb21zOiBSb29tQ29tcG9uZW50XG4gIHdzOiBXZWJTb2NrZXRDb21wb25lbnRcbiAgc2lnbmFsZXI6IElTaWduYWxlckNvbXBvbmVudFxufVxuXG5leHBvcnQgdHlwZSBJU2lnbmFsZXJDb21wb25lbnQgPSB7XG4gIC8vIHByb2dyYW1DbG9zZWQgcmVzb2x2ZXMgd2hlbiB0aGUgY29tcG9uZW50IGlzIHN0b3BwZWRcbiAgcHJvZ3JhbUNsb3NlZDogUHJvbWlzZTx2b2lkPlxufVxuIl19
|