@jalvin/runtime 2.0.1 → 2.0.3

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 (61) hide show
  1. package/dist/bibi.d.ts +9 -0
  2. package/dist/bibi.d.ts.map +1 -1
  3. package/dist/bibi.js +42 -25
  4. package/dist/bibi.js.map +1 -1
  5. package/dist/index.d.ts +14 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +174 -177
  8. package/dist/index.js.map +1 -1
  9. package/dist/stdlib/collections.d.ts +73 -0
  10. package/dist/stdlib/collections.d.ts.map +1 -0
  11. package/dist/stdlib/collections.js +414 -0
  12. package/dist/stdlib/collections.js.map +1 -0
  13. package/dist/stdlib/conversions.d.ts +48 -0
  14. package/dist/stdlib/conversions.d.ts.map +1 -0
  15. package/dist/stdlib/conversions.js +153 -0
  16. package/dist/stdlib/conversions.js.map +1 -0
  17. package/dist/stdlib/delegates.d.ts +41 -0
  18. package/dist/stdlib/delegates.d.ts.map +1 -0
  19. package/dist/stdlib/delegates.js +116 -0
  20. package/dist/stdlib/delegates.js.map +1 -0
  21. package/dist/stdlib/equality.d.ts +9 -0
  22. package/dist/stdlib/equality.d.ts.map +1 -0
  23. package/dist/stdlib/equality.js +29 -0
  24. package/dist/stdlib/equality.js.map +1 -0
  25. package/dist/stdlib/index.d.ts +13 -0
  26. package/dist/stdlib/index.d.ts.map +1 -0
  27. package/dist/stdlib/index.js +74 -0
  28. package/dist/stdlib/index.js.map +1 -0
  29. package/dist/stdlib/io.d.ts +3 -0
  30. package/dist/stdlib/io.d.ts.map +1 -0
  31. package/dist/stdlib/io.js +14 -0
  32. package/dist/stdlib/io.js.map +1 -0
  33. package/dist/stdlib/math.d.ts +38 -0
  34. package/dist/stdlib/math.d.ts.map +1 -0
  35. package/dist/stdlib/math.js +68 -0
  36. package/dist/stdlib/math.js.map +1 -0
  37. package/dist/stdlib/random.d.ts +23 -0
  38. package/dist/stdlib/random.d.ts.map +1 -0
  39. package/dist/stdlib/random.js +41 -0
  40. package/dist/stdlib/random.js.map +1 -0
  41. package/dist/stdlib/regex.d.ts +30 -0
  42. package/dist/stdlib/regex.d.ts.map +1 -0
  43. package/dist/stdlib/regex.js +80 -0
  44. package/dist/stdlib/regex.js.map +1 -0
  45. package/dist/stdlib/result.d.ts +29 -0
  46. package/dist/stdlib/result.d.ts.map +1 -0
  47. package/dist/stdlib/result.js +96 -0
  48. package/dist/stdlib/result.js.map +1 -0
  49. package/dist/stdlib/strings.d.ts +35 -0
  50. package/dist/stdlib/strings.d.ts.map +1 -0
  51. package/dist/stdlib/strings.js +161 -0
  52. package/dist/stdlib/strings.js.map +1 -0
  53. package/dist/stdlib/timing.d.ts +12 -0
  54. package/dist/stdlib/timing.d.ts.map +1 -0
  55. package/dist/stdlib/timing.js +27 -0
  56. package/dist/stdlib/timing.js.map +1 -0
  57. package/dist/stdlib/types.d.ts +34 -0
  58. package/dist/stdlib/types.d.ts.map +1 -0
  59. package/dist/stdlib/types.js +82 -0
  60. package/dist/stdlib/types.js.map +1 -0
  61. package/package.json +7 -3
@@ -0,0 +1,41 @@
1
+ export interface PropertyDelegate<T> {
2
+ getValue(): T;
3
+ setValue(value: T): void;
4
+ }
5
+ export declare function delegate<T>(impl: PropertyDelegate<T>, _name: string, _receiver: object): PropertyDelegate<T>;
6
+ export declare class LazyDelegate<T> implements PropertyDelegate<T> {
7
+ private readonly _init;
8
+ private _value;
9
+ private _initialized;
10
+ constructor(_init: () => T);
11
+ getValue(): T;
12
+ setValue(_v: T): void;
13
+ }
14
+ export declare function lazy<T>(init: () => T): LazyDelegate<T>;
15
+ export declare class ObservableDelegate<T> implements PropertyDelegate<T> {
16
+ private _value;
17
+ private readonly _onChange;
18
+ private _name;
19
+ constructor(_value: T, _onChange: (property: string, oldValue: T, newValue: T) => void, _name?: string);
20
+ getValue(): T;
21
+ setValue(value: T): void;
22
+ }
23
+ export declare const Delegates: {
24
+ observable<T>(initial: T, onChange: (prop: string, old: T, new_: T) => void): ObservableDelegate<T>;
25
+ notNull<T>(): PropertyDelegate<T>;
26
+ };
27
+ /** `let` — calls `block` with the value as argument, returns the block result. */
28
+ export declare function let_<T, R>(value: T, block: (it: T) => R): R;
29
+ /** `run` — calls `block` with the value as receiver, returns the block result. */
30
+ export declare function run_<T, R>(value: T, block: (this: T) => R): R;
31
+ /** `apply` — calls `block` with the value as receiver, returns the original value. */
32
+ export declare function apply<T>(value: T, block: (this: T) => void): T;
33
+ /** `also` — calls `block` with the value as argument, returns the original value. */
34
+ export declare function also<T>(value: T, block: (it: T) => void): T;
35
+ /** `with` — calls `block` with `receiver` as receiver, returns block result. */
36
+ export declare function with_<T, R>(receiver: T, block: (this: T) => R): R;
37
+ /** `takeIf` — returns the value if `predicate` is true, otherwise null. */
38
+ export declare function takeIf<T>(value: T, predicate: (it: T) => boolean): T | null;
39
+ /** `takeUnless` — returns the value if `predicate` is false, otherwise null. */
40
+ export declare function takeUnless<T>(value: T, predicate: (it: T) => boolean): T | null;
41
+ //# sourceMappingURL=delegates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegates.d.ts","sourceRoot":"","sources":["../../src/stdlib/delegates.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,QAAQ,IAAI,CAAC,CAAC;IACd,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAgB,QAAQ,CAAC,CAAC,EACxB,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACzB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,gBAAgB,CAAC,CAAC,CAAC,CAErB;AAED,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IAG7C,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,YAAY,CAAS;gBACA,KAAK,EAAE,MAAM,CAAC;IAE3C,QAAQ,IAAI,CAAC;IAQb,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI;CAGtB;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAEtD;AAED,qBAAa,kBAAkB,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IAE7D,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,KAAK;gBAFL,MAAM,EAAE,CAAC,EACA,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,EACxE,KAAK,SAAK;IAGpB,QAAQ,IAAI,CAAC;IAEb,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;CAKzB;AAED,eAAO,MAAM,SAAS;eACT,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC;YAG3F,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC;CAUlC,CAAC;AAMF,kFAAkF;AAClF,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAE3D;AAED,kFAAkF;AAClF,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAE7D;AAED,sFAAsF;AACtF,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,CAAC,CAG9D;AAED,qFAAqF;AACrF,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,GAAG,CAAC,CAG3D;AAED,gFAAgF;AAChF,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAEjE;AAED,2EAA2E;AAC3E,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,GAAG,IAAI,CAE3E;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,GAAG,IAAI,CAE/E"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────────────
3
+ // stdlib/delegates.ts — Property delegates and scope functions
4
+ //
5
+ // Delegates back Jalvin's `by` keyword:
6
+ // val x by lazy { expensiveComputation() }
7
+ // var y by Delegates.observable(0) { _, old, new_ -> ... }
8
+ //
9
+ // Scope functions implement chaining idioms:
10
+ // value.let { transform(it) }
11
+ // obj.apply { configure() }
12
+ // ─────────────────────────────────────────────────────────────────────────────
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.Delegates = exports.ObservableDelegate = exports.LazyDelegate = void 0;
15
+ exports.delegate = delegate;
16
+ exports.lazy = lazy;
17
+ exports.let_ = let_;
18
+ exports.run_ = run_;
19
+ exports.apply = apply;
20
+ exports.also = also;
21
+ exports.with_ = with_;
22
+ exports.takeIf = takeIf;
23
+ exports.takeUnless = takeUnless;
24
+ const types_js_1 = require("./types.js");
25
+ function delegate(impl, _name, _receiver) {
26
+ return impl;
27
+ }
28
+ class LazyDelegate {
29
+ _init;
30
+ _value;
31
+ _initialized = false;
32
+ constructor(_init) {
33
+ this._init = _init;
34
+ }
35
+ getValue() {
36
+ if (!this._initialized) {
37
+ this._value = this._init();
38
+ this._initialized = true;
39
+ }
40
+ return this._value;
41
+ }
42
+ setValue(_v) {
43
+ throw new Error("Cannot set a lazy property");
44
+ }
45
+ }
46
+ exports.LazyDelegate = LazyDelegate;
47
+ function lazy(init) {
48
+ return new LazyDelegate(init);
49
+ }
50
+ class ObservableDelegate {
51
+ _value;
52
+ _onChange;
53
+ _name;
54
+ constructor(_value, _onChange, _name = "") {
55
+ this._value = _value;
56
+ this._onChange = _onChange;
57
+ this._name = _name;
58
+ }
59
+ getValue() { return this._value; }
60
+ setValue(value) {
61
+ const old = this._value;
62
+ this._value = value;
63
+ this._onChange(this._name, old, value);
64
+ }
65
+ }
66
+ exports.ObservableDelegate = ObservableDelegate;
67
+ exports.Delegates = {
68
+ observable(initial, onChange) {
69
+ return new ObservableDelegate(initial, onChange);
70
+ },
71
+ notNull() {
72
+ let _v;
73
+ return {
74
+ getValue() {
75
+ if (_v === undefined)
76
+ throw new types_js_1.NullPointerException("Delegated property was not initialised");
77
+ return _v;
78
+ },
79
+ setValue(v) { _v = v; },
80
+ };
81
+ },
82
+ };
83
+ // ─────────────────────────────────────────────────────────────────────────────
84
+ // Scope functions
85
+ // ─────────────────────────────────────────────────────────────────────────────
86
+ /** `let` — calls `block` with the value as argument, returns the block result. */
87
+ function let_(value, block) {
88
+ return block(value);
89
+ }
90
+ /** `run` — calls `block` with the value as receiver, returns the block result. */
91
+ function run_(value, block) {
92
+ return block.call(value);
93
+ }
94
+ /** `apply` — calls `block` with the value as receiver, returns the original value. */
95
+ function apply(value, block) {
96
+ block.call(value);
97
+ return value;
98
+ }
99
+ /** `also` — calls `block` with the value as argument, returns the original value. */
100
+ function also(value, block) {
101
+ block(value);
102
+ return value;
103
+ }
104
+ /** `with` — calls `block` with `receiver` as receiver, returns block result. */
105
+ function with_(receiver, block) {
106
+ return block.call(receiver);
107
+ }
108
+ /** `takeIf` — returns the value if `predicate` is true, otherwise null. */
109
+ function takeIf(value, predicate) {
110
+ return predicate(value) ? value : null;
111
+ }
112
+ /** `takeUnless` — returns the value if `predicate` is false, otherwise null. */
113
+ function takeUnless(value, predicate) {
114
+ return predicate(value) ? null : value;
115
+ }
116
+ //# sourceMappingURL=delegates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegates.js","sourceRoot":"","sources":["../../src/stdlib/delegates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Structural equality check:
3
+ * - null-safe: `null == null` is `true`, `null == anything` is `false`
4
+ * - delegates to `.equals(other)` if the left operand exposes it
5
+ * - array-aware: recursively compares element-by-element
6
+ * - falls back to `===` for primitives and everything else
7
+ */
8
+ export declare function jalvinEquals(a: unknown, b: unknown): boolean;
9
+ //# sourceMappingURL=equality.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equality.d.ts","sourceRoot":"","sources":["../../src/stdlib/equality.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAW5D"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────────────
3
+ // stdlib/equality.ts — Structural equality (backs the Jalvin `==` operator)
4
+ // ─────────────────────────────────────────────────────────────────────────────
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.jalvinEquals = jalvinEquals;
7
+ /**
8
+ * Structural equality check:
9
+ * - null-safe: `null == null` is `true`, `null == anything` is `false`
10
+ * - delegates to `.equals(other)` if the left operand exposes it
11
+ * - array-aware: recursively compares element-by-element
12
+ * - falls back to `===` for primitives and everything else
13
+ */
14
+ function jalvinEquals(a, b) {
15
+ if (a === b)
16
+ return true;
17
+ if (a === null || a === undefined || b === null || b === undefined)
18
+ return false;
19
+ if (typeof a === "object" && typeof a["equals"] === "function") {
20
+ return a.equals(b);
21
+ }
22
+ if (Array.isArray(a) && Array.isArray(b)) {
23
+ if (a.length !== b.length)
24
+ return false;
25
+ return a.every((v, i) => jalvinEquals(v, b[i]));
26
+ }
27
+ return false;
28
+ }
29
+ //# sourceMappingURL=equality.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equality.js","sourceRoot":"","sources":["../../src/stdlib/equality.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,4EAA4E;AAC5E,gFAAgF;;AAShF,oCAWC;AAlBD;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,CAAU,EAAE,CAAU;IACjD,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACjF,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAQ,CAA6B,CAAC,QAAQ,CAAC,KAAK,UAAU,EAAE,CAAC;QAC5F,OAAQ,CAAyC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,13 @@
1
+ export * from "./io.js";
2
+ export * from "./types.js";
3
+ export * from "./delegates.js";
4
+ export * from "./collections.js";
5
+ export * from "./strings.js";
6
+ export * from "./math.js";
7
+ export * from "./conversions.js";
8
+ export * from "./result.js";
9
+ export * from "./regex.js";
10
+ export * from "./random.js";
11
+ export * from "./timing.js";
12
+ export * from "./equality.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stdlib/index.ts"],"names":[],"mappings":"AA8CA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────────────
3
+ // stdlib/index.ts — Re-exports the entire Jalvin standard library
4
+ //
5
+ // Module map — find any function by its file:
6
+ //
7
+ // io.ts println, print
8
+ // types.ts notNull, NullPointerException, safeCast, checkNotNull,
9
+ // requireNotNull, requireCondition, check, error,
10
+ // IllegalArgumentException, IllegalStateException,
11
+ // UnsupportedOperationException, IndexOutOfBoundsException,
12
+ // NoSuchElementException
13
+ // delegates.ts PropertyDelegate, delegate, LazyDelegate, lazy,
14
+ // ObservableDelegate, Delegates,
15
+ // let_, run_, apply, also, with_, takeIf, takeUnless
16
+ // collections.ts listOf, mutableListOf, setOf, mutableSetOf, mapOf,
17
+ // mutableMapOf, pairOf, tripleOf,
18
+ // map, filter, filterNotNull, forEach, fold, reduce,
19
+ // flatMap, flatten, groupBy, associate, zip,
20
+ // sumOf, any, all, none, count,
21
+ // minOf, maxOf, minOrNull, maxOrNull, joinToString,
22
+ // first, firstOrNull, last, lastOrNull, find, findLast,
23
+ // distinct, distinctBy, sortedBy, sortedByDescending,
24
+ // reversed, take, takeWhile, drop, dropWhile,
25
+ // chunked, windowed, partition, withIndex,
26
+ // buildList, buildSet, buildMap
27
+ // strings.ts isBlank, isNotBlank, isNullOrBlank,
28
+ // toIntOrNull, toDoubleOrNull, toBooleanOrNull,
29
+ // padStart, padEnd, repeat_, capitalize, decapitalize,
30
+ // substringBefore, substringAfter, substringBeforeLast,
31
+ // substringAfterLast, removePrefix, removeSuffix,
32
+ // lines, lineSequence, ifEmpty, ifBlank,
33
+ // trimIndent, StringBuilder, buildString
34
+ // math.ts abs, ceil, floor, round, sqrt, pow, exp, ln, log2, log10,
35
+ // sin, cos, tan, asin, acos, atan, atan2, sign, hypot,
36
+ // truncate, PI, E, clamp, truncDiv,
37
+ // coerceAtLeast, coerceAtMost, coerceIn, Int, Long
38
+ // conversions.ts toInt, toLong, toFloat, toDouble, toChar, charCodeOf,
39
+ // toString, Pair, Triple, range, IntRange, downTo, step
40
+ // result.ts Result, runCatching, runCatchingAsync
41
+ // regex.ts Regex, RegexResult, JalvinRegex
42
+ // random.ts Random, Default, randomUUID
43
+ // timing.ts measureTimeMillis, measureTimeMillisAsync,
44
+ // TimedValue, measureTimedValue
45
+ // equality.ts jalvinEquals
46
+ // ─────────────────────────────────────────────────────────────────────────────
47
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
48
+ if (k2 === undefined) k2 = k;
49
+ var desc = Object.getOwnPropertyDescriptor(m, k);
50
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
51
+ desc = { enumerable: true, get: function() { return m[k]; } };
52
+ }
53
+ Object.defineProperty(o, k2, desc);
54
+ }) : (function(o, m, k, k2) {
55
+ if (k2 === undefined) k2 = k;
56
+ o[k2] = m[k];
57
+ }));
58
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
59
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
60
+ };
61
+ Object.defineProperty(exports, "__esModule", { value: true });
62
+ __exportStar(require("./io.js"), exports);
63
+ __exportStar(require("./types.js"), exports);
64
+ __exportStar(require("./delegates.js"), exports);
65
+ __exportStar(require("./collections.js"), exports);
66
+ __exportStar(require("./strings.js"), exports);
67
+ __exportStar(require("./math.js"), exports);
68
+ __exportStar(require("./conversions.js"), exports);
69
+ __exportStar(require("./result.js"), exports);
70
+ __exportStar(require("./regex.js"), exports);
71
+ __exportStar(require("./random.js"), exports);
72
+ __exportStar(require("./timing.js"), exports);
73
+ __exportStar(require("./equality.js"), exports);
74
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stdlib/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,kEAAkE;AAClE,EAAE;AACF,8CAA8C;AAC9C,EAAE;AACF,kCAAkC;AAClC,0EAA0E;AAC1E,mEAAmE;AACnE,oEAAoE;AACpE,6EAA6E;AAC7E,0CAA0C;AAC1C,mEAAmE;AACnE,kDAAkD;AAClD,sEAAsE;AACtE,sEAAsE;AACtE,mDAAmD;AACnD,sEAAsE;AACtE,8DAA8D;AAC9D,iDAAiD;AACjD,qEAAqE;AACrE,yEAAyE;AACzE,uEAAuE;AACvE,+DAA+D;AAC/D,4DAA4D;AAC5D,iDAAiD;AACjD,uDAAuD;AACvD,iEAAiE;AACjE,wEAAwE;AACxE,yEAAyE;AACzE,mEAAmE;AACnE,0DAA0D;AAC1D,0DAA0D;AAC1D,6EAA6E;AAC7E,wEAAwE;AACxE,qDAAqD;AACrD,oEAAoE;AACpE,yEAAyE;AACzE,yEAAyE;AACzE,yDAAyD;AACzD,mDAAmD;AACnD,+CAA+C;AAC/C,8DAA8D;AAC9D,iDAAiD;AACjD,gCAAgC;AAChC,gFAAgF;;;;;;;;;;;;;;;;AAEhF,0CAAwB;AACxB,6CAA2B;AAC3B,iDAA+B;AAC/B,mDAAiC;AACjC,+CAA6B;AAC7B,4CAA0B;AAC1B,mDAAiC;AACjC,8CAA4B;AAC5B,6CAA2B;AAC3B,8CAA4B;AAC5B,8CAA4B;AAC5B,gDAA8B"}
@@ -0,0 +1,3 @@
1
+ export declare function println(...args: unknown[]): void;
2
+ export declare function print(...args: unknown[]): void;
3
+ //# sourceMappingURL=io.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/stdlib/io.ts"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAEhD;AAED,wBAAgB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAE9C"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────────────
3
+ // stdlib/io.ts — Console output
4
+ // ─────────────────────────────────────────────────────────────────────────────
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.println = println;
7
+ exports.print = print;
8
+ function println(...args) {
9
+ console.log(...args);
10
+ }
11
+ function print(...args) {
12
+ process.stdout?.write(args.map(String).join(""));
13
+ }
14
+ //# sourceMappingURL=io.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/stdlib/io.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,gCAAgC;AAChC,gFAAgF;;AAEhF,0BAEC;AAED,sBAEC;AAND,SAAgB,OAAO,CAAC,GAAG,IAAe;IACxC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,SAAgB,KAAK,CAAC,GAAG,IAAe;IACtC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,38 @@
1
+ export declare const abs: (x: number) => number;
2
+ export declare const ceil: (x: number) => number;
3
+ export declare const floor: (x: number) => number;
4
+ export declare const round: (x: number) => number;
5
+ export declare const sqrt: (x: number) => number;
6
+ export declare const pow: (x: number, y: number) => number;
7
+ export declare const exp: (x: number) => number;
8
+ export declare const ln: (x: number) => number;
9
+ export declare const log2: (x: number) => number;
10
+ export declare const log10: (x: number) => number;
11
+ export declare const sin: (x: number) => number;
12
+ export declare const cos: (x: number) => number;
13
+ export declare const tan: (x: number) => number;
14
+ export declare const asin: (x: number) => number;
15
+ export declare const acos: (x: number) => number;
16
+ export declare const atan: (x: number) => number;
17
+ export declare const atan2: (y: number, x: number) => number;
18
+ export declare const sign: (x: number) => number;
19
+ export declare const hypot: (...values: number[]) => number;
20
+ export declare const truncate: (x: number) => number;
21
+ export declare const PI: number;
22
+ export declare const E: number;
23
+ /** Clamps a value so it falls within [min, max]. */
24
+ export declare function clamp(value: number, min: number, max: number): number;
25
+ /** Integer division rounding towards zero. */
26
+ export declare function truncDiv(a: number, b: number): number;
27
+ export declare function coerceAtLeast(value: number, min: number): number;
28
+ export declare function coerceAtMost(value: number, max: number): number;
29
+ export declare function coerceIn(value: number, min: number, max: number): number;
30
+ export declare const Int: {
31
+ readonly MAX_VALUE: 2147483647;
32
+ readonly MIN_VALUE: -2147483648;
33
+ };
34
+ export declare const Long: {
35
+ readonly MAX_VALUE: bigint;
36
+ readonly MIN_VALUE: bigint;
37
+ };
38
+ //# sourceMappingURL=math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/stdlib/math.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,GAAG,uBAA2B,CAAC;AAC5C,eAAO,MAAM,IAAI,uBAA2B,CAAC;AAC7C,eAAO,MAAM,KAAK,uBAA2B,CAAC;AAC9C,eAAO,MAAM,KAAK,uBAA2B,CAAC;AAC9C,eAAO,MAAM,IAAI,uBAA2B,CAAC;AAC7C,eAAO,MAAM,GAAG,kCAA2B,CAAC;AAC5C,eAAO,MAAM,GAAG,uBAA2B,CAAC;AAC5C,eAAO,MAAM,EAAE,uBAA4B,CAAC;AAC5C,eAAO,MAAM,IAAI,uBAA2B,CAAC;AAC7C,eAAO,MAAM,KAAK,uBAA2B,CAAC;AAC9C,eAAO,MAAM,GAAG,uBAA2B,CAAC;AAC5C,eAAO,MAAM,GAAG,uBAA2B,CAAC;AAC5C,eAAO,MAAM,GAAG,uBAA2B,CAAC;AAC5C,eAAO,MAAM,IAAI,uBAA2B,CAAC;AAC7C,eAAO,MAAM,IAAI,uBAA2B,CAAC;AAC7C,eAAO,MAAM,IAAI,uBAA2B,CAAC;AAC7C,eAAO,MAAM,KAAK,kCAA2B,CAAC;AAC9C,eAAO,MAAM,IAAI,uBAA2B,CAAC;AAC7C,eAAO,MAAM,KAAK,iCAA2B,CAAC;AAC9C,eAAO,MAAM,QAAQ,uBAAwB,CAAC;AAE9C,eAAO,MAAM,EAAE,QAAU,CAAC;AAC1B,eAAO,MAAM,CAAC,QAAU,CAAC;AAEzB,oDAAoD;AACpD,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,8CAA8C;AAC9C,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAErD;AAMD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAExE;AAMD,eAAO,MAAM,GAAG;;;CAGN,CAAC;AAEX,eAAO,MAAM,IAAI;;;CAGP,CAAC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────────────
3
+ // stdlib/math.ts — Math functions, numeric constants, and range helpers
4
+ // ─────────────────────────────────────────────────────────────────────────────
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Long = exports.Int = exports.E = exports.PI = exports.truncate = exports.hypot = exports.sign = exports.atan2 = exports.atan = exports.acos = exports.asin = exports.tan = exports.cos = exports.sin = exports.log10 = exports.log2 = exports.ln = exports.exp = exports.pow = exports.sqrt = exports.round = exports.floor = exports.ceil = exports.abs = void 0;
7
+ exports.clamp = clamp;
8
+ exports.truncDiv = truncDiv;
9
+ exports.coerceAtLeast = coerceAtLeast;
10
+ exports.coerceAtMost = coerceAtMost;
11
+ exports.coerceIn = coerceIn;
12
+ // ─────────────────────────────────────────────────────────────────────────────
13
+ // Math functions (direct bindings to JS Math)
14
+ // ─────────────────────────────────────────────────────────────────────────────
15
+ exports.abs = Math.abs.bind(Math);
16
+ exports.ceil = Math.ceil.bind(Math);
17
+ exports.floor = Math.floor.bind(Math);
18
+ exports.round = Math.round.bind(Math);
19
+ exports.sqrt = Math.sqrt.bind(Math);
20
+ exports.pow = Math.pow.bind(Math);
21
+ exports.exp = Math.exp.bind(Math);
22
+ exports.ln = Math.log.bind(Math);
23
+ exports.log2 = Math.log2.bind(Math);
24
+ exports.log10 = Math.log10.bind(Math);
25
+ exports.sin = Math.sin.bind(Math);
26
+ exports.cos = Math.cos.bind(Math);
27
+ exports.tan = Math.tan.bind(Math);
28
+ exports.asin = Math.asin.bind(Math);
29
+ exports.acos = Math.acos.bind(Math);
30
+ exports.atan = Math.atan.bind(Math);
31
+ exports.atan2 = Math.atan2.bind(Math);
32
+ exports.sign = Math.sign.bind(Math);
33
+ exports.hypot = Math.hypot.bind(Math);
34
+ exports.truncate = Math.trunc.bind(Math);
35
+ exports.PI = Math.PI;
36
+ exports.E = Math.E;
37
+ /** Clamps a value so it falls within [min, max]. */
38
+ function clamp(value, min, max) {
39
+ return Math.max(min, Math.min(max, value));
40
+ }
41
+ /** Integer division rounding towards zero. */
42
+ function truncDiv(a, b) {
43
+ return Math.trunc(a / b);
44
+ }
45
+ // ─────────────────────────────────────────────────────────────────────────────
46
+ // Numeric range clamping
47
+ // ─────────────────────────────────────────────────────────────────────────────
48
+ function coerceAtLeast(value, min) {
49
+ return value < min ? min : value;
50
+ }
51
+ function coerceAtMost(value, max) {
52
+ return value > max ? max : value;
53
+ }
54
+ function coerceIn(value, min, max) {
55
+ return value < min ? min : value > max ? max : value;
56
+ }
57
+ // ─────────────────────────────────────────────────────────────────────────────
58
+ // Integer / Long boundary constants
59
+ // ─────────────────────────────────────────────────────────────────────────────
60
+ exports.Int = {
61
+ MAX_VALUE: 2147483647,
62
+ MIN_VALUE: -2147483648,
63
+ };
64
+ exports.Long = {
65
+ MAX_VALUE: BigInt("9223372036854775807"),
66
+ MIN_VALUE: BigInt("-9223372036854775808"),
67
+ };
68
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/stdlib/math.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export declare class Random {
2
+ /**
3
+ * Generates a random integer.
4
+ *
5
+ * Overloads:
6
+ * nextInt() → [0, Int.MAX_VALUE)
7
+ * nextInt(until) → [0, until)
8
+ * nextInt(from, until) → [from, until)
9
+ */
10
+ nextInt(): number;
11
+ nextInt(until: number): number;
12
+ nextInt(from: number, until: number): number;
13
+ nextLong(until?: number): number;
14
+ nextDouble(): number;
15
+ nextFloat(): number;
16
+ nextBoolean(): boolean;
17
+ nextBytes(size: number): Uint8Array;
18
+ }
19
+ /** The default global Random instance. */
20
+ export declare const Default: Random;
21
+ /** Generates a RFC 4122 v4 UUID string. */
22
+ export declare function randomUUID(): string;
23
+ //# sourceMappingURL=random.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../src/stdlib/random.ts"],"names":[],"mappings":"AAIA,qBAAa,MAAM;IACjB;;;;;;;OAOG;IACH,OAAO,IAAyB,MAAM;IACtC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAW,MAAM;IACtC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAO5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAChC,UAAU,IAAgB,MAAM;IAChC,SAAS,IAAiB,MAAM;IAChC,WAAW,IAAe,OAAO;IAEjC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;CAKpC;AAED,0CAA0C;AAC1C,eAAO,MAAM,OAAO,QAAe,CAAC;AAEpC,2CAA2C;AAC3C,wBAAgB,UAAU,IAAI,MAAM,CASnC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────────────
3
+ // stdlib/random.ts — Random number generation and UUID
4
+ // ─────────────────────────────────────────────────────────────────────────────
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Default = exports.Random = void 0;
7
+ exports.randomUUID = randomUUID;
8
+ class Random {
9
+ nextInt(fromOrUntil, until) {
10
+ if (fromOrUntil === undefined)
11
+ return Math.floor(Math.random() * 2147483647);
12
+ if (until === undefined)
13
+ return Math.floor(Math.random() * fromOrUntil);
14
+ return fromOrUntil + Math.floor(Math.random() * (until - fromOrUntil));
15
+ }
16
+ nextLong(until) { return this.nextInt(until ?? 2147483647); }
17
+ nextDouble() { return Math.random(); }
18
+ nextFloat() { return Math.random(); }
19
+ nextBoolean() { return Math.random() < 0.5; }
20
+ nextBytes(size) {
21
+ const arr = new Uint8Array(size);
22
+ for (let i = 0; i < size; i++)
23
+ arr[i] = this.nextInt(256);
24
+ return arr;
25
+ }
26
+ }
27
+ exports.Random = Random;
28
+ /** The default global Random instance. */
29
+ exports.Default = new Random();
30
+ /** Generates a RFC 4122 v4 UUID string. */
31
+ function randomUUID() {
32
+ if (typeof crypto !== "undefined" && crypto.randomUUID) {
33
+ return crypto.randomUUID();
34
+ }
35
+ // Fallback for environments without crypto.randomUUID
36
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
37
+ const r = (Math.random() * 16) | 0;
38
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
39
+ });
40
+ }
41
+ //# sourceMappingURL=random.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.js","sourceRoot":"","sources":["../../src/stdlib/random.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,uDAAuD;AACvD,gFAAgF;;;AAoChF,gCASC;AA3CD,MAAa,MAAM;IAYjB,OAAO,CAAC,WAAoB,EAAE,KAAc;QAC1C,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC;QAC7E,IAAI,KAAK,KAAK,SAAS;YAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC;QAC9E,OAAO,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,QAAQ,CAAC,KAAc,IAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/E,UAAU,KAA0B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3D,SAAS,KAA2B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3D,WAAW,KAAyB,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IAEjE,SAAS,CAAC,IAAY;QACpB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA5BD,wBA4BC;AAED,0CAA0C;AAC7B,QAAA,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;AAEpC,2CAA2C;AAC3C,SAAgB,UAAU;IACxB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACvD,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IACD,sDAAsD;IACtD,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACnE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,30 @@
1
+ export declare class RegexResult {
2
+ readonly value: string;
3
+ readonly range: {
4
+ start: number;
5
+ endInclusive: number;
6
+ };
7
+ readonly groupValues: ReadonlyArray<string>;
8
+ constructor(value: string, range: {
9
+ start: number;
10
+ endInclusive: number;
11
+ }, groupValues: ReadonlyArray<string>);
12
+ }
13
+ export declare class Regex {
14
+ private readonly _re;
15
+ constructor(pattern: string, options?: string);
16
+ /** Returns true if the **entire** input matches this regex (anchored). */
17
+ matches(input: string): boolean;
18
+ /** Returns true if any part of the input matches. */
19
+ containsMatchIn(input: string): boolean;
20
+ find(input: string, startIndex?: number): RegexResult | null;
21
+ findAll(input: string, startIndex?: number): RegexResult[];
22
+ replace(input: string, replacement: string | ((result: RegexResult) => string)): string;
23
+ replaceFirst(input: string, replacement: string): string;
24
+ split(input: string, limit?: number): string[];
25
+ toPattern(): string;
26
+ toString(): string;
27
+ }
28
+ /** Constructor alias — `JalvinRegex` and `Regex` are identical. */
29
+ export { Regex as JalvinRegex };
30
+ //# sourceMappingURL=regex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex.d.ts","sourceRoot":"","sources":["../../src/stdlib/regex.ts"],"names":[],"mappings":"AAIA,qBAAa,WAAW;IAEpB,QAAQ,CAAC,KAAK,EAAQ,MAAM;IAC5B,QAAQ,CAAC,KAAK,EAAQ;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAC7D,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC;gBAFlC,KAAK,EAAQ,MAAM,EACnB,KAAK,EAAQ;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EACpD,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC;CAE9C;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,OAAO,EAAE,MAAM,EAAE,OAAO,SAAK;IAUzC,0EAA0E;IAC1E,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAK/B,qDAAqD;IACrD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAKvC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,WAAW,GAAG,IAAI;IAYvD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,WAAW,EAAE;IAerD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC,GAAG,MAAM;IAcvF,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAKxD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAK9C,SAAS,IAAI,MAAM;IACnB,QAAQ,IAAK,MAAM;CACpB;AAED,mEAAmE;AACnE,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,CAAC"}