@qrkit/bc-ur 2.0.0-beta.9-qrkit.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 (229) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +996 -0
  3. package/dist/commonjs/classes/FountainDecoder.d.ts +125 -0
  4. package/dist/commonjs/classes/FountainDecoder.js +453 -0
  5. package/dist/commonjs/classes/FountainDecoder.js.map +1 -0
  6. package/dist/commonjs/classes/FountainEncoder.d.ts +63 -0
  7. package/dist/commonjs/classes/FountainEncoder.js +168 -0
  8. package/dist/commonjs/classes/FountainEncoder.js.map +1 -0
  9. package/dist/commonjs/classes/RegistryItem.d.ts +104 -0
  10. package/dist/commonjs/classes/RegistryItem.js +172 -0
  11. package/dist/commonjs/classes/RegistryItem.js.map +1 -0
  12. package/dist/commonjs/classes/UR.d.ts +89 -0
  13. package/dist/commonjs/classes/UR.js +243 -0
  14. package/dist/commonjs/classes/UR.js.map +1 -0
  15. package/dist/commonjs/classes/UrFountainDecoder.d.ts +15 -0
  16. package/dist/commonjs/classes/UrFountainDecoder.js +127 -0
  17. package/dist/commonjs/classes/UrFountainDecoder.js.map +1 -0
  18. package/dist/commonjs/classes/UrFountainEncoder.d.ts +42 -0
  19. package/dist/commonjs/classes/UrFountainEncoder.js +92 -0
  20. package/dist/commonjs/classes/UrFountainEncoder.js.map +1 -0
  21. package/dist/commonjs/classes/key.helper.d.ts +27 -0
  22. package/dist/commonjs/classes/key.helper.js +70 -0
  23. package/dist/commonjs/classes/key.helper.js.map +1 -0
  24. package/dist/commonjs/encodingMethods/BytewordEncoding.d.ts +11 -0
  25. package/dist/commonjs/encodingMethods/BytewordEncoding.js +23 -0
  26. package/dist/commonjs/encodingMethods/BytewordEncoding.js.map +1 -0
  27. package/dist/commonjs/encodingMethods/CborEncoding.d.ts +44 -0
  28. package/dist/commonjs/encodingMethods/CborEncoding.js +151 -0
  29. package/dist/commonjs/encodingMethods/CborEncoding.js.map +1 -0
  30. package/dist/commonjs/encodingMethods/HexEncoding.d.ts +8 -0
  31. package/dist/commonjs/encodingMethods/HexEncoding.js +24 -0
  32. package/dist/commonjs/encodingMethods/HexEncoding.js.map +1 -0
  33. package/dist/commonjs/encodingMethods/UrEncoding.d.ts +10 -0
  34. package/dist/commonjs/encodingMethods/UrEncoding.js +19 -0
  35. package/dist/commonjs/encodingMethods/UrEncoding.js.map +1 -0
  36. package/dist/commonjs/encodingMethods/bytewords.d.ts +27 -0
  37. package/dist/commonjs/encodingMethods/bytewords.js +152 -0
  38. package/dist/commonjs/encodingMethods/bytewords.js.map +1 -0
  39. package/dist/commonjs/encodingMethods/index.d.ts +19 -0
  40. package/dist/commonjs/encodingMethods/index.js +27 -0
  41. package/dist/commonjs/encodingMethods/index.js.map +1 -0
  42. package/dist/commonjs/encodingMethods/pipeline.d.ts +19 -0
  43. package/dist/commonjs/encodingMethods/pipeline.js +80 -0
  44. package/dist/commonjs/encodingMethods/pipeline.js.map +1 -0
  45. package/dist/commonjs/enums/EncodingMethodName.d.ts +10 -0
  46. package/dist/commonjs/enums/EncodingMethodName.js +15 -0
  47. package/dist/commonjs/enums/EncodingMethodName.js.map +1 -0
  48. package/dist/commonjs/errors.d.ts +15 -0
  49. package/dist/commonjs/errors.js +39 -0
  50. package/dist/commonjs/errors.js.map +1 -0
  51. package/dist/commonjs/helpers/aliasSampling.d.ts +6 -0
  52. package/dist/commonjs/helpers/aliasSampling.js +73 -0
  53. package/dist/commonjs/helpers/aliasSampling.js.map +1 -0
  54. package/dist/commonjs/helpers/crc32.d.ts +1 -0
  55. package/dist/commonjs/helpers/crc32.js +19 -0
  56. package/dist/commonjs/helpers/crc32.js.map +1 -0
  57. package/dist/commonjs/helpers/fountainUtils.d.ts +40 -0
  58. package/dist/commonjs/helpers/fountainUtils.js +124 -0
  59. package/dist/commonjs/helpers/fountainUtils.js.map +1 -0
  60. package/dist/commonjs/helpers/sha256.d.ts +1 -0
  61. package/dist/commonjs/helpers/sha256.js +78 -0
  62. package/dist/commonjs/helpers/sha256.js.map +1 -0
  63. package/dist/commonjs/helpers/type.helper.d.ts +3 -0
  64. package/dist/commonjs/helpers/type.helper.js +3 -0
  65. package/dist/commonjs/helpers/type.helper.js.map +1 -0
  66. package/dist/commonjs/helpers/uintArrayHelper.d.ts +287 -0
  67. package/dist/commonjs/helpers/uintArrayHelper.js +545 -0
  68. package/dist/commonjs/helpers/uintArrayHelper.js.map +1 -0
  69. package/dist/commonjs/helpers/utils.d.ts +55 -0
  70. package/dist/commonjs/helpers/utils.js +123 -0
  71. package/dist/commonjs/helpers/utils.js.map +1 -0
  72. package/dist/commonjs/index-react-native.d.ts +9 -0
  73. package/dist/commonjs/index-react-native.js +15 -0
  74. package/dist/commonjs/index-react-native.js.map +1 -0
  75. package/dist/commonjs/index.d.ts +21 -0
  76. package/dist/commonjs/index.js +34 -0
  77. package/dist/commonjs/index.js.map +1 -0
  78. package/dist/commonjs/interfaces/IEncodingMethod.d.ts +9 -0
  79. package/dist/commonjs/interfaces/IEncodingMethod.js +3 -0
  80. package/dist/commonjs/interfaces/IEncodingMethod.js.map +1 -0
  81. package/dist/commonjs/package.json +3 -0
  82. package/dist/commonjs/registry.d.ts +26 -0
  83. package/dist/commonjs/registry.js +118 -0
  84. package/dist/commonjs/registry.js.map +1 -0
  85. package/dist/commonjs/test.utils.d.ts +31 -0
  86. package/dist/commonjs/test.utils.js +88 -0
  87. package/dist/commonjs/test.utils.js.map +1 -0
  88. package/dist/commonjs/wrappers/cbor2-cjs.cjs.map +1 -0
  89. package/dist/commonjs/wrappers/cbor2.d.ts +2 -0
  90. package/dist/commonjs/wrappers/cbor2.js +14 -0
  91. package/dist/commonjs/wrappers/cbor2Wrapper.d.ts +14 -0
  92. package/dist/commonjs/wrappers/cbor2Wrapper.js +49 -0
  93. package/dist/commonjs/wrappers/cbor2Wrapper.js.map +1 -0
  94. package/dist/commonjs/xoshiro.d.ts +12 -0
  95. package/dist/commonjs/xoshiro.js +52 -0
  96. package/dist/commonjs/xoshiro.js.map +1 -0
  97. package/dist/esm/classes/FountainDecoder.d.ts +125 -0
  98. package/dist/esm/classes/FountainDecoder.js +447 -0
  99. package/dist/esm/classes/FountainDecoder.js.map +1 -0
  100. package/dist/esm/classes/FountainEncoder.d.ts +63 -0
  101. package/dist/esm/classes/FountainEncoder.js +164 -0
  102. package/dist/esm/classes/FountainEncoder.js.map +1 -0
  103. package/dist/esm/classes/RegistryItem.d.ts +104 -0
  104. package/dist/esm/classes/RegistryItem.js +166 -0
  105. package/dist/esm/classes/RegistryItem.js.map +1 -0
  106. package/dist/esm/classes/UR.d.ts +89 -0
  107. package/dist/esm/classes/UR.js +239 -0
  108. package/dist/esm/classes/UR.js.map +1 -0
  109. package/dist/esm/classes/UrFountainDecoder.d.ts +15 -0
  110. package/dist/esm/classes/UrFountainDecoder.js +123 -0
  111. package/dist/esm/classes/UrFountainDecoder.js.map +1 -0
  112. package/dist/esm/classes/UrFountainEncoder.d.ts +42 -0
  113. package/dist/esm/classes/UrFountainEncoder.js +88 -0
  114. package/dist/esm/classes/UrFountainEncoder.js.map +1 -0
  115. package/dist/esm/classes/key.helper.d.ts +27 -0
  116. package/dist/esm/classes/key.helper.js +66 -0
  117. package/dist/esm/classes/key.helper.js.map +1 -0
  118. package/dist/esm/encodingMethods/BytewordEncoding.d.ts +11 -0
  119. package/dist/esm/encodingMethods/BytewordEncoding.js +19 -0
  120. package/dist/esm/encodingMethods/BytewordEncoding.js.map +1 -0
  121. package/dist/esm/encodingMethods/CborEncoding.d.ts +44 -0
  122. package/dist/esm/encodingMethods/CborEncoding.js +147 -0
  123. package/dist/esm/encodingMethods/CborEncoding.js.map +1 -0
  124. package/dist/esm/encodingMethods/HexEncoding.d.ts +8 -0
  125. package/dist/esm/encodingMethods/HexEncoding.js +20 -0
  126. package/dist/esm/encodingMethods/HexEncoding.js.map +1 -0
  127. package/dist/esm/encodingMethods/UrEncoding.d.ts +10 -0
  128. package/dist/esm/encodingMethods/UrEncoding.js +15 -0
  129. package/dist/esm/encodingMethods/UrEncoding.js.map +1 -0
  130. package/dist/esm/encodingMethods/bytewords.d.ts +27 -0
  131. package/dist/esm/encodingMethods/bytewords.js +147 -0
  132. package/dist/esm/encodingMethods/bytewords.js.map +1 -0
  133. package/dist/esm/encodingMethods/index.d.ts +19 -0
  134. package/dist/esm/encodingMethods/index.js +24 -0
  135. package/dist/esm/encodingMethods/index.js.map +1 -0
  136. package/dist/esm/encodingMethods/pipeline.d.ts +19 -0
  137. package/dist/esm/encodingMethods/pipeline.js +76 -0
  138. package/dist/esm/encodingMethods/pipeline.js.map +1 -0
  139. package/dist/esm/enums/EncodingMethodName.d.ts +10 -0
  140. package/dist/esm/enums/EncodingMethodName.js +12 -0
  141. package/dist/esm/enums/EncodingMethodName.js.map +1 -0
  142. package/dist/esm/errors.d.ts +15 -0
  143. package/dist/esm/errors.js +31 -0
  144. package/dist/esm/errors.js.map +1 -0
  145. package/dist/esm/helpers/aliasSampling.d.ts +6 -0
  146. package/dist/esm/helpers/aliasSampling.js +70 -0
  147. package/dist/esm/helpers/aliasSampling.js.map +1 -0
  148. package/dist/esm/helpers/crc32.d.ts +1 -0
  149. package/dist/esm/helpers/crc32.js +16 -0
  150. package/dist/esm/helpers/crc32.js.map +1 -0
  151. package/dist/esm/helpers/fountainUtils.d.ts +40 -0
  152. package/dist/esm/helpers/fountainUtils.js +114 -0
  153. package/dist/esm/helpers/fountainUtils.js.map +1 -0
  154. package/dist/esm/helpers/sha256.d.ts +1 -0
  155. package/dist/esm/helpers/sha256.js +75 -0
  156. package/dist/esm/helpers/sha256.js.map +1 -0
  157. package/dist/esm/helpers/type.helper.d.ts +3 -0
  158. package/dist/esm/helpers/type.helper.js +2 -0
  159. package/dist/esm/helpers/type.helper.js.map +1 -0
  160. package/dist/esm/helpers/uintArrayHelper.d.ts +287 -0
  161. package/dist/esm/helpers/uintArrayHelper.js +526 -0
  162. package/dist/esm/helpers/uintArrayHelper.js.map +1 -0
  163. package/dist/esm/helpers/utils.d.ts +55 -0
  164. package/dist/esm/helpers/utils.js +102 -0
  165. package/dist/esm/helpers/utils.js.map +1 -0
  166. package/dist/esm/index-react-native.d.ts +9 -0
  167. package/dist/esm/index-react-native.js +12 -0
  168. package/dist/esm/index-react-native.js.map +1 -0
  169. package/dist/esm/index.d.ts +21 -0
  170. package/dist/esm/index.js +16 -0
  171. package/dist/esm/index.js.map +1 -0
  172. package/dist/esm/interfaces/IEncodingMethod.d.ts +9 -0
  173. package/dist/esm/interfaces/IEncodingMethod.js +2 -0
  174. package/dist/esm/interfaces/IEncodingMethod.js.map +1 -0
  175. package/dist/esm/package.json +3 -0
  176. package/dist/esm/registry.d.ts +26 -0
  177. package/dist/esm/registry.js +114 -0
  178. package/dist/esm/registry.js.map +1 -0
  179. package/dist/esm/test.utils.d.ts +31 -0
  180. package/dist/esm/test.utils.js +83 -0
  181. package/dist/esm/test.utils.js.map +1 -0
  182. package/dist/esm/wrappers/cbor2-deno.d.mts +2 -0
  183. package/dist/esm/wrappers/cbor2-deno.mjs +5 -0
  184. package/dist/esm/wrappers/cbor2-deno.mjs.map +1 -0
  185. package/dist/esm/wrappers/cbor2.d.ts +2 -0
  186. package/dist/esm/wrappers/cbor2.js +5 -0
  187. package/dist/esm/wrappers/cbor2.js.map +1 -0
  188. package/dist/esm/wrappers/cbor2Wrapper.d.ts +5 -0
  189. package/dist/esm/wrappers/cbor2Wrapper.js +6 -0
  190. package/dist/esm/wrappers/cbor2Wrapper.js.map +1 -0
  191. package/dist/esm/xoshiro.d.ts +12 -0
  192. package/dist/esm/xoshiro.js +47 -0
  193. package/dist/esm/xoshiro.js.map +1 -0
  194. package/dist/web/bytewords.js +335 -0
  195. package/index.html +98 -0
  196. package/package.json +94 -0
  197. package/src/classes/FountainDecoder.ts +539 -0
  198. package/src/classes/FountainEncoder.ts +211 -0
  199. package/src/classes/RegistryItem.ts +240 -0
  200. package/src/classes/UR.ts +308 -0
  201. package/src/classes/UrFountainDecoder.ts +142 -0
  202. package/src/classes/UrFountainEncoder.ts +103 -0
  203. package/src/classes/key.helper.ts +85 -0
  204. package/src/encodingMethods/BytewordEncoding.ts +23 -0
  205. package/src/encodingMethods/CborEncoding.ts +196 -0
  206. package/src/encodingMethods/HexEncoding.ts +23 -0
  207. package/src/encodingMethods/UrEncoding.ts +19 -0
  208. package/src/encodingMethods/bytewords.ts +215 -0
  209. package/src/encodingMethods/index.ts +26 -0
  210. package/src/encodingMethods/pipeline.ts +103 -0
  211. package/src/enums/EncodingMethodName.ts +10 -0
  212. package/src/errors.ts +34 -0
  213. package/src/helpers/aliasSampling.ts +87 -0
  214. package/src/helpers/crc32.ts +19 -0
  215. package/src/helpers/fountainUtils.ts +157 -0
  216. package/src/helpers/sha256.ts +88 -0
  217. package/src/helpers/type.helper.ts +1 -0
  218. package/src/helpers/uintArrayHelper.ts +611 -0
  219. package/src/helpers/utils.ts +135 -0
  220. package/src/index-react-native.ts +12 -0
  221. package/src/index.ts +44 -0
  222. package/src/interfaces/IEncodingMethod.ts +10 -0
  223. package/src/registry.ts +146 -0
  224. package/src/test.utils.ts +105 -0
  225. package/src/wrappers/cbor2-cjs.cts +6 -0
  226. package/src/wrappers/cbor2-deno.mts +6 -0
  227. package/src/wrappers/cbor2.ts +7 -0
  228. package/src/wrappers/cbor2Wrapper.ts +14 -0
  229. package/src/xoshiro.ts +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/encodingMethods/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Defaultly used encoding methods.
3
+ */
4
+ export declare enum EncodingMethodName {
5
+ bytewords = "bytewords",
6
+ cbor = "cbor",
7
+ hex = "hex",
8
+ pipe = "pipe",
9
+ ur = "ur"
10
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EncodingMethodName = void 0;
4
+ /**
5
+ * Defaultly used encoding methods.
6
+ */
7
+ var EncodingMethodName;
8
+ (function (EncodingMethodName) {
9
+ EncodingMethodName["bytewords"] = "bytewords";
10
+ EncodingMethodName["cbor"] = "cbor";
11
+ EncodingMethodName["hex"] = "hex";
12
+ EncodingMethodName["pipe"] = "pipe";
13
+ EncodingMethodName["ur"] = "ur";
14
+ })(EncodingMethodName || (exports.EncodingMethodName = EncodingMethodName = {}));
15
+ //# sourceMappingURL=EncodingMethodName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncodingMethodName.js","sourceRoot":"","sources":["../../../src/enums/EncodingMethodName.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,6CAAuB,CAAA;IACvB,mCAAa,CAAA;IACb,iCAAW,CAAA;IACX,mCAAa,CAAA;IACb,+BAAS,CAAA;AACX,CAAC,EANW,kBAAkB,kCAAlB,kBAAkB,QAM7B"}
@@ -0,0 +1,15 @@
1
+ export declare class InvalidSchemeError extends Error {
2
+ constructor();
3
+ }
4
+ export declare class InvalidPathLengthError extends Error {
5
+ constructor();
6
+ }
7
+ export declare class InvalidTypeError extends Error {
8
+ constructor();
9
+ }
10
+ export declare class InvalidSequenceComponentError extends Error {
11
+ constructor();
12
+ }
13
+ export declare class InvalidChecksumError extends Error {
14
+ constructor();
15
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidChecksumError = exports.InvalidSequenceComponentError = exports.InvalidTypeError = exports.InvalidPathLengthError = exports.InvalidSchemeError = void 0;
4
+ class InvalidSchemeError extends Error {
5
+ constructor() {
6
+ super("Invalid Scheme");
7
+ this.name = "InvalidSchemeError";
8
+ }
9
+ }
10
+ exports.InvalidSchemeError = InvalidSchemeError;
11
+ class InvalidPathLengthError extends Error {
12
+ constructor() {
13
+ super("Invalid Path");
14
+ this.name = "InvalidPathLengthError";
15
+ }
16
+ }
17
+ exports.InvalidPathLengthError = InvalidPathLengthError;
18
+ class InvalidTypeError extends Error {
19
+ constructor() {
20
+ super("Invalid Type");
21
+ this.name = "InvalidTypeError";
22
+ }
23
+ }
24
+ exports.InvalidTypeError = InvalidTypeError;
25
+ class InvalidSequenceComponentError extends Error {
26
+ constructor() {
27
+ super("Invalid Sequence Component");
28
+ this.name = "InvalidSequenceComponentError";
29
+ }
30
+ }
31
+ exports.InvalidSequenceComponentError = InvalidSequenceComponentError;
32
+ class InvalidChecksumError extends Error {
33
+ constructor() {
34
+ super("Invalid Checksum");
35
+ this.name = "InvalidChecksumError";
36
+ }
37
+ }
38
+ exports.InvalidChecksumError = InvalidChecksumError;
39
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,kBAAmB,SAAQ,KAAK;IAC3C;QACE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC;AAED,MAAa,sBAAuB,SAAQ,KAAK;IAC/C;QACE,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AALD,wDAKC;AAED,MAAa,gBAAiB,SAAQ,KAAK;IACzC;QACE,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AALD,4CAKC;AAED,MAAa,6BAA8B,SAAQ,KAAK;IACtD;QACE,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAC9C,CAAC;CACF;AALD,sEAKC;AAED,MAAa,oBAAqB,SAAQ,KAAK;IAC7C;QACE,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AALD,oDAKC"}
@@ -0,0 +1,6 @@
1
+ type RNGFunction = () => number;
2
+ declare const sample: (probabilities: number[], outcomes?: any[], rng?: RNGFunction) => {
3
+ next: (numOfSamples?: number) => any;
4
+ };
5
+ export default sample;
6
+ export { sample };
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sample = void 0;
4
+ const precomputeAlias = (p, n) => {
5
+ const sum = p.reduce((acc, val, index) => {
6
+ if (val < 0) {
7
+ throw new Error(`Probability must be positive: p[${index}]=${val}`);
8
+ }
9
+ return acc + val;
10
+ }, 0);
11
+ if (sum === 0) {
12
+ throw new Error("Probability sum must be greater than zero.");
13
+ }
14
+ const scaledProbabilities = p.map(prob => (prob * n) / sum);
15
+ const aliasData = { prob: new Array(n), alias: new Array(n) };
16
+ const small = [];
17
+ const large = [];
18
+ for (let i = n - 1; i >= 0; i--) {
19
+ if (scaledProbabilities[i] < 1) {
20
+ small.push(i);
21
+ }
22
+ else {
23
+ large.push(i);
24
+ }
25
+ }
26
+ while (small.length > 0 && large.length > 0) {
27
+ const less = small.pop();
28
+ const more = large.pop();
29
+ aliasData.prob[less] = scaledProbabilities[less];
30
+ aliasData.alias[less] = more;
31
+ scaledProbabilities[more] = scaledProbabilities[more] + scaledProbabilities[less] - 1;
32
+ if (scaledProbabilities[more] < 1) {
33
+ small.push(more);
34
+ }
35
+ else {
36
+ large.push(more);
37
+ }
38
+ }
39
+ while (large.length > 0) {
40
+ aliasData.prob[large.pop()] = 1;
41
+ }
42
+ while (small.length > 0) {
43
+ aliasData.prob[small.pop()] = 1;
44
+ }
45
+ return aliasData;
46
+ };
47
+ const draw = (aliasData, outcomes, rng) => {
48
+ const c = Math.floor(rng() * aliasData.prob.length);
49
+ return rng() < aliasData.prob[c] ? outcomes[c] : outcomes[aliasData.alias[c]];
50
+ };
51
+ const next = (aliasData, outcomes, rng, numOfSamples = 1) => {
52
+ if (numOfSamples === 1) {
53
+ return draw(aliasData, outcomes, rng);
54
+ }
55
+ return Array.from({ length: numOfSamples }, () => draw(aliasData, outcomes, rng));
56
+ };
57
+ const sample = (probabilities, outcomes, rng = Math.random) => {
58
+ if (!Array.isArray(probabilities)) {
59
+ throw new Error("Probabilities must be an array.");
60
+ }
61
+ if (probabilities.length === 0) {
62
+ throw new Error("Probabilities array must not be empty.");
63
+ }
64
+ const n = probabilities.length;
65
+ const indexedOutcomes = outcomes ?? Array.from({ length: n }, (_, i) => i);
66
+ const aliasData = precomputeAlias(probabilities, n);
67
+ return {
68
+ next: (numOfSamples) => next(aliasData, indexedOutcomes, rng, numOfSamples),
69
+ };
70
+ };
71
+ exports.sample = sample;
72
+ exports.default = sample;
73
+ //# sourceMappingURL=aliasSampling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aliasSampling.js","sourceRoot":"","sources":["../../../src/helpers/aliasSampling.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function crc32(message: Uint8Array): number;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.crc32 = crc32;
4
+ const CRC32_TABLE = new Uint32Array(256);
5
+ for (let i = 0; i < 256; i++) {
6
+ let c = i;
7
+ for (let j = 0; j < 8; j++) {
8
+ c = (c & 1) !== 0 ? (0xedb88320 ^ (c >>> 1)) : (c >>> 1);
9
+ }
10
+ CRC32_TABLE[i] = c >>> 0;
11
+ }
12
+ function crc32(message) {
13
+ let crc = 0xffffffff;
14
+ for (const byte of message) {
15
+ crc = CRC32_TABLE[(crc ^ byte) & 0xff] ^ (crc >>> 8);
16
+ }
17
+ return (crc ^ 0xffffffff) >>> 0;
18
+ }
19
+ //# sourceMappingURL=crc32.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crc32.js","sourceRoot":"","sources":["../../../src/helpers/crc32.ts"],"names":[],"mappings":";;AAUA,sBAQC;AAlBD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;AAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAgB,KAAK,CAAC,OAAmB;IACvC,IAAI,GAAG,GAAG,UAAU,CAAC;IAErB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,GAAG,GAAG,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import Xoshiro from "../xoshiro.js";
2
+ export declare const chooseDegree: (seqLenth: number, rng: Xoshiro) => number;
3
+ export declare const shuffle: (items: number[], rng: Xoshiro, degree?: number) => number[];
4
+ /**
5
+ * Get an array of indexes for the fragments that we want to mix with each other.
6
+ * The first `seqLenth` parts are the "pure" fragments, not mixed with any others.
7
+ * This means that if you only generate the first `seqLenth` parts,
8
+ * then you have all the parts you need to decode the message.
9
+ * @param seqNum sequence (index + 1) of the fragment.
10
+ * @param seqLength total length of pure fragments.
11
+ * @param checksum
12
+ * @returns array of fragment indexes.
13
+ */
14
+ export declare const chooseFragments: (seqNum: number, seqLength: number, checksum: number) => number[];
15
+ /**
16
+ * Mix the fragments of the passed indexes.
17
+ * @param indexes array of indexes to include in the mix.
18
+ * @param fragments array of pure fragments for a given payload.
19
+ * @returns A mixed fragment, represented as a Uint8Array.
20
+ */
21
+ export declare const mixFragments: (indexes: number[], fragments: Uint8Array[], nominalFragmentLength: number) => Uint8Array;
22
+ /**
23
+ * Find fragment length that is between min and max and for all and last fragment (last fragment can be smaller)
24
+ * @param messageLength length of the message that needs to be encoded
25
+ * @param minFragmentLength minumum required length of a fragment
26
+ * @param maxFragmentLength maximum length of a fragment.
27
+ * @returns
28
+ *
29
+ * @docs https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2024-001-multipart-ur.md#determining-fragment-length
30
+ */
31
+ export declare function findNominalFragmentLength(messageLength: number, maxFragmentLength: number, minFragmentLength?: number): number;
32
+ /**
33
+ * Splits the given message into fixed-length fragments, padding the final fragment with zeros if necessary.
34
+ *
35
+ * @param message - The input message as a Uint8Array.
36
+ * @param fragmentLength - The desired length of each fragment.
37
+ * @returns An array of Uint8Array fragments, each of the specified length. The last fragment will be padded with zeros if it is shorter than the fragment length.
38
+ * @throws Error if the fragmentLength is not a positive number.
39
+ */
40
+ export declare function partitionMessage(message: Uint8Array, fragmentLength: number): Uint8Array[];
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mixFragments = exports.chooseFragments = exports.shuffle = exports.chooseDegree = void 0;
4
+ exports.findNominalFragmentLength = findNominalFragmentLength;
5
+ exports.partitionMessage = partitionMessage;
6
+ const tslib_1 = require("tslib");
7
+ const uintArrayHelper_js_1 = require("./uintArrayHelper.js");
8
+ const utils_js_1 = require("./utils.js");
9
+ const xoshiro_js_1 = tslib_1.__importDefault(require("../xoshiro.js"));
10
+ const aliasSampling_js_1 = require("./aliasSampling.js");
11
+ const chooseDegree = (seqLenth, rng) => {
12
+ const degreeProbabilities = [...new Array(seqLenth)].map((_, index) => 1 / (index + 1));
13
+ //@ts-ignore
14
+ const degreeChooser = (0, aliasSampling_js_1.sample)(degreeProbabilities, undefined, rng.nextDouble);
15
+ return degreeChooser.next() + 1;
16
+ };
17
+ exports.chooseDegree = chooseDegree;
18
+ const shuffle = (items, rng, degree) => {
19
+ if (!degree)
20
+ degree = items.length;
21
+ let remaining = [...items];
22
+ let result = [];
23
+ let i = 1;
24
+ while (remaining.length > 0 && i <= degree) {
25
+ let index = rng.nextInt(0, remaining.length - 1);
26
+ let item = remaining[index];
27
+ // remaining.erase(remaining.begin() + index);
28
+ remaining.splice(index, 1);
29
+ result.push(item);
30
+ i++;
31
+ }
32
+ return result;
33
+ };
34
+ exports.shuffle = shuffle;
35
+ /**
36
+ * Get an array of indexes for the fragments that we want to mix with each other.
37
+ * The first `seqLenth` parts are the "pure" fragments, not mixed with any others.
38
+ * This means that if you only generate the first `seqLenth` parts,
39
+ * then you have all the parts you need to decode the message.
40
+ * @param seqNum sequence (index + 1) of the fragment.
41
+ * @param seqLength total length of pure fragments.
42
+ * @param checksum
43
+ * @returns array of fragment indexes.
44
+ */
45
+ const chooseFragments = (seqNum, seqLength, checksum) => {
46
+ //The first `seqLenth` parts are the "pure" fragments
47
+ if (seqNum <= seqLength) {
48
+ // return the index of the current fragment.
49
+ return [seqNum - 1];
50
+ }
51
+ else {
52
+ const seed = (0, uintArrayHelper_js_1.concatUint8Arrays)([(0, utils_js_1.intToBytes)(seqNum), (0, utils_js_1.intToBytes)(checksum)]);
53
+ const rng = new xoshiro_js_1.default(seed);
54
+ const degree = (0, exports.chooseDegree)(seqLength, rng);
55
+ const indexes = [...new Array(seqLength)].map((_, index) => index);
56
+ const shuffledIndexes = (0, exports.shuffle)(indexes, rng, degree);
57
+ // return a mix of indexes that we want to include.
58
+ return shuffledIndexes;
59
+ }
60
+ };
61
+ exports.chooseFragments = chooseFragments;
62
+ /**
63
+ * Mix the fragments of the passed indexes.
64
+ * @param indexes array of indexes to include in the mix.
65
+ * @param fragments array of pure fragments for a given payload.
66
+ * @returns A mixed fragment, represented as a Uint8Array.
67
+ */
68
+ const mixFragments = (indexes, fragments, nominalFragmentLength) => {
69
+ return indexes.reduce((result, index) => (0, utils_js_1.bufferXOR)(fragments[index], result), new Uint8Array(nominalFragmentLength).fill(0));
70
+ };
71
+ exports.mixFragments = mixFragments;
72
+ /**
73
+ * Find fragment length that is between min and max and for all and last fragment (last fragment can be smaller)
74
+ * @param messageLength length of the message that needs to be encoded
75
+ * @param minFragmentLength minumum required length of a fragment
76
+ * @param maxFragmentLength maximum length of a fragment.
77
+ * @returns
78
+ *
79
+ * @docs https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2024-001-multipart-ur.md#determining-fragment-length
80
+ */
81
+ function findNominalFragmentLength(messageLength, maxFragmentLength, minFragmentLength = 10) {
82
+ (0, utils_js_1.assert)(messageLength > 0, "MessageLength should be bigger then 0");
83
+ (0, utils_js_1.assert)(minFragmentLength > 0, "minFragmentLength should be bigger then 0");
84
+ (0, utils_js_1.assert)(maxFragmentLength >= minFragmentLength, "maxFragmentLength should be >= minFragmentLength");
85
+ // Calculate the maximum number of fragments that can be created with the minimum allowed length
86
+ const maxFragmentCount = Math.ceil(messageLength / minFragmentLength);
87
+ let fragmentLength = 0;
88
+ // Try increasing the number of fragments until a suitable fragment length is found
89
+ for (let fragmentCount = 1; fragmentCount <= maxFragmentCount; fragmentCount++) {
90
+ // Calculate the nominal fragment length for the current fragment count
91
+ fragmentLength = Math.ceil(messageLength / fragmentCount);
92
+ // If the nominal fragment length is less than or equal to the maximum allowed length,
93
+ // then we have found a suitable fragment length, so we can stop searching
94
+ if (fragmentLength <= maxFragmentLength) {
95
+ break;
96
+ }
97
+ }
98
+ return fragmentLength;
99
+ }
100
+ /**
101
+ * Splits the given message into fixed-length fragments, padding the final fragment with zeros if necessary.
102
+ *
103
+ * @param message - The input message as a Uint8Array.
104
+ * @param fragmentLength - The desired length of each fragment.
105
+ * @returns An array of Uint8Array fragments, each of the specified length. The last fragment will be padded with zeros if it is shorter than the fragment length.
106
+ * @throws Error if the fragmentLength is not a positive number.
107
+ */
108
+ function partitionMessage(message, fragmentLength) {
109
+ if (fragmentLength <= 0) {
110
+ throw new Error("Fragment length must be a positive number.");
111
+ }
112
+ const fragments = [];
113
+ const totalFragments = Math.ceil(message.length / fragmentLength);
114
+ for (let i = 0; i < totalFragments; i++) {
115
+ const start = i * fragmentLength;
116
+ const end = Math.min(start + fragmentLength, message.length);
117
+ const fragment = new Uint8Array(fragmentLength);
118
+ // Copy the actual bytes into the fragment
119
+ fragment.set(message.subarray(start, end));
120
+ fragments.push(fragment);
121
+ }
122
+ return fragments;
123
+ }
124
+ //# sourceMappingURL=fountainUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fountainUtils.js","sourceRoot":"","sources":["../../../src/helpers/fountainUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function sha256(message: Uint8Array): Uint8Array;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sha256 = sha256;
4
+ const K = new Uint32Array([
5
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
6
+ 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
7
+ 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
8
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
9
+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
10
+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
11
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
12
+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
13
+ ]);
14
+ const INITIAL_HASH = new Uint32Array([
15
+ 0x6a09e667,
16
+ 0xbb67ae85,
17
+ 0x3c6ef372,
18
+ 0xa54ff53a,
19
+ 0x510e527f,
20
+ 0x9b05688c,
21
+ 0x1f83d9ab,
22
+ 0x5be0cd19,
23
+ ]);
24
+ const rotr = (value, bits) => (value >>> bits) | (value << (32 - bits));
25
+ function sha256(message) {
26
+ const bitLength = message.length * 8;
27
+ const paddedLength = Math.ceil((message.length + 9) / 64) * 64;
28
+ const padded = new Uint8Array(paddedLength);
29
+ padded.set(message);
30
+ padded[message.length] = 0x80;
31
+ const view = new DataView(padded.buffer);
32
+ view.setUint32(paddedLength - 8, Math.floor(bitLength / 0x100000000), false);
33
+ view.setUint32(paddedLength - 4, bitLength >>> 0, false);
34
+ const hash = new Uint32Array(INITIAL_HASH);
35
+ const w = new Uint32Array(64);
36
+ for (let offset = 0; offset < paddedLength; offset += 64) {
37
+ for (let i = 0; i < 16; i++) {
38
+ w[i] = view.getUint32(offset + i * 4, false);
39
+ }
40
+ for (let i = 16; i < 64; i++) {
41
+ const s0 = rotr(w[i - 15], 7) ^ rotr(w[i - 15], 18) ^ (w[i - 15] >>> 3);
42
+ const s1 = rotr(w[i - 2], 17) ^ rotr(w[i - 2], 19) ^ (w[i - 2] >>> 10);
43
+ w[i] = (w[i - 16] + s0 + w[i - 7] + s1) >>> 0;
44
+ }
45
+ let [a, b, c, d, e, f, g, h] = hash;
46
+ for (let i = 0; i < 64; i++) {
47
+ const s1 = rotr(e, 6) ^ rotr(e, 11) ^ rotr(e, 25);
48
+ const ch = (e & f) ^ (~e & g);
49
+ const temp1 = (h + s1 + ch + K[i] + w[i]) >>> 0;
50
+ const s0 = rotr(a, 2) ^ rotr(a, 13) ^ rotr(a, 22);
51
+ const maj = (a & b) ^ (a & c) ^ (b & c);
52
+ const temp2 = (s0 + maj) >>> 0;
53
+ h = g;
54
+ g = f;
55
+ f = e;
56
+ e = (d + temp1) >>> 0;
57
+ d = c;
58
+ c = b;
59
+ b = a;
60
+ a = (temp1 + temp2) >>> 0;
61
+ }
62
+ hash[0] = (hash[0] + a) >>> 0;
63
+ hash[1] = (hash[1] + b) >>> 0;
64
+ hash[2] = (hash[2] + c) >>> 0;
65
+ hash[3] = (hash[3] + d) >>> 0;
66
+ hash[4] = (hash[4] + e) >>> 0;
67
+ hash[5] = (hash[5] + f) >>> 0;
68
+ hash[6] = (hash[6] + g) >>> 0;
69
+ hash[7] = (hash[7] + h) >>> 0;
70
+ }
71
+ const digest = new Uint8Array(32);
72
+ const digestView = new DataView(digest.buffer);
73
+ for (let i = 0; i < hash.length; i++) {
74
+ digestView.setUint32(i * 4, hash[i], false);
75
+ }
76
+ return digest;
77
+ }
78
+ //# sourceMappingURL=sha256.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sha256.js","sourceRoot":"","sources":["../../../src/helpers/sha256.ts"],"names":[],"mappings":";;AAyBA,wBA8DC;AAvFD,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC;IACxB,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;IAC9F,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;IAC9F,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;IAC9F,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;IAC9F,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;IAC9F,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;IAC9F,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;IAC9F,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;CAC/F,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC;IACnC,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;CACX,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,IAAY,EAAU,EAAE,CACnD,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAE5C,SAAgB,MAAM,CAAC,OAAmB;IACxC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAE9B,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7E,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,EAAE,SAAS,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;IAE9B,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YACxE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;QAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClD,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YAE/B,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type ReplaceKeyType<T, K extends keyof T, NewType> = Omit<T, K> & {
2
+ [P in K]: NewType;
3
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=type.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.helper.js","sourceRoot":"","sources":["../../../src/helpers/type.helper.ts"],"names":[],"mappings":""}