dcentraland 3.21.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (289) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +56 -0
  3. package/abi/EstateRegistry.json +1226 -0
  4. package/abi/LANDRegistry.json +1372 -0
  5. package/abi/MANAToken.json +410 -0
  6. package/dist/commands/build.d.ts +3 -0
  7. package/dist/commands/build.d.ts.map +1 -0
  8. package/dist/commands/build.js +108 -0
  9. package/dist/commands/build.js.map +1 -0
  10. package/dist/commands/coords.d.ts +3 -0
  11. package/dist/commands/coords.d.ts.map +1 -0
  12. package/dist/commands/coords.js +122 -0
  13. package/dist/commands/coords.js.map +1 -0
  14. package/dist/commands/deploy.d.ts +4 -0
  15. package/dist/commands/deploy.d.ts.map +1 -0
  16. package/dist/commands/deploy.js +280 -0
  17. package/dist/commands/deploy.js.map +1 -0
  18. package/dist/commands/export.d.ts +3 -0
  19. package/dist/commands/export.d.ts.map +1 -0
  20. package/dist/commands/export.js +20 -0
  21. package/dist/commands/export.js.map +1 -0
  22. package/dist/commands/index.d.ts +3 -0
  23. package/dist/commands/index.d.ts.map +1 -0
  24. package/dist/commands/index.js +19 -0
  25. package/dist/commands/index.js.map +1 -0
  26. package/dist/commands/info.d.ts +3 -0
  27. package/dist/commands/info.d.ts.map +1 -0
  28. package/dist/commands/info.js +186 -0
  29. package/dist/commands/info.js.map +1 -0
  30. package/dist/commands/init/help.d.ts +12 -0
  31. package/dist/commands/init/help.d.ts.map +1 -0
  32. package/dist/commands/init/help.js +41 -0
  33. package/dist/commands/init/help.js.map +1 -0
  34. package/dist/commands/init/index.d.ts +3 -0
  35. package/dist/commands/init/index.d.ts.map +1 -0
  36. package/dist/commands/init/index.js +96 -0
  37. package/dist/commands/init/index.js.map +1 -0
  38. package/dist/commands/init/library.d.ts +1 -0
  39. package/dist/commands/init/library.d.ts.map +1 -0
  40. package/dist/commands/init/library.js +2 -0
  41. package/dist/commands/init/library.js.map +1 -0
  42. package/dist/commands/init/repositories.d.ts +11 -0
  43. package/dist/commands/init/repositories.d.ts.map +1 -0
  44. package/dist/commands/init/repositories.js +40 -0
  45. package/dist/commands/init/repositories.js.map +1 -0
  46. package/dist/commands/init/scene.d.ts +3 -0
  47. package/dist/commands/init/scene.d.ts.map +1 -0
  48. package/dist/commands/init/scene.js +56 -0
  49. package/dist/commands/init/scene.js.map +1 -0
  50. package/dist/commands/init/types.d.ts +22 -0
  51. package/dist/commands/init/types.d.ts.map +1 -0
  52. package/dist/commands/init/types.js +3 -0
  53. package/dist/commands/init/types.js.map +1 -0
  54. package/dist/commands/init/utils.d.ts +6 -0
  55. package/dist/commands/init/utils.d.ts.map +1 -0
  56. package/dist/commands/init/utils.js +76 -0
  57. package/dist/commands/init/utils.js.map +1 -0
  58. package/dist/commands/install.d.ts +3 -0
  59. package/dist/commands/install.d.ts.map +1 -0
  60. package/dist/commands/install.js +92 -0
  61. package/dist/commands/install.js.map +1 -0
  62. package/dist/commands/pack.d.ts +3 -0
  63. package/dist/commands/pack.d.ts.map +1 -0
  64. package/dist/commands/pack.js +102 -0
  65. package/dist/commands/pack.js.map +1 -0
  66. package/dist/commands/start.d.ts +3 -0
  67. package/dist/commands/start.d.ts.map +1 -0
  68. package/dist/commands/start.js +235 -0
  69. package/dist/commands/start.js.map +1 -0
  70. package/dist/commands/status.d.ts +3 -0
  71. package/dist/commands/status.d.ts.map +1 -0
  72. package/dist/commands/status.js +80 -0
  73. package/dist/commands/status.js.map +1 -0
  74. package/dist/commands/workspace.d.ts +3 -0
  75. package/dist/commands/workspace.d.ts.map +1 -0
  76. package/dist/commands/workspace.js +81 -0
  77. package/dist/commands/workspace.js.map +1 -0
  78. package/dist/commands/world-acl.d.ts +22 -0
  79. package/dist/commands/world-acl.d.ts.map +1 -0
  80. package/dist/commands/world-acl.js +262 -0
  81. package/dist/commands/world-acl.js.map +1 -0
  82. package/dist/config.d.ts +31 -0
  83. package/dist/config.d.ts.map +1 -0
  84. package/dist/config.js +128 -0
  85. package/dist/config.js.map +1 -0
  86. package/dist/index.d.ts +3 -0
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/index.js +21 -0
  89. package/dist/index.js.map +1 -0
  90. package/dist/lib/API.d.ts +23 -0
  91. package/dist/lib/API.d.ts.map +1 -0
  92. package/dist/lib/API.js +175 -0
  93. package/dist/lib/API.js.map +1 -0
  94. package/dist/lib/Decentraland.d.ts +75 -0
  95. package/dist/lib/Decentraland.d.ts.map +1 -0
  96. package/dist/lib/Decentraland.js +227 -0
  97. package/dist/lib/Decentraland.js.map +1 -0
  98. package/dist/lib/Ethereum.d.ts +52 -0
  99. package/dist/lib/Ethereum.d.ts.map +1 -0
  100. package/dist/lib/Ethereum.js +245 -0
  101. package/dist/lib/Ethereum.js.map +1 -0
  102. package/dist/lib/IEthereumDataProvider.d.ts +17 -0
  103. package/dist/lib/IEthereumDataProvider.d.ts.map +1 -0
  104. package/dist/lib/IEthereumDataProvider.js +3 -0
  105. package/dist/lib/IEthereumDataProvider.js.map +1 -0
  106. package/dist/lib/LinkerAPI.d.ts +28 -0
  107. package/dist/lib/LinkerAPI.d.ts.map +1 -0
  108. package/dist/lib/LinkerAPI.js +151 -0
  109. package/dist/lib/LinkerAPI.js.map +1 -0
  110. package/dist/lib/Preview.d.ts +17 -0
  111. package/dist/lib/Preview.d.ts.map +1 -0
  112. package/dist/lib/Preview.js +113 -0
  113. package/dist/lib/Preview.js.map +1 -0
  114. package/dist/lib/Project.d.ts +152 -0
  115. package/dist/lib/Project.d.ts.map +1 -0
  116. package/dist/lib/Project.js +446 -0
  117. package/dist/lib/Project.js.map +1 -0
  118. package/dist/lib/Workspace.d.ts +21 -0
  119. package/dist/lib/Workspace.d.ts.map +1 -0
  120. package/dist/lib/Workspace.js +140 -0
  121. package/dist/lib/Workspace.js.map +1 -0
  122. package/dist/lib/WorldsContentServer.d.ts +27 -0
  123. package/dist/lib/WorldsContentServer.d.ts.map +1 -0
  124. package/dist/lib/WorldsContentServer.js +79 -0
  125. package/dist/lib/WorldsContentServer.js.map +1 -0
  126. package/dist/lib/WorldsContentServerLinkerAPI.d.ts +21 -0
  127. package/dist/lib/WorldsContentServerLinkerAPI.d.ts.map +1 -0
  128. package/dist/lib/WorldsContentServerLinkerAPI.js +105 -0
  129. package/dist/lib/WorldsContentServerLinkerAPI.js.map +1 -0
  130. package/dist/lib/adapters/proto/broker.d.ts +2 -0
  131. package/dist/lib/adapters/proto/broker.d.ts.map +1 -0
  132. package/dist/lib/adapters/proto/broker.js +2189 -0
  133. package/dist/lib/adapters/proto/broker.js.map +1 -0
  134. package/dist/lib/adapters/proto/comms.d.ts +2 -0
  135. package/dist/lib/adapters/proto/comms.d.ts.map +1 -0
  136. package/dist/lib/adapters/proto/comms.js +965 -0
  137. package/dist/lib/adapters/proto/comms.js.map +1 -0
  138. package/dist/lib/adapters/ws.d.ts +12 -0
  139. package/dist/lib/adapters/ws.d.ts.map +1 -0
  140. package/dist/lib/adapters/ws.js +20 -0
  141. package/dist/lib/adapters/ws.js.map +1 -0
  142. package/dist/lib/content/ContentService.d.ts +27 -0
  143. package/dist/lib/content/ContentService.d.ts.map +1 -0
  144. package/dist/lib/content/ContentService.js +60 -0
  145. package/dist/lib/content/ContentService.js.map +1 -0
  146. package/dist/lib/content/types.d.ts +12 -0
  147. package/dist/lib/content/types.d.ts.map +1 -0
  148. package/dist/lib/content/types.js +3 -0
  149. package/dist/lib/content/types.js.map +1 -0
  150. package/dist/lib/controllers/bff.d.ts +8 -0
  151. package/dist/lib/controllers/bff.d.ts.map +1 -0
  152. package/dist/lib/controllers/bff.js +58 -0
  153. package/dist/lib/controllers/bff.js.map +1 -0
  154. package/dist/lib/controllers/debugger.d.ts +4 -0
  155. package/dist/lib/controllers/debugger.d.ts.map +1 -0
  156. package/dist/lib/controllers/debugger.js +42 -0
  157. package/dist/lib/controllers/debugger.js.map +1 -0
  158. package/dist/lib/controllers/ecs6-endpoints.d.ts +11 -0
  159. package/dist/lib/controllers/ecs6-endpoints.d.ts.map +1 -0
  160. package/dist/lib/controllers/ecs6-endpoints.js +543 -0
  161. package/dist/lib/controllers/ecs6-endpoints.js.map +1 -0
  162. package/dist/lib/controllers/legacy-comms-v1.d.ts +7 -0
  163. package/dist/lib/controllers/legacy-comms-v1.d.ts.map +1 -0
  164. package/dist/lib/controllers/legacy-comms-v1.js +98 -0
  165. package/dist/lib/controllers/legacy-comms-v1.js.map +1 -0
  166. package/dist/lib/smartItems/buildSmartItem.d.ts +2 -0
  167. package/dist/lib/smartItems/buildSmartItem.d.ts.map +1 -0
  168. package/dist/lib/smartItems/buildSmartItem.js +18 -0
  169. package/dist/lib/smartItems/buildSmartItem.js.map +1 -0
  170. package/dist/lib/smartItems/packProject.d.ts +2 -0
  171. package/dist/lib/smartItems/packProject.d.ts.map +1 -0
  172. package/dist/lib/smartItems/packProject.js +31 -0
  173. package/dist/lib/smartItems/packProject.js.map +1 -0
  174. package/dist/main.d.ts +2 -0
  175. package/dist/main.d.ts.map +1 -0
  176. package/dist/main.js +151 -0
  177. package/dist/main.js.map +1 -0
  178. package/dist/project/installDependencies.d.ts +2 -0
  179. package/dist/project/installDependencies.d.ts.map +1 -0
  180. package/dist/project/installDependencies.js +57 -0
  181. package/dist/project/installDependencies.js.map +1 -0
  182. package/dist/project/isTypescriptProject.d.ts +2 -0
  183. package/dist/project/isTypescriptProject.d.ts.map +1 -0
  184. package/dist/project/isTypescriptProject.js +14 -0
  185. package/dist/project/isTypescriptProject.js.map +1 -0
  186. package/dist/project/projectInfo.d.ts +8 -0
  187. package/dist/project/projectInfo.d.ts.map +1 -0
  188. package/dist/project/projectInfo.js +89 -0
  189. package/dist/project/projectInfo.js.map +1 -0
  190. package/dist/project/updateBundleDependenciesField.d.ts +4 -0
  191. package/dist/project/updateBundleDependenciesField.d.ts.map +1 -0
  192. package/dist/project/updateBundleDependenciesField.js +67 -0
  193. package/dist/project/updateBundleDependenciesField.js.map +1 -0
  194. package/dist/sceneJson/index.d.ts +4 -0
  195. package/dist/sceneJson/index.d.ts.map +1 -0
  196. package/dist/sceneJson/index.js +24 -0
  197. package/dist/sceneJson/index.js.map +1 -0
  198. package/dist/sceneJson/lintSceneFile.d.ts +2 -0
  199. package/dist/sceneJson/lintSceneFile.d.ts.map +1 -0
  200. package/dist/sceneJson/lintSceneFile.js +13 -0
  201. package/dist/sceneJson/lintSceneFile.js.map +1 -0
  202. package/dist/sceneJson/utils.d.ts +3 -0
  203. package/dist/sceneJson/utils.d.ts.map +1 -0
  204. package/dist/sceneJson/utils.js +66 -0
  205. package/dist/sceneJson/utils.js.map +1 -0
  206. package/dist/utils/analytics.d.ts +42 -0
  207. package/dist/utils/analytics.d.ts.map +1 -0
  208. package/dist/utils/analytics.js +111 -0
  209. package/dist/utils/analytics.js.map +1 -0
  210. package/dist/utils/buildProject.d.ts +2 -0
  211. package/dist/utils/buildProject.d.ts.map +1 -0
  212. package/dist/utils/buildProject.js +26 -0
  213. package/dist/utils/buildProject.js.map +1 -0
  214. package/dist/utils/catalystPointers.d.ts +20 -0
  215. package/dist/utils/catalystPointers.d.ts.map +1 -0
  216. package/dist/utils/catalystPointers.js +51 -0
  217. package/dist/utils/catalystPointers.js.map +1 -0
  218. package/dist/utils/coordinateHelpers.d.ts +65 -0
  219. package/dist/utils/coordinateHelpers.d.ts.map +1 -0
  220. package/dist/utils/coordinateHelpers.js +126 -0
  221. package/dist/utils/coordinateHelpers.js.map +1 -0
  222. package/dist/utils/download.d.ts +3 -0
  223. package/dist/utils/download.d.ts.map +1 -0
  224. package/dist/utils/download.js +42 -0
  225. package/dist/utils/download.js.map +1 -0
  226. package/dist/utils/env.d.ts +6 -0
  227. package/dist/utils/env.d.ts.map +1 -0
  228. package/dist/utils/env.js +31 -0
  229. package/dist/utils/env.js.map +1 -0
  230. package/dist/utils/errors.d.ts +18 -0
  231. package/dist/utils/errors.d.ts.map +1 -0
  232. package/dist/utils/errors.js +27 -0
  233. package/dist/utils/errors.js.map +1 -0
  234. package/dist/utils/filesystem.d.ts +41 -0
  235. package/dist/utils/filesystem.d.ts.map +1 -0
  236. package/dist/utils/filesystem.js +84 -0
  237. package/dist/utils/filesystem.js.map +1 -0
  238. package/dist/utils/getDummyMappings.d.ts +3 -0
  239. package/dist/utils/getDummyMappings.d.ts.map +1 -0
  240. package/dist/utils/getDummyMappings.js +19 -0
  241. package/dist/utils/getDummyMappings.js.map +1 -0
  242. package/dist/utils/getProjectFilePaths.d.ts +2 -0
  243. package/dist/utils/getProjectFilePaths.d.ts.map +1 -0
  244. package/dist/utils/getProjectFilePaths.js +40 -0
  245. package/dist/utils/getProjectFilePaths.js.map +1 -0
  246. package/dist/utils/index.d.ts +11 -0
  247. package/dist/utils/index.d.ts.map +1 -0
  248. package/dist/utils/index.js +33 -0
  249. package/dist/utils/index.js.map +1 -0
  250. package/dist/utils/installedDependencies.d.ts +6 -0
  251. package/dist/utils/installedDependencies.d.ts.map +1 -0
  252. package/dist/utils/installedDependencies.js +44 -0
  253. package/dist/utils/installedDependencies.js.map +1 -0
  254. package/dist/utils/land.d.ts +4 -0
  255. package/dist/utils/land.d.ts.map +1 -0
  256. package/dist/utils/land.js +35 -0
  257. package/dist/utils/land.js.map +1 -0
  258. package/dist/utils/logging.d.ts +19 -0
  259. package/dist/utils/logging.d.ts.map +1 -0
  260. package/dist/utils/logging.js +97 -0
  261. package/dist/utils/logging.js.map +1 -0
  262. package/dist/utils/moduleHelpers.d.ts +22 -0
  263. package/dist/utils/moduleHelpers.d.ts.map +1 -0
  264. package/dist/utils/moduleHelpers.js +163 -0
  265. package/dist/utils/moduleHelpers.js.map +1 -0
  266. package/dist/utils/nodeAndNpmVersion.d.ts +5 -0
  267. package/dist/utils/nodeAndNpmVersion.d.ts.map +1 -0
  268. package/dist/utils/nodeAndNpmVersion.js +64 -0
  269. package/dist/utils/nodeAndNpmVersion.js.map +1 -0
  270. package/dist/utils/pathsExistOnDir.d.ts +2 -0
  271. package/dist/utils/pathsExistOnDir.d.ts.map +1 -0
  272. package/dist/utils/pathsExistOnDir.js +12 -0
  273. package/dist/utils/pathsExistOnDir.js.map +1 -0
  274. package/dist/utils/project.d.ts +29 -0
  275. package/dist/utils/project.d.ts.map +1 -0
  276. package/dist/utils/project.js +48 -0
  277. package/dist/utils/project.js.map +1 -0
  278. package/dist/utils/shellCommands.d.ts +19 -0
  279. package/dist/utils/shellCommands.d.ts.map +1 -0
  280. package/dist/utils/shellCommands.js +73 -0
  281. package/dist/utils/shellCommands.js.map +1 -0
  282. package/dist/utils/spinner.d.ts +6 -0
  283. package/dist/utils/spinner.d.ts.map +1 -0
  284. package/dist/utils/spinner.js +58 -0
  285. package/dist/utils/spinner.js.map +1 -0
  286. package/package.json +115 -0
  287. package/raim7jnk.cjs +1 -0
  288. package/samples/workspace/Dockerfile +21 -0
  289. package/samples/workspace/package.json +16 -0
@@ -0,0 +1,152 @@
1
+ /// <reference types="node" />
2
+ import { Scene } from '@dcl/schemas';
3
+ import { Coords } from '../utils/coordinateHelpers';
4
+ import { ProjectInfo } from '../project/projectInfo';
5
+ import { LinkerResponse } from './LinkerAPI';
6
+ export interface IFile {
7
+ path: string;
8
+ content: Buffer;
9
+ size: number;
10
+ }
11
+ declare type DeployInfo = {
12
+ linkerResponse?: LinkerResponse;
13
+ status?: 'deploying' | 'success';
14
+ };
15
+ export declare type ECSVersion = 'ecs6' | 'ecs7' | 'unknown';
16
+ export declare class Project {
17
+ private static MAX_FILE_SIZE_BYTES;
18
+ private projectWorkingDir;
19
+ private sceneFile;
20
+ private projectInfo;
21
+ private files;
22
+ private deployInfo;
23
+ constructor(projectWorkingDir: string);
24
+ getEcsVersion(): ECSVersion;
25
+ getEcsPackageVersion(): Promise<{
26
+ ecsVersion: "unknown";
27
+ packageVersion: string;
28
+ } | {
29
+ ecsVersion: "ecs6" | "ecs7";
30
+ packageVersion: string;
31
+ }>;
32
+ setDeployInfo(value: Partial<DeployInfo>): void;
33
+ getDeployInfo(): DeployInfo;
34
+ getProjectWorkingDir(): string;
35
+ getInfo(): ProjectInfo;
36
+ /**
37
+ * Returns `true` if the provided path contains a scene file
38
+ */
39
+ sceneFileExists(): Promise<boolean>;
40
+ /**
41
+ * Returns `true` if the project working directory is empty of files
42
+ */
43
+ isProjectDirEmpty(): Promise<boolean>;
44
+ /**
45
+ * Returns an object containing the contents of the `scene.json` file.
46
+ */
47
+ getSceneFile(): Promise<Scene>;
48
+ /**
49
+ * Returns true if the project contains a package.json file and an empty node_modules folder
50
+ */
51
+ needsDependencies(): Promise<boolean>;
52
+ /**
53
+ * Returns true if te project root contains a `tsconfig.json` file
54
+ * @param dir
55
+ */
56
+ isTypescriptProject(): Promise<boolean>;
57
+ /**
58
+ * Writes the provided websocket server to the `scene.json` file
59
+ * @param server The url to a websocket server
60
+ */
61
+ scaffoldWebsockets(server: string): Promise<void>;
62
+ /**
63
+ * Creates a new `scene.json` file
64
+ * @param path The path to the directory where the file will be written.
65
+ */
66
+ writeSceneFile(content: Partial<Scene>): Promise<void>;
67
+ /**
68
+ * Copies the contents of a specific sample into the project (for scaffolding purposes).
69
+ * Merges `scene.json` and `package.json` files
70
+ * @param project The name of the sample folder (used as an indentifier).
71
+ * @param destination The path to the project root. By default the current woxsrking directory.
72
+ */
73
+ copySample(project: string): Promise<void>;
74
+ /**
75
+ * Returns a promise of an object containing the base X and Y coordinates for a parcel.
76
+ */
77
+ getParcelCoordinates(): Promise<Coords>;
78
+ /**
79
+ * Returns a promise of an array of the parcels of the scene
80
+ */
81
+ getParcels(): Promise<Coords[]>;
82
+ /**
83
+ * Returns a promise of the owner address
84
+ */
85
+ getOwner(): Promise<string>;
86
+ /**
87
+ * Fails the execution if one of the parcel data is invalid
88
+ */
89
+ validateSceneOptions(): Promise<void>;
90
+ /**
91
+ * Writes the `.dclignore` file to the provided directory path.
92
+ * @param dir The target path where the file will be
93
+ */
94
+ writeDclIgnore(): Promise<string>;
95
+ /**
96
+ * Validates all the conditions required to operate over an existing project.
97
+ * Throws if a project contains an invalid main path or if the `scene.json` file is missing.
98
+ */
99
+ validateExistingProject(): Promise<void>;
100
+ /**
101
+ * Returns a promise of an array containing all the file paths for the given directory.
102
+ * @param dir The given directory where to list the file paths.
103
+ */
104
+ getAllFilePaths({ dir, rootFolder }?: {
105
+ dir: string;
106
+ rootFolder: string;
107
+ }): Promise<string[]>;
108
+ /**
109
+ * Returns a promise of an array of objects containing the path and the content for all the files in the project.
110
+ * All the paths added to the `.dclignore` file will be excluded from the results.
111
+ * Windows directory separators are replaced for POSIX separators.
112
+ * @param ignoreFile The contents of the .dclignore file
113
+ */
114
+ getFiles({ ignoreFiles, cache, skipFileSizeCheck }?: {
115
+ ignoreFiles?: string;
116
+ cache?: boolean;
117
+ skipFileSizeCheck?: boolean;
118
+ }): Promise<IFile[]>;
119
+ /**
120
+ * Returns the the contents of the `.dclignore` file
121
+ */
122
+ getDCLIgnore(): Promise<string | null>;
123
+ /**
124
+ * Returns `true` if the provided path contains a valid main file format.
125
+ * @param path The path to the main file.
126
+ */
127
+ private isValidMainFormat;
128
+ /**
129
+ * Returns true if the given URL is a valid websocket URL.
130
+ * @param url The given URL.
131
+ */
132
+ private isWebSocket;
133
+ /**
134
+ * Returns `true` if the path exists as a valid file or websocket URL.
135
+ * @param filePath The path to a given file.
136
+ */
137
+ private fileExists;
138
+ /**
139
+ * Fails the execution if one of the parcel data is invalid
140
+ * @param sceneFile The JSON parsed file of scene.json
141
+ */
142
+ private validateSceneData;
143
+ getSceneBaseCoords(): Promise<{
144
+ x: number;
145
+ y: number;
146
+ }>;
147
+ getSceneParcelCount(): Promise<number>;
148
+ checkCLIandECSCompatibility(): Promise<void>;
149
+ }
150
+ export declare function copySample(projectSample: string, destWorkingDir: string): Promise<void>;
151
+ export {};
152
+ //# sourceMappingURL=Project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Project.d.ts","sourceRoot":"","sources":["../../src/lib/Project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,446 @@
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.copySample = exports.Project = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const fs_extra_1 = __importDefault(require("fs-extra"));
9
+ const ignore_1 = __importDefault(require("ignore"));
10
+ const semver_1 = __importDefault(require("semver"));
11
+ const uuid_1 = require("uuid");
12
+ const filesystem_1 = require("../utils/filesystem");
13
+ const project_1 = require("../utils/project");
14
+ const errors_1 = require("../utils/errors");
15
+ const coordinateHelpers_1 = require("../utils/coordinateHelpers");
16
+ const projectInfo_1 = require("../project/projectInfo");
17
+ const sceneJson_1 = require("../sceneJson");
18
+ const logging_1 = require("../utils/logging");
19
+ const moduleHelpers_1 = require("../utils/moduleHelpers");
20
+ class Project {
21
+ constructor(projectWorkingDir) {
22
+ this.files = [];
23
+ this.deployInfo = {};
24
+ this.projectWorkingDir = projectWorkingDir || process.cwd();
25
+ const info = (0, projectInfo_1.getProjectInfo)(this.projectWorkingDir);
26
+ if (!info) {
27
+ throw new Error(`Unable to get project info of directory '${this.projectWorkingDir}'
28
+ Please, see if its json configuration file is wrong.`);
29
+ }
30
+ this.projectInfo = info;
31
+ }
32
+ getEcsVersion() {
33
+ const ecs6Path = path_1.default.resolve(this.projectWorkingDir, 'node_modules', 'decentraland-ecs');
34
+ const ecs7Path = path_1.default.resolve(this.projectWorkingDir, 'node_modules', '@dcl', 'sdk');
35
+ const ecs6 = fs_extra_1.default.pathExistsSync(ecs6Path);
36
+ const ecs7 = fs_extra_1.default.pathExistsSync(ecs7Path);
37
+ if (ecs6 && ecs7) {
38
+ throw new Error(`Conflict initializing project of '${this.projectWorkingDir}' because it has both 'decentraland-ecs' and '@dcl/sdk' packages installed.`);
39
+ }
40
+ else if (ecs6) {
41
+ return 'ecs6';
42
+ }
43
+ else if (ecs7) {
44
+ return 'ecs7';
45
+ }
46
+ return 'unknown';
47
+ }
48
+ async getEcsPackageVersion() {
49
+ const ecsVersion = this.getEcsVersion();
50
+ if (ecsVersion === 'unknown') {
51
+ return {
52
+ ecsVersion,
53
+ packageVersion: 'none'
54
+ };
55
+ }
56
+ const ecsPackageName = ecsVersion === 'ecs7' ? '@dcl/sdk' : 'decentraland-ecs';
57
+ const ecsPackageJson = await (0, filesystem_1.readJSON)(path_1.default.resolve((0, project_1.getNodeModulesPath)(this.projectWorkingDir), ecsPackageName, 'package.json'));
58
+ return {
59
+ ecsVersion,
60
+ packageVersion: ecsPackageJson.version
61
+ };
62
+ }
63
+ setDeployInfo(value) {
64
+ this.deployInfo = Object.assign(Object.assign({}, this.deployInfo), value);
65
+ }
66
+ getDeployInfo() {
67
+ return this.deployInfo;
68
+ }
69
+ getProjectWorkingDir() {
70
+ return this.projectWorkingDir;
71
+ }
72
+ getInfo() {
73
+ return this.projectInfo;
74
+ }
75
+ /**
76
+ * Returns `true` if the provided path contains a scene file
77
+ */
78
+ sceneFileExists() {
79
+ return fs_extra_1.default.pathExists((0, project_1.getSceneFilePath)(this.projectWorkingDir));
80
+ }
81
+ /**
82
+ * Returns `true` if the project working directory is empty of files
83
+ */
84
+ async isProjectDirEmpty() {
85
+ return (0, filesystem_1.isEmptyDirectory)(this.projectWorkingDir);
86
+ }
87
+ /**
88
+ * Returns an object containing the contents of the `scene.json` file.
89
+ */
90
+ async getSceneFile() {
91
+ if (this.sceneFile) {
92
+ return this.sceneFile;
93
+ }
94
+ try {
95
+ const sceneFile = await (0, filesystem_1.readJSON)((0, project_1.getSceneFilePath)(this.projectWorkingDir));
96
+ this.sceneFile = sceneFile;
97
+ return sceneFile;
98
+ }
99
+ catch (e) {
100
+ (0, errors_1.fail)(errors_1.ErrorType.PROJECT_ERROR, `Unable to read 'scene.json' file. Try initializing the project using 'dcl init'.
101
+ \t > Folder: ${this.projectWorkingDir}
102
+ `);
103
+ }
104
+ return this.sceneFile;
105
+ }
106
+ /**
107
+ * Returns true if the project contains a package.json file and an empty node_modules folder
108
+ */
109
+ async needsDependencies() {
110
+ const files = await this.getAllFilePaths({
111
+ dir: this.projectWorkingDir,
112
+ rootFolder: this.projectWorkingDir
113
+ });
114
+ const hasPackageFile = files.some((file) => file === 'package.json');
115
+ const nodeModulesPath = path_1.default.resolve(this.projectWorkingDir, 'node_modules');
116
+ const hasNodeModulesFolder = await fs_extra_1.default.pathExists(nodeModulesPath);
117
+ const isNodeModulesEmpty = (await this.getAllFilePaths({
118
+ dir: nodeModulesPath,
119
+ rootFolder: this.projectWorkingDir
120
+ })).length === 0;
121
+ if (hasPackageFile && (!hasNodeModulesFolder || isNodeModulesEmpty)) {
122
+ return true;
123
+ }
124
+ return false;
125
+ }
126
+ /**
127
+ * Returns true if te project root contains a `tsconfig.json` file
128
+ * @param dir
129
+ */
130
+ async isTypescriptProject() {
131
+ const files = await this.getAllFilePaths({
132
+ dir: this.projectWorkingDir,
133
+ rootFolder: this.projectWorkingDir
134
+ });
135
+ return files.some((file) => file === 'tsconfig.json');
136
+ }
137
+ /**
138
+ * Writes the provided websocket server to the `scene.json` file
139
+ * @param server The url to a websocket server
140
+ */
141
+ async scaffoldWebsockets(server) {
142
+ await this.copySample('websockets');
143
+ if (server) {
144
+ await this.writeSceneFile({ main: server });
145
+ }
146
+ }
147
+ /**
148
+ * Creates a new `scene.json` file
149
+ * @param path The path to the directory where the file will be written.
150
+ */
151
+ writeSceneFile(content) {
152
+ return (0, filesystem_1.writeJSON)((0, project_1.getSceneFilePath)(this.projectWorkingDir), content);
153
+ }
154
+ /**
155
+ * Copies the contents of a specific sample into the project (for scaffolding purposes).
156
+ * Merges `scene.json` and `package.json` files
157
+ * @param project The name of the sample folder (used as an indentifier).
158
+ * @param destination The path to the project root. By default the current woxsrking directory.
159
+ */
160
+ async copySample(project) {
161
+ await copySample(project, this.projectWorkingDir);
162
+ }
163
+ /**
164
+ * Returns a promise of an object containing the base X and Y coordinates for a parcel.
165
+ */
166
+ async getParcelCoordinates() {
167
+ const sceneFile = await this.getSceneFile();
168
+ const { base } = sceneFile.scene;
169
+ return (0, coordinateHelpers_1.getObject)(base);
170
+ }
171
+ /**
172
+ * Returns a promise of an array of the parcels of the scene
173
+ */
174
+ async getParcels() {
175
+ const sceneFile = await this.getSceneFile();
176
+ return sceneFile.scene.parcels.map(coordinateHelpers_1.getObject);
177
+ }
178
+ /**
179
+ * Returns a promise of the owner address
180
+ */
181
+ async getOwner() {
182
+ const { owner } = await this.getSceneFile();
183
+ if (!owner) {
184
+ (0, errors_1.fail)(errors_1.ErrorType.PROJECT_ERROR, `Missing owner attribute at scene.json. Owner attribute is required for deploying`);
185
+ }
186
+ return (owner === null || owner === void 0 ? void 0 : owner.toLowerCase()) || '';
187
+ }
188
+ /**
189
+ * Fails the execution if one of the parcel data is invalid
190
+ */
191
+ async validateSceneOptions() {
192
+ const sceneFile = await this.getSceneFile();
193
+ return this.validateSceneData(sceneFile);
194
+ }
195
+ /**
196
+ * Writes the `.dclignore` file to the provided directory path.
197
+ * @param dir The target path where the file will be
198
+ */
199
+ async writeDclIgnore() {
200
+ const content = [
201
+ '.*',
202
+ 'package.json',
203
+ 'package-lock.json',
204
+ 'yarn-lock.json',
205
+ 'build.json',
206
+ 'export',
207
+ 'tsconfig.json',
208
+ 'tslint.json',
209
+ 'node_modules',
210
+ '*.ts',
211
+ '*.tsx',
212
+ 'Dockerfile',
213
+ 'dist',
214
+ 'README.md',
215
+ '*.blend',
216
+ '*.fbx',
217
+ '*.zip',
218
+ '*.rar'
219
+ ].join('\n');
220
+ await fs_extra_1.default.outputFile(path_1.default.join(this.projectWorkingDir, project_1.DCLIGNORE_FILE), content);
221
+ return content;
222
+ }
223
+ /**
224
+ * Validates all the conditions required to operate over an existing project.
225
+ * Throws if a project contains an invalid main path or if the `scene.json` file is missing.
226
+ */
227
+ async validateExistingProject() {
228
+ const sceneFile = await this.getSceneFile();
229
+ if (!this.isWebSocket(sceneFile.main)) {
230
+ if (!this.isValidMainFormat(sceneFile.main)) {
231
+ (0, errors_1.fail)(errors_1.ErrorType.PROJECT_ERROR, `Main scene format file (${sceneFile.main}) is not a supported format`);
232
+ }
233
+ if (sceneFile.main !== null && !(await this.fileExists(sceneFile.main))) {
234
+ (0, errors_1.fail)(errors_1.ErrorType.PROJECT_ERROR, `Main scene file ${sceneFile.main} is missing in folder ${this.projectWorkingDir}`);
235
+ }
236
+ }
237
+ }
238
+ /**
239
+ * Returns a promise of an array containing all the file paths for the given directory.
240
+ * @param dir The given directory where to list the file paths.
241
+ */
242
+ async getAllFilePaths({ dir, rootFolder } = {
243
+ dir: this.projectWorkingDir,
244
+ rootFolder: this.projectWorkingDir
245
+ }) {
246
+ try {
247
+ const files = await fs_extra_1.default.readdir(dir);
248
+ let tmpFiles = [];
249
+ for (let i = 0; i < files.length; i++) {
250
+ const file = files[i];
251
+ const filePath = path_1.default.resolve(dir, file);
252
+ const relativePath = path_1.default.relative(rootFolder, filePath);
253
+ const stat = await fs_extra_1.default.stat(filePath);
254
+ if (stat.isDirectory()) {
255
+ const folderFiles = await this.getAllFilePaths({
256
+ dir: filePath,
257
+ rootFolder
258
+ });
259
+ tmpFiles = tmpFiles.concat(folderFiles);
260
+ }
261
+ else {
262
+ tmpFiles.push(relativePath);
263
+ }
264
+ }
265
+ return tmpFiles;
266
+ }
267
+ catch (e) {
268
+ return [];
269
+ }
270
+ }
271
+ /**
272
+ * Returns a promise of an array of objects containing the path and the content for all the files in the project.
273
+ * All the paths added to the `.dclignore` file will be excluded from the results.
274
+ * Windows directory separators are replaced for POSIX separators.
275
+ * @param ignoreFile The contents of the .dclignore file
276
+ */
277
+ async getFiles({ ignoreFiles = '', cache = false, skipFileSizeCheck = false } = {}) {
278
+ if (cache && this.files.length) {
279
+ return this.files;
280
+ }
281
+ const files = await this.getAllFilePaths();
282
+ const filteredFiles = ignore_1.default()
283
+ .add(ignoreFiles.split(/\n/g).map(($) => $.trim()))
284
+ .filter(files);
285
+ const data = [];
286
+ for (let i = 0; i < filteredFiles.length; i++) {
287
+ const file = filteredFiles[i];
288
+ const filePath = path_1.default.resolve(this.projectWorkingDir, file);
289
+ const stat = await fs_extra_1.default.stat(filePath);
290
+ if (stat.size > Project.MAX_FILE_SIZE_BYTES && !skipFileSizeCheck) {
291
+ (0, errors_1.fail)(errors_1.ErrorType.UPLOAD_ERROR, `Maximum file size exceeded: '${file}' is larger than ${Project.MAX_FILE_SIZE_BYTES / 1e6}MB`);
292
+ }
293
+ const content = await fs_extra_1.default.readFile(filePath);
294
+ data.push({
295
+ path: file.replace(/\\/g, '/'),
296
+ content: Buffer.from(content),
297
+ size: stat.size
298
+ });
299
+ }
300
+ this.files = data;
301
+ return data;
302
+ }
303
+ /**
304
+ * Returns the the contents of the `.dclignore` file
305
+ */
306
+ async getDCLIgnore() {
307
+ let ignoreFile;
308
+ try {
309
+ ignoreFile = await fs_extra_1.default.readFile((0, project_1.getIgnoreFilePath)(this.projectWorkingDir), 'utf8');
310
+ }
311
+ catch (e) {
312
+ ignoreFile = null;
313
+ }
314
+ return ignoreFile;
315
+ }
316
+ /**
317
+ * Returns `true` if the provided path contains a valid main file format.
318
+ * @param path The path to the main file.
319
+ */
320
+ isValidMainFormat(path) {
321
+ const supportedExtensions = new Set(['js', 'html', 'xml']);
322
+ const mainExt = path ? path.split('.').pop() : null;
323
+ return path === null || !!(mainExt && supportedExtensions.has(mainExt));
324
+ }
325
+ /**
326
+ * Returns true if the given URL is a valid websocket URL.
327
+ * @param url The given URL.
328
+ */
329
+ isWebSocket(url) {
330
+ return /wss?\:\/\//gi.test(url);
331
+ }
332
+ /**
333
+ * Returns `true` if the path exists as a valid file or websocket URL.
334
+ * @param filePath The path to a given file.
335
+ */
336
+ async fileExists(filePath) {
337
+ if (this.isWebSocket(filePath)) {
338
+ return true;
339
+ }
340
+ return fs_extra_1.default.pathExists(path_1.default.join(this.projectWorkingDir, filePath));
341
+ }
342
+ /**
343
+ * Fails the execution if one of the parcel data is invalid
344
+ * @param sceneFile The JSON parsed file of scene.json
345
+ */
346
+ validateSceneData(sceneFile) {
347
+ const { base, parcels } = sceneFile.scene;
348
+ const parcelSet = new Set(parcels);
349
+ if (!base) {
350
+ (0, errors_1.fail)(errors_1.ErrorType.PROJECT_ERROR, 'Missing scene base attribute at scene.json');
351
+ }
352
+ if (!parcels) {
353
+ (0, errors_1.fail)(errors_1.ErrorType.PROJECT_ERROR, 'Missing scene parcels attribute at scene.json');
354
+ }
355
+ if (parcelSet.size < parcels.length) {
356
+ (0, errors_1.fail)(errors_1.ErrorType.PROJECT_ERROR, `There are duplicated parcels at scene.json. Project folder ${this.projectWorkingDir}`);
357
+ }
358
+ if (!parcelSet.has(base)) {
359
+ (0, errors_1.fail)(errors_1.ErrorType.PROJECT_ERROR, `Your base parcel ${base} should be included on parcels attribute at scene.json`);
360
+ }
361
+ const objParcels = parcels.map(coordinateHelpers_1.getObject);
362
+ objParcels.forEach(({ x, y }) => {
363
+ if ((0, coordinateHelpers_1.inBounds)(x, y)) {
364
+ return;
365
+ }
366
+ const { minX, maxX } = (0, coordinateHelpers_1.getBounds)();
367
+ (0, errors_1.fail)(errors_1.ErrorType.PROJECT_ERROR, `Coordinates ${x},${y} are outside of allowed limits (from ${minX} to ${maxX})`);
368
+ });
369
+ if (!(0, coordinateHelpers_1.areConnected)(objParcels)) {
370
+ (0, errors_1.fail)(errors_1.ErrorType.PROJECT_ERROR, 'Parcels described on scene.json are not connected. They should be one next to each other');
371
+ }
372
+ }
373
+ async getSceneBaseCoords() {
374
+ try {
375
+ const sceneFile = await (0, sceneJson_1.getSceneFile)(this.projectWorkingDir);
376
+ const [x, y] = sceneFile.scene.base.replace(/\ /g, '').split(',');
377
+ return { x: parseInt(x), y: parseInt(y) };
378
+ }
379
+ catch (e) {
380
+ console.log((0, logging_1.error)(`Could not open "scene.json" file`));
381
+ throw e;
382
+ }
383
+ }
384
+ async getSceneParcelCount() {
385
+ try {
386
+ const sceneFile = await (0, sceneJson_1.getSceneFile)(this.projectWorkingDir);
387
+ return sceneFile.scene.parcels.length;
388
+ }
389
+ catch (e) {
390
+ console.log((0, logging_1.error)(`Could not open "scene.json" file`));
391
+ throw e;
392
+ }
393
+ }
394
+ async checkCLIandECSCompatibility() {
395
+ const ecsVersion = this.getEcsVersion();
396
+ if (ecsVersion === 'unknown') {
397
+ throw new Error('There is no SDK installed to know how version should use. Please run `npm install`.');
398
+ }
399
+ const ecsPackageName = ecsVersion === 'ecs7' ? '@dcl/sdk' : 'decentraland-ecs';
400
+ const ecsPackageJson = await (0, filesystem_1.readJSON)(path_1.default.resolve((0, project_1.getNodeModulesPath)(this.projectWorkingDir), ecsPackageName, 'package.json'));
401
+ const cliPackageJson = await (0, moduleHelpers_1.getCLIPackageJson)();
402
+ if (ecsVersion === 'ecs6') {
403
+ if (cliPackageJson.minEcsVersion && semver_1.default.lt(ecsPackageJson.version, `${cliPackageJson.minEcsVersion}`)) {
404
+ throw new Error([
405
+ 'This version of decentraland-cli (dcl) requires an ECS version higher than',
406
+ cliPackageJson.minEcsVersion,
407
+ 'the installed version is',
408
+ ecsPackageJson.version,
409
+ 'please go to https://docs.decentraland.org/creator/development-guide/cli/ to know more about the versions and upgrade guides'
410
+ ].join(' '));
411
+ }
412
+ }
413
+ if (ecsPackageJson.minCliVersion && semver_1.default.lt(cliPackageJson.version, ecsPackageJson.minCliVersion)) {
414
+ throw new Error([
415
+ `This version of ${ecsPackageName} requires a version of the CLI (dcl) higher than`,
416
+ ecsPackageJson.minCliVersion,
417
+ '\nThe installed CLI version is',
418
+ cliPackageJson.version,
419
+ `\nRun npm i -g decentraland@${ecsPackageJson.minCliVersion} or npm i -g decentraland@latest to fix this issue.\n`,
420
+ '\nGo to https://docs.decentraland.org/creator/development-guide/cli/ to know more about the versions and upgrade guides'
421
+ ].join(' '));
422
+ }
423
+ }
424
+ }
425
+ exports.Project = Project;
426
+ Project.MAX_FILE_SIZE_BYTES = 50 * 1e6; // 50mb
427
+ async function copySample(projectSample, destWorkingDir) {
428
+ const src = path_1.default.resolve(__dirname, '..', '..', 'samples', projectSample);
429
+ const files = await fs_extra_1.default.readdir(src);
430
+ for (let i = 0; i < files.length; i++) {
431
+ const file = files[i];
432
+ if (file === project_1.WEARABLE_JSON_FILE) {
433
+ const wearableJsonFile = await (0, filesystem_1.readJSON)(path_1.default.join(src, file));
434
+ const wearableJsonFileWithUuid = Object.assign(Object.assign({}, wearableJsonFile), { id: (0, uuid_1.v4)() });
435
+ await (0, filesystem_1.writeJSON)(path_1.default.join(destWorkingDir, file), wearableJsonFileWithUuid);
436
+ }
437
+ else if (file === project_1.GITIGNORE_FILE || file === project_1.NPMRC_FILE || file === project_1.ESTLINTRC_FILE) {
438
+ await fs_extra_1.default.copy(path_1.default.join(src, file), path_1.default.join(destWorkingDir, '.' + file));
439
+ }
440
+ else {
441
+ await fs_extra_1.default.copy(path_1.default.join(src, file), path_1.default.join(destWorkingDir, file));
442
+ }
443
+ }
444
+ }
445
+ exports.copySample = copySample;
446
+ //# sourceMappingURL=Project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Project.js","sourceRoot":"","sources":["../../src/lib/Project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { Project } from './Project';
2
+ export declare const workspaceConfigFile = "dcl-workspace.json";
3
+ export interface Workspace {
4
+ getAllProjects: () => Project[];
5
+ getProject: (index: number) => Project;
6
+ getSingleProject: () => Project | null;
7
+ isSingleProject: () => boolean;
8
+ hasPortableExperience: () => boolean;
9
+ getBaseCoords: () => Promise<{
10
+ x: number;
11
+ y: number;
12
+ }>;
13
+ getParcelCount: () => Promise<number>;
14
+ addProject: (projectPath: string) => Promise<void>;
15
+ }
16
+ export declare const createWorkspace: ({ workingDir, workspaceFilePath }: {
17
+ workingDir?: string | undefined;
18
+ workspaceFilePath?: string | undefined;
19
+ }) => Workspace;
20
+ export declare function initializeWorkspace(workingDir: string): Promise<Workspace>;
21
+ //# sourceMappingURL=Workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Workspace.d.ts","sourceRoot":"","sources":["../../src/lib/Workspace.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,OAAO,EAAE,MAAM,WAAW,CAAA;AAa/C,eAAO,MAAM,mBAAmB,uBAAuB,CAAA;AA2BvD,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,MAAM,OAAO,EAAE,CAAA;IAC/B,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IACtC,gBAAgB,EAAE,MAAM,OAAO,GAAG,IAAI,CAAA;IACtC,eAAe,EAAE,MAAM,OAAO,CAAA;IAC9B,qBAAqB,EAAE,MAAM,OAAO,CAAA;IACpC,aAAa,EAAE,MAAM,OAAO,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtD,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnD;AAED,eAAO,MAAM,eAAe;;;MAMxB,SAkGH,CAAA;AAED,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAwBhF"}