@xyo-network/boundwitness-wrapper 6.0.3 → 6.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,11 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness = Bo
10
10
  private _payloadDataMap;
11
11
  private _payloadMap;
12
12
  protected constructor(boundwitness: TBoundWitness, payloads?: TPayload[], moduleErrors?: Payload[]);
13
- get addresses(): (import("@xyo-network/account-model").XyoAddress | (Lowercase<string> & {
13
+ get addresses(): ((Lowercase<string> & {
14
+ readonly __hex: true;
15
+ } & {
16
+ readonly __address: true;
17
+ }) | (Lowercase<string> & {
14
18
  readonly __hex: true;
15
19
  } & {
16
20
  readonly __address: true;
@@ -23,7 +27,11 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness = Bo
23
27
  schema: "network.xyo.boundwitness" & {
24
28
  readonly __schema: true;
25
29
  };
26
- addresses: (import("@xyo-network/account-model").XyoAddress | (Lowercase<string> & {
30
+ addresses: ((Lowercase<string> & {
31
+ readonly __hex: true;
32
+ } & {
33
+ readonly __address: true;
34
+ }) | (Lowercase<string> & {
27
35
  readonly __hex: true;
28
36
  } & {
29
37
  readonly __address: true;
@@ -1 +1 @@
1
- {"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaType.d.ts","sourceRoot":"","sources":["../../src/SchemaType.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAGnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAKzC,eAAO,MAAM,cAAc,QAA2B,CAAA;AAEtD,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,YAAY,CAgB7E,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,YAAY,CAO/D,CAAA"}
1
+ {"version":3,"file":"SchemaType.d.ts","sourceRoot":"","sources":["../../src/SchemaType.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAGnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAKzC,eAAO,MAAM,cAAc,QAA2B,CAAA;AAGtD,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,YAAY,CAgB7E,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,YAAY,CAQ/D,CAAA"}
@@ -135,7 +135,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
135
135
  return this.payloadHashes.filter((hash) => !payloadMap[asHash(hash, true)]);
136
136
  }
137
137
  async getWrappedPayloads() {
138
- return await Promise.all(this.payloads.map((payload) => PayloadWrapper.wrap(payload)));
138
+ return this.payloads.map((payload) => PayloadWrapper.wrap(payload));
139
139
  }
140
140
  hashesBySchema(schema) {
141
141
  const result = [];
@@ -214,9 +214,7 @@ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitn
214
214
  }
215
215
  }
216
216
  async getPayloadsWithoutQuery() {
217
- this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? await Promise.all(
218
- (await PayloadBuilder2.filterExclude(this.payloads, asHash2(this.payload.query, true))).map((payload) => PayloadWrapper2.wrap(payload)).filter(exists)
219
- );
217
+ this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? (await PayloadBuilder2.filterExclude(this.payloads, asHash2(this.payload.query, true))).map((payload) => PayloadWrapper2.wrap(payload)).filter(exists);
220
218
  return this._payloadsWithoutQuery;
221
219
  }
222
220
  async getQuery() {
@@ -256,6 +254,7 @@ var boundWitnessJsonSchema = {
256
254
  $id: "https://schemas.xyo.network/2.0/boundwitness",
257
255
  additionalProperties: false,
258
256
  properties: boundWitnessProperties,
257
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
259
258
  required: [...payloadJsonSchema.required, "addresses", "payload_hashes", "payload_schemas", "previous_hashes"],
260
259
  type: "object"
261
260
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/BoundWitnessWrapper.ts", "../../src/QueryBoundWitnessWrapper.ts", "../../src/SchemaType.ts"],
4
- "sourcesContent": ["import {\n assertEx, isNumber, isObject,\n} from '@xylabs/sdk-js'\nimport {\n type Address, asHash, type Hash,\n} from '@xylabs/sdk-js'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport {\n asBoundWitness,\n BoundWitnessSchema, isBoundWitness,\n} from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload, WithoutPrivateStorageMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadWrapperBase, PayloadWrapper, PayloadWrapperBase,\n} from '@xyo-network/payload-wrapper'\n\nexport const isBoundWitnessWrapper = <T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n value?: unknown,\n): value is BoundWitnessWrapper<T, P> => {\n if (isPayloadWrapperBase(value)) {\n return typeof (value as BoundWitnessWrapper<T, P>).payloadsDataHashMap === 'function'\n }\n return false\n}\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n boundwitness: TBoundWitness\n moduleErrors?: Payload[]\n payloads: TPayload[] = []\n\n private _payloadDataMap: Record<Hash, TPayload> | undefined\n private _payloadMap: Record<Hash, TPayload> | undefined\n\n protected constructor(\n boundwitness: TBoundWitness,\n payloads: TPayload[] = [],\n moduleErrors?: Payload[],\n ) {\n super(boundwitness)\n this.boundwitness = boundwitness\n this.payloads = payloads\n this.moduleErrors = moduleErrors\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : undefined\n }\n\n static async load(address: Address) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload\n assertEx(payload && isBoundWitness(payload), () => 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n obj: unknown,\n payloads?: P[],\n ): BoundWitnessWrapper<T, P> {\n let hydratedObj: T | undefined = undefined\n switch (typeof obj) {\n case 'string': {\n hydratedObj = JSON.parse(obj) as T\n break\n }\n case 'object': {\n if (isObject(obj)) {\n hydratedObj = obj as unknown as T\n }\n break\n }\n }\n\n if (hydratedObj) {\n if (isBoundWitnessWrapper<T, P>(hydratedObj)) {\n return hydratedObj as BoundWitnessWrapper<T, P>\n }\n if (isBoundWitness(hydratedObj)) {\n return new BoundWitnessWrapper(hydratedObj, payloads ?? [])\n }\n }\n\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch {\n return undefined\n }\n }\n\n static wrap<T extends BoundWitness, P extends Payload>(\n obj: PayloadWrapperBase<T> | WithoutPrivateStorageMeta<T>,\n payloads?: P[],\n ): BoundWitnessWrapper<T, P> {\n switch (typeof obj) {\n case 'object': {\n if (obj instanceof BoundWitnessWrapper) {\n return obj\n } else if (obj instanceof PayloadWrapper && obj.schema() === BoundWitnessSchema) {\n return BoundWitnessWrapper.parse(obj.payload, payloads)\n } else {\n return BoundWitnessWrapper.parse(obj, payloads)\n }\n }\n }\n }\n\n static async wrappedDataHashMap<T extends BoundWitness>(\n boundWitnesses: (T | BoundWitnessWrapper<T>)[],\n ): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n const bw = BoundWitnessWrapper.parse<T, Payload>(payload)\n result[await bw.dataHash()] = bw\n }),\n )\n return result\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.indexOf(BoundWitnessSchema)\n if (innerBoundwitnessIndex !== -1) {\n const innerBoundwitnessHash = asHash(this.payloadHashes[innerBoundwitnessIndex], true)\n const innerBoundwitnessPayload = asBoundWitness(\n (await PayloadBuilder.toAllHashMap(this.payloads))[innerBoundwitnessHash],\n ) as TBoundWitness | undefined\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined\n = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(innerBoundwitnessPayload, await PayloadBuilder.filterExclude(this.payloads, innerBoundwitnessHash))\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(isNumber(depth) ? depth - 1 : undefined)\n }\n }\n assertEx(depth === 0, () => `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getMissingPayloads() {\n const payloadMap = await this.payloadsDataHashMap()\n return this.payloadHashes.filter(hash => !payloadMap[asHash(hash, true)])\n }\n\n async getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]> {\n return await Promise.all(this.payloads.map(payload => PayloadWrapper.wrap(payload)))\n }\n\n hashesBySchema(schema: string) {\n const result: string[] = []\n for (const [index, payloadSchema] of this.payloadSchemas.entries()) {\n if (payloadSchema === schema) {\n result.push(asHash(this.payloadHashes[index], true))\n }\n }\n return result\n }\n\n async payloadsByDataHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsDataHashMap()\n return hashes.map(hash => assertEx(map[hash], () => 'Hash not found') as TPayload)\n }\n\n async payloadsByHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsHashMap()\n return hashes.map(hash => assertEx(map[hash], () => 'Hash not found') as TPayload)\n }\n\n payloadsBySchema<T extends TPayload>(schema: string): T[] {\n return this.payloads.filter(payload => payload?.schema === schema) as T[]\n }\n\n async payloadsDataHashMap(): Promise<Partial<Record<Hash, TPayload>>> {\n this._payloadDataMap = this._payloadDataMap ?? (await PayloadBuilder.toDataHashMap<TPayload>(this.payloads))\n return this._payloadDataMap\n }\n\n async payloadsHashMap(): Promise<Partial<Record<Hash, TPayload>>> {\n this._payloadMap = this._payloadMap ?? (await PayloadBuilder.toHashMap<TPayload>(this.payloads))\n return this._payloadMap\n }\n\n prev(address: Address) {\n return this.previousHashes[this.addresses.indexOf(address)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloads]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n", "import type { Promisable } from '@xylabs/sdk-js'\nimport {\n asHash, assertEx, exists,\n} from '@xylabs/sdk-js'\nimport type { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { isQueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport type { Payload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { BoundWitnessWrapper } from './BoundWitnessWrapper.ts'\n\nexport class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {\n private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined\n private _query: T | undefined\n\n static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T> {\n assertEx(!Array.isArray(obj), () => 'Array can not be converted to QueryBoundWitnessWrapper')\n switch (typeof obj) {\n case 'object': {\n const castWrapper = obj as QueryBoundWitnessWrapper<T>\n /* if (!wrapper.valid) {\n console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)\n } */\n const result = castWrapper instanceof QueryBoundWitnessWrapper\n ? castWrapper\n : isQueryBoundWitness(obj)\n ? (\n new QueryBoundWitnessWrapper<T>(\n obj,\n payloads,\n )\n )\n : undefined\n if (result === undefined) {\n throw new Error('Unable to parse. Failed isQueryBoundWitness.')\n }\n return result\n }\n }\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParseQuery<T extends Query>(obj: unknown): Promisable<QueryBoundWitnessWrapper<T> | undefined> {\n if (obj === undefined) return undefined\n try {\n return this.parseQuery<T>(obj)\n } catch {\n return undefined\n }\n }\n\n async getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery\n = this._payloadsWithoutQuery\n ?? (await Promise.all(\n (await PayloadBuilder.filterExclude(this.payloads, asHash(this.payload.query, true))).map(payload => PayloadWrapper.wrap(payload)).filter(exists),\n ))\n return this._payloadsWithoutQuery\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.payloadsDataHashMap()\n this._query = this._query ?? (payloadMap[asHash(this.boundwitness.query, true)] as T | undefined)\n return assertEx(this._query, () => `Missing Query [${JSON.stringify(this.boundwitness)}]`)\n }\n}\n", "import { HashRegEx, HexRegExMinMax } from '@xylabs/sdk-js'\nimport { XyoAddressRegEx } from '@xyo-network/account-model'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { SchemaRegEx } from '@xyo-network/payload-model'\nimport { payloadJsonSchema } from '@xyo-network/payload-wrapper'\nimport type { JSONSchemaType } from 'ajv'\n\n// 64 bytes: legacy secp256k1 ECDSA compact signature\n// 5261 bytes: ML-DSA-65 bundle (publicKey 1952 + signature 3309)\n// Range covers both; specific algorithm enforcement happens in the validator dispatcher.\nexport const SignatureRegEx = HexRegExMinMax(64, 5261)\n\nexport const boundWitnessProperties: JSONSchemaType<BoundWitness>['properties'] = {\n ...payloadJsonSchema.properties,\n addresses: { items: { type: 'string', pattern: XyoAddressRegEx.source }, type: 'array' },\n payload_hashes: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n payload_schemas: { items: { type: 'string', pattern: SchemaRegEx.source }, type: 'array' },\n previous_hashes: {\n items: {\n type: 'string', pattern: HashRegEx.source, nullable: true,\n },\n type: 'array',\n },\n root: { type: 'string', pattern: HashRegEx.source },\n $destination: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n $sourceQuery: { type: 'string', pattern: HashRegEx.source },\n $sources: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n $signatures: { items: { type: 'string', pattern: SignatureRegEx.source }, type: 'array' },\n}\n\nexport const boundWitnessJsonSchema: JSONSchemaType<BoundWitness> = {\n ...payloadJsonSchema,\n $id: 'https://schemas.xyo.network/2.0/boundwitness',\n additionalProperties: false,\n properties: boundWitnessProperties,\n required: [...payloadJsonSchema.required, 'addresses', 'payload_hashes', 'payload_schemas', 'previous_hashes'],\n type: 'object',\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n assertEx, isNumber, isObject,\n} from '@xylabs/sdk-js'\nimport {\n type Address, asHash, type Hash,\n} from '@xylabs/sdk-js'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport {\n asBoundWitness,\n BoundWitnessSchema, isBoundWitness,\n} from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload, WithoutPrivateStorageMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadWrapperBase, PayloadWrapper, PayloadWrapperBase,\n} from '@xyo-network/payload-wrapper'\n\nexport const isBoundWitnessWrapper = <T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n value?: unknown,\n): value is BoundWitnessWrapper<T, P> => {\n if (isPayloadWrapperBase(value)) {\n return typeof (value as BoundWitnessWrapper<T, P>).payloadsDataHashMap === 'function'\n }\n return false\n}\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n boundwitness: TBoundWitness\n moduleErrors?: Payload[]\n payloads: TPayload[] = []\n\n private _payloadDataMap: Record<Hash, TPayload> | undefined\n private _payloadMap: Record<Hash, TPayload> | undefined\n\n protected constructor(\n boundwitness: TBoundWitness,\n payloads: TPayload[] = [],\n moduleErrors?: Payload[],\n ) {\n super(boundwitness)\n this.boundwitness = boundwitness\n this.payloads = payloads\n this.moduleErrors = moduleErrors\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : undefined\n }\n\n static async load(address: Address) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload\n assertEx(payload && isBoundWitness(payload), () => 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n obj: unknown,\n payloads?: P[],\n ): BoundWitnessWrapper<T, P> {\n let hydratedObj: T | undefined = undefined\n switch (typeof obj) {\n case 'string': {\n hydratedObj = JSON.parse(obj) as T\n break\n }\n case 'object': {\n if (isObject(obj)) {\n hydratedObj = obj as unknown as T\n }\n break\n }\n }\n\n if (hydratedObj) {\n if (isBoundWitnessWrapper<T, P>(hydratedObj)) {\n return hydratedObj\n }\n if (isBoundWitness(hydratedObj)) {\n return new BoundWitnessWrapper(hydratedObj, payloads ?? [])\n }\n }\n\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch {\n return undefined\n }\n }\n\n static wrap<T extends BoundWitness, P extends Payload>(\n obj: PayloadWrapperBase<T> | WithoutPrivateStorageMeta<T>,\n payloads?: P[],\n ): BoundWitnessWrapper<T, P> {\n switch (typeof obj) {\n case 'object': {\n if (obj instanceof BoundWitnessWrapper) {\n return obj as BoundWitnessWrapper<T, P>\n } else if (obj instanceof PayloadWrapper && obj.schema() === BoundWitnessSchema) {\n return BoundWitnessWrapper.parse(obj.payload, payloads)\n } else {\n return BoundWitnessWrapper.parse(obj, payloads)\n }\n }\n }\n }\n\n static async wrappedDataHashMap<T extends BoundWitness>(\n boundWitnesses: (T | BoundWitnessWrapper<T>)[],\n ): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n const bw = BoundWitnessWrapper.parse<T, Payload>(payload)\n result[await bw.dataHash()] = bw\n }),\n )\n return result\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.indexOf(BoundWitnessSchema)\n if (innerBoundwitnessIndex !== -1) {\n const innerBoundwitnessHash = asHash(this.payloadHashes[innerBoundwitnessIndex], true)\n const innerBoundwitnessPayload = asBoundWitness(\n (await PayloadBuilder.toAllHashMap(this.payloads))[innerBoundwitnessHash],\n ) as TBoundWitness | undefined\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined\n = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(innerBoundwitnessPayload, await PayloadBuilder.filterExclude(this.payloads, innerBoundwitnessHash))\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(isNumber(depth) ? depth - 1 : undefined)\n }\n }\n assertEx(depth === 0, () => `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getMissingPayloads() {\n const payloadMap = await this.payloadsDataHashMap()\n return this.payloadHashes.filter(hash => !payloadMap[asHash(hash, true)])\n }\n\n async getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]> {\n return this.payloads.map(payload => PayloadWrapper.wrap(payload))\n }\n\n hashesBySchema(schema: string) {\n const result: string[] = []\n for (const [index, payloadSchema] of this.payloadSchemas.entries()) {\n if (payloadSchema === schema) {\n result.push(asHash(this.payloadHashes[index], true))\n }\n }\n return result\n }\n\n async payloadsByDataHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsDataHashMap()\n return hashes.map(hash => assertEx(map[hash], () => 'Hash not found'))\n }\n\n async payloadsByHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsHashMap()\n return hashes.map(hash => assertEx(map[hash], () => 'Hash not found'))\n }\n\n payloadsBySchema<T extends TPayload>(schema: string): T[] {\n return this.payloads.filter(payload => payload?.schema === schema) as T[]\n }\n\n async payloadsDataHashMap(): Promise<Partial<Record<Hash, TPayload>>> {\n this._payloadDataMap = this._payloadDataMap ?? (await PayloadBuilder.toDataHashMap<TPayload>(this.payloads))\n return this._payloadDataMap\n }\n\n async payloadsHashMap(): Promise<Partial<Record<Hash, TPayload>>> {\n this._payloadMap = this._payloadMap ?? (await PayloadBuilder.toHashMap<TPayload>(this.payloads))\n return this._payloadMap\n }\n\n prev(address: Address) {\n return this.previousHashes[this.addresses.indexOf(address)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloads]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n", "import type { Promisable } from '@xylabs/sdk-js'\nimport {\n asHash, assertEx, exists,\n} from '@xylabs/sdk-js'\nimport type { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { isQueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport type { Payload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { BoundWitnessWrapper } from './BoundWitnessWrapper.ts'\n\nexport class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {\n private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined\n private _query: T | undefined\n\n static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T> {\n assertEx(!Array.isArray(obj), () => 'Array can not be converted to QueryBoundWitnessWrapper')\n switch (typeof obj) {\n case 'object': {\n const castWrapper = obj as QueryBoundWitnessWrapper<T>\n /* if (!wrapper.valid) {\n console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)\n } */\n const result = castWrapper instanceof QueryBoundWitnessWrapper\n ? castWrapper\n : isQueryBoundWitness(obj)\n ? (\n new QueryBoundWitnessWrapper<T>(\n obj,\n payloads,\n )\n )\n : undefined\n if (result === undefined) {\n throw new Error('Unable to parse. Failed isQueryBoundWitness.')\n }\n return result\n }\n }\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParseQuery<T extends Query>(obj: unknown): Promisable<QueryBoundWitnessWrapper<T> | undefined> {\n if (obj === undefined) return undefined\n try {\n return this.parseQuery<T>(obj)\n } catch {\n return undefined\n }\n }\n\n async getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery\n = this._payloadsWithoutQuery\n ?? (await PayloadBuilder.filterExclude(this.payloads, asHash(this.payload.query, true)))\n .map(payload => PayloadWrapper.wrap(payload))\n .filter(exists)\n return this._payloadsWithoutQuery\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.payloadsDataHashMap()\n this._query = this._query ?? (payloadMap[asHash(this.boundwitness.query, true)] as T | undefined)\n return assertEx(this._query, () => `Missing Query [${JSON.stringify(this.boundwitness)}]`)\n }\n}\n", "import { HashRegEx, HexRegExMinMax } from '@xylabs/sdk-js'\nimport { XyoAddressRegEx } from '@xyo-network/account-model'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { SchemaRegEx } from '@xyo-network/payload-model'\nimport { payloadJsonSchema } from '@xyo-network/payload-wrapper'\nimport type { JSONSchemaType } from 'ajv'\n\n// 64 bytes: legacy secp256k1 ECDSA compact signature\n// 5261 bytes: ML-DSA-65 bundle (publicKey 1952 + signature 3309)\n// Range covers both; specific algorithm enforcement happens in the validator dispatcher.\nexport const SignatureRegEx = HexRegExMinMax(64, 5261)\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\nexport const boundWitnessProperties: JSONSchemaType<BoundWitness>['properties'] = {\n ...payloadJsonSchema.properties,\n addresses: { items: { type: 'string', pattern: XyoAddressRegEx.source }, type: 'array' },\n payload_hashes: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n payload_schemas: { items: { type: 'string', pattern: SchemaRegEx.source }, type: 'array' },\n previous_hashes: {\n items: {\n type: 'string', pattern: HashRegEx.source, nullable: true,\n },\n type: 'array',\n },\n root: { type: 'string', pattern: HashRegEx.source },\n $destination: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n $sourceQuery: { type: 'string', pattern: HashRegEx.source },\n $sources: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n $signatures: { items: { type: 'string', pattern: SignatureRegEx.source }, type: 'array' },\n}\n\nexport const boundWitnessJsonSchema: JSONSchemaType<BoundWitness> = {\n ...payloadJsonSchema,\n $id: 'https://schemas.xyo.network/2.0/boundwitness',\n additionalProperties: false,\n properties: boundWitnessProperties,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n required: [...payloadJsonSchema.required, 'addresses', 'payload_hashes', 'payload_schemas', 'previous_hashes'],\n type: 'object',\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["asHash", "assertEx", "PayloadBuilder", "PayloadWrapper", "assertEx", "PayloadBuilder", "asHash", "PayloadWrapper"]
7
7
  }
@@ -10,7 +10,11 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness = Bo
10
10
  private _payloadDataMap;
11
11
  private _payloadMap;
12
12
  protected constructor(boundwitness: TBoundWitness, payloads?: TPayload[], moduleErrors?: Payload[]);
13
- get addresses(): (import("@xyo-network/account-model").XyoAddress | (Lowercase<string> & {
13
+ get addresses(): ((Lowercase<string> & {
14
+ readonly __hex: true;
15
+ } & {
16
+ readonly __address: true;
17
+ }) | (Lowercase<string> & {
14
18
  readonly __hex: true;
15
19
  } & {
16
20
  readonly __address: true;
@@ -23,7 +27,11 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness = Bo
23
27
  schema: "network.xyo.boundwitness" & {
24
28
  readonly __schema: true;
25
29
  };
26
- addresses: (import("@xyo-network/account-model").XyoAddress | (Lowercase<string> & {
30
+ addresses: ((Lowercase<string> & {
31
+ readonly __hex: true;
32
+ } & {
33
+ readonly __address: true;
34
+ }) | (Lowercase<string> & {
27
35
  readonly __hex: true;
28
36
  } & {
29
37
  readonly __address: true;
@@ -1 +1 @@
1
- {"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaType.d.ts","sourceRoot":"","sources":["../../src/SchemaType.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAGnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAKzC,eAAO,MAAM,cAAc,QAA2B,CAAA;AAEtD,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,YAAY,CAgB7E,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,YAAY,CAO/D,CAAA"}
1
+ {"version":3,"file":"SchemaType.d.ts","sourceRoot":"","sources":["../../src/SchemaType.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAGnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAKzC,eAAO,MAAM,cAAc,QAA2B,CAAA;AAGtD,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,YAAY,CAgB7E,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,YAAY,CAQ/D,CAAA"}
@@ -135,7 +135,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
135
135
  return this.payloadHashes.filter((hash) => !payloadMap[asHash(hash, true)]);
136
136
  }
137
137
  async getWrappedPayloads() {
138
- return await Promise.all(this.payloads.map((payload) => PayloadWrapper.wrap(payload)));
138
+ return this.payloads.map((payload) => PayloadWrapper.wrap(payload));
139
139
  }
140
140
  hashesBySchema(schema) {
141
141
  const result = [];
@@ -214,9 +214,7 @@ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitn
214
214
  }
215
215
  }
216
216
  async getPayloadsWithoutQuery() {
217
- this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? await Promise.all(
218
- (await PayloadBuilder2.filterExclude(this.payloads, asHash2(this.payload.query, true))).map((payload) => PayloadWrapper2.wrap(payload)).filter(exists)
219
- );
217
+ this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? (await PayloadBuilder2.filterExclude(this.payloads, asHash2(this.payload.query, true))).map((payload) => PayloadWrapper2.wrap(payload)).filter(exists);
220
218
  return this._payloadsWithoutQuery;
221
219
  }
222
220
  async getQuery() {
@@ -256,6 +254,7 @@ var boundWitnessJsonSchema = {
256
254
  $id: "https://schemas.xyo.network/2.0/boundwitness",
257
255
  additionalProperties: false,
258
256
  properties: boundWitnessProperties,
257
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
259
258
  required: [...payloadJsonSchema.required, "addresses", "payload_hashes", "payload_schemas", "previous_hashes"],
260
259
  type: "object"
261
260
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/BoundWitnessWrapper.ts", "../../src/QueryBoundWitnessWrapper.ts", "../../src/SchemaType.ts"],
4
- "sourcesContent": ["import {\n assertEx, isNumber, isObject,\n} from '@xylabs/sdk-js'\nimport {\n type Address, asHash, type Hash,\n} from '@xylabs/sdk-js'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport {\n asBoundWitness,\n BoundWitnessSchema, isBoundWitness,\n} from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload, WithoutPrivateStorageMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadWrapperBase, PayloadWrapper, PayloadWrapperBase,\n} from '@xyo-network/payload-wrapper'\n\nexport const isBoundWitnessWrapper = <T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n value?: unknown,\n): value is BoundWitnessWrapper<T, P> => {\n if (isPayloadWrapperBase(value)) {\n return typeof (value as BoundWitnessWrapper<T, P>).payloadsDataHashMap === 'function'\n }\n return false\n}\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n boundwitness: TBoundWitness\n moduleErrors?: Payload[]\n payloads: TPayload[] = []\n\n private _payloadDataMap: Record<Hash, TPayload> | undefined\n private _payloadMap: Record<Hash, TPayload> | undefined\n\n protected constructor(\n boundwitness: TBoundWitness,\n payloads: TPayload[] = [],\n moduleErrors?: Payload[],\n ) {\n super(boundwitness)\n this.boundwitness = boundwitness\n this.payloads = payloads\n this.moduleErrors = moduleErrors\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : undefined\n }\n\n static async load(address: Address) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload\n assertEx(payload && isBoundWitness(payload), () => 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n obj: unknown,\n payloads?: P[],\n ): BoundWitnessWrapper<T, P> {\n let hydratedObj: T | undefined = undefined\n switch (typeof obj) {\n case 'string': {\n hydratedObj = JSON.parse(obj) as T\n break\n }\n case 'object': {\n if (isObject(obj)) {\n hydratedObj = obj as unknown as T\n }\n break\n }\n }\n\n if (hydratedObj) {\n if (isBoundWitnessWrapper<T, P>(hydratedObj)) {\n return hydratedObj as BoundWitnessWrapper<T, P>\n }\n if (isBoundWitness(hydratedObj)) {\n return new BoundWitnessWrapper(hydratedObj, payloads ?? [])\n }\n }\n\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch {\n return undefined\n }\n }\n\n static wrap<T extends BoundWitness, P extends Payload>(\n obj: PayloadWrapperBase<T> | WithoutPrivateStorageMeta<T>,\n payloads?: P[],\n ): BoundWitnessWrapper<T, P> {\n switch (typeof obj) {\n case 'object': {\n if (obj instanceof BoundWitnessWrapper) {\n return obj\n } else if (obj instanceof PayloadWrapper && obj.schema() === BoundWitnessSchema) {\n return BoundWitnessWrapper.parse(obj.payload, payloads)\n } else {\n return BoundWitnessWrapper.parse(obj, payloads)\n }\n }\n }\n }\n\n static async wrappedDataHashMap<T extends BoundWitness>(\n boundWitnesses: (T | BoundWitnessWrapper<T>)[],\n ): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n const bw = BoundWitnessWrapper.parse<T, Payload>(payload)\n result[await bw.dataHash()] = bw\n }),\n )\n return result\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.indexOf(BoundWitnessSchema)\n if (innerBoundwitnessIndex !== -1) {\n const innerBoundwitnessHash = asHash(this.payloadHashes[innerBoundwitnessIndex], true)\n const innerBoundwitnessPayload = asBoundWitness(\n (await PayloadBuilder.toAllHashMap(this.payloads))[innerBoundwitnessHash],\n ) as TBoundWitness | undefined\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined\n = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(innerBoundwitnessPayload, await PayloadBuilder.filterExclude(this.payloads, innerBoundwitnessHash))\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(isNumber(depth) ? depth - 1 : undefined)\n }\n }\n assertEx(depth === 0, () => `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getMissingPayloads() {\n const payloadMap = await this.payloadsDataHashMap()\n return this.payloadHashes.filter(hash => !payloadMap[asHash(hash, true)])\n }\n\n async getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]> {\n return await Promise.all(this.payloads.map(payload => PayloadWrapper.wrap(payload)))\n }\n\n hashesBySchema(schema: string) {\n const result: string[] = []\n for (const [index, payloadSchema] of this.payloadSchemas.entries()) {\n if (payloadSchema === schema) {\n result.push(asHash(this.payloadHashes[index], true))\n }\n }\n return result\n }\n\n async payloadsByDataHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsDataHashMap()\n return hashes.map(hash => assertEx(map[hash], () => 'Hash not found') as TPayload)\n }\n\n async payloadsByHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsHashMap()\n return hashes.map(hash => assertEx(map[hash], () => 'Hash not found') as TPayload)\n }\n\n payloadsBySchema<T extends TPayload>(schema: string): T[] {\n return this.payloads.filter(payload => payload?.schema === schema) as T[]\n }\n\n async payloadsDataHashMap(): Promise<Partial<Record<Hash, TPayload>>> {\n this._payloadDataMap = this._payloadDataMap ?? (await PayloadBuilder.toDataHashMap<TPayload>(this.payloads))\n return this._payloadDataMap\n }\n\n async payloadsHashMap(): Promise<Partial<Record<Hash, TPayload>>> {\n this._payloadMap = this._payloadMap ?? (await PayloadBuilder.toHashMap<TPayload>(this.payloads))\n return this._payloadMap\n }\n\n prev(address: Address) {\n return this.previousHashes[this.addresses.indexOf(address)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloads]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n", "import type { Promisable } from '@xylabs/sdk-js'\nimport {\n asHash, assertEx, exists,\n} from '@xylabs/sdk-js'\nimport type { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { isQueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport type { Payload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { BoundWitnessWrapper } from './BoundWitnessWrapper.ts'\n\nexport class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {\n private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined\n private _query: T | undefined\n\n static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T> {\n assertEx(!Array.isArray(obj), () => 'Array can not be converted to QueryBoundWitnessWrapper')\n switch (typeof obj) {\n case 'object': {\n const castWrapper = obj as QueryBoundWitnessWrapper<T>\n /* if (!wrapper.valid) {\n console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)\n } */\n const result = castWrapper instanceof QueryBoundWitnessWrapper\n ? castWrapper\n : isQueryBoundWitness(obj)\n ? (\n new QueryBoundWitnessWrapper<T>(\n obj,\n payloads,\n )\n )\n : undefined\n if (result === undefined) {\n throw new Error('Unable to parse. Failed isQueryBoundWitness.')\n }\n return result\n }\n }\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParseQuery<T extends Query>(obj: unknown): Promisable<QueryBoundWitnessWrapper<T> | undefined> {\n if (obj === undefined) return undefined\n try {\n return this.parseQuery<T>(obj)\n } catch {\n return undefined\n }\n }\n\n async getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery\n = this._payloadsWithoutQuery\n ?? (await Promise.all(\n (await PayloadBuilder.filterExclude(this.payloads, asHash(this.payload.query, true))).map(payload => PayloadWrapper.wrap(payload)).filter(exists),\n ))\n return this._payloadsWithoutQuery\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.payloadsDataHashMap()\n this._query = this._query ?? (payloadMap[asHash(this.boundwitness.query, true)] as T | undefined)\n return assertEx(this._query, () => `Missing Query [${JSON.stringify(this.boundwitness)}]`)\n }\n}\n", "import { HashRegEx, HexRegExMinMax } from '@xylabs/sdk-js'\nimport { XyoAddressRegEx } from '@xyo-network/account-model'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { SchemaRegEx } from '@xyo-network/payload-model'\nimport { payloadJsonSchema } from '@xyo-network/payload-wrapper'\nimport type { JSONSchemaType } from 'ajv'\n\n// 64 bytes: legacy secp256k1 ECDSA compact signature\n// 5261 bytes: ML-DSA-65 bundle (publicKey 1952 + signature 3309)\n// Range covers both; specific algorithm enforcement happens in the validator dispatcher.\nexport const SignatureRegEx = HexRegExMinMax(64, 5261)\n\nexport const boundWitnessProperties: JSONSchemaType<BoundWitness>['properties'] = {\n ...payloadJsonSchema.properties,\n addresses: { items: { type: 'string', pattern: XyoAddressRegEx.source }, type: 'array' },\n payload_hashes: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n payload_schemas: { items: { type: 'string', pattern: SchemaRegEx.source }, type: 'array' },\n previous_hashes: {\n items: {\n type: 'string', pattern: HashRegEx.source, nullable: true,\n },\n type: 'array',\n },\n root: { type: 'string', pattern: HashRegEx.source },\n $destination: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n $sourceQuery: { type: 'string', pattern: HashRegEx.source },\n $sources: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n $signatures: { items: { type: 'string', pattern: SignatureRegEx.source }, type: 'array' },\n}\n\nexport const boundWitnessJsonSchema: JSONSchemaType<BoundWitness> = {\n ...payloadJsonSchema,\n $id: 'https://schemas.xyo.network/2.0/boundwitness',\n additionalProperties: false,\n properties: boundWitnessProperties,\n required: [...payloadJsonSchema.required, 'addresses', 'payload_hashes', 'payload_schemas', 'previous_hashes'],\n type: 'object',\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n assertEx, isNumber, isObject,\n} from '@xylabs/sdk-js'\nimport {\n type Address, asHash, type Hash,\n} from '@xylabs/sdk-js'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport {\n asBoundWitness,\n BoundWitnessSchema, isBoundWitness,\n} from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload, WithoutPrivateStorageMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadWrapperBase, PayloadWrapper, PayloadWrapperBase,\n} from '@xyo-network/payload-wrapper'\n\nexport const isBoundWitnessWrapper = <T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n value?: unknown,\n): value is BoundWitnessWrapper<T, P> => {\n if (isPayloadWrapperBase(value)) {\n return typeof (value as BoundWitnessWrapper<T, P>).payloadsDataHashMap === 'function'\n }\n return false\n}\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n boundwitness: TBoundWitness\n moduleErrors?: Payload[]\n payloads: TPayload[] = []\n\n private _payloadDataMap: Record<Hash, TPayload> | undefined\n private _payloadMap: Record<Hash, TPayload> | undefined\n\n protected constructor(\n boundwitness: TBoundWitness,\n payloads: TPayload[] = [],\n moduleErrors?: Payload[],\n ) {\n super(boundwitness)\n this.boundwitness = boundwitness\n this.payloads = payloads\n this.moduleErrors = moduleErrors\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : undefined\n }\n\n static async load(address: Address) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload\n assertEx(payload && isBoundWitness(payload), () => 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n obj: unknown,\n payloads?: P[],\n ): BoundWitnessWrapper<T, P> {\n let hydratedObj: T | undefined = undefined\n switch (typeof obj) {\n case 'string': {\n hydratedObj = JSON.parse(obj) as T\n break\n }\n case 'object': {\n if (isObject(obj)) {\n hydratedObj = obj as unknown as T\n }\n break\n }\n }\n\n if (hydratedObj) {\n if (isBoundWitnessWrapper<T, P>(hydratedObj)) {\n return hydratedObj\n }\n if (isBoundWitness(hydratedObj)) {\n return new BoundWitnessWrapper(hydratedObj, payloads ?? [])\n }\n }\n\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch {\n return undefined\n }\n }\n\n static wrap<T extends BoundWitness, P extends Payload>(\n obj: PayloadWrapperBase<T> | WithoutPrivateStorageMeta<T>,\n payloads?: P[],\n ): BoundWitnessWrapper<T, P> {\n switch (typeof obj) {\n case 'object': {\n if (obj instanceof BoundWitnessWrapper) {\n return obj as BoundWitnessWrapper<T, P>\n } else if (obj instanceof PayloadWrapper && obj.schema() === BoundWitnessSchema) {\n return BoundWitnessWrapper.parse(obj.payload, payloads)\n } else {\n return BoundWitnessWrapper.parse(obj, payloads)\n }\n }\n }\n }\n\n static async wrappedDataHashMap<T extends BoundWitness>(\n boundWitnesses: (T | BoundWitnessWrapper<T>)[],\n ): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n const bw = BoundWitnessWrapper.parse<T, Payload>(payload)\n result[await bw.dataHash()] = bw\n }),\n )\n return result\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.indexOf(BoundWitnessSchema)\n if (innerBoundwitnessIndex !== -1) {\n const innerBoundwitnessHash = asHash(this.payloadHashes[innerBoundwitnessIndex], true)\n const innerBoundwitnessPayload = asBoundWitness(\n (await PayloadBuilder.toAllHashMap(this.payloads))[innerBoundwitnessHash],\n ) as TBoundWitness | undefined\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined\n = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(innerBoundwitnessPayload, await PayloadBuilder.filterExclude(this.payloads, innerBoundwitnessHash))\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(isNumber(depth) ? depth - 1 : undefined)\n }\n }\n assertEx(depth === 0, () => `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getMissingPayloads() {\n const payloadMap = await this.payloadsDataHashMap()\n return this.payloadHashes.filter(hash => !payloadMap[asHash(hash, true)])\n }\n\n async getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]> {\n return this.payloads.map(payload => PayloadWrapper.wrap(payload))\n }\n\n hashesBySchema(schema: string) {\n const result: string[] = []\n for (const [index, payloadSchema] of this.payloadSchemas.entries()) {\n if (payloadSchema === schema) {\n result.push(asHash(this.payloadHashes[index], true))\n }\n }\n return result\n }\n\n async payloadsByDataHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsDataHashMap()\n return hashes.map(hash => assertEx(map[hash], () => 'Hash not found'))\n }\n\n async payloadsByHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsHashMap()\n return hashes.map(hash => assertEx(map[hash], () => 'Hash not found'))\n }\n\n payloadsBySchema<T extends TPayload>(schema: string): T[] {\n return this.payloads.filter(payload => payload?.schema === schema) as T[]\n }\n\n async payloadsDataHashMap(): Promise<Partial<Record<Hash, TPayload>>> {\n this._payloadDataMap = this._payloadDataMap ?? (await PayloadBuilder.toDataHashMap<TPayload>(this.payloads))\n return this._payloadDataMap\n }\n\n async payloadsHashMap(): Promise<Partial<Record<Hash, TPayload>>> {\n this._payloadMap = this._payloadMap ?? (await PayloadBuilder.toHashMap<TPayload>(this.payloads))\n return this._payloadMap\n }\n\n prev(address: Address) {\n return this.previousHashes[this.addresses.indexOf(address)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloads]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n", "import type { Promisable } from '@xylabs/sdk-js'\nimport {\n asHash, assertEx, exists,\n} from '@xylabs/sdk-js'\nimport type { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { isQueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport type { Payload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { BoundWitnessWrapper } from './BoundWitnessWrapper.ts'\n\nexport class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {\n private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined\n private _query: T | undefined\n\n static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T> {\n assertEx(!Array.isArray(obj), () => 'Array can not be converted to QueryBoundWitnessWrapper')\n switch (typeof obj) {\n case 'object': {\n const castWrapper = obj as QueryBoundWitnessWrapper<T>\n /* if (!wrapper.valid) {\n console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)\n } */\n const result = castWrapper instanceof QueryBoundWitnessWrapper\n ? castWrapper\n : isQueryBoundWitness(obj)\n ? (\n new QueryBoundWitnessWrapper<T>(\n obj,\n payloads,\n )\n )\n : undefined\n if (result === undefined) {\n throw new Error('Unable to parse. Failed isQueryBoundWitness.')\n }\n return result\n }\n }\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParseQuery<T extends Query>(obj: unknown): Promisable<QueryBoundWitnessWrapper<T> | undefined> {\n if (obj === undefined) return undefined\n try {\n return this.parseQuery<T>(obj)\n } catch {\n return undefined\n }\n }\n\n async getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery\n = this._payloadsWithoutQuery\n ?? (await PayloadBuilder.filterExclude(this.payloads, asHash(this.payload.query, true)))\n .map(payload => PayloadWrapper.wrap(payload))\n .filter(exists)\n return this._payloadsWithoutQuery\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.payloadsDataHashMap()\n this._query = this._query ?? (payloadMap[asHash(this.boundwitness.query, true)] as T | undefined)\n return assertEx(this._query, () => `Missing Query [${JSON.stringify(this.boundwitness)}]`)\n }\n}\n", "import { HashRegEx, HexRegExMinMax } from '@xylabs/sdk-js'\nimport { XyoAddressRegEx } from '@xyo-network/account-model'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { SchemaRegEx } from '@xyo-network/payload-model'\nimport { payloadJsonSchema } from '@xyo-network/payload-wrapper'\nimport type { JSONSchemaType } from 'ajv'\n\n// 64 bytes: legacy secp256k1 ECDSA compact signature\n// 5261 bytes: ML-DSA-65 bundle (publicKey 1952 + signature 3309)\n// Range covers both; specific algorithm enforcement happens in the validator dispatcher.\nexport const SignatureRegEx = HexRegExMinMax(64, 5261)\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\nexport const boundWitnessProperties: JSONSchemaType<BoundWitness>['properties'] = {\n ...payloadJsonSchema.properties,\n addresses: { items: { type: 'string', pattern: XyoAddressRegEx.source }, type: 'array' },\n payload_hashes: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n payload_schemas: { items: { type: 'string', pattern: SchemaRegEx.source }, type: 'array' },\n previous_hashes: {\n items: {\n type: 'string', pattern: HashRegEx.source, nullable: true,\n },\n type: 'array',\n },\n root: { type: 'string', pattern: HashRegEx.source },\n $destination: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n $sourceQuery: { type: 'string', pattern: HashRegEx.source },\n $sources: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n $signatures: { items: { type: 'string', pattern: SignatureRegEx.source }, type: 'array' },\n}\n\nexport const boundWitnessJsonSchema: JSONSchemaType<BoundWitness> = {\n ...payloadJsonSchema,\n $id: 'https://schemas.xyo.network/2.0/boundwitness',\n additionalProperties: false,\n properties: boundWitnessProperties,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n required: [...payloadJsonSchema.required, 'addresses', 'payload_hashes', 'payload_schemas', 'previous_hashes'],\n type: 'object',\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["asHash", "assertEx", "PayloadBuilder", "PayloadWrapper", "assertEx", "PayloadBuilder", "asHash", "PayloadWrapper"]
7
7
  }
@@ -10,7 +10,11 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness = Bo
10
10
  private _payloadDataMap;
11
11
  private _payloadMap;
12
12
  protected constructor(boundwitness: TBoundWitness, payloads?: TPayload[], moduleErrors?: Payload[]);
13
- get addresses(): (import("@xyo-network/account-model").XyoAddress | (Lowercase<string> & {
13
+ get addresses(): ((Lowercase<string> & {
14
+ readonly __hex: true;
15
+ } & {
16
+ readonly __address: true;
17
+ }) | (Lowercase<string> & {
14
18
  readonly __hex: true;
15
19
  } & {
16
20
  readonly __address: true;
@@ -23,7 +27,11 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness = Bo
23
27
  schema: "network.xyo.boundwitness" & {
24
28
  readonly __schema: true;
25
29
  };
26
- addresses: (import("@xyo-network/account-model").XyoAddress | (Lowercase<string> & {
30
+ addresses: ((Lowercase<string> & {
31
+ readonly __hex: true;
32
+ } & {
33
+ readonly __address: true;
34
+ }) | (Lowercase<string> & {
27
35
  readonly __hex: true;
28
36
  } & {
29
37
  readonly __address: true;
@@ -1 +1 @@
1
- {"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaType.d.ts","sourceRoot":"","sources":["../../src/SchemaType.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAGnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAKzC,eAAO,MAAM,cAAc,QAA2B,CAAA;AAEtD,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,YAAY,CAgB7E,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,YAAY,CAO/D,CAAA"}
1
+ {"version":3,"file":"SchemaType.d.ts","sourceRoot":"","sources":["../../src/SchemaType.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAGnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAKzC,eAAO,MAAM,cAAc,QAA2B,CAAA;AAGtD,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,YAAY,CAgB7E,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,YAAY,CAQ/D,CAAA"}
@@ -135,7 +135,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
135
135
  return this.payloadHashes.filter((hash) => !payloadMap[asHash(hash, true)]);
136
136
  }
137
137
  async getWrappedPayloads() {
138
- return await Promise.all(this.payloads.map((payload) => PayloadWrapper.wrap(payload)));
138
+ return this.payloads.map((payload) => PayloadWrapper.wrap(payload));
139
139
  }
140
140
  hashesBySchema(schema) {
141
141
  const result = [];
@@ -214,9 +214,7 @@ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitn
214
214
  }
215
215
  }
216
216
  async getPayloadsWithoutQuery() {
217
- this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? await Promise.all(
218
- (await PayloadBuilder2.filterExclude(this.payloads, asHash2(this.payload.query, true))).map((payload) => PayloadWrapper2.wrap(payload)).filter(exists)
219
- );
217
+ this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? (await PayloadBuilder2.filterExclude(this.payloads, asHash2(this.payload.query, true))).map((payload) => PayloadWrapper2.wrap(payload)).filter(exists);
220
218
  return this._payloadsWithoutQuery;
221
219
  }
222
220
  async getQuery() {
@@ -256,6 +254,7 @@ var boundWitnessJsonSchema = {
256
254
  $id: "https://schemas.xyo.network/2.0/boundwitness",
257
255
  additionalProperties: false,
258
256
  properties: boundWitnessProperties,
257
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
259
258
  required: [...payloadJsonSchema.required, "addresses", "payload_hashes", "payload_schemas", "previous_hashes"],
260
259
  type: "object"
261
260
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/BoundWitnessWrapper.ts", "../../src/QueryBoundWitnessWrapper.ts", "../../src/SchemaType.ts"],
4
- "sourcesContent": ["import {\n assertEx, isNumber, isObject,\n} from '@xylabs/sdk-js'\nimport {\n type Address, asHash, type Hash,\n} from '@xylabs/sdk-js'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport {\n asBoundWitness,\n BoundWitnessSchema, isBoundWitness,\n} from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload, WithoutPrivateStorageMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadWrapperBase, PayloadWrapper, PayloadWrapperBase,\n} from '@xyo-network/payload-wrapper'\n\nexport const isBoundWitnessWrapper = <T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n value?: unknown,\n): value is BoundWitnessWrapper<T, P> => {\n if (isPayloadWrapperBase(value)) {\n return typeof (value as BoundWitnessWrapper<T, P>).payloadsDataHashMap === 'function'\n }\n return false\n}\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n boundwitness: TBoundWitness\n moduleErrors?: Payload[]\n payloads: TPayload[] = []\n\n private _payloadDataMap: Record<Hash, TPayload> | undefined\n private _payloadMap: Record<Hash, TPayload> | undefined\n\n protected constructor(\n boundwitness: TBoundWitness,\n payloads: TPayload[] = [],\n moduleErrors?: Payload[],\n ) {\n super(boundwitness)\n this.boundwitness = boundwitness\n this.payloads = payloads\n this.moduleErrors = moduleErrors\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : undefined\n }\n\n static async load(address: Address) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload\n assertEx(payload && isBoundWitness(payload), () => 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n obj: unknown,\n payloads?: P[],\n ): BoundWitnessWrapper<T, P> {\n let hydratedObj: T | undefined = undefined\n switch (typeof obj) {\n case 'string': {\n hydratedObj = JSON.parse(obj) as T\n break\n }\n case 'object': {\n if (isObject(obj)) {\n hydratedObj = obj as unknown as T\n }\n break\n }\n }\n\n if (hydratedObj) {\n if (isBoundWitnessWrapper<T, P>(hydratedObj)) {\n return hydratedObj as BoundWitnessWrapper<T, P>\n }\n if (isBoundWitness(hydratedObj)) {\n return new BoundWitnessWrapper(hydratedObj, payloads ?? [])\n }\n }\n\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch {\n return undefined\n }\n }\n\n static wrap<T extends BoundWitness, P extends Payload>(\n obj: PayloadWrapperBase<T> | WithoutPrivateStorageMeta<T>,\n payloads?: P[],\n ): BoundWitnessWrapper<T, P> {\n switch (typeof obj) {\n case 'object': {\n if (obj instanceof BoundWitnessWrapper) {\n return obj\n } else if (obj instanceof PayloadWrapper && obj.schema() === BoundWitnessSchema) {\n return BoundWitnessWrapper.parse(obj.payload, payloads)\n } else {\n return BoundWitnessWrapper.parse(obj, payloads)\n }\n }\n }\n }\n\n static async wrappedDataHashMap<T extends BoundWitness>(\n boundWitnesses: (T | BoundWitnessWrapper<T>)[],\n ): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n const bw = BoundWitnessWrapper.parse<T, Payload>(payload)\n result[await bw.dataHash()] = bw\n }),\n )\n return result\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.indexOf(BoundWitnessSchema)\n if (innerBoundwitnessIndex !== -1) {\n const innerBoundwitnessHash = asHash(this.payloadHashes[innerBoundwitnessIndex], true)\n const innerBoundwitnessPayload = asBoundWitness(\n (await PayloadBuilder.toAllHashMap(this.payloads))[innerBoundwitnessHash],\n ) as TBoundWitness | undefined\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined\n = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(innerBoundwitnessPayload, await PayloadBuilder.filterExclude(this.payloads, innerBoundwitnessHash))\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(isNumber(depth) ? depth - 1 : undefined)\n }\n }\n assertEx(depth === 0, () => `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getMissingPayloads() {\n const payloadMap = await this.payloadsDataHashMap()\n return this.payloadHashes.filter(hash => !payloadMap[asHash(hash, true)])\n }\n\n async getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]> {\n return await Promise.all(this.payloads.map(payload => PayloadWrapper.wrap(payload)))\n }\n\n hashesBySchema(schema: string) {\n const result: string[] = []\n for (const [index, payloadSchema] of this.payloadSchemas.entries()) {\n if (payloadSchema === schema) {\n result.push(asHash(this.payloadHashes[index], true))\n }\n }\n return result\n }\n\n async payloadsByDataHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsDataHashMap()\n return hashes.map(hash => assertEx(map[hash], () => 'Hash not found') as TPayload)\n }\n\n async payloadsByHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsHashMap()\n return hashes.map(hash => assertEx(map[hash], () => 'Hash not found') as TPayload)\n }\n\n payloadsBySchema<T extends TPayload>(schema: string): T[] {\n return this.payloads.filter(payload => payload?.schema === schema) as T[]\n }\n\n async payloadsDataHashMap(): Promise<Partial<Record<Hash, TPayload>>> {\n this._payloadDataMap = this._payloadDataMap ?? (await PayloadBuilder.toDataHashMap<TPayload>(this.payloads))\n return this._payloadDataMap\n }\n\n async payloadsHashMap(): Promise<Partial<Record<Hash, TPayload>>> {\n this._payloadMap = this._payloadMap ?? (await PayloadBuilder.toHashMap<TPayload>(this.payloads))\n return this._payloadMap\n }\n\n prev(address: Address) {\n return this.previousHashes[this.addresses.indexOf(address)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloads]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n", "import type { Promisable } from '@xylabs/sdk-js'\nimport {\n asHash, assertEx, exists,\n} from '@xylabs/sdk-js'\nimport type { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { isQueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport type { Payload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { BoundWitnessWrapper } from './BoundWitnessWrapper.ts'\n\nexport class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {\n private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined\n private _query: T | undefined\n\n static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T> {\n assertEx(!Array.isArray(obj), () => 'Array can not be converted to QueryBoundWitnessWrapper')\n switch (typeof obj) {\n case 'object': {\n const castWrapper = obj as QueryBoundWitnessWrapper<T>\n /* if (!wrapper.valid) {\n console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)\n } */\n const result = castWrapper instanceof QueryBoundWitnessWrapper\n ? castWrapper\n : isQueryBoundWitness(obj)\n ? (\n new QueryBoundWitnessWrapper<T>(\n obj,\n payloads,\n )\n )\n : undefined\n if (result === undefined) {\n throw new Error('Unable to parse. Failed isQueryBoundWitness.')\n }\n return result\n }\n }\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParseQuery<T extends Query>(obj: unknown): Promisable<QueryBoundWitnessWrapper<T> | undefined> {\n if (obj === undefined) return undefined\n try {\n return this.parseQuery<T>(obj)\n } catch {\n return undefined\n }\n }\n\n async getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery\n = this._payloadsWithoutQuery\n ?? (await Promise.all(\n (await PayloadBuilder.filterExclude(this.payloads, asHash(this.payload.query, true))).map(payload => PayloadWrapper.wrap(payload)).filter(exists),\n ))\n return this._payloadsWithoutQuery\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.payloadsDataHashMap()\n this._query = this._query ?? (payloadMap[asHash(this.boundwitness.query, true)] as T | undefined)\n return assertEx(this._query, () => `Missing Query [${JSON.stringify(this.boundwitness)}]`)\n }\n}\n", "import { HashRegEx, HexRegExMinMax } from '@xylabs/sdk-js'\nimport { XyoAddressRegEx } from '@xyo-network/account-model'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { SchemaRegEx } from '@xyo-network/payload-model'\nimport { payloadJsonSchema } from '@xyo-network/payload-wrapper'\nimport type { JSONSchemaType } from 'ajv'\n\n// 64 bytes: legacy secp256k1 ECDSA compact signature\n// 5261 bytes: ML-DSA-65 bundle (publicKey 1952 + signature 3309)\n// Range covers both; specific algorithm enforcement happens in the validator dispatcher.\nexport const SignatureRegEx = HexRegExMinMax(64, 5261)\n\nexport const boundWitnessProperties: JSONSchemaType<BoundWitness>['properties'] = {\n ...payloadJsonSchema.properties,\n addresses: { items: { type: 'string', pattern: XyoAddressRegEx.source }, type: 'array' },\n payload_hashes: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n payload_schemas: { items: { type: 'string', pattern: SchemaRegEx.source }, type: 'array' },\n previous_hashes: {\n items: {\n type: 'string', pattern: HashRegEx.source, nullable: true,\n },\n type: 'array',\n },\n root: { type: 'string', pattern: HashRegEx.source },\n $destination: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n $sourceQuery: { type: 'string', pattern: HashRegEx.source },\n $sources: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n $signatures: { items: { type: 'string', pattern: SignatureRegEx.source }, type: 'array' },\n}\n\nexport const boundWitnessJsonSchema: JSONSchemaType<BoundWitness> = {\n ...payloadJsonSchema,\n $id: 'https://schemas.xyo.network/2.0/boundwitness',\n additionalProperties: false,\n properties: boundWitnessProperties,\n required: [...payloadJsonSchema.required, 'addresses', 'payload_hashes', 'payload_schemas', 'previous_hashes'],\n type: 'object',\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n assertEx, isNumber, isObject,\n} from '@xylabs/sdk-js'\nimport {\n type Address, asHash, type Hash,\n} from '@xylabs/sdk-js'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport {\n asBoundWitness,\n BoundWitnessSchema, isBoundWitness,\n} from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload, WithoutPrivateStorageMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadWrapperBase, PayloadWrapper, PayloadWrapperBase,\n} from '@xyo-network/payload-wrapper'\n\nexport const isBoundWitnessWrapper = <T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n value?: unknown,\n): value is BoundWitnessWrapper<T, P> => {\n if (isPayloadWrapperBase(value)) {\n return typeof (value as BoundWitnessWrapper<T, P>).payloadsDataHashMap === 'function'\n }\n return false\n}\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n boundwitness: TBoundWitness\n moduleErrors?: Payload[]\n payloads: TPayload[] = []\n\n private _payloadDataMap: Record<Hash, TPayload> | undefined\n private _payloadMap: Record<Hash, TPayload> | undefined\n\n protected constructor(\n boundwitness: TBoundWitness,\n payloads: TPayload[] = [],\n moduleErrors?: Payload[],\n ) {\n super(boundwitness)\n this.boundwitness = boundwitness\n this.payloads = payloads\n this.moduleErrors = moduleErrors\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : undefined\n }\n\n static async load(address: Address) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload\n assertEx(payload && isBoundWitness(payload), () => 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n obj: unknown,\n payloads?: P[],\n ): BoundWitnessWrapper<T, P> {\n let hydratedObj: T | undefined = undefined\n switch (typeof obj) {\n case 'string': {\n hydratedObj = JSON.parse(obj) as T\n break\n }\n case 'object': {\n if (isObject(obj)) {\n hydratedObj = obj as unknown as T\n }\n break\n }\n }\n\n if (hydratedObj) {\n if (isBoundWitnessWrapper<T, P>(hydratedObj)) {\n return hydratedObj\n }\n if (isBoundWitness(hydratedObj)) {\n return new BoundWitnessWrapper(hydratedObj, payloads ?? [])\n }\n }\n\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch {\n return undefined\n }\n }\n\n static wrap<T extends BoundWitness, P extends Payload>(\n obj: PayloadWrapperBase<T> | WithoutPrivateStorageMeta<T>,\n payloads?: P[],\n ): BoundWitnessWrapper<T, P> {\n switch (typeof obj) {\n case 'object': {\n if (obj instanceof BoundWitnessWrapper) {\n return obj as BoundWitnessWrapper<T, P>\n } else if (obj instanceof PayloadWrapper && obj.schema() === BoundWitnessSchema) {\n return BoundWitnessWrapper.parse(obj.payload, payloads)\n } else {\n return BoundWitnessWrapper.parse(obj, payloads)\n }\n }\n }\n }\n\n static async wrappedDataHashMap<T extends BoundWitness>(\n boundWitnesses: (T | BoundWitnessWrapper<T>)[],\n ): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n const bw = BoundWitnessWrapper.parse<T, Payload>(payload)\n result[await bw.dataHash()] = bw\n }),\n )\n return result\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.indexOf(BoundWitnessSchema)\n if (innerBoundwitnessIndex !== -1) {\n const innerBoundwitnessHash = asHash(this.payloadHashes[innerBoundwitnessIndex], true)\n const innerBoundwitnessPayload = asBoundWitness(\n (await PayloadBuilder.toAllHashMap(this.payloads))[innerBoundwitnessHash],\n ) as TBoundWitness | undefined\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined\n = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(innerBoundwitnessPayload, await PayloadBuilder.filterExclude(this.payloads, innerBoundwitnessHash))\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(isNumber(depth) ? depth - 1 : undefined)\n }\n }\n assertEx(depth === 0, () => `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getMissingPayloads() {\n const payloadMap = await this.payloadsDataHashMap()\n return this.payloadHashes.filter(hash => !payloadMap[asHash(hash, true)])\n }\n\n async getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]> {\n return this.payloads.map(payload => PayloadWrapper.wrap(payload))\n }\n\n hashesBySchema(schema: string) {\n const result: string[] = []\n for (const [index, payloadSchema] of this.payloadSchemas.entries()) {\n if (payloadSchema === schema) {\n result.push(asHash(this.payloadHashes[index], true))\n }\n }\n return result\n }\n\n async payloadsByDataHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsDataHashMap()\n return hashes.map(hash => assertEx(map[hash], () => 'Hash not found'))\n }\n\n async payloadsByHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsHashMap()\n return hashes.map(hash => assertEx(map[hash], () => 'Hash not found'))\n }\n\n payloadsBySchema<T extends TPayload>(schema: string): T[] {\n return this.payloads.filter(payload => payload?.schema === schema) as T[]\n }\n\n async payloadsDataHashMap(): Promise<Partial<Record<Hash, TPayload>>> {\n this._payloadDataMap = this._payloadDataMap ?? (await PayloadBuilder.toDataHashMap<TPayload>(this.payloads))\n return this._payloadDataMap\n }\n\n async payloadsHashMap(): Promise<Partial<Record<Hash, TPayload>>> {\n this._payloadMap = this._payloadMap ?? (await PayloadBuilder.toHashMap<TPayload>(this.payloads))\n return this._payloadMap\n }\n\n prev(address: Address) {\n return this.previousHashes[this.addresses.indexOf(address)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloads]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n", "import type { Promisable } from '@xylabs/sdk-js'\nimport {\n asHash, assertEx, exists,\n} from '@xylabs/sdk-js'\nimport type { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { isQueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport type { Payload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { BoundWitnessWrapper } from './BoundWitnessWrapper.ts'\n\nexport class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {\n private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined\n private _query: T | undefined\n\n static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T> {\n assertEx(!Array.isArray(obj), () => 'Array can not be converted to QueryBoundWitnessWrapper')\n switch (typeof obj) {\n case 'object': {\n const castWrapper = obj as QueryBoundWitnessWrapper<T>\n /* if (!wrapper.valid) {\n console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)\n } */\n const result = castWrapper instanceof QueryBoundWitnessWrapper\n ? castWrapper\n : isQueryBoundWitness(obj)\n ? (\n new QueryBoundWitnessWrapper<T>(\n obj,\n payloads,\n )\n )\n : undefined\n if (result === undefined) {\n throw new Error('Unable to parse. Failed isQueryBoundWitness.')\n }\n return result\n }\n }\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParseQuery<T extends Query>(obj: unknown): Promisable<QueryBoundWitnessWrapper<T> | undefined> {\n if (obj === undefined) return undefined\n try {\n return this.parseQuery<T>(obj)\n } catch {\n return undefined\n }\n }\n\n async getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery\n = this._payloadsWithoutQuery\n ?? (await PayloadBuilder.filterExclude(this.payloads, asHash(this.payload.query, true)))\n .map(payload => PayloadWrapper.wrap(payload))\n .filter(exists)\n return this._payloadsWithoutQuery\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.payloadsDataHashMap()\n this._query = this._query ?? (payloadMap[asHash(this.boundwitness.query, true)] as T | undefined)\n return assertEx(this._query, () => `Missing Query [${JSON.stringify(this.boundwitness)}]`)\n }\n}\n", "import { HashRegEx, HexRegExMinMax } from '@xylabs/sdk-js'\nimport { XyoAddressRegEx } from '@xyo-network/account-model'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { SchemaRegEx } from '@xyo-network/payload-model'\nimport { payloadJsonSchema } from '@xyo-network/payload-wrapper'\nimport type { JSONSchemaType } from 'ajv'\n\n// 64 bytes: legacy secp256k1 ECDSA compact signature\n// 5261 bytes: ML-DSA-65 bundle (publicKey 1952 + signature 3309)\n// Range covers both; specific algorithm enforcement happens in the validator dispatcher.\nexport const SignatureRegEx = HexRegExMinMax(64, 5261)\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\nexport const boundWitnessProperties: JSONSchemaType<BoundWitness>['properties'] = {\n ...payloadJsonSchema.properties,\n addresses: { items: { type: 'string', pattern: XyoAddressRegEx.source }, type: 'array' },\n payload_hashes: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n payload_schemas: { items: { type: 'string', pattern: SchemaRegEx.source }, type: 'array' },\n previous_hashes: {\n items: {\n type: 'string', pattern: HashRegEx.source, nullable: true,\n },\n type: 'array',\n },\n root: { type: 'string', pattern: HashRegEx.source },\n $destination: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n $sourceQuery: { type: 'string', pattern: HashRegEx.source },\n $sources: { items: { type: 'string', pattern: HashRegEx.source }, type: 'array' },\n $signatures: { items: { type: 'string', pattern: SignatureRegEx.source }, type: 'array' },\n}\n\nexport const boundWitnessJsonSchema: JSONSchemaType<BoundWitness> = {\n ...payloadJsonSchema,\n $id: 'https://schemas.xyo.network/2.0/boundwitness',\n additionalProperties: false,\n properties: boundWitnessProperties,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n required: [...payloadJsonSchema.required, 'addresses', 'payload_hashes', 'payload_schemas', 'previous_hashes'],\n type: 'object',\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["asHash", "assertEx", "PayloadBuilder", "PayloadWrapper", "assertEx", "PayloadBuilder", "asHash", "PayloadWrapper"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/boundwitness-wrapper",
3
- "version": "6.0.3",
3
+ "version": "6.0.5",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -34,13 +34,13 @@
34
34
  "README.md"
35
35
  ],
36
36
  "dependencies": {
37
- "@xyo-network/account-model": "~6.0.3",
38
- "@xyo-network/boundwitness-model": "~6.0.3",
39
- "@xyo-network/boundwitness-validator": "~6.0.3",
40
- "@xyo-network/payload": "~6.0.3",
41
- "@xyo-network/payload-model": "~6.0.3",
42
- "@xyo-network/payload-builder": "~6.0.3",
43
- "@xyo-network/payload-wrapper": "~6.0.3"
37
+ "@xyo-network/account-model": "~6.0.5",
38
+ "@xyo-network/boundwitness-model": "~6.0.5",
39
+ "@xyo-network/boundwitness-validator": "~6.0.5",
40
+ "@xyo-network/payload": "~6.0.5",
41
+ "@xyo-network/payload-builder": "~6.0.5",
42
+ "@xyo-network/payload-model": "~6.0.5",
43
+ "@xyo-network/payload-wrapper": "~6.0.5"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@bitauth/libauth": "~3.0.0",
@@ -48,16 +48,15 @@
48
48
  "@opentelemetry/sdk-trace-base": "^2.7.1",
49
49
  "@scure/base": "~2.2.0",
50
50
  "@types/node": "^25.9.1",
51
- "@xylabs/sdk-js": "~6.0.2",
52
- "@xylabs/threads": "~6.0.2",
53
- "@xylabs/toolchain": "~8.1.1",
54
- "@xylabs/tsconfig": "~8.1.1",
55
- "@xylabs/vitest-extended": "^6.0.2",
51
+ "@xylabs/sdk-js": "~6.0.3",
52
+ "@xylabs/threads": "~6.0.3",
53
+ "@xylabs/toolchain": "~8.1.5",
54
+ "@xylabs/tsconfig": "~8.1.5",
55
+ "@xylabs/vitest-extended": "^6.0.3",
56
56
  "ajv": "^8.20.0",
57
57
  "async-mutex": "^0.5.0",
58
58
  "bn.js": "^5.2.3",
59
59
  "buffer": "^6.0.3",
60
- "chalk": "^5.6.2",
61
60
  "debug": "~4.4.3",
62
61
  "eslint": "^10.4.0",
63
62
  "ethers": "^6.16.0",
@@ -81,7 +80,6 @@
81
80
  "async-mutex": "^0.5",
82
81
  "bn.js": "^5.2",
83
82
  "buffer": "^6.0",
84
- "chalk": "^5.6",
85
83
  "debug": "~4.4",
86
84
  "ethers": "^6.16",
87
85
  "hash-wasm": "~4.12",