@siegesailor/cryptography 1.0.0 → 2.0.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 (30) hide show
  1. package/README.md +4 -2
  2. package/build/algorithms/baby-step-giant-step/index.js +15 -0
  3. package/build/algorithms/baby-step-giant-step/index.js.map +1 -1
  4. package/build/algorithms/blum-blum-shub/index.js +11 -0
  5. package/build/algorithms/blum-blum-shub/index.js.map +1 -1
  6. package/build/algorithms/chinese-remainder/index.js +14 -0
  7. package/build/algorithms/chinese-remainder/index.js.map +1 -1
  8. package/build/algorithms/euclidean/index.js +9 -0
  9. package/build/algorithms/euclidean/index.js.map +1 -1
  10. package/build/algorithms/extended-euclidean/index.js +9 -0
  11. package/build/algorithms/extended-euclidean/index.js.map +1 -1
  12. package/build/algorithms/fast-modular-exponentiation/index.js +12 -0
  13. package/build/algorithms/fast-modular-exponentiation/index.js.map +1 -1
  14. package/build/algorithms/miller-rabin-primarily-test/index.js +10 -0
  15. package/build/algorithms/miller-rabin-primarily-test/index.js.map +1 -1
  16. package/build/algorithms/multiplicative-inverse/index.js +13 -0
  17. package/build/algorithms/multiplicative-inverse/index.js.map +1 -1
  18. package/build/algorithms/naor-reingo/index.js +11 -0
  19. package/build/algorithms/naor-reingo/index.js.map +1 -1
  20. package/build/algorithms/pollard-p-1-factorization/index.js +11 -0
  21. package/build/algorithms/pollard-p-1-factorization/index.js.map +1 -1
  22. package/build/algorithms/pollard-rho/index.js +9 -0
  23. package/build/algorithms/pollard-rho/index.js.map +1 -1
  24. package/build/algorithms/primitive-root-search/index.js +9 -0
  25. package/build/algorithms/primitive-root-search/index.js.map +1 -1
  26. package/build/command.js +1 -0
  27. package/build/command.js.map +1 -1
  28. package/build/shared/algorithm/random.js +1 -1
  29. package/build/shared/algorithm/random.js.map +1 -1
  30. package/package.json +8 -13
package/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # Cryptography
2
2
 
3
- [![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)
3
+ [![NPM Version](https://img.shields.io/npm/v/%40siegesailor/cryptography?logo=npm)](https://www.npmjs.com/package/@siegesailor/cryptography)
4
+ [![Test](https://github.com/SiegeSailor/Cryptography/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/SiegeSailor/Cryptography/actions/workflows/test.yml)
5
+ [![Release](https://github.com/SiegeSailor/Cryptography/actions/workflows/release.yml/badge.svg?branch=main)](https://github.com/SiegeSailor/Cryptography/actions/workflows/release.yml)
4
6
 
5
- This library provides a collection of cryptography algorithms. It serves as a learning resource (Inspired by [Boston University MET CS 789 Cryptography](https://www.bu.edu/academics/met/courses/met-cs-789/)) for understanding the implementation of various cryptographic algorithms and their applications in key encryption flows. The library is also production-ready, with a focus on performance and security, making it suitable for use in real-world applications:
7
+ This project is inspired by [Boston University MET CS 789 Cryptography](https://www.bu.edu/academics/met/courses/met-cs-789/) for understanding the implementation of various cryptographic algorithms and their applications in key encryption flows. The library is production-ready, with a focus on security and performance. It includes implementations for:
6
8
 
7
9
  | Algorithm | JavaScript | TypeScript | WebAssembly |
8
10
  | --------------------------- | ---------- | ---------- | ----------- |
@@ -25,6 +25,21 @@ const runWASMBabyStepGiantStep = (0, wasm_1.createWASMInvoker)("baby-step-giant-
25
25
  const result = wasmExports.baby_step_giant_step_i64(generator, base, modulo, limit);
26
26
  return result < 0n ? null : result;
27
27
  });
28
+ /**
29
+ * Solves the discrete logarithm problem by finding an exponent x such that
30
+ * generator^x is congruent to base modulo modulo.
31
+ *
32
+ * The congruence is evaluated in the multiplicative group modulo modulo, so the
33
+ * generator and base must both be coprime with the modulus.
34
+ *
35
+ * @param generator Base whose powers are searched in the congruence relation.
36
+ * @param base Target residue in the congruence relation.
37
+ * @param modulo Modulus of the congruence; must be greater than 1.
38
+ * @returns The exponent x when a solution is found, or -1n when no solution is found.
39
+ * @throws {Error} When modulo is not greater than 1.
40
+ * @throws {Error} When generator and modulo are not coprime.
41
+ * @throws {Error} When base and modulo are not coprime.
42
+ */
28
43
  function main(generator, base, modulo) {
29
44
  if (modulo <= 1)
30
45
  throw new Error("Given modulo must be higher than 1");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/baby-step-giant-step/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/baby-step-giant-step/index.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,17 @@ const runWASMBlumBlumShubNext = (0, wasm_1.createWASMInvoker)("blum-blum-shub",
21
21
  }
22
22
  return wasmExports.blum_blum_shub_next_u64(state, modulus);
23
23
  });
24
+ /**
25
+ * Initializes a Blum Blum Shub generator over quadratic residues modulo M = pq,
26
+ * where p and q are distinct Blum primes with p ≡ q ≡ 3 (mod 4).
27
+ *
28
+ * The returned closure advances the recurrence x_(n+1) = x_n^2 mod M and yields
29
+ * the next generator state each time it is called.
30
+ *
31
+ * @param bits Bit length used when generating each Blum prime factor.
32
+ * @returns A stateful zero-argument generator function that produces successive pseudorandom states.
33
+ * @throws {Error} When bits is not an integer or is smaller than 8.
34
+ */
24
35
  function main(bits) {
25
36
  if (!Number.isInteger(bits) || bits < 8) {
26
37
  throw new Error("Given bits must be an integer and at least 8.");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/blum-blum-shub/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/blum-blum-shub/index.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,20 @@ const runWASMChineseRemainder = (0, wasm_1.createWASMInvoker)("chinese-remainder
36
36
  const result = wasmExports.chinese_remainder_i64(remaindersPtr, modulosPtr, remainders.length);
37
37
  return result === wasm_1.MIN_I64 ? null : result;
38
38
  });
39
+ /**
40
+ * Solves a system of simultaneous congruences with the Chinese Remainder Theorem.
41
+ *
42
+ * When the moduli are pairwise coprime, the system has a unique solution modulo
43
+ * the product of all moduli, and this function returns its least non-negative representative.
44
+ *
45
+ * @param arrayOfBase Remainders r_i in congruences of the form x ≡ r_i (mod m_i).
46
+ * @param arrayOfModulo Moduli m_i that define each congruence.
47
+ * @returns The least non-negative solution as a JavaScript number.
48
+ * @throws {Error} When the remainder and modulus arrays have different lengths.
49
+ * @throws {Error} When the moduli are not pairwise coprime.
50
+ * @throws {Error} When a required modular inverse cannot be computed.
51
+ * @throws {Error} When the result exceeds Number.MAX_SAFE_INTEGER.
52
+ */
39
53
  function main(arrayOfBase, arrayOfModulo) {
40
54
  if (arrayOfBase.length !== arrayOfModulo.length)
41
55
  throw new Error("The length for the two given arrays should be the same.");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/chinese-remainder/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/chinese-remainder/index.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,15 @@ const runWASMGcd = (0, wasm_1.createWASMInvoker)("euclidean", (wasmExports, left
18
18
  }
19
19
  return wasmExports.gcd_u64(left, right);
20
20
  });
21
+ /**
22
+ * Computes the greatest common divisor of two integers with the Euclidean algorithm.
23
+ *
24
+ * The result is the largest integer that divides both inputs, and it is 0n only when both inputs are 0n.
25
+ *
26
+ * @param left First integer in the gcd computation.
27
+ * @param right Second integer in the gcd computation.
28
+ * @returns The greatest common divisor of left and right.
29
+ */
21
30
  function main(left, right) {
22
31
  const wasmResult = runWASMGcd(left, right);
23
32
  if (wasmResult !== null) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/euclidean/index.ts"],"names":[],"mappings":";;;;;AAwBA,uBAYC;AAiCD,wBAEC;AAvED,kDAAuE;AACvE,+DAAuC;AACvC,gDAG6B;AAE7B,MAAM,UAAU,GAAG,IAAA,wBAAiB,EAClC,WAAW,EACX,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IAC3B,IACE,CAAC,WAAW,CAAC,OAAO;QACpB,IAAI,GAAG,EAAE;QACT,KAAK,GAAG,EAAE;QACV,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC;QAChB,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC,EACjB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC,CACF,CAAC;AAEF,SAAwB,IAAI,CAAC,IAAY,EAAE,KAAa;IACtD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC;QACpB,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;QACrB,IAAI,GAAG,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,SAAS,GAAG,IAAA,8BAAqB,EACrC,WAAW,EACX,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IAC3B,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACzC,SAAS,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE7C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,CAAkC;QACjE;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS,eAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;YACzC,OAAO,EAAE,CAAC;SACX;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,SAAS,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG;YAC1C,OAAO,EAAE,CAAC;SACX;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,SAAS,CAAC,SAAS,IAAI,KAAK,KAAK,OAAO,MAAM,EAAE,CAAC,CAAC;IAElD,OAAO;QACL,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACvB,MAAM;KACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEK,KAAK,UAAU,MAAM,CAAC,OAAwB;IACnD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/euclidean/index.ts"],"names":[],"mappings":";;;;;AAiCA,uBAYC;AAiCD,wBAEC;AAhFD,kDAAuE;AACvE,+DAAuC;AACvC,gDAG6B;AAE7B,MAAM,UAAU,GAAG,IAAA,wBAAiB,EAClC,WAAW,EACX,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IAC3B,IACE,CAAC,WAAW,CAAC,OAAO;QACpB,IAAI,GAAG,EAAE;QACT,KAAK,GAAG,EAAE;QACV,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC;QAChB,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC,EACjB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC,CACF,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAwB,IAAI,CAAC,IAAY,EAAE,KAAa;IACtD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC;QACpB,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;QACrB,IAAI,GAAG,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,SAAS,GAAG,IAAA,8BAAqB,EACrC,WAAW,EACX,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IAC3B,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACzC,SAAS,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE7C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,CAAkC;QACjE;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS,eAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;YACzC,OAAO,EAAE,CAAC;SACX;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,SAAS,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG;YAC1C,OAAO,EAAE,CAAC;SACX;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,SAAS,CAAC,SAAS,IAAI,KAAK,KAAK,OAAO,MAAM,EAAE,CAAC,CAAC;IAElD,OAAO;QACL,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACvB,MAAM;KACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEK,KAAK,UAAU,MAAM,CAAC,OAAwB;IACnD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
@@ -30,6 +30,15 @@ const runWASMExtendedEuclidean = (0, wasm_1.createWASMInvoker)("extended-euclide
30
30
  view[yPtr / wasm_1.I64_BYTES],
31
31
  ];
32
32
  });
33
+ /**
34
+ * Computes the greatest common divisor together with Bezout coefficients for two integers.
35
+ *
36
+ * The returned tuple [gcd, x, y] satisfies left * x + right * y = gcd, which is the standard Bezout identity.
37
+ *
38
+ * @param left First integer in the Bezout identity.
39
+ * @param right Second integer in the Bezout identity.
40
+ * @returns A tuple [gcd, x, y] where gcd is the greatest common divisor of the inputs.
41
+ */
33
42
  function main(left, right) {
34
43
  const wasmResult = runWASMExtendedEuclidean(left, right);
35
44
  if (wasmResult !== null) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/extended-euclidean/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/extended-euclidean/index.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,18 @@ const runWASMPowMod = (0, wasm_1.createWASMInvoker)("fast-modular-exponentiation
21
21
  }
22
22
  return wasmExports.powmod_u64(base, exponent, modulo);
23
23
  });
24
+ /**
25
+ * Computes modular exponentiation by evaluating base^exponent modulo modulo.
26
+ *
27
+ * The result is calculated with binary exponentiation, which keeps the intermediate values inside the residue class ring modulo modulo.
28
+ *
29
+ * @param base Base value whose power is computed.
30
+ * @param exponent Non-negative exponent applied to the base.
31
+ * @param modulo Positive modulus that defines the residue class ring.
32
+ * @returns The least non-negative residue of base^exponent modulo modulo.
33
+ * @throws {Error} When modulo is not greater than 0.
34
+ * @throws {Error} When exponent is negative.
35
+ */
24
36
  function main(base, exponent, modulo) {
25
37
  if (modulo <= 0n) {
26
38
  throw new Error("modulo must be greater than 0.");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/fast-modular-exponentiation/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/fast-modular-exponentiation/index.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,16 @@ const runWASMMillerRabin = (0, wasm_1.createWASMInvoker)("miller-rabin-primarily
20
20
  }
21
21
  return wasmExports.miller_rabin_u64(input, level) === 1;
22
22
  });
23
+ /**
24
+ * Performs the Miller-Rabin probable-prime test on an integer.
25
+ *
26
+ * Each witness round checks whether input behaves like a prime in the multiplicative group modulo input, so a true result means input is a probable prime rather than a proof of primality.
27
+ *
28
+ * @param input Integer to classify as composite or probable prime.
29
+ * @param level Number of witness rounds used to reduce the probability of a false positive.
30
+ * @returns False when a witness proves the number composite, or true when all rounds pass.
31
+ * @throws {Error} When level is not a positive integer.
32
+ */
23
33
  function main(input, level) {
24
34
  if (input <= 1n || input === 4n)
25
35
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/miller-rabin-primarily-test/index.ts"],"names":[],"mappings":";;;;;AA0BA,uBAqCC;AAiCD,wBAEC;AAlGD,2GAAiF;AACjF,sDAAgE;AAChE,kDAAqE;AACrE,+DAAuC;AACvC,gDAG6B;AAE7B,MAAM,kBAAkB,GAAG,IAAA,wBAAiB,EAC1C,6BAA6B,EAC7B,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAC5B,IACE,CAAC,WAAW,CAAC,gBAAgB;QAC7B,KAAK,GAAG,EAAE;QACV,KAAK,GAAG,cAAO;QACf,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACxB,KAAK,IAAI,CAAC,EACV,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,WAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC,CACF,CAAC;AAEF,SAAwB,IAAI,CAAC,KAAa,EAAE,KAAa;IACvD,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzD,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,IAAI,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;IACrB,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE;QAAE,GAAG,KAAK,EAAE,CAAC;IAErC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;QAC5C,MAAM,CAAC,GAAG,IAAA,4BAAmB,EAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1C,IAAI,SAAS,GAAG,IAAA,qCAAyB,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,EAAE,IAAI,SAAS,KAAK,CAAC,GAAG,EAAE;YAAE,OAAO,IAAI,CAAC;QAE1D,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;YACzB,SAAS,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,KAAK,EAAE,CAAC;YAEd,IAAI,SAAS,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAC;YACnC,IAAI,SAAS,KAAK,CAAC,GAAG,EAAE;gBAAE,OAAO,IAAI,CAAC;QACxC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IAC9C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,SAAS,GAAG,IAAA,8BAAqB,EACrC,6BAA6B,EAC7B,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IAC3B,SAAS,CAAC,mCAAmC,CAAC,CAAC;IAC/C,SAAS,CAAC,eAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAEtD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,CAAmC;QACnE;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,SAAS,eAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG;YAC3C,OAAO,EAAE,MAAM;SAChB;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,SAAS,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG;YAC1C,OAAO,EAAE,EAAE;SACZ;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,SAAS,CAAC,aAAa,KAAK,KAAK,KAAK,OAAO,MAAM,EAAE,CAAC,CAAC;IAEvD,OAAO;QACL,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QACxB,MAAM;KACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEK,KAAK,UAAU,MAAM,CAAC,OAAwB;IACnD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/miller-rabin-primarily-test/index.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,19 @@ const runWASMMultiplicativeInverse = (0, wasm_1.createWASMInvoker)("multiplicati
22
22
  }
23
23
  return value;
24
24
  });
25
+ /**
26
+ * Computes a modular inverse and lists its first positive integer multiples.
27
+ *
28
+ * When gcd(base, modulo) = 1, the first returned value is the least non-negative x such that base * x ≡ 1 (mod modulo), and each later value is the next positive multiple of that inverse.
29
+ *
30
+ * @param base Integer whose multiplicative inverse is computed modulo modulo.
31
+ * @param modulo Modulus that defines the congruence relation and must be greater than 1.
32
+ * @param number Count of positive multiples to return.
33
+ * @returns An array whose first element is the modular inverse and whose remaining elements are successive positive multiples of that inverse.
34
+ * @throws {Error} When modulo is not greater than 1.
35
+ * @throws {Error} When number is not a positive integer.
36
+ * @throws {Error} When base and modulo are not coprime.
37
+ */
25
38
  function main(base, modulo, number) {
26
39
  if (modulo <= 1n) {
27
40
  throw new Error("modulo must be greater than 1.");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/multiplicative-inverse/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/multiplicative-inverse/index.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,17 @@ const runWASMNaorReingo = (0, wasm_1.createWASMInvoker)("naor-reingo", (wasmExpo
36
36
  }
37
37
  return values;
38
38
  });
39
+ /**
40
+ * Generates pseudorandom positive integers with a fixed decimal digit length.
41
+ *
42
+ * Each returned value lies in the interval [10^(digits - 1), 10^digits - 1], so every output has exactly the requested number of decimal digits.
43
+ *
44
+ * @param count Number of values to generate.
45
+ * @param digits Decimal digit length required for each generated value.
46
+ * @returns An array of generated values as JavaScript numbers.
47
+ * @throws {Error} When count is not a positive integer.
48
+ * @throws {Error} When digits is not a positive integer.
49
+ */
39
50
  function main(count, digits) {
40
51
  if (!Number.isInteger(count) || count <= 0) {
41
52
  throw new Error("count must be a positive integer.");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/naor-reingo/index.ts"],"names":[],"mappings":";;;;;AAwDA,uBAsBC;AAmCD,wBAEC;AAnHD,kDAKiC;AACjC,sDAAgE;AAChE,+DAAuC;AACvC,gDAG6B;AAE7B,MAAM,iBAAiB,GAAG,IAAA,wBAAiB,EACzC,aAAa,EACb,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IACnC,IACE,CAAC,WAAW,CAAC,oBAAoB;QACjC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACxB,KAAK,IAAI,CAAC;QACV,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;QACzB,MAAM,IAAI,CAAC;QACX,MAAM,GAAG,EAAE;QACX,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC,EAChB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,yBAAkB,EAAC,WAAW,CAAC,CAAC;IAClD,SAAS,CAAC,KAAK,EAAE,CAAC;IAElB,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,gBAAS,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,oBAAoB,CAC9C,KAAK,EACL,MAAM,EACN,IAAI,EACJ,MAAM,CACP,CAAC;IACF,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,gBAAS,GAAG,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CACF,CAAC;AAEF,SAAwB,IAAI,CAAC,KAAa,EAAE,MAAc;IACxD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IAE9C,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC7E,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAA,4BAAmB,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,SAAS,GAAG,IAAA,8BAAqB,EACrC,aAAa,EACb,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IAC3B,SAAS,CACP,mEAAmE,CACpE,CAAC;IACF,SAAS,CAAC,eAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;IAEjE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAoC;QACrE;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,SAAS,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG;YAC1C,OAAO,EAAE,CAAC;SACX;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,SAAS,eAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG;YAC3C,OAAO,EAAE,CAAC;SACX;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,SAAS,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC;IAElC,OAAO;QACL,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QACzB,MAAM;KACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEK,KAAK,UAAU,MAAM,CAAC,OAAwB;IACnD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/naor-reingo/index.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,17 @@ const runWASMPollardP1 = (0, wasm_1.createWASMInvoker)("pollard-p-1-factorizatio
22
22
  const result = wasmExports.pollard_p1_i64(input, maxExponent);
23
23
  return result > 1n ? result : null;
24
24
  });
25
+ /**
26
+ * Factors a composite integer by recursively applying Pollard's p - 1 method.
27
+ *
28
+ * The search succeeds quickly when a prime divisor p of the input has a smooth p - 1, and the implementation falls back to Pollard rho when that condition does not yield a non-trivial split.
29
+ *
30
+ * @param input Composite integer to factor.
31
+ * @returns An array of prime factors, including repeated factors, as JavaScript numbers.
32
+ * @throws {Error} When input is not greater than 1.
33
+ * @throws {Error} When input is prime.
34
+ * @throws {Error} When recursive factorization fails to produce non-trivial prime factors.
35
+ */
25
36
  function main(input) {
26
37
  const pollardPMinusOne = (n) => {
27
38
  const maybeWASMFactor = runWASMPollardP1(n, 2500);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/pollard-p-1-factorization/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/pollard-p-1-factorization/index.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,15 @@ const runWASMPollardRho = (0, wasm_1.createWASMInvoker)("pollard-rho", (wasmExpo
22
22
  }
23
23
  return wasmExports.pollard_rho_i64(input, seed, c, maxIterations);
24
24
  });
25
+ /**
26
+ * Searches for a non-trivial divisor of an integer with Pollard's rho method.
27
+ *
28
+ * The iteration uses the polynomial x^2 + c modulo input together with cycle detection to turn repeated residues into a gcd computation that can expose a factor.
29
+ *
30
+ * @param input Integer to factor.
31
+ * @returns A non-trivial factor of input, 2n for even inputs, or 1n when no factor is found after the retry limit.
32
+ * @throws {Error} When input is not greater than 1.
33
+ */
25
34
  function main(input) {
26
35
  if (input <= 1n) {
27
36
  throw new Error("input must be greater than 1.");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/pollard-rho/index.ts"],"names":[],"mappings":";;;;;AA4BA,uBA6CC;AA2BD,wBAEC;AAtGD,uEAA+C;AAC/C,kDAA+C;AAC/C,sDAAgE;AAChE,kDAAuE;AACvE,+DAAuC;AACvC,gDAG6B;AAE7B,MAAM,iBAAiB,GAAG,IAAA,wBAAiB,EAGzC,aAAa,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE;IAC9D,IACE,CAAC,WAAW,CAAC,eAAe;QAC5B,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC;QACjB,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC;QAChB,CAAC,IAAA,gBAAS,EAAC,CAAC,CAAC;QACb,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;QAChC,aAAa,IAAI,CAAC,EAClB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC;AAEH,SAAwB,IAAI,CAAC,KAAa;IACxC,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAExD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,IAAA,4BAAmB,EAAC,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG,IAAA,4BAAmB,EAAC,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;QAE5C,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAChE,IACE,eAAe,KAAK,IAAI;YACxB,eAAe,GAAG,EAAE;YACpB,eAAe,GAAG,KAAK;YACvB,KAAK,GAAG,eAAe,KAAK,EAAE,EAC9B,CAAC;YACD,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,OAAO,OAAO,KAAK,EAAE,EAAE,CAAC;YACtB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACZ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClB,OAAO,GAAG,IAAA,mBAAS,EAAC,WAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACjD,UAAU,IAAI,CAAC,CAAC;YAEhB,IAAI,UAAU,GAAG,OAAO,EAAE,CAAC;gBACzB,OAAO,GAAG,KAAK,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,SAAS,GAAG,IAAA,8BAAqB,EACrC,aAAa,EACb,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IAC3B,SAAS,CAAC,mDAAmD,CAAC,CAAC;IAC/D,SAAS,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAE7D,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,CAAoB;QAC7C;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,SAAS,eAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG;YACrD,OAAO,EAAE,IAAI;SACd;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,SAAS,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC;IAElC,OAAO;QACL,MAAM,EAAE,EAAE,KAAK,EAAE;QACjB,MAAM;KACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEK,KAAK,UAAU,MAAM,CAAC,OAAwB;IACnD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/pollard-rho/index.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,15 @@ const runWASMPrimitiveRoots = (0, wasm_1.createWASMInvoker)("primitive-root-sear
35
35
  }
36
36
  return result;
37
37
  });
38
+ /**
39
+ * Enumerates primitive roots modulo a prime and builds the corresponding power table.
40
+ *
41
+ * For a prime p, the non-zero residue classes form a cyclic multiplicative group of order p - 1; this function identifies the generators of that group and records their powers modulo p.
42
+ *
43
+ * @param prime Prime modulus whose multiplicative group is analyzed.
44
+ * @returns A tuple [table, roots] where table[row][column] stores (row + 1)^(column + 1) mod prime and roots lists the primitive roots modulo prime.
45
+ * @throws {Error} When prime is not prime.
46
+ */
38
47
  function main(prime) {
39
48
  if (!(0, miller_rabin_primarily_test_1.default)(BigInt(prime), 10))
40
49
  throw new Error("The Given number must be prime.");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/primitive-root-search/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/algorithms/primitive-root-search/index.ts"],"names":[],"mappings":";;;;;AA+DA,uBAqDC;AA+BD,wBAEC;AArJD,2GAAiF;AACjF,2GAAgF;AAChF,kDAKiC;AACjC,+DAAuC;AACvC,gDAG6B;AAE7B,MAAM,qBAAqB,GAAG,IAAA,wBAAiB,EAC7C,uBAAuB,EACvB,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE;IACrB,IACE,CAAC,WAAW,CAAC,yBAAyB;QACtC,KAAK,IAAI,EAAE;QACX,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC,EACjB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,GAAG,MAAM,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,yBAAkB,EAAC,WAAW,CAAC,CAAC;IAClD,SAAS,CAAC,KAAK,EAAE,CAAC;IAElB,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,GAAG,gBAAS,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,yBAAyB,CACjD,KAAK,EACL,QAAQ,EACR,QAAQ,CACT,CAAC;IACF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACxC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,gBAAS,GAAG,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CACF,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAwB,IAAI,CAAC,KAAa;IACxC,IAAI,CAAC,IAAA,qCAAwB,EAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAErD,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;IACtB,MAAM,KAAK,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CACzD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CACrC,CAAC;IAEF,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;YAC3D,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC;gBACvE,MAAM,QAAQ,GAAG,IAAA,qCAAyB,EACxC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,EACpB,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,EACvB,MAAM,CAAC,KAAK,CAAC,CACd,CAAC;gBACF,KAAK,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC;YACvE,MAAM,QAAQ,GAAG,IAAA,qCAAyB,EACxC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,EACpB,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,EACvB,MAAM,CAAC,KAAK,CAAC,CACd,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/B,KAAK,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;YAErC,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnB,eAAe,GAAG,KAAK,CAAC;YAC1B,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,eAAe;YAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,SAAS,GAAG,IAAA,8BAAqB,EACrC,uBAAuB,EACvB,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IAC3B,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACrD,SAAS,CACP,eAAK,CAAC,IAAI,CACR,iEAAiE,CAClE,CACF,CAAC;IAEF,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,CAAoB;QAC7C;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,SAAS,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG;YAC1C,OAAO,EAAE,CAAC;SACX;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,SAAS,CAAC,uBAAuB,KAAK,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEhE,OAAO;QACL,MAAM,EAAE,EAAE,KAAK,EAAE;QACjB,MAAM;KACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEK,KAAK,UAAU,MAAM,CAAC,OAAwB;IACnD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
package/build/command.js CHANGED
@@ -1,3 +1,4 @@
1
+ #!/usr/bin/env node
1
2
  "use strict";
2
3
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
4
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../source/command.ts"],"names":[],"mappings":";;;;;AA+CA,wBAsDC;AArGD,+BAA4B;AAE5B,+DAAuC;AACvC,oDAAoD;AAEpD,sDAAyD;AACzD,kDAA6C;AAY7C,KAAK,UAAU,aAAa,CAAC,OAAe;IAC1C,MAAM,QAAQ,GAAG,MAAM,IAAA,sBAAW,GAAE,CAAC;IACrC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAEzC;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,GAAG;YACT,OAAO;YACP,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,mBAAO,CAAC,WAAW,EAAE,KAAK,EAAE,mBAAO,CAAC,WAAW,EAAE;gBACzD,EAAE,IAAI,EAAE,mBAAO,CAAC,OAAO,EAAE,KAAK,EAAE,mBAAO,CAAC,OAAO,EAAE;gBACjD,EAAE,IAAI,EAAE,mBAAO,CAAC,IAAI,EAAE,KAAK,EAAE,mBAAO,CAAC,IAAI,EAAE;aAC5C;SACF;KACF,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,OAAwB;IAC9C,OAAO,CACL,OAAO,CAAC,SAAS,KAAK,SAAS;QAC/B,OAAO,CAAC,aAAa,KAAK,SAAS;QACnC,OAAO,CAAC,OAAO,KAAK,SAAS;QAC7B,OAAO,CAAC,WAAW,KAAK,SAAS,CAClC,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,MAAM,CAAC,UAA2B,EAAE;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,yBAAyB,CAAC;IAC7D,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QAElE,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,mBAAO,CAAC,WAAW;gBACtB,MAAM,mBAAO,CAAC,SAAS,CACrB,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,EAClC,yDAAyD,EACzD,kBAAM,CAAC,QAAQ,EACf;oBACE,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B,CACF,CAAC;gBACF,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,MAAM,MAAM,EAAE,CAAC;gBACjB,CAAC;gBACD,MAAM;YACR,KAAK,mBAAO,CAAC,OAAO;gBAClB,MAAM,mBAAO,CAAC,SAAS,CACrB,IAAA,WAAI,EAAC,SAAS,EAAE,YAAY,CAAC,EAC7B,qDAAqD,EACrD,kBAAM,CAAC,UAAU,EACjB;oBACE,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B,CACF,CAAC;gBACF,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,MAAM,MAAM,EAAE,CAAC;gBACjB,CAAC;gBACD,MAAM;YACR,KAAK,mBAAO,CAAC,IAAI;gBACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;gBAClE,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,KAAK,GAAU,CAAU,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,KAAK,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE/C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,KAAK,MAAM,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../source/command.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ function randomBigIntBitsInternal(bits, forceTopBit) {
17
17
  throw new Error("bits must be a positive integer.");
18
18
  }
19
19
  const byteLength = Math.ceil(bits / 8);
20
- const bytes = new Uint8Array(byteLength);
20
+ const bytes = new Uint8Array(new ArrayBuffer(byteLength));
21
21
  fillRandom(bytes);
22
22
  const excessBits = byteLength * 8 - bits;
23
23
  if (excessBits > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"random.js","sourceRoot":"","sources":["../../../source/shared/algorithm/random.ts"],"names":[],"mappings":";;AAoCA,4CAEC;AAED,kDAkBC;AA1DD,mCAAgD;AAEhD,SAAS,UAAU,CAAC,MAAkB;IACpC,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,IAAI,kBAAS,CAAC;IACtD,IAAI,cAAc,EAAE,eAAe,EAAE,CAAC;QACpC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY,EAAE,WAAoB;IAClE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IACzC,UAAU,CAAC,KAAK,CAAC,CAAC;IAElB,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC;IACzC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,IAAI,KAAK,UAAU,CAAC;QACjC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,WAAW,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9B,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;IAC1B,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAO,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAAW,EAAE,GAAW;IAC1D,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEtC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxD,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC;YACtB,OAAO,GAAG,GAAG,SAAS,CAAC;QACzB,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"random.js","sourceRoot":"","sources":["../../../source/shared/algorithm/random.ts"],"names":[],"mappings":";;AAoCA,4CAEC;AAED,kDAkBC;AA1DD,mCAAgD;AAEhD,SAAS,UAAU,CAAC,MAA+B;IACjD,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,IAAI,kBAAS,CAAC;IACtD,IAAI,cAAc,EAAE,eAAe,EAAE,CAAC;QACpC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY,EAAE,WAAoB;IAClE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,UAAU,CAAC,KAAK,CAAC,CAAC;IAElB,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC;IACzC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,IAAI,KAAK,UAAU,CAAC;QACjC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,WAAW,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9B,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;IAC1B,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAO,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAAW,EAAE,GAAW;IAC1D,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEtC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxD,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC;YACtB,OAAO,GAAG,GAAG,SAAS,CAAC;QACzB,CAAC;IACH,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "author": "SiegeSailor",
3
3
  "bin": {
4
- "@siegesailor/cryptography": "./build/command.js"
4
+ "siegesailor-cryptography": "build/command.js"
5
5
  },
6
6
  "bugs": {
7
7
  "url": "https://github.com/SiegeSailor/Cryptography/issues"
@@ -13,20 +13,15 @@
13
13
  },
14
14
  "description": "Provide a collection of cryptography functions and a CLI.",
15
15
  "devDependencies": {
16
- "@semantic-release/commit-analyzer": "13.0.1",
17
- "@semantic-release/github": "11.0.6",
18
- "@semantic-release/npm": "12.0.2",
19
- "@semantic-release/release-notes-generator": "14.1.0",
20
16
  "@types/jest": "30.0.0",
21
17
  "@types/node": "25.5.0",
22
18
  "conventional-changelog-conventionalcommits": "9.3.1",
23
19
  "jest": "30.3.0",
24
- "semantic-release": "24.2.9",
25
- "ts-jest": "29.4.6",
20
+ "ts-jest": "29.4.9",
26
21
  "ts-node": "10.9.2",
27
22
  "tsc-alias": "1.8.16",
28
23
  "tsconfig-paths": "4.2.0",
29
- "typescript": "5.9.3"
24
+ "typescript": "6.0.2"
30
25
  },
31
26
  "engines": {
32
27
  "node": ">= 25.2.1",
@@ -42,7 +37,7 @@
42
37
  "typescript",
43
38
  "webassembly"
44
39
  ],
45
- "license": "ISC",
40
+ "license": "MIT",
46
41
  "main": "./build/source/entry-point.js",
47
42
  "publishConfig": {
48
43
  "access": "public",
@@ -69,11 +64,11 @@
69
64
  "build:wasm-assets": "node ./scripts/copy-wasm.js",
70
65
  "build:wasm:check": "node ./scripts/verify-wasm.js",
71
66
  "build:wasm:strict": "WASM_STRICT=1 node ./scripts/compile-wasm.js",
72
- "release": "semantic-release",
73
- "start:cli": "clear && ts-node -r tsconfig-paths/register ./source/command.ts",
74
- "start:cli:compiled": "node ./build/command.js",
67
+ "release": "npx --yes --package semantic-release@25.0.3 --package @semantic-release/commit-analyzer@13.0.1 --package @semantic-release/github@11.0.6 --package @semantic-release/npm@12.0.2 --package @semantic-release/release-notes-generator@14.1.0 semantic-release",
68
+ "start": "clear && ts-node -r tsconfig-paths/register ./source/command.ts",
69
+ "start:compiled": "node ./build/command.js",
75
70
  "test": "jest",
76
71
  "test:coverage": "jest --coverage"
77
72
  },
78
- "version": "1.0.0"
73
+ "version": "2.0.0"
79
74
  }