@dcl/content-validator 4.2.4-20230125194827.commit-f90482b → 4.2.4-4135566596.commit-6ae9fb8

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 (107) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +5 -5
  4. package/dist/index.js.map +1 -1
  5. package/dist/the-graph-client/the-graph-client.d.ts +1 -5
  6. package/dist/the-graph-client/the-graph-client.d.ts.map +1 -1
  7. package/dist/the-graph-client/the-graph-client.js +83 -49
  8. package/dist/the-graph-client/the-graph-client.js.map +1 -1
  9. package/dist/types.d.ts +22 -45
  10. package/dist/types.d.ts.map +1 -1
  11. package/dist/types.js.map +1 -1
  12. package/dist/validations/ADR45.d.ts +2 -2
  13. package/dist/validations/ADR45.d.ts.map +1 -1
  14. package/dist/validations/ADR45.js +7 -8
  15. package/dist/validations/ADR45.js.map +1 -1
  16. package/dist/validations/ADR51.d.ts +1 -1
  17. package/dist/validations/ADR51.d.ts.map +1 -1
  18. package/dist/validations/access-checker/access.d.ts +2 -2
  19. package/dist/validations/access-checker/access.d.ts.map +1 -1
  20. package/dist/validations/access-checker/access.js +15 -17
  21. package/dist/validations/access-checker/access.js.map +1 -1
  22. package/dist/validations/access-checker/emotes.d.ts +2 -2
  23. package/dist/validations/access-checker/emotes.d.ts.map +1 -1
  24. package/dist/validations/access-checker/emotes.js +7 -8
  25. package/dist/validations/access-checker/emotes.js.map +1 -1
  26. package/dist/validations/access-checker/items/collection-asset.d.ts +2 -2
  27. package/dist/validations/access-checker/items/collection-asset.d.ts.map +1 -1
  28. package/dist/validations/access-checker/items/collection-asset.js +106 -43
  29. package/dist/validations/access-checker/items/collection-asset.js.map +1 -1
  30. package/dist/validations/access-checker/items/items.d.ts +4 -6
  31. package/dist/validations/access-checker/items/items.d.ts.map +1 -1
  32. package/dist/validations/access-checker/items/items.js +23 -24
  33. package/dist/validations/access-checker/items/items.js.map +1 -1
  34. package/dist/validations/access-checker/items/third-party-asset.d.ts.map +1 -1
  35. package/dist/validations/access-checker/items/third-party-asset.js +80 -21
  36. package/dist/validations/access-checker/items/third-party-asset.js.map +1 -1
  37. package/dist/validations/access-checker/profiles.d.ts +6 -6
  38. package/dist/validations/access-checker/profiles.d.ts.map +1 -1
  39. package/dist/validations/access-checker/profiles.js +59 -61
  40. package/dist/validations/access-checker/profiles.js.map +1 -1
  41. package/dist/validations/access-checker/scenes.d.ts +2 -2
  42. package/dist/validations/access-checker/scenes.d.ts.map +1 -1
  43. package/dist/validations/access-checker/scenes.js +243 -34
  44. package/dist/validations/access-checker/scenes.js.map +1 -1
  45. package/dist/validations/access-checker/stores.d.ts +2 -2
  46. package/dist/validations/access-checker/stores.d.ts.map +1 -1
  47. package/dist/validations/access-checker/stores.js +14 -15
  48. package/dist/validations/access-checker/stores.js.map +1 -1
  49. package/dist/validations/access-checker/wearables.d.ts +2 -2
  50. package/dist/validations/access-checker/wearables.d.ts.map +1 -1
  51. package/dist/validations/access-checker/wearables.js +9 -10
  52. package/dist/validations/access-checker/wearables.js.map +1 -1
  53. package/dist/validations/content.d.ts +6 -6
  54. package/dist/validations/content.d.ts.map +1 -1
  55. package/dist/validations/content.js +44 -50
  56. package/dist/validations/content.js.map +1 -1
  57. package/dist/validations/entity-structure.d.ts +2 -2
  58. package/dist/validations/entity-structure.d.ts.map +1 -1
  59. package/dist/validations/entity-structure.js +10 -11
  60. package/dist/validations/entity-structure.js.map +1 -1
  61. package/dist/validations/index.d.ts +9 -4
  62. package/dist/validations/index.d.ts.map +1 -1
  63. package/dist/validations/index.js +7 -7
  64. package/dist/validations/index.js.map +1 -1
  65. package/dist/validations/ipfs-hashing.d.ts +2 -2
  66. package/dist/validations/ipfs-hashing.d.ts.map +1 -1
  67. package/dist/validations/ipfs-hashing.js +8 -10
  68. package/dist/validations/ipfs-hashing.js.map +1 -1
  69. package/dist/validations/items/emotes.d.ts +4 -4
  70. package/dist/validations/items/emotes.d.ts.map +1 -1
  71. package/dist/validations/items/emotes.js +22 -24
  72. package/dist/validations/items/emotes.js.map +1 -1
  73. package/dist/validations/items/items.d.ts +4 -4
  74. package/dist/validations/items/items.d.ts.map +1 -1
  75. package/dist/validations/items/items.js +54 -55
  76. package/dist/validations/items/items.js.map +1 -1
  77. package/dist/validations/items/wearables.d.ts +4 -3
  78. package/dist/validations/items/wearables.d.ts.map +1 -1
  79. package/dist/validations/items/wearables.js +16 -17
  80. package/dist/validations/items/wearables.js.map +1 -1
  81. package/dist/validations/metadata-schema.d.ts +2 -2
  82. package/dist/validations/metadata-schema.d.ts.map +1 -1
  83. package/dist/validations/metadata-schema.js +17 -21
  84. package/dist/validations/metadata-schema.js.map +1 -1
  85. package/dist/validations/profile.d.ts +6 -6
  86. package/dist/validations/profile.d.ts.map +1 -1
  87. package/dist/validations/profile.js +55 -63
  88. package/dist/validations/profile.js.map +1 -1
  89. package/dist/validations/scene.d.ts +3 -3
  90. package/dist/validations/scene.d.ts.map +1 -1
  91. package/dist/validations/scene.js +5 -7
  92. package/dist/validations/scene.js.map +1 -1
  93. package/dist/validations/signature.d.ts +2 -2
  94. package/dist/validations/signature.d.ts.map +1 -1
  95. package/dist/validations/signature.js +6 -8
  96. package/dist/validations/signature.js.map +1 -1
  97. package/dist/validations/size.d.ts +2 -2
  98. package/dist/validations/size.d.ts.map +1 -1
  99. package/dist/validations/size.js +28 -29
  100. package/dist/validations/size.js.map +1 -1
  101. package/dist/validations/validations.d.ts +9 -9
  102. package/dist/validations/validations.d.ts.map +1 -1
  103. package/dist/validations/validations.js +34 -38
  104. package/dist/validations/validations.js.map +1 -1
  105. package/package.json +5 -10
  106. package/dist/content-validator.api.json +0 -1669
  107. package/dist/tsdoc-metadata.json +0 -11
@@ -11,69 +11,68 @@ 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
- exports.deploymentMaxSizeExcludingThumbnailIsNotExceeded = {
15
- validate: async ({ externalCalls }, 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
- const modelSizeInMB = maxSizeInMB - maxThumbnailSizeInB / 1024;
21
- const metadata = entity.metadata;
22
- const thumbnailHash = entity.content?.find(({ file }) => file === metadata.thumbnail)?.hash;
23
- if (!thumbnailHash)
24
- return (0, types_1.validationFailed)("Couldn't find the thumbnail hash");
25
- const totalDeploymentSizeInB = await (0, __1.calculateDeploymentSize)(deployment, externalCalls);
26
- if (typeof totalDeploymentSizeInB === 'string')
27
- return (0, types_1.validationFailed)(totalDeploymentSizeInB);
28
- const thumbnailSize = deployment.files.get(thumbnailHash)?.byteLength ?? 0;
29
- const modelSize = totalDeploymentSizeInB - thumbnailSize;
30
- if (modelSize > modelSizeInMB * 1024 * 1024)
31
- 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}.`);
32
- return types_1.OK;
33
- }
34
- };
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;
32
+ }
33
+ exports.deploymentMaxSizeExcludingThumbnailIsNotExceeded = deploymentMaxSizeExcludingThumbnailIsNotExceeded;
35
34
  /** Validate that given item deployment includes a thumbnail with valid format and size */
36
35
  const maxThumbnailSizeInB = 1024;
37
- exports.thumbnailMaxSizeIsNotExceeded = {
38
- validate: async ({ externalCalls, logs }, deployment) => {
39
- const logger = logs.getLogger(`${deployment.entity.type} validator`);
40
- // read thumbnail field from metadata
41
- const metadata = deployment.entity.metadata;
42
- const hash = deployment.entity.content?.find(({ file }) => file === metadata.thumbnail)?.hash;
43
- if (!hash)
44
- return (0, types_1.validationFailed)(`Couldn't find hash for thumbnail file with name: ${metadata.thumbnail}`);
45
- const errors = [];
46
- // check size
47
- const thumbnailBuffer = deployment.files.get(hash);
48
- if (!thumbnailBuffer) {
49
- const isHashStored = (await externalCalls.isContentStoredAlready([hash])).get(hash) ?? false;
50
- if (!isHashStored) {
51
- return (0, types_1.validationFailed)(`Couldn't find thumbnail file with hash: ${hash}`);
52
- }
53
- // otherwise, thumbnail was already uploaded and won't be validated again
54
- logger.debug(`Thumbnail file with hash: ${hash} is not in the deployment, but it is already stored`);
55
- return types_1.OK;
36
+ async function thumbnailMaxSizeIsNotExceeded(components, deployment) {
37
+ 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}`);
56
51
  }
57
- try {
58
- const { width, height, format } = await (0, sharp_1.default)(thumbnailBuffer).metadata();
59
- if (!format || format !== 'png')
60
- errors.push(`Invalid or unknown image format. Only 'PNG' format is accepted.`);
61
- if (!width || !height) {
62
- errors.push(`Couldn't validate thumbnail size for file ${metadata.thumbnail}`);
63
- }
64
- else if (width > maxThumbnailSizeInB || height > maxThumbnailSizeInB) {
65
- errors.push(`Invalid thumbnail image size (width = ${width} / height = ${height})`);
66
- }
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}`);
67
62
  }
68
- catch (e) {
69
- errors.push(`Couldn't parse thumbnail, please check image format.`);
63
+ else if (width > maxThumbnailSizeInB || height > maxThumbnailSizeInB) {
64
+ errors.push(`Invalid thumbnail image size (width = ${width} / height = ${height})`);
70
65
  }
71
- return errors.length > 0 ? (0, types_1.validationFailed)(...errors) : types_1.OK;
72
66
  }
73
- };
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;
71
+ }
72
+ exports.thumbnailMaxSizeIsNotExceeded = thumbnailMaxSizeIsNotExceeded;
74
73
  /**
75
74
  * Validate that given item deployment includes the thumbnail and doesn't exceed file sizes
76
75
  * * @public
77
76
  */
78
- exports.items = (0, validations_1.conditionalValidation)((deployment) => deployment.entity.type === schemas_1.EntityType.WEARABLE || deployment.entity.type === schemas_1.EntityType.EMOTE, (0, validations_1.validationAfterADR45)((0, validations_1.validationGroup)(exports.thumbnailMaxSizeIsNotExceeded, exports.deploymentMaxSizeExcludingThumbnailIsNotExceeded)));
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)));
79
78
  //# 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,9 +1,10 @@
1
- import { Validation } from '../../types';
1
+ import { DeploymentToValidate } from '../..';
2
+ import { ContentValidatorComponents, ValidateFn } from '../../types';
2
3
  /** Validate wearable representations are referencing valid content */
3
- export declare const wearableRepresentationContent: Validation;
4
+ export declare function wearableRepresentationContent(components: ContentValidatorComponents, deployment: DeploymentToValidate): Promise<import("../..").ValidationResponse>;
4
5
  /**
5
6
  * Validate that given wearable deployment includes the thumbnail and doesn't exceed file sizes
6
7
  * * @public
7
8
  */
8
- export declare const wearable: Validation;
9
+ export declare const wearable: ValidateFn;
9
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,EAAkC,UAAU,EAAoB,MAAM,aAAa,CAAA;AAG1F,sEAAsE;AACtE,eAAO,MAAM,6BAA6B,EAAE,UAiB3C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,UAAkF,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,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"}
@@ -5,28 +5,27 @@ const schemas_1 = require("@dcl/schemas");
5
5
  const types_1 = require("../../types");
6
6
  const validations_1 = require("../validations");
7
7
  /** Validate wearable representations are referencing valid content */
8
- exports.wearableRepresentationContent = {
9
- validate: async (components, deployment) => {
10
- const { entity } = deployment;
11
- const wearableMetadata = entity.metadata;
12
- const representations = wearableMetadata?.data?.representations;
13
- if (!representations || representations.length === 0)
14
- return (0, types_1.validationFailed)('No wearable representations found');
15
- if (!entity.content || entity.content.length === 0)
16
- return (0, types_1.validationFailed)('No content found');
17
- for (const representation of representations) {
18
- for (const representationContent of representation.contents) {
19
- if (!entity.content.find((content) => content.file === representationContent)) {
20
- return (0, types_1.validationFailed)(`Representation content: '${representationContent}' is not one of the content files`);
21
- }
8
+ async function wearableRepresentationContent(components, deployment) {
9
+ const { entity } = deployment;
10
+ const wearableMetadata = entity.metadata;
11
+ const representations = wearableMetadata?.data?.representations;
12
+ if (!representations || representations.length === 0)
13
+ return (0, types_1.validationFailed)('No wearable representations found');
14
+ if (!entity.content || entity.content.length === 0)
15
+ return (0, types_1.validationFailed)('No content found');
16
+ for (const representation of representations) {
17
+ for (const representationContent of representation.contents) {
18
+ if (!entity.content.find((content) => content.file === representationContent)) {
19
+ return (0, types_1.validationFailed)(`Representation content: '${representationContent}' is not one of the content files`);
22
20
  }
23
21
  }
24
- return types_1.OK;
25
22
  }
26
- };
23
+ return types_1.OK;
24
+ }
25
+ exports.wearableRepresentationContent = wearableRepresentationContent;
27
26
  /**
28
27
  * Validate that given wearable deployment includes the thumbnail and doesn't exceed file sizes
29
28
  * * @public
30
29
  */
31
- exports.wearable = (0, validations_1.validationForType)(schemas_1.EntityType.WEARABLE, exports.wearableRepresentationContent);
30
+ exports.wearable = (0, validations_1.validateIfTypeMatches)(schemas_1.EntityType.WEARABLE, wearableRepresentationContent);
32
31
  //# sourceMappingURL=wearables.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wearables.js","sourceRoot":"","sources":["../../../src/validations/items/wearables.ts"],"names":[],"mappings":";;;AAAA,0CAAmD;AACnD,uCAA0F;AAC1F,gDAAkD;AAElD,sEAAsE;AACzD,QAAA,6BAA6B,GAAe;IACvD,QAAQ,EAAE,KAAK,EAAE,UAAsC,EAAE,UAAU,EAAE,EAAE;QACrE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;QAC7B,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAoB,CAAA;QACpD,MAAM,eAAe,GAAG,gBAAgB,EAAE,IAAI,EAAE,eAAe,CAAA;QAC/D,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAA,wBAAgB,EAAC,mCAAmC,CAAC,CAAA;QAClH,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAA,wBAAgB,EAAC,kBAAkB,CAAC,CAAA;QAE/F,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;YAC5C,KAAK,MAAM,qBAAqB,IAAI,cAAc,CAAC,QAAQ,EAAE;gBAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,qBAAqB,CAAC,EAAE;oBAC7E,OAAO,IAAA,wBAAgB,EAAC,4BAA4B,qBAAqB,mCAAmC,CAAC,CAAA;iBAC9G;aACF;SACF;QACD,OAAO,UAAE,CAAA;IACX,CAAC;CACF,CAAA;AAED;;;GAGG;AACU,QAAA,QAAQ,GAAe,IAAA,+BAAiB,EAAC,oBAAU,CAAC,QAAQ,EAAE,qCAA6B,CAAC,CAAA"}
1
+ {"version":3,"file":"wearables.js","sourceRoot":"","sources":["../../../src/validations/items/wearables.ts"],"names":[],"mappings":";;;AAAA,0CAAmD;AAEnD,uCAA0F;AAC1F,gDAAsD;AAEtD,sEAAsE;AAC/D,KAAK,UAAU,6BAA6B,CACjD,UAAsC,EACtC,UAAgC;IAEhC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;IAC7B,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAoB,CAAA;IACpD,MAAM,eAAe,GAAG,gBAAgB,EAAE,IAAI,EAAE,eAAe,CAAA;IAC/D,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAA,wBAAgB,EAAC,mCAAmC,CAAC,CAAA;IAClH,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,sEAkBC;AAED;;;GAGG;AACU,QAAA,QAAQ,GAAe,IAAA,mCAAqB,EAAC,oBAAU,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAA"}
@@ -1,3 +1,3 @@
1
- import { Validation } from '../types';
2
- export declare const metadata: Validation;
1
+ import { ValidateFn } from '../types';
2
+ export declare const metadata: ValidateFn;
3
3
  //# sourceMappingURL=metadata-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-schema.d.ts","sourceRoot":"","sources":["../../src/validations/metadata-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAwD,UAAU,EAAoB,MAAM,UAAU,CAAA;AA2D7G,eAAO,MAAM,QAAQ,EAAE,UAGtB,CAAA"}
1
+ {"version":3,"file":"metadata-schema.d.ts","sourceRoot":"","sources":["../../src/validations/metadata-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAwD,UAAU,EAAoB,MAAM,UAAU,CAAA;AA0D7G,eAAO,MAAM,QAAQ,EAAE,UAGtB,CAAA"}
@@ -10,17 +10,15 @@ const validations_1 = require("./validations");
10
10
  * Validate entities metadata against its corresponding schema
11
11
  * @public
12
12
  */
13
- const metadataSchemaIsValid = {
14
- async validate(components, deployment) {
15
- const { type, metadata } = deployment.entity;
16
- const validator = ADR51_1.entityParameters[type].validate;
17
- if (validator(metadata)) {
18
- return types_1.OK;
19
- }
20
- const errors = validator.errors?.map(($) => '' + $.message) || [];
21
- return (0, types_1.validationFailed)(`The metadata for this entity type (${deployment.entity.type}) is not valid.`, ...errors);
13
+ function metadataSchemaIsValid(components, deployment) {
14
+ const { type, metadata } = deployment.entity;
15
+ const validator = ADR51_1.entityParameters[type].validate;
16
+ if (validator(metadata)) {
17
+ return types_1.OK;
22
18
  }
23
- };
19
+ const errors = validator.errors?.map(($) => '' + $.message) || [];
20
+ return (0, types_1.validationFailed)(`The metadata for this entity type (${deployment.entity.type}) is not valid.`, ...errors);
21
+ }
24
22
  /**
25
23
  * This map contains one ADR timeline per entity type. In a timeline, each element has
26
24
  * a number and a timestamp. The number corresponds to the number of an ADR and the timestamp
@@ -40,15 +38,13 @@ const ADRMetadataVersionTimelines = {
40
38
  /**
41
39
  * This validation is being ran only for emotes currently
42
40
  */
43
- const metadataVersionIsCorrectForTimestamp = {
44
- validate(components, deployment) {
45
- const entity = deployment.entity;
46
- const adrNumber = ADRMetadataVersionTimelines[entity.type].find((v) => v.timestamp < entity.timestamp)?.number;
47
- const expectedDataField = `${entity.type}DataADR${adrNumber}`;
48
- return `${expectedDataField}` in deployment.entity.metadata
49
- ? types_1.OK
50
- : (0, types_1.validationFailed)(`'emoteData' field version is incorrect. It must be: '${expectedDataField} but it is: ${deployment.entity.metadata} `);
51
- }
52
- };
53
- exports.metadata = (0, validations_1.validationGroup)((0, validations_1.validationAfterADR45)(metadataSchemaIsValid), (0, validations_1.validationAfterADR74)((0, validations_1.validationForType)(schemas_1.EntityType.EMOTE, metadataVersionIsCorrectForTimestamp)));
41
+ function metadataVersionIsCorrectForTimestamp(components, deployment) {
42
+ const entity = deployment.entity;
43
+ const adrNumber = ADRMetadataVersionTimelines[entity.type].find((v) => v.timestamp < entity.timestamp)?.number;
44
+ const expectedDataField = `${entity.type}DataADR${adrNumber}`;
45
+ return `${expectedDataField}` in deployment.entity.metadata
46
+ ? types_1.OK
47
+ : (0, types_1.validationFailed)(`'emoteData' field version is incorrect. It must be: '${expectedDataField} but it is: ${deployment.entity.metadata} `);
48
+ }
49
+ exports.metadata = (0, validations_1.validateAll)((0, validations_1.validateAfterADR45)(metadataSchemaIsValid), (0, validations_1.validateAfterADR74)((0, validations_1.validateIfTypeMatches)(schemas_1.EntityType.EMOTE, metadataVersionIsCorrectForTimestamp)));
54
50
  //# sourceMappingURL=metadata-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-schema.js","sourceRoot":"","sources":["../../src/validations/metadata-schema.ts"],"names":[],"mappings":";;;AAAA,0CAAyC;AACzC,oCAA6G;AAC7G,mCAA0C;AAC1C,6CAA+C;AAC/C,+CAA8G;AAE9G;;;GAGG;AACH,MAAM,qBAAqB,GAAe;IACxC,KAAK,CAAC,QAAQ,CAAC,UAAsC,EAAE,UAAU;QAC/D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,MAAM,CAAA;QAC5C,MAAM,SAAS,GAAG,wBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAA;QACjD,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE;YACvB,OAAO,UAAE,CAAA;SACV;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QACjE,OAAO,IAAA,wBAAgB,EAAC,sCAAsC,UAAU,CAAC,MAAM,CAAC,IAAI,iBAAiB,EAAE,GAAG,MAAM,CAAC,CAAA;IACnH,CAAC;CACF,CAAA;AAOD;;;;;;;;GAQG;AACH,MAAM,2BAA2B,GAA8B;IAC7D,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,6BAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;IAClG,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE;CACV,CAAA;AAED;;GAEG;AACH,MAAM,oCAAoC,GAAe;IACvD,QAAQ,CAAC,UAAsC,EAAE,UAAgC;QAC/E,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QAChC,MAAM,SAAS,GAAG,2BAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;QAC9G,MAAM,iBAAiB,GAAG,GAAG,MAAM,CAAC,IAAI,UAAU,SAAS,EAAE,CAAA;QAC7D,OAAO,GAAG,iBAAiB,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ;YACzD,CAAC,CAAC,UAAE;YACJ,CAAC,CAAC,IAAA,wBAAgB,EACd,wDAAwD,iBAAiB,eAAe,UAAU,CAAC,MAAM,CAAC,QAAQ,GAAG,CACtH,CAAA;IACP,CAAC;CACF,CAAA;AAEY,QAAA,QAAQ,GAAe,IAAA,6BAAe,EACjD,IAAA,kCAAoB,EAAC,qBAAqB,CAAC,EAC3C,IAAA,kCAAoB,EAAC,IAAA,+BAAiB,EAAC,oBAAU,CAAC,KAAK,EAAE,oCAAoC,CAAC,CAAC,CAChG,CAAA"}
1
+ {"version":3,"file":"metadata-schema.js","sourceRoot":"","sources":["../../src/validations/metadata-schema.ts"],"names":[],"mappings":";;;AAAA,0CAAyC;AACzC,oCAA6G;AAC7G,mCAA0C;AAC1C,6CAA+C;AAC/C,+CAA0G;AAE1G;;;GAGG;AACH,SAAS,qBAAqB,CAAC,UAAsC,EAAE,UAAgC;IACrG,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,MAAM,CAAA;IAC5C,MAAM,SAAS,GAAG,wBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAA;IACjD,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE;QACvB,OAAO,UAAE,CAAA;KACV;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IACjE,OAAO,IAAA,wBAAgB,EAAC,sCAAsC,UAAU,CAAC,MAAM,CAAC,IAAI,iBAAiB,EAAE,GAAG,MAAM,CAAC,CAAA;AACnH,CAAC;AAOD;;;;;;;;GAQG;AACH,MAAM,2BAA2B,GAA8B;IAC7D,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,6BAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;IAClG,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE;CACV,CAAA;AAED;;GAEG;AACH,SAAS,oCAAoC,CAC3C,UAAsC,EACtC,UAAgC;IAEhC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IAChC,MAAM,SAAS,GAAG,2BAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC9G,MAAM,iBAAiB,GAAG,GAAG,MAAM,CAAC,IAAI,UAAU,SAAS,EAAE,CAAA;IAC7D,OAAO,GAAG,iBAAiB,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ;QACzD,CAAC,CAAC,UAAE;QACJ,CAAC,CAAC,IAAA,wBAAgB,EACd,wDAAwD,iBAAiB,eAAe,UAAU,CAAC,MAAM,CAAC,QAAQ,GAAG,CACtH,CAAA;AACP,CAAC;AAEY,QAAA,QAAQ,GAAe,IAAA,yBAAW,EAC7C,IAAA,gCAAkB,EAAC,qBAAqB,CAAC,EACzC,IAAA,gCAAkB,EAAC,IAAA,mCAAqB,EAAC,oBAAU,CAAC,KAAK,EAAE,oCAAoC,CAAC,CAAC,CAClG,CAAA"}
@@ -1,12 +1,12 @@
1
- import { Validation } from '../types';
1
+ import { ValidateFn } from '../types';
2
2
  export declare const isOldEmote: (wearable: string) => boolean;
3
- export declare const faceThumbnail: Validation;
4
- export declare const wearableUrns: Validation;
5
- export declare const emoteUrns: Validation;
6
- export declare const profileMustHaveEmotes: Validation;
3
+ export declare const faceThumbnail: ValidateFn;
4
+ export declare const wearableUrns: ValidateFn;
5
+ export declare const emoteUrns: ValidateFn;
6
+ export declare const profileMustHaveEmotes: ValidateFn;
7
7
  /**
8
8
  * Validate that given profile deployment includes the face256 file with the correct size
9
9
  * * @public
10
10
  */
11
- export declare const profile: Validation;
11
+ export declare const profile: ValidateFn;
12
12
  //# sourceMappingURL=profile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/validations/profile.ts"],"names":[],"mappings":"AAGA,OAAO,EAA4B,UAAU,EAAoB,MAAM,UAAU,CAAA;AAYjF,eAAO,MAAM,UAAU,aAAc,MAAM,KAAG,OAAqC,CAAA;AAEnF,eAAO,MAAM,aAAa,EAAE,UA8B1B,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,UAgBzB,CAAA;AAEF,eAAO,MAAM,SAAS,EAAE,UAmBtB,CAAA;AAYF,eAAO,MAAM,qBAAqB,EAAE,UAOlC,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,UAGrB,CAAA"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/validations/profile.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwD,UAAU,EAAoB,MAAM,UAAU,CAAA;AAY7G,eAAO,MAAM,UAAU,aAAc,MAAM,KAAG,OAAqC,CAAA;AAEnF,eAAO,MAAM,aAAa,EAAE,UA8B3B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,UAgB1B,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,UAmBvB,CAAA;AAYD,eAAO,MAAM,qBAAqB,EAAE,UAOnC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,UAGrB,CAAA"}
@@ -13,73 +13,67 @@ const validations_1 = require("./validations");
13
13
  const defaultThumbnailSize = 256;
14
14
  const isOldEmote = (wearable) => /^[a-z]+$/i.test(wearable);
15
15
  exports.isOldEmote = isOldEmote;
16
- exports.faceThumbnail = (0, validations_1.validationAfterADR45)({
17
- validate: async ({ externalCalls }, deployment) => {
18
- const errors = [];
19
- const allAvatars = deployment.entity.metadata?.avatars ?? [];
20
- for (const avatar of allAvatars) {
21
- const hash = avatar.avatar.snapshots.face256;
22
- if (!hash)
23
- return (0, types_1.validationFailed)(`Couldn't find hash for face256 thumbnail file with name: 'face256'`);
24
- const isAlreadyStored = (await externalCalls.isContentStoredAlready([hash])).get(hash) ?? false;
25
- if (isAlreadyStored) {
26
- return types_1.OK;
27
- }
28
- // check size
29
- const thumbnailBuffer = deployment.files.get(hash);
30
- if (!thumbnailBuffer)
31
- return (0, types_1.validationFailed)(`Couldn't find thumbnail file with hash: ${hash}`);
32
- try {
33
- const { width, height, format } = await (0, sharp_1.default)(thumbnailBuffer).metadata();
34
- if (!format || format !== 'png')
35
- errors.push(`Invalid or unknown image format. Only 'PNG' format is accepted.`);
36
- if (!width || !height) {
37
- errors.push(`Couldn't validate thumbnail size for file 'face256'`);
38
- }
39
- else if (width !== defaultThumbnailSize || height !== defaultThumbnailSize) {
40
- errors.push(`Invalid face256 thumbnail image size (width = ${width} / height = ${height})`);
41
- }
16
+ exports.faceThumbnail = (0, validations_1.validateAfterADR45)(async (components, deployment) => {
17
+ const errors = [];
18
+ const allAvatars = deployment.entity.metadata?.avatars ?? [];
19
+ for (const avatar of allAvatars) {
20
+ const hash = avatar.avatar.snapshots.face256;
21
+ if (!hash)
22
+ return (0, types_1.validationFailed)(`Couldn't find hash for face256 thumbnail file with name: 'face256'`);
23
+ const isAlreadyStored = (await components.externalCalls.isContentStoredAlready([hash])).get(hash) ?? false;
24
+ if (isAlreadyStored) {
25
+ return types_1.OK;
26
+ }
27
+ // check size
28
+ const thumbnailBuffer = deployment.files.get(hash);
29
+ if (!thumbnailBuffer)
30
+ return (0, types_1.validationFailed)(`Couldn't find thumbnail file with hash: ${hash}`);
31
+ try {
32
+ const { width, height, format } = await (0, sharp_1.default)(thumbnailBuffer).metadata();
33
+ if (!format || format !== 'png')
34
+ errors.push(`Invalid or unknown image format. Only 'PNG' format is accepted.`);
35
+ if (!width || !height) {
36
+ errors.push(`Couldn't validate thumbnail size for file 'face256'`);
42
37
  }
43
- catch (e) {
44
- errors.push(`Couldn't parse face256 thumbnail, please check image format.`);
38
+ else if (width !== defaultThumbnailSize || height !== defaultThumbnailSize) {
39
+ errors.push(`Invalid face256 thumbnail image size (width = ${width} / height = ${height})`);
45
40
  }
46
41
  }
47
- return errors.length > 0 ? (0, types_1.validationFailed)(...errors) : types_1.OK;
42
+ catch (e) {
43
+ errors.push(`Couldn't parse face256 thumbnail, please check image format.`);
44
+ }
48
45
  }
46
+ return errors.length > 0 ? (0, types_1.validationFailed)(...errors) : types_1.OK;
49
47
  });
50
- exports.wearableUrns = (0, validations_1.validationAfterADR75)({
51
- validate: async (components, deployment) => {
52
- const allAvatars = deployment.entity.metadata?.avatars ?? [];
53
- for (const avatar of allAvatars) {
54
- for (const pointer of avatar.avatar.wearables) {
55
- if ((0, exports.isOldEmote)(pointer))
56
- continue;
57
- const parsed = await (0, urn_resolver_1.parseUrn)(pointer);
58
- if (!parsed)
59
- return (0, types_1.validationFailed)(`Each profile wearable pointer should be a urn, for example (urn:decentraland:{protocol}:collections-v2:{contract(0x[a-fA-F0-9]+)}:{name}). Invalid pointer: (${pointer})`);
60
- }
48
+ exports.wearableUrns = (0, validations_1.validateAfterADR75)(async (components, deployment) => {
49
+ const allAvatars = deployment.entity.metadata?.avatars ?? [];
50
+ for (const avatar of allAvatars) {
51
+ for (const pointer of avatar.avatar.wearables) {
52
+ if ((0, exports.isOldEmote)(pointer))
53
+ continue;
54
+ const parsed = await (0, urn_resolver_1.parseUrn)(pointer);
55
+ if (!parsed)
56
+ return (0, types_1.validationFailed)(`Each profile wearable pointer should be a urn, for example (urn:decentraland:{protocol}:collections-v2:{contract(0x[a-fA-F0-9]+)}:{name}). Invalid pointer: (${pointer})`);
61
57
  }
62
- return types_1.OK;
63
58
  }
59
+ return types_1.OK;
64
60
  });
65
- exports.emoteUrns = (0, validations_1.validationAfterADR74)({
66
- validate: async (components, deployment) => {
67
- const allAvatars = deployment.entity.metadata?.avatars ?? [];
68
- for (const avatar of allAvatars) {
69
- const allEmotes = avatar.avatar.emotes ?? [];
70
- for (const { slot, urn } of allEmotes) {
71
- if ((0, exports.isOldEmote)(urn))
72
- continue;
73
- const parsed = await (0, urn_resolver_1.parseUrn)(urn);
74
- if (!parsed)
75
- return (0, types_1.validationFailed)(`Each profile emote pointer should be a urn, for example (urn:decentraland:{protocol}:collections-v2:{contract(0x[a-fA-F0-9]+)}:{name}). Invalid pointer: (${urn})`);
76
- if (slot < 0 || slot > 9) {
77
- return (0, types_1.validationFailed)(`The slot ${slot} of the emote ${urn} must be a number between 0 and 9 (inclusive).`);
78
- }
61
+ exports.emoteUrns = (0, validations_1.validateAfterADR74)(async (components, deployment) => {
62
+ const allAvatars = deployment.entity.metadata?.avatars ?? [];
63
+ for (const avatar of allAvatars) {
64
+ const allEmotes = avatar.avatar.emotes ?? [];
65
+ for (const { slot, urn } of allEmotes) {
66
+ if ((0, exports.isOldEmote)(urn))
67
+ continue;
68
+ const parsed = await (0, urn_resolver_1.parseUrn)(urn);
69
+ if (!parsed)
70
+ return (0, types_1.validationFailed)(`Each profile emote pointer should be a urn, for example (urn:decentraland:{protocol}:collections-v2:{contract(0x[a-fA-F0-9]+)}:{name}). Invalid pointer: (${urn})`);
71
+ if (slot < 0 || slot > 9) {
72
+ return (0, types_1.validationFailed)(`The slot ${slot} of the emote ${urn} must be a number between 0 and 9 (inclusive).`);
79
73
  }
80
74
  }
81
- return types_1.OK;
82
75
  }
76
+ return types_1.OK;
83
77
  });
84
78
  function profileHasEmotes(deployment) {
85
79
  const allAvatars = deployment.entity.metadata?.avatars ?? [];
@@ -90,17 +84,15 @@ function profileHasEmotes(deployment) {
90
84
  }
91
85
  return false;
92
86
  }
93
- exports.profileMustHaveEmotes = (0, validations_1.validationAfterADR74)({
94
- validate: async (components, deployment) => {
95
- if (!profileHasEmotes(deployment)) {
96
- return (0, types_1.validationFailed)('Profile must have emotes after ADR 74.');
97
- }
98
- return types_1.OK;
87
+ exports.profileMustHaveEmotes = (0, validations_1.validateAfterADR74)(async (components, deployment) => {
88
+ if (!profileHasEmotes(deployment)) {
89
+ return (0, types_1.validationFailed)('Profile must have emotes after ADR 74.');
99
90
  }
91
+ return types_1.OK;
100
92
  });
101
93
  /**
102
94
  * Validate that given profile deployment includes the face256 file with the correct size
103
95
  * * @public
104
96
  */
105
- exports.profile = (0, validations_1.validationForType)(schemas_1.EntityType.PROFILE, (0, validations_1.validationGroup)(exports.faceThumbnail, exports.wearableUrns, exports.emoteUrns, exports.profileMustHaveEmotes));
97
+ exports.profile = (0, validations_1.validateIfTypeMatches)(schemas_1.EntityType.PROFILE, (0, validations_1.validateAll)(exports.faceThumbnail, exports.wearableUrns, exports.emoteUrns, exports.profileMustHaveEmotes));
106
98
  //# sourceMappingURL=profile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/validations/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/validations/profile.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import { Validation } from '../types';
1
+ import { ValidateFn } from '../types';
2
2
  /**
3
3
  * Validate that given scene deployment does not contain worldConfiguration section
4
4
  * @public
5
5
  */
6
- export declare const noWorldsConfiguration: Validation;
6
+ export declare const noWorldsConfiguration: ValidateFn;
7
7
  /**
8
8
  * Validate that given scene deployment is valid
9
9
  * @public
10
10
  */
11
- export declare const scene: Validation;
11
+ export declare const scene: ValidateFn;
12
12
  //# sourceMappingURL=scene.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/validations/scene.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,UAAU,EAAoB,MAAM,UAAU,CAAA;AAOjF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,UAOlC,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,UAAwF,CAAA"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/validations/scene.ts"],"names":[],"mappings":"AACA,OAAO,EAAwD,UAAU,EAAoB,MAAM,UAAU,CAAA;AAO7G;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,UAOnC,CAAA;AACD;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,UAA2E,CAAA"}
@@ -11,17 +11,15 @@ function sceneHasWorldConfiguration(deployment) {
11
11
  * Validate that given scene deployment does not contain worldConfiguration section
12
12
  * @public
13
13
  */
14
- exports.noWorldsConfiguration = (0, validations_1.validationAfterADR173)({
15
- validate: async (components, deployment) => {
16
- if (sceneHasWorldConfiguration(deployment)) {
17
- return (0, types_1.validationFailed)('Scenes cannot have worldConfiguration section after ADR 173.');
18
- }
19
- return types_1.OK;
14
+ exports.noWorldsConfiguration = (0, validations_1.validateAfterADR173)(async (components, deployment) => {
15
+ if (sceneHasWorldConfiguration(deployment)) {
16
+ return (0, types_1.validationFailed)('Scenes cannot have worldConfiguration section after ADR 173.');
20
17
  }
18
+ return types_1.OK;
21
19
  });
22
20
  /**
23
21
  * Validate that given scene deployment is valid
24
22
  * @public
25
23
  */
26
- exports.scene = (0, validations_1.validationForType)(schemas_1.EntityType.SCENE, (0, validations_1.validationGroup)(exports.noWorldsConfiguration));
24
+ exports.scene = (0, validations_1.validateIfTypeMatches)(schemas_1.EntityType.SCENE, exports.noWorldsConfiguration);
27
25
  //# sourceMappingURL=scene.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scene.js","sourceRoot":"","sources":["../../src/validations/scene.ts"],"names":[],"mappings":";;;AAAA,0CAAyC;AACzC,oCAAiF;AACjF,+CAAyF;AAEzF,SAAS,0BAA0B,CAAC,UAAgC;IAClE,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,KAAK,SAAS,CAAA;AACrE,CAAC;AAED;;;GAGG;AACU,QAAA,qBAAqB,GAAe,IAAA,mCAAqB,EAAC;IACrE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE;QACzC,IAAI,0BAA0B,CAAC,UAAU,CAAC,EAAE;YAC1C,OAAO,IAAA,wBAAgB,EAAC,8DAA8D,CAAC,CAAA;SACxF;QACD,OAAO,UAAE,CAAA;IACX,CAAC;CACF,CAAC,CAAA;AAEF;;;GAGG;AACU,QAAA,KAAK,GAAe,IAAA,+BAAiB,EAAC,oBAAU,CAAC,KAAK,EAAE,IAAA,6BAAe,EAAC,6BAAqB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"scene.js","sourceRoot":"","sources":["../../src/validations/scene.ts"],"names":[],"mappings":";;;AAAA,0CAAyC;AACzC,oCAA6G;AAC7G,+CAA0E;AAE1E,SAAS,0BAA0B,CAAC,UAAgC;IAClE,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,KAAK,SAAS,CAAA;AACrE,CAAC;AAED;;;GAGG;AACU,QAAA,qBAAqB,GAAe,IAAA,iCAAmB,EAClE,KAAK,EAAE,UAAsC,EAAE,UAAgC,EAAE,EAAE;IACjF,IAAI,0BAA0B,CAAC,UAAU,CAAC,EAAE;QAC1C,OAAO,IAAA,wBAAgB,EAAC,8DAA8D,CAAC,CAAA;KACxF;IACD,OAAO,UAAE,CAAA;AACX,CAAC,CACF,CAAA;AACD;;;GAGG;AACU,QAAA,KAAK,GAAe,IAAA,mCAAqB,EAAC,oBAAU,CAAC,KAAK,EAAE,6BAAqB,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
- import { Validation } from '../types';
1
+ import { ContentValidatorComponents, DeploymentToValidate } from '../types';
2
2
  /**
3
3
  * Validate that the signature belongs to the Ethereum address
4
4
  * @public
5
5
  */
6
- export declare const signature: Validation;
6
+ export declare function signature(components: ContentValidatorComponents, deployment: DeploymentToValidate): Promise<import("../types").ValidationResponse>;
7
7
  //# sourceMappingURL=signature.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/validations/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,UAAU,EAAoB,MAAM,UAAU,CAAA;AAE3D;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,UAOvB,CAAA"}
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/validations/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAwB,MAAM,UAAU,CAAA;AAEjG;;;GAGG;AACH,wBAAsB,SAAS,CAAC,UAAU,EAAE,0BAA0B,EAAE,UAAU,EAAE,oBAAoB,kDAIvG"}
@@ -6,12 +6,10 @@ const types_1 = require("../types");
6
6
  * Validate that the signature belongs to the Ethereum address
7
7
  * @public
8
8
  */
9
- exports.signature = {
10
- // todo: should we include signature result message?
11
- validate: async ({ externalCalls }, deployment) => {
12
- const { entity, auditInfo } = deployment;
13
- const validationResult = await externalCalls.validateSignature(entity.id, auditInfo, entity.timestamp);
14
- return !validationResult.ok ? (0, types_1.validationFailed)('The signature is invalid. ' + validationResult.message) : types_1.OK;
15
- }
16
- };
9
+ async function signature(components, deployment) {
10
+ const { entity, auditInfo } = deployment;
11
+ const validationResult = await components.externalCalls.validateSignature(entity.id, auditInfo, entity.timestamp);
12
+ return !validationResult.ok ? (0, types_1.validationFailed)('The signature is invalid. ' + validationResult.message) : types_1.OK;
13
+ }
14
+ exports.signature = signature;
17
15
  //# sourceMappingURL=signature.js.map