@dcl/sdk 7.0.6-4197739270.commit-db87ed8 → 7.0.6-4217957637.commit-a393ef7
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/package.json +6 -30
- package/cli/commands/build/helpers.d.ts +0 -21
- package/cli/commands/build/helpers.js +0 -50
- package/cli/commands/build/helpers.ts +0 -89
- package/cli/commands/build/index.d.ts +0 -19
- package/cli/commands/build/index.js +0 -69
- package/cli/commands/build/index.ts +0 -91
- package/cli/commands/init/index.d.ts +0 -17
- package/cli/commands/init/index.js +0 -51
- package/cli/commands/init/index.ts +0 -67
- package/cli/commands/init/repos.d.ts +0 -9
- package/cli/commands/init/repos.js +0 -12
- package/cli/commands/init/repos.ts +0 -17
- package/cli/commands/preview/bff.d.ts +0 -3
- package/cli/commands/preview/bff.js +0 -54
- package/cli/commands/preview/bff.ts +0 -63
- package/cli/commands/preview/catalyst.d.ts +0 -5
- package/cli/commands/preview/catalyst.js +0 -24
- package/cli/commands/preview/catalyst.ts +0 -31
- package/cli/commands/preview/coordinates.d.ts +0 -20
- package/cli/commands/preview/coordinates.js +0 -90
- package/cli/commands/preview/coordinates.ts +0 -146
- package/cli/commands/preview/endpoints.d.ts +0 -10
- package/cli/commands/preview/endpoints.js +0 -455
- package/cli/commands/preview/endpoints.ts +0 -568
- package/cli/commands/preview/eth.d.ts +0 -2
- package/cli/commands/preview/eth.js +0 -6
- package/cli/commands/preview/eth.ts +0 -3
- package/cli/commands/preview/index.d.ts +0 -20
- package/cli/commands/preview/index.js +0 -100
- package/cli/commands/preview/index.ts +0 -98
- package/cli/commands/preview/port.d.ts +0 -1
- package/cli/commands/preview/port.js +0 -21
- package/cli/commands/preview/port.ts +0 -15
- package/cli/commands/preview/project.d.ts +0 -14
- package/cli/commands/preview/project.js +0 -77
- package/cli/commands/preview/project.ts +0 -112
- package/cli/commands/preview/types.d.ts +0 -18
- package/cli/commands/preview/types.js +0 -3
- package/cli/commands/preview/types.ts +0 -26
- package/cli/commands/preview/wire.d.ts +0 -2
- package/cli/commands/preview/wire.js +0 -66
- package/cli/commands/preview/wire.ts +0 -70
- package/cli/commands/preview/ws.d.ts +0 -7
- package/cli/commands/preview/ws.js +0 -16
- package/cli/commands/preview/ws.ts +0 -24
- package/cli/commands/start/index.d.ts +0 -29
- package/cli/commands/start/index.js +0 -126
- package/cli/commands/start/index.ts +0 -145
- package/cli/components/fetch.d.ts +0 -5
- package/cli/components/fetch.js +0 -34
- package/cli/components/fetch.ts +0 -11
- package/cli/components/fs.d.ts +0 -12
- package/cli/components/fs.js +0 -69
- package/cli/components/fs.ts +0 -62
- package/cli/components/index.d.ts +0 -7
- package/cli/components/index.js +0 -13
- package/cli/components/index.ts +0 -14
- package/cli/index.d.ts +0 -7
- package/cli/index.js +0 -76
- package/cli/index.ts +0 -85
- package/cli/utils/args.d.ts +0 -10
- package/cli/utils/args.js +0 -16
- package/cli/utils/args.ts +0 -18
- package/cli/utils/commands.d.ts +0 -3
- package/cli/utils/commands.js +0 -24
- package/cli/utils/commands.ts +0 -28
- package/cli/utils/dcl-ignore.d.ts +0 -4
- package/cli/utils/dcl-ignore.js +0 -44
- package/cli/utils/dcl-ignore.ts +0 -45
- package/cli/utils/error.d.ts +0 -2
- package/cli/utils/error.js +0 -7
- package/cli/utils/error.ts +0 -1
- package/cli/utils/exec.d.ts +0 -8
- package/cli/utils/exec.js +0 -32
- package/cli/utils/exec.ts +0 -42
- package/cli/utils/fs.d.ts +0 -10
- package/cli/utils/fs.js +0 -26
- package/cli/utils/fs.ts +0 -41
- package/cli/utils/log.d.ts +0 -5
- package/cli/utils/log.js +0 -29
- package/cli/utils/log.ts +0 -39
- package/cli/utils/object.d.ts +0 -9
- package/cli/utils/object.js +0 -45
- package/cli/utils/object.ts +0 -62
- package/cli/utils/out-messages.d.ts +0 -1
- package/cli/utils/out-messages.js +0 -8
- package/cli/utils/out-messages.ts +0 -3
@@ -1,54 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.setupBffAndComms = void 0;
|
4
|
-
const handle_linear_protocol_1 = require("@dcl/mini-comms/dist/logic/handle-linear-protocol");
|
5
|
-
const ws_1 = require("@well-known-components/http-server/dist/ws");
|
6
|
-
function setupBffAndComms(components, router) {
|
7
|
-
router.get('/about', async (ctx) => {
|
8
|
-
const host = ctx.url.host;
|
9
|
-
const body = {
|
10
|
-
acceptingUsers: true,
|
11
|
-
bff: { healthy: false, publicUrl: host },
|
12
|
-
comms: {
|
13
|
-
healthy: true,
|
14
|
-
protocol: 'v3',
|
15
|
-
fixedAdapter: `ws-room:${ctx.url.protocol.replace(/^http/, 'ws')}//${host}/mini-comms/room-1`
|
16
|
-
},
|
17
|
-
configurations: {
|
18
|
-
networkId: 0,
|
19
|
-
globalScenesUrn: [],
|
20
|
-
scenesUrn: [],
|
21
|
-
realmName: 'LocalPreview'
|
22
|
-
},
|
23
|
-
content: {
|
24
|
-
healthy: true,
|
25
|
-
publicUrl: `${ctx.url.protocol}//${ctx.url.host}/content`
|
26
|
-
},
|
27
|
-
lambdas: {
|
28
|
-
healthy: true,
|
29
|
-
publicUrl: `${ctx.url.protocol}//${ctx.url.host}/lambdas`
|
30
|
-
},
|
31
|
-
healthy: true
|
32
|
-
};
|
33
|
-
return { body };
|
34
|
-
});
|
35
|
-
router.get('/mini-comms/:roomId', async (ctx) => {
|
36
|
-
return (0, ws_1.upgradeWebSocketResponse)((ws) => {
|
37
|
-
if (ws.protocol === 'rfc5' || ws.protocol === 'rfc4') {
|
38
|
-
ws.on('error', (error) => {
|
39
|
-
console.error(error);
|
40
|
-
ws.close();
|
41
|
-
});
|
42
|
-
ws.on('close', () => {
|
43
|
-
console.debug('Websocket closed');
|
44
|
-
});
|
45
|
-
(0, handle_linear_protocol_1.handleSocketLinearProtocol)(components, ws, ctx.params.roomId).catch((err) => {
|
46
|
-
console.info(err);
|
47
|
-
ws.close();
|
48
|
-
});
|
49
|
-
}
|
50
|
-
});
|
51
|
-
});
|
52
|
-
}
|
53
|
-
exports.setupBffAndComms = setupBffAndComms;
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmZmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYmZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhGQUE4RjtBQUk5RixtRUFBcUY7QUFPckYsU0FBZ0IsZ0JBQWdCLENBQUMsVUFBNkIsRUFBRSxNQUFpQztJQUMvRixNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDakMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUE7UUFFekIsTUFBTSxJQUFJLEdBQWtCO1lBQzFCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtZQUN4QyxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsWUFBWSxFQUFFLFdBQVcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLG9CQUFvQjthQUM5RjtZQUNELGNBQWMsRUFBRTtnQkFDZCxTQUFTLEVBQUUsQ0FBQztnQkFDWixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsU0FBUyxFQUFFLGNBQWM7YUFDMUI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsU0FBUyxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVU7YUFDMUQ7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsU0FBUyxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVU7YUFDMUQ7WUFDRCxPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUE7UUFFRCxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUE7SUFDakIsQ0FBQyxDQUFDLENBQUE7SUFFRixNQUFNLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUM5QyxPQUFPLElBQUEsNkJBQXdCLEVBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRTtZQUMxQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEtBQUssTUFBTSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEtBQUssTUFBTSxFQUFFO2dCQUNwRCxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO29CQUNwQixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUE7Z0JBQ1osQ0FBQyxDQUFDLENBQUE7Z0JBRUYsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUE7Z0JBQ25DLENBQUMsQ0FBQyxDQUFBO2dCQUVGLElBQUEsbURBQTBCLEVBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO29CQUMvRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO29CQUNqQixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUE7Z0JBQ1osQ0FBQyxDQUFDLENBQUE7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBbkRELDRDQW1EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhhbmRsZVNvY2tldExpbmVhclByb3RvY29sIH0gZnJvbSAnQGRjbC9taW5pLWNvbW1zL2Rpc3QvbG9naWMvaGFuZGxlLWxpbmVhci1wcm90b2NvbCdcbmltcG9ydCB7IFByZXZpZXdDb21wb25lbnRzIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IEFib3V0UmVzcG9uc2UgfSBmcm9tICdAZGNsL3Byb3RvY29sL291dC10cy9kZWNlbnRyYWxhbmQvYmZmL2h0dHBfZW5kcG9pbnRzLmdlbidcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvaHR0cC1zZXJ2ZXInXG5pbXBvcnQgeyB1cGdyYWRlV2ViU29ja2V0UmVzcG9uc2UgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL2h0dHAtc2VydmVyL2Rpc3Qvd3MnXG5cbi8qKlxuICogVGhpcyBtb2R1bGUgaGFuZGxlcyB0aGUgQkZGIG1vY2sgYW5kIGNvbW11bmljYXRpb25zIHNlcnZlciBmb3IgdGhlIHByZXZpZXcgbW9kZS5cbiAqIEl0IHJ1bnMgdXNpbmcgQGRjbC9taW5pLWNvbW1zIGltcGxlbWVudGluZyBSRkMtNVxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEJmZkFuZENvbW1zKGNvbXBvbmVudHM6IFByZXZpZXdDb21wb25lbnRzLCByb3V0ZXI6IFJvdXRlcjxQcmV2aWV3Q29tcG9uZW50cz4pIHtcbiAgcm91dGVyLmdldCgnL2Fib3V0JywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIGNvbnN0IGhvc3QgPSBjdHgudXJsLmhvc3RcblxuICAgIGNvbnN0IGJvZHk6IEFib3V0UmVzcG9uc2UgPSB7XG4gICAgICBhY2NlcHRpbmdVc2VyczogdHJ1ZSxcbiAgICAgIGJmZjogeyBoZWFsdGh5OiBmYWxzZSwgcHVibGljVXJsOiBob3N0IH0sXG4gICAgICBjb21tczoge1xuICAgICAgICBoZWFsdGh5OiB0cnVlLFxuICAgICAgICBwcm90b2NvbDogJ3YzJyxcbiAgICAgICAgZml4ZWRBZGFwdGVyOiBgd3Mtcm9vbToke2N0eC51cmwucHJvdG9jb2wucmVwbGFjZSgvXmh0dHAvLCAnd3MnKX0vLyR7aG9zdH0vbWluaS1jb21tcy9yb29tLTFgXG4gICAgICB9LFxuICAgICAgY29uZmlndXJhdGlvbnM6IHtcbiAgICAgICAgbmV0d29ya0lkOiAwLFxuICAgICAgICBnbG9iYWxTY2VuZXNVcm46IFtdLFxuICAgICAgICBzY2VuZXNVcm46IFtdLFxuICAgICAgICByZWFsbU5hbWU6ICdMb2NhbFByZXZpZXcnXG4gICAgICB9LFxuICAgICAgY29udGVudDoge1xuICAgICAgICBoZWFsdGh5OiB0cnVlLFxuICAgICAgICBwdWJsaWNVcmw6IGAke2N0eC51cmwucHJvdG9jb2x9Ly8ke2N0eC51cmwuaG9zdH0vY29udGVudGBcbiAgICAgIH0sXG4gICAgICBsYW1iZGFzOiB7XG4gICAgICAgIGhlYWx0aHk6IHRydWUsXG4gICAgICAgIHB1YmxpY1VybDogYCR7Y3R4LnVybC5wcm90b2NvbH0vLyR7Y3R4LnVybC5ob3N0fS9sYW1iZGFzYFxuICAgICAgfSxcbiAgICAgIGhlYWx0aHk6IHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4geyBib2R5IH1cbiAgfSlcblxuICByb3V0ZXIuZ2V0KCcvbWluaS1jb21tcy86cm9vbUlkJywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIHJldHVybiB1cGdyYWRlV2ViU29ja2V0UmVzcG9uc2UoKHdzOiBhbnkpID0+IHtcbiAgICAgIGlmICh3cy5wcm90b2NvbCA9PT0gJ3JmYzUnIHx8IHdzLnByb3RvY29sID09PSAncmZjNCcpIHtcbiAgICAgICAgd3Mub24oJ2Vycm9yJywgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgICAgIHdzLmNsb3NlKClcbiAgICAgICAgfSlcblxuICAgICAgICB3cy5vbignY2xvc2UnLCAoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5kZWJ1ZygnV2Vic29ja2V0IGNsb3NlZCcpXG4gICAgICAgIH0pXG5cbiAgICAgICAgaGFuZGxlU29ja2V0TGluZWFyUHJvdG9jb2woY29tcG9uZW50cywgd3MsIGN0eC5wYXJhbXMucm9vbUlkKS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmluZm8oZXJyKVxuICAgICAgICAgIHdzLmNsb3NlKClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9KVxufVxuIl19
|
@@ -1,63 +0,0 @@
|
|
1
|
-
import { handleSocketLinearProtocol } from '@dcl/mini-comms/dist/logic/handle-linear-protocol'
|
2
|
-
import { PreviewComponents } from './types'
|
3
|
-
import { AboutResponse } from '@dcl/protocol/out-ts/decentraland/bff/http_endpoints.gen'
|
4
|
-
import { Router } from '@well-known-components/http-server'
|
5
|
-
import { upgradeWebSocketResponse } from '@well-known-components/http-server/dist/ws'
|
6
|
-
|
7
|
-
/**
|
8
|
-
* This module handles the BFF mock and communications server for the preview mode.
|
9
|
-
* It runs using @dcl/mini-comms implementing RFC-5
|
10
|
-
*/
|
11
|
-
|
12
|
-
export function setupBffAndComms(components: PreviewComponents, router: Router<PreviewComponents>) {
|
13
|
-
router.get('/about', async (ctx) => {
|
14
|
-
const host = ctx.url.host
|
15
|
-
|
16
|
-
const body: AboutResponse = {
|
17
|
-
acceptingUsers: true,
|
18
|
-
bff: { healthy: false, publicUrl: host },
|
19
|
-
comms: {
|
20
|
-
healthy: true,
|
21
|
-
protocol: 'v3',
|
22
|
-
fixedAdapter: `ws-room:${ctx.url.protocol.replace(/^http/, 'ws')}//${host}/mini-comms/room-1`
|
23
|
-
},
|
24
|
-
configurations: {
|
25
|
-
networkId: 0,
|
26
|
-
globalScenesUrn: [],
|
27
|
-
scenesUrn: [],
|
28
|
-
realmName: 'LocalPreview'
|
29
|
-
},
|
30
|
-
content: {
|
31
|
-
healthy: true,
|
32
|
-
publicUrl: `${ctx.url.protocol}//${ctx.url.host}/content`
|
33
|
-
},
|
34
|
-
lambdas: {
|
35
|
-
healthy: true,
|
36
|
-
publicUrl: `${ctx.url.protocol}//${ctx.url.host}/lambdas`
|
37
|
-
},
|
38
|
-
healthy: true
|
39
|
-
}
|
40
|
-
|
41
|
-
return { body }
|
42
|
-
})
|
43
|
-
|
44
|
-
router.get('/mini-comms/:roomId', async (ctx) => {
|
45
|
-
return upgradeWebSocketResponse((ws: any) => {
|
46
|
-
if (ws.protocol === 'rfc5' || ws.protocol === 'rfc4') {
|
47
|
-
ws.on('error', (error: any) => {
|
48
|
-
console.error(error)
|
49
|
-
ws.close()
|
50
|
-
})
|
51
|
-
|
52
|
-
ws.on('close', () => {
|
53
|
-
console.debug('Websocket closed')
|
54
|
-
})
|
55
|
-
|
56
|
-
handleSocketLinearProtocol(components, ws, ctx.params.roomId).catch((err: any) => {
|
57
|
-
console.info(err)
|
58
|
-
ws.close()
|
59
|
-
})
|
60
|
-
}
|
61
|
-
})
|
62
|
-
})
|
63
|
-
}
|
@@ -1,24 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.fetchEntityByPointer = void 0;
|
4
|
-
const undici_1 = require("undici");
|
5
|
-
async function fetchEntityByPointer(baseUrl, pointers) {
|
6
|
-
if (pointers.length === 0)
|
7
|
-
return {
|
8
|
-
baseUrl,
|
9
|
-
deployments: []
|
10
|
-
};
|
11
|
-
const activeEntities = baseUrl + '/content/entities/active';
|
12
|
-
const response = await (0, undici_1.fetch)(activeEntities, {
|
13
|
-
method: 'post',
|
14
|
-
headers: { 'content-type': 'application/json', connection: 'close' },
|
15
|
-
body: JSON.stringify({ pointers })
|
16
|
-
});
|
17
|
-
const deployments = response.ok ? (await response.json()) : [];
|
18
|
-
return {
|
19
|
-
baseUrl,
|
20
|
-
deployments
|
21
|
-
};
|
22
|
-
}
|
23
|
-
exports.fetchEntityByPointer = fetchEntityByPointer;
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWx5c3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjYXRhbHlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtQ0FBOEI7QUFFdkIsS0FBSyxVQUFVLG9CQUFvQixDQUN4QyxPQUFlLEVBQ2YsUUFBa0I7SUFLbEIsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDdkIsT0FBTztZQUNMLE9BQU87WUFDUCxXQUFXLEVBQUUsRUFBRTtTQUNoQixDQUFBO0lBRUgsTUFBTSxjQUFjLEdBQUcsT0FBTyxHQUFHLDBCQUEwQixDQUFBO0lBRTNELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxjQUFLLEVBQUMsY0FBYyxFQUFFO1FBQzNDLE1BQU0sRUFBRSxNQUFNO1FBQ2QsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUU7UUFDcEUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztLQUNuQyxDQUFDLENBQUE7SUFFRixNQUFNLFdBQVcsR0FBYSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBRSxDQUFDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUV0RixPQUFPO1FBQ0wsT0FBTztRQUNQLFdBQVc7S0FDWixDQUFBO0FBQ0gsQ0FBQztBQTNCRCxvREEyQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHkgfSBmcm9tICdAZGNsL3NjaGVtYXMnXG5pbXBvcnQgeyBmZXRjaCB9IGZyb20gJ3VuZGljaSdcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoRW50aXR5QnlQb2ludGVyKFxuICBiYXNlVXJsOiBzdHJpbmcsXG4gIHBvaW50ZXJzOiBzdHJpbmdbXVxuKTogUHJvbWlzZTx7XG4gIGJhc2VVcmw6IHN0cmluZ1xuICBkZXBsb3ltZW50czogRW50aXR5W11cbn0+IHtcbiAgaWYgKHBvaW50ZXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4ge1xuICAgICAgYmFzZVVybCxcbiAgICAgIGRlcGxveW1lbnRzOiBbXVxuICAgIH1cblxuICBjb25zdCBhY3RpdmVFbnRpdGllcyA9IGJhc2VVcmwgKyAnL2NvbnRlbnQvZW50aXRpZXMvYWN0aXZlJ1xuXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYWN0aXZlRW50aXRpZXMsIHtcbiAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICBoZWFkZXJzOiB7ICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsIGNvbm5lY3Rpb246ICdjbG9zZScgfSxcbiAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHBvaW50ZXJzIH0pXG4gIH0pXG5cbiAgY29uc3QgZGVwbG95bWVudHM6IEVudGl0eVtdID0gcmVzcG9uc2Uub2sgPyAoKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgRW50aXR5W10pIDogW11cblxuICByZXR1cm4ge1xuICAgIGJhc2VVcmwsXG4gICAgZGVwbG95bWVudHNcbiAgfVxufVxuIl19
|
@@ -1,31 +0,0 @@
|
|
1
|
-
import { Entity } from '@dcl/schemas'
|
2
|
-
import { fetch } from 'undici'
|
3
|
-
|
4
|
-
export async function fetchEntityByPointer(
|
5
|
-
baseUrl: string,
|
6
|
-
pointers: string[]
|
7
|
-
): Promise<{
|
8
|
-
baseUrl: string
|
9
|
-
deployments: Entity[]
|
10
|
-
}> {
|
11
|
-
if (pointers.length === 0)
|
12
|
-
return {
|
13
|
-
baseUrl,
|
14
|
-
deployments: []
|
15
|
-
}
|
16
|
-
|
17
|
-
const activeEntities = baseUrl + '/content/entities/active'
|
18
|
-
|
19
|
-
const response = await fetch(activeEntities, {
|
20
|
-
method: 'post',
|
21
|
-
headers: { 'content-type': 'application/json', connection: 'close' },
|
22
|
-
body: JSON.stringify({ pointers })
|
23
|
-
})
|
24
|
-
|
25
|
-
const deployments: Entity[] = response.ok ? ((await response.json()) as Entity[]) : []
|
26
|
-
|
27
|
-
return {
|
28
|
-
baseUrl,
|
29
|
-
deployments
|
30
|
-
}
|
31
|
-
}
|
@@ -1,20 +0,0 @@
|
|
1
|
-
export interface IBounds {
|
2
|
-
minX: number;
|
3
|
-
minY: number;
|
4
|
-
maxX: number;
|
5
|
-
maxY: number;
|
6
|
-
}
|
7
|
-
export type Coords = {
|
8
|
-
x: number;
|
9
|
-
y: number;
|
10
|
-
};
|
11
|
-
export declare function getBounds(): IBounds;
|
12
|
-
export declare function parse(coordinates: string): string[];
|
13
|
-
export declare function validate(answers: string): Promise<boolean>;
|
14
|
-
export declare function isValid(val: string): boolean;
|
15
|
-
export declare function getObject(coords: string): Coords;
|
16
|
-
export declare function getObject(coords: number[]): Coords;
|
17
|
-
export declare function getString({ x, y }: Coords): string;
|
18
|
-
export declare function inBounds(x: number, y: number): boolean;
|
19
|
-
export declare function areConnected(parcels: Coords[]): boolean;
|
20
|
-
export declare function isEqual(p1: Coords, p2: Coords): boolean;
|
@@ -1,90 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.isEqual = exports.areConnected = exports.inBounds = exports.getString = exports.getObject = exports.isValid = exports.validate = exports.parse = exports.getBounds = void 0;
|
4
|
-
function getBounds() {
|
5
|
-
return {
|
6
|
-
minX: -150,
|
7
|
-
minY: -150,
|
8
|
-
maxX: 165,
|
9
|
-
maxY: 165
|
10
|
-
};
|
11
|
-
}
|
12
|
-
exports.getBounds = getBounds;
|
13
|
-
function parse(coordinates) {
|
14
|
-
return coordinates.split(';').map((coord) => {
|
15
|
-
const [x = 0, y = 0] = coord.split(',').map(($) => {
|
16
|
-
return parseInt($, 10)
|
17
|
-
.toString()
|
18
|
-
.replace('-0', '0')
|
19
|
-
.replace(/undefined|NaN/g, '0');
|
20
|
-
});
|
21
|
-
return `${x},${y}`;
|
22
|
-
});
|
23
|
-
}
|
24
|
-
exports.parse = parse;
|
25
|
-
function validate(answers) {
|
26
|
-
return new Promise((resolve, reject) => {
|
27
|
-
if (answers.trim().length === 0) {
|
28
|
-
resolve(true);
|
29
|
-
}
|
30
|
-
else {
|
31
|
-
answers.split(/;\s/g).forEach((answer) => {
|
32
|
-
if (!isValid(answer)) {
|
33
|
-
reject(new Error(`Invalid coordinate ${answer}`));
|
34
|
-
}
|
35
|
-
});
|
36
|
-
resolve(true);
|
37
|
-
}
|
38
|
-
});
|
39
|
-
}
|
40
|
-
exports.validate = validate;
|
41
|
-
function isValid(val) {
|
42
|
-
if (!val.match(/^(-?\d)+\,(-?\d)+$/g)) {
|
43
|
-
return false;
|
44
|
-
}
|
45
|
-
return true;
|
46
|
-
}
|
47
|
-
exports.isValid = isValid;
|
48
|
-
function getObject(coords) {
|
49
|
-
const [x, y] = typeof coords === 'string' ? parse(coords)[0].split(',') : coords;
|
50
|
-
return { x: parseInt(x.toString(), 10), y: parseInt(y.toString(), 10) };
|
51
|
-
}
|
52
|
-
exports.getObject = getObject;
|
53
|
-
function getString({ x, y }) {
|
54
|
-
return `${x},${y}`;
|
55
|
-
}
|
56
|
-
exports.getString = getString;
|
57
|
-
function inBounds(x, y) {
|
58
|
-
const { minX, minY, maxX, maxY } = getBounds();
|
59
|
-
return x >= minX && x <= maxX && y >= minY && y <= maxY;
|
60
|
-
}
|
61
|
-
exports.inBounds = inBounds;
|
62
|
-
function areConnected(parcels) {
|
63
|
-
if (parcels.length === 0) {
|
64
|
-
return false;
|
65
|
-
}
|
66
|
-
const visited = visitParcel(parcels[0], parcels);
|
67
|
-
return visited.length === parcels.length;
|
68
|
-
}
|
69
|
-
exports.areConnected = areConnected;
|
70
|
-
function visitParcel(parcel, allParcels = [parcel], visited = []) {
|
71
|
-
const isVisited = visited.some((visitedParcel) => isEqual(visitedParcel, parcel));
|
72
|
-
if (!isVisited) {
|
73
|
-
visited.push(parcel);
|
74
|
-
const neighbours = getNeighbours(parcel.x, parcel.y, allParcels);
|
75
|
-
neighbours.forEach((neighbours) => visitParcel(neighbours, allParcels, visited));
|
76
|
-
}
|
77
|
-
return visited;
|
78
|
-
}
|
79
|
-
function getIsNeighbourMatcher(x, y) {
|
80
|
-
return (coords) => (coords.x === x && (coords.y + 1 === y || coords.y - 1 === y)) ||
|
81
|
-
(coords.y === y && (coords.x + 1 === x || coords.x - 1 === x));
|
82
|
-
}
|
83
|
-
function getNeighbours(x, y, parcels) {
|
84
|
-
return parcels.filter(getIsNeighbourMatcher(x, y));
|
85
|
-
}
|
86
|
-
function isEqual(p1, p2) {
|
87
|
-
return p1.x === p2.x && p1.y === p2.y;
|
88
|
-
}
|
89
|
-
exports.isEqual = isEqual;
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb29yZGluYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFlQSxTQUFnQixTQUFTO0lBQ3ZCLE9BQU87UUFDTCxJQUFJLEVBQUUsQ0FBQyxHQUFHO1FBQ1YsSUFBSSxFQUFFLENBQUMsR0FBRztRQUNWLElBQUksRUFBRSxHQUFHO1FBQ1QsSUFBSSxFQUFFLEdBQUc7S0FDVixDQUFBO0FBQ0gsQ0FBQztBQVBELDhCQU9DO0FBU0QsU0FBZ0IsS0FBSyxDQUFDLFdBQW1CO0lBQ3ZDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtRQUNsRCxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoRCxPQUFPLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO2lCQUNuQixRQUFRLEVBQUU7aUJBQ1YsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7aUJBQ2xCLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUNuQyxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUE7SUFDcEIsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBVkQsc0JBVUM7QUFVRCxTQUFnQixRQUFRLENBQUMsT0FBZTtJQUN0QyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDL0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ2Q7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QUFBO0FBQ2hCLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLENBQVMsRUFBRSxDQUFTO0lBQ2pELE9BQU8sQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUN4QixDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNsRSxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxPQUFpQjtJQUM1RCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDcEQsQ0FBQztBQUVELFNBQWdCLE9BQU8sQ0FBQyxFQUFVLEVBQUUsRUFBVTtJQUM1QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDdkMsQ0FBQztBQUZELDBCQUVDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJQm91bmRzIHtcbiAgbWluWDogbnVtYmVyXG4gIG1pblk6IG51bWJlclxuICBtYXhYOiBudW1iZXJcbiAgbWF4WTogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIENvb3JkcyA9IHtcbiAgeDogbnVtYmVyXG4gIHk6IG51bWJlclxufVxuXG4vKipcbiAqIFJldHVybnMgbWV0YXZlcnNlIGNvb3JkaW5hdGVzIGJvdW5kcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJvdW5kcygpOiBJQm91bmRzIHtcbiAgcmV0dXJuIHtcbiAgICBtaW5YOiAtMTUwLFxuICAgIG1pblk6IC0xNTAsXG4gICAgbWF4WDogMTY1LFxuICAgIG1heFk6IDE2NVxuICB9XG59XG5cbi8qKlxuICogUGFyc2VzIGEgc3RyaW5nLWJhc2VkIHNldCBvZiBjb29yZGluYXRlcy5cbiAqIC0gQWxsIHNwYWNlcyBhcmUgcmVtb3ZlZFxuICogLSBMZWFkaW5nIHplcm9lcyBhcmUgcmVtb3ZlZFxuICogLSBgLTBgIGlzIGNvbnZlcnRlZCB0byBgMGBcbiAqIEBwYXJhbSBjb29yZGluYXRlcyBBbiBzdHJpbmcgY29udGFpbmluZyBjb29yZGluYXRlcyBpbiB0aGUgYHgseTsgeCx5OyAuLi5gIGZvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UoY29vcmRpbmF0ZXM6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGNvb3JkaW5hdGVzLnNwbGl0KCc7JykubWFwKChjb29yZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgW3ggPSAwLCB5ID0gMF0gPSBjb29yZC5zcGxpdCgnLCcpLm1hcCgoJCkgPT4ge1xuICAgICAgcmV0dXJuIHBhcnNlSW50KCQsIDEwKVxuICAgICAgICAudG9TdHJpbmcoKSAvLyByZW1vdmVzIHNwYWNlcyA6KVxuICAgICAgICAucmVwbGFjZSgnLTAnLCAnMCcpXG4gICAgICAgIC5yZXBsYWNlKC91bmRlZmluZWR8TmFOL2csICcwJylcbiAgICB9KVxuICAgIHJldHVybiBgJHt4fSwke3l9YFxuICB9KVxufVxuXG4vKipcbiAqIFJldHVybnMgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYHRydWVgIGlmIHRoZSBnaXZlbiBzZXQgb2YgY29vcmRpbmF0ZXMgaXMgdmFsaWQuXG4gKiBGb3IgaW52YWxpZCBjb29yZGluYXRlcywgdGhlIHByb21pc2Ugd2lsbCByZWplY3Qgd2l0aCBhbiBlcnJvciBtZXNzYWdlLlxuICogKlRoaXMgaXMgbWVhbnQgdG8gYmUgdXNlZCBhcyBhbiBpbnF1aXJlciB2YWxpZGF0b3IuKlxuICpcbiAqIEVtcHR5IGlucHV0cyB3aWxsIHJlc29sdmUgYHRydWVgXG4gKiBAcGFyYW0gYW5zd2VycyBBbiBzdHJpbmcgY29udGFpbmluZyBjb29yZGluYXRlcyBpbiB0aGUgYHgseTsgeCx5OyAuLi5gIGZvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGUoYW5zd2Vyczogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgaWYgKGFuc3dlcnMudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmVzb2x2ZSh0cnVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBhbnN3ZXJzLnNwbGl0KC87XFxzL2cpLmZvckVhY2goKGFuc3dlcikgPT4ge1xuICAgICAgICBpZiAoIWlzVmFsaWQoYW5zd2VyKSkge1xuICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoYEludmFsaWQgY29vcmRpbmF0ZSAke2Fuc3dlcn1gKSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHJlc29sdmUodHJ1ZSlcbiAgICB9XG4gIH0pXG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBjb29yZGluYXRlJ3MgZm9ybWF0IGlzIHZhbGlkXG4gKlxuICogYGBgXG4gKiBpc1ZhbGlkKCcwLDAnKSAvLyByZXR1cm5zIHRydWVcbiAqIGlzVmFsaWQoJywgMCcpIC8vIHJldHVybnMgZmFsc2VcbiAqIGBgYFxuICogQHBhcmFtIHZhbCBUaGUgY29vZGluYXRlIHN0cmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZCh2YWw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIXZhbC5tYXRjaCgvXigtP1xcZCkrXFwsKC0/XFxkKSskL2cpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIHN0cmluZy1iYXNlZCBzZXQgb2YgY29vcmRpbmF0ZXMgdG8gYW4gb2JqZWN0XG4gKiBAcGFyYW0gY29vcmRzIEEgc3RyaW5nIGNvbnRhaW5pbmcgYSBzZXQgb2YgY29vcmRpbmF0ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdChjb29yZHM6IHN0cmluZyk6IENvb3Jkc1xuLyoqXG4gKiBDb252ZXJ0cyBhIGFycmF5LWJhc2VkIHNldCBvZiBjb29yZGluYXRlcyB0byBhbiBvYmplY3RcbiAqIEBwYXJhbSBjb29yZHMgQW4gYXJyYXkgY29udGFpbmluZyBhIHNldCBvZiBjb29yZGluYXRlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0KGNvb3JkczogbnVtYmVyW10pOiBDb29yZHNcbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3QoY29vcmRzOiBudW1iZXJbXSB8IHN0cmluZyk6IENvb3JkcyB7XG4gIGNvbnN0IFt4LCB5XSA9IHR5cGVvZiBjb29yZHMgPT09ICdzdHJpbmcnID8gcGFyc2UoY29vcmRzKVswXS5zcGxpdCgnLCcpIDogY29vcmRzXG4gIHJldHVybiB7IHg6IHBhcnNlSW50KHgudG9TdHJpbmcoKSwgMTApLCB5OiBwYXJzZUludCh5LnRvU3RyaW5nKCksIDEwKSB9XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBDb29yZHMgb2JqZWN0IHRvIGEgc3RyaW5nLWJhc2VkIHNldCBvZiBjb29yZGluYXRlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RyaW5nKHsgeCwgeSB9OiBDb29yZHMpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7eH0sJHt5fWBcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGNvb3JkaW5hdGVzIGFyZSBpbiBtZXRhdmVyc2UgYm91bmRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbkJvdW5kcyh4OiBudW1iZXIsIHk6IG51bWJlcik6IGJvb2xlYW4ge1xuICBjb25zdCB7IG1pblgsIG1pblksIG1heFgsIG1heFkgfSA9IGdldEJvdW5kcygpXG4gIHJldHVybiB4ID49IG1pblggJiYgeCA8PSBtYXhYICYmIHkgPj0gbWluWSAmJiB5IDw9IG1heFlcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIHBhcmNlbHMgYXJyYXkgYXJlIGNvbm5lY3RlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXJlQ29ubmVjdGVkKHBhcmNlbHM6IENvb3Jkc1tdKTogYm9vbGVhbiB7XG4gIGlmIChwYXJjZWxzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IHZpc2l0ZWQgPSB2aXNpdFBhcmNlbChwYXJjZWxzWzBdLCBwYXJjZWxzKVxuICByZXR1cm4gdmlzaXRlZC5sZW5ndGggPT09IHBhcmNlbHMubGVuZ3RoXG59XG5cbmZ1bmN0aW9uIHZpc2l0UGFyY2VsKHBhcmNlbDogQ29vcmRzLCBhbGxQYXJjZWxzOiBDb29yZHNbXSA9IFtwYXJjZWxdLCB2aXNpdGVkOiBDb29yZHNbXSA9IFtdKTogQ29vcmRzW10ge1xuICBjb25zdCBpc1Zpc2l0ZWQgPSB2aXNpdGVkLnNvbWUoKHZpc2l0ZWRQYXJjZWwpID0+IGlzRXF1YWwodmlzaXRlZFBhcmNlbCwgcGFyY2VsKSlcbiAgaWYgKCFpc1Zpc2l0ZWQpIHtcbiAgICB2aXNpdGVkLnB1c2gocGFyY2VsKVxuICAgIGNvbnN0IG5laWdoYm91cnMgPSBnZXROZWlnaGJvdXJzKHBhcmNlbC54LCBwYXJjZWwueSwgYWxsUGFyY2VscylcbiAgICBuZWlnaGJvdXJzLmZvckVhY2goKG5laWdoYm91cnMpID0+IHZpc2l0UGFyY2VsKG5laWdoYm91cnMsIGFsbFBhcmNlbHMsIHZpc2l0ZWQpKVxuICB9XG4gIHJldHVybiB2aXNpdGVkXG59XG5cbmZ1bmN0aW9uIGdldElzTmVpZ2hib3VyTWF0Y2hlcih4OiBudW1iZXIsIHk6IG51bWJlcikge1xuICByZXR1cm4gKGNvb3JkczogQ29vcmRzKSA9PlxuICAgIChjb29yZHMueCA9PT0geCAmJiAoY29vcmRzLnkgKyAxID09PSB5IHx8IGNvb3Jkcy55IC0gMSA9PT0geSkpIHx8XG4gICAgKGNvb3Jkcy55ID09PSB5ICYmIChjb29yZHMueCArIDEgPT09IHggfHwgY29vcmRzLnggLSAxID09PSB4KSlcbn1cblxuZnVuY3Rpb24gZ2V0TmVpZ2hib3Vycyh4OiBudW1iZXIsIHk6IG51bWJlciwgcGFyY2VsczogQ29vcmRzW10pOiBDb29yZHNbXSB7XG4gIHJldHVybiBwYXJjZWxzLmZpbHRlcihnZXRJc05laWdoYm91ck1hdGNoZXIoeCwgeSkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VxdWFsKHAxOiBDb29yZHMsIHAyOiBDb29yZHMpOiBib29sZWFuIHtcbiAgcmV0dXJuIHAxLnggPT09IHAyLnggJiYgcDEueSA9PT0gcDIueVxufVxuIl19
|
@@ -1,146 +0,0 @@
|
|
1
|
-
export interface IBounds {
|
2
|
-
minX: number
|
3
|
-
minY: number
|
4
|
-
maxX: number
|
5
|
-
maxY: number
|
6
|
-
}
|
7
|
-
|
8
|
-
export type Coords = {
|
9
|
-
x: number
|
10
|
-
y: number
|
11
|
-
}
|
12
|
-
|
13
|
-
/**
|
14
|
-
* Returns metaverse coordinates bounds.
|
15
|
-
*/
|
16
|
-
export function getBounds(): IBounds {
|
17
|
-
return {
|
18
|
-
minX: -150,
|
19
|
-
minY: -150,
|
20
|
-
maxX: 165,
|
21
|
-
maxY: 165
|
22
|
-
}
|
23
|
-
}
|
24
|
-
|
25
|
-
/**
|
26
|
-
* Parses a string-based set of coordinates.
|
27
|
-
* - All spaces are removed
|
28
|
-
* - Leading zeroes are removed
|
29
|
-
* - `-0` is converted to `0`
|
30
|
-
* @param coordinates An string containing coordinates in the `x,y; x,y; ...` format
|
31
|
-
*/
|
32
|
-
export function parse(coordinates: string): string[] {
|
33
|
-
return coordinates.split(';').map((coord: string) => {
|
34
|
-
const [x = 0, y = 0] = coord.split(',').map(($) => {
|
35
|
-
return parseInt($, 10)
|
36
|
-
.toString() // removes spaces :)
|
37
|
-
.replace('-0', '0')
|
38
|
-
.replace(/undefined|NaN/g, '0')
|
39
|
-
})
|
40
|
-
return `${x},${y}`
|
41
|
-
})
|
42
|
-
}
|
43
|
-
|
44
|
-
/**
|
45
|
-
* Returns a promise that resolves `true` if the given set of coordinates is valid.
|
46
|
-
* For invalid coordinates, the promise will reject with an error message.
|
47
|
-
* *This is meant to be used as an inquirer validator.*
|
48
|
-
*
|
49
|
-
* Empty inputs will resolve `true`
|
50
|
-
* @param answers An string containing coordinates in the `x,y; x,y; ...` format
|
51
|
-
*/
|
52
|
-
export function validate(answers: string): Promise<boolean> {
|
53
|
-
return new Promise((resolve, reject) => {
|
54
|
-
if (answers.trim().length === 0) {
|
55
|
-
resolve(true)
|
56
|
-
} else {
|
57
|
-
answers.split(/;\s/g).forEach((answer) => {
|
58
|
-
if (!isValid(answer)) {
|
59
|
-
reject(new Error(`Invalid coordinate ${answer}`))
|
60
|
-
}
|
61
|
-
})
|
62
|
-
resolve(true)
|
63
|
-
}
|
64
|
-
})
|
65
|
-
}
|
66
|
-
|
67
|
-
/**
|
68
|
-
* Returns true if the given coordinate's format is valid
|
69
|
-
*
|
70
|
-
* ```
|
71
|
-
* isValid('0,0') // returns true
|
72
|
-
* isValid(', 0') // returns false
|
73
|
-
* ```
|
74
|
-
* @param val The coodinate string
|
75
|
-
*/
|
76
|
-
export function isValid(val: string): boolean {
|
77
|
-
if (!val.match(/^(-?\d)+\,(-?\d)+$/g)) {
|
78
|
-
return false
|
79
|
-
}
|
80
|
-
return true
|
81
|
-
}
|
82
|
-
|
83
|
-
/**
|
84
|
-
* Converts a string-based set of coordinates to an object
|
85
|
-
* @param coords A string containing a set of coordinates
|
86
|
-
*/
|
87
|
-
export function getObject(coords: string): Coords
|
88
|
-
/**
|
89
|
-
* Converts a array-based set of coordinates to an object
|
90
|
-
* @param coords An array containing a set of coordinates
|
91
|
-
*/
|
92
|
-
export function getObject(coords: number[]): Coords
|
93
|
-
export function getObject(coords: number[] | string): Coords {
|
94
|
-
const [x, y] = typeof coords === 'string' ? parse(coords)[0].split(',') : coords
|
95
|
-
return { x: parseInt(x.toString(), 10), y: parseInt(y.toString(), 10) }
|
96
|
-
}
|
97
|
-
|
98
|
-
/**
|
99
|
-
* Converts a Coords object to a string-based set of coordinates
|
100
|
-
*/
|
101
|
-
export function getString({ x, y }: Coords): string {
|
102
|
-
return `${x},${y}`
|
103
|
-
}
|
104
|
-
|
105
|
-
/**
|
106
|
-
* Returns true if the given coordinates are in metaverse bounds
|
107
|
-
*/
|
108
|
-
export function inBounds(x: number, y: number): boolean {
|
109
|
-
const { minX, minY, maxX, maxY } = getBounds()
|
110
|
-
return x >= minX && x <= maxX && y >= minY && y <= maxY
|
111
|
-
}
|
112
|
-
|
113
|
-
/**
|
114
|
-
* Returns true if the given parcels array are connected
|
115
|
-
*/
|
116
|
-
export function areConnected(parcels: Coords[]): boolean {
|
117
|
-
if (parcels.length === 0) {
|
118
|
-
return false
|
119
|
-
}
|
120
|
-
const visited = visitParcel(parcels[0], parcels)
|
121
|
-
return visited.length === parcels.length
|
122
|
-
}
|
123
|
-
|
124
|
-
function visitParcel(parcel: Coords, allParcels: Coords[] = [parcel], visited: Coords[] = []): Coords[] {
|
125
|
-
const isVisited = visited.some((visitedParcel) => isEqual(visitedParcel, parcel))
|
126
|
-
if (!isVisited) {
|
127
|
-
visited.push(parcel)
|
128
|
-
const neighbours = getNeighbours(parcel.x, parcel.y, allParcels)
|
129
|
-
neighbours.forEach((neighbours) => visitParcel(neighbours, allParcels, visited))
|
130
|
-
}
|
131
|
-
return visited
|
132
|
-
}
|
133
|
-
|
134
|
-
function getIsNeighbourMatcher(x: number, y: number) {
|
135
|
-
return (coords: Coords) =>
|
136
|
-
(coords.x === x && (coords.y + 1 === y || coords.y - 1 === y)) ||
|
137
|
-
(coords.y === y && (coords.x + 1 === x || coords.x - 1 === x))
|
138
|
-
}
|
139
|
-
|
140
|
-
function getNeighbours(x: number, y: number, parcels: Coords[]): Coords[] {
|
141
|
-
return parcels.filter(getIsNeighbourMatcher(x, y))
|
142
|
-
}
|
143
|
-
|
144
|
-
export function isEqual(p1: Coords, p2: Coords): boolean {
|
145
|
-
return p1.x === p2.x && p1.y === p2.y
|
146
|
-
}
|
@@ -1,10 +0,0 @@
|
|
1
|
-
import { Router } from '@well-known-components/http-server';
|
2
|
-
import { PreviewComponents } from './types';
|
3
|
-
import { ContentMapping } from '@dcl/schemas';
|
4
|
-
import { CliComponents } from '../../components';
|
5
|
-
export declare function setupEcs6Endpoints(components: CliComponents, dir: string, router: Router<PreviewComponents>): void;
|
6
|
-
export declare function getFilesFromFolder(components: Pick<CliComponents, 'fs'>, { folder, addOriginalPath, customHashMaker }: {
|
7
|
-
folder: string;
|
8
|
-
addOriginalPath?: boolean;
|
9
|
-
customHashMaker?: (str: string) => string;
|
10
|
-
}): Promise<ContentMapping[]>;
|