dcl-catalyst-client 17.0.0 → 17.1.0

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 (83) hide show
  1. package/dist/client/CatalystClient.d.ts +13 -0
  2. package/dist/client/CatalystClient.d.ts.map +1 -0
  3. package/dist/client/CatalystClient.js +74 -0
  4. package/dist/client/CatalystClient.js.map +1 -0
  5. package/dist/client/ContentClient.d.ts +28 -0
  6. package/dist/client/ContentClient.d.ts.map +1 -0
  7. package/dist/client/ContentClient.js +173 -0
  8. package/dist/client/ContentClient.js.map +1 -0
  9. package/dist/client/LambdasClient.d.ts +17 -0
  10. package/dist/client/LambdasClient.d.ts.map +1 -0
  11. package/dist/client/LambdasClient.js +115 -0
  12. package/dist/client/LambdasClient.js.map +1 -0
  13. package/dist/client/types.d.ts +51 -0
  14. package/dist/client/types.d.ts.map +1 -0
  15. package/dist/client/types.js +3 -0
  16. package/dist/client/types.js.map +1 -0
  17. package/dist/client/utils/DeploymentBuilder.d.ts +47 -0
  18. package/dist/client/utils/DeploymentBuilder.d.ts.map +1 -0
  19. package/dist/client/utils/DeploymentBuilder.js +162 -0
  20. package/dist/client/utils/DeploymentBuilder.js.map +1 -0
  21. package/dist/client/utils/Helper.d.ts +62 -0
  22. package/dist/client/utils/Helper.d.ts.map +1 -0
  23. package/dist/client/utils/Helper.js +274 -0
  24. package/dist/client/utils/Helper.js.map +1 -0
  25. package/dist/client/utils/fetcher.d.ts +3 -0
  26. package/dist/client/utils/fetcher.d.ts.map +1 -0
  27. package/dist/client/utils/fetcher.js +16 -0
  28. package/dist/client/utils/fetcher.js.map +1 -0
  29. package/dist/client/utils/retry.d.ts +2 -0
  30. package/dist/client/utils/retry.d.ts.map +1 -0
  31. package/dist/client/utils/retry.js +26 -0
  32. package/dist/client/utils/retry.js.map +1 -0
  33. package/dist/contracts/abi.d.ts +59 -0
  34. package/dist/contracts/abi.d.ts.map +1 -0
  35. package/dist/contracts/abi.js +942 -0
  36. package/dist/contracts/abi.js.map +1 -0
  37. package/dist/contracts/index.d.ts +19 -0
  38. package/dist/contracts/index.d.ts.map +1 -0
  39. package/dist/contracts/index.js +86 -0
  40. package/dist/contracts/index.js.map +1 -0
  41. package/dist/contracts/types.d.ts +2 -0
  42. package/dist/contracts/types.d.ts.map +1 -0
  43. package/dist/contracts/types.js +3 -0
  44. package/dist/contracts/types.js.map +1 -0
  45. package/dist/contracts-snapshots/data.d.ts +22 -0
  46. package/dist/contracts-snapshots/data.d.ts.map +1 -0
  47. package/dist/contracts-snapshots/data.js +355 -0
  48. package/dist/contracts-snapshots/data.js.map +1 -0
  49. package/dist/contracts-snapshots/index.d.ts +6 -0
  50. package/dist/contracts-snapshots/index.d.ts.map +1 -0
  51. package/dist/contracts-snapshots/index.js +17 -0
  52. package/dist/contracts-snapshots/index.js.map +1 -0
  53. package/dist/index.d.ts +4 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +20 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/package.json +7 -3
  58. package/dist/types.d.ts +6 -0
  59. package/dist/types.d.ts.map +1 -0
  60. package/dist/types.js +3 -0
  61. package/dist/types.js.map +1 -0
  62. package/package.json +9 -5
  63. package/.eslintignore +0 -6
  64. package/.eslintrc.json +0 -13
  65. package/.github/dependabot.yml +0 -17
  66. package/.github/workflows/build-and-publish.yml +0 -23
  67. package/.github/workflows/validate-pr-title.yml +0 -9
  68. package/.prettierignore +0 -3
  69. package/.vscode/launch.json +0 -14
  70. package/.vscode/settings.json +0 -26
  71. package/coverage/clover.xml +0 -452
  72. package/coverage/coverage-final.json +0 -11
  73. package/coverage/lcov-report/base.css +0 -224
  74. package/coverage/lcov-report/block-navigation.js +0 -87
  75. package/coverage/lcov-report/favicon.png +0 -0
  76. package/coverage/lcov-report/index.html +0 -161
  77. package/coverage/lcov-report/prettify.css +0 -1
  78. package/coverage/lcov-report/prettify.js +0 -2
  79. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  80. package/coverage/lcov-report/sorter.js +0 -196
  81. package/coverage/lcov.info +0 -863
  82. package/jest.config.js +0 -13
  83. package/scripts/generate-snapshots.ts +0 -49
@@ -0,0 +1,13 @@
1
+ import { ClientOptions } from './types';
2
+ import { AboutResponse } from '@dcl/protocol/out-js/decentraland/realm/about.gen';
3
+ import { ContentClient } from './ContentClient';
4
+ import { LambdasClient } from './LambdasClient';
5
+ import { CatalystServerInfo } from '../types';
6
+ export type CatalystClient = {
7
+ fetchAbout(): Promise<AboutResponse>;
8
+ getContentClient(): Promise<ContentClient>;
9
+ getLambdasClient(): Promise<LambdasClient>;
10
+ };
11
+ export declare function createCatalystClient(options: ClientOptions): Promise<CatalystClient>;
12
+ export declare function connectedToRandomCatalyst(servers: CatalystServerInfo[], options: Pick<ClientOptions, 'fetcher'>): Promise<CatalystClient | undefined>;
13
+ //# sourceMappingURL=CatalystClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CatalystClient.d.ts","sourceRoot":"","sources":["../../src/client/CatalystClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAA;AAEjF,OAAO,EAAuB,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,EAAuB,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAU7C,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,CAAA;IACpC,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAA;IAC1C,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAA;CAC3C,CAAA;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CA4D1F;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,kBAAkB,EAAE,EAC7B,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,GACtC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAarC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.connectedToRandomCatalyst = exports.createCatalystClient = void 0;
4
+ const Helper_1 = require("./utils/Helper");
5
+ const ContentClient_1 = require("./ContentClient");
6
+ const LambdasClient_1 = require("./LambdasClient");
7
+ function shuffleArray(arr) {
8
+ for (let i = arr.length - 1; i > 0; i--) {
9
+ const j = Math.floor(Math.random() * (i + 1));
10
+ [arr[i], arr[j]] = [arr[j], arr[i]];
11
+ }
12
+ return arr;
13
+ }
14
+ async function createCatalystClient(options) {
15
+ const catalystUrl = (0, Helper_1.sanitizeUrl)(options.url);
16
+ const { fetcher } = options;
17
+ let contentClient = undefined;
18
+ let lambdasClient = undefined;
19
+ let about = undefined;
20
+ async function fetchAbout() {
21
+ const result = await fetcher.fetch(catalystUrl + '/about');
22
+ const response = await result.json();
23
+ if (!response) {
24
+ throw new Error('Invalid about response');
25
+ }
26
+ about = response;
27
+ return response;
28
+ }
29
+ async function getContentClient() {
30
+ if (contentClient) {
31
+ return contentClient;
32
+ }
33
+ if (!about) {
34
+ about = await fetchAbout();
35
+ }
36
+ contentClient = (0, ContentClient_1.createContentClient)({
37
+ url: about.content.publicUrl,
38
+ fetcher
39
+ });
40
+ return contentClient;
41
+ }
42
+ async function getLambdasClient() {
43
+ if (lambdasClient) {
44
+ return lambdasClient;
45
+ }
46
+ if (!about) {
47
+ about = await fetchAbout();
48
+ }
49
+ lambdasClient = (0, LambdasClient_1.createLambdasClient)({
50
+ url: about.lambdas.publicUrl,
51
+ fetcher
52
+ });
53
+ return lambdasClient;
54
+ }
55
+ return {
56
+ fetchAbout,
57
+ getContentClient,
58
+ getLambdasClient
59
+ };
60
+ }
61
+ exports.createCatalystClient = createCatalystClient;
62
+ async function connectedToRandomCatalyst(servers, options) {
63
+ const shuffled = shuffleArray(servers);
64
+ for (const server of shuffled) {
65
+ const client = await createCatalystClient({ ...options, url: server.address });
66
+ const about = await client.fetchAbout();
67
+ if (about.healthy) {
68
+ return client;
69
+ }
70
+ }
71
+ return undefined;
72
+ }
73
+ exports.connectedToRandomCatalyst = connectedToRandomCatalyst;
74
+ //# sourceMappingURL=CatalystClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CatalystClient.js","sourceRoot":"","sources":["../../src/client/CatalystClient.ts"],"names":[],"mappings":";;;AAEA,2CAA4C;AAC5C,mDAAoE;AACpE,mDAAoE;AAGpE,SAAS,YAAY,CAAI,GAAQ;IAC/B,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAC5C;QAAA,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;KACrC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAQM,KAAK,UAAU,oBAAoB,CAAC,OAAsB;IAC/D,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAE3B,IAAI,aAAa,GAA8B,SAAS,CAAA;IACxD,IAAI,aAAa,GAA8B,SAAS,CAAA;IACxD,IAAI,KAAK,GAA8B,SAAS,CAAA;IAEhD,KAAK,UAAU,UAAU;QACvB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAEpC,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;SAC1C;QAED,KAAK,GAAG,QAAQ,CAAA;QAEhB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,UAAU,gBAAgB;QAC7B,IAAI,aAAa,EAAE;YACjB,OAAO,aAAa,CAAA;SACrB;QAED,IAAI,CAAC,KAAK,EAAE;YACV,KAAK,GAAG,MAAM,UAAU,EAAE,CAAA;SAC3B;QAED,aAAa,GAAG,IAAA,mCAAmB,EAAC;YAClC,GAAG,EAAE,KAAK,CAAC,OAAQ,CAAC,SAAS;YAC7B,OAAO;SACR,CAAC,CAAA;QAEF,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,KAAK,UAAU,gBAAgB;QAC7B,IAAI,aAAa,EAAE;YACjB,OAAO,aAAa,CAAA;SACrB;QAED,IAAI,CAAC,KAAK,EAAE;YACV,KAAK,GAAG,MAAM,UAAU,EAAE,CAAA;SAC3B;QAED,aAAa,GAAG,IAAA,mCAAmB,EAAC;YAClC,GAAG,EAAE,KAAK,CAAC,OAAQ,CAAC,SAAS;YAC7B,OAAO;SACR,CAAC,CAAA;QAEF,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,OAAO;QACL,UAAU;QACV,gBAAgB;QAChB,gBAAgB;KACjB,CAAA;AACH,CAAC;AA5DD,oDA4DC;AAEM,KAAK,UAAU,yBAAyB,CAC7C,OAA6B,EAC7B,OAAuC;IAEvC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAEtC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE;QAC7B,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9E,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAA;QAEvC,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,OAAO,MAAM,CAAA;SACd;KACF;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAhBD,8DAgBC"}
@@ -0,0 +1,28 @@
1
+ /// <reference types="node" />
2
+ import { Entity } from '@dcl/schemas';
3
+ import { IFetchComponent, RequestOptions } from '@well-known-components/interfaces';
4
+ import FormData from 'form-data';
5
+ import { BuildEntityOptions, BuildEntityWithoutFilesOptions, ClientOptions, DeploymentData, DeploymentPreparationData } from './types';
6
+ export type AvailableContentResult = {
7
+ cid: string;
8
+ available: boolean;
9
+ }[];
10
+ export type ContentClient = {
11
+ /** Build entities */
12
+ buildEntity({ type, pointers, files, metadata }: BuildEntityOptions): Promise<DeploymentPreparationData>;
13
+ buildEntityFormDataForDeployment(deployData: DeploymentData, options?: RequestOptions): Promise<FormData>;
14
+ buildEntityWithoutNewFiles({ type, pointers, hashesByKey, metadata }: BuildEntityWithoutFilesOptions): Promise<DeploymentPreparationData>;
15
+ /** Retrieve / Download */
16
+ fetchEntitiesByPointers(pointers: string[], options?: RequestOptions): Promise<Entity[]>;
17
+ fetchEntitiesByIds(ids: string[], options?: RequestOptions): Promise<Entity[]>;
18
+ fetchEntityById(id: string, options?: RequestOptions): Promise<Entity>;
19
+ downloadContent(contentHash: string, options?: RequestOptions): Promise<Buffer>;
20
+ isContentAvailable(cids: string[], options?: RequestOptions): Promise<AvailableContentResult>;
21
+ /**
22
+ * Deploys an entity to the content server.
23
+ */
24
+ deploy(deployData: DeploymentData, options?: RequestOptions): Promise<unknown>;
25
+ };
26
+ export declare function downloadContent(fetcher: IFetchComponent, baseUrl: string, contentHash: string, options?: Partial<RequestOptions>): Promise<Buffer>;
27
+ export declare function createContentClient(options: ClientOptions): ContentClient;
28
+ //# sourceMappingURL=ContentClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentClient.d.ts","sourceRoot":"","sources":["../../src/client/ContentClient.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACnF,OAAO,QAAQ,MAAM,WAAW,CAAA;AAChC,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,aAAa,EACb,cAAc,EACd,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAahB,MAAM,MAAM,sBAAsB,GAAG;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,OAAO,CAAA;CACnB,EAAE,CAAA;AAEH,MAAM,MAAM,aAAa,GAAG;IAC1B,qBAAqB;IACrB,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAA;IACxG,gCAAgC,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACzG,0BAA0B,CAAC,EACzB,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,QAAQ,EACT,EAAE,8BAA8B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAA;IAEtE,0BAA0B;IAC1B,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACxF,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9E,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACtE,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE/E,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAE7F;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/E,CAAA;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,CAoBjB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAsJzE"}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.createContentClient = exports.downloadContent = void 0;
30
+ const hashing_1 = require("@dcl/hashing");
31
+ const form_data_1 = __importDefault(require("form-data"));
32
+ const builder = __importStar(require("./utils/DeploymentBuilder"));
33
+ const Helper_1 = require("./utils/Helper");
34
+ const fetcher_1 = require("./utils/fetcher");
35
+ const retry_1 = require("./utils/retry");
36
+ function arrayBufferFrom(value) {
37
+ if (value.buffer) {
38
+ return value.buffer;
39
+ }
40
+ return value;
41
+ }
42
+ async function downloadContent(fetcher, baseUrl, contentHash, options) {
43
+ const { attempts = 3, retryDelay = 500 } = options ? options : {};
44
+ const timeout = (options === null || options === void 0 ? void 0 : options.timeout) ? { timeout: options.timeout } : {};
45
+ return (0, retry_1.retry)(`fetch file with hash ${contentHash} from ${baseUrl}`, async () => {
46
+ const content = await (await fetcher.fetch(`${baseUrl}/${contentHash}`, timeout)).buffer();
47
+ const downloadedHash = contentHash.startsWith('Qm') ? await (0, hashing_1.hashV0)(content) : await (0, hashing_1.hashV1)(content);
48
+ // Sometimes, the downloaded file is not complete, so the hash turns out to be different.
49
+ // So we will check the hash before considering the download successful.
50
+ if (downloadedHash === contentHash) {
51
+ return content;
52
+ }
53
+ throw new Error(`Failed to fetch file with hash ${contentHash} from ${baseUrl}`);
54
+ }, attempts, retryDelay);
55
+ }
56
+ exports.downloadContent = downloadContent;
57
+ function createContentClient(options) {
58
+ const contentUrl = (0, Helper_1.sanitizeUrl)(options.url);
59
+ const fetcher = (0, fetcher_1.withDefaultHeadersInjection)(options.fetcher);
60
+ async function buildEntityWithoutNewFiles({ type, pointers, hashesByKey, metadata, timestamp }) {
61
+ const result = timestamp ? timestamp : Date.now();
62
+ return builder.buildEntityWithoutNewFiles(fetcher, {
63
+ type,
64
+ pointers,
65
+ hashesByKey,
66
+ metadata,
67
+ timestamp: result,
68
+ contentUrl: contentUrl
69
+ });
70
+ }
71
+ async function buildEntity({ type, pointers, files, metadata, timestamp }) {
72
+ const result = timestamp ? timestamp : Date.now();
73
+ return builder.buildEntity({
74
+ type,
75
+ pointers,
76
+ files,
77
+ metadata,
78
+ timestamp: result
79
+ });
80
+ }
81
+ async function buildEntityFormDataForDeployment(deployData, options) {
82
+ // Check if we are running in node or browser
83
+ const areWeRunningInNode = (0, Helper_1.isNode)();
84
+ const form = new form_data_1.default();
85
+ form.append('entityId', deployData.entityId);
86
+ (0, Helper_1.addModelToFormData)(deployData.authChain, form, 'authChain');
87
+ const alreadyUploadedHashes = await hashesAlreadyOnServer(Array.from(deployData.files.keys()), options);
88
+ for (const [fileHash, file] of deployData.files) {
89
+ if (!alreadyUploadedHashes.has(fileHash) || fileHash === deployData.entityId) {
90
+ if (areWeRunningInNode) {
91
+ // Node
92
+ form.append(fileHash, Buffer.isBuffer(file) ? file : Buffer.from(arrayBufferFrom(file)), fileHash);
93
+ }
94
+ else {
95
+ // Browser
96
+ form.append(fileHash, new Blob([arrayBufferFrom(file)]), fileHash);
97
+ }
98
+ }
99
+ }
100
+ return form;
101
+ }
102
+ async function deploy(deployData, options) {
103
+ const form = await buildEntityFormDataForDeployment(deployData, options);
104
+ const requestOptions = (0, Helper_1.mergeRequestOptions)(options ? options : {}, {
105
+ body: form,
106
+ method: 'POST'
107
+ });
108
+ return await fetcher.fetch(`${contentUrl}/entities`, requestOptions);
109
+ }
110
+ async function fetchEntitiesByPointers(pointers, options) {
111
+ if (pointers.length === 0) {
112
+ return Promise.reject(`You must set at least one pointer.`);
113
+ }
114
+ const requestOptions = (0, Helper_1.mergeRequestOptions)(options ? options : {}, {
115
+ body: JSON.stringify({ pointers }),
116
+ method: 'POST',
117
+ headers: { 'Content-Type': 'application/json' }
118
+ });
119
+ return (await fetcher.fetch(`${contentUrl}/entities/active`, requestOptions)).json();
120
+ }
121
+ async function fetchEntitiesByIds(ids, options) {
122
+ if (ids.length === 0) {
123
+ return Promise.reject(`You must set at least one id.`);
124
+ }
125
+ const requestOptions = (0, Helper_1.mergeRequestOptions)(options ? options : {}, {
126
+ body: JSON.stringify({ ids }),
127
+ method: 'POST',
128
+ headers: { 'Content-Type': 'application/json' }
129
+ });
130
+ return (await fetcher.fetch(`${contentUrl}/entities/active`, requestOptions)).json();
131
+ }
132
+ async function fetchEntityById(id, options) {
133
+ const entities = await fetchEntitiesByIds([id], options);
134
+ if (entities.length === 0) {
135
+ return Promise.reject(`Failed to find an entity with id '${id}'.`);
136
+ }
137
+ return entities[0];
138
+ }
139
+ function isContentAvailable(cids, options) {
140
+ if (cids.length === 0) {
141
+ return Promise.reject(`You must set at least one cid.`);
142
+ }
143
+ return (0, Helper_1.splitAndFetch)({
144
+ fetcher: fetcher,
145
+ options,
146
+ baseUrl: contentUrl,
147
+ path: `/available-content`,
148
+ queryParams: { name: 'cid', values: cids },
149
+ uniqueBy: 'cid'
150
+ });
151
+ }
152
+ // Given an array of file hashes, return a set with those already uploaded on the server
153
+ async function hashesAlreadyOnServer(hashes, options) {
154
+ const result = await isContentAvailable(hashes, options);
155
+ const alreadyUploaded = result.filter(($) => $.available).map(({ cid }) => cid);
156
+ return new Set(alreadyUploaded);
157
+ }
158
+ return {
159
+ buildEntity,
160
+ buildEntityFormDataForDeployment,
161
+ buildEntityWithoutNewFiles,
162
+ fetchEntitiesByPointers,
163
+ fetchEntitiesByIds,
164
+ fetchEntityById,
165
+ downloadContent: (contentHash, options) => {
166
+ return downloadContent(fetcher, contentUrl + '/contents', contentHash, options);
167
+ },
168
+ deploy,
169
+ isContentAvailable
170
+ };
171
+ }
172
+ exports.createContentClient = createContentClient;
173
+ //# sourceMappingURL=ContentClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentClient.js","sourceRoot":"","sources":["../../src/client/ContentClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { RequestOptions } from '@well-known-components/interfaces';
2
+ import { ClientOptions, EmotesFilters, OwnedItems, ServerMetadata, WearablesFilters } from './types';
3
+ export type LambdasClient = {
4
+ fetchProfiles(ethAddresses: string[], options?: RequestOptions): Promise<any[]>;
5
+ fetchWearables(filters: WearablesFilters, options?: RequestOptions): Promise<any[]>;
6
+ fetchOwnedWearables<B extends boolean>(ethAddress: string, includeDefinitions: B, options?: RequestOptions): Promise<OwnedItems<B>>;
7
+ fetchOwnedThirdPartyWearables<B extends boolean>(ethAddress: string, thirdPartyId: string, includeDefinitions: B, options?: RequestOptions): Promise<OwnedItems<B>>;
8
+ fetchEmotes(filters: EmotesFilters, options?: RequestOptions): Promise<any[]>;
9
+ fetchOwnedEmotes<B extends boolean>(ethAddress: string, includeDefinitions: B, options?: RequestOptions): Promise<OwnedItems<B>>;
10
+ fetchOwnedThirdPartyEmotes<B extends boolean>(ethAddress: string, thirdPartyId: string, includeDefinitions: B, options?: RequestOptions): Promise<OwnedItems<B>>;
11
+ fetchCatalystsApprovedByDAO(options?: RequestOptions): Promise<ServerMetadata[]>;
12
+ fetchLambdasStatus(options?: RequestOptions): Promise<{
13
+ contentServerUrl: string;
14
+ }>;
15
+ };
16
+ export declare function createLambdasClient(options: ClientOptions): LambdasClient;
17
+ //# sourceMappingURL=LambdasClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LambdasClient.d.ts","sourceRoot":"","sources":["../../src/client/LambdasClient.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EACL,aAAa,EACb,aAAa,EACb,UAAU,EAGV,cAAc,EACd,gBAAgB,EACjB,MAAM,SAAS,CAAA;AAGhB,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC/E,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACnF,mBAAmB,CAAC,CAAC,SAAS,OAAO,EACnC,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,CAAC,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,6BAA6B,CAAC,CAAC,SAAS,OAAO,EAC7C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,CAAC,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC7E,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAChC,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,CAAC,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,0BAA0B,CAAC,CAAC,SAAS,OAAO,EAC1C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,CAAC,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,2BAA2B,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAChF,kBAAkB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpF,CAAA;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CA2IzE"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLambdasClient = void 0;
4
+ const Helper_1 = require("./utils/Helper");
5
+ const fetcher_1 = require("./utils/fetcher");
6
+ function createLambdasClient(options) {
7
+ const lambdasUrl = (0, Helper_1.sanitizeUrl)(options.url);
8
+ const fetcher = (0, fetcher_1.withDefaultHeadersInjection)(options.fetcher);
9
+ async function fetchProfiles(ethAddresses, options) {
10
+ if (ethAddresses.length === 0) {
11
+ return Promise.resolve([]);
12
+ }
13
+ const requestOptions = (0, Helper_1.mergeRequestOptions)(options ? options : {}, {
14
+ body: JSON.stringify({ ids: ethAddresses }),
15
+ method: 'POST',
16
+ headers: { 'Content-Type': 'application/json' }
17
+ });
18
+ return (await fetcher.fetch(`${lambdasUrl}/profiles`, requestOptions)).json();
19
+ }
20
+ function fetchWearables(filters, options) {
21
+ const queryParams = (0, Helper_1.convertFiltersToQueryParams)(filters);
22
+ if (queryParams.size === 0) {
23
+ throw new Error('You must set at least one filter');
24
+ }
25
+ return (0, Helper_1.splitAndFetchPaginated)({
26
+ fetcher: fetcher,
27
+ options,
28
+ baseUrl: lambdasUrl,
29
+ path: '/collections/wearables',
30
+ queryParams,
31
+ uniqueBy: 'id',
32
+ elementsProperty: 'wearables'
33
+ });
34
+ }
35
+ function fetchOwnedWearables(ethAddress, includeDefinitions, options) {
36
+ return (0, Helper_1.splitAndFetch)({
37
+ baseUrl: lambdasUrl,
38
+ path: `/collections/wearables-by-owner/${ethAddress}`,
39
+ queryParams: { name: 'includeDefinitions', values: [`${includeDefinitions}`] },
40
+ fetcher,
41
+ options
42
+ });
43
+ }
44
+ function fetchOwnedThirdPartyWearables(ethAddress, thirdPartyId, includeDefinitions, options) {
45
+ const queryParams = new Map([
46
+ ['collectionId', [thirdPartyId]],
47
+ ['includeDefinitions', [`${includeDefinitions}`]]
48
+ ]);
49
+ return (0, Helper_1.splitAndFetch)({
50
+ fetcher,
51
+ options,
52
+ baseUrl: lambdasUrl,
53
+ path: `/collections/wearables-by-owner/${ethAddress}`,
54
+ queryParams
55
+ });
56
+ }
57
+ function fetchEmotes(filters, options) {
58
+ const queryParams = (0, Helper_1.convertFiltersToQueryParams)(filters);
59
+ if (queryParams.size === 0) {
60
+ throw new Error('You must set at least one filter');
61
+ }
62
+ return (0, Helper_1.splitAndFetchPaginated)({
63
+ fetcher: fetcher,
64
+ options,
65
+ baseUrl: lambdasUrl,
66
+ path: '/collections/emotes',
67
+ queryParams,
68
+ uniqueBy: 'id',
69
+ elementsProperty: 'emotes'
70
+ });
71
+ }
72
+ function fetchOwnedEmotes(ethAddress, includeDefinitions, options) {
73
+ return (0, Helper_1.splitAndFetch)({
74
+ fetcher: fetcher,
75
+ options,
76
+ baseUrl: lambdasUrl,
77
+ path: `/collections/emotes-by-owner/${ethAddress}`,
78
+ queryParams: { name: 'includeDefinitions', values: [`${includeDefinitions}`] }
79
+ });
80
+ }
81
+ function fetchOwnedThirdPartyEmotes(ethAddress, thirdPartyId, includeDefinitions, options) {
82
+ const queryParams = new Map([
83
+ ['collectionId', [thirdPartyId]],
84
+ ['includeDefinitions', [`${includeDefinitions}`]]
85
+ ]);
86
+ return (0, Helper_1.splitAndFetch)({
87
+ fetcher: fetcher,
88
+ options,
89
+ baseUrl: lambdasUrl,
90
+ path: `/collections/emotes-by-owner/${ethAddress}`,
91
+ queryParams
92
+ });
93
+ }
94
+ async function fetchCatalystsApprovedByDAO(options) {
95
+ const result = await fetcher.fetch(`${lambdasUrl}/contracts/servers`, options);
96
+ return result.json();
97
+ }
98
+ async function fetchLambdasStatus(options) {
99
+ const result = await fetcher.fetch(`${lambdasUrl}/status`, options);
100
+ return result.json();
101
+ }
102
+ return {
103
+ fetchProfiles,
104
+ fetchWearables,
105
+ fetchOwnedWearables,
106
+ fetchOwnedThirdPartyWearables,
107
+ fetchEmotes,
108
+ fetchOwnedEmotes,
109
+ fetchOwnedThirdPartyEmotes,
110
+ fetchCatalystsApprovedByDAO,
111
+ fetchLambdasStatus
112
+ };
113
+ }
114
+ exports.createLambdasClient = createLambdasClient;
115
+ //# sourceMappingURL=LambdasClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LambdasClient.js","sourceRoot":"","sources":["../../src/client/LambdasClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { AuthChain, EntityType } from '@dcl/schemas';
2
+ import { IFetchComponent } from '@well-known-components/interfaces';
3
+ export type DeploymentPreparationData = {
4
+ entityId: string;
5
+ files: Map<string, Uint8Array>;
6
+ };
7
+ export type DeploymentData = DeploymentPreparationData & {
8
+ authChain: AuthChain;
9
+ };
10
+ export type BuildEntityOptions = {
11
+ type: EntityType;
12
+ pointers: string[];
13
+ files?: Map<string, Uint8Array>;
14
+ metadata?: any;
15
+ timestamp?: number;
16
+ };
17
+ export type BuildEntityWithoutFilesOptions = {
18
+ type: EntityType;
19
+ pointers: string[];
20
+ hashesByKey?: Map<string, string>;
21
+ metadata?: any;
22
+ timestamp?: number;
23
+ };
24
+ export type ServerMetadata = {
25
+ baseUrl: string;
26
+ owner: string;
27
+ id: string;
28
+ };
29
+ export type ItemFilters = {
30
+ collectionIds?: string[];
31
+ textSearch?: string;
32
+ };
33
+ export type WearablesFilters = ItemFilters & {
34
+ wearableIds?: string[];
35
+ };
36
+ export type EmotesFilters = ItemFilters & {
37
+ emoteIds?: string[];
38
+ };
39
+ export type OwnedItems<B extends boolean> = (B extends false ? OwnedItemsWithoutDefinition : OwnedItemsWithDefinition)[];
40
+ export type OwnedItemsWithDefinition = OwnedItemsWithoutDefinition & {
41
+ definition: any;
42
+ };
43
+ export type OwnedItemsWithoutDefinition = {
44
+ urn: string;
45
+ amount: number;
46
+ };
47
+ export type ClientOptions = {
48
+ url: string;
49
+ fetcher: IFetchComponent;
50
+ };
51
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AAEnE,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,yBAAyB,GAAG;IACvD,SAAS,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC/B,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAC3C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,CAAC,SAAS,KAAK,GAAG,2BAA2B,GAAG,wBAAwB,CAAC,EAAE,CAAA;AAExH,MAAM,MAAM,wBAAwB,GAAG,2BAA2B,GAAG;IAAE,UAAU,EAAE,GAAG,CAAA;CAAE,CAAA;AAExF,MAAM,MAAM,2BAA2B,GAAG;IACxC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,eAAe,CAAA;CACzB,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ import { AuthChain, ContentMapping, Entity, EntityType } from '@dcl/schemas';
2
+ import { IFetchComponent } from '@well-known-components/interfaces';
3
+ /**
4
+ * Take all the entity's data, build the entity file with it, and calculate its id
5
+ */
6
+ export declare function buildEntityAndFile({ type, pointers, timestamp, content, metadata }: {
7
+ type: EntityType;
8
+ pointers: string[];
9
+ timestamp: number;
10
+ content: ContentMapping[];
11
+ metadata?: any;
12
+ }): Promise<{
13
+ entity: Entity;
14
+ entityFile: Uint8Array;
15
+ }>;
16
+ /**
17
+ * As part of the deployment process, an entity has to be built. In this method, we are building it, based on the data provided.
18
+ * After the entity is built, the user will have to sign the entity id, to prove they are actually who they say they are.
19
+ */
20
+ export declare function buildEntity({ type, pointers, files, metadata, timestamp }: {
21
+ type: EntityType;
22
+ pointers: string[];
23
+ files?: Map<string, Uint8Array>;
24
+ metadata?: any;
25
+ timestamp?: number;
26
+ }): Promise<DeploymentPreparationData>;
27
+ /**
28
+ * In cases where we don't need upload content files, we can simply generate the new entity.
29
+ * We can still use already uploaded hashes on this new entity.
30
+ */
31
+ export declare function buildEntityWithoutNewFiles(fetcher: IFetchComponent, { contentUrl, type, pointers, hashesByKey, metadata, timestamp }: {
32
+ contentUrl: string;
33
+ type: EntityType;
34
+ pointers: string[];
35
+ hashesByKey?: Map<string, string>;
36
+ metadata?: any;
37
+ timestamp?: number;
38
+ }): Promise<DeploymentPreparationData>;
39
+ /** This data contains everything necessary for the user to sign, so that then a deployment can be executed */
40
+ export type DeploymentPreparationData = {
41
+ entityId: string;
42
+ files: Map<string, Uint8Array>;
43
+ };
44
+ export type DeploymentData = DeploymentPreparationData & {
45
+ authChain: AuthChain;
46
+ };
47
+ //# sourceMappingURL=DeploymentBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeploymentBuilder.d.ts","sourceRoot":"","sources":["../../../src/client/utils/DeploymentBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAW,MAAM,cAAc,CAAA;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AAEnE;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACT,EAAE;IACD,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,QAAQ,CAAC,EAAE,GAAG,CAAA;CACf,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,CAAC,CA2CtD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,EAChC,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,EACV,EAAE;IACD,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC/B,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAoBrC;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,eAAe,EACxB,EACE,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,SAAS,EACV,EAAE;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GACA,OAAO,CAAC,yBAAyB,CAAC,CAepC;AA6CD,8GAA8G;AAC9G,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,yBAAyB,GAAG;IACvD,SAAS,EAAE,SAAS,CAAA;CACrB,CAAA"}