@xyo-network/payload-model 5.2.25 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,6 @@ export type ModuleError = Payload<{
8
8
  message?: string;
9
9
  name?: string;
10
10
  query?: Hash | Schema;
11
- schema: ModuleErrorSchema;
12
- }>;
11
+ }, ModuleErrorSchema>;
13
12
  export declare const isModuleError: (x?: unknown | null) => x is ModuleError;
14
13
  //# sourceMappingURL=Error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../src/Error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAGrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,eAAO,MAAM,iBAAiB,EAAiC,MAAM,CAAA;AACrE,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAA;AAExD,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,MAAM,EAAE,iBAAiB,CAAA;CAC1B,CAAC,CAAA;AAEF,eAAO,MAAM,aAAa,0CAAwD,CAAA"}
1
+ {"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../src/Error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAGrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,eAAO,MAAM,iBAAiB,EAAiC,MAAM,CAAA;AACrE,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAA;AAExD,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CACtB,EAAE,iBAAiB,CAAC,CAAA;AAErB,eAAO,MAAM,aAAa,0CAAwD,CAAA"}
@@ -1,8 +1,9 @@
1
1
  import type { DeepOmitStartsWith, DeepPickStartsWith, EmptyObject, Hash } from '@xylabs/sdk-js';
2
- import type { Schema, WithSchema } from './Schema.ts';
2
+ import type { BrandedSchema, Schema } from './Schema.ts';
3
3
  export interface SchemaField<T extends Schema = Schema> {
4
4
  schema: T;
5
5
  }
6
+ export type WithSchema<T extends EmptyObject | void = void> = T extends EmptyObject ? SchemaField & T : PayloadFields;
6
7
  /** Additional fields for a payload */
7
8
  export interface PayloadFields extends SchemaField {
8
9
  }
@@ -11,22 +12,18 @@ export interface SourcesMetaField {
11
12
  }
12
13
  export interface PayloadMetaFields extends SourcesMetaField {
13
14
  }
14
- export type WithPayload<T extends EmptyObject | void = void> = WithSchema<T extends EmptyObject ? PayloadFields & T : PayloadFields>;
15
+ export type WithPayload<T extends EmptyObject | void = void> = T extends EmptyObject ? PayloadFields & T : PayloadFields;
15
16
  /** Base Type for Payloads */
16
- export type Payload<T extends void | EmptyObject | WithSchema = void, S extends Schema | void = void> = (T extends WithSchema ? S extends Schema ? WithPayload<Omit<T, 'schema'> & {
17
- schema: S;
17
+ export type Payload<T extends void | EmptyObject | SchemaField = void, S extends Schema | void = void> = (T extends SchemaField ? S extends Schema ? WithPayload<Omit<T, 'schema'> & {
18
+ schema: BrandedSchema<S>;
18
19
  }> : WithPayload<T> : T extends object ? S extends Schema ? WithPayload<T & {
19
- schema: S;
20
+ schema: BrandedSchema<S>;
20
21
  }> : WithPayload<T & PayloadFields> : WithPayload<{
21
22
  schema: S extends Schema ? S : Schema;
22
23
  }>) & Partial<PayloadMetaFields>;
23
24
  export type OverridablePayload<T extends Payload> = WithoutMeta<Omit<T, 'schema'> & PayloadFields>;
24
25
  export type WithSources<T extends EmptyObject> = T & SourcesMetaField;
25
- /** @deprecated optional $sources are now optional in all Payloads */
26
- export type WithOptionalSources<T extends EmptyObject> = (T & SourcesMetaField) | T;
27
- export type PayloadWithSources<T extends void | EmptyObject | WithSchema = void, S extends Schema | void = void> = WithSources<Payload<T, S>>;
28
- /** @deprecated optional $sources are now optional in all Payloads */
29
- export type PayloadWithOptionalSources<T extends void | EmptyObject | WithSchema = void, S extends Schema | void = void> = WithOptionalSources<Payload<T, S>>;
26
+ export type PayloadWithSources<T extends void | EmptyObject | SchemaField = void, S extends Schema | void = void> = WithSources<Payload<T, S>>;
30
27
  export type WithAnySchema<T extends Payload> = OverridablePayload<T>;
31
28
  export type WithoutClientMeta<T extends Payload | EmptyObject> = DeepOmitStartsWith<T, '$'> & (T extends Payload ? Payload : EmptyObject);
32
29
  export type WithoutStorageMeta<T extends Payload | EmptyObject> = DeepOmitStartsWith<T, '_'> & (T extends Payload ? Payload : EmptyObject);
@@ -1 +1 @@
1
- {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"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"}
@@ -1,56 +1,57 @@
1
1
  import z from 'zod';
2
- export declare const PayloadBundleSchema: "network.xyo.payload.bundle";
2
+ import type { Schema } from './Schema.ts';
3
+ export declare const PayloadBundleSchema: Schema;
3
4
  export type PayloadBundleSchema = typeof PayloadBundleSchema;
4
5
  export declare const PayloadBundleFieldsZod: z.ZodObject<{
5
6
  payloads: z.ZodArray<z.ZodObject<{
6
- schema: z.ZodString;
7
+ schema: z.ZodPipe<z.ZodString, z.ZodTransform<import("./Schema.ts").BrandedSchema<string>, string>>;
7
8
  }, z.z.core.$strict>>;
8
9
  root: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").BrandedHash, string>>;
9
10
  }, z.z.core.$strip>;
10
11
  export type PayloadBundleFields = z.infer<typeof PayloadBundleFieldsZod>;
11
12
  export declare const PayloadBundleZod: z.ZodObject<{
12
- schema: z.ZodLiteral<"network.xyo.payload.bundle">;
13
+ schema: z.ZodLiteral<Schema>;
13
14
  payloads: z.ZodArray<z.ZodObject<{
14
- schema: z.ZodString;
15
+ schema: z.ZodPipe<z.ZodString, z.ZodTransform<import("./Schema.ts").BrandedSchema<string>, string>>;
15
16
  }, z.z.core.$strict>>;
16
17
  root: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").BrandedHash, string>>;
17
18
  }, z.z.core.$strip>;
18
19
  export type PayloadBundle = z.infer<typeof PayloadBundleZod>;
19
20
  export declare const isPayloadBundle: <T>(value: T) => value is T & {
20
- schema: "network.xyo.payload.bundle";
21
+ schema: Schema;
21
22
  payloads: {
22
- schema: string;
23
+ schema: import("./Schema.ts").BrandedSchema<string>;
23
24
  }[];
24
25
  root: import("@xylabs/sdk-js").BrandedHash;
25
26
  };
26
27
  export declare const asPayloadBundle: {
27
28
  <T>(value: T): (T & {
28
- schema: "network.xyo.payload.bundle";
29
+ schema: Schema;
29
30
  payloads: {
30
- schema: string;
31
+ schema: import("./Schema.ts").BrandedSchema<string>;
31
32
  }[];
32
33
  root: import("@xylabs/sdk-js").BrandedHash;
33
34
  }) | undefined;
34
35
  <T>(value: T, assert: import("@xylabs/zod").ZodFactoryConfig): T & {
35
- schema: "network.xyo.payload.bundle";
36
+ schema: Schema;
36
37
  payloads: {
37
- schema: string;
38
+ schema: import("./Schema.ts").BrandedSchema<string>;
38
39
  }[];
39
40
  root: import("@xylabs/sdk-js").BrandedHash;
40
41
  };
41
42
  };
42
43
  export declare const asOptionalPayloadBundle: {
43
44
  <T>(value: T): (T & {
44
- schema: "network.xyo.payload.bundle";
45
+ schema: Schema;
45
46
  payloads: {
46
- schema: string;
47
+ schema: import("./Schema.ts").BrandedSchema<string>;
47
48
  }[];
48
49
  root: import("@xylabs/sdk-js").BrandedHash;
49
50
  }) | undefined;
50
51
  <T>(value: T, assert: import("@xylabs/zod").ZodFactoryConfig): T & {
51
- schema: "network.xyo.payload.bundle";
52
+ schema: Schema;
52
53
  payloads: {
53
- schema: string;
54
+ schema: import("./Schema.ts").BrandedSchema<string>;
54
55
  }[];
55
56
  root: import("@xylabs/sdk-js").BrandedHash;
56
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PayloadBundle.d.ts","sourceRoot":"","sources":["../../src/PayloadBundle.ts"],"names":[],"mappings":"AAIA,OAAO,CAAC,MAAM,KAAK,CAAA;AAKnB,eAAO,MAAM,mBAAmB,EAAG,4BAAqC,CAAA;AACxE,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA;AAE5D,eAAO,MAAM,sBAAsB;;;;;mBAGjC,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAExE,eAAO,MAAM,gBAAgB;;;;;;mBAA+E,CAAA;AAE5G,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE5D,eAAO,MAAM,eAAe;;;;;;CAAiC,CAAA;AAC7D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;CAAoD,CAAA;AAChF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;CAAoD,CAAA"}
1
+ {"version":3,"file":"PayloadBundle.d.ts","sourceRoot":"","sources":["../../src/PayloadBundle.ts"],"names":[],"mappings":"AAIA,OAAO,CAAC,MAAM,KAAK,CAAA;AAGnB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,eAAO,MAAM,mBAAmB,EAAmC,MAAM,CAAA;AACzE,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA;AAE5D,eAAO,MAAM,sBAAsB;;;;;mBAGjC,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAExE,eAAO,MAAM,gBAAgB;;;;;;mBAA+E,CAAA;AAE5G,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE5D,eAAO,MAAM,eAAe;;;;;;CAAiC,CAAA;AAC7D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;CAAoD,CAAA;AAChF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;CAAoD,CAAA"}
@@ -91,21 +91,21 @@ export declare const toStorageMeta: {
91
91
  };
92
92
  };
93
93
  export declare const PayloadZod: z.ZodObject<{
94
- schema: z.ZodString;
94
+ schema: z.ZodPipe<z.ZodString, z.ZodTransform<import("./Schema.ts").BrandedSchema<string>, string>>;
95
95
  }, z.z.core.$strip>;
96
96
  /** @deprecated use WithStorageMetaZod */
97
97
  export declare const PayloadWithStorageMetaZod: z.ZodObject<{
98
- schema: z.ZodString;
98
+ schema: z.ZodPipe<z.ZodString, z.ZodTransform<import("./Schema.ts").BrandedSchema<string>, string>>;
99
99
  _hash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").BrandedHash, string>>;
100
100
  _dataHash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").BrandedHash, string>>;
101
101
  _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>>]>;
102
102
  }, z.z.core.$strip>;
103
103
  export declare const AnyPayloadZod: z.ZodObject<{
104
- schema: z.ZodString;
104
+ schema: z.ZodPipe<z.ZodString, z.ZodTransform<import("./Schema.ts").BrandedSchema<string>, string>>;
105
105
  }, z.z.core.$loose>;
106
106
  /** @deprecated use WithStorageMetaZod */
107
107
  export declare const AnyPayloadWithStorageMetaZod: z.ZodObject<{
108
- schema: z.ZodString;
108
+ schema: z.ZodPipe<z.ZodString, z.ZodTransform<import("./Schema.ts").BrandedSchema<string>, string>>;
109
109
  _hash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").BrandedHash, string>>;
110
110
  _dataHash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").BrandedHash, string>>;
111
111
  _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>>]>;
@@ -132,7 +132,7 @@ export declare function WithHashMetaZod<T extends z.ZodRawShape>(valueZod: z.Zod
132
132
  _dataHash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").BrandedHash, string>>;
133
133
  }) extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.z.core.$strip>;
134
134
  export declare const PayloadZodStrict: z.ZodObject<{
135
- schema: z.ZodString;
135
+ schema: z.ZodPipe<z.ZodString, z.ZodTransform<import("./Schema.ts").BrandedSchema<string>, string>>;
136
136
  }, z.z.core.$strict>;
137
137
  export type PayloadZodStrict = typeof PayloadZodStrict;
138
138
  export declare const PayloadZodLoose: PayloadZodStrict;
@@ -1,6 +1,6 @@
1
1
  import type { Address, EmptyObject } from '@xylabs/sdk-js';
2
- import type { Payload } from './Payload.ts';
3
- import type { Schema, WithSchema } from './Schema.ts';
2
+ import type { Payload, SchemaField } from './Payload.ts';
3
+ import type { Schema } from './Schema.ts';
4
4
  export interface QueryFields {
5
5
  /** @field The addresses of the intended handlers */
6
6
  address?: Address | Address[];
@@ -11,5 +11,5 @@ export interface QueryFields {
11
11
  /** @field The starting point for the bidding on the query */
12
12
  minBid?: number;
13
13
  }
14
- export type Query<T extends void | EmptyObject | WithSchema = void, S extends Schema | void = void> = Payload<T extends void ? QueryFields : T & QueryFields, S extends void ? T extends WithSchema ? T['schema'] : T extends void ? Schema : void : S>;
14
+ export type Query<T extends void | EmptyObject | SchemaField = void, S extends Schema | void = void> = Payload<T extends void ? QueryFields : T & QueryFields, S extends void ? T extends SchemaField ? T['schema'] : T extends void ? Schema : void : S>;
15
15
  //# sourceMappingURL=Query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../src/Query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAErD,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;IAE7B,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IAExF,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,IAAI,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,EAAE,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,IAAI,IAAI,OAAO,CAC3G,CAAC,SAAS,IAAI,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,EAC9C,CAAC,SAAS,IAAI,GACV,CAAC,SAAS,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,GAChC,CAAC,SAAS,IAAI,GAAG,MAAM,GACrB,IAAI,GACR,CAAC,CACN,CAAA"}
1
+ {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../src/Query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;IAE7B,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IAExF,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,IAAI,EAAE,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,IAAI,IAAI,OAAO,CAC5G,CAAC,SAAS,IAAI,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,EAC9C,CAAC,SAAS,IAAI,GACV,CAAC,SAAS,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,GACjC,CAAC,SAAS,IAAI,GAAG,MAAM,GACrB,IAAI,GACR,CAAC,CACN,CAAA"}
@@ -1,28 +1,38 @@
1
- import type { EmptyObject } from '@xylabs/sdk-js';
1
+ import type { Brand } from '@xylabs/sdk-js';
2
2
  import z from 'zod';
3
+ export type BrandedSchema<T extends string = string> = Brand<T, {
4
+ readonly __schema: true;
5
+ }>;
3
6
  export declare const SchemaRegEx: RegExp;
4
- export declare const SchemaZod: z.ZodString;
5
- export type Schema = z.infer<typeof SchemaZod>;
7
+ export declare const SchemaZod: z.ZodPipe<z.ZodString, z.ZodTransform<BrandedSchema<string>, string>>;
8
+ export type Schema<T extends string = string> = z.infer<typeof SchemaZod> & BrandedSchema<T>;
6
9
  export declare const makeSchema: <T extends string>(value: T) => z.ZodPipe<z.ZodTemplateLiteral<z.ZodLiteral<T> extends infer T_1 ? T_1 extends z.ZodLiteral<T> ? T_1 extends z.z.core.$ZodType<unknown, unknown, z.z.core.$ZodTypeInternals<unknown, unknown>> ? `${z.z.core.output<T_1> extends infer T_2 extends string | number | bigint | boolean | null | undefined ? T_2 extends undefined ? "" : T_2 : never}` : never : never : never>, z.ZodTransform<Awaited<(z.ZodLiteral<T> extends infer T_3 ? T_3 extends z.ZodLiteral<T> ? T_3 extends z.z.core.$ZodType<unknown, unknown, z.z.core.$ZodTypeInternals<unknown, unknown>> ? `${z.z.core.output<T_3> extends infer T_2 extends string | number | bigint | boolean | null | undefined ? T_2 extends undefined ? "" : T_2 : never}` : never : never : never) & {
7
10
  __schema: true;
8
11
  }>, z.ZodLiteral<T> extends infer T_4 ? T_4 extends z.ZodLiteral<T> ? T_4 extends z.z.core.$ZodType<unknown, unknown, z.z.core.$ZodTypeInternals<unknown, unknown>> ? `${z.z.core.output<T_4> extends infer T_2 extends string | number | bigint | boolean | null | undefined ? T_2 extends undefined ? "" : T_2 : never}` : never : never : never>>;
9
- export declare const PayloadSchema: "network.xyo.payload";
10
- export declare const PayloadSchemaZod: z.ZodLiteral<"network.xyo.payload">;
11
- export type PayloadSchema = z.infer<typeof PayloadSchemaZod>;
12
- export declare const isSchema: <T>(value: T) => value is T & string;
12
+ export declare const isSchema: <T>(value: T) => value is T & string & {
13
+ readonly __schema: true;
14
+ };
13
15
  export declare const asSchema: {
14
- <T>(value: T): (T & string) | undefined;
15
- <T>(value: T, assert: import("@xylabs/zod").ZodFactoryConfig): T & string;
16
+ <T>(value: T): (T & string & {
17
+ readonly __schema: true;
18
+ }) | undefined;
19
+ <T>(value: T, assert: import("@xylabs/zod").ZodFactoryConfig): T & string & {
20
+ readonly __schema: true;
21
+ };
16
22
  };
17
23
  export declare const toSchema: {
18
- <T>(value: T): (T & string) | undefined;
19
- <T>(value: T, assert: import("@xylabs/zod").ZodFactoryConfig): T & string;
24
+ <T>(value: T): (T & string & {
25
+ readonly __schema: true;
26
+ }) | undefined;
27
+ <T>(value: T, assert: import("@xylabs/zod").ZodFactoryConfig): T & string & {
28
+ readonly __schema: true;
29
+ };
20
30
  };
21
- /** Add the Schema Fields to an object */
22
- export type WithSchema<T extends EmptyObject | void = void> = T extends EmptyObject ? SchemaFields & T : SchemaFields;
23
- /** Schema fields for a Payload */
24
- export interface SchemaFields extends EmptyObject {
25
- /** Schema of the object */
26
- schema: Schema;
27
- }
31
+ export declare const PayloadSchema: "network.xyo.payload" & {
32
+ readonly __schema: true;
33
+ };
34
+ export declare const PayloadSchemaZod: z.ZodLiteral<"network.xyo.payload" & {
35
+ readonly __schema: true;
36
+ }>;
37
+ export type PayloadSchema = z.infer<typeof PayloadSchemaZod>;
28
38
  //# sourceMappingURL=Schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,eAAO,MAAM,WAAW,QAAgC,CAAA;AAExD,eAAO,MAAM,SAAS,aAAgC,CAAA;AACtD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAE9C,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,EAAE,OAAO,CAAC;cACwC,IAAI;oVAChG,CAAA;AAED,eAAO,MAAM,aAAa,EAAG,qBAA8B,CAAA;AAC3D,eAAO,MAAM,gBAAgB,qCAA2B,CAAA;AACxD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE5D,eAAO,MAAM,QAAQ,sCAA0B,CAAA;AAC/C,eAAO,MAAM,QAAQ;;;CAAsC,CAAA;AAC3D,eAAO,MAAM,QAAQ;;;CAAsC,CAAA;AAE3D,yCAAyC;AACzC,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,WAAW,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,CAAA;AAErH,kCAAkC;AAClC,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAA;CACf"}
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC,CAAA;AAC5F,eAAO,MAAM,WAAW,QAAgC,CAAA;AAExD,eAAO,MAAM,SAAS,uEAAkF,CAAA;AACxG,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;AAE5F,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,EAAE,OAAO,CAAC;cACwC,IAAI;oVAChG,CAAA;AAED,eAAO,MAAM,QAAQ;uBAVgE,IAAI;CAU1C,CAAA;AAC/C,eAAO,MAAM,QAAQ;;2BAXgE,IAAI;;;2BAAJ,IAAI;;CAW9B,CAAA;AAC3D,eAAO,MAAM,QAAQ;;2BAZgE,IAAI;;;2BAAJ,IAAI;;CAY9B,CAAA;AAE3D,eAAO,MAAM,aAAa;uBAd2D,IAAI;CAcvB,CAAA;AAClE,eAAO,MAAM,gBAAgB;uBAfwD,IAAI;EAejC,CAAA;AACxD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
@@ -63,15 +63,15 @@ import z3 from "zod";
63
63
  import { zodAsFactory, zodIsFactory } from "@xylabs/zod";
64
64
  import z from "zod";
65
65
  var SchemaRegEx = /^(?:[a-z0-9]+\.)*[a-z0-9]+$/;
66
- var SchemaZod = z.string().regex(SchemaRegEx);
66
+ var SchemaZod = z.string().regex(SchemaRegEx).transform((v) => v);
67
67
  var makeSchema = (value) => {
68
68
  return z.templateLiteral([z.literal(value)]).transform((x) => x);
69
69
  };
70
- var PayloadSchema = "network.xyo.payload";
71
- var PayloadSchemaZod = z.literal(PayloadSchema);
72
70
  var isSchema = zodIsFactory(SchemaZod);
73
71
  var asSchema = zodAsFactory(SchemaZod, "asSchema");
74
72
  var toSchema = zodAsFactory(SchemaZod, "toSchema");
73
+ var PayloadSchema = asSchema("network.xyo.payload", true);
74
+ var PayloadSchemaZod = z.literal(PayloadSchema);
75
75
 
76
76
  // src/StorageMeta/Sequence.ts
77
77
  import { AsObjectFactory as AsObjectFactory2 } from "@xylabs/sdk-js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/isPayload.ts","../../src/isPayloadOfSchemaType.ts","../../src/Error.ts","../../src/isPayloadOfZodType.ts","../../src/PayloadBundle.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","../../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 { Hash, JsonValue } from '@xylabs/sdk-js'\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/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 { HashZod } from '@xylabs/sdk-js'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/zod'\nimport z from 'zod'\n\nimport { PayloadZodLoose, PayloadZodOfSchema } from './PayloadZod.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 const\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 { HashZod } from '@xylabs/sdk-js'\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/sdk-js'\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/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 { Schema } from '../Schema.ts'\n\nexport const PayloadSetSchema = 'network.xyo.payload.set' as Schema\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/isPayload.ts","../../src/isPayloadOfSchemaType.ts","../../src/Error.ts","../../src/isPayloadOfZodType.ts","../../src/PayloadBundle.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","../../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 { Hash, JsonValue } from '@xylabs/sdk-js'\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}, 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 { HashZod } from '@xylabs/sdk-js'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/zod'\nimport z from 'zod'\n\nimport { PayloadZodLoose, PayloadZodOfSchema } from './PayloadZod.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 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 { HashZod } from '@xylabs/sdk-js'\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 { Brand } from '@xylabs/sdk-js'\nimport { zodAsFactory, zodIsFactory } from '@xylabs/zod'\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 { Schema } from '../Schema.ts'\n\nexport const PayloadSetSchema = 'network.xyo.payload.set' as Schema\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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/payload-model",
3
- "version": "5.2.25",
3
+ "version": "5.3.0",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -36,16 +36,16 @@
36
36
  "!**/*.test.*"
37
37
  ],
38
38
  "dependencies": {
39
- "@xylabs/sdk-js": "~5.0.63",
40
- "@xylabs/zod": "~5.0.63"
39
+ "@xylabs/sdk-js": "~5.0.64",
40
+ "@xylabs/zod": "~5.0.64"
41
41
  },
42
42
  "devDependencies": {
43
- "@xylabs/ts-scripts-yarn3": "~7.2.32",
44
- "@xylabs/tsconfig": "~7.2.32",
45
- "@xylabs/vitest-extended": "~5.0.63",
43
+ "@xylabs/ts-scripts-yarn3": "~7.3.2",
44
+ "@xylabs/tsconfig": "~7.3.2",
45
+ "@xylabs/vitest-extended": "~5.0.64",
46
46
  "typescript": "~5.9.3",
47
- "vitest": "~4.0.17",
48
- "zod": "~4.3.5"
47
+ "vitest": "~4.0.18",
48
+ "zod": "~4.3.6"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "zod": "^4"
package/src/Error.ts CHANGED
@@ -12,7 +12,6 @@ export type ModuleError = Payload<{
12
12
  message?: string
13
13
  name?: string
14
14
  query?: Hash | Schema
15
- schema: ModuleErrorSchema
16
- }>
15
+ }, ModuleErrorSchema>
17
16
 
18
17
  export const isModuleError = isPayloadOfSchemaType<ModuleError>(ModuleErrorSchema)
package/src/Payload.ts CHANGED
@@ -2,12 +2,15 @@ import type {
2
2
  DeepOmitStartsWith, DeepPickStartsWith, EmptyObject, Hash,
3
3
  } from '@xylabs/sdk-js'
4
4
 
5
- import type { Schema, WithSchema } from './Schema.ts'
5
+ import type { BrandedSchema, Schema } from './Schema.ts'
6
6
 
7
7
  export interface SchemaField<T extends Schema = Schema> {
8
8
  schema: T
9
9
  }
10
10
 
11
+ export type WithSchema<T extends EmptyObject | void = void>
12
+ = T extends EmptyObject ? SchemaField & T : PayloadFields
13
+
11
14
  /** Additional fields for a payload */
12
15
  export interface PayloadFields extends SchemaField {}
13
16
 
@@ -16,19 +19,19 @@ export interface SourcesMetaField { $sources: Hash[] }
16
19
  export interface PayloadMetaFields extends SourcesMetaField {}
17
20
 
18
21
  export type WithPayload<T extends EmptyObject | void = void>
19
- = WithSchema<T extends EmptyObject ? PayloadFields & T : PayloadFields>
22
+ = T extends EmptyObject ? PayloadFields & T : PayloadFields
20
23
 
21
24
  /** Base Type for Payloads */
22
- export type Payload<T extends void | EmptyObject | WithSchema = void, S extends Schema | void = void>
23
- = (T extends WithSchema
25
+ export type Payload<T extends void | EmptyObject | SchemaField = void, S extends Schema | void = void>
26
+ = (T extends SchemaField
24
27
  ? S extends Schema
25
28
  /* T (w/Schema) & S provided */
26
- ? WithPayload<Omit<T, 'schema'> & { schema: S }>
29
+ ? WithPayload<Omit<T, 'schema'> & { schema: BrandedSchema<S> }>
27
30
  : /* Only T (w/Schema) provided */ WithPayload<T>
28
31
  : T extends object
29
32
  ? S extends Schema
30
33
  /* T (w/o Schema) & S provided */
31
- ? WithPayload<T & { schema: S }>
34
+ ? WithPayload<T & { schema: BrandedSchema<S> }>
32
35
  : /* Only T (w/o Schema) provided */ WithPayload<T & PayloadFields>
33
36
  : /* Either just S or neither S or T provided */ WithPayload<{
34
37
  schema: S extends Schema ? S : Schema
@@ -37,14 +40,8 @@ export type Payload<T extends void | EmptyObject | WithSchema = void, S extends
37
40
  export type OverridablePayload<T extends Payload> = WithoutMeta<Omit<T, 'schema'> & PayloadFields>
38
41
 
39
42
  export type WithSources<T extends EmptyObject> = T & SourcesMetaField
40
- /** @deprecated optional $sources are now optional in all Payloads */
41
- export type WithOptionalSources<T extends EmptyObject> = (T & SourcesMetaField) | T
42
-
43
- export type PayloadWithSources<T extends void | EmptyObject | WithSchema = void, S extends Schema | void = void> = WithSources<Payload<T, S>>
44
43
 
45
- /** @deprecated optional $sources are now optional in all Payloads */
46
- // eslint-disable-next-line sonarjs/deprecation
47
- export type PayloadWithOptionalSources<T extends void | EmptyObject | WithSchema = void, S extends Schema | void = void> = WithOptionalSources<Payload<T, S>>
44
+ export type PayloadWithSources<T extends void | EmptyObject | SchemaField = void, S extends Schema | void = void> = WithSources<Payload<T, S>>
48
45
 
49
46
  export type WithAnySchema<T extends Payload> = OverridablePayload<T>
50
47
 
@@ -57,3 +54,6 @@ export type WithoutSchema<T extends WithOptionalSchema<Payload>> = Omit<T, 'sche
57
54
  export type WithOptionalSchema<T extends Payload = Payload> = WithoutSchema<T> & Partial<T & SchemaField>
58
55
 
59
56
  export type WithOnlyClientMeta<T extends Payload> = DeepPickStartsWith<T, '$'>
57
+
58
+ type A = Payload<{ a: string; schema: 'test.schema' }>
59
+ type B = Payload<{ a: string }, Schema<'test.schema'>>
@@ -5,9 +5,10 @@ import {
5
5
  import z from 'zod'
6
6
 
7
7
  import { PayloadZodLoose, PayloadZodOfSchema } from './PayloadZod.ts'
8
+ import type { Schema } from './Schema.ts'
8
9
 
9
10
  // payload that wraps a complete boundwitness with its payloads for use in systems such as submission queues
10
- export const PayloadBundleSchema = 'network.xyo.payload.bundle' as const
11
+ export const PayloadBundleSchema = 'network.xyo.payload.bundle' as Schema
11
12
  export type PayloadBundleSchema = typeof PayloadBundleSchema
12
13
 
13
14
  export const PayloadBundleFieldsZod = z.object({
package/src/Query.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { Address, EmptyObject } from '@xylabs/sdk-js'
2
2
 
3
- import type { Payload } from './Payload.ts'
4
- import type { Schema, WithSchema } from './Schema.ts'
3
+ import type { Payload, SchemaField } from './Payload.ts'
4
+ import type { Schema } from './Schema.ts'
5
5
 
6
6
  export interface QueryFields {
7
7
  /** @field The addresses of the intended handlers */
@@ -17,10 +17,10 @@ export interface QueryFields {
17
17
  minBid?: number
18
18
  }
19
19
 
20
- export type Query<T extends void | EmptyObject | WithSchema = void, S extends Schema | void = void> = Payload<
20
+ export type Query<T extends void | EmptyObject | SchemaField = void, S extends Schema | void = void> = Payload<
21
21
  T extends void ? QueryFields : T & QueryFields,
22
22
  S extends void
23
- ? T extends WithSchema ? T['schema']
23
+ ? T extends SchemaField ? T['schema']
24
24
  : T extends void ? Schema
25
25
  : void
26
26
  : S
package/src/Schema.ts CHANGED
@@ -1,29 +1,21 @@
1
- import type { EmptyObject } from '@xylabs/sdk-js'
1
+ import type { Brand } from '@xylabs/sdk-js'
2
2
  import { zodAsFactory, zodIsFactory } from '@xylabs/zod'
3
3
  import z from 'zod'
4
4
 
5
+ export type BrandedSchema<T extends string = string> = Brand<T, { readonly __schema: true }>
5
6
  export const SchemaRegEx = /^(?:[a-z0-9]+\.)*[a-z0-9]+$/
6
7
 
7
- export const SchemaZod = z.string().regex(SchemaRegEx)
8
- export type Schema = z.infer<typeof SchemaZod>
8
+ export const SchemaZod = z.string().regex(SchemaRegEx).transform<BrandedSchema>(v => v as BrandedSchema)
9
+ export type Schema<T extends string = string> = z.infer<typeof SchemaZod> & BrandedSchema<T>
9
10
 
10
11
  export const makeSchema = <T extends string>(value: T) => {
11
12
  return (z.templateLiteral([z.literal(value)])).transform(x => x as (typeof x & { __schema: true }))
12
13
  }
13
14
 
14
- export const PayloadSchema = 'network.xyo.payload' as const
15
- export const PayloadSchemaZod = z.literal(PayloadSchema)
16
- export type PayloadSchema = z.infer<typeof PayloadSchemaZod>
17
-
18
15
  export const isSchema = zodIsFactory(SchemaZod)
19
16
  export const asSchema = zodAsFactory(SchemaZod, 'asSchema')
20
17
  export const toSchema = zodAsFactory(SchemaZod, 'toSchema')
21
18
 
22
- /** Add the Schema Fields to an object */
23
- export type WithSchema<T extends EmptyObject | void = void> = T extends EmptyObject ? SchemaFields & T : SchemaFields
24
-
25
- /** Schema fields for a Payload */
26
- export interface SchemaFields extends EmptyObject {
27
- /** Schema of the object */
28
- schema: Schema
29
- }
19
+ export const PayloadSchema = asSchema('network.xyo.payload', true)
20
+ export const PayloadSchemaZod = z.literal(PayloadSchema)
21
+ export type PayloadSchema = z.infer<typeof PayloadSchemaZod>