@dcl/sdk 7.0.6-4197739270.commit-db87ed8 → 7.0.6-4218076982.commit-7ba834d

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.
Files changed (88) hide show
  1. package/package.json +6 -30
  2. package/cli/commands/build/helpers.d.ts +0 -21
  3. package/cli/commands/build/helpers.js +0 -50
  4. package/cli/commands/build/helpers.ts +0 -89
  5. package/cli/commands/build/index.d.ts +0 -19
  6. package/cli/commands/build/index.js +0 -69
  7. package/cli/commands/build/index.ts +0 -91
  8. package/cli/commands/init/index.d.ts +0 -17
  9. package/cli/commands/init/index.js +0 -51
  10. package/cli/commands/init/index.ts +0 -67
  11. package/cli/commands/init/repos.d.ts +0 -9
  12. package/cli/commands/init/repos.js +0 -12
  13. package/cli/commands/init/repos.ts +0 -17
  14. package/cli/commands/preview/bff.d.ts +0 -3
  15. package/cli/commands/preview/bff.js +0 -54
  16. package/cli/commands/preview/bff.ts +0 -63
  17. package/cli/commands/preview/catalyst.d.ts +0 -5
  18. package/cli/commands/preview/catalyst.js +0 -24
  19. package/cli/commands/preview/catalyst.ts +0 -31
  20. package/cli/commands/preview/coordinates.d.ts +0 -20
  21. package/cli/commands/preview/coordinates.js +0 -90
  22. package/cli/commands/preview/coordinates.ts +0 -146
  23. package/cli/commands/preview/endpoints.d.ts +0 -10
  24. package/cli/commands/preview/endpoints.js +0 -455
  25. package/cli/commands/preview/endpoints.ts +0 -568
  26. package/cli/commands/preview/eth.d.ts +0 -2
  27. package/cli/commands/preview/eth.js +0 -6
  28. package/cli/commands/preview/eth.ts +0 -3
  29. package/cli/commands/preview/index.d.ts +0 -20
  30. package/cli/commands/preview/index.js +0 -100
  31. package/cli/commands/preview/index.ts +0 -98
  32. package/cli/commands/preview/port.d.ts +0 -1
  33. package/cli/commands/preview/port.js +0 -21
  34. package/cli/commands/preview/port.ts +0 -15
  35. package/cli/commands/preview/project.d.ts +0 -14
  36. package/cli/commands/preview/project.js +0 -77
  37. package/cli/commands/preview/project.ts +0 -112
  38. package/cli/commands/preview/types.d.ts +0 -18
  39. package/cli/commands/preview/types.js +0 -3
  40. package/cli/commands/preview/types.ts +0 -26
  41. package/cli/commands/preview/wire.d.ts +0 -2
  42. package/cli/commands/preview/wire.js +0 -66
  43. package/cli/commands/preview/wire.ts +0 -70
  44. package/cli/commands/preview/ws.d.ts +0 -7
  45. package/cli/commands/preview/ws.js +0 -16
  46. package/cli/commands/preview/ws.ts +0 -24
  47. package/cli/commands/start/index.d.ts +0 -29
  48. package/cli/commands/start/index.js +0 -126
  49. package/cli/commands/start/index.ts +0 -145
  50. package/cli/components/fetch.d.ts +0 -5
  51. package/cli/components/fetch.js +0 -34
  52. package/cli/components/fetch.ts +0 -11
  53. package/cli/components/fs.d.ts +0 -12
  54. package/cli/components/fs.js +0 -69
  55. package/cli/components/fs.ts +0 -62
  56. package/cli/components/index.d.ts +0 -7
  57. package/cli/components/index.js +0 -13
  58. package/cli/components/index.ts +0 -14
  59. package/cli/index.d.ts +0 -7
  60. package/cli/index.js +0 -76
  61. package/cli/index.ts +0 -85
  62. package/cli/utils/args.d.ts +0 -10
  63. package/cli/utils/args.js +0 -16
  64. package/cli/utils/args.ts +0 -18
  65. package/cli/utils/commands.d.ts +0 -3
  66. package/cli/utils/commands.js +0 -24
  67. package/cli/utils/commands.ts +0 -28
  68. package/cli/utils/dcl-ignore.d.ts +0 -4
  69. package/cli/utils/dcl-ignore.js +0 -44
  70. package/cli/utils/dcl-ignore.ts +0 -45
  71. package/cli/utils/error.d.ts +0 -2
  72. package/cli/utils/error.js +0 -7
  73. package/cli/utils/error.ts +0 -1
  74. package/cli/utils/exec.d.ts +0 -8
  75. package/cli/utils/exec.js +0 -32
  76. package/cli/utils/exec.ts +0 -42
  77. package/cli/utils/fs.d.ts +0 -10
  78. package/cli/utils/fs.js +0 -26
  79. package/cli/utils/fs.ts +0 -41
  80. package/cli/utils/log.d.ts +0 -5
  81. package/cli/utils/log.js +0 -29
  82. package/cli/utils/log.ts +0 -39
  83. package/cli/utils/object.d.ts +0 -9
  84. package/cli/utils/object.js +0 -45
  85. package/cli/utils/object.ts +0 -62
  86. package/cli/utils/out-messages.d.ts +0 -1
  87. package/cli/utils/out-messages.js +0 -8
  88. 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,5 +0,0 @@
1
- import { Entity } from '@dcl/schemas';
2
- export declare function fetchEntityByPointer(baseUrl: string, pointers: string[]): Promise<{
3
- baseUrl: string;
4
- deployments: Entity[];
5
- }>;
@@ -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[]>;