@dcl/content-validator 1.0.0-20220104134007.commit-80072ed → 1.0.0-20220105212801.commit-f23b182

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 (35) hide show
  1. package/README.md +5 -4
  2. package/dist/validations/access-checker/access.d.ts.map +1 -1
  3. package/dist/validations/access-checker/access.js +9 -11
  4. package/dist/validations/access-checker/access.js.map +1 -1
  5. package/dist/validations/access-checker/stores.d.ts +7 -0
  6. package/dist/validations/access-checker/stores.d.ts.map +1 -0
  7. package/dist/validations/access-checker/stores.js +34 -0
  8. package/dist/validations/access-checker/stores.js.map +1 -0
  9. package/dist/validations/index.d.ts.map +1 -1
  10. package/dist/validations/index.js +1 -18
  11. package/dist/validations/index.js.map +1 -1
  12. package/dist/validations/metadata-schema.d.ts.map +1 -1
  13. package/dist/validations/metadata-schema.js +2 -8
  14. package/dist/validations/metadata-schema.js.map +1 -1
  15. package/package.json +3 -3
  16. package/dist/validations/must-have-failed-before.d.ts +0 -6
  17. package/dist/validations/must-have-failed-before.d.ts.map +0 -1
  18. package/dist/validations/must-have-failed-before.js +0 -13
  19. package/dist/validations/must-have-failed-before.js.map +0 -1
  20. package/dist/validations/no-newer.d.ts +0 -6
  21. package/dist/validations/no-newer.d.ts.map +0 -1
  22. package/dist/validations/no-newer.js +0 -14
  23. package/dist/validations/no-newer.js.map +0 -1
  24. package/dist/validations/no-redeploy.d.ts +0 -6
  25. package/dist/validations/no-redeploy.d.ts.map +0 -1
  26. package/dist/validations/no-redeploy.js +0 -13
  27. package/dist/validations/no-redeploy.js.map +0 -1
  28. package/dist/validations/rate-limit.d.ts +0 -6
  29. package/dist/validations/rate-limit.d.ts.map +0 -1
  30. package/dist/validations/rate-limit.js +0 -13
  31. package/dist/validations/rate-limit.js.map +0 -1
  32. package/dist/validations/recent.d.ts +0 -7
  33. package/dist/validations/recent.d.ts.map +0 -1
  34. package/dist/validations/recent.js +0 -27
  35. package/dist/validations/recent.js.map +0 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @dcl/content-validator
2
2
 
3
- Contains all validations to run against entity deployments (either local and sync contexts).
3
+ Contains all validations to run against entity deployments.
4
4
 
5
5
  ## Getting Started
6
6
 
@@ -24,6 +24,7 @@ To make Catalysts accept deployments of new entity types, they must have defined
24
24
 
25
25
  ### In steps
26
26
 
27
- - Create entity schema on [@dcl/schemas](https://github.com/decentraland/common-schemas)
28
- - Add entity type and schema on [catalyst-commons](https://github.com/decentraland/catalyst-commons/).
29
- - Add entity type and access checker in [access.ts](./src/validations/access-checker/access.ts).
27
+ 1. Create entity schema on [@dcl/schemas](https://github.com/decentraland/common-schemas).
28
+ 2. Add entity type and schema on [catalyst-commons](https://github.com/decentraland/catalyst-commons/).
29
+ 3. Add entity type and access checker in [access.ts](./src/validations/access-checker/access.ts).
30
+ a. Verify entity pointers can be resolved. If required add a new resolver in [@dcl/urn-resolver](https://github.com/decentraland/urn-resolver).
@@ -1 +1 @@
1
- {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/access.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAKxC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,UAcpB,CAAA"}
1
+ {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/access.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAaxC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,UAOpB,CAAA"}
@@ -2,10 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.access = void 0;
4
4
  const dcl_catalyst_commons_1 = require("dcl-catalyst-commons");
5
- const __1 = require("../..");
6
5
  const profiles_1 = require("./profiles");
7
6
  const scenes_1 = require("./scenes");
7
+ const stores_1 = require("./stores");
8
8
  const wearables_1 = require("./wearables");
9
+ const accessCheckers = {
10
+ [dcl_catalyst_commons_1.EntityType.PROFILE]: profiles_1.profiles,
11
+ [dcl_catalyst_commons_1.EntityType.SCENE]: scenes_1.scenes,
12
+ [dcl_catalyst_commons_1.EntityType.WEARABLE]: wearables_1.wearables,
13
+ [dcl_catalyst_commons_1.EntityType.STORE]: stores_1.stores,
14
+ };
9
15
  /**
10
16
  * Validate that the pointers are valid, and that the Ethereum address has write access to them
11
17
  * @public
@@ -13,16 +19,8 @@ const wearables_1 = require("./wearables");
13
19
  exports.access = {
14
20
  validate: async (args) => {
15
21
  const type = args.deployment.entity.type;
16
- switch (type) {
17
- case dcl_catalyst_commons_1.EntityType.SCENE:
18
- return scenes_1.scenes.validate(args);
19
- case dcl_catalyst_commons_1.EntityType.PROFILE:
20
- return profiles_1.profiles.validate(args);
21
- case dcl_catalyst_commons_1.EntityType.WEARABLE:
22
- return wearables_1.wearables.validate(args);
23
- default:
24
- return (0, __1.validationFailed)('Unknown type provided');
25
- }
22
+ const accessChecker = accessCheckers[type];
23
+ return accessChecker.validate(args);
26
24
  },
27
25
  };
28
26
  //# sourceMappingURL=access.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"access.js","sourceRoot":"","sources":["../../../src/validations/access-checker/access.ts"],"names":[],"mappings":";;;AAAA,+DAAiD;AACjD,6BAAwC;AAExC,yCAAqC;AACrC,qCAAiC;AACjC,2CAAuC;AAEvC;;;GAGG;AACU,QAAA,MAAM,GAAe;IAChC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA;QACxC,QAAQ,IAAI,EAAE;YACZ,KAAK,iCAAU,CAAC,KAAK;gBACnB,OAAO,eAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC9B,KAAK,iCAAU,CAAC,OAAO;gBACrB,OAAO,mBAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAChC,KAAK,iCAAU,CAAC,QAAQ;gBACtB,OAAO,qBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YACjC;gBACE,OAAO,IAAA,oBAAgB,EAAC,uBAAuB,CAAC,CAAA;SACnD;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"access.js","sourceRoot":"","sources":["../../../src/validations/access-checker/access.ts"],"names":[],"mappings":";;;AAAA,+DAAiD;AAGjD,yCAAqC;AACrC,qCAAiC;AACjC,qCAAiC;AACjC,2CAAuC;AAEvC,MAAM,cAAc,GAAG;IACrB,CAAC,iCAAU,CAAC,OAAO,CAAC,EAAE,mBAAQ;IAC9B,CAAC,iCAAU,CAAC,KAAK,CAAC,EAAE,eAAM;IAC1B,CAAC,iCAAU,CAAC,QAAQ,CAAC,EAAE,qBAAS;IAChC,CAAC,iCAAU,CAAC,KAAK,CAAC,EAAE,eAAM;CAC3B,CAAA;AAED;;;GAGG;AACU,QAAA,MAAM,GAAe;IAChC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA;QACxC,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;QAE1C,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;CACF,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { Validation } from '../../types';
2
+ /**
3
+ * Validate that the pointers are valid, and that the Ethereum address has write access to them
4
+ * @public
5
+ */
6
+ export declare const stores: Validation;
7
+ //# sourceMappingURL=stores.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/stores.ts"],"names":[],"mappings":"AAEA,OAAO,EAAM,UAAU,EAAoB,MAAM,aAAa,CAAA;AAU9D;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,UAuBpB,CAAA"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stores = void 0;
4
+ const urn_resolver_1 = require("@dcl/urn-resolver");
5
+ const types_1 = require("../../types");
6
+ const parseUrnNoFail = async (pointer) => {
7
+ try {
8
+ const parsed = await (0, urn_resolver_1.parseUrn)(pointer);
9
+ if (!parsed || parsed?.type !== 'off-chain')
10
+ return undefined;
11
+ return parsed;
12
+ }
13
+ catch { }
14
+ };
15
+ /**
16
+ * Validate that the pointers are valid, and that the Ethereum address has write access to them
17
+ * @public
18
+ */
19
+ exports.stores = {
20
+ validate: async ({ deployment, externalCalls }) => {
21
+ const pointers = deployment.entity.pointers;
22
+ const ethAddress = externalCalls.ownerAddress(deployment.auditInfo);
23
+ if (pointers.length !== 1)
24
+ return (0, types_1.validationFailed)(`Only one pointer is allowed when you create a Store. Received: ${pointers}`);
25
+ const pointer = pointers[0].toLowerCase();
26
+ const offchainAsset = await parseUrnNoFail(pointer);
27
+ if (!offchainAsset)
28
+ return (0, types_1.validationFailed)(`Store pointers should be a urn, for example (urn:decentraland:off-chain:marketplace-stores:{address}). Invalid pointer: ${pointer}`);
29
+ if (offchainAsset.id !== ethAddress)
30
+ return (0, types_1.validationFailed)(`You can only alter your own store. The pointer address and the signer address are different (address:${offchainAsset.id.toLowerCase()} signer: ${ethAddress.toLowerCase()}).`);
31
+ return types_1.OK;
32
+ },
33
+ };
34
+ //# sourceMappingURL=stores.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stores.js","sourceRoot":"","sources":["../../../src/validations/access-checker/stores.ts"],"names":[],"mappings":";;;AAAA,oDAA2D;AAE3D,uCAA8D;AAE9D,MAAM,cAAc,GAAG,KAAK,EAAE,OAAgB,EAAsC,EAAE;IACpF,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAQ,EAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW;YAAE,OAAO,SAAS,CAAA;QAC7D,OAAO,MAAM,CAAA;KACd;IAAC,MAAM,GAAE;AACZ,CAAC,CAAA;AAED;;;GAGG;AACU,QAAA,MAAM,GAAe;IAChC,QAAQ,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE;QAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAA;QAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAEnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YACvB,OAAO,IAAA,wBAAgB,EAAC,kEAAkE,QAAQ,EAAE,CAAC,CAAA;QAEvG,MAAM,OAAO,GAAY,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QAClD,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAA;QAEnD,IAAI,CAAC,aAAa;YAChB,OAAO,IAAA,wBAAgB,EACrB,2HAA2H,OAAO,EAAE,CACrI,CAAA;QAEH,IAAI,aAAa,CAAC,EAAE,KAAK,UAAU;YACjC,OAAO,IAAA,wBAAgB,EACrB,wGAAwG,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,UAAU,CAAC,WAAW,EAAE,IAAI,CAC/K,CAAA;QAEH,OAAO,UAAE,CAAA;IACX,CAAC;CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAM,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAgBlH;;GAEG;AACH,eAAO,MAAM,aAAa,mBACR,cAAc,kBACd,UAAU,EAAE,KAC3B,QAAQ,kBAAkB,CAM5B,CAAA;AAGD;;GAEG;AACH,eAAO,MAAM,eAAe,gBAAgB,CAAA;AAE5C;;GAEG;AACH,eAAO,MAAM,uBAAuB,eACtB,oBAAoB,iBACjB,aAAa,KAC3B,QAAQ,MAAM,GAAG,MAAM,CAazB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,cAY/B,CAAA;AACD;;GAEG;AACH,eAAO,MAAM,oBAAoB,cAA2C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAM,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAWlH;;GAEG;AACH,eAAO,MAAM,aAAa,mBACR,cAAc,kBACd,UAAU,EAAE,KAC3B,QAAQ,kBAAkB,CAM5B,CAAA;AAGD;;GAEG;AACH,eAAO,MAAM,eAAe,gBAAgB,CAAA;AAE5C;;GAEG;AACH,eAAO,MAAM,uBAAuB,eACtB,oBAAoB,iBACjB,aAAa,KAC3B,QAAQ,MAAM,GAAG,MAAM,CAazB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,cAAoE,CAAA;AAEpG;;GAEG;AACH,eAAO,MAAM,oBAAoB,cAA2C,CAAA"}
@@ -8,11 +8,6 @@ const decentraland_address_1 = require("./decentraland-address");
8
8
  const entity_structure_1 = require("./entity-structure");
9
9
  const ipfs_hashing_1 = require("./ipfs-hashing");
10
10
  const metadata_schema_1 = require("./metadata-schema");
11
- const must_have_failed_before_1 = require("./must-have-failed-before");
12
- const no_newer_1 = require("./no-newer");
13
- const no_redeploy_1 = require("./no-redeploy");
14
- const rate_limit_1 = require("./rate-limit");
15
- const recent_1 = require("./recent");
16
11
  const signature_1 = require("./signature");
17
12
  const size_1 = require("./size");
18
13
  const wearable_1 = require("./wearable");
@@ -56,19 +51,7 @@ exports.calculateDeploymentSize = calculateDeploymentSize;
56
51
  /**
57
52
  * @public
58
53
  */
59
- exports.statefulValidations = [
60
- no_redeploy_1.noRedeploy,
61
- signature_1.signature,
62
- recent_1.recent,
63
- no_newer_1.noNewer,
64
- access_1.access,
65
- size_1.size,
66
- must_have_failed_before_1.mustHaveFailedBefore,
67
- wearable_1.wearable,
68
- content_1.content,
69
- decentraland_address_1.decentralandAddress,
70
- rate_limit_1.rateLimit,
71
- ];
54
+ exports.statefulValidations = [signature_1.signature, access_1.access, size_1.size, wearable_1.wearable, content_1.content, decentraland_address_1.decentralandAddress];
72
55
  /**
73
56
  * @public
74
57
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validations/index.ts"],"names":[],"mappings":";;;AAAA,oCAAkH;AAClH,oDAAgD;AAChD,uCAAmC;AACnC,iEAA4D;AAC5D,yDAAoD;AACpD,iDAA4C;AAC5C,uDAA4C;AAC5C,uEAAgE;AAChE,yCAAoC;AACpC,+CAA0C;AAC1C,6CAAwC;AACxC,qCAAiC;AACjC,2CAAuC;AACvC,iCAA6B;AAC7B,yCAAqC;AAErC;;GAEG;AACI,MAAM,aAAa,GAAG,KAAK,EAChC,cAA8B,EAC9B,GAAG,WAAyB,EACC,EAAE;IAC/B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;QAC1D,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,QAAQ,CAAA;KAClC;IACD,OAAO,UAAE,CAAA;AACX,CAAC,CAAA;AATY,QAAA,aAAa,iBASzB;AAED,6FAA6F;AAC7F;;GAEG;AACU,QAAA,eAAe,GAAG,aAAa,CAAA;AAE5C;;GAEG;AACI,MAAM,uBAAuB,GAAG,KAAK,EAC1C,UAAgC,EAChC,aAA4B,EACF,EAAE;IAC5B,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,CAAC,WAAW;gBAAE,OAAO,0CAA0C,IAAI,EAAE,CAAA;YACzE,SAAS,IAAI,WAAW,CAAA;SACzB;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAhBY,QAAA,uBAAuB,2BAgBnC;AAED;;GAEG;AACU,QAAA,mBAAmB,GAAG;IACjC,wBAAU;IACV,qBAAS;IACT,eAAM;IACN,kBAAO;IACP,eAAM;IACN,WAAI;IACJ,8CAAoB;IACpB,mBAAQ;IACR,iBAAO;IACP,0CAAmB;IACnB,sBAAS;CACV,CAAA;AACD;;GAEG;AACU,QAAA,oBAAoB,GAAG,CAAC,kCAAe,EAAE,0BAAW,EAAE,0BAAQ,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validations/index.ts"],"names":[],"mappings":";;;AAAA,oCAAkH;AAClH,oDAAgD;AAChD,uCAAmC;AACnC,iEAA4D;AAC5D,yDAAoD;AACpD,iDAA4C;AAC5C,uDAA4C;AAC5C,2CAAuC;AACvC,iCAA6B;AAC7B,yCAAqC;AAErC;;GAEG;AACI,MAAM,aAAa,GAAG,KAAK,EAChC,cAA8B,EAC9B,GAAG,WAAyB,EACC,EAAE;IAC/B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;QAC1D,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,QAAQ,CAAA;KAClC;IACD,OAAO,UAAE,CAAA;AACX,CAAC,CAAA;AATY,QAAA,aAAa,iBASzB;AAED,6FAA6F;AAC7F;;GAEG;AACU,QAAA,eAAe,GAAG,aAAa,CAAA;AAE5C;;GAEG;AACI,MAAM,uBAAuB,GAAG,KAAK,EAC1C,UAAgC,EAChC,aAA4B,EACF,EAAE;IAC5B,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,CAAC,WAAW;gBAAE,OAAO,0CAA0C,IAAI,EAAE,CAAA;YACzE,SAAS,IAAI,WAAW,CAAA;SACzB;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAhBY,QAAA,uBAAuB,2BAgBnC;AAED;;GAEG;AACU,QAAA,mBAAmB,GAAG,CAAC,qBAAS,EAAE,eAAM,EAAE,WAAI,EAAE,mBAAQ,EAAE,iBAAO,EAAE,0CAAmB,CAAC,CAAA;AAEpG;;GAEG;AACU,QAAA,oBAAoB,GAAG,CAAC,kCAAe,EAAE,0BAAW,EAAE,0BAAQ,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-schema.d.ts","sourceRoot":"","sources":["../../src/validations/metadata-schema.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,eAAO,MAAM,QAAQ,+BAYnB,CAAA"}
1
+ {"version":3,"file":"metadata-schema.d.ts","sourceRoot":"","sources":["../../src/validations/metadata-schema.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,eAAO,MAAM,QAAQ,+BASnB,CAAA"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.metadata = void 0;
4
- const schemas_1 = require("@dcl/schemas");
5
4
  const dcl_catalyst_commons_1 = require("dcl-catalyst-commons");
6
5
  const _1 = require(".");
7
6
  const types_1 = require("../types");
@@ -13,13 +12,8 @@ exports.metadata = (0, types_1.conditionalValidation)({
13
12
  predicate: ({ deployment }) => {
14
13
  if (deployment.entity.timestamp <= _1.ADR_X_TIMESTAMP)
15
14
  return true;
16
- // todo: move this map to catalyst-commons
17
- const validate = {
18
- [dcl_catalyst_commons_1.EntityType.PROFILE]: schemas_1.Profile.validate,
19
- [dcl_catalyst_commons_1.EntityType.SCENE]: schemas_1.Scene.validate,
20
- [dcl_catalyst_commons_1.EntityType.WEARABLE]: schemas_1.Wearable.validate,
21
- };
22
- return validate[deployment.entity.type](deployment.entity.metadata);
15
+ const { type, metadata } = deployment.entity;
16
+ return dcl_catalyst_commons_1.entityParameters[type].validate(metadata);
23
17
  },
24
18
  message: ({ deployment }) => `The metadata for this entity type (${deployment.entity.type}) is not valid.`,
25
19
  });
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-schema.js","sourceRoot":"","sources":["../../src/validations/metadata-schema.ts"],"names":[],"mappings":";;;AAAA,0CAAuD;AACvD,+DAAiD;AACjD,wBAAmC;AACnC,oCAAgD;AAEhD;;;GAGG;AACU,QAAA,QAAQ,GAAG,IAAA,6BAAqB,EAAC;IAC5C,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;QAC5B,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,IAAI,kBAAe;YAAE,OAAO,IAAI,CAAA;QAC/D,0CAA0C;QAC1C,MAAM,QAAQ,GAAG;YACf,CAAC,iCAAU,CAAC,OAAO,CAAC,EAAE,iBAAO,CAAC,QAAQ;YACtC,CAAC,iCAAU,CAAC,KAAK,CAAC,EAAE,eAAK,CAAC,QAAQ;YAClC,CAAC,iCAAU,CAAC,QAAQ,CAAC,EAAE,kBAAQ,CAAC,QAAQ;SACzC,CAAA;QACD,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACrE,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,sCAAsC,UAAU,CAAC,MAAM,CAAC,IAAI,iBAAiB;CAC3G,CAAC,CAAA"}
1
+ {"version":3,"file":"metadata-schema.js","sourceRoot":"","sources":["../../src/validations/metadata-schema.ts"],"names":[],"mappings":";;;AACA,+DAAmE;AACnE,wBAAmC;AACnC,oCAAgD;AAEhD;;;GAGG;AACU,QAAA,QAAQ,GAAG,IAAA,6BAAqB,EAAC;IAC5C,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;QAC5B,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,IAAI,kBAAe;YAAE,OAAO,IAAI,CAAA;QAE/D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,MAAM,CAAA;QAE5C,OAAO,uCAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,sCAAsC,UAAU,CAAC,MAAM,CAAC,IAAI,iBAAiB;CAC3G,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dcl/content-validator",
3
- "version": "1.0.0-20220104134007.commit-80072ed",
3
+ "version": "1.0.0-20220105212801.commit-f23b182",
4
4
  "description": "Catalyst content validations",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -35,7 +35,7 @@
35
35
  "dependencies": {
36
36
  "@dcl/schemas": "^3.1.1",
37
37
  "@dcl/urn-resolver": "^1.3.0",
38
- "dcl-catalyst-commons": "^7.1.3",
38
+ "dcl-catalyst-commons": "7.1.4-20220105153139.commit-79398b8",
39
39
  "ethers": "^5.5.2",
40
40
  "ms": "^2.1.3",
41
41
  "sharp": "^0.29.3"
@@ -43,5 +43,5 @@
43
43
  "files": [
44
44
  "dist"
45
45
  ],
46
- "commit": "80072edc37c4a659139412d5f2eafb33339ed833"
46
+ "commit": "f23b182af1b12c7ad8ca80ff4a6051b6124b56ed"
47
47
  }
@@ -1,6 +0,0 @@
1
- /**
2
- * Make sure that the deployment actually failed, and that it can be re-deployed
3
- * @public
4
- */
5
- export declare const mustHaveFailedBefore: import("../types").Validation;
6
- //# sourceMappingURL=must-have-failed-before.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"must-have-failed-before.d.ts","sourceRoot":"","sources":["../../src/validations/must-have-failed-before.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,+BAI/B,CAAA"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mustHaveFailedBefore = void 0;
4
- const types_1 = require("../types");
5
- /**
6
- * Make sure that the deployment actually failed, and that it can be re-deployed
7
- * @public
8
- */
9
- exports.mustHaveFailedBefore = (0, types_1.conditionalValidation)({
10
- predicate: async ({ deployment, externalCalls }) => await externalCalls.isFailedDeployment(deployment.entity.type, deployment.entity.id),
11
- message: () => "This entity was already marked as failed. You can't fix it",
12
- });
13
- //# sourceMappingURL=must-have-failed-before.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"must-have-failed-before.js","sourceRoot":"","sources":["../../src/validations/must-have-failed-before.ts"],"names":[],"mappings":";;;AAAA,oCAAgD;AAEhD;;;GAGG;AACU,QAAA,oBAAoB,GAAG,IAAA,6BAAqB,EAAC;IACxD,SAAS,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,CACjD,MAAM,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;IACtF,OAAO,EAAE,GAAG,EAAE,CAAC,4DAA4D;CAC5E,CAAC,CAAA"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Validate that there are no newer deployments on the entity's pointers
3
- * @public
4
- */
5
- export declare const noNewer: import("../types").Validation;
6
- //# sourceMappingURL=no-newer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-newer.d.ts","sourceRoot":"","sources":["../../src/validations/no-newer.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,OAAO,+BAIlB,CAAA"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.noNewer = void 0;
4
- const types_1 = require("../types");
5
- /**
6
- * Validate that there are no newer deployments on the entity's pointers
7
- * @public
8
- */
9
- exports.noNewer = (0, types_1.conditionalValidation)({
10
- // Validate that pointers aren't referring to an entity with a higher timestamp
11
- predicate: async ({ deployment, externalCalls }) => await externalCalls.areThereNewerEntities(deployment.entity),
12
- message: () => 'There is a newer entity pointed by one or more of the pointers you provided.',
13
- });
14
- //# sourceMappingURL=no-newer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-newer.js","sourceRoot":"","sources":["../../src/validations/no-newer.ts"],"names":[],"mappings":";;;AAAA,oCAAgD;AAEhD;;;GAGG;AACU,QAAA,OAAO,GAAG,IAAA,6BAAqB,EAAC;IAC3C,+EAA+E;IAC/E,SAAS,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,MAAM,aAAa,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAAC;IAChH,OAAO,EAAE,GAAG,EAAE,CAAC,8EAA8E;CAC9F,CAAC,CAAA"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Validate if the entity can be re deployed or not
3
- * @public
4
- */
5
- export declare const noRedeploy: import("../types").Validation;
6
- //# sourceMappingURL=no-redeploy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-redeploy.d.ts","sourceRoot":"","sources":["../../src/validations/no-redeploy.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,UAAU,+BAGrB,CAAA"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.noRedeploy = void 0;
4
- const types_1 = require("../types");
5
- /**
6
- * Validate if the entity can be re deployed or not
7
- * @public
8
- */
9
- exports.noRedeploy = (0, types_1.conditionalValidation)({
10
- predicate: async ({ externalCalls }) => await externalCalls.isEntityDeployedAlready(),
11
- message: () => "This entity was already deployed. You can't redeploy it",
12
- });
13
- //# sourceMappingURL=no-redeploy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-redeploy.js","sourceRoot":"","sources":["../../src/validations/no-redeploy.ts"],"names":[],"mappings":";;;AAAA,oCAAgD;AAEhD;;;GAGG;AACU,QAAA,UAAU,GAAG,IAAA,6BAAqB,EAAC;IAC9C,SAAS,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,MAAM,aAAa,CAAC,uBAAuB,EAAE;IACrF,OAAO,EAAE,GAAG,EAAE,CAAC,yDAAyD;CACzE,CAAC,CAAA"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Validate the deployment is not rate limited
3
- * @public
4
- */
5
- export declare const rateLimit: import("../types").Validation;
6
- //# sourceMappingURL=rate-limit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../src/validations/rate-limit.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,SAAS,+BAIpB,CAAA"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rateLimit = void 0;
4
- const types_1 = require("../types");
5
- /**
6
- * Validate the deployment is not rate limited
7
- * @public
8
- */
9
- exports.rateLimit = (0, types_1.conditionalValidation)({
10
- predicate: async ({ deployment, externalCalls }) => !(await externalCalls.isEntityRateLimited(deployment.entity)),
11
- message: ({ deployment }) => `Entity rate limited (entityId=${deployment.entity.id} pointers=${deployment.entity.pointers.join(',')}).`,
12
- });
13
- //# sourceMappingURL=rate-limit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../src/validations/rate-limit.ts"],"names":[],"mappings":";;;AAAA,oCAAgD;AAEhD;;;GAGG;AACU,QAAA,SAAS,GAAG,IAAA,6BAAqB,EAAC;IAC7C,SAAS,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACjH,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAC1B,iCAAiC,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;CAC7G,CAAC,CAAA"}
@@ -1,7 +0,0 @@
1
- import { Validation } from '../types';
2
- /**
3
- * Validate that the deployment is recent
4
- * @public
5
- */
6
- export declare const recent: Validation;
7
- //# sourceMappingURL=recent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recent.d.ts","sourceRoot":"","sources":["../../src/validations/recent.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,UAAU,EAAoB,MAAM,UAAU,CAAA;AAI3D;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,UAWpB,CAAA"}
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.recent = void 0;
7
- const ms_1 = __importDefault(require("ms"));
8
- const types_1 = require("../types");
9
- const REQUEST_TTL_FORWARDS = (0, ms_1.default)('15m');
10
- /**
11
- * Validate that the deployment is recent
12
- * @public
13
- */
14
- exports.recent = {
15
- validate: ({ deployment, externalCalls }) => {
16
- // Verify that the timestamp is recent enough. We need to make sure that the definition of recent works with the synchronization mechanism
17
- const delta = Date.now() - deployment.entity.timestamp;
18
- if (delta > externalCalls.requestTtlBackwards) {
19
- return (0, types_1.validationFailed)('The request is not recent enough, please submit it again with a new timestamp.');
20
- }
21
- else if (delta < -REQUEST_TTL_FORWARDS) {
22
- return (0, types_1.validationFailed)('The request is too far in the future, please submit it again with a new timestamp.');
23
- }
24
- return types_1.OK;
25
- },
26
- };
27
- //# sourceMappingURL=recent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recent.js","sourceRoot":"","sources":["../../src/validations/recent.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AACnB,oCAA2D;AAE3D,MAAM,oBAAoB,GAAW,IAAA,YAAE,EAAC,KAAK,CAAC,CAAA;AAE9C;;;GAGG;AACU,QAAA,MAAM,GAAe;IAChC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE;QAC1C,0IAA0I;QAC1I,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAA;QACtD,IAAI,KAAK,GAAG,aAAa,CAAC,mBAAmB,EAAE;YAC7C,OAAO,IAAA,wBAAgB,EAAC,gFAAgF,CAAC,CAAA;SAC1G;aAAM,IAAI,KAAK,GAAG,CAAC,oBAAoB,EAAE;YACxC,OAAO,IAAA,wBAAgB,EAAC,oFAAoF,CAAC,CAAA;SAC9G;QACD,OAAO,UAAE,CAAA;IACX,CAAC;CACF,CAAA"}