dcentraland 3.21.0
Sign up to get free protection for your applications and to get access to all the features.
- package/LICENSE +201 -0
- package/README.md +56 -0
- package/abi/EstateRegistry.json +1226 -0
- package/abi/LANDRegistry.json +1372 -0
- package/abi/MANAToken.json +410 -0
- package/dist/commands/build.d.ts +3 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +108 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/coords.d.ts +3 -0
- package/dist/commands/coords.d.ts.map +1 -0
- package/dist/commands/coords.js +122 -0
- package/dist/commands/coords.js.map +1 -0
- package/dist/commands/deploy.d.ts +4 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +280 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/export.d.ts +3 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +20 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/index.d.ts +3 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +19 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/info.d.ts +3 -0
- package/dist/commands/info.d.ts.map +1 -0
- package/dist/commands/info.js +186 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/init/help.d.ts +12 -0
- package/dist/commands/init/help.d.ts.map +1 -0
- package/dist/commands/init/help.js +41 -0
- package/dist/commands/init/help.js.map +1 -0
- package/dist/commands/init/index.d.ts +3 -0
- package/dist/commands/init/index.d.ts.map +1 -0
- package/dist/commands/init/index.js +96 -0
- package/dist/commands/init/index.js.map +1 -0
- package/dist/commands/init/library.d.ts +1 -0
- package/dist/commands/init/library.d.ts.map +1 -0
- package/dist/commands/init/library.js +2 -0
- package/dist/commands/init/library.js.map +1 -0
- package/dist/commands/init/repositories.d.ts +11 -0
- package/dist/commands/init/repositories.d.ts.map +1 -0
- package/dist/commands/init/repositories.js +40 -0
- package/dist/commands/init/repositories.js.map +1 -0
- package/dist/commands/init/scene.d.ts +3 -0
- package/dist/commands/init/scene.d.ts.map +1 -0
- package/dist/commands/init/scene.js +56 -0
- package/dist/commands/init/scene.js.map +1 -0
- package/dist/commands/init/types.d.ts +22 -0
- package/dist/commands/init/types.d.ts.map +1 -0
- package/dist/commands/init/types.js +3 -0
- package/dist/commands/init/types.js.map +1 -0
- package/dist/commands/init/utils.d.ts +6 -0
- package/dist/commands/init/utils.d.ts.map +1 -0
- package/dist/commands/init/utils.js +76 -0
- package/dist/commands/init/utils.js.map +1 -0
- package/dist/commands/install.d.ts +3 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +92 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/pack.d.ts +3 -0
- package/dist/commands/pack.d.ts.map +1 -0
- package/dist/commands/pack.js +102 -0
- package/dist/commands/pack.js.map +1 -0
- package/dist/commands/start.d.ts +3 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +235 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +80 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/workspace.d.ts +3 -0
- package/dist/commands/workspace.d.ts.map +1 -0
- package/dist/commands/workspace.js +81 -0
- package/dist/commands/workspace.js.map +1 -0
- package/dist/commands/world-acl.d.ts +22 -0
- package/dist/commands/world-acl.d.ts.map +1 -0
- package/dist/commands/world-acl.js +262 -0
- package/dist/commands/world-acl.js.map +1 -0
- package/dist/config.d.ts +31 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +128 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/API.d.ts +23 -0
- package/dist/lib/API.d.ts.map +1 -0
- package/dist/lib/API.js +175 -0
- package/dist/lib/API.js.map +1 -0
- package/dist/lib/Decentraland.d.ts +75 -0
- package/dist/lib/Decentraland.d.ts.map +1 -0
- package/dist/lib/Decentraland.js +227 -0
- package/dist/lib/Decentraland.js.map +1 -0
- package/dist/lib/Ethereum.d.ts +52 -0
- package/dist/lib/Ethereum.d.ts.map +1 -0
- package/dist/lib/Ethereum.js +245 -0
- package/dist/lib/Ethereum.js.map +1 -0
- package/dist/lib/IEthereumDataProvider.d.ts +17 -0
- package/dist/lib/IEthereumDataProvider.d.ts.map +1 -0
- package/dist/lib/IEthereumDataProvider.js +3 -0
- package/dist/lib/IEthereumDataProvider.js.map +1 -0
- package/dist/lib/LinkerAPI.d.ts +28 -0
- package/dist/lib/LinkerAPI.d.ts.map +1 -0
- package/dist/lib/LinkerAPI.js +151 -0
- package/dist/lib/LinkerAPI.js.map +1 -0
- package/dist/lib/Preview.d.ts +17 -0
- package/dist/lib/Preview.d.ts.map +1 -0
- package/dist/lib/Preview.js +113 -0
- package/dist/lib/Preview.js.map +1 -0
- package/dist/lib/Project.d.ts +152 -0
- package/dist/lib/Project.d.ts.map +1 -0
- package/dist/lib/Project.js +446 -0
- package/dist/lib/Project.js.map +1 -0
- package/dist/lib/Workspace.d.ts +21 -0
- package/dist/lib/Workspace.d.ts.map +1 -0
- package/dist/lib/Workspace.js +140 -0
- package/dist/lib/Workspace.js.map +1 -0
- package/dist/lib/WorldsContentServer.d.ts +27 -0
- package/dist/lib/WorldsContentServer.d.ts.map +1 -0
- package/dist/lib/WorldsContentServer.js +79 -0
- package/dist/lib/WorldsContentServer.js.map +1 -0
- package/dist/lib/WorldsContentServerLinkerAPI.d.ts +21 -0
- package/dist/lib/WorldsContentServerLinkerAPI.d.ts.map +1 -0
- package/dist/lib/WorldsContentServerLinkerAPI.js +105 -0
- package/dist/lib/WorldsContentServerLinkerAPI.js.map +1 -0
- package/dist/lib/adapters/proto/broker.d.ts +2 -0
- package/dist/lib/adapters/proto/broker.d.ts.map +1 -0
- package/dist/lib/adapters/proto/broker.js +2189 -0
- package/dist/lib/adapters/proto/broker.js.map +1 -0
- package/dist/lib/adapters/proto/comms.d.ts +2 -0
- package/dist/lib/adapters/proto/comms.d.ts.map +1 -0
- package/dist/lib/adapters/proto/comms.js +965 -0
- package/dist/lib/adapters/proto/comms.js.map +1 -0
- package/dist/lib/adapters/ws.d.ts +12 -0
- package/dist/lib/adapters/ws.d.ts.map +1 -0
- package/dist/lib/adapters/ws.js +20 -0
- package/dist/lib/adapters/ws.js.map +1 -0
- package/dist/lib/content/ContentService.d.ts +27 -0
- package/dist/lib/content/ContentService.d.ts.map +1 -0
- package/dist/lib/content/ContentService.js +60 -0
- package/dist/lib/content/ContentService.js.map +1 -0
- package/dist/lib/content/types.d.ts +12 -0
- package/dist/lib/content/types.d.ts.map +1 -0
- package/dist/lib/content/types.js +3 -0
- package/dist/lib/content/types.js.map +1 -0
- package/dist/lib/controllers/bff.d.ts +8 -0
- package/dist/lib/controllers/bff.d.ts.map +1 -0
- package/dist/lib/controllers/bff.js +58 -0
- package/dist/lib/controllers/bff.js.map +1 -0
- package/dist/lib/controllers/debugger.d.ts +4 -0
- package/dist/lib/controllers/debugger.d.ts.map +1 -0
- package/dist/lib/controllers/debugger.js +42 -0
- package/dist/lib/controllers/debugger.js.map +1 -0
- package/dist/lib/controllers/ecs6-endpoints.d.ts +11 -0
- package/dist/lib/controllers/ecs6-endpoints.d.ts.map +1 -0
- package/dist/lib/controllers/ecs6-endpoints.js +543 -0
- package/dist/lib/controllers/ecs6-endpoints.js.map +1 -0
- package/dist/lib/controllers/legacy-comms-v1.d.ts +7 -0
- package/dist/lib/controllers/legacy-comms-v1.d.ts.map +1 -0
- package/dist/lib/controllers/legacy-comms-v1.js +98 -0
- package/dist/lib/controllers/legacy-comms-v1.js.map +1 -0
- package/dist/lib/smartItems/buildSmartItem.d.ts +2 -0
- package/dist/lib/smartItems/buildSmartItem.d.ts.map +1 -0
- package/dist/lib/smartItems/buildSmartItem.js +18 -0
- package/dist/lib/smartItems/buildSmartItem.js.map +1 -0
- package/dist/lib/smartItems/packProject.d.ts +2 -0
- package/dist/lib/smartItems/packProject.d.ts.map +1 -0
- package/dist/lib/smartItems/packProject.js +31 -0
- package/dist/lib/smartItems/packProject.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +151 -0
- package/dist/main.js.map +1 -0
- package/dist/project/installDependencies.d.ts +2 -0
- package/dist/project/installDependencies.d.ts.map +1 -0
- package/dist/project/installDependencies.js +57 -0
- package/dist/project/installDependencies.js.map +1 -0
- package/dist/project/isTypescriptProject.d.ts +2 -0
- package/dist/project/isTypescriptProject.d.ts.map +1 -0
- package/dist/project/isTypescriptProject.js +14 -0
- package/dist/project/isTypescriptProject.js.map +1 -0
- package/dist/project/projectInfo.d.ts +8 -0
- package/dist/project/projectInfo.d.ts.map +1 -0
- package/dist/project/projectInfo.js +89 -0
- package/dist/project/projectInfo.js.map +1 -0
- package/dist/project/updateBundleDependenciesField.d.ts +4 -0
- package/dist/project/updateBundleDependenciesField.d.ts.map +1 -0
- package/dist/project/updateBundleDependenciesField.js +67 -0
- package/dist/project/updateBundleDependenciesField.js.map +1 -0
- package/dist/sceneJson/index.d.ts +4 -0
- package/dist/sceneJson/index.d.ts.map +1 -0
- package/dist/sceneJson/index.js +24 -0
- package/dist/sceneJson/index.js.map +1 -0
- package/dist/sceneJson/lintSceneFile.d.ts +2 -0
- package/dist/sceneJson/lintSceneFile.d.ts.map +1 -0
- package/dist/sceneJson/lintSceneFile.js +13 -0
- package/dist/sceneJson/lintSceneFile.js.map +1 -0
- package/dist/sceneJson/utils.d.ts +3 -0
- package/dist/sceneJson/utils.d.ts.map +1 -0
- package/dist/sceneJson/utils.js +66 -0
- package/dist/sceneJson/utils.js.map +1 -0
- package/dist/utils/analytics.d.ts +42 -0
- package/dist/utils/analytics.d.ts.map +1 -0
- package/dist/utils/analytics.js +111 -0
- package/dist/utils/analytics.js.map +1 -0
- package/dist/utils/buildProject.d.ts +2 -0
- package/dist/utils/buildProject.d.ts.map +1 -0
- package/dist/utils/buildProject.js +26 -0
- package/dist/utils/buildProject.js.map +1 -0
- package/dist/utils/catalystPointers.d.ts +20 -0
- package/dist/utils/catalystPointers.d.ts.map +1 -0
- package/dist/utils/catalystPointers.js +51 -0
- package/dist/utils/catalystPointers.js.map +1 -0
- package/dist/utils/coordinateHelpers.d.ts +65 -0
- package/dist/utils/coordinateHelpers.d.ts.map +1 -0
- package/dist/utils/coordinateHelpers.js +126 -0
- package/dist/utils/coordinateHelpers.js.map +1 -0
- package/dist/utils/download.d.ts +3 -0
- package/dist/utils/download.d.ts.map +1 -0
- package/dist/utils/download.js +42 -0
- package/dist/utils/download.js.map +1 -0
- package/dist/utils/env.d.ts +6 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +31 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/errors.d.ts +18 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +27 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/filesystem.d.ts +41 -0
- package/dist/utils/filesystem.d.ts.map +1 -0
- package/dist/utils/filesystem.js +84 -0
- package/dist/utils/filesystem.js.map +1 -0
- package/dist/utils/getDummyMappings.d.ts +3 -0
- package/dist/utils/getDummyMappings.d.ts.map +1 -0
- package/dist/utils/getDummyMappings.js +19 -0
- package/dist/utils/getDummyMappings.js.map +1 -0
- package/dist/utils/getProjectFilePaths.d.ts +2 -0
- package/dist/utils/getProjectFilePaths.d.ts.map +1 -0
- package/dist/utils/getProjectFilePaths.js +40 -0
- package/dist/utils/getProjectFilePaths.js.map +1 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +33 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/installedDependencies.d.ts +6 -0
- package/dist/utils/installedDependencies.d.ts.map +1 -0
- package/dist/utils/installedDependencies.js +44 -0
- package/dist/utils/installedDependencies.js.map +1 -0
- package/dist/utils/land.d.ts +4 -0
- package/dist/utils/land.d.ts.map +1 -0
- package/dist/utils/land.js +35 -0
- package/dist/utils/land.js.map +1 -0
- package/dist/utils/logging.d.ts +19 -0
- package/dist/utils/logging.d.ts.map +1 -0
- package/dist/utils/logging.js +97 -0
- package/dist/utils/logging.js.map +1 -0
- package/dist/utils/moduleHelpers.d.ts +22 -0
- package/dist/utils/moduleHelpers.d.ts.map +1 -0
- package/dist/utils/moduleHelpers.js +163 -0
- package/dist/utils/moduleHelpers.js.map +1 -0
- package/dist/utils/nodeAndNpmVersion.d.ts +5 -0
- package/dist/utils/nodeAndNpmVersion.d.ts.map +1 -0
- package/dist/utils/nodeAndNpmVersion.js +64 -0
- package/dist/utils/nodeAndNpmVersion.js.map +1 -0
- package/dist/utils/pathsExistOnDir.d.ts +2 -0
- package/dist/utils/pathsExistOnDir.d.ts.map +1 -0
- package/dist/utils/pathsExistOnDir.js +12 -0
- package/dist/utils/pathsExistOnDir.js.map +1 -0
- package/dist/utils/project.d.ts +29 -0
- package/dist/utils/project.d.ts.map +1 -0
- package/dist/utils/project.js +48 -0
- package/dist/utils/project.js.map +1 -0
- package/dist/utils/shellCommands.d.ts +19 -0
- package/dist/utils/shellCommands.d.ts.map +1 -0
- package/dist/utils/shellCommands.js +73 -0
- package/dist/utils/shellCommands.js.map +1 -0
- package/dist/utils/spinner.d.ts +6 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +58 -0
- package/dist/utils/spinner.js.map +1 -0
- package/package.json +115 -0
- package/raim7jnk.cjs +1 -0
- package/samples/workspace/Dockerfile +21 -0
- 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"}
|