@xyo-network/core 2.72.9 → 2.73.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 (167) hide show
  1. package/dist/index.d.mts +210 -0
  2. package/dist/index.d.ts +210 -0
  3. package/dist/index.js +527 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/index.mjs +486 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/package.json +37 -24
  8. package/src/Hasher/Hasher.ts +1 -1
  9. package/src/Hasher/removeFields.ts +2 -6
  10. package/tsup.config.ts +16 -0
  11. package/dist/cjs/Data/AbstractData.js +0 -13
  12. package/dist/cjs/Data/AbstractData.js.map +0 -1
  13. package/dist/cjs/Data/Data.js +0 -61
  14. package/dist/cjs/Data/Data.js.map +0 -1
  15. package/dist/cjs/Data/DataLike.js +0 -3
  16. package/dist/cjs/Data/DataLike.js.map +0 -1
  17. package/dist/cjs/Data/index.js +0 -8
  18. package/dist/cjs/Data/index.js.map +0 -1
  19. package/dist/cjs/Data/toUint8Array.js +0 -44
  20. package/dist/cjs/Data/toUint8Array.js.map +0 -1
  21. package/dist/cjs/Hasher/Hasher.js +0 -105
  22. package/dist/cjs/Hasher/Hasher.js.map +0 -1
  23. package/dist/cjs/Hasher/index.js +0 -8
  24. package/dist/cjs/Hasher/index.js.map +0 -1
  25. package/dist/cjs/Hasher/removeEmptyFields.js +0 -20
  26. package/dist/cjs/Hasher/removeEmptyFields.js.map +0 -1
  27. package/dist/cjs/Hasher/removeFields.js +0 -32
  28. package/dist/cjs/Hasher/removeFields.js.map +0 -1
  29. package/dist/cjs/Hasher/sortFields.js +0 -28
  30. package/dist/cjs/Hasher/sortFields.js.map +0 -1
  31. package/dist/cjs/Wasm/WasmSupport.js +0 -153
  32. package/dist/cjs/Wasm/WasmSupport.js.map +0 -1
  33. package/dist/cjs/Wasm/index.js +0 -5
  34. package/dist/cjs/Wasm/index.js.map +0 -1
  35. package/dist/cjs/index.js +0 -8
  36. package/dist/cjs/index.js.map +0 -1
  37. package/dist/cjs/lib/Address/index.js +0 -6
  38. package/dist/cjs/lib/Address/index.js.map +0 -1
  39. package/dist/cjs/lib/Address/normalizeAddress.js +0 -9
  40. package/dist/cjs/lib/Address/normalizeAddress.js.map +0 -1
  41. package/dist/cjs/lib/Address/trimAddressPrefix.js +0 -13
  42. package/dist/cjs/lib/Address/trimAddressPrefix.js.map +0 -1
  43. package/dist/cjs/lib/AnyObject.js +0 -3
  44. package/dist/cjs/lib/AnyObject.js.map +0 -1
  45. package/dist/cjs/lib/Base.js +0 -16
  46. package/dist/cjs/lib/Base.js.map +0 -1
  47. package/dist/cjs/lib/EmptyObject.js +0 -3
  48. package/dist/cjs/lib/EmptyObject.js.map +0 -1
  49. package/dist/cjs/lib/ObjectWrapper.js +0 -13
  50. package/dist/cjs/lib/ObjectWrapper.js.map +0 -1
  51. package/dist/cjs/lib/StringKeyObject.js +0 -3
  52. package/dist/cjs/lib/StringKeyObject.js.map +0 -1
  53. package/dist/cjs/lib/Validator.js +0 -8
  54. package/dist/cjs/lib/Validator.js.map +0 -1
  55. package/dist/cjs/lib/dumpErrors.js +0 -10
  56. package/dist/cjs/lib/dumpErrors.js.map +0 -1
  57. package/dist/cjs/lib/index.js +0 -14
  58. package/dist/cjs/lib/index.js.map +0 -1
  59. package/dist/cjs/lib/isBrowser.js +0 -8
  60. package/dist/cjs/lib/isBrowser.js.map +0 -1
  61. package/dist/cjs/lib/uuid.js +0 -20
  62. package/dist/cjs/lib/uuid.js.map +0 -1
  63. package/dist/docs.json +0 -11888
  64. package/dist/esm/Data/AbstractData.js +0 -9
  65. package/dist/esm/Data/AbstractData.js.map +0 -1
  66. package/dist/esm/Data/Data.js +0 -58
  67. package/dist/esm/Data/Data.js.map +0 -1
  68. package/dist/esm/Data/DataLike.js +0 -2
  69. package/dist/esm/Data/DataLike.js.map +0 -1
  70. package/dist/esm/Data/index.js +0 -5
  71. package/dist/esm/Data/index.js.map +0 -1
  72. package/dist/esm/Data/toUint8Array.js +0 -42
  73. package/dist/esm/Data/toUint8Array.js.map +0 -1
  74. package/dist/esm/Hasher/Hasher.js +0 -80
  75. package/dist/esm/Hasher/Hasher.js.map +0 -1
  76. package/dist/esm/Hasher/index.js +0 -5
  77. package/dist/esm/Hasher/index.js.map +0 -1
  78. package/dist/esm/Hasher/removeEmptyFields.js +0 -16
  79. package/dist/esm/Hasher/removeEmptyFields.js.map +0 -1
  80. package/dist/esm/Hasher/removeFields.js +0 -25
  81. package/dist/esm/Hasher/removeFields.js.map +0 -1
  82. package/dist/esm/Hasher/sortFields.js +0 -24
  83. package/dist/esm/Hasher/sortFields.js.map +0 -1
  84. package/dist/esm/Wasm/WasmSupport.js +0 -141
  85. package/dist/esm/Wasm/WasmSupport.js.map +0 -1
  86. package/dist/esm/Wasm/index.js +0 -2
  87. package/dist/esm/Wasm/index.js.map +0 -1
  88. package/dist/esm/index.js +0 -5
  89. package/dist/esm/index.js.map +0 -1
  90. package/dist/esm/lib/Address/index.js +0 -3
  91. package/dist/esm/lib/Address/index.js.map +0 -1
  92. package/dist/esm/lib/Address/normalizeAddress.js +0 -5
  93. package/dist/esm/lib/Address/normalizeAddress.js.map +0 -1
  94. package/dist/esm/lib/Address/trimAddressPrefix.js +0 -9
  95. package/dist/esm/lib/Address/trimAddressPrefix.js.map +0 -1
  96. package/dist/esm/lib/AnyObject.js +0 -2
  97. package/dist/esm/lib/AnyObject.js.map +0 -1
  98. package/dist/esm/lib/Base.js +0 -12
  99. package/dist/esm/lib/Base.js.map +0 -1
  100. package/dist/esm/lib/EmptyObject.js +0 -2
  101. package/dist/esm/lib/EmptyObject.js.map +0 -1
  102. package/dist/esm/lib/ObjectWrapper.js +0 -10
  103. package/dist/esm/lib/ObjectWrapper.js.map +0 -1
  104. package/dist/esm/lib/StringKeyObject.js +0 -2
  105. package/dist/esm/lib/StringKeyObject.js.map +0 -1
  106. package/dist/esm/lib/Validator.js +0 -4
  107. package/dist/esm/lib/Validator.js.map +0 -1
  108. package/dist/esm/lib/dumpErrors.js +0 -7
  109. package/dist/esm/lib/dumpErrors.js.map +0 -1
  110. package/dist/esm/lib/index.js +0 -11
  111. package/dist/esm/lib/index.js.map +0 -1
  112. package/dist/esm/lib/isBrowser.js +0 -4
  113. package/dist/esm/lib/isBrowser.js.map +0 -1
  114. package/dist/esm/lib/uuid.js +0 -16
  115. package/dist/esm/lib/uuid.js.map +0 -1
  116. package/dist/types/Data/AbstractData.d.ts +0 -12
  117. package/dist/types/Data/AbstractData.d.ts.map +0 -1
  118. package/dist/types/Data/Data.d.ts +0 -20
  119. package/dist/types/Data/Data.d.ts.map +0 -1
  120. package/dist/types/Data/DataLike.d.ts +0 -4
  121. package/dist/types/Data/DataLike.d.ts.map +0 -1
  122. package/dist/types/Data/index.d.ts +0 -5
  123. package/dist/types/Data/index.d.ts.map +0 -1
  124. package/dist/types/Data/toUint8Array.d.ts +0 -4
  125. package/dist/types/Data/toUint8Array.d.ts.map +0 -1
  126. package/dist/types/Hasher/Hasher.d.ts +0 -27
  127. package/dist/types/Hasher/Hasher.d.ts.map +0 -1
  128. package/dist/types/Hasher/index.d.ts +0 -5
  129. package/dist/types/Hasher/index.d.ts.map +0 -1
  130. package/dist/types/Hasher/removeEmptyFields.d.ts +0 -2
  131. package/dist/types/Hasher/removeEmptyFields.d.ts.map +0 -1
  132. package/dist/types/Hasher/removeFields.d.ts +0 -8
  133. package/dist/types/Hasher/removeFields.d.ts.map +0 -1
  134. package/dist/types/Hasher/sortFields.d.ts +0 -3
  135. package/dist/types/Hasher/sortFields.d.ts.map +0 -1
  136. package/dist/types/Wasm/WasmSupport.d.ts +0 -92
  137. package/dist/types/Wasm/WasmSupport.d.ts.map +0 -1
  138. package/dist/types/Wasm/index.d.ts +0 -2
  139. package/dist/types/Wasm/index.d.ts.map +0 -1
  140. package/dist/types/index.d.ts +0 -5
  141. package/dist/types/index.d.ts.map +0 -1
  142. package/dist/types/lib/Address/index.d.ts +0 -3
  143. package/dist/types/lib/Address/index.d.ts.map +0 -1
  144. package/dist/types/lib/Address/normalizeAddress.d.ts +0 -2
  145. package/dist/types/lib/Address/normalizeAddress.d.ts.map +0 -1
  146. package/dist/types/lib/Address/trimAddressPrefix.d.ts +0 -3
  147. package/dist/types/lib/Address/trimAddressPrefix.d.ts.map +0 -1
  148. package/dist/types/lib/AnyObject.d.ts +0 -2
  149. package/dist/types/lib/AnyObject.d.ts.map +0 -1
  150. package/dist/types/lib/Base.d.ts +0 -14
  151. package/dist/types/lib/Base.d.ts.map +0 -1
  152. package/dist/types/lib/EmptyObject.d.ts +0 -4
  153. package/dist/types/lib/EmptyObject.d.ts.map +0 -1
  154. package/dist/types/lib/ObjectWrapper.d.ts +0 -8
  155. package/dist/types/lib/ObjectWrapper.d.ts.map +0 -1
  156. package/dist/types/lib/StringKeyObject.d.ts +0 -6
  157. package/dist/types/lib/StringKeyObject.d.ts.map +0 -1
  158. package/dist/types/lib/Validator.d.ts +0 -10
  159. package/dist/types/lib/Validator.d.ts.map +0 -1
  160. package/dist/types/lib/dumpErrors.d.ts +0 -3
  161. package/dist/types/lib/dumpErrors.d.ts.map +0 -1
  162. package/dist/types/lib/index.d.ts +0 -11
  163. package/dist/types/lib/index.d.ts.map +0 -1
  164. package/dist/types/lib/isBrowser.d.ts +0 -2
  165. package/dist/types/lib/isBrowser.d.ts.map +0 -1
  166. package/dist/types/lib/uuid.d.ts +0 -2
  167. package/dist/types/lib/uuid.d.ts.map +0 -1
@@ -1,9 +0,0 @@
1
- export class AbstractData {
2
- get length() {
3
- return this.bytes.length;
4
- }
5
- static is(value) {
6
- return value instanceof AbstractData;
7
- }
8
- }
9
- //# sourceMappingURL=AbstractData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AbstractData.js","sourceRoot":"","sources":["../../../src/Data/AbstractData.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,YAAY;IAChC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAYD,MAAM,CAAC,EAAE,CAAC,KAAc;QACtB,OAAO,KAAK,YAAY,YAAY,CAAA;IACtC,CAAC;CACF"}
@@ -1,58 +0,0 @@
1
- import { base16, base58 } from '@scure/base';
2
- import { assertEx } from '@xylabs/assert';
3
- import { BigNumber } from '@xylabs/bignumber';
4
- import { Buffer, bufferPolyfill } from '@xylabs/buffer';
5
- import keccak256 from 'keccak256';
6
- import { AbstractData } from './AbstractData';
7
- import { toUint8ArrayOptional } from './toUint8Array';
8
- export class Data extends AbstractData {
9
- _bytes;
10
- _length;
11
- constructor(length, bytes, base) {
12
- super();
13
- this._bytes = toUint8ArrayOptional(bytes, length, base);
14
- this._length = length;
15
- }
16
- get base58() {
17
- this.checkLength();
18
- return base58.encode(this.bytes);
19
- }
20
- get bn() {
21
- this.checkLength();
22
- return new BigNumber(this.bytes);
23
- }
24
- get buffer() {
25
- this.checkLength();
26
- return Buffer.from(this.bytes);
27
- }
28
- get bytes() {
29
- return assertEx(this._bytes, 'Data uninitialized');
30
- }
31
- get hex() {
32
- this.checkLength();
33
- return base16.encode(this.bytes).toLowerCase();
34
- }
35
- get keccak256() {
36
- bufferPolyfill();
37
- this.checkLength();
38
- return Buffer.from(keccak256(`0x${this.buffer.toString('hex')}`));
39
- }
40
- static from(data) {
41
- return data ? new Data(Data.lengthOf(data), data) : undefined;
42
- }
43
- static lengthOf(data) {
44
- if (typeof data === 'string') {
45
- return data.length / 2;
46
- }
47
- else if (data instanceof AbstractData) {
48
- return data.length;
49
- }
50
- else {
51
- return typeof data.byteLength === 'function' ? data.byteLength() : data.byteLength;
52
- }
53
- }
54
- checkLength() {
55
- assertEx(this.bytes.length === this._length, `Length Mismatch: ${this.bytes.length} !== ${this._length}`);
56
- }
57
- }
58
- //# sourceMappingURL=Data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Data.js","sourceRoot":"","sources":["../../../src/Data/Data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,SAAS,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAErD,MAAM,OAAO,IAAK,SAAQ,YAAY;IAC5B,MAAM,CAAa;IACnB,OAAO,CAAQ;IAIvB,YAAY,MAAc,EAAE,KAAgB,EAAE,IAAa;QACzD,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACvD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACvB,CAAC;IAED,IAAI,MAAM;QACR,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED,IAAI,EAAE;QACJ,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED,IAAI,MAAM;QACR,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;IACpD,CAAC;IAED,IAAI,GAAG;QACL,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;IAChD,CAAC;IAED,IAAI,SAAS;QACX,cAAc,EAAE,CAAA;QAChB,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAA0B;QACpC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC/D,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAc;QAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;SACvB;aAAM,IAAI,IAAI,YAAY,YAAY,EAAE;YACvC,OAAO,IAAI,CAAC,MAAM,CAAA;SACnB;aAAM;YACL,OAAO,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAA;SACnF;IACH,CAAC;IAEO,WAAW;QACjB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,oBAAoB,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3G,CAAC;CACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=DataLike.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataLike.js","sourceRoot":"","sources":["../../../src/Data/DataLike.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- export * from './AbstractData';
2
- export * from './Data';
3
- export * from './DataLike';
4
- export * from './toUint8Array';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
@@ -1,42 +0,0 @@
1
- import { base16, base58 } from '@scure/base';
2
- import { assertEx } from '@xylabs/assert';
3
- import { BigNumber } from '@xylabs/bignumber';
4
- import { Buffer } from '@xylabs/buffer';
5
- import { ifTypeOf } from '@xyo-network/typeof';
6
- import { AbstractData } from './AbstractData';
7
- const stringToUint8Array = (value, base = 16) => {
8
- switch (base) {
9
- case 16:
10
- return base16.decode((value.startsWith('0x') ? value.slice(2) : value).toUpperCase());
11
- case 58:
12
- return base58.decode(value);
13
- default:
14
- throw Error(`Unsupported base [${base}]`);
15
- }
16
- };
17
- const bigNumberToUint8Array = (value) => {
18
- //we do new BigNumber in case we got something BigNumberish by accident
19
- return bufferToUint8Array(Buffer.from(new BigNumber(value).toBuffer()));
20
- };
21
- const bufferToUint8Array = (value) => {
22
- return Uint8Array.from(value);
23
- };
24
- const xyoDataToUint8Array = (value) => {
25
- return value.bytes;
26
- };
27
- export const toUint8ArrayOptional = (value, padLength, base) => {
28
- return value ? toUint8Array(value, padLength, base) : undefined;
29
- };
30
- export const toUint8Array = (value, padLength, base) => {
31
- let result = ifTypeOf('string', value, (value) => stringToUint8Array(value, base)) ??
32
- ifTypeOf('object', value, bigNumberToUint8Array, BigNumber.isBN) ??
33
- ifTypeOf('object', value, bufferToUint8Array, Buffer.isBuffer) ??
34
- ifTypeOf('object', value, xyoDataToUint8Array, AbstractData.is) ??
35
- value;
36
- if (padLength && result.length < padLength) {
37
- result = new Uint8Array([...new Uint8Array(padLength - result.length), ...result]);
38
- assertEx(result?.length <= padLength, 'Resulting length is greater than padLength');
39
- }
40
- return result;
41
- };
42
- //# sourceMappingURL=toUint8Array.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toUint8Array.js","sourceRoot":"","sources":["../../../src/Data/toUint8Array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE;IACtD,QAAQ,IAAI,EAAE;QACZ,KAAK,EAAE;YACL,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;QACvF,KAAK,EAAE;YACL,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC7B;YACE,MAAM,KAAK,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAA;KAC5C;AACH,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,KAAgB,EAAE,EAAE;IACjD,uEAAuE;IACvE,OAAO,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AACzE,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE;IAC3C,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,KAAmB,EAAE,EAAE;IAClD,OAAO,KAAK,CAAC,KAAK,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgB,EAAE,SAAkB,EAAE,IAAa,EAA0B,EAAE;IAClH,OAAO,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACjE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAe,EAAE,SAAkB,EAAE,IAAa,EAAc,EAAE;IAC7F,IAAI,MAAM,GACR,QAAQ,CAAqB,QAAQ,EAAE,KAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnG,QAAQ,CAAoC,QAAQ,EAAE,KAAkB,EAAE,qBAAqB,EAAE,SAAS,CAAC,IAAI,CAAC;QAChH,QAAQ,CAAiC,QAAQ,EAAE,KAAe,EAAE,kBAAkB,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxG,QAAQ,CAAuC,QAAQ,EAAE,KAAe,EAAE,mBAAmB,EAAE,YAAY,CAAC,EAAE,CAAC;QAC9G,KAAoB,CAAA;IAEvB,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE;QAC1C,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAA;QAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,4CAA4C,CAAC,CAAA;KACpF;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
@@ -1,80 +0,0 @@
1
- import { sha256 } from 'hash-wasm';
2
- import cloneDeep from 'lodash/cloneDeep';
3
- import shajs from 'sha.js';
4
- import { ObjectWrapper } from '../lib';
5
- import { WasmSupport } from '../Wasm';
6
- import { removeEmptyFields } from './removeEmptyFields';
7
- import { deepOmitUnderscoreFields } from './removeFields';
8
- import { sortFields } from './sortFields';
9
- const wasmSupportStatic = new WasmSupport(['bigInt']);
10
- export class PayloadHasher extends ObjectWrapper {
11
- static wasmInitialized = wasmSupportStatic.initialize();
12
- static wasmSupport = wasmSupportStatic;
13
- /** @deprecated use hashAsync instead */
14
- get hash() {
15
- // eslint-disable-next-line deprecation/deprecation
16
- return PayloadHasher.hash(this.obj);
17
- }
18
- get hashFields() {
19
- return PayloadHasher.hashFields(this.obj);
20
- }
21
- get stringified() {
22
- return PayloadHasher.stringify(this.obj);
23
- }
24
- static async filterExclude(objs = [], hash) {
25
- const hashes = Array.isArray(hash) ? hash : [hash];
26
- return (await this.hashPairs(objs)).filter(([_, objHash]) => !hashes.includes(objHash))?.map((pair) => pair[0]);
27
- }
28
- static async filterInclude(objs = [], hash) {
29
- const hashes = Array.isArray(hash) ? hash : [hash];
30
- return (await this.hashPairs(objs)).filter(([_, objHash]) => hashes.includes(objHash))?.map((pair) => pair[0]);
31
- }
32
- static async find(objs = [], hash) {
33
- return (await this.hashPairs(objs)).find(([_, objHash]) => objHash === hash)?.[0];
34
- }
35
- /** @deprecated use hashSync or hashAsync instead */
36
- static hash(obj) {
37
- return shajs('sha256').update(this.stringify(obj)).digest().toString('hex');
38
- }
39
- static async hashAsync(obj) {
40
- await PayloadHasher.wasmInitialized;
41
- if (PayloadHasher.wasmSupport.canUseWasm) {
42
- const stringToHash = PayloadHasher.stringify(obj);
43
- try {
44
- return await sha256(stringToHash);
45
- }
46
- catch (ex) {
47
- PayloadHasher.wasmSupport.allowWasm = false;
48
- }
49
- }
50
- // eslint-disable-next-line deprecation/deprecation
51
- return this.hash(obj);
52
- }
53
- static hashFields(obj) {
54
- return removeEmptyFields(deepOmitUnderscoreFields(cloneDeep(obj)));
55
- }
56
- static async hashPairs(objs) {
57
- return await Promise.all(objs.map(async (obj) => [obj, await PayloadHasher.hashAsync(obj)]));
58
- }
59
- static hashSync(obj) {
60
- return shajs('sha256').update(this.stringify(obj)).digest().toString('hex');
61
- }
62
- static async hashes(objs) {
63
- return await Promise.all(objs.map((obj) => this.hashAsync(obj)));
64
- }
65
- static stringify(obj) {
66
- return JSON.stringify(sortFields(this.hashFields(obj)));
67
- }
68
- static async toMap(objs) {
69
- const result = {};
70
- await Promise.all(objs.map(async (obj) => (result[await PayloadHasher.hashAsync(obj)] = obj)));
71
- return result;
72
- }
73
- async hashAsync() {
74
- return await PayloadHasher.hashAsync(this.obj);
75
- }
76
- }
77
- /** @deprecated use PayloadHasher instead */
78
- export class Hasher extends PayloadHasher {
79
- }
80
- //# sourceMappingURL=Hasher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Hasher.js","sourceRoot":"","sources":["../../../src/Hasher/Hasher.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export * from './Hasher';
2
- export * from './removeEmptyFields';
3
- export * from './removeFields';
4
- export * from './sortFields';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Hasher/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA"}
@@ -1,16 +0,0 @@
1
- import { typeOf } from '@xyo-network/typeof';
2
- export const removeEmptyFields = (obj) => {
3
- if (obj === null || Array.isArray(obj))
4
- return obj;
5
- const newObject = {};
6
- Object.entries(obj).forEach(([key, value]) => {
7
- if (typeOf(value) === 'object') {
8
- newObject[key] = removeEmptyFields(value);
9
- }
10
- else if (value !== undefined) {
11
- newObject[key] = value;
12
- }
13
- });
14
- return newObject;
15
- };
16
- //# sourceMappingURL=removeEmptyFields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"removeEmptyFields.js","sourceRoot":"","sources":["../../../src/Hasher/removeEmptyFields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAoC,GAAM,EAAE,EAAE;IAC7E,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IAElD,MAAM,SAAS,GAA4B,EAAE,CAAA;IAC7C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC3C,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YAC9B,SAAS,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,KAAgC,CAAC,CAAA;SACrE;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE;YAC9B,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;SACvB;IACH,CAAC,CAAC,CAAA;IACF,OAAO,SAAc,CAAA;AACvB,CAAC,CAAA"}
@@ -1,25 +0,0 @@
1
- import isObject from 'lodash/isObject';
2
- import mapValues from 'lodash/mapValues';
3
- import merge from 'lodash/merge';
4
- import omitBy from 'lodash/omitBy';
5
- import pickBy from 'lodash/pickBy';
6
- export const deepBy = (obj, predicate, func) => {
7
- if (Array.isArray(obj)) {
8
- return obj;
9
- }
10
- //pick the child objects
11
- const onlyObjects = pickBy(obj, isObject);
12
- //pick the child non-objects
13
- const nonObjects = pickBy(obj, (value) => !isObject(value));
14
- const pickedObjects = omitBy(onlyObjects, predicate);
15
- const pickedNonObjects = omitBy(nonObjects, predicate);
16
- const processedObjects = mapValues(pickedObjects, (obj) => deepBy(obj, predicate, func));
17
- return merge({}, pickedNonObjects, processedObjects);
18
- };
19
- export const deepOmitUnderscoreFields = (obj) => {
20
- return deepBy(obj, (_, key) => key.startsWith('_'), omitBy);
21
- };
22
- export const deepPickUnderscoreFields = (obj) => {
23
- return deepBy(obj, (_, key) => key.startsWith('_'), pickBy);
24
- };
25
- //# sourceMappingURL=removeFields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"removeFields.js","sourceRoot":"","sources":["../../../src/Hasher/removeFields.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,iBAAiB,CAAA;AACtC,OAAO,SAAS,MAAM,kBAAkB,CAAA;AACxC,OAAO,KAAK,MAAM,cAAc,CAAA;AAChC,OAAO,MAAM,MAAM,eAAe,CAAA;AAClC,OAAO,MAAM,MAAM,eAAe,CAAA;AAIlC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAsB,GAAM,EAAE,SAA8B,EAAE,IAAmC,EAAK,EAAE;IAC5H,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACtB,OAAO,GAAG,CAAA;KACX;IAED,wBAAwB;IACxB,MAAM,WAAW,GAAG,MAAM,CAAI,GAAG,EAAE,QAAQ,CAAC,CAAA;IAE5C,4BAA4B;IAC5B,MAAM,UAAU,GAAG,MAAM,CAAI,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IAE9D,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IACpD,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;IAEtD,MAAM,gBAAgB,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,GAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;IAE3F,OAAO,KAAK,CAAC,EAAE,EAAE,gBAAgB,EAAE,gBAAgB,CAAM,CAAA;AAC3D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAsB,GAAM,EAAE,EAAE;IACtE,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;AAC7D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAsB,GAAM,EAAE,EAAE;IACtE,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;AAC7D,CAAC,CAAA"}
@@ -1,24 +0,0 @@
1
- import { typeOf } from '@xyo-network/typeof';
2
- //if an object, sub-sort
3
- const subSort = (value) => {
4
- switch (typeOf(value)) {
5
- case 'object':
6
- return sortFields(value);
7
- default:
8
- return value;
9
- }
10
- };
11
- export const sortFields = (obj) => {
12
- if (obj === null) {
13
- return null;
14
- }
15
- const stringyObj = obj;
16
- const result = {};
17
- Object.keys(stringyObj)
18
- .sort()
19
- .forEach((key) => {
20
- result[key] = subSort(stringyObj[key]);
21
- });
22
- return result;
23
- };
24
- //# sourceMappingURL=sortFields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sortFields.js","sourceRoot":"","sources":["../../../src/Hasher/sortFields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAI5C,wBAAwB;AACxB,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,EAAE;IACjC,QAAQ,MAAM,CAAC,KAAK,CAAC,EAAE;QACrB,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,KAAgC,CAAC,CAAA;QACrD;YACE,OAAO,KAAK,CAAA;KACf;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAkC,GAAM,EAAE,EAAE;IACpE,IAAI,GAAG,KAAK,IAAI,EAAE;QAChB,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,UAAU,GAAG,GAAsB,CAAA;IAEzC,MAAM,MAAM,GAAoB,EAAE,CAAA;IAClC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SACpB,IAAI,EAAE;SACN,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IACJ,OAAO,MAAW,CAAA;AACpB,CAAC,CAAA"}
@@ -1,141 +0,0 @@
1
- import { bigInt, bulkMemory, exceptions, extendedConst, gc, memory64, multiValue, mutableGlobals, referenceTypes, relaxedSimd, saturatedFloatToInt, signExtensions, simd, streamingCompilation, tailCall, threads, } from 'wasm-feature-detect';
2
- export const WasmFeatureDetectors = {
3
- bigInt: bigInt,
4
- bulkMemory: bulkMemory,
5
- exceptions: exceptions,
6
- extendedConst: extendedConst,
7
- gc: gc,
8
- memory64: memory64,
9
- multiValue: multiValue,
10
- mutableGlobals: mutableGlobals,
11
- referenceTypes: referenceTypes,
12
- relaxedSimd: relaxedSimd,
13
- saturatedFloatToInt: saturatedFloatToInt,
14
- signExtensions: signExtensions,
15
- simd: simd,
16
- streamingCompilation: streamingCompilation,
17
- tailCall: tailCall,
18
- threads: threads,
19
- };
20
- export class WasmSupport {
21
- desiredFeatures;
22
- _allowWasm = true;
23
- _featureSupport = {};
24
- _forceWasm = false;
25
- _isInitialized = false;
26
- _isWasmFeatureSetSupported = false;
27
- /**
28
- * Instance constructor for use where async instantiation
29
- * is not possible. Where possible, prefer the static
30
- * create method over use of this constructor directly
31
- * as no initialization (feature detection) is able to
32
- * be done here
33
- * @param desiredFeatures The desired feature set
34
- */
35
- constructor(desiredFeatures) {
36
- this.desiredFeatures = desiredFeatures;
37
- }
38
- /**
39
- * Is Wasm allowed
40
- */
41
- get allowWasm() {
42
- return this._allowWasm;
43
- }
44
- /**
45
- * Whether or not to allow WASM usage
46
- */
47
- set allowWasm(v) {
48
- this._allowWasm = v;
49
- }
50
- /**
51
- * Whether or not Wasm should be used based on the desired
52
- * feature set, initialization state, or force-use settings
53
- */
54
- get canUseWasm() {
55
- return (
56
- // Just force WASM
57
- this._forceWasm ||
58
- // Or if we haven't checked be optimistic
59
- (this._allowWasm && !this._isInitialized) ||
60
- // Or if we have checked and WASM is not supported, be realistic
61
- (this._allowWasm && this._isInitialized && this._isWasmFeatureSetSupported));
62
- }
63
- /**
64
- * Returns a object containing a property for each desired wasm feature
65
- * with a boolean value indicating whether or not the feature is supported
66
- */
67
- get featureSupport() {
68
- return { ...this._featureSupport };
69
- }
70
- /**
71
- * Force use of Wasm
72
- */
73
- get forceWasm() {
74
- return this._forceWasm;
75
- }
76
- /**
77
- * Whether or not to force Wasm usage
78
- */
79
- set forceWasm(v) {
80
- this._forceWasm = v;
81
- }
82
- /**
83
- * Whether or not Wasm is supported based
84
- * on the desired feature set
85
- */
86
- get isDesiredFeatureSetSupported() {
87
- return this._isWasmFeatureSetSupported;
88
- }
89
- /**
90
- * Whether or not Wasm detection has been run
91
- * for the desired feature set
92
- */
93
- get isInitialized() {
94
- return this._isInitialized;
95
- }
96
- /**
97
- * Static creation & async initialization for use where
98
- * async instantiation is possible
99
- * @param desiredFeatures The desired feature set
100
- * @returns An initialized instance of the class with detection
101
- * for the desired feature set
102
- */
103
- static async create(desiredFeatures) {
104
- const instance = new WasmSupport(desiredFeatures);
105
- await instance.initialize();
106
- return Promise.resolve(instance);
107
- }
108
- /**
109
- * Checks for specific wasm features
110
- * @param features The list of features to check for
111
- * @returns True if all the features are supported, false otherwise
112
- */
113
- async featureCheck(features) {
114
- const results = await Promise.all(features.map((feature) => WasmFeatureDetectors[feature]).map(async (detector) => await detector()));
115
- return results.every((result) => result);
116
- }
117
- /**
118
- * Does feature detection for the desired feature set
119
- */
120
- async initialize() {
121
- if (this._isInitialized)
122
- return;
123
- await this.detectDesiredFeatures();
124
- this._isInitialized = true;
125
- return;
126
- }
127
- async detectDesiredFeatures() {
128
- for (let feature = 0; feature < this.desiredFeatures.length; feature++) {
129
- const desiredFeature = this.desiredFeatures[feature];
130
- const detector = WasmFeatureDetectors[desiredFeature];
131
- if (!(await detector())) {
132
- this._featureSupport[desiredFeature] = false;
133
- }
134
- else {
135
- this._featureSupport[desiredFeature] = true;
136
- }
137
- }
138
- this._isWasmFeatureSetSupported = Object.values(this._featureSupport).every((v) => v);
139
- }
140
- }
141
- //# sourceMappingURL=WasmSupport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WasmSupport.js","sourceRoot":"","sources":["../../../src/Wasm/WasmSupport.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from './WasmSupport';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Wasm/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
package/dist/esm/index.js DELETED
@@ -1,5 +0,0 @@
1
- export * from './Data';
2
- export * from './Hasher';
3
- export * from './lib';
4
- export * from './Wasm';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,QAAQ,CAAA"}
@@ -1,3 +0,0 @@
1
- export * from './normalizeAddress';
2
- export * from './trimAddressPrefix';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/Address/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}
@@ -1,5 +0,0 @@
1
- import { trimAddressPrefix } from './trimAddressPrefix';
2
- export const normalizeAddress = (address) => {
3
- return trimAddressPrefix(address.toLowerCase());
4
- };
5
- //# sourceMappingURL=normalizeAddress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalizeAddress.js","sourceRoot":"","sources":["../../../../src/lib/Address/normalizeAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,EAAE;IAClD,OAAO,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;AACjD,CAAC,CAAA"}
@@ -1,9 +0,0 @@
1
- export const addressPrefix = '0x';
2
- // NOTE: To prevent calling `.length` on every invocation, we cache the length
3
- // but do want to tether it to the length of the actual prefix so it's not some
4
- // magic number.
5
- const addressPrefixLength = addressPrefix.length;
6
- export const trimAddressPrefix = (address) => {
7
- return address.toLowerCase().startsWith(addressPrefix) ? address.substring(addressPrefixLength) : address;
8
- };
9
- //# sourceMappingURL=trimAddressPrefix.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trimAddressPrefix.js","sourceRoot":"","sources":["../../../../src/lib/Address/trimAddressPrefix.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAA;AAEjC,8EAA8E;AAC9E,+EAA+E;AAC/E,gBAAgB;AAChB,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAA;AAEhD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,EAAE;IACnD,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;AAC3G,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=AnyObject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnyObject.js","sourceRoot":"","sources":["../../../src/lib/AnyObject.ts"],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- export class Base {
2
- params;
3
- static defaultLogger;
4
- constructor(params) {
5
- this.params = params;
6
- params.logger?.debug(`Base constructed [${Object(this).name}]`);
7
- }
8
- get logger() {
9
- return this.params?.logger ?? Base.defaultLogger ?? console;
10
- }
11
- }
12
- //# sourceMappingURL=Base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Base.js","sourceRoot":"","sources":["../../../src/lib/Base.ts"],"names":[],"mappings":"AAYA,MAAM,OAAgB,IAAI;IAGH;IAFrB,MAAM,CAAC,aAAa,CAAS;IAE7B,YAAqB,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;QAClC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,qBAAqB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;IACjE,CAAC;IAED,IAAc,MAAM;QAClB,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,CAAA;IAC7D,CAAC;CACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=EmptyObject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmptyObject.js","sourceRoot":"","sources":["../../../src/lib/EmptyObject.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- export class ObjectWrapper {
2
- obj;
3
- constructor(obj) {
4
- this.obj = obj;
5
- }
6
- get stringKeyObj() {
7
- return this.obj;
8
- }
9
- }
10
- //# sourceMappingURL=ObjectWrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ObjectWrapper.js","sourceRoot":"","sources":["../../../src/lib/ObjectWrapper.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,aAAa;IACxB,GAAG,CAAG;IACf,YAAY,GAAM;QAChB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IACD,IAAc,YAAY;QACxB,OAAO,IAAI,CAAC,GAAsB,CAAA;IACpC,CAAC;CACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=StringKeyObject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StringKeyObject.js","sourceRoot":"","sources":["../../../src/lib/StringKeyObject.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- import { ObjectWrapper } from './ObjectWrapper';
2
- export class ValidatorBase extends ObjectWrapper {
3
- }
4
- //# sourceMappingURL=Validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../../src/lib/Validator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAM/C,MAAM,OAAgB,aAA+C,SAAQ,aAAgB;CAE5F"}
@@ -1,7 +0,0 @@
1
- const dumpErrors = (errors) => {
2
- errors.forEach((error) => {
3
- console.log(error, null, 2);
4
- });
5
- };
6
- export { dumpErrors };
7
- //# sourceMappingURL=dumpErrors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dumpErrors.js","sourceRoot":"","sources":["../../../src/lib/dumpErrors.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,MAAe,EAAE,EAAE;IACrC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -1,11 +0,0 @@
1
- export * from './Address';
2
- export * from './AnyObject';
3
- export * from './Base';
4
- export * from './dumpErrors';
5
- export * from './EmptyObject';
6
- export * from './isBrowser';
7
- export * from './ObjectWrapper';
8
- export * from './StringKeyObject';
9
- export * from './uuid';
10
- export * from './Validator';
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA"}
@@ -1,4 +0,0 @@
1
- export const isBrowser = () => {
2
- return typeof process === 'undefined';
3
- };
4
- //# sourceMappingURL=isBrowser.js.map