@xyo-network/boundwitness-builder 2.90.1 → 2.90.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/Builder.d.cts +5 -5
- package/dist/browser/Builder.d.cts.map +1 -1
- package/dist/browser/Builder.d.mts +5 -5
- package/dist/browser/Builder.d.mts.map +1 -1
- package/dist/browser/Builder.d.ts +5 -5
- package/dist/browser/Builder.d.ts.map +1 -1
- package/dist/browser/Query/index.d.cts +0 -1
- package/dist/browser/Query/index.d.cts.map +1 -1
- package/dist/browser/Query/index.d.mts +0 -1
- package/dist/browser/Query/index.d.mts.map +1 -1
- package/dist/browser/Query/index.d.ts +0 -1
- package/dist/browser/Query/index.d.ts.map +1 -1
- package/dist/browser/index.cjs +7 -42
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +7 -42
- package/dist/browser/index.js.map +1 -1
- package/dist/node/Builder.d.cts +5 -5
- package/dist/node/Builder.d.cts.map +1 -1
- package/dist/node/Builder.d.mts +5 -5
- package/dist/node/Builder.d.mts.map +1 -1
- package/dist/node/Builder.d.ts +5 -5
- package/dist/node/Builder.d.ts.map +1 -1
- package/dist/node/Query/index.d.cts +0 -1
- package/dist/node/Query/index.d.cts.map +1 -1
- package/dist/node/Query/index.d.mts +0 -1
- package/dist/node/Query/index.d.mts.map +1 -1
- package/dist/node/Query/index.d.ts +0 -1
- package/dist/node/Query/index.d.ts.map +1 -1
- package/dist/node/index.cjs +9 -43
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +8 -41
- package/dist/node/index.js.map +1 -1
- package/package.json +12 -17
- package/src/Builder.ts +12 -8
- package/src/Query/index.ts +0 -1
- package/dist/browser/Query/QueryBoundWitnessValidator.d.cts +0 -11
- package/dist/browser/Query/QueryBoundWitnessValidator.d.cts.map +0 -1
- package/dist/browser/Query/QueryBoundWitnessValidator.d.mts +0 -11
- package/dist/browser/Query/QueryBoundWitnessValidator.d.mts.map +0 -1
- package/dist/browser/Query/QueryBoundWitnessValidator.d.ts +0 -11
- package/dist/browser/Query/QueryBoundWitnessValidator.d.ts.map +0 -1
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.cts +0 -12
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.cts.map +0 -1
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.mts +0 -12
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.mts.map +0 -1
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.ts +0 -12
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.ts.map +0 -1
- package/dist/node/Query/QueryBoundWitnessValidator.d.cts +0 -11
- package/dist/node/Query/QueryBoundWitnessValidator.d.cts.map +0 -1
- package/dist/node/Query/QueryBoundWitnessValidator.d.mts +0 -11
- package/dist/node/Query/QueryBoundWitnessValidator.d.mts.map +0 -1
- package/dist/node/Query/QueryBoundWitnessValidator.d.ts +0 -11
- package/dist/node/Query/QueryBoundWitnessValidator.d.ts.map +0 -1
- package/dist/node/Query/QueryBoundWitnessWrapper.d.cts +0 -12
- package/dist/node/Query/QueryBoundWitnessWrapper.d.cts.map +0 -1
- package/dist/node/Query/QueryBoundWitnessWrapper.d.mts +0 -12
- package/dist/node/Query/QueryBoundWitnessWrapper.d.mts.map +0 -1
- package/dist/node/Query/QueryBoundWitnessWrapper.d.ts +0 -12
- package/dist/node/Query/QueryBoundWitnessWrapper.d.ts.map +0 -1
- package/src/Query/QueryBoundWitnessValidator.ts +0 -51
- package/src/Query/QueryBoundWitnessWrapper.ts +0 -48
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Builder.ts","../../src/Query/QueryBoundWitnessBuilder.ts","../../src/Query/QueryBoundWitnessWrapper.ts"],"sourcesContent":["import { toArrayBuffer, toUint8Array } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { Address, Hash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { AnyObject, JsonObject } from '@xylabs/object'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { sortFields } from '@xyo-network/hash'\nimport { PayloadBuilder, PayloadBuilderBase, PayloadBuilderOptions, PayloadWrapper } from '@xyo-network/payload'\nimport { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\nexport type GeneratedBoundWitnessFields = 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes'\n\nexport interface BoundWitnessBuilderOptions<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload>\n extends Omit<PayloadBuilderOptions<Omit<TBoundWitness, GeneratedBoundWitnessFields>>, 'schema'> {\n readonly accounts?: AccountInstance[]\n readonly destination?: string[]\n readonly payloadHashes?: TBoundWitness['payload_hashes']\n readonly payloadSchemas?: TBoundWitness['payload_schemas']\n readonly payloads?: TPayload[]\n readonly sourceQuery?: Hash\n readonly timestamp?: number\n}\n\nexport class BoundWitnessBuilder<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends PayloadBuilderBase<\n Omit<TBoundWitness, GeneratedBoundWitnessFields>,\n BoundWitnessBuilderOptions<TBoundWitness> & { schema: BoundWitnessSchema }\n> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[]\n private _destination?: string[]\n private _errorHashes?: string[]\n private _errors: ModuleError[] = []\n private _payloadHashes?: string[]\n private _payloadSchemas?: string[]\n private _payloads: TPayload[]\n private _sourceQuery?: Hash\n private _timestamp: boolean | number\n\n constructor(options?: BoundWitnessBuilderOptions<TBoundWitness, TPayload>) {\n super({ ...options, schema: BoundWitnessSchema })\n const { accounts, payloadHashes, payloadSchemas, payloads, sourceQuery, timestamp, destination } = options ?? {}\n this._accounts = accounts ?? []\n this._payloadHashes = payloadHashes\n this._payloadSchemas = payloadSchemas\n this._payloads = payloads ?? []\n this._sourceQuery = sourceQuery\n this._destination = destination\n this._timestamp = timestamp ?? true\n }\n\n protected get addresses(): Address[] {\n return this._accounts.map((account) => account.address.toLowerCase())\n }\n\n protected get payloadSchemas(): string[] {\n return (\n this._payloadSchemas ??\n this._payloads.map((payload) => {\n return assertEx(payload.schema, () => this.missingSchemaMessage(payload))\n })\n )\n }\n\n protected get previousHashBuffers(): (ArrayBuffer | null)[] {\n return this._accounts.map((account) => account.previousHashBytes ?? null)\n }\n\n protected get previousHashes(): (Hash | null)[] {\n return this._accounts.map((account) => account.previousHash ?? null)\n }\n\n protected get timestamp(): number {\n return (this._timestamp = typeof this._timestamp === 'number' ? this._timestamp : Date.now())\n }\n\n static addressIndex<T extends BoundWitness>(payload: T, address: Address) {\n const index = payload.addresses.indexOf(address)\n if (index === -1) {\n throw new Error('Invalid address')\n }\n return index\n }\n\n static async build<TBoundWitness extends BoundWitness>(options: BoundWitnessBuilderOptions<TBoundWitness>) {\n return await new BoundWitnessBuilder(options).build()\n }\n\n static override async dataHashableFields<T extends Payload = Payload<AnyObject>>(\n schema: string,\n fields?: Omit<T, 'schema' | '$hash' | '$meta'>,\n ): Promise<Omit<T, '$hash' | '$meta'>> {\n return await PayloadBuilderBase.dataHashableFields(schema, fields)\n }\n\n static override async hashableFields<T extends Payload = Payload<AnyObject>>(\n schema: string,\n fields?: Omit<T, 'schema' | '$hash' | '$meta'>,\n $meta?: JsonObject,\n $hash?: Hash,\n timestamp?: number,\n ): Promise<WithMeta<T>> {\n return await PayloadBuilderBase.hashableFields(schema, fields, $meta, $hash, timestamp)\n }\n\n static previousHash<T extends BoundWitness>(boundWitness: T, address: Address) {\n return boundWitness.previous_hashes[this.addressIndex(boundWitness, address)]?.toLowerCase()\n }\n\n protected static async linkingFields<T extends BoundWitness = BoundWitness>(\n accounts: AccountInstance[],\n payloads?: Payload[],\n timestamp = Date.now(),\n ) {\n const addresses = accounts.map((account) => hexFromArrayBuffer(account.addressBytes, { prefix: false }))\n const previous_hashes = accounts.map((account) => account.previousHash ?? null)\n const payload_hashes = payloads ? await PayloadBuilder.dataHashes(payloads) : []\n const payload_schemas = payloads?.map(({ schema }) => schema)\n return { addresses, payload_hashes, payload_schemas, previous_hashes, timestamp } as Omit<T, '$meta' | '$hash' | 'schema'>\n }\n\n protected static async metaFields(\n dataHash: Hash,\n otherMeta?: JsonObject,\n accounts?: AccountInstance[],\n previousHashes?: (Hash | null)[],\n destination?: Address[],\n sourceQuery?: Hash,\n ): Promise<JsonObject> {\n const meta: JsonObject = { ...otherMeta }\n\n if (accounts?.length && previousHashes?.length) {\n assertEx(accounts.length === previousHashes.length, 'accounts and previousHashes must have same length')\n meta.signatures = await this.signatures(accounts, dataHash, previousHashes)\n }\n\n if (sourceQuery) {\n meta.sourceQuery = sourceQuery\n }\n\n if (destination) {\n meta.destination = destination\n }\n\n return meta\n }\n\n protected static signature<T extends BoundWitness>(payload: T, address: Address) {\n return payload.$meta.signatures[this.addressIndex(payload, address)]\n }\n\n protected static async signatures(accounts: AccountInstance[], hash: Hash, previousHashes: (Hash | ArrayBuffer | null)[]): Promise<string[]> {\n const hashBytes = toArrayBuffer(hash)\n const previousHashesBytes = previousHashes?.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hashBytes, previousHashesBytes[index]))))\n }\n\n private static validateLinkingFields(bw: Pick<BoundWitness, 'payload_hashes' | 'payload_schemas'>) {\n assertEx(bw.payload_hashes?.length === bw.payload_schemas?.length, 'Payload hash/schema mismatch')\n assertEx(!bw.payload_hashes.some((hash) => !hash), () => 'nulls found in hashes')\n assertEx(!bw.payload_schemas.some((schema) => !schema), 'nulls found in schemas')\n }\n\n async build(): Promise<[WithMeta<TBoundWitness>, TPayload[], ModuleError[]]> {\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const dataHashableFields = (await this.dataHashableFields()) as TBoundWitness\n const $hash = (await PayloadBuilder.build(dataHashableFields)).$hash\n const $meta = await this.metaFields($hash)\n\n const ret = {\n ...dataHashableFields,\n $hash,\n $meta,\n } as WithMeta<TBoundWitness>\n return [ret, this._payloads, this._errors]\n })\n }\n\n override async dataHashableFields(): Promise<Omit<TBoundWitness, '$meta' | '$hash'>> {\n const fields = await this.linkingFields()\n const result = await BoundWitnessBuilder.dataHashableFields<TBoundWitness>(this._schema, fields)\n\n BoundWitnessBuilder.validateLinkingFields(result)\n\n return result as Omit<TBoundWitness, '$meta' | '$hash'>\n }\n\n async error(payload?: ModuleError) {\n const unwrappedPayload = await PayloadWrapper.unwrap(payload)\n assertEx(this._errorHashes === undefined, 'Can not set errors when hashes already set')\n if (unwrappedPayload) {\n this._errors.push(assertEx(sortFields(unwrappedPayload)))\n }\n return this\n }\n\n async errors(errors?: (ModuleError | null)[]) {\n if (errors) {\n await Promise.all(\n errors.map(async (error) => {\n if (error !== null) {\n await this.error(error)\n }\n }),\n )\n }\n return this\n }\n\n hashes(hashes: Hash[], schema: Schema[]) {\n assertEx(this.payloads.length === 0, 'Can not set hashes when payloads already set')\n this._payloadHashes = hashes\n this._payloadSchemas = schema\n return this\n }\n\n async payload(payload?: TPayload) {\n const unwrappedPayload = await PayloadWrapper.unwrap<TPayload>(payload)\n assertEx(this._payloadHashes === undefined, 'Can not set payloads when hashes already set')\n if (unwrappedPayload) {\n this._payloads.push(assertEx(sortFields<TPayload>(unwrappedPayload)))\n }\n return this\n }\n\n async payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n await Promise.all(\n payloads.map(async (payload) => {\n if (payload !== null) {\n await this.payload(payload)\n }\n }),\n )\n return this\n }\n\n sourceQuery(query?: Hash) {\n this._sourceQuery = query?.toLowerCase()\n return this\n }\n\n witness(account: AccountInstance) {\n this._accounts?.push(account)\n return this\n }\n\n witnesses(accounts: AccountInstance[]) {\n this._accounts?.push(...accounts)\n return this\n }\n\n protected async signatures(_hash: Hash, previousHashes: (Hash | ArrayBuffer | null)[]): Promise<string[]> {\n const hash = toArrayBuffer(_hash)\n const previousHashesBytes = previousHashes.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(this._accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hash, previousHashesBytes[index]))))\n }\n\n private async linkingFields() {\n return await BoundWitnessBuilder.linkingFields<TBoundWitness>(this._accounts, this._payloads, this.timestamp)\n }\n\n private async metaFields(dataHash: Hash): Promise<JsonObject> {\n return await BoundWitnessBuilder.metaFields(dataHash, this._$meta, this._accounts, this.previousHashes, this._destination, this._sourceQuery)\n }\n\n private missingSchemaMessage(payload: Payload) {\n return `Builder: Missing Schema\\n${JSON.stringify(payload, null, 2)}`\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Query, WithMeta } from '@xyo-network/payload-model'\n\nimport { BoundWitnessBuilder } from '../Builder'\n\nexport class QueryBoundWitnessBuilder<\n TBoundWitness extends QueryBoundWitness = QueryBoundWitness,\n TQuery extends Query = Query,\n> extends BoundWitnessBuilder<TBoundWitness> {\n private _query: WithMeta<TQuery> | undefined\n\n override async dataHashableFields(): Promise<Omit<TBoundWitness, '$hash' | '$meta'>> {\n return {\n ...(await super.dataHashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as Omit<TBoundWitness, '$hash' | '$meta'>\n }\n\n override async hashableFields(): Promise<WithMeta<TBoundWitness>> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as WithMeta<TBoundWitness>\n }\n\n async query<T extends TQuery>(query: T) {\n this._query = await PayloadBuilder.build(query)\n await this.payload(this._query)\n return this\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Payload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\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 async parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<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 const wrapper =\n castWrapper instanceof QueryBoundWitnessWrapper\n ? castWrapper\n : new QueryBoundWitnessWrapper<T>(\n await PayloadBuilder.build(obj as QueryBoundWitness),\n payloads ? await Promise.all(payloads.map((payload) => PayloadBuilder.build(payload))) : undefined,\n )\n /*if (!wrapper.valid) {\n console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)\n }*/\n return wrapper\n }\n }\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n async getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery =\n this._payloadsWithoutQuery ??\n (await Promise.all(\n compact((await PayloadBuilder.filterExclude(this.payloads, this.jsonPayload().query)).map((payload) => PayloadWrapper.wrap(payload))),\n ))\n return this._payloadsWithoutQuery\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.payloadsDataHashMap()\n this._query = this._query ?? (payloadMap[this.boundwitness.query] as T | undefined)\n return assertEx(this._query, () => `Missing Query [${this.boundwitness}]`)\n }\n}\n"],"mappings":"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","names":["toArrayBuffer","toUint8Array","assertEx","hexFromArrayBuffer","BoundWitnessSchema","sortFields","PayloadBuilder","PayloadBuilderBase","PayloadWrapper","Mutex","BoundWitnessBuilder","PayloadBuilderBase","_accounts","_destination","_errorHashes","_errors","_payloadHashes","_payloadSchemas","_payloads","_sourceQuery","_timestamp","constructor","options","schema","BoundWitnessSchema","accounts","payloadHashes","payloadSchemas","payloads","sourceQuery","timestamp","destination","addresses","map","account","address","toLowerCase","payload","assertEx","missingSchemaMessage","previousHashBuffers","previousHashBytes","previousHashes","previousHash","Date","now","addressIndex","index","indexOf","Error","build","dataHashableFields","fields","hashableFields","$meta","$hash","boundWitness","previous_hashes","linkingFields","hexFromArrayBuffer","addressBytes","prefix","payload_hashes","PayloadBuilder","dataHashes","payload_schemas","metaFields","dataHash","otherMeta","meta","length","signatures","signature","hash","hashBytes","toArrayBuffer","previousHashesBytes","ph","toUint8Array","undefined","Promise","all","sign","validateLinkingFields","bw","some","_buildMutex","runExclusive","ret","result","_schema","error","unwrappedPayload","PayloadWrapper","unwrap","push","sortFields","errors","hashes","query","witness","witnesses","_hash","_$meta","JSON","stringify","Mutex","assertEx","QueryBoundWitnessSchema","PayloadBuilder","QueryBoundWitnessBuilder","BoundWitnessBuilder","_query","dataHashableFields","query","assertEx","$hash","schema","QueryBoundWitnessSchema","hashableFields","PayloadBuilder","build","payload","assertEx","compact","BoundWitnessWrapper","PayloadBuilder","PayloadWrapper","QueryBoundWitnessWrapper","BoundWitnessWrapper","_payloadsWithoutQuery","_query","parseQuery","obj","payloads","assertEx","Array","isArray","castWrapper","wrapper","PayloadBuilder","build","Promise","all","map","payload","undefined","Error","getPayloadsWithoutQuery","compact","filterExclude","jsonPayload","query","PayloadWrapper","wrap","getQuery","payloadMap","payloadsDataHashMap","boundwitness"]}
|
|
1
|
+
{"version":3,"sources":["../../src/Builder.ts","../../src/Query/QueryBoundWitnessBuilder.ts"],"sourcesContent":["import { toArrayBuffer, toUint8Array } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { Address, Hash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { AnyObject, JsonObject } from '@xylabs/object'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { sortFields } from '@xyo-network/hash'\nimport { PayloadBuilder, PayloadBuilderBase, PayloadBuilderOptions, PayloadWrapper } from '@xyo-network/payload'\nimport { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\nexport type GeneratedBoundWitnessFields = 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes'\n\nexport interface BoundWitnessBuilderOptions<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload>\n extends Omit<PayloadBuilderOptions<Omit<TBoundWitness, GeneratedBoundWitnessFields>>, 'schema'> {\n readonly accounts?: AccountInstance[]\n readonly destination?: string[]\n readonly payloadHashes?: TBoundWitness['payload_hashes']\n readonly payloadSchemas?: TBoundWitness['payload_schemas']\n readonly payloads?: TPayload[]\n readonly sourceQuery?: Hash\n readonly timestamp?: number\n}\n\nexport class BoundWitnessBuilder<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends PayloadBuilderBase<\n Omit<TBoundWitness, GeneratedBoundWitnessFields>,\n BoundWitnessBuilderOptions<TBoundWitness> & { schema: BoundWitnessSchema }\n> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[]\n private _destination?: string[]\n private _errorHashes?: string[]\n private _errors: ModuleError[] = []\n private _payloadHashes?: string[]\n private _payloadSchemas?: string[]\n private _payloads: TPayload[]\n private _sourceQuery?: Hash\n private _timestamp: boolean | number\n\n constructor(options?: BoundWitnessBuilderOptions<TBoundWitness, TPayload>) {\n super({ ...options, schema: BoundWitnessSchema })\n const { accounts, payloadHashes, payloadSchemas, payloads, sourceQuery, timestamp, destination } = options ?? {}\n this._accounts = accounts ?? []\n this._payloadHashes = payloadHashes\n this._payloadSchemas = payloadSchemas\n this._payloads = payloads ?? []\n this._sourceQuery = sourceQuery\n this._destination = destination\n this._timestamp = timestamp ?? true\n }\n\n protected get addresses(): Address[] {\n return this._accounts.map((account) => account.address.toLowerCase())\n }\n\n protected get payloadSchemas(): string[] {\n return (\n this._payloadSchemas ??\n this._payloads.map((payload) => {\n return assertEx(payload.schema, () => this.missingSchemaMessage(payload))\n })\n )\n }\n\n protected get previousHashBuffers(): (ArrayBuffer | null)[] {\n return this._accounts.map((account) => account.previousHashBytes ?? null)\n }\n\n protected get previousHashes(): (Hash | null)[] {\n return this._accounts.map((account) => account.previousHash ?? null)\n }\n\n protected get timestamp(): number {\n return (this._timestamp = typeof this._timestamp === 'number' ? this._timestamp : Date.now())\n }\n\n static addressIndex<T extends BoundWitness>(payload: T, address: Address) {\n const index = payload.addresses.indexOf(address)\n if (index === -1) {\n throw new Error('Invalid address')\n }\n return index\n }\n\n static async build<TBoundWitness extends BoundWitness>(options: BoundWitnessBuilderOptions<TBoundWitness>) {\n return await new BoundWitnessBuilder(options).build()\n }\n\n static override async dataHashableFields<T extends Payload = Payload<AnyObject>>(\n schema: string,\n fields?: Omit<T, 'schema' | '$hash' | '$meta'>,\n ): Promise<Omit<T, '$hash' | '$meta'>> {\n return await PayloadBuilderBase.dataHashableFields(schema, fields)\n }\n\n static override async hashableFields<T extends Payload = Payload<AnyObject>>(\n schema: string,\n fields?: Omit<T, 'schema' | '$hash' | '$meta'>,\n $meta?: JsonObject,\n $hash?: Hash,\n timestamp?: number,\n ): Promise<WithMeta<T>> {\n return await PayloadBuilderBase.hashableFields(schema, fields, $meta, $hash, timestamp)\n }\n\n static previousHash<T extends BoundWitness>(boundWitness: T, address: Address) {\n return boundWitness.previous_hashes[this.addressIndex(boundWitness, address)]?.toLowerCase()\n }\n\n protected static async linkingFields<T extends BoundWitness = BoundWitness>(\n accounts: AccountInstance[],\n payloads?: Payload[],\n timestamp = Date.now(),\n ) {\n const addresses = accounts.map((account) => hexFromArrayBuffer(account.addressBytes, { prefix: false }))\n const previous_hashes = accounts.map((account) => account.previousHash ?? null)\n const payload_hashes = payloads ? await PayloadBuilder.dataHashes(payloads) : []\n const payload_schemas = payloads?.map(({ schema }) => schema)\n return { addresses, payload_hashes, payload_schemas, previous_hashes, timestamp } as Omit<T, '$meta' | '$hash' | 'schema'>\n }\n\n protected static override async metaFields(\n dataHash: Hash,\n otherMeta?: JsonObject,\n accounts?: AccountInstance[],\n previousHashes?: (Hash | null)[],\n destination?: Address[],\n sourceQuery?: Hash,\n ): Promise<JsonObject> {\n const meta: JsonObject = { ...(await PayloadBuilderBase.metaFields(dataHash, otherMeta)) }\n\n if (accounts?.length && previousHashes?.length) {\n assertEx(accounts.length === previousHashes.length, 'accounts and previousHashes must have same length')\n meta.signatures = await this.signatures(accounts, dataHash, previousHashes)\n }\n\n if (sourceQuery) {\n meta.sourceQuery = sourceQuery\n }\n\n if (destination) {\n meta.destination = destination\n }\n\n return meta\n }\n\n protected static signature<T extends BoundWitness>(payload: T, address: Address) {\n return payload.$meta.signatures[this.addressIndex(payload, address)]\n }\n\n protected static async signatures(accounts: AccountInstance[], hash: Hash, previousHashes: (Hash | ArrayBuffer | null)[]): Promise<string[]> {\n const hashBytes = toArrayBuffer(hash)\n const previousHashesBytes = previousHashes?.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hashBytes, previousHashesBytes[index]))))\n }\n\n private static validateLinkingFields(bw: Pick<BoundWitness, 'payload_hashes' | 'payload_schemas'>) {\n assertEx(bw.payload_hashes?.length === bw.payload_schemas?.length, 'Payload hash/schema mismatch')\n assertEx(!bw.payload_hashes.some((hash) => !hash), () => 'nulls found in hashes')\n assertEx(!bw.payload_schemas.some((schema) => !schema), 'nulls found in schemas')\n }\n\n async build(): Promise<[WithMeta<TBoundWitness>, WithMeta<TPayload>[], WithMeta<ModuleError>[]]> {\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const dataHashableFields = (await this.dataHashableFields()) as TBoundWitness\n const $hash = (await PayloadBuilder.build(dataHashableFields)).$hash\n const $meta = await this.metaFields($hash)\n\n const ret = {\n ...dataHashableFields,\n $hash,\n $meta,\n } as WithMeta<TBoundWitness>\n return [\n ret,\n await Promise.all(this._payloads?.map((payload) => PayloadBuilder.build(payload))),\n await Promise.all(this._errors?.map((error) => PayloadBuilder.build(error))),\n ]\n })\n }\n\n override async dataHashableFields(): Promise<Omit<TBoundWitness, '$meta' | '$hash'>> {\n const fields = await this.linkingFields()\n const result = await BoundWitnessBuilder.dataHashableFields<TBoundWitness>(this._schema, fields)\n\n BoundWitnessBuilder.validateLinkingFields(result)\n\n return result as Omit<TBoundWitness, '$meta' | '$hash'>\n }\n\n async error(payload?: ModuleError) {\n const unwrappedPayload = await PayloadWrapper.unwrap(payload)\n assertEx(this._errorHashes === undefined, 'Can not set errors when hashes already set')\n if (unwrappedPayload) {\n this._errors.push(assertEx(sortFields(unwrappedPayload)))\n }\n return this\n }\n\n async errors(errors?: (ModuleError | null)[]) {\n if (errors) {\n await Promise.all(\n errors.map(async (error) => {\n if (error !== null) {\n await this.error(error)\n }\n }),\n )\n }\n return this\n }\n\n hashes(hashes: Hash[], schema: Schema[]) {\n assertEx(this.payloads.length === 0, 'Can not set hashes when payloads already set')\n this._payloadHashes = hashes\n this._payloadSchemas = schema\n return this\n }\n\n async payload(payload?: TPayload) {\n const unwrappedPayload = await PayloadWrapper.unwrap<TPayload>(payload)\n assertEx(this._payloadHashes === undefined, 'Can not set payloads when hashes already set')\n if (unwrappedPayload) {\n this._payloads.push(assertEx(sortFields<TPayload>(unwrappedPayload)))\n }\n return this\n }\n\n async payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n await Promise.all(\n payloads.map(async (payload) => {\n if (payload !== null) {\n await this.payload(payload)\n }\n }),\n )\n return this\n }\n\n sourceQuery(query?: Hash) {\n this._sourceQuery = query?.toLowerCase()\n return this\n }\n\n witness(account: AccountInstance) {\n this._accounts?.push(account)\n return this\n }\n\n witnesses(accounts: AccountInstance[]) {\n this._accounts?.push(...accounts)\n return this\n }\n\n protected override async metaFields(dataHash: Hash): Promise<JsonObject> {\n return await BoundWitnessBuilder.metaFields(dataHash, this._$meta, this._accounts, this.previousHashes, this._destination, this._sourceQuery)\n }\n\n protected async signatures(_hash: Hash, previousHashes: (Hash | ArrayBuffer | null)[]): Promise<string[]> {\n const hash = toArrayBuffer(_hash)\n const previousHashesBytes = previousHashes.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(this._accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hash, previousHashesBytes[index]))))\n }\n\n private async linkingFields() {\n return await BoundWitnessBuilder.linkingFields<TBoundWitness>(this._accounts, this._payloads, this.timestamp)\n }\n\n private missingSchemaMessage(payload: Payload) {\n return `Builder: Missing Schema\\n${JSON.stringify(payload, null, 2)}`\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Query, WithMeta } from '@xyo-network/payload-model'\n\nimport { BoundWitnessBuilder } from '../Builder'\n\nexport class QueryBoundWitnessBuilder<\n TBoundWitness extends QueryBoundWitness = QueryBoundWitness,\n TQuery extends Query = Query,\n> extends BoundWitnessBuilder<TBoundWitness> {\n private _query: WithMeta<TQuery> | undefined\n\n override async dataHashableFields(): Promise<Omit<TBoundWitness, '$hash' | '$meta'>> {\n return {\n ...(await super.dataHashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as Omit<TBoundWitness, '$hash' | '$meta'>\n }\n\n override async hashableFields(): Promise<WithMeta<TBoundWitness>> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as WithMeta<TBoundWitness>\n }\n\n async query<T extends TQuery>(query: T) {\n this._query = await PayloadBuilder.build(query)\n await this.payload(this._query)\n return this\n }\n}\n"],"mappings":"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","names":["toArrayBuffer","toUint8Array","assertEx","hexFromArrayBuffer","BoundWitnessSchema","sortFields","PayloadBuilder","PayloadBuilderBase","PayloadWrapper","Mutex","BoundWitnessBuilder","PayloadBuilderBase","_accounts","_destination","_errorHashes","_errors","_payloadHashes","_payloadSchemas","_payloads","_sourceQuery","_timestamp","constructor","options","schema","BoundWitnessSchema","accounts","payloadHashes","payloadSchemas","payloads","sourceQuery","timestamp","destination","addresses","map","account","address","toLowerCase","payload","assertEx","missingSchemaMessage","previousHashBuffers","previousHashBytes","previousHashes","previousHash","Date","now","addressIndex","index","indexOf","Error","build","dataHashableFields","fields","hashableFields","$meta","$hash","boundWitness","previous_hashes","linkingFields","hexFromArrayBuffer","addressBytes","prefix","payload_hashes","PayloadBuilder","dataHashes","payload_schemas","metaFields","dataHash","otherMeta","meta","length","signatures","signature","hash","hashBytes","toArrayBuffer","previousHashesBytes","ph","toUint8Array","undefined","Promise","all","sign","validateLinkingFields","bw","some","_buildMutex","runExclusive","ret","error","result","_schema","unwrappedPayload","PayloadWrapper","unwrap","push","sortFields","errors","hashes","query","witness","witnesses","_$meta","_hash","JSON","stringify","Mutex","assertEx","QueryBoundWitnessSchema","PayloadBuilder","QueryBoundWitnessBuilder","BoundWitnessBuilder","_query","dataHashableFields","query","assertEx","$hash","schema","QueryBoundWitnessSchema","hashableFields","PayloadBuilder","build","payload"]}
|
package/package.json
CHANGED
|
@@ -10,28 +10,23 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/arraybuffer": "^2.14.
|
|
14
|
-
"@xylabs/assert": "^2.14.
|
|
15
|
-
"@xylabs/
|
|
16
|
-
"@xylabs/
|
|
17
|
-
"@
|
|
18
|
-
"@
|
|
19
|
-
"@xyo-network/
|
|
20
|
-
"@xyo-network/
|
|
21
|
-
"@xyo-network/
|
|
22
|
-
"@xyo-network/boundwitness-wrapper": "~2.90.1",
|
|
23
|
-
"@xyo-network/hash": "~2.90.1",
|
|
24
|
-
"@xyo-network/payload": "~2.90.1",
|
|
25
|
-
"@xyo-network/payload-model": "~2.90.1",
|
|
26
|
-
"@xyo-network/payload-wrapper": "~2.90.1",
|
|
13
|
+
"@xylabs/arraybuffer": "^2.14.1",
|
|
14
|
+
"@xylabs/assert": "^2.14.1",
|
|
15
|
+
"@xylabs/hex": "^2.14.1",
|
|
16
|
+
"@xylabs/object": "^2.89.1",
|
|
17
|
+
"@xyo-network/account-model": "~2.90.3",
|
|
18
|
+
"@xyo-network/boundwitness-model": "~2.90.3",
|
|
19
|
+
"@xyo-network/hash": "~2.90.3",
|
|
20
|
+
"@xyo-network/payload": "~2.90.3",
|
|
21
|
+
"@xyo-network/payload-model": "~2.90.3",
|
|
27
22
|
"async-mutex": "^0.4.1"
|
|
28
23
|
},
|
|
29
24
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
30
25
|
"devDependencies": {
|
|
31
|
-
"@xylabs/object": "^2.89.
|
|
26
|
+
"@xylabs/object": "^2.89.1",
|
|
32
27
|
"@xylabs/ts-scripts-yarn3": "^3.2.42",
|
|
33
28
|
"@xylabs/tsconfig": "^3.2.42",
|
|
34
|
-
"@xyo-network/account": "~2.90.
|
|
29
|
+
"@xyo-network/account": "~2.90.3",
|
|
35
30
|
"typescript": "^5.3.3"
|
|
36
31
|
},
|
|
37
32
|
"exports": {
|
|
@@ -72,6 +67,6 @@
|
|
|
72
67
|
},
|
|
73
68
|
"sideEffects": false,
|
|
74
69
|
"types": "dist/node/index.d.ts",
|
|
75
|
-
"version": "2.90.
|
|
70
|
+
"version": "2.90.3",
|
|
76
71
|
"type": "module"
|
|
77
72
|
}
|
package/src/Builder.ts
CHANGED
|
@@ -119,7 +119,7 @@ export class BoundWitnessBuilder<TBoundWitness extends BoundWitness = BoundWitne
|
|
|
119
119
|
return { addresses, payload_hashes, payload_schemas, previous_hashes, timestamp } as Omit<T, '$meta' | '$hash' | 'schema'>
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
-
protected static async metaFields(
|
|
122
|
+
protected static override async metaFields(
|
|
123
123
|
dataHash: Hash,
|
|
124
124
|
otherMeta?: JsonObject,
|
|
125
125
|
accounts?: AccountInstance[],
|
|
@@ -127,7 +127,7 @@ export class BoundWitnessBuilder<TBoundWitness extends BoundWitness = BoundWitne
|
|
|
127
127
|
destination?: Address[],
|
|
128
128
|
sourceQuery?: Hash,
|
|
129
129
|
): Promise<JsonObject> {
|
|
130
|
-
const meta: JsonObject = { ...otherMeta }
|
|
130
|
+
const meta: JsonObject = { ...(await PayloadBuilderBase.metaFields(dataHash, otherMeta)) }
|
|
131
131
|
|
|
132
132
|
if (accounts?.length && previousHashes?.length) {
|
|
133
133
|
assertEx(accounts.length === previousHashes.length, 'accounts and previousHashes must have same length')
|
|
@@ -161,7 +161,7 @@ export class BoundWitnessBuilder<TBoundWitness extends BoundWitness = BoundWitne
|
|
|
161
161
|
assertEx(!bw.payload_schemas.some((schema) => !schema), 'nulls found in schemas')
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
-
async build(): Promise<[WithMeta<TBoundWitness>, TPayload[], ModuleError[]]> {
|
|
164
|
+
async build(): Promise<[WithMeta<TBoundWitness>, WithMeta<TPayload>[], WithMeta<ModuleError>[]]> {
|
|
165
165
|
return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {
|
|
166
166
|
const dataHashableFields = (await this.dataHashableFields()) as TBoundWitness
|
|
167
167
|
const $hash = (await PayloadBuilder.build(dataHashableFields)).$hash
|
|
@@ -172,7 +172,11 @@ export class BoundWitnessBuilder<TBoundWitness extends BoundWitness = BoundWitne
|
|
|
172
172
|
$hash,
|
|
173
173
|
$meta,
|
|
174
174
|
} as WithMeta<TBoundWitness>
|
|
175
|
-
return [
|
|
175
|
+
return [
|
|
176
|
+
ret,
|
|
177
|
+
await Promise.all(this._payloads?.map((payload) => PayloadBuilder.build(payload))),
|
|
178
|
+
await Promise.all(this._errors?.map((error) => PayloadBuilder.build(error))),
|
|
179
|
+
]
|
|
176
180
|
})
|
|
177
181
|
}
|
|
178
182
|
|
|
@@ -250,6 +254,10 @@ export class BoundWitnessBuilder<TBoundWitness extends BoundWitness = BoundWitne
|
|
|
250
254
|
return this
|
|
251
255
|
}
|
|
252
256
|
|
|
257
|
+
protected override async metaFields(dataHash: Hash): Promise<JsonObject> {
|
|
258
|
+
return await BoundWitnessBuilder.metaFields(dataHash, this._$meta, this._accounts, this.previousHashes, this._destination, this._sourceQuery)
|
|
259
|
+
}
|
|
260
|
+
|
|
253
261
|
protected async signatures(_hash: Hash, previousHashes: (Hash | ArrayBuffer | null)[]): Promise<string[]> {
|
|
254
262
|
const hash = toArrayBuffer(_hash)
|
|
255
263
|
const previousHashesBytes = previousHashes.map((ph) => (ph ? toUint8Array(ph) : undefined))
|
|
@@ -260,10 +268,6 @@ export class BoundWitnessBuilder<TBoundWitness extends BoundWitness = BoundWitne
|
|
|
260
268
|
return await BoundWitnessBuilder.linkingFields<TBoundWitness>(this._accounts, this._payloads, this.timestamp)
|
|
261
269
|
}
|
|
262
270
|
|
|
263
|
-
private async metaFields(dataHash: Hash): Promise<JsonObject> {
|
|
264
|
-
return await BoundWitnessBuilder.metaFields(dataHash, this._$meta, this._accounts, this.previousHashes, this._destination, this._sourceQuery)
|
|
265
|
-
}
|
|
266
|
-
|
|
267
271
|
private missingSchemaMessage(payload: Payload) {
|
|
268
272
|
return `Builder: Missing Schema\n${JSON.stringify(payload, null, 2)}`
|
|
269
273
|
}
|
package/src/Query/index.ts
CHANGED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
-
import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator';
|
|
3
|
-
import { Query } from '@xyo-network/payload-model';
|
|
4
|
-
export declare class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {
|
|
5
|
-
private _query;
|
|
6
|
-
protected get expectedSchema(): string;
|
|
7
|
-
static isQueryBoundWitnessValidator(obj: unknown): boolean;
|
|
8
|
-
validate(): Promise<Error[]>;
|
|
9
|
-
validateResultSet(): Promise<Error[]>;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=QueryBoundWitnessValidator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessValidator.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessValidator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGrE,qBAAa,0BAA0B,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,qBAAqB,CAAC,iBAAiB,CAAC;IAC/G,OAAO,CAAC,MAAM,CAA+B;IAE7C,cAAuB,cAAc,IAAI,MAAM,CAE9C;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,OAAO;IAIjC,QAAQ;IAOjB,iBAAiB;CAwBxB"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
-
import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator';
|
|
3
|
-
import { Query } from '@xyo-network/payload-model';
|
|
4
|
-
export declare class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {
|
|
5
|
-
private _query;
|
|
6
|
-
protected get expectedSchema(): string;
|
|
7
|
-
static isQueryBoundWitnessValidator(obj: unknown): boolean;
|
|
8
|
-
validate(): Promise<Error[]>;
|
|
9
|
-
validateResultSet(): Promise<Error[]>;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=QueryBoundWitnessValidator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessValidator.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessValidator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGrE,qBAAa,0BAA0B,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,qBAAqB,CAAC,iBAAiB,CAAC;IAC/G,OAAO,CAAC,MAAM,CAA+B;IAE7C,cAAuB,cAAc,IAAI,MAAM,CAE9C;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,OAAO;IAIjC,QAAQ;IAOjB,iBAAiB;CAwBxB"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
-
import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator';
|
|
3
|
-
import { Query } from '@xyo-network/payload-model';
|
|
4
|
-
export declare class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {
|
|
5
|
-
private _query;
|
|
6
|
-
protected get expectedSchema(): string;
|
|
7
|
-
static isQueryBoundWitnessValidator(obj: unknown): boolean;
|
|
8
|
-
validate(): Promise<Error[]>;
|
|
9
|
-
validateResultSet(): Promise<Error[]>;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=QueryBoundWitnessValidator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessValidator.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessValidator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGrE,qBAAa,0BAA0B,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,qBAAqB,CAAC,iBAAiB,CAAC;IAC/G,OAAO,CAAC,MAAM,CAA+B;IAE7C,cAAuB,cAAc,IAAI,MAAM,CAE9C;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,OAAO;IAIjC,QAAQ;IAOjB,iBAAiB;CAwBxB"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
-
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
|
|
3
|
-
import { Payload, Query } from '@xyo-network/payload-model';
|
|
4
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
5
|
-
export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
6
|
-
private _payloadsWithoutQuery;
|
|
7
|
-
private _query;
|
|
8
|
-
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
|
|
9
|
-
getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]>;
|
|
10
|
-
getQuery(): Promise<T>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=QueryBoundWitnessWrapper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;WAEhB,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAqBpH,uBAAuB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAS7D,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;CAK7B"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
-
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
|
|
3
|
-
import { Payload, Query } from '@xyo-network/payload-model';
|
|
4
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
5
|
-
export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
6
|
-
private _payloadsWithoutQuery;
|
|
7
|
-
private _query;
|
|
8
|
-
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
|
|
9
|
-
getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]>;
|
|
10
|
-
getQuery(): Promise<T>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=QueryBoundWitnessWrapper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;WAEhB,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAqBpH,uBAAuB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAS7D,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;CAK7B"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
-
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
|
|
3
|
-
import { Payload, Query } from '@xyo-network/payload-model';
|
|
4
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
5
|
-
export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
6
|
-
private _payloadsWithoutQuery;
|
|
7
|
-
private _query;
|
|
8
|
-
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
|
|
9
|
-
getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]>;
|
|
10
|
-
getQuery(): Promise<T>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=QueryBoundWitnessWrapper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;WAEhB,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAqBpH,uBAAuB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAS7D,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;CAK7B"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
-
import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator';
|
|
3
|
-
import { Query } from '@xyo-network/payload-model';
|
|
4
|
-
export declare class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {
|
|
5
|
-
private _query;
|
|
6
|
-
protected get expectedSchema(): string;
|
|
7
|
-
static isQueryBoundWitnessValidator(obj: unknown): boolean;
|
|
8
|
-
validate(): Promise<Error[]>;
|
|
9
|
-
validateResultSet(): Promise<Error[]>;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=QueryBoundWitnessValidator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessValidator.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessValidator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGrE,qBAAa,0BAA0B,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,qBAAqB,CAAC,iBAAiB,CAAC;IAC/G,OAAO,CAAC,MAAM,CAA+B;IAE7C,cAAuB,cAAc,IAAI,MAAM,CAE9C;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,OAAO;IAIjC,QAAQ;IAOjB,iBAAiB;CAwBxB"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
-
import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator';
|
|
3
|
-
import { Query } from '@xyo-network/payload-model';
|
|
4
|
-
export declare class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {
|
|
5
|
-
private _query;
|
|
6
|
-
protected get expectedSchema(): string;
|
|
7
|
-
static isQueryBoundWitnessValidator(obj: unknown): boolean;
|
|
8
|
-
validate(): Promise<Error[]>;
|
|
9
|
-
validateResultSet(): Promise<Error[]>;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=QueryBoundWitnessValidator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessValidator.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessValidator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGrE,qBAAa,0BAA0B,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,qBAAqB,CAAC,iBAAiB,CAAC;IAC/G,OAAO,CAAC,MAAM,CAA+B;IAE7C,cAAuB,cAAc,IAAI,MAAM,CAE9C;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,OAAO;IAIjC,QAAQ;IAOjB,iBAAiB;CAwBxB"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
-
import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator';
|
|
3
|
-
import { Query } from '@xyo-network/payload-model';
|
|
4
|
-
export declare class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {
|
|
5
|
-
private _query;
|
|
6
|
-
protected get expectedSchema(): string;
|
|
7
|
-
static isQueryBoundWitnessValidator(obj: unknown): boolean;
|
|
8
|
-
validate(): Promise<Error[]>;
|
|
9
|
-
validateResultSet(): Promise<Error[]>;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=QueryBoundWitnessValidator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessValidator.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessValidator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGrE,qBAAa,0BAA0B,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,qBAAqB,CAAC,iBAAiB,CAAC;IAC/G,OAAO,CAAC,MAAM,CAA+B;IAE7C,cAAuB,cAAc,IAAI,MAAM,CAE9C;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,OAAO;IAIjC,QAAQ;IAOjB,iBAAiB;CAwBxB"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
-
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
|
|
3
|
-
import { Payload, Query } from '@xyo-network/payload-model';
|
|
4
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
5
|
-
export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
6
|
-
private _payloadsWithoutQuery;
|
|
7
|
-
private _query;
|
|
8
|
-
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
|
|
9
|
-
getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]>;
|
|
10
|
-
getQuery(): Promise<T>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=QueryBoundWitnessWrapper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;WAEhB,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAqBpH,uBAAuB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAS7D,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;CAK7B"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
-
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
|
|
3
|
-
import { Payload, Query } from '@xyo-network/payload-model';
|
|
4
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
5
|
-
export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
6
|
-
private _payloadsWithoutQuery;
|
|
7
|
-
private _query;
|
|
8
|
-
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
|
|
9
|
-
getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]>;
|
|
10
|
-
getQuery(): Promise<T>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=QueryBoundWitnessWrapper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;WAEhB,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAqBpH,uBAAuB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAS7D,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;CAK7B"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
-
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
|
|
3
|
-
import { Payload, Query } from '@xyo-network/payload-model';
|
|
4
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
5
|
-
export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
6
|
-
private _payloadsWithoutQuery;
|
|
7
|
-
private _query;
|
|
8
|
-
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
|
|
9
|
-
getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]>;
|
|
10
|
-
getQuery(): Promise<T>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=QueryBoundWitnessWrapper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;WAEhB,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAqBpH,uBAAuB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAS7D,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;CAK7B"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { assertEx } from '@xylabs/assert'
|
|
2
|
-
import { handleError } from '@xylabs/error'
|
|
3
|
-
import { QueryBoundWitness, QueryBoundWitnessSchema } from '@xyo-network/boundwitness-model'
|
|
4
|
-
import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'
|
|
5
|
-
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
|
|
6
|
-
import { PayloadSetPayload, Query } from '@xyo-network/payload-model'
|
|
7
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
8
|
-
|
|
9
|
-
export class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {
|
|
10
|
-
private _query: PayloadWrapper<T> | undefined
|
|
11
|
-
|
|
12
|
-
protected override get expectedSchema(): string {
|
|
13
|
-
return QueryBoundWitnessSchema
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
static isQueryBoundWitnessValidator(obj: unknown) {
|
|
17
|
-
return (obj as QueryBoundWitnessValidator)?.constructor === QueryBoundWitnessValidator
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
override async validate() {
|
|
21
|
-
return [
|
|
22
|
-
...(await super.validate()),
|
|
23
|
-
// ...this.validateResultSet()
|
|
24
|
-
]
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
async validateResultSet() {
|
|
28
|
-
const errors: Error[] = []
|
|
29
|
-
try {
|
|
30
|
-
const resultSetHash = assertEx(this.obj.resultSet, 'Missing ResultSet')
|
|
31
|
-
const wrapper = await BoundWitnessWrapper.parse(this.obj)
|
|
32
|
-
const resultSet = await PayloadWrapper.wrap<PayloadSetPayload>((await wrapper.payloadsDataHashMap())[resultSetHash] as PayloadSetPayload)
|
|
33
|
-
const required = resultSet?.jsonPayload().required
|
|
34
|
-
if (required) {
|
|
35
|
-
for (const [key, value] of Object.entries(required)) {
|
|
36
|
-
const found = wrapper.payloadSchemas.reduce((count, schema) => {
|
|
37
|
-
return count + (schema === key ? 1 : 0)
|
|
38
|
-
}, 0)
|
|
39
|
-
if (found !== value) {
|
|
40
|
-
errors.push(Error(`validateResultSet: Missing Schema [${key}:${found}:${value}]`))
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
} catch (ex) {
|
|
45
|
-
handleError(ex, (error) => {
|
|
46
|
-
errors.push(error)
|
|
47
|
-
})
|
|
48
|
-
}
|
|
49
|
-
return errors
|
|
50
|
-
}
|
|
51
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { assertEx } from '@xylabs/assert'
|
|
2
|
-
import { compact } from '@xylabs/lodash'
|
|
3
|
-
import { QueryBoundWitness } from '@xyo-network/boundwitness-model'
|
|
4
|
-
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
|
|
5
|
-
import { PayloadBuilder } from '@xyo-network/payload'
|
|
6
|
-
import { Payload, Query } from '@xyo-network/payload-model'
|
|
7
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
8
|
-
|
|
9
|
-
export class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
10
|
-
private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined
|
|
11
|
-
private _query: T | undefined
|
|
12
|
-
|
|
13
|
-
static async parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>> {
|
|
14
|
-
assertEx(!Array.isArray(obj), 'Array can not be converted to QueryBoundWitnessWrapper')
|
|
15
|
-
switch (typeof obj) {
|
|
16
|
-
case 'object': {
|
|
17
|
-
const castWrapper = obj as QueryBoundWitnessWrapper<T>
|
|
18
|
-
const wrapper =
|
|
19
|
-
castWrapper instanceof QueryBoundWitnessWrapper
|
|
20
|
-
? castWrapper
|
|
21
|
-
: new QueryBoundWitnessWrapper<T>(
|
|
22
|
-
await PayloadBuilder.build(obj as QueryBoundWitness),
|
|
23
|
-
payloads ? await Promise.all(payloads.map((payload) => PayloadBuilder.build(payload))) : undefined,
|
|
24
|
-
)
|
|
25
|
-
/*if (!wrapper.valid) {
|
|
26
|
-
console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)
|
|
27
|
-
}*/
|
|
28
|
-
return wrapper
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
throw new Error(`Unable to parse [${typeof obj}]`)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
async getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]> {
|
|
35
|
-
this._payloadsWithoutQuery =
|
|
36
|
-
this._payloadsWithoutQuery ??
|
|
37
|
-
(await Promise.all(
|
|
38
|
-
compact((await PayloadBuilder.filterExclude(this.payloads, this.jsonPayload().query)).map((payload) => PayloadWrapper.wrap(payload))),
|
|
39
|
-
))
|
|
40
|
-
return this._payloadsWithoutQuery
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
async getQuery(): Promise<T> {
|
|
44
|
-
const payloadMap = await this.payloadsDataHashMap()
|
|
45
|
-
this._query = this._query ?? (payloadMap[this.boundwitness.query] as T | undefined)
|
|
46
|
-
return assertEx(this._query, () => `Missing Query [${this.boundwitness}]`)
|
|
47
|
-
}
|
|
48
|
-
}
|