@dcl/sdk 7.0.6-4086929545.commit-0292186 → 7.0.6-4087611163.commit-4735f5b

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.
@@ -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 const buildTypescript: ({ dir, watch, production }: {
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.buildTypescript = exports.installDependencies = exports.npm = exports.needsDependencies = exports.validatePackageJson = exports.validateProjectStructure = exports.getProjectStructure = exports.REQUIRED_PACKAGE_JSON = exports.REQUIRED_FILES = void 0;
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
- await (0, exec_1.exec)(dir, `${exports.npm} install`);
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
- const buildTypescript = async ({ dir, watch, production }) => {
44
- const command = watch ? 'watch' : 'build';
45
- await (0, exec_1.exec)(dir, `${exports.npm} run ${command}`, {
46
- env: { NODE_ENV: production ? 'production' : '' }
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
- await exec(dir, `${npm} install`)
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
- * Build's Typescript using "tsconfig.json" file
84
+ * Run NPM commands
81
85
  */
82
- export const buildTypescript = async ({
83
- dir,
84
- watch,
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 const main: (args: Options) => Promise<void>;
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
- exports.main = (0, handler_1.main)(async function main(options) {
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
- (0, log_1.succeed)('Dependencies installed');
57
- await (0, helpers_1.buildTypescript)({
58
- dir,
59
- watch: !!options.args['--watch'],
60
- production: !!options.args['--production']
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
- (0, log_1.succeed)('Project built successfully!');
63
- });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBOEI7QUFHOUIsMkRBQXVEO0FBQ3ZELHlDQUF5QztBQUN6QywyQ0FBMEM7QUFDMUMsNkNBQTRDO0FBQzVDLHVDQVFrQjtBQUNsQixpREFBcUQ7QUFDckQscUNBQThCO0FBT2pCLFFBQUEsSUFBSSxHQUFHLElBQUEsY0FBTyxFQUFDO0lBQzFCLFNBQVMsRUFBRSxPQUFPO0lBQ2xCLElBQUksRUFBRSxTQUFTO0lBQ2YsY0FBYyxFQUFFLE9BQU87SUFDdkIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsZ0JBQWdCLEVBQUUsT0FBTztJQUN6QixPQUFPLEVBQUUsTUFBTTtDQUNoQixDQUFDLENBQUE7QUFFRixTQUFnQixJQUFJO0lBQ2xCLE9BQU87Ozs7Ozs7Ozs7OztHQVlOLENBQUE7QUFDSCxDQUFDO0FBZEQsb0JBY0M7QUFFWSxRQUFBLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQyxLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQWdCO0lBQzlELE1BQU0sR0FBRyxHQUFHLElBQUEsY0FBTyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSw2QkFBbUIsR0FBRSxDQUFBO0lBRTlDLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxJQUFBLGtDQUF3QixFQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixDQUFDLENBQUE7SUFFMUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1FBQzdCLE1BQU0sSUFBSSxnQkFBUSxDQUFDO1FBQ2YsSUFBQSwyQkFBWSxFQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFBO0tBQ3RDO0lBRUQsSUFBQSxhQUFPLEVBQUMsK0JBQStCLENBQUMsQ0FBQTtJQUV4QyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBQSw2QkFBbUIsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSwrQkFBcUIsQ0FBQyxDQUFBO0lBRXJHLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtRQUN4QixNQUFNLElBQUksZ0JBQVEsQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsK0JBQXFCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtLQUN0RDtJQUVELElBQUEsYUFBTyxFQUFDLG9DQUFvQyxDQUFDLENBQUE7SUFFN0MsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsMkJBQWlCLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUUxRSxJQUFJLGlCQUFpQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ3hELElBQUEsY0FBSSxFQUFDLDRCQUE0QixDQUFDLENBQUE7UUFDbEMsTUFBTSxJQUFBLDZCQUFtQixFQUFDLEdBQUcsQ0FBQyxDQUFBO0tBQy9CO0lBRUQsSUFBQSxhQUFPLEVBQUMsd0JBQXdCLENBQUMsQ0FBQTtJQUVqQyxNQUFNLElBQUEseUJBQWUsRUFBQztRQUNwQixHQUFHO1FBQ0gsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO0tBQzNDLENBQUMsQ0FBQTtJQUVGLElBQUEsYUFBTyxFQUFDLDZCQUE2QixDQUFDLENBQUE7QUFJeEMsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAncGF0aCdcblxuaW1wb3J0IHsgQ2xpQ29tcG9uZW50cyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnXG5pbXBvcnQgeyB0b1N0cmluZ0xpc3QgfSBmcm9tICcuLi8uLi91dGlscy9vdXQtbWVzc2FnZXMnXG5pbXBvcnQgeyBzdWNjZWVkIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9nJ1xuaW1wb3J0IHsgZ2V0QXJncyB9IGZyb20gJy4uLy4uL3V0aWxzL2FyZ3MnXG5pbXBvcnQgeyBDbGlFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL2Vycm9yJ1xuaW1wb3J0IHtcbiAgZ2V0UHJvamVjdFN0cnVjdHVyZSxcbiAgYnVpbGRUeXBlc2NyaXB0LFxuICBpbnN0YWxsRGVwZW5kZW5jaWVzLFxuICBuZWVkc0RlcGVuZGVuY2llcyxcbiAgdmFsaWRhdGVQcm9qZWN0U3RydWN0dXJlLFxuICB2YWxpZGF0ZVBhY2thZ2VKc29uLFxuICBSRVFVSVJFRF9QQUNLQUdFX0pTT05cbn0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHsgbWFpbiBhcyBoYW5kbGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvaGFuZGxlcidcbmltcG9ydCB7IGluZm8gfSBmcm9tICdjb25zb2xlJ1xuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIGFyZ3M6IE9taXQ8dHlwZW9mIGFyZ3MsICdfJz5cbiAgY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZnMnPlxufVxuXG5leHBvcnQgY29uc3QgYXJncyA9IGdldEFyZ3Moe1xuICAnLS13YXRjaCc6IEJvb2xlYW4sXG4gICctdyc6ICctLXdhdGNoJyxcbiAgJy0tcHJvZHVjdGlvbic6IEJvb2xlYW4sXG4gICctcCc6ICctLXByb2R1Y3Rpb24nLFxuICAnLS1za2lwLWluc3RhbGwnOiBCb29sZWFuLFxuICAnLS1kaXInOiBTdHJpbmdcbn0pXG5cbmV4cG9ydCBmdW5jdGlvbiBoZWxwKCkge1xuICByZXR1cm4gYFxuICBVc2FnZTogJ2RjbCBidWlsZCBbb3B0aW9uc10nXG4gICAgT3B0aW9uczonXG4gICAgICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgIERpc3BsYXlzIGNvbXBsZXRlIGhlbHBcbiAgICAgIC13LCAtLXdhdGNoICAgICAgICAgICAgICAgV2F0Y2ggZm9yIGZpbGUgY2hhbmdlcyBhbmQgYnVpbGQgb24gY2hhbmdlXG4gICAgICAtcCwgLS1wcm9kdWN0aW9uICAgICAgICAgIEJ1aWxkIHdpdGhvdXQgc291cmNlbWFwc1xuICAgICAgLS1za2lwLWluc3RhbGwgICAgICAgICAgICBTa2lwIGluc3RhbGxpbmcgZGVwZW5kZW5jaWVzXG4gICAgICAtLWRpciAgICAgICAgICAgICAgICAgICAgIFBhdGggdG8gZGlyZWN0b3J5IHRvIGJ1aWxkXG5cbiAgICBFeGFtcGxlOlxuICAgIC0gQnVpbGQgeW91ciBzY2VuZTpcbiAgICAgICckIGRjbCBidWlsZCdcbiAgYFxufVxuXG5leHBvcnQgY29uc3QgbWFpbiA9IGhhbmRsZXIoYXN5bmMgZnVuY3Rpb24gbWFpbihvcHRpb25zOiBPcHRpb25zKSB7XG4gIGNvbnN0IGRpciA9IHJlc29sdmUocHJvY2Vzcy5jd2QoKSwgb3B0aW9ucy5hcmdzWyctLWRpciddIHx8ICcuJylcbiAgY29uc3QgcHJvamVjdFN0cnVjdHVyZSA9IGdldFByb2plY3RTdHJ1Y3R1cmUoKVxuXG4gIGNvbnN0IGhhc1ZhbGlkUHJvamVjdFN0cnVjdHVyZSA9IGF3YWl0IHZhbGlkYXRlUHJvamVjdFN0cnVjdHVyZShvcHRpb25zLmNvbXBvbmVudHMsIGRpciwgcHJvamVjdFN0cnVjdHVyZSlcblxuICBpZiAoIWhhc1ZhbGlkUHJvamVjdFN0cnVjdHVyZSkge1xuICAgIHRocm93IG5ldyBDbGlFcnJvcihgSW52YWxpZCBzY2VuZSBzdHJ1Y3R1cmUgZm91bmQuIFJlcXVpcmVkIGZpbGVzOlxuICAgICAgJHt0b1N0cmluZ0xpc3QocHJvamVjdFN0cnVjdHVyZSl9YClcbiAgfVxuXG4gIHN1Y2NlZWQoJ1Byb2plY3QgaGFzIGEgdmFsaWQgc3RydWN0dXJlJylcblxuICBjb25zdCBoYXNWYWxpZFBhY2thZ2VKc29uID0gYXdhaXQgdmFsaWRhdGVQYWNrYWdlSnNvbihvcHRpb25zLmNvbXBvbmVudHMsIGRpciwgUkVRVUlSRURfUEFDS0FHRV9KU09OKVxuXG4gIGlmICghaGFzVmFsaWRQYWNrYWdlSnNvbikge1xuICAgIHRocm93IG5ldyBDbGlFcnJvcihgSW52YWxpZCBcInBhY2thZ2UuanNvblwiIGZpbGUuIFN0cnVjdHVyZSByZXF1aXJlZDpcbiAgICAgICR7SlNPTi5zdHJpbmdpZnkoUkVRVUlSRURfUEFDS0FHRV9KU09OLCBudWxsLCAyKX1gKVxuICB9XG5cbiAgc3VjY2VlZCgnUHJvamVjdCBoYXMgYSB2YWxpZCBcInBhY2thZ2UuanNvblwiJylcblxuICBjb25zdCBzaG91bGRJbnN0YWxsRGVwcyA9IGF3YWl0IG5lZWRzRGVwZW5kZW5jaWVzKG9wdGlvbnMuY29tcG9uZW50cywgZGlyKVxuXG4gIGlmIChzaG91bGRJbnN0YWxsRGVwcyAmJiAhb3B0aW9ucy5hcmdzWyctLXNraXAtaW5zdGFsbCddKSB7XG4gICAgaW5mbygnSW5zdGFsbGluZyBkZXBlbmRlbmNpZXMuLi4nKVxuICAgIGF3YWl0IGluc3RhbGxEZXBlbmRlbmNpZXMoZGlyKVxuICB9XG5cbiAgc3VjY2VlZCgnRGVwZW5kZW5jaWVzIGluc3RhbGxlZCcpXG5cbiAgYXdhaXQgYnVpbGRUeXBlc2NyaXB0KHtcbiAgICBkaXIsXG4gICAgd2F0Y2g6ICEhb3B0aW9ucy5hcmdzWyctLXdhdGNoJ10sXG4gICAgcHJvZHVjdGlvbjogISFvcHRpb25zLmFyZ3NbJy0tcHJvZHVjdGlvbiddXG4gIH0pXG5cbiAgc3VjY2VlZCgnUHJvamVjdCBidWlsdCBzdWNjZXNzZnVsbHkhJylcblxuICAvLyB0cmFjayBzdHVmZi4uLlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZGVjZW50cmFsYW5kL2NsaS9ibG9iL21haW4vc3JjL2NvbW1hbmRzL2J1aWxkLnRzXG59KVxuIl19
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 const main = handler(async function main(options: Options) {
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
- succeed('Dependencies installed')
72
+ const watch = !!options.args['--watch']
80
73
 
81
- await buildTypescript({
82
- dir,
83
- watch: !!options.args['--watch'],
84
- production: !!options.args['--production']
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
- succeed('Project built successfully!')
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 const main: (args: Options) => Promise<void>;
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
- exports.main = (0, handler_1.main)(async function main(options) {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBb0M7QUFFcEMsMkNBQTBDO0FBQzFDLCtDQUE0QztBQUU1Qyx1Q0FBb0U7QUFFcEUsbUNBQXdDO0FBQ3hDLGlEQUFxRDtBQU94QyxRQUFBLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQztJQUMxQixPQUFPLEVBQUUsT0FBTztJQUNoQixJQUFJLEVBQUUsT0FBTztJQUNiLE9BQU8sRUFBRSxNQUFNO0NBQ2hCLENBQUMsQ0FBQTtBQUVLLEtBQUssVUFBVSxJQUFJLEtBQUksQ0FBQztBQUEvQixvQkFBK0I7QUFFbEIsUUFBQSxJQUFJLEdBQUcsSUFBQSxjQUFPLEVBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxPQUFnQjtJQUM5RCxNQUFNLEdBQUcsR0FBRyxJQUFBLGNBQU8sRUFBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtJQUNoRSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUEscUJBQWdCLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUMvRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRWpDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDcEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLGdCQUFPLEVBQUMscURBQXFELENBQUMsQ0FBQTtRQUVuRixJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU07S0FDcEI7SUFFRCxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQTtJQUM5QixNQUFNLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUEsV0FBTyxFQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBQSxhQUFRLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sSUFBQSxZQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZCLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZDLE1BQU0saUJBQWlCLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUE7QUFDbEUsQ0FBQyxDQUFDLENBQUE7QUFFRixNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFBRSxVQUFxQyxFQUFFLEdBQVcsRUFBRSxNQUFjLEVBQUUsRUFBRTtJQUNwRyxNQUFNLEtBQUssR0FBRyxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2pELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDZCxNQUFNLFFBQVEsR0FBRyxJQUFBLGNBQU8sRUFBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbkMsT0FBTyxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBQSxjQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNELE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUFBO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUsVUFBcUMsRUFBRSxHQUFXLEVBQUUsT0FBaUIsRUFBRSxFQUFFO0lBQ3hHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDaEIsTUFBTSxVQUFVLEdBQUcsSUFBQSxjQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ2xDLE9BQU8sZ0JBQWdCLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUN0RCxDQUFDLENBQUMsQ0FDSCxDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiwgcmVzb2x2ZSB9IGZyb20gJ3BhdGgnXG5cbmltcG9ydCB7IGdldEFyZ3MgfSBmcm9tICcuLi8uLi91dGlscy9hcmdzJ1xuaW1wb3J0IHsgY29uZmlybSB9IGZyb20gJy4uLy4uL3V0aWxzL3Byb21wdCdcbmltcG9ydCB7IENsaUNvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJ1xuaW1wb3J0IHsgaXNEaXJlY3RvcnlFbXB0eSwgZG93bmxvYWQsIGV4dHJhY3QgfSBmcm9tICcuLi8uLi91dGlscy9mcydcblxuaW1wb3J0IHsgZ2V0IGFzIGdldFJlcG8gfSBmcm9tICcuL3JlcG9zJ1xuaW1wb3J0IHsgbWFpbiBhcyBoYW5kbGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvaGFuZGxlcidcblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICBhcmdzOiB0eXBlb2YgYXJnc1xuICBjb21wb25lbnRzOiBQaWNrPENsaUNvbXBvbmVudHMsICdmZXRjaCcgfCAnZnMnPlxufVxuXG5leHBvcnQgY29uc3QgYXJncyA9IGdldEFyZ3Moe1xuICAnLS15ZXMnOiBCb29sZWFuLFxuICAnLXknOiAnLS15ZXMnLFxuICAnLS1kaXInOiBTdHJpbmdcbn0pXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoZWxwKCkge31cblxuZXhwb3J0IGNvbnN0IG1haW4gPSBoYW5kbGVyKGFzeW5jIGZ1bmN0aW9uIG1haW4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBkaXIgPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIG9wdGlvbnMuYXJnc1snLS1kaXInXSB8fCAnLicpXG4gIGNvbnN0IGlzRW1wdHkgPSBhd2FpdCBpc0RpcmVjdG9yeUVtcHR5KG9wdGlvbnMuY29tcG9uZW50cywgZGlyKVxuICBjb25zdCB5ZXMgPSBvcHRpb25zLmFyZ3NbJy0teWVzJ11cblxuICBpZiAoIWlzRW1wdHkgJiYgIXllcykge1xuICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGNvbmZpcm0oJ1RoZSBmb2xkZXIgc3BlY2lmaWVkIGlzIG5vdCBlbXB0eSwgY29udGludWUgYW55d2F5PycpXG5cbiAgICBpZiAoIWFuc3dlcikgcmV0dXJuXG4gIH1cblxuICBjb25zdCBzY2VuZSA9ICdzY2VuZS10ZW1wbGF0ZSdcbiAgY29uc3QgeyB1cmwsIGNvbnRlbnRGb2xkZXJzIH0gPSBnZXRSZXBvKHNjZW5lKVxuICBjb25zdCB6aXAgPSBhd2FpdCBkb3dubG9hZChvcHRpb25zLmNvbXBvbmVudHMsIHVybCwgam9pbihkaXIsIGAke3NjZW5lfS56aXBgKSlcbiAgYXdhaXQgZXh0cmFjdCh6aXAsIGRpcilcbiAgYXdhaXQgb3B0aW9ucy5jb21wb25lbnRzLmZzLnVubGluayh6aXApXG4gIGF3YWl0IG1vdmVGaWxlc0Zyb21EaXJzKG9wdGlvbnMuY29tcG9uZW50cywgZGlyLCBjb250ZW50Rm9sZGVycylcbn0pXG5cbmNvbnN0IG1vdmVGaWxlc0Zyb21EaXIgPSBhc3luYyAoY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZnMnPiwgZGlyOiBzdHJpbmcsIGZvbGRlcjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgY29tcG9uZW50cy5mcy5yZWFkZGlyKGZvbGRlcilcbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgZmlsZXMubWFwKCgkKSA9PiB7XG4gICAgICBjb25zdCBmaWxlUGF0aCA9IHJlc29sdmUoZm9sZGVyLCAkKVxuICAgICAgcmV0dXJuIGNvbXBvbmVudHMuZnMucmVuYW1lKGZpbGVQYXRoLCByZXNvbHZlKGRpciwgJCkpXG4gICAgfSlcbiAgKVxuICBhd2FpdCBjb21wb25lbnRzLmZzLnJtZGlyKGZvbGRlcilcbn1cblxuY29uc3QgbW92ZUZpbGVzRnJvbURpcnMgPSBhc3luYyAoY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZnMnPiwgZGlyOiBzdHJpbmcsIGZvbGRlcnM6IHN0cmluZ1tdKSA9PiB7XG4gIGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGZvbGRlcnMubWFwKCgkKSA9PiB7XG4gICAgICBjb25zdCBmb2xkZXJQYXRoID0gcmVzb2x2ZShkaXIsICQpXG4gICAgICByZXR1cm4gbW92ZUZpbGVzRnJvbURpcihjb21wb25lbnRzLCBkaXIsIGZvbGRlclBhdGgpXG4gICAgfSlcbiAgKVxufVxuIl19
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 const main = handler(async function main(options: Options) {
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)
@@ -14,5 +14,5 @@ export declare const args: import("arg").Result<{
14
14
  '--port': NumberConstructor;
15
15
  '-p': string;
16
16
  }>;
17
- export declare const main: (args: Options) => Promise<void>;
17
+ export declare function main(options: Options): Promise<void>;
18
18
  export {};
@@ -14,7 +14,6 @@ const metrics_1 = require("@well-known-components/metrics");
14
14
  const ws_1 = require("./ws");
15
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,7 +29,7 @@ exports.args = (0, args_1.getArgs)({
30
29
  '--port': Number,
31
30
  '-p': '--port'
32
31
  });
33
- exports.main = (0, handler_1.main)(async function main(options) {
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);
@@ -70,6 +69,8 @@ exports.main = (0, handler_1.main)(async function main(options) {
70
69
  }
71
70
  }
72
71
  });
72
+ await startedFuture;
73
73
  return;
74
- });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBOEI7QUFDOUIsa0VBQTZEO0FBQzdELCtEQUF3RjtBQUN4RixvRkFBd0Y7QUFDeEYsb0VBQTBFO0FBQzFFLDBEQUF5RTtBQUN6RSw0REFBMkU7QUFDM0UsNkJBQXdDO0FBQ3hDLDBEQUE4QjtBQUc5QiwyQ0FBMEM7QUFDMUMsaURBQXFEO0FBRXJELHVDQUF5RTtBQUN6RSxpQ0FBb0M7QUFDcEMsK0JBQXdDO0FBQ3hDLGlDQUE2QjtBQUU3QixTQUFnQixJQUFJO0lBQ2xCLE9BQU8sRUFBRSxDQUFBO0FBQ1gsQ0FBQztBQUZELG9CQUVDO0FBT1ksUUFBQSxJQUFJLEdBQUcsSUFBQSxjQUFPLEVBQUM7SUFDMUIsU0FBUyxFQUFFLE9BQU87SUFDbEIsSUFBSSxFQUFFLFNBQVM7SUFDZixPQUFPLEVBQUUsTUFBTTtJQUNmLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLElBQUksRUFBRSxRQUFRO0NBQ2YsQ0FBQyxDQUFBO0FBSVcsUUFBQSxJQUFJLEdBQUcsSUFBQSxjQUFPLEVBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxPQUFnQjtJQUM5RCxNQUFNLEdBQUcsR0FBRyxJQUFBLGNBQU8sRUFBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtJQUNoRSxNQUFNLElBQUEsaUNBQXVCLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUN0RCxNQUFNLElBQUEsOEJBQW9CLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUVuRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFBLGtCQUFXLEdBQUUsQ0FBQyxDQUFBO0lBQzVELE1BQU0sYUFBYSxHQUFHLElBQUEsbUJBQU0sR0FBUSxDQUFBO0lBRXBDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUV4RixNQUFNLHNCQUFTLENBQUMsR0FBRyxDQUFvQjtRQUNyQyxLQUFLLENBQUMsY0FBYztZQUNsQixNQUFNLE9BQU8sR0FBRyxJQUFBLG9DQUEwQixFQUFDLG9CQUFZLENBQUMsQ0FBQTtZQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFBLGlEQUEyQixrQkFDeEMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUNqQyxnQkFBZ0IsRUFBRSxTQUFTLElBQ3hCLE9BQU8sQ0FBQyxHQUFHLEVBQ2QsQ0FBQTtZQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxrQ0FBeUIsRUFBQyxFQUFFLENBQUMsQ0FBQTtZQUNoRCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsc0JBQWlCLEVBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQzVDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxtQ0FBcUIsRUFBb0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtZQUN4RyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUEsNEJBQW9CLEVBQUM7Z0JBQ3ZDLE9BQU87Z0JBQ1AsSUFBSTtnQkFDSixNQUFNO2FBQ1AsQ0FBQyxDQUFBO1lBRUYsT0FBTztnQkFDTCxJQUFJO2dCQUNKLGdCQUFnQixFQUFFLHNCQUFnQjtnQkFDbEMsS0FBSztnQkFDTCxNQUFNO2dCQUNOLE9BQU87Z0JBQ1AsTUFBTTtnQkFDTixFQUFFO2FBQ0gsQ0FBQTtRQUNILENBQUM7UUFDRCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRTtZQUN4QyxJQUFJO2dCQUNGLE1BQU0sSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO2dCQUN0RCxNQUFNLGVBQWUsRUFBRSxDQUFBO2dCQUN2QixhQUFhLENBQUMsT0FBTyxFQUFFLENBQUE7YUFDeEI7WUFBQyxPQUFPLEdBQVEsRUFBRTtnQkFDakIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUMxQjtRQUNILENBQUM7S0FDRixDQUFDLENBQUE7SUFFRixPQUFNO0FBQ1IsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAncGF0aCdcbmltcG9ydCB7IExpZmVjeWNsZSB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvaW50ZXJmYWNlcydcbmltcG9ydCB7IHJvb21zTWV0cmljcywgY3JlYXRlUm9vbXNDb21wb25lbnQgfSBmcm9tICdAZGNsL21pbmktY29tbXMvZGlzdC9hZGFwdGVycy9yb29tcydcbmltcG9ydCB7IGNyZWF0ZVJlY29yZENvbmZpZ0NvbXBvbmVudCB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvZW52LWNvbmZpZy1wcm92aWRlcidcbmltcG9ydCB7IGNyZWF0ZVNlcnZlckNvbXBvbmVudCB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvaHR0cC1zZXJ2ZXInXG5pbXBvcnQgeyBjcmVhdGVDb25zb2xlTG9nQ29tcG9uZW50IH0gZnJvbSAnQHdlbGwta25vd24tY29tcG9uZW50cy9sb2dnZXInXG5pbXBvcnQgeyBjcmVhdGVUZXN0TWV0cmljc0NvbXBvbmVudCB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvbWV0cmljcydcbmltcG9ydCB7IGNyZWF0ZVdzQ29tcG9uZW50IH0gZnJvbSAnLi93cydcbmltcG9ydCBmdXR1cmUgZnJvbSAnZnAtZnV0dXJlJ1xuXG5pbXBvcnQgeyBDbGlDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cydcbmltcG9ydCB7IGdldEFyZ3MgfSBmcm9tICcuLi8uLi91dGlscy9hcmdzJ1xuaW1wb3J0IHsgbWFpbiBhcyBoYW5kbGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvaGFuZGxlcidcbmltcG9ydCB7IFByZXZpZXdDb21wb25lbnRzIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IHZhbGlkYXRlRXhpc3RpbmdQcm9qZWN0LCB2YWxpZGF0ZVNjZW5lT3B0aW9ucyB9IGZyb20gJy4vcHJvamVjdCdcbmltcG9ydCB7IHByZXZpZXdQb3J0IH0gZnJvbSAnLi9wb3J0J1xuaW1wb3J0IHsgcHJvdmlkZXJJbnN0YW5jZSB9IGZyb20gJy4vZXRoJ1xuaW1wb3J0IHsgd2lyZSB9IGZyb20gJy4vd2lyZSdcblxuZXhwb3J0IGZ1bmN0aW9uIGhlbHAoKSB7XG4gIHJldHVybiBgYFxufVxuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIGFyZ3M6IE9taXQ8dHlwZW9mIGFyZ3MsICdfJz5cbiAgY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZmV0Y2gnIHwgJ2ZzJz5cbn1cblxuZXhwb3J0IGNvbnN0IGFyZ3MgPSBnZXRBcmdzKHtcbiAgJy0td2F0Y2gnOiBCb29sZWFuLFxuICAnLXcnOiAnLS13YXRjaCcsXG4gICctLWRpcic6IFN0cmluZyxcbiAgJy0tcG9ydCc6IE51bWJlcixcbiAgJy1wJzogJy0tcG9ydCdcbn0pXG5cbi8vIGNvcHkvcGFzdGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZGVjZW50cmFsYW5kL2NsaS9ibG9iLzMyZGU5NmJjZmM0ZWYxYzI2YzU1ODBjNzc2N2FkNmM4Y2FjM2IzNjcvc3JjL2xpYi9EZWNlbnRyYWxhbmQudHNcbi8vIFRPRE86IHJlZmFjdG9yIHRoaXMgc3R1ZmYgY29tcGxldGVseVxuZXhwb3J0IGNvbnN0IG1haW4gPSBoYW5kbGVyKGFzeW5jIGZ1bmN0aW9uIG1haW4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBkaXIgPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIG9wdGlvbnMuYXJnc1snLS1kaXInXSB8fCAnLicpXG4gIGF3YWl0IHZhbGlkYXRlRXhpc3RpbmdQcm9qZWN0KG9wdGlvbnMuY29tcG9uZW50cywgZGlyKVxuICBhd2FpdCB2YWxpZGF0ZVNjZW5lT3B0aW9ucyhvcHRpb25zLmNvbXBvbmVudHMsIGRpcilcblxuICBjb25zdCBwb3J0ID0gb3B0aW9ucy5hcmdzWyctLXBvcnQnXSB8fCAoYXdhaXQgcHJldmlld1BvcnQoKSlcbiAgY29uc3Qgc3RhcnRlZEZ1dHVyZSA9IGZ1dHVyZTx2b2lkPigpXG5cbiAgc2V0VGltZW91dCgoKSA9PiBzdGFydGVkRnV0dXJlLnJlamVjdChuZXcgRXJyb3IoJ1RpbWVkIG91dCBzdGFydGluZyB0aGUgc2VydmVyJykpLCAzMDAwKVxuXG4gIGF3YWl0IExpZmVjeWNsZS5ydW48UHJldmlld0NvbXBvbmVudHM+KHtcbiAgICBhc3luYyBpbml0Q29tcG9uZW50cygpIHtcbiAgICAgIGNvbnN0IG1ldHJpY3MgPSBjcmVhdGVUZXN0TWV0cmljc0NvbXBvbmVudChyb29tc01ldHJpY3MpXG4gICAgICBjb25zdCBjb25maWcgPSBjcmVhdGVSZWNvcmRDb25maWdDb21wb25lbnQoe1xuICAgICAgICBIVFRQX1NFUlZFUl9QT1JUOiBwb3J0LnRvU3RyaW5nKCksXG4gICAgICAgIEhUVFBfU0VSVkVSX0hPU1Q6ICcwLjAuMC4wJyxcbiAgICAgICAgLi4ucHJvY2Vzcy5lbnZcbiAgICAgIH0pXG4gICAgICBjb25zdCBsb2dzID0gYXdhaXQgY3JlYXRlQ29uc29sZUxvZ0NvbXBvbmVudCh7fSlcbiAgICAgIGNvbnN0IHdzID0gYXdhaXQgY3JlYXRlV3NDb21wb25lbnQoeyBsb2dzIH0pXG4gICAgICBjb25zdCBzZXJ2ZXIgPSBhd2FpdCBjcmVhdGVTZXJ2ZXJDb21wb25lbnQ8UHJldmlld0NvbXBvbmVudHM+KHsgY29uZmlnLCBsb2dzLCB3czogd3Mud3MgfSwgeyBjb3JzOiB7fSB9KVxuICAgICAgY29uc3Qgcm9vbXMgPSBhd2FpdCBjcmVhdGVSb29tc0NvbXBvbmVudCh7XG4gICAgICAgIG1ldHJpY3MsXG4gICAgICAgIGxvZ3MsXG4gICAgICAgIGNvbmZpZ1xuICAgICAgfSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbG9ncyxcbiAgICAgICAgZXRoZXJldW1Qcm92aWRlcjogcHJvdmlkZXJJbnN0YW5jZSxcbiAgICAgICAgcm9vbXMsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgbWV0cmljcyxcbiAgICAgICAgc2VydmVyLFxuICAgICAgICB3c1xuICAgICAgfVxuICAgIH0sXG4gICAgYXN5bmMgbWFpbih7IGNvbXBvbmVudHMsIHN0YXJ0Q29tcG9uZW50cyB9KSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB3aXJlKGRpciwgY29tcG9uZW50cywgISFvcHRpb25zLmFyZ3NbJy0td2F0Y2gnXSlcbiAgICAgICAgYXdhaXQgc3RhcnRDb21wb25lbnRzKClcbiAgICAgICAgc3RhcnRlZEZ1dHVyZS5yZXNvbHZlKClcbiAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgIHN0YXJ0ZWRGdXR1cmUucmVqZWN0KGVycilcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuXG59KVxuIl19
74
+ }
75
+ exports.main = main;
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBOEI7QUFDOUIsa0VBQTZEO0FBQzdELCtEQUF3RjtBQUN4RixvRkFBd0Y7QUFDeEYsb0VBQTBFO0FBQzFFLDBEQUF5RTtBQUN6RSw0REFBMkU7QUFDM0UsNkJBQXdDO0FBQ3hDLDBEQUE4QjtBQUc5QiwyQ0FBMEM7QUFFMUMsdUNBQXlFO0FBQ3pFLGlDQUFvQztBQUNwQywrQkFBd0M7QUFDeEMsaUNBQTZCO0FBRTdCLFNBQWdCLElBQUk7SUFDbEIsT0FBTyxFQUFFLENBQUE7QUFDWCxDQUFDO0FBRkQsb0JBRUM7QUFPWSxRQUFBLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQztJQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQixJQUFJLEVBQUUsU0FBUztJQUNmLE9BQU8sRUFBRSxNQUFNO0lBQ2YsUUFBUSxFQUFFLE1BQU07SUFDaEIsSUFBSSxFQUFFLFFBQVE7Q0FDZixDQUFDLENBQUE7QUFJSyxLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQWdCO0lBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUEsY0FBTyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sSUFBQSxpQ0FBdUIsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3RELE1BQU0sSUFBQSw4QkFBb0IsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBRW5ELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUEsa0JBQVcsR0FBRSxDQUFDLENBQUE7SUFDNUQsTUFBTSxhQUFhLEdBQUcsSUFBQSxtQkFBTSxHQUFRLENBQUE7SUFFcEMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBRXhGLE1BQU0sc0JBQVMsQ0FBQyxHQUFHLENBQW9CO1FBQ3JDLEtBQUssQ0FBQyxjQUFjO1lBQ2xCLE1BQU0sT0FBTyxHQUFHLElBQUEsb0NBQTBCLEVBQUMsb0JBQVksQ0FBQyxDQUFBO1lBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUEsaURBQTJCLGtCQUN4QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQ2pDLGdCQUFnQixFQUFFLFNBQVMsSUFDeEIsT0FBTyxDQUFDLEdBQUcsRUFDZCxDQUFBO1lBQ0YsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLGtDQUF5QixFQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ2hELE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSxzQkFBaUIsRUFBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7WUFDNUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLG1DQUFxQixFQUFvQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBQ3hHLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBQSw0QkFBb0IsRUFBQztnQkFDdkMsT0FBTztnQkFDUCxJQUFJO2dCQUNKLE1BQU07YUFDUCxDQUFDLENBQUE7WUFFRixPQUFPO2dCQUNMLElBQUk7Z0JBQ0osZ0JBQWdCLEVBQUUsc0JBQWdCO2dCQUNsQyxLQUFLO2dCQUNMLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxNQUFNO2dCQUNOLEVBQUU7YUFDSCxDQUFBO1FBQ0gsQ0FBQztRQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFO1lBQ3hDLElBQUk7Z0JBQ0YsTUFBTSxJQUFBLFdBQUksRUFBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7Z0JBQ3RELE1BQU0sZUFBZSxFQUFFLENBQUE7Z0JBQ3ZCLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTthQUN4QjtZQUFDLE9BQU8sR0FBUSxFQUFFO2dCQUNqQixhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQzFCO1FBQ0gsQ0FBQztLQUNGLENBQUMsQ0FBQTtJQUdGLE1BQU0sYUFBYSxDQUFBO0lBRW5CLE9BQU07QUFDUixDQUFDO0FBcERELG9CQW9EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgTGlmZWN5Y2xlIH0gZnJvbSAnQHdlbGwta25vd24tY29tcG9uZW50cy9pbnRlcmZhY2VzJ1xuaW1wb3J0IHsgcm9vbXNNZXRyaWNzLCBjcmVhdGVSb29tc0NvbXBvbmVudCB9IGZyb20gJ0BkY2wvbWluaS1jb21tcy9kaXN0L2FkYXB0ZXJzL3Jvb21zJ1xuaW1wb3J0IHsgY3JlYXRlUmVjb3JkQ29uZmlnQ29tcG9uZW50IH0gZnJvbSAnQHdlbGwta25vd24tY29tcG9uZW50cy9lbnYtY29uZmlnLXByb3ZpZGVyJ1xuaW1wb3J0IHsgY3JlYXRlU2VydmVyQ29tcG9uZW50IH0gZnJvbSAnQHdlbGwta25vd24tY29tcG9uZW50cy9odHRwLXNlcnZlcidcbmltcG9ydCB7IGNyZWF0ZUNvbnNvbGVMb2dDb21wb25lbnQgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL2xvZ2dlcidcbmltcG9ydCB7IGNyZWF0ZVRlc3RNZXRyaWNzQ29tcG9uZW50IH0gZnJvbSAnQHdlbGwta25vd24tY29tcG9uZW50cy9tZXRyaWNzJ1xuaW1wb3J0IHsgY3JlYXRlV3NDb21wb25lbnQgfSBmcm9tICcuL3dzJ1xuaW1wb3J0IGZ1dHVyZSBmcm9tICdmcC1mdXR1cmUnXG5cbmltcG9ydCB7IENsaUNvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJ1xuaW1wb3J0IHsgZ2V0QXJncyB9IGZyb20gJy4uLy4uL3V0aWxzL2FyZ3MnXG5pbXBvcnQgeyBQcmV2aWV3Q29tcG9uZW50cyB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyB2YWxpZGF0ZUV4aXN0aW5nUHJvamVjdCwgdmFsaWRhdGVTY2VuZU9wdGlvbnMgfSBmcm9tICcuL3Byb2plY3QnXG5pbXBvcnQgeyBwcmV2aWV3UG9ydCB9IGZyb20gJy4vcG9ydCdcbmltcG9ydCB7IHByb3ZpZGVySW5zdGFuY2UgfSBmcm9tICcuL2V0aCdcbmltcG9ydCB7IHdpcmUgfSBmcm9tICcuL3dpcmUnXG5cbmV4cG9ydCBmdW5jdGlvbiBoZWxwKCkge1xuICByZXR1cm4gYGBcbn1cblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICBhcmdzOiBPbWl0PHR5cGVvZiBhcmdzLCAnXyc+XG4gIGNvbXBvbmVudHM6IFBpY2s8Q2xpQ29tcG9uZW50cywgJ2ZldGNoJyB8ICdmcyc+XG59XG5cbmV4cG9ydCBjb25zdCBhcmdzID0gZ2V0QXJncyh7XG4gICctLXdhdGNoJzogQm9vbGVhbixcbiAgJy13JzogJy0td2F0Y2gnLFxuICAnLS1kaXInOiBTdHJpbmcsXG4gICctLXBvcnQnOiBOdW1iZXIsXG4gICctcCc6ICctLXBvcnQnXG59KVxuXG4vLyBjb3B5L3Bhc3RlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2RlY2VudHJhbGFuZC9jbGkvYmxvYi8zMmRlOTZiY2ZjNGVmMWMyNmM1NTgwYzc3NjdhZDZjOGNhYzNiMzY3L3NyYy9saWIvRGVjZW50cmFsYW5kLnRzXG4vLyBUT0RPOiByZWZhY3RvciB0aGlzIHN0dWZmIGNvbXBsZXRlbHlcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWluKG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgY29uc3QgZGlyID0gcmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBvcHRpb25zLmFyZ3NbJy0tZGlyJ10gfHwgJy4nKVxuICBhd2FpdCB2YWxpZGF0ZUV4aXN0aW5nUHJvamVjdChvcHRpb25zLmNvbXBvbmVudHMsIGRpcilcbiAgYXdhaXQgdmFsaWRhdGVTY2VuZU9wdGlvbnMob3B0aW9ucy5jb21wb25lbnRzLCBkaXIpXG5cbiAgY29uc3QgcG9ydCA9IG9wdGlvbnMuYXJnc1snLS1wb3J0J10gfHwgKGF3YWl0IHByZXZpZXdQb3J0KCkpXG4gIGNvbnN0IHN0YXJ0ZWRGdXR1cmUgPSBmdXR1cmU8dm9pZD4oKVxuXG4gIHNldFRpbWVvdXQoKCkgPT4gc3RhcnRlZEZ1dHVyZS5yZWplY3QobmV3IEVycm9yKCdUaW1lZCBvdXQgc3RhcnRpbmcgdGhlIHNlcnZlcicpKSwgMzAwMClcblxuICBhd2FpdCBMaWZlY3ljbGUucnVuPFByZXZpZXdDb21wb25lbnRzPih7XG4gICAgYXN5bmMgaW5pdENvbXBvbmVudHMoKSB7XG4gICAgICBjb25zdCBtZXRyaWNzID0gY3JlYXRlVGVzdE1ldHJpY3NDb21wb25lbnQocm9vbXNNZXRyaWNzKVxuICAgICAgY29uc3QgY29uZmlnID0gY3JlYXRlUmVjb3JkQ29uZmlnQ29tcG9uZW50KHtcbiAgICAgICAgSFRUUF9TRVJWRVJfUE9SVDogcG9ydC50b1N0cmluZygpLFxuICAgICAgICBIVFRQX1NFUlZFUl9IT1NUOiAnMC4wLjAuMCcsXG4gICAgICAgIC4uLnByb2Nlc3MuZW52XG4gICAgICB9KVxuICAgICAgY29uc3QgbG9ncyA9IGF3YWl0IGNyZWF0ZUNvbnNvbGVMb2dDb21wb25lbnQoe30pXG4gICAgICBjb25zdCB3cyA9IGF3YWl0IGNyZWF0ZVdzQ29tcG9uZW50KHsgbG9ncyB9KVxuICAgICAgY29uc3Qgc2VydmVyID0gYXdhaXQgY3JlYXRlU2VydmVyQ29tcG9uZW50PFByZXZpZXdDb21wb25lbnRzPih7IGNvbmZpZywgbG9ncywgd3M6IHdzLndzIH0sIHsgY29yczoge30gfSlcbiAgICAgIGNvbnN0IHJvb21zID0gYXdhaXQgY3JlYXRlUm9vbXNDb21wb25lbnQoe1xuICAgICAgICBtZXRyaWNzLFxuICAgICAgICBsb2dzLFxuICAgICAgICBjb25maWdcbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxvZ3MsXG4gICAgICAgIGV0aGVyZXVtUHJvdmlkZXI6IHByb3ZpZGVySW5zdGFuY2UsXG4gICAgICAgIHJvb21zLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIG1ldHJpY3MsXG4gICAgICAgIHNlcnZlcixcbiAgICAgICAgd3NcbiAgICAgIH1cbiAgICB9LFxuICAgIGFzeW5jIG1haW4oeyBjb21wb25lbnRzLCBzdGFydENvbXBvbmVudHMgfSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgd2lyZShkaXIsIGNvbXBvbmVudHMsICEhb3B0aW9ucy5hcmdzWyctLXdhdGNoJ10pXG4gICAgICAgIGF3YWl0IHN0YXJ0Q29tcG9uZW50cygpXG4gICAgICAgIHN0YXJ0ZWRGdXR1cmUucmVzb2x2ZSgpXG4gICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICBzdGFydGVkRnV0dXJlLnJlamVjdChlcnIpXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIC8vIGJ1YmJsZSB1cCB0aGUgZXhjZXB0aW9uIGlmIHN0YXJ0ZWRGdXR1cmUgd2FzIHJlamVjdGVkXG4gIGF3YWl0IHN0YXJ0ZWRGdXR1cmVcblxuICByZXR1cm5cbn1cbiJdfQ==
@@ -10,7 +10,6 @@ import future from 'fp-future'
10
10
 
11
11
  import { CliComponents } from '../../components'
12
12
  import { getArgs } from '../../utils/args'
13
- import { main as handler } from '../../utils/handler'
14
13
  import { PreviewComponents } from './types'
15
14
  import { validateExistingProject, validateSceneOptions } from './project'
16
15
  import { previewPort } from './port'
@@ -36,7 +35,7 @@ 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 const main = handler(async function main(options: Options) {
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)
@@ -84,5 +83,8 @@ export const main = handler(async function main(options: Options) {
84
83
  }
85
84
  })
86
85
 
86
+ // bubble up the exception if startedFuture was rejected
87
+ await startedFuture
88
+
87
89
  return
88
- })
90
+ }
@@ -25,5 +25,5 @@ export declare const args: import("arg").Result<{
25
25
  '--desktop-client': BooleanConstructor;
26
26
  }>;
27
27
  export declare function help(): string;
28
- export declare const main: (args: Options) => Promise<void>;
28
+ export declare function main(options: Options): Promise<void>;
29
29
  export {};
@@ -11,7 +11,7 @@ const build_1 = require("../build");
11
11
  const preview_1 = require("../preview");
12
12
  const port_1 = require("../preview/port");
13
13
  const args_1 = require("../../utils/args");
14
- const handler_1 = require("../../utils/handler");
14
+ const helpers_1 = require("../build/helpers");
15
15
  exports.args = (0, args_1.getArgs)({
16
16
  '--dir': String,
17
17
  '--help': Boolean,
@@ -58,29 +58,32 @@ function help() {
58
58
  `;
59
59
  }
60
60
  exports.help = help;
61
- exports.main = (0, handler_1.main)(async function main(options) {
61
+ async function main(options) {
62
62
  const dir = (0, path_1.resolve)(process.cwd(), options.args['--dir'] || '.');
63
63
  const isCi = exports.args['--ci'] || process.env.CI || false;
64
64
  const debug = !exports.args['--no-debug'] && !isCi;
65
65
  const openBrowser = !exports.args['--no-browser'] && !isCi;
66
66
  const skipBuild = exports.args['--skip-build'];
67
- const watch = !exports.args['--no-watch'] && !isCi && !skipBuild;
67
+ const watch = !exports.args['--no-watch'];
68
68
  const enableWeb3 = exports.args['--web3'];
69
69
  const port = parseInt(exports.args['--port'], 10) || (await (0, port_1.previewPort)());
70
70
  const baseCoords = { x: 0, y: 0 };
71
71
  const hasPortableExperience = false;
72
72
  const comps = { components: options.components };
73
73
  if (!skipBuild) {
74
+ await (0, helpers_1.npmRun)(dir, 'build');
75
+ }
76
+ if (watch) {
74
77
  await (0, build_1.main)(Object.assign({ args: { '--dir': dir, '--watch': watch } }, comps));
75
78
  }
76
79
  await (0, preview_1.main)(Object.assign({ args: { '--dir': dir, '--port': port } }, comps));
77
- const ifaces = os_1.default.networkInterfaces();
80
+ const networkInterfaces = os_1.default.networkInterfaces();
78
81
  const availableURLs = [];
79
82
  console.log(`\nPreview server is now running!`);
80
83
  console.log('Available on:\n');
81
- Object.keys(ifaces).forEach((dev) => {
84
+ Object.keys(networkInterfaces).forEach((dev) => {
82
85
  ;
83
- (ifaces[dev] || []).forEach((details) => {
86
+ (networkInterfaces[dev] || []).forEach((details) => {
84
87
  if (details.family === 'IPv4') {
85
88
  let addr = `http://${details.address}:${port}?position=${baseCoords.x}%2C${baseCoords.y}&ENABLE_ECS7`;
86
89
  if (debug) {
@@ -117,5 +120,6 @@ exports.main = (0, handler_1.main)(async function main(options) {
117
120
  console.log('Unable to open browser automatically.');
118
121
  }
119
122
  }
120
- });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBbUI7QUFDbkIsK0JBQThCO0FBQzlCLGdEQUF1QjtBQUd2QixvQ0FBd0M7QUFDeEMsd0NBQTRDO0FBQzVDLDBDQUE2QztBQUM3QywyQ0FBMEM7QUFDMUMsaURBQXFEO0FBTXhDLFFBQUEsSUFBSSxHQUFHLElBQUEsY0FBTyxFQUFDO0lBQzFCLE9BQU8sRUFBRSxNQUFNO0lBQ2YsUUFBUSxFQUFFLE9BQU87SUFDakIsUUFBUSxFQUFFLE1BQU07SUFDaEIsWUFBWSxFQUFFLE9BQU87SUFDckIsY0FBYyxFQUFFLE9BQU87SUFDdkIsWUFBWSxFQUFFLE9BQU87SUFDckIsTUFBTSxFQUFFLE9BQU87SUFDZixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxJQUFJLEVBQUUsWUFBWTtJQUNsQixJQUFJLEVBQUUsY0FBYztJQUNwQixJQUFJLEVBQUUsWUFBWTtJQUNsQixjQUFjLEVBQUUsT0FBTztJQUN2QixrQkFBa0IsRUFBRSxPQUFPO0NBQzVCLENBQUMsQ0FBQTtBQUVGLFNBQWdCLElBQUk7SUFDbEIsT0FBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBd0JSLENBQUE7QUFDRCxDQUFDO0FBMUJELG9CQTBCQztBQUVZLFFBQUEsSUFBSSxHQUFHLElBQUEsY0FBTyxFQUFDLEtBQUssVUFBVSxJQUFJLENBQUMsT0FBZ0I7SUFDOUQsTUFBTSxHQUFHLEdBQUcsSUFBQSxjQUFPLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7SUFDaEUsTUFBTSxJQUFJLEdBQUcsWUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQTtJQUNwRCxNQUFNLEtBQUssR0FBRyxDQUFDLFlBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQTtJQUMxQyxNQUFNLFdBQVcsR0FBRyxDQUFDLFlBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQTtJQUNsRCxNQUFNLFNBQVMsR0FBRyxZQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDdEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxZQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUE7SUFDeEQsTUFBTSxVQUFVLEdBQUcsWUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2pDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxZQUFJLENBQUMsUUFBUSxDQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUEsa0JBQVcsR0FBRSxDQUFDLENBQUE7SUFDbkUsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQTtJQUNqQyxNQUFNLHFCQUFxQixHQUFHLEtBQUssQ0FBQTtJQUVuQyxNQUFNLEtBQUssR0FBRyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDaEQsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNkLE1BQU0sSUFBQSxZQUFLLGtCQUFHLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFLLEtBQUssRUFBRyxDQUFBO0tBQ3BFO0lBQ0QsTUFBTSxJQUFBLGNBQU8sa0JBQUcsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUssS0FBSyxFQUFHLENBQUE7SUFFbkUsTUFBTSxNQUFNLEdBQUcsWUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUE7SUFDckMsTUFBTSxhQUFhLEdBQWEsRUFBRSxDQUFBO0lBRWxDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsQ0FBQTtJQUMvQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFFOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNsQyxDQUFDO1FBQUEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRTtnQkFDN0IsSUFBSSxJQUFJLEdBQUcsVUFBVSxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksYUFBYSxVQUFVLENBQUMsQ0FBQyxNQUFNLFVBQVUsQ0FBQyxDQUFDLGNBQWMsQ0FBQTtnQkFDckcsSUFBSSxLQUFLLEVBQUU7b0JBQ1QsSUFBSSxHQUFHLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQTtpQkFDbkM7Z0JBQ0QsSUFBSSxVQUFVLElBQUkscUJBQXFCLEVBQUU7b0JBQ3ZDLElBQUksR0FBRyxHQUFHLElBQUksY0FBYyxDQUFBO2lCQUM3QjtnQkFFRCxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtJQUdGLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDOUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMzRyxDQUFDLENBQUMsQ0FBQTtJQUVGLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxFQUFFO1FBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0tBQzNCO0lBRUQsSUFBSSxZQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUE7UUFDcEMsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUU7WUFDN0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtZQUMxQyxZQUFZLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQTtZQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQTtTQUNyRDtLQUNGO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtJQUd2QyxJQUFJLFdBQVcsSUFBSSxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7UUFDakUsSUFBSTtZQUNGLE1BQU0sSUFBQSxjQUFJLEVBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDMUI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtTQUNyRDtLQUNGO0FBQ0gsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb3MgZnJvbSAnb3MnXG5pbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAncGF0aCdcbmltcG9ydCBvcGVuIGZyb20gJ29wZW4nXG5cbmltcG9ydCB7IENsaUNvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJ1xuaW1wb3J0IHsgbWFpbiBhcyBidWlsZCB9IGZyb20gJy4uL2J1aWxkJ1xuaW1wb3J0IHsgbWFpbiBhcyBwcmV2aWV3IH0gZnJvbSAnLi4vcHJldmlldydcbmltcG9ydCB7IHByZXZpZXdQb3J0IH0gZnJvbSAnLi4vcHJldmlldy9wb3J0J1xuaW1wb3J0IHsgZ2V0QXJncyB9IGZyb20gJy4uLy4uL3V0aWxzL2FyZ3MnXG5pbXBvcnQgeyBtYWluIGFzIGhhbmRsZXIgfSBmcm9tICcuLi8uLi91dGlscy9oYW5kbGVyJ1xuaW50ZXJmYWNlIE9wdGlvbnMge1xuICBhcmdzOiB0eXBlb2YgYXJnc1xuICBjb21wb25lbnRzOiBQaWNrPENsaUNvbXBvbmVudHMsICdmZXRjaCcgfCAnZnMnPlxufVxuXG5leHBvcnQgY29uc3QgYXJncyA9IGdldEFyZ3Moe1xuICAnLS1kaXInOiBTdHJpbmcsXG4gICctLWhlbHAnOiBCb29sZWFuLFxuICAnLS1wb3J0JzogU3RyaW5nLFxuICAnLS1uby1kZWJ1Zyc6IEJvb2xlYW4sXG4gICctLW5vLWJyb3dzZXInOiBCb29sZWFuLFxuICAnLS1uby13YXRjaCc6IEJvb2xlYW4sXG4gICctLWNpJzogQm9vbGVhbixcbiAgJy0tc2tpcC1pbnN0YWxsJzogQm9vbGVhbixcbiAgJy0td2ViMyc6IEJvb2xlYW4sXG4gICctaCc6ICctLWhlbHAnLFxuICAnLXAnOiAnLS1wb3J0JyxcbiAgJy1kJzogJy0tbm8tZGVidWcnLFxuICAnLWInOiAnLS1uby1icm93c2VyJyxcbiAgJy13JzogJy0tbm8td2F0Y2gnLFxuICAnLS1za2lwLWJ1aWxkJzogQm9vbGVhbixcbiAgJy0tZGVza3RvcC1jbGllbnQnOiBCb29sZWFuXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gaGVscCgpIHtcbiAgcmV0dXJuIGBcbiAgVXNhZ2U6IGRjbCBzdGFydCBbb3B0aW9uc11cblxuICAgIE9wdGlvbnM6XG5cbiAgICAgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgRGlzcGxheXMgY29tcGxldGUgaGVscFxuICAgICAgLXAsIC0tcG9ydCAgICAgICAgW3BvcnRdICBTZWxlY3QgYSBjdXN0b20gcG9ydCBmb3IgdGhlIGRldmVsb3BtZW50IHNlcnZlclxuICAgICAgLWQsIC0tbm8tZGVidWcgICAgICAgICAgICBEaXNhYmxlIGRlYnVnZ2luZyBwYW5lbFxuICAgICAgLWIsIC0tbm8tYnJvd3NlciAgICAgICAgICBEbyBub3Qgb3BlbiBhIG5ldyBicm93c2VyIHdpbmRvd1xuICAgICAgLXcsIC0tbm8td2F0Y2ggICAgICAgICAgICBEbyBub3Qgb3BlbiB3YXRjaCBmb3IgZmlsZXN5c3RlbSBjaGFuZ2VzXG4gICAgICAtYywgLS1jaSAgICAgICAgICAgICAgICAgIFJ1biB0aGUgcGFyY2VsIHByZXZpZXdlciBvbiBhIHJlbW90ZSB1bml4IHNlcnZlclxuICAgICAgLS13ZWIzICAgICAgICAgICAgICAgICAgICBDb25uZWN0cyBwcmV2aWV3IHRvIGJyb3dzZXIgd2FsbGV0IHRvIHVzZSB0aGUgYXNzb2NpYXRlZCBhdmF0YXIgYW5kIGFjY291bnRcbiAgICAgIC0tc2tpcC1idWlsZCAgICAgICAgICAgICAgU2tpcCBidWlsZCBhbmQgb25seSBzZXJ2ZSB0aGUgZmlsZXMgaW4gcHJldmlldyBtb2RlXG4gICAgICAtLWRlc2t0b3AtY2xpZW50ICAgICAgICAgIFNob3cgVVJMIHRvIGxhdW5jaCBwcmV2aWV3IGluIHRoZSBkZXNrdG9wIGNsaWVudCAoQkVUQSlcblxuICAgIEV4YW1wbGVzOlxuXG4gICAgLSBTdGFydCBhIGxvY2FsIGRldmVsb3BtZW50IHNlcnZlciBmb3IgYSBEZWNlbnRyYWxhbmQgU2NlbmUgYXQgcG9ydCAzNTAwXG5cbiAgICAgICQgZGNsIHN0YXJ0IC1wIDM1MDBcblxuICAgIC0gU3RhcnQgYSBsb2NhbCBkZXZlbG9wbWVudCBzZXJ2ZXIgZm9yIGEgRGVjZW50cmFsYW5kIFNjZW5lIGF0IGEgZG9ja2VyIGNvbnRhaW5lclxuXG4gICAgICAkIGRjbCBzdGFydCAtLWNpXG5gXG59XG5cbmV4cG9ydCBjb25zdCBtYWluID0gaGFuZGxlcihhc3luYyBmdW5jdGlvbiBtYWluKG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgY29uc3QgZGlyID0gcmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBvcHRpb25zLmFyZ3NbJy0tZGlyJ10gfHwgJy4nKVxuICBjb25zdCBpc0NpID0gYXJnc1snLS1jaSddIHx8IHByb2Nlc3MuZW52LkNJIHx8IGZhbHNlXG4gIGNvbnN0IGRlYnVnID0gIWFyZ3NbJy0tbm8tZGVidWcnXSAmJiAhaXNDaVxuICBjb25zdCBvcGVuQnJvd3NlciA9ICFhcmdzWyctLW5vLWJyb3dzZXInXSAmJiAhaXNDaVxuICBjb25zdCBza2lwQnVpbGQgPSBhcmdzWyctLXNraXAtYnVpbGQnXVxuICBjb25zdCB3YXRjaCA9ICFhcmdzWyctLW5vLXdhdGNoJ10gJiYgIWlzQ2kgJiYgIXNraXBCdWlsZFxuICBjb25zdCBlbmFibGVXZWIzID0gYXJnc1snLS13ZWIzJ11cbiAgY29uc3QgcG9ydCA9IHBhcnNlSW50KGFyZ3NbJy0tcG9ydCddISwgMTApIHx8IChhd2FpdCBwcmV2aWV3UG9ydCgpKVxuICBjb25zdCBiYXNlQ29vcmRzID0geyB4OiAwLCB5OiAwIH1cbiAgY29uc3QgaGFzUG9ydGFibGVFeHBlcmllbmNlID0gZmFsc2VcblxuICBjb25zdCBjb21wcyA9IHsgY29tcG9uZW50czogb3B0aW9ucy5jb21wb25lbnRzIH1cbiAgaWYgKCFza2lwQnVpbGQpIHtcbiAgICBhd2FpdCBidWlsZCh7IGFyZ3M6IHsgJy0tZGlyJzogZGlyLCAnLS13YXRjaCc6IHdhdGNoIH0sIC4uLmNvbXBzIH0pXG4gIH1cbiAgYXdhaXQgcHJldmlldyh7IGFyZ3M6IHsgJy0tZGlyJzogZGlyLCAnLS1wb3J0JzogcG9ydCB9LCAuLi5jb21wcyB9KVxuXG4gIGNvbnN0IGlmYWNlcyA9IG9zLm5ldHdvcmtJbnRlcmZhY2VzKClcbiAgY29uc3QgYXZhaWxhYmxlVVJMczogc3RyaW5nW10gPSBbXVxuXG4gIGNvbnNvbGUubG9nKGBcXG5QcmV2aWV3IHNlcnZlciBpcyBub3cgcnVubmluZyFgKVxuICBjb25zb2xlLmxvZygnQXZhaWxhYmxlIG9uOlxcbicpXG5cbiAgT2JqZWN0LmtleXMoaWZhY2VzKS5mb3JFYWNoKChkZXYpID0+IHtcbiAgICA7KGlmYWNlc1tkZXZdIHx8IFtdKS5mb3JFYWNoKChkZXRhaWxzKSA9PiB7XG4gICAgICBpZiAoZGV0YWlscy5mYW1pbHkgPT09ICdJUHY0Jykge1xuICAgICAgICBsZXQgYWRkciA9IGBodHRwOi8vJHtkZXRhaWxzLmFkZHJlc3N9OiR7cG9ydH0/cG9zaXRpb249JHtiYXNlQ29vcmRzLnh9JTJDJHtiYXNlQ29vcmRzLnl9JkVOQUJMRV9FQ1M3YFxuICAgICAgICBpZiAoZGVidWcpIHtcbiAgICAgICAgICBhZGRyID0gYCR7YWRkcn0mU0NFTkVfREVCVUdfUEFORUxgXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuYWJsZVdlYjMgfHwgaGFzUG9ydGFibGVFeHBlcmllbmNlKSB7XG4gICAgICAgICAgYWRkciA9IGAke2FkZHJ9JkVOQUJMRV9XRUIzYFxuICAgICAgICB9XG5cbiAgICAgICAgYXZhaWxhYmxlVVJMcy5wdXNoKGFkZHIpXG4gICAgICB9XG4gICAgfSlcbiAgfSlcblxuICAvLyBQdXNoIGxvY2FsaG9zdCBhbmQgMTI3LjAuMC4xIGF0IHRvcFxuICBjb25zdCBzb3J0ZWRVUkxzID0gYXZhaWxhYmxlVVJMcy5zb3J0KChhLCBfYikgPT4ge1xuICAgIHJldHVybiBhLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2xvY2FsaG9zdCcpIHx8IGEuaW5jbHVkZXMoJzEyNy4wLjAuMScpIHx8IGEuaW5jbHVkZXMoJzAuMC4wLjAnKSA/IC0xIDogMVxuICB9KVxuXG4gIGZvciAoY29uc3QgYWRkciBvZiBzb3J0ZWRVUkxzKSB7XG4gICAgY29uc29sZS5sb2coYCAgICAke2FkZHJ9YClcbiAgfVxuXG4gIGlmIChhcmdzWyctLWRlc2t0b3AtY2xpZW50J10pIHtcbiAgICBjb25zb2xlLmxvZygnXFxuICBEZXNrdG9wIGNsaWVudDpcXG4nKVxuICAgIGZvciAoY29uc3QgYWRkciBvZiBzb3J0ZWRVUkxzKSB7XG4gICAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ1BSRVZJRVctTU9ERScsIGFkZHIpXG4gICAgICBjb25zb2xlLmxvZyhgICAgIGRjbDovLyR7c2VhcmNoUGFyYW1zLnRvU3RyaW5nKCl9JmApXG4gICAgfVxuICB9XG5cbiAgY29uc29sZS5sb2coJ1xcbiAgRGV0YWlsczpcXG4nKVxuICBjb25zb2xlLmxvZygnXFxuUHJlc3MgQ1RSTCtDIHRvIGV4aXRcXG4nKVxuXG4gIC8vIE9wZW4gcHJlZmVyYWJseSBsb2NhbGhvc3QvMTI3LjAuMC4xXG4gIGlmIChvcGVuQnJvd3NlciAmJiBzb3J0ZWRVUkxzLmxlbmd0aCAmJiAhYXJnc1snLS1kZXNrdG9wLWNsaWVudCddKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG9wZW4oc29ydGVkVVJMc1swXSlcbiAgICB9IGNhdGNoIChfKSB7XG4gICAgICBjb25zb2xlLmxvZygnVW5hYmxlIHRvIG9wZW4gYnJvd3NlciBhdXRvbWF0aWNhbGx5LicpXG4gICAgfVxuICB9XG59KVxuIl19
123
+ }
124
+ exports.main = main;
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBbUI7QUFDbkIsK0JBQThCO0FBQzlCLGdEQUF1QjtBQUd2QixvQ0FBd0M7QUFDeEMsd0NBQTRDO0FBQzVDLDBDQUE2QztBQUM3QywyQ0FBMEM7QUFDMUMsOENBQXlDO0FBTzVCLFFBQUEsSUFBSSxHQUFHLElBQUEsY0FBTyxFQUFDO0lBQzFCLE9BQU8sRUFBRSxNQUFNO0lBQ2YsUUFBUSxFQUFFLE9BQU87SUFDakIsUUFBUSxFQUFFLE1BQU07SUFDaEIsWUFBWSxFQUFFLE9BQU87SUFDckIsY0FBYyxFQUFFLE9BQU87SUFDdkIsWUFBWSxFQUFFLE9BQU87SUFDckIsTUFBTSxFQUFFLE9BQU87SUFDZixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxJQUFJLEVBQUUsWUFBWTtJQUNsQixJQUFJLEVBQUUsY0FBYztJQUNwQixJQUFJLEVBQUUsWUFBWTtJQUNsQixjQUFjLEVBQUUsT0FBTztJQUN2QixrQkFBa0IsRUFBRSxPQUFPO0NBQzVCLENBQUMsQ0FBQTtBQUVGLFNBQWdCLElBQUk7SUFDbEIsT0FBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBd0JSLENBQUE7QUFDRCxDQUFDO0FBMUJELG9CQTBCQztBQUVNLEtBQUssVUFBVSxJQUFJLENBQUMsT0FBZ0I7SUFDekMsTUFBTSxHQUFHLEdBQUcsSUFBQSxjQUFPLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7SUFDaEUsTUFBTSxJQUFJLEdBQUcsWUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQTtJQUNwRCxNQUFNLEtBQUssR0FBRyxDQUFDLFlBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQTtJQUMxQyxNQUFNLFdBQVcsR0FBRyxDQUFDLFlBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQTtJQUNsRCxNQUFNLFNBQVMsR0FBRyxZQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDdEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxZQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDakMsTUFBTSxVQUFVLEdBQUcsWUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2pDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxZQUFJLENBQUMsUUFBUSxDQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUEsa0JBQVcsR0FBRSxDQUFDLENBQUE7SUFDbkUsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQTtJQUNqQyxNQUFNLHFCQUFxQixHQUFHLEtBQUssQ0FBQTtJQUVuQyxNQUFNLEtBQUssR0FBRyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUE7SUFHaEQsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNkLE1BQU0sSUFBQSxnQkFBTSxFQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtLQUMzQjtJQUdELElBQUksS0FBSyxFQUFFO1FBQ1QsTUFBTSxJQUFBLFlBQUssa0JBQUcsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUssS0FBSyxFQUFHLENBQUE7S0FDcEU7SUFHRCxNQUFNLElBQUEsY0FBTyxrQkFBRyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSyxLQUFLLEVBQUcsQ0FBQTtJQUVuRSxNQUFNLGlCQUFpQixHQUFHLFlBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO0lBQ2hELE1BQU0sYUFBYSxHQUFhLEVBQUUsQ0FBQTtJQUVsQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUE7SUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBRTlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUM3QyxDQUFDO1FBQUEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNsRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFO2dCQUM3QixJQUFJLElBQUksR0FBRyxVQUFVLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxhQUFhLFVBQVUsQ0FBQyxDQUFDLE1BQU0sVUFBVSxDQUFDLENBQUMsY0FBYyxDQUFBO2dCQUNyRyxJQUFJLEtBQUssRUFBRTtvQkFDVCxJQUFJLEdBQUcsR0FBRyxJQUFJLG9CQUFvQixDQUFBO2lCQUNuQztnQkFDRCxJQUFJLFVBQVUsSUFBSSxxQkFBcUIsRUFBRTtvQkFDdkMsSUFBSSxHQUFHLEdBQUcsSUFBSSxjQUFjLENBQUE7aUJBQzdCO2dCQUVELGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7YUFDekI7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQyxDQUFBO0lBR0YsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUM5QyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzNHLENBQUMsQ0FBQyxDQUFBO0lBRUYsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUU7UUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUE7S0FDM0I7SUFFRCxJQUFJLFlBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1FBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUNwQyxLQUFLLE1BQU0sSUFBSSxJQUFJLFVBQVUsRUFBRTtZQUM3QixNQUFNLFlBQVksR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFBO1lBQzFDLFlBQVksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFBO1lBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1NBQ3JEO0tBQ0Y7SUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO0lBR3ZDLElBQUksV0FBVyxJQUFJLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUNqRSxJQUFJO1lBQ0YsTUFBTSxJQUFBLGNBQUksRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUMxQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFBO1NBQ3JEO0tBQ0Y7QUFDSCxDQUFDO0FBOUVELG9CQThFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvcyBmcm9tICdvcydcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJ1xuaW1wb3J0IG9wZW4gZnJvbSAnb3BlbidcblxuaW1wb3J0IHsgQ2xpQ29tcG9uZW50cyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnXG5pbXBvcnQgeyBtYWluIGFzIGJ1aWxkIH0gZnJvbSAnLi4vYnVpbGQnXG5pbXBvcnQgeyBtYWluIGFzIHByZXZpZXcgfSBmcm9tICcuLi9wcmV2aWV3J1xuaW1wb3J0IHsgcHJldmlld1BvcnQgfSBmcm9tICcuLi9wcmV2aWV3L3BvcnQnXG5pbXBvcnQgeyBnZXRBcmdzIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXJncydcbmltcG9ydCB7IG5wbVJ1biB9IGZyb20gJy4uL2J1aWxkL2hlbHBlcnMnXG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgYXJnczogdHlwZW9mIGFyZ3NcbiAgY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZmV0Y2gnIHwgJ2ZzJz5cbn1cblxuZXhwb3J0IGNvbnN0IGFyZ3MgPSBnZXRBcmdzKHtcbiAgJy0tZGlyJzogU3RyaW5nLFxuICAnLS1oZWxwJzogQm9vbGVhbixcbiAgJy0tcG9ydCc6IFN0cmluZyxcbiAgJy0tbm8tZGVidWcnOiBCb29sZWFuLFxuICAnLS1uby1icm93c2VyJzogQm9vbGVhbixcbiAgJy0tbm8td2F0Y2gnOiBCb29sZWFuLFxuICAnLS1jaSc6IEJvb2xlYW4sXG4gICctLXNraXAtaW5zdGFsbCc6IEJvb2xlYW4sXG4gICctLXdlYjMnOiBCb29sZWFuLFxuICAnLWgnOiAnLS1oZWxwJyxcbiAgJy1wJzogJy0tcG9ydCcsXG4gICctZCc6ICctLW5vLWRlYnVnJyxcbiAgJy1iJzogJy0tbm8tYnJvd3NlcicsXG4gICctdyc6ICctLW5vLXdhdGNoJyxcbiAgJy0tc2tpcC1idWlsZCc6IEJvb2xlYW4sXG4gICctLWRlc2t0b3AtY2xpZW50JzogQm9vbGVhblxufSlcblxuZXhwb3J0IGZ1bmN0aW9uIGhlbHAoKSB7XG4gIHJldHVybiBgXG4gIFVzYWdlOiBkY2wgc3RhcnQgW29wdGlvbnNdXG5cbiAgICBPcHRpb25zOlxuXG4gICAgICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgIERpc3BsYXlzIGNvbXBsZXRlIGhlbHBcbiAgICAgIC1wLCAtLXBvcnQgICAgICAgIFtwb3J0XSAgU2VsZWN0IGEgY3VzdG9tIHBvcnQgZm9yIHRoZSBkZXZlbG9wbWVudCBzZXJ2ZXJcbiAgICAgIC1kLCAtLW5vLWRlYnVnICAgICAgICAgICAgRGlzYWJsZSBkZWJ1Z2dpbmcgcGFuZWxcbiAgICAgIC1iLCAtLW5vLWJyb3dzZXIgICAgICAgICAgRG8gbm90IG9wZW4gYSBuZXcgYnJvd3NlciB3aW5kb3dcbiAgICAgIC13LCAtLW5vLXdhdGNoICAgICAgICAgICAgRG8gbm90IG9wZW4gd2F0Y2ggZm9yIGZpbGVzeXN0ZW0gY2hhbmdlc1xuICAgICAgLWMsIC0tY2kgICAgICAgICAgICAgICAgICBSdW4gdGhlIHBhcmNlbCBwcmV2aWV3ZXIgb24gYSByZW1vdGUgdW5peCBzZXJ2ZXJcbiAgICAgIC0td2ViMyAgICAgICAgICAgICAgICAgICAgQ29ubmVjdHMgcHJldmlldyB0byBicm93c2VyIHdhbGxldCB0byB1c2UgdGhlIGFzc29jaWF0ZWQgYXZhdGFyIGFuZCBhY2NvdW50XG4gICAgICAtLXNraXAtYnVpbGQgICAgICAgICAgICAgIFNraXAgYnVpbGQgYW5kIG9ubHkgc2VydmUgdGhlIGZpbGVzIGluIHByZXZpZXcgbW9kZVxuICAgICAgLS1kZXNrdG9wLWNsaWVudCAgICAgICAgICBTaG93IFVSTCB0byBsYXVuY2ggcHJldmlldyBpbiB0aGUgZGVza3RvcCBjbGllbnQgKEJFVEEpXG5cbiAgICBFeGFtcGxlczpcblxuICAgIC0gU3RhcnQgYSBsb2NhbCBkZXZlbG9wbWVudCBzZXJ2ZXIgZm9yIGEgRGVjZW50cmFsYW5kIFNjZW5lIGF0IHBvcnQgMzUwMFxuXG4gICAgICAkIGRjbCBzdGFydCAtcCAzNTAwXG5cbiAgICAtIFN0YXJ0IGEgbG9jYWwgZGV2ZWxvcG1lbnQgc2VydmVyIGZvciBhIERlY2VudHJhbGFuZCBTY2VuZSBhdCBhIGRvY2tlciBjb250YWluZXJcblxuICAgICAgJCBkY2wgc3RhcnQgLS1jaVxuYFxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFpbihvcHRpb25zOiBPcHRpb25zKSB7XG4gIGNvbnN0IGRpciA9IHJlc29sdmUocHJvY2Vzcy5jd2QoKSwgb3B0aW9ucy5hcmdzWyctLWRpciddIHx8ICcuJylcbiAgY29uc3QgaXNDaSA9IGFyZ3NbJy0tY2knXSB8fCBwcm9jZXNzLmVudi5DSSB8fCBmYWxzZVxuICBjb25zdCBkZWJ1ZyA9ICFhcmdzWyctLW5vLWRlYnVnJ10gJiYgIWlzQ2lcbiAgY29uc3Qgb3BlbkJyb3dzZXIgPSAhYXJnc1snLS1uby1icm93c2VyJ10gJiYgIWlzQ2lcbiAgY29uc3Qgc2tpcEJ1aWxkID0gYXJnc1snLS1za2lwLWJ1aWxkJ11cbiAgY29uc3Qgd2F0Y2ggPSAhYXJnc1snLS1uby13YXRjaCddXG4gIGNvbnN0IGVuYWJsZVdlYjMgPSBhcmdzWyctLXdlYjMnXVxuICBjb25zdCBwb3J0ID0gcGFyc2VJbnQoYXJnc1snLS1wb3J0J10hLCAxMCkgfHwgKGF3YWl0IHByZXZpZXdQb3J0KCkpXG4gIGNvbnN0IGJhc2VDb29yZHMgPSB7IHg6IDAsIHk6IDAgfVxuICBjb25zdCBoYXNQb3J0YWJsZUV4cGVyaWVuY2UgPSBmYWxzZVxuXG4gIGNvbnN0IGNvbXBzID0geyBjb21wb25lbnRzOiBvcHRpb25zLmNvbXBvbmVudHMgfVxuXG4gIC8vIGZpcnN0IHJ1biBgbnBtIHJ1biBidWlsZGAsIHRoaXMgY2FuIGJlIGRpc2FibGVkIHdpdGggLS1za2lwLWJ1aWxkXG4gIGlmICghc2tpcEJ1aWxkKSB7XG4gICAgYXdhaXQgbnBtUnVuKGRpciwgJ2J1aWxkJylcbiAgfVxuXG4gIC8vIHRoZW4gc3RhcnQgdGhlIGVtYmVkZGVkIGNvbXBpbGVyLCB0aGlzIGNhbiBiZSBkaXNhYmxlZCB3aXRoIC0tbm8td2F0Y2hcbiAgaWYgKHdhdGNoKSB7XG4gICAgYXdhaXQgYnVpbGQoeyBhcmdzOiB7ICctLWRpcic6IGRpciwgJy0td2F0Y2gnOiB3YXRjaCB9LCAuLi5jb21wcyB9KVxuICB9XG5cbiAgLy8gYWZ0ZXIgdGhlIHdhdGNoZXIgaXMgcnVubmluZywgc3RhcnQgdGhlIHNlcnZlclxuICBhd2FpdCBwcmV2aWV3KHsgYXJnczogeyAnLS1kaXInOiBkaXIsICctLXBvcnQnOiBwb3J0IH0sIC4uLmNvbXBzIH0pXG5cbiAgY29uc3QgbmV0d29ya0ludGVyZmFjZXMgPSBvcy5uZXR3b3JrSW50ZXJmYWNlcygpXG4gIGNvbnN0IGF2YWlsYWJsZVVSTHM6IHN0cmluZ1tdID0gW11cblxuICBjb25zb2xlLmxvZyhgXFxuUHJldmlldyBzZXJ2ZXIgaXMgbm93IHJ1bm5pbmchYClcbiAgY29uc29sZS5sb2coJ0F2YWlsYWJsZSBvbjpcXG4nKVxuXG4gIE9iamVjdC5rZXlzKG5ldHdvcmtJbnRlcmZhY2VzKS5mb3JFYWNoKChkZXYpID0+IHtcbiAgICA7KG5ldHdvcmtJbnRlcmZhY2VzW2Rldl0gfHwgW10pLmZvckVhY2goKGRldGFpbHMpID0+IHtcbiAgICAgIGlmIChkZXRhaWxzLmZhbWlseSA9PT0gJ0lQdjQnKSB7XG4gICAgICAgIGxldCBhZGRyID0gYGh0dHA6Ly8ke2RldGFpbHMuYWRkcmVzc306JHtwb3J0fT9wb3NpdGlvbj0ke2Jhc2VDb29yZHMueH0lMkMke2Jhc2VDb29yZHMueX0mRU5BQkxFX0VDUzdgXG4gICAgICAgIGlmIChkZWJ1Zykge1xuICAgICAgICAgIGFkZHIgPSBgJHthZGRyfSZTQ0VORV9ERUJVR19QQU5FTGBcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5hYmxlV2ViMyB8fCBoYXNQb3J0YWJsZUV4cGVyaWVuY2UpIHtcbiAgICAgICAgICBhZGRyID0gYCR7YWRkcn0mRU5BQkxFX1dFQjNgXG4gICAgICAgIH1cblxuICAgICAgICBhdmFpbGFibGVVUkxzLnB1c2goYWRkcilcbiAgICAgIH1cbiAgICB9KVxuICB9KVxuXG4gIC8vIFB1c2ggbG9jYWxob3N0IGFuZCAxMjcuMC4wLjEgYXQgdG9wXG4gIGNvbnN0IHNvcnRlZFVSTHMgPSBhdmFpbGFibGVVUkxzLnNvcnQoKGEsIF9iKSA9PiB7XG4gICAgcmV0dXJuIGEudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnbG9jYWxob3N0JykgfHwgYS5pbmNsdWRlcygnMTI3LjAuMC4xJykgfHwgYS5pbmNsdWRlcygnMC4wLjAuMCcpID8gLTEgOiAxXG4gIH0pXG5cbiAgZm9yIChjb25zdCBhZGRyIG9mIHNvcnRlZFVSTHMpIHtcbiAgICBjb25zb2xlLmxvZyhgICAgICR7YWRkcn1gKVxuICB9XG5cbiAgaWYgKGFyZ3NbJy0tZGVza3RvcC1jbGllbnQnXSkge1xuICAgIGNvbnNvbGUubG9nKCdcXG4gIERlc2t0b3AgY2xpZW50OlxcbicpXG4gICAgZm9yIChjb25zdCBhZGRyIG9mIHNvcnRlZFVSTHMpIHtcbiAgICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgc2VhcmNoUGFyYW1zLmFwcGVuZCgnUFJFVklFVy1NT0RFJywgYWRkcilcbiAgICAgIGNvbnNvbGUubG9nKGAgICAgZGNsOi8vJHtzZWFyY2hQYXJhbXMudG9TdHJpbmcoKX0mYClcbiAgICB9XG4gIH1cblxuICBjb25zb2xlLmxvZygnXFxuICBEZXRhaWxzOlxcbicpXG4gIGNvbnNvbGUubG9nKCdcXG5QcmVzcyBDVFJMK0MgdG8gZXhpdFxcbicpXG5cbiAgLy8gT3BlbiBwcmVmZXJhYmx5IGxvY2FsaG9zdC8xMjcuMC4wLjFcbiAgaWYgKG9wZW5Ccm93c2VyICYmIHNvcnRlZFVSTHMubGVuZ3RoICYmICFhcmdzWyctLWRlc2t0b3AtY2xpZW50J10pIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgb3Blbihzb3J0ZWRVUkxzWzBdKVxuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgIGNvbnNvbGUubG9nKCdVbmFibGUgdG8gb3BlbiBicm93c2VyIGF1dG9tYXRpY2FsbHkuJylcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -7,7 +7,8 @@ import { main as build } from '../build'
7
7
  import { main as preview } from '../preview'
8
8
  import { previewPort } from '../preview/port'
9
9
  import { getArgs } from '../../utils/args'
10
- import { main as handler } from '../../utils/handler'
10
+ import { npmRun } from '../build/helpers'
11
+
11
12
  interface Options {
12
13
  args: typeof args
13
14
  components: Pick<CliComponents, 'fetch' | 'fs'>
@@ -60,32 +61,41 @@ export function help() {
60
61
  `
61
62
  }
62
63
 
63
- export const main = handler(async function main(options: Options) {
64
+ export async function main(options: Options) {
64
65
  const dir = resolve(process.cwd(), options.args['--dir'] || '.')
65
66
  const isCi = args['--ci'] || process.env.CI || false
66
67
  const debug = !args['--no-debug'] && !isCi
67
68
  const openBrowser = !args['--no-browser'] && !isCi
68
69
  const skipBuild = args['--skip-build']
69
- const watch = !args['--no-watch'] && !isCi && !skipBuild
70
+ const watch = !args['--no-watch']
70
71
  const enableWeb3 = args['--web3']
71
72
  const port = parseInt(args['--port']!, 10) || (await previewPort())
72
73
  const baseCoords = { x: 0, y: 0 }
73
74
  const hasPortableExperience = false
74
75
 
75
76
  const comps = { components: options.components }
77
+
78
+ // first run `npm run build`, this can be disabled with --skip-build
76
79
  if (!skipBuild) {
80
+ await npmRun(dir, 'build')
81
+ }
82
+
83
+ // then start the embedded compiler, this can be disabled with --no-watch
84
+ if (watch) {
77
85
  await build({ args: { '--dir': dir, '--watch': watch }, ...comps })
78
86
  }
87
+
88
+ // after the watcher is running, start the server
79
89
  await preview({ args: { '--dir': dir, '--port': port }, ...comps })
80
90
 
81
- const ifaces = os.networkInterfaces()
91
+ const networkInterfaces = os.networkInterfaces()
82
92
  const availableURLs: string[] = []
83
93
 
84
94
  console.log(`\nPreview server is now running!`)
85
95
  console.log('Available on:\n')
86
96
 
87
- Object.keys(ifaces).forEach((dev) => {
88
- ;(ifaces[dev] || []).forEach((details) => {
97
+ Object.keys(networkInterfaces).forEach((dev) => {
98
+ ;(networkInterfaces[dev] || []).forEach((details) => {
89
99
  if (details.family === 'IPv4') {
90
100
  let addr = `http://${details.address}:${port}?position=${baseCoords.x}%2C${baseCoords.y}&ENABLE_ECS7`
91
101
  if (debug) {
@@ -129,4 +139,4 @@ export const main = handler(async function main(options: Options) {
129
139
  console.log('Unable to open browser automatically.')
130
140
  }
131
141
  }
132
- })
142
+ }
package/cli/index.js CHANGED
@@ -1,22 +1,45 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
5
25
  };
6
26
  Object.defineProperty(exports, "__esModule", { value: true });
7
27
  const args_1 = require("./utils/args");
8
28
  const out_messages_1 = require("./utils/out-messages");
9
- const log_1 = __importDefault(require("./utils/log"));
29
+ const log = __importStar(require("./utils/log"));
10
30
  const error_1 = require("./utils/error");
11
31
  const commands_1 = require("./utils/commands");
12
32
  const components_1 = require("./components");
13
33
  const listCommandsStr = (commands) => (0, out_messages_1.toStringList)(commands.map(($) => `npx @dcl/sdk ${$}`));
14
34
  const handleError = (err) => {
15
- if (!(err instanceof error_1.CliError)) {
16
- log_1.default.warn(`Developer: All errors thrown must be an instance of "CliError"`);
35
+ if (err instanceof error_1.CliError) {
36
+ log.fail(err.message);
37
+ }
38
+ else {
39
+ console.error(err);
40
+ log.warn(`Developer: All errors thrown must be an instance of "CliError"`);
17
41
  }
18
- log_1.default.fail(err.message);
19
- process.exit(1);
42
+ process.exitCode = 1;
20
43
  };
21
44
  const commandFnsAreValid = (fns) => {
22
45
  const { help, main } = fns;
@@ -28,16 +51,16 @@ const commandFnsAreValid = (fns) => {
28
51
  }
29
52
  return true;
30
53
  };
31
- const args = (0, args_1.getArgs)();
32
- const helpMessage = (commands) => `Here is the list of commands:\n${listCommandsStr(commands)}`;
33
- (async () => {
54
+ async function main() {
55
+ const helpMessage = (commands) => `Here is the list of commands:\n${listCommandsStr(commands)}`;
56
+ const args = (0, args_1.getArgs)();
34
57
  const command = process.argv[2];
35
58
  const needsHelp = args['--help'];
36
59
  const components = (0, components_1.initComponents)();
37
60
  const commands = await (0, commands_1.getCommands)(components);
38
61
  if (!commands.includes(command)) {
39
62
  if (needsHelp) {
40
- log_1.default.info(helpMessage(commands));
63
+ log.info(helpMessage(commands));
41
64
  return;
42
65
  }
43
66
  throw new error_1.CliError(`Command ${command} is invalid. ${helpMessage(commands)}`);
@@ -47,5 +70,7 @@ const helpMessage = (commands) => `Here is the list of commands:\n${listCommands
47
70
  const options = { args: cmd.args, components };
48
71
  needsHelp ? await cmd.help(options) : await cmd.main(options);
49
72
  }
50
- })().catch(handleError);
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFPQSx1Q0FBc0M7QUFDdEMsdURBQW1EO0FBQ25ELHNEQUE2QjtBQUM3Qix5Q0FBd0M7QUFDeEMsK0NBQTZEO0FBQzdELDZDQUE0RDtBQWdCNUQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFBLDJCQUFZLEVBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUV0RyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQWEsRUFBRSxFQUFFO0lBQ3BDLElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSxnQkFBUSxDQUFDLEVBQUU7UUFDOUIsYUFBRyxDQUFDLElBQUksQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFBO0tBQzNFO0lBQ0QsYUFBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNqQixDQUFDLENBQUE7QUFFRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBZ0IsRUFBZ0MsRUFBRTtJQUM1RSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQTtJQUMxQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ2xCLE1BQU0sSUFBSSxnQkFBUSxDQUFDOzs7S0FHbEIsQ0FBQyxDQUFBO0tBQ0g7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQTtBQUVELE1BQU0sSUFBSSxHQUFHLElBQUEsY0FBTyxHQUFFLENBQUE7QUFDdEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxRQUFrQixFQUFFLEVBQUUsQ0FBQyxrQ0FBa0MsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBRXhHO0FBQUEsQ0FBQyxLQUFLLElBQUksRUFBRTtJQUNYLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2hDLE1BQU0sVUFBVSxHQUFrQixJQUFBLDJCQUFjLEdBQUUsQ0FBQTtJQUVsRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsc0JBQVcsRUFBQyxVQUFVLENBQUMsQ0FBQTtJQUU5QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMvQixJQUFJLFNBQVMsRUFBRTtZQUNiLGFBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7WUFDL0IsT0FBTTtTQUNQO1FBQ0QsTUFBTSxJQUFJLGdCQUFRLENBQUMsV0FBVyxPQUFPLGdCQUFnQixXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0tBQzlFO0lBR0QsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsd0JBQWEsSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBRWxELElBQUksa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDM0IsTUFBTSxPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQTtRQUM5QyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0tBQzlEO0FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5cbi8qXG4gIGlzdGFuYnVsIGlnbm9yZSBmaWxlXG4gIERvZXNuJ3QgbWFrZSBzZW5zZSB0byB0ZXN0IHRoaXMgZmlsZVxuKi9cblxuaW1wb3J0IHsgZ2V0QXJncyB9IGZyb20gJy4vdXRpbHMvYXJncydcbmltcG9ydCB7IHRvU3RyaW5nTGlzdCB9IGZyb20gJy4vdXRpbHMvb3V0LW1lc3NhZ2VzJ1xuaW1wb3J0IGxvZyBmcm9tICcuL3V0aWxzL2xvZydcbmltcG9ydCB7IENsaUVycm9yIH0gZnJvbSAnLi91dGlscy9lcnJvcidcbmltcG9ydCB7IENPTU1BTkRTX1BBVEgsIGdldENvbW1hbmRzIH0gZnJvbSAnLi91dGlscy9jb21tYW5kcydcbmltcG9ydCB7IENsaUNvbXBvbmVudHMsIGluaXRDb21wb25lbnRzIH0gZnJvbSAnLi9jb21wb25lbnRzJ1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMge1xuICBhcmdzOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRBcmdzPlxuICBjb21wb25lbnRzOiBDbGlDb21wb25lbnRzXG59XG5cbi8vIGxlYXZpbmcgYXJncyBhcyBcImFueVwiIHNpbmNlIHdlIGRvbid0IGtub3cgeWV0IGlmIHdlIHdpbGwgdXNlIHRoZW1cbnR5cGUgRmlsZUZuID0gKG9wdGlvbnM6IE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD5cblxuaW50ZXJmYWNlIEZpbGVFeHBvcnRzIHtcbiAgaGVscD86IEZpbGVGblxuICBtYWluPzogRmlsZUZuXG4gIGFyZ3M/OiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRBcmdzPlxufVxuXG5jb25zdCBsaXN0Q29tbWFuZHNTdHIgPSAoY29tbWFuZHM6IHN0cmluZ1tdKSA9PiB0b1N0cmluZ0xpc3QoY29tbWFuZHMubWFwKCgkKSA9PiBgbnB4IEBkY2wvc2RrICR7JH1gKSlcblxuY29uc3QgaGFuZGxlRXJyb3IgPSAoZXJyOiBDbGlFcnJvcikgPT4ge1xuICBpZiAoIShlcnIgaW5zdGFuY2VvZiBDbGlFcnJvcikpIHtcbiAgICBsb2cud2FybihgRGV2ZWxvcGVyOiBBbGwgZXJyb3JzIHRocm93biBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFwiQ2xpRXJyb3JcImApXG4gIH1cbiAgbG9nLmZhaWwoZXJyLm1lc3NhZ2UpXG4gIHByb2Nlc3MuZXhpdCgxKVxufVxuXG5jb25zdCBjb21tYW5kRm5zQXJlVmFsaWQgPSAoZm5zOiBGaWxlRXhwb3J0cyk6IGZucyBpcyBSZXF1aXJlZDxGaWxlRXhwb3J0cz4gPT4ge1xuICBjb25zdCB7IGhlbHAsIG1haW4gfSA9IGZuc1xuICBpZiAoIWhlbHAgfHwgIW1haW4pIHtcbiAgICB0aHJvdyBuZXcgQ2xpRXJyb3IoYENvbW1hbmQgZG9lcyBub3QgZm9sbG93IGltcGxlbWVudGF0aW9uIHJ1bGVzOlxuICAgICAgKiBSZXF1aXJlcyBhIFwiaGVscFwiIGZ1bmN0aW9uXG4gICAgICAqIFJlcXVpcmVzIGEgXCJtYWluXCIgZnVuY3Rpb25cbiAgICBgKVxuICB9XG4gIHJldHVybiB0cnVlXG59XG5cbmNvbnN0IGFyZ3MgPSBnZXRBcmdzKClcbmNvbnN0IGhlbHBNZXNzYWdlID0gKGNvbW1hbmRzOiBzdHJpbmdbXSkgPT4gYEhlcmUgaXMgdGhlIGxpc3Qgb2YgY29tbWFuZHM6XFxuJHtsaXN0Q29tbWFuZHNTdHIoY29tbWFuZHMpfWBcblxuOyhhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGNvbW1hbmQgPSBwcm9jZXNzLmFyZ3ZbMl1cbiAgY29uc3QgbmVlZHNIZWxwID0gYXJnc1snLS1oZWxwJ11cbiAgY29uc3QgY29tcG9uZW50czogQ2xpQ29tcG9uZW50cyA9IGluaXRDb21wb25lbnRzKClcblxuICBjb25zdCBjb21tYW5kcyA9IGF3YWl0IGdldENvbW1hbmRzKGNvbXBvbmVudHMpXG5cbiAgaWYgKCFjb21tYW5kcy5pbmNsdWRlcyhjb21tYW5kKSkge1xuICAgIGlmIChuZWVkc0hlbHApIHtcbiAgICAgIGxvZy5pbmZvKGhlbHBNZXNzYWdlKGNvbW1hbmRzKSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aHJvdyBuZXcgQ2xpRXJyb3IoYENvbW1hbmQgJHtjb21tYW5kfSBpcyBpbnZhbGlkLiAke2hlbHBNZXNzYWdlKGNvbW1hbmRzKX1gKVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgY29uc3QgY21kID0gcmVxdWlyZShgJHtDT01NQU5EU19QQVRIfS8ke2NvbW1hbmR9YClcblxuICBpZiAoY29tbWFuZEZuc0FyZVZhbGlkKGNtZCkpIHtcbiAgICBjb25zdCBvcHRpb25zID0geyBhcmdzOiBjbWQuYXJncywgY29tcG9uZW50cyB9XG4gICAgbmVlZHNIZWxwID8gYXdhaXQgY21kLmhlbHAob3B0aW9ucykgOiBhd2FpdCBjbWQubWFpbihvcHRpb25zKVxuICB9XG59KSgpLmNhdGNoKGhhbmRsZUVycm9yKVxuIl19
73
+ process.exit(process.exitCode || 0);
74
+ }
75
+ main().catch(handleError);
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9BLHVDQUFzQztBQUN0Qyx1REFBbUQ7QUFDbkQsaURBQWtDO0FBQ2xDLHlDQUF3QztBQUN4QywrQ0FBNkQ7QUFDN0QsNkNBQTREO0FBZ0I1RCxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUEsMkJBQVksRUFBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRXRHLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBVSxFQUFFLEVBQUU7SUFDakMsSUFBSSxHQUFHLFlBQVksZ0JBQVEsRUFBRTtRQUMzQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtLQUN0QjtTQUFNO1FBRUwsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNsQixHQUFHLENBQUMsSUFBSSxDQUFDLGdFQUFnRSxDQUFDLENBQUE7S0FDM0U7SUFHRCxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQTtBQUN0QixDQUFDLENBQUE7QUFFRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBZ0IsRUFBZ0MsRUFBRTtJQUM1RSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQTtJQUMxQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ2xCLE1BQU0sSUFBSSxnQkFBUSxDQUFDOzs7S0FHbEIsQ0FBQyxDQUFBO0tBQ0g7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQTtBQUVELEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sV0FBVyxHQUFHLENBQUMsUUFBa0IsRUFBRSxFQUFFLENBQUMsa0NBQWtDLGVBQWUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFBO0lBQ3pHLE1BQU0sSUFBSSxHQUFHLElBQUEsY0FBTyxHQUFFLENBQUE7SUFDdEIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMvQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEMsTUFBTSxVQUFVLEdBQWtCLElBQUEsMkJBQWMsR0FBRSxDQUFBO0lBRWxELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxzQkFBVyxFQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRTlDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQy9CLElBQUksU0FBUyxFQUFFO1lBQ2IsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtZQUMvQixPQUFNO1NBQ1A7UUFDRCxNQUFNLElBQUksZ0JBQVEsQ0FBQyxXQUFXLE9BQU8sZ0JBQWdCLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7S0FDOUU7SUFHRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyx3QkFBYSxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFFbEQsSUFBSSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUMzQixNQUFNLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFBO1FBQzlDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7S0FDOUQ7SUFJRCxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUE7QUFDckMsQ0FBQztBQUVELElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcblxuLypcbiAgaXN0YW5idWwgaWdub3JlIGZpbGVcbiAgRG9lc24ndCBtYWtlIHNlbnNlIHRvIHRlc3QgdGhpcyBmaWxlXG4qL1xuXG5pbXBvcnQgeyBnZXRBcmdzIH0gZnJvbSAnLi91dGlscy9hcmdzJ1xuaW1wb3J0IHsgdG9TdHJpbmdMaXN0IH0gZnJvbSAnLi91dGlscy9vdXQtbWVzc2FnZXMnXG5pbXBvcnQgKiBhcyBsb2cgZnJvbSAnLi91dGlscy9sb2cnXG5pbXBvcnQgeyBDbGlFcnJvciB9IGZyb20gJy4vdXRpbHMvZXJyb3InXG5pbXBvcnQgeyBDT01NQU5EU19QQVRILCBnZXRDb21tYW5kcyB9IGZyb20gJy4vdXRpbHMvY29tbWFuZHMnXG5pbXBvcnQgeyBDbGlDb21wb25lbnRzLCBpbml0Q29tcG9uZW50cyB9IGZyb20gJy4vY29tcG9uZW50cydcblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgYXJnczogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0QXJncz5cbiAgY29tcG9uZW50czogQ2xpQ29tcG9uZW50c1xufVxuXG4vLyBsZWF2aW5nIGFyZ3MgYXMgXCJhbnlcIiBzaW5jZSB3ZSBkb24ndCBrbm93IHlldCBpZiB3ZSB3aWxsIHVzZSB0aGVtXG50eXBlIEZpbGVGbiA9IChvcHRpb25zOiBPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+XG5cbmludGVyZmFjZSBGaWxlRXhwb3J0cyB7XG4gIGhlbHA/OiBGaWxlRm5cbiAgbWFpbj86IEZpbGVGblxuICBhcmdzPzogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0QXJncz5cbn1cblxuY29uc3QgbGlzdENvbW1hbmRzU3RyID0gKGNvbW1hbmRzOiBzdHJpbmdbXSkgPT4gdG9TdHJpbmdMaXN0KGNvbW1hbmRzLm1hcCgoJCkgPT4gYG5weCBAZGNsL3NkayAkeyR9YCkpXG5cbmNvbnN0IGhhbmRsZUVycm9yID0gKGVycjogRXJyb3IpID0+IHtcbiAgaWYgKGVyciBpbnN0YW5jZW9mIENsaUVycm9yKSB7XG4gICAgbG9nLmZhaWwoZXJyLm1lc3NhZ2UpXG4gIH0gZWxzZSB7XG4gICAgLy8gbG9nIHdpdGggY29uc29sZSB0byBzaG93IHN0YWNrdHJhY2UgYW5kIGRlYnVnIGluZm9ybWF0aW9uXG4gICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgbG9nLndhcm4oYERldmVsb3BlcjogQWxsIGVycm9ycyB0aHJvd24gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBcIkNsaUVycm9yXCJgKVxuICB9XG5cbiAgLy8gc2V0IGFuIGV4aXQgY29kZSBidXQgbm90IGZpbmlzaCB0aGUgcHJvZ3JhbSBpbW1lZGlhdGVseSB0byBjbG9zZSBhbnkgcGVuZGluZyB3b3JrXG4gIHByb2Nlc3MuZXhpdENvZGUgPSAxXG59XG5cbmNvbnN0IGNvbW1hbmRGbnNBcmVWYWxpZCA9IChmbnM6IEZpbGVFeHBvcnRzKTogZm5zIGlzIFJlcXVpcmVkPEZpbGVFeHBvcnRzPiA9PiB7XG4gIGNvbnN0IHsgaGVscCwgbWFpbiB9ID0gZm5zXG4gIGlmICghaGVscCB8fCAhbWFpbikge1xuICAgIHRocm93IG5ldyBDbGlFcnJvcihgQ29tbWFuZCBkb2VzIG5vdCBmb2xsb3cgaW1wbGVtZW50YXRpb24gcnVsZXM6XG4gICAgICAqIFJlcXVpcmVzIGEgXCJoZWxwXCIgZnVuY3Rpb25cbiAgICAgICogUmVxdWlyZXMgYSBcIm1haW5cIiBmdW5jdGlvblxuICAgIGApXG4gIH1cbiAgcmV0dXJuIHRydWVcbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgaGVscE1lc3NhZ2UgPSAoY29tbWFuZHM6IHN0cmluZ1tdKSA9PiBgSGVyZSBpcyB0aGUgbGlzdCBvZiBjb21tYW5kczpcXG4ke2xpc3RDb21tYW5kc1N0cihjb21tYW5kcyl9YFxuICBjb25zdCBhcmdzID0gZ2V0QXJncygpXG4gIGNvbnN0IGNvbW1hbmQgPSBwcm9jZXNzLmFyZ3ZbMl1cbiAgY29uc3QgbmVlZHNIZWxwID0gYXJnc1snLS1oZWxwJ11cbiAgY29uc3QgY29tcG9uZW50czogQ2xpQ29tcG9uZW50cyA9IGluaXRDb21wb25lbnRzKClcblxuICBjb25zdCBjb21tYW5kcyA9IGF3YWl0IGdldENvbW1hbmRzKGNvbXBvbmVudHMpXG5cbiAgaWYgKCFjb21tYW5kcy5pbmNsdWRlcyhjb21tYW5kKSkge1xuICAgIGlmIChuZWVkc0hlbHApIHtcbiAgICAgIGxvZy5pbmZvKGhlbHBNZXNzYWdlKGNvbW1hbmRzKSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aHJvdyBuZXcgQ2xpRXJyb3IoYENvbW1hbmQgJHtjb21tYW5kfSBpcyBpbnZhbGlkLiAke2hlbHBNZXNzYWdlKGNvbW1hbmRzKX1gKVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgY29uc3QgY21kID0gcmVxdWlyZShgJHtDT01NQU5EU19QQVRIfS8ke2NvbW1hbmR9YClcblxuICBpZiAoY29tbWFuZEZuc0FyZVZhbGlkKGNtZCkpIHtcbiAgICBjb25zdCBvcHRpb25zID0geyBhcmdzOiBjbWQuYXJncywgY29tcG9uZW50cyB9XG4gICAgbmVlZHNIZWxwID8gYXdhaXQgY21kLmhlbHAob3B0aW9ucykgOiBhd2FpdCBjbWQubWFpbihvcHRpb25zKVxuICB9XG5cbiAgLy8gcm9sbHVwIHdhdGNoZXIgbGVhdmVzIG1hbnkgb3BlbiBGU1dhdGNoZXIgZXZlbiBpbiBidWlsZCBtb2RlLiB3ZSBtdXN0IGNhbGxcbiAgLy8gcHJvY2Vzcy5leGl0IGF0IHRoaXMgcG9pbnQgdG8gcHJldmVudCB0aGUgcHJvZ3JhbSBoYWx0aW5nIGZvcmV2ZXJcbiAgcHJvY2Vzcy5leGl0KHByb2Nlc3MuZXhpdENvZGUgfHwgMClcbn1cblxubWFpbigpLmNhdGNoKGhhbmRsZUVycm9yKVxuIl19
package/cli/index.ts CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { getArgs } from './utils/args'
9
9
  import { toStringList } from './utils/out-messages'
10
- import log from './utils/log'
10
+ import * as log from './utils/log'
11
11
  import { CliError } from './utils/error'
12
12
  import { COMMANDS_PATH, getCommands } from './utils/commands'
13
13
  import { CliComponents, initComponents } from './components'
@@ -28,12 +28,17 @@ interface FileExports {
28
28
 
29
29
  const listCommandsStr = (commands: string[]) => toStringList(commands.map(($) => `npx @dcl/sdk ${$}`))
30
30
 
31
- const handleError = (err: CliError) => {
32
- if (!(err instanceof CliError)) {
31
+ const handleError = (err: Error) => {
32
+ if (err instanceof CliError) {
33
+ log.fail(err.message)
34
+ } else {
35
+ // log with console to show stacktrace and debug information
36
+ console.error(err)
33
37
  log.warn(`Developer: All errors thrown must be an instance of "CliError"`)
34
38
  }
35
- log.fail(err.message)
36
- process.exit(1)
39
+
40
+ // set an exit code but not finish the program immediately to close any pending work
41
+ process.exitCode = 1
37
42
  }
38
43
 
39
44
  const commandFnsAreValid = (fns: FileExports): fns is Required<FileExports> => {
@@ -47,10 +52,9 @@ const commandFnsAreValid = (fns: FileExports): fns is Required<FileExports> => {
47
52
  return true
48
53
  }
49
54
 
50
- const args = getArgs()
51
- const helpMessage = (commands: string[]) => `Here is the list of commands:\n${listCommandsStr(commands)}`
52
-
53
- ;(async () => {
55
+ async function main() {
56
+ const helpMessage = (commands: string[]) => `Here is the list of commands:\n${listCommandsStr(commands)}`
57
+ const args = getArgs()
54
58
  const command = process.argv[2]
55
59
  const needsHelp = args['--help']
56
60
  const components: CliComponents = initComponents()
@@ -72,4 +76,10 @@ const helpMessage = (commands: string[]) => `Here is the list of commands:\n${li
72
76
  const options = { args: cmd.args, components }
73
77
  needsHelp ? await cmd.help(options) : await cmd.main(options)
74
78
  }
75
- })().catch(handleError)
79
+
80
+ // rollup watcher leaves many open FSWatcher even in build mode. we must call
81
+ // process.exit at this point to prevent the program halting forever
82
+ process.exit(process.exitCode || 0)
83
+ }
84
+
85
+ main().catch(handleError)
@@ -4,5 +4,5 @@ interface Options {
4
4
  };
5
5
  silent: boolean;
6
6
  }
7
- export declare function exec(cwd: string, command: string, { env, silent }?: Partial<Options>): Promise<void>;
7
+ export declare function exec(cwd: string, command: string, args: string[], { env, silent }?: Partial<Options>): Promise<void>;
8
8
  export {};
package/cli/utils/exec.js CHANGED
@@ -2,10 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.exec = void 0;
4
4
  const child_process_1 = require("child_process");
5
- function exec(cwd, command, { env, silent } = {}) {
5
+ function exec(cwd, command, args, { env, silent } = {}) {
6
6
  return new Promise((resolve, reject) => {
7
- const [cmd, ...rest] = command.split(' ');
8
- const child = (0, child_process_1.spawn)(cmd, rest, {
7
+ const child = (0, child_process_1.spawn)(command, args, {
9
8
  shell: true,
10
9
  cwd,
11
10
  env: Object.assign(Object.assign(Object.assign({}, process.env), { NODE_ENV: '' }), env)
@@ -21,8 +20,8 @@ function exec(cwd, command, { env, silent } = {}) {
21
20
  });
22
21
  child.on('close', (code) => {
23
22
  if (code !== 0) {
24
- const command = `${cmd} ${rest.join(' ')}`;
25
- reject(new Error(`Command "${command}" exited with code ${code}. Please try running the command manually`));
23
+ const _ = `${command} ${args.join(' ')}`;
24
+ reject(new Error(`Command "${_}" exited with code ${code}. Please try running the command manually`));
26
25
  return;
27
26
  }
28
27
  resolve(undefined);
@@ -30,4 +29,4 @@ function exec(cwd, command, { env, silent } = {}) {
30
29
  });
31
30
  }
32
31
  exports.exec = exec;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImV4ZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQXFDO0FBT3JDLFNBQWdCLElBQUksQ0FBQyxHQUFXLEVBQUUsT0FBZSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sS0FBdUIsRUFBRTtJQUN2RixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLElBQUEscUJBQUssRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQzdCLEtBQUssRUFBRSxJQUFJO1lBQ1gsR0FBRztZQUNILEdBQUcsZ0RBQU8sT0FBTyxDQUFDLEdBQUcsS0FBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBRTtTQUM5QyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUNsQztRQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQy9CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUM5RSxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTthQUMxQjtRQUNILENBQUMsQ0FBQyxDQUFBO1FBRUYsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRTtZQUNqQyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQ2QsTUFBTSxPQUFPLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFBO2dCQUMxQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxPQUFPLHNCQUFzQixJQUFJLDJDQUEyQyxDQUFDLENBQUMsQ0FBQTtnQkFDM0csT0FBTTthQUNQO1lBRUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3BCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBOUJELG9CQThCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduIH0gZnJvbSAnY2hpbGRfcHJvY2VzcydcblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICBlbnY6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbiAgc2lsZW50OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGVjKGN3ZDogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcsIHsgZW52LCBzaWxlbnQgfTogUGFydGlhbDxPcHRpb25zPiA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgW2NtZCwgLi4ucmVzdF0gPSBjb21tYW5kLnNwbGl0KCcgJylcbiAgICBjb25zdCBjaGlsZCA9IHNwYXduKGNtZCwgcmVzdCwge1xuICAgICAgc2hlbGw6IHRydWUsXG4gICAgICBjd2QsXG4gICAgICBlbnY6IHsgLi4ucHJvY2Vzcy5lbnYsIE5PREVfRU5WOiAnJywgLi4uZW52IH1cbiAgICB9KVxuXG4gICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgIGNoaWxkLnN0ZG91dC5waXBlKHByb2Nlc3Muc3Rkb3V0KVxuICAgICAgY2hpbGQuc3RkZXJyLnBpcGUocHJvY2Vzcy5zdGRlcnIpXG4gICAgfVxuXG4gICAgY2hpbGQuc3Rkb3V0Lm9uKCdkYXRhJywgKGRhdGEpID0+IHtcbiAgICAgIGlmIChkYXRhLnRvU3RyaW5nKCkuaW5kZXhPZignVGhlIGNvbXBpbGVyIGlzIHdhdGNoaW5nIGZpbGUgY2hhbmdlcy4uLicpICE9PSAtMSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZSh1bmRlZmluZWQpXG4gICAgICB9XG4gICAgfSlcblxuICAgIGNoaWxkLm9uKCdjbG9zZScsIChjb2RlOiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChjb2RlICE9PSAwKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBgJHtjbWR9ICR7cmVzdC5qb2luKCcgJyl9YFxuICAgICAgICByZWplY3QobmV3IEVycm9yKGBDb21tYW5kIFwiJHtjb21tYW5kfVwiIGV4aXRlZCB3aXRoIGNvZGUgJHtjb2RlfS4gUGxlYXNlIHRyeSBydW5uaW5nIHRoZSBjb21tYW5kIG1hbnVhbGx5YCkpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICByZXNvbHZlKHVuZGVmaW5lZClcbiAgICB9KVxuICB9KVxufVxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImV4ZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQXFDO0FBT3JDLFNBQWdCLElBQUksQ0FDbEIsR0FBVyxFQUNYLE9BQWUsRUFDZixJQUFjLEVBQ2QsRUFBRSxHQUFHLEVBQUUsTUFBTSxLQUF1QixFQUFFO0lBRXRDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBQSxxQkFBSyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUU7WUFDakMsS0FBSyxFQUFFLElBQUk7WUFDWCxHQUFHO1lBQ0gsR0FBRyxnREFBTyxPQUFPLENBQUMsR0FBRyxLQUFFLFFBQVEsRUFBRSxFQUFFLEtBQUssR0FBRyxDQUFFO1NBQzlDLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDakMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1NBQ2xDO1FBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDL0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQzlFLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2FBQzFCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFRixLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFO1lBQ2pDLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFDZCxNQUFNLENBQUMsR0FBRyxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUE7Z0JBQ3hDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsc0JBQXNCLElBQUksMkNBQTJDLENBQUMsQ0FBQyxDQUFBO2dCQUNyRyxPQUFNO2FBQ1A7WUFFRCxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDcEIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFsQ0Qsb0JBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd24gfSBmcm9tICdjaGlsZF9wcm9jZXNzJ1xuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIGVudjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICBzaWxlbnQ6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4ZWMoXG4gIGN3ZDogc3RyaW5nLFxuICBjb21tYW5kOiBzdHJpbmcsXG4gIGFyZ3M6IHN0cmluZ1tdLFxuICB7IGVudiwgc2lsZW50IH06IFBhcnRpYWw8T3B0aW9ucz4gPSB7fVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgY2hpbGQgPSBzcGF3bihjb21tYW5kLCBhcmdzLCB7XG4gICAgICBzaGVsbDogdHJ1ZSxcbiAgICAgIGN3ZCxcbiAgICAgIGVudjogeyAuLi5wcm9jZXNzLmVudiwgTk9ERV9FTlY6ICcnLCAuLi5lbnYgfVxuICAgIH0pXG5cbiAgICBpZiAoIXNpbGVudCkge1xuICAgICAgY2hpbGQuc3Rkb3V0LnBpcGUocHJvY2Vzcy5zdGRvdXQpXG4gICAgICBjaGlsZC5zdGRlcnIucGlwZShwcm9jZXNzLnN0ZGVycilcbiAgICB9XG5cbiAgICBjaGlsZC5zdGRvdXQub24oJ2RhdGEnLCAoZGF0YSkgPT4ge1xuICAgICAgaWYgKGRhdGEudG9TdHJpbmcoKS5pbmRleE9mKCdUaGUgY29tcGlsZXIgaXMgd2F0Y2hpbmcgZmlsZSBjaGFuZ2VzLi4uJykgIT09IC0xKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKHVuZGVmaW5lZClcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgY2hpbGQub24oJ2Nsb3NlJywgKGNvZGU6IG51bWJlcikgPT4ge1xuICAgICAgaWYgKGNvZGUgIT09IDApIHtcbiAgICAgICAgY29uc3QgXyA9IGAke2NvbW1hbmR9ICR7YXJncy5qb2luKCcgJyl9YFxuICAgICAgICByZWplY3QobmV3IEVycm9yKGBDb21tYW5kIFwiJHtffVwiIGV4aXRlZCB3aXRoIGNvZGUgJHtjb2RlfS4gUGxlYXNlIHRyeSBydW5uaW5nIHRoZSBjb21tYW5kIG1hbnVhbGx5YCkpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICByZXNvbHZlKHVuZGVmaW5lZClcbiAgICB9KVxuICB9KVxufVxuIl19
package/cli/utils/exec.ts CHANGED
@@ -5,10 +5,14 @@ interface Options {
5
5
  silent: boolean
6
6
  }
7
7
 
8
- export function exec(cwd: string, command: string, { env, silent }: Partial<Options> = {}): Promise<void> {
8
+ export function exec(
9
+ cwd: string,
10
+ command: string,
11
+ args: string[],
12
+ { env, silent }: Partial<Options> = {}
13
+ ): Promise<void> {
9
14
  return new Promise((resolve, reject) => {
10
- const [cmd, ...rest] = command.split(' ')
11
- const child = spawn(cmd, rest, {
15
+ const child = spawn(command, args, {
12
16
  shell: true,
13
17
  cwd,
14
18
  env: { ...process.env, NODE_ENV: '', ...env }
@@ -27,8 +31,8 @@ export function exec(cwd: string, command: string, { env, silent }: Partial<Opti
27
31
 
28
32
  child.on('close', (code: number) => {
29
33
  if (code !== 0) {
30
- const command = `${cmd} ${rest.join(' ')}`
31
- reject(new Error(`Command "${command}" exited with code ${code}. Please try running the command manually`))
34
+ const _ = `${command} ${args.join(' ')}`
35
+ reject(new Error(`Command "${_}" exited with code ${code}. Please try running the command manually`))
32
36
  return
33
37
  }
34
38
 
@@ -1,13 +1,5 @@
1
- export declare function raw(message: string): void;
1
+ export declare function log(message: string): void;
2
2
  export declare function fail(message: string): void;
3
3
  export declare function warn(message: string): void;
4
4
  export declare function info(message: string): void;
5
5
  export declare function succeed(message: string): void;
6
- declare const _default: {
7
- raw: typeof raw;
8
- fail: typeof fail;
9
- warn: typeof warn;
10
- info: typeof info;
11
- succeed: typeof succeed;
12
- };
13
- export default _default;
package/cli/utils/log.js CHANGED
@@ -1,31 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.succeed = exports.info = exports.warn = exports.fail = exports.raw = void 0;
4
- function raw(message) {
5
- console.log(message);
3
+ exports.succeed = exports.info = exports.warn = exports.fail = exports.log = void 0;
4
+ const colorette_1 = require("colorette");
5
+ const stderr = (...parameters) => process.stderr.write(`${parameters.join('')}\n`);
6
+ const colors = (0, colorette_1.createColors)({
7
+ useColor: process.env.FORCE_COLOR !== '0' && !process.env.NO_COLOR
8
+ });
9
+ function log(message) {
10
+ stderr(message);
6
11
  }
7
- exports.raw = raw;
12
+ exports.log = log;
8
13
  function fail(message) {
9
- console.log(`🔴 ${message}`);
14
+ stderr(colors.redBright(' Error: '), message);
10
15
  }
11
16
  exports.fail = fail;
12
17
  function warn(message) {
13
- console.log(`🟠 ${message}`);
18
+ stderr(colors.yellow('Warning: '), message);
14
19
  }
15
20
  exports.warn = warn;
16
21
  function info(message) {
17
- console.log(`🔵 ${message}`);
22
+ stderr(colors.blueBright(' Info: '), message);
18
23
  }
19
24
  exports.info = info;
20
25
  function succeed(message) {
21
- console.log(`🟢 ${message}`);
26
+ stderr(colors.green('Success: '), message);
22
27
  }
23
28
  exports.succeed = succeed;
24
- exports.default = {
25
- raw,
26
- fail,
27
- warn,
28
- info,
29
- succeed
30
- };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQWdCLEdBQUcsQ0FBQyxPQUFlO0lBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDdEIsQ0FBQztBQUZELGtCQUVDO0FBRUQsU0FBZ0IsSUFBSSxDQUFDLE9BQWU7SUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLE9BQU8sRUFBRSxDQUFDLENBQUE7QUFDOUIsQ0FBQztBQUZELG9CQUVDO0FBRUQsU0FBZ0IsSUFBSSxDQUFDLE9BQWU7SUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLE9BQU8sRUFBRSxDQUFDLENBQUE7QUFDOUIsQ0FBQztBQUZELG9CQUVDO0FBRUQsU0FBZ0IsSUFBSSxDQUFDLE9BQWU7SUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLE9BQU8sRUFBRSxDQUFDLENBQUE7QUFDOUIsQ0FBQztBQUZELG9CQUVDO0FBRUQsU0FBZ0IsT0FBTyxDQUFDLE9BQWU7SUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLE9BQU8sRUFBRSxDQUFDLENBQUE7QUFDOUIsQ0FBQztBQUZELDBCQUVDO0FBRUQsa0JBQWU7SUFDYixHQUFHO0lBQ0gsSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osT0FBTztDQUNSLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gcmF3KG1lc3NhZ2U6IHN0cmluZykge1xuICBjb25zb2xlLmxvZyhtZXNzYWdlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmFpbChtZXNzYWdlOiBzdHJpbmcpIHtcbiAgY29uc29sZS5sb2coYPCflLQgJHttZXNzYWdlfWApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YXJuKG1lc3NhZ2U6IHN0cmluZykge1xuICBjb25zb2xlLmxvZyhg8J+foCAke21lc3NhZ2V9YClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluZm8obWVzc2FnZTogc3RyaW5nKSB7XG4gIGNvbnNvbGUubG9nKGDwn5S1ICR7bWVzc2FnZX1gKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VjY2VlZChtZXNzYWdlOiBzdHJpbmcpIHtcbiAgY29uc29sZS5sb2coYPCfn6IgJHttZXNzYWdlfWApXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcmF3LFxuICBmYWlsLFxuICB3YXJuLFxuICBpbmZvLFxuICBzdWNjZWVkXG59XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF3QztBQVl4QyxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQUcsVUFBOEIsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUl0RyxNQUFNLE1BQU0sR0FBRyxJQUFBLHdCQUFZLEVBQUM7SUFDMUIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUTtDQUNuRSxDQUFDLENBQUE7QUFFRixTQUFnQixHQUFHLENBQUMsT0FBZTtJQUNqQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDakIsQ0FBQztBQUZELGtCQUVDO0FBRUQsU0FBZ0IsSUFBSSxDQUFDLE9BQWU7SUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFDaEQsQ0FBQztBQUZELG9CQUVDO0FBRUQsU0FBZ0IsSUFBSSxDQUFDLE9BQWU7SUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFDN0MsQ0FBQztBQUZELG9CQUVDO0FBRUQsU0FBZ0IsSUFBSSxDQUFDLE9BQWU7SUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFDakQsQ0FBQztBQUZELG9CQUVDO0FBRUQsU0FBZ0IsT0FBTyxDQUFDLE9BQWU7SUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFDNUMsQ0FBQztBQUZELDBCQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29sb3JzIH0gZnJvbSAnY29sb3JldHRlJ1xuXG4vKipcbiAqIFRoaXMgZmlsZSBpbWl0YXRlcyBcImNhcmdvXCIgbG9ncy4gVGhlIHdvcmRzIGFyZSBhbGlnbmVkIHdpdGggdGhlIGNvbG9uIGxpa2UgdGhpczpcbiAqICAgICAgICBWXG4gKiAgIEVycm9yOiBzb21lIHRleHQgcHJvdmlkZWQgYXMgYXJndW1lblxuICogICAgSW5mbzogc29tZSB0ZXh0IHByb3ZpZGVkIGFzIGFyZ3VtZW5cbiAqIFN1Y2Nlc3M6IHNvbWUgdGV4dCBwcm92aWRlZCBhcyBhcmd1bWVuXG4gKiBXYXJuaW5nOiBzb21lIHRleHQgcHJvdmlkZWQgYXMgYXJndW1lblxuICogICAgICAgIF5cbiAqL1xuXG5jb25zdCBzdGRlcnIgPSAoLi4ucGFyYW1ldGVyczogcmVhZG9ubHkgdW5rbm93bltdKSA9PiBwcm9jZXNzLnN0ZGVyci53cml0ZShgJHtwYXJhbWV0ZXJzLmpvaW4oJycpfVxcbmApXG5cbi8vIEBzZWUgaHR0cHM6Ly9uby1jb2xvci5vcmdcbi8vIEBzZWUgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvY2hhbGtcbmNvbnN0IGNvbG9ycyA9IGNyZWF0ZUNvbG9ycyh7XG4gIHVzZUNvbG9yOiBwcm9jZXNzLmVudi5GT1JDRV9DT0xPUiAhPT0gJzAnICYmICFwcm9jZXNzLmVudi5OT19DT0xPUlxufSlcblxuZXhwb3J0IGZ1bmN0aW9uIGxvZyhtZXNzYWdlOiBzdHJpbmcpIHtcbiAgc3RkZXJyKG1lc3NhZ2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmYWlsKG1lc3NhZ2U6IHN0cmluZykge1xuICBzdGRlcnIoY29sb3JzLnJlZEJyaWdodCgnICBFcnJvcjogJyksIG1lc3NhZ2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YXJuKG1lc3NhZ2U6IHN0cmluZykge1xuICBzdGRlcnIoY29sb3JzLnllbGxvdygnV2FybmluZzogJyksIG1lc3NhZ2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZvKG1lc3NhZ2U6IHN0cmluZykge1xuICBzdGRlcnIoY29sb3JzLmJsdWVCcmlnaHQoJyAgIEluZm86ICcpLCBtZXNzYWdlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VjY2VlZChtZXNzYWdlOiBzdHJpbmcpIHtcbiAgc3RkZXJyKGNvbG9ycy5ncmVlbignU3VjY2VzczogJyksIG1lc3NhZ2UpXG59XG4iXX0=
package/cli/utils/log.ts CHANGED
@@ -1,27 +1,39 @@
1
- export function raw(message: string) {
2
- console.log(message)
1
+ import { createColors } from 'colorette'
2
+
3
+ /**
4
+ * This file imitates "cargo" logs. The words are aligned with the colon like this:
5
+ * V
6
+ * Error: some text provided as argumen
7
+ * Info: some text provided as argumen
8
+ * Success: some text provided as argumen
9
+ * Warning: some text provided as argumen
10
+ * ^
11
+ */
12
+
13
+ const stderr = (...parameters: readonly unknown[]) => process.stderr.write(`${parameters.join('')}\n`)
14
+
15
+ // @see https://no-color.org
16
+ // @see https://www.npmjs.com/package/chalk
17
+ const colors = createColors({
18
+ useColor: process.env.FORCE_COLOR !== '0' && !process.env.NO_COLOR
19
+ })
20
+
21
+ export function log(message: string) {
22
+ stderr(message)
3
23
  }
4
24
 
5
25
  export function fail(message: string) {
6
- console.log(`🔴 ${message}`)
26
+ stderr(colors.redBright(' Error: '), message)
7
27
  }
8
28
 
9
29
  export function warn(message: string) {
10
- console.log(`🟠 ${message}`)
30
+ stderr(colors.yellow('Warning: '), message)
11
31
  }
12
32
 
13
33
  export function info(message: string) {
14
- console.log(`🔵 ${message}`)
34
+ stderr(colors.blueBright(' Info: '), message)
15
35
  }
16
36
 
17
37
  export function succeed(message: string) {
18
- console.log(`🟢 ${message}`)
19
- }
20
-
21
- export default {
22
- raw,
23
- fail,
24
- warn,
25
- info,
26
- succeed
38
+ stderr(colors.green('Success: '), message)
27
39
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dcl/sdk",
3
- "version": "7.0.6-4086929545.commit-0292186",
3
+ "version": "7.0.6-4087611163.commit-4735f5b",
4
4
  "description": "",
5
5
  "main": "./index.js",
6
6
  "typings": "./index.d.ts",
@@ -20,13 +20,13 @@
20
20
  "author": "Decentraland",
21
21
  "license": "Apache-2.0",
22
22
  "dependencies": {
23
- "@dcl/dcl-rollup": "7.0.6-4086929545.commit-0292186",
24
- "@dcl/ecs": "7.0.6-4086929545.commit-0292186",
23
+ "@dcl/dcl-rollup": "7.0.6-4087611163.commit-4735f5b",
24
+ "@dcl/ecs": "7.0.6-4087611163.commit-4735f5b",
25
25
  "@dcl/ecs-math": "2.0.1-20221129185242.commit-40495c1",
26
- "@dcl/explorer": "1.0.74928-20230130201703.commit-6da8317",
27
- "@dcl/js-runtime": "7.0.6-4086929545.commit-0292186",
26
+ "@dcl/explorer": "1.0.76945-20230203192753.commit-55553af",
27
+ "@dcl/js-runtime": "7.0.6-4087611163.commit-4735f5b",
28
28
  "@dcl/mini-comms": "1.0.0",
29
- "@dcl/react-ecs": "7.0.6-4086929545.commit-0292186",
29
+ "@dcl/react-ecs": "7.0.6-4087611163.commit-4735f5b",
30
30
  "@dcl/schemas": "6.6.0",
31
31
  "@types/inquirer": "^8.2.5",
32
32
  "@well-known-components/env-config-provider": "^1.1.2-20220801195549.commit-101c273",
@@ -34,7 +34,9 @@
34
34
  "@well-known-components/logger": "^3.0.0",
35
35
  "@well-known-components/metrics": "^2.0.1-20220909150423.commit-8f7e5bc",
36
36
  "arg": "5.0.2",
37
+ "colorette": "^2.0.19",
37
38
  "extract-zip": "2.0.1",
39
+ "ignore": "^5.2.4",
38
40
  "inquirer": "^8.2.5",
39
41
  "node-fetch": "^2.6.8",
40
42
  "open": "^8.4.0",
@@ -53,5 +55,5 @@
53
55
  "displayName": "SDK",
54
56
  "tsconfig": "./tsconfig.json"
55
57
  },
56
- "commit": "029218605ffb8e959701a4f954189e04d9851089"
58
+ "commit": "4735f5b60e904595e174bab3edec3a5fd117f838"
57
59
  }
@@ -1,6 +0,0 @@
1
- import { CliError } from './error';
2
- type Args = {
3
- [key: string]: any;
4
- };
5
- export declare function main<T extends Args>(handlerFn: (args: T) => Promise<void>, errorFn?: (error: CliError) => Promise<void>): (args: T) => Promise<void>;
6
- export {};
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.main = void 0;
4
- const error_1 = require("./error");
5
- function main(handlerFn, errorFn) {
6
- return async function handler(args) {
7
- try {
8
- await handlerFn(args);
9
- }
10
- catch (e) {
11
- if (typeof errorFn === 'function') {
12
- await errorFn(e);
13
- }
14
- throw new error_1.CliError(e.message);
15
- }
16
- };
17
- }
18
- exports.main = main;
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWtDO0FBSWxDLFNBQWdCLElBQUksQ0FDbEIsU0FBcUMsRUFDckMsT0FBNEM7SUFFNUMsT0FBTyxLQUFLLFVBQVUsT0FBTyxDQUFDLElBQU87UUFDbkMsSUFBSTtZQUNGLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ3RCO1FBQUMsT0FBTyxDQUFNLEVBQUU7WUFFZixJQUFJLE9BQU8sT0FBTyxLQUFLLFVBQVUsRUFBRTtnQkFDakMsTUFBTSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDakI7WUFJRCxNQUFNLElBQUksZ0JBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUE7U0FDOUI7SUFDSCxDQUFDLENBQUE7QUFDSCxDQUFDO0FBbEJELG9CQWtCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaUVycm9yIH0gZnJvbSAnLi9lcnJvcidcblxudHlwZSBBcmdzID0geyBba2V5OiBzdHJpbmddOiBhbnkgfVxuXG5leHBvcnQgZnVuY3Rpb24gbWFpbjxUIGV4dGVuZHMgQXJncz4oXG4gIGhhbmRsZXJGbjogKGFyZ3M6IFQpID0+IFByb21pc2U8dm9pZD4sXG4gIGVycm9yRm4/OiAoZXJyb3I6IENsaUVycm9yKSA9PiBQcm9taXNlPHZvaWQ+XG4pIHtcbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoYXJnczogVCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBoYW5kbGVyRm4oYXJncylcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIGRvIHNvbWUgc3R1ZmYgd2l0aCB0aGUgQ2xpRXJyb3IgY2xhc3MuLi5cbiAgICAgIGlmICh0eXBlb2YgZXJyb3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBhd2FpdCBlcnJvckZuKGUpXG4gICAgICB9XG5cbiAgICAgIC8vIHRyYWNrIHNvbWV0aGluZz9cblxuICAgICAgdGhyb3cgbmV3IENsaUVycm9yKGUubWVzc2FnZSlcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,23 +0,0 @@
1
- import { CliError } from './error'
2
-
3
- type Args = { [key: string]: any }
4
-
5
- export function main<T extends Args>(
6
- handlerFn: (args: T) => Promise<void>,
7
- errorFn?: (error: CliError) => Promise<void>
8
- ) {
9
- return async function handler(args: T) {
10
- try {
11
- await handlerFn(args)
12
- } catch (e: any) {
13
- // do some stuff with the CliError class...
14
- if (typeof errorFn === 'function') {
15
- await errorFn(e)
16
- }
17
-
18
- // track something?
19
-
20
- throw new CliError(e.message)
21
- }
22
- }
23
- }