@dcl/schemas 4.13.0 → 4.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -38,6 +38,17 @@ export namespace MyType {
38
38
 
39
39
  In that sense, MyType can be both used as type `const a: MyType` and as object `MyType.validate(a)`.
40
40
 
41
+ Beware that `validate` has type `ValidateFunction<T>` which `ajv` creates automatically. When writing new
42
+ validations always try to implement it as an ajv validation, even if custom code is needed. See [here](https://ajv.js.org/keywords.html#define-keyword-with-code-generation-function).
43
+
44
+ In particular, don't fall in the trap of doing this:
45
+ ```ts
46
+ const validator = generateValidator<MyType>(schema)
47
+ export const validate = (mt: MyType) => validator.validate(mt) && otherValidations(mt);
48
+ ```
49
+ By doing this, all the errors reported by the `validator.validate` function are lost and never returned
50
+ to the caller.
51
+
41
52
  ## Type ownership
42
53
 
43
54
  Please add types and schemas of your domain into the `src/<team>` folder, also add your team to the [CODEOWNERS](.github/CODEOWNERS) repository to make sure nobody accidentally changes it without your team noticing it.
package/dist/index.d.ts CHANGED
@@ -29,5 +29,6 @@ export * from './dapps/preview';
29
29
  export * from './platform';
30
30
  export * from './misc';
31
31
  export * from './misc/auth-chain';
32
+ export * from './misc/content-mapping';
32
33
  export { sdk };
33
34
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,OAAO,CAAA;AAG5B,cAAc,cAAc,CAAA;AAG5B,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EACL,KAAK,EACL,eAAe,EACf,QAAQ,EACR,mBAAmB,EACpB,MAAM,eAAe,CAAA;AACtB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,GAAG,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,OAAO,CAAA;AAG5B,cAAc,cAAc,CAAA;AAG5B,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EACL,KAAK,EACL,eAAe,EACf,QAAQ,EACR,mBAAmB,EACpB,MAAM,eAAe,CAAA;AACtB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,OAAO,EAAE,GAAG,EAAE,CAAA"}
package/dist/index.js CHANGED
@@ -96,4 +96,5 @@ __exportStar(require("./dapps/preview"), exports);
96
96
  __exportStar(require("./platform"), exports);
97
97
  __exportStar(require("./misc"), exports);
98
98
  __exportStar(require("./misc/auth-chain"), exports);
99
+ __exportStar(require("./misc/content-mapping"), exports);
99
100
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4B;AAgDnB,kBAAG;AA9CZ,mBAAmB;AACnB,+CAA4B;AAE5B,uBAAuB;AACvB,mCAAwD;AAA/C,0FAAA,GAAG,OAAA;AAAc,gGAAA,SAAS,OAAA;AACnC,2CAAwE;AAA/D,kGAAA,OAAO,OAAA;AAAkB,wGAAA,aAAa,OAAA;AAC/C,iDAA8C;AAArC,uGAAA,SAAS,OAAA;AAClB,6CAAwE;AAA/D,mGAAA,OAAO,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,0GAAA,cAAc,OAAA;AAC9C,iDAA0D;AAAjD,uGAAA,SAAS,OAAA;AAAE,wGAAA,UAAU,OAAA;AAC9B,iDAI2B;AAHzB,wGAAA,UAAU,OAAA;AAEV,8GAAA,gBAAgB,OAAA;AAElB,6CAA4E;AAAnE,oGAAA,QAAQ,OAAA;AAAmB,0GAAA,cAAc,OAAA;AAClD,yDAAsD;AAA7C,+GAAA,aAAa,OAAA;AACtB,qCAA4D;AAAnD,4FAAA,IAAI,OAAA;AAAe,kGAAA,UAAU,OAAA;AACtC,yDAAsD;AAA7C,+GAAA,aAAa,OAAA;AACtB,+DAA2D;AAAlD,oHAAA,eAAe,OAAA;AACxB,qCAA4D;AAAnD,4FAAA,IAAI,OAAA;AAAe,kGAAA,UAAU,OAAA;AACtC,2CAAyC;AAAhC,kGAAA,OAAO,OAAA;AAChB,qDAAkD;AAAzC,2GAAA,WAAW,OAAA;AACpB,mCAAwD;AAA/C,0FAAA,GAAG,OAAA;AAAc,gGAAA,SAAS,OAAA;AACnC,uCAAgE;AAAvD,8FAAA,KAAK,OAAA;AAAgB,oGAAA,WAAW,OAAA;AACzC,uDAAoD;AAA3C,6GAAA,YAAY,OAAA;AACrB,yCAAuC;AAA9B,gGAAA,MAAM,OAAA;AACf,+CAA4C;AAAnC,qGAAA,QAAQ,OAAA;AACjB,qCAA4D;AAAnD,4FAAA,IAAI,OAAA;AAAe,kGAAA,UAAU,OAAA;AACtC,6DAIiC;AAD/B,0HAAA,sBAAsB,OAAA;AAExB,uCAAqC;AAA5B,8FAAA,KAAK,OAAA;AACd,+DAA4D;AAAnD,qHAAA,gBAAgB,OAAA;AACzB,2DAAwD;AAA/C,iHAAA,cAAc,OAAA;AACvB,uCAKsB;AAJpB,8FAAA,KAAK,OAAA;AAEL,iGAAA,QAAQ,OAAA;AACR,4GAAA,mBAAmB,OAAA;AAErB,kDAA+B;AAC/B,6CAA0B;AAC1B,yCAAsB;AACtB,oDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4B;AAiDnB,kBAAG;AA/CZ,mBAAmB;AACnB,+CAA4B;AAE5B,uBAAuB;AACvB,mCAAwD;AAA/C,0FAAA,GAAG,OAAA;AAAc,gGAAA,SAAS,OAAA;AACnC,2CAAwE;AAA/D,kGAAA,OAAO,OAAA;AAAkB,wGAAA,aAAa,OAAA;AAC/C,iDAA8C;AAArC,uGAAA,SAAS,OAAA;AAClB,6CAAwE;AAA/D,mGAAA,OAAO,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,0GAAA,cAAc,OAAA;AAC9C,iDAA0D;AAAjD,uGAAA,SAAS,OAAA;AAAE,wGAAA,UAAU,OAAA;AAC9B,iDAI2B;AAHzB,wGAAA,UAAU,OAAA;AAEV,8GAAA,gBAAgB,OAAA;AAElB,6CAA4E;AAAnE,oGAAA,QAAQ,OAAA;AAAmB,0GAAA,cAAc,OAAA;AAClD,yDAAsD;AAA7C,+GAAA,aAAa,OAAA;AACtB,qCAA4D;AAAnD,4FAAA,IAAI,OAAA;AAAe,kGAAA,UAAU,OAAA;AACtC,yDAAsD;AAA7C,+GAAA,aAAa,OAAA;AACtB,+DAA2D;AAAlD,oHAAA,eAAe,OAAA;AACxB,qCAA4D;AAAnD,4FAAA,IAAI,OAAA;AAAe,kGAAA,UAAU,OAAA;AACtC,2CAAyC;AAAhC,kGAAA,OAAO,OAAA;AAChB,qDAAkD;AAAzC,2GAAA,WAAW,OAAA;AACpB,mCAAwD;AAA/C,0FAAA,GAAG,OAAA;AAAc,gGAAA,SAAS,OAAA;AACnC,uCAAgE;AAAvD,8FAAA,KAAK,OAAA;AAAgB,oGAAA,WAAW,OAAA;AACzC,uDAAoD;AAA3C,6GAAA,YAAY,OAAA;AACrB,yCAAuC;AAA9B,gGAAA,MAAM,OAAA;AACf,+CAA4C;AAAnC,qGAAA,QAAQ,OAAA;AACjB,qCAA4D;AAAnD,4FAAA,IAAI,OAAA;AAAe,kGAAA,UAAU,OAAA;AACtC,6DAIiC;AAD/B,0HAAA,sBAAsB,OAAA;AAExB,uCAAqC;AAA5B,8FAAA,KAAK,OAAA;AACd,+DAA4D;AAAnD,qHAAA,gBAAgB,OAAA;AACzB,2DAAwD;AAA/C,iHAAA,cAAc,OAAA;AACvB,uCAKsB;AAJpB,8FAAA,KAAK,OAAA;AAEL,iGAAA,QAAQ,OAAA;AACR,4GAAA,mBAAmB,OAAA;AAErB,kDAA+B;AAC/B,6CAA0B;AAC1B,yCAAsB;AACtB,oDAAiC;AACjC,yDAAsC"}
@@ -0,0 +1,23 @@
1
+ import { IPFSv1, IPFSv2 } from '../misc';
2
+ import { JSONSchema, ValidateFunction } from '../validation';
3
+ /**
4
+ * Represents a content mapping. The Decentraland file system is
5
+ * case-insensitive. `file` must be lower cased.
6
+ *
7
+ * Duplicated files will throw a validation error.
8
+ *
9
+ * .file is a relative path
10
+ * .hash is a valid IPFS hash.
11
+ *
12
+ * @public
13
+ */
14
+ export declare type ContentMapping = {
15
+ file: string;
16
+ hash: IPFSv1 | IPFSv2;
17
+ };
18
+ /** @public */
19
+ export declare namespace ContentMapping {
20
+ const schema: JSONSchema<ContentMapping>;
21
+ const validate: ValidateFunction<ContentMapping>;
22
+ }
23
+ //# sourceMappingURL=content-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-mapping.d.ts","sourceRoot":"","sources":["../../src/misc/content-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAqB,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAE/E;;;;;;;;;;GAUG;AACH,oBAAY,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB,CAAA;AAED,cAAc;AACd,yBAAiB,cAAc,CAAC;IACvB,MAAM,MAAM,EAAE,UAAU,CAAC,cAAc,CAO7C,CAAA;IAEM,MAAM,QAAQ,EAAE,gBAAgB,CAAC,cAAc,CAC3B,CAAA;CAC5B"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContentMapping = void 0;
4
+ const misc_1 = require("../misc");
5
+ const validation_1 = require("../validation");
6
+ /** @public */
7
+ var ContentMapping;
8
+ (function (ContentMapping) {
9
+ ContentMapping.schema = {
10
+ type: 'object',
11
+ properties: {
12
+ file: { type: 'string', minLength: 1 },
13
+ hash: { type: 'string', oneOf: [misc_1.IPFSv1.schema, misc_1.IPFSv2.schema] }
14
+ },
15
+ required: ['file', 'hash']
16
+ };
17
+ ContentMapping.validate = (0, validation_1.generateValidator)(ContentMapping.schema);
18
+ })(ContentMapping = exports.ContentMapping || (exports.ContentMapping = {}));
19
+ //# sourceMappingURL=content-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-mapping.js","sourceRoot":"","sources":["../../src/misc/content-mapping.ts"],"names":[],"mappings":";;;AAAA,kCAAwC;AACxC,8CAA+E;AAkB/E,cAAc;AACd,IAAiB,cAAc,CAY9B;AAZD,WAAiB,cAAc;IAChB,qBAAM,GAA+B;QAChD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;YACtC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,aAAM,CAAC,MAAM,EAAE,aAAM,CAAC,MAAM,CAAC,EAAE;SAChE;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;KAC3B,CAAA;IAEY,uBAAQ,GACnB,IAAA,8BAAiB,EAAC,eAAA,MAAM,CAAC,CAAA;AAC7B,CAAC,EAZgB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAY9B"}
@@ -35,17 +35,29 @@ export declare namespace EthAddress {
35
35
  }
36
36
  /**
37
37
  * IPFSv2 is a data type that describes an IPFS v2 hash
38
- * @alpha
38
+ * @public
39
39
  */
40
40
  export declare type IPFSv2 = string;
41
41
  /**
42
42
  * IPFSv2
43
- * @alpha
43
+ * @public
44
44
  */
45
45
  export declare namespace IPFSv2 {
46
46
  const schema: JSONSchema<IPFSv2>;
47
47
  const validate: ValidateFunction<IPFSv2>;
48
48
  }
49
+ /**
50
+ * @public
51
+ */
52
+ export declare type IPFSv1 = string;
53
+ /**
54
+ * IPFSv1
55
+ * @public
56
+ */
57
+ export declare namespace IPFSv1 {
58
+ const schema: JSONSchema<IPFSv1>;
59
+ const validate: ValidateFunction<IPFSv1>;
60
+ }
49
61
  export declare type WithRequired<T, K extends keyof T> = T & {
50
62
  [P in K]-?: T[P];
51
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/misc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAE/E;;;GAGG;AACH,oBAAY,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAExD;;;GAGG;AACH,yBAAiB,MAAM,CAAC;IACf,MAAM,MAAM,EAAE,UAAU,CAAC,MAAM,CAoBrC,CAAA;IAEM,MAAM,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAEF,CAAA;CAC7C;AACD;;GAEG;AACH,oBAAY,UAAU,GAAG,MAAM,CAAA;AAE/B;;;GAGG;AACH,oBAAY,UAAU,GAAG,MAAM,CAAA;AAE/B;;;GAGG;AACH,yBAAiB,UAAU,CAAC;IACnB,MAAM,MAAM,EAAE,UAAU,CAAC,UAAU,CAGzC,CAAA;IAEM,MAAM,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAEI,CAAA;CACvD;AAED;;;GAGG;AACH,oBAAY,MAAM,GAAG,MAAM,CAAA;AAE3B;;;GAGG;AACH,yBAAiB,MAAM,CAAC;IACf,MAAM,MAAM,EAAE,UAAU,CAAC,MAAM,CAGrC,CAAA;IAEM,MAAM,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAER,CAAA;CACvC;AAED,oBAAY,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG;KAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/misc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAE/E;;;GAGG;AACH,oBAAY,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAExD;;;GAGG;AACH,yBAAiB,MAAM,CAAC;IACf,MAAM,MAAM,EAAE,UAAU,CAAC,MAAM,CAoBrC,CAAA;IAEM,MAAM,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAEF,CAAA;CAC7C;AACD;;GAEG;AACH,oBAAY,UAAU,GAAG,MAAM,CAAA;AAE/B;;;GAGG;AACH,oBAAY,UAAU,GAAG,MAAM,CAAA;AAE/B;;;GAGG;AACH,yBAAiB,UAAU,CAAC;IACnB,MAAM,MAAM,EAAE,UAAU,CAAC,UAAU,CAGzC,CAAA;IAEM,MAAM,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAEI,CAAA;CACvD;AAED;;;GAGG;AACH,oBAAY,MAAM,GAAG,MAAM,CAAA;AAE3B;;;GAGG;AACH,yBAAiB,MAAM,CAAC;IACf,MAAM,MAAM,EAAE,UAAU,CAAC,MAAM,CAGrC,CAAA;IAEM,MAAM,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAER,CAAA;CACvC;AAED;;GAEG;AACH,oBAAY,MAAM,GAAG,MAAM,CAAA;AAE3B;;;GAGG;AACH,yBAAiB,MAAM,CAAC;IACf,MAAM,MAAM,EAAE,UAAU,CAAC,MAAM,CAGrC,CAAA;IAEM,MAAM,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAER,CAAA;CACvC;AAED,oBAAY,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG;KAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IPFSv2 = exports.EthAddress = exports.Color3 = void 0;
3
+ exports.IPFSv1 = exports.IPFSv2 = exports.EthAddress = exports.Color3 = void 0;
4
4
  const validation_1 = require("../validation");
5
5
  /**
6
6
  * Color3
@@ -47,7 +47,7 @@ var EthAddress;
47
47
  })(EthAddress = exports.EthAddress || (exports.EthAddress = {}));
48
48
  /**
49
49
  * IPFSv2
50
- * @alpha
50
+ * @public
51
51
  */
52
52
  var IPFSv2;
53
53
  (function (IPFSv2) {
@@ -58,4 +58,17 @@ var IPFSv2;
58
58
  const regexp = new RegExp(IPFSv2.schema.pattern);
59
59
  IPFSv2.validate = (hash) => regexp.test(hash);
60
60
  })(IPFSv2 = exports.IPFSv2 || (exports.IPFSv2 = {}));
61
+ /**
62
+ * IPFSv1
63
+ * @public
64
+ */
65
+ var IPFSv1;
66
+ (function (IPFSv1) {
67
+ IPFSv1.schema = {
68
+ type: 'string',
69
+ pattern: '^(Qm)[a-zA-Z0-9]{44}$'
70
+ };
71
+ const regexp = new RegExp(IPFSv1.schema.pattern);
72
+ IPFSv1.validate = (hash) => regexp.test(hash);
73
+ })(IPFSv1 = exports.IPFSv1 || (exports.IPFSv1 = {}));
61
74
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/misc/index.ts"],"names":[],"mappings":";;;AAAA,8CAA+E;AAQ/E;;;GAGG;AACH,IAAiB,MAAM,CA0BtB;AA1BD,WAAiB,MAAM;IACR,aAAM,GAAuB;QACxC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACzB,UAAU,EAAE;YACV,CAAC,EAAE;gBACD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;aACX;YACD,CAAC,EAAE;gBACD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;aACX;YACD,CAAC,EAAE;gBACD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;aACX;SACF;KACF,CAAA;IACD,MAAM,eAAe,GAA6B,IAAA,8BAAiB,EAAC,OAAA,MAAM,CAAC,CAAA;IAC9D,eAAQ,GAA6B,CAChD,KAAU,EACO,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;AAC9C,CAAC,EA1BgB,MAAM,GAAN,cAAM,KAAN,cAAM,QA0BtB;AAYD;;;GAGG;AACH,IAAiB,UAAU,CAS1B;AATD,WAAiB,UAAU;IACZ,iBAAM,GAA2B;QAC5C,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,qBAAqB;KAC/B,CAAA;IACD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,WAAA,MAAM,CAAC,OAAQ,CAAC,CAAA;IAC7B,mBAAQ,GAAiC,CACpD,UAAe,EACW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AACxD,CAAC,EATgB,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAS1B;AAQD;;;GAGG;AACH,IAAiB,MAAM,CAStB;AATD,WAAiB,MAAM;IACR,aAAM,GAAuB;QACxC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,uBAAuB;KACjC,CAAA;IACD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAA,MAAM,CAAC,OAAQ,CAAC,CAAA;IAC7B,eAAQ,GAA6B,CAChD,IAAS,EACO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC,EATgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAStB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/misc/index.ts"],"names":[],"mappings":";;;AAAA,8CAA+E;AAQ/E;;;GAGG;AACH,IAAiB,MAAM,CA0BtB;AA1BD,WAAiB,MAAM;IACR,aAAM,GAAuB;QACxC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACzB,UAAU,EAAE;YACV,CAAC,EAAE;gBACD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;aACX;YACD,CAAC,EAAE;gBACD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;aACX;YACD,CAAC,EAAE;gBACD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;aACX;SACF;KACF,CAAA;IACD,MAAM,eAAe,GAA6B,IAAA,8BAAiB,EAAC,OAAA,MAAM,CAAC,CAAA;IAC9D,eAAQ,GAA6B,CAChD,KAAU,EACO,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;AAC9C,CAAC,EA1BgB,MAAM,GAAN,cAAM,KAAN,cAAM,QA0BtB;AAYD;;;GAGG;AACH,IAAiB,UAAU,CAS1B;AATD,WAAiB,UAAU;IACZ,iBAAM,GAA2B;QAC5C,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,qBAAqB;KAC/B,CAAA;IACD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,WAAA,MAAM,CAAC,OAAQ,CAAC,CAAA;IAC7B,mBAAQ,GAAiC,CACpD,UAAe,EACW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AACxD,CAAC,EATgB,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAS1B;AAQD;;;GAGG;AACH,IAAiB,MAAM,CAStB;AATD,WAAiB,MAAM;IACR,aAAM,GAAuB;QACxC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,uBAAuB;KACjC,CAAA;IACD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAA,MAAM,CAAC,OAAQ,CAAC,CAAA;IAC7B,eAAQ,GAA6B,CAChD,IAAS,EACO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC,EATgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAStB;AAOD;;;GAGG;AACH,IAAiB,MAAM,CAStB;AATD,WAAiB,MAAM;IACR,aAAM,GAAuB;QACxC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,uBAAuB;KACjC,CAAA;IACD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAA,MAAM,CAAC,OAAQ,CAAC,CAAA;IAC7B,eAAQ,GAA6B,CAChD,IAAS,EACO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC,EATgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAStB"}
@@ -0,0 +1,36 @@
1
+ import { IPFSv1, IPFSv2 } from '../misc';
2
+ import { ContentMapping } from '../misc/content-mapping';
3
+ import { JSONSchema, ValidateFunction } from '../validation';
4
+ /**
5
+ * Non-exhaustive list of EntityTypes.
6
+ * @public
7
+ */
8
+ export declare enum EntityType {
9
+ SCENE = "scene",
10
+ PROFILE = "profile",
11
+ WEARABLE = "wearable",
12
+ STORE = "store"
13
+ }
14
+ /**
15
+ * Internal representation of an entity in the catalyst.
16
+ *
17
+ * This Entity's content mappings adhere to ADR45.
18
+ *
19
+ * @public
20
+ */
21
+ export declare type Entity = {
22
+ /** @deprecated ADR45 removed entity versions. */
23
+ version: string;
24
+ id: IPFSv1 | IPFSv2;
25
+ type: EntityType;
26
+ pointers: string[];
27
+ timestamp: number;
28
+ content: ContentMapping[];
29
+ metadata?: any;
30
+ };
31
+ /** @public */
32
+ export declare namespace Entity {
33
+ const schema: JSONSchema<Entity>;
34
+ const validate: ValidateFunction<Entity>;
35
+ }
36
+ //# sourceMappingURL=entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/platform/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAqB,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAE/E;;;GAGG;AACH,oBAAY,UAAU;IACpB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,KAAK,UAAU;CAChB;AAED;;;;;;GAMG;AACH,oBAAY,MAAM,GAAG;IACnB,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,QAAQ,CAAC,EAAE,GAAG,CAAA;CACf,CAAA;AAED,cAAc;AACd,yBAAiB,MAAM,CAAC;IACf,MAAM,MAAM,EAAE,UAAU,CAAC,MAAM,CAYrC,CAAA;IAEM,MAAM,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAA6B,CAAA;CAC5E"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Entity = exports.EntityType = void 0;
4
+ const misc_1 = require("../misc");
5
+ const content_mapping_1 = require("../misc/content-mapping");
6
+ const validation_1 = require("../validation");
7
+ /**
8
+ * Non-exhaustive list of EntityTypes.
9
+ * @public
10
+ */
11
+ var EntityType;
12
+ (function (EntityType) {
13
+ EntityType["SCENE"] = "scene";
14
+ EntityType["PROFILE"] = "profile";
15
+ EntityType["WEARABLE"] = "wearable";
16
+ EntityType["STORE"] = "store";
17
+ })(EntityType = exports.EntityType || (exports.EntityType = {}));
18
+ /** @public */
19
+ var Entity;
20
+ (function (Entity) {
21
+ Entity.schema = {
22
+ type: 'object',
23
+ properties: {
24
+ version: { type: 'string', enum: ['v3'] },
25
+ id: { type: 'string', oneOf: [misc_1.IPFSv1.schema, misc_1.IPFSv2.schema] },
26
+ type: { type: 'string' },
27
+ pointers: { type: 'array', items: { type: 'string', minLength: 1 } },
28
+ timestamp: { type: 'number', minimum: 0 },
29
+ content: { type: 'array', items: content_mapping_1.ContentMapping.schema },
30
+ metadata: { type: 'object', nullable: true }
31
+ },
32
+ required: ['version', 'id', 'type', 'pointers', 'timestamp', 'content']
33
+ };
34
+ Entity.validate = (0, validation_1.generateValidator)(Entity.schema);
35
+ })(Entity = exports.Entity || (exports.Entity = {}));
36
+ //# sourceMappingURL=entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/platform/entity.ts"],"names":[],"mappings":";;;AAAA,kCAAwC;AACxC,6DAAwD;AACxD,8CAA+E;AAE/E;;;GAGG;AACH,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,iCAAmB,CAAA;IACnB,mCAAqB,CAAA;IACrB,6BAAe,CAAA;AACjB,CAAC,EALW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAKrB;AAoBD,cAAc;AACd,IAAiB,MAAM,CAgBtB;AAhBD,WAAiB,MAAM;IACR,aAAM,GAAuB;QACxC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;YACzC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,aAAM,CAAC,MAAM,EAAE,aAAM,CAAC,MAAM,CAAC,EAAE;YAC7D,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE;YACpE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YACzC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gCAAc,CAAC,MAAM,EAAE;YACxD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC7C;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC;KACxE,CAAA;IAEY,eAAQ,GAA6B,IAAA,8BAAiB,EAAC,OAAA,MAAM,CAAC,CAAA;AAC7E,CAAC,EAhBgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAgBtB"}
@@ -4,4 +4,5 @@ export * from './wearables';
4
4
  export * from './shared/displayable';
5
5
  export * from './merkle-tree';
6
6
  export * from './deployment-with-auth-chain';
7
+ export * from './entity';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,8BAA8B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,UAAU,CAAA"}
@@ -16,4 +16,5 @@ __exportStar(require("./wearables"), exports);
16
16
  __exportStar(require("./shared/displayable"), exports);
17
17
  __exportStar(require("./merkle-tree"), exports);
18
18
  __exportStar(require("./deployment-with-auth-chain"), exports);
19
+ __exportStar(require("./entity"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAyB;AACzB,0CAAuB;AACvB,8CAA2B;AAC3B,uDAAoC;AACpC,gDAA6B;AAC7B,+DAA4C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAyB;AACzB,0CAAuB;AACvB,8CAA2B;AAC3B,uDAAoC;AACpC,gDAA6B;AAC7B,+DAA4C;AAC5C,2CAAwB"}
package/dist/schemas.d.ts CHANGED
@@ -362,6 +362,28 @@ export declare namespace Color3 {
362
362
  const validate: ValidateFunction<Color3>;
363
363
  }
364
364
 
365
+ /**
366
+ * Represents a content mapping. The Decentraland file system is
367
+ * case-insensitive. `file` must be lower cased.
368
+ *
369
+ * Duplicated files will throw a validation error.
370
+ *
371
+ * .file is a relative path
372
+ * .hash is a valid IPFS hash.
373
+ *
374
+ * @public
375
+ */
376
+ export declare type ContentMapping = {
377
+ file: string;
378
+ hash: IPFSv1 | IPFSv2;
379
+ };
380
+
381
+ /** @public */
382
+ export declare namespace ContentMapping {
383
+ const schema: JSONSchema<ContentMapping>;
384
+ const validate: ValidateFunction<ContentMapping>;
385
+ }
386
+
365
387
  export declare type Contract = {
366
388
  name: string;
367
389
  address: string;
@@ -425,6 +447,41 @@ export declare namespace EmoteCategory {
425
447
  const validate: ValidateFunction<EmoteCategory>;
426
448
  }
427
449
 
450
+ /**
451
+ * Internal representation of an entity in the catalyst.
452
+ *
453
+ * This Entity's content mappings adhere to ADR45.
454
+ *
455
+ * @public
456
+ */
457
+ export declare type Entity = {
458
+ /** @deprecated ADR45 removed entity versions. */
459
+ version: string;
460
+ id: IPFSv1 | IPFSv2;
461
+ type: EntityType;
462
+ pointers: string[];
463
+ timestamp: number;
464
+ content: ContentMapping[];
465
+ metadata?: any;
466
+ };
467
+
468
+ /** @public */
469
+ export declare namespace Entity {
470
+ const schema: JSONSchema<Entity>;
471
+ const validate: ValidateFunction<Entity>;
472
+ }
473
+
474
+ /**
475
+ * Non-exhaustive list of EntityTypes.
476
+ * @public
477
+ */
478
+ export declare enum EntityType {
479
+ SCENE = "scene",
480
+ PROFILE = "profile",
481
+ WEARABLE = "wearable",
482
+ STORE = "store"
483
+ }
484
+
428
485
  /**
429
486
  * EthAddress is a data type that describes an Ethereum address
430
487
  * @alpha
@@ -491,15 +548,29 @@ export declare namespace I18N {
491
548
  const validate: ValidateFunction<I18N>;
492
549
  }
493
550
 
551
+ /**
552
+ * @public
553
+ */
554
+ export declare type IPFSv1 = string;
555
+
556
+ /**
557
+ * IPFSv1
558
+ * @public
559
+ */
560
+ export declare namespace IPFSv1 {
561
+ const schema: JSONSchema<IPFSv1>;
562
+ const validate: ValidateFunction<IPFSv1>;
563
+ }
564
+
494
565
  /**
495
566
  * IPFSv2 is a data type that describes an IPFS v2 hash
496
- * @alpha
567
+ * @public
497
568
  */
498
569
  export declare type IPFSv2 = string;
499
570
 
500
571
  /**
501
572
  * IPFSv2
502
- * @alpha
573
+ * @public
503
574
  */
504
575
  export declare namespace IPFSv2 {
505
576
  const schema: JSONSchema<IPFSv2>;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.13.0",
2
+ "version": "4.14.0",
3
3
  "name": "@dcl/schemas",
4
4
  "main": "./dist/index.js",
5
5
  "typings": "./dist/index.d.ts",
@@ -32,5 +32,5 @@
32
32
  "files": [
33
33
  "dist"
34
34
  ],
35
- "commit": "0fc991d295ef98977a25fc8e53cb9c7b10149da3"
35
+ "commit": "ff19bdf5de2b832156a8e31622671ac9e71a71dc"
36
36
  }