@dcl/sdk 7.0.6-4197739270.commit-db87ed8 → 7.0.6-4217957637.commit-a393ef7

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.
Files changed (88) hide show
  1. package/package.json +6 -30
  2. package/cli/commands/build/helpers.d.ts +0 -21
  3. package/cli/commands/build/helpers.js +0 -50
  4. package/cli/commands/build/helpers.ts +0 -89
  5. package/cli/commands/build/index.d.ts +0 -19
  6. package/cli/commands/build/index.js +0 -69
  7. package/cli/commands/build/index.ts +0 -91
  8. package/cli/commands/init/index.d.ts +0 -17
  9. package/cli/commands/init/index.js +0 -51
  10. package/cli/commands/init/index.ts +0 -67
  11. package/cli/commands/init/repos.d.ts +0 -9
  12. package/cli/commands/init/repos.js +0 -12
  13. package/cli/commands/init/repos.ts +0 -17
  14. package/cli/commands/preview/bff.d.ts +0 -3
  15. package/cli/commands/preview/bff.js +0 -54
  16. package/cli/commands/preview/bff.ts +0 -63
  17. package/cli/commands/preview/catalyst.d.ts +0 -5
  18. package/cli/commands/preview/catalyst.js +0 -24
  19. package/cli/commands/preview/catalyst.ts +0 -31
  20. package/cli/commands/preview/coordinates.d.ts +0 -20
  21. package/cli/commands/preview/coordinates.js +0 -90
  22. package/cli/commands/preview/coordinates.ts +0 -146
  23. package/cli/commands/preview/endpoints.d.ts +0 -10
  24. package/cli/commands/preview/endpoints.js +0 -455
  25. package/cli/commands/preview/endpoints.ts +0 -568
  26. package/cli/commands/preview/eth.d.ts +0 -2
  27. package/cli/commands/preview/eth.js +0 -6
  28. package/cli/commands/preview/eth.ts +0 -3
  29. package/cli/commands/preview/index.d.ts +0 -20
  30. package/cli/commands/preview/index.js +0 -100
  31. package/cli/commands/preview/index.ts +0 -98
  32. package/cli/commands/preview/port.d.ts +0 -1
  33. package/cli/commands/preview/port.js +0 -21
  34. package/cli/commands/preview/port.ts +0 -15
  35. package/cli/commands/preview/project.d.ts +0 -14
  36. package/cli/commands/preview/project.js +0 -77
  37. package/cli/commands/preview/project.ts +0 -112
  38. package/cli/commands/preview/types.d.ts +0 -18
  39. package/cli/commands/preview/types.js +0 -3
  40. package/cli/commands/preview/types.ts +0 -26
  41. package/cli/commands/preview/wire.d.ts +0 -2
  42. package/cli/commands/preview/wire.js +0 -66
  43. package/cli/commands/preview/wire.ts +0 -70
  44. package/cli/commands/preview/ws.d.ts +0 -7
  45. package/cli/commands/preview/ws.js +0 -16
  46. package/cli/commands/preview/ws.ts +0 -24
  47. package/cli/commands/start/index.d.ts +0 -29
  48. package/cli/commands/start/index.js +0 -126
  49. package/cli/commands/start/index.ts +0 -145
  50. package/cli/components/fetch.d.ts +0 -5
  51. package/cli/components/fetch.js +0 -34
  52. package/cli/components/fetch.ts +0 -11
  53. package/cli/components/fs.d.ts +0 -12
  54. package/cli/components/fs.js +0 -69
  55. package/cli/components/fs.ts +0 -62
  56. package/cli/components/index.d.ts +0 -7
  57. package/cli/components/index.js +0 -13
  58. package/cli/components/index.ts +0 -14
  59. package/cli/index.d.ts +0 -7
  60. package/cli/index.js +0 -76
  61. package/cli/index.ts +0 -85
  62. package/cli/utils/args.d.ts +0 -10
  63. package/cli/utils/args.js +0 -16
  64. package/cli/utils/args.ts +0 -18
  65. package/cli/utils/commands.d.ts +0 -3
  66. package/cli/utils/commands.js +0 -24
  67. package/cli/utils/commands.ts +0 -28
  68. package/cli/utils/dcl-ignore.d.ts +0 -4
  69. package/cli/utils/dcl-ignore.js +0 -44
  70. package/cli/utils/dcl-ignore.ts +0 -45
  71. package/cli/utils/error.d.ts +0 -2
  72. package/cli/utils/error.js +0 -7
  73. package/cli/utils/error.ts +0 -1
  74. package/cli/utils/exec.d.ts +0 -8
  75. package/cli/utils/exec.js +0 -32
  76. package/cli/utils/exec.ts +0 -42
  77. package/cli/utils/fs.d.ts +0 -10
  78. package/cli/utils/fs.js +0 -26
  79. package/cli/utils/fs.ts +0 -41
  80. package/cli/utils/log.d.ts +0 -5
  81. package/cli/utils/log.js +0 -29
  82. package/cli/utils/log.ts +0 -39
  83. package/cli/utils/object.d.ts +0 -9
  84. package/cli/utils/object.js +0 -45
  85. package/cli/utils/object.ts +0 -62
  86. package/cli/utils/out-messages.d.ts +0 -1
  87. package/cli/utils/out-messages.js +0 -8
  88. package/cli/utils/out-messages.ts +0 -3
package/package.json CHANGED
@@ -1,18 +1,14 @@
1
1
  {
2
2
  "name": "@dcl/sdk",
3
- "version": "7.0.6-4197739270.commit-db87ed8",
3
+ "version": "7.0.6-4217957637.commit-a393ef7",
4
4
  "description": "",
5
5
  "main": "./index.js",
6
6
  "typings": "./index.d.ts",
7
7
  "types": "./index.d.ts",
8
8
  "scripts": {
9
9
  "build": "tsc -p tsconfig.json",
10
- "build:cli": "tsc -p tsconfig.cli.json",
11
10
  "start": "npm run build && tsc -p tsconfig.json --watch"
12
11
  },
13
- "bin": {
14
- "sdk-commands": "./cli/index.js"
15
- },
16
12
  "keywords": [],
17
13
  "tsdoc": {
18
14
  "tsdocFlavor": "AEDoc"
@@ -20,32 +16,12 @@
20
16
  "author": "Decentraland",
21
17
  "license": "Apache-2.0",
22
18
  "dependencies": {
23
- "@dcl/dcl-rollup": "7.0.6-4197739270.commit-db87ed8",
24
- "@dcl/ecs": "7.0.6-4197739270.commit-db87ed8",
19
+ "@dcl/ecs": "7.0.6-4217957637.commit-a393ef7",
25
20
  "@dcl/ecs-math": "2.0.1-20221129185242.commit-40495c1",
26
21
  "@dcl/explorer": "1.0.81966-20230215010724.commit-64eb73f",
27
- "@dcl/js-runtime": "7.0.6-4197739270.commit-db87ed8",
28
- "@dcl/mini-comms": "1.0.1-20230216163137.commit-a4c75be",
29
- "@dcl/protocol": "1.0.0-4114477251.commit-ccb88d6",
30
- "@dcl/react-ecs": "7.0.6-4197739270.commit-db87ed8",
31
- "@dcl/schemas": "6.10.0",
32
- "@well-known-components/env-config-provider": "^1.2.0",
33
- "@well-known-components/http-server": "^2.0.0-20230216161243.commit-bfe3f0a",
34
- "@well-known-components/logger": "^3.1.2",
35
- "@well-known-components/metrics": "^2.0.1",
36
- "arg": "5.0.2",
37
- "chokidar": "^3.5.3",
38
- "colorette": "^2.0.19",
39
- "extract-zip": "2.0.1",
40
- "ignore": "^5.2.4",
41
- "node-fetch": "^2.6.8",
42
- "open": "^8.4.0",
43
- "portfinder": "^1.0.32",
44
- "undici": "^5.19.1"
45
- },
46
- "devDependencies": {
47
- "@types/node-fetch": "^2.6.1",
48
- "@types/ws": "^8.5.4"
22
+ "@dcl/js-runtime": "7.0.6-4217957637.commit-a393ef7",
23
+ "@dcl/react-ecs": "7.0.6-4217957637.commit-a393ef7",
24
+ "@dcl/sdk-commands": "7.0.0-4217957637.commit-a393ef7"
49
25
  },
50
26
  "minCliVersion": "3.14.1",
51
27
  "typedoc": {
@@ -54,5 +30,5 @@
54
30
  "displayName": "SDK",
55
31
  "tsconfig": "./tsconfig.json"
56
32
  },
57
- "commit": "db87ed858980056a94676a045ff9fe132f903ef3"
33
+ "commit": "a393ef72d7ad52edf0a4c2f49ad2e22668c7a88d"
58
34
  }
@@ -1,21 +0,0 @@
1
- import { IFileSystemComponent } from '../../components/fs';
2
- import { Dict } from '../../utils/object';
3
- export declare const REQUIRED_FILES: {
4
- PACKAGE_JSON: string;
5
- TS_CONFIG_JSON: string;
6
- SCENE_JSON: string;
7
- };
8
- export declare const REQUIRED_PACKAGE_JSON: {};
9
- export declare const getProjectStructure: () => string[];
10
- export declare const validateProjectStructure: (components: {
11
- fs: IFileSystemComponent;
12
- }, dir: string, fileList: string[]) => Promise<boolean>;
13
- export declare const validatePackageJson: (components: {
14
- fs: IFileSystemComponent;
15
- }, dir: string, deps: Dict) => Promise<boolean>;
16
- export declare function needsDependencies(components: {
17
- fs: IFileSystemComponent;
18
- }, dir: string): Promise<boolean>;
19
- export declare const npm: string;
20
- export declare function installDependencies(dir: string): Promise<void>;
21
- export declare function npmRun(cwd: string, command: string, ...args: string[]): Promise<void>;
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
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
- const path_1 = require("path");
5
- const exec_1 = require("../../utils/exec");
6
- const log_1 = require("../../utils/log");
7
- const object_1 = require("../../utils/object");
8
- exports.REQUIRED_FILES = {
9
- PACKAGE_JSON: 'package.json',
10
- TS_CONFIG_JSON: 'tsconfig.json',
11
- SCENE_JSON: 'scene.json'
12
- };
13
- exports.REQUIRED_PACKAGE_JSON = {};
14
- const getProjectStructure = () => Object.values(exports.REQUIRED_FILES);
15
- exports.getProjectStructure = getProjectStructure;
16
- const validateProjectStructure = async (components, dir, fileList) => {
17
- const files = await components.fs.readdir(dir);
18
- const requiredFiles = new Set(fileList);
19
- for (let i = 0; i < files.length && requiredFiles.size > 0; i++) {
20
- if (requiredFiles.has(files[i])) {
21
- requiredFiles.delete(files[i]);
22
- }
23
- }
24
- return requiredFiles.size === 0;
25
- };
26
- exports.validateProjectStructure = validateProjectStructure;
27
- const validatePackageJson = async (components, dir, deps) => {
28
- const packageJson = JSON.parse(await components.fs.readFile((0, path_1.resolve)(dir, exports.REQUIRED_FILES.PACKAGE_JSON), 'utf-8'));
29
- return (0, object_1.hasPrimitiveKeys)(packageJson, deps);
30
- };
31
- exports.validatePackageJson = validatePackageJson;
32
- async function needsDependencies(components, dir) {
33
- const nodeModulesPath = (0, path_1.resolve)(dir, 'node_modules');
34
- const hasNodeModulesFolder = await components.fs.directoryExists(nodeModulesPath);
35
- const isNodeModulesEmpty = hasNodeModulesFolder && (await components.fs.readdir(nodeModulesPath)).length === 0;
36
- return !hasNodeModulesFolder || isNodeModulesEmpty;
37
- }
38
- exports.needsDependencies = needsDependencies;
39
- exports.npm = /^win/.test(process.platform) ? 'npm.cmd' : 'npm';
40
- async function installDependencies(dir) {
41
- (0, log_1.info)('Installing dependencies...');
42
- await (0, exec_1.exec)(dir, exports.npm, ['install']);
43
- (0, log_1.succeed)('Dependencies installed');
44
- }
45
- exports.installDependencies = installDependencies;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQThCO0FBRzlCLDJDQUF1QztBQUN2Qyx5Q0FBK0M7QUFDL0MsK0NBQTJEO0FBSzlDLFFBQUEsY0FBYyxHQUFHO0lBQzVCLFlBQVksRUFBRSxjQUFjO0lBQzVCLGNBQWMsRUFBRSxlQUFlO0lBQy9CLFVBQVUsRUFBRSxZQUFZO0NBQ3pCLENBQUE7QUFLWSxRQUFBLHFCQUFxQixHQUFHLEVBQUUsQ0FBQTtBQUtoQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsc0JBQWMsQ0FBQyxDQUFBO0FBQXpELFFBQUEsbUJBQW1CLHVCQUFzQztBQUsvRCxNQUFNLHdCQUF3QixHQUFHLEtBQUssRUFDM0MsVUFBd0MsRUFDeEMsR0FBVyxFQUNYLFFBQWtCLEVBQ0EsRUFBRTtJQUNwQixNQUFNLEtBQUssR0FBRyxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzlDLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRXZDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQy9ELElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvQixhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQy9CO0tBQ0Y7SUFFRCxPQUFPLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFBO0FBQ2pDLENBQUMsQ0FBQTtBQWZZLFFBQUEsd0JBQXdCLDRCQWVwQztBQUtNLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxFQUN0QyxVQUF3QyxFQUN4QyxHQUFXLEVBQ1gsSUFBVSxFQUNRLEVBQUU7SUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUEsY0FBTyxFQUFDLEdBQUcsRUFBRSxzQkFBYyxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDaEgsT0FBTyxJQUFBLHlCQUFnQixFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUM1QyxDQUFDLENBQUE7QUFQWSxRQUFBLG1CQUFtQix1QkFPL0I7QUFLTSxLQUFLLFVBQVUsaUJBQWlCLENBQUMsVUFBd0MsRUFBRSxHQUFXO0lBQzNGLE1BQU0sZUFBZSxHQUFHLElBQUEsY0FBTyxFQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNwRCxNQUFNLG9CQUFvQixHQUFHLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDakYsTUFBTSxrQkFBa0IsR0FBRyxvQkFBb0IsSUFBSSxDQUFDLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFBO0lBRTlHLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxrQkFBa0IsQ0FBQTtBQUNwRCxDQUFDO0FBTkQsOENBTUM7QUFHWSxRQUFBLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFLN0QsS0FBSyxVQUFVLG1CQUFtQixDQUFDLEdBQVc7SUFDbkQsSUFBQSxVQUFJLEVBQUMsNEJBQTRCLENBQUMsQ0FBQTtJQUVsQyxNQUFNLElBQUEsV0FBSSxFQUFDLEdBQUcsRUFBRSxXQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLElBQUEsYUFBTyxFQUFDLHdCQUF3QixDQUFDLENBQUE7QUFDbkMsQ0FBQztBQUxELGtEQUtDO0FBS00sS0FBSyxVQUFVLE1BQU0sQ0FBQyxHQUFXLEVBQUUsT0FBZSxFQUFFLEdBQUcsSUFBYztJQUUxRSxNQUFNLElBQUEsV0FBSSxFQUFDLEdBQUcsRUFBRSxXQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBVSxFQUFFLENBQUMsQ0FBQTtBQUNoRyxDQUFDO0FBSEQsd0JBR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAncGF0aCdcblxuaW1wb3J0IHsgSUZpbGVTeXN0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2ZzJ1xuaW1wb3J0IHsgZXhlYyB9IGZyb20gJy4uLy4uL3V0aWxzL2V4ZWMnXG5pbXBvcnQgeyBpbmZvLCBzdWNjZWVkIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9nJ1xuaW1wb3J0IHsgRGljdCwgaGFzUHJpbWl0aXZlS2V5cyB9IGZyb20gJy4uLy4uL3V0aWxzL29iamVjdCdcblxuLyoqXG4gKiBSZXF1aXJlZCBwcm9qZWN0IGRpcnMvZmlsZXNcbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX0ZJTEVTID0ge1xuICBQQUNLQUdFX0pTT046ICdwYWNrYWdlLmpzb24nLFxuICBUU19DT05GSUdfSlNPTjogJ3RzY29uZmlnLmpzb24nLFxuICBTQ0VORV9KU09OOiAnc2NlbmUuanNvbidcbn1cblxuLyoqXG4gKiBSZXF1aXJlZCBcInBhY2thZ2UuanNvblwiIHN0cnVjdHVyZVxuICovXG5leHBvcnQgY29uc3QgUkVRVUlSRURfUEFDS0FHRV9KU09OID0ge31cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSByZXF1aXJlZCBmaWxlcyBmb3IgYSBwcm9qZWN0XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRQcm9qZWN0U3RydWN0dXJlID0gKCkgPT4gT2JqZWN0LnZhbHVlcyhSRVFVSVJFRF9GSUxFUylcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb2plY3QgZm9sbG93cyBhIHZhbGlkIHNjZW5lIHN0cnVjdHVyZVxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQcm9qZWN0U3RydWN0dXJlID0gYXN5bmMgKFxuICBjb21wb25lbnRzOiB7IGZzOiBJRmlsZVN5c3RlbUNvbXBvbmVudCB9LFxuICBkaXI6IHN0cmluZyxcbiAgZmlsZUxpc3Q6IHN0cmluZ1tdXG4pOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgZmlsZXMgPSBhd2FpdCBjb21wb25lbnRzLmZzLnJlYWRkaXIoZGlyKVxuICBjb25zdCByZXF1aXJlZEZpbGVzID0gbmV3IFNldChmaWxlTGlzdClcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aCAmJiByZXF1aXJlZEZpbGVzLnNpemUgPiAwOyBpKyspIHtcbiAgICBpZiAocmVxdWlyZWRGaWxlcy5oYXMoZmlsZXNbaV0pKSB7XG4gICAgICByZXF1aXJlZEZpbGVzLmRlbGV0ZShmaWxlc1tpXSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVxdWlyZWRGaWxlcy5zaXplID09PSAwXG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9qZWN0J3MgXCJwYWNrYWdlLmpzb25cIiBpcyB2YWxpZFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQYWNrYWdlSnNvbiA9IGFzeW5jIChcbiAgY29tcG9uZW50czogeyBmczogSUZpbGVTeXN0ZW1Db21wb25lbnQgfSxcbiAgZGlyOiBzdHJpbmcsXG4gIGRlcHM6IERpY3Rcbik6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBwYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UoYXdhaXQgY29tcG9uZW50cy5mcy5yZWFkRmlsZShyZXNvbHZlKGRpciwgUkVRVUlSRURfRklMRVMuUEFDS0FHRV9KU09OKSwgJ3V0Zi04JykpXG4gIHJldHVybiBoYXNQcmltaXRpdmVLZXlzKHBhY2thZ2VKc29uLCBkZXBzKVxufVxuXG4vKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9qZWN0IGNvbnRhaW5zIGFuIGVtcHR5IG5vZGVfbW9kdWxlcyBmb2xkZXJcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG5lZWRzRGVwZW5kZW5jaWVzKGNvbXBvbmVudHM6IHsgZnM6IElGaWxlU3lzdGVtQ29tcG9uZW50IH0sIGRpcjogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IG5vZGVNb2R1bGVzUGF0aCA9IHJlc29sdmUoZGlyLCAnbm9kZV9tb2R1bGVzJylcbiAgY29uc3QgaGFzTm9kZU1vZHVsZXNGb2xkZXIgPSBhd2FpdCBjb21wb25lbnRzLmZzLmRpcmVjdG9yeUV4aXN0cyhub2RlTW9kdWxlc1BhdGgpXG4gIGNvbnN0IGlzTm9kZU1vZHVsZXNFbXB0eSA9IGhhc05vZGVNb2R1bGVzRm9sZGVyICYmIChhd2FpdCBjb21wb25lbnRzLmZzLnJlYWRkaXIobm9kZU1vZHVsZXNQYXRoKSkubGVuZ3RoID09PSAwXG5cbiAgcmV0dXJuICFoYXNOb2RlTW9kdWxlc0ZvbGRlciB8fCBpc05vZGVNb2R1bGVzRW1wdHlcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmV4cG9ydCBjb25zdCBucG0gPSAvXndpbi8udGVzdChwcm9jZXNzLnBsYXRmb3JtKSA/ICducG0uY21kJyA6ICducG0nXG5cbi8qXG4gKiBSdW5zIFwibnBtIGluc3RhbGxcIiBmb3IgZGVzaXJlZCBwcm9qZWN0XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnN0YWxsRGVwZW5kZW5jaWVzKGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGluZm8oJ0luc3RhbGxpbmcgZGVwZW5kZW5jaWVzLi4uJylcbiAgLy8gVE9ETzogdGVzdCBpbiB3aW5kb3dzXG4gIGF3YWl0IGV4ZWMoZGlyLCBucG0sIFsnaW5zdGFsbCddKVxuICBzdWNjZWVkKCdEZXBlbmRlbmNpZXMgaW5zdGFsbGVkJylcbn1cblxuLyoqXG4gKiBSdW4gTlBNIGNvbW1hbmRzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBucG1SdW4oY3dkOiBzdHJpbmcsIGNvbW1hbmQ6IHN0cmluZywgLi4uYXJnczogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gVE9ETzogdGVzdCBpbiB3aW5kb3dzXG4gIGF3YWl0IGV4ZWMoY3dkLCBucG0sIFsncnVuJywgY29tbWFuZCwgJy0tc2lsZW50JywgJy0tJywgLi4uYXJnc10sIHsgZW52OiBwcm9jZXNzLmVudiBhcyBhbnkgfSlcbn1cbiJdfQ==
@@ -1,89 +0,0 @@
1
- import { resolve } from 'path'
2
-
3
- import { IFileSystemComponent } from '../../components/fs'
4
- import { exec } from '../../utils/exec'
5
- import { info, succeed } from '../../utils/log'
6
- import { Dict, hasPrimitiveKeys } from '../../utils/object'
7
-
8
- /**
9
- * Required project dirs/files
10
- */
11
- export const REQUIRED_FILES = {
12
- PACKAGE_JSON: 'package.json',
13
- TS_CONFIG_JSON: 'tsconfig.json',
14
- SCENE_JSON: 'scene.json'
15
- }
16
-
17
- /**
18
- * Required "package.json" structure
19
- */
20
- export const REQUIRED_PACKAGE_JSON = {}
21
-
22
- /**
23
- * Returns the required files for a project
24
- */
25
- export const getProjectStructure = () => Object.values(REQUIRED_FILES)
26
-
27
- /**
28
- * Returns true if the project follows a valid scene structure
29
- */
30
- export const validateProjectStructure = async (
31
- components: { fs: IFileSystemComponent },
32
- dir: string,
33
- fileList: string[]
34
- ): Promise<boolean> => {
35
- const files = await components.fs.readdir(dir)
36
- const requiredFiles = new Set(fileList)
37
-
38
- for (let i = 0; i < files.length && requiredFiles.size > 0; i++) {
39
- if (requiredFiles.has(files[i])) {
40
- requiredFiles.delete(files[i])
41
- }
42
- }
43
-
44
- return requiredFiles.size === 0
45
- }
46
-
47
- /**
48
- * Returns true if the project's "package.json" is valid
49
- */
50
- export const validatePackageJson = async (
51
- components: { fs: IFileSystemComponent },
52
- dir: string,
53
- deps: Dict
54
- ): Promise<boolean> => {
55
- const packageJson = JSON.parse(await components.fs.readFile(resolve(dir, REQUIRED_FILES.PACKAGE_JSON), 'utf-8'))
56
- return hasPrimitiveKeys(packageJson, deps)
57
- }
58
-
59
- /*
60
- * Returns true if the project contains an empty node_modules folder
61
- */
62
- export async function needsDependencies(components: { fs: IFileSystemComponent }, dir: string): Promise<boolean> {
63
- const nodeModulesPath = resolve(dir, 'node_modules')
64
- const hasNodeModulesFolder = await components.fs.directoryExists(nodeModulesPath)
65
- const isNodeModulesEmpty = hasNodeModulesFolder && (await components.fs.readdir(nodeModulesPath)).length === 0
66
-
67
- return !hasNodeModulesFolder || isNodeModulesEmpty
68
- }
69
-
70
- /* istanbul ignore next */
71
- export const npm = /^win/.test(process.platform) ? 'npm.cmd' : 'npm'
72
-
73
- /*
74
- * Runs "npm install" for desired project
75
- */
76
- export async function installDependencies(dir: string): Promise<void> {
77
- info('Installing dependencies...')
78
- // TODO: test in windows
79
- await exec(dir, npm, ['install'])
80
- succeed('Dependencies installed')
81
- }
82
-
83
- /**
84
- * Run NPM commands
85
- */
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 })
89
- }
@@ -1,19 +0,0 @@
1
- import { CliComponents } from '../../components';
2
- interface Options {
3
- args: Omit<typeof args, '_'>;
4
- components: Pick<CliComponents, 'fs'>;
5
- }
6
- export declare const args: import("arg").Result<{
7
- '--help': BooleanConstructor;
8
- '-h': string;
9
- } & {
10
- '--watch': BooleanConstructor;
11
- '-w': string;
12
- '--production': BooleanConstructor;
13
- '-p': string;
14
- '--skip-install': BooleanConstructor;
15
- '--dir': StringConstructor;
16
- }>;
17
- export declare function help(): string;
18
- export declare function main(options: Options): Promise<void>;
19
- export {};
@@ -1,69 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.main = exports.help = exports.args = void 0;
7
- const path_1 = require("path");
8
- const out_messages_1 = require("../../utils/out-messages");
9
- const args_1 = require("../../utils/args");
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"));
13
- const helpers_1 = require("./helpers");
14
- exports.args = (0, args_1.getArgs)({
15
- '--watch': Boolean,
16
- '-w': '--watch',
17
- '--production': Boolean,
18
- '-p': '--production',
19
- '--skip-install': Boolean,
20
- '--dir': String
21
- });
22
- function help() {
23
- return `
24
- Usage: 'dcl-commands build [options]'
25
- Options:'
26
- -h, --help Displays complete help
27
- -w, --watch Watch for file changes and build on change
28
- -p, --production Build without sourcemaps
29
- --skip-install Skip installing dependencies
30
- --dir Path to directory to build
31
-
32
- Example:
33
- - Build your scene:
34
- '$ dcl-commands build'
35
- `;
36
- }
37
- exports.help = help;
38
- async function main(options) {
39
- const dir = (0, path_1.resolve)(process.cwd(), options.args['--dir'] || '.');
40
- const projectStructure = (0, helpers_1.getProjectStructure)();
41
- const hasValidProjectStructure = await (0, helpers_1.validateProjectStructure)(options.components, dir, projectStructure);
42
- if (!hasValidProjectStructure) {
43
- throw new error_1.CliError(`Invalid scene structure found. Required files:
44
- ${(0, out_messages_1.toStringList)(projectStructure)}`);
45
- }
46
- const hasValidPackageJson = await (0, helpers_1.validatePackageJson)(options.components, dir, helpers_1.REQUIRED_PACKAGE_JSON);
47
- if (!hasValidPackageJson) {
48
- throw new error_1.CliError(`Invalid "package.json" file. Structure required:
49
- ${JSON.stringify(helpers_1.REQUIRED_PACKAGE_JSON, null, 2)}`);
50
- }
51
- const shouldInstallDeps = await (0, helpers_1.needsDependencies)(options.components, dir);
52
- if (shouldInstallDeps && !options.args['--skip-install']) {
53
- await (0, helpers_1.installDependencies)(dir);
54
- }
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
62
- });
63
- if (!watch) {
64
- watchingFuture.resolve(null);
65
- }
66
- await watchingFuture;
67
- }
68
- exports.main = main;
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBOEI7QUFHOUIsMkRBQXVEO0FBQ3ZELDJDQUEwQztBQUMxQyw2Q0FBNEM7QUFDNUMscURBQWlEO0FBQ2pELDBEQUE4QjtBQUM5Qix1Q0FPa0I7QUFPTCxRQUFBLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQztJQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQixJQUFJLEVBQUUsU0FBUztJQUNmLGNBQWMsRUFBRSxPQUFPO0lBQ3ZCLElBQUksRUFBRSxjQUFjO0lBQ3BCLGdCQUFnQixFQUFFLE9BQU87SUFDekIsT0FBTyxFQUFFLE1BQU07Q0FDaEIsQ0FBQyxDQUFBO0FBRUYsU0FBZ0IsSUFBSTtJQUNsQixPQUFPOzs7Ozs7Ozs7Ozs7R0FZTixDQUFBO0FBQ0gsQ0FBQztBQWRELG9CQWNDO0FBRU0sS0FBSyxVQUFVLElBQUksQ0FBQyxPQUFnQjtJQUN6QyxNQUFNLEdBQUcsR0FBRyxJQUFBLGNBQU8sRUFBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtJQUNoRSxNQUFNLGdCQUFnQixHQUFHLElBQUEsNkJBQW1CLEdBQUUsQ0FBQTtJQUU5QyxNQUFNLHdCQUF3QixHQUFHLE1BQU0sSUFBQSxrQ0FBd0IsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO0lBRTFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtRQUM3QixNQUFNLElBQUksZ0JBQVEsQ0FBQztRQUNmLElBQUEsMkJBQVksRUFBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQTtLQUN0QztJQUVELE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxJQUFBLDZCQUFtQixFQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLCtCQUFxQixDQUFDLENBQUE7SUFFckcsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1FBQ3hCLE1BQU0sSUFBSSxnQkFBUSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQywrQkFBcUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0tBQ3REO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsMkJBQWlCLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUUxRSxJQUFJLGlCQUFpQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ3hELE1BQU0sSUFBQSw2QkFBbUIsRUFBQyxHQUFHLENBQUMsQ0FBQTtLQUMvQjtJQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRXZDLE1BQU0sY0FBYyxHQUFHLElBQUEsbUJBQU0sR0FBTyxDQUFBO0lBRXBDLE1BQU0sSUFBQSxpQkFBTyxFQUFDO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixLQUFLO1FBQ0wsVUFBVSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMxQyxjQUFjO0tBQ2YsQ0FBQyxDQUFBO0lBRUYsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7S0FDN0I7SUFFRCxNQUFNLGNBQWMsQ0FBQTtBQUl0QixDQUFDO0FBM0NELG9CQTJDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgeyBDbGlDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cydcbmltcG9ydCB7IHRvU3RyaW5nTGlzdCB9IGZyb20gJy4uLy4uL3V0aWxzL291dC1tZXNzYWdlcydcbmltcG9ydCB7IGdldEFyZ3MgfSBmcm9tICcuLi8uLi91dGlscy9hcmdzJ1xuaW1wb3J0IHsgQ2xpRXJyb3IgfSBmcm9tICcuLi8uLi91dGlscy9lcnJvcidcbmltcG9ydCB7IGNvbXBpbGUgfSBmcm9tICdAZGNsL2RjbC1yb2xsdXAvY29tcGlsZSdcbmltcG9ydCBmdXR1cmUgZnJvbSAnZnAtZnV0dXJlJ1xuaW1wb3J0IHtcbiAgZ2V0UHJvamVjdFN0cnVjdHVyZSxcbiAgaW5zdGFsbERlcGVuZGVuY2llcyxcbiAgbmVlZHNEZXBlbmRlbmNpZXMsXG4gIHZhbGlkYXRlUHJvamVjdFN0cnVjdHVyZSxcbiAgdmFsaWRhdGVQYWNrYWdlSnNvbixcbiAgUkVRVUlSRURfUEFDS0FHRV9KU09OXG59IGZyb20gJy4vaGVscGVycydcblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICBhcmdzOiBPbWl0PHR5cGVvZiBhcmdzLCAnXyc+XG4gIGNvbXBvbmVudHM6IFBpY2s8Q2xpQ29tcG9uZW50cywgJ2ZzJz5cbn1cblxuZXhwb3J0IGNvbnN0IGFyZ3MgPSBnZXRBcmdzKHtcbiAgJy0td2F0Y2gnOiBCb29sZWFuLFxuICAnLXcnOiAnLS13YXRjaCcsXG4gICctLXByb2R1Y3Rpb24nOiBCb29sZWFuLFxuICAnLXAnOiAnLS1wcm9kdWN0aW9uJyxcbiAgJy0tc2tpcC1pbnN0YWxsJzogQm9vbGVhbixcbiAgJy0tZGlyJzogU3RyaW5nXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gaGVscCgpIHtcbiAgcmV0dXJuIGBcbiAgVXNhZ2U6ICdkY2wtY29tbWFuZHMgYnVpbGQgW29wdGlvbnNdJ1xuICAgIE9wdGlvbnM6J1xuICAgICAgLWgsIC0taGVscCAgICAgICAgICAgICAgICBEaXNwbGF5cyBjb21wbGV0ZSBoZWxwXG4gICAgICAtdywgLS13YXRjaCAgICAgICAgICAgICAgIFdhdGNoIGZvciBmaWxlIGNoYW5nZXMgYW5kIGJ1aWxkIG9uIGNoYW5nZVxuICAgICAgLXAsIC0tcHJvZHVjdGlvbiAgICAgICAgICBCdWlsZCB3aXRob3V0IHNvdXJjZW1hcHNcbiAgICAgIC0tc2tpcC1pbnN0YWxsICAgICAgICAgICAgU2tpcCBpbnN0YWxsaW5nIGRlcGVuZGVuY2llc1xuICAgICAgLS1kaXIgICAgICAgICAgICAgICAgICAgICBQYXRoIHRvIGRpcmVjdG9yeSB0byBidWlsZFxuXG4gICAgRXhhbXBsZTpcbiAgICAtIEJ1aWxkIHlvdXIgc2NlbmU6XG4gICAgICAnJCBkY2wtY29tbWFuZHMgYnVpbGQnXG4gIGBcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1haW4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBkaXIgPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIG9wdGlvbnMuYXJnc1snLS1kaXInXSB8fCAnLicpXG4gIGNvbnN0IHByb2plY3RTdHJ1Y3R1cmUgPSBnZXRQcm9qZWN0U3RydWN0dXJlKClcblxuICBjb25zdCBoYXNWYWxpZFByb2plY3RTdHJ1Y3R1cmUgPSBhd2FpdCB2YWxpZGF0ZVByb2plY3RTdHJ1Y3R1cmUob3B0aW9ucy5jb21wb25lbnRzLCBkaXIsIHByb2plY3RTdHJ1Y3R1cmUpXG5cbiAgaWYgKCFoYXNWYWxpZFByb2plY3RTdHJ1Y3R1cmUpIHtcbiAgICB0aHJvdyBuZXcgQ2xpRXJyb3IoYEludmFsaWQgc2NlbmUgc3RydWN0dXJlIGZvdW5kLiBSZXF1aXJlZCBmaWxlczpcbiAgICAgICR7dG9TdHJpbmdMaXN0KHByb2plY3RTdHJ1Y3R1cmUpfWApXG4gIH1cblxuICBjb25zdCBoYXNWYWxpZFBhY2thZ2VKc29uID0gYXdhaXQgdmFsaWRhdGVQYWNrYWdlSnNvbihvcHRpb25zLmNvbXBvbmVudHMsIGRpciwgUkVRVUlSRURfUEFDS0FHRV9KU09OKVxuXG4gIGlmICghaGFzVmFsaWRQYWNrYWdlSnNvbikge1xuICAgIHRocm93IG5ldyBDbGlFcnJvcihgSW52YWxpZCBcInBhY2thZ2UuanNvblwiIGZpbGUuIFN0cnVjdHVyZSByZXF1aXJlZDpcbiAgICAgICR7SlNPTi5zdHJpbmdpZnkoUkVRVUlSRURfUEFDS0FHRV9KU09OLCBudWxsLCAyKX1gKVxuICB9XG5cbiAgY29uc3Qgc2hvdWxkSW5zdGFsbERlcHMgPSBhd2FpdCBuZWVkc0RlcGVuZGVuY2llcyhvcHRpb25zLmNvbXBvbmVudHMsIGRpcilcblxuICBpZiAoc2hvdWxkSW5zdGFsbERlcHMgJiYgIW9wdGlvbnMuYXJnc1snLS1za2lwLWluc3RhbGwnXSkge1xuICAgIGF3YWl0IGluc3RhbGxEZXBlbmRlbmNpZXMoZGlyKVxuICB9XG5cbiAgY29uc3Qgd2F0Y2ggPSAhIW9wdGlvbnMuYXJnc1snLS13YXRjaCddXG5cbiAgY29uc3Qgd2F0Y2hpbmdGdXR1cmUgPSBmdXR1cmU8YW55PigpXG5cbiAgYXdhaXQgY29tcGlsZSh7XG4gICAgcHJvamVjdDogZGlyLFxuICAgIHdhdGNoLFxuICAgIHByb2R1Y3Rpb246ICEhb3B0aW9ucy5hcmdzWyctLXByb2R1Y3Rpb24nXSxcbiAgICB3YXRjaGluZ0Z1dHVyZVxuICB9KVxuXG4gIGlmICghd2F0Y2gpIHtcbiAgICB3YXRjaGluZ0Z1dHVyZS5yZXNvbHZlKG51bGwpXG4gIH1cblxuICBhd2FpdCB3YXRjaGluZ0Z1dHVyZVxuXG4gIC8vIHRyYWNrIHN0dWZmLi4uXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kZWNlbnRyYWxhbmQvY2xpL2Jsb2IvbWFpbi9zcmMvY29tbWFuZHMvYnVpbGQudHNcbn1cbiJdfQ==
@@ -1,91 +0,0 @@
1
- import { resolve } from 'path'
2
-
3
- import { CliComponents } from '../../components'
4
- import { toStringList } from '../../utils/out-messages'
5
- import { getArgs } from '../../utils/args'
6
- import { CliError } from '../../utils/error'
7
- import { compile } from '@dcl/dcl-rollup/compile'
8
- import future from 'fp-future'
9
- import {
10
- getProjectStructure,
11
- installDependencies,
12
- needsDependencies,
13
- validateProjectStructure,
14
- validatePackageJson,
15
- REQUIRED_PACKAGE_JSON
16
- } from './helpers'
17
-
18
- interface Options {
19
- args: Omit<typeof args, '_'>
20
- components: Pick<CliComponents, 'fs'>
21
- }
22
-
23
- export const args = getArgs({
24
- '--watch': Boolean,
25
- '-w': '--watch',
26
- '--production': Boolean,
27
- '-p': '--production',
28
- '--skip-install': Boolean,
29
- '--dir': String
30
- })
31
-
32
- export function help() {
33
- return `
34
- Usage: 'dcl-commands build [options]'
35
- Options:'
36
- -h, --help Displays complete help
37
- -w, --watch Watch for file changes and build on change
38
- -p, --production Build without sourcemaps
39
- --skip-install Skip installing dependencies
40
- --dir Path to directory to build
41
-
42
- Example:
43
- - Build your scene:
44
- '$ dcl-commands build'
45
- `
46
- }
47
-
48
- export async function main(options: Options) {
49
- const dir = resolve(process.cwd(), options.args['--dir'] || '.')
50
- const projectStructure = getProjectStructure()
51
-
52
- const hasValidProjectStructure = await validateProjectStructure(options.components, dir, projectStructure)
53
-
54
- if (!hasValidProjectStructure) {
55
- throw new CliError(`Invalid scene structure found. Required files:
56
- ${toStringList(projectStructure)}`)
57
- }
58
-
59
- const hasValidPackageJson = await validatePackageJson(options.components, dir, REQUIRED_PACKAGE_JSON)
60
-
61
- if (!hasValidPackageJson) {
62
- throw new CliError(`Invalid "package.json" file. Structure required:
63
- ${JSON.stringify(REQUIRED_PACKAGE_JSON, null, 2)}`)
64
- }
65
-
66
- const shouldInstallDeps = await needsDependencies(options.components, dir)
67
-
68
- if (shouldInstallDeps && !options.args['--skip-install']) {
69
- await installDependencies(dir)
70
- }
71
-
72
- const watch = !!options.args['--watch']
73
-
74
- const watchingFuture = future<any>()
75
-
76
- await compile({
77
- project: dir,
78
- watch,
79
- production: !!options.args['--production'],
80
- watchingFuture
81
- })
82
-
83
- if (!watch) {
84
- watchingFuture.resolve(null)
85
- }
86
-
87
- await watchingFuture
88
-
89
- // track stuff...
90
- // https://github.com/decentraland/cli/blob/main/src/commands/build.ts
91
- }
@@ -1,17 +0,0 @@
1
- import { CliComponents } from '../../components';
2
- interface Options {
3
- args: typeof args;
4
- components: Pick<CliComponents, 'fetch' | 'fs'>;
5
- }
6
- export declare const args: import("arg").Result<{
7
- '--help': BooleanConstructor;
8
- '-h': string;
9
- } & {
10
- '--yes': BooleanConstructor;
11
- '-y': string;
12
- '--dir': StringConstructor;
13
- '--skip-install': BooleanConstructor;
14
- }>;
15
- export declare function help(): Promise<void>;
16
- export declare function main(options: Options): Promise<void>;
17
- export {};
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.main = exports.help = exports.args = void 0;
4
- const path_1 = require("path");
5
- const args_1 = require("../../utils/args");
6
- const error_1 = require("../../utils/error");
7
- const fs_1 = require("../../utils/fs");
8
- const repos_1 = require("./repos");
9
- const helpers_1 = require("../build/helpers");
10
- exports.args = (0, args_1.getArgs)({
11
- '--yes': Boolean,
12
- '-y': '--yes',
13
- '--dir': String,
14
- '--skip-install': Boolean
15
- });
16
- async function help() { }
17
- exports.help = help;
18
- async function main(options) {
19
- const dir = (0, path_1.resolve)(process.cwd(), options.args['--dir'] || '.');
20
- const isEmpty = await (0, fs_1.isDirectoryEmpty)(options.components, dir);
21
- const yes = options.args['--yes'];
22
- if (!isEmpty && !yes) {
23
- throw new error_1.CliError('The target directory specified is not empty. Run this command with --yes to override.');
24
- }
25
- const scene = 'scene-template';
26
- const { url, contentFolders } = (0, repos_1.get)(scene);
27
- const zip = await (0, fs_1.download)(options.components, url, (0, path_1.join)(dir, `${scene}.zip`));
28
- await (0, fs_1.extract)(zip, dir);
29
- await options.components.fs.unlink(zip);
30
- await moveFilesFromDirs(options.components, dir, contentFolders);
31
- const shouldInstallDeps = await (0, helpers_1.needsDependencies)(options.components, dir);
32
- if (shouldInstallDeps && !options.args['--skip-install']) {
33
- await (0, helpers_1.installDependencies)(dir);
34
- }
35
- }
36
- exports.main = main;
37
- const moveFilesFromDir = async (components, dir, folder) => {
38
- const files = await components.fs.readdir(folder);
39
- await Promise.all(files.map(($) => {
40
- const filePath = (0, path_1.resolve)(folder, $);
41
- return components.fs.rename(filePath, (0, path_1.resolve)(dir, $));
42
- }));
43
- await components.fs.rmdir(folder);
44
- };
45
- const moveFilesFromDirs = async (components, dir, folders) => {
46
- await Promise.all(folders.map(($) => {
47
- const folderPath = (0, path_1.resolve)(dir, $);
48
- return moveFilesFromDir(components, dir, folderPath);
49
- }));
50
- };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBb0M7QUFFcEMsMkNBQTBDO0FBQzFDLDZDQUE0QztBQUU1Qyx1Q0FBb0U7QUFFcEUsbUNBQXdDO0FBQ3hDLDhDQUF5RTtBQU81RCxRQUFBLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQztJQUMxQixPQUFPLEVBQUUsT0FBTztJQUNoQixJQUFJLEVBQUUsT0FBTztJQUNiLE9BQU8sRUFBRSxNQUFNO0lBQ2YsZ0JBQWdCLEVBQUUsT0FBTztDQUMxQixDQUFDLENBQUE7QUFFSyxLQUFLLFVBQVUsSUFBSSxLQUFJLENBQUM7QUFBL0Isb0JBQStCO0FBRXhCLEtBQUssVUFBVSxJQUFJLENBQUMsT0FBZ0I7SUFDekMsTUFBTSxHQUFHLEdBQUcsSUFBQSxjQUFPLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7SUFDaEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFBLHFCQUFnQixFQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDL0QsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUVqQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxnQkFBUSxDQUFDLHVGQUF1RixDQUFDLENBQUE7S0FDNUc7SUFHRCxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQTtJQUM5QixNQUFNLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUEsV0FBTyxFQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBQSxhQUFRLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sSUFBQSxZQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZCLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZDLE1BQU0saUJBQWlCLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFHaEUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsMkJBQWlCLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUMxRSxJQUFJLGlCQUFpQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ3hELE1BQU0sSUFBQSw2QkFBbUIsRUFBQyxHQUFHLENBQUMsQ0FBQTtLQUMvQjtBQUNILENBQUM7QUF0QkQsb0JBc0JDO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLEVBQUUsVUFBcUMsRUFBRSxHQUFXLEVBQUUsTUFBYyxFQUFFLEVBQUU7SUFDcEcsTUFBTSxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNqRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ2QsTUFBTSxRQUFRLEdBQUcsSUFBQSxjQUFPLEVBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ25DLE9BQU8sVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUEsY0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3hELENBQUMsQ0FBQyxDQUNILENBQUE7SUFDRCxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ25DLENBQUMsQ0FBQTtBQUVELE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUFFLFVBQXFDLEVBQUUsR0FBVyxFQUFFLE9BQWlCLEVBQUUsRUFBRTtJQUN4RyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ2hCLE1BQU0sVUFBVSxHQUFHLElBQUEsY0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNsQyxPQUFPLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDdEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4sIHJlc29sdmUgfSBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgeyBnZXRBcmdzIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXJncydcbmltcG9ydCB7IENsaUVycm9yIH0gZnJvbSAnLi4vLi4vdXRpbHMvZXJyb3InXG5pbXBvcnQgeyBDbGlDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cydcbmltcG9ydCB7IGlzRGlyZWN0b3J5RW1wdHksIGRvd25sb2FkLCBleHRyYWN0IH0gZnJvbSAnLi4vLi4vdXRpbHMvZnMnXG5cbmltcG9ydCB7IGdldCBhcyBnZXRSZXBvIH0gZnJvbSAnLi9yZXBvcydcbmltcG9ydCB7IGluc3RhbGxEZXBlbmRlbmNpZXMsIG5lZWRzRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vYnVpbGQvaGVscGVycydcblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICBhcmdzOiB0eXBlb2YgYXJnc1xuICBjb21wb25lbnRzOiBQaWNrPENsaUNvbXBvbmVudHMsICdmZXRjaCcgfCAnZnMnPlxufVxuXG5leHBvcnQgY29uc3QgYXJncyA9IGdldEFyZ3Moe1xuICAnLS15ZXMnOiBCb29sZWFuLFxuICAnLXknOiAnLS15ZXMnLFxuICAnLS1kaXInOiBTdHJpbmcsXG4gICctLXNraXAtaW5zdGFsbCc6IEJvb2xlYW5cbn0pXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoZWxwKCkge31cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1haW4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBkaXIgPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIG9wdGlvbnMuYXJnc1snLS1kaXInXSB8fCAnLicpXG4gIGNvbnN0IGlzRW1wdHkgPSBhd2FpdCBpc0RpcmVjdG9yeUVtcHR5KG9wdGlvbnMuY29tcG9uZW50cywgZGlyKVxuICBjb25zdCB5ZXMgPSBvcHRpb25zLmFyZ3NbJy0teWVzJ11cblxuICBpZiAoIWlzRW1wdHkgJiYgIXllcykge1xuICAgIHRocm93IG5ldyBDbGlFcnJvcignVGhlIHRhcmdldCBkaXJlY3Rvcnkgc3BlY2lmaWVkIGlzIG5vdCBlbXB0eS4gUnVuIHRoaXMgY29tbWFuZCB3aXRoIC0teWVzIHRvIG92ZXJyaWRlLicpXG4gIH1cblxuICAvLyBkb3dubG9hZCBhbmQgZXh0cmFjdCB0ZW1wbGF0ZSBwcm9qZWN0XG4gIGNvbnN0IHNjZW5lID0gJ3NjZW5lLXRlbXBsYXRlJ1xuICBjb25zdCB7IHVybCwgY29udGVudEZvbGRlcnMgfSA9IGdldFJlcG8oc2NlbmUpXG4gIGNvbnN0IHppcCA9IGF3YWl0IGRvd25sb2FkKG9wdGlvbnMuY29tcG9uZW50cywgdXJsLCBqb2luKGRpciwgYCR7c2NlbmV9LnppcGApKVxuICBhd2FpdCBleHRyYWN0KHppcCwgZGlyKVxuICBhd2FpdCBvcHRpb25zLmNvbXBvbmVudHMuZnMudW5saW5rKHppcClcbiAgYXdhaXQgbW92ZUZpbGVzRnJvbURpcnMob3B0aW9ucy5jb21wb25lbnRzLCBkaXIsIGNvbnRlbnRGb2xkZXJzKVxuXG4gIC8vIG5wbSBpbnN0YWxsXG4gIGNvbnN0IHNob3VsZEluc3RhbGxEZXBzID0gYXdhaXQgbmVlZHNEZXBlbmRlbmNpZXMob3B0aW9ucy5jb21wb25lbnRzLCBkaXIpXG4gIGlmIChzaG91bGRJbnN0YWxsRGVwcyAmJiAhb3B0aW9ucy5hcmdzWyctLXNraXAtaW5zdGFsbCddKSB7XG4gICAgYXdhaXQgaW5zdGFsbERlcGVuZGVuY2llcyhkaXIpXG4gIH1cbn1cblxuY29uc3QgbW92ZUZpbGVzRnJvbURpciA9IGFzeW5jIChjb21wb25lbnRzOiBQaWNrPENsaUNvbXBvbmVudHMsICdmcyc+LCBkaXI6IHN0cmluZywgZm9sZGVyOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZmlsZXMgPSBhd2FpdCBjb21wb25lbnRzLmZzLnJlYWRkaXIoZm9sZGVyKVxuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBmaWxlcy5tYXAoKCQpID0+IHtcbiAgICAgIGNvbnN0IGZpbGVQYXRoID0gcmVzb2x2ZShmb2xkZXIsICQpXG4gICAgICByZXR1cm4gY29tcG9uZW50cy5mcy5yZW5hbWUoZmlsZVBhdGgsIHJlc29sdmUoZGlyLCAkKSlcbiAgICB9KVxuICApXG4gIGF3YWl0IGNvbXBvbmVudHMuZnMucm1kaXIoZm9sZGVyKVxufVxuXG5jb25zdCBtb3ZlRmlsZXNGcm9tRGlycyA9IGFzeW5jIChjb21wb25lbnRzOiBQaWNrPENsaUNvbXBvbmVudHMsICdmcyc+LCBkaXI6IHN0cmluZywgZm9sZGVyczogc3RyaW5nW10pID0+IHtcbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgZm9sZGVycy5tYXAoKCQpID0+IHtcbiAgICAgIGNvbnN0IGZvbGRlclBhdGggPSByZXNvbHZlKGRpciwgJClcbiAgICAgIHJldHVybiBtb3ZlRmlsZXNGcm9tRGlyKGNvbXBvbmVudHMsIGRpciwgZm9sZGVyUGF0aClcbiAgICB9KVxuICApXG59XG4iXX0=
@@ -1,67 +0,0 @@
1
- import { join, resolve } from 'path'
2
-
3
- import { getArgs } from '../../utils/args'
4
- import { CliError } from '../../utils/error'
5
- import { CliComponents } from '../../components'
6
- import { isDirectoryEmpty, download, extract } from '../../utils/fs'
7
-
8
- import { get as getRepo } from './repos'
9
- import { installDependencies, needsDependencies } from '../build/helpers'
10
-
11
- interface Options {
12
- args: typeof args
13
- components: Pick<CliComponents, 'fetch' | 'fs'>
14
- }
15
-
16
- export const args = getArgs({
17
- '--yes': Boolean,
18
- '-y': '--yes',
19
- '--dir': String,
20
- '--skip-install': Boolean
21
- })
22
-
23
- export async function help() {}
24
-
25
- export async function main(options: Options) {
26
- const dir = resolve(process.cwd(), options.args['--dir'] || '.')
27
- const isEmpty = await isDirectoryEmpty(options.components, dir)
28
- const yes = options.args['--yes']
29
-
30
- if (!isEmpty && !yes) {
31
- throw new CliError('The target directory specified is not empty. Run this command with --yes to override.')
32
- }
33
-
34
- // download and extract template project
35
- const scene = 'scene-template'
36
- const { url, contentFolders } = getRepo(scene)
37
- const zip = await download(options.components, url, join(dir, `${scene}.zip`))
38
- await extract(zip, dir)
39
- await options.components.fs.unlink(zip)
40
- await moveFilesFromDirs(options.components, dir, contentFolders)
41
-
42
- // npm install
43
- const shouldInstallDeps = await needsDependencies(options.components, dir)
44
- if (shouldInstallDeps && !options.args['--skip-install']) {
45
- await installDependencies(dir)
46
- }
47
- }
48
-
49
- const moveFilesFromDir = async (components: Pick<CliComponents, 'fs'>, dir: string, folder: string) => {
50
- const files = await components.fs.readdir(folder)
51
- await Promise.all(
52
- files.map(($) => {
53
- const filePath = resolve(folder, $)
54
- return components.fs.rename(filePath, resolve(dir, $))
55
- })
56
- )
57
- await components.fs.rmdir(folder)
58
- }
59
-
60
- const moveFilesFromDirs = async (components: Pick<CliComponents, 'fs'>, dir: string, folders: string[]) => {
61
- await Promise.all(
62
- folders.map(($) => {
63
- const folderPath = resolve(dir, $)
64
- return moveFilesFromDir(components, dir, folderPath)
65
- })
66
- )
67
- }
@@ -1,9 +0,0 @@
1
- type Scene = 'scene-template';
2
- type Repos = {
3
- [key in Scene]: {
4
- url: string;
5
- contentFolders: string[];
6
- };
7
- };
8
- export declare const get: (scene: Scene) => Repos[Scene];
9
- export {};
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.get = void 0;
4
- const REPOS = {
5
- 'scene-template': {
6
- url: 'https://github.com/decentraland/sdk7-scene-template/archive/refs/heads/main.zip',
7
- contentFolders: ['sdk7-scene-template-main']
8
- }
9
- };
10
- const get = (scene) => REPOS[scene];
11
- exports.get = get;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXBvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFTQSxNQUFNLEtBQUssR0FBVTtJQUNuQixnQkFBZ0IsRUFBRTtRQUNoQixHQUFHLEVBQUUsaUZBQWlGO1FBQ3RGLGNBQWMsRUFBRSxDQUFDLDBCQUEwQixDQUFDO0tBQzdDO0NBQ0YsQ0FBQTtBQUVNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBWSxFQUFnQixFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQWxELFFBQUEsR0FBRyxPQUErQyIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgU2NlbmUgPSAnc2NlbmUtdGVtcGxhdGUnXG5cbnR5cGUgUmVwb3MgPSB7XG4gIFtrZXkgaW4gU2NlbmVdOiB7XG4gICAgdXJsOiBzdHJpbmdcbiAgICBjb250ZW50Rm9sZGVyczogc3RyaW5nW11cbiAgfVxufVxuXG5jb25zdCBSRVBPUzogUmVwb3MgPSB7XG4gICdzY2VuZS10ZW1wbGF0ZSc6IHtcbiAgICB1cmw6ICdodHRwczovL2dpdGh1Yi5jb20vZGVjZW50cmFsYW5kL3Nkazctc2NlbmUtdGVtcGxhdGUvYXJjaGl2ZS9yZWZzL2hlYWRzL21haW4uemlwJyxcbiAgICBjb250ZW50Rm9sZGVyczogWydzZGs3LXNjZW5lLXRlbXBsYXRlLW1haW4nXVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBnZXQgPSAoc2NlbmU6IFNjZW5lKTogUmVwb3NbU2NlbmVdID0+IFJFUE9TW3NjZW5lXVxuIl19
@@ -1,17 +0,0 @@
1
- type Scene = 'scene-template'
2
-
3
- type Repos = {
4
- [key in Scene]: {
5
- url: string
6
- contentFolders: string[]
7
- }
8
- }
9
-
10
- const REPOS: Repos = {
11
- 'scene-template': {
12
- url: 'https://github.com/decentraland/sdk7-scene-template/archive/refs/heads/main.zip',
13
- contentFolders: ['sdk7-scene-template-main']
14
- }
15
- }
16
-
17
- export const get = (scene: Scene): Repos[Scene] => REPOS[scene]
@@ -1,3 +0,0 @@
1
- import { PreviewComponents } from './types';
2
- import { Router } from '@well-known-components/http-server';
3
- export declare function setupBffAndComms(components: PreviewComponents, router: Router<PreviewComponents>): void;