@elaraai/east-web-std 1.0.85

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 (102) hide show
  1. package/CLA.md +26 -0
  2. package/CONTRIBUTING.md +28 -0
  3. package/LICENSE.md +31 -0
  4. package/README.md +191 -0
  5. package/THIRD_PARTY_NOTICES.md +123 -0
  6. package/dist/src/compliance.spec.d.ts +6 -0
  7. package/dist/src/compliance.spec.d.ts.map +1 -0
  8. package/dist/src/compliance.spec.js +89 -0
  9. package/dist/src/compliance.spec.js.map +1 -0
  10. package/dist/src/console.d.ts +237 -0
  11. package/dist/src/console.d.ts.map +1 -0
  12. package/dist/src/console.js +260 -0
  13. package/dist/src/console.js.map +1 -0
  14. package/dist/src/crypto.d.ts +224 -0
  15. package/dist/src/crypto.d.ts.map +1 -0
  16. package/dist/src/crypto.js +295 -0
  17. package/dist/src/crypto.js.map +1 -0
  18. package/dist/src/fetch.d.ts +383 -0
  19. package/dist/src/fetch.d.ts.map +1 -0
  20. package/dist/src/fetch.js +412 -0
  21. package/dist/src/fetch.js.map +1 -0
  22. package/dist/src/index.d.ts +106 -0
  23. package/dist/src/index.d.ts.map +1 -0
  24. package/dist/src/index.js +93 -0
  25. package/dist/src/index.js.map +1 -0
  26. package/dist/src/path.d.ts +243 -0
  27. package/dist/src/path.d.ts.map +1 -0
  28. package/dist/src/path.js +562 -0
  29. package/dist/src/path.js.map +1 -0
  30. package/dist/src/random/crypto-rng.d.ts +38 -0
  31. package/dist/src/random/crypto-rng.d.ts.map +1 -0
  32. package/dist/src/random/crypto-rng.js +55 -0
  33. package/dist/src/random/crypto-rng.js.map +1 -0
  34. package/dist/src/random/distributions/bates.d.ts +17 -0
  35. package/dist/src/random/distributions/bates.d.ts.map +1 -0
  36. package/dist/src/random/distributions/bates.js +15 -0
  37. package/dist/src/random/distributions/bates.js.map +1 -0
  38. package/dist/src/random/distributions/bernoulli.d.ts +17 -0
  39. package/dist/src/random/distributions/bernoulli.d.ts.map +1 -0
  40. package/dist/src/random/distributions/bernoulli.js +13 -0
  41. package/dist/src/random/distributions/bernoulli.js.map +1 -0
  42. package/dist/src/random/distributions/binomial.d.ts +17 -0
  43. package/dist/src/random/distributions/binomial.d.ts.map +1 -0
  44. package/dist/src/random/distributions/binomial.js +24 -0
  45. package/dist/src/random/distributions/binomial.js.map +1 -0
  46. package/dist/src/random/distributions/exponential.d.ts +17 -0
  47. package/dist/src/random/distributions/exponential.d.ts.map +1 -0
  48. package/dist/src/random/distributions/exponential.js +13 -0
  49. package/dist/src/random/distributions/exponential.js.map +1 -0
  50. package/dist/src/random/distributions/geometric.d.ts +17 -0
  51. package/dist/src/random/distributions/geometric.d.ts.map +1 -0
  52. package/dist/src/random/distributions/geometric.js +14 -0
  53. package/dist/src/random/distributions/geometric.js.map +1 -0
  54. package/dist/src/random/distributions/irwin-hall.d.ts +17 -0
  55. package/dist/src/random/distributions/irwin-hall.d.ts.map +1 -0
  56. package/dist/src/random/distributions/irwin-hall.js +18 -0
  57. package/dist/src/random/distributions/irwin-hall.js.map +1 -0
  58. package/dist/src/random/distributions/log-normal.d.ts +17 -0
  59. package/dist/src/random/distributions/log-normal.d.ts.map +1 -0
  60. package/dist/src/random/distributions/log-normal.js +12 -0
  61. package/dist/src/random/distributions/log-normal.js.map +1 -0
  62. package/dist/src/random/distributions/normal.d.ts +18 -0
  63. package/dist/src/random/distributions/normal.d.ts.map +1 -0
  64. package/dist/src/random/distributions/normal.js +16 -0
  65. package/dist/src/random/distributions/normal.js.map +1 -0
  66. package/dist/src/random/distributions/pareto.d.ts +17 -0
  67. package/dist/src/random/distributions/pareto.d.ts.map +1 -0
  68. package/dist/src/random/distributions/pareto.js +14 -0
  69. package/dist/src/random/distributions/pareto.js.map +1 -0
  70. package/dist/src/random/distributions/poisson.d.ts +17 -0
  71. package/dist/src/random/distributions/poisson.d.ts.map +1 -0
  72. package/dist/src/random/distributions/poisson.js +81 -0
  73. package/dist/src/random/distributions/poisson.js.map +1 -0
  74. package/dist/src/random/distributions/uniform-int.d.ts +17 -0
  75. package/dist/src/random/distributions/uniform-int.d.ts.map +1 -0
  76. package/dist/src/random/distributions/uniform-int.js +16 -0
  77. package/dist/src/random/distributions/uniform-int.js.map +1 -0
  78. package/dist/src/random/distributions/uniform.d.ts +17 -0
  79. package/dist/src/random/distributions/uniform.d.ts.map +1 -0
  80. package/dist/src/random/distributions/uniform.js +10 -0
  81. package/dist/src/random/distributions/uniform.js.map +1 -0
  82. package/dist/src/random/rng.d.ts +21 -0
  83. package/dist/src/random/rng.d.ts.map +1 -0
  84. package/dist/src/random/rng.js +7 -0
  85. package/dist/src/random/rng.js.map +1 -0
  86. package/dist/src/random/xorshift128.d.ts +42 -0
  87. package/dist/src/random/xorshift128.d.ts.map +1 -0
  88. package/dist/src/random/xorshift128.js +119 -0
  89. package/dist/src/random/xorshift128.js.map +1 -0
  90. package/dist/src/random.d.ts +822 -0
  91. package/dist/src/random.d.ts.map +1 -0
  92. package/dist/src/random.js +992 -0
  93. package/dist/src/random.js.map +1 -0
  94. package/dist/src/test.d.ts +86 -0
  95. package/dist/src/test.d.ts.map +1 -0
  96. package/dist/src/test.js +160 -0
  97. package/dist/src/test.js.map +1 -0
  98. package/dist/src/time.d.ts +201 -0
  99. package/dist/src/time.d.ts.map +1 -0
  100. package/dist/src/time.js +300 -0
  101. package/dist/src/time.js.map +1 -0
  102. package/package.json +64 -0
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Seedable RNG implementation using xorshift128+ algorithm.
7
+ *
8
+ * Fast, high-quality PRNG suitable for simulations.
9
+ * Period: 2^128 - 1
10
+ *
11
+ * Ported verbatim from east-node-std's src/random/xorshift128.ts
12
+ * (libs/east-node/packages/east-node-std/src/random/xorshift128.ts): a seed
13
+ * must give the stream east-node-std gives, bit for bit, which
14
+ * test/random.spec.ts checks. That includes its state being a `bigint` that
15
+ * `next` never masks to 64 bits, so the stream is east-node-std's rather than
16
+ * a 64-bit xorshift128+'s; change it here only together with east-node-std.
17
+ */
18
+ import RNG, { type SeedType } from "./rng.js";
19
+ export default class XorShift128RNG extends RNG {
20
+ private state0;
21
+ private state1;
22
+ constructor(seed?: SeedType);
23
+ get name(): string;
24
+ /**
25
+ * Generate next random number in [0, 1)
26
+ */
27
+ next(): number;
28
+ /**
29
+ * Seed the RNG for reproducible sequences
30
+ */
31
+ seed(seed?: SeedType, _opts?: Record<string, unknown>): void;
32
+ /**
33
+ * Clone this RNG with optional new seed
34
+ */
35
+ clone(seed?: SeedType, opts?: Record<string, unknown>): RNG;
36
+ /**
37
+ * SplitMix64 for state initialization
38
+ * Ensures good distribution even from sequential seeds
39
+ */
40
+ private splitmix64;
41
+ }
42
+ //# sourceMappingURL=xorshift128.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xorshift128.d.ts","sourceRoot":"","sources":["../../../src/random/xorshift128.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,GAAG,EAAE,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,GAAG;IAC3C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,IAAI,CAAC,EAAE,QAAQ;IAc3B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,IAAI,MAAM;IAgBd;;OAEG;IACH,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAmC5D;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG;IAY3D;;;OAGG;IACH,OAAO,CAAC,UAAU;CAMrB"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Seedable RNG implementation using xorshift128+ algorithm.
7
+ *
8
+ * Fast, high-quality PRNG suitable for simulations.
9
+ * Period: 2^128 - 1
10
+ *
11
+ * Ported verbatim from east-node-std's src/random/xorshift128.ts
12
+ * (libs/east-node/packages/east-node-std/src/random/xorshift128.ts): a seed
13
+ * must give the stream east-node-std gives, bit for bit, which
14
+ * test/random.spec.ts checks. That includes its state being a `bigint` that
15
+ * `next` never masks to 64 bits, so the stream is east-node-std's rather than
16
+ * a 64-bit xorshift128+'s; change it here only together with east-node-std.
17
+ */
18
+ import RNG, {} from "./rng.js";
19
+ export default class XorShift128RNG extends RNG {
20
+ state0;
21
+ state1;
22
+ constructor(seed) {
23
+ super();
24
+ // Initialize with default state
25
+ this.state0 = 0n;
26
+ this.state1 = 0n;
27
+ if (seed !== undefined) {
28
+ this.seed(seed);
29
+ }
30
+ else {
31
+ // Default seed based on current time
32
+ this.seed(Date.now());
33
+ }
34
+ }
35
+ get name() {
36
+ return "xorshift128+";
37
+ }
38
+ /**
39
+ * Generate next random number in [0, 1)
40
+ */
41
+ next() {
42
+ // xorshift128+ algorithm
43
+ let s1 = this.state0;
44
+ const s0 = this.state1;
45
+ const result = s0 + s1;
46
+ this.state0 = s0;
47
+ s1 ^= s1 << 23n;
48
+ this.state1 = s1 ^ s0 ^ (s1 >> 17n) ^ (s0 >> 26n);
49
+ // Convert to [0, 1) range
50
+ // Use upper 53 bits for double precision
51
+ const upper53 = (result >> 11n) & ((1n << 53n) - 1n);
52
+ return Number(upper53) / (2 ** 53);
53
+ }
54
+ /**
55
+ * Seed the RNG for reproducible sequences
56
+ */
57
+ seed(seed, _opts) {
58
+ let seedNum;
59
+ if (typeof seed === "bigint") {
60
+ seedNum = seed;
61
+ }
62
+ else if (typeof seed === "number") {
63
+ seedNum = BigInt(Math.floor(seed));
64
+ }
65
+ else if (typeof seed === "string") {
66
+ // Hash the string to a number
67
+ let hash = 0n;
68
+ for (let i = 0; i < seed.length; i++) {
69
+ hash = ((hash << 5n) - hash) + BigInt(seed.charCodeAt(i));
70
+ hash = hash & 0xffffffffffffffffn; // Keep as 64-bit
71
+ }
72
+ seedNum = hash;
73
+ }
74
+ else if (seed instanceof RNG) {
75
+ // Use another RNG to generate seed
76
+ seedNum = BigInt(Math.floor(seed.next() * Number.MAX_SAFE_INTEGER));
77
+ }
78
+ else if (typeof seed === "function") {
79
+ seedNum = BigInt(Math.floor(seed() * Number.MAX_SAFE_INTEGER));
80
+ }
81
+ else {
82
+ seedNum = BigInt(Date.now());
83
+ }
84
+ // Initialize state using splitmix64 to ensure good initial state
85
+ // even from poor seeds
86
+ this.state0 = this.splitmix64(seedNum);
87
+ this.state1 = this.splitmix64(this.state0);
88
+ // Ensure state is never all zeros
89
+ if (this.state0 === 0n && this.state1 === 0n) {
90
+ this.state0 = 1n;
91
+ }
92
+ }
93
+ /**
94
+ * Clone this RNG with optional new seed
95
+ */
96
+ clone(seed, opts) {
97
+ const cloned = new XorShift128RNG();
98
+ if (seed !== undefined) {
99
+ cloned.seed(seed, opts);
100
+ }
101
+ else {
102
+ // Copy current state
103
+ cloned.state0 = this.state0;
104
+ cloned.state1 = this.state1;
105
+ }
106
+ return cloned;
107
+ }
108
+ /**
109
+ * SplitMix64 for state initialization
110
+ * Ensures good distribution even from sequential seeds
111
+ */
112
+ splitmix64(x) {
113
+ x = (x + 0x9e3779b97f4a7c15n) & 0xffffffffffffffffn;
114
+ x = ((x ^ (x >> 30n)) * 0xbf58476d1ce4e5b9n) & 0xffffffffffffffffn;
115
+ x = ((x ^ (x >> 27n)) * 0x94d049bb133111ebn) & 0xffffffffffffffffn;
116
+ return (x ^ (x >> 31n)) & 0xffffffffffffffffn;
117
+ }
118
+ }
119
+ //# sourceMappingURL=xorshift128.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xorshift128.js","sourceRoot":"","sources":["../../../src/random/xorshift128.ts"],"names":[],"mappings":"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"}