@xyo-network/core 2.73.3 → 2.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/Data/AbstractData.d.mts +12 -0
  2. package/dist/Data/AbstractData.d.mts.map +1 -0
  3. package/dist/Data/AbstractData.d.ts +12 -0
  4. package/dist/Data/AbstractData.d.ts.map +1 -0
  5. package/dist/Data/Data.d.mts +20 -0
  6. package/dist/Data/Data.d.mts.map +1 -0
  7. package/dist/Data/Data.d.ts +20 -0
  8. package/dist/Data/Data.d.ts.map +1 -0
  9. package/dist/Data/DataLike.d.mts +4 -0
  10. package/dist/Data/DataLike.d.mts.map +1 -0
  11. package/dist/Data/DataLike.d.ts +4 -0
  12. package/dist/Data/DataLike.d.ts.map +1 -0
  13. package/dist/Data/index.d.mts +5 -0
  14. package/dist/Data/index.d.mts.map +1 -0
  15. package/dist/Data/index.d.ts +5 -0
  16. package/dist/Data/index.d.ts.map +1 -0
  17. package/dist/Data/toUint8Array.d.mts +4 -0
  18. package/dist/Data/toUint8Array.d.mts.map +1 -0
  19. package/dist/Data/toUint8Array.d.ts +4 -0
  20. package/dist/Data/toUint8Array.d.ts.map +1 -0
  21. package/dist/index.d.mts +7 -210
  22. package/dist/index.d.mts.map +1 -0
  23. package/dist/index.d.ts +7 -210
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +13 -321
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.mjs +6 -323
  28. package/dist/index.mjs.map +1 -1
  29. package/dist/lib/Base.d.mts +13 -0
  30. package/dist/lib/Base.d.mts.map +1 -0
  31. package/dist/lib/Base.d.ts +13 -0
  32. package/dist/lib/Base.d.ts.map +1 -0
  33. package/dist/lib/Validator.d.mts +9 -0
  34. package/dist/lib/Validator.d.mts.map +1 -0
  35. package/dist/lib/Validator.d.ts +9 -0
  36. package/dist/lib/Validator.d.ts.map +1 -0
  37. package/dist/lib/dumpErrors.d.mts +3 -0
  38. package/dist/lib/dumpErrors.d.mts.map +1 -0
  39. package/dist/lib/dumpErrors.d.ts +3 -0
  40. package/dist/lib/dumpErrors.d.ts.map +1 -0
  41. package/dist/lib/index.d.mts +6 -0
  42. package/dist/lib/index.d.mts.map +1 -0
  43. package/dist/lib/index.d.ts +6 -0
  44. package/dist/lib/index.d.ts.map +1 -0
  45. package/dist/lib/isBrowser.d.mts +2 -0
  46. package/dist/lib/isBrowser.d.mts.map +1 -0
  47. package/dist/lib/isBrowser.d.ts +2 -0
  48. package/dist/lib/isBrowser.d.ts.map +1 -0
  49. package/dist/lib/uuid.d.mts +2 -0
  50. package/dist/lib/uuid.d.mts.map +1 -0
  51. package/dist/lib/uuid.d.ts +2 -0
  52. package/dist/lib/uuid.d.ts.map +1 -0
  53. package/package.json +15 -24
  54. package/src/index.ts +4 -2
  55. package/src/lib/Base.ts +2 -3
  56. package/src/lib/Validator.ts +1 -3
  57. package/src/lib/index.ts +0 -5
  58. package/dist/docs.json +0 -11888
  59. package/src/Hasher/Hasher.ts +0 -96
  60. package/src/Hasher/index.ts +0 -4
  61. package/src/Hasher/removeEmptyFields.ts +0 -15
  62. package/src/Hasher/removeFields.ts +0 -32
  63. package/src/Hasher/sortFields.ts +0 -29
  64. package/src/Wasm/WasmSupport.ts +0 -168
  65. package/src/Wasm/index.ts +0 -1
  66. package/src/lib/Address/index.ts +0 -2
  67. package/src/lib/Address/normalizeAddress.ts +0 -5
  68. package/src/lib/Address/trimAddressPrefix.ts +0 -10
  69. package/src/lib/AnyObject.ts +0 -2
  70. package/src/lib/EmptyObject.ts +0 -1
  71. package/src/lib/ObjectWrapper.ts +0 -12
  72. package/src/lib/StringKeyObject.ts +0 -4
  73. package/tsup.config.ts +0 -16
package/dist/index.mjs CHANGED
@@ -102,23 +102,6 @@ var Data = class _Data extends AbstractData {
102
102
  }
103
103
  };
104
104
 
105
- // src/Hasher/Hasher.ts
106
- import { cloneDeep } from "@xylabs/lodash";
107
- import { sha256 } from "hash-wasm";
108
- import shajs from "sha.js";
109
-
110
- // src/lib/Address/trimAddressPrefix.ts
111
- var addressPrefix = "0x";
112
- var addressPrefixLength = addressPrefix.length;
113
- var trimAddressPrefix = (address) => {
114
- return address.toLowerCase().startsWith(addressPrefix) ? address.substring(addressPrefixLength) : address;
115
- };
116
-
117
- // src/lib/Address/normalizeAddress.ts
118
- var normalizeAddress = (address) => {
119
- return trimAddressPrefix(address.toLowerCase());
120
- };
121
-
122
105
  // src/lib/Base.ts
123
106
  var Base = class _Base {
124
107
  constructor(params) {
@@ -143,17 +126,6 @@ var isBrowser = () => {
143
126
  return typeof process === "undefined";
144
127
  };
145
128
 
146
- // src/lib/ObjectWrapper.ts
147
- var ObjectWrapper = class {
148
- obj;
149
- constructor(obj) {
150
- this.obj = obj;
151
- }
152
- get stringKeyObj() {
153
- return this.obj;
154
- }
155
- };
156
-
157
129
  // src/lib/uuid.ts
158
130
  import { v4 } from "uuid";
159
131
  var uuid = () => {
@@ -174,313 +146,24 @@ var uuid = () => {
174
146
  };
175
147
 
176
148
  // src/lib/Validator.ts
149
+ import { ObjectWrapper } from "@xyo-network/object";
177
150
  var ValidatorBase = class extends ObjectWrapper {
178
151
  };
179
152
 
180
- // src/Wasm/WasmSupport.ts
181
- import {
182
- bigInt,
183
- bulkMemory,
184
- exceptions,
185
- extendedConst,
186
- gc,
187
- memory64,
188
- multiValue,
189
- mutableGlobals,
190
- referenceTypes,
191
- relaxedSimd,
192
- saturatedFloatToInt,
193
- signExtensions,
194
- simd,
195
- streamingCompilation,
196
- tailCall,
197
- threads
198
- } from "wasm-feature-detect";
199
- var WasmFeatureDetectors = {
200
- bigInt,
201
- bulkMemory,
202
- exceptions,
203
- extendedConst,
204
- gc,
205
- memory64,
206
- multiValue,
207
- mutableGlobals,
208
- referenceTypes,
209
- relaxedSimd,
210
- saturatedFloatToInt,
211
- signExtensions,
212
- simd,
213
- streamingCompilation,
214
- tailCall,
215
- threads
216
- };
217
- var WasmSupport = class _WasmSupport {
218
- /**
219
- * Instance constructor for use where async instantiation
220
- * is not possible. Where possible, prefer the static
221
- * create method over use of this constructor directly
222
- * as no initialization (feature detection) is able to
223
- * be done here
224
- * @param desiredFeatures The desired feature set
225
- */
226
- constructor(desiredFeatures) {
227
- this.desiredFeatures = desiredFeatures;
228
- }
229
- _allowWasm = true;
230
- _featureSupport = {};
231
- _forceWasm = false;
232
- _isInitialized = false;
233
- _isWasmFeatureSetSupported = false;
234
- /**
235
- * Is Wasm allowed
236
- */
237
- get allowWasm() {
238
- return this._allowWasm;
239
- }
240
- /**
241
- * Whether or not to allow WASM usage
242
- */
243
- set allowWasm(v) {
244
- this._allowWasm = v;
245
- }
246
- /**
247
- * Whether or not Wasm should be used based on the desired
248
- * feature set, initialization state, or force-use settings
249
- */
250
- get canUseWasm() {
251
- return (
252
- // Just force WASM
253
- this._forceWasm || // Or if we haven't checked be optimistic
254
- this._allowWasm && !this._isInitialized || // Or if we have checked and WASM is not supported, be realistic
255
- this._allowWasm && this._isInitialized && this._isWasmFeatureSetSupported
256
- );
257
- }
258
- /**
259
- * Returns a object containing a property for each desired wasm feature
260
- * with a boolean value indicating whether or not the feature is supported
261
- */
262
- get featureSupport() {
263
- return { ...this._featureSupport };
264
- }
265
- /**
266
- * Force use of Wasm
267
- */
268
- get forceWasm() {
269
- return this._forceWasm;
270
- }
271
- /**
272
- * Whether or not to force Wasm usage
273
- */
274
- set forceWasm(v) {
275
- this._forceWasm = v;
276
- }
277
- /**
278
- * Whether or not Wasm is supported based
279
- * on the desired feature set
280
- */
281
- get isDesiredFeatureSetSupported() {
282
- return this._isWasmFeatureSetSupported;
283
- }
284
- /**
285
- * Whether or not Wasm detection has been run
286
- * for the desired feature set
287
- */
288
- get isInitialized() {
289
- return this._isInitialized;
290
- }
291
- /**
292
- * Static creation & async initialization for use where
293
- * async instantiation is possible
294
- * @param desiredFeatures The desired feature set
295
- * @returns An initialized instance of the class with detection
296
- * for the desired feature set
297
- */
298
- static async create(desiredFeatures) {
299
- const instance = new _WasmSupport(desiredFeatures);
300
- await instance.initialize();
301
- return Promise.resolve(instance);
302
- }
303
- /**
304
- * Checks for specific wasm features
305
- * @param features The list of features to check for
306
- * @returns True if all the features are supported, false otherwise
307
- */
308
- async featureCheck(features) {
309
- const results = await Promise.all(features.map((feature) => WasmFeatureDetectors[feature]).map(async (detector) => await detector()));
310
- return results.every((result) => result);
311
- }
312
- /**
313
- * Does feature detection for the desired feature set
314
- */
315
- async initialize() {
316
- if (this._isInitialized)
317
- return;
318
- await this.detectDesiredFeatures();
319
- this._isInitialized = true;
320
- return;
321
- }
322
- async detectDesiredFeatures() {
323
- for (let feature = 0; feature < this.desiredFeatures.length; feature++) {
324
- const desiredFeature = this.desiredFeatures[feature];
325
- const detector = WasmFeatureDetectors[desiredFeature];
326
- if (!await detector()) {
327
- this._featureSupport[desiredFeature] = false;
328
- } else {
329
- this._featureSupport[desiredFeature] = true;
330
- }
331
- }
332
- this._isWasmFeatureSetSupported = Object.values(this._featureSupport).every((v) => v);
333
- }
334
- };
335
-
336
- // src/Hasher/removeEmptyFields.ts
337
- import { typeOf } from "@xyo-network/typeof";
338
- var removeEmptyFields = (obj) => {
339
- if (obj === null || Array.isArray(obj))
340
- return obj;
341
- const newObject = {};
342
- Object.entries(obj).forEach(([key, value]) => {
343
- if (typeOf(value) === "object") {
344
- newObject[key] = removeEmptyFields(value);
345
- } else if (value !== void 0) {
346
- newObject[key] = value;
347
- }
348
- });
349
- return newObject;
350
- };
351
-
352
- // src/Hasher/removeFields.ts
353
- import { isObject, mapValues, merge, omitBy, pickBy } from "@xylabs/lodash";
354
- var deepBy = (obj, predicate, func) => {
355
- if (Array.isArray(obj)) {
356
- return obj;
357
- }
358
- const onlyObjects = pickBy(obj, isObject);
359
- const nonObjects = pickBy(obj, (value) => !isObject(value));
360
- const pickedObjects = omitBy(onlyObjects, predicate);
361
- const pickedNonObjects = omitBy(nonObjects, predicate);
362
- const processedObjects = mapValues(pickedObjects, (obj2) => deepBy(obj2, predicate, func));
363
- return merge({}, pickedNonObjects, processedObjects);
364
- };
365
- var deepOmitUnderscoreFields = (obj) => {
366
- return deepBy(obj, (_, key) => key.startsWith("_"), omitBy);
367
- };
368
- var deepPickUnderscoreFields = (obj) => {
369
- return deepBy(obj, (_, key) => key.startsWith("_"), pickBy);
370
- };
371
-
372
- // src/Hasher/sortFields.ts
373
- import { typeOf as typeOf2 } from "@xyo-network/typeof";
374
- var subSort = (value) => {
375
- switch (typeOf2(value)) {
376
- case "object":
377
- return sortFields(value);
378
- default:
379
- return value;
380
- }
381
- };
382
- var sortFields = (obj) => {
383
- if (obj === null) {
384
- return null;
385
- }
386
- const stringyObj = obj;
387
- const result = {};
388
- Object.keys(stringyObj).sort().forEach((key) => {
389
- result[key] = subSort(stringyObj[key]);
390
- });
391
- return result;
392
- };
393
-
394
- // src/Hasher/Hasher.ts
395
- var wasmSupportStatic = new WasmSupport(["bigInt"]);
396
- var PayloadHasher = class _PayloadHasher extends ObjectWrapper {
397
- static wasmInitialized = wasmSupportStatic.initialize();
398
- static wasmSupport = wasmSupportStatic;
399
- /** @deprecated use hashAsync instead */
400
- get hash() {
401
- return _PayloadHasher.hash(this.obj);
402
- }
403
- get hashFields() {
404
- return _PayloadHasher.hashFields(this.obj);
405
- }
406
- get stringified() {
407
- return _PayloadHasher.stringify(this.obj);
408
- }
409
- static async filterExclude(objs = [], hash) {
410
- const hashes = Array.isArray(hash) ? hash : [hash];
411
- return (await this.hashPairs(objs)).filter(([_, objHash]) => !hashes.includes(objHash))?.map((pair) => pair[0]);
412
- }
413
- static async filterInclude(objs = [], hash) {
414
- const hashes = Array.isArray(hash) ? hash : [hash];
415
- return (await this.hashPairs(objs)).filter(([_, objHash]) => hashes.includes(objHash))?.map((pair) => pair[0]);
416
- }
417
- static async find(objs = [], hash) {
418
- return (await this.hashPairs(objs)).find(([_, objHash]) => objHash === hash)?.[0];
419
- }
420
- /** @deprecated use hashSync or hashAsync instead */
421
- static hash(obj) {
422
- return shajs("sha256").update(this.stringify(obj)).digest().toString("hex");
423
- }
424
- static async hashAsync(obj) {
425
- await _PayloadHasher.wasmInitialized;
426
- if (_PayloadHasher.wasmSupport.canUseWasm) {
427
- const stringToHash = _PayloadHasher.stringify(obj);
428
- try {
429
- return await sha256(stringToHash);
430
- } catch (ex) {
431
- _PayloadHasher.wasmSupport.allowWasm = false;
432
- }
433
- }
434
- return this.hash(obj);
435
- }
436
- static hashFields(obj) {
437
- return removeEmptyFields(deepOmitUnderscoreFields(cloneDeep(obj)));
438
- }
439
- static async hashPairs(objs) {
440
- return await Promise.all(objs.map(async (obj) => [obj, await _PayloadHasher.hashAsync(obj)]));
441
- }
442
- static hashSync(obj) {
443
- return shajs("sha256").update(this.stringify(obj)).digest().toString("hex");
444
- }
445
- static async hashes(objs) {
446
- return await Promise.all(objs.map((obj) => this.hashAsync(obj)));
447
- }
448
- static stringify(obj) {
449
- return JSON.stringify(sortFields(this.hashFields(obj)));
450
- }
451
- static async toMap(objs) {
452
- const result = {};
453
- await Promise.all(objs.map(async (obj) => result[await _PayloadHasher.hashAsync(obj)] = obj));
454
- return result;
455
- }
456
- async hashAsync() {
457
- return await _PayloadHasher.hashAsync(this.obj);
458
- }
459
- };
460
- var Hasher = class extends PayloadHasher {
461
- };
153
+ // src/index.ts
154
+ export * from "@xyo-network/address";
155
+ export * from "@xyo-network/hash";
156
+ export * from "@xyo-network/object";
157
+ export * from "@xyo-network/wasm";
462
158
  export {
463
159
  AbstractData,
464
160
  Base,
465
161
  Data,
466
- Hasher,
467
- ObjectWrapper,
468
- PayloadHasher,
469
162
  ValidatorBase,
470
- WasmFeatureDetectors,
471
- WasmSupport,
472
- addressPrefix,
473
- deepBy,
474
- deepOmitUnderscoreFields,
475
- deepPickUnderscoreFields,
476
163
  dumpErrors,
477
164
  isBrowser,
478
- normalizeAddress,
479
- removeEmptyFields,
480
- sortFields,
481
165
  toUint8Array,
482
166
  toUint8ArrayOptional,
483
- trimAddressPrefix,
484
167
  uuid
485
168
  };
486
169
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Data/AbstractData.ts","../src/Data/Data.ts","../src/Data/toUint8Array.ts","../src/Hasher/Hasher.ts","../src/lib/Address/trimAddressPrefix.ts","../src/lib/Address/normalizeAddress.ts","../src/lib/Base.ts","../src/lib/dumpErrors.ts","../src/lib/isBrowser.ts","../src/lib/ObjectWrapper.ts","../src/lib/uuid.ts","../src/lib/Validator.ts","../src/Wasm/WasmSupport.ts","../src/Hasher/removeEmptyFields.ts","../src/Hasher/removeFields.ts","../src/Hasher/sortFields.ts"],"sourcesContent":["import { BigNumber } from '@xylabs/bignumber'\nimport { Buffer } from '@xylabs/buffer'\n\nexport abstract class AbstractData {\n get length() {\n return this.bytes.length\n }\n\n abstract get bn(): BigNumber\n\n abstract get buffer(): Buffer\n\n abstract get bytes(): Uint8Array\n\n abstract get hex(): string\n\n abstract get keccak256(): Buffer\n\n static is(value: unknown): value is AbstractData {\n return value instanceof AbstractData\n }\n}\n","import { base16, base58 } from '@scure/base'\nimport { assertEx } from '@xylabs/assert'\nimport { BigNumber } from '@xylabs/bignumber'\nimport { Buffer, bufferPolyfill } from '@xylabs/buffer'\nimport keccak256 from 'keccak256'\n\nimport { AbstractData } from './AbstractData'\nimport { DataLike } from './DataLike'\nimport { toUint8ArrayOptional } from './toUint8Array'\n\nexport class Data extends AbstractData {\n private _bytes?: Uint8Array\n private _length: number\n\n constructor(length: number, bytes?: DataLike)\n constructor(length: number, bytes: string, base?: number)\n constructor(length: number, bytes?: DataLike, base?: number) {\n super()\n this._bytes = toUint8ArrayOptional(bytes, length, base)\n this._length = length\n }\n\n get base58() {\n this.checkLength()\n return base58.encode(this.bytes)\n }\n\n get bn() {\n this.checkLength()\n return new BigNumber(this.bytes)\n }\n\n get buffer() {\n this.checkLength()\n return Buffer.from(this.bytes)\n }\n\n get bytes() {\n return assertEx(this._bytes, 'Data uninitialized')\n }\n\n get hex() {\n this.checkLength()\n return base16.encode(this.bytes).toLowerCase()\n }\n\n get keccak256() {\n bufferPolyfill()\n this.checkLength()\n return Buffer.from(keccak256(`0x${this.buffer.toString('hex')}`))\n }\n\n static from(data: DataLike | undefined) {\n return data ? new Data(Data.lengthOf(data), data) : undefined\n }\n\n static lengthOf(data: DataLike): number {\n if (typeof data === 'string') {\n return data.length / 2\n } else if (data instanceof AbstractData) {\n return data.length\n } else {\n return typeof data.byteLength === 'function' ? data.byteLength() : data.byteLength\n }\n }\n\n private checkLength() {\n assertEx(this.bytes.length === this._length, `Length Mismatch: ${this.bytes.length} !== ${this._length}`)\n }\n}\n","import { base16, base58 } from '@scure/base'\nimport { assertEx } from '@xylabs/assert'\nimport { BigNumber } from '@xylabs/bignumber'\nimport { Buffer } from '@xylabs/buffer'\nimport { ifTypeOf } from '@xyo-network/typeof'\n\nimport { AbstractData } from './AbstractData'\nimport { DataLike } from './DataLike'\n\nconst stringToUint8Array = (value: string, base = 16) => {\n switch (base) {\n case 16:\n return base16.decode((value.startsWith('0x') ? value.slice(2) : value).toUpperCase())\n case 58:\n return base58.decode(value)\n default:\n throw Error(`Unsupported base [${base}]`)\n }\n}\n\nconst bigNumberToUint8Array = (value: BigNumber) => {\n //we do new BigNumber in case we got something BigNumberish by accident\n return bufferToUint8Array(Buffer.from(new BigNumber(value).toBuffer()))\n}\n\nconst bufferToUint8Array = (value: Buffer) => {\n return Uint8Array.from(value)\n}\n\nconst xyoDataToUint8Array = (value: AbstractData) => {\n return value.bytes\n}\n\nexport const toUint8ArrayOptional = (value?: DataLike, padLength?: number, base?: number): Uint8Array | undefined => {\n return value ? toUint8Array(value, padLength, base) : undefined\n}\n\nexport const toUint8Array = (value: DataLike, padLength?: number, base?: number): Uint8Array => {\n let result: Uint8Array | undefined =\n ifTypeOf<string, Uint8Array>('string', value as string, (value) => stringToUint8Array(value, base)) ??\n ifTypeOf<BigNumber, Uint8Array | undefined>('object', value as BigNumber, bigNumberToUint8Array, BigNumber.isBN) ??\n ifTypeOf<Buffer, Uint8Array | undefined>('object', value as Buffer, bufferToUint8Array, Buffer.isBuffer) ??\n ifTypeOf<AbstractData, Uint8Array | undefined>('object', value as Buffer, xyoDataToUint8Array, AbstractData.is) ??\n (value as Uint8Array)\n\n if (padLength && result.length < padLength) {\n result = new Uint8Array([...new Uint8Array(padLength - result.length), ...result])\n assertEx(result?.length <= padLength, 'Resulting length is greater than padLength')\n }\n\n return result\n}\n","import { cloneDeep } from '@xylabs/lodash'\nimport { sha256 } from 'hash-wasm'\nimport shajs from 'sha.js'\n\nimport { AnyObject, ObjectWrapper } from '../lib'\nimport { WasmSupport } from '../Wasm'\nimport { removeEmptyFields } from './removeEmptyFields'\nimport { deepOmitUnderscoreFields } from './removeFields'\nimport { sortFields } from './sortFields'\n\nconst wasmSupportStatic = new WasmSupport(['bigInt'])\n\nexport class PayloadHasher<T extends AnyObject = AnyObject> extends ObjectWrapper<T> {\n static readonly wasmInitialized = wasmSupportStatic.initialize()\n static readonly wasmSupport = wasmSupportStatic\n\n /** @deprecated use hashAsync instead */\n get hash() {\n // eslint-disable-next-line deprecation/deprecation\n return PayloadHasher.hash(this.obj)\n }\n\n get hashFields() {\n return PayloadHasher.hashFields(this.obj)\n }\n\n get stringified() {\n return PayloadHasher.stringify(this.obj)\n }\n\n static async filterExclude<T extends AnyObject>(objs: T[] = [], hash: string[] | string): Promise<T[]> {\n const hashes = Array.isArray(hash) ? hash : [hash]\n return (await this.hashPairs(objs)).filter(([_, objHash]) => !hashes.includes(objHash))?.map((pair) => pair[0])\n }\n\n static async filterInclude<T extends AnyObject>(objs: T[] = [], hash: string[] | string): Promise<T[]> {\n const hashes = Array.isArray(hash) ? hash : [hash]\n return (await this.hashPairs(objs)).filter(([_, objHash]) => hashes.includes(objHash))?.map((pair) => pair[0])\n }\n\n static async find<T extends AnyObject>(objs: T[] = [], hash: string): Promise<T | undefined> {\n return (await this.hashPairs(objs)).find(([_, objHash]) => objHash === hash)?.[0]\n }\n\n /** @deprecated use hashSync or hashAsync instead */\n static hash<T extends AnyObject>(obj: T) {\n return shajs('sha256').update(this.stringify(obj)).digest().toString('hex')\n }\n\n static async hashAsync<T extends AnyObject>(obj: T): Promise<string> {\n await PayloadHasher.wasmInitialized\n if (PayloadHasher.wasmSupport.canUseWasm) {\n const stringToHash = PayloadHasher.stringify(obj)\n try {\n return await sha256(stringToHash)\n } catch (ex) {\n PayloadHasher.wasmSupport.allowWasm = false\n }\n }\n // eslint-disable-next-line deprecation/deprecation\n return this.hash(obj)\n }\n\n static hashFields<T extends AnyObject>(obj: T) {\n return removeEmptyFields(deepOmitUnderscoreFields(cloneDeep(obj)))\n }\n\n static async hashPairs<T extends AnyObject>(objs: T[]): Promise<[T, string][]> {\n return await Promise.all(objs.map<Promise<[T, string]>>(async (obj) => [obj, await PayloadHasher.hashAsync(obj)]))\n }\n\n static hashSync<T extends AnyObject>(obj: T) {\n return shajs('sha256').update(this.stringify(obj)).digest().toString('hex')\n }\n\n static async hashes<T extends AnyObject>(objs: T[]) {\n return await Promise.all(objs.map((obj) => this.hashAsync(obj)))\n }\n\n static stringify<T extends AnyObject>(obj: T) {\n return JSON.stringify(sortFields(this.hashFields(obj)))\n }\n\n static async toMap<T extends AnyObject>(objs: T[]): Promise<Record<string, T>> {\n const result: Record<string, T> = {}\n await Promise.all(objs.map(async (obj) => (result[await PayloadHasher.hashAsync(obj)] = obj)))\n return result\n }\n\n async hashAsync() {\n return await PayloadHasher.hashAsync(this.obj)\n }\n}\n\n/** @deprecated use PayloadHasher instead */\nexport class Hasher<T extends AnyObject = AnyObject> extends PayloadHasher<T> {}\n","export const addressPrefix = '0x'\n\n// NOTE: To prevent calling `.length` on every invocation, we cache the length\n// but do want to tether it to the length of the actual prefix so it's not some\n// magic number.\nconst addressPrefixLength = addressPrefix.length\n\nexport const trimAddressPrefix = (address: string) => {\n return address.toLowerCase().startsWith(addressPrefix) ? address.substring(addressPrefixLength) : address\n}\n","import { trimAddressPrefix } from './trimAddressPrefix'\n\nexport const normalizeAddress = (address: string) => {\n return trimAddressPrefix(address.toLowerCase())\n}\n","import { Logger } from '@xyo-network/logger'\n\nimport { AnyObject } from './AnyObject'\n\nexport type BaseParamsFields = {\n logger?: Logger\n}\n\nexport type BaseParams<TAdditionalParams extends AnyObject | undefined = undefined> = TAdditionalParams extends AnyObject\n ? BaseParamsFields & TAdditionalParams\n : BaseParamsFields\n\nexport abstract class Base<TParams extends BaseParams = BaseParams> {\n static defaultLogger?: Logger\n\n constructor(readonly params: TParams) {\n params.logger?.debug(`Base constructed [${Object(this).name}]`)\n }\n\n protected get logger() {\n return this.params?.logger ?? Base.defaultLogger ?? console\n }\n}\n","const dumpErrors = (errors: Error[]) => {\n errors.forEach((error) => {\n console.log(error, null, 2)\n })\n}\n\nexport { dumpErrors }\n","export const isBrowser = () => {\n return typeof process === 'undefined'\n}\n","import { EmptyObject } from './EmptyObject'\nimport { StringKeyObject } from './StringKeyObject'\n\nexport abstract class ObjectWrapper<T extends EmptyObject = EmptyObject> {\n readonly obj: T\n constructor(obj: T) {\n this.obj = obj\n }\n protected get stringKeyObj() {\n return this.obj as StringKeyObject\n }\n}\n","import { v4 } from 'uuid'\n\nexport const uuid = () => {\n try {\n return v4()\n } catch {\n //generally if no crypto library support\n const bytes: number[] = []\n for (let i = 0; i < 16; i++) {\n bytes.push(Math.floor(Math.random() * 256))\n }\n console.log(`bytes: ${JSON.stringify(bytes)}`)\n return `${bytes[0].toString(16)}${bytes[1].toString(16)}${bytes[2].toString(16)}${bytes[3].toString(16)}-${bytes[4].toString(\n 16,\n )}${bytes[5].toString(16)}-${bytes[6].toString(16)}${bytes[7].toString(16)}-${bytes[8].toString(16)}${bytes[9].toString(16)}-${bytes[10].toString(\n 16,\n )}${bytes[11].toString(16)}${bytes[12].toString(16)}${bytes[13].toString(16)}${bytes[14].toString(16)}${bytes[15].toString(16)}`\n }\n}\n","import { Promisable } from '@xyo-network/promise'\n\nimport { AnyObject } from './AnyObject'\nimport { ObjectWrapper } from './ObjectWrapper'\n\nexport interface Validator<T extends AnyObject = AnyObject> {\n validate(payload: T): Promisable<Error[]>\n}\n\nexport abstract class ValidatorBase<T extends AnyObject = AnyObject> extends ObjectWrapper<T> implements Validator<T> {\n abstract validate(payload: T): Promisable<Error[]>\n}\n","import {\n bigInt,\n bulkMemory,\n exceptions,\n extendedConst,\n gc,\n memory64,\n multiValue,\n mutableGlobals,\n referenceTypes,\n relaxedSimd,\n saturatedFloatToInt,\n signExtensions,\n simd,\n streamingCompilation,\n tailCall,\n threads,\n} from 'wasm-feature-detect'\n\nexport const WasmFeatureDetectors = {\n bigInt: bigInt,\n bulkMemory: bulkMemory,\n exceptions: exceptions,\n extendedConst: extendedConst,\n gc: gc,\n memory64: memory64,\n multiValue: multiValue,\n mutableGlobals: mutableGlobals,\n referenceTypes: referenceTypes,\n relaxedSimd: relaxedSimd,\n saturatedFloatToInt: saturatedFloatToInt,\n signExtensions: signExtensions,\n simd: simd,\n streamingCompilation: streamingCompilation,\n tailCall: tailCall,\n threads: threads,\n} as const\n\nexport type WasmFeature = keyof typeof WasmFeatureDetectors\n\nexport class WasmSupport {\n private _allowWasm = true\n private _featureSupport: Partial<Record<WasmFeature, boolean>> = {}\n private _forceWasm = false\n private _isInitialized = false\n private _isWasmFeatureSetSupported = false\n\n /**\n * Instance constructor for use where async instantiation\n * is not possible. Where possible, prefer the static\n * create method over use of this constructor directly\n * as no initialization (feature detection) is able to\n * be done here\n * @param desiredFeatures The desired feature set\n */\n constructor(protected desiredFeatures: WasmFeature[]) {}\n\n /**\n * Is Wasm allowed\n */\n get allowWasm(): boolean {\n return this._allowWasm\n }\n /**\n * Whether or not to allow WASM usage\n */\n set allowWasm(v: boolean) {\n this._allowWasm = v\n }\n\n /**\n * Whether or not Wasm should be used based on the desired\n * feature set, initialization state, or force-use settings\n */\n get canUseWasm(): boolean {\n return (\n // Just force WASM\n this._forceWasm ||\n // Or if we haven't checked be optimistic\n (this._allowWasm && !this._isInitialized) ||\n // Or if we have checked and WASM is not supported, be realistic\n (this._allowWasm && this._isInitialized && this._isWasmFeatureSetSupported)\n )\n }\n\n /**\n * Returns a object containing a property for each desired wasm feature\n * with a boolean value indicating whether or not the feature is supported\n */\n get featureSupport(): Readonly<Partial<Record<WasmFeature, boolean>>> {\n return { ...this._featureSupport }\n }\n\n /**\n * Force use of Wasm\n */\n get forceWasm(): boolean {\n return this._forceWasm\n }\n /**\n * Whether or not to force Wasm usage\n */\n set forceWasm(v: boolean) {\n this._forceWasm = v\n }\n\n /**\n * Whether or not Wasm is supported based\n * on the desired feature set\n */\n get isDesiredFeatureSetSupported(): boolean {\n return this._isWasmFeatureSetSupported\n }\n\n /**\n * Whether or not Wasm detection has been run\n * for the desired feature set\n */\n get isInitialized(): boolean {\n return this._isInitialized\n }\n\n /**\n * Static creation & async initialization for use where\n * async instantiation is possible\n * @param desiredFeatures The desired feature set\n * @returns An initialized instance of the class with detection\n * for the desired feature set\n */\n static async create(desiredFeatures: WasmFeature[]): Promise<WasmSupport> {\n const instance = new WasmSupport(desiredFeatures)\n await instance.initialize()\n return Promise.resolve(instance)\n }\n\n /**\n * Checks for specific wasm features\n * @param features The list of features to check for\n * @returns True if all the features are supported, false otherwise\n */\n async featureCheck(features: WasmFeature[]): Promise<boolean> {\n const results = await Promise.all(features.map((feature) => WasmFeatureDetectors[feature]).map(async (detector) => await detector()))\n return results.every((result) => result)\n }\n\n /**\n * Does feature detection for the desired feature set\n */\n async initialize(): Promise<void> {\n if (this._isInitialized) return\n await this.detectDesiredFeatures()\n this._isInitialized = true\n return\n }\n\n protected async detectDesiredFeatures(): Promise<void> {\n for (let feature = 0; feature < this.desiredFeatures.length; feature++) {\n const desiredFeature = this.desiredFeatures[feature]\n const detector = WasmFeatureDetectors[desiredFeature]\n if (!(await detector())) {\n this._featureSupport[desiredFeature] = false\n } else {\n this._featureSupport[desiredFeature] = true\n }\n }\n this._isWasmFeatureSetSupported = Object.values(this._featureSupport).every((v) => v)\n }\n}\n","import { typeOf } from '@xyo-network/typeof'\n\nexport const removeEmptyFields = <T extends Record<string, unknown>>(obj: T) => {\n if (obj === null || Array.isArray(obj)) return obj\n\n const newObject: Record<string, unknown> = {}\n Object.entries(obj).forEach(([key, value]) => {\n if (typeOf(value) === 'object') {\n newObject[key] = removeEmptyFields(value as Record<string, unknown>)\n } else if (value !== undefined) {\n newObject[key] = value\n }\n })\n return newObject as T\n}\n","import { isObject, mapValues, merge, omitBy, pickBy } from '@xylabs/lodash'\n// eslint-disable-next-line no-restricted-imports\nimport type { ValueKeyIteratee } from 'lodash'\n\nimport { AnyObject } from '../lib'\n\nexport const deepBy = <T extends AnyObject>(obj: T, predicate: ValueKeyIteratee<T>, func: typeof omitBy | typeof pickBy): T => {\n if (Array.isArray(obj)) {\n return obj\n }\n\n //pick the child objects\n const onlyObjects = pickBy<T>(obj, isObject)\n\n //pick the child non-objects\n const nonObjects = pickBy<T>(obj, (value) => !isObject(value))\n\n const pickedObjects = omitBy(onlyObjects, predicate)\n const pickedNonObjects = omitBy(nonObjects, predicate)\n\n const processedObjects = mapValues(pickedObjects, (obj: T) => deepBy(obj, predicate, func))\n\n return merge({}, pickedNonObjects, processedObjects) as T\n}\n\nexport const deepOmitUnderscoreFields = <T extends AnyObject>(obj: T) => {\n return deepBy(obj, (_, key) => key.startsWith('_'), omitBy)\n}\n\nexport const deepPickUnderscoreFields = <T extends AnyObject>(obj: T) => {\n return deepBy(obj, (_, key) => key.startsWith('_'), pickBy)\n}\n","import { typeOf } from '@xyo-network/typeof'\n\nimport { AnyObject, StringKeyObject } from '../lib'\n\n//if an object, sub-sort\nconst subSort = (value: unknown) => {\n switch (typeOf(value)) {\n case 'object':\n return sortFields(value as Record<string, unknown>)\n default:\n return value\n }\n}\n\nexport const sortFields = <T extends AnyObject = AnyObject>(obj: T) => {\n if (obj === null) {\n return null\n }\n\n const stringyObj = obj as StringKeyObject\n\n const result: StringKeyObject = {}\n Object.keys(stringyObj)\n .sort()\n .forEach((key) => {\n result[key] = subSort(stringyObj[key])\n })\n return result as T\n}\n"],"mappings":"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","names":["base16","base58","assertEx","BigNumber","Buffer","value","base58","BigNumber","Buffer","assertEx","base16","obj","typeOf"]}
1
+ {"version":3,"sources":["../src/Data/AbstractData.ts","../src/Data/Data.ts","../src/Data/toUint8Array.ts","../src/lib/Base.ts","../src/lib/dumpErrors.ts","../src/lib/isBrowser.ts","../src/lib/uuid.ts","../src/lib/Validator.ts","../src/index.ts"],"sourcesContent":["import { BigNumber } from '@xylabs/bignumber'\nimport { Buffer } from '@xylabs/buffer'\n\nexport abstract class AbstractData {\n get length() {\n return this.bytes.length\n }\n\n abstract get bn(): BigNumber\n\n abstract get buffer(): Buffer\n\n abstract get bytes(): Uint8Array\n\n abstract get hex(): string\n\n abstract get keccak256(): Buffer\n\n static is(value: unknown): value is AbstractData {\n return value instanceof AbstractData\n }\n}\n","import { base16, base58 } from '@scure/base'\nimport { assertEx } from '@xylabs/assert'\nimport { BigNumber } from '@xylabs/bignumber'\nimport { Buffer, bufferPolyfill } from '@xylabs/buffer'\nimport keccak256 from 'keccak256'\n\nimport { AbstractData } from './AbstractData'\nimport { DataLike } from './DataLike'\nimport { toUint8ArrayOptional } from './toUint8Array'\n\nexport class Data extends AbstractData {\n private _bytes?: Uint8Array\n private _length: number\n\n constructor(length: number, bytes?: DataLike)\n constructor(length: number, bytes: string, base?: number)\n constructor(length: number, bytes?: DataLike, base?: number) {\n super()\n this._bytes = toUint8ArrayOptional(bytes, length, base)\n this._length = length\n }\n\n get base58() {\n this.checkLength()\n return base58.encode(this.bytes)\n }\n\n get bn() {\n this.checkLength()\n return new BigNumber(this.bytes)\n }\n\n get buffer() {\n this.checkLength()\n return Buffer.from(this.bytes)\n }\n\n get bytes() {\n return assertEx(this._bytes, 'Data uninitialized')\n }\n\n get hex() {\n this.checkLength()\n return base16.encode(this.bytes).toLowerCase()\n }\n\n get keccak256() {\n bufferPolyfill()\n this.checkLength()\n return Buffer.from(keccak256(`0x${this.buffer.toString('hex')}`))\n }\n\n static from(data: DataLike | undefined) {\n return data ? new Data(Data.lengthOf(data), data) : undefined\n }\n\n static lengthOf(data: DataLike): number {\n if (typeof data === 'string') {\n return data.length / 2\n } else if (data instanceof AbstractData) {\n return data.length\n } else {\n return typeof data.byteLength === 'function' ? data.byteLength() : data.byteLength\n }\n }\n\n private checkLength() {\n assertEx(this.bytes.length === this._length, `Length Mismatch: ${this.bytes.length} !== ${this._length}`)\n }\n}\n","import { base16, base58 } from '@scure/base'\nimport { assertEx } from '@xylabs/assert'\nimport { BigNumber } from '@xylabs/bignumber'\nimport { Buffer } from '@xylabs/buffer'\nimport { ifTypeOf } from '@xyo-network/typeof'\n\nimport { AbstractData } from './AbstractData'\nimport { DataLike } from './DataLike'\n\nconst stringToUint8Array = (value: string, base = 16) => {\n switch (base) {\n case 16:\n return base16.decode((value.startsWith('0x') ? value.slice(2) : value).toUpperCase())\n case 58:\n return base58.decode(value)\n default:\n throw Error(`Unsupported base [${base}]`)\n }\n}\n\nconst bigNumberToUint8Array = (value: BigNumber) => {\n //we do new BigNumber in case we got something BigNumberish by accident\n return bufferToUint8Array(Buffer.from(new BigNumber(value).toBuffer()))\n}\n\nconst bufferToUint8Array = (value: Buffer) => {\n return Uint8Array.from(value)\n}\n\nconst xyoDataToUint8Array = (value: AbstractData) => {\n return value.bytes\n}\n\nexport const toUint8ArrayOptional = (value?: DataLike, padLength?: number, base?: number): Uint8Array | undefined => {\n return value ? toUint8Array(value, padLength, base) : undefined\n}\n\nexport const toUint8Array = (value: DataLike, padLength?: number, base?: number): Uint8Array => {\n let result: Uint8Array | undefined =\n ifTypeOf<string, Uint8Array>('string', value as string, (value) => stringToUint8Array(value, base)) ??\n ifTypeOf<BigNumber, Uint8Array | undefined>('object', value as BigNumber, bigNumberToUint8Array, BigNumber.isBN) ??\n ifTypeOf<Buffer, Uint8Array | undefined>('object', value as Buffer, bufferToUint8Array, Buffer.isBuffer) ??\n ifTypeOf<AbstractData, Uint8Array | undefined>('object', value as Buffer, xyoDataToUint8Array, AbstractData.is) ??\n (value as Uint8Array)\n\n if (padLength && result.length < padLength) {\n result = new Uint8Array([...new Uint8Array(padLength - result.length), ...result])\n assertEx(result?.length <= padLength, 'Resulting length is greater than padLength')\n }\n\n return result\n}\n","import { Logger } from '@xyo-network/logger'\nimport { AnyObject } from '@xyo-network/object'\n\nexport type BaseParamsFields = {\n logger?: Logger\n}\n\nexport type BaseParams<TAdditionalParams extends AnyObject | void = void> = TAdditionalParams extends AnyObject\n ? BaseParamsFields & TAdditionalParams\n : BaseParamsFields\n\nexport abstract class Base<TParams extends BaseParams = BaseParams> {\n static defaultLogger?: Logger\n\n constructor(readonly params: TParams) {\n params.logger?.debug(`Base constructed [${Object(this).name}]`)\n }\n\n protected get logger() {\n return this.params?.logger ?? Base.defaultLogger ?? console\n }\n}\n","const dumpErrors = (errors: Error[]) => {\n errors.forEach((error) => {\n console.log(error, null, 2)\n })\n}\n\nexport { dumpErrors }\n","export const isBrowser = () => {\n return typeof process === 'undefined'\n}\n","import { v4 } from 'uuid'\n\nexport const uuid = () => {\n try {\n return v4()\n } catch {\n //generally if no crypto library support\n const bytes: number[] = []\n for (let i = 0; i < 16; i++) {\n bytes.push(Math.floor(Math.random() * 256))\n }\n console.log(`bytes: ${JSON.stringify(bytes)}`)\n return `${bytes[0].toString(16)}${bytes[1].toString(16)}${bytes[2].toString(16)}${bytes[3].toString(16)}-${bytes[4].toString(\n 16,\n )}${bytes[5].toString(16)}-${bytes[6].toString(16)}${bytes[7].toString(16)}-${bytes[8].toString(16)}${bytes[9].toString(16)}-${bytes[10].toString(\n 16,\n )}${bytes[11].toString(16)}${bytes[12].toString(16)}${bytes[13].toString(16)}${bytes[14].toString(16)}${bytes[15].toString(16)}`\n }\n}\n","import { AnyObject, ObjectWrapper } from '@xyo-network/object'\nimport { Promisable } from '@xyo-network/promise'\n\nexport interface Validator<T extends AnyObject = AnyObject> {\n validate(payload: T): Promisable<Error[]>\n}\n\nexport abstract class ValidatorBase<T extends AnyObject = AnyObject> extends ObjectWrapper<T> implements Validator<T> {\n abstract validate(payload: T): Promisable<Error[]>\n}\n","export * from './Data'\nexport * from './lib'\nexport * from '@xyo-network/address'\nexport * from '@xyo-network/hash'\nexport * from '@xyo-network/object'\nexport * from '@xyo-network/wasm'\n"],"mappings":"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","names":["base16","base58","assertEx","BigNumber","Buffer","value","base58","BigNumber","Buffer","assertEx","base16"]}
@@ -0,0 +1,13 @@
1
+ import { Logger } from '@xyo-network/logger';
2
+ import { AnyObject } from '@xyo-network/object';
3
+ export type BaseParamsFields = {
4
+ logger?: Logger;
5
+ };
6
+ export type BaseParams<TAdditionalParams extends AnyObject | void = void> = TAdditionalParams extends AnyObject ? BaseParamsFields & TAdditionalParams : BaseParamsFields;
7
+ export declare abstract class Base<TParams extends BaseParams = BaseParams> {
8
+ readonly params: TParams;
9
+ static defaultLogger?: Logger;
10
+ constructor(params: TParams);
11
+ protected get logger(): Logger | Console;
12
+ }
13
+ //# sourceMappingURL=Base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Base.d.ts","sourceRoot":"","sources":["../../src/lib/Base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,iBAAiB,SAAS,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,iBAAiB,SAAS,SAAS,GAC3G,gBAAgB,GAAG,iBAAiB,GACpC,gBAAgB,CAAA;AAEpB,8BAAsB,IAAI,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU;IAGpD,QAAQ,CAAC,MAAM,EAAE,OAAO;IAFpC,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;gBAER,MAAM,EAAE,OAAO;IAIpC,SAAS,KAAK,MAAM,qBAEnB;CACF"}
@@ -0,0 +1,13 @@
1
+ import { Logger } from '@xyo-network/logger';
2
+ import { AnyObject } from '@xyo-network/object';
3
+ export type BaseParamsFields = {
4
+ logger?: Logger;
5
+ };
6
+ export type BaseParams<TAdditionalParams extends AnyObject | void = void> = TAdditionalParams extends AnyObject ? BaseParamsFields & TAdditionalParams : BaseParamsFields;
7
+ export declare abstract class Base<TParams extends BaseParams = BaseParams> {
8
+ readonly params: TParams;
9
+ static defaultLogger?: Logger;
10
+ constructor(params: TParams);
11
+ protected get logger(): Logger | Console;
12
+ }
13
+ //# sourceMappingURL=Base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Base.d.ts","sourceRoot":"","sources":["../../src/lib/Base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,iBAAiB,SAAS,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,iBAAiB,SAAS,SAAS,GAC3G,gBAAgB,GAAG,iBAAiB,GACpC,gBAAgB,CAAA;AAEpB,8BAAsB,IAAI,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU;IAGpD,QAAQ,CAAC,MAAM,EAAE,OAAO;IAFpC,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;gBAER,MAAM,EAAE,OAAO;IAIpC,SAAS,KAAK,MAAM,qBAEnB;CACF"}
@@ -0,0 +1,9 @@
1
+ import { AnyObject, ObjectWrapper } from '@xyo-network/object';
2
+ import { Promisable } from '@xyo-network/promise';
3
+ export interface Validator<T extends AnyObject = AnyObject> {
4
+ validate(payload: T): Promisable<Error[]>;
5
+ }
6
+ export declare abstract class ValidatorBase<T extends AnyObject = AnyObject> extends ObjectWrapper<T> implements Validator<T> {
7
+ abstract validate(payload: T): Promisable<Error[]>;
8
+ }
9
+ //# sourceMappingURL=Validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Validator.d.ts","sourceRoot":"","sources":["../../src/lib/Validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACxD,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA;CAC1C;AAED,8BAAsB,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IACnH,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;CACnD"}
@@ -0,0 +1,9 @@
1
+ import { AnyObject, ObjectWrapper } from '@xyo-network/object';
2
+ import { Promisable } from '@xyo-network/promise';
3
+ export interface Validator<T extends AnyObject = AnyObject> {
4
+ validate(payload: T): Promisable<Error[]>;
5
+ }
6
+ export declare abstract class ValidatorBase<T extends AnyObject = AnyObject> extends ObjectWrapper<T> implements Validator<T> {
7
+ abstract validate(payload: T): Promisable<Error[]>;
8
+ }
9
+ //# sourceMappingURL=Validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Validator.d.ts","sourceRoot":"","sources":["../../src/lib/Validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACxD,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA;CAC1C;AAED,8BAAsB,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IACnH,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;CACnD"}
@@ -0,0 +1,3 @@
1
+ declare const dumpErrors: (errors: Error[]) => void;
2
+ export { dumpErrors };
3
+ //# sourceMappingURL=dumpErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dumpErrors.d.ts","sourceRoot":"","sources":["../../src/lib/dumpErrors.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,UAAU,WAAY,KAAK,EAAE,SAIlC,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ declare const dumpErrors: (errors: Error[]) => void;
2
+ export { dumpErrors };
3
+ //# sourceMappingURL=dumpErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dumpErrors.d.ts","sourceRoot":"","sources":["../../src/lib/dumpErrors.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,UAAU,WAAY,KAAK,EAAE,SAIlC,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ export * from './Base';
2
+ export * from './dumpErrors';
3
+ export * from './isBrowser';
4
+ export * from './uuid';
5
+ export * from './Validator';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA"}
@@ -0,0 +1,6 @@
1
+ export * from './Base';
2
+ export * from './dumpErrors';
3
+ export * from './isBrowser';
4
+ export * from './uuid';
5
+ export * from './Validator';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const isBrowser: () => boolean;
2
+ //# sourceMappingURL=isBrowser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isBrowser.d.ts","sourceRoot":"","sources":["../../src/lib/isBrowser.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,eAErB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const isBrowser: () => boolean;
2
+ //# sourceMappingURL=isBrowser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isBrowser.d.ts","sourceRoot":"","sources":["../../src/lib/isBrowser.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,eAErB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const uuid: () => string;
2
+ //# sourceMappingURL=uuid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../src/lib/uuid.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,cAgBhB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const uuid: () => string;
2
+ //# sourceMappingURL=uuid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../src/lib/uuid.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,cAgBhB,CAAA"}
package/package.json CHANGED
@@ -11,29 +11,24 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@scure/base": "^1.1.3",
14
- "@xylabs/assert": "^2.10.11",
15
- "@xylabs/bignumber": "^2.10.11",
16
- "@xylabs/buffer": "^2.10.11",
17
- "@xylabs/lodash": "^2.10.11",
18
- "@xyo-network/logger": "~2.73.3",
19
- "@xyo-network/promise": "~2.73.3",
20
- "@xyo-network/typeof": "~2.73.3",
21
- "hash-wasm": "^4.9.0",
14
+ "@xylabs/assert": "^2.11.5",
15
+ "@xylabs/bignumber": "^2.11.5",
16
+ "@xylabs/buffer": "^2.11.5",
17
+ "@xyo-network/address": "~2.74.0",
18
+ "@xyo-network/hash": "~2.74.0",
19
+ "@xyo-network/logger": "~2.74.0",
20
+ "@xyo-network/object": "~2.74.0",
21
+ "@xyo-network/promise": "~2.74.0",
22
+ "@xyo-network/typeof": "~2.74.0",
23
+ "@xyo-network/wasm": "~2.74.0",
22
24
  "keccak256": "^1.0.6",
23
- "sha.js": "^2.4.11",
24
- "uuid": "^9.0.0",
25
- "wasm-feature-detect": "^1.5.1"
25
+ "uuid": "^9.0.1"
26
26
  },
27
27
  "description": "Primary SDK for using XYO Protocol 2.0",
28
28
  "devDependencies": {
29
- "@types/lodash": "^4.14.198",
30
- "@types/sha.js": "^2.4.1",
31
- "@types/uuid": "^9.0.3",
32
- "@xylabs/lodash": "^2.10.11",
33
- "@xylabs/ts-scripts-yarn3": "^2.19.5",
34
- "@xylabs/tsconfig": "^2.19.5",
35
- "publint": "^0.2.2",
36
- "tsup": "^7.2.0",
29
+ "@types/uuid": "^9.0.4",
30
+ "@xylabs/ts-scripts-yarn3": "^3.0.27",
31
+ "@xylabs/tsconfig": "^3.0.27",
37
32
  "typescript": "^5.2.2"
38
33
  },
39
34
  "docs": "dist/docs.json",
@@ -73,11 +68,7 @@
73
68
  "type": "git",
74
69
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
75
70
  },
76
- "scripts": {
77
- "package-compile": "tsup && publint",
78
- "package-recompile": "tsup && publint"
79
- },
80
71
  "sideEffects": false,
81
72
  "types": "dist/index.d.ts",
82
- "version": "2.73.3"
73
+ "version": "2.74.0"
83
74
  }