@xyo-network/boundwitness-wrapper 7.0.12 → 7.0.13

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/README.md CHANGED
@@ -1,3 +1,49 @@
1
+ [![logo][]](https://xyo.network)
2
+
1
3
  # @xyo-network/boundwitness-wrapper
2
4
 
3
- Deprecated compatibility stub. Use `@xyo-network/sdk-protocol/boundwitness-wrapper` instead.
5
+ [![npm][npm-badge]][npm-link]
6
+ [![license][license-badge]][license-link]
7
+
8
+ > Primary SDK for using XYO Protocol 2.0
9
+
10
+ ## Install
11
+
12
+ Using npm:
13
+
14
+ ```sh
15
+ npm install {{name}}
16
+ ```
17
+
18
+ Using yarn:
19
+
20
+ ```sh
21
+ yarn add {{name}}
22
+ ```
23
+
24
+ Using pnpm:
25
+
26
+ ```sh
27
+ pnpm add {{name}}
28
+ ```
29
+
30
+ Using bun:
31
+
32
+ ```sh
33
+ bun add {{name}}
34
+ ```
35
+
36
+
37
+ ## License
38
+
39
+ See the [LICENSE](LICENSE) file for license rights and limitations (LGPL-3.0-only).
40
+
41
+ ## Credits
42
+
43
+ [Made with 🔥 and ❄️ by XYO Foundation](https://xyo.network)
44
+
45
+ [npm-badge]: https://img.shields.io/npm/v/@xyo-network/boundwitness-wrapper.svg
46
+ [npm-link]: https://www.npmjs.com/package/@xyo-network/boundwitness-wrapper
47
+ [license-badge]: https://img.shields.io/npm/l/@xyo-network/boundwitness-wrapper.svg
48
+ [license-link]: https://github.com/xylabs/sdk-js/blob/main/LICENSE
49
+ [logo]: https://cdn.xy.company/img/brand/XYO_full_colored.png
@@ -0,0 +1,60 @@
1
+ import { type Hash } from '@ariestools/sdk';
2
+ import type { XyoAddress } from '@xyo-network/address';
3
+ import type { BoundWitness } from '@xyo-network/boundwitness-model';
4
+ import type { Payload, WithoutPrivateStorageMeta } from '@xyo-network/payload-model';
5
+ import { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper';
6
+ export declare const isBoundWitnessWrapper: <T extends BoundWitness = BoundWitness, P extends Payload = Payload>(value?: unknown) => value is BoundWitnessWrapper<T, P>;
7
+ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends PayloadWrapperBase<TBoundWitness> {
8
+ private _payloadDataMap;
9
+ private _payloadMap;
10
+ boundwitness: TBoundWitness;
11
+ moduleErrors?: Payload[];
12
+ payloads: TPayload[];
13
+ protected constructor(boundwitness: TBoundWitness, payloads?: TPayload[], moduleErrors?: Payload[]);
14
+ static as<T extends BoundWitness = BoundWitness>(value: unknown): BoundWitnessWrapper<T, Payload> | undefined;
15
+ static load(address: XyoAddress): Promise<BoundWitnessWrapper<{
16
+ schema: "network.xyo.boundwitness" & {
17
+ readonly __schema: true;
18
+ };
19
+ addresses: ((Lowercase<string> & {
20
+ readonly __hex: true;
21
+ } & {
22
+ readonly __address: true;
23
+ }) | import("@xyo-network/address").XyoQuantAddress)[];
24
+ payload_hashes: import("@ariestools/sdk").BrandedHash[];
25
+ payload_schemas: import("@xyo-network/payload-model").BrandedSchema<string>[];
26
+ previous_hashes: (import("@ariestools/sdk").BrandedHash | null)[];
27
+ $signatures: (import("@ariestools/sdk").BrandedHex | null)[];
28
+ $destination?: import("@xyo-network/address").XyoQuantAddress | (Lowercase<string> & {
29
+ readonly __hex: true;
30
+ } & {
31
+ readonly __address: true;
32
+ }) | undefined;
33
+ $sourceQuery?: import("@ariestools/sdk").BrandedHash | undefined;
34
+ }, Payload> | null>;
35
+ static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P>;
36
+ static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined;
37
+ static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | WithoutPrivateStorageMeta<T>, payloads?: P[]): BoundWitnessWrapper<T, P>;
38
+ static wrappedDataHashMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>>;
39
+ get addresses(): ((Lowercase<string> & {
40
+ readonly __hex: true;
41
+ } & {
42
+ readonly __address: true;
43
+ }) | import("@xyo-network/address").XyoQuantAddress)[];
44
+ get payloadHashes(): import("@ariestools/sdk").BrandedHash[];
45
+ get payloadSchemas(): import("@xyo-network/payload-model").BrandedSchema<string>[];
46
+ get previousHashes(): (import("@ariestools/sdk").BrandedHash | null)[];
47
+ dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>>;
48
+ getMissingPayloads(): Promise<import("@ariestools/sdk").BrandedHash[]>;
49
+ getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]>;
50
+ hashesBySchema(schema: string): string[];
51
+ payloadsByDataHashes(hashes: Hash[]): Promise<TPayload[]>;
52
+ payloadsByHashes(hashes: Hash[]): Promise<TPayload[]>;
53
+ payloadsBySchema<T extends TPayload>(schema: string): T[];
54
+ payloadsDataHashMap(): Promise<Partial<Record<Hash, TPayload>>>;
55
+ payloadsHashMap(): Promise<Partial<Record<Hash, TPayload>>>;
56
+ prev(address: XyoAddress): import("@ariestools/sdk").BrandedHash | null;
57
+ toResult(): (TBoundWitness | TPayload[])[];
58
+ validate(): Promise<Error[]>;
59
+ }
60
+ //# sourceMappingURL=BoundWitnessWrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type Promisable } from '@ariestools/sdk';
2
+ import type { QueryBoundWitness } from '@xyo-network/boundwitness-model';
3
+ import type { Payload, Query } from '@xyo-network/payload-model';
4
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
5
+ import { BoundWitnessWrapper } from './BoundWitnessWrapper.ts';
6
+ export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
7
+ private _payloadsWithoutQuery;
8
+ private _query;
9
+ static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T>;
10
+ static tryParseQuery<T extends Query>(obj: unknown): Promisable<QueryBoundWitnessWrapper<T> | undefined>;
11
+ getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]>;
12
+ getQuery(): Promise<T>;
13
+ }
14
+ //# sourceMappingURL=QueryBoundWitnessWrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACqB,KAAK,UAAU,EAC1C,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAGxE,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;IAE7B,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,wBAAwB,CAAC,CAAC,CAAC;IA2B3G,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,KAAK,EAAE,GAAG,EAAE,OAAO,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IASlG,uBAAuB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAU7D,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;CAM7B"}
@@ -0,0 +1,6 @@
1
+ import type { BoundWitness } from '@xyo-network/boundwitness-model';
2
+ import type { JSONSchemaType } from 'ajv';
3
+ export declare const SignatureRegEx: RegExp;
4
+ export declare const boundWitnessProperties: JSONSchemaType<BoundWitness>['properties'];
5
+ export declare const boundWitnessJsonSchema: JSONSchemaType<BoundWitness>;
6
+ //# sourceMappingURL=SchemaType.d.ts.map
@@ -0,0 +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;AAGtD,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,YAAY,CAgB7E,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,YAAY,CAQ/D,CAAA"}
@@ -1,6 +1,4 @@
1
- /**
2
- * @deprecated Use `@xyo-network/sdk-protocol/boundwitness-wrapper` instead.
3
- * `@xyo-network/boundwitness-wrapper` is a backward-compatibility re-export stub.
4
- */
5
- export * from '@xyo-network/sdk-protocol/boundwitness-wrapper';
1
+ export * from './BoundWitnessWrapper.ts';
2
+ export * from './QueryBoundWitnessWrapper.ts';
3
+ export * from './SchemaType.ts';
6
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,gDAAgD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iBAAiB,CAAA"}
@@ -1,3 +1,281 @@
1
- // src/index.ts
2
- export * from "@xyo-network/sdk-protocol/boundwitness-wrapper";
1
+ // src/BoundWitnessWrapper.ts
2
+ import {
3
+ asHash,
4
+ assertEx,
5
+ isNumber,
6
+ isObject
7
+ } from "@ariestools/sdk";
8
+ import {
9
+ asBoundWitness,
10
+ BoundWitnessSchema,
11
+ isBoundWitness
12
+ } from "@xyo-network/boundwitness-model";
13
+ import { BoundWitnessValidator } from "@xyo-network/boundwitness-validator";
14
+ import { PayloadBuilder } from "@xyo-network/payload-builder";
15
+ import {
16
+ isPayloadWrapperBase,
17
+ PayloadWrapper,
18
+ PayloadWrapperBase
19
+ } from "@xyo-network/payload-wrapper";
20
+ var isBoundWitnessWrapper = (value) => {
21
+ if (isPayloadWrapperBase(value)) {
22
+ return typeof value.payloadsDataHashMap === "function";
23
+ }
24
+ return false;
25
+ };
26
+ var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase {
27
+ _payloadDataMap;
28
+ _payloadMap;
29
+ boundwitness;
30
+ moduleErrors;
31
+ payloads = [];
32
+ constructor(boundwitness, payloads = [], moduleErrors) {
33
+ super(boundwitness);
34
+ this.boundwitness = boundwitness;
35
+ this.payloads = payloads;
36
+ this.moduleErrors = moduleErrors;
37
+ }
38
+ static as(value) {
39
+ return value instanceof this ? value : void 0;
40
+ }
41
+ static async load(address) {
42
+ const wrapper = await PayloadWrapper.load(address);
43
+ const payload = wrapper?.payload;
44
+ assertEx(payload && isBoundWitness(payload), () => "Attempt to load non-boundwitness");
45
+ const boundWitness = payload && isBoundWitness(payload) ? payload : void 0;
46
+ return boundWitness ? this.wrap(boundWitness) : null;
47
+ }
48
+ static parse(obj, payloads) {
49
+ let hydratedObj;
50
+ switch (typeof obj) {
51
+ case "string": {
52
+ hydratedObj = JSON.parse(obj);
53
+ break;
54
+ }
55
+ case "object": {
56
+ if (isObject(obj)) {
57
+ hydratedObj = obj;
58
+ }
59
+ break;
60
+ }
61
+ }
62
+ if (hydratedObj) {
63
+ if (isBoundWitnessWrapper(hydratedObj)) {
64
+ return hydratedObj;
65
+ }
66
+ if (isBoundWitness(hydratedObj)) {
67
+ const wrapper = new _BoundWitnessWrapper(hydratedObj, payloads ?? []);
68
+ return wrapper;
69
+ }
70
+ }
71
+ throw new Error(`Unable to parse [${typeof obj}]`);
72
+ }
73
+ static tryParse(obj, payloads) {
74
+ if (obj === void 0) return void 0;
75
+ try {
76
+ return this.parse(obj, payloads);
77
+ } catch {
78
+ return void 0;
79
+ }
80
+ }
81
+ static wrap(obj, payloads) {
82
+ switch (typeof obj) {
83
+ case "object": {
84
+ if (obj instanceof this) {
85
+ return obj;
86
+ }
87
+ return obj instanceof PayloadWrapper && obj.schema() === BoundWitnessSchema ? this.parse(obj.payload, payloads) : this.parse(obj, payloads);
88
+ }
89
+ }
90
+ }
91
+ static async wrappedDataHashMap(boundWitnesses) {
92
+ const result = {};
93
+ await Promise.all(
94
+ boundWitnesses.map(async (payload) => {
95
+ const bw = this.parse(payload);
96
+ const dataHash = String(await bw.dataHash());
97
+ result[dataHash] = bw;
98
+ })
99
+ );
100
+ return result;
101
+ }
102
+ get addresses() {
103
+ return this.boundwitness.addresses;
104
+ }
105
+ get payloadHashes() {
106
+ return this.boundwitness.payload_hashes;
107
+ }
108
+ get payloadSchemas() {
109
+ return this.boundwitness.payload_schemas;
110
+ }
111
+ get previousHashes() {
112
+ return this.boundwitness.previous_hashes;
113
+ }
114
+ async dig(depth) {
115
+ if (depth === 0) return this;
116
+ const innerBoundwitnessIndex = this.payloadSchemas.indexOf(BoundWitnessSchema);
117
+ if (innerBoundwitnessIndex !== -1) {
118
+ const innerBoundwitnessHash = String(asHash(this.payloadHashes[innerBoundwitnessIndex], true));
119
+ const allHashMap = await PayloadBuilder.toAllHashMap(this.payloads);
120
+ const innerBoundwitnessPayload = asBoundWitness(
121
+ allHashMap[innerBoundwitnessHash]
122
+ );
123
+ const innerBoundwitness = innerBoundwitnessPayload ? new _BoundWitnessWrapper(innerBoundwitnessPayload, await PayloadBuilder.filterExclude(this.payloads, innerBoundwitnessHash)) : void 0;
124
+ if (innerBoundwitness) {
125
+ return innerBoundwitness.dig(isNumber(depth) ? depth - 1 : void 0);
126
+ }
127
+ }
128
+ assertEx(depth === 0, () => `Dig failed [Remaining Depth: ${depth}]`);
129
+ return this;
130
+ }
131
+ async getMissingPayloads() {
132
+ const payloadMap = await this.payloadsDataHashMap();
133
+ return this.payloadHashes.filter((hash) => {
134
+ const hashKey = String(asHash(hash, true));
135
+ return !Object.hasOwn(payloadMap, hashKey);
136
+ });
137
+ }
138
+ async getWrappedPayloads() {
139
+ return this.payloads.map((payload) => PayloadWrapper.wrap(payload));
140
+ }
141
+ hashesBySchema(schema) {
142
+ const result = [];
143
+ for (const [index, payloadSchema] of this.payloadSchemas.entries()) {
144
+ if (payloadSchema === schema) {
145
+ result.push(asHash(this.payloadHashes[index], true));
146
+ }
147
+ }
148
+ return result;
149
+ }
150
+ async payloadsByDataHashes(hashes) {
151
+ const map = await this.payloadsDataHashMap();
152
+ return hashes.map((hash) => {
153
+ const hashKey = String(hash);
154
+ return assertEx(map[hashKey], () => "Hash not found");
155
+ });
156
+ }
157
+ async payloadsByHashes(hashes) {
158
+ const map = await this.payloadsHashMap();
159
+ return hashes.map((hash) => {
160
+ const hashKey = String(hash);
161
+ return assertEx(map[hashKey], () => "Hash not found");
162
+ });
163
+ }
164
+ payloadsBySchema(schema) {
165
+ return this.payloads.filter((payload) => payload?.schema === schema);
166
+ }
167
+ async payloadsDataHashMap() {
168
+ this._payloadDataMap = this._payloadDataMap ?? await PayloadBuilder.toDataHashMap(this.payloads);
169
+ return this._payloadDataMap;
170
+ }
171
+ async payloadsHashMap() {
172
+ this._payloadMap = this._payloadMap ?? await PayloadBuilder.toHashMap(this.payloads);
173
+ return this._payloadMap;
174
+ }
175
+ prev(address) {
176
+ return this.previousHashes[this.addresses.indexOf(address)];
177
+ }
178
+ toResult() {
179
+ return [this.boundwitness, this.payloads];
180
+ }
181
+ async validate() {
182
+ const validator = new BoundWitnessValidator(this.boundwitness);
183
+ return await validator.validate();
184
+ }
185
+ };
186
+
187
+ // src/QueryBoundWitnessWrapper.ts
188
+ import {
189
+ asHash as asHash2,
190
+ assertEx as assertEx2,
191
+ exists
192
+ } from "@ariestools/sdk";
193
+ import { isQueryBoundWitness } from "@xyo-network/boundwitness-model";
194
+ import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload";
195
+ import { PayloadWrapper as PayloadWrapper2 } from "@xyo-network/payload-wrapper";
196
+ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitnessWrapper {
197
+ _payloadsWithoutQuery;
198
+ _query;
199
+ static parseQuery(obj, payloads) {
200
+ assertEx2(!Array.isArray(obj), () => "Array can not be converted to QueryBoundWitnessWrapper");
201
+ switch (typeof obj) {
202
+ case "object": {
203
+ const castWrapper = obj;
204
+ const result = castWrapper instanceof this ? castWrapper : isQueryBoundWitness(obj) ? new _QueryBoundWitnessWrapper(
205
+ obj,
206
+ payloads
207
+ ) : void 0;
208
+ if (result === void 0) {
209
+ throw new Error("Unable to parse. Failed isQueryBoundWitness.");
210
+ }
211
+ return result;
212
+ }
213
+ }
214
+ throw new Error(`Unable to parse [${typeof obj}]`);
215
+ }
216
+ static tryParseQuery(obj) {
217
+ if (obj === void 0) return void 0;
218
+ try {
219
+ return this.parseQuery(obj);
220
+ } catch {
221
+ return void 0;
222
+ }
223
+ }
224
+ async getPayloadsWithoutQuery() {
225
+ if (!this._payloadsWithoutQuery) {
226
+ const payloadsWithoutQuery = await PayloadBuilder2.filterExclude(this.payloads, asHash2(this.payload.query, true));
227
+ this._payloadsWithoutQuery = payloadsWithoutQuery.map((payload) => PayloadWrapper2.wrap(payload)).filter(exists);
228
+ }
229
+ return this._payloadsWithoutQuery;
230
+ }
231
+ async getQuery() {
232
+ const payloadMap = await this.payloadsDataHashMap();
233
+ const queryHash = String(asHash2(this.boundwitness.query, true));
234
+ this._query = this._query ?? payloadMap[queryHash];
235
+ return assertEx2(this._query, () => `Missing Query [${JSON.stringify(this.boundwitness)}]`);
236
+ }
237
+ };
238
+
239
+ // src/SchemaType.ts
240
+ import { HashRegEx, HexRegExMinMax } from "@ariestools/sdk";
241
+ import { XyoAddressRegEx } from "@xyo-network/address";
242
+ import { SchemaRegEx } from "@xyo-network/payload-model";
243
+ import { payloadJsonSchema } from "@xyo-network/payload-wrapper";
244
+ var SignatureRegEx = HexRegExMinMax(64, 5261);
245
+ var boundWitnessProperties = {
246
+ ...payloadJsonSchema.properties,
247
+ addresses: { items: { type: "string", pattern: XyoAddressRegEx.source }, type: "array" },
248
+ payload_hashes: { items: { type: "string", pattern: HashRegEx.source }, type: "array" },
249
+ payload_schemas: { items: { type: "string", pattern: SchemaRegEx.source }, type: "array" },
250
+ previous_hashes: {
251
+ items: {
252
+ type: "string",
253
+ pattern: HashRegEx.source,
254
+ nullable: true
255
+ },
256
+ type: "array"
257
+ },
258
+ root: { type: "string", pattern: HashRegEx.source },
259
+ $destination: { items: { type: "string", pattern: HashRegEx.source }, type: "array" },
260
+ $sourceQuery: { type: "string", pattern: HashRegEx.source },
261
+ $sources: { items: { type: "string", pattern: HashRegEx.source }, type: "array" },
262
+ $signatures: { items: { type: "string", pattern: SignatureRegEx.source }, type: "array" }
263
+ };
264
+ var boundWitnessJsonSchema = {
265
+ ...payloadJsonSchema,
266
+ $id: "https://schemas.xyo.network/2.0/boundwitness",
267
+ additionalProperties: false,
268
+ properties: boundWitnessProperties,
269
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
270
+ required: [...payloadJsonSchema.required, "addresses", "payload_hashes", "payload_schemas", "previous_hashes"],
271
+ type: "object"
272
+ };
273
+ export {
274
+ BoundWitnessWrapper,
275
+ QueryBoundWitnessWrapper,
276
+ SignatureRegEx,
277
+ boundWitnessJsonSchema,
278
+ boundWitnessProperties,
279
+ isBoundWitnessWrapper
280
+ };
3
281
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["/**\n * @deprecated Use `@xyo-network/sdk-protocol/boundwitness-wrapper` instead.\n * `@xyo-network/boundwitness-wrapper` is a backward-compatibility re-export stub.\n */\nexport * from '@xyo-network/sdk-protocol/boundwitness-wrapper'\n"],
5
- "mappings": ";AAIA,cAAc;",
6
- "names": []
3
+ "sources": ["../../src/BoundWitnessWrapper.ts", "../../src/QueryBoundWitnessWrapper.ts", "../../src/SchemaType.ts"],
4
+ "sourcesContent": ["import {\n asHash, assertEx, type Hash,\n isNumber, isObject,\n} from '@ariestools/sdk'\nimport type { XyoAddress } from '@xyo-network/address'\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 private _payloadDataMap: Record<Hash, TPayload> | undefined\n private _payloadMap: Record<Hash, TPayload> | undefined\n\n boundwitness: TBoundWitness\n moduleErrors?: Payload[]\n payloads: TPayload[] = []\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 static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof this ? (value as BoundWitnessWrapper<T>) : undefined\n }\n\n static async load(address: XyoAddress) {\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 ? this.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\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 const wrapper = new BoundWitnessWrapper(hydratedObj, payloads ?? [])\n return wrapper\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 this) {\n return obj as BoundWitnessWrapper<T, P>\n }\n return obj instanceof PayloadWrapper && obj.schema() === BoundWitnessSchema ? this.parse(obj.payload, payloads) : this.parse(obj, payloads)\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 = this.parse<T, Payload>(payload)\n const dataHash = String(await bw.dataHash())\n result[dataHash] = bw\n }),\n )\n return result\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 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 = String(asHash(this.payloadHashes[innerBoundwitnessIndex], true))\n const allHashMap = await PayloadBuilder.toAllHashMap(this.payloads) as Record<string, Payload>\n const innerBoundwitnessPayload = asBoundWitness(\n allHashMap[innerBoundwitnessHash],\n ) as TBoundWitness | undefined\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined\n = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(innerBoundwitnessPayload, await PayloadBuilder.filterExclude(this.payloads, innerBoundwitnessHash as Hash))\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) => {\n const hashKey = String(asHash(hash, true))\n return !Object.hasOwn(payloadMap, hashKey)\n })\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() as Record<string, TPayload>\n return hashes.map((hash) => {\n const hashKey = String(hash)\n return assertEx(map[hashKey], () => 'Hash not found')\n })\n }\n\n async payloadsByHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsHashMap() as Record<string, TPayload>\n return hashes.map((hash) => {\n const hashKey = String(hash)\n return assertEx(map[hashKey], () => 'Hash not found')\n })\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: XyoAddress) {\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 const validator = new BoundWitnessValidator(this.boundwitness)\n return await validator.validate()\n }\n}\n", "import {\n asHash, assertEx, exists, type Promisable,\n} from '@ariestools/sdk'\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 this\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 if (!this._payloadsWithoutQuery) {\n const payloadsWithoutQuery = await PayloadBuilder.filterExclude(this.payloads, asHash(this.payload.query, true))\n this._payloadsWithoutQuery = payloadsWithoutQuery\n .map(payload => PayloadWrapper.wrap(payload))\n .filter(exists)\n }\n return this._payloadsWithoutQuery\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.payloadsDataHashMap() as Record<string, Payload>\n const queryHash = String(asHash(this.boundwitness.query, true))\n this._query = this._query ?? (payloadMap[queryHash] as T | undefined)\n return assertEx(this._query, () => `Missing Query [${JSON.stringify(this.boundwitness)}]`)\n }\n}\n", "import { HashRegEx, HexRegExMinMax } from '@ariestools/sdk'\nimport { XyoAddressRegEx } from '@xyo-network/address'\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
+ "names": ["asHash", "assertEx", "PayloadBuilder", "PayloadWrapper", "assertEx", "PayloadBuilder", "asHash", "PayloadWrapper"]
7
7
  }
package/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@xyo-network/boundwitness-wrapper",
3
- "version": "7.0.12",
4
- "description": "DEPRECATED - use @xyo-network/sdk-protocol/boundwitness-wrapper. Backward-compatibility re-export stub for @xyo-network/boundwitness-wrapper.",
5
- "deprecated": "Use @xyo-network/sdk-protocol/boundwitness-wrapper instead. @xyo-network/boundwitness-wrapper is a backward-compatibility re-export stub and will not receive further updates.",
3
+ "version": "7.0.13",
4
+ "description": "Primary SDK for using XYO Protocol 2.0",
6
5
  "homepage": "https://xyo.network",
7
6
  "bugs": {
8
7
  "url": "git+https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues",
@@ -35,34 +34,57 @@
35
34
  "README.md"
36
35
  ],
37
36
  "dependencies": {
38
- "@xyo-network/sdk-protocol": "~7.0.12"
37
+ "@xyo-network/boundwitness-model": "~7.0.13",
38
+ "@xyo-network/address": "~7.0.13",
39
+ "@xyo-network/boundwitness-validator": "~7.0.13",
40
+ "@xyo-network/payload": "~7.0.13",
41
+ "@xyo-network/payload-model": "~7.0.13",
42
+ "@xyo-network/payload-wrapper": "~7.0.13",
43
+ "@xyo-network/payload-builder": "~7.0.13"
39
44
  },
40
45
  "devDependencies": {
41
- "@xylabs/toolchain": "~8.5.15",
42
- "@xylabs/tsconfig": "~8.5.15",
43
- "browserslist": "4.28.4",
44
- "eslint": "^10.6.0",
45
- "eslint-import-resolver-typescript": "^4.4.5",
46
- "typescript": "~6.0.3"
46
+ "@ariestools/sdk": "~7.0.8",
47
+ "@bitauth/libauth": "~3.0.0",
48
+ "@opentelemetry/api": "~1.9.1",
49
+ "@opentelemetry/sdk-trace-base": "~2.9.0",
50
+ "@scure/base": "~2.2.0",
51
+ "@xylabs/threads": "~7.0.8",
52
+ "@xylabs/toolchain": "~8.6.2",
53
+ "@xylabs/tsconfig": "~8.6.2",
54
+ "@xylabs/vitest-extended": "~7.0.8",
55
+ "ajv": "~8.20.0",
56
+ "async-mutex": "~0.5.0",
57
+ "browserslist": "~4.28.4",
58
+ "debug": "~4.4.3",
59
+ "eslint": "~10.6.0",
60
+ "eslint-import-resolver-typescript": "~4.4.5",
61
+ "ethers": "~6.17.0",
62
+ "hash-wasm": "~4.12.0",
63
+ "observable-fns": "~0.6.1",
64
+ "typescript": "~6.0.3",
65
+ "vite": "~8.1.3",
66
+ "vitest": "~4.1.9",
67
+ "zod": "~4.4.3"
47
68
  },
48
69
  "peerDependencies": {
49
- "@ariestools/sdk": "^7.0.4",
50
- "@bitauth/libauth": "~3.0",
51
- "@noble/post-quantum": "~0.6.1",
52
- "@opentelemetry/api": "^1.9",
53
- "@opentelemetry/sdk-trace-base": "^2.7",
54
- "@scure/base": "~2.2",
55
- "@scure/bip39": "~2.2",
56
- "@xylabs/geo": "^7.0",
57
- "@xylabs/threads": "^7.0",
58
- "ajv": "^8.20",
59
- "async-mutex": "^0.5",
60
- "debug": "^4.4",
61
- "ethers": "^6.16",
62
- "hash-wasm": "~4.12",
63
- "idb": "^8.0",
64
- "observable-fns": "^0.6",
65
- "zod": "^4.4"
70
+ "@ariestools/sdk": "^7.0.8",
71
+ "@bitauth/libauth": "^3.0.0",
72
+ "@opentelemetry/api": "^1.9.1",
73
+ "@opentelemetry/sdk-trace-base": "^2.9.0",
74
+ "@scure/base": "^2.2.0",
75
+ "@xylabs/threads": "^7.0.8",
76
+ "ajv": "^8.20.0",
77
+ "async-mutex": "^0.5.0",
78
+ "debug": "^4.4.3",
79
+ "ethers": "^6.17.0",
80
+ "hash-wasm": "^4.12.0",
81
+ "observable-fns": "^0.6.1",
82
+ "zod": "^4.4.3"
83
+ },
84
+ "peerDependenciesMeta": {
85
+ "ajv": {
86
+ "optional": true
87
+ }
66
88
  },
67
89
  "engines": {
68
90
  "node": "^24"