@xyo-network/boundwitness-builder 2.74.5 → 2.75.1

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.
Files changed (158) hide show
  1. package/dist/browser/Builder.cjs +161 -0
  2. package/dist/browser/Builder.cjs.map +1 -0
  3. package/dist/browser/Builder.d.cts.map +1 -0
  4. package/dist/browser/Builder.d.mts.map +1 -0
  5. package/dist/browser/Builder.d.ts +41 -0
  6. package/dist/browser/Builder.d.ts.map +1 -0
  7. package/dist/browser/Builder.js +139 -0
  8. package/dist/browser/Builder.js.map +1 -0
  9. package/dist/browser/Query/QueryBoundWitness.cjs +30 -0
  10. package/dist/browser/Query/QueryBoundWitness.cjs.map +1 -0
  11. package/dist/browser/Query/QueryBoundWitness.d.cts.map +1 -0
  12. package/dist/browser/Query/QueryBoundWitness.d.mts.map +1 -0
  13. package/dist/browser/Query/QueryBoundWitness.d.ts +17 -0
  14. package/dist/browser/Query/QueryBoundWitness.d.ts.map +1 -0
  15. package/dist/browser/Query/QueryBoundWitness.js +8 -0
  16. package/dist/browser/Query/QueryBoundWitness.js.map +1 -0
  17. package/dist/browser/Query/QueryBoundWitnessBuilder.cjs +192 -0
  18. package/dist/browser/Query/QueryBoundWitnessBuilder.cjs.map +1 -0
  19. package/dist/browser/Query/QueryBoundWitnessBuilder.d.cts.map +1 -0
  20. package/dist/browser/Query/QueryBoundWitnessBuilder.d.mts.map +1 -0
  21. package/dist/browser/Query/QueryBoundWitnessBuilder.d.ts +11 -0
  22. package/dist/browser/Query/QueryBoundWitnessBuilder.d.ts.map +1 -0
  23. package/dist/browser/Query/QueryBoundWitnessBuilder.js +29 -0
  24. package/dist/browser/Query/QueryBoundWitnessBuilder.js.map +1 -0
  25. package/dist/browser/Query/QueryBoundWitnessValidator.cjs +76 -0
  26. package/dist/browser/Query/QueryBoundWitnessValidator.cjs.map +1 -0
  27. package/dist/browser/Query/QueryBoundWitnessValidator.d.cts.map +1 -0
  28. package/dist/browser/Query/QueryBoundWitnessValidator.d.mts.map +1 -0
  29. package/dist/browser/Query/QueryBoundWitnessValidator.d.ts +11 -0
  30. package/dist/browser/Query/QueryBoundWitnessValidator.d.ts.map +1 -0
  31. package/dist/browser/Query/QueryBoundWitnessValidator.js +49 -0
  32. package/dist/browser/Query/QueryBoundWitnessValidator.js.map +1 -0
  33. package/dist/browser/Query/QueryBoundWitnessWrapper.cjs +127 -0
  34. package/dist/browser/Query/QueryBoundWitnessWrapper.cjs.map +1 -0
  35. package/dist/browser/Query/QueryBoundWitnessWrapper.d.cts.map +1 -0
  36. package/dist/browser/Query/QueryBoundWitnessWrapper.d.mts.map +1 -0
  37. package/dist/browser/Query/QueryBoundWitnessWrapper.d.ts +18 -0
  38. package/dist/browser/Query/QueryBoundWitnessWrapper.d.ts.map +1 -0
  39. package/dist/browser/Query/QueryBoundWitnessWrapper.js +52 -0
  40. package/dist/browser/Query/QueryBoundWitnessWrapper.js.map +1 -0
  41. package/dist/browser/Query/index.cjs +294 -0
  42. package/dist/browser/Query/index.cjs.map +1 -0
  43. package/dist/browser/Query/index.d.cts.map +1 -0
  44. package/dist/browser/Query/index.d.mts.map +1 -0
  45. package/dist/browser/Query/index.d.ts +5 -0
  46. package/dist/browser/Query/index.d.ts.map +1 -0
  47. package/dist/browser/Query/index.js +5 -0
  48. package/dist/browser/Query/index.js.map +1 -0
  49. package/dist/{index.js → browser/index.cjs} +1 -10
  50. package/dist/browser/index.cjs.map +1 -0
  51. package/dist/browser/index.d.cts.map +1 -0
  52. package/dist/browser/index.d.mts.map +1 -0
  53. package/dist/browser/index.d.ts +3 -0
  54. package/dist/browser/index.d.ts.map +1 -0
  55. package/dist/browser/index.js +3 -0
  56. package/dist/browser/index.js.map +1 -0
  57. package/dist/docs.json +478 -478
  58. package/dist/node/Builder.d.cts +41 -0
  59. package/dist/node/Builder.d.cts.map +1 -0
  60. package/dist/node/Builder.d.mts +41 -0
  61. package/dist/node/Builder.d.mts.map +1 -0
  62. package/dist/node/Builder.d.ts +41 -0
  63. package/dist/node/Builder.d.ts.map +1 -0
  64. package/dist/node/Builder.js +169 -0
  65. package/dist/node/Builder.js.map +1 -0
  66. package/dist/node/Builder.mjs +144 -0
  67. package/dist/node/Builder.mjs.map +1 -0
  68. package/dist/node/Query/QueryBoundWitness.d.cts +17 -0
  69. package/dist/node/Query/QueryBoundWitness.d.cts.map +1 -0
  70. package/dist/node/Query/QueryBoundWitness.d.mts +17 -0
  71. package/dist/node/Query/QueryBoundWitness.d.mts.map +1 -0
  72. package/dist/node/Query/QueryBoundWitness.d.ts +17 -0
  73. package/dist/node/Query/QueryBoundWitness.d.ts.map +1 -0
  74. package/dist/node/Query/QueryBoundWitness.js +35 -0
  75. package/dist/node/Query/QueryBoundWitness.js.map +1 -0
  76. package/dist/node/Query/QueryBoundWitness.mjs +9 -0
  77. package/dist/node/Query/QueryBoundWitness.mjs.map +1 -0
  78. package/dist/node/Query/QueryBoundWitnessBuilder.d.cts +11 -0
  79. package/dist/node/Query/QueryBoundWitnessBuilder.d.cts.map +1 -0
  80. package/dist/node/Query/QueryBoundWitnessBuilder.d.mts +11 -0
  81. package/dist/node/Query/QueryBoundWitnessBuilder.d.mts.map +1 -0
  82. package/dist/node/Query/QueryBoundWitnessBuilder.d.ts +11 -0
  83. package/dist/node/Query/QueryBoundWitnessBuilder.d.ts.map +1 -0
  84. package/dist/node/Query/QueryBoundWitnessBuilder.js +201 -0
  85. package/dist/node/Query/QueryBoundWitnessBuilder.js.map +1 -0
  86. package/dist/node/Query/QueryBoundWitnessBuilder.mjs +176 -0
  87. package/dist/node/Query/QueryBoundWitnessBuilder.mjs.map +1 -0
  88. package/dist/node/Query/QueryBoundWitnessValidator.d.cts +11 -0
  89. package/dist/node/Query/QueryBoundWitnessValidator.d.cts.map +1 -0
  90. package/dist/node/Query/QueryBoundWitnessValidator.d.mts +11 -0
  91. package/dist/node/Query/QueryBoundWitnessValidator.d.mts.map +1 -0
  92. package/dist/node/Query/QueryBoundWitnessValidator.d.ts +11 -0
  93. package/dist/node/Query/QueryBoundWitnessValidator.d.ts.map +1 -0
  94. package/dist/node/Query/QueryBoundWitnessValidator.js +80 -0
  95. package/dist/node/Query/QueryBoundWitnessValidator.js.map +1 -0
  96. package/dist/node/Query/QueryBoundWitnessValidator.mjs +55 -0
  97. package/dist/node/Query/QueryBoundWitnessValidator.mjs.map +1 -0
  98. package/dist/node/Query/QueryBoundWitnessWrapper.d.cts +18 -0
  99. package/dist/node/Query/QueryBoundWitnessWrapper.d.cts.map +1 -0
  100. package/dist/node/Query/QueryBoundWitnessWrapper.d.mts +18 -0
  101. package/dist/node/Query/QueryBoundWitnessWrapper.d.mts.map +1 -0
  102. package/dist/node/Query/QueryBoundWitnessWrapper.d.ts +18 -0
  103. package/dist/node/Query/QueryBoundWitnessWrapper.d.ts.map +1 -0
  104. package/dist/node/Query/QueryBoundWitnessWrapper.js +131 -0
  105. package/dist/node/Query/QueryBoundWitnessWrapper.js.map +1 -0
  106. package/dist/node/Query/QueryBoundWitnessWrapper.mjs +106 -0
  107. package/dist/node/Query/QueryBoundWitnessWrapper.mjs.map +1 -0
  108. package/dist/node/Query/index.d.cts +5 -0
  109. package/dist/node/Query/index.d.cts.map +1 -0
  110. package/dist/node/Query/index.d.mts +5 -0
  111. package/dist/node/Query/index.d.mts.map +1 -0
  112. package/dist/node/Query/index.d.ts +5 -0
  113. package/dist/node/Query/index.d.ts.map +1 -0
  114. package/dist/node/Query/index.js +307 -0
  115. package/dist/node/Query/index.js.map +1 -0
  116. package/dist/node/Query/index.mjs +276 -0
  117. package/dist/node/Query/index.mjs.map +1 -0
  118. package/dist/node/index.d.cts +3 -0
  119. package/dist/node/index.d.cts.map +1 -0
  120. package/dist/node/index.d.mts +3 -0
  121. package/dist/node/index.d.mts.map +1 -0
  122. package/dist/node/index.d.ts +3 -0
  123. package/dist/node/index.d.ts.map +1 -0
  124. package/dist/node/index.js +307 -0
  125. package/dist/node/index.js.map +1 -0
  126. package/dist/{index.mjs → node/index.mjs} +16 -11
  127. package/dist/node/index.mjs.map +1 -0
  128. package/package.json +37 -34
  129. package/dist/Builder.d.mts.map +0 -1
  130. package/dist/Builder.d.ts.map +0 -1
  131. package/dist/Query/QueryBoundWitness.d.mts.map +0 -1
  132. package/dist/Query/QueryBoundWitness.d.ts.map +0 -1
  133. package/dist/Query/QueryBoundWitnessBuilder.d.mts.map +0 -1
  134. package/dist/Query/QueryBoundWitnessBuilder.d.ts.map +0 -1
  135. package/dist/Query/QueryBoundWitnessValidator.d.mts.map +0 -1
  136. package/dist/Query/QueryBoundWitnessValidator.d.ts.map +0 -1
  137. package/dist/Query/QueryBoundWitnessWrapper.d.mts.map +0 -1
  138. package/dist/Query/QueryBoundWitnessWrapper.d.ts.map +0 -1
  139. package/dist/Query/index.d.mts.map +0 -1
  140. package/dist/Query/index.d.ts.map +0 -1
  141. package/dist/index.d.mts.map +0 -1
  142. package/dist/index.d.ts.map +0 -1
  143. package/dist/index.js.map +0 -1
  144. package/dist/index.mjs.map +0 -1
  145. /package/dist/{Builder.d.mts → browser/Builder.d.cts} +0 -0
  146. /package/dist/{Builder.d.ts → browser/Builder.d.mts} +0 -0
  147. /package/dist/{Query/QueryBoundWitness.d.mts → browser/Query/QueryBoundWitness.d.cts} +0 -0
  148. /package/dist/{Query/QueryBoundWitness.d.ts → browser/Query/QueryBoundWitness.d.mts} +0 -0
  149. /package/dist/{Query/QueryBoundWitnessBuilder.d.mts → browser/Query/QueryBoundWitnessBuilder.d.cts} +0 -0
  150. /package/dist/{Query/QueryBoundWitnessBuilder.d.ts → browser/Query/QueryBoundWitnessBuilder.d.mts} +0 -0
  151. /package/dist/{Query/QueryBoundWitnessValidator.d.mts → browser/Query/QueryBoundWitnessValidator.d.cts} +0 -0
  152. /package/dist/{Query/QueryBoundWitnessValidator.d.ts → browser/Query/QueryBoundWitnessValidator.d.mts} +0 -0
  153. /package/dist/{Query/QueryBoundWitnessWrapper.d.mts → browser/Query/QueryBoundWitnessWrapper.d.cts} +0 -0
  154. /package/dist/{Query/QueryBoundWitnessWrapper.d.ts → browser/Query/QueryBoundWitnessWrapper.d.mts} +0 -0
  155. /package/dist/{Query/index.d.mts → browser/Query/index.d.cts} +0 -0
  156. /package/dist/{Query/index.d.ts → browser/Query/index.d.mts} +0 -0
  157. /package/dist/{index.d.mts → browser/index.d.cts} +0 -0
  158. /package/dist/{index.d.ts → browser/index.d.mts} +0 -0
@@ -0,0 +1,3 @@
1
+ export * from './Builder';
2
+ export * from './Query';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './Builder';
2
+ export * from './Query';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './Builder';
2
+ export * from './Query';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
@@ -0,0 +1,307 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ BoundWitnessBuilder: () => BoundWitnessBuilder,
24
+ QueryBoundWitnessBuilder: () => QueryBoundWitnessBuilder,
25
+ QueryBoundWitnessSchema: () => QueryBoundWitnessSchema,
26
+ QueryBoundWitnessValidator: () => QueryBoundWitnessValidator,
27
+ QueryBoundWitnessWrapper: () => QueryBoundWitnessWrapper,
28
+ isQueryBoundWitness: () => isQueryBoundWitness
29
+ });
30
+ module.exports = __toCommonJS(src_exports);
31
+
32
+ // src/Builder.ts
33
+ var import_assert = require("@xylabs/assert");
34
+ var import_buffer = require("@xylabs/buffer");
35
+ var import_boundwitness_model = require("@xyo-network/boundwitness-model");
36
+ var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
37
+ var import_core = require("@xyo-network/core");
38
+ var import_payload = require("@xyo-network/payload");
39
+ var import_async_mutex = require("async-mutex");
40
+ var BoundWitnessBuilder = class _BoundWitnessBuilder {
41
+ constructor(config = { inlinePayloads: false }, logger) {
42
+ this.config = config;
43
+ this.logger = logger;
44
+ }
45
+ static _buildMutex = new import_async_mutex.Mutex();
46
+ _accounts = [];
47
+ _errorHashes;
48
+ _errors = [];
49
+ _payloadHashes;
50
+ _payloadSchemas;
51
+ _payloads = [];
52
+ _timestamp = Date.now();
53
+ get _payload_schemas() {
54
+ return this._payloadSchemas ?? this._payloads.map((payload) => {
55
+ return (0, import_assert.assertEx)(payload.schema, () => this.missingSchemaMessage(payload));
56
+ });
57
+ }
58
+ async build(meta = false) {
59
+ return await _BoundWitnessBuilder._buildMutex.runExclusive(async () => {
60
+ var _a;
61
+ const hashableFields = await this.hashableFields();
62
+ const _hash = await import_boundwitness_wrapper.BoundWitnessWrapper.hashAsync(hashableFields);
63
+ const previousHashes = this._accounts.map((account) => account.previousHash);
64
+ const ret = {
65
+ ...hashableFields,
66
+ _signatures: await this.signatures(_hash, previousHashes)
67
+ };
68
+ if (meta ?? ((_a = this.config) == null ? void 0 : _a.meta)) {
69
+ const bwWithMeta = ret;
70
+ bwWithMeta._client = "js";
71
+ bwWithMeta._hash = _hash;
72
+ bwWithMeta._timestamp = this._timestamp;
73
+ }
74
+ if (this.config.inlinePayloads) {
75
+ const anyRet = ret;
76
+ anyRet._payloads = this.inlinePayloads();
77
+ }
78
+ return [ret, this._payloads, this._errors];
79
+ });
80
+ }
81
+ error(payload) {
82
+ const unwrappedPayload = import_payload.PayloadWrapper.unwrap(payload);
83
+ (0, import_assert.assertEx)(this._errorHashes === void 0, "Can not set errors when hashes already set");
84
+ if (unwrappedPayload) {
85
+ this._errors.push((0, import_assert.assertEx)((0, import_core.sortFields)(unwrappedPayload)));
86
+ }
87
+ return this;
88
+ }
89
+ errors(errors) {
90
+ errors == null ? void 0 : errors.forEach((error) => {
91
+ if (error !== null) {
92
+ this.error(error);
93
+ }
94
+ });
95
+ return this;
96
+ }
97
+ async hashableFields() {
98
+ var _a, _b;
99
+ const addresses = this._accounts.map((account) => account.address);
100
+ const previous_hashes = this._accounts.map((account) => account.previousHash ?? null);
101
+ const payload_hashes = (0, import_assert.assertEx)(await this.getPayloadHashes(), "Missing payload_hashes");
102
+ const payload_schemas = (0, import_assert.assertEx)(this._payload_schemas, "Missing payload_schemas");
103
+ const result = {
104
+ addresses: (0, import_assert.assertEx)(addresses, "Missing addresses"),
105
+ payload_hashes,
106
+ payload_schemas,
107
+ previous_hashes,
108
+ schema: import_boundwitness_model.BoundWitnessSchema
109
+ };
110
+ (0, import_assert.assertEx)(((_a = result.payload_hashes) == null ? void 0 : _a.length) === ((_b = result.payload_schemas) == null ? void 0 : _b.length), "Payload hash/schema mismatch");
111
+ (0, import_assert.assertEx)(!result.payload_hashes.reduce((inValid, hash) => inValid || !hash, false), "nulls found in hashes");
112
+ (0, import_assert.assertEx)(!result.payload_schemas.reduce((inValid, schema) => inValid || !schema, false), "nulls found in schemas");
113
+ if (this.config.timestamp ?? true) {
114
+ result.timestamp = this._timestamp;
115
+ }
116
+ return result;
117
+ }
118
+ hashes(hashes, schema) {
119
+ (0, import_assert.assertEx)(this.payloads.length === 0, "Can not set hashes when payloads already set");
120
+ this._payloadHashes = hashes;
121
+ this._payloadSchemas = schema;
122
+ return this;
123
+ }
124
+ payload(payload) {
125
+ const unwrappedPayload = import_payload.PayloadWrapper.unwrap(payload);
126
+ (0, import_assert.assertEx)(this._payloadHashes === void 0, "Can not set payloads when hashes already set");
127
+ if (unwrappedPayload) {
128
+ this._payloads.push((0, import_assert.assertEx)((0, import_core.sortFields)(unwrappedPayload)));
129
+ }
130
+ return this;
131
+ }
132
+ payloads(payloads) {
133
+ payloads == null ? void 0 : payloads.forEach((payload) => {
134
+ if (payload !== null) {
135
+ this.payload(payload);
136
+ }
137
+ });
138
+ return this;
139
+ }
140
+ witness(account) {
141
+ var _a;
142
+ (_a = this._accounts) == null ? void 0 : _a.push(account);
143
+ return this;
144
+ }
145
+ witnesses(accounts) {
146
+ var _a;
147
+ (_a = this._accounts) == null ? void 0 : _a.push(...accounts);
148
+ return this;
149
+ }
150
+ async signatures(_hash, previousHashes) {
151
+ const hash = import_buffer.Buffer.from(_hash, "hex");
152
+ return await Promise.all(
153
+ this._accounts.map(async (account, index) => import_buffer.Buffer.from(await account.sign(hash, previousHashes[index])).toString("hex"))
154
+ );
155
+ }
156
+ async getPayloadHashes() {
157
+ return this._payloadHashes ?? await Promise.all(this._payloads.map((payload) => import_core.PayloadHasher.hashAsync(payload)));
158
+ }
159
+ inlinePayloads() {
160
+ return this._payloads.map((payload, index) => {
161
+ return {
162
+ ...payload,
163
+ schema: this._payload_schemas[index]
164
+ };
165
+ });
166
+ }
167
+ missingSchemaMessage(payload) {
168
+ return `Builder: Missing Schema
169
+ ${JSON.stringify(payload, null, 2)}`;
170
+ }
171
+ };
172
+
173
+ // src/Query/QueryBoundWitness.ts
174
+ var import_boundwitness_model2 = require("@xyo-network/boundwitness-model");
175
+ var QueryBoundWitnessSchema = import_boundwitness_model2.BoundWitnessSchema;
176
+ var isQueryBoundWitness = (x) => (0, import_boundwitness_model2.isBoundWitness)(x) && (x == null ? void 0 : x.query) !== void 0;
177
+
178
+ // src/Query/QueryBoundWitnessBuilder.ts
179
+ var import_assert2 = require("@xylabs/assert");
180
+ var import_payload_wrapper = require("@xyo-network/payload-wrapper");
181
+ var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
182
+ _query;
183
+ _resultSet;
184
+ async hashableFields() {
185
+ var _a;
186
+ return {
187
+ ...await super.hashableFields(),
188
+ query: (0, import_assert2.assertEx)(await ((_a = this._query) == null ? void 0 : _a.hashAsync()), "No Query Specified"),
189
+ schema: QueryBoundWitnessSchema
190
+ };
191
+ }
192
+ query(query) {
193
+ this._query = import_payload_wrapper.PayloadWrapper.wrap(query);
194
+ this.payload(this._query.payload());
195
+ return this;
196
+ }
197
+ resultSet(payloadSet) {
198
+ this._resultSet = import_payload_wrapper.PayloadWrapper.wrap(payloadSet);
199
+ this.payload(this._resultSet.payload());
200
+ return this;
201
+ }
202
+ };
203
+
204
+ // src/Query/QueryBoundWitnessValidator.ts
205
+ var import_assert3 = require("@xylabs/assert");
206
+ var import_boundwitness_validator = require("@xyo-network/boundwitness-validator");
207
+ var import_boundwitness_wrapper2 = require("@xyo-network/boundwitness-wrapper");
208
+ var import_error = require("@xyo-network/error");
209
+ var import_payload_wrapper2 = require("@xyo-network/payload-wrapper");
210
+ var QueryBoundWitnessValidator = class _QueryBoundWitnessValidator extends import_boundwitness_validator.BoundWitnessValidator {
211
+ _query;
212
+ get expectedSchema() {
213
+ return QueryBoundWitnessSchema;
214
+ }
215
+ static isQueryBoundWitnessValidator(obj) {
216
+ return (obj == null ? void 0 : obj.constructor) === _QueryBoundWitnessValidator;
217
+ }
218
+ async validate() {
219
+ return [
220
+ ...await super.validate()
221
+ // ...this.validateResultSet()
222
+ ];
223
+ }
224
+ async validateResultSet() {
225
+ const errors = [];
226
+ try {
227
+ const resultSetHash = (0, import_assert3.assertEx)(this.obj.resultSet, "Missing ResultSet");
228
+ const wrapper = import_boundwitness_wrapper2.BoundWitnessWrapper.parse(this.obj);
229
+ const resultSet = import_payload_wrapper2.PayloadWrapper.wrap((await wrapper.payloadMap())[resultSetHash]);
230
+ const required = resultSet == null ? void 0 : resultSet.payload().required;
231
+ if (required) {
232
+ Object.entries(required).forEach(([key, value]) => {
233
+ const found = wrapper.payloadSchemas.reduce((count, schema) => {
234
+ return count + (schema === key ? 1 : 0);
235
+ }, 0);
236
+ if (found !== value) {
237
+ errors.push(Error(`validateResultSet: Missing Schema [${key}:${found}:${value}]`));
238
+ }
239
+ });
240
+ }
241
+ } catch (ex) {
242
+ (0, import_error.handleError)(ex, (error) => {
243
+ errors.push(error);
244
+ });
245
+ }
246
+ return errors;
247
+ }
248
+ };
249
+
250
+ // src/Query/QueryBoundWitnessWrapper.ts
251
+ var import_assert4 = require("@xylabs/assert");
252
+ var import_lodash = require("@xylabs/lodash");
253
+ var import_boundwitness_wrapper3 = require("@xyo-network/boundwitness-wrapper");
254
+ var import_core2 = require("@xyo-network/core");
255
+ var import_payload_wrapper3 = require("@xyo-network/payload-wrapper");
256
+ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends import_boundwitness_wrapper3.BoundWitnessWrapper {
257
+ _payloadsWithoutQuery;
258
+ _query;
259
+ _resultSet;
260
+ isQueryBoundWitnessWrapper = true;
261
+ static parseQuery(obj, payloads) {
262
+ (0, import_assert4.assertEx)(!Array.isArray(obj), "Array can not be converted to QueryBoundWitnessWrapper");
263
+ switch (typeof obj) {
264
+ case "object": {
265
+ const castWrapper = obj;
266
+ const wrapper = (castWrapper == null ? void 0 : castWrapper.isQueryBoundWitnessWrapper) ? castWrapper : new _QueryBoundWitnessWrapper(obj, payloads);
267
+ return wrapper;
268
+ }
269
+ }
270
+ throw Error(`Unable to parse [${typeof obj}]`);
271
+ }
272
+ getErrors() {
273
+ return new QueryBoundWitnessValidator(this.boundwitness).validate();
274
+ }
275
+ async getQuery() {
276
+ const payloadMap = await this.allPayloadMap();
277
+ this._query = this._query ?? payloadMap[this.boundwitness.query];
278
+ return (0, import_assert4.assertEx)(this._query, `Missing Query [${this.boundwitness}]`);
279
+ }
280
+ async getResultSet() {
281
+ const resultSetHash = this.boundwitness.resultSet;
282
+ const payloadMap = await this.payloadMap();
283
+ return (0, import_assert4.assertEx)(
284
+ this._resultSet = this._resultSet ?? (resultSetHash ? payloadMap[resultSetHash] : void 0),
285
+ `Missing resultSet [${resultSetHash}]`
286
+ );
287
+ }
288
+ async getWrappedPayloads() {
289
+ this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? (0, import_lodash.compact)(
290
+ (await import_core2.PayloadHasher.filterExclude(
291
+ (await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()),
292
+ this.payload().query
293
+ )).map((payload) => import_payload_wrapper3.PayloadWrapper.wrap(payload))
294
+ );
295
+ return this._payloadsWithoutQuery;
296
+ }
297
+ };
298
+ // Annotate the CommonJS export names for ESM import in node:
299
+ 0 && (module.exports = {
300
+ BoundWitnessBuilder,
301
+ QueryBoundWitnessBuilder,
302
+ QueryBoundWitnessSchema,
303
+ QueryBoundWitnessValidator,
304
+ QueryBoundWitnessWrapper,
305
+ isQueryBoundWitness
306
+ });
307
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Builder.ts","../../src/Query/QueryBoundWitness.ts","../../src/Query/QueryBoundWitnessBuilder.ts","../../src/Query/QueryBoundWitnessValidator.ts","../../src/Query/QueryBoundWitnessWrapper.ts"],"sourcesContent":["export * from './Builder'\nexport * from './Query'\n","import { assertEx } from '@xylabs/assert'\nimport { Buffer } from '@xylabs/buffer'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { Data, PayloadHasher, sortFields } from '@xyo-network/core'\nimport { PayloadWrapper } from '@xyo-network/payload'\nimport { ModuleError, Payload } from '@xyo-network/payload-model'\nimport { Logger } from '@xyo-network/shared'\nimport { Mutex } from 'async-mutex'\n\nexport interface BoundWitnessBuilderConfig {\n /** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */\n readonly inlinePayloads?: boolean\n readonly meta?: boolean\n readonly timestamp?: boolean\n}\n\nexport class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness, TPayload extends Payload = Payload> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[] = []\n private _errorHashes: string[] | undefined\n private _errors: ModuleError[] = []\n private _payloadHashes: string[] | undefined\n private _payloadSchemas: string[] | undefined\n private _payloads: TPayload[] = []\n private _timestamp = Date.now()\n\n constructor(\n readonly config: BoundWitnessBuilderConfig = { inlinePayloads: false },\n protected readonly logger?: Logger,\n ) {}\n\n private get _payload_schemas(): string[] {\n return (\n this._payloadSchemas ??\n this._payloads.map((payload) => {\n return assertEx(payload.schema, () => this.missingSchemaMessage(payload))\n })\n )\n }\n\n async build(meta = false): Promise<[TBoundWitness, TPayload[], ModuleError[]]> {\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const hashableFields = await this.hashableFields()\n const _hash = await BoundWitnessWrapper.hashAsync(hashableFields)\n\n /* get all the previousHashes to verify atomic signing */\n const previousHashes = this._accounts.map((account) => account.previousHash)\n\n const ret: TBoundWitness = {\n ...hashableFields,\n _signatures: await this.signatures(_hash, previousHashes),\n }\n if (meta ?? this.config?.meta) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const bwWithMeta = ret as any\n bwWithMeta._client = 'js'\n bwWithMeta._hash = _hash\n bwWithMeta._timestamp = this._timestamp\n }\n if (this.config.inlinePayloads) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const anyRet = ret as any\n //leaving this in here to prevent breaking code (for now)\n anyRet._payloads = this.inlinePayloads()\n }\n return [ret, this._payloads, this._errors]\n })\n }\n\n error(payload?: ModuleError) {\n const unwrappedPayload = 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 errors(errors?: (ModuleError | null)[]) {\n errors?.forEach((error) => {\n if (error !== null) {\n this.error(error)\n }\n })\n return this\n }\n\n async hashableFields(): Promise<TBoundWitness> {\n const addresses = this._accounts.map((account) => account.address)\n const previous_hashes = this._accounts.map((account) => account.previousHash ?? null)\n const payload_hashes = assertEx(await this.getPayloadHashes(), 'Missing payload_hashes')\n const payload_schemas = assertEx(this._payload_schemas, 'Missing payload_schemas')\n const result: TBoundWitness = {\n addresses: assertEx(addresses, 'Missing addresses'),\n payload_hashes,\n payload_schemas,\n previous_hashes,\n schema: BoundWitnessSchema,\n } as TBoundWitness\n\n assertEx(result.payload_hashes?.length === result.payload_schemas?.length, 'Payload hash/schema mismatch')\n\n assertEx(!result.payload_hashes.reduce((inValid, hash) => inValid || !hash, false), 'nulls found in hashes')\n\n assertEx(!result.payload_schemas.reduce((inValid, schema) => inValid || !schema, false), 'nulls found in schemas')\n\n if (this.config.timestamp ?? true) {\n result.timestamp = this._timestamp\n }\n\n return result\n }\n\n hashes(hashes: string[], schema: string[]) {\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 payload(payload?: TPayload) {\n const unwrappedPayload = 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 payloads(payloads?: (TPayload | null)[]) {\n payloads?.forEach((payload) => {\n if (payload !== null) {\n this.payload(payload)\n }\n })\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: string, previousHashes: (string | Data | undefined)[]) {\n const hash = Buffer.from(_hash, 'hex')\n return await Promise.all(\n this._accounts.map(async (account, index) => Buffer.from(await account.sign(hash, previousHashes[index])).toString('hex')),\n )\n }\n\n private async getPayloadHashes(): Promise<string[]> {\n return this._payloadHashes ?? (await Promise.all(this._payloads.map((payload) => PayloadHasher.hashAsync(payload))))\n }\n\n private inlinePayloads() {\n return this._payloads.map<TPayload>((payload, index) => {\n return {\n ...payload,\n schema: this._payload_schemas[index],\n }\n })\n }\n\n private missingSchemaMessage(payload: Payload) {\n return `Builder: Missing Schema\\n${JSON.stringify(payload, null, 2)}`\n }\n}\n","import { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport type QueryBoundWitnessSchema = BoundWitnessSchema\nexport const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema\n\nexport type QueryBoundWitness = BoundWitness<{\n query: string\n resultSet?: string\n schema: BoundWitnessSchema\n}>\n\nexport const isQueryBoundWitness = (x?: Payload | null): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined\n","import { assertEx } from '@xylabs/assert'\nimport { PayloadSetPayload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { BoundWitnessBuilder } from '../Builder'\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from './QueryBoundWitness'\n\nexport class QueryBoundWitnessBuilder<\n TBoundWitness extends QueryBoundWitness = QueryBoundWitness,\n TQuery extends Query = Query,\n> extends BoundWitnessBuilder<TBoundWitness> {\n private _query: PayloadWrapper<TQuery> | undefined\n private _resultSet: PayloadWrapper<PayloadSetPayload> | undefined\n\n override async hashableFields(): Promise<TBoundWitness> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(await this._query?.hashAsync(), 'No Query Specified'),\n schema: QueryBoundWitnessSchema,\n }\n }\n\n query<T extends TQuery>(query: T) {\n this._query = PayloadWrapper.wrap(query)\n this.payload(this._query.payload())\n return this\n }\n\n resultSet<T extends PayloadSetPayload>(payloadSet: T) {\n this._resultSet = PayloadWrapper.wrap(payloadSet)\n this.payload(this._resultSet.payload())\n return this\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { handleError } from '@xyo-network/error'\nimport { PayloadSetPayload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from './QueryBoundWitness'\nexport class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {\n private _query: PayloadWrapper<T> | undefined\n\n protected override get expectedSchema(): string {\n return QueryBoundWitnessSchema\n }\n\n static isQueryBoundWitnessValidator(obj: unknown) {\n return (obj as QueryBoundWitnessValidator)?.constructor === QueryBoundWitnessValidator\n }\n\n override async validate() {\n return [\n ...(await super.validate()),\n // ...this.validateResultSet()\n ]\n }\n\n async validateResultSet() {\n const errors: Error[] = []\n try {\n const resultSetHash = assertEx(this.obj.resultSet, 'Missing ResultSet')\n const wrapper = BoundWitnessWrapper.parse(this.obj)\n const resultSet = PayloadWrapper.wrap<PayloadSetPayload>((await wrapper.payloadMap())[resultSetHash] as PayloadSetPayload)\n const required = resultSet?.payload().required\n if (required) {\n Object.entries(required).forEach(([key, value]) => {\n const found = wrapper.payloadSchemas.reduce((count, schema) => {\n return count + (schema === key ? 1 : 0)\n }, 0)\n if (found !== value) {\n errors.push(Error(`validateResultSet: Missing Schema [${key}:${found}:${value}]`))\n }\n })\n }\n } catch (ex) {\n handleError(ex, (error) => {\n errors.push(error)\n })\n }\n return errors\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { PayloadHasher } from '@xyo-network/core'\nimport { Payload, PayloadSetPayload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { QueryBoundWitness } from './QueryBoundWitness'\nimport { QueryBoundWitnessValidator } from './QueryBoundWitnessValidator'\n\nexport class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {\n private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined\n private _query: T | undefined\n private _resultSet: PayloadSetPayload | undefined\n\n private isQueryBoundWitnessWrapper = true\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 const wrapper = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new QueryBoundWitnessWrapper<T>(obj as QueryBoundWitness, payloads)\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 Error(`Unable to parse [${typeof obj}]`)\n }\n\n override getErrors() {\n return new QueryBoundWitnessValidator(this.boundwitness).validate()\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.allPayloadMap()\n this._query = this._query ?? (payloadMap[this.boundwitness.query] as T | undefined)\n return assertEx(this._query, `Missing Query [${this.boundwitness}]`)\n }\n\n async getResultSet() {\n const resultSetHash = this.boundwitness.resultSet\n const payloadMap = await this.payloadMap()\n return assertEx(\n (this._resultSet = this._resultSet ?? (resultSetHash ? (payloadMap[resultSetHash] as PayloadSetPayload | undefined) : undefined)),\n `Missing resultSet [${resultSetHash}]`,\n )\n }\n\n override async getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery =\n this._payloadsWithoutQuery ??\n compact(\n (\n await PayloadHasher.filterExclude(\n (await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()),\n this.payload().query,\n )\n ).map((payload) => PayloadWrapper.wrap(payload)),\n )\n return this._payloadsWithoutQuery\n }\n}\n"],"mappings":"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","names":["import_boundwitness_model","import_assert","import_assert","import_boundwitness_wrapper","import_payload_wrapper","import_assert","import_boundwitness_wrapper","import_core","import_payload_wrapper"]}
@@ -26,6 +26,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
26
26
  }
27
27
  async build(meta = false) {
28
28
  return await _BoundWitnessBuilder._buildMutex.runExclusive(async () => {
29
+ var _a;
29
30
  const hashableFields = await this.hashableFields();
30
31
  const _hash = await BoundWitnessWrapper.hashAsync(hashableFields);
31
32
  const previousHashes = this._accounts.map((account) => account.previousHash);
@@ -33,7 +34,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
33
34
  ...hashableFields,
34
35
  _signatures: await this.signatures(_hash, previousHashes)
35
36
  };
36
- if (meta ?? this.config?.meta) {
37
+ if (meta ?? ((_a = this.config) == null ? void 0 : _a.meta)) {
37
38
  const bwWithMeta = ret;
38
39
  bwWithMeta._client = "js";
39
40
  bwWithMeta._hash = _hash;
@@ -55,7 +56,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
55
56
  return this;
56
57
  }
57
58
  errors(errors) {
58
- errors?.forEach((error) => {
59
+ errors == null ? void 0 : errors.forEach((error) => {
59
60
  if (error !== null) {
60
61
  this.error(error);
61
62
  }
@@ -63,6 +64,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
63
64
  return this;
64
65
  }
65
66
  async hashableFields() {
67
+ var _a, _b;
66
68
  const addresses = this._accounts.map((account) => account.address);
67
69
  const previous_hashes = this._accounts.map((account) => account.previousHash ?? null);
68
70
  const payload_hashes = assertEx(await this.getPayloadHashes(), "Missing payload_hashes");
@@ -74,7 +76,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
74
76
  previous_hashes,
75
77
  schema: BoundWitnessSchema
76
78
  };
77
- assertEx(result.payload_hashes?.length === result.payload_schemas?.length, "Payload hash/schema mismatch");
79
+ assertEx(((_a = result.payload_hashes) == null ? void 0 : _a.length) === ((_b = result.payload_schemas) == null ? void 0 : _b.length), "Payload hash/schema mismatch");
78
80
  assertEx(!result.payload_hashes.reduce((inValid, hash) => inValid || !hash, false), "nulls found in hashes");
79
81
  assertEx(!result.payload_schemas.reduce((inValid, schema) => inValid || !schema, false), "nulls found in schemas");
80
82
  if (this.config.timestamp ?? true) {
@@ -97,7 +99,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
97
99
  return this;
98
100
  }
99
101
  payloads(payloads) {
100
- payloads?.forEach((payload) => {
102
+ payloads == null ? void 0 : payloads.forEach((payload) => {
101
103
  if (payload !== null) {
102
104
  this.payload(payload);
103
105
  }
@@ -105,11 +107,13 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
105
107
  return this;
106
108
  }
107
109
  witness(account) {
108
- this._accounts?.push(account);
110
+ var _a;
111
+ (_a = this._accounts) == null ? void 0 : _a.push(account);
109
112
  return this;
110
113
  }
111
114
  witnesses(accounts) {
112
- this._accounts?.push(...accounts);
115
+ var _a;
116
+ (_a = this._accounts) == null ? void 0 : _a.push(...accounts);
113
117
  return this;
114
118
  }
115
119
  async signatures(_hash, previousHashes) {
@@ -138,7 +142,7 @@ ${JSON.stringify(payload, null, 2)}`;
138
142
  // src/Query/QueryBoundWitness.ts
139
143
  import { BoundWitnessSchema as BoundWitnessSchema2, isBoundWitness } from "@xyo-network/boundwitness-model";
140
144
  var QueryBoundWitnessSchema = BoundWitnessSchema2;
141
- var isQueryBoundWitness = (x) => isBoundWitness(x) && x?.query !== void 0;
145
+ var isQueryBoundWitness = (x) => isBoundWitness(x) && (x == null ? void 0 : x.query) !== void 0;
142
146
 
143
147
  // src/Query/QueryBoundWitnessBuilder.ts
144
148
  import { assertEx as assertEx2 } from "@xylabs/assert";
@@ -147,9 +151,10 @@ var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
147
151
  _query;
148
152
  _resultSet;
149
153
  async hashableFields() {
154
+ var _a;
150
155
  return {
151
156
  ...await super.hashableFields(),
152
- query: assertEx2(await this._query?.hashAsync(), "No Query Specified"),
157
+ query: assertEx2(await ((_a = this._query) == null ? void 0 : _a.hashAsync()), "No Query Specified"),
153
158
  schema: QueryBoundWitnessSchema
154
159
  };
155
160
  }
@@ -177,7 +182,7 @@ var QueryBoundWitnessValidator = class _QueryBoundWitnessValidator extends Bound
177
182
  return QueryBoundWitnessSchema;
178
183
  }
179
184
  static isQueryBoundWitnessValidator(obj) {
180
- return obj?.constructor === _QueryBoundWitnessValidator;
185
+ return (obj == null ? void 0 : obj.constructor) === _QueryBoundWitnessValidator;
181
186
  }
182
187
  async validate() {
183
188
  return [
@@ -191,7 +196,7 @@ var QueryBoundWitnessValidator = class _QueryBoundWitnessValidator extends Bound
191
196
  const resultSetHash = assertEx3(this.obj.resultSet, "Missing ResultSet");
192
197
  const wrapper = BoundWitnessWrapper2.parse(this.obj);
193
198
  const resultSet = PayloadWrapper3.wrap((await wrapper.payloadMap())[resultSetHash]);
194
- const required = resultSet?.payload().required;
199
+ const required = resultSet == null ? void 0 : resultSet.payload().required;
195
200
  if (required) {
196
201
  Object.entries(required).forEach(([key, value]) => {
197
202
  const found = wrapper.payloadSchemas.reduce((count, schema) => {
@@ -227,7 +232,7 @@ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitn
227
232
  switch (typeof obj) {
228
233
  case "object": {
229
234
  const castWrapper = obj;
230
- const wrapper = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new _QueryBoundWitnessWrapper(obj, payloads);
235
+ const wrapper = (castWrapper == null ? void 0 : castWrapper.isQueryBoundWitnessWrapper) ? castWrapper : new _QueryBoundWitnessWrapper(obj, payloads);
231
236
  return wrapper;
232
237
  }
233
238
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/Builder.ts","../../src/Query/QueryBoundWitness.ts","../../src/Query/QueryBoundWitnessBuilder.ts","../../src/Query/QueryBoundWitnessValidator.ts","../../src/Query/QueryBoundWitnessWrapper.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Buffer } from '@xylabs/buffer'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { Data, PayloadHasher, sortFields } from '@xyo-network/core'\nimport { PayloadWrapper } from '@xyo-network/payload'\nimport { ModuleError, Payload } from '@xyo-network/payload-model'\nimport { Logger } from '@xyo-network/shared'\nimport { Mutex } from 'async-mutex'\n\nexport interface BoundWitnessBuilderConfig {\n /** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */\n readonly inlinePayloads?: boolean\n readonly meta?: boolean\n readonly timestamp?: boolean\n}\n\nexport class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness, TPayload extends Payload = Payload> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[] = []\n private _errorHashes: string[] | undefined\n private _errors: ModuleError[] = []\n private _payloadHashes: string[] | undefined\n private _payloadSchemas: string[] | undefined\n private _payloads: TPayload[] = []\n private _timestamp = Date.now()\n\n constructor(\n readonly config: BoundWitnessBuilderConfig = { inlinePayloads: false },\n protected readonly logger?: Logger,\n ) {}\n\n private get _payload_schemas(): string[] {\n return (\n this._payloadSchemas ??\n this._payloads.map((payload) => {\n return assertEx(payload.schema, () => this.missingSchemaMessage(payload))\n })\n )\n }\n\n async build(meta = false): Promise<[TBoundWitness, TPayload[], ModuleError[]]> {\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const hashableFields = await this.hashableFields()\n const _hash = await BoundWitnessWrapper.hashAsync(hashableFields)\n\n /* get all the previousHashes to verify atomic signing */\n const previousHashes = this._accounts.map((account) => account.previousHash)\n\n const ret: TBoundWitness = {\n ...hashableFields,\n _signatures: await this.signatures(_hash, previousHashes),\n }\n if (meta ?? this.config?.meta) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const bwWithMeta = ret as any\n bwWithMeta._client = 'js'\n bwWithMeta._hash = _hash\n bwWithMeta._timestamp = this._timestamp\n }\n if (this.config.inlinePayloads) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const anyRet = ret as any\n //leaving this in here to prevent breaking code (for now)\n anyRet._payloads = this.inlinePayloads()\n }\n return [ret, this._payloads, this._errors]\n })\n }\n\n error(payload?: ModuleError) {\n const unwrappedPayload = 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 errors(errors?: (ModuleError | null)[]) {\n errors?.forEach((error) => {\n if (error !== null) {\n this.error(error)\n }\n })\n return this\n }\n\n async hashableFields(): Promise<TBoundWitness> {\n const addresses = this._accounts.map((account) => account.address)\n const previous_hashes = this._accounts.map((account) => account.previousHash ?? null)\n const payload_hashes = assertEx(await this.getPayloadHashes(), 'Missing payload_hashes')\n const payload_schemas = assertEx(this._payload_schemas, 'Missing payload_schemas')\n const result: TBoundWitness = {\n addresses: assertEx(addresses, 'Missing addresses'),\n payload_hashes,\n payload_schemas,\n previous_hashes,\n schema: BoundWitnessSchema,\n } as TBoundWitness\n\n assertEx(result.payload_hashes?.length === result.payload_schemas?.length, 'Payload hash/schema mismatch')\n\n assertEx(!result.payload_hashes.reduce((inValid, hash) => inValid || !hash, false), 'nulls found in hashes')\n\n assertEx(!result.payload_schemas.reduce((inValid, schema) => inValid || !schema, false), 'nulls found in schemas')\n\n if (this.config.timestamp ?? true) {\n result.timestamp = this._timestamp\n }\n\n return result\n }\n\n hashes(hashes: string[], schema: string[]) {\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 payload(payload?: TPayload) {\n const unwrappedPayload = 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 payloads(payloads?: (TPayload | null)[]) {\n payloads?.forEach((payload) => {\n if (payload !== null) {\n this.payload(payload)\n }\n })\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: string, previousHashes: (string | Data | undefined)[]) {\n const hash = Buffer.from(_hash, 'hex')\n return await Promise.all(\n this._accounts.map(async (account, index) => Buffer.from(await account.sign(hash, previousHashes[index])).toString('hex')),\n )\n }\n\n private async getPayloadHashes(): Promise<string[]> {\n return this._payloadHashes ?? (await Promise.all(this._payloads.map((payload) => PayloadHasher.hashAsync(payload))))\n }\n\n private inlinePayloads() {\n return this._payloads.map<TPayload>((payload, index) => {\n return {\n ...payload,\n schema: this._payload_schemas[index],\n }\n })\n }\n\n private missingSchemaMessage(payload: Payload) {\n return `Builder: Missing Schema\\n${JSON.stringify(payload, null, 2)}`\n }\n}\n","import { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport type QueryBoundWitnessSchema = BoundWitnessSchema\nexport const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema\n\nexport type QueryBoundWitness = BoundWitness<{\n query: string\n resultSet?: string\n schema: BoundWitnessSchema\n}>\n\nexport const isQueryBoundWitness = (x?: Payload | null): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined\n","import { assertEx } from '@xylabs/assert'\nimport { PayloadSetPayload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { BoundWitnessBuilder } from '../Builder'\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from './QueryBoundWitness'\n\nexport class QueryBoundWitnessBuilder<\n TBoundWitness extends QueryBoundWitness = QueryBoundWitness,\n TQuery extends Query = Query,\n> extends BoundWitnessBuilder<TBoundWitness> {\n private _query: PayloadWrapper<TQuery> | undefined\n private _resultSet: PayloadWrapper<PayloadSetPayload> | undefined\n\n override async hashableFields(): Promise<TBoundWitness> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(await this._query?.hashAsync(), 'No Query Specified'),\n schema: QueryBoundWitnessSchema,\n }\n }\n\n query<T extends TQuery>(query: T) {\n this._query = PayloadWrapper.wrap(query)\n this.payload(this._query.payload())\n return this\n }\n\n resultSet<T extends PayloadSetPayload>(payloadSet: T) {\n this._resultSet = PayloadWrapper.wrap(payloadSet)\n this.payload(this._resultSet.payload())\n return this\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { handleError } from '@xyo-network/error'\nimport { PayloadSetPayload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from './QueryBoundWitness'\nexport class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {\n private _query: PayloadWrapper<T> | undefined\n\n protected override get expectedSchema(): string {\n return QueryBoundWitnessSchema\n }\n\n static isQueryBoundWitnessValidator(obj: unknown) {\n return (obj as QueryBoundWitnessValidator)?.constructor === QueryBoundWitnessValidator\n }\n\n override async validate() {\n return [\n ...(await super.validate()),\n // ...this.validateResultSet()\n ]\n }\n\n async validateResultSet() {\n const errors: Error[] = []\n try {\n const resultSetHash = assertEx(this.obj.resultSet, 'Missing ResultSet')\n const wrapper = BoundWitnessWrapper.parse(this.obj)\n const resultSet = PayloadWrapper.wrap<PayloadSetPayload>((await wrapper.payloadMap())[resultSetHash] as PayloadSetPayload)\n const required = resultSet?.payload().required\n if (required) {\n Object.entries(required).forEach(([key, value]) => {\n const found = wrapper.payloadSchemas.reduce((count, schema) => {\n return count + (schema === key ? 1 : 0)\n }, 0)\n if (found !== value) {\n errors.push(Error(`validateResultSet: Missing Schema [${key}:${found}:${value}]`))\n }\n })\n }\n } catch (ex) {\n handleError(ex, (error) => {\n errors.push(error)\n })\n }\n return errors\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { PayloadHasher } from '@xyo-network/core'\nimport { Payload, PayloadSetPayload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { QueryBoundWitness } from './QueryBoundWitness'\nimport { QueryBoundWitnessValidator } from './QueryBoundWitnessValidator'\n\nexport class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {\n private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined\n private _query: T | undefined\n private _resultSet: PayloadSetPayload | undefined\n\n private isQueryBoundWitnessWrapper = true\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 const wrapper = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new QueryBoundWitnessWrapper<T>(obj as QueryBoundWitness, payloads)\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 Error(`Unable to parse [${typeof obj}]`)\n }\n\n override getErrors() {\n return new QueryBoundWitnessValidator(this.boundwitness).validate()\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.allPayloadMap()\n this._query = this._query ?? (payloadMap[this.boundwitness.query] as T | undefined)\n return assertEx(this._query, `Missing Query [${this.boundwitness}]`)\n }\n\n async getResultSet() {\n const resultSetHash = this.boundwitness.resultSet\n const payloadMap = await this.payloadMap()\n return assertEx(\n (this._resultSet = this._resultSet ?? (resultSetHash ? (payloadMap[resultSetHash] as PayloadSetPayload | undefined) : undefined)),\n `Missing resultSet [${resultSetHash}]`,\n )\n }\n\n override async getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery =\n this._payloadsWithoutQuery ??\n compact(\n (\n await PayloadHasher.filterExclude(\n (await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()),\n this.payload().query,\n )\n ).map((payload) => PayloadWrapper.wrap(payload)),\n )\n return this._payloadsWithoutQuery\n }\n}\n"],"mappings":"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","names":["BoundWitnessSchema","assertEx","PayloadWrapper","assertEx","PayloadWrapper","assertEx","BoundWitnessWrapper","PayloadWrapper","assertEx","BoundWitnessWrapper","PayloadWrapper","assertEx","BoundWitnessWrapper","PayloadHasher","PayloadWrapper","BoundWitnessWrapper","assertEx","PayloadHasher","PayloadWrapper"]}
package/package.json CHANGED
@@ -10,55 +10,58 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^2.11.7",
14
- "@xylabs/buffer": "^2.11.7",
15
- "@xylabs/lodash": "^2.11.7",
16
- "@xyo-network/account-model": "~2.74.5",
17
- "@xyo-network/boundwitness-model": "~2.74.5",
18
- "@xyo-network/boundwitness-validator": "~2.74.5",
19
- "@xyo-network/boundwitness-wrapper": "~2.74.5",
20
- "@xyo-network/core": "~2.74.5",
21
- "@xyo-network/error": "~2.74.5",
22
- "@xyo-network/payload": "~2.74.5",
23
- "@xyo-network/payload-model": "~2.74.5",
24
- "@xyo-network/payload-wrapper": "~2.74.5",
25
- "@xyo-network/shared": "~2.74.5",
13
+ "@xylabs/assert": "^2.12.10",
14
+ "@xylabs/buffer": "^2.12.10",
15
+ "@xylabs/lodash": "^2.12.10",
16
+ "@xyo-network/account-model": "~2.75.1",
17
+ "@xyo-network/boundwitness-model": "~2.75.1",
18
+ "@xyo-network/boundwitness-validator": "~2.75.1",
19
+ "@xyo-network/boundwitness-wrapper": "~2.75.1",
20
+ "@xyo-network/core": "~2.75.1",
21
+ "@xyo-network/error": "~2.75.1",
22
+ "@xyo-network/payload": "~2.75.1",
23
+ "@xyo-network/payload-model": "~2.75.1",
24
+ "@xyo-network/payload-wrapper": "~2.75.1",
25
+ "@xyo-network/shared": "~2.75.1",
26
26
  "async-mutex": "^0.4.0"
27
27
  },
28
28
  "description": "Primary SDK for using XYO Protocol 2.0",
29
29
  "devDependencies": {
30
- "@xylabs/ts-scripts-yarn3": "^3.0.28",
31
- "@xylabs/tsconfig": "^3.0.28",
30
+ "@xylabs/ts-scripts-yarn3": "^3.0.77",
31
+ "@xylabs/tsconfig": "^3.0.77",
32
32
  "typescript": "^5.2.2"
33
33
  },
34
34
  "docs": "dist/docs.json",
35
35
  "exports": {
36
36
  ".": {
37
- "require": {
38
- "types": "./dist/index.d.ts",
39
- "default": "./dist/index.js"
37
+ "browser": {
38
+ "require": {
39
+ "types": "./dist/browser/index.d.cts",
40
+ "default": "./dist/browser/index.cjs"
41
+ },
42
+ "import": {
43
+ "types": "./dist/browser/index.d.mts",
44
+ "default": "./dist/browser/index.js"
45
+ }
40
46
  },
41
- "import": {
42
- "types": "./dist/index.d.mts",
43
- "default": "./dist/index.mjs"
47
+ "node": {
48
+ "require": {
49
+ "types": "./dist/node/index.d.ts",
50
+ "default": "./dist/node/index.js"
51
+ },
52
+ "import": {
53
+ "types": "./dist/node/index.d.mts",
54
+ "default": "./dist/node/index.mjs"
55
+ }
44
56
  }
45
57
  },
46
- "./dist/docs.json": {
47
- "default": "./dist/docs.json"
48
- },
49
- "./cjs": {
50
- "default": "./dist/index.js"
51
- },
52
58
  "./docs": {
53
59
  "default": "./dist/docs.json"
54
60
  },
55
- "./esm": {
56
- "default": "./dist/index.mjs"
57
- },
58
61
  "./package.json": "./package.json"
59
62
  },
60
- "main": "dist/index.js",
61
- "module": "dist/index.mjs",
63
+ "main": "dist/node/index.js",
64
+ "module": "dist/node/index.mjs",
62
65
  "homepage": "https://xyo.network",
63
66
  "license": "LGPL-3.0",
64
67
  "publishConfig": {
@@ -69,6 +72,6 @@
69
72
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
70
73
  },
71
74
  "sideEffects": false,
72
- "types": "dist/index.d.ts",
73
- "version": "2.74.5"
75
+ "types": "dist/node/index.d.ts",
76
+ "version": "2.75.1"
74
77
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAElF,OAAO,EAAE,IAAI,EAA6B,MAAM,mBAAmB,CAAA;AAEnE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAG5C,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,qBAAa,mBAAmB,CAAC,aAAa,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO;IAWtI,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAX5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,UAAU,CAAa;gBAGpB,MAAM,GAAE,yBAAqD,EACnD,MAAM,CAAC,oBAAQ;IAGpC,OAAO,KAAK,gBAAgB,GAO3B;IAEK,KAAK,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IA6B9E,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAShC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IA0B9C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOzC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAS1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IASvC,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;YAOzE,gBAAgB;IAI9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,oBAAoB;CAG7B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAElF,OAAO,EAAE,IAAI,EAA6B,MAAM,mBAAmB,CAAA;AAEnE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAG5C,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,qBAAa,mBAAmB,CAAC,aAAa,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO;IAWtI,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAX5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,UAAU,CAAa;gBAGpB,MAAM,GAAE,yBAAqD,EACnD,MAAM,CAAC,oBAAQ;IAGpC,OAAO,KAAK,gBAAgB,GAO3B;IAEK,KAAK,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IA6B9E,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAShC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IA0B9C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOzC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAS1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IASvC,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;YAOzE,gBAAgB;IAI9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,oBAAoB;CAG7B"}