@dcl/content-validator 4.3.0 → 4.3.1-4346672765.commit-51a4f9f

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 (168) hide show
  1. package/dist/index.d.ts +2 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +9 -12
  4. package/dist/index.js.map +1 -1
  5. package/dist/types.d.ts +60 -24
  6. package/dist/types.d.ts.map +1 -1
  7. package/dist/types.js.map +1 -1
  8. package/dist/validations/ADR45.d.ts +2 -2
  9. package/dist/validations/ADR45.d.ts.map +1 -1
  10. package/dist/validations/ADR45.js +3 -3
  11. package/dist/validations/ADR45.js.map +1 -1
  12. package/dist/validations/access/common/items.d.ts +10 -0
  13. package/dist/validations/access/common/items.d.ts.map +1 -0
  14. package/dist/validations/access/common/items.js +94 -0
  15. package/dist/validations/access/common/items.js.map +1 -0
  16. package/dist/validations/access/common/profiles.d.ts +3 -0
  17. package/dist/validations/access/common/profiles.d.ts.map +1 -0
  18. package/dist/validations/access/common/profiles.js +28 -0
  19. package/dist/validations/access/common/profiles.js.map +1 -0
  20. package/dist/validations/access/common/stores.d.ts +7 -0
  21. package/dist/validations/access/common/stores.d.ts.map +1 -0
  22. package/dist/validations/access/common/stores.js +35 -0
  23. package/dist/validations/access/common/stores.js.map +1 -0
  24. package/dist/validations/access/index.d.ts +8 -0
  25. package/dist/validations/access/index.d.ts.map +1 -0
  26. package/dist/validations/access/index.js +30 -0
  27. package/dist/validations/access/index.js.map +1 -0
  28. package/dist/validations/access/on-chain/client.d.ts +14 -0
  29. package/dist/validations/access/on-chain/client.d.ts.map +1 -0
  30. package/dist/validations/access/on-chain/client.js +177 -0
  31. package/dist/validations/access/on-chain/client.js.map +1 -0
  32. package/dist/validations/access/on-chain/collection-asset.d.ts +3 -0
  33. package/dist/validations/access/on-chain/collection-asset.d.ts.map +1 -0
  34. package/dist/validations/access/on-chain/collection-asset.js +66 -0
  35. package/dist/validations/access/on-chain/collection-asset.js.map +1 -0
  36. package/dist/validations/access/on-chain/index.d.ts +4 -0
  37. package/dist/validations/access/on-chain/index.d.ts.map +1 -0
  38. package/dist/validations/access/on-chain/index.js +23 -0
  39. package/dist/validations/access/on-chain/index.js.map +1 -0
  40. package/dist/validations/access/on-chain/profiles.d.ts +5 -0
  41. package/dist/validations/access/on-chain/profiles.d.ts.map +1 -0
  42. package/dist/validations/access/on-chain/profiles.js +84 -0
  43. package/dist/validations/access/on-chain/profiles.js.map +1 -0
  44. package/dist/validations/access/on-chain/scenes.d.ts +7 -0
  45. package/dist/validations/access/on-chain/scenes.d.ts.map +1 -0
  46. package/dist/validations/access/on-chain/scenes.js +53 -0
  47. package/dist/validations/access/on-chain/scenes.js.map +1 -0
  48. package/dist/validations/access/on-chain/third-party-asset.d.ts +3 -0
  49. package/dist/validations/access/on-chain/third-party-asset.d.ts.map +1 -0
  50. package/dist/validations/access/on-chain/third-party-asset.js +53 -0
  51. package/dist/validations/access/on-chain/third-party-asset.js.map +1 -0
  52. package/dist/validations/access/subgraph/collection-asset.d.ts +15 -0
  53. package/dist/validations/access/subgraph/collection-asset.d.ts.map +1 -0
  54. package/dist/validations/{access-checker/items → access/subgraph}/collection-asset.js +10 -13
  55. package/dist/validations/access/subgraph/collection-asset.js.map +1 -0
  56. package/dist/validations/access/subgraph/index.d.ts +4 -0
  57. package/dist/validations/access/subgraph/index.d.ts.map +1 -0
  58. package/dist/validations/access/subgraph/index.js +23 -0
  59. package/dist/validations/access/subgraph/index.js.map +1 -0
  60. package/dist/validations/access/subgraph/profiles.d.ts +5 -0
  61. package/dist/validations/access/subgraph/profiles.d.ts.map +1 -0
  62. package/dist/validations/access/subgraph/profiles.js +84 -0
  63. package/dist/validations/access/subgraph/profiles.js.map +1 -0
  64. package/dist/validations/access/subgraph/scenes.d.ts +7 -0
  65. package/dist/validations/access/subgraph/scenes.d.ts.map +1 -0
  66. package/dist/validations/access/subgraph/scenes.js +262 -0
  67. package/dist/validations/access/subgraph/scenes.js.map +1 -0
  68. package/dist/validations/access/subgraph/the-graph-client.d.ts +10 -0
  69. package/dist/validations/access/subgraph/the-graph-client.d.ts.map +1 -0
  70. package/dist/validations/access/subgraph/the-graph-client.js.map +1 -0
  71. package/dist/validations/access/subgraph/third-party-asset.d.ts +3 -0
  72. package/dist/validations/access/subgraph/third-party-asset.d.ts.map +1 -0
  73. package/dist/validations/{access-checker/items → access/subgraph}/third-party-asset.js +6 -8
  74. package/dist/validations/access/subgraph/third-party-asset.js.map +1 -0
  75. package/dist/validations/content.d.ts +6 -10
  76. package/dist/validations/content.d.ts.map +1 -1
  77. package/dist/validations/content.js +29 -24
  78. package/dist/validations/content.js.map +1 -1
  79. package/dist/validations/entity-structure.d.ts +2 -2
  80. package/dist/validations/entity-structure.d.ts.map +1 -1
  81. package/dist/validations/entity-structure.js +3 -3
  82. package/dist/validations/entity-structure.js.map +1 -1
  83. package/dist/validations/index.d.ts +2 -18
  84. package/dist/validations/index.d.ts.map +1 -1
  85. package/dist/validations/index.js +20 -15
  86. package/dist/validations/index.js.map +1 -1
  87. package/dist/validations/ipfs-hashing.d.ts +1 -2
  88. package/dist/validations/ipfs-hashing.d.ts.map +1 -1
  89. package/dist/validations/ipfs-hashing.js +2 -2
  90. package/dist/validations/ipfs-hashing.js.map +1 -1
  91. package/dist/validations/items/emotes.d.ts +4 -4
  92. package/dist/validations/items/emotes.d.ts.map +1 -1
  93. package/dist/validations/items/emotes.js +6 -6
  94. package/dist/validations/items/emotes.js.map +1 -1
  95. package/dist/validations/items/items.d.ts +4 -4
  96. package/dist/validations/items/items.d.ts.map +1 -1
  97. package/dist/validations/items/items.js +67 -52
  98. package/dist/validations/items/items.js.map +1 -1
  99. package/dist/validations/items/wearables.d.ts +3 -3
  100. package/dist/validations/items/wearables.d.ts.map +1 -1
  101. package/dist/validations/items/wearables.js +4 -4
  102. package/dist/validations/items/wearables.js.map +1 -1
  103. package/dist/validations/metadata-schema.d.ts +10 -1
  104. package/dist/validations/metadata-schema.d.ts.map +1 -1
  105. package/dist/validations/metadata-schema.js +9 -6
  106. package/dist/validations/metadata-schema.js.map +1 -1
  107. package/dist/validations/profile.d.ts +7 -10
  108. package/dist/validations/profile.d.ts.map +1 -1
  109. package/dist/validations/profile.js +57 -37
  110. package/dist/validations/profile.js.map +1 -1
  111. package/dist/validations/scene.d.ts +2 -2
  112. package/dist/validations/scene.d.ts.map +1 -1
  113. package/dist/validations/scene.js +8 -7
  114. package/dist/validations/scene.js.map +1 -1
  115. package/dist/validations/signature.d.ts +2 -2
  116. package/dist/validations/signature.d.ts.map +1 -1
  117. package/dist/validations/signature.js +8 -6
  118. package/dist/validations/signature.js.map +1 -1
  119. package/dist/validations/size.d.ts +2 -2
  120. package/dist/validations/size.d.ts.map +1 -1
  121. package/dist/validations/size.js +31 -29
  122. package/dist/validations/size.js.map +1 -1
  123. package/dist/validations/validations.d.ts.map +1 -1
  124. package/dist/validations/validations.js +6 -5
  125. package/dist/validations/validations.js.map +1 -1
  126. package/package.json +7 -4
  127. package/dist/the-graph-client/the-graph-client.d.ts +0 -10
  128. package/dist/the-graph-client/the-graph-client.d.ts.map +0 -1
  129. package/dist/the-graph-client/the-graph-client.js.map +0 -1
  130. package/dist/validations/access-checker/access.d.ts +0 -7
  131. package/dist/validations/access-checker/access.d.ts.map +0 -1
  132. package/dist/validations/access-checker/access.js +0 -42
  133. package/dist/validations/access-checker/access.js.map +0 -1
  134. package/dist/validations/access-checker/emotes.d.ts +0 -3
  135. package/dist/validations/access-checker/emotes.d.ts.map +0 -1
  136. package/dist/validations/access-checker/emotes.js +0 -12
  137. package/dist/validations/access-checker/emotes.js.map +0 -1
  138. package/dist/validations/access-checker/items/collection-asset.d.ts +0 -15
  139. package/dist/validations/access-checker/items/collection-asset.d.ts.map +0 -1
  140. package/dist/validations/access-checker/items/collection-asset.js.map +0 -1
  141. package/dist/validations/access-checker/items/items.d.ts +0 -11
  142. package/dist/validations/access-checker/items/items.d.ts.map +0 -1
  143. package/dist/validations/access-checker/items/items.js +0 -67
  144. package/dist/validations/access-checker/items/items.js.map +0 -1
  145. package/dist/validations/access-checker/items/off-chain-asset.d.ts +0 -3
  146. package/dist/validations/access-checker/items/off-chain-asset.d.ts.map +0 -1
  147. package/dist/validations/access-checker/items/off-chain-asset.js +0 -17
  148. package/dist/validations/access-checker/items/off-chain-asset.js.map +0 -1
  149. package/dist/validations/access-checker/items/third-party-asset.d.ts +0 -3
  150. package/dist/validations/access-checker/items/third-party-asset.d.ts.map +0 -1
  151. package/dist/validations/access-checker/items/third-party-asset.js.map +0 -1
  152. package/dist/validations/access-checker/profiles.d.ts +0 -7
  153. package/dist/validations/access-checker/profiles.d.ts.map +0 -1
  154. package/dist/validations/access-checker/profiles.js +0 -114
  155. package/dist/validations/access-checker/profiles.js.map +0 -1
  156. package/dist/validations/access-checker/scenes.d.ts +0 -7
  157. package/dist/validations/access-checker/scenes.d.ts.map +0 -1
  158. package/dist/validations/access-checker/scenes.js +0 -261
  159. package/dist/validations/access-checker/scenes.js.map +0 -1
  160. package/dist/validations/access-checker/stores.d.ts +0 -7
  161. package/dist/validations/access-checker/stores.d.ts.map +0 -1
  162. package/dist/validations/access-checker/stores.js +0 -33
  163. package/dist/validations/access-checker/stores.js.map +0 -1
  164. package/dist/validations/access-checker/wearables.d.ts +0 -3
  165. package/dist/validations/access-checker/wearables.d.ts.map +0 -1
  166. package/dist/validations/access-checker/wearables.js +0 -14
  167. package/dist/validations/access-checker/wearables.js.map +0 -1
  168. /package/dist/{the-graph-client → validations/access/subgraph}/the-graph-client.js +0 -0
@@ -1,31 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.content = exports.allMandatoryContentFilesArePresent = exports.allContentFilesCorrespondToAtLeastOneAvatarSnapshotAfterADR45 = exports.allHashesInUploadedFilesAreReportedInTheEntity = exports.allHashesWereUploadedOrStored = void 0;
3
+ exports.createContentValidateFn = exports.allMandatoryContentFilesArePresentValidateFn = exports.allContentFilesCorrespondToAtLeastOneAvatarSnapshotAfterADR45ValidateFn = exports.allHashesInUploadedFilesAreReportedInTheEntityValidateFn = exports.createAllHashesWereUploadedOrStoredValidateFn = void 0;
4
4
  const schemas_1 = require("@dcl/schemas");
5
5
  const types_1 = require("../types");
6
6
  const validations_1 = require("./validations");
7
- const correspondsToASnapshot = (fileName, hash, metadata) => {
7
+ function correspondsToASnapshot(fileName, hash, metadata) {
8
8
  const fileNameWithoutExtension = fileName.replace(/.[^/.]+$/, '');
9
9
  if (!metadata || !metadata.avatars)
10
10
  return false;
11
11
  return metadata.avatars.some((avatar) => Object.entries(avatar.avatar.snapshots).some((key) => key[0] === fileNameWithoutExtension && key[1] === hash));
12
- };
13
- async function allHashesWereUploadedOrStored(components, deployment) {
14
- const { entity, files } = deployment;
15
- const errors = [];
16
- if (entity.content) {
17
- const alreadyStoredHashes = await components.externalCalls.isContentStoredAlready(entity.content?.map((file) => file.hash) ?? []);
18
- for (const { hash } of entity.content) {
19
- // Validate that all hashes in entity were uploaded, or were already stored on the service
20
- if (!(files.has(hash) || alreadyStoredHashes.get(hash))) {
21
- errors.push(`This hash is referenced in the entity but was not uploaded or previously available: ${hash}`);
12
+ }
13
+ function createAllHashesWereUploadedOrStoredValidateFn({ externalCalls }) {
14
+ return async function validateFn(deployment) {
15
+ const { entity, files } = deployment;
16
+ const errors = [];
17
+ if (entity.content) {
18
+ const alreadyStoredHashes = await externalCalls.isContentStoredAlready(entity.content?.map((file) => file.hash) ?? []);
19
+ for (const { hash } of entity.content) {
20
+ // Validate that all hashes in entity were uploaded, or were already stored on the service
21
+ if (!(files.has(hash) || alreadyStoredHashes.get(hash))) {
22
+ errors.push(`This hash is referenced in the entity but was not uploaded or previously available: ${hash}`);
23
+ }
22
24
  }
23
25
  }
24
- }
25
- return (0, types_1.fromErrors)(...errors);
26
+ return (0, types_1.fromErrors)(...errors);
27
+ };
26
28
  }
27
- exports.allHashesWereUploadedOrStored = allHashesWereUploadedOrStored;
28
- async function allHashesInUploadedFilesAreReportedInTheEntity(components, deployment) {
29
+ exports.createAllHashesWereUploadedOrStoredValidateFn = createAllHashesWereUploadedOrStoredValidateFn;
30
+ async function allHashesInUploadedFilesAreReportedInTheEntityValidateFn(deployment) {
29
31
  const { entity, files } = deployment;
30
32
  const errors = [];
31
33
  // Validate that all hashes that belong to uploaded files are actually reported on the entity
@@ -37,8 +39,8 @@ async function allHashesInUploadedFilesAreReportedInTheEntity(components, deploy
37
39
  }
38
40
  return (0, types_1.fromErrors)(...errors);
39
41
  }
40
- exports.allHashesInUploadedFilesAreReportedInTheEntity = allHashesInUploadedFilesAreReportedInTheEntity;
41
- exports.allContentFilesCorrespondToAtLeastOneAvatarSnapshotAfterADR45 = (0, validations_1.validateAfterADR45)(async (components, deployment) => {
42
+ exports.allHashesInUploadedFilesAreReportedInTheEntityValidateFn = allHashesInUploadedFilesAreReportedInTheEntityValidateFn;
43
+ exports.allContentFilesCorrespondToAtLeastOneAvatarSnapshotAfterADR45ValidateFn = (0, validations_1.validateAfterADR45)(async function validateFn(deployment) {
42
44
  const { entity } = deployment;
43
45
  const errors = [];
44
46
  for (const { file, hash } of entity.content ?? []) {
@@ -51,7 +53,7 @@ exports.allContentFilesCorrespondToAtLeastOneAvatarSnapshotAfterADR45 = (0, vali
51
53
  }
52
54
  return (0, types_1.fromErrors)(...errors);
53
55
  });
54
- exports.allMandatoryContentFilesArePresent = (0, validations_1.validateAfterADR158)(async (components, deployment) => {
56
+ exports.allMandatoryContentFilesArePresentValidateFn = (0, validations_1.validateAfterADR158)(async function validateFn(deployment) {
55
57
  const { entity } = deployment;
56
58
  const errors = [];
57
59
  if (entity.type === schemas_1.EntityType.PROFILE) {
@@ -65,9 +67,12 @@ exports.allMandatoryContentFilesArePresent = (0, validations_1.validateAfterADR1
65
67
  }
66
68
  return (0, types_1.fromErrors)(...errors);
67
69
  });
68
- /**
69
- * Validate that uploaded and reported hashes are corrects and files corresponds to snapshots
70
- * @public
71
- */
72
- exports.content = (0, validations_1.validateAll)(allHashesWereUploadedOrStored, allHashesInUploadedFilesAreReportedInTheEntity, exports.allContentFilesCorrespondToAtLeastOneAvatarSnapshotAfterADR45, exports.allMandatoryContentFilesArePresent);
70
+ function createContentValidateFn(components) {
71
+ /**
72
+ * Validate that uploaded and reported hashes are corrects and files corresponds to snapshots
73
+ * @public
74
+ */
75
+ return (0, validations_1.validateAll)(createAllHashesWereUploadedOrStoredValidateFn(components), allHashesInUploadedFilesAreReportedInTheEntityValidateFn, exports.allContentFilesCorrespondToAtLeastOneAvatarSnapshotAfterADR45ValidateFn, exports.allMandatoryContentFilesArePresentValidateFn);
76
+ }
77
+ exports.createContentValidateFn = createContentValidateFn;
73
78
  //# sourceMappingURL=content.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/validations/content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/validations/content.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { ContentValidatorComponents, DeploymentToValidate } from '../types';
1
+ import { DeploymentToValidate, ValidationResponse } from '../types';
2
2
  /**
3
3
  * Validate that entity is actually ok
4
4
  * @public
5
5
  */
6
- export declare function entityStructure(components: ContentValidatorComponents, deployment: DeploymentToValidate): Promise<import("../types").ValidationResponse>;
6
+ export declare function entityStructureValidationFn(deployment: DeploymentToValidate): Promise<ValidationResponse>;
7
7
  //# sourceMappingURL=entity-structure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity-structure.d.ts","sourceRoot":"","sources":["../../src/validations/entity-structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAwB,MAAM,UAAU,CAAA;AAEjG;;;GAGG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,0BAA0B,EAAE,UAAU,EAAE,oBAAoB,kDAQ7G"}
1
+ {"version":3,"file":"entity-structure.d.ts","sourceRoot":"","sources":["../../src/validations/entity-structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAwB,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAEzF;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAQ/G"}
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.entityStructure = void 0;
3
+ exports.entityStructureValidationFn = void 0;
4
4
  const types_1 = require("../types");
5
5
  /**
6
6
  * Validate that entity is actually ok
7
7
  * @public
8
8
  */
9
- async function entityStructure(components, deployment) {
9
+ async function entityStructureValidationFn(deployment) {
10
10
  const { entity } = deployment;
11
11
  if (new Set(entity.pointers).size != entity.pointers.length) {
12
12
  return (0, types_1.validationFailed)('There are repeated pointers in your request.');
@@ -16,5 +16,5 @@ async function entityStructure(components, deployment) {
16
16
  }
17
17
  return types_1.OK;
18
18
  }
19
- exports.entityStructure = entityStructure;
19
+ exports.entityStructureValidationFn = entityStructureValidationFn;
20
20
  //# sourceMappingURL=entity-structure.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity-structure.js","sourceRoot":"","sources":["../../src/validations/entity-structure.ts"],"names":[],"mappings":";;;AAAA,oCAAiG;AAEjG;;;GAGG;AACI,KAAK,UAAU,eAAe,CAAC,UAAsC,EAAE,UAAgC;IAC5G,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;IAC7B,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;QAC3D,OAAO,IAAA,wBAAgB,EAAC,8CAA8C,CAAC,CAAA;KACxE;SAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;QAC1D,OAAO,IAAA,wBAAgB,EAAC,yDAAyD,CAAC,CAAA;KACnF;IACD,OAAO,UAAE,CAAA;AACX,CAAC;AARD,0CAQC"}
1
+ {"version":3,"file":"entity-structure.js","sourceRoot":"","sources":["../../src/validations/entity-structure.ts"],"names":[],"mappings":";;;AAAA,oCAAyF;AAEzF;;;GAGG;AACI,KAAK,UAAU,2BAA2B,CAAC,UAAgC;IAChF,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;IAC7B,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;QAC3D,OAAO,IAAA,wBAAgB,EAAC,8CAA8C,CAAC,CAAA;KACxE;SAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;QAC1D,OAAO,IAAA,wBAAgB,EAAC,yDAAyD,CAAC,CAAA;KACnF;IACD,OAAO,UAAE,CAAA;AACX,CAAC;AARD,kEAQC"}
@@ -1,26 +1,10 @@
1
- import { DeploymentToValidate, ExternalCalls } from '../types';
2
- import { access } from './access-checker/access';
3
- import { adr45 } from './ADR45';
4
- import { entityStructure } from './entity-structure';
5
- import { signature } from './signature';
6
- import { size } from './size';
1
+ import { ContentValidatorComponents, DeploymentToValidate, ExternalCalls, ValidateFn } from '../types';
7
2
  /**
8
3
  * @public
9
4
  */
10
5
  export declare function calculateDeploymentSize(deployment: DeploymentToValidate, externalCalls: ExternalCalls): Promise<number | string>;
11
6
  /**
12
- * Stateful validations that are run on a deployment.
13
7
  * @public
14
8
  */
15
- export declare const statefulValidateFns: readonly [typeof signature, typeof access, typeof size, import("../types").ValidateFn, import("../types").ValidateFn, import("../types").ValidateFn, import("../types").ValidateFn, import("../types").ValidateFn];
16
- /**
17
- * Stateless validations that are run on a deployment.
18
- * @public
19
- */
20
- export declare const statelessValidateFns: readonly [typeof entityStructure, import("../types").ValidateFn, import("../types").ValidateFn, typeof adr45];
21
- /**
22
- * All validations that are run on a deployment.
23
- * @public
24
- */
25
- export declare const validateFns: readonly [typeof entityStructure, import("../types").ValidateFn, import("../types").ValidateFn, typeof adr45, typeof signature, typeof access, typeof size, import("../types").ValidateFn, import("../types").ValidateFn, import("../types").ValidateFn, import("../types").ValidateFn, import("../types").ValidateFn];
9
+ export declare function createValidateFns(components: ContentValidatorComponents): ValidateFn[];
26
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAMpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAG7B;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,oBAAoB,EAChC,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAa1B;AAED;;;GAGG;AAEH,eAAO,MAAM,mBAAmB,oNAA+E,CAAA;AAE/G;;;GAGG;AACH,eAAO,MAAM,oBAAoB,+GAA2D,CAAA;AAE5F;;;GAGG;AACH,eAAO,MAAM,WAAW,wTAA6D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAatG;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,oBAAoB,EAChC,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAa1B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,0BAA0B,GAAG,UAAU,EAAE,CAiBtF"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateFns = exports.statelessValidateFns = exports.statefulValidateFns = exports.calculateDeploymentSize = void 0;
4
- const access_1 = require("./access-checker/access");
3
+ exports.createValidateFns = exports.calculateDeploymentSize = void 0;
5
4
  const ADR45_1 = require("./ADR45");
6
5
  const content_1 = require("./content");
7
6
  const entity_structure_1 = require("./entity-structure");
@@ -10,9 +9,9 @@ const emotes_1 = require("./items/emotes");
10
9
  const wearables_1 = require("./items/wearables");
11
10
  const metadata_schema_1 = require("./metadata-schema");
12
11
  const profile_1 = require("./profile");
12
+ const scene_1 = require("./scene");
13
13
  const signature_1 = require("./signature");
14
14
  const size_1 = require("./size");
15
- const scene_1 = require("./scene");
16
15
  /**
17
16
  * @public
18
17
  */
@@ -34,18 +33,24 @@ async function calculateDeploymentSize(deployment, externalCalls) {
34
33
  }
35
34
  exports.calculateDeploymentSize = calculateDeploymentSize;
36
35
  /**
37
- * Stateful validations that are run on a deployment.
38
- * @public
39
- */
40
- exports.statefulValidateFns = [signature_1.signature, access_1.access, size_1.size, wearables_1.wearable, emotes_1.emote, profile_1.profile, scene_1.scene, content_1.content];
41
- /**
42
- * Stateless validations that are run on a deployment.
43
36
  * @public
44
37
  */
45
- exports.statelessValidateFns = [entity_structure_1.entityStructure, ipfs_hashing_1.ipfsHashing, metadata_schema_1.metadata, ADR45_1.adr45];
46
- /**
47
- * All validations that are run on a deployment.
48
- * @public
49
- */
50
- exports.validateFns = [...exports.statelessValidateFns, ...exports.statefulValidateFns];
38
+ function createValidateFns(components) {
39
+ return [
40
+ // Stateless validations that are run on a deployment.
41
+ entity_structure_1.entityStructureValidationFn,
42
+ ipfs_hashing_1.ipfsHashingValidateFn,
43
+ metadata_schema_1.metadataValidateFn,
44
+ ADR45_1.adr45ValidateFn,
45
+ // Stateful validations that are run on a deployment.
46
+ (0, signature_1.createSignatureValidateFn)(components),
47
+ (0, size_1.createSizeValidateFn)(components),
48
+ wearables_1.wearableValidateFn,
49
+ emotes_1.emoteValidateFn,
50
+ (0, profile_1.createProfileValidateFn)(components),
51
+ scene_1.sceneValidateFn,
52
+ (0, content_1.createContentValidateFn)(components)
53
+ ];
54
+ }
55
+ exports.createValidateFns = createValidateFns;
51
56
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validations/index.ts"],"names":[],"mappings":";;;AACA,oDAAgD;AAChD,mCAA+B;AAC/B,uCAAmC;AACnC,yDAAoD;AACpD,iDAA4C;AAC5C,2CAAsC;AACtC,iDAA4C;AAC5C,uDAA4C;AAC5C,uCAAmC;AACnC,2CAAuC;AACvC,iCAA6B;AAC7B,mCAA+B;AAE/B;;GAEG;AACI,KAAK,UAAU,uBAAuB,CAC3C,UAAgC,EAChC,aAA4B;IAE5B,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;QACrF,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,YAAY,EAAE;YAChB,SAAS,IAAI,YAAY,CAAC,UAAU,CAAA;SACrC;aAAM;YACL,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;YAClE,IAAI,WAAW,KAAK,SAAS;gBAAE,OAAO,0CAA0C,IAAI,EAAE,CAAA;YACtF,SAAS,IAAI,WAAW,CAAA;SACzB;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAhBD,0DAgBC;AAED;;;GAGG;AAEU,QAAA,mBAAmB,GAAG,CAAC,qBAAS,EAAE,eAAM,EAAE,WAAI,EAAE,oBAAQ,EAAE,cAAK,EAAE,iBAAO,EAAE,aAAK,EAAE,iBAAO,CAAU,CAAA;AAE/G;;;GAGG;AACU,QAAA,oBAAoB,GAAG,CAAC,kCAAe,EAAE,0BAAW,EAAE,0BAAQ,EAAE,aAAK,CAAU,CAAA;AAE5F;;;GAGG;AACU,QAAA,WAAW,GAAG,CAAC,GAAG,4BAAoB,EAAE,GAAG,2BAAmB,CAAU,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validations/index.ts"],"names":[],"mappings":";;;AACA,mCAAyC;AACzC,uCAAmD;AACnD,yDAAgE;AAChE,iDAAsD;AACtD,2CAAgD;AAChD,iDAAsD;AACtD,uDAAsD;AACtD,uCAAmD;AACnD,mCAAyC;AACzC,2CAAuD;AACvD,iCAA6C;AAE7C;;GAEG;AACI,KAAK,UAAU,uBAAuB,CAC3C,UAAgC,EAChC,aAA4B;IAE5B,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;QACrF,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,YAAY,EAAE;YAChB,SAAS,IAAI,YAAY,CAAC,UAAU,CAAA;SACrC;aAAM;YACL,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;YAClE,IAAI,WAAW,KAAK,SAAS;gBAAE,OAAO,0CAA0C,IAAI,EAAE,CAAA;YACtF,SAAS,IAAI,WAAW,CAAA;SACzB;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAhBD,0DAgBC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,UAAsC;IACtE,OAAO;QACL,sDAAsD;QACtD,8CAA2B;QAC3B,oCAAqB;QACrB,oCAAkB;QAClB,uBAAe;QAEf,qDAAqD;QACrD,IAAA,qCAAyB,EAAC,UAAU,CAAC;QACrC,IAAA,2BAAoB,EAAC,UAAU,CAAC;QAChC,8BAAkB;QAClB,wBAAe;QACf,IAAA,iCAAuB,EAAC,UAAU,CAAC;QACnC,uBAAe;QACf,IAAA,iCAAuB,EAAC,UAAU,CAAC;KACpC,CAAA;AACH,CAAC;AAjBD,8CAiBC"}
@@ -1,7 +1,6 @@
1
- import { ValidateFn } from '../types';
2
1
  /**
3
2
  * Validate that all hashes used by the entity were actually IPFS hashes
4
3
  * @public
5
4
  */
6
- export declare const ipfsHashing: ValidateFn;
5
+ export declare const ipfsHashingValidateFn: import("../types").ValidateFn;
7
6
  //# sourceMappingURL=ipfs-hashing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ipfs-hashing.d.ts","sourceRoot":"","sources":["../../src/validations/ipfs-hashing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoC,UAAU,EAAE,MAAM,UAAU,CAAA;AAGvE;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,UAazB,CAAA"}
1
+ {"version":3,"file":"ipfs-hashing.d.ts","sourceRoot":"","sources":["../../src/validations/ipfs-hashing.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,qBAAqB,+BAahC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ipfsHashing = void 0;
3
+ exports.ipfsHashingValidateFn = void 0;
4
4
  const schemas_1 = require("@dcl/schemas");
5
5
  const types_1 = require("../types");
6
6
  const validations_1 = require("./validations");
@@ -8,7 +8,7 @@ const validations_1 = require("./validations");
8
8
  * Validate that all hashes used by the entity were actually IPFS hashes
9
9
  * @public
10
10
  */
11
- exports.ipfsHashing = (0, validations_1.validateAfterADR45)((components, deployment) => {
11
+ exports.ipfsHashingValidateFn = (0, validations_1.validateAfterADR45)(async function validateFn(deployment) {
12
12
  const { entity } = deployment;
13
13
  const hashesInContent = entity.content?.map(({ hash }) => hash) ?? [];
14
14
  const allHashes = [entity.id, ...hashesInContent];
@@ -1 +1 @@
1
- {"version":3,"file":"ipfs-hashing.js","sourceRoot":"","sources":["../../src/validations/ipfs-hashing.ts"],"names":[],"mappings":";;;AAAA,0CAAqC;AAErC,oCAAuE;AACvE,+CAAkD;AAElD;;;GAGG;AACU,QAAA,WAAW,GAAe,IAAA,gCAAkB,EACvD,CAAC,UAAsC,EAAE,UAAgC,EAAE,EAAE;IAC3E,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;IAE7B,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IACrE,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,eAAe,CAAC,CAAA;IAEjD,MAAM,MAAM,GAAG,SAAS;SACrB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,gBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,IAAI,8CAA8C,CAAC,CAAA;IAElF,OAAO,IAAA,kBAAU,EAAC,GAAG,MAAM,CAAC,CAAA;AAC9B,CAAC,CACF,CAAA"}
1
+ {"version":3,"file":"ipfs-hashing.js","sourceRoot":"","sources":["../../src/validations/ipfs-hashing.ts"],"names":[],"mappings":";;;AAAA,0CAAqC;AACrC,oCAA+E;AAC/E,+CAAkD;AAElD;;;GAGG;AACU,QAAA,qBAAqB,GAAG,IAAA,gCAAkB,EAAC,KAAK,UAAU,UAAU,CAC/E,UAAgC;IAEhC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;IAE7B,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IACrE,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,eAAe,CAAC,CAAA;IAEjD,MAAM,MAAM,GAAG,SAAS;SACrB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,gBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,IAAI,8CAA8C,CAAC,CAAA;IAElF,OAAO,IAAA,kBAAU,EAAC,GAAG,MAAM,CAAC,CAAA;AAC9B,CAAC,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
- import { ContentValidatorComponents, DeploymentToValidate, ValidateFn } from '../../types';
2
- export declare function wasCreatedAfterADR74(components: ContentValidatorComponents, deployment: DeploymentToValidate): Promise<import("../../types").ValidationResponse>;
3
- export declare function emoteRepresentationContent(components: ContentValidatorComponents, deployment: DeploymentToValidate): Promise<import("../../types").ValidationResponse>;
4
- export declare const emote: ValidateFn;
1
+ import { DeploymentToValidate, ValidationResponse } from '../../types';
2
+ export declare function wasCreatedAfterADR74ValidateFn(deployment: DeploymentToValidate): Promise<ValidationResponse>;
3
+ export declare function emoteRepresentationContentValidateFn(deployment: DeploymentToValidate): Promise<ValidationResponse>;
4
+ export declare const emoteValidateFn: import("../../types").ValidateFn;
5
5
  //# sourceMappingURL=emotes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"emotes.d.ts","sourceRoot":"","sources":["../../../src/validations/items/emotes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAM,UAAU,EAAoB,MAAM,aAAa,CAAA;AAIhH,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,0BAA0B,EAAE,UAAU,EAAE,oBAAoB,qDAMlH;AAED,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,0BAA0B,EACtC,UAAU,EAAE,oBAAoB,qDAgBjC;AAED,eAAO,MAAM,KAAK,EAAE,UAGnB,CAAA"}
1
+ {"version":3,"file":"emotes.d.ts","sourceRoot":"","sources":["../../../src/validations/items/emotes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAwB,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAI5F,wBAAsB,8BAA8B,CAAC,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAMlH;AAED,wBAAsB,oCAAoC,CAAC,UAAU,EAAE,oBAAoB,+BAe1F;AAED,eAAO,MAAM,eAAe,kCAG3B,CAAA"}
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.emote = exports.emoteRepresentationContent = exports.wasCreatedAfterADR74 = void 0;
3
+ exports.emoteValidateFn = exports.emoteRepresentationContentValidateFn = exports.wasCreatedAfterADR74ValidateFn = void 0;
4
4
  const schemas_1 = require("@dcl/schemas");
5
5
  const types_1 = require("../../types");
6
6
  const timestamps_1 = require("../timestamps");
7
7
  const validations_1 = require("../validations");
8
- async function wasCreatedAfterADR74(components, deployment) {
8
+ async function wasCreatedAfterADR74ValidateFn(deployment) {
9
9
  return deployment.entity.timestamp < timestamps_1.ADR_74_TIMESTAMP
10
10
  ? (0, types_1.validationFailed)(`The emote timestamp ${deployment.entity.timestamp} is before ADR 74. Emotes did not exist before ADR 74.`)
11
11
  : types_1.OK;
12
12
  }
13
- exports.wasCreatedAfterADR74 = wasCreatedAfterADR74;
14
- async function emoteRepresentationContent(components, deployment) {
13
+ exports.wasCreatedAfterADR74ValidateFn = wasCreatedAfterADR74ValidateFn;
14
+ async function emoteRepresentationContentValidateFn(deployment) {
15
15
  const { entity } = deployment;
16
16
  const metadata = entity.metadata;
17
17
  const representations = metadata?.emoteDataADR74?.representations;
@@ -28,6 +28,6 @@ async function emoteRepresentationContent(components, deployment) {
28
28
  }
29
29
  return types_1.OK;
30
30
  }
31
- exports.emoteRepresentationContent = emoteRepresentationContent;
32
- exports.emote = (0, validations_1.validateIfTypeMatches)(schemas_1.EntityType.EMOTE, (0, validations_1.validateAll)(wasCreatedAfterADR74, emoteRepresentationContent));
31
+ exports.emoteRepresentationContentValidateFn = emoteRepresentationContentValidateFn;
32
+ exports.emoteValidateFn = (0, validations_1.validateIfTypeMatches)(schemas_1.EntityType.EMOTE, (0, validations_1.validateAll)(wasCreatedAfterADR74ValidateFn, emoteRepresentationContentValidateFn));
33
33
  //# sourceMappingURL=emotes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emotes.js","sourceRoot":"","sources":["../../../src/validations/items/emotes.ts"],"names":[],"mappings":";;;AAAA,0CAAgD;AAChD,uCAAgH;AAChH,8CAAgD;AAChD,gDAAmE;AAE5D,KAAK,UAAU,oBAAoB,CAAC,UAAsC,EAAE,UAAgC;IACjH,OAAO,UAAU,CAAC,MAAM,CAAC,SAAS,GAAG,6BAAgB;QACnD,CAAC,CAAC,IAAA,wBAAgB,EACd,uBAAuB,UAAU,CAAC,MAAM,CAAC,SAAS,wDAAwD,CAC3G;QACH,CAAC,CAAC,UAAE,CAAA;AACR,CAAC;AAND,oDAMC;AAEM,KAAK,UAAU,0BAA0B,CAC9C,UAAsC,EACtC,UAAgC;IAEhC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAiB,CAAA;IACzC,MAAM,eAAe,GAAG,QAAQ,EAAE,cAAc,EAAE,eAAe,CAAA;IACjE,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAA,wBAAgB,EAAC,gCAAgC,CAAC,CAAA;IAC/G,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAA,wBAAgB,EAAC,kBAAkB,CAAC,CAAA;IAE/F,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;QAC5C,KAAK,MAAM,qBAAqB,IAAI,cAAc,CAAC,QAAQ,EAAE;YAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,qBAAqB,CAAC,EAAE;gBAC7E,OAAO,IAAA,wBAAgB,EAAC,4BAA4B,qBAAqB,mCAAmC,CAAC,CAAA;aAC9G;SACF;KACF;IACD,OAAO,UAAE,CAAA;AACX,CAAC;AAlBD,gEAkBC;AAEY,QAAA,KAAK,GAAe,IAAA,mCAAqB,EACpD,oBAAU,CAAC,KAAK,EAChB,IAAA,yBAAW,EAAC,oBAAoB,EAAE,0BAA0B,CAAC,CAC9D,CAAA"}
1
+ {"version":3,"file":"emotes.js","sourceRoot":"","sources":["../../../src/validations/items/emotes.ts"],"names":[],"mappings":";;;AAAA,0CAAgD;AAChD,uCAA4F;AAC5F,8CAAgD;AAChD,gDAAmE;AAE5D,KAAK,UAAU,8BAA8B,CAAC,UAAgC;IACnF,OAAO,UAAU,CAAC,MAAM,CAAC,SAAS,GAAG,6BAAgB;QACnD,CAAC,CAAC,IAAA,wBAAgB,EACd,uBAAuB,UAAU,CAAC,MAAM,CAAC,SAAS,wDAAwD,CAC3G;QACH,CAAC,CAAC,UAAE,CAAA;AACR,CAAC;AAND,wEAMC;AAEM,KAAK,UAAU,oCAAoC,CAAC,UAAgC;IACzF,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAiB,CAAA;IACzC,MAAM,eAAe,GAAG,QAAQ,EAAE,cAAc,EAAE,eAAe,CAAA;IACjE,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAA,wBAAgB,EAAC,gCAAgC,CAAC,CAAA;IAC/G,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAA,wBAAgB,EAAC,kBAAkB,CAAC,CAAA;IAE/F,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;QAC5C,KAAK,MAAM,qBAAqB,IAAI,cAAc,CAAC,QAAQ,EAAE;YAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,qBAAqB,CAAC,EAAE;gBAC7E,OAAO,IAAA,wBAAgB,EAAC,4BAA4B,qBAAqB,mCAAmC,CAAC,CAAA;aAC9G;SACF;KACF;IACD,OAAO,UAAE,CAAA;AACX,CAAC;AAfD,oFAeC;AAEY,QAAA,eAAe,GAAG,IAAA,mCAAqB,EAClD,oBAAU,CAAC,KAAK,EAChB,IAAA,yBAAW,EAAC,8BAA8B,EAAE,oCAAoC,CAAC,CAClF,CAAA"}
@@ -1,10 +1,10 @@
1
- import { ContentValidatorComponents, DeploymentToValidate, ValidateFn } from '../../types';
1
+ import { ContentValidatorComponents, ValidateFn } from '../../types';
2
2
  /** Validate item files size, excluding thumbnail, is less than expected */
3
- export declare function deploymentMaxSizeExcludingThumbnailIsNotExceeded(components: Pick<ContentValidatorComponents, 'externalCalls'>, deployment: DeploymentToValidate): Promise<import("../../types").ValidationResponse>;
4
- export declare function thumbnailMaxSizeIsNotExceeded(components: Pick<ContentValidatorComponents, 'externalCalls' | 'logs'>, deployment: DeploymentToValidate): Promise<import("../../types").ValidationResponse>;
3
+ export declare function createDeploymentMaxSizeExcludingThumbnailIsNotExceededValidateFn(components: Pick<ContentValidatorComponents, 'externalCalls'>): ValidateFn;
4
+ export declare function createThumbnailMaxSizeIsNotExceededValidateFn(components: Pick<ContentValidatorComponents, 'externalCalls' | 'logs'>): ValidateFn;
5
5
  /**
6
6
  * Validate that given item deployment includes the thumbnail and doesn't exceed file sizes
7
7
  * * @public
8
8
  */
9
- export declare const items: ValidateFn;
9
+ export declare function createItemsValidateFn(components: ContentValidatorComponents): ValidateFn;
10
10
  //# sourceMappingURL=items.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../src/validations/items/items.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAM,UAAU,EAAoB,MAAM,aAAa,CAAA;AAIhH,2EAA2E;AAC3E,wBAAsB,gDAAgD,CACpE,UAAU,EAAE,IAAI,CAAC,0BAA0B,EAAE,eAAe,CAAC,EAC7D,UAAU,EAAE,oBAAoB,qDAyBjC;AAID,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,IAAI,CAAC,0BAA0B,EAAE,eAAe,GAAG,MAAM,CAAC,EACtE,UAAU,EAAE,oBAAoB,qDAkCjC;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,UAGnB,CAAA"}
1
+ {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../src/validations/items/items.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,0BAA0B,EAG1B,UAAU,EAGX,MAAM,aAAa,CAAA;AAIpB,2EAA2E;AAC3E,wBAAgB,gEAAgE,CAC9E,UAAU,EAAE,IAAI,CAAC,0BAA0B,EAAE,eAAe,CAAC,GAC5D,UAAU,CAgCZ;AAKD,wBAAgB,6CAA6C,CAC3D,UAAU,EAAE,IAAI,CAAC,0BAA0B,EAAE,eAAe,GAAG,MAAM,CAAC,GACrE,UAAU,CA2CZ;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,0BAA0B,GAAG,UAAU,CAQxF"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.items = exports.thumbnailMaxSizeIsNotExceeded = exports.deploymentMaxSizeExcludingThumbnailIsNotExceeded = void 0;
6
+ exports.createItemsValidateFn = exports.createThumbnailMaxSizeIsNotExceededValidateFn = exports.createDeploymentMaxSizeExcludingThumbnailIsNotExceededValidateFn = void 0;
7
7
  const schemas_1 = require("@dcl/schemas");
8
8
  const sharp_1 = __importDefault(require("sharp"));
9
9
  const __1 = require("..");
@@ -11,68 +11,83 @@ const types_1 = require("../../types");
11
11
  const ADR51_1 = require("../ADR51");
12
12
  const validations_1 = require("../validations");
13
13
  /** Validate item files size, excluding thumbnail, is less than expected */
14
- async function deploymentMaxSizeExcludingThumbnailIsNotExceeded(components, deployment) {
15
- const entity = deployment.entity;
16
- const maxSizeInMB = ADR51_1.entityParameters[entity.type]?.maxSizeInMB;
17
- if (!maxSizeInMB)
18
- return (0, types_1.validationFailed)(`Type ${entity.type} is not supported yet`);
19
- const modelSizeInMB = maxSizeInMB - maxThumbnailSizeInB / 1024;
20
- const metadata = entity.metadata;
21
- const thumbnailHash = entity.content?.find(({ file }) => file === metadata.thumbnail)?.hash;
22
- if (!thumbnailHash)
23
- return (0, types_1.validationFailed)("Couldn't find the thumbnail hash");
24
- const totalDeploymentSizeInB = await (0, __1.calculateDeploymentSize)(deployment, components.externalCalls);
25
- if (typeof totalDeploymentSizeInB === 'string')
26
- return (0, types_1.validationFailed)(totalDeploymentSizeInB);
27
- const thumbnailSize = deployment.files.get(thumbnailHash)?.byteLength ?? 0;
28
- const modelSize = totalDeploymentSizeInB - thumbnailSize;
29
- if (modelSize > modelSizeInMB * 1024 * 1024)
30
- return (0, types_1.validationFailed)(`The deployment is too big. The maximum allowed size for ${entity.type} model files is ${modelSizeInMB} MB. You can upload up to ${modelSizeInMB * 1024 * 1024} bytes but you tried to upload ${modelSize}.`);
31
- return types_1.OK;
14
+ function createDeploymentMaxSizeExcludingThumbnailIsNotExceededValidateFn(components) {
15
+ async function validateFn(deployment) {
16
+ const entity = deployment.entity;
17
+ const maxSizeInMB = ADR51_1.entityParameters[entity.type]?.maxSizeInMB;
18
+ if (!maxSizeInMB) {
19
+ return (0, types_1.validationFailed)(`Type ${entity.type} is not supported yet`);
20
+ }
21
+ const modelSizeInMB = maxSizeInMB - maxThumbnailSizeInB / 1024;
22
+ const metadata = entity.metadata;
23
+ const thumbnailHash = entity.content?.find(({ file }) => file === metadata.thumbnail)?.hash;
24
+ if (!thumbnailHash) {
25
+ return (0, types_1.validationFailed)("Couldn't find the thumbnail hash");
26
+ }
27
+ const totalDeploymentSizeInB = await (0, __1.calculateDeploymentSize)(deployment, components.externalCalls);
28
+ if (typeof totalDeploymentSizeInB === 'string')
29
+ return (0, types_1.validationFailed)(totalDeploymentSizeInB);
30
+ const thumbnailSize = deployment.files.get(thumbnailHash)?.byteLength ?? 0;
31
+ const modelSize = totalDeploymentSizeInB - thumbnailSize;
32
+ if (modelSize > modelSizeInMB * 1024 * 1024)
33
+ return (0, types_1.validationFailed)(`The deployment is too big. The maximum allowed size for ${entity.type} model files is ${modelSizeInMB} MB. You can upload up to ${modelSizeInMB * 1024 * 1024} bytes but you tried to upload ${modelSize}.`);
34
+ return types_1.OK;
35
+ }
36
+ return (0, validations_1.validateAfterADR45)(validateFn);
32
37
  }
33
- exports.deploymentMaxSizeExcludingThumbnailIsNotExceeded = deploymentMaxSizeExcludingThumbnailIsNotExceeded;
38
+ exports.createDeploymentMaxSizeExcludingThumbnailIsNotExceededValidateFn = createDeploymentMaxSizeExcludingThumbnailIsNotExceededValidateFn;
34
39
  /** Validate that given item deployment includes a thumbnail with valid format and size */
35
40
  const maxThumbnailSizeInB = 1024;
36
- async function thumbnailMaxSizeIsNotExceeded(components, deployment) {
41
+ function createThumbnailMaxSizeIsNotExceededValidateFn(components) {
37
42
  const { externalCalls, logs } = components;
38
- const logger = logs.getLogger(`${deployment.entity.type} validator`);
39
- // read thumbnail field from metadata
40
- const metadata = deployment.entity.metadata;
41
- const hash = deployment.entity.content?.find(({ file }) => file === metadata.thumbnail)?.hash;
42
- if (!hash)
43
- return (0, types_1.validationFailed)(`Couldn't find hash for thumbnail file with name: ${metadata.thumbnail}`);
44
- const errors = [];
45
- // check size
46
- const thumbnailBuffer = deployment.files.get(hash);
47
- if (!thumbnailBuffer) {
48
- const isHashStored = (await externalCalls.isContentStoredAlready([hash])).get(hash) ?? false;
49
- if (!isHashStored) {
50
- return (0, types_1.validationFailed)(`Couldn't find thumbnail file with hash: ${hash}`);
43
+ const logger = logs.getLogger('thumbnail size validator');
44
+ async function validateFn(deployment) {
45
+ // read thumbnail field from metadata
46
+ const metadata = deployment.entity.metadata;
47
+ const hash = deployment.entity.content?.find(({ file }) => file === metadata.thumbnail)?.hash;
48
+ if (!hash) {
49
+ return (0, types_1.validationFailed)(`Couldn't find hash for thumbnail file with name: ${metadata.thumbnail}`);
51
50
  }
52
- // otherwise, thumbnail was already uploaded and won't be validated again
53
- logger.debug(`Thumbnail file with hash: ${hash} is not in the deployment, but it is already stored`);
54
- return types_1.OK;
55
- }
56
- try {
57
- const { width, height, format } = await (0, sharp_1.default)(thumbnailBuffer).metadata();
58
- if (!format || format !== 'png')
59
- errors.push(`Invalid or unknown image format. Only 'PNG' format is accepted.`);
60
- if (!width || !height) {
61
- errors.push(`Couldn't validate thumbnail size for file ${metadata.thumbnail}`);
51
+ const errors = [];
52
+ // check size
53
+ const thumbnailBuffer = deployment.files.get(hash);
54
+ if (!thumbnailBuffer) {
55
+ const isHashStored = (await externalCalls.isContentStoredAlready([hash])).get(hash) ?? false;
56
+ if (!isHashStored) {
57
+ return (0, types_1.validationFailed)(`Couldn't find thumbnail file with hash: ${hash}`);
58
+ }
59
+ // otherwise, thumbnail was already uploaded and won't be validated again
60
+ logger.debug(`Thumbnail file with hash: ${hash} is not in the deployment, but it is already stored`, {
61
+ type: deployment.entity.type
62
+ });
63
+ return types_1.OK;
62
64
  }
63
- else if (width > maxThumbnailSizeInB || height > maxThumbnailSizeInB) {
64
- errors.push(`Invalid thumbnail image size (width = ${width} / height = ${height})`);
65
+ try {
66
+ const { width, height, format } = await (0, sharp_1.default)(thumbnailBuffer).metadata();
67
+ if (!format || format !== 'png') {
68
+ errors.push(`Invalid or unknown image format. Only 'PNG' format is accepted.`);
69
+ }
70
+ if (!width || !height) {
71
+ errors.push(`Couldn't validate thumbnail size for file ${metadata.thumbnail}`);
72
+ }
73
+ else if (width > maxThumbnailSizeInB || height > maxThumbnailSizeInB) {
74
+ errors.push(`Invalid thumbnail image size (width = ${width} / height = ${height})`);
75
+ }
65
76
  }
77
+ catch (e) {
78
+ errors.push(`Couldn't parse thumbnail, please check image format.`);
79
+ }
80
+ return errors.length > 0 ? (0, types_1.validationFailed)(...errors) : types_1.OK;
66
81
  }
67
- catch (e) {
68
- errors.push(`Couldn't parse thumbnail, please check image format.`);
69
- }
70
- return errors.length > 0 ? (0, types_1.validationFailed)(...errors) : types_1.OK;
82
+ return (0, validations_1.validateAfterADR45)(validateFn);
71
83
  }
72
- exports.thumbnailMaxSizeIsNotExceeded = thumbnailMaxSizeIsNotExceeded;
84
+ exports.createThumbnailMaxSizeIsNotExceededValidateFn = createThumbnailMaxSizeIsNotExceededValidateFn;
73
85
  /**
74
86
  * Validate that given item deployment includes the thumbnail and doesn't exceed file sizes
75
87
  * * @public
76
88
  */
77
- exports.items = (0, validations_1.validateIfConditionMet)((deployment) => deployment.entity.type === schemas_1.EntityType.WEARABLE || deployment.entity.type === schemas_1.EntityType.EMOTE, (0, validations_1.validateAfterADR45)((0, validations_1.validateAll)(thumbnailMaxSizeIsNotExceeded, deploymentMaxSizeExcludingThumbnailIsNotExceeded)));
89
+ function createItemsValidateFn(components) {
90
+ return (0, validations_1.validateIfConditionMet)((deployment) => deployment.entity.type === schemas_1.EntityType.WEARABLE || deployment.entity.type === schemas_1.EntityType.EMOTE, (0, validations_1.validateAll)(createThumbnailMaxSizeIsNotExceededValidateFn(components), createDeploymentMaxSizeExcludingThumbnailIsNotExceededValidateFn(components)));
91
+ }
92
+ exports.createItemsValidateFn = createItemsValidateFn;
78
93
  //# sourceMappingURL=items.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"items.js","sourceRoot":"","sources":["../../../src/validations/items/items.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"items.js","sourceRoot":"","sources":["../../../src/validations/items/items.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { DeploymentToValidate } from '../..';
2
- import { ContentValidatorComponents, ValidateFn } from '../../types';
2
+ import { ValidationResponse } from '../../types';
3
3
  /** Validate wearable representations are referencing valid content */
4
- export declare function wearableRepresentationContent(components: ContentValidatorComponents, deployment: DeploymentToValidate): Promise<import("../..").ValidationResponse>;
4
+ export declare function wearableRepresentationContentValidateFn(deployment: DeploymentToValidate): Promise<ValidationResponse>;
5
5
  /**
6
6
  * Validate that given wearable deployment includes the thumbnail and doesn't exceed file sizes
7
7
  * * @public
8
8
  */
9
- export declare const wearable: ValidateFn;
9
+ export declare const wearableValidateFn: import("../..").ValidateFn;
10
10
  //# sourceMappingURL=wearables.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wearables.d.ts","sourceRoot":"","sources":["../../../src/validations/items/wearables.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,0BAA0B,EAAM,UAAU,EAAoB,MAAM,aAAa,CAAA;AAG1F,sEAAsE;AACtE,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,0BAA0B,EACtC,UAAU,EAAE,oBAAoB,+CAgBjC;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,UAAsF,CAAA"}
1
+ {"version":3,"file":"wearables.d.ts","sourceRoot":"","sources":["../../../src/validations/items/wearables.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAwB,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAGtE,sEAAsE;AACtE,wBAAsB,uCAAuC,CAC3D,UAAU,EAAE,oBAAoB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAe7B;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,4BAAsF,CAAA"}