@elaraai/east-node-std 0.0.1-beta.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 (101) hide show
  1. package/CLA.md +26 -0
  2. package/CONTRIBUTING.md +28 -0
  3. package/README.md +135 -0
  4. package/dist/console.d.ts +192 -0
  5. package/dist/console.d.ts.map +1 -0
  6. package/dist/console.js +228 -0
  7. package/dist/console.js.map +1 -0
  8. package/dist/crypto.d.ts +212 -0
  9. package/dist/crypto.d.ts.map +1 -0
  10. package/dist/crypto.js +259 -0
  11. package/dist/crypto.js.map +1 -0
  12. package/dist/fetch.d.ts +310 -0
  13. package/dist/fetch.d.ts.map +1 -0
  14. package/dist/fetch.js +336 -0
  15. package/dist/fetch.js.map +1 -0
  16. package/dist/fs.d.ts +520 -0
  17. package/dist/fs.d.ts.map +1 -0
  18. package/dist/fs.js +630 -0
  19. package/dist/fs.js.map +1 -0
  20. package/dist/index.d.ts +59 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +86 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/path.d.ts +241 -0
  25. package/dist/path.d.ts.map +1 -0
  26. package/dist/path.js +299 -0
  27. package/dist/path.js.map +1 -0
  28. package/dist/random/crypto-rng.d.ts +31 -0
  29. package/dist/random/crypto-rng.d.ts.map +1 -0
  30. package/dist/random/crypto-rng.js +44 -0
  31. package/dist/random/crypto-rng.js.map +1 -0
  32. package/dist/random/distributions/bates.d.ts +12 -0
  33. package/dist/random/distributions/bates.d.ts.map +1 -0
  34. package/dist/random/distributions/bates.js +15 -0
  35. package/dist/random/distributions/bates.js.map +1 -0
  36. package/dist/random/distributions/bernoulli.d.ts +12 -0
  37. package/dist/random/distributions/bernoulli.d.ts.map +1 -0
  38. package/dist/random/distributions/bernoulli.js +13 -0
  39. package/dist/random/distributions/bernoulli.js.map +1 -0
  40. package/dist/random/distributions/binomial.d.ts +12 -0
  41. package/dist/random/distributions/binomial.d.ts.map +1 -0
  42. package/dist/random/distributions/binomial.js +24 -0
  43. package/dist/random/distributions/binomial.js.map +1 -0
  44. package/dist/random/distributions/exponential.d.ts +12 -0
  45. package/dist/random/distributions/exponential.d.ts.map +1 -0
  46. package/dist/random/distributions/exponential.js +13 -0
  47. package/dist/random/distributions/exponential.js.map +1 -0
  48. package/dist/random/distributions/geometric.d.ts +12 -0
  49. package/dist/random/distributions/geometric.d.ts.map +1 -0
  50. package/dist/random/distributions/geometric.js +14 -0
  51. package/dist/random/distributions/geometric.js.map +1 -0
  52. package/dist/random/distributions/irwin-hall.d.ts +12 -0
  53. package/dist/random/distributions/irwin-hall.d.ts.map +1 -0
  54. package/dist/random/distributions/irwin-hall.js +18 -0
  55. package/dist/random/distributions/irwin-hall.js.map +1 -0
  56. package/dist/random/distributions/log-normal.d.ts +12 -0
  57. package/dist/random/distributions/log-normal.d.ts.map +1 -0
  58. package/dist/random/distributions/log-normal.js +12 -0
  59. package/dist/random/distributions/log-normal.js.map +1 -0
  60. package/dist/random/distributions/normal.d.ts +13 -0
  61. package/dist/random/distributions/normal.d.ts.map +1 -0
  62. package/dist/random/distributions/normal.js +16 -0
  63. package/dist/random/distributions/normal.js.map +1 -0
  64. package/dist/random/distributions/pareto.d.ts +12 -0
  65. package/dist/random/distributions/pareto.d.ts.map +1 -0
  66. package/dist/random/distributions/pareto.js +14 -0
  67. package/dist/random/distributions/pareto.js.map +1 -0
  68. package/dist/random/distributions/poisson.d.ts +12 -0
  69. package/dist/random/distributions/poisson.d.ts.map +1 -0
  70. package/dist/random/distributions/poisson.js +81 -0
  71. package/dist/random/distributions/poisson.js.map +1 -0
  72. package/dist/random/distributions/uniform-int.d.ts +12 -0
  73. package/dist/random/distributions/uniform-int.d.ts.map +1 -0
  74. package/dist/random/distributions/uniform-int.js +16 -0
  75. package/dist/random/distributions/uniform-int.js.map +1 -0
  76. package/dist/random/distributions/uniform.d.ts +12 -0
  77. package/dist/random/distributions/uniform.d.ts.map +1 -0
  78. package/dist/random/distributions/uniform.js +10 -0
  79. package/dist/random/distributions/uniform.js.map +1 -0
  80. package/dist/random/rng.d.ts +17 -0
  81. package/dist/random/rng.d.ts.map +1 -0
  82. package/dist/random/rng.js +7 -0
  83. package/dist/random/rng.js.map +1 -0
  84. package/dist/random/xorshift128.d.ts +35 -0
  85. package/dist/random/xorshift128.d.ts.map +1 -0
  86. package/dist/random/xorshift128.js +112 -0
  87. package/dist/random/xorshift128.js.map +1 -0
  88. package/dist/random.d.ts +773 -0
  89. package/dist/random.d.ts.map +1 -0
  90. package/dist/random.js +934 -0
  91. package/dist/random.js.map +1 -0
  92. package/dist/test.d.ts +253 -0
  93. package/dist/test.d.ts.map +1 -0
  94. package/dist/test.js +407 -0
  95. package/dist/test.js.map +1 -0
  96. package/dist/time.d.ts +130 -0
  97. package/dist/time.d.ts.map +1 -0
  98. package/dist/time.js +154 -0
  99. package/dist/time.js.map +1 -0
  100. package/dist/tsconfig.tsbuildinfo +1 -0
  101. package/package.json +84 -0
@@ -0,0 +1,35 @@
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
+ import RNG, { type SeedType } from "./rng.js";
12
+ export default class XorShift128RNG extends RNG {
13
+ private state0;
14
+ private state1;
15
+ constructor(seed?: SeedType);
16
+ get name(): string;
17
+ /**
18
+ * Generate next random number in [0, 1)
19
+ */
20
+ next(): number;
21
+ /**
22
+ * Seed the RNG for reproducible sequences
23
+ */
24
+ seed(seed?: SeedType, _opts?: Record<string, unknown>): void;
25
+ /**
26
+ * Clone this RNG with optional new seed
27
+ */
28
+ clone(seed?: SeedType, opts?: Record<string, unknown>): RNG;
29
+ /**
30
+ * SplitMix64 for state initialization
31
+ * Ensures good distribution even from sequential seeds
32
+ */
33
+ private splitmix64;
34
+ }
35
+ //# 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;;;;;GAKG;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,112 @@
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
+ import RNG, {} from "./rng.js";
12
+ export default class XorShift128RNG extends RNG {
13
+ state0;
14
+ state1;
15
+ constructor(seed) {
16
+ super();
17
+ // Initialize with default state
18
+ this.state0 = 0n;
19
+ this.state1 = 0n;
20
+ if (seed !== undefined) {
21
+ this.seed(seed);
22
+ }
23
+ else {
24
+ // Default seed based on current time
25
+ this.seed(Date.now());
26
+ }
27
+ }
28
+ get name() {
29
+ return "xorshift128+";
30
+ }
31
+ /**
32
+ * Generate next random number in [0, 1)
33
+ */
34
+ next() {
35
+ // xorshift128+ algorithm
36
+ let s1 = this.state0;
37
+ const s0 = this.state1;
38
+ const result = s0 + s1;
39
+ this.state0 = s0;
40
+ s1 ^= s1 << 23n;
41
+ this.state1 = s1 ^ s0 ^ (s1 >> 17n) ^ (s0 >> 26n);
42
+ // Convert to [0, 1) range
43
+ // Use upper 53 bits for double precision
44
+ const upper53 = (result >> 11n) & ((1n << 53n) - 1n);
45
+ return Number(upper53) / (2 ** 53);
46
+ }
47
+ /**
48
+ * Seed the RNG for reproducible sequences
49
+ */
50
+ seed(seed, _opts) {
51
+ let seedNum;
52
+ if (typeof seed === "bigint") {
53
+ seedNum = seed;
54
+ }
55
+ else if (typeof seed === "number") {
56
+ seedNum = BigInt(Math.floor(seed));
57
+ }
58
+ else if (typeof seed === "string") {
59
+ // Hash the string to a number
60
+ let hash = 0n;
61
+ for (let i = 0; i < seed.length; i++) {
62
+ hash = ((hash << 5n) - hash) + BigInt(seed.charCodeAt(i));
63
+ hash = hash & 0xffffffffffffffffn; // Keep as 64-bit
64
+ }
65
+ seedNum = hash;
66
+ }
67
+ else if (seed instanceof RNG) {
68
+ // Use another RNG to generate seed
69
+ seedNum = BigInt(Math.floor(seed.next() * Number.MAX_SAFE_INTEGER));
70
+ }
71
+ else if (typeof seed === "function") {
72
+ seedNum = BigInt(Math.floor(seed() * Number.MAX_SAFE_INTEGER));
73
+ }
74
+ else {
75
+ seedNum = BigInt(Date.now());
76
+ }
77
+ // Initialize state using splitmix64 to ensure good initial state
78
+ // even from poor seeds
79
+ this.state0 = this.splitmix64(seedNum);
80
+ this.state1 = this.splitmix64(this.state0);
81
+ // Ensure state is never all zeros
82
+ if (this.state0 === 0n && this.state1 === 0n) {
83
+ this.state0 = 1n;
84
+ }
85
+ }
86
+ /**
87
+ * Clone this RNG with optional new seed
88
+ */
89
+ clone(seed, opts) {
90
+ const cloned = new XorShift128RNG();
91
+ if (seed !== undefined) {
92
+ cloned.seed(seed, opts);
93
+ }
94
+ else {
95
+ // Copy current state
96
+ cloned.state0 = this.state0;
97
+ cloned.state1 = this.state1;
98
+ }
99
+ return cloned;
100
+ }
101
+ /**
102
+ * SplitMix64 for state initialization
103
+ * Ensures good distribution even from sequential seeds
104
+ */
105
+ splitmix64(x) {
106
+ x = (x + 0x9e3779b97f4a7c15n) & 0xffffffffffffffffn;
107
+ x = ((x ^ (x >> 30n)) * 0xbf58476d1ce4e5b9n) & 0xffffffffffffffffn;
108
+ x = ((x ^ (x >> 27n)) * 0x94d049bb133111ebn) & 0xffffffffffffffffn;
109
+ return (x ^ (x >> 31n)) & 0xffffffffffffffffn;
110
+ }
111
+ }
112
+ //# sourceMappingURL=xorshift128.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xorshift128.js","sourceRoot":"","sources":["../../src/random/xorshift128.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,OAAO,GAAG,EAAE,EAAiB,MAAM,UAAU,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,GAAG;IACnC,MAAM,CAAS;IACf,MAAM,CAAS;IAEvB,YAAY,IAAe;QACvB,KAAK,EAAE,CAAC;QACR,gCAAgC;QAChC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,qCAAqC;YACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI;QACA,yBAAyB;QACzB,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;QAElD,0BAA0B;QAC1B,yCAAyC;QACzC,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,IAAe,EAAE,KAA+B;QACjD,IAAI,OAAe,CAAC;QAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,8BAA8B;YAC9B,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,IAAI,GAAG,IAAI,GAAG,mBAAmB,CAAC,CAAC,iBAAiB;YACxD,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,IAAI,YAAY,GAAG,EAAE,CAAC;YAC7B,mCAAmC;YACnC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;YACpC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACjC,CAAC;QAED,iEAAiE;QACjE,uBAAuB;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3C,kCAAkC;QAClC,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAe,EAAE,IAA8B;QACjD,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACpC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACJ,qBAAqB;YACrB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC5B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,UAAU,CAAC,CAAS;QACxB,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;QACpD,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;QACnE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;QACnE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,mBAAmB,CAAC;IAClD,CAAC;CACJ"}