decentrand 3.21.0

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 (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/samples/workspace/Dockerfile +21 -0
  288. package/samples/workspace/package.json +16 -0
  289. package/sbzkmrj2.cjs +1 -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":";;;;;;AAAA,gDAAuB;AACvB,wDAAyB;AACzB,oDAA2B;AAE3B,oDAA2B;AAC3B,+BAAmC;AAEnC,oDAA2E;AAC3E,8CASyB;AACzB,4CAAiD;AACjD,kEAAiG;AACjG,wDAAoE;AACpE,4CAA2C;AAC3C,8CAAwC;AAExC,0DAA0D;AAe1D,MAAa,OAAO;IASlB,YAAY,iBAAyB;QAH7B,UAAK,GAAY,EAAE,CAAA;QACnB,eAAU,GAAe,EAAE,CAAA;QAGjC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;QAC3D,MAAM,IAAI,GAAG,IAAA,4BAAc,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAEnD,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,4CAA4C,IAAI,CAAC,iBAAiB;2DAC7B,CAAC,CAAA;SACvD;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;IAED,aAAa;QACX,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAA;QAEzF,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAEpF,MAAM,IAAI,GAAG,kBAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QACxC,MAAM,IAAI,GAAG,kBAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QAExC,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,MAAM,IAAI,KAAK,CACb,qCAAqC,IAAI,CAAC,iBAAiB,6EAA6E,CACzI,CAAA;SACF;aAAM,IAAI,IAAI,EAAE;YACf,OAAO,MAAM,CAAA;SACd;aAAM,IAAI,IAAI,EAAE;YACf,OAAO,MAAM,CAAA;SACd;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAEvC,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,OAAO;gBACL,UAAU;gBACV,cAAc,EAAE,MAAM;aACvB,CAAA;SACF;QAED,MAAM,cAAc,GAAG,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAA;QAC9E,MAAM,cAAc,GAAG,MAAM,IAAA,qBAAQ,EAElC,cAAI,CAAC,OAAO,CAAC,IAAA,4BAAkB,EAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAA;QAE5F,OAAO;YACL,UAAU;YACV,cAAc,EAAE,cAAc,CAAC,OAAO;SACvC,CAAA;IACH,CAAC;IAED,aAAa,CAAC,KAA0B;QACtC,IAAI,CAAC,UAAU,mCAAQ,IAAI,CAAC,UAAU,GAAK,KAAK,CAAE,CAAA;IACpD,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAA;IAC/B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,kBAAE,CAAC,UAAU,CAAC,IAAA,0BAAgB,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAChE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAA,6BAAgB,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,SAAS,CAAA;SACtB;QAED,IAAI;YACF,MAAM,SAAS,GAAG,MAAM,IAAA,qBAAQ,EAAQ,IAAA,0BAAgB,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;YACjF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;YAC1B,OAAO,SAAS,CAAA;SACjB;QAAC,OAAO,CAAC,EAAE;YACV,IAAA,aAAI,EACF,kBAAS,CAAC,aAAa,EACvB;uBACe,IAAI,CAAC,iBAAiB;SACpC,CACF,CAAA;SACF;QACD,OAAO,IAAI,CAAC,SAAU,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC;YACvC,GAAG,EAAE,IAAI,CAAC,iBAAiB;YAC3B,UAAU,EAAE,IAAI,CAAC,iBAAiB;SACnC,CAAC,CAAA;QACF,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC,CAAA;QACpE,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA;QAC5E,MAAM,oBAAoB,GAAG,MAAM,kBAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;QACjE,MAAM,kBAAkB,GACtB,CACE,MAAM,IAAI,CAAC,eAAe,CAAC;YACzB,GAAG,EAAE,eAAe;YACpB,UAAU,EAAE,IAAI,CAAC,iBAAiB;SACnC,CAAC,CACH,CAAC,MAAM,KAAK,CAAC,CAAA;QAEhB,IAAI,cAAc,IAAI,CAAC,CAAC,oBAAoB,IAAI,kBAAkB,CAAC,EAAE;YACnE,OAAO,IAAI,CAAA;SACZ;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC;YACvC,GAAG,EAAE,IAAI,CAAC,iBAAiB;YAC3B,UAAU,EAAE,IAAI,CAAC,iBAAiB;SACnC,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,CAAA;IACvD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAc;QACrC,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QAEnC,IAAI,MAAM,EAAE;YACV,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;SAC5C;IACH,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,OAAuB;QACpC,OAAO,IAAA,sBAAS,EAAC,IAAA,0BAAgB,EAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAA;IACrE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB;QACxB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,KAAK,CAAA;QAChC,OAAO,IAAA,6BAAS,EAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAC3C,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,6BAAS,CAAC,CAAA;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAC3C,IAAI,CAAC,KAAK,EAAE;YACV,IAAA,aAAI,EAAC,kBAAS,CAAC,aAAa,EAAE,kFAAkF,CAAC,CAAA;SAClH;QACD,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,EAAE,KAAI,EAAE,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB;QACxB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAC3C,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC1C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,OAAO,GAAG;YACd,IAAI;YACJ,cAAc;YACd,mBAAmB;YACnB,gBAAgB;YAChB,YAAY;YACZ,QAAQ;YACR,eAAe;YACf,aAAa;YACb,cAAc;YACd,MAAM;YACN,OAAO;YACP,YAAY;YACZ,MAAM;YACN,WAAW;YACX,SAAS;YACT,OAAO;YACP,OAAO;YACP,OAAO;SACR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACZ,MAAM,kBAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,wBAAc,CAAC,EAAE,OAAO,CAAC,CAAA;QAC/E,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,uBAAuB;QAC3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAE3C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC3C,IAAA,aAAI,EAAC,kBAAS,CAAC,aAAa,EAAE,2BAA2B,SAAS,CAAC,IAAI,6BAA6B,CAAC,CAAA;aACtG;YAED,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;gBACvE,IAAA,aAAI,EACF,kBAAS,CAAC,aAAa,EACvB,mBAAmB,SAAS,CAAC,IAAI,yBAAyB,IAAI,CAAC,iBAAiB,EAAE,CACnF,CAAA;aACF;SACF;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CACnB,EAAE,GAAG,EAAE,UAAU,KAA0C;QACzD,GAAG,EAAE,IAAI,CAAC,iBAAiB;QAC3B,UAAU,EAAE,IAAI,CAAC,iBAAiB;KACnC;QAED,IAAI;YACF,MAAM,KAAK,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACnC,IAAI,QAAQ,GAAa,EAAE,CAAA;YAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBACrB,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;gBACxC,MAAM,YAAY,GAAG,cAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;gBACxD,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAEpC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;oBACtB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC;wBAC7C,GAAG,EAAE,QAAQ;wBACb,UAAU;qBACX,CAAC,CAAA;oBACF,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;iBACxC;qBAAM;oBACL,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;iBAC5B;aACF;YAED,OAAO,QAAQ,CAAA;SAChB;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,EAAE,CAAA;SACV;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,EACb,WAAW,GAAG,EAAE,EAChB,KAAK,GAAG,KAAK,EACb,iBAAiB,GAAG,KAAK,KAKvB,EAAE;QACJ,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC9B,OAAO,IAAI,CAAC,KAAK,CAAA;SAClB;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QAC1C,MAAM,aAAa,GAAI,gBAAc,EAAE;aACpC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAClD,MAAM,CAAC,KAAK,CAAC,CAAA;QAChB,MAAM,IAAI,GAAG,EAAE,CAAA;QAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;YAC7B,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;YAC3D,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAEpC,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,mBAAmB,IAAI,CAAC,iBAAiB,EAAE;gBACjE,IAAA,aAAI,EACF,kBAAS,CAAC,YAAY,EACtB,gCAAgC,IAAI,oBAAoB,OAAO,CAAC,mBAAmB,GAAG,GAAG,IAAI,CAC9F,CAAA;aACF;YAED,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAE3C,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;gBAC9B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAA;SACH;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,IAAI,UAAU,CAAA;QAEd,IAAI;YACF,UAAU,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,IAAA,2BAAiB,EAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAA;SAClF;QAAC,OAAO,CAAC,EAAE;YACV,UAAU,GAAG,IAAI,CAAA;SAClB;QAED,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,IAAmB;QAC3C,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QACnD,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IACzE,CAAC;IAED;;;OAGG;IACK,WAAW,CAAC,GAAW;QAC7B,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,UAAU,CAAC,QAAgB;QACvC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAA;SACZ;QAED,OAAO,kBAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAA;IACnE,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,SAAgB;QACxC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,KAAK,CAAA;QACzC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;QAElC,IAAI,CAAC,IAAI,EAAE;YACT,IAAA,aAAI,EAAC,kBAAS,CAAC,aAAa,EAAE,4CAA4C,CAAC,CAAA;SAC5E;QAED,IAAI,CAAC,OAAO,EAAE;YACZ,IAAA,aAAI,EAAC,kBAAS,CAAC,aAAa,EAAE,+CAA+C,CAAC,CAAA;SAC/E;QAED,IAAI,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE;YACnC,IAAA,aAAI,EACF,kBAAS,CAAC,aAAa,EACvB,8DAA8D,IAAI,CAAC,iBAAiB,EAAE,CACvF,CAAA;SACF;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACxB,IAAA,aAAI,EAAC,kBAAS,CAAC,aAAa,EAAE,oBAAoB,IAAI,wDAAwD,CAAC,CAAA;SAChH;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,6BAAS,CAAC,CAAA;QACzC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;YAC9B,IAAI,IAAA,4BAAQ,EAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBAClB,OAAM;aACP;YACD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAA,6BAAS,GAAE,CAAA;YAClC,IAAA,aAAI,EAAC,kBAAS,CAAC,aAAa,EAAE,eAAe,CAAC,IAAI,CAAC,wCAAwC,IAAI,OAAO,IAAI,GAAG,CAAC,CAAA;QAChH,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,IAAA,gCAAY,EAAC,UAAU,CAAC,EAAE;YAC7B,IAAA,aAAI,EACF,kBAAS,CAAC,aAAa,EACvB,0FAA0F,CAC3F,CAAA;SACF;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,IAAI;YACF,MAAM,SAAS,GAAG,MAAM,IAAA,wBAAY,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAC5D,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACjE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;SAC1C;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,IAAA,eAAK,EAAC,kCAAkC,CAAC,CAAC,CAAA;YACtD,MAAM,CAAC,CAAA;SACR;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,IAAI;YACF,MAAM,SAAS,GAAG,MAAM,IAAA,wBAAY,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAC5D,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA;SACtC;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,IAAA,eAAK,EAAC,kCAAkC,CAAC,CAAC,CAAA;YACtD,MAAM,CAAC,CAAA;SACR;IACH,CAAC;IAED,KAAK,CAAC,2BAA2B;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACvC,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAA;SACvG;QAED,MAAM,cAAc,GAAG,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAA;QAC9E,MAAM,cAAc,GAAG,MAAM,IAAA,qBAAQ,EAGlC,cAAI,CAAC,OAAO,CAAC,IAAA,4BAAkB,EAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAA;QAE5F,MAAM,cAAc,GAAG,MAAM,IAAA,iCAAiB,GAG1C,CAAA;QAEJ,IAAI,UAAU,KAAK,MAAM,EAAE;YACzB,IAAI,cAAc,CAAC,aAAa,IAAI,gBAAM,CAAC,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC,EAAE;gBACxG,MAAM,IAAI,KAAK,CACb;oBACE,4EAA4E;oBAC5E,cAAc,CAAC,aAAa;oBAC5B,0BAA0B;oBAC1B,cAAc,CAAC,OAAO;oBACtB,8HAA8H;iBAC/H,CAAC,IAAI,CAAC,GAAG,CAAC,CACZ,CAAA;aACF;SACF;QAED,IAAI,cAAc,CAAC,aAAa,IAAI,gBAAM,CAAC,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,aAAa,CAAC,EAAE;YACnG,MAAM,IAAI,KAAK,CACb;gBACE,mBAAmB,cAAc,kDAAkD;gBACnF,cAAc,CAAC,aAAa;gBAC5B,gCAAgC;gBAChC,cAAc,CAAC,OAAO;gBACtB,+BAA+B,cAAc,CAAC,aAAa,uDAAuD;gBAClH,yHAAyH;aAC1H,CAAC,IAAI,CAAC,GAAG,CAAC,CACZ,CAAA;SACF;IACH,CAAC;;AA5fH,0BA6fC;AA5fgB,2BAAmB,GAAG,EAAE,GAAG,GAAG,CAAA,CAAC,OAAO;AA8fhD,KAAK,UAAU,UAAU,CAAC,aAAqB,EAAE,cAAsB;IAC5E,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;IACzE,MAAM,KAAK,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,IAAI,KAAK,4BAAkB,EAAE;YAC/B,MAAM,gBAAgB,GAAG,MAAM,IAAA,qBAAQ,EAAM,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;YAClE,MAAM,wBAAwB,mCAAQ,gBAAgB,KAAE,EAAE,EAAE,IAAA,SAAM,GAAE,GAAE,CAAA;YACtE,MAAM,IAAA,sBAAS,EAAC,cAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,wBAAwB,CAAC,CAAA;SAC3E;aAAM,IAAI,IAAI,KAAK,wBAAc,IAAI,IAAI,KAAK,oBAAU,IAAI,IAAI,KAAK,wBAAc,EAAE;YACpF,MAAM,kBAAE,CAAC,IAAI,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,cAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAA;SAC3E;aAAM;YACL,MAAM,kBAAE,CAAC,IAAI,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,cAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAA;SACrE;KACF;AACH,CAAC;AAhBD,gCAgBC"}
@@ -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"}