@xyo-network/payload-model 5.2.1 → 5.2.6

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.
@@ -10,5 +10,5 @@ export interface PayloadBundleFields<T extends Payload = Payload> {
10
10
  export type PayloadBundle = Payload<PayloadBundleFields, PayloadBundleSchema>;
11
11
  export declare const isPayloadBundle: (x?: unknown | null) => x is PayloadBundle;
12
12
  export declare const asPayloadBundle: import("@xylabs/object").AsTypeFunction<PayloadBundle>;
13
- export declare const asOptionalPayloadBundle: (value: import(".store/@xylabs-promise-npm-5.0.39-909d8d4932/package").AnyNonPromise) => PayloadBundle | undefined;
13
+ export declare const asOptionalPayloadBundle: (value: import(".store/@xylabs-promise-npm-5.0.41-8f4cd026b2/package").AnyNonPromise) => PayloadBundle | undefined;
14
14
  //# sourceMappingURL=PayloadBundle.d.ts.map
@@ -1,16 +1,95 @@
1
1
  import z from 'zod';
2
+ import type { Payload } from './Payload.ts';
3
+ import type { Schema } from './Schema.ts';
2
4
  export declare const HashMetaZod: z.ZodObject<{
3
5
  _hash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/hex").Hash, string>>;
4
6
  _dataHash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/hex").Hash, string>>;
5
7
  }, z.z.core.$strip>;
8
+ export type HashMeta = z.infer<typeof HashMetaZod>;
9
+ export type WithHashMeta<T extends Payload> = T & HashMeta;
10
+ export declare const isHashMeta: (value: unknown) => value is {
11
+ _hash: import("@xylabs/hex").Hash;
12
+ _dataHash: import("@xylabs/hex").Hash;
13
+ };
14
+ export declare const asHashMeta: {
15
+ (value: unknown): {
16
+ _hash: import("@xylabs/hex").Hash;
17
+ _dataHash: import("@xylabs/hex").Hash;
18
+ } | undefined;
19
+ (value: unknown, assert: import("@xylabs/zod").ZodFactoryConfig): {
20
+ _hash: import("@xylabs/hex").Hash;
21
+ _dataHash: import("@xylabs/hex").Hash;
22
+ };
23
+ };
24
+ export declare const toHashMeta: {
25
+ (value: unknown): {
26
+ _hash: import("@xylabs/hex").Hash;
27
+ _dataHash: import("@xylabs/hex").Hash;
28
+ } | undefined;
29
+ (value: unknown, assert: import("@xylabs/zod").ZodFactoryConfig): {
30
+ _hash: import("@xylabs/hex").Hash;
31
+ _dataHash: import("@xylabs/hex").Hash;
32
+ };
33
+ };
6
34
  export declare const SequenceMetaZod: z.ZodObject<{
7
35
  _sequence: z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("./StorageMeta/index.ts").LocalSequence, string>>, z.ZodPipe<z.ZodString, z.ZodTransform<import("./StorageMeta/index.ts").QualifiedSequence, string>>]>;
8
36
  }, z.z.core.$strip>;
37
+ export type SequenceMeta = z.infer<typeof SequenceMetaZod>;
38
+ export declare const isSequenceMeta: (value: unknown) => value is {
39
+ _sequence: import("./StorageMeta/index.ts").LocalSequence | import("./StorageMeta/index.ts").QualifiedSequence;
40
+ };
41
+ export declare const asSequenceMeta: {
42
+ (value: unknown): {
43
+ _sequence: import("./StorageMeta/index.ts").LocalSequence | import("./StorageMeta/index.ts").QualifiedSequence;
44
+ } | undefined;
45
+ (value: unknown, assert: import("@xylabs/zod").ZodFactoryConfig): {
46
+ _sequence: import("./StorageMeta/index.ts").LocalSequence | import("./StorageMeta/index.ts").QualifiedSequence;
47
+ };
48
+ };
49
+ export declare const toSequenceMeta: {
50
+ (value: unknown): {
51
+ _sequence: import("./StorageMeta/index.ts").LocalSequence | import("./StorageMeta/index.ts").QualifiedSequence;
52
+ } | undefined;
53
+ (value: unknown, assert: import("@xylabs/zod").ZodFactoryConfig): {
54
+ _sequence: import("./StorageMeta/index.ts").LocalSequence | import("./StorageMeta/index.ts").QualifiedSequence;
55
+ };
56
+ };
9
57
  export declare const StorageMetaZod: z.ZodObject<{
10
58
  _hash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/hex").Hash, string>>;
11
59
  _dataHash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/hex").Hash, string>>;
12
60
  _sequence: z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("./StorageMeta/index.ts").LocalSequence, string>>, z.ZodPipe<z.ZodString, z.ZodTransform<import("./StorageMeta/index.ts").QualifiedSequence, string>>]>;
13
61
  }, z.z.core.$strip>;
62
+ export type StorageMeta = z.infer<typeof StorageMetaZod>;
63
+ export type WithStorageMeta<T extends Payload = Payload> = T & StorageMeta;
64
+ export declare const isStorageMeta: (value: unknown) => value is {
65
+ _hash: import("@xylabs/hex").Hash;
66
+ _dataHash: import("@xylabs/hex").Hash;
67
+ _sequence: import("./StorageMeta/index.ts").LocalSequence | import("./StorageMeta/index.ts").QualifiedSequence;
68
+ };
69
+ export declare const asStorageMeta: {
70
+ (value: unknown): {
71
+ _hash: import("@xylabs/hex").Hash;
72
+ _dataHash: import("@xylabs/hex").Hash;
73
+ _sequence: import("./StorageMeta/index.ts").LocalSequence | import("./StorageMeta/index.ts").QualifiedSequence;
74
+ } | undefined;
75
+ (value: unknown, assert: import("@xylabs/zod").ZodFactoryConfig): {
76
+ _hash: import("@xylabs/hex").Hash;
77
+ _dataHash: import("@xylabs/hex").Hash;
78
+ _sequence: import("./StorageMeta/index.ts").LocalSequence | import("./StorageMeta/index.ts").QualifiedSequence;
79
+ };
80
+ };
81
+ export declare const toStorageMeta: {
82
+ (value: unknown): {
83
+ _hash: import("@xylabs/hex").Hash;
84
+ _dataHash: import("@xylabs/hex").Hash;
85
+ _sequence: import("./StorageMeta/index.ts").LocalSequence | import("./StorageMeta/index.ts").QualifiedSequence;
86
+ } | undefined;
87
+ (value: unknown, assert: import("@xylabs/zod").ZodFactoryConfig): {
88
+ _hash: import("@xylabs/hex").Hash;
89
+ _dataHash: import("@xylabs/hex").Hash;
90
+ _sequence: import("./StorageMeta/index.ts").LocalSequence | import("./StorageMeta/index.ts").QualifiedSequence;
91
+ };
92
+ };
14
93
  export declare const PayloadZod: z.ZodObject<{
15
94
  schema: z.ZodString;
16
95
  }, z.z.core.$strip>;
@@ -57,10 +136,14 @@ export declare const PayloadZodStrict: z.ZodObject<{
57
136
  }, z.z.core.$strict>;
58
137
  export type PayloadZodStrict = typeof PayloadZodStrict;
59
138
  export declare const PayloadZodLoose: PayloadZodStrict;
60
- export declare const PayloadZodStrictOfSchema: <S extends string>(schema: S) => z.ZodObject<{
139
+ export type PayloadZodLoose = typeof PayloadZodLoose;
140
+ export declare const PayloadZodOfSchema: <S extends Schema>(schema: S) => z.ZodObject<{
141
+ schema: z.ZodLiteral<S>;
142
+ }, z.z.core.$strip>;
143
+ export declare const PayloadZodStrictOfSchema: <S extends Schema>(schema: S) => z.ZodObject<{
61
144
  schema: z.ZodLiteral<S>;
62
145
  }, z.z.core.$strict>;
63
- export declare const PayloadZodLooseOfSchema: <S extends string>(schema: S) => z.ZodObject<{
146
+ export declare const PayloadZodLooseOfSchema: <S extends Schema>(schema: S) => z.ZodObject<{
64
147
  schema: z.ZodLiteral<S>;
65
148
  }, z.z.core.$strict>;
66
149
  //# sourceMappingURL=PayloadZod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayloadZod.d.ts","sourceRoot":"","sources":["../../src/PayloadZod.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAA;AAKnB,eAAO,MAAM,WAAW;;;mBAGtB,CAAA;AAEF,eAAO,MAAM,eAAe;;mBAAiD,CAAA;AAE7E,eAAO,MAAM,cAAc;;;;mBAIzB,CAAA;AAEF,eAAO,MAAM,UAAU;;mBAAkC,CAAA;AAEzD,yCAAyC;AACzC,eAAO,MAAM,yBAAyB;;;;;mBAA0C,CAAA;AAEhF,eAAO,MAAM,aAAa;;mBAAqB,CAAA;AAE/C,yCAAyC;AACzC,eAAO,MAAM,4BAA4B;;;;;mBAA6C,CAAA;AAEtF,yCAAyC;AAEzC,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE9E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEtD,yCAAyC;AAEzC,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEpF,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;;;;;;;;+EAEnF;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;;;;;;+EAEhF;AAED,eAAO,MAAM,gBAAgB;;oBAAwC,CAAA;AACrE,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAA;AACtD,eAAO,MAAM,eAAe,EAAE,gBAAuD,CAAA;AAErF,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC;;oBAA2D,CAAA;AAC/H,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC;;oBAA0D,CAAA"}
1
+ {"version":3,"file":"PayloadZod.d.ts","sourceRoot":"","sources":["../../src/PayloadZod.ts"],"names":[],"mappings":"AAIA,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIzC,eAAO,MAAM,WAAW;;;mBAGtB,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAElD,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,GAAG,QAAQ,CAAA;AAE1D,eAAO,MAAM,UAAU;;;CAA4B,CAAA;AACnD,eAAO,MAAM,UAAU;;;;;;;;;CAA0C,CAAA;AACjE,eAAO,MAAM,UAAU;;;;;;;;;CAA0C,CAAA;AAEjE,eAAO,MAAM,eAAe;;mBAAiD,CAAA;AAE7E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAE1D,eAAO,MAAM,cAAc;;CAAgC,CAAA;AAC3D,eAAO,MAAM,cAAc;;;;;;;CAAkD,CAAA;AAC7E,eAAO,MAAM,cAAc;;;;;;;CAAkD,CAAA;AAE7E,eAAO,MAAM,cAAc;;;;mBAIzB,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAExD,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,GAAG,WAAW,CAAA;AAE1E,eAAO,MAAM,aAAa;;;;CAA+B,CAAA;AACzD,eAAO,MAAM,aAAa;;;;;;;;;;;CAAgD,CAAA;AAC1E,eAAO,MAAM,aAAa;;;;;;;;;;;CAAgD,CAAA;AAE1E,eAAO,MAAM,UAAU;;mBAAkC,CAAA;AAEzD,yCAAyC;AACzC,eAAO,MAAM,yBAAyB;;;;;mBAA0C,CAAA;AAEhF,eAAO,MAAM,aAAa;;mBAAqB,CAAA;AAE/C,yCAAyC;AACzC,eAAO,MAAM,4BAA4B;;;;;mBAA6C,CAAA;AAEtF,yCAAyC;AAEzC,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE9E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEtD,yCAAyC;AAEzC,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEpF,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;;;;;;;;+EAEnF;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;;;;;;+EAEhF;AAED,eAAO,MAAM,gBAAgB;;oBAAwC,CAAA;AACrE,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAA;AAEtD,eAAO,MAAM,eAAe,EAAE,gBAAuD,CAAA;AACrF,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAA;AAEpD,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC;;mBAAqD,CAAA;AACnH,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC;;oBAA2D,CAAA;AAC/H,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC;;oBAA0D,CAAA"}
@@ -7,7 +7,7 @@ export type WithDataHashMeta<T extends Payload = Payload> = T & DataHashMeta;
7
7
  export type WithPartialDataHashMeta<T extends Payload = Payload> = Partial<WithDataHashMeta<T>>;
8
8
  export declare const isDataHashMeta: (value: unknown) => value is DataHashMeta;
9
9
  export declare const asDataHashMeta: import("@xylabs/object").AsTypeFunction<DataHashMeta>;
10
- export declare const asOptionalDataHashMeta: (value: import(".store/@xylabs-promise-npm-5.0.39-909d8d4932/package").AnyNonPromise) => DataHashMeta | undefined;
10
+ export declare const asOptionalDataHashMeta: (value: import(".store/@xylabs-promise-npm-5.0.41-8f4cd026b2/package").AnyNonPromise) => DataHashMeta | undefined;
11
11
  /** @deprecated use DataHashMeta instead */
12
12
  export interface DataHashStorageMeta extends DataHashMeta {
13
13
  }
@@ -20,5 +20,5 @@ export declare const isDataHashStorageMeta: (value: unknown) => value is DataHas
20
20
  /** @deprecated use asDataHashMeta instead */
21
21
  export declare const asDataHashStorageMeta: import("@xylabs/object").AsTypeFunction<DataHashMeta>;
22
22
  /** @deprecated use asOptionalDataHashMeta instead */
23
- export declare const asOptionalDataHashStorageMeta: (value: import(".store/@xylabs-promise-npm-5.0.39-909d8d4932/package").AnyNonPromise) => DataHashMeta | undefined;
23
+ export declare const asOptionalDataHashStorageMeta: (value: import(".store/@xylabs-promise-npm-5.0.41-8f4cd026b2/package").AnyNonPromise) => DataHashMeta | undefined;
24
24
  //# sourceMappingURL=DataHash.d.ts.map
@@ -8,7 +8,7 @@ export type WithHashMeta<T extends Payload = Payload> = T & HashMeta;
8
8
  export type WithPartialHashMeta<T extends Payload = Payload> = Partial<WithHashMeta<T>>;
9
9
  export declare const isHashMeta: (value: unknown) => value is HashMeta;
10
10
  export declare const asHashMeta: import("@xylabs/object").AsTypeFunction<HashMeta>;
11
- export declare const asOptionalHashMeta: (value: import(".store/@xylabs-promise-npm-5.0.39-909d8d4932/package").AnyNonPromise) => HashMeta | undefined;
11
+ export declare const asOptionalHashMeta: (value: import(".store/@xylabs-promise-npm-5.0.41-8f4cd026b2/package").AnyNonPromise) => HashMeta | undefined;
12
12
  /** @deprecated use HashMeta instead */
13
13
  export interface HashStorageMeta extends HashMeta {
14
14
  }
@@ -21,5 +21,5 @@ export declare const isHashStorageMeta: (value: unknown) => value is HashMeta;
21
21
  /** @deprecated use asHashMeta instead */
22
22
  export declare const asHashStorageMeta: import("@xylabs/object").AsTypeFunction<HashMeta>;
23
23
  /** @deprecated use asOptionalHashMeta instead */
24
- export declare const asOptionalHashStorageMeta: (value: import(".store/@xylabs-promise-npm-5.0.39-909d8d4932/package").AnyNonPromise) => HashMeta | undefined;
24
+ export declare const asOptionalHashStorageMeta: (value: import(".store/@xylabs-promise-npm-5.0.41-8f4cd026b2/package").AnyNonPromise) => HashMeta | undefined;
25
25
  //# sourceMappingURL=Hash.d.ts.map
@@ -7,5 +7,5 @@ export type WithSequenceStorageMeta<T extends Payload = Payload> = T & SequenceS
7
7
  export type WithPartialSequenceStorageMeta<T extends Payload = Payload> = Partial<WithSequenceStorageMeta<T>>;
8
8
  export declare const isSequenceStorageMeta: (value: unknown) => value is SequenceStorageMeta;
9
9
  export declare const asSequenceStorageMeta: import("@xylabs/object").AsTypeFunction<SequenceStorageMeta>;
10
- export declare const asOptionalSequenceStorageMeta: (value: import(".store/@xylabs-promise-npm-5.0.39-909d8d4932/package").AnyNonPromise) => SequenceStorageMeta | undefined;
10
+ export declare const asOptionalSequenceStorageMeta: (value: import(".store/@xylabs-promise-npm-5.0.41-8f4cd026b2/package").AnyNonPromise) => SequenceStorageMeta | undefined;
11
11
  //# sourceMappingURL=Sequence.d.ts.map
@@ -1,6 +1,3 @@
1
- export * from './DataHash.ts';
2
- export * from './Hash.ts';
3
1
  export * from './Sequence.ts';
4
2
  export * from './sequence/index.ts';
5
- export * from './StorageMeta.ts';
6
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/StorageMeta/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/StorageMeta/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA"}
@@ -53,6 +53,11 @@ var PayloadSetSchema = "network.xyo.payload.set";
53
53
 
54
54
  // src/PayloadZod.ts
55
55
  import { HashZod } from "@xylabs/hex";
56
+ import {
57
+ zodAsFactory as zodAsFactory2,
58
+ zodIsFactory as zodIsFactory2,
59
+ zodToFactory
60
+ } from "@xylabs/zod";
56
61
  import z3 from "zod";
57
62
 
58
63
  // src/Schema.ts
@@ -69,37 +74,13 @@ var isSchema = zodIsFactory(SchemaZod);
69
74
  var asSchema = zodAsFactory(SchemaZod, "asSchema");
70
75
  var toSchema = zodAsFactory(SchemaZod, "toSchema");
71
76
 
72
- // src/StorageMeta/DataHash.ts
73
- import { isHash } from "@xylabs/hex";
74
- import { AsObjectFactory as AsObjectFactory3 } from "@xylabs/object";
75
- var isDataHashMeta = (value) => {
76
- return isHash(value?._dataHash);
77
- };
78
- var asDataHashMeta = AsObjectFactory3.create(isDataHashMeta);
79
- var asOptionalDataHashMeta = AsObjectFactory3.createOptional(isDataHashMeta);
80
- var isDataHashStorageMeta = isDataHashMeta;
81
- var asDataHashStorageMeta = asDataHashMeta;
82
- var asOptionalDataHashStorageMeta = asOptionalDataHashMeta;
83
-
84
- // src/StorageMeta/Hash.ts
85
- import { isHash as isHash2 } from "@xylabs/hex";
86
- import { AsObjectFactory as AsObjectFactory4 } from "@xylabs/object";
87
- var isHashMeta = (value) => {
88
- return isDataHashMeta(value) && isHash2(value?._hash);
89
- };
90
- var asHashMeta = AsObjectFactory4.create(isHashMeta);
91
- var asOptionalHashMeta = AsObjectFactory4.createOptional(isHashMeta);
92
- var isHashStorageMeta = isHashMeta;
93
- var asHashStorageMeta = asHashMeta;
94
- var asOptionalHashStorageMeta = asOptionalHashMeta;
95
-
96
77
  // src/StorageMeta/Sequence.ts
97
- import { AsObjectFactory as AsObjectFactory5 } from "@xylabs/object";
78
+ import { AsObjectFactory as AsObjectFactory3 } from "@xylabs/object";
98
79
  var isSequenceStorageMeta = (value) => {
99
80
  return value?._sequence != void 0;
100
81
  };
101
- var asSequenceStorageMeta = AsObjectFactory5.create(isSequenceStorageMeta);
102
- var asOptionalSequenceStorageMeta = AsObjectFactory5.createOptional(isSequenceStorageMeta);
82
+ var asSequenceStorageMeta = AsObjectFactory3.create(isSequenceStorageMeta);
83
+ var asOptionalSequenceStorageMeta = AsObjectFactory3.createOptional(isSequenceStorageMeta);
103
84
 
104
85
  // src/StorageMeta/sequence/Parser.ts
105
86
  import { toUint8Array } from "@xylabs/arraybuffer";
@@ -280,25 +261,26 @@ var QualifiedSequenceFromStringZod = z2.string().regex(QualifiedSequenceRegex).t
280
261
  var SequenceToStringZod = z2.union([LocalSequenceToStringZod, QualifiedSequenceToStringZod]);
281
262
  var SequenceFromStringZod = z2.union([LocalSequenceFromStringZod, QualifiedSequenceFromStringZod]);
282
263
 
283
- // src/StorageMeta/StorageMeta.ts
284
- import { AsObjectFactory as AsObjectFactory6 } from "@xylabs/object";
285
- var isStorageMeta = (value) => {
286
- return isSequenceStorageMeta(value) && isHashMeta(value);
287
- };
288
- var asStorageMeta = AsObjectFactory6.create(isStorageMeta);
289
- var asOptionalStorageMeta = AsObjectFactory6.createOptional(isStorageMeta);
290
-
291
264
  // src/PayloadZod.ts
292
265
  var HashMetaZod = z3.object({
293
266
  _hash: HashZod,
294
267
  _dataHash: HashZod
295
268
  });
269
+ var isHashMeta = zodIsFactory2(HashMetaZod);
270
+ var asHashMeta = zodAsFactory2(HashMetaZod, "asHashMeta");
271
+ var toHashMeta = zodToFactory(HashMetaZod, "toHashMeta");
296
272
  var SequenceMetaZod = z3.object({ _sequence: SequenceFromStringZod });
273
+ var isSequenceMeta = zodIsFactory2(SequenceMetaZod);
274
+ var asSequenceMeta = zodAsFactory2(SequenceMetaZod, "asSequenceMeta");
275
+ var toSequenceMeta = zodToFactory(SequenceMetaZod, "toSequenceMeta");
297
276
  var StorageMetaZod = z3.object({
298
277
  _hash: HashZod,
299
278
  _dataHash: HashZod,
300
279
  _sequence: SequenceFromStringZod
301
280
  });
281
+ var isStorageMeta = zodIsFactory2(StorageMetaZod);
282
+ var asStorageMeta = zodAsFactory2(StorageMetaZod, "asStorageMeta");
283
+ var toStorageMeta = zodToFactory(StorageMetaZod, "toStorageMeta");
302
284
  var PayloadZod = z3.object({ schema: SchemaZod });
303
285
  var PayloadWithStorageMetaZod = PayloadZod.extend(StorageMetaZod.shape);
304
286
  var AnyPayloadZod = PayloadZod.loose();
@@ -311,6 +293,7 @@ function WithHashMetaZod(valueZod) {
311
293
  }
312
294
  var PayloadZodStrict = z3.strictObject({ schema: SchemaZod });
313
295
  var PayloadZodLoose = z3.looseObject({ schema: SchemaZod });
296
+ var PayloadZodOfSchema = (schema) => PayloadZod.extend({ schema: z3.literal(schema) });
314
297
  var PayloadZodStrictOfSchema = (schema) => PayloadZodStrict.extend({ schema: z3.literal(schema) });
315
298
  var PayloadZodLooseOfSchema = (schema) => PayloadZodLoose.extend({ schema: z3.literal(schema) });
316
299
  export {
@@ -329,6 +312,7 @@ export {
329
312
  PayloadZod,
330
313
  PayloadZodLoose,
331
314
  PayloadZodLooseOfSchema,
315
+ PayloadZodOfSchema,
332
316
  PayloadZodStrict,
333
317
  PayloadZodStrictOfSchema,
334
318
  QualifiedSequenceConstants,
@@ -349,28 +333,18 @@ export {
349
333
  WithHashMetaZod,
350
334
  WithStorageMetaZod,
351
335
  asAnyPayload,
352
- asDataHashMeta,
353
- asDataHashStorageMeta,
354
336
  asHashMeta,
355
- asHashStorageMeta,
356
- asOptionalDataHashMeta,
357
- asOptionalDataHashStorageMeta,
358
- asOptionalHashMeta,
359
- asOptionalHashStorageMeta,
360
337
  asOptionalPayloadBundle,
361
338
  asOptionalSequenceStorageMeta,
362
- asOptionalStorageMeta,
363
339
  asPayload,
364
340
  asPayloadBundle,
365
341
  asSchema,
342
+ asSequenceMeta,
366
343
  asSequenceStorageMeta,
367
344
  asStorageMeta,
368
345
  isAnyPayload,
369
- isDataHashMeta,
370
- isDataHashStorageMeta,
371
346
  isEpoch,
372
347
  isHashMeta,
373
- isHashStorageMeta,
374
348
  isLocalSequence,
375
349
  isModuleError,
376
350
  isNonce,
@@ -382,10 +356,14 @@ export {
382
356
  isQualifiedSequence,
383
357
  isSchema,
384
358
  isSequence,
359
+ isSequenceMeta,
385
360
  isSequenceStorageMeta,
386
361
  isStorageMeta,
387
362
  makeSchema,
388
363
  notPayloadOfSchemaType,
389
- toSchema
364
+ toHashMeta,
365
+ toSchema,
366
+ toSequenceMeta,
367
+ toStorageMeta
390
368
  };
391
369
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/isPayload.ts","../../src/isPayloadOfSchemaType.ts","../../src/Error.ts","../../src/isPayloadOfZodType.ts","../../src/PayloadBundle.ts","../../src/PayloadSet/PayloadSetSchema.ts","../../src/PayloadZod.ts","../../src/Schema.ts","../../src/StorageMeta/DataHash.ts","../../src/StorageMeta/Hash.ts","../../src/StorageMeta/Sequence.ts","../../src/StorageMeta/sequence/Parser.ts","../../src/StorageMeta/sequence/Sequence.ts","../../src/StorageMeta/sequence/Comparer.ts","../../src/StorageMeta/sequence/SequenceZod.ts","../../src/StorageMeta/StorageMeta.ts"],"sourcesContent":["import { AsObjectFactory, isObject } from '@xylabs/object'\n\nimport type { Payload } from './Payload.ts'\n\nexport const isAnyPayload = (value: unknown): value is Payload => {\n if (isObject(value)) {\n return typeof (value as Payload).schema === 'string'\n }\n return false\n}\n\nexport const asAnyPayload = AsObjectFactory.create(isAnyPayload)\n\nexport const isPayload\n = <T extends Payload>(schema: string[]) =>\n (value: unknown): value is T => {\n if (isAnyPayload(value)) {\n return schema.includes(value.schema)\n }\n return false\n }\n\nexport const asPayload = <T extends Payload>(schema: string[]) => AsObjectFactory.create((value: unknown): value is T => isPayload(schema)(value))\n","import { isAnyPayload } from './isPayload.ts'\nimport type { Payload, WithSources } from './Payload.ts'\n\nexport function isPayloadOfSchemaType<T extends Payload | never = never>(schema: T['schema']) {\n return (x?: unknown | null): x is T => isAnyPayload(x) && x?.schema === schema\n}\n\nexport const isPayloadOfSchemaTypeWithSources = <T extends Payload | never = never>(schema: T['schema']) => {\n return (x?: unknown | null): x is WithSources<T> =>\n isPayloadOfSchemaType<WithSources<T>>(schema)(x) && x.$sources != undefined && Array.isArray(x.$sources)\n}\n\nexport const notPayloadOfSchemaType = <T extends Payload | never = never>(schema: T['schema']) => {\n return (x?: unknown | null): x is T => !isAnyPayload(x) || x?.schema !== schema\n}\n\n// test types -- keep for future validation, but comment out\n\n/*\ntype TestSchema = 'network.xyo.test'\nconst TestSchema: TestSchema = 'network.xyo.test'\n\ntype Test = Payload<{ field: string }, TestSchema>\n\nconst testPayload: Test = { field: 'test', schema: TestSchema }\n\nconst testPayloads: Payload[] = [testPayload]\n\nconst isTest: Test[] = testPayloads.filter(isPayloadOfSchemaType<Payload>(TestSchema))\n\nconst isTestFromMetaTyped = testMetaPayloads.filter(isPayloadOfSchemaType<Test>(TestSchema))\n*/\n","import type { Hash } from '@xylabs/hex'\nimport type { JsonValue } from '@xylabs/object'\n\nimport { isPayloadOfSchemaType } from './isPayloadOfSchemaType.ts'\nimport type { Payload } from './Payload.ts'\nimport type { Schema } from './Schema.ts'\n\nexport const ModuleErrorSchema = 'network.xyo.error.module' as Schema\nexport type ModuleErrorSchema = typeof ModuleErrorSchema\n\nexport type ModuleError = Payload<{\n details?: JsonValue\n message?: string\n name?: string\n query?: Hash | Schema\n schema: ModuleErrorSchema\n}>\n\nexport const isModuleError = isPayloadOfSchemaType<ModuleError>(ModuleErrorSchema)\n","import { isDefined } from '@xylabs/typeof'\nimport type { ZodObject } from 'zod'\n\nimport { isAnyPayload } from './isPayload.ts'\nimport type { Payload } from './Payload.ts'\n\n/**\n * Checks if a value is a payload of a specific Zod type.\n * @param zodSchema The Zod schema to validate against\n * @param schema The schema string to match against the payload. Optional in\n * case you want to validate any payload matching the Zod schema or in case\n * schema is part of the Zod schema.\n * @returns A function that checks if a value is a payload of the specified Zod type\n */\nexport function isPayloadOfZodType<\n T extends Payload | never = never,\n S extends ZodObject = ZodObject,\n>(zodSchema: S, schema?: T['schema']) {\n return (x?: unknown | null): x is T => {\n if (!isAnyPayload(x)) return false\n if (isDefined(schema) && x.schema !== schema) return false\n const { schema: _, ...data } = x\n return zodSchema.safeParse(data).success\n }\n}\n","import type { Hash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\n\nimport { isPayloadOfSchemaType } from './isPayloadOfSchemaType.ts'\nimport type { Payload } from './Payload.ts'\nimport type { Schema } from './Schema.ts'\n\n// payload that wraps a complete boundwitness with its payloads for use in systems such as submission queues\nexport const PayloadBundleSchema = 'network.xyo.payload.bundle' as Schema\nexport type PayloadBundleSchema = typeof PayloadBundleSchema\n\nexport interface PayloadBundleFields<T extends Payload = Payload> {\n payloads: T[]\n root: Hash\n}\n\nexport type PayloadBundle = Payload<PayloadBundleFields, PayloadBundleSchema>\n\nexport const isPayloadBundle = isPayloadOfSchemaType<PayloadBundle>(PayloadBundleSchema)\n\nexport const asPayloadBundle = AsObjectFactory.create(isPayloadBundle)\nexport const asOptionalPayloadBundle = AsObjectFactory.createOptional(isPayloadBundle)\n","import type { Schema } from '../Schema.ts'\n\nexport const PayloadSetSchema = 'network.xyo.payload.set' as Schema\nexport type PayloadSetSchema = typeof PayloadSetSchema\n","import { HashZod } from '@xylabs/hex'\nimport z from 'zod'\n\nimport { SchemaZod } from './Schema.ts'\nimport { SequenceFromStringZod } from './StorageMeta/index.ts'\n\nexport const HashMetaZod = z.object({\n _hash: HashZod,\n _dataHash: HashZod,\n})\n\nexport const SequenceMetaZod = z.object({ _sequence: SequenceFromStringZod })\n\nexport const StorageMetaZod = z.object({\n _hash: HashZod,\n _dataHash: HashZod,\n _sequence: SequenceFromStringZod,\n})\n\nexport const PayloadZod = z.object({ schema: SchemaZod })\n\n/** @deprecated use WithStorageMetaZod */\nexport const PayloadWithStorageMetaZod = PayloadZod.extend(StorageMetaZod.shape)\n\nexport const AnyPayloadZod = PayloadZod.loose()\n\n/** @deprecated use WithStorageMetaZod */\nexport const AnyPayloadWithStorageMetaZod = AnyPayloadZod.extend(StorageMetaZod.shape)\n\n/** @deprecated use WithStorageMetaZod */\n// eslint-disable-next-line sonarjs/deprecation\nexport type PayloadWithStorageMeta = z.infer<typeof PayloadWithStorageMetaZod>\n\nexport type AnyPayload = z.infer<typeof AnyPayloadZod>\n\n/** @deprecated use WithStorageMetaZod */\n// eslint-disable-next-line sonarjs/deprecation\nexport type AnyPayloadWithStorageMeta = z.infer<typeof AnyPayloadWithStorageMetaZod>\n\nexport function WithStorageMetaZod<T extends z.ZodRawShape>(valueZod: z.ZodObject<T>) {\n return valueZod.extend(StorageMetaZod.shape)\n}\n\nexport function WithHashMetaZod<T extends z.ZodRawShape>(valueZod: z.ZodObject<T>) {\n return valueZod.extend(HashMetaZod.shape)\n}\n\nexport const PayloadZodStrict = z.strictObject({ schema: SchemaZod })\nexport type PayloadZodStrict = typeof PayloadZodStrict\nexport const PayloadZodLoose: PayloadZodStrict = z.looseObject({ schema: SchemaZod })\n\nexport const PayloadZodStrictOfSchema = <S extends string>(schema: S) => PayloadZodStrict.extend({ schema: z.literal(schema) })\nexport const PayloadZodLooseOfSchema = <S extends string>(schema: S) => PayloadZodLoose.extend({ schema: z.literal(schema) })\n","import type { EmptyObject } from '@xylabs/object'\nimport { zodAsFactory, zodIsFactory } from '@xylabs/zod'\nimport z from 'zod'\n\nexport const SchemaRegEx = /^(?:[a-z0-9]+\\.)*[a-z0-9]+$/\n\nexport const SchemaZod = z.string().regex(SchemaRegEx)\nexport type Schema = z.infer<typeof SchemaZod>\n\nexport const makeSchema = <T extends string>(value: T) => {\n return (z.templateLiteral([z.literal(value)])).transform(x => x as (typeof x & { __schema: true }))\n}\n\nexport const PayloadSchema = 'network.xyo.payload' as const\nexport const PayloadSchemaZod = z.literal(PayloadSchema)\nexport type PayloadSchema = z.infer<typeof PayloadSchemaZod>\n\nexport const isSchema = zodIsFactory(SchemaZod)\nexport const asSchema = zodAsFactory(SchemaZod, 'asSchema')\nexport const toSchema = zodAsFactory(SchemaZod, 'toSchema')\n\n/** Add the Schema Fields to an object */\nexport type WithSchema<T extends EmptyObject | void = void> = T extends EmptyObject ? SchemaFields & T : SchemaFields\n\n/** Schema fields for a Payload */\nexport interface SchemaFields extends EmptyObject {\n /** Schema of the object */\n schema: Schema\n}\n","import type { Hash } from '@xylabs/hex'\nimport { isHash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\n\nimport type { Payload } from '../Payload.ts'\n\nexport interface DataHashMeta {\n _dataHash: Hash\n}\n\nexport type WithDataHashMeta<T extends Payload = Payload> = T & DataHashMeta\nexport type WithPartialDataHashMeta<T extends Payload = Payload> = Partial<WithDataHashMeta<T>>\n\nexport const isDataHashMeta = (value: unknown): value is DataHashMeta => {\n return isHash((value as WithDataHashMeta)?._dataHash)\n}\n\nexport const asDataHashMeta = AsObjectFactory.create<DataHashMeta>(isDataHashMeta)\nexport const asOptionalDataHashMeta = AsObjectFactory.createOptional<DataHashMeta>(isDataHashMeta)\n\n/** @deprecated use DataHashMeta instead */\nexport interface DataHashStorageMeta extends DataHashMeta {}\n\n/** @deprecated use WithDataHashMeta instead */\nexport type WithDataHashStorageMeta<T extends Payload = Payload> = WithDataHashMeta<T>\n\n/** @deprecated use WithPartialDataHashMeta instead */\nexport type WithPartialDataHashStorageMeta<T extends Payload = Payload> = WithPartialDataHashMeta<T>\n\n/** @deprecated use isDataHashMeta instead */\nexport const isDataHashStorageMeta = isDataHashMeta\n\n/** @deprecated use asDataHashMeta instead */\nexport const asDataHashStorageMeta = asDataHashMeta\n\n/** @deprecated use asOptionalDataHashMeta instead */\nexport const asOptionalDataHashStorageMeta = asOptionalDataHashMeta\n","import type { Hash } from '@xylabs/hex'\nimport { isHash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\n\nimport type { Payload } from '../Payload.ts'\nimport type { DataHashMeta } from './DataHash.ts'\nimport { isDataHashMeta } from './DataHash.ts'\n\nexport interface HashMeta extends DataHashMeta {\n _hash: Hash\n}\n\nexport type WithHashMeta<T extends Payload = Payload> = T & HashMeta\nexport type WithPartialHashMeta<T extends Payload = Payload> = Partial<WithHashMeta<T>>\n\nexport const isHashMeta = (value: unknown): value is HashMeta => {\n return isDataHashMeta(value) && isHash((value as WithHashMeta)?._hash)\n}\n\nexport const asHashMeta = AsObjectFactory.create<HashMeta>(isHashMeta)\nexport const asOptionalHashMeta = AsObjectFactory.createOptional<HashMeta>(isHashMeta)\n\n/** @deprecated use HashMeta instead */\nexport interface HashStorageMeta extends HashMeta {}\n\n/** @deprecated use WithHashMeta instead */\nexport type WithHashStorageMeta<T extends Payload = Payload> = WithHashMeta<T>\n\n/** @deprecated use WithPartialHashMeta instead */\nexport type WithPartialHashStorageMeta<T extends Payload = Payload> = Partial<WithHashMeta<T>>\n\n/** @deprecated use isHashMeta instead */\nexport const isHashStorageMeta = isHashMeta\n\n/** @deprecated use asHashMeta instead */\nexport const asHashStorageMeta = asHashMeta\n\n/** @deprecated use asOptionalHashMeta instead */\nexport const asOptionalHashStorageMeta = asOptionalHashMeta\n","import { AsObjectFactory } from '@xylabs/object'\n\nimport type { Payload } from '../Payload.ts'\nimport type { Sequence } from './sequence/index.ts'\n\nexport interface SequenceStorageMeta {\n _sequence: Sequence\n}\n\nexport type WithSequenceStorageMeta<T extends Payload = Payload> = T & SequenceStorageMeta\nexport type WithPartialSequenceStorageMeta<T extends Payload = Payload> = Partial<WithSequenceStorageMeta<T>>\n\nexport const isSequenceStorageMeta = (value: unknown): value is SequenceStorageMeta => {\n return (value as WithSequenceStorageMeta)?._sequence != undefined\n}\n\nexport const asSequenceStorageMeta = AsObjectFactory.create(isSequenceStorageMeta)\nexport const asOptionalSequenceStorageMeta = AsObjectFactory.createOptional(isSequenceStorageMeta)\n","import { toUint8Array } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport type {\n Address,\n Hash, Hex,\n} from '@xylabs/hex'\nimport {\n isAddress,\n toAddress,\n toHex,\n} from '@xylabs/hex'\n\nimport type {\n Epoch, LocalSequence, Nonce, QualifiedSequence,\n Sequence,\n} from './Sequence.ts'\nimport {\n isQualifiedSequence, isSequence,\n SequenceConstants,\n} from './Sequence.ts'\n\nexport class SequenceParser {\n protected static privateConstructorKey = Date.now().toString()\n\n private readonly data: Readonly<Uint8Array>\n\n protected constructor(privateConstructorKey: string, hex: Hex) {\n assertEx(SequenceParser.privateConstructorKey === privateConstructorKey, () => 'Use create function instead of constructor')\n const paddedHex = toHex(hex, {\n prefix: false,\n bitLength: (hex.length <= SequenceConstants.localSequenceBytes * 2)\n ? SequenceConstants.localSequenceBytes * 8\n : SequenceConstants.qualifiedSequenceBytes * 8,\n })\n this.data = toUint8Array(paddedHex)\n }\n\n get address(): Address {\n const start = SequenceConstants.localSequenceBytes\n const end = SequenceConstants.qualifiedSequenceBytes\n return toAddress(this.data.slice(start, end).buffer, { prefix: false })\n }\n\n get epoch(): Epoch {\n const start = 0\n const end = SequenceConstants.epochBytes\n return toHex(this.data.slice(start, end).buffer, { prefix: false }) as Epoch\n }\n\n get localSequence(): LocalSequence {\n const start = 0\n const end = SequenceConstants.localSequenceBytes\n return toHex(this.data.slice(start, end).buffer, { prefix: false }) as LocalSequence\n }\n\n get nonce(): Nonce {\n const start = SequenceConstants.epochBytes\n const end = SequenceConstants.localSequenceBytes\n return toHex(this.data.slice(start, end).buffer, { prefix: false }) as Nonce\n }\n\n get qualifiedSequence(): QualifiedSequence {\n const start = 0\n const end = SequenceConstants.qualifiedSequenceBytes\n return toHex(this.data.slice(start, end).buffer, { prefix: false }) as QualifiedSequence\n }\n\n static from(sequence: Sequence, address?: Address): SequenceParser\n static from(timestamp: Hex, hash: Hash, address?: Address): SequenceParser\n static from(timestamp: Hex, hash: Hex, address?: Address): SequenceParser\n static from(timestamp: Hex, nonce: Nonce, address?: Address): SequenceParser\n static from(timestamp: Hex, hash: Hash, index?: number, address?: Address): SequenceParser\n static from(timestamp: Hex, hash: Hex, index?: number, address?: Address): SequenceParser\n static from(timestamp: Hex, nonce: Nonce, index?: number, address?: Address): SequenceParser\n static from(timestamp: number, hash: Hash, address?: Address): SequenceParser\n static from(timestamp: number, hash: Hex, address?: Address): SequenceParser\n static from(timestamp: number, nonce: Nonce, address?: Address): SequenceParser\n static from(timestamp: number, hash: Hash, index?: number, address?: Address): SequenceParser\n static from(timestamp: number, hash: Hex, index?: number, address?: Address): SequenceParser\n static from(timestamp: number, nonce: Nonce, index?: number, address?: Address): SequenceParser\n static from(\n timestampOrSequence: Hex | number,\n nonceOrAddress?: Hex,\n addressOrIndex?: Address | number,\n addressOnly?: Address,\n ): SequenceParser {\n const address = typeof addressOrIndex === 'number' ? addressOnly : addressOrIndex\n const index = typeof addressOrIndex === 'number' ? addressOrIndex : undefined\n if (isSequence(timestampOrSequence)) {\n if (nonceOrAddress) {\n assertEx(!isQualifiedSequence(timestampOrSequence), () => 'Providing both a qualified sequence and a address is not allowed')\n assertEx(isAddress(nonceOrAddress), () => 'Invalid address provided')\n return new this(SequenceParser.privateConstructorKey, (timestampOrSequence + address) as Hex)\n }\n return new this(SequenceParser.privateConstructorKey, timestampOrSequence)\n }\n const epoch = SequenceParser.toEpoch(timestampOrSequence)\n const nonce = nonceOrAddress === undefined ? undefined : SequenceParser.toNonce(nonceOrAddress, index)\n const addressHex: Hex = address ? toHex(address, { bitLength: SequenceConstants.addressBytes * 8 }) : SequenceConstants.minAddress\n const hexString = (epoch + nonce + addressHex) as Hex\n assertEx(isSequence(hexString), () => `Invalid sequence [${hexString}] [${epoch}, ${nonce}, ${addressHex}]`)\n return new this(SequenceParser.privateConstructorKey, hexString)\n }\n\n static parse(value: Hex | string | ArrayBufferLike): SequenceParser {\n const hex = toHex(value)\n if (isSequence(hex)) {\n return new this(SequenceParser.privateConstructorKey, hex)\n }\n throw new Error(`Invalid sequence [${value}]`)\n }\n\n // can convert a short number/hex to an epoch (treats it as the whole value) or extract an epoch from a sequence\n static toEpoch(value: number | Hex | Epoch): Epoch {\n assertEx(\n typeof value !== 'number' || Number.isInteger(value),\n () => 'Value must be in integer',\n )\n const hex = toHex(value, { prefix: false })\n if (hex.length <= SequenceConstants.epochBytes * 2) {\n return toHex(value, { prefix: false, bitLength: SequenceConstants.epochBytes * 8 }) as Epoch\n }\n if (isSequence(hex)) {\n return hex.slice(0, SequenceConstants.epochBytes * 2) as Epoch\n }\n throw new Error(`Value could not be converted to epoch [${hex}]`)\n }\n\n // can convert a short number/hex to a nonce (treats it as the whole value) or extract an nonce from a sequence\n static toNonce(value: Hash | Hex, index = 0): Nonce {\n assertEx(\n typeof value !== 'number' || Number.isInteger(value),\n () => 'Value must be in integer',\n )\n const hex = toHex(value, { prefix: false })\n if (isSequence(hex)) {\n return hex.slice(SequenceConstants.epochBytes * 2, SequenceConstants.localSequenceBytes * 2) as Nonce\n }\n const hashHex = toHex((hex as string), { prefix: false, bitLength: SequenceConstants.nonceHashBytes * 8 }).slice(-SequenceConstants.nonceHashBytes * 2)\n const indexHex = toHex(index, { prefix: false, bitLength: SequenceConstants.nonceIndexBytes * 8 }).slice(-SequenceConstants.nonceIndexBytes * 2)\n return (indexHex + hashHex).slice(-SequenceConstants.nonceBytes * 2) as Nonce\n }\n}\n","import type { Address, Hex } from '@xylabs/hex'\nimport { isHex } from '@xylabs/hex'\nimport type { Brand } from '@xylabs/typeof'\n\n// we use Exclude to intentionally make the type not equal to string\nexport type LocalSequence = Brand<Hex, { __localSequence: true }>\nexport type QualifiedSequence = Brand<Hex, { __qualifiedSequence: true }>\nexport type Sequence = LocalSequence | QualifiedSequence\n\nexport type Epoch = Brand<Hex, { __epoch: true }>\n\nexport const isEpoch = (value: unknown): value is Epoch => {\n return isHex(value) && (value as string).length === SequenceConstants.epochBytes * 2\n}\n\nexport type Nonce = Brand<Hex, { __nonce: true }>\n\nexport const isNonce = (value: unknown): value is Nonce => {\n return isHex(value) && (value as string).length === SequenceConstants.nonceBytes * 2\n}\n\nexport const isLocalSequence = (value: unknown): value is LocalSequence => {\n return isHex(value) && (value as string).length === SequenceConstants.localSequenceBytes * 2\n}\n\nexport const isQualifiedSequence = (value: unknown): value is QualifiedSequence => {\n return isHex(value) && (value as string).length === SequenceConstants.qualifiedSequenceBytes * 2\n}\n\nexport const isSequence = (value: unknown): value is Sequence => {\n return isLocalSequence(value) || isQualifiedSequence(value)\n}\n\nexport const SequenceNonceComponentLengths = {\n nonceIndexBytes: 4,\n nonceHashBytes: 4,\n}\n\nexport const SequenceComponentLengths = {\n ...SequenceNonceComponentLengths,\n epochBytes: 8,\n nonceBytes: SequenceNonceComponentLengths.nonceIndexBytes + SequenceNonceComponentLengths.nonceHashBytes,\n addressBytes: 20,\n}\n\nexport const SequenceComponentMinMax = {\n minEpoch: '0'.repeat(SequenceComponentLengths.epochBytes * 2) as Epoch,\n maxEpoch: 'f'.repeat(SequenceComponentLengths.epochBytes * 2) as Epoch,\n minNonce: '0'.repeat(SequenceComponentLengths.nonceBytes * 2) as Nonce,\n maxNonce: 'f'.repeat(SequenceComponentLengths.nonceBytes * 2) as Nonce,\n minAddress: '0'.repeat(SequenceComponentLengths.addressBytes * 2) as Address,\n maxAddress: 'f'.repeat(SequenceComponentLengths.addressBytes * 2) as Address,\n}\n\nexport const LocalSequenceConstants = {\n ...SequenceComponentLengths,\n ...SequenceComponentMinMax,\n localSequenceBytes: SequenceComponentLengths.epochBytes + SequenceComponentLengths.nonceBytes,\n minLocalSequence: SequenceComponentMinMax.minEpoch + SequenceComponentMinMax.minNonce as LocalSequence,\n maxLocalSequence: SequenceComponentMinMax.maxEpoch + SequenceComponentMinMax.maxNonce as LocalSequence,\n}\n\nexport const QualifiedSequenceConstants = {\n qualifiedSequenceBytes: LocalSequenceConstants.localSequenceBytes + SequenceComponentLengths.addressBytes,\n minQualifiedSequence: LocalSequenceConstants.minLocalSequence + SequenceComponentMinMax.minAddress as QualifiedSequence,\n maxQualifiedSequence: LocalSequenceConstants.maxLocalSequence + SequenceComponentMinMax.maxAddress as QualifiedSequence,\n}\n\nexport const SequenceConstants = {\n ...LocalSequenceConstants,\n ...QualifiedSequenceConstants,\n}\n\n// \"11111111111111112222222222222222\" is and example of a local sequence string\n\n// \"111111111111111122222222222222223333333333333333333333333333333333333333\" is and example of a local sequence string\n// epoch = \"1111111111111111\"\n// nonce = \"2222222222222222\"\n// address = \"3333333333333333333333333333333333333333\"\n","import type { Compare } from '@xylabs/object'\n\nimport { SequenceParser } from './Parser.ts'\nimport type { Sequence } from './Sequence.ts'\n\nconst local: Compare<Sequence> = (a, b) => {\n const aa = SequenceParser.from(a)\n const bb = SequenceParser.from(b)\n return aa.localSequence > bb.localSequence ? 1 : aa.localSequence < bb.localSequence ? -1 : 0\n}\n\nconst qualified: Compare<Sequence> = (a, b) => {\n const aa = SequenceParser.from(a)\n const bb = SequenceParser.from(b)\n return aa.qualifiedSequence > bb.qualifiedSequence ? 1 : aa.qualifiedSequence < bb.qualifiedSequence ? -1 : 0\n}\n\nexport const SequenceComparer = { local, qualified }\n","import { HexRegExMinMax, toHex } from '@xylabs/hex'\nimport z from 'zod'\n\nimport type { LocalSequence, QualifiedSequence } from './Sequence.ts'\nimport { SequenceConstants } from './Sequence.ts'\n\nconst LocalSequenceRegex = new RegExp(HexRegExMinMax(SequenceConstants.localSequenceBytes, SequenceConstants.localSequenceBytes))\nexport const LocalSequenceToStringZod = z.string().regex(LocalSequenceRegex)\nexport const LocalSequenceFromStringZod = z.string().regex(LocalSequenceRegex).transform<LocalSequence>(v => toHex(v) as LocalSequence)\n\nconst QualifiedSequenceRegex = new RegExp(HexRegExMinMax(SequenceConstants.qualifiedSequenceBytes, SequenceConstants.qualifiedSequenceBytes))\nexport const QualifiedSequenceToStringZod = z.string().regex(QualifiedSequenceRegex)\nexport const QualifiedSequenceFromStringZod = z.string().regex(QualifiedSequenceRegex).transform<QualifiedSequence>(v => toHex(v) as QualifiedSequence)\n\nexport const SequenceToStringZod = z.union([LocalSequenceToStringZod, QualifiedSequenceToStringZod])\nexport const SequenceFromStringZod = z.union([LocalSequenceFromStringZod, QualifiedSequenceFromStringZod])\n","import { AsObjectFactory } from '@xylabs/object'\n\nimport type { Payload } from '../Payload.ts'\nimport type { HashMeta } from './Hash.ts'\nimport { isHashMeta } from './Hash.ts'\nimport type { SequenceStorageMeta } from './Sequence.ts'\nimport { isSequenceStorageMeta } from './Sequence.ts'\n\nexport interface StorageMeta extends SequenceStorageMeta, HashMeta {}\n\nexport type WithStorageMeta<T extends Payload = Payload> = T & StorageMeta\nexport type WithPartialStorageMeta<T extends Payload = Payload> = T & Partial<StorageMeta>\n\nexport const isStorageMeta = (value: unknown): value is StorageMeta => {\n return isSequenceStorageMeta(value) && isHashMeta(value)\n}\n\nexport const asStorageMeta = AsObjectFactory.create(isStorageMeta)\nexport const asOptionalStorageMeta = AsObjectFactory.createOptional(isStorageMeta)\n"],"mappings":"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","names":["AsObjectFactory","AsObjectFactory","z","AsObjectFactory","isHash","AsObjectFactory","isHash","AsObjectFactory","AsObjectFactory","toHex","z","z","toHex","AsObjectFactory","AsObjectFactory","z"]}
1
+ {"version":3,"sources":["../../src/isPayload.ts","../../src/isPayloadOfSchemaType.ts","../../src/Error.ts","../../src/isPayloadOfZodType.ts","../../src/PayloadBundle.ts","../../src/PayloadSet/PayloadSetSchema.ts","../../src/PayloadZod.ts","../../src/Schema.ts","../../src/StorageMeta/Sequence.ts","../../src/StorageMeta/sequence/Parser.ts","../../src/StorageMeta/sequence/Sequence.ts","../../src/StorageMeta/sequence/Comparer.ts","../../src/StorageMeta/sequence/SequenceZod.ts"],"sourcesContent":["import { AsObjectFactory, isObject } from '@xylabs/object'\n\nimport type { Payload } from './Payload.ts'\n\nexport const isAnyPayload = (value: unknown): value is Payload => {\n if (isObject(value)) {\n return typeof (value as Payload).schema === 'string'\n }\n return false\n}\n\nexport const asAnyPayload = AsObjectFactory.create(isAnyPayload)\n\nexport const isPayload\n = <T extends Payload>(schema: string[]) =>\n (value: unknown): value is T => {\n if (isAnyPayload(value)) {\n return schema.includes(value.schema)\n }\n return false\n }\n\nexport const asPayload = <T extends Payload>(schema: string[]) => AsObjectFactory.create((value: unknown): value is T => isPayload(schema)(value))\n","import { isAnyPayload } from './isPayload.ts'\nimport type { Payload, WithSources } from './Payload.ts'\n\nexport function isPayloadOfSchemaType<T extends Payload | never = never>(schema: T['schema']) {\n return (x?: unknown | null): x is T => isAnyPayload(x) && x?.schema === schema\n}\n\nexport const isPayloadOfSchemaTypeWithSources = <T extends Payload | never = never>(schema: T['schema']) => {\n return (x?: unknown | null): x is WithSources<T> =>\n isPayloadOfSchemaType<WithSources<T>>(schema)(x) && x.$sources != undefined && Array.isArray(x.$sources)\n}\n\nexport const notPayloadOfSchemaType = <T extends Payload | never = never>(schema: T['schema']) => {\n return (x?: unknown | null): x is T => !isAnyPayload(x) || x?.schema !== schema\n}\n\n// test types -- keep for future validation, but comment out\n\n/*\ntype TestSchema = 'network.xyo.test'\nconst TestSchema: TestSchema = 'network.xyo.test'\n\ntype Test = Payload<{ field: string }, TestSchema>\n\nconst testPayload: Test = { field: 'test', schema: TestSchema }\n\nconst testPayloads: Payload[] = [testPayload]\n\nconst isTest: Test[] = testPayloads.filter(isPayloadOfSchemaType<Payload>(TestSchema))\n\nconst isTestFromMetaTyped = testMetaPayloads.filter(isPayloadOfSchemaType<Test>(TestSchema))\n*/\n","import type { Hash } from '@xylabs/hex'\nimport type { JsonValue } from '@xylabs/object'\n\nimport { isPayloadOfSchemaType } from './isPayloadOfSchemaType.ts'\nimport type { Payload } from './Payload.ts'\nimport type { Schema } from './Schema.ts'\n\nexport const ModuleErrorSchema = 'network.xyo.error.module' as Schema\nexport type ModuleErrorSchema = typeof ModuleErrorSchema\n\nexport type ModuleError = Payload<{\n details?: JsonValue\n message?: string\n name?: string\n query?: Hash | Schema\n schema: ModuleErrorSchema\n}>\n\nexport const isModuleError = isPayloadOfSchemaType<ModuleError>(ModuleErrorSchema)\n","import { isDefined } from '@xylabs/typeof'\nimport type { ZodObject } from 'zod'\n\nimport { isAnyPayload } from './isPayload.ts'\nimport type { Payload } from './Payload.ts'\n\n/**\n * Checks if a value is a payload of a specific Zod type.\n * @param zodSchema The Zod schema to validate against\n * @param schema The schema string to match against the payload. Optional in\n * case you want to validate any payload matching the Zod schema or in case\n * schema is part of the Zod schema.\n * @returns A function that checks if a value is a payload of the specified Zod type\n */\nexport function isPayloadOfZodType<\n T extends Payload | never = never,\n S extends ZodObject = ZodObject,\n>(zodSchema: S, schema?: T['schema']) {\n return (x?: unknown | null): x is T => {\n if (!isAnyPayload(x)) return false\n if (isDefined(schema) && x.schema !== schema) return false\n const { schema: _, ...data } = x\n return zodSchema.safeParse(data).success\n }\n}\n","import type { Hash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\n\nimport { isPayloadOfSchemaType } from './isPayloadOfSchemaType.ts'\nimport type { Payload } from './Payload.ts'\nimport type { Schema } from './Schema.ts'\n\n// payload that wraps a complete boundwitness with its payloads for use in systems such as submission queues\nexport const PayloadBundleSchema = 'network.xyo.payload.bundle' as Schema\nexport type PayloadBundleSchema = typeof PayloadBundleSchema\n\nexport interface PayloadBundleFields<T extends Payload = Payload> {\n payloads: T[]\n root: Hash\n}\n\nexport type PayloadBundle = Payload<PayloadBundleFields, PayloadBundleSchema>\n\nexport const isPayloadBundle = isPayloadOfSchemaType<PayloadBundle>(PayloadBundleSchema)\n\nexport const asPayloadBundle = AsObjectFactory.create(isPayloadBundle)\nexport const asOptionalPayloadBundle = AsObjectFactory.createOptional(isPayloadBundle)\n","import type { Schema } from '../Schema.ts'\n\nexport const PayloadSetSchema = 'network.xyo.payload.set' as Schema\nexport type PayloadSetSchema = typeof PayloadSetSchema\n","import { HashZod } from '@xylabs/hex'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/zod'\nimport z from 'zod'\n\nimport type { Payload } from './Payload.ts'\nimport type { Schema } from './Schema.ts'\nimport { SchemaZod } from './Schema.ts'\nimport { SequenceFromStringZod } from './StorageMeta/index.ts'\n\nexport const HashMetaZod = z.object({\n _hash: HashZod,\n _dataHash: HashZod,\n})\n\nexport type HashMeta = z.infer<typeof HashMetaZod>\n\nexport type WithHashMeta<T extends Payload> = T & HashMeta\n\nexport const isHashMeta = zodIsFactory(HashMetaZod)\nexport const asHashMeta = zodAsFactory(HashMetaZod, 'asHashMeta')\nexport const toHashMeta = zodToFactory(HashMetaZod, 'toHashMeta')\n\nexport const SequenceMetaZod = z.object({ _sequence: SequenceFromStringZod })\n\nexport type SequenceMeta = z.infer<typeof SequenceMetaZod>\n\nexport const isSequenceMeta = zodIsFactory(SequenceMetaZod)\nexport const asSequenceMeta = zodAsFactory(SequenceMetaZod, 'asSequenceMeta')\nexport const toSequenceMeta = zodToFactory(SequenceMetaZod, 'toSequenceMeta')\n\nexport const StorageMetaZod = z.object({\n _hash: HashZod,\n _dataHash: HashZod,\n _sequence: SequenceFromStringZod,\n})\n\nexport type StorageMeta = z.infer<typeof StorageMetaZod>\n\nexport type WithStorageMeta<T extends Payload = Payload> = T & StorageMeta\n\nexport const isStorageMeta = zodIsFactory(StorageMetaZod)\nexport const asStorageMeta = zodAsFactory(StorageMetaZod, 'asStorageMeta')\nexport const toStorageMeta = zodToFactory(StorageMetaZod, 'toStorageMeta')\n\nexport const PayloadZod = z.object({ schema: SchemaZod })\n\n/** @deprecated use WithStorageMetaZod */\nexport const PayloadWithStorageMetaZod = PayloadZod.extend(StorageMetaZod.shape)\n\nexport const AnyPayloadZod = PayloadZod.loose()\n\n/** @deprecated use WithStorageMetaZod */\nexport const AnyPayloadWithStorageMetaZod = AnyPayloadZod.extend(StorageMetaZod.shape)\n\n/** @deprecated use WithStorageMetaZod */\n// eslint-disable-next-line sonarjs/deprecation\nexport type PayloadWithStorageMeta = z.infer<typeof PayloadWithStorageMetaZod>\n\nexport type AnyPayload = z.infer<typeof AnyPayloadZod>\n\n/** @deprecated use WithStorageMetaZod */\n// eslint-disable-next-line sonarjs/deprecation\nexport type AnyPayloadWithStorageMeta = z.infer<typeof AnyPayloadWithStorageMetaZod>\n\nexport function WithStorageMetaZod<T extends z.ZodRawShape>(valueZod: z.ZodObject<T>) {\n return valueZod.extend(StorageMetaZod.shape)\n}\n\nexport function WithHashMetaZod<T extends z.ZodRawShape>(valueZod: z.ZodObject<T>) {\n return valueZod.extend(HashMetaZod.shape)\n}\n\nexport const PayloadZodStrict = z.strictObject({ schema: SchemaZod })\nexport type PayloadZodStrict = typeof PayloadZodStrict\n\nexport const PayloadZodLoose: PayloadZodStrict = z.looseObject({ schema: SchemaZod })\nexport type PayloadZodLoose = typeof PayloadZodLoose\n\nexport const PayloadZodOfSchema = <S extends Schema>(schema: S) => PayloadZod.extend({ schema: z.literal(schema) })\nexport const PayloadZodStrictOfSchema = <S extends Schema>(schema: S) => PayloadZodStrict.extend({ schema: z.literal(schema) })\nexport const PayloadZodLooseOfSchema = <S extends Schema>(schema: S) => PayloadZodLoose.extend({ schema: z.literal(schema) })\n","import type { EmptyObject } from '@xylabs/object'\nimport { zodAsFactory, zodIsFactory } from '@xylabs/zod'\nimport z from 'zod'\n\nexport const SchemaRegEx = /^(?:[a-z0-9]+\\.)*[a-z0-9]+$/\n\nexport const SchemaZod = z.string().regex(SchemaRegEx)\nexport type Schema = z.infer<typeof SchemaZod>\n\nexport const makeSchema = <T extends string>(value: T) => {\n return (z.templateLiteral([z.literal(value)])).transform(x => x as (typeof x & { __schema: true }))\n}\n\nexport const PayloadSchema = 'network.xyo.payload' as const\nexport const PayloadSchemaZod = z.literal(PayloadSchema)\nexport type PayloadSchema = z.infer<typeof PayloadSchemaZod>\n\nexport const isSchema = zodIsFactory(SchemaZod)\nexport const asSchema = zodAsFactory(SchemaZod, 'asSchema')\nexport const toSchema = zodAsFactory(SchemaZod, 'toSchema')\n\n/** Add the Schema Fields to an object */\nexport type WithSchema<T extends EmptyObject | void = void> = T extends EmptyObject ? SchemaFields & T : SchemaFields\n\n/** Schema fields for a Payload */\nexport interface SchemaFields extends EmptyObject {\n /** Schema of the object */\n schema: Schema\n}\n","import { AsObjectFactory } from '@xylabs/object'\n\nimport type { Payload } from '../Payload.ts'\nimport type { Sequence } from './sequence/index.ts'\n\nexport interface SequenceStorageMeta {\n _sequence: Sequence\n}\n\nexport type WithSequenceStorageMeta<T extends Payload = Payload> = T & SequenceStorageMeta\nexport type WithPartialSequenceStorageMeta<T extends Payload = Payload> = Partial<WithSequenceStorageMeta<T>>\n\nexport const isSequenceStorageMeta = (value: unknown): value is SequenceStorageMeta => {\n return (value as WithSequenceStorageMeta)?._sequence != undefined\n}\n\nexport const asSequenceStorageMeta = AsObjectFactory.create(isSequenceStorageMeta)\nexport const asOptionalSequenceStorageMeta = AsObjectFactory.createOptional(isSequenceStorageMeta)\n","import { toUint8Array } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport type {\n Address,\n Hash, Hex,\n} from '@xylabs/hex'\nimport {\n isAddress,\n toAddress,\n toHex,\n} from '@xylabs/hex'\n\nimport type {\n Epoch, LocalSequence, Nonce, QualifiedSequence,\n Sequence,\n} from './Sequence.ts'\nimport {\n isQualifiedSequence, isSequence,\n SequenceConstants,\n} from './Sequence.ts'\n\nexport class SequenceParser {\n protected static privateConstructorKey = Date.now().toString()\n\n private readonly data: Readonly<Uint8Array>\n\n protected constructor(privateConstructorKey: string, hex: Hex) {\n assertEx(SequenceParser.privateConstructorKey === privateConstructorKey, () => 'Use create function instead of constructor')\n const paddedHex = toHex(hex, {\n prefix: false,\n bitLength: (hex.length <= SequenceConstants.localSequenceBytes * 2)\n ? SequenceConstants.localSequenceBytes * 8\n : SequenceConstants.qualifiedSequenceBytes * 8,\n })\n this.data = toUint8Array(paddedHex)\n }\n\n get address(): Address {\n const start = SequenceConstants.localSequenceBytes\n const end = SequenceConstants.qualifiedSequenceBytes\n return toAddress(this.data.slice(start, end).buffer, { prefix: false })\n }\n\n get epoch(): Epoch {\n const start = 0\n const end = SequenceConstants.epochBytes\n return toHex(this.data.slice(start, end).buffer, { prefix: false }) as Epoch\n }\n\n get localSequence(): LocalSequence {\n const start = 0\n const end = SequenceConstants.localSequenceBytes\n return toHex(this.data.slice(start, end).buffer, { prefix: false }) as LocalSequence\n }\n\n get nonce(): Nonce {\n const start = SequenceConstants.epochBytes\n const end = SequenceConstants.localSequenceBytes\n return toHex(this.data.slice(start, end).buffer, { prefix: false }) as Nonce\n }\n\n get qualifiedSequence(): QualifiedSequence {\n const start = 0\n const end = SequenceConstants.qualifiedSequenceBytes\n return toHex(this.data.slice(start, end).buffer, { prefix: false }) as QualifiedSequence\n }\n\n static from(sequence: Sequence, address?: Address): SequenceParser\n static from(timestamp: Hex, hash: Hash, address?: Address): SequenceParser\n static from(timestamp: Hex, hash: Hex, address?: Address): SequenceParser\n static from(timestamp: Hex, nonce: Nonce, address?: Address): SequenceParser\n static from(timestamp: Hex, hash: Hash, index?: number, address?: Address): SequenceParser\n static from(timestamp: Hex, hash: Hex, index?: number, address?: Address): SequenceParser\n static from(timestamp: Hex, nonce: Nonce, index?: number, address?: Address): SequenceParser\n static from(timestamp: number, hash: Hash, address?: Address): SequenceParser\n static from(timestamp: number, hash: Hex, address?: Address): SequenceParser\n static from(timestamp: number, nonce: Nonce, address?: Address): SequenceParser\n static from(timestamp: number, hash: Hash, index?: number, address?: Address): SequenceParser\n static from(timestamp: number, hash: Hex, index?: number, address?: Address): SequenceParser\n static from(timestamp: number, nonce: Nonce, index?: number, address?: Address): SequenceParser\n static from(\n timestampOrSequence: Hex | number,\n nonceOrAddress?: Hex,\n addressOrIndex?: Address | number,\n addressOnly?: Address,\n ): SequenceParser {\n const address = typeof addressOrIndex === 'number' ? addressOnly : addressOrIndex\n const index = typeof addressOrIndex === 'number' ? addressOrIndex : undefined\n if (isSequence(timestampOrSequence)) {\n if (nonceOrAddress) {\n assertEx(!isQualifiedSequence(timestampOrSequence), () => 'Providing both a qualified sequence and a address is not allowed')\n assertEx(isAddress(nonceOrAddress), () => 'Invalid address provided')\n return new this(SequenceParser.privateConstructorKey, (timestampOrSequence + address) as Hex)\n }\n return new this(SequenceParser.privateConstructorKey, timestampOrSequence)\n }\n const epoch = SequenceParser.toEpoch(timestampOrSequence)\n const nonce = nonceOrAddress === undefined ? undefined : SequenceParser.toNonce(nonceOrAddress, index)\n const addressHex: Hex = address ? toHex(address, { bitLength: SequenceConstants.addressBytes * 8 }) : SequenceConstants.minAddress\n const hexString = (epoch + nonce + addressHex) as Hex\n assertEx(isSequence(hexString), () => `Invalid sequence [${hexString}] [${epoch}, ${nonce}, ${addressHex}]`)\n return new this(SequenceParser.privateConstructorKey, hexString)\n }\n\n static parse(value: Hex | string | ArrayBufferLike): SequenceParser {\n const hex = toHex(value)\n if (isSequence(hex)) {\n return new this(SequenceParser.privateConstructorKey, hex)\n }\n throw new Error(`Invalid sequence [${value}]`)\n }\n\n // can convert a short number/hex to an epoch (treats it as the whole value) or extract an epoch from a sequence\n static toEpoch(value: number | Hex | Epoch): Epoch {\n assertEx(\n typeof value !== 'number' || Number.isInteger(value),\n () => 'Value must be in integer',\n )\n const hex = toHex(value, { prefix: false })\n if (hex.length <= SequenceConstants.epochBytes * 2) {\n return toHex(value, { prefix: false, bitLength: SequenceConstants.epochBytes * 8 }) as Epoch\n }\n if (isSequence(hex)) {\n return hex.slice(0, SequenceConstants.epochBytes * 2) as Epoch\n }\n throw new Error(`Value could not be converted to epoch [${hex}]`)\n }\n\n // can convert a short number/hex to a nonce (treats it as the whole value) or extract an nonce from a sequence\n static toNonce(value: Hash | Hex, index = 0): Nonce {\n assertEx(\n typeof value !== 'number' || Number.isInteger(value),\n () => 'Value must be in integer',\n )\n const hex = toHex(value, { prefix: false })\n if (isSequence(hex)) {\n return hex.slice(SequenceConstants.epochBytes * 2, SequenceConstants.localSequenceBytes * 2) as Nonce\n }\n const hashHex = toHex((hex as string), { prefix: false, bitLength: SequenceConstants.nonceHashBytes * 8 }).slice(-SequenceConstants.nonceHashBytes * 2)\n const indexHex = toHex(index, { prefix: false, bitLength: SequenceConstants.nonceIndexBytes * 8 }).slice(-SequenceConstants.nonceIndexBytes * 2)\n return (indexHex + hashHex).slice(-SequenceConstants.nonceBytes * 2) as Nonce\n }\n}\n","import type { Address, Hex } from '@xylabs/hex'\nimport { isHex } from '@xylabs/hex'\nimport type { Brand } from '@xylabs/typeof'\n\n// we use Exclude to intentionally make the type not equal to string\nexport type LocalSequence = Brand<Hex, { __localSequence: true }>\nexport type QualifiedSequence = Brand<Hex, { __qualifiedSequence: true }>\nexport type Sequence = LocalSequence | QualifiedSequence\n\nexport type Epoch = Brand<Hex, { __epoch: true }>\n\nexport const isEpoch = (value: unknown): value is Epoch => {\n return isHex(value) && (value as string).length === SequenceConstants.epochBytes * 2\n}\n\nexport type Nonce = Brand<Hex, { __nonce: true }>\n\nexport const isNonce = (value: unknown): value is Nonce => {\n return isHex(value) && (value as string).length === SequenceConstants.nonceBytes * 2\n}\n\nexport const isLocalSequence = (value: unknown): value is LocalSequence => {\n return isHex(value) && (value as string).length === SequenceConstants.localSequenceBytes * 2\n}\n\nexport const isQualifiedSequence = (value: unknown): value is QualifiedSequence => {\n return isHex(value) && (value as string).length === SequenceConstants.qualifiedSequenceBytes * 2\n}\n\nexport const isSequence = (value: unknown): value is Sequence => {\n return isLocalSequence(value) || isQualifiedSequence(value)\n}\n\nexport const SequenceNonceComponentLengths = {\n nonceIndexBytes: 4,\n nonceHashBytes: 4,\n}\n\nexport const SequenceComponentLengths = {\n ...SequenceNonceComponentLengths,\n epochBytes: 8,\n nonceBytes: SequenceNonceComponentLengths.nonceIndexBytes + SequenceNonceComponentLengths.nonceHashBytes,\n addressBytes: 20,\n}\n\nexport const SequenceComponentMinMax = {\n minEpoch: '0'.repeat(SequenceComponentLengths.epochBytes * 2) as Epoch,\n maxEpoch: 'f'.repeat(SequenceComponentLengths.epochBytes * 2) as Epoch,\n minNonce: '0'.repeat(SequenceComponentLengths.nonceBytes * 2) as Nonce,\n maxNonce: 'f'.repeat(SequenceComponentLengths.nonceBytes * 2) as Nonce,\n minAddress: '0'.repeat(SequenceComponentLengths.addressBytes * 2) as Address,\n maxAddress: 'f'.repeat(SequenceComponentLengths.addressBytes * 2) as Address,\n}\n\nexport const LocalSequenceConstants = {\n ...SequenceComponentLengths,\n ...SequenceComponentMinMax,\n localSequenceBytes: SequenceComponentLengths.epochBytes + SequenceComponentLengths.nonceBytes,\n minLocalSequence: SequenceComponentMinMax.minEpoch + SequenceComponentMinMax.minNonce as LocalSequence,\n maxLocalSequence: SequenceComponentMinMax.maxEpoch + SequenceComponentMinMax.maxNonce as LocalSequence,\n}\n\nexport const QualifiedSequenceConstants = {\n qualifiedSequenceBytes: LocalSequenceConstants.localSequenceBytes + SequenceComponentLengths.addressBytes,\n minQualifiedSequence: LocalSequenceConstants.minLocalSequence + SequenceComponentMinMax.minAddress as QualifiedSequence,\n maxQualifiedSequence: LocalSequenceConstants.maxLocalSequence + SequenceComponentMinMax.maxAddress as QualifiedSequence,\n}\n\nexport const SequenceConstants = {\n ...LocalSequenceConstants,\n ...QualifiedSequenceConstants,\n}\n\n// \"11111111111111112222222222222222\" is and example of a local sequence string\n\n// \"111111111111111122222222222222223333333333333333333333333333333333333333\" is and example of a local sequence string\n// epoch = \"1111111111111111\"\n// nonce = \"2222222222222222\"\n// address = \"3333333333333333333333333333333333333333\"\n","import type { Compare } from '@xylabs/object'\n\nimport { SequenceParser } from './Parser.ts'\nimport type { Sequence } from './Sequence.ts'\n\nconst local: Compare<Sequence> = (a, b) => {\n const aa = SequenceParser.from(a)\n const bb = SequenceParser.from(b)\n return aa.localSequence > bb.localSequence ? 1 : aa.localSequence < bb.localSequence ? -1 : 0\n}\n\nconst qualified: Compare<Sequence> = (a, b) => {\n const aa = SequenceParser.from(a)\n const bb = SequenceParser.from(b)\n return aa.qualifiedSequence > bb.qualifiedSequence ? 1 : aa.qualifiedSequence < bb.qualifiedSequence ? -1 : 0\n}\n\nexport const SequenceComparer = { local, qualified }\n","import { HexRegExMinMax, toHex } from '@xylabs/hex'\nimport z from 'zod'\n\nimport type { LocalSequence, QualifiedSequence } from './Sequence.ts'\nimport { SequenceConstants } from './Sequence.ts'\n\nconst LocalSequenceRegex = new RegExp(HexRegExMinMax(SequenceConstants.localSequenceBytes, SequenceConstants.localSequenceBytes))\nexport const LocalSequenceToStringZod = z.string().regex(LocalSequenceRegex)\nexport const LocalSequenceFromStringZod = z.string().regex(LocalSequenceRegex).transform<LocalSequence>(v => toHex(v) as LocalSequence)\n\nconst QualifiedSequenceRegex = new RegExp(HexRegExMinMax(SequenceConstants.qualifiedSequenceBytes, SequenceConstants.qualifiedSequenceBytes))\nexport const QualifiedSequenceToStringZod = z.string().regex(QualifiedSequenceRegex)\nexport const QualifiedSequenceFromStringZod = z.string().regex(QualifiedSequenceRegex).transform<QualifiedSequence>(v => toHex(v) as QualifiedSequence)\n\nexport const SequenceToStringZod = z.union([LocalSequenceToStringZod, QualifiedSequenceToStringZod])\nexport const SequenceFromStringZod = z.union([LocalSequenceFromStringZod, QualifiedSequenceFromStringZod])\n"],"mappings":"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","names":["AsObjectFactory","AsObjectFactory","zodAsFactory","zodIsFactory","z","AsObjectFactory","toHex","z","z","toHex","z","zodIsFactory","zodAsFactory"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/payload-model",
3
- "version": "5.2.1",
3
+ "version": "5.2.6",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -36,20 +36,20 @@
36
36
  "!**/*.test.*"
37
37
  ],
38
38
  "dependencies": {
39
- "@xylabs/arraybuffer": "~5.0.39",
40
- "@xylabs/assert": "~5.0.39",
41
- "@xylabs/hex": "~5.0.39",
42
- "@xylabs/object": "~5.0.39",
43
- "@xylabs/typeof": "~5.0.39",
44
- "@xylabs/zod": "~5.0.39",
39
+ "@xylabs/arraybuffer": "~5.0.41",
40
+ "@xylabs/assert": "~5.0.41",
41
+ "@xylabs/hex": "~5.0.41",
42
+ "@xylabs/object": "~5.0.41",
43
+ "@xylabs/typeof": "~5.0.41",
44
+ "@xylabs/zod": "~5.0.41",
45
45
  "zod": "~4.1.12"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@xylabs/ts-scripts-yarn3": "~7.2.8",
49
49
  "@xylabs/tsconfig": "~7.2.8",
50
- "@xylabs/vitest-extended": "~5.0.39",
50
+ "@xylabs/vitest-extended": "~5.0.41",
51
51
  "typescript": "~5.9.3",
52
- "vitest": "~4.0.10"
52
+ "vitest": "~4.0.12"
53
53
  },
54
54
  "publishConfig": {
55
55
  "access": "public"
package/src/PayloadZod.ts CHANGED
@@ -1,6 +1,11 @@
1
1
  import { HashZod } from '@xylabs/hex'
2
+ import {
3
+ zodAsFactory, zodIsFactory, zodToFactory,
4
+ } from '@xylabs/zod'
2
5
  import z from 'zod'
3
6
 
7
+ import type { Payload } from './Payload.ts'
8
+ import type { Schema } from './Schema.ts'
4
9
  import { SchemaZod } from './Schema.ts'
5
10
  import { SequenceFromStringZod } from './StorageMeta/index.ts'
6
11
 
@@ -9,14 +14,36 @@ export const HashMetaZod = z.object({
9
14
  _dataHash: HashZod,
10
15
  })
11
16
 
17
+ export type HashMeta = z.infer<typeof HashMetaZod>
18
+
19
+ export type WithHashMeta<T extends Payload> = T & HashMeta
20
+
21
+ export const isHashMeta = zodIsFactory(HashMetaZod)
22
+ export const asHashMeta = zodAsFactory(HashMetaZod, 'asHashMeta')
23
+ export const toHashMeta = zodToFactory(HashMetaZod, 'toHashMeta')
24
+
12
25
  export const SequenceMetaZod = z.object({ _sequence: SequenceFromStringZod })
13
26
 
27
+ export type SequenceMeta = z.infer<typeof SequenceMetaZod>
28
+
29
+ export const isSequenceMeta = zodIsFactory(SequenceMetaZod)
30
+ export const asSequenceMeta = zodAsFactory(SequenceMetaZod, 'asSequenceMeta')
31
+ export const toSequenceMeta = zodToFactory(SequenceMetaZod, 'toSequenceMeta')
32
+
14
33
  export const StorageMetaZod = z.object({
15
34
  _hash: HashZod,
16
35
  _dataHash: HashZod,
17
36
  _sequence: SequenceFromStringZod,
18
37
  })
19
38
 
39
+ export type StorageMeta = z.infer<typeof StorageMetaZod>
40
+
41
+ export type WithStorageMeta<T extends Payload = Payload> = T & StorageMeta
42
+
43
+ export const isStorageMeta = zodIsFactory(StorageMetaZod)
44
+ export const asStorageMeta = zodAsFactory(StorageMetaZod, 'asStorageMeta')
45
+ export const toStorageMeta = zodToFactory(StorageMetaZod, 'toStorageMeta')
46
+
20
47
  export const PayloadZod = z.object({ schema: SchemaZod })
21
48
 
22
49
  /** @deprecated use WithStorageMetaZod */
@@ -47,7 +74,10 @@ export function WithHashMetaZod<T extends z.ZodRawShape>(valueZod: z.ZodObject<T
47
74
 
48
75
  export const PayloadZodStrict = z.strictObject({ schema: SchemaZod })
49
76
  export type PayloadZodStrict = typeof PayloadZodStrict
77
+
50
78
  export const PayloadZodLoose: PayloadZodStrict = z.looseObject({ schema: SchemaZod })
79
+ export type PayloadZodLoose = typeof PayloadZodLoose
51
80
 
52
- export const PayloadZodStrictOfSchema = <S extends string>(schema: S) => PayloadZodStrict.extend({ schema: z.literal(schema) })
53
- export const PayloadZodLooseOfSchema = <S extends string>(schema: S) => PayloadZodLoose.extend({ schema: z.literal(schema) })
81
+ export const PayloadZodOfSchema = <S extends Schema>(schema: S) => PayloadZod.extend({ schema: z.literal(schema) })
82
+ export const PayloadZodStrictOfSchema = <S extends Schema>(schema: S) => PayloadZodStrict.extend({ schema: z.literal(schema) })
83
+ export const PayloadZodLooseOfSchema = <S extends Schema>(schema: S) => PayloadZodLoose.extend({ schema: z.literal(schema) })
@@ -1,5 +1,2 @@
1
- export * from './DataHash.ts'
2
- export * from './Hash.ts'
3
1
  export * from './Sequence.ts'
4
2
  export * from './sequence/index.ts'
5
- export * from './StorageMeta.ts'
@@ -1,11 +0,0 @@
1
- import type { Payload } from '../Payload.ts';
2
- import type { HashMeta } from './Hash.ts';
3
- import type { SequenceStorageMeta } from './Sequence.ts';
4
- export interface StorageMeta extends SequenceStorageMeta, HashMeta {
5
- }
6
- export type WithStorageMeta<T extends Payload = Payload> = T & StorageMeta;
7
- export type WithPartialStorageMeta<T extends Payload = Payload> = T & Partial<StorageMeta>;
8
- export declare const isStorageMeta: (value: unknown) => value is StorageMeta;
9
- export declare const asStorageMeta: import("@xylabs/object").AsTypeFunction<StorageMeta>;
10
- export declare const asOptionalStorageMeta: (value: import(".store/@xylabs-promise-npm-5.0.39-909d8d4932/package").AnyNonPromise) => StorageMeta | undefined;
11
- //# sourceMappingURL=StorageMeta.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StorageMeta.d.ts","sourceRoot":"","sources":["../../../src/StorageMeta/StorageMeta.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAGxD,MAAM,WAAW,WAAY,SAAQ,mBAAmB,EAAE,QAAQ;CAAG;AAErE,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,GAAG,WAAW,CAAA;AAC1E,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAE1F,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,WAEvD,CAAA;AAED,eAAO,MAAM,aAAa,sDAAwC,CAAA;AAClE,eAAO,MAAM,qBAAqB,kHAAgD,CAAA"}
@@ -1,19 +0,0 @@
1
- import { AsObjectFactory } from '@xylabs/object'
2
-
3
- import type { Payload } from '../Payload.ts'
4
- import type { HashMeta } from './Hash.ts'
5
- import { isHashMeta } from './Hash.ts'
6
- import type { SequenceStorageMeta } from './Sequence.ts'
7
- import { isSequenceStorageMeta } from './Sequence.ts'
8
-
9
- export interface StorageMeta extends SequenceStorageMeta, HashMeta {}
10
-
11
- export type WithStorageMeta<T extends Payload = Payload> = T & StorageMeta
12
- export type WithPartialStorageMeta<T extends Payload = Payload> = T & Partial<StorageMeta>
13
-
14
- export const isStorageMeta = (value: unknown): value is StorageMeta => {
15
- return isSequenceStorageMeta(value) && isHashMeta(value)
16
- }
17
-
18
- export const asStorageMeta = AsObjectFactory.create(isStorageMeta)
19
- export const asOptionalStorageMeta = AsObjectFactory.createOptional(isStorageMeta)