@dcl/sdk 7.0.6-4116376172.commit-af09ca7 → 7.0.6-4137912823.commit-aa69b28
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.
- package/cli/commands/preview/bff.d.ts +1 -1
- package/cli/commands/preview/bff.js +7 -3
- package/cli/commands/preview/bff.ts +7 -3
- package/cli/commands/preview/index.js +4 -8
- package/cli/commands/preview/index.ts +2 -1
- package/cli/commands/preview/types.d.ts +2 -1
- package/cli/commands/preview/types.js +1 -1
- package/cli/commands/preview/types.ts +2 -1
- package/cli/commands/preview/wire.d.ts +1 -1
- package/cli/commands/preview/wire.js +69 -3
- package/cli/commands/preview/wire.ts +83 -2
- package/cli/commands/preview/ws.js +1 -1
- package/cli/commands/preview/ws.ts +1 -1
- package/cli/commands/start/index.js +2 -2
- package/cli/commands/start/index.ts +1 -1
- package/package.json +8 -6
@@ -1,3 +1,3 @@
|
|
1
1
|
import { PreviewComponents } from './types';
|
2
2
|
import { Router } from '@well-known-components/http-server';
|
3
|
-
export declare function setupBffAndComms(components: PreviewComponents, router: Router<PreviewComponents>):
|
3
|
+
export declare function setupBffAndComms(components: PreviewComponents, router: Router<PreviewComponents>): void;
|
@@ -3,17 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.setupBffAndComms = void 0;
|
4
4
|
const handle_linear_protocol_1 = require("@dcl/mini-comms/dist/logic/handle-linear-protocol");
|
5
5
|
const ws_1 = require("@well-known-components/http-server/dist/ws");
|
6
|
-
|
6
|
+
function setupBffAndComms(components, router) {
|
7
7
|
router.get('/about', async (ctx) => {
|
8
8
|
const host = ctx.url.host;
|
9
9
|
const body = {
|
10
|
-
|
10
|
+
acceptingUsers: true,
|
11
|
+
bff: { healthy: false, publicUrl: host },
|
11
12
|
comms: {
|
12
13
|
healthy: true,
|
13
14
|
protocol: 'v3',
|
14
15
|
fixedAdapter: `ws-room:${ctx.url.protocol.replace(/^http/, 'ws')}//${host}/mini-comms/room-1`
|
15
16
|
},
|
16
17
|
configurations: {
|
18
|
+
networkId: 0,
|
19
|
+
globalScenesUrn: [],
|
20
|
+
scenesUrn: [],
|
17
21
|
realmName: 'LocalPreview'
|
18
22
|
},
|
19
23
|
content: {
|
@@ -47,4 +51,4 @@ async function setupBffAndComms(components, router) {
|
|
47
51
|
});
|
48
52
|
}
|
49
53
|
exports.setupBffAndComms = setupBffAndComms;
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmZmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYmZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhGQUE4RjtBQUk5RixtRUFBcUY7QUFPckYsU0FBZ0IsZ0JBQWdCLENBQUMsVUFBNkIsRUFBRSxNQUFpQztJQUMvRixNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDakMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUE7UUFFekIsTUFBTSxJQUFJLEdBQWtCO1lBQzFCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtZQUN4QyxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsWUFBWSxFQUFFLFdBQVcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLG9CQUFvQjthQUM5RjtZQUNELGNBQWMsRUFBRTtnQkFDZCxTQUFTLEVBQUUsQ0FBQztnQkFDWixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsU0FBUyxFQUFFLGNBQWM7YUFDMUI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsU0FBUyxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVU7YUFDMUQ7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsU0FBUyxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVU7YUFDMUQ7WUFDRCxPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUE7UUFFRCxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUE7SUFDakIsQ0FBQyxDQUFDLENBQUE7SUFFRixNQUFNLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUM5QyxPQUFPLElBQUEsNkJBQXdCLEVBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRTtZQUMxQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEtBQUssTUFBTSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEtBQUssTUFBTSxFQUFFO2dCQUNwRCxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO29CQUNwQixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUE7Z0JBQ1osQ0FBQyxDQUFDLENBQUE7Z0JBRUYsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUE7Z0JBQ25DLENBQUMsQ0FBQyxDQUFBO2dCQUVGLElBQUEsbURBQTBCLEVBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO29CQUMvRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO29CQUNqQixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUE7Z0JBQ1osQ0FBQyxDQUFDLENBQUE7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBbkRELDRDQW1EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhhbmRsZVNvY2tldExpbmVhclByb3RvY29sIH0gZnJvbSAnQGRjbC9taW5pLWNvbW1zL2Rpc3QvbG9naWMvaGFuZGxlLWxpbmVhci1wcm90b2NvbCdcbmltcG9ydCB7IFByZXZpZXdDb21wb25lbnRzIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IEFib3V0UmVzcG9uc2UgfSBmcm9tICdAZGNsL3Byb3RvY29sL291dC10cy9kZWNlbnRyYWxhbmQvYmZmL2h0dHBfZW5kcG9pbnRzLmdlbidcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvaHR0cC1zZXJ2ZXInXG5pbXBvcnQgeyB1cGdyYWRlV2ViU29ja2V0UmVzcG9uc2UgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL2h0dHAtc2VydmVyL2Rpc3Qvd3MnXG5cbi8qKlxuICogVGhpcyBtb2R1bGUgaGFuZGxlcyB0aGUgQkZGIG1vY2sgYW5kIGNvbW11bmljYXRpb25zIHNlcnZlciBmb3IgdGhlIHByZXZpZXcgbW9kZS5cbiAqIEl0IHJ1bnMgdXNpbmcgQGRjbC9taW5pLWNvbW1zIGltcGxlbWVudGluZyBSRkMtNVxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEJmZkFuZENvbW1zKGNvbXBvbmVudHM6IFByZXZpZXdDb21wb25lbnRzLCByb3V0ZXI6IFJvdXRlcjxQcmV2aWV3Q29tcG9uZW50cz4pIHtcbiAgcm91dGVyLmdldCgnL2Fib3V0JywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIGNvbnN0IGhvc3QgPSBjdHgudXJsLmhvc3RcblxuICAgIGNvbnN0IGJvZHk6IEFib3V0UmVzcG9uc2UgPSB7XG4gICAgICBhY2NlcHRpbmdVc2VyczogdHJ1ZSxcbiAgICAgIGJmZjogeyBoZWFsdGh5OiBmYWxzZSwgcHVibGljVXJsOiBob3N0IH0sXG4gICAgICBjb21tczoge1xuICAgICAgICBoZWFsdGh5OiB0cnVlLFxuICAgICAgICBwcm90b2NvbDogJ3YzJyxcbiAgICAgICAgZml4ZWRBZGFwdGVyOiBgd3Mtcm9vbToke2N0eC51cmwucHJvdG9jb2wucmVwbGFjZSgvXmh0dHAvLCAnd3MnKX0vLyR7aG9zdH0vbWluaS1jb21tcy9yb29tLTFgXG4gICAgICB9LFxuICAgICAgY29uZmlndXJhdGlvbnM6IHtcbiAgICAgICAgbmV0d29ya0lkOiAwLFxuICAgICAgICBnbG9iYWxTY2VuZXNVcm46IFtdLFxuICAgICAgICBzY2VuZXNVcm46IFtdLFxuICAgICAgICByZWFsbU5hbWU6ICdMb2NhbFByZXZpZXcnXG4gICAgICB9LFxuICAgICAgY29udGVudDoge1xuICAgICAgICBoZWFsdGh5OiB0cnVlLFxuICAgICAgICBwdWJsaWNVcmw6IGAke2N0eC51cmwucHJvdG9jb2x9Ly8ke2N0eC51cmwuaG9zdH0vY29udGVudGBcbiAgICAgIH0sXG4gICAgICBsYW1iZGFzOiB7XG4gICAgICAgIGhlYWx0aHk6IHRydWUsXG4gICAgICAgIHB1YmxpY1VybDogYCR7Y3R4LnVybC5wcm90b2NvbH0vLyR7Y3R4LnVybC5ob3N0fS9sYW1iZGFzYFxuICAgICAgfSxcbiAgICAgIGhlYWx0aHk6IHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4geyBib2R5IH1cbiAgfSlcblxuICByb3V0ZXIuZ2V0KCcvbWluaS1jb21tcy86cm9vbUlkJywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIHJldHVybiB1cGdyYWRlV2ViU29ja2V0UmVzcG9uc2UoKHdzOiBhbnkpID0+IHtcbiAgICAgIGlmICh3cy5wcm90b2NvbCA9PT0gJ3JmYzUnIHx8IHdzLnByb3RvY29sID09PSAncmZjNCcpIHtcbiAgICAgICAgd3Mub24oJ2Vycm9yJywgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgICAgIHdzLmNsb3NlKClcbiAgICAgICAgfSlcblxuICAgICAgICB3cy5vbignY2xvc2UnLCAoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5kZWJ1ZygnV2Vic29ja2V0IGNsb3NlZCcpXG4gICAgICAgIH0pXG5cbiAgICAgICAgaGFuZGxlU29ja2V0TGluZWFyUHJvdG9jb2woY29tcG9uZW50cywgd3MsIGN0eC5wYXJhbXMucm9vbUlkKS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmluZm8oZXJyKVxuICAgICAgICAgIHdzLmNsb3NlKClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9KVxufVxuIl19
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { handleSocketLinearProtocol } from '@dcl/mini-comms/dist/logic/handle-linear-protocol'
|
2
2
|
import { PreviewComponents } from './types'
|
3
|
-
import { AboutResponse } from '@dcl/protocol/out-ts/bff/
|
3
|
+
import { AboutResponse } from '@dcl/protocol/out-ts/decentraland/bff/http_endpoints.gen'
|
4
4
|
import { Router } from '@well-known-components/http-server'
|
5
5
|
import { upgradeWebSocketResponse } from '@well-known-components/http-server/dist/ws'
|
6
6
|
|
@@ -9,18 +9,22 @@ import { upgradeWebSocketResponse } from '@well-known-components/http-server/dis
|
|
9
9
|
* It runs using @dcl/mini-comms implementing RFC-5
|
10
10
|
*/
|
11
11
|
|
12
|
-
export
|
12
|
+
export function setupBffAndComms(components: PreviewComponents, router: Router<PreviewComponents>) {
|
13
13
|
router.get('/about', async (ctx) => {
|
14
14
|
const host = ctx.url.host
|
15
15
|
|
16
16
|
const body: AboutResponse = {
|
17
|
-
|
17
|
+
acceptingUsers: true,
|
18
|
+
bff: { healthy: false, publicUrl: host },
|
18
19
|
comms: {
|
19
20
|
healthy: true,
|
20
21
|
protocol: 'v3',
|
21
22
|
fixedAdapter: `ws-room:${ctx.url.protocol.replace(/^http/, 'ws')}//${host}/mini-comms/room-1`
|
22
23
|
},
|
23
24
|
configurations: {
|
25
|
+
networkId: 0,
|
26
|
+
globalScenesUrn: [],
|
27
|
+
scenesUrn: [],
|
24
28
|
realmName: 'LocalPreview'
|
25
29
|
},
|
26
30
|
content: {
|
@@ -53,23 +53,19 @@ async function main(options) {
|
|
53
53
|
programClosed.resolve();
|
54
54
|
}
|
55
55
|
};
|
56
|
-
return {
|
57
|
-
logs,
|
58
|
-
ethereumProvider: eth_1.providerInstance,
|
59
|
-
rooms,
|
56
|
+
return Object.assign(Object.assign({}, options.components), { logs, ethereumProvider: eth_1.providerInstance, rooms,
|
60
57
|
config,
|
61
58
|
metrics,
|
62
59
|
server,
|
63
60
|
ws,
|
64
|
-
signaler
|
65
|
-
};
|
61
|
+
signaler });
|
66
62
|
},
|
67
63
|
async main({ components, startComponents }) {
|
68
|
-
await (0, wire_1.wire)(dir,
|
64
|
+
await (0, wire_1.wire)(components, dir, !!options.args['--watch']);
|
69
65
|
await startComponents();
|
70
66
|
}
|
71
67
|
});
|
72
68
|
return program;
|
73
69
|
}
|
74
70
|
exports.main = main;
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBOEI7QUFDOUIsMERBQThCO0FBQzlCLGtFQUE2RTtBQUM3RSwrREFBd0Y7QUFDeEYsb0ZBQXdGO0FBQ3hGLG9FQUEwRTtBQUMxRSwwREFBeUU7QUFDekUsNERBQTJFO0FBQzNFLDZCQUF3QztBQUd4QywyQ0FBMEM7QUFFMUMsdUNBQXlFO0FBQ3pFLGlDQUFvQztBQUNwQywrQkFBd0M7QUFDeEMsaUNBQTZCO0FBRTdCLFNBQWdCLElBQUk7SUFDbEIsT0FBTyxFQUFFLENBQUE7QUFDWCxDQUFDO0FBRkQsb0JBRUM7QUFPWSxRQUFBLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQztJQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQixJQUFJLEVBQUUsU0FBUztJQUNmLE9BQU8sRUFBRSxNQUFNO0lBQ2YsUUFBUSxFQUFFLE1BQU07SUFDaEIsSUFBSSxFQUFFLFFBQVE7Q0FDZixDQUFDLENBQUE7QUFJSyxLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQWdCO0lBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUEsY0FBTyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sSUFBQSxpQ0FBdUIsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3RELE1BQU0sSUFBQSw4QkFBb0IsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBRW5ELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUEsa0JBQVcsR0FBRSxDQUFDLENBQUE7SUFFNUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxzQkFBUyxDQUFDLEdBQUcsQ0FBb0I7UUFDckQsS0FBSyxDQUFDLGNBQWM7WUFDbEIsTUFBTSxPQUFPLEdBQUcsSUFBQSxvQ0FBMEIsRUFBQyxvQkFBWSxDQUFDLENBQUE7WUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxpREFBMkIsa0JBQ3hDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDakMsZ0JBQWdCLEVBQUUsU0FBUyxJQUN4QixPQUFPLENBQUMsR0FBRyxFQUNkLENBQUE7WUFDRixNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsa0NBQXlCLEVBQUMsRUFBRSxDQUFDLENBQUE7WUFDaEQsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLHNCQUFpQixFQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUM1QyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsbUNBQXFCLEVBQW9CLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDeEcsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFBLDRCQUFvQixFQUFDO2dCQUN2QyxPQUFPO2dCQUNQLElBQUk7Z0JBQ0osTUFBTTthQUNQLENBQUMsQ0FBQTtZQUVGLE1BQU0sYUFBYSxHQUFHLElBQUEsbUJBQU0sR0FBUSxDQUFBO1lBQ3BDLE1BQU0sUUFBUSxHQUF3QztnQkFDcEQsYUFBYTtnQkFDYixLQUFLLENBQUMsSUFBSTtvQkFHUixhQUFhLENBQUMsT0FBTyxFQUFFLENBQUE7Z0JBQ3pCLENBQUM7YUFDRixDQUFBO1lBRUQsdUNBQ0ssT0FBTyxDQUFDLFVBQVUsS0FDckIsSUFBSSxFQUNKLGdCQUFnQixFQUFFLHNCQUFnQixFQUNsQyxLQUFLO2dCQUNMLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxNQUFNO2dCQUNOLEVBQUU7Z0JBQ0YsUUFBUSxJQUNUO1FBQ0gsQ0FBQztRQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFO1lBQ3hDLE1BQU0sSUFBQSxXQUFJLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO1lBQ3RELE1BQU0sZUFBZSxFQUFFLENBQUE7UUFDekIsQ0FBQztLQUNGLENBQUMsQ0FBQTtJQUVGLE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUM7QUFyREQsb0JBcURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ3BhdGgnXG5pbXBvcnQgZnV0dXJlIGZyb20gJ2ZwLWZ1dHVyZSdcbmltcG9ydCB7IExpZmVjeWNsZSwgSUJhc2VDb21wb25lbnQgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL2ludGVyZmFjZXMnXG5pbXBvcnQgeyByb29tc01ldHJpY3MsIGNyZWF0ZVJvb21zQ29tcG9uZW50IH0gZnJvbSAnQGRjbC9taW5pLWNvbW1zL2Rpc3QvYWRhcHRlcnMvcm9vbXMnXG5pbXBvcnQgeyBjcmVhdGVSZWNvcmRDb25maWdDb21wb25lbnQgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL2Vudi1jb25maWctcHJvdmlkZXInXG5pbXBvcnQgeyBjcmVhdGVTZXJ2ZXJDb21wb25lbnQgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL2h0dHAtc2VydmVyJ1xuaW1wb3J0IHsgY3JlYXRlQ29uc29sZUxvZ0NvbXBvbmVudCB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvbG9nZ2VyJ1xuaW1wb3J0IHsgY3JlYXRlVGVzdE1ldHJpY3NDb21wb25lbnQgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL21ldHJpY3MnXG5pbXBvcnQgeyBjcmVhdGVXc0NvbXBvbmVudCB9IGZyb20gJy4vd3MnXG5cbmltcG9ydCB7IENsaUNvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJ1xuaW1wb3J0IHsgZ2V0QXJncyB9IGZyb20gJy4uLy4uL3V0aWxzL2FyZ3MnXG5pbXBvcnQgeyBJU2lnbmFsZXJDb21wb25lbnQsIFByZXZpZXdDb21wb25lbnRzIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IHZhbGlkYXRlRXhpc3RpbmdQcm9qZWN0LCB2YWxpZGF0ZVNjZW5lT3B0aW9ucyB9IGZyb20gJy4vcHJvamVjdCdcbmltcG9ydCB7IHByZXZpZXdQb3J0IH0gZnJvbSAnLi9wb3J0J1xuaW1wb3J0IHsgcHJvdmlkZXJJbnN0YW5jZSB9IGZyb20gJy4vZXRoJ1xuaW1wb3J0IHsgd2lyZSB9IGZyb20gJy4vd2lyZSdcblxuZXhwb3J0IGZ1bmN0aW9uIGhlbHAoKSB7XG4gIHJldHVybiBgYFxufVxuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIGFyZ3M6IE9taXQ8dHlwZW9mIGFyZ3MsICdfJz5cbiAgY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZmV0Y2gnIHwgJ2ZzJz5cbn1cblxuZXhwb3J0IGNvbnN0IGFyZ3MgPSBnZXRBcmdzKHtcbiAgJy0td2F0Y2gnOiBCb29sZWFuLFxuICAnLXcnOiAnLS13YXRjaCcsXG4gICctLWRpcic6IFN0cmluZyxcbiAgJy0tcG9ydCc6IE51bWJlcixcbiAgJy1wJzogJy0tcG9ydCdcbn0pXG5cbi8vIGNvcHkvcGFzdGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZGVjZW50cmFsYW5kL2NsaS9ibG9iLzMyZGU5NmJjZmM0ZWYxYzI2YzU1ODBjNzc2N2FkNmM4Y2FjM2IzNjcvc3JjL2xpYi9EZWNlbnRyYWxhbmQudHNcbi8vIFRPRE86IHJlZmFjdG9yIHRoaXMgc3R1ZmYgY29tcGxldGVseVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1haW4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBkaXIgPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIG9wdGlvbnMuYXJnc1snLS1kaXInXSB8fCAnLicpXG4gIGF3YWl0IHZhbGlkYXRlRXhpc3RpbmdQcm9qZWN0KG9wdGlvbnMuY29tcG9uZW50cywgZGlyKVxuICBhd2FpdCB2YWxpZGF0ZVNjZW5lT3B0aW9ucyhvcHRpb25zLmNvbXBvbmVudHMsIGRpcilcblxuICBjb25zdCBwb3J0ID0gb3B0aW9ucy5hcmdzWyctLXBvcnQnXSB8fCAoYXdhaXQgcHJldmlld1BvcnQoKSlcblxuICBjb25zdCBwcm9ncmFtID0gYXdhaXQgTGlmZWN5Y2xlLnJ1bjxQcmV2aWV3Q29tcG9uZW50cz4oe1xuICAgIGFzeW5jIGluaXRDb21wb25lbnRzKCkge1xuICAgICAgY29uc3QgbWV0cmljcyA9IGNyZWF0ZVRlc3RNZXRyaWNzQ29tcG9uZW50KHJvb21zTWV0cmljcylcbiAgICAgIGNvbnN0IGNvbmZpZyA9IGNyZWF0ZVJlY29yZENvbmZpZ0NvbXBvbmVudCh7XG4gICAgICAgIEhUVFBfU0VSVkVSX1BPUlQ6IHBvcnQudG9TdHJpbmcoKSxcbiAgICAgICAgSFRUUF9TRVJWRVJfSE9TVDogJzAuMC4wLjAnLFxuICAgICAgICAuLi5wcm9jZXNzLmVudlxuICAgICAgfSlcbiAgICAgIGNvbnN0IGxvZ3MgPSBhd2FpdCBjcmVhdGVDb25zb2xlTG9nQ29tcG9uZW50KHt9KVxuICAgICAgY29uc3Qgd3MgPSBhd2FpdCBjcmVhdGVXc0NvbXBvbmVudCh7IGxvZ3MgfSlcbiAgICAgIGNvbnN0IHNlcnZlciA9IGF3YWl0IGNyZWF0ZVNlcnZlckNvbXBvbmVudDxQcmV2aWV3Q29tcG9uZW50cz4oeyBjb25maWcsIGxvZ3MsIHdzOiB3cy53cyB9LCB7IGNvcnM6IHt9IH0pXG4gICAgICBjb25zdCByb29tcyA9IGF3YWl0IGNyZWF0ZVJvb21zQ29tcG9uZW50KHtcbiAgICAgICAgbWV0cmljcyxcbiAgICAgICAgbG9ncyxcbiAgICAgICAgY29uZmlnXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBwcm9ncmFtQ2xvc2VkID0gZnV0dXJlPHZvaWQ+KClcbiAgICAgIGNvbnN0IHNpZ25hbGVyOiBJQmFzZUNvbXBvbmVudCAmIElTaWduYWxlckNvbXBvbmVudCA9IHtcbiAgICAgICAgcHJvZ3JhbUNsb3NlZCxcbiAgICAgICAgYXN5bmMgc3RvcCgpIHtcbiAgICAgICAgICAvLyB0aGlzIHByb21pc2UgaXMgcmVzb2x2ZWQgdXBvbiBTSUdURVJNIG9yIFNJR0hVUFxuICAgICAgICAgIC8vIG9yIHdoZW4gcHJvZ3JhbS5zdG9wIGlzIGNhbGxlZFxuICAgICAgICAgIHByb2dyYW1DbG9zZWQucmVzb2x2ZSgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub3B0aW9ucy5jb21wb25lbnRzLFxuICAgICAgICBsb2dzLFxuICAgICAgICBldGhlcmV1bVByb3ZpZGVyOiBwcm92aWRlckluc3RhbmNlLFxuICAgICAgICByb29tcyxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBtZXRyaWNzLFxuICAgICAgICBzZXJ2ZXIsXG4gICAgICAgIHdzLFxuICAgICAgICBzaWduYWxlclxuICAgICAgfVxuICAgIH0sXG4gICAgYXN5bmMgbWFpbih7IGNvbXBvbmVudHMsIHN0YXJ0Q29tcG9uZW50cyB9KSB7XG4gICAgICBhd2FpdCB3aXJlKGNvbXBvbmVudHMsIGRpciwgISFvcHRpb25zLmFyZ3NbJy0td2F0Y2gnXSlcbiAgICAgIGF3YWl0IHN0YXJ0Q29tcG9uZW50cygpXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBwcm9ncmFtXG59XG4iXX0=
|
@@ -70,6 +70,7 @@ export async function main(options: Options) {
|
|
70
70
|
}
|
71
71
|
|
72
72
|
return {
|
73
|
+
...options.components,
|
73
74
|
logs,
|
74
75
|
ethereumProvider: providerInstance,
|
75
76
|
rooms,
|
@@ -81,7 +82,7 @@ export async function main(options: Options) {
|
|
81
82
|
}
|
82
83
|
},
|
83
84
|
async main({ components, startComponents }) {
|
84
|
-
await wire(dir,
|
85
|
+
await wire(components, dir, !!options.args['--watch'])
|
85
86
|
await startComponents()
|
86
87
|
}
|
87
88
|
})
|
@@ -2,7 +2,8 @@ import { ILoggerComponent, IMetricsComponent, IHttpServerComponent, IConfigCompo
|
|
2
2
|
import { HTTPProvider } from 'eth-connect';
|
3
3
|
import { RoomComponent } from '@dcl/mini-comms/dist/adapters/rooms';
|
4
4
|
import { WebSocketComponent } from './ws';
|
5
|
-
|
5
|
+
import { CliComponents } from '../../components';
|
6
|
+
export type PreviewComponents = CliComponents & {
|
6
7
|
logs: ILoggerComponent;
|
7
8
|
server: IHttpServerComponent<PreviewComponents>;
|
8
9
|
config: IConfigComponent;
|
@@ -1,3 +1,3 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSUxvZ2dlckNvbXBvbmVudCxcbiAgSU1ldHJpY3NDb21wb25lbnQsXG4gIElIdHRwU2VydmVyQ29tcG9uZW50LFxuICBJQ29uZmlnQ29tcG9uZW50XG59IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvaW50ZXJmYWNlcydcbmltcG9ydCB7IEhUVFBQcm92aWRlciB9IGZyb20gJ2V0aC1jb25uZWN0J1xuaW1wb3J0IHsgUm9vbUNvbXBvbmVudCB9IGZyb20gJ0BkY2wvbWluaS1jb21tcy9kaXN0L2FkYXB0ZXJzL3Jvb21zJ1xuaW1wb3J0IHsgV2ViU29ja2V0Q29tcG9uZW50IH0gZnJvbSAnLi93cydcbmltcG9ydCB7IENsaUNvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJ1xuXG5leHBvcnQgdHlwZSBQcmV2aWV3Q29tcG9uZW50cyA9IENsaUNvbXBvbmVudHMgJiB7XG4gIGxvZ3M6IElMb2dnZXJDb21wb25lbnRcbiAgc2VydmVyOiBJSHR0cFNlcnZlckNvbXBvbmVudDxQcmV2aWV3Q29tcG9uZW50cz5cbiAgY29uZmlnOiBJQ29uZmlnQ29tcG9uZW50XG4gIG1ldHJpY3M6IElNZXRyaWNzQ29tcG9uZW50PGFueT5cbiAgZXRoZXJldW1Qcm92aWRlcjogSFRUUFByb3ZpZGVyXG4gIHJvb21zOiBSb29tQ29tcG9uZW50XG4gIHdzOiBXZWJTb2NrZXRDb21wb25lbnRcbiAgc2lnbmFsZXI6IElTaWduYWxlckNvbXBvbmVudFxufVxuXG5leHBvcnQgdHlwZSBJU2lnbmFsZXJDb21wb25lbnQgPSB7XG4gIC8vIHByb2dyYW1DbG9zZWQgcmVzb2x2ZXMgd2hlbiB0aGUgY29tcG9uZW50IGlzIHN0b3BwZWRcbiAgcHJvZ3JhbUNsb3NlZDogUHJvbWlzZTx2b2lkPlxufVxuIl19
|
@@ -7,8 +7,9 @@ import {
|
|
7
7
|
import { HTTPProvider } from 'eth-connect'
|
8
8
|
import { RoomComponent } from '@dcl/mini-comms/dist/adapters/rooms'
|
9
9
|
import { WebSocketComponent } from './ws'
|
10
|
+
import { CliComponents } from '../../components'
|
10
11
|
|
11
|
-
export type PreviewComponents = {
|
12
|
+
export type PreviewComponents = CliComponents & {
|
12
13
|
logs: ILoggerComponent
|
13
14
|
server: IHttpServerComponent<PreviewComponents>
|
14
15
|
config: IConfigComponent
|
@@ -1,2 +1,2 @@
|
|
1
1
|
import { PreviewComponents } from './types';
|
2
|
-
export declare function wire(dir: string,
|
2
|
+
export declare function wire(components: PreviewComponents, dir: string, watch?: boolean): Promise<void>;
|
@@ -6,21 +6,87 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.wire = void 0;
|
7
7
|
const path_1 = __importDefault(require("path"));
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
9
|
+
const chokidar_1 = __importDefault(require("chokidar"));
|
10
|
+
const schemas_1 = require("@dcl/schemas");
|
11
|
+
const ws_1 = require("ws");
|
12
|
+
const path_2 = require("path");
|
13
|
+
const project_1 = require("../preview/project");
|
9
14
|
const bff_1 = require("./bff");
|
10
15
|
const http_server_1 = require("@well-known-components/http-server");
|
11
16
|
const endpoints_1 = require("./endpoints");
|
12
17
|
const error_1 = require("../../utils/error");
|
13
|
-
|
18
|
+
const ws_2 = require("@well-known-components/http-server/dist/ws");
|
19
|
+
async function wire(components, dir, watch = false) {
|
14
20
|
const npmModulesPath = path_1.default.resolve(dir, 'node_modules');
|
15
21
|
if (!fs_extra_1.default.pathExistsSync(npmModulesPath)) {
|
16
22
|
throw new error_1.CliError(`Couldn\'t find ${npmModulesPath}, please run: npm install`);
|
17
23
|
}
|
18
24
|
const router = new http_server_1.Router();
|
19
|
-
|
25
|
+
const sceneUpdateClients = new Set();
|
26
|
+
router.get('/', async (ctx, next) => {
|
27
|
+
if (ctx.request.headers.get('upgrade') === 'websocket') {
|
28
|
+
return (0, ws_2.upgradeWebSocketResponse)((ws) => initWsConnection(ws, sceneUpdateClients));
|
29
|
+
}
|
30
|
+
return next();
|
31
|
+
});
|
32
|
+
(0, bff_1.setupBffAndComms)(components, router);
|
20
33
|
(0, endpoints_1.setupEcs6Endpoints)(dir, router);
|
21
34
|
components.server.setContext(components);
|
22
35
|
components.server.use(router.allowedMethods());
|
23
36
|
components.server.use(router.middleware());
|
37
|
+
if (watch) {
|
38
|
+
const { clients } = components.ws.ws;
|
39
|
+
const ignoredContent = await getDCLIgnoreFile(dir);
|
40
|
+
const ignored = ((ignoredContent === null || ignoredContent === void 0 ? void 0 : ignoredContent.split('\n')) || []).filter(Boolean);
|
41
|
+
chokidar_1.default
|
42
|
+
.watch((0, path_2.resolve)(dir), {
|
43
|
+
ignored,
|
44
|
+
ignoreInitial: false,
|
45
|
+
cwd: dir
|
46
|
+
})
|
47
|
+
.on('all', async (_, file) => {
|
48
|
+
if (await shouldUpdateScene(components, dir, file)) {
|
49
|
+
return updateScene(dir, clients);
|
50
|
+
}
|
51
|
+
});
|
52
|
+
}
|
24
53
|
}
|
25
54
|
exports.wire = wire;
|
26
|
-
|
55
|
+
const getDCLIgnoreFile = async (dir) => {
|
56
|
+
try {
|
57
|
+
return fs_extra_1.default.readFile((0, path_2.resolve)(dir, '.dclignore'), 'utf8');
|
58
|
+
}
|
59
|
+
catch (e) { }
|
60
|
+
return null;
|
61
|
+
};
|
62
|
+
const initWsConnection = (ws, clients) => {
|
63
|
+
if (ws.readyState === ws.OPEN) {
|
64
|
+
clients.add(ws);
|
65
|
+
}
|
66
|
+
else {
|
67
|
+
ws.on('open', () => clients.add(ws));
|
68
|
+
}
|
69
|
+
ws.on('close', () => clients.delete(ws));
|
70
|
+
};
|
71
|
+
const shouldUpdateScene = async (components, dir, file) => {
|
72
|
+
const sceneFile = await (0, project_1.getSceneFile)(components, dir);
|
73
|
+
if ((0, path_2.resolve)(file) !== (0, path_2.resolve)(dir, sceneFile.main)) {
|
74
|
+
if (file.endsWith('.ts') || file.endsWith('.tsx')) {
|
75
|
+
return false;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
return true;
|
79
|
+
};
|
80
|
+
const updateScene = (dir, clients) => {
|
81
|
+
for (const client of clients) {
|
82
|
+
if (client.readyState === ws_1.WebSocket.OPEN) {
|
83
|
+
const message = {
|
84
|
+
type: schemas_1.sdk.SCENE_UPDATE,
|
85
|
+
payload: { sceneId: 'b64-' + Buffer.from(dir).toString('base64'), sceneType: schemas_1.sdk.ProjectType.SCENE }
|
86
|
+
};
|
87
|
+
client.send(schemas_1.sdk.UPDATE);
|
88
|
+
client.send(JSON.stringify(message));
|
89
|
+
}
|
90
|
+
}
|
91
|
+
};
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndpcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0RBQXVCO0FBQ3ZCLHdEQUF5QjtBQUN6Qix3REFBK0I7QUFDL0IsMENBQWtDO0FBQ2xDLDJCQUE4QjtBQUM5QiwrQkFBOEI7QUFFOUIsZ0RBQWlEO0FBRWpELCtCQUF3QztBQUN4QyxvRUFBMkQ7QUFDM0QsMkNBQWdEO0FBQ2hELDZDQUE0QztBQUU1QyxtRUFBcUY7QUFFOUUsS0FBSyxVQUFVLElBQUksQ0FBQyxVQUE2QixFQUFFLEdBQVcsRUFBRSxRQUFpQixLQUFLO0lBQzNGLE1BQU0sY0FBYyxHQUFHLGNBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBR3hELElBQUksQ0FBQyxrQkFBRSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUN0QyxNQUFNLElBQUksZ0JBQVEsQ0FBQyxrQkFBa0IsY0FBYywyQkFBMkIsQ0FBQyxDQUFBO0tBQ2hGO0lBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxvQkFBTSxFQUFxQixDQUFBO0lBRTlDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQWEsQ0FBQTtJQUUvQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ2xDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLFdBQVcsRUFBRTtZQUN0RCxPQUFPLElBQUEsNkJBQXdCLEVBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQXNCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFBO1NBQ3RHO1FBRUQsT0FBTyxJQUFJLEVBQUUsQ0FBQTtJQUNmLENBQUMsQ0FBQyxDQUFBO0lBRUYsSUFBQSxzQkFBZ0IsRUFBQyxVQUFVLEVB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RCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxPQUF1QixFQUFRLEVBQUU7SUFDakUsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUU7UUFDNUIsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLGNBQVMsQ0FBQyxJQUFJLEVBQUU7WUFDeEMsTUFBTSxPQUFPLEdBQW9CO2dCQUMvQixJQUFJLEVBQUUsYUFBRyxDQUFDLFlBQVk7Z0JBQ3RCLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLGFBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFO2FBQ3JHLENBQUE7WUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtTQUNyQztLQUNGO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBmcyBmcm9tICdmcy1leHRyYSdcbmltcG9ydCBjaG9raWRhciBmcm9tICdjaG9raWRhcidcbmltcG9ydCB7IHNkayB9IGZyb20gJ0BkY2wvc2NoZW1hcydcbmltcG9ydCB7IFdlYlNvY2tldCB9IGZyb20gJ3dzJ1xuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ3BhdGgnXG5cbmltcG9ydCB7IGdldFNjZW5lRmlsZSB9IGZyb20gJy4uL3ByZXZpZXcvcHJvamVjdCdcbmltcG9ydCB7IENsaUNvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJ1xuaW1wb3J0IHsgc2V0dXBCZmZBbmRDb21tcyB9IGZyb20gJy4vYmZmJ1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQHdlbGwta25vd24tY29tcG9uZW50cy9odHRwLXNlcnZlcidcbmltcG9ydCB7IHNldHVwRWNzNkVuZHBvaW50cyB9IGZyb20gJy4vZW5kcG9pbnRzJ1xuaW1wb3J0IHsgQ2xpRXJyb3IgfSBmcm9tICcuLi8uLi91dGlscy9lcnJvcidcbmltcG9ydCB7IFByZXZpZXdDb21wb25lbnRzIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IHVwZ3JhZGVXZWJTb2NrZXRSZXNwb25zZSB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvaHR0cC1zZXJ2ZXIvZGlzdC93cydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdpcmUoY29tcG9uZW50czogUHJldmlld0NvbXBvbmVudHMsIGRpcjogc3RyaW5nLCB3YXRjaDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIGNvbnN0IG5wbU1vZHVsZXNQYXRoID0gcGF0aC5yZXNvbHZlKGRpciwgJ25vZGVfbW9kdWxlcycpXG5cbiAgLy8gVE9ETzogZGNsLnByb2plY3QubmVlZHNEZXBlbmRlbmNpZXMoKSBzaG91bGQgZG8gdGhpc1xuICBpZiAoIWZzLnBhdGhFeGlzdHNTeW5jKG5wbU1vZHVsZXNQYXRoKSkge1xuICAgIHRocm93IG5ldyBDbGlFcnJvcihgQ291bGRuXFwndCBmaW5kICR7bnBtTW9kdWxlc1BhdGh9LCBwbGVhc2UgcnVuOiBucG0gaW5zdGFsbGApXG4gIH1cblxuICBjb25zdCByb3V0ZXIgPSBuZXcgUm91dGVyPFByZXZpZXdDb21wb25lbnRzPigpXG5cbiAgY29uc3Qgc2NlbmVVcGRhdGVDbGllbnRzID0gbmV3IFNldDxXZWJTb2NrZXQ+KClcblxuICByb3V0ZXIuZ2V0KCcvJywgYXN5bmMgKGN0eCwgbmV4dCkgPT4ge1xuICAgIGlmIChjdHgucmVxdWVzdC5oZWFkZXJzLmdldCgndXBncmFkZScpID09PSAnd2Vic29ja2V0Jykge1xuICAgICAgcmV0dXJuIHVwZ3JhZGVXZWJTb2NrZXRSZXNwb25zZSgod3MpID0+IGluaXRXc0Nvbm5lY3Rpb24od3MgYXMgYW55IGFzIFdlYlNvY2tldCwgc2NlbmVVcGRhdGVDbGllbnRzKSlcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dCgpXG4gIH0pXG5cbiAgc2V0dXBCZmZBbmRDb21tcyhjb21wb25lbnRzLCByb3V0ZXIpXG4gIHNldHVwRWNzNkVuZHBvaW50cyhkaXIsIHJvdXRlcilcblxuICBjb21wb25lbnRzLnNlcnZlci5zZXRDb250ZXh0KGNvbXBvbmVudHMpXG4gIGNvbXBvbmVudHMuc2VydmVyLnVzZShyb3V0ZXIuYWxsb3dlZE1ldGhvZHMoKSlcbiAgY29tcG9uZW50cy5zZXJ2ZXIudXNlKHJvdXRlci5taWRkbGV3YXJlKCkpXG5cbiAgaWYgKHdhdGNoKSB7XG4gICAgY29uc3QgeyBjbGllbnRzIH0gPSBjb21wb25lbnRzLndzLndzXG4gICAgY29uc3QgaWdub3JlZENvbnRlbnQgPSBhd2FpdCBnZXREQ0xJZ25vcmVGaWxlKGRpcilcbiAgICBjb25zdCBpZ25vcmVkID0gKGlnbm9yZWRDb250ZW50Py5zcGxpdCgnXFxuJykgfHwgW10pLmZpbHRlcihCb29sZWFuKVxuICAgIGNob2tpZGFyXG4gICAgICAud2F0Y2gocmVzb2x2ZShkaXIpLCB7XG4gICAgICAgIGlnbm9yZWQsXG4gICAgICAgIGlnbm9yZUluaXRpYWw6IGZhbHNlLFxuICAgICAgICBjd2Q6IGRpclxuICAgICAgfSlcbiAgICAgIC5vbignYWxsJywgYXN5bmMgKF8sIGZpbGUpID0+IHtcbiAgICAgICAgaWYgKGF3YWl0IHNob3VsZFVwZGF0ZVNjZW5lKGNvbXBvbmVudHMsIGRpciwgZmlsZSkpIHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlU2NlbmUoZGlyLCBjbGllbnRzKVxuICAgICAgICB9XG4gICAgICB9KVxuICB9XG59XG5cbmNvbnN0IGdldERDTElnbm9yZUZpbGUgPSBhc3luYyAoZGlyOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+ID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZnMucmVhZEZpbGUocmVzb2x2ZShkaXIsICcuZGNsaWdub3JlJyksICd1dGY4JylcbiAgfSBjYXRjaCAoZSkge31cblxuICByZXR1cm4gbnVsbFxufVxuXG5jb25zdCBpbml0V3NDb25uZWN0aW9uID0gKHdzOiBXZWJTb2NrZXQsIGNsaWVudHM6IFNldDxXZWJTb2NrZXQ+KSA9PiB7XG4gIGlmICh3cy5yZWFkeVN0YXRlID09PSB3cy5PUEVOKSB7XG4gICAgY2xpZW50cy5hZGQod3MpXG4gIH0gZWxzZSB7XG4gICAgd3Mub24oJ29wZW4nLCAoKSA9PiBjbGllbnRzLmFkZCh3cykpXG4gIH1cbiAgd3Mub24oJ2Nsb3NlJywgKCkgPT4gY2xpZW50cy5kZWxldGUod3MpKVxufVxuXG5jb25zdCBzaG91bGRVcGRhdGVTY2VuZSA9IGFzeW5jIChcbiAgY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZnMnPixcbiAgZGlyOiBzdHJpbmcsXG4gIGZpbGU6IHN0cmluZ1xuKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IHNjZW5lRmlsZSA9IGF3YWl0IGdldFNjZW5lRmlsZShjb21wb25lbnRzLCBkaXIpXG4gIGlmIChyZXNvbHZlKGZpbGUpICE9PSByZXNvbHZlKGRpciwgc2NlbmVGaWxlLm1haW4pKSB7XG4gICAgLy8gaWdub3JlIHNvdXJjZSBmaWxlc1xuICAgIGlmIChmaWxlLmVuZHNXaXRoKCcudHMnKSB8fCBmaWxlLmVuZHNXaXRoKCcudHN4JykpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmNvbnN0IHVwZGF0ZVNjZW5lID0gKGRpcjogc3RyaW5nLCBjbGllbnRzOiBTZXQ8V2ViU29ja2V0Pik6IHZvaWQgPT4ge1xuICBmb3IgKGNvbnN0IGNsaWVudCBvZiBjbGllbnRzKSB7XG4gICAgaWYgKGNsaWVudC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgY29uc3QgbWVzc2FnZTogc2RrLlNjZW5lVXBkYXRlID0ge1xuICAgICAgICB0eXBlOiBzZGsuU0NFTkVfVVBEQVRFLFxuICAgICAgICBwYXlsb2FkOiB7IHNjZW5lSWQ6ICdiNjQtJyArIEJ1ZmZlci5mcm9tKGRpcikudG9TdHJpbmcoJ2Jhc2U2NCcpLCBzY2VuZVR5cGU6IHNkay5Qcm9qZWN0VHlwZS5TQ0VORSB9XG4gICAgICB9XG5cbiAgICAgIGNsaWVudC5zZW5kKHNkay5VUERBVEUpXG4gICAgICBjbGllbnQuc2VuZChKU09OLnN0cmluZ2lmeShtZXNzYWdlKSlcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
@@ -1,13 +1,20 @@
|
|
1
1
|
import path from 'path'
|
2
2
|
import fs from 'fs-extra'
|
3
|
+
import chokidar from 'chokidar'
|
4
|
+
import { sdk } from '@dcl/schemas'
|
5
|
+
import { WebSocket } from 'ws'
|
6
|
+
import { resolve } from 'path'
|
3
7
|
|
8
|
+
import { getSceneFile } from '../preview/project'
|
9
|
+
import { CliComponents } from '../../components'
|
4
10
|
import { setupBffAndComms } from './bff'
|
5
11
|
import { Router } from '@well-known-components/http-server'
|
6
12
|
import { setupEcs6Endpoints } from './endpoints'
|
7
13
|
import { CliError } from '../../utils/error'
|
8
14
|
import { PreviewComponents } from './types'
|
15
|
+
import { upgradeWebSocketResponse } from '@well-known-components/http-server/dist/ws'
|
9
16
|
|
10
|
-
export async function wire(dir: string,
|
17
|
+
export async function wire(components: PreviewComponents, dir: string, watch: boolean = false) {
|
11
18
|
const npmModulesPath = path.resolve(dir, 'node_modules')
|
12
19
|
|
13
20
|
// TODO: dcl.project.needsDependencies() should do this
|
@@ -17,10 +24,84 @@ export async function wire(dir: string, components: PreviewComponents) {
|
|
17
24
|
|
18
25
|
const router = new Router<PreviewComponents>()
|
19
26
|
|
20
|
-
|
27
|
+
const sceneUpdateClients = new Set<WebSocket>()
|
28
|
+
|
29
|
+
router.get('/', async (ctx, next) => {
|
30
|
+
if (ctx.request.headers.get('upgrade') === 'websocket') {
|
31
|
+
return upgradeWebSocketResponse((ws) => initWsConnection(ws as any as WebSocket, sceneUpdateClients))
|
32
|
+
}
|
33
|
+
|
34
|
+
return next()
|
35
|
+
})
|
36
|
+
|
37
|
+
setupBffAndComms(components, router)
|
21
38
|
setupEcs6Endpoints(dir, router)
|
22
39
|
|
23
40
|
components.server.setContext(components)
|
24
41
|
components.server.use(router.allowedMethods())
|
25
42
|
components.server.use(router.middleware())
|
43
|
+
|
44
|
+
if (watch) {
|
45
|
+
const { clients } = components.ws.ws
|
46
|
+
const ignoredContent = await getDCLIgnoreFile(dir)
|
47
|
+
const ignored = (ignoredContent?.split('\n') || []).filter(Boolean)
|
48
|
+
chokidar
|
49
|
+
.watch(resolve(dir), {
|
50
|
+
ignored,
|
51
|
+
ignoreInitial: false,
|
52
|
+
cwd: dir
|
53
|
+
})
|
54
|
+
.on('all', async (_, file) => {
|
55
|
+
if (await shouldUpdateScene(components, dir, file)) {
|
56
|
+
return updateScene(dir, clients)
|
57
|
+
}
|
58
|
+
})
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
const getDCLIgnoreFile = async (dir: string): Promise<string | null> => {
|
63
|
+
try {
|
64
|
+
return fs.readFile(resolve(dir, '.dclignore'), 'utf8')
|
65
|
+
} catch (e) {}
|
66
|
+
|
67
|
+
return null
|
68
|
+
}
|
69
|
+
|
70
|
+
const initWsConnection = (ws: WebSocket, clients: Set<WebSocket>) => {
|
71
|
+
if (ws.readyState === ws.OPEN) {
|
72
|
+
clients.add(ws)
|
73
|
+
} else {
|
74
|
+
ws.on('open', () => clients.add(ws))
|
75
|
+
}
|
76
|
+
ws.on('close', () => clients.delete(ws))
|
77
|
+
}
|
78
|
+
|
79
|
+
const shouldUpdateScene = async (
|
80
|
+
components: Pick<CliComponents, 'fs'>,
|
81
|
+
dir: string,
|
82
|
+
file: string
|
83
|
+
): Promise<boolean> => {
|
84
|
+
const sceneFile = await getSceneFile(components, dir)
|
85
|
+
if (resolve(file) !== resolve(dir, sceneFile.main)) {
|
86
|
+
// ignore source files
|
87
|
+
if (file.endsWith('.ts') || file.endsWith('.tsx')) {
|
88
|
+
return false
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
return true
|
93
|
+
}
|
94
|
+
|
95
|
+
const updateScene = (dir: string, clients: Set<WebSocket>): void => {
|
96
|
+
for (const client of clients) {
|
97
|
+
if (client.readyState === WebSocket.OPEN) {
|
98
|
+
const message: sdk.SceneUpdate = {
|
99
|
+
type: sdk.SCENE_UPDATE,
|
100
|
+
payload: { sceneId: 'b64-' + Buffer.from(dir).toString('base64'), sceneType: sdk.ProjectType.SCENE }
|
101
|
+
}
|
102
|
+
|
103
|
+
client.send(sdk.UPDATE)
|
104
|
+
client.send(JSON.stringify(message))
|
105
|
+
}
|
106
|
+
}
|
26
107
|
}
|
@@ -13,4 +13,4 @@ async function createWsComponent(_) {
|
|
13
13
|
};
|
14
14
|
}
|
15
15
|
exports.createWsComponent = createWsComponent;
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQkFBb0M7QUFZN0IsS0FBSyxVQUFVLGlCQUFpQixDQUFDLENBQWtDO0lBQ3hFLE1BQU0sRUFBRSxHQUFHLElBQUksb0JBQWUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBRWxELEtBQUssVUFBVSxJQUFJO1FBQ2pCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNaLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSTtRQUNKLEVBQUU7S0FDSCxDQUFBO0FBQ0gsQ0FBQztBQVhELDhDQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2ViU29ja2V0U2VydmVyIH0gZnJvbSAnd3MnXG5pbXBvcnQgeyBQcmV2aWV3Q29tcG9uZW50cyB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBJQmFzZUNvbXBvbmVudCB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvaW50ZXJmYWNlcydcblxuZXhwb3J0IHR5cGUgV2ViU29ja2V0Q29tcG9uZW50ID0gSUJhc2VDb21wb25lbnQgJiB7XG4gIHdzOiBXZWJTb2NrZXRTZXJ2ZXJcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgd3Mtc2VydmVyIGNvbXBvbmVudFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlV3NDb21wb25lbnQoXzogUGljazxQcmV2aWV3Q29tcG9uZW50cywgJ2xvZ3MnPik6IFByb21pc2U8V2ViU29ja2V0Q29tcG9uZW50PiB7XG4gIGNvbnN0IHdzID0gbmV3IFdlYlNvY2tldFNlcnZlcih7IG5vU2VydmVyOiB0cnVlIH0pXG5cbiAgYXN5bmMgZnVuY3Rpb24gc3RvcCgpIHtcbiAgICB3cy5jbG9zZSgpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIHN0b3AsXG4gICAgd3NcbiAgfVxufVxuIl19
|
@@ -76,7 +76,7 @@ async function main(options) {
|
|
76
76
|
if (watch) {
|
77
77
|
await (0, build_1.main)(Object.assign({ args: { '--dir': dir, '--watch': watch } }, comps));
|
78
78
|
}
|
79
|
-
const server = await (0, preview_1.main)(Object.assign({ args: { '--dir': dir, '--port': port } }, comps));
|
79
|
+
const server = await (0, preview_1.main)(Object.assign({ args: { '--dir': dir, '--port': port, '--watch': watch } }, comps));
|
80
80
|
const networkInterfaces = os_1.default.networkInterfaces();
|
81
81
|
const availableURLs = [];
|
82
82
|
console.log(`\nPreview server is now running!`);
|
@@ -123,4 +123,4 @@ async function main(options) {
|
|
123
123
|
await server.components.signaler.programClosed;
|
124
124
|
}
|
125
125
|
exports.main = main;
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBbUI7QUFDbkIsK0JBQThCO0FBQzlCLGdEQUF1QjtBQUd2QixvQ0FBd0M7QUFDeEMsd0NBQTRDO0FBQzVDLDBDQUE2QztBQUM3QywyQ0FBMEM7QUFDMUMsOENBQXlDO0FBTzVCLFFBQUEsSUFBSSxHQUFHLElBQUEsY0FBTyxFQUFDO0lBQzFCLE9BQU8sRUFBRSxNQUFNO0lBQ2YsUUFBUSxFQUFFLE9BQU87SUFDakIsUUFBUSxFQUFFLE1BQU07SUFDaEIsWUFBWSxFQUFFLE9BQU87SUFDckIsY0FBYyxFQUFFLE9BQU87SUFDdkIsWUFBWSxFQUFFLE9BQU87SUFDckIsTUFBTSxFQUFFLE9BQU87SUFDZixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxJQUFJLEVBQUUsWUFBWTtJQUNsQixJQUFJLEVBQUUsY0FBYztJQUNwQixJQUFJLEVBQUUsWUFBWTtJQUNsQixjQUFjLEVBQUUsT0FBTztJQUN2QixrQkFBa0IsRUFBRSxPQUFPO0NBQzVCLENBQUMsQ0FBQTtBQUVGLFNBQWdCLElBQUk7SUFDbEIsT0FBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBd0JSLENBQUE7QUFDRCxDQUFDO0FBMUJELG9CQTBCQztBQUVNLEtBQUssVUFBVSxJQUFJLENBQUMsT0FBZ0I7SUFDekMsTUFBTSxHQUFHLEdBQUcsSUFBQSxjQUFPLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7SUFDaEUsTUFBTSxJQUFJLEdBQUcsWUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FB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QUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzNHLENBQUMsQ0FBQyxDQUFBO0lBRUYsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUU7UUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUE7S0FDM0I7SUFFRCxJQUFJLFlBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1FBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUNwQyxLQUFLLE1BQU0sSUFBSSxJQUFJLFVBQVUsRUFBRTtZQUM3QixNQUFNLFlBQVksR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFBO1lBQzFDLFlBQVksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFBO1lBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1NBQ3JEO0tBQ0Y7SUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO0lBR3ZDLElBQUksV0FBVyxJQUFJLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUNqRSxJQUFJO1lBQ0YsTUFBTSxJQUFBLGNBQUksRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUMxQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFBO1NBQ3JEO0tBQ0Y7SUFHRCxNQUFNLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQTtBQUNoRCxDQUFDO0FBakZELG9CQWlGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvcyBmcm9tICdvcydcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJ1xuaW1wb3J0IG9wZW4gZnJvbSAnb3BlbidcblxuaW1wb3J0IHsgQ2xpQ29tcG9uZW50cyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnXG5pbXBvcnQgeyBtYWluIGFzIGJ1aWxkIH0gZnJvbSAnLi4vYnVpbGQnXG5pbXBvcnQgeyBtYWluIGFzIHByZXZpZXcgfSBmcm9tICcuLi9wcmV2aWV3J1xuaW1wb3J0IHsgcHJldmlld1BvcnQgfSBmcm9tICcuLi9wcmV2aWV3L3BvcnQnXG5pbXBvcnQgeyBnZXRBcmdzIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXJncydcbmltcG9ydCB7IG5wbVJ1biB9IGZyb20gJy4uL2J1aWxkL2hlbHBlcnMnXG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgYXJnczogdHlwZW9mIGFyZ3NcbiAgY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZmV0Y2gnIHwgJ2ZzJz5cbn1cblxuZXhwb3J0IGNvbnN0IGFyZ3MgPSBnZXRBcmdzKHtcbiAgJy0tZGlyJzogU3RyaW5nLFxuICAnLS1oZWxwJzogQm9vbGVhbixcbiAgJy0tcG9ydCc6IFN0cmluZyxcbiAgJy0tbm8tZGVidWcnOiBCb29sZWFuLFxuICAnLS1uby1icm93c2VyJzogQm9vbGVhbixcbiAgJy0tbm8td2F0Y2gnOiBCb29sZWFuLFxuICAnLS1jaSc6IEJvb2xlYW4sXG4gICctLXNraXAtaW5zdGFsbCc6IEJvb2xlYW4sXG4gICctLXdlYjMnOiBCb29sZWFuLFxuICAnLWgnOiAnLS1oZWxwJyxcbiAgJy1wJzogJy0tcG9ydCcsXG4gICctZCc6ICctLW5vLWRlYnVnJyxcbiAgJy1iJzogJy0tbm8tYnJvd3NlcicsXG4gICctdyc6ICctLW5vLXdhdGNoJyxcbiAgJy0tc2tpcC1idWlsZCc6IEJvb2xlYW4sXG4gICctLWRlc2t0b3AtY2xpZW50JzogQm9vbGVhblxufSlcblxuZXhwb3J0IGZ1bmN0aW9uIGhlbHAoKSB7XG4gIHJldHVybiBgXG4gIFVzYWdlOiBkY2wgc3RhcnQgW29wdGlvbnNdXG5cbiAgICBPcHRpb25zOlxuXG4gICAgICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgIERpc3BsYXlzIGNvbXBsZXRlIGhlbHBcbiAgICAgIC1wLCAtLXBvcnQgICAgICAgIFtwb3J0XSAgU2VsZWN0IGEgY3VzdG9tIHBvcnQgZm9yIHRoZSBkZXZlbG9wbWVudCBzZXJ2ZXJcbiAgICAgIC1kLCAtLW5vLWRlYnVnICAgICAgICAgICAgRGlzYWJsZSBkZWJ1Z2dpbmcgcGFuZWxcbiAgICAgIC1iLCAtLW5vLWJyb3dzZXIgICAgICAgICAgRG8gbm90IG9wZW4gYSBuZXcgYnJvd3NlciB3aW5kb3dcbiAgICAgIC13LCAtLW5vLXdhdGNoICAgICAgICAgICAgRG8gbm90IG9wZW4gd2F0Y2ggZm9yIGZpbGVzeXN0ZW0gY2hhbmdlc1xuICAgICAgLWMsIC0tY2kgICAgICAgICAgICAgICAgICBSdW4gdGhlIHBhcmNlbCBwcmV2aWV3ZXIgb24gYSByZW1vdGUgdW5peCBzZXJ2ZXJcbiAgICAgIC0td2ViMyAgICAgICAgICAgICAgICAgICAgQ29ubmVjdHMgcHJldmlldyB0byBicm93c2VyIHdhbGxldCB0byB1c2UgdGhlIGFzc29jaWF0ZWQgYXZhdGFyIGFuZCBhY2NvdW50XG4gICAgICAtLXNraXAtYnVpbGQgICAgICAgICAgICAgIFNraXAgYnVpbGQgYW5kIG9ubHkgc2VydmUgdGhlIGZpbGVzIGluIHByZXZpZXcgbW9kZVxuICAgICAgLS1kZXNrdG9wLWNsaWVudCAgICAgICAgICBTaG93IFVSTCB0byBsYXVuY2ggcHJldmlldyBpbiB0aGUgZGVza3RvcCBjbGllbnQgKEJFVEEpXG5cbiAgICBFeGFtcGxlczpcblxuICAgIC0gU3RhcnQgYSBsb2NhbCBkZXZlbG9wbWVudCBzZXJ2ZXIgZm9yIGEgRGVjZW50cmFsYW5kIFNjZW5lIGF0IHBvcnQgMzUwMFxuXG4gICAgICAkIGRjbCBzdGFydCAtcCAzNTAwXG5cbiAgICAtIFN0YXJ0IGEgbG9jYWwgZGV2ZWxvcG1lbnQgc2VydmVyIGZvciBhIERlY2VudHJhbGFuZCBTY2VuZSBhdCBhIGRvY2tlciBjb250YWluZXJcblxuICAgICAgJCBkY2wgc3RhcnQgLS1jaVxuYFxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFpbihvcHRpb25zOiBPcHRpb25zKSB7XG4gIGNvbnN0IGRpciA9IHJlc29sdmUocHJvY2Vzcy5jd2QoKSwgb3B0aW9ucy5hcmdzWyctLWRpciddIHx8ICcuJylcbiAgY29uc3QgaXNDaSA9IGFyZ3NbJy0tY2knXSB8fCBwcm9jZXNzLmVudi5DSSB8fCBmYWxzZVxuICBjb25zdCBkZWJ1ZyA9ICFhcmdzWyctLW5vLWRlYnVnJ10gJiYgIWlzQ2lcbiAgY29uc3Qgb3BlbkJyb3dzZXIgPSAhYXJnc1snLS1uby1icm93c2VyJ10gJiYgIWlzQ2lcbiAgY29uc3Qgc2tpcEJ1aWxkID0gYXJnc1snLS1za2lwLWJ1aWxkJ11cbiAgY29uc3Qgd2F0Y2ggPSAhYXJnc1snLS1uby13YXRjaCddXG4gIGNvbnN0IGVuYWJsZVdlYjMgPSBhcmdzWyctLXdlYjMnXVxuICBjb25zdCBwb3J0ID0gcGFyc2VJbnQoYXJnc1snLS1wb3J0J10hLCAxMCkgfHwgKGF3YWl0IHByZXZpZXdQb3J0KCkpXG4gIGNvbnN0IGJhc2VDb29yZHMgPSB7IHg6IDAsIHk6IDAgfVxuICBjb25zdCBoYXNQb3J0YWJsZUV4cGVyaWVuY2UgPSBmYWxzZVxuXG4gIGNvbnN0IGNvbXBzID0geyBjb21wb25lbnRzOiBvcHRpb25zLmNvbXBvbmVudHMgfVxuXG4gIC8vIGZpcnN0IHJ1biBgbnBtIHJ1biBidWlsZGAsIHRoaXMgY2FuIGJlIGRpc2FibGVkIHdpdGggLS1za2lwLWJ1aWxkXG4gIGlmICghc2tpcEJ1aWxkKSB7XG4gICAgYXdhaXQgbnBtUnVuKGRpciwgJ2J1aWxkJylcbiAgfVxuXG4gIC8vIHRoZW4gc3RhcnQgdGhlIGVtYmVkZGVkIGNvbXBpbGVyLCB0aGlzIGNhbiBiZSBkaXNhYmxlZCB3aXRoIC0tbm8td2F0Y2hcbiAgaWYgKHdhdGNoKSB7XG4gICAgYXdhaXQgYnVpbGQoeyBhcmdzOiB7ICctLWRpcic6IGRpciwgJy0td2F0Y2gnOiB3YXRjaCB9LCAuLi5jb21wcyB9KVxuICB9XG5cbiAgLy8gYWZ0ZXIgdGhlIHdhdGNoZXIgaXMgcnVubmluZywgc3RhcnQgdGhlIHNlcnZlclxuICBjb25zdCBzZXJ2ZXIgPSBhd2FpdCBwcmV2aWV3KHsgYXJnczogeyAnLS1kaXInOiBkaXIsICctLXBvcnQnOiBwb3J0IH0sIC4uLmNvbXBzIH0pXG5cbiAgY29uc3QgbmV0d29ya0ludGVyZmFjZXMgPSBvcy5uZXR3b3JrSW50ZXJmYWNlcygpXG4gIGNvbnN0IGF2YWlsYWJsZVVSTHM6IHN0cmluZ1tdID0gW11cblxuICBjb25zb2xlLmxvZyhgXFxuUHJldmlldyBzZXJ2ZXIgaXMgbm93IHJ1bm5pbmchYClcbiAgY29uc29sZS5sb2coJ0F2YWlsYWJsZSBvbjpcXG4nKVxuXG4gIE9iamVjdC5rZXlzKG5ldHdvcmtJbnRlcmZhY2VzKS5mb3JFYWNoKChkZXYpID0+IHtcbiAgICA7KG5ldHdvcmtJbnRlcmZhY2VzW2Rldl0gfHwgW10pLmZvckVhY2goKGRldGFpbHMpID0+IHtcbiAgICAgIGlmIChkZXRhaWxzLmZhbWlseSA9PT0gJ0lQdjQnKSB7XG4gICAgICAgIGxldCBhZGRyID0gYGh0dHA6Ly8ke2RldGFpbHMuYWRkcmVzc306JHtwb3J0fT9wb3NpdGlvbj0ke2Jhc2VDb29yZHMueH0lMkMke2Jhc2VDb29yZHMueX0mRU5BQkxFX0VDUzdgXG4gICAgICAgIGlmIChkZWJ1Zykge1xuICAgICAgICAgIGFkZHIgPSBgJHthZGRyfSZTQ0VORV9ERUJVR19QQU5FTGBcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5hYmxlV2ViMyB8fCBoYXNQb3J0YWJsZUV4cGVyaWVuY2UpIHtcbiAgICAgICAgICBhZGRyID0gYCR7YWRkcn0mRU5BQkxFX1dFQjNgXG4gICAgICAgIH1cblxuICAgICAgICBhdmFpbGFibGVVUkxzLnB1c2goYWRkcilcbiAgICAgIH1cbiAgICB9KVxuICB9KVxuXG4gIC8vIFB1c2ggbG9jYWxob3N0IGFuZCAxMjcuMC4wLjEgYXQgdG9wXG4gIGNvbnN0IHNvcnRlZFVSTHMgPSBhdmFpbGFibGVVUkxzLnNvcnQoKGEsIF9iKSA9PiB7XG4gICAgcmV0dXJuIGEudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnbG9jYWxob3N0JykgfHwgYS5pbmNsdWRlcygnMTI3LjAuMC4xJykgfHwgYS5pbmNsdWRlcygnMC4wLjAuMCcpID8gLTEgOiAxXG4gIH0pXG5cbiAgZm9yIChjb25zdCBhZGRyIG9mIHNvcnRlZFVSTHMpIHtcbiAgICBjb25zb2xlLmxvZyhgICAgICR7YWRkcn1gKVxuICB9XG5cbiAgaWYgKGFyZ3NbJy0tZGVza3RvcC1jbGllbnQnXSkge1xuICAgIGNvbnNvbGUubG9nKCdcXG4gIERlc2t0b3AgY2xpZW50OlxcbicpXG4gICAgZm9yIChjb25zdCBhZGRyIG9mIHNvcnRlZFVSTHMpIHtcbiAgICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgc2VhcmNoUGFyYW1zLmFwcGVuZCgnUFJFVklFVy1NT0RFJywgYWRkcilcbiAgICAgIGNvbnNvbGUubG9nKGAgICAgZGNsOi8vJHtzZWFyY2hQYXJhbXMudG9TdHJpbmcoKX0mYClcbiAgICB9XG4gIH1cblxuICBjb25zb2xlLmxvZygnXFxuICBEZXRhaWxzOlxcbicpXG4gIGNvbnNvbGUubG9nKCdcXG5QcmVzcyBDVFJMK0MgdG8gZXhpdFxcbicpXG5cbiAgLy8gT3BlbiBwcmVmZXJhYmx5IGxvY2FsaG9zdC8xMjcuMC4wLjFcbiAgaWYgKG9wZW5Ccm93c2VyICYmIHNvcnRlZFVSTHMubGVuZ3RoICYmICFhcmdzWyctLWRlc2t0b3AtY2xpZW50J10pIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgb3Blbihzb3J0ZWRVUkxzWzBdKVxuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgIGNvbnNvbGUubG9nKCdVbmFibGUgdG8gb3BlbiBicm93c2VyIGF1dG9tYXRpY2FsbHkuJylcbiAgICB9XG4gIH1cblxuICAvLyB0aGlzIHNpZ25hbCBpcyByZXNvbHZlZCBieTogKHdrYylwcm9ncmFtLnN0b3AoKSwgU0lHVEVSTSwgU0lHSFVQXG4gIGF3YWl0IHNlcnZlci5jb21wb25lbnRzLnNpZ25hbGVyLnByb2dyYW1DbG9zZWRcbn1cbiJdfQ==
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBbUI7QUFDbkIsK0JBQThCO0FBQzlCLGdEQUF1QjtBQUd2QixvQ0FBd0M7QUFDeEMsd0NBQTRDO0FBQzVDLDBDQUE2QztBQUM3QywyQ0FBMEM7QUFDMUMsOENBQXlDO0FBTzVCLFFBQUEsSUFBSSxHQUFHLElBQUEsY0FBTyxFQUFDO0lBQzFCLE9BQU8sRUFBRSxNQUFNO0lBQ2YsUUFBUSxFQUFFLE9BQU87SUFDakIsUUFBUSxFQUFFLE1BQU07SUFDaEIsWUFBWSxFQUFFLE9BQU87SUFDckIsY0FBYyxFQUFFLE9BQU87SUFDdkIsWUFBWSxFQUFFLE9BQU87SUFDckIsTUFBTSxFQUFFLE9BQU87SUFDZixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxJQUFJLEVBQUUsWUFBWTtJQUNsQixJQUFJLEVBQUUsY0FBYztJQUNwQixJQUFJLEVBQUUsWUFBWTtJQUNsQixjQUFjLEVBQUUsT0FBTztJQUN2QixrQkFBa0IsRUFBRSxPQUFPO0NBQzVCLENBQUMsQ0FBQTtBQUVGLFNBQWdCLElBQUk7SUFDbEIsT0FBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBd0JSLENBQUE7QUFDRCxDQUFDO0FBMUJELG9CQTBCQztBQUVNLEtBQUssVUFBVSxJQUFJLENBQUMsT0FBZ0I7SUFDekMsTUFBTSxHQUFHLEdBQUcsSUFBQSxjQUFPLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7SUFDaEUsTUFBTSxJQUFJLEdBQUcsWUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FB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QUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDM0csQ0FBQyxDQUFDLENBQUE7SUFFRixLQUFLLE1BQU0sSUFBSSxJQUFJLFVBQVUsRUFBRTtRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQTtLQUMzQjtJQUVELElBQUksWUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7UUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1FBQ3BDLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxFQUFFO1lBQzdCLE1BQU0sWUFBWSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUE7WUFDMUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLFlBQVksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUE7U0FDckQ7S0FDRjtJQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUE7SUFHdkMsSUFBSSxXQUFXLElBQUksVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1FBQ2pFLElBQUk7WUFDRixNQUFNLElBQUEsY0FBSSxFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQzFCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxDQUFDLENBQUE7U0FDckQ7S0FDRjtJQUdELE1BQU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFBO0FBQ2hELENBQUM7QUFqRkQsb0JBaUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9zIGZyb20gJ29zJ1xuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ3BhdGgnXG5pbXBvcnQgb3BlbiBmcm9tICdvcGVuJ1xuXG5pbXBvcnQgeyBDbGlDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cydcbmltcG9ydCB7IG1haW4gYXMgYnVpbGQgfSBmcm9tICcuLi9idWlsZCdcbmltcG9ydCB7IG1haW4gYXMgcHJldmlldyB9IGZyb20gJy4uL3ByZXZpZXcnXG5pbXBvcnQgeyBwcmV2aWV3UG9ydCB9IGZyb20gJy4uL3ByZXZpZXcvcG9ydCdcbmltcG9ydCB7IGdldEFyZ3MgfSBmcm9tICcuLi8uLi91dGlscy9hcmdzJ1xuaW1wb3J0IHsgbnBtUnVuIH0gZnJvbSAnLi4vYnVpbGQvaGVscGVycydcblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICBhcmdzOiB0eXBlb2YgYXJnc1xuICBjb21wb25lbnRzOiBQaWNrPENsaUNvbXBvbmVudHMsICdmZXRjaCcgfCAnZnMnPlxufVxuXG5leHBvcnQgY29uc3QgYXJncyA9IGdldEFyZ3Moe1xuICAnLS1kaXInOiBTdHJpbmcsXG4gICctLWhlbHAnOiBCb29sZWFuLFxuICAnLS1wb3J0JzogU3RyaW5nLFxuICAnLS1uby1kZWJ1Zyc6IEJvb2xlYW4sXG4gICctLW5vLWJyb3dzZXInOiBCb29sZWFuLFxuICAnLS1uby13YXRjaCc6IEJvb2xlYW4sXG4gICctLWNpJzogQm9vbGVhbixcbiAgJy0tc2tpcC1pbnN0YWxsJzogQm9vbGVhbixcbiAgJy0td2ViMyc6IEJvb2xlYW4sXG4gICctaCc6ICctLWhlbHAnLFxuICAnLXAnOiAnLS1wb3J0JyxcbiAgJy1kJzogJy0tbm8tZGVidWcnLFxuICAnLWInOiAnLS1uby1icm93c2VyJyxcbiAgJy13JzogJy0tbm8td2F0Y2gnLFxuICAnLS1za2lwLWJ1aWxkJzogQm9vbGVhbixcbiAgJy0tZGVza3RvcC1jbGllbnQnOiBCb29sZWFuXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gaGVscCgpIHtcbiAgcmV0dXJuIGBcbiAgVXNhZ2U6IGRjbCBzdGFydCBbb3B0aW9uc11cblxuICAgIE9wdGlvbnM6XG5cbiAgICAgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgRGlzcGxheXMgY29tcGxldGUgaGVscFxuICAgICAgLXAsIC0tcG9ydCAgICAgICAgW3BvcnRdICBTZWxlY3QgYSBjdXN0b20gcG9ydCBmb3IgdGhlIGRldmVsb3BtZW50IHNlcnZlclxuICAgICAgLWQsIC0tbm8tZGVidWcgICAgICAgICAgICBEaXNhYmxlIGRlYnVnZ2luZyBwYW5lbFxuICAgICAgLWIsIC0tbm8tYnJvd3NlciAgICAgICAgICBEbyBub3Qgb3BlbiBhIG5ldyBicm93c2VyIHdpbmRvd1xuICAgICAgLXcsIC0tbm8td2F0Y2ggICAgICAgICAgICBEbyBub3Qgb3BlbiB3YXRjaCBmb3IgZmlsZXN5c3RlbSBjaGFuZ2VzXG4gICAgICAtYywgLS1jaSAgICAgICAgICAgICAgICAgIFJ1biB0aGUgcGFyY2VsIHByZXZpZXdlciBvbiBhIHJlbW90ZSB1bml4IHNlcnZlclxuICAgICAgLS13ZWIzICAgICAgICAgICAgICAgICAgICBDb25uZWN0cyBwcmV2aWV3IHRvIGJyb3dzZXIgd2FsbGV0IHRvIHVzZSB0aGUgYXNzb2NpYXRlZCBhdmF0YXIgYW5kIGFjY291bnRcbiAgICAgIC0tc2tpcC1idWlsZCAgICAgICAgICAgICAgU2tpcCBidWlsZCBhbmQgb25seSBzZXJ2ZSB0aGUgZmlsZXMgaW4gcHJldmlldyBtb2RlXG4gICAgICAtLWRlc2t0b3AtY2xpZW50ICAgICAgICAgIFNob3cgVVJMIHRvIGxhdW5jaCBwcmV2aWV3IGluIHRoZSBkZXNrdG9wIGNsaWVudCAoQkVUQSlcblxuICAgIEV4YW1wbGVzOlxuXG4gICAgLSBTdGFydCBhIGxvY2FsIGRldmVsb3BtZW50IHNlcnZlciBmb3IgYSBEZWNlbnRyYWxhbmQgU2NlbmUgYXQgcG9ydCAzNTAwXG5cbiAgICAgICQgZGNsIHN0YXJ0IC1wIDM1MDBcblxuICAgIC0gU3RhcnQgYSBsb2NhbCBkZXZlbG9wbWVudCBzZXJ2ZXIgZm9yIGEgRGVjZW50cmFsYW5kIFNjZW5lIGF0IGEgZG9ja2VyIGNvbnRhaW5lclxuXG4gICAgICAkIGRjbCBzdGFydCAtLWNpXG5gXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWluKG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgY29uc3QgZGlyID0gcmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBvcHRpb25zLmFyZ3NbJy0tZGlyJ10gfHwgJy4nKVxuICBjb25zdCBpc0NpID0gYXJnc1snLS1jaSddIHx8IHByb2Nlc3MuZW52LkNJIHx8IGZhbHNlXG4gIGNvbnN0IGRlYnVnID0gIWFyZ3NbJy0tbm8tZGVidWcnXSAmJiAhaXNDaVxuICBjb25zdCBvcGVuQnJvd3NlciA9ICFhcmdzWyctLW5vLWJyb3dzZXInXSAmJiAhaXNDaVxuICBjb25zdCBza2lwQnVpbGQgPSBhcmdzWyctLXNraXAtYnVpbGQnXVxuICBjb25zdCB3YXRjaCA9ICFhcmdzWyctLW5vLXdhdGNoJ11cbiAgY29uc3QgZW5hYmxlV2ViMyA9IGFyZ3NbJy0td2ViMyddXG4gIGNvbnN0IHBvcnQgPSBwYXJzZUludChhcmdzWyctLXBvcnQnXSEsIDEwKSB8fCAoYXdhaXQgcHJldmlld1BvcnQoKSlcbiAgY29uc3QgYmFzZUNvb3JkcyA9IHsgeDogMCwgeTogMCB9XG4gIGNvbnN0IGhhc1BvcnRhYmxlRXhwZXJpZW5jZSA9IGZhbHNlXG5cbiAgY29uc3QgY29tcHMgPSB7IGNvbXBvbmVudHM6IG9wdGlvbnMuY29tcG9uZW50cyB9XG5cbiAgLy8gZmlyc3QgcnVuIGBucG0gcnVuIGJ1aWxkYCwgdGhpcyBjYW4gYmUgZGlzYWJsZWQgd2l0aCAtLXNraXAtYnVpbGRcbiAgaWYgKCFza2lwQnVpbGQpIHtcbiAgICBhd2FpdCBucG1SdW4oZGlyLCAnYnVpbGQnKVxuICB9XG5cbiAgLy8gdGhlbiBzdGFydCB0aGUgZW1iZWRkZWQgY29tcGlsZXIsIHRoaXMgY2FuIGJlIGRpc2FibGVkIHdpdGggLS1uby13YXRjaFxuICBpZiAod2F0Y2gpIHtcbiAgICBhd2FpdCBidWlsZCh7IGFyZ3M6IHsgJy0tZGlyJzogZGlyLCAnLS13YXRjaCc6IHdhdGNoIH0sIC4uLmNvbXBzIH0pXG4gIH1cblxuICAvLyBhZnRlciB0aGUgd2F0Y2hlciBpcyBydW5uaW5nLCBzdGFydCB0aGUgc2VydmVyXG4gIGNvbnN0IHNlcnZlciA9IGF3YWl0IHByZXZpZXcoeyBhcmdzOiB7ICctLWRpcic6IGRpciwgJy0tcG9ydCc6IHBvcnQsICctLXdhdGNoJzogd2F0Y2ggfSwgLi4uY29tcHMgfSlcblxuICBjb25zdCBuZXR3b3JrSW50ZXJmYWNlcyA9IG9zLm5ldHdvcmtJbnRlcmZhY2VzKClcbiAgY29uc3QgYXZhaWxhYmxlVVJMczogc3RyaW5nW10gPSBbXVxuXG4gIGNvbnNvbGUubG9nKGBcXG5QcmV2aWV3IHNlcnZlciBpcyBub3cgcnVubmluZyFgKVxuICBjb25zb2xlLmxvZygnQXZhaWxhYmxlIG9uOlxcbicpXG5cbiAgT2JqZWN0LmtleXMobmV0d29ya0ludGVyZmFjZXMpLmZvckVhY2goKGRldikgPT4ge1xuICAgIDsobmV0d29ya0ludGVyZmFjZXNbZGV2XSB8fCBbXSkuZm9yRWFjaCgoZGV0YWlscykgPT4ge1xuICAgICAgaWYgKGRldGFpbHMuZmFtaWx5ID09PSAnSVB2NCcpIHtcbiAgICAgICAgbGV0IGFkZHIgPSBgaHR0cDovLyR7ZGV0YWlscy5hZGRyZXNzfToke3BvcnR9P3Bvc2l0aW9uPSR7YmFzZUNvb3Jkcy54fSUyQyR7YmFzZUNvb3Jkcy55fSZFTkFCTEVfRUNTN2BcbiAgICAgICAgaWYgKGRlYnVnKSB7XG4gICAgICAgICAgYWRkciA9IGAke2FkZHJ9JlNDRU5FX0RFQlVHX1BBTkVMYFxuICAgICAgICB9XG4gICAgICAgIGlmIChlbmFibGVXZWIzIHx8IGhhc1BvcnRhYmxlRXhwZXJpZW5jZSkge1xuICAgICAgICAgIGFkZHIgPSBgJHthZGRyfSZFTkFCTEVfV0VCM2BcbiAgICAgICAgfVxuXG4gICAgICAgIGF2YWlsYWJsZVVSTHMucHVzaChhZGRyKVxuICAgICAgfVxuICAgIH0pXG4gIH0pXG5cbiAgLy8gUHVzaCBsb2NhbGhvc3QgYW5kIDEyNy4wLjAuMSBhdCB0b3BcbiAgY29uc3Qgc29ydGVkVVJMcyA9IGF2YWlsYWJsZVVSTHMuc29ydCgoYSwgX2IpID0+IHtcbiAgICByZXR1cm4gYS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdsb2NhbGhvc3QnKSB8fCBhLmluY2x1ZGVzKCcxMjcuMC4wLjEnKSB8fCBhLmluY2x1ZGVzKCcwLjAuMC4wJykgPyAtMSA6IDFcbiAgfSlcblxuICBmb3IgKGNvbnN0IGFkZHIgb2Ygc29ydGVkVVJMcykge1xuICAgIGNvbnNvbGUubG9nKGAgICAgJHthZGRyfWApXG4gIH1cblxuICBpZiAoYXJnc1snLS1kZXNrdG9wLWNsaWVudCddKSB7XG4gICAgY29uc29sZS5sb2coJ1xcbiAgRGVza3RvcCBjbGllbnQ6XFxuJylcbiAgICBmb3IgKGNvbnN0IGFkZHIgb2Ygc29ydGVkVVJMcykge1xuICAgICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICBzZWFyY2hQYXJhbXMuYXBwZW5kKCdQUkVWSUVXLU1PREUnLCBhZGRyKVxuICAgICAgY29uc29sZS5sb2coYCAgICBkY2w6Ly8ke3NlYXJjaFBhcmFtcy50b1N0cmluZygpfSZgKVxuICAgIH1cbiAgfVxuXG4gIGNvbnNvbGUubG9nKCdcXG4gIERldGFpbHM6XFxuJylcbiAgY29uc29sZS5sb2coJ1xcblByZXNzIENUUkwrQyB0byBleGl0XFxuJylcblxuICAvLyBPcGVuIHByZWZlcmFibHkgbG9jYWxob3N0LzEyNy4wLjAuMVxuICBpZiAob3BlbkJyb3dzZXIgJiYgc29ydGVkVVJMcy5sZW5ndGggJiYgIWFyZ3NbJy0tZGVza3RvcC1jbGllbnQnXSkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBvcGVuKHNvcnRlZFVSTHNbMF0pXG4gICAgfSBjYXRjaCAoXykge1xuICAgICAgY29uc29sZS5sb2coJ1VuYWJsZSB0byBvcGVuIGJyb3dzZXIgYXV0b21hdGljYWxseS4nKVxuICAgIH1cbiAgfVxuXG4gIC8vIHRoaXMgc2lnbmFsIGlzIHJlc29sdmVkIGJ5OiAod2tjKXByb2dyYW0uc3RvcCgpLCBTSUdURVJNLCBTSUdIVVBcbiAgYXdhaXQgc2VydmVyLmNvbXBvbmVudHMuc2lnbmFsZXIucHJvZ3JhbUNsb3NlZFxufVxuIl19
|
@@ -86,7 +86,7 @@ export async function main(options: Options) {
|
|
86
86
|
}
|
87
87
|
|
88
88
|
// after the watcher is running, start the server
|
89
|
-
const server = await preview({ args: { '--dir': dir, '--port': port }, ...comps })
|
89
|
+
const server = await preview({ args: { '--dir': dir, '--port': port, '--watch': watch }, ...comps })
|
90
90
|
|
91
91
|
const networkInterfaces = os.networkInterfaces()
|
92
92
|
const availableURLs: string[] = []
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@dcl/sdk",
|
3
|
-
"version": "7.0.6-
|
3
|
+
"version": "7.0.6-4137912823.commit-aa69b28",
|
4
4
|
"description": "",
|
5
5
|
"main": "./index.js",
|
6
6
|
"typings": "./index.d.ts",
|
@@ -20,13 +20,14 @@
|
|
20
20
|
"author": "Decentraland",
|
21
21
|
"license": "Apache-2.0",
|
22
22
|
"dependencies": {
|
23
|
-
"@dcl/dcl-rollup": "7.0.6-
|
24
|
-
"@dcl/ecs": "7.0.6-
|
23
|
+
"@dcl/dcl-rollup": "7.0.6-4137912823.commit-aa69b28",
|
24
|
+
"@dcl/ecs": "7.0.6-4137912823.commit-aa69b28",
|
25
25
|
"@dcl/ecs-math": "2.0.1-20221129185242.commit-40495c1",
|
26
26
|
"@dcl/explorer": "1.0.77560-20230206183755.commit-ef27962",
|
27
|
-
"@dcl/js-runtime": "7.0.6-
|
27
|
+
"@dcl/js-runtime": "7.0.6-4137912823.commit-aa69b28",
|
28
28
|
"@dcl/mini-comms": "1.0.0",
|
29
|
-
"@dcl/
|
29
|
+
"@dcl/protocol": "1.0.0-4114477251.commit-ccb88d6",
|
30
|
+
"@dcl/react-ecs": "7.0.6-4137912823.commit-aa69b28",
|
30
31
|
"@dcl/schemas": "6.6.0",
|
31
32
|
"@types/inquirer": "^8.2.5",
|
32
33
|
"@well-known-components/env-config-provider": "^1.1.2-20220801195549.commit-101c273",
|
@@ -34,6 +35,7 @@
|
|
34
35
|
"@well-known-components/logger": "^3.0.0",
|
35
36
|
"@well-known-components/metrics": "^2.0.1-20220909150423.commit-8f7e5bc",
|
36
37
|
"arg": "5.0.2",
|
38
|
+
"chokidar": "^3.5.3",
|
37
39
|
"colorette": "^2.0.19",
|
38
40
|
"extract-zip": "2.0.1",
|
39
41
|
"ignore": "^5.2.4",
|
@@ -55,5 +57,5 @@
|
|
55
57
|
"displayName": "SDK",
|
56
58
|
"tsconfig": "./tsconfig.json"
|
57
59
|
},
|
58
|
-
"commit": "
|
60
|
+
"commit": "aa69b2868fae613a7b33b2f40e3f8eb689992c22"
|
59
61
|
}
|