@dcl/sdk-commands 7.1.2-4415683908.commit-0a210fd → 7.1.2-4426178080.commit-9504360

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.
@@ -0,0 +1,15 @@
1
+ import { RpcServer } from '@dcl/rpc';
2
+ import { createEngine } from '@dcl/inspector';
3
+ import { CliComponents } from '../../../components';
4
+ export type IEngine = ReturnType<typeof createEngine>;
5
+ export type DataLayerContext = {
6
+ engine: IEngine;
7
+ };
8
+ export type DataLayerRPC = {
9
+ rpcServer: RpcServer<DataLayerContext>;
10
+ /**
11
+ * we use the same engine with multiple transports for all the contexts.
12
+ */
13
+ engine: IEngine;
14
+ };
15
+ export declare function createDataLayerRpc({ fs }: Pick<CliComponents, 'fs'>): DataLayerRPC;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.createDataLayerRpc = void 0;
27
+ const rpc_1 = require("@dcl/rpc");
28
+ const codegen = __importStar(require("@dcl/rpc/dist/codegen"));
29
+ const inspector_1 = require("@dcl/inspector");
30
+ function createDataLayerRpc({ fs }) {
31
+ const engine = (0, inspector_1.createEngine)();
32
+ setInterval(() => {
33
+ engine.update(0.016).catch((err) => {
34
+ console.error(err);
35
+ debugger;
36
+ });
37
+ }, 16);
38
+ const dataLayer = (0, inspector_1.initRpcMethods)(fs, engine);
39
+ const rpcServer = (0, rpc_1.createRpcServer)({});
40
+ rpcServer.setHandler(rpcHandler);
41
+ async function rpcHandler(serverPort) {
42
+ codegen.registerService(serverPort, inspector_1.DataLayerProto.DataServiceDefinition, async () => dataLayer);
43
+ }
44
+ return { rpcServer, engine };
45
+ }
46
+ exports.createDataLayerRpc = createDataLayerRpc;
@@ -0,0 +1,3 @@
1
+ import { WebSocket } from 'ws';
2
+ import { DataLayerRPC } from './rpc';
3
+ export declare function handleDataLayerWs(ws: WebSocket, { rpcServer, engine }: DataLayerRPC): Promise<void>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleDataLayerWs = void 0;
4
+ const WebSocket_1 = require("@dcl/rpc/dist/transports/WebSocket");
5
+ async function handleDataLayerWs(ws, { rpcServer, engine }) {
6
+ const wsTransport = (0, WebSocket_1.WebSocketTransport)(ws);
7
+ rpcServer.attachTransport(wsTransport, { engine });
8
+ ws.on('error', (error) => {
9
+ console.error(error);
10
+ ws.close();
11
+ });
12
+ ws.on('close', () => {
13
+ console.debug('Websocket closed');
14
+ });
15
+ }
16
+ exports.handleDataLayerWs = handleDataLayerWs;
@@ -24,7 +24,8 @@ export declare const args: import("arg").Result<{
24
24
  '-w': string;
25
25
  '--skip-build': BooleanConstructor;
26
26
  '--desktop-client': BooleanConstructor;
27
+ '--data-layer': BooleanConstructor;
27
28
  }>;
28
- export declare function help(): string;
29
+ export declare function help(): Promise<string>;
29
30
  export declare function main(options: Options): Promise<void>;
30
31
  export {};
@@ -49,6 +49,7 @@ const file_watch_notifier_1 = require("./server/file-watch-notifier");
49
49
  const routes_1 = require("./server/routes");
50
50
  const ws_1 = require("./server/ws");
51
51
  const project_files_1 = require("../../logic/project-files");
52
+ const rpc_1 = require("./data-layer/rpc");
52
53
  exports.args = (0, args_1.getArgs)({
53
54
  '--dir': String,
54
55
  '--help': Boolean,
@@ -65,9 +66,10 @@ exports.args = (0, args_1.getArgs)({
65
66
  '-b': '--no-browser',
66
67
  '-w': '--no-watch',
67
68
  '--skip-build': Boolean,
68
- '--desktop-client': Boolean
69
+ '--desktop-client': Boolean,
70
+ '--data-layer': Boolean
69
71
  });
70
- function help() {
72
+ async function help() {
71
73
  return `
72
74
  Usage: sdk-commands start [options]
73
75
 
@@ -102,6 +104,7 @@ async function main(options) {
102
104
  const openBrowser = !exports.args['--no-browser'] && !isCi;
103
105
  const skipBuild = exports.args['--skip-build'];
104
106
  const watch = !exports.args['--no-watch'];
107
+ const withDataLayer = exports.args['--data-layer'];
105
108
  const enableWeb3 = exports.args['--web3'];
106
109
  // TODO: FIX this hardcoded values ?
107
110
  const hasPortableExperience = false;
@@ -159,7 +162,8 @@ async function main(options) {
159
162
  };
160
163
  },
161
164
  async main({ components, startComponents }) {
162
- await (0, routes_1.wireRouter)(components, projectRoot);
165
+ const dataLayerRpc = withDataLayer ? (0, rpc_1.createDataLayerRpc)({ fs: components.fs }) : undefined;
166
+ await (0, routes_1.wireRouter)(components, projectRoot, dataLayerRpc);
163
167
  if (watch) {
164
168
  await (0, file_watch_notifier_1.wireFileWatcherToWebSockets)(components, projectRoot);
165
169
  }
@@ -177,7 +181,7 @@ async function main(options) {
177
181
  ;
178
182
  (networkInterfaces[dev] || []).forEach((details) => {
179
183
  if (details.family === 'IPv4') {
180
- let addr = `http://${details.address}:${port}?position=${baseCoords.x}%2C${baseCoords.y}&ENABLE_ECS7`;
184
+ let addr = `http://${details.address}:${port}?position=${baseCoords.x}%2C${baseCoords.y}`;
181
185
  if (debug) {
182
186
  addr = `${addr}&SCENE_DEBUG_PANEL`;
183
187
  }
@@ -1,2 +1,3 @@
1
1
  import { PreviewComponents } from '../types';
2
- export declare function wireRouter(components: PreviewComponents, dir: string): Promise<void>;
2
+ import { DataLayerRPC } from '../data-layer/rpc';
3
+ export declare function wireRouter(components: PreviewComponents, dir: string, dataLayer?: DataLayerRPC): Promise<void>;
@@ -5,9 +5,18 @@ const realm_1 = require("./realm");
5
5
  const http_server_1 = require("@well-known-components/http-server");
6
6
  const endpoints_1 = require("./endpoints");
7
7
  const ws_1 = require("@well-known-components/http-server/dist/ws");
8
- async function wireRouter(components, dir) {
8
+ const ws_2 = require("../data-layer/ws");
9
+ async function wireRouter(components, dir, dataLayer) {
9
10
  const router = new http_server_1.Router();
10
11
  const sceneUpdateClients = new Set();
12
+ if (dataLayer) {
13
+ router.get('/data-layer', async (ctx, next) => {
14
+ if (ctx.request.headers.get('upgrade') === 'websocket') {
15
+ return (0, ws_1.upgradeWebSocketResponse)((ws) => (0, ws_2.handleDataLayerWs)(ws, dataLayer));
16
+ }
17
+ return next();
18
+ });
19
+ }
11
20
  router.get('/', async (ctx, next) => {
12
21
  if (ctx.request.headers.get('upgrade') === 'websocket') {
13
22
  return (0, ws_1.upgradeWebSocketResponse)((ws) => initWsConnection(ws, sceneUpdateClients));
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@dcl/sdk-commands",
3
- "version": "7.1.2-4415683908.commit-0a210fd",
3
+ "version": "7.1.2-4426178080.commit-9504360",
4
4
  "description": "",
5
5
  "scripts": {
6
- "build": "tsc -p tsconfig.json",
7
- "start": "tsc -p tsconfig.json --watch"
6
+ "start": "tsc -p tsconfig.json --watch",
7
+ "build": "tsc -p tsconfig.json"
8
8
  },
9
9
  "bin": {
10
10
  "sdk-commands": "./dist/index.js"
@@ -16,11 +16,13 @@
16
16
  "author": "Decentraland",
17
17
  "license": "Apache-2.0",
18
18
  "dependencies": {
19
- "@dcl/dcl-rollup": "7.1.2-4415683908.commit-0a210fd",
19
+ "@dcl/dcl-rollup": "7.1.2-4426178080.commit-9504360",
20
20
  "@dcl/hashing": "1.1.3",
21
+ "@dcl/inspector": "7.1.2-4426178080.commit-9504360",
21
22
  "@dcl/linker-dapp": "0.7.0",
22
23
  "@dcl/mini-comms": "1.0.1-20230216163137.commit-a4c75be",
23
- "@dcl/protocol": "1.0.0-4114477251.commit-ccb88d6",
24
+ "@dcl/protocol": "1.0.0-4408137944.commit-a67c796",
25
+ "@dcl/rpc": "^1.1.1",
24
26
  "@dcl/schemas": "6.10.0",
25
27
  "@segment/analytics-node": "^1.0.0-beta.22",
26
28
  "@well-known-components/env-config-provider": "^1.2.0",
@@ -54,5 +56,5 @@
54
56
  "files": [
55
57
  "dist"
56
58
  ],
57
- "commit": "0a210fde7524e27f44b8cc35d8fabf39705c57b6"
59
+ "commit": "950436017ab8c641b3200d13e39e696f901efe26"
58
60
  }