@xyo-network/payload-model 5.3.12 → 5.3.15

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.
@@ -1,4 +1,4 @@
1
- import type { ZodType } from 'zod';
1
+ import type { ZodRawShape } from 'zod';
2
2
  import z from 'zod';
3
3
  import type { Payload } from './Payload.ts';
4
4
  import type { Schema } from './Schema.ts';
@@ -94,16 +94,62 @@ export declare const toStorageMeta: {
94
94
  export declare const PayloadZod: z.ZodObject<{
95
95
  schema: z.ZodPipe<z.ZodString, z.ZodTransform<import("./Schema.ts").BrandedSchema<string>, string>>;
96
96
  }, z.z.core.$strip>;
97
+ export declare const isPayload: <T>(value: T) => value is T & {
98
+ schema: import("./Schema.ts").BrandedSchema<string>;
99
+ };
100
+ export declare const asPayload: {
101
+ <T>(value: T): (T & {
102
+ schema: import("./Schema.ts").BrandedSchema<string>;
103
+ }) | undefined;
104
+ <T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
105
+ schema: import("./Schema.ts").BrandedSchema<string>;
106
+ };
107
+ };
108
+ export declare const toPayload: {
109
+ <T>(value: T): (T & {
110
+ schema: import("./Schema.ts").BrandedSchema<string>;
111
+ }) | undefined;
112
+ <T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
113
+ schema: import("./Schema.ts").BrandedSchema<string>;
114
+ };
115
+ };
97
116
  export declare const AnyPayloadZod: z.ZodObject<{
98
117
  schema: z.ZodPipe<z.ZodString, z.ZodTransform<import("./Schema.ts").BrandedSchema<string>, string>>;
99
118
  }, z.z.core.$loose>;
119
+ export declare const isAnyPayload: <T>(value: T) => value is T & {
120
+ [x: string]: unknown;
121
+ schema: import("./Schema.ts").BrandedSchema<string>;
122
+ };
123
+ export declare const asAnyPayload: {
124
+ <T>(value: T): (T & {
125
+ [x: string]: unknown;
126
+ schema: import("./Schema.ts").BrandedSchema<string>;
127
+ }) | undefined;
128
+ <T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
129
+ [x: string]: unknown;
130
+ schema: import("./Schema.ts").BrandedSchema<string>;
131
+ };
132
+ };
133
+ export declare const toAnyPayload: {
134
+ <T>(value: T): (T & {
135
+ [x: string]: unknown;
136
+ schema: import("./Schema.ts").BrandedSchema<string>;
137
+ }) | undefined;
138
+ <T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
139
+ [x: string]: unknown;
140
+ schema: import("./Schema.ts").BrandedSchema<string>;
141
+ };
142
+ };
100
143
  export type AnyPayload = z.infer<typeof AnyPayloadZod>;
101
- export declare function WithStorageMetaZod<T extends ZodType>(valueZod: T): z.ZodIntersection<T, z.ZodObject<{
144
+ export declare function WithStorageMetaZod<T extends ZodRawShape>(valueZod: z.ZodObject<T>): z.ZodObject<T & {
102
145
  _hash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").BrandedHash, string>>;
103
146
  _dataHash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").BrandedHash, string>>;
104
147
  _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>>]>;
105
- }, z.z.core.$strip>>;
106
- export declare function WithHashMetaZod<T extends ZodType>(valueZod: T): z.ZodIntersection<T, typeof HashMetaZod>;
148
+ } extends infer T_1 ? { -readonly [P in keyof T_1]: T_1[P]; } : never, z.z.core.$strip>;
149
+ export declare function WithHashMetaZod<T extends ZodRawShape>(valueZod: z.ZodObject<T>): z.ZodObject<T & {
150
+ _hash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").BrandedHash, string>>;
151
+ _dataHash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").BrandedHash, string>>;
152
+ } extends infer T_1 ? { -readonly [P in keyof T_1]: T_1[P]; } : never, z.z.core.$strip>;
107
153
  export declare const PayloadZodStrict: z.ZodObject<{
108
154
  schema: z.ZodPipe<z.ZodString, z.ZodTransform<import("./Schema.ts").BrandedSchema<string>, string>>;
109
155
  }, z.z.core.$strict>;
@@ -1 +1 @@
1
- {"version":3,"file":"PayloadZod.d.ts","sourceRoot":"","sources":["../../src/PayloadZod.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAClC,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,eAAO,MAAM,aAAa;;mBAAqB,CAAA;AAE/C,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEtD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,QAAQ,EAAE,CAAC;;;;qBAEhE;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,OAAO,WAAW,CAAC,CAAA;AAKzG,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"}
1
+ {"version":3,"file":"PayloadZod.d.ts","sourceRoot":"","sources":["../../src/PayloadZod.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;AACtC,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,eAAO,MAAM,SAAS;;CAA2B,CAAA;AACjD,eAAO,MAAM,SAAS;;;;;;;CAAwC,CAAA;AAC9D,eAAO,MAAM,SAAS;;;;;;;CAAwC,CAAA;AAE9D,eAAO,MAAM,aAAa;;mBAAqB,CAAA;AAE/C,eAAO,MAAM,YAAY;;;CAA8B,CAAA;AACvD,eAAO,MAAM,YAAY;;;;;;;;;CAA8C,CAAA;AACvE,eAAO,MAAM,YAAY;;;;;;;;;CAA8C,CAAA;AAEvE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEtD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;;;;wFAEjF;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;;;wFAE9E;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"}
@@ -1,5 +1,4 @@
1
1
  export * from './Error.ts';
2
- export * from './isPayload.ts';
3
2
  export * from './isPayloadOfSchemaType.ts';
4
3
  export * from './isPayloadOfZodType.ts';
5
4
  export * from './Payload.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA"}
@@ -1,30 +1,11 @@
1
- // src/isPayload.ts
2
- import { AsObjectFactory, isObject } from "@xylabs/sdk-js";
3
- var isAnyPayload = (value) => {
4
- if (isObject(value)) {
5
- return typeof value.schema === "string";
6
- }
7
- return false;
8
- };
9
- var asAnyPayload = AsObjectFactory.create(isAnyPayload);
10
- var isPayload = (schema) => (value) => {
11
- if (isAnyPayload(value)) {
12
- return schema.includes(value.schema);
13
- }
14
- return false;
15
- };
16
- var asPayload = (schema) => AsObjectFactory.create((value) => isPayload(schema)(value));
17
-
18
- // src/isPayloadOfSchemaType.ts
19
- function isPayloadOfSchemaType(schema) {
20
- return (x) => isAnyPayload(x) && x?.schema === schema;
21
- }
22
- var isPayloadOfSchemaTypeWithSources = (schema) => {
23
- return (x) => isPayloadOfSchemaType(schema)(x) && x.$sources != void 0 && Array.isArray(x.$sources);
24
- };
25
- var notPayloadOfSchemaType = (schema) => {
26
- return (x) => !isAnyPayload(x) || x?.schema !== schema;
27
- };
1
+ // src/PayloadZod.ts
2
+ import {
3
+ HashZod,
4
+ zodAsFactory as zodAsFactory2,
5
+ zodIsFactory as zodIsFactory2,
6
+ zodToFactory
7
+ } from "@xylabs/sdk-js";
8
+ import z3 from "zod";
28
9
 
29
10
  // src/Schema.ts
30
11
  import { zodAsFactory, zodIsFactory } from "@xylabs/sdk-js";
@@ -40,46 +21,13 @@ var toSchema = zodAsFactory(SchemaZod, "toSchema");
40
21
  var PayloadSchema = asSchema("network.xyo.payload", true);
41
22
  var PayloadSchemaZod = z.literal(PayloadSchema);
42
23
 
43
- // src/Error.ts
44
- var ModuleErrorSchema = asSchema("network.xyo.error.module", true);
45
- var isModuleError = isPayloadOfSchemaType(ModuleErrorSchema);
46
-
47
- // src/isPayloadOfZodType.ts
48
- import { isDefined } from "@xylabs/sdk-js";
49
- function isPayloadOfZodType(zodSchema, schema) {
50
- return (x) => {
51
- if (!isAnyPayload(x)) return false;
52
- if (isDefined(schema) && x.schema !== schema) return false;
53
- const { schema: _, ...data } = x;
54
- return zodSchema.safeParse(data).success;
55
- };
56
- }
57
-
58
- // src/PayloadBundle.ts
59
- import {
60
- HashZod as HashZod2,
61
- zodAsFactory as zodAsFactory3,
62
- zodIsFactory as zodIsFactory3,
63
- zodToFactory as zodToFactory2
64
- } from "@xylabs/sdk-js";
65
- import z4 from "zod";
66
-
67
- // src/PayloadZod.ts
68
- import {
69
- HashZod,
70
- zodAsFactory as zodAsFactory2,
71
- zodIsFactory as zodIsFactory2,
72
- zodToFactory
73
- } from "@xylabs/sdk-js";
74
- import z3 from "zod";
75
-
76
24
  // src/StorageMeta/Sequence.ts
77
- import { AsObjectFactory as AsObjectFactory2 } from "@xylabs/sdk-js";
25
+ import { AsObjectFactory } from "@xylabs/sdk-js";
78
26
  var isSequenceStorageMeta = (value) => {
79
27
  return value?._sequence != void 0;
80
28
  };
81
- var asSequenceStorageMeta = AsObjectFactory2.create(isSequenceStorageMeta);
82
- var asOptionalSequenceStorageMeta = AsObjectFactory2.createOptional(isSequenceStorageMeta);
29
+ var asSequenceStorageMeta = AsObjectFactory.create(isSequenceStorageMeta);
30
+ var asOptionalSequenceStorageMeta = AsObjectFactory.createOptional(isSequenceStorageMeta);
83
31
 
84
32
  // src/StorageMeta/sequence/Parser.ts
85
33
  import {
@@ -281,12 +229,18 @@ var isStorageMeta = zodIsFactory2(StorageMetaZod);
281
229
  var asStorageMeta = zodAsFactory2(StorageMetaZod, "asStorageMeta");
282
230
  var toStorageMeta = zodToFactory(StorageMetaZod, "toStorageMeta");
283
231
  var PayloadZod = z3.object({ schema: SchemaZod });
232
+ var isPayload = zodIsFactory2(PayloadZod);
233
+ var asPayload = zodAsFactory2(PayloadZod, "asPayload");
234
+ var toPayload = zodToFactory(PayloadZod, "toPayload");
284
235
  var AnyPayloadZod = PayloadZod.loose();
236
+ var isAnyPayload = zodIsFactory2(AnyPayloadZod);
237
+ var asAnyPayload = zodAsFactory2(AnyPayloadZod, "asAnyPayload");
238
+ var toAnyPayload = zodToFactory(AnyPayloadZod, "toAnyPayload");
285
239
  function WithStorageMetaZod(valueZod) {
286
- return z3.intersection(valueZod, StorageMetaZod);
240
+ return z3.object({ ...valueZod.shape, ...StorageMetaZod.shape });
287
241
  }
288
242
  function WithHashMetaZod(valueZod) {
289
- return z3.intersection(valueZod, HashMetaZod);
243
+ return z3.object({ ...valueZod.shape, ...HashMetaZod.shape });
290
244
  }
291
245
  var PayloadZodStrict = z3.strictObject({ schema: SchemaZod });
292
246
  var PayloadZodLoose = z3.looseObject({ schema: SchemaZod });
@@ -294,7 +248,40 @@ var PayloadZodOfSchema = (schema) => PayloadZod.extend({ schema: z3.literal(sche
294
248
  var PayloadZodStrictOfSchema = (schema) => PayloadZodStrict.extend({ schema: z3.literal(schema) });
295
249
  var PayloadZodLooseOfSchema = (schema) => PayloadZodLoose.extend({ schema: z3.literal(schema) });
296
250
 
251
+ // src/isPayloadOfSchemaType.ts
252
+ function isPayloadOfSchemaType(schema) {
253
+ return (x) => isAnyPayload(x) && x?.schema === schema;
254
+ }
255
+ var isPayloadOfSchemaTypeWithSources = (schema) => {
256
+ return (x) => isPayloadOfSchemaType(schema)(x) && x.$sources != void 0 && Array.isArray(x.$sources);
257
+ };
258
+ var notPayloadOfSchemaType = (schema) => {
259
+ return (x) => !isAnyPayload(x) || x?.schema !== schema;
260
+ };
261
+
262
+ // src/Error.ts
263
+ var ModuleErrorSchema = asSchema("network.xyo.error.module", true);
264
+ var isModuleError = isPayloadOfSchemaType(ModuleErrorSchema);
265
+
266
+ // src/isPayloadOfZodType.ts
267
+ import { isDefined } from "@xylabs/sdk-js";
268
+ function isPayloadOfZodType(zodSchema, schema) {
269
+ return (x) => {
270
+ if (!isAnyPayload(x)) return false;
271
+ if (isDefined(schema) && x.schema !== schema) return false;
272
+ const { schema: _, ...data } = x;
273
+ return zodSchema.safeParse(data).success;
274
+ };
275
+ }
276
+
297
277
  // src/PayloadBundle.ts
278
+ import {
279
+ HashZod as HashZod2,
280
+ zodAsFactory as zodAsFactory3,
281
+ zodIsFactory as zodIsFactory3,
282
+ zodToFactory as zodToFactory2
283
+ } from "@xylabs/sdk-js";
284
+ import z4 from "zod";
298
285
  var PayloadBundleSchema = asSchema("network.xyo.payload.bundle", true);
299
286
  var PayloadBundleFieldsZod = z4.object({
300
287
  payloads: PayloadZodLoose.array(),
@@ -372,7 +359,9 @@ export {
372
359
  isStorageMeta,
373
360
  makeSchema,
374
361
  notPayloadOfSchemaType,
362
+ toAnyPayload,
375
363
  toHashMeta,
364
+ toPayload,
376
365
  toSchema,
377
366
  toSequenceMeta,
378
367
  toStorageMeta
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/isPayload.ts","../../src/isPayloadOfSchemaType.ts","../../src/Schema.ts","../../src/Error.ts","../../src/isPayloadOfZodType.ts","../../src/PayloadBundle.ts","../../src/PayloadZod.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/PayloadSet/PayloadSetSchema.ts"],"sourcesContent":["import { AsObjectFactory, isObject } from '@xylabs/sdk-js'\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 { Brand } from '@xylabs/sdk-js'\nimport { zodAsFactory, zodIsFactory } from '@xylabs/sdk-js'\nimport z from 'zod'\n\nexport type BrandedSchema<T extends string = string> = Brand<T, { readonly __schema: true }>\nexport const SchemaRegEx = /^(?:[a-z0-9]+\\.)*[a-z0-9]+$/\n\nexport const SchemaZod = z.string().regex(SchemaRegEx).transform<BrandedSchema>(v => v as BrandedSchema)\nexport type Schema<T extends string = string> = z.infer<typeof SchemaZod> & BrandedSchema<T>\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 isSchema = zodIsFactory(SchemaZod)\nexport const asSchema = zodAsFactory(SchemaZod, 'asSchema')\nexport const toSchema = zodAsFactory(SchemaZod, 'toSchema')\n\nexport const PayloadSchema = asSchema('network.xyo.payload', true)\nexport const PayloadSchemaZod = z.literal(PayloadSchema)\nexport type PayloadSchema = z.infer<typeof PayloadSchemaZod>\n","import type { Hash, JsonValue } from '@xylabs/sdk-js'\n\nimport { isPayloadOfSchemaType } from './isPayloadOfSchemaType.ts'\nimport type { Payload } from './Payload.ts'\nimport { asSchema, type Schema } from './Schema.ts'\n\nexport const ModuleErrorSchema = asSchema('network.xyo.error.module', true)\nexport type ModuleErrorSchema = typeof ModuleErrorSchema\n\nexport type ModuleError = Payload<{\n details?: JsonValue\n message?: string\n name?: string\n query?: Hash | Schema\n}, ModuleErrorSchema>\n\nexport const isModuleError = isPayloadOfSchemaType<ModuleError>(ModuleErrorSchema)\n","import { isDefined } from '@xylabs/sdk-js'\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 {\n HashZod,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport z from 'zod'\n\nimport { PayloadZodLoose, PayloadZodOfSchema } from './PayloadZod.ts'\nimport { asSchema } 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 = asSchema('network.xyo.payload.bundle', true)\nexport type PayloadBundleSchema = typeof PayloadBundleSchema\n\nexport const PayloadBundleFieldsZod = z.object({\n payloads: PayloadZodLoose.array(),\n root: HashZod,\n})\n\nexport type PayloadBundleFields = z.infer<typeof PayloadBundleFieldsZod>\n\nexport const PayloadBundleZod = PayloadZodOfSchema(PayloadBundleSchema).extend(PayloadBundleFieldsZod.shape)\n\nexport type PayloadBundle = z.infer<typeof PayloadBundleZod>\n\nexport const isPayloadBundle = zodIsFactory(PayloadBundleZod)\nexport const asPayloadBundle = zodAsFactory(PayloadBundleZod, 'asPayloadBundle')\nexport const asOptionalPayloadBundle = zodToFactory(PayloadBundleZod, 'asPayloadBundle')\n","import {\n HashZod,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { ZodType } from '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\nexport const AnyPayloadZod = PayloadZod.loose()\n\nexport type AnyPayload = z.infer<typeof AnyPayloadZod>\n\nexport function WithStorageMetaZod<T extends ZodType>(valueZod: T) {\n return z.intersection(valueZod, StorageMetaZod)\n}\n\nexport function WithHashMetaZod<T extends ZodType>(valueZod: T): z.ZodIntersection<T, typeof HashMetaZod>\nexport function WithHashMetaZod<T extends ZodType>(valueZod: T) {\n return z.intersection(valueZod, HashMetaZod)\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 { AsObjectFactory } from '@xylabs/sdk-js'\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 type {\n Address,\n Hash, Hex,\n} from '@xylabs/sdk-js'\nimport {\n assertEx,\n isAddress,\n toAddress,\n toHex, toUint8Array,\n} from '@xylabs/sdk-js'\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 {\n Address, Brand, Hex,\n} from '@xylabs/sdk-js'\nimport { isHex } from '@xylabs/sdk-js'\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/sdk-js'\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/sdk-js'\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 { asSchema } from '../Schema.ts'\n\nexport const PayloadSetSchema = asSchema('network.xyo.payload.set', true)\nexport type PayloadSetSchema = typeof PayloadSetSchema\n"],"mappings":"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","names":["HashZod","zodAsFactory","zodIsFactory","zodToFactory","z","zodAsFactory","zodIsFactory","z","AsObjectFactory","toHex","z","z","toHex","z","zodIsFactory","zodAsFactory","z","HashZod","zodIsFactory","zodAsFactory","zodToFactory"]}
1
+ {"version":3,"sources":["../../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","../../src/isPayloadOfSchemaType.ts","../../src/Error.ts","../../src/isPayloadOfZodType.ts","../../src/PayloadBundle.ts","../../src/PayloadSet/PayloadSetSchema.ts"],"sourcesContent":["import {\n HashZod,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { ZodRawShape } from '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\nexport const isPayload = zodIsFactory(PayloadZod)\nexport const asPayload = zodAsFactory(PayloadZod, 'asPayload')\nexport const toPayload = zodToFactory(PayloadZod, 'toPayload')\n\nexport const AnyPayloadZod = PayloadZod.loose()\n\nexport const isAnyPayload = zodIsFactory(AnyPayloadZod)\nexport const asAnyPayload = zodAsFactory(AnyPayloadZod, 'asAnyPayload')\nexport const toAnyPayload = zodToFactory(AnyPayloadZod, 'toAnyPayload')\n\nexport type AnyPayload = z.infer<typeof AnyPayloadZod>\n\nexport function WithStorageMetaZod<T extends ZodRawShape>(valueZod: z.ZodObject<T>) {\n return z.object({ ...valueZod.shape, ...StorageMetaZod.shape })\n}\n\nexport function WithHashMetaZod<T extends ZodRawShape>(valueZod: z.ZodObject<T>) {\n return z.object({ ...valueZod.shape, ...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 { Brand } from '@xylabs/sdk-js'\nimport { zodAsFactory, zodIsFactory } from '@xylabs/sdk-js'\nimport z from 'zod'\n\nexport type BrandedSchema<T extends string = string> = Brand<T, { readonly __schema: true }>\nexport const SchemaRegEx = /^(?:[a-z0-9]+\\.)*[a-z0-9]+$/\n\nexport const SchemaZod = z.string().regex(SchemaRegEx).transform<BrandedSchema>(v => v as BrandedSchema)\nexport type Schema<T extends string = string> = z.infer<typeof SchemaZod> & BrandedSchema<T>\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 isSchema = zodIsFactory(SchemaZod)\nexport const asSchema = zodAsFactory(SchemaZod, 'asSchema')\nexport const toSchema = zodAsFactory(SchemaZod, 'toSchema')\n\nexport const PayloadSchema = asSchema('network.xyo.payload', true)\nexport const PayloadSchemaZod = z.literal(PayloadSchema)\nexport type PayloadSchema = z.infer<typeof PayloadSchemaZod>\n","import { AsObjectFactory } from '@xylabs/sdk-js'\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 type {\n Address,\n Hash, Hex,\n} from '@xylabs/sdk-js'\nimport {\n assertEx,\n isAddress,\n toAddress,\n toHex, toUint8Array,\n} from '@xylabs/sdk-js'\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 {\n Address, Brand, Hex,\n} from '@xylabs/sdk-js'\nimport { isHex } from '@xylabs/sdk-js'\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/sdk-js'\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/sdk-js'\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 type { Payload, WithSources } from './Payload.ts'\nimport { isAnyPayload } from './PayloadZod.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, JsonValue } from '@xylabs/sdk-js'\n\nimport { isPayloadOfSchemaType } from './isPayloadOfSchemaType.ts'\nimport type { Payload } from './Payload.ts'\nimport { asSchema, type Schema } from './Schema.ts'\n\nexport const ModuleErrorSchema = asSchema('network.xyo.error.module', true)\nexport type ModuleErrorSchema = typeof ModuleErrorSchema\n\nexport type ModuleError = Payload<{\n details?: JsonValue\n message?: string\n name?: string\n query?: Hash | Schema\n}, ModuleErrorSchema>\n\nexport const isModuleError = isPayloadOfSchemaType<ModuleError>(ModuleErrorSchema)\n","import { isDefined } from '@xylabs/sdk-js'\nimport type { ZodObject } from 'zod'\n\nimport type { Payload } from './Payload.ts'\nimport { isAnyPayload } from './PayloadZod.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 {\n HashZod,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport z from 'zod'\n\nimport { PayloadZodLoose, PayloadZodOfSchema } from './PayloadZod.ts'\nimport { asSchema } 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 = asSchema('network.xyo.payload.bundle', true)\nexport type PayloadBundleSchema = typeof PayloadBundleSchema\n\nexport const PayloadBundleFieldsZod = z.object({\n payloads: PayloadZodLoose.array(),\n root: HashZod,\n})\n\nexport type PayloadBundleFields = z.infer<typeof PayloadBundleFieldsZod>\n\nexport const PayloadBundleZod = PayloadZodOfSchema(PayloadBundleSchema).extend(PayloadBundleFieldsZod.shape)\n\nexport type PayloadBundle = z.infer<typeof PayloadBundleZod>\n\nexport const isPayloadBundle = zodIsFactory(PayloadBundleZod)\nexport const asPayloadBundle = zodAsFactory(PayloadBundleZod, 'asPayloadBundle')\nexport const asOptionalPayloadBundle = zodToFactory(PayloadBundleZod, 'asPayloadBundle')\n","import { asSchema } from '../Schema.ts'\n\nexport const PayloadSetSchema = asSchema('network.xyo.payload.set', true)\nexport type PayloadSetSchema = typeof PayloadSetSchema\n"],"mappings":"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","names":["zodAsFactory","zodIsFactory","z","toHex","z","z","toHex","z","zodIsFactory","zodAsFactory","HashZod","zodAsFactory","zodIsFactory","zodToFactory","z","z","HashZod","zodIsFactory","zodAsFactory","zodToFactory"]}
@@ -1 +1 @@
1
- {"version":3,"file":"isPayloadOfSchemaType.d.ts","sourceRoot":"","sources":["../../src/isPayloadOfSchemaType.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAExD,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,IAClF,IAAI,OAAO,GAAG,IAAI,KAAG,CAAC,IAAI,CAAC,CACpC;AAED,eAAO,MAAM,gCAAgC,GAAI,CAAC,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAC7F,IAAI,OAAO,GAAG,IAAI,KAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAEhD,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MACnF,IAAI,OAAO,GAAG,IAAI,KAAG,CAAC,IAAI,CACnC,CAAA"}
1
+ {"version":3,"file":"isPayloadOfSchemaType.d.ts","sourceRoot":"","sources":["../../src/isPayloadOfSchemaType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAGxD,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,IAClF,IAAI,OAAO,GAAG,IAAI,KAAG,CAAC,IAAI,CAAC,CACpC;AAED,eAAO,MAAM,gCAAgC,GAAI,CAAC,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAC7F,IAAI,OAAO,GAAG,IAAI,KAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAEhD,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MACnF,IAAI,OAAO,GAAG,IAAI,KAAG,CAAC,IAAI,CACnC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"isPayloadOfZodType.d.ts","sourceRoot":"","sources":["../../src/isPayloadOfZodType.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAGpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,EACjC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAC1B,IAAI,OAAO,GAAG,IAAI,KAAG,CAAC,IAAI,CAAC,CAMpC"}
1
+ {"version":3,"file":"isPayloadOfZodType.d.ts","sourceRoot":"","sources":["../../src/isPayloadOfZodType.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAEpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAG3C;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,EACjC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAC1B,IAAI,OAAO,GAAG,IAAI,KAAG,CAAC,IAAI,CAAC,CAMpC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/payload-model",
3
- "version": "5.3.12",
3
+ "version": "5.3.15",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
package/src/PayloadZod.ts CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  HashZod,
3
3
  zodAsFactory, zodIsFactory, zodToFactory,
4
4
  } from '@xylabs/sdk-js'
5
- import type { ZodType } from 'zod'
5
+ import type { ZodRawShape } from 'zod'
6
6
  import z from 'zod'
7
7
 
8
8
  import type { Payload } from './Payload.ts'
@@ -47,17 +47,24 @@ export const toStorageMeta = zodToFactory(StorageMetaZod, 'toStorageMeta')
47
47
 
48
48
  export const PayloadZod = z.object({ schema: SchemaZod })
49
49
 
50
+ export const isPayload = zodIsFactory(PayloadZod)
51
+ export const asPayload = zodAsFactory(PayloadZod, 'asPayload')
52
+ export const toPayload = zodToFactory(PayloadZod, 'toPayload')
53
+
50
54
  export const AnyPayloadZod = PayloadZod.loose()
51
55
 
56
+ export const isAnyPayload = zodIsFactory(AnyPayloadZod)
57
+ export const asAnyPayload = zodAsFactory(AnyPayloadZod, 'asAnyPayload')
58
+ export const toAnyPayload = zodToFactory(AnyPayloadZod, 'toAnyPayload')
59
+
52
60
  export type AnyPayload = z.infer<typeof AnyPayloadZod>
53
61
 
54
- export function WithStorageMetaZod<T extends ZodType>(valueZod: T) {
55
- return z.intersection(valueZod, StorageMetaZod)
62
+ export function WithStorageMetaZod<T extends ZodRawShape>(valueZod: z.ZodObject<T>) {
63
+ return z.object({ ...valueZod.shape, ...StorageMetaZod.shape })
56
64
  }
57
65
 
58
- export function WithHashMetaZod<T extends ZodType>(valueZod: T): z.ZodIntersection<T, typeof HashMetaZod>
59
- export function WithHashMetaZod<T extends ZodType>(valueZod: T) {
60
- return z.intersection(valueZod, HashMetaZod)
66
+ export function WithHashMetaZod<T extends ZodRawShape>(valueZod: z.ZodObject<T>) {
67
+ return z.object({ ...valueZod.shape, ...HashMetaZod.shape })
61
68
  }
62
69
 
63
70
  export const PayloadZodStrict = z.strictObject({ schema: SchemaZod })
package/src/index.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from './Error.ts'
2
- export * from './isPayload.ts'
3
2
  export * from './isPayloadOfSchemaType.ts'
4
3
  export * from './isPayloadOfZodType.ts'
5
4
  export * from './Payload.ts'
@@ -1,5 +1,5 @@
1
- import { isAnyPayload } from './isPayload.ts'
2
1
  import type { Payload, WithSources } from './Payload.ts'
2
+ import { isAnyPayload } from './PayloadZod.ts'
3
3
 
4
4
  export function isPayloadOfSchemaType<T extends Payload | never = never>(schema: T['schema']) {
5
5
  return (x?: unknown | null): x is T => isAnyPayload(x) && x?.schema === schema
@@ -1,8 +1,8 @@
1
1
  import { isDefined } from '@xylabs/sdk-js'
2
2
  import type { ZodObject } from 'zod'
3
3
 
4
- import { isAnyPayload } from './isPayload.ts'
5
4
  import type { Payload } from './Payload.ts'
5
+ import { isAnyPayload } from './PayloadZod.ts'
6
6
 
7
7
  /**
8
8
  * Checks if a value is a payload of a specific Zod type.
@@ -1,6 +0,0 @@
1
- import type { Payload } from './Payload.ts';
2
- export declare const isAnyPayload: (value: unknown) => value is Payload;
3
- export declare const asAnyPayload: import("@xylabs/sdk-js").AsTypeFunction<Payload>;
4
- export declare const isPayload: <T extends Payload>(schema: string[]) => (value: unknown) => value is T;
5
- export declare const asPayload: <T extends Payload>(schema: string[]) => import("@xylabs/sdk-js").AsTypeFunction<T>;
6
- //# sourceMappingURL=isPayload.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isPayload.d.ts","sourceRoot":"","sources":["../../src/isPayload.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,OAKtD,CAAA;AAED,eAAO,MAAM,YAAY,kDAAuC,CAAA;AAEhE,eAAO,MAAM,SAAS,GACjB,CAAC,SAAS,OAAO,EAAE,QAAQ,MAAM,EAAE,MACnC,OAAO,OAAO,KAAG,KAAK,IAAI,CAK1B,CAAA;AAEL,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,OAAO,EAAE,QAAQ,MAAM,EAAE,+CAAqF,CAAA"}
package/src/isPayload.ts DELETED
@@ -1,23 +0,0 @@
1
- import { AsObjectFactory, isObject } from '@xylabs/sdk-js'
2
-
3
- import type { Payload } from './Payload.ts'
4
-
5
- export const isAnyPayload = (value: unknown): value is Payload => {
6
- if (isObject(value)) {
7
- return typeof (value as Payload).schema === 'string'
8
- }
9
- return false
10
- }
11
-
12
- export const asAnyPayload = AsObjectFactory.create(isAnyPayload)
13
-
14
- export const isPayload
15
- = <T extends Payload>(schema: string[]) =>
16
- (value: unknown): value is T => {
17
- if (isAnyPayload(value)) {
18
- return schema.includes(value.schema)
19
- }
20
- return false
21
- }
22
-
23
- export const asPayload = <T extends Payload>(schema: string[]) => AsObjectFactory.create((value: unknown): value is T => isPayload(schema)(value))