decentrand 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/samples/workspace/Dockerfile +21 -0
- package/samples/workspace/package.json +16 -0
- package/sbzkmrj2.cjs +1 -0
@@ -0,0 +1,140 @@
|
|
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.initializeWorkspace = exports.createWorkspace = exports.workspaceConfigFile = void 0;
|
7
|
+
const path_1 = __importDefault(require("path"));
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
9
|
+
const filesystem_1 = require("../utils/filesystem");
|
10
|
+
const Project_1 = require("./Project");
|
11
|
+
const schemas_1 = require("@dcl/schemas");
|
12
|
+
const installDependencies_1 = __importDefault(require("../project/installDependencies"));
|
13
|
+
exports.workspaceConfigFile = 'dcl-workspace.json';
|
14
|
+
function getWorkspaceJsonWithFolders(workspaceJsonPath) {
|
15
|
+
const workspaceJsonDir = path_1.default.dirname(workspaceJsonPath);
|
16
|
+
if (fs_extra_1.default.existsSync(workspaceJsonPath)) {
|
17
|
+
try {
|
18
|
+
const workspaceJson = (0, filesystem_1.readJSONSync)(workspaceJsonPath);
|
19
|
+
if (workspaceJson.folders) {
|
20
|
+
const resolvedFolders = workspaceJson.folders.map((folderPath) => path_1.default.resolve(folderPath.path.startsWith('/') || folderPath.path.startsWith('\\')
|
21
|
+
? folderPath.path
|
22
|
+
: `${workspaceJsonDir}/${folderPath.path}`));
|
23
|
+
return { json: workspaceJson, resolvedFolders };
|
24
|
+
}
|
25
|
+
}
|
26
|
+
catch (err) {
|
27
|
+
console.error(err);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
return { resolvedFolders: [] };
|
31
|
+
}
|
32
|
+
const createWorkspace = ({ workingDir, workspaceFilePath }) => {
|
33
|
+
const projects = [];
|
34
|
+
const workspaceJsonPath = workspaceFilePath || path_1.default.resolve(workingDir || '', exports.workspaceConfigFile) || '';
|
35
|
+
if (workspaceJsonPath === '') {
|
36
|
+
throw new Error(`Couldn't find the workspace file or a working directory.`);
|
37
|
+
}
|
38
|
+
const workspaceInfo = getWorkspaceJsonWithFolders(workspaceJsonPath);
|
39
|
+
if (workspaceInfo.resolvedFolders.length) {
|
40
|
+
for (const projectFolder of workspaceInfo.resolvedFolders) {
|
41
|
+
projects.push(new Project_1.Project(projectFolder));
|
42
|
+
}
|
43
|
+
}
|
44
|
+
else if (workingDir) {
|
45
|
+
projects.push(new Project_1.Project(workingDir));
|
46
|
+
}
|
47
|
+
if (projects.length === 0) {
|
48
|
+
throw new Error('At least one project has to have been read for the workspace.');
|
49
|
+
}
|
50
|
+
const getAllProjects = () => {
|
51
|
+
return projects;
|
52
|
+
};
|
53
|
+
const getProject = (index = 0) => {
|
54
|
+
return projects[index];
|
55
|
+
};
|
56
|
+
const isSingleProject = () => {
|
57
|
+
return projects.length === 1 && projects[0].getProjectWorkingDir() === workingDir;
|
58
|
+
};
|
59
|
+
const getSingleProject = () => {
|
60
|
+
return (isSingleProject() && projects[0]) || null;
|
61
|
+
};
|
62
|
+
const hasPortableExperience = () => {
|
63
|
+
return !!projects.find((project) => project.getInfo().sceneType === schemas_1.sdk.ProjectType.PORTABLE_EXPERIENCE);
|
64
|
+
};
|
65
|
+
const getBaseCoords = async () => {
|
66
|
+
const firstParcelScene = projects.find((project) => project.getInfo().sceneType === schemas_1.sdk.ProjectType.SCENE);
|
67
|
+
return firstParcelScene ? await firstParcelScene.getSceneBaseCoords() : { x: 0, y: 0 };
|
68
|
+
};
|
69
|
+
const getParcelCount = async () => {
|
70
|
+
const firstParcelScene = projects.find((project) => project.getInfo().sceneType === schemas_1.sdk.ProjectType.SCENE);
|
71
|
+
return firstParcelScene ? await firstParcelScene.getSceneParcelCount() : 0;
|
72
|
+
};
|
73
|
+
const saveWorkspace = async () => {
|
74
|
+
if (isSingleProject()) {
|
75
|
+
throw new Error('Can not save a single project workspace.');
|
76
|
+
}
|
77
|
+
const folders = [];
|
78
|
+
for (const project of projects) {
|
79
|
+
const projectPath = path_1.default.resolve(project.getProjectWorkingDir());
|
80
|
+
const workspacePath = path_1.default.resolve(path_1.default.dirname(workspaceJsonPath));
|
81
|
+
if (projectPath.startsWith(workspacePath)) {
|
82
|
+
folders.push({
|
83
|
+
path: projectPath.replace(`${workspacePath}/`, '').replace(`${workspacePath}\\`, '')
|
84
|
+
});
|
85
|
+
}
|
86
|
+
else {
|
87
|
+
folders.push({ path: projectPath });
|
88
|
+
}
|
89
|
+
}
|
90
|
+
const newWorkspace = { folders };
|
91
|
+
await fs_extra_1.default.writeJSON(workspaceJsonPath, newWorkspace, { spaces: 2 });
|
92
|
+
};
|
93
|
+
const addProject = async (projectWorkingDir) => {
|
94
|
+
const workspacePath = path_1.default.resolve(path_1.default.dirname(workspaceJsonPath));
|
95
|
+
const projectResolvedPath = projectWorkingDir.startsWith('/')
|
96
|
+
? projectWorkingDir
|
97
|
+
: path_1.default.resolve(workspacePath, projectWorkingDir);
|
98
|
+
if (!(await fs_extra_1.default.pathExists(projectResolvedPath))) {
|
99
|
+
throw new Error(`Path ${projectWorkingDir} doen't exist. Resolved ${projectResolvedPath}`);
|
100
|
+
}
|
101
|
+
const newProject = new Project_1.Project(projectResolvedPath);
|
102
|
+
await newProject.validateExistingProject();
|
103
|
+
projects.push(newProject);
|
104
|
+
await saveWorkspace();
|
105
|
+
};
|
106
|
+
return {
|
107
|
+
getAllProjects,
|
108
|
+
getProject,
|
109
|
+
getSingleProject,
|
110
|
+
isSingleProject,
|
111
|
+
hasPortableExperience,
|
112
|
+
getBaseCoords,
|
113
|
+
getParcelCount,
|
114
|
+
addProject
|
115
|
+
};
|
116
|
+
};
|
117
|
+
exports.createWorkspace = createWorkspace;
|
118
|
+
async function initializeWorkspace(workingDir) {
|
119
|
+
const workingDirPaths = await fs_extra_1.default.readdir(workingDir);
|
120
|
+
const folders = [];
|
121
|
+
for (const listedPath of workingDirPaths) {
|
122
|
+
const projectWorkingDir = path_1.default.resolve(workingDir, listedPath);
|
123
|
+
if ((await fs_extra_1.default.stat(projectWorkingDir)).isDirectory()) {
|
124
|
+
const project = new Project_1.Project(projectWorkingDir);
|
125
|
+
if (await project.sceneFileExists()) {
|
126
|
+
folders.push({ path: listedPath });
|
127
|
+
}
|
128
|
+
}
|
129
|
+
}
|
130
|
+
if (!folders.length) {
|
131
|
+
throw new Error(`There isn't any valid project in the sub folders.`);
|
132
|
+
}
|
133
|
+
const newWorkspace = { folders };
|
134
|
+
await fs_extra_1.default.writeJSON(path_1.default.resolve(workingDir, exports.workspaceConfigFile), newWorkspace, { spaces: 2 });
|
135
|
+
await (0, Project_1.copySample)('workspace', workingDir);
|
136
|
+
await (0, installDependencies_1.default)(workingDir, false);
|
137
|
+
return (0, exports.createWorkspace)({ workingDir });
|
138
|
+
}
|
139
|
+
exports.initializeWorkspace = initializeWorkspace;
|
140
|
+
//# sourceMappingURL=Workspace.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Workspace.js","sourceRoot":"","sources":["../../src/lib/Workspace.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { EventEmitter } from 'events';
|
3
|
+
import { DCLInfo } from '../config';
|
4
|
+
import { LinkerResponse } from './LinkerAPI';
|
5
|
+
import { IdentityType } from '@dcl/crypto';
|
6
|
+
import { EthAddress } from '@dcl/schemas';
|
7
|
+
export declare type WorldsContentServerArguments = {
|
8
|
+
worldName: string;
|
9
|
+
allowed: EthAddress[];
|
10
|
+
oldAllowed: EthAddress[];
|
11
|
+
targetContent: string;
|
12
|
+
linkerPort?: number;
|
13
|
+
isHttps?: boolean;
|
14
|
+
config?: DCLInfo;
|
15
|
+
method: 'put' | 'delete';
|
16
|
+
};
|
17
|
+
export declare class WorldsContentServer extends EventEmitter {
|
18
|
+
options: WorldsContentServerArguments;
|
19
|
+
targetContent: string;
|
20
|
+
environmentIdentity?: IdentityType;
|
21
|
+
constructor(args: WorldsContentServerArguments);
|
22
|
+
link(payload: string): Promise<LinkerResponse>;
|
23
|
+
getAddressAndSignature(messageToSign: string): Promise<LinkerResponse>;
|
24
|
+
private pipeEvents;
|
25
|
+
private createWallet;
|
26
|
+
}
|
27
|
+
//# sourceMappingURL=WorldsContentServer.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"WorldsContentServer.d.ts","sourceRoot":"","sources":["../../src/lib/WorldsContentServer.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAGrC,OAAO,EAAE,OAAO,EAAa,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,oBAAY,4BAA4B,GAAG;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,UAAU,EAAE,UAAU,EAAE,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAA;CACzB,CAAA;AAED,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,OAAO,EAAE,4BAA4B,CAAA;IACrC,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,CAAC,EAAE,YAAY,CAAA;gBAEtB,IAAI,EAAE,4BAA4B;IAUxC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAwB9C,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAU5E,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;CAqBrB"}
|
@@ -0,0 +1,79 @@
|
|
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.WorldsContentServer = void 0;
|
7
|
+
const events_1 = require("events");
|
8
|
+
const wildcards_1 = __importDefault(require("wildcards"));
|
9
|
+
const errors_1 = require("../utils/errors");
|
10
|
+
const config_1 = require("../config");
|
11
|
+
const crypto_1 = require("@dcl/crypto/dist/crypto");
|
12
|
+
const eth_connect_1 = require("eth-connect");
|
13
|
+
const WorldsContentServerLinkerAPI_1 = require("./WorldsContentServerLinkerAPI");
|
14
|
+
class WorldsContentServer extends events_1.EventEmitter {
|
15
|
+
constructor(args) {
|
16
|
+
super();
|
17
|
+
this.options = args;
|
18
|
+
this.options.config = this.options.config || (0, config_1.getConfig)();
|
19
|
+
this.targetContent = args.targetContent;
|
20
|
+
if (process.env.DCL_PRIVATE_KEY) {
|
21
|
+
this.createWallet(process.env.DCL_PRIVATE_KEY);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
async link(payload) {
|
25
|
+
return new Promise(async (resolve, reject) => {
|
26
|
+
const linker = new WorldsContentServerLinkerAPI_1.WorldsContentServerLinkerAPI({
|
27
|
+
worldName: this.options.worldName,
|
28
|
+
allowed: this.options.allowed,
|
29
|
+
oldAllowed: this.options.oldAllowed,
|
30
|
+
targetContent: this.options.targetContent,
|
31
|
+
method: this.options.method,
|
32
|
+
expiration: 120,
|
33
|
+
payload
|
34
|
+
});
|
35
|
+
(0, wildcards_1.default)(linker, '*', this.pipeEvents.bind(this));
|
36
|
+
linker.on('link:success', async (message) => {
|
37
|
+
resolve(message);
|
38
|
+
});
|
39
|
+
try {
|
40
|
+
await linker.link(this.options.linkerPort, !!this.options.isHttps);
|
41
|
+
}
|
42
|
+
catch (e) {
|
43
|
+
reject(e);
|
44
|
+
}
|
45
|
+
});
|
46
|
+
}
|
47
|
+
async getAddressAndSignature(messageToSign) {
|
48
|
+
if (this.environmentIdentity) {
|
49
|
+
return {
|
50
|
+
signature: (0, crypto_1.ethSign)((0, eth_connect_1.hexToBytes)(this.environmentIdentity.privateKey), messageToSign),
|
51
|
+
address: this.environmentIdentity.address
|
52
|
+
};
|
53
|
+
}
|
54
|
+
return this.link(messageToSign);
|
55
|
+
}
|
56
|
+
pipeEvents(event, ...args) {
|
57
|
+
this.emit(event, ...args);
|
58
|
+
}
|
59
|
+
createWallet(privateKey) {
|
60
|
+
let length = 64;
|
61
|
+
if (privateKey.startsWith('0x')) {
|
62
|
+
length = 66;
|
63
|
+
}
|
64
|
+
if (privateKey.length !== length) {
|
65
|
+
(0, errors_1.fail)(errors_1.ErrorType.DEPLOY_ERROR, 'Addresses should be 64 characters length.');
|
66
|
+
}
|
67
|
+
const pk = (0, eth_connect_1.hexToBytes)(privateKey);
|
68
|
+
const msg = Math.random().toString();
|
69
|
+
const signature = (0, crypto_1.ethSign)(pk, msg);
|
70
|
+
const address = (0, crypto_1.recoverAddressFromEthSignature)(signature, msg);
|
71
|
+
this.environmentIdentity = {
|
72
|
+
address,
|
73
|
+
privateKey,
|
74
|
+
publicKey: '0x'
|
75
|
+
};
|
76
|
+
}
|
77
|
+
}
|
78
|
+
exports.WorldsContentServer = WorldsContentServer;
|
79
|
+
//# sourceMappingURL=WorldsContentServer.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"WorldsContentServer.js","sourceRoot":"","sources":["../../src/lib/WorldsContentServer.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { EventEmitter } from 'events';
|
3
|
+
export declare type WorldsContentServerResponse = {
|
4
|
+
address: string;
|
5
|
+
signature: string;
|
6
|
+
};
|
7
|
+
/**
|
8
|
+
* Events emitted by this class:
|
9
|
+
*
|
10
|
+
* link:ready - The server is up and running
|
11
|
+
* link:success - Signature success
|
12
|
+
* link:error - The transaction failed and the server was closed
|
13
|
+
*/
|
14
|
+
export declare class WorldsContentServerLinkerAPI extends EventEmitter {
|
15
|
+
private data;
|
16
|
+
private app;
|
17
|
+
constructor(data: any);
|
18
|
+
link(port: number, isHttps: boolean): Promise<unknown>;
|
19
|
+
private setRoutes;
|
20
|
+
}
|
21
|
+
//# sourceMappingURL=WorldsContentServerLinkerAPI.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"WorldsContentServerLinkerAPI.d.ts","sourceRoot":"","sources":["../../src/lib/WorldsContentServerLinkerAPI.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAOrC,oBAAY,2BAA2B,GAAG;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAmBD;;;;;;GAMG;AACH,qBAAa,4BAA6B,SAAQ,YAAY;IAGhD,OAAO,CAAC,IAAI;IAFxB,OAAO,CAAC,GAAG,CAA0C;gBAEjC,IAAI,EAAE,GAAG;IAI7B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IA0CnC,OAAO,CAAC,SAAS;CA6ClB"}
|
@@ -0,0 +1,105 @@
|
|
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.WorldsContentServerLinkerAPI = void 0;
|
7
|
+
const path_1 = __importDefault(require("path"));
|
8
|
+
const https_1 = __importDefault(require("https"));
|
9
|
+
const events_1 = require("events");
|
10
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
11
|
+
const express_1 = __importDefault(require("express"));
|
12
|
+
const cors_1 = __importDefault(require("cors"));
|
13
|
+
const body_parser_1 = __importDefault(require("body-parser"));
|
14
|
+
const portfinder_1 = __importDefault(require("portfinder"));
|
15
|
+
/**
|
16
|
+
* Events emitted by this class:
|
17
|
+
*
|
18
|
+
* link:ready - The server is up and running
|
19
|
+
* link:success - Signature success
|
20
|
+
* link:error - The transaction failed and the server was closed
|
21
|
+
*/
|
22
|
+
class WorldsContentServerLinkerAPI extends events_1.EventEmitter {
|
23
|
+
constructor(data) {
|
24
|
+
super();
|
25
|
+
this.data = data;
|
26
|
+
this.app = (0, express_1.default)();
|
27
|
+
}
|
28
|
+
link(port, isHttps) {
|
29
|
+
return new Promise(async (_, reject) => {
|
30
|
+
let resolvedPort = port;
|
31
|
+
if (!resolvedPort) {
|
32
|
+
try {
|
33
|
+
resolvedPort = await portfinder_1.default.getPortPromise();
|
34
|
+
}
|
35
|
+
catch (e) {
|
36
|
+
resolvedPort = 4044;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
const protocol = isHttps ? 'https' : 'http';
|
40
|
+
const url = `${protocol}://localhost:${resolvedPort}`;
|
41
|
+
this.setRoutes();
|
42
|
+
this.on('link:error', (err) => {
|
43
|
+
reject(err);
|
44
|
+
});
|
45
|
+
const serverHandler = () => this.emit('link:ready', { url });
|
46
|
+
const eventHandler = () => (e) => {
|
47
|
+
if (e.errno === 'EADDRINUSE') {
|
48
|
+
reject(new Error(`Port ${resolvedPort} is already in use by another process`));
|
49
|
+
}
|
50
|
+
else {
|
51
|
+
reject(new Error(`Failed to start Linker App: ${e.message}`));
|
52
|
+
}
|
53
|
+
};
|
54
|
+
if (isHttps) {
|
55
|
+
const privateKey = await fs_extra_1.default.readFile(path_1.default.resolve(__dirname, '../../certs/localhost.key'), 'utf-8');
|
56
|
+
const certificate = await fs_extra_1.default.readFile(path_1.default.resolve(__dirname, '../../certs/localhost.crt'), 'utf-8');
|
57
|
+
const credentials = { key: privateKey, cert: certificate };
|
58
|
+
const httpsServer = https_1.default.createServer(credentials, this.app);
|
59
|
+
httpsServer.listen(resolvedPort, serverHandler).on('error', eventHandler);
|
60
|
+
}
|
61
|
+
else {
|
62
|
+
this.app.listen(resolvedPort, serverHandler).on('error', eventHandler);
|
63
|
+
}
|
64
|
+
});
|
65
|
+
}
|
66
|
+
setRoutes() {
|
67
|
+
const linkerDapp = path_1.default.dirname(require.resolve('@dcl/linker-dapp/package.json'));
|
68
|
+
this.app.use((0, cors_1.default)());
|
69
|
+
this.app.use(express_1.default.static(linkerDapp));
|
70
|
+
this.app.use('/acl', express_1.default.static(linkerDapp));
|
71
|
+
this.app.use(body_parser_1.default.json());
|
72
|
+
/**
|
73
|
+
* Async method to try/catch errors
|
74
|
+
*/
|
75
|
+
const methods = ['Get', 'Post'];
|
76
|
+
for (const method of methods) {
|
77
|
+
const asyncMethod = `async${method}`;
|
78
|
+
this.app[asyncMethod] = async (path, fn) => {
|
79
|
+
const originalMethod = method.toLocaleLowerCase();
|
80
|
+
this.app[originalMethod](path, async (req, res) => {
|
81
|
+
try {
|
82
|
+
const resp = await fn(req, res);
|
83
|
+
res.send(resp || {});
|
84
|
+
}
|
85
|
+
catch (e) {
|
86
|
+
console.log(e);
|
87
|
+
res.send(e);
|
88
|
+
}
|
89
|
+
});
|
90
|
+
};
|
91
|
+
}
|
92
|
+
this.app.asyncGet('/api/acl', async () => {
|
93
|
+
return await this.data;
|
94
|
+
});
|
95
|
+
this.app.asyncPost('/api/acl', (req) => {
|
96
|
+
const value = req.body;
|
97
|
+
if (!value.address || !value.signature) {
|
98
|
+
throw new Error(`Invalid payload: ${Object.keys(value).join(' - ')}`);
|
99
|
+
}
|
100
|
+
this.emit('link:success', value);
|
101
|
+
});
|
102
|
+
}
|
103
|
+
}
|
104
|
+
exports.WorldsContentServerLinkerAPI = WorldsContentServerLinkerAPI;
|
105
|
+
//# sourceMappingURL=WorldsContentServerLinkerAPI.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"WorldsContentServerLinkerAPI.js","sourceRoot":"","sources":["../../src/lib/WorldsContentServerLinkerAPI.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,kDAAyB;AACzB,mCAAqC;AACrC,wDAAyB;AACzB,sDAA2E;AAC3E,gDAAuB;AACvB,8DAAoC;AACpC,4DAAmC;AAwBnC;;;;;;GAMG;AACH,MAAa,4BAA6B,SAAQ,qBAAY;IAG5D,YAAoB,IAAS;QAC3B,KAAK,EAAE,CAAA;QADW,SAAI,GAAJ,IAAI,CAAK;QAFrB,QAAG,GAAiB,IAAA,iBAAO,GAAkB,CAAA;IAIrD,CAAC;IAED,IAAI,CAAC,IAAY,EAAE,OAAgB;QACjC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,YAAY,GAAG,IAAI,CAAA;YAEvB,IAAI,CAAC,YAAY,EAAE;gBACjB,IAAI;oBACF,YAAY,GAAG,MAAM,oBAAU,CAAC,cAAc,EAAE,CAAA;iBACjD;gBAAC,OAAO,CAAC,EAAE;oBACV,YAAY,GAAG,IAAI,CAAA;iBACpB;aACF;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;YAC3C,MAAM,GAAG,GAAG,GAAG,QAAQ,gBAAgB,YAAY,EAAE,CAAA;YAErD,IAAI,CAAC,SAAS,EAAE,CAAA;YAEhB,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC5B,MAAM,CAAC,GAAG,CAAC,CAAA;YACb,CAAC,CAAC,CAAA;YAEF,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YAC5D,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC,CAAM,EAAE,EAAE;gBACpC,IAAI,CAAC,CAAC,KAAK,KAAK,YAAY,EAAE;oBAC5B,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,YAAY,uCAAuC,CAAC,CAAC,CAAA;iBAC/E;qBAAM;oBACL,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;iBAC9D;YACH,CAAC,CAAA;YAED,IAAI,OAAO,EAAE;gBACX,MAAM,UAAU,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,2BAA2B,CAAC,EAAE,OAAO,CAAC,CAAA;gBACnG,MAAM,WAAW,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,2BAA2B,CAAC,EAAE,OAAO,CAAC,CAAA;gBACpG,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAE1D,MAAM,WAAW,GAAG,eAAK,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC7D,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;aAC1E;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;aACvE;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,SAAS;QACf,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,CAAA;QACjF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAA;QACpB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;QACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;QAChD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAU,CAAC,IAAI,EAAE,CAAC,CAAA;QAE/B;;WAEG;QACH,MAAM,OAAO,GAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACrD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,WAAW,GAAgB,QAAQ,MAAM,EAAE,CAAA;YACjD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;gBACzC,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,EAAY,CAAA;gBAC3D,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;oBAChD,IAAI;wBACF,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;wBAC/B,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;qBACrB;oBAAC,OAAO,CAAC,EAAE;wBACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;wBACd,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;qBACZ;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC,CAAA;SACF;QAED,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;YACvC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;YAKrC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAY,CAAA;YAE9B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACtC,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;aACtE;YAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AA9FD,oEA8FC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/proto/broker.js"],"names":[],"mappings":""}
|