@develia/commons 0.4.23 → 0.4.25
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.
- package/dist/array.d.ts.map +1 -0
- package/dist/array.js.map +1 -0
- package/dist/async-pool-executor.d.ts.map +1 -0
- package/dist/async-pool-executor.js.map +1 -0
- package/dist/browser/form-utilities.d.ts.map +1 -0
- package/dist/browser/form-utilities.js.map +1 -0
- package/dist/browser/geo-location.d.ts.map +1 -0
- package/dist/browser/geo-location.js.map +1 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/native-bridge.d.ts.map +1 -0
- package/dist/browser/native-bridge.js.map +1 -0
- package/dist/cancellable-promise.d.ts.map +1 -0
- package/dist/cancellable-promise.js.map +1 -0
- package/dist/clean-url-search-params.d.ts.map +1 -0
- package/dist/clean-url-search-params.js.map +1 -0
- package/dist/collections/cache-dictionary.d.ts.map +1 -0
- package/dist/collections/cache-dictionary.js.map +1 -0
- package/dist/collections/default-map.d.ts.map +1 -0
- package/dist/collections/default-map.js.map +1 -0
- package/dist/collections/default-weak-map.d.ts.map +1 -0
- package/dist/collections/default-weak-map.js.map +1 -0
- package/dist/collections/from.d.ts.map +1 -0
- package/dist/collections/from.js.map +1 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/collections/index.js.map +1 -0
- package/dist/debouncer.d.ts +60 -0
- package/dist/debouncer.d.ts.map +1 -0
- package/dist/debouncer.js +118 -0
- package/dist/debouncer.js.map +1 -0
- package/dist/draft.d.ts.map +1 -0
- package/dist/draft.js.map +1 -0
- package/dist/event-bus.d.ts.map +1 -0
- package/dist/event-bus.js.map +1 -0
- package/dist/{types/functions.d.ts → functions.d.ts} +5 -35
- package/dist/functions.d.ts.map +1 -0
- package/dist/{esm/functions.js → functions.js} +0 -85
- package/dist/functions.js.map +1 -0
- package/dist/{types/index.d.ts → index.d.ts} +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/{web/index.js → index.js} +2 -0
- package/dist/index.js.map +1 -0
- package/dist/key-value-pair.d.ts.map +1 -0
- package/dist/key-value-pair.js.map +1 -0
- package/dist/keyed-debouncer.d.ts +56 -0
- package/dist/keyed-debouncer.d.ts.map +1 -0
- package/dist/keyed-debouncer.js +109 -0
- package/dist/keyed-debouncer.js.map +1 -0
- package/dist/lazy.d.ts.map +1 -0
- package/dist/lazy.js.map +1 -0
- package/dist/math.d.ts.map +1 -0
- package/dist/math.js.map +1 -0
- package/dist/order.d.ts.map +1 -0
- package/dist/order.js.map +1 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js.map +1 -0
- package/dist/patch.d.ts.map +1 -0
- package/dist/patch.js.map +1 -0
- package/dist/range.d.ts.map +1 -0
- package/dist/range.js.map +1 -0
- package/dist/result.d.ts.map +1 -0
- package/dist/result.js.map +1 -0
- package/dist/stopwatch.d.ts.map +1 -0
- package/dist/stopwatch.js.map +1 -0
- package/dist/string.d.ts.map +1 -0
- package/dist/string.js.map +1 -0
- package/dist/timer.d.ts.map +1 -0
- package/dist/timer.js.map +1 -0
- package/dist/timespan.d.ts.map +1 -0
- package/dist/timespan.js.map +1 -0
- package/dist/triggers.d.ts.map +1 -0
- package/dist/triggers.js.map +1 -0
- package/dist/type-code.d.ts.map +1 -0
- package/dist/type-code.js.map +1 -0
- package/dist/type.d.ts.map +1 -0
- package/dist/type.js.map +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js.map +1 -0
- package/dist/{types/utilities.d.ts → utilities.d.ts} +8 -3
- package/dist/utilities.d.ts.map +1 -0
- package/dist/{web/utilities.js → utilities.js} +27 -4
- package/dist/utilities.js.map +1 -0
- package/package.json +13 -62
- package/src/debouncer.ts +135 -0
- package/src/functions.ts +5 -114
- package/src/index.ts +4 -0
- package/src/keyed-debouncer.ts +121 -0
- package/src/utilities.ts +30 -4
- package/dist/cjs/array.js +0 -106
- package/dist/cjs/array.js.map +0 -1
- package/dist/cjs/async-pool-executor.js +0 -79
- package/dist/cjs/async-pool-executor.js.map +0 -1
- package/dist/cjs/browser/form-utilities.js +0 -162
- package/dist/cjs/browser/form-utilities.js.map +0 -1
- package/dist/cjs/browser/geo-location.js +0 -78
- package/dist/cjs/browser/geo-location.js.map +0 -1
- package/dist/cjs/browser/index.js +0 -99
- package/dist/cjs/browser/index.js.map +0 -1
- package/dist/cjs/browser/native-bridge.js +0 -81
- package/dist/cjs/browser/native-bridge.js.map +0 -1
- package/dist/cjs/cancellable-promise.js +0 -81
- package/dist/cjs/cancellable-promise.js.map +0 -1
- package/dist/cjs/clean-url-search-params.js +0 -34
- package/dist/cjs/clean-url-search-params.js.map +0 -1
- package/dist/cjs/collections/cache-dictionary.js +0 -102
- package/dist/cjs/collections/cache-dictionary.js.map +0 -1
- package/dist/cjs/collections/default-map.js +0 -45
- package/dist/cjs/collections/default-map.js.map +0 -1
- package/dist/cjs/collections/default-weak-map.js +0 -46
- package/dist/cjs/collections/default-weak-map.js.map +0 -1
- package/dist/cjs/collections/from.js +0 -778
- package/dist/cjs/collections/from.js.map +0 -1
- package/dist/cjs/collections/index.js +0 -15
- package/dist/cjs/collections/index.js.map +0 -1
- package/dist/cjs/draft.js +0 -225
- package/dist/cjs/draft.js.map +0 -1
- package/dist/cjs/event-bus.js +0 -71
- package/dist/cjs/event-bus.js.map +0 -1
- package/dist/cjs/functions.js +0 -348
- package/dist/cjs/functions.js.map +0 -1
- package/dist/cjs/index.js +0 -80
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/key-value-pair.js +0 -22
- package/dist/cjs/key-value-pair.js.map +0 -1
- package/dist/cjs/lazy.js +0 -29
- package/dist/cjs/lazy.js.map +0 -1
- package/dist/cjs/math.js +0 -37
- package/dist/cjs/math.js.map +0 -1
- package/dist/cjs/order.js +0 -9
- package/dist/cjs/order.js.map +0 -1
- package/dist/cjs/parse.js +0 -174
- package/dist/cjs/parse.js.map +0 -1
- package/dist/cjs/patch.js +0 -52
- package/dist/cjs/patch.js.map +0 -1
- package/dist/cjs/range.js +0 -154
- package/dist/cjs/range.js.map +0 -1
- package/dist/cjs/result.js +0 -3
- package/dist/cjs/result.js.map +0 -1
- package/dist/cjs/stopwatch.js +0 -46
- package/dist/cjs/stopwatch.js.map +0 -1
- package/dist/cjs/string.js +0 -154
- package/dist/cjs/string.js.map +0 -1
- package/dist/cjs/timer.js +0 -57
- package/dist/cjs/timer.js.map +0 -1
- package/dist/cjs/timespan.js +0 -367
- package/dist/cjs/timespan.js.map +0 -1
- package/dist/cjs/triggers.js +0 -103
- package/dist/cjs/triggers.js.map +0 -1
- package/dist/cjs/type-code.js +0 -18
- package/dist/cjs/type-code.js.map +0 -1
- package/dist/cjs/type.js +0 -296
- package/dist/cjs/type.js.map +0 -1
- package/dist/cjs/types.js +0 -3
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/utilities.js +0 -598
- package/dist/cjs/utilities.js.map +0 -1
- package/dist/esm/array.js.map +0 -1
- package/dist/esm/async-pool-executor.js.map +0 -1
- package/dist/esm/browser/form-utilities.js.map +0 -1
- package/dist/esm/browser/geo-location.js.map +0 -1
- package/dist/esm/browser/index.js.map +0 -1
- package/dist/esm/browser/native-bridge.js.map +0 -1
- package/dist/esm/cancellable-promise.js.map +0 -1
- package/dist/esm/clean-url-search-params.js.map +0 -1
- package/dist/esm/collections/cache-dictionary.js.map +0 -1
- package/dist/esm/collections/default-map.js.map +0 -1
- package/dist/esm/collections/default-weak-map.js.map +0 -1
- package/dist/esm/collections/from.js.map +0 -1
- package/dist/esm/collections/index.js.map +0 -1
- package/dist/esm/draft.js.map +0 -1
- package/dist/esm/event-bus.js.map +0 -1
- package/dist/esm/functions.js.map +0 -1
- package/dist/esm/index.js +0 -38
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/key-value-pair.js.map +0 -1
- package/dist/esm/lazy.js.map +0 -1
- package/dist/esm/math.js.map +0 -1
- package/dist/esm/order.js.map +0 -1
- package/dist/esm/parse.js.map +0 -1
- package/dist/esm/patch.js.map +0 -1
- package/dist/esm/range.js.map +0 -1
- package/dist/esm/result.js.map +0 -1
- package/dist/esm/stopwatch.js.map +0 -1
- package/dist/esm/string.js.map +0 -1
- package/dist/esm/timer.js.map +0 -1
- package/dist/esm/timespan.js.map +0 -1
- package/dist/esm/triggers.js.map +0 -1
- package/dist/esm/type-code.js.map +0 -1
- package/dist/esm/type.js.map +0 -1
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/utilities.js +0 -567
- package/dist/esm/utilities.js.map +0 -1
- package/dist/types/array.d.ts.map +0 -1
- package/dist/types/async-pool-executor.d.ts.map +0 -1
- package/dist/types/browser/form-utilities.d.ts.map +0 -1
- package/dist/types/browser/geo-location.d.ts.map +0 -1
- package/dist/types/browser/index.d.ts.map +0 -1
- package/dist/types/browser/native-bridge.d.ts.map +0 -1
- package/dist/types/cancellable-promise.d.ts.map +0 -1
- package/dist/types/clean-url-search-params.d.ts.map +0 -1
- package/dist/types/collections/cache-dictionary.d.ts.map +0 -1
- package/dist/types/collections/default-map.d.ts.map +0 -1
- package/dist/types/collections/default-weak-map.d.ts.map +0 -1
- package/dist/types/collections/from.d.ts.map +0 -1
- package/dist/types/collections/index.d.ts.map +0 -1
- package/dist/types/draft.d.ts.map +0 -1
- package/dist/types/event-bus.d.ts.map +0 -1
- package/dist/types/functions.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/key-value-pair.d.ts.map +0 -1
- package/dist/types/lazy.d.ts.map +0 -1
- package/dist/types/math.d.ts.map +0 -1
- package/dist/types/order.d.ts.map +0 -1
- package/dist/types/parse.d.ts.map +0 -1
- package/dist/types/patch.d.ts.map +0 -1
- package/dist/types/range.d.ts.map +0 -1
- package/dist/types/result.d.ts.map +0 -1
- package/dist/types/stopwatch.d.ts.map +0 -1
- package/dist/types/string.d.ts.map +0 -1
- package/dist/types/timer.d.ts.map +0 -1
- package/dist/types/timespan.d.ts.map +0 -1
- package/dist/types/triggers.d.ts.map +0 -1
- package/dist/types/type-code.d.ts.map +0 -1
- package/dist/types/type.d.ts.map +0 -1
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/utilities.d.ts.map +0 -1
- package/dist/web/array.js +0 -98
- package/dist/web/array.js.map +0 -1
- package/dist/web/async-pool-executor.js +0 -76
- package/dist/web/async-pool-executor.js.map +0 -1
- package/dist/web/browser/form-utilities.js +0 -155
- package/dist/web/browser/form-utilities.js.map +0 -1
- package/dist/web/browser/geo-location.js +0 -75
- package/dist/web/browser/geo-location.js.map +0 -1
- package/dist/web/browser/index.js +0 -75
- package/dist/web/browser/index.js.map +0 -1
- package/dist/web/browser/native-bridge.js +0 -78
- package/dist/web/browser/native-bridge.js.map +0 -1
- package/dist/web/cancellable-promise.js +0 -78
- package/dist/web/cancellable-promise.js.map +0 -1
- package/dist/web/clean-url-search-params.js +0 -31
- package/dist/web/clean-url-search-params.js.map +0 -1
- package/dist/web/collections/cache-dictionary.js +0 -99
- package/dist/web/collections/cache-dictionary.js.map +0 -1
- package/dist/web/collections/default-map.js +0 -42
- package/dist/web/collections/default-map.js.map +0 -1
- package/dist/web/collections/default-weak-map.js +0 -43
- package/dist/web/collections/default-weak-map.js.map +0 -1
- package/dist/web/collections/from.js +0 -770
- package/dist/web/collections/from.js.map +0 -1
- package/dist/web/collections/index.js +0 -5
- package/dist/web/collections/index.js.map +0 -1
- package/dist/web/draft.js +0 -222
- package/dist/web/draft.js.map +0 -1
- package/dist/web/event-bus.js +0 -66
- package/dist/web/event-bus.js.map +0 -1
- package/dist/web/functions.js +0 -336
- package/dist/web/functions.js.map +0 -1
- package/dist/web/index.js.map +0 -1
- package/dist/web/key-value-pair.js +0 -19
- package/dist/web/key-value-pair.js.map +0 -1
- package/dist/web/lazy.js +0 -26
- package/dist/web/lazy.js.map +0 -1
- package/dist/web/math.js +0 -33
- package/dist/web/math.js.map +0 -1
- package/dist/web/order.js +0 -7
- package/dist/web/order.js.map +0 -1
- package/dist/web/parse.js +0 -169
- package/dist/web/parse.js.map +0 -1
- package/dist/web/patch.js +0 -48
- package/dist/web/patch.js.map +0 -1
- package/dist/web/range.js +0 -151
- package/dist/web/range.js.map +0 -1
- package/dist/web/result.js +0 -2
- package/dist/web/result.js.map +0 -1
- package/dist/web/stopwatch.js +0 -40
- package/dist/web/stopwatch.js.map +0 -1
- package/dist/web/string.js +0 -142
- package/dist/web/string.js.map +0 -1
- package/dist/web/timer.js +0 -54
- package/dist/web/timer.js.map +0 -1
- package/dist/web/timespan.js +0 -365
- package/dist/web/timespan.js.map +0 -1
- package/dist/web/triggers.js +0 -99
- package/dist/web/triggers.js.map +0 -1
- package/dist/web/type-code.js +0 -16
- package/dist/web/type-code.js.map +0 -1
- package/dist/web/type.js +0 -292
- package/dist/web/type.js.map +0 -1
- package/dist/web/types.js +0 -2
- package/dist/web/types.js.map +0 -1
- package/dist/web/utilities.js.map +0 -1
- /package/dist/{types/array.d.ts → array.d.ts} +0 -0
- /package/dist/{esm/array.js → array.js} +0 -0
- /package/dist/{types/async-pool-executor.d.ts → async-pool-executor.d.ts} +0 -0
- /package/dist/{esm/async-pool-executor.js → async-pool-executor.js} +0 -0
- /package/dist/{types/browser → browser}/form-utilities.d.ts +0 -0
- /package/dist/{esm/browser → browser}/form-utilities.js +0 -0
- /package/dist/{types/browser → browser}/geo-location.d.ts +0 -0
- /package/dist/{esm/browser → browser}/geo-location.js +0 -0
- /package/dist/{types/browser → browser}/index.d.ts +0 -0
- /package/dist/{esm/browser → browser}/index.js +0 -0
- /package/dist/{types/browser → browser}/native-bridge.d.ts +0 -0
- /package/dist/{esm/browser → browser}/native-bridge.js +0 -0
- /package/dist/{types/cancellable-promise.d.ts → cancellable-promise.d.ts} +0 -0
- /package/dist/{esm/cancellable-promise.js → cancellable-promise.js} +0 -0
- /package/dist/{types/clean-url-search-params.d.ts → clean-url-search-params.d.ts} +0 -0
- /package/dist/{esm/clean-url-search-params.js → clean-url-search-params.js} +0 -0
- /package/dist/{types/collections → collections}/cache-dictionary.d.ts +0 -0
- /package/dist/{esm/collections → collections}/cache-dictionary.js +0 -0
- /package/dist/{types/collections → collections}/default-map.d.ts +0 -0
- /package/dist/{esm/collections → collections}/default-map.js +0 -0
- /package/dist/{types/collections → collections}/default-weak-map.d.ts +0 -0
- /package/dist/{esm/collections → collections}/default-weak-map.js +0 -0
- /package/dist/{types/collections → collections}/from.d.ts +0 -0
- /package/dist/{esm/collections → collections}/from.js +0 -0
- /package/dist/{types/collections → collections}/index.d.ts +0 -0
- /package/dist/{esm/collections → collections}/index.js +0 -0
- /package/dist/{types/draft.d.ts → draft.d.ts} +0 -0
- /package/dist/{esm/draft.js → draft.js} +0 -0
- /package/dist/{types/event-bus.d.ts → event-bus.d.ts} +0 -0
- /package/dist/{esm/event-bus.js → event-bus.js} +0 -0
- /package/dist/{types/key-value-pair.d.ts → key-value-pair.d.ts} +0 -0
- /package/dist/{esm/key-value-pair.js → key-value-pair.js} +0 -0
- /package/dist/{types/lazy.d.ts → lazy.d.ts} +0 -0
- /package/dist/{esm/lazy.js → lazy.js} +0 -0
- /package/dist/{types/math.d.ts → math.d.ts} +0 -0
- /package/dist/{esm/math.js → math.js} +0 -0
- /package/dist/{types/order.d.ts → order.d.ts} +0 -0
- /package/dist/{esm/order.js → order.js} +0 -0
- /package/dist/{types/parse.d.ts → parse.d.ts} +0 -0
- /package/dist/{esm/parse.js → parse.js} +0 -0
- /package/dist/{types/patch.d.ts → patch.d.ts} +0 -0
- /package/dist/{esm/patch.js → patch.js} +0 -0
- /package/dist/{types/range.d.ts → range.d.ts} +0 -0
- /package/dist/{esm/range.js → range.js} +0 -0
- /package/dist/{types/result.d.ts → result.d.ts} +0 -0
- /package/dist/{esm/result.js → result.js} +0 -0
- /package/dist/{types/stopwatch.d.ts → stopwatch.d.ts} +0 -0
- /package/dist/{esm/stopwatch.js → stopwatch.js} +0 -0
- /package/dist/{types/string.d.ts → string.d.ts} +0 -0
- /package/dist/{esm/string.js → string.js} +0 -0
- /package/dist/{types/timer.d.ts → timer.d.ts} +0 -0
- /package/dist/{esm/timer.js → timer.js} +0 -0
- /package/dist/{types/timespan.d.ts → timespan.d.ts} +0 -0
- /package/dist/{esm/timespan.js → timespan.js} +0 -0
- /package/dist/{types/triggers.d.ts → triggers.d.ts} +0 -0
- /package/dist/{esm/triggers.js → triggers.js} +0 -0
- /package/dist/{types/type-code.d.ts → type-code.d.ts} +0 -0
- /package/dist/{esm/type-code.js → type-code.js} +0 -0
- /package/dist/{types/type.d.ts → type.d.ts} +0 -0
- /package/dist/{esm/type.js → type.js} +0 -0
- /package/dist/{types/types.d.ts → types.d.ts} +0 -0
- /package/dist/{esm/types.js → types.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.js","sourceRoot":"","sources":["../src/range.ts"],"names":[],"mappings":"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","sourcesContent":["export default class Range<T> {\n\n private readonly start: T;\n private readonly end: T;\n\n /**\n * Range constructor.\n * @param start\n * @param end\n */\n constructor(start: T, end: T) {\n this.start = start;\n this.end = end;\n }\n\n /**\n * Finds the intersection between two ranges.\n *\n * @param other The Range object to intersect with.\n * @returns The intersected Range object, or null if there is no intersection.\n */\n public intersect(other: Range<T>): Range<T> | null {\n const start = (this.start > other.start) ? this.start : other.start;\n const end = (this.end < other.end) ? this.end : other.end;\n\n if (start < end) {\n return new Range(start, end);\n } else {\n return null;\n }\n }\n\n /**\n * Subtract the given range from this range.\n *\n * @param other The range to subtract from this range.\n * @returns An array of Range objects representing the result of the subtraction.\n */\n public subtract(other: Range<T>): Range<T>[] {\n const result: Range<T>[] = [];\n\n if (this.start >= other.end || this.end <= other.start) {\n result.push(new Range(this.start, this.end));\n } else if (other.start <= this.start && other.end >= this.end) {\n return result;\n } else {\n if (this.start < other.start) {\n result.push(new Range(this.start, other.start));\n }\n\n if (this.end > other.end) {\n result.push(new Range(other.end, this.end));\n }\n }\n\n return result;\n }\n\n /**\n * Determines if the given range overlaps with the current range.\n *\n * @param other The range to be checked for overlap.\n * @returns Returns true if there is an overlap between the ranges, false otherwise.\n */\n public overlaps(other: Range<T>): boolean {\n const s1 = this.start;\n const e1 = this.end;\n const s2 = other.start;\n const e2 = other.end;\n\n return (s2 > s1 && s2 < e1 || e2 > s1 && e2 < e1) ||\n (s1 > s2 && s1 < e2 || e1 > s2 && e1 < e2) ||\n (s1 === s2 && e1 === e2);\n }\n\n /**\n * Determines whether the specified value is within the range defined by the start and end values.\n *\n * @param obj The value to check if it is within the range.\n * @param inclusive Optional. If set to true, the range boundaries are considered inclusive.\n * @returns Returns true if the specified value is within the range, false otherwise.\n */\n public contains(obj: T, inclusive: boolean = true): boolean {\n return inclusive ?\n (this.start <= obj && this.end >= obj) :\n (this.start < obj && this.end > obj);\n }\n\n /**\n * @returns T\n */\n public getStart(): T {\n return this.start;\n }\n\n /**\n * @returns T\n */\n public getEnd(): T {\n return this.end;\n }\n\n /**\n * Finds the intersection between two sets of ranges.\n *\n * @param ranges1\n * @param ranges2\n * @returns\n */\n public static intersectRanges<T>(ranges1: Range<T>[], ranges2: Range<T>[]): Range<T>[] {\n const result: Range<T>[] = [];\n for (const r1 of ranges1) {\n for (const r2 of ranges2) {\n const intersection = r1.intersect(r2);\n if (intersection !== null) {\n result.push(intersection);\n }\n }\n }\n return result;\n }\n\n /**\n * Determines if any range in the first set overlaps with any range in the second set.\n *\n * @param ranges1\n * @param ranges2\n * @returns\n */\n public static overlapsAny<T>(ranges1: Range<T>[], ranges2: Range<T>[]): boolean {\n for (const r1 of ranges1) {\n for (const r2 of ranges2) {\n if (r1.overlaps(r2)) {\n return true;\n }\n }\n }\n return false;\n }\n\n /**\n * Subtracts the second set of ranges from the first set of ranges.\n *\n * @param ranges1\n * @param ranges2\n * @returns\n */\n public static subtractRanges<T>(ranges1: Range<T>[], ranges2: Range<T>[]): Range<T>[] {\n let currentRanges = ranges1;\n for (const r2 of ranges2) {\n const nextRanges: Range<T>[] = [];\n for (const r1 of currentRanges) {\n const subtracted = r1.subtract(r2);\n for (const s of subtracted) {\n nextRanges.push(s);\n }\n }\n currentRanges = nextRanges;\n if (currentRanges.length === 0) {\n break;\n }\n }\n return currentRanges;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,cAAc,EAAE,cAAc,GAAG,SAAS,IACvD;IAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;CAAC,GACzD;IAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAA;CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Represents success and failure outputs narrowed by `success`.\n */\nexport type Result<TSuccessOutput, TFailureOutput = undefined> =\n | {readonly success: true; readonly output: TSuccessOutput}\n | {readonly success: false; readonly output?: TFailureOutput};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stopwatch.d.ts","sourceRoot":"","sources":["../src/stopwatch.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,SAAS;IAC1B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAuB;IAa1C,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,IAAI;IAOZ,MAAM,IAAI,IAAI;IAOd,cAAc,IAAI,QAAQ;CAM7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stopwatch.js","sourceRoot":"","sources":["../src/stopwatch.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,SAAS;IAA9B;QACY,cAAS,GAAkB,IAAI,CAAC;QAChC,gBAAW,GAAkB,IAAI,CAAC;IAsC9C,CAAC;IApCG;;;;;;;;;OASG;IAEH,KAAK;QACD,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YACtD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;IAC9D,CAAC;CACJ","sourcesContent":["import TimeSpan from \"./timespan.js\";\n\nexport default class Stopwatch {\n private startTime: number | null = null;\n private elapsedTime: number | null = null;\n\n /*static measure<T>(callback: () => T, measure: { value: TimeSpan | null }): T {\n const stopwatch = new Stopwatch();\n stopwatch.start();\n try {\n return callback();\n } finally {\n stopwatch.stop();\n measure.value = stopwatch.getElapsedTime();\n }\n }*/\n\n start(): void {\n this.startTime = performance.now();\n this.elapsedTime = null;\n }\n\n stop(): void {\n if (this.startTime !== null) {\n this.elapsedTime = performance.now() - this.startTime;\n this.startTime = null;\n }\n }\n\n resume(): void {\n if (this.elapsedTime !== null) {\n this.startTime = performance.now() - this.elapsedTime;\n this.elapsedTime = null;\n }\n }\n\n getElapsedTime(): TimeSpan {\n if (this.startTime !== null) {\n return TimeSpan.fromMilliseconds(performance.now() - this.startTime);\n }\n return TimeSpan.fromMilliseconds(this.elapsedTime ?? 0.0);\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIhE;AAGD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAgB/D;AA0BD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"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","sourcesContent":["\n/**\n * Ensures that a given string has a specific prefix.\n *\n * @param {string} str - The string to ensure the prefix on.\n * @param {string} prefix - The prefix to ensure on the string.\n * @return {string} - The resulting string with the ensured prefix.\n */\nexport function ensurePrefix(str: string, prefix: string): string {\n if (!str.startsWith(prefix))\n return prefix + str\n return str\n}\n\n\n/**\n * Ensures that a string ends with a specified suffix.\n *\n * @param {string} str - The original string.\n * @param {string} suffix - The suffix to ensure.\n * @return {string} - The modified string with the suffix added if it was not already present.\n */\nexport function ensureSuffix(str: string, suffix: string): string {\n if (!str.endsWith(suffix))\n return str + suffix\n return str\n}\n\n/**\n * Normalizes Unicode whitespaces into single ASCII spaces and removes leading\n * and trailing whitespace.\n */\nexport function normalizeWhitespaces(str: string): string {\n return str.normalize('NFKC')\n .replace(/[\\s\\u200B\\uFEFF]+/gu, ' ')\n .trim()\n}\n\n/**\n * Removes Unicode diacritics while preserving the original letter casing.\n *\n * @example removeDiacritics('áÁñÑ') // 'aAnN'\n */\nexport function removeDiacritics(str: string): string {\n return str\n .normalize('NFD')\n .replace(/\\p{M}+/gu, '')\n}\n\n/**\n * Formats a string using a template and provided arguments.\n *\n * @param {string} template - The template string containing placeholders.\n * @param {any[]} args - Optional arguments to replace the placeholders in the template.\n * @return {string} The formatted string.\n */\nexport function format(template: string, ...args: any[]): string {\n\n let regex: RegExp;\n const hasNamedPlaceholders = /{(?!\\d+})[^{}]+}/.test(template);\n if (args.length === 1 && args[0] !== null && typeof args[0] === 'object' && hasNamedPlaceholders) {\n args = args[0];\n regex = /{(.+?)}/g;\n } else {\n regex = /{(\\d+?)}/g;\n }\n\n return template.replace(regex, (match, key) => {\n return Object.prototype.hasOwnProperty.call(args, key) && typeof args[key] !== 'undefined'\n ? args[key]\n : \"\";\n });\n}\n\n/**\n * Splits a string into its constituent words, regardless of the original case\n * style (camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE,\n * space-separated, etc.).\n *\n * @param {string} str - The string to split into words.\n * @return {string[]} - The list of lowercase words extracted from the input.\n */\nfunction toWords(str: string): string[] {\n if (!str) return [];\n\n return str\n // Insert a space between a lowercase/digit and an uppercase letter (camelCase -> camel Case)\n .replace(/([\\p{Ll}\\p{N}])(\\p{Lu})/gu, '$1 $2')\n // Insert a space between consecutive uppercase letters followed by a lowercase letter (XMLParser -> XML Parser)\n .replace(/(\\p{Lu}+)(\\p{Lu}\\p{Ll})/gu, '$1 $2')\n // Replace any non-alphanumeric character with a space\n .replace(/[^\\p{L}\\p{N}]+/gu, ' ')\n .trim()\n .toLowerCase()\n .split(/\\s+/)\n .filter(Boolean);\n}\n\n/**\n * Converts a string to snake_case.\n *\n * @param {string} str - The string to convert.\n * @return {string} - The string converted to snake_case.\n */\nexport function toSnakeCase(str: string): string {\n return toWords(str).join('_');\n}\n\n/**\n * Converts a string to kebab-case.\n *\n * @param {string} str - The string to convert.\n * @return {string} - The string converted to kebab-case.\n */\nexport function toKebabCase(str: string): string {\n return toWords(str).join('-');\n}\n\n/**\n * Converts a string to camelCase.\n *\n * @param {string} str - The string to convert.\n * @return {string} - The string converted to camelCase.\n */\nexport function toCamelCase(str: string): string {\n const words = toWords(str);\n if (words.length === 0) return '';\n return words\n .map((word, i) => i === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1))\n .join('');\n}\n\n/**\n * Converts a string to PascalCase.\n *\n * @param {string} str - The string to convert.\n * @return {string} - The string converted to PascalCase.\n */\nexport function toPascalCase(str: string): string {\n return toWords(str)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join('');\n}\n\n/**\n * Converts a string to CONSTANT_CASE (a.k.a. SCREAMING_SNAKE_CASE).\n *\n * @param {string} str - The string to convert.\n * @return {string} - The string converted to CONSTANT_CASE.\n */\nexport function toConstantCase(str: string): string {\n return toWords(str).join('_').toUpperCase();\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../src/timer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IAEtB,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAa;IAEhC;;;OAGG;gBACS,QAAQ,EAAE,MAAM,IAAI,EAAE,QAAQ,EAAE,MAAM;IAOlD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAMzB;IAED,IAAI,QAAQ,IAAI,MAAM,IAAI,CAEzB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,EAI7B;IAGD,KAAK,IAAI,IAAI;IASb,IAAI,IAAI,IAAI;IAOZ,OAAO,IAAI,IAAI;CAIlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timer.js","sourceRoot":"","sources":["../src/timer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IAMtB;;;OAGG;IACH,YAAY,QAAoB,EAAE,QAAgB;QAC9C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAGD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC;IACvE,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ,CAAC,KAAa;QACtB,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,CAAC,OAAO;gBACZ,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;IACL,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ,CAAC,KAAiB;QAC1B,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,CAAC;IACL,CAAC;IAGD,KAAK;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;gBAChC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;oBACtB,IAAI,CAAC,SAAS,EAAE,CAAC;YACzB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC5B,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,OAAO;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;CACJ","sourcesContent":["/**\n * A class representing a timer that executes a callback function at a specified interval.\n */\nexport default class Timer {\n\n private _callback: () => void;\n private _interval: number;\n private _intervalId: any | null;\n\n /**\n * @param callback Callback\n * @param interval Milliseconds between calls\n */\n constructor(callback: () => void, interval: number) {\n this._callback = callback;\n this._interval = interval;\n this._intervalId = null;\n }\n\n \n get running(): boolean {\n return this._intervalId !== null && this._intervalId !== undefined;\n }\n\n get interval(): number {\n return this._interval;\n }\n\n set interval(value: number) {\n if (value != this._interval) {\n this._interval = value;\n if (this.running)\n this.restart();\n }\n }\n\n get callback(): () => void {\n return this._callback;\n }\n\n set callback(value: () => void) {\n if (value != this._callback) {\n this._callback = value;\n }\n }\n\n\n start(): void {\n if (this._intervalId === null) {\n this._intervalId = setInterval(() => {\n if (this._callback != null)\n this._callback();\n }, this._interval);\n }\n }\n\n stop(): void {\n if (this._intervalId !== null) {\n clearInterval(this._intervalId);\n this._intervalId = null;\n }\n }\n\n restart(): void {\n this.stop();\n this.start();\n }\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timespan.d.ts","sourceRoot":"","sources":["../src/timespan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timespan.js","sourceRoot":"","sources":["../src/timespan.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Represents a duration of time in milliseconds.\n */\nexport default class TimeSpan {\n public milliseconds: number;\n\n private constructor(milliseconds: number) {\n this.milliseconds = milliseconds;\n }\n\n\n /**\n * Gets the time interval in seconds.\n * @returns {number} The duration in seconds.\n */\n seconds(): number {\n return this.milliseconds / 1000;\n }\n\n /**\n * Gets the time interval in minutes.\n * @returns {number} The duration in minutes.\n */\n minutes(): number {\n return this.milliseconds / (1000 * 60);\n }\n\n /**\n * Gets the time interval in hours.\n * @returns {number} The duration in hours.\n */\n hours(): number {\n return this.milliseconds / (1000 * 60 * 60);\n }\n\n /**\n * Gets the time interval in days.\n * @returns {number} The duration in days.\n */\n days(): number {\n return this.milliseconds / (1000 * 60 * 60 * 24);\n }\n\n /**\n * Gets the time interval in weeks.\n * @returns {number} The duration in weeks.\n */\n weeks(): number {\n return this.milliseconds / (1000 * 60 * 60 * 24 * 7);\n }\n\n /**\n * Creates a TimeSpan from a specified number of milliseconds.\n * @param {number} milliseconds - The number of milliseconds.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n static fromMilliseconds(milliseconds: number): TimeSpan {\n return new TimeSpan(milliseconds);\n }\n\n /**\n * Creates a TimeSpan from a specified number of seconds.\n * @param {number} seconds - The number of seconds.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n static fromSeconds(seconds: number): TimeSpan {\n return new TimeSpan(seconds * 1000);\n }\n\n /**\n * Creates a TimeSpan from a specified number of minutes.\n * @param {number} minutes - The number of minutes.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n static fromMinutes(minutes: number): TimeSpan {\n return new TimeSpan(minutes * 1000 * 60);\n }\n\n /**\n * Creates a TimeSpan from a specified number of hours.\n * @param {number} hours - The number of hours.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n static fromHours(hours: number): TimeSpan {\n return new TimeSpan(hours * 1000 * 60 * 60);\n }\n\n /**\n * Creates a TimeSpan from a specified number of days.\n * @param {number} days - The number of days.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n static fromDays(days: number): TimeSpan {\n return new TimeSpan(days * 1000 * 60 * 60 * 24);\n }\n\n /**\n * Creates a TimeSpan from a specified number of weeks.\n * @param {number} weeks - The number of weeks.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n static fromWeeks(weeks: number): TimeSpan {\n return new TimeSpan(weeks * 1000 * 60 * 60 * 24 * 7);\n }\n\n /**\n * Returns a new TimeSpan that adds the specified number of milliseconds to this instance.\n * @param {number} milliseconds - The milliseconds to add.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n addMilliseconds(milliseconds: number): TimeSpan {\n return new TimeSpan(this.milliseconds + milliseconds);\n }\n\n /**\n * Returns a new TimeSpan that adds the specified number of seconds to this instance.\n * @param {number} seconds - The seconds to add.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n addSeconds(seconds: number): TimeSpan {\n return this.addMilliseconds(seconds * 1000);\n }\n\n /**\n * Returns a new TimeSpan that adds the specified number of minutes to this instance.\n * @param {number} minutes - The minutes to add.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n addMinutes(minutes: number): TimeSpan {\n return this.addMilliseconds(minutes * 1000 * 60);\n }\n\n /**\n * Returns a new TimeSpan that adds the specified number of hours to this instance.\n * @param {number} hours - The hours to add.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n addHours(hours: number): TimeSpan {\n return this.addMilliseconds(hours * 1000 * 60 * 60);\n }\n\n /**\n * Returns a new TimeSpan that adds the specified number of days to this instance.\n * @param {number} days - The days to add.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n addDays(days: number): TimeSpan {\n return this.addMilliseconds(days * 1000 * 60 * 60 * 24);\n }\n\n /**\n * Returns a new TimeSpan that adds the specified number of weeks to this instance.\n * @param {number} weeks - The weeks to add.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n addWeeks(weeks: number): TimeSpan {\n return this.addMilliseconds(weeks * 1000 * 60 * 60 * 24 * 7);\n }\n\n /**\n * Returns a new TimeSpan that subtracts the specified number of milliseconds from this instance.\n * @param {number} milliseconds - The milliseconds to subtract.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n subtractMilliseconds(milliseconds: number): TimeSpan {\n return new TimeSpan(this.milliseconds - milliseconds);\n }\n\n /**\n * Returns a new TimeSpan that subtracts the specified number of seconds from this instance.\n * @param {number} seconds - The seconds to subtract.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n subtractSeconds(seconds: number): TimeSpan {\n return this.subtractMilliseconds(seconds * 1000);\n }\n\n /**\n * Returns a new TimeSpan that subtracts the specified number of minutes from this instance.\n * @param {number} minutes - The minutes to subtract.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n subtractMinutes(minutes: number): TimeSpan {\n return this.subtractMilliseconds(minutes * 1000 * 60);\n }\n\n /**\n * Returns a new TimeSpan that subtracts the specified number of hours from this instance.\n * @param {number} hours - The hours to subtract.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n subtractHours(hours: number): TimeSpan {\n return this.subtractMilliseconds(hours * 1000 * 60 * 60);\n }\n\n /**\n * Returns a new TimeSpan that subtracts the specified number of days from this instance.\n * @param {number} days - The days to subtract.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n subtractDays(days: number): TimeSpan {\n return this.subtractMilliseconds(days * 1000 * 60 * 60 * 24);\n }\n\n /**\n * Returns a new TimeSpan that subtracts the specified number of weeks from this instance.\n * @param {number} weeks - The weeks to subtract.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n subtractWeeks(weeks: number): TimeSpan {\n return this.subtractMilliseconds(weeks * 1000 * 60 * 60 * 24 * 7);\n }\n\n /**\n * Returns a new TimeSpan that adds the specified TimeSpan to this instance.\n * @param {TimeSpan} other - The TimeSpan to add.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n add(other: TimeSpan): TimeSpan {\n return new TimeSpan(this.milliseconds + other.milliseconds);\n }\n\n /**\n * Returns a new TimeSpan that subtracts the specified TimeSpan from this instance.\n * @param {TimeSpan} other - The TimeSpan to subtract.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n subtract(other: TimeSpan): TimeSpan {\n return new TimeSpan(this.milliseconds - other.milliseconds);\n }\n\n /**\n * Adds this TimeSpan to a specified Date.\n * @param {Date} date - The date to add to.\n * @returns {Date} A new Date instance.\n */\n addTo(date: Date): Date {\n return new Date(date.getTime() + this.milliseconds);\n }\n\n /**\n * Subtracts this TimeSpan from a specified Date.\n * @param {Date} date - The date to subtract from.\n * @returns {Date} A new Date instance.\n */\n subtractFrom(date: Date): Date {\n return new Date(date.getTime() - this.milliseconds);\n }\n\n /**\n * Creates a TimeSpan from the difference between two dates.\n * @param {Date} earlierDate - The earlier date.\n * @param {Date} laterDate - The later date.\n * @returns {TimeSpan} A new TimeSpan instance representing the difference.\n */\n static fromDifference(earlierDate: Date, laterDate: Date): TimeSpan {\n return new TimeSpan(laterDate.getTime() - earlierDate.getTime());\n }\n\n /**\n * Formats the TimeSpan as a string.\n * Supported tokens: hh, h, mm, m, ss, s.\n * @param {string} format - The format string (default: 'hh:mm:ss').\n * @returns {string} The formatted string.\n */\n format(format: string = 'hh:mm:ss'): string {\n const formatLower = format.toLowerCase();\n const hasHours = formatLower.includes(\"h\");\n const hasMinutes = formatLower.includes(\"m\");\n\n const sign = this.milliseconds < 0 ? \"-\" : \"\";\n let hours = 0, minutes = 0, seconds = Math.floor(Math.abs(this.milliseconds) / 1000);\n\n if (hasHours) {\n hours = Math.floor(seconds / 3600);\n seconds -= hours * 3600;\n }\n if (hasMinutes) {\n minutes = Math.floor(seconds / 60);\n seconds -= minutes * 60;\n }\n\n const hoursPadded = String(hours).padStart(2, '0');\n const minutesPadded = String(minutes).padStart(2, '0');\n const secondsPadded = String(seconds).padStart(2, '0');\n\n const formatted = formatLower.replace(/hh|h|mm|m|ss|s/g, token => {\n switch (token) {\n case 'hh':\n return hoursPadded;\n case 'h':\n return hours.toString();\n case 'mm':\n return minutesPadded;\n case 'm':\n return minutes.toString();\n case 'ss':\n return secondsPadded;\n case 's':\n return seconds.toString();\n default:\n return token;\n }\n });\n\n return sign + formatted;\n }\n\n /**\n * Checks if this TimeSpan is equal to another.\n * @param {TimeSpan} other - The other TimeSpan.\n * @returns {boolean} True if equal.\n */\n eq(other: TimeSpan): boolean {\n return this.milliseconds === other.milliseconds;\n }\n\n /**\n * Checks if this TimeSpan is less than or equal to another.\n * @param {TimeSpan} other - The other TimeSpan.\n * @returns {boolean} True if less than or equal.\n */\n le(other: TimeSpan): boolean {\n return this.milliseconds <= other.milliseconds;\n }\n\n /**\n * Checks if this TimeSpan is less than another.\n * @param {TimeSpan} other - The other TimeSpan.\n * @returns {boolean} True if less than.\n */\n lt(other: TimeSpan): boolean {\n return this.milliseconds < other.milliseconds;\n }\n\n /**\n * Checks if this TimeSpan is greater than or equal to another.\n * @param {TimeSpan} other - The other TimeSpan.\n * @returns {boolean} True if greater than or equal.\n */\n ge(other: TimeSpan): boolean {\n return this.milliseconds >= other.milliseconds;\n }\n\n /**\n * Checks if this TimeSpan is greater than another.\n * @param {TimeSpan} other - The other TimeSpan.\n * @returns {boolean} True if greater than.\n */\n gt(other: TimeSpan): boolean {\n return this.milliseconds > other.milliseconds;\n }\n\n /**\n * Multiplies the TimeSpan by a number.\n * @param {number} number - The multiplier.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n multiply(number: number): TimeSpan {\n return new TimeSpan(this.milliseconds * number);\n }\n\n /**\n * Divides the TimeSpan by a number.\n * @param {number} number - The divisor.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n divide(number: number): TimeSpan {\n return new TimeSpan(this.milliseconds / number);\n }\n\n /**\n * Returns the absolute value of the TimeSpan.\n * @returns {TimeSpan} A new TimeSpan instance.\n */\n abs(): TimeSpan {\n return new TimeSpan(Math.abs(this.milliseconds));\n }\n\n /**\n * Infinite duration.\n */\n static readonly INFINITE = new TimeSpan(Number.POSITIVE_INFINITY);\n\n /**\n * Negative infinite duration.\n */\n static readonly NEGATIVE_INFINITE = new TimeSpan(Number.NEGATIVE_INFINITY);\n\n /**\n * Checks if the TimeSpan is infinite.\n * @returns {boolean} True if infinite.\n */\n isInfinite() {\n return this.milliseconds === Number.POSITIVE_INFINITY || this.milliseconds === Number.NEGATIVE_INFINITY\n }\n\n /**\n * Checks if the TimeSpan is positive infinite.\n * @returns {boolean} True if positive infinite.\n */\n isPositiveInfinite(): boolean {\n return this.milliseconds === Number.POSITIVE_INFINITY;\n }\n\n /**\n * Checks if the TimeSpan is negative infinite.\n * @returns {boolean} True if negative infinite.\n */\n isNegativeInfinite(): boolean {\n return this.milliseconds === Number.NEGATIVE_INFINITY;\n }\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triggers.d.ts","sourceRoot":"","sources":["../src/triggers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAW,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEnD;;GAEG;AACH,qBAAa,WAAW,CAAC,CAAC;IACtB,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAmB;gBAEnB,QAAQ,EAAE,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ;IAMzE;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAYxC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC;IAKlC;;OAEG;IACI,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAI5D;;OAEG;IACI,WAAW,IAAI,QAAQ;IAI9B;;OAEG;IACI,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAK/C;AAED;;GAEG;AACH,qBAAa,YAAY,CAAC,CAAC;IACvB,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,UAAU,CAAa;gBAEZ,QAAQ,EAAE,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM;IAKvE;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAUxC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC;IAKlC;;OAEG;IACI,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAI5D;;OAEG;IACI,WAAW,IAAI,MAAM;IAI5B;;;;OAIG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAO7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triggers.js","sourceRoot":"","sources":["../src/triggers.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,OAAO,WAAW;IAKpB,YAAmB,QAAkC,EAAE,QAAkB;QACrE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK;QACd,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEtC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;eACtB,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EACjE,CAAC;YACC,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,EAAC,CAAC;QACzD,CAAC;QAED,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO;QAChB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,QAAkC;QACjD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,WAAW;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,QAAkB;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CAGJ;AAED;;GAEG;AACH,MAAM,OAAO,YAAY;IAKrB,YAAmB,QAAkC,EAAE,QAAgB;QAH/D,aAAQ,GAAW,CAAC,CAAC;QACrB,eAAU,GAAW,CAAC,CAAC;QAG3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,EAAC,CAAC;QACzD,CAAC;QAED,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO;QAChB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,QAAkC;QACjD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,WAAW;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,QAAgB;QAC/B,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAAC,qCAAqC,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CACJ","sourcesContent":["import type {Result} from './result.js';\nimport TimeSpan from './timespan.js';\nimport type {Nullable, Supplier} from './types.js';\n\n/**\n * Runs a callback at most once during a configured time interval.\n */\nexport class TimeTrigger<T> {\n private callback: Supplier<T | Promise<T>>;\n private interval: TimeSpan;\n private lastRunTime: Nullable<number>;\n\n public constructor(callback: Supplier<T | Promise<T>>, interval: TimeSpan) {\n this.callback = callback;\n this.interval = interval;\n this.lastRunTime = null;\n }\n\n /**\n * Executes the callback when the configured interval has elapsed.\n */\n public async check(): Promise<Result<T>> {\n const currentTime = performance.now();\n\n if (this.lastRunTime === null\n || currentTime - this.lastRunTime >= this.interval.milliseconds\n ) {\n return {success: true, output: await this.trigger()};\n }\n\n return {success: false};\n }\n\n /**\n * Executes the callback regardless of the configured interval.\n */\n public async trigger(): Promise<T> {\n this.lastRunTime = performance.now();\n return this.callback();\n }\n\n /**\n * Replaces the callback executed by this trigger.\n */\n public setCallback(callback: Supplier<T | Promise<T>>): void {\n this.callback = callback;\n }\n\n /**\n * Gets the configured time interval.\n */\n public getInterval(): TimeSpan {\n return this.interval;\n }\n\n /**\n * Replaces the configured time interval.\n */\n public setInterval(interval: TimeSpan): void {\n this.interval = interval;\n }\n\n\n}\n\n/**\n * Runs a callback after a configured number of checks.\n */\nexport class CountTrigger<T> {\n private callback: Supplier<T | Promise<T>>;\n private interval: number = 1;\n private checkCount: number = 0;\n\n public constructor(callback: Supplier<T | Promise<T>>, interval: number) {\n this.callback = callback;\n this.setInterval(interval);\n }\n\n /**\n * Executes the callback when the configured number of checks is reached.\n */\n public async check(): Promise<Result<T>> {\n this.checkCount++;\n\n if (this.checkCount >= this.interval) {\n return {success: true, output: await this.trigger()};\n }\n\n return {success: false};\n }\n\n /**\n * Executes the callback regardless of the configured check count.\n */\n public async trigger(): Promise<T> {\n this.checkCount = 0;\n return this.callback();\n }\n\n /**\n * Replaces the callback executed by this trigger.\n */\n public setCallback(callback: Supplier<T | Promise<T>>): void {\n this.callback = callback;\n }\n\n /**\n * Gets the configured check interval.\n */\n public getInterval(): number {\n return this.interval;\n }\n\n /**\n * Replaces the configured check interval.\n *\n * @throws {RangeError} When the interval is less than one.\n */\n public setInterval(interval: number): void {\n if (interval < 1) {\n throw new RangeError('Interval must be greater than zero.');\n }\n\n this.interval = interval;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-code.d.ts","sourceRoot":"","sources":["../src/type-code.ts"],"names":[],"mappings":"AAAA,aAAK,QAAQ;IACT,MAAM,WAAc;IACpB,MAAM,WAAc;IACpB,OAAO,YAAc;IACrB,MAAM,WAAc;IACpB,MAAM,WAAc;IACpB,IAAI,SAAc;IAClB,SAAS,cAAc;IACvB,MAAM,WAAc;IACpB,QAAQ,aAAc;IACtB,KAAK,UAAc;IACnB,OAAO,YAAc;CACxB;AAGD,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-code.js","sourceRoot":"","sources":["../src/type-code.ts"],"names":[],"mappings":"AAAA,IAAK,QAYJ;AAZD,WAAK,QAAQ;IACT,6BAAoB,CAAA;IACpB,6BAAoB,CAAA;IACpB,+BAAqB,CAAA;IACrB,6BAAoB,CAAA;IACpB,6BAAoB,CAAA;IACpB,yBAAkB,CAAA;IAClB,mCAAuB,CAAA;IACvB,6BAAoB,CAAA;IACpB,iCAAsB,CAAA;IACtB,2BAAmB,CAAA;IACnB,+BAAqB,CAAA;AACzB,CAAC,EAZI,QAAQ,KAAR,QAAQ,QAYZ;AAGD,eAAe,QAAQ,CAAC","sourcesContent":["enum TypeCode {\n String = 'string',\n Number = 'number',\n Boolean = 'boolean',\n Symbol = 'symbol',\n BigInt = 'bigint',\n Null = 'null',\n Undefined = 'undefined',\n Object = 'object',\n Function = 'function',\n Array = 'array',\n Unknown = 'unknown',\n}\n\n\nexport default TypeCode;"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,GAAG,OAAO;IAMjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAA4B;IAM1D,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,OAAO,gBAAiF;IAC/G,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,IAAI,aAAqE;IAChG,gBAAuB,SAAS,kBAAyF;IACzH,gBAAuB,MAAM,eAAwE;IACrG,gBAAuB,QAAQ,iBAAkF;IACjH,gBAAuB,KAAK,kBAAuE;IAMnG,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,cAAc,EAC1B,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC/B,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAEnC,OAAO;IAcP;;;;;;;;;;;;;;;;;;;;;OAqBG;WACW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IA8BxD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAiB/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAY7B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAuBjC,IAAW,WAAW,IAAI,OAAO,CAQhC;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED,IAAW,OAAO,IAAI,OAAO,CAG5B;IAED,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED,IAAW,OAAO,IAAI,OAAO,CAO5B;IAED,IAAW,QAAQ,IAAI,MAAM,CAK5B;IAMD,IAAW,QAAQ,IAAI,IAAI,GAAG,SAAS,CAUtC;IAEM,mBAAmB,IAAI,aAAa,CAAC,IAAI,CAAC;IAY1C,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAYrC,gBAAgB,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAIvC,YAAY,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAUnC,cAAc,IAAI,aAAa,CAAC,MAAM,CAAC;IAMvC,gBAAgB,IAAI,aAAa,CAAC,MAAM,CAAC;IAMzC,cAAc,IAAI,aAAa,CAAC,MAAM,CAAC;IAIvC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKhC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKzC,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,0BAA0B;IAK3B,oBAAoB,IAAI,aAAa,CAAC,MAAM,CAAC;IAc7C,QAAQ,IAAI,MAAM;IAKlB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAU1D,IAAW,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAExC;IAMD,OAAO,CAAC,MAAM,CAAC,YAAY;CAoB9B"}
|
package/dist/type.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"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","sourcesContent":["import TypeCode from \"./type-code.js\";\nimport {type Constructor} from \"./types.js\";\n\nexport default class Type<T = unknown> {\n\n // ──────────────────────────────────────────────\n // Caché (Flyweight)\n // ──────────────────────────────────────────────\n\n private static readonly _cache = new Map<unknown, Type>();\n\n // ──────────────────────────────────────────────\n // Tipos predefinidos\n // ──────────────────────────────────────────────\n\n public static readonly String = Type._getOrCreate<string>('string', undefined, TypeCode.String, 'string');\n public static readonly Number = Type._getOrCreate<number>('number', undefined, TypeCode.Number, 'number');\n public static readonly Boolean = Type._getOrCreate<boolean>('boolean', undefined, TypeCode.Boolean, 'boolean');\n public static readonly Symbol = Type._getOrCreate<symbol>('symbol', undefined, TypeCode.Symbol, 'symbol');\n public static readonly BigInt = Type._getOrCreate<bigint>('bigint', undefined, TypeCode.BigInt, 'bigint');\n public static readonly Null = Type._getOrCreate<null>('null', undefined, TypeCode.Null, 'null');\n public static readonly Undefined = Type._getOrCreate<undefined>('undefined', undefined, TypeCode.Undefined, 'undefined');\n public static readonly Object = Type._getOrCreate<object>(Object, Object, TypeCode.Object, 'Object');\n public static readonly Function = Type._getOrCreate<Function>(Function, Function, TypeCode.Function, 'Function');\n public static readonly Array = Type._getOrCreate<unknown[]>(Array, Array, TypeCode.Array, 'Array');\n\n // ──────────────────────────────────────────────\n // Propiedades inmutables\n // ──────────────────────────────────────────────\n\n public readonly name: string;\n public readonly constructorRef:\n Constructor<T> | undefined;\n public readonly typeCode: TypeCode;\n\n private constructor(\n name: string,\n constructorRef: Constructor<T> | undefined,\n typeCode: TypeCode,\n ) {\n this.name = name;\n this.constructorRef = constructorRef;\n this.typeCode = typeCode;\n }\n\n // ══════════════════════════════════════════════\n // ÚNICO PUNTO DE ENTRADA\n // ══════════════════════════════════════════════\n\n /**\n * Obtiene el `Type` de cualquier valor, constructor o primitivo.\n *\n * Unifica `typeof()` y `.GetType()` de C# en un solo método.\n *\n * **Reglas de resolución:**\n * 1. `null` / `undefined` → tipo nullish correspondiente\n * 2. Primitivo (`number`, `string`, etc.) → tipo primitivo\n * 3. Array → `Type.Array`\n * 4. Función/Constructor → tipo del constructor (no \"Function\")\n * 5. Objeto → tipo basado en su constructor\n *\n * @example\n * ```ts\n * Type.of(42) // Type<number> — primitivo\n * Type.of('hello') // Type<string> — primitivo\n * Type.of(new Date()) // Type<Date> — desde instancia\n * Type.of(Date) // Type<Date> — desde constructor\n * Type.of(null) // Type<null>\n * Type.of([1, 2, 3]) // Type<Array>\n * ```\n */\n public static of<U>(target: U | Constructor<U>): Type<U> {\n // ── Nullish ──\n if (target === null) return Type.Null as Type<U>;\n if (target === undefined) return Type.Undefined as Type<U>;\n\n const jsType = typeof target;\n\n // ── Primitivos ──\n if (jsType !== 'object' && jsType !== 'function') {\n return this._getOrCreate<U>(jsType, undefined, jsType as TypeCode);\n }\n\n // ── Funciones y Constructores ──\n if (jsType === 'function') {\n return this._resolveFunction<U>(target as Function & Constructor<U>);\n }\n\n // ── Arrays ──\n if (Array.isArray(target)) {\n return Type.Array as Type<U>;\n }\n\n // ── Objetos ──\n return this._resolveObject<U>(target as object);\n }\n\n // ──────────────────────────────────────────────\n // Resolvers privados (separan la lógica compleja)\n // ──────────────────────────────────────────────\n\n /**\n * Resuelve funciones y constructores.\n *\n * Decisión clave: si la función tiene un `prototype` con\n * miembros propios o empieza con `class`, es un constructor\n * y devolvemos el tipo que construye. Si no, es una función.\n */\n private static _resolveFunction<U>(fn: Function & Constructor<U>): Type<U> {\n const isConstructor = this._isConstructorLike(fn);\n\n if (isConstructor) {\n // Constructor → devuelve el tipo que construye\n return this._getOrCreate<U>(\n fn, // cacheamos por referencia al constructor\n fn as Constructor<U>,\n TypeCode.Object,\n fn.name || 'AnonymousClass',\n );\n }\n\n // Función pura → devuelve Type<Function>\n return Type.Function as Type<U>;\n }\n\n /**\n * Resuelve objetos por su cadena de prototipos.\n */\n private static _resolveObject<U>(obj: object): Type<U> {\n const proto = Object.getPrototypeOf(obj) as { constructor?: Constructor<U> } | null;\n const ctor = proto?.constructor as Constructor<U> | undefined;\n const name = ctor?.name || 'Object';\n\n if (!ctor || ctor === (Object as unknown)) {\n return Type.Object as Type<U>;\n }\n\n return this._getOrCreate<U>(ctor, ctor, TypeCode.Object, name);\n }\n\n /**\n * Heurística para distinguir constructores de funciones planas.\n *\n * Un \"constructor\" cumple al menos una de:\n * - Su `toString()` empieza con \"class \"\n * - Tiene propiedades propias en su prototype (más allá de constructor)\n * - Es un built-in conocido (Date, Map, Set, etc.)\n */\n private static _isConstructorLike(fn: Function): boolean {\n // 1. Clase ES6 explícita\n try {\n if (fn.toString().startsWith('class ')) return true;\n } catch {\n // toString puede fallar en Proxy, etc.\n }\n\n // 2. Built-ins conocidos con prototype significativo\n if (fn === Object || fn === Function || fn === Array) return true;\n\n const proto = fn.prototype;\n if (!proto || typeof proto !== 'object') return false;\n\n // 3. Prototype con miembros propios (señal de constructor)\n const ownKeys = Object.getOwnPropertyNames(proto);\n return ownKeys.length > 1 || (ownKeys.length === 1 && ownKeys[0] !== 'constructor');\n }\n\n // ══════════════════════════════════════════════\n // PROPIEDADES COMPUTADAS\n // ══════════════════════════════════════════════\n\n public get isPrimitive(): boolean {\n return (\n this.typeCode === TypeCode.String ||\n this.typeCode === TypeCode.Number ||\n this.typeCode === TypeCode.Boolean ||\n this.typeCode === TypeCode.Symbol ||\n this.typeCode === TypeCode.BigInt\n );\n }\n\n public get isNullish(): boolean {\n return this.typeCode === TypeCode.Null || this.typeCode === TypeCode.Undefined;\n }\n\n public get isReferenceType(): boolean {\n return !this.isPrimitive && !this.isNullish;\n }\n\n public get isArray(): boolean {\n return this.typeCode === TypeCode.Array ||\n this.constructorRef === (Array as unknown as Constructor<T>);\n }\n\n public get isFunction(): boolean {\n return this.typeCode === TypeCode.Function;\n }\n\n public get isValueType(): boolean {\n return this.isPrimitive;\n }\n\n public get isClass(): boolean {\n if (!this.constructorRef) return false;\n try {\n return this.constructorRef.toString().startsWith('class ');\n } catch {\n return false;\n }\n }\n\n public get fullName(): string {\n if (this.isPrimitive || this.isNullish) {\n return `System.${this.name.charAt(0).toUpperCase()}${this.name.slice(1)}`;\n }\n return this.name;\n }\n\n // ══════════════════════════════════════════════\n // JERARQUÍA\n // ══════════════════════════════════════════════\n\n public get baseType(): Type | undefined {\n if (!this.constructorRef) return undefined;\n\n const parentProto = Object.getPrototypeOf(this.constructorRef.prototype);\n if (!parentProto || parentProto === Object.prototype) {\n return this === Type.Object ? undefined : Type.Object;\n }\n\n const parentCtor = parentProto.constructor as Constructor;\n return Type.of(parentCtor);\n }\n\n public getInheritanceChain(): ReadonlyArray<Type> {\n const chain: Type[] = [this];\n let current: Type | undefined = this.baseType;\n\n while (current && !chain.includes(current)) {\n chain.push(current);\n current = current.baseType;\n }\n\n return Object.freeze(chain);\n }\n\n public isAssignableTo(target: Type): boolean {\n if (this === target) return true;\n if (!this.constructorRef || !target.constructorRef) return false;\n\n let proto: object | null = this.constructorRef.prototype;\n while (proto) {\n if (proto.constructor === target.constructorRef) return true;\n proto = Object.getPrototypeOf(proto) as object | null;\n }\n return false;\n }\n\n public isAssignableFrom(source: Type): boolean {\n return source.isAssignableTo(this);\n }\n\n public isSubclassOf(parent: Type): boolean {\n if (this === parent) return false;\n return this.isAssignableTo(parent);\n }\n\n\n // ══════════════════════════════════════════════\n // REFLEXIÓN\n // ══════════════════════════════════════════════\n\n public getMethodNames(): ReadonlyArray<string> {\n return Object.freeze(\n this._getPrototypeMemberNames((_, descriptor) => typeof descriptor.value === 'function')\n );\n }\n\n public getPropertyNames(): ReadonlyArray<string> {\n return Object.freeze(\n this._getPrototypeMemberNames((_, descriptor) => typeof descriptor.value !== 'function')\n );\n }\n\n public getMemberNames(): ReadonlyArray<string> {\n return Object.freeze(this._getPrototypeMemberNames());\n }\n\n public hasMethod(name: string): boolean {\n const descriptor = this._getOwnPrototypeDescriptor(name);\n return typeof descriptor?.value === 'function';\n }\n\n public hasProperty(name: string): boolean {\n const descriptor = this._getOwnPrototypeDescriptor(name);\n return !!descriptor && typeof descriptor.value !== 'function';\n }\n\n private _getPrototypeMemberNames(\n predicate: (name: string, descriptor: PropertyDescriptor) => boolean = () => true\n ): string[] {\n if (!this.constructorRef?.prototype) return [];\n\n return Object.getOwnPropertyNames(this.constructorRef.prototype)\n .filter(name => {\n const descriptor = this._getOwnPrototypeDescriptor(name);\n return !!descriptor && predicate(name, descriptor);\n });\n }\n\n private _getOwnPrototypeDescriptor(name: string): PropertyDescriptor | undefined {\n if (name === 'constructor' || !this.constructorRef?.prototype) return undefined;\n return Object.getOwnPropertyDescriptor(this.constructorRef.prototype, name);\n }\n\n public getStaticMemberNames(): ReadonlyArray<string> {\n if (!this.constructorRef) return Object.freeze([]);\n const skip = new Set(['prototype', 'length', 'name', 'caller', 'arguments']);\n return Object.freeze(\n Object.getOwnPropertyNames(this.constructorRef)\n .filter(n => !skip.has(n))\n );\n }\n\n\n // ══════════════════════════════════════════════\n // SERIALIZACIÓN\n // ══════════════════════════════════════════════\n\n public toString(): string {\n return `Type [${this.name}]`;\n }\n\n\n public [Symbol.toPrimitive](hint: string): string | number {\n\n let hash = 0;\n for (let i = 0; i < this.name.length; i++) {\n hash = ((hash << 5) - hash + this.name.charCodeAt(i)) | 0;\n }\n\n return hint === 'number' ? hash : this.toString();\n }\n\n public get [Symbol.toStringTag](): string {\n return `Type<${this.name}>`;\n }\n\n // ──────────────────────────────────────────────\n // FACTORY INTERNA\n // ──────────────────────────────────────────────\n\n private static _getOrCreate<V>(\n key: unknown,\n constructorRef: Constructor<V> | unknown,\n typeCode: TypeCode,\n customName?: string,\n ): Type<V> {\n const cached = this._cache.get(key);\n if (cached) return cached as Type<V>;\n\n const name = customName\n ?? (typeof key === 'string' ? key : 'unknown');\n\n const ref = typeof constructorRef === 'function'\n ? constructorRef as Constructor<V>\n : undefined;\n\n const instance = new Type<V>(name, ref, typeCode);\n this._cache.set(key, instance as Type);\n return instance;\n }\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;AAEhE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;AAE3C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAE/C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAElC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAEvC,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAEzD,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAElE,MAAM,MAAM,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAEjF,MAAM,MAAM,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAChD,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,EAAE,KACP,CAAC,CAAC;AAEP,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["\n\nexport type EqualityComparer<T> = (arg1: T, arg2: T) => boolean;\n\nexport type Consumer<T> = (arg: T) => void;\n\nexport type Predicate<T> = (arg: T) => boolean;\n\nexport type Supplier<T> = () => T;\n\nexport type Nullable<T> = T | null;\n\nexport type Nullish = null | undefined;\n\nexport type Resolvable<T> = T | Promise<T> | Supplier<T>;\n\nexport type UnaryFunction<T, R> = (arg: T) => R;\n\nexport type BinaryFunction<T1, T2, R> = (arg1: T1, arg2: T2) => R;\n\nexport type TernaryFunction<T1, T2, T3, R> = (arg1: T1, arg2: T2, arg3: T3) => R;\n\nexport type QuaternaryFunction<T1, T2, T3, T4, R> = (\n arg1: T1,\n arg2: T2,\n arg3: T3,\n arg4: T4\n) => R;\n\nexport type Constructor<T = unknown> = abstract new (...args: any[]) => T;\n\n\n"]}
|
|
@@ -85,10 +85,15 @@ export declare function shallowEqual(a: any, b: any): boolean;
|
|
|
85
85
|
/**
|
|
86
86
|
* Pauses the execution of an asynchronous function for a specified duration.
|
|
87
87
|
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
88
|
+
* When `signal` is provided, the returned promise rejects with `signal.reason`
|
|
89
|
+
* as soon as the signal is aborted (or immediately if it is already aborted),
|
|
90
|
+
* and the pending timer is cleared.
|
|
91
|
+
*
|
|
92
|
+
* @param ms - The delay duration in milliseconds.
|
|
93
|
+
* @param signal - Optional signal that cancels the wait.
|
|
94
|
+
* @return A promise that resolves after the specified delay.
|
|
90
95
|
*/
|
|
91
|
-
export declare function delay(ms: number): Promise<void>;
|
|
96
|
+
export declare function delay(ms: number, signal?: AbortSignal): Promise<void>;
|
|
92
97
|
/**
|
|
93
98
|
* Checks if a value is undefined.
|
|
94
99
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -301,11 +301,34 @@ export function shallowEqual(a, b) {
|
|
|
301
301
|
/**
|
|
302
302
|
* Pauses the execution of an asynchronous function for a specified duration.
|
|
303
303
|
*
|
|
304
|
-
*
|
|
305
|
-
*
|
|
304
|
+
* When `signal` is provided, the returned promise rejects with `signal.reason`
|
|
305
|
+
* as soon as the signal is aborted (or immediately if it is already aborted),
|
|
306
|
+
* and the pending timer is cleared.
|
|
307
|
+
*
|
|
308
|
+
* @param ms - The delay duration in milliseconds.
|
|
309
|
+
* @param signal - Optional signal that cancels the wait.
|
|
310
|
+
* @return A promise that resolves after the specified delay.
|
|
306
311
|
*/
|
|
307
|
-
export
|
|
308
|
-
|
|
312
|
+
export function delay(ms, signal) {
|
|
313
|
+
return new Promise((resolve, reject) => {
|
|
314
|
+
if (signal === undefined) {
|
|
315
|
+
setTimeout(resolve, ms);
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
if (signal.aborted) {
|
|
319
|
+
reject(signal.reason);
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
const onAbort = () => {
|
|
323
|
+
clearTimeout(timer);
|
|
324
|
+
reject(signal.reason);
|
|
325
|
+
};
|
|
326
|
+
const timer = setTimeout(() => {
|
|
327
|
+
signal.removeEventListener("abort", onAbort);
|
|
328
|
+
resolve();
|
|
329
|
+
}, ms);
|
|
330
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
331
|
+
});
|
|
309
332
|
}
|
|
310
333
|
/**
|
|
311
334
|
* Checks if a value is undefined.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAGrC,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAE/C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,IAAI,CAAmB,OAAgB;IACnD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,QAAW,CAAC;IAEhB,MAAM,WAAW,GAAG,GAAM,EAAE;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,QAAQ,GAAG,OAAO,EAAE,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,EAAO,EAAE;QACtB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ;YACjB,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;QACD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK;YACd,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU;YAC9B,OAAO,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACnE,CAAC;QACD,GAAG,CAAC,CAAC,EAAE,IAAI;YACP,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,cAAc,CAAC,CAAC,EAAE,IAAI;YAClB,OAAO,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC;QACD,OAAO;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,wBAAwB,CAAC,CAAC,EAAE,IAAI;YAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,wBAAwB,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;YACzE,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gBAChD,OAAO,UAAU,CAAC;YACtB,CAAC;YACD,OAAO,EAAC,GAAG,UAAU,EAAE,YAAY,EAAE,IAAI,EAAC,CAAC;QAC/C,CAAC;QACD,cAAc;YACV,OAAO,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;QACjD,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAQ;IAC/B,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAU;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAU;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,KAAU;IAChC,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAU;IAC/B,OAAO,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,KAAU;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAU;IACjC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACvC,CAAC;AAGD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,CAAU,EAAE,CAAU,EAAE,gBAAgB,GAAG,IAAI;IACrE,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CACf,CAAU,EACV,CAAU,EACV,gBAAyB,EACzB,OAA6B,IAAI,GAAG,EAAE;IAEtC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAExC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACzC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IACjF,CAAC;IAED,IAAI,CAAC,YAAY,MAAM,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC;QAC7C,OAAO,CAAC,YAAY,MAAM,IAAI,CAAC,YAAY,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvF,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAExD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IACjE,CAAC;IAED,MAAM,IAAI,GAAG,CAAW,CAAC;IACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAElB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvC,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvC,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,IAAI,GAAG,CAAW,CAAC;IACzB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEhD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,gBAAgB,CAAC;YAAE,OAAO,KAAK,CAAC;QACjE,IAAI,CAAC,UAAU,CAAE,CAAS,CAAC,GAAG,CAAC,EAAG,CAAS,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;IAC5F,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAClB,CAAwB,EACxB,CAAwB,EACxB,gBAAyB,EACzB,IAA0B;IAE1B,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAEpC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,IAAI,KAAK,GAAG,KAAK,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS;YAE7B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YACpC,IACI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,aAAa,CAAC;gBACvD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAC7D,CAAC;gBACC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACf,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACzC,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;YACV,CAAC;QACL,CAAC;QAED,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;IAC7B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAClB,CAAe,EACf,CAAe,EACf,gBAAyB,EACzB,IAA0B;IAE1B,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAEpC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,KAAK,GAAG,KAAK,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS;YAE7B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,CAAC;gBAClE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACf,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACzC,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;YACV,CAAC;QACL,CAAC;QAED,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;IAC7B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,gBAAyB;IAC5D,MAAM,IAAI,GAAkB,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAe,CAAC;IACpC,MAAM,MAAM,GAAG,CAAC,GAAgB,EAAE,EAAE;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAEnC,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,SAAS,KAAK,IAAI,EAAE,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACnE,IAAI,UAAU,EAAE,UAAU;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,GAAgB,EAAE,gBAAyB;IAChF,OAAO,gBAAgB;QACnB,CAAC,CAAC,GAAG,IAAI,KAAK;QACd,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA4B,EAAE,MAA4B;IACnF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;AACL,CAAC;AAGD;;;;;;;;GAQG;AAGH;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,CAAM,EAAE,CAAM;IACvC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjG,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAGD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,KAAK,CAAC,EAAU,EAAE,MAAoB;IAClD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACxB,OAAO;QACX,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtB,OAAO;QACX,CAAC;QAED,MAAM,OAAO,GAAG,GAAS,EAAE;YACvB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,EAAE,CAAC;QACd,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAU;IAClC,OAAO,OAAO,KAAK,KAAK,WAAW,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAI,KAAQ;IACjC,OAAO,OAAO,KAAK,KAAK,WAAW,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,KAAU;IAC7B,OAAO,KAAK,KAAK,IAAI,CAAC;AAC1B,CAAC;AAGD;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAU;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAU;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAU;IACxC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,KAAU;IAChC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,KAAU;IAC9B,IAAI,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,KAAK,EAAE,CAAC;IACnD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAC1D,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAGD;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,GAAwB;IAE5C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,MAAM,CAAC;AAElB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,IAAI,CAAsC,GAAM,EAAE,KAAU;IACxE,MAAM,MAAM,GAAG,EAAgB,CAAC;IAChC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAI,KAAoB;IAE7C,IAAI,KAAK,YAAY,OAAO;QACxB,OAAO,KAAK,CAAC;IAGjB,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAGD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAI,KAAQ;IACjC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CACf,KAAQ,EACR,OAAiC,IAAI,OAAO,EAAE;IAE9C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE9D,MAAM,GAAG,GAAG,KAA0B,CAAC;IACvC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;IAE7C,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAM,CAAC;IACvD,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,OAAO,IAAS,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,IAAS,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,IAAS,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,GAAQ,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAClC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IAElD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEpB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAE,KAAa,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,IAAS,CAAC;AACrB,CAAC;AAGD;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,KAAU;IAE9B,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CACvB,MAAS,EACT,MAAW,EACX,IAAsB;IAGtB,IAAI,UAAU,CAAC;IACf,IAAI,WAAW,GAAG,MAAM,CAAC;IAEzB,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QAC/B,UAAU,GAAG,IAAI,IAAK,MAAmB,CAAC,IAAI,CAAC;QAC/C,WAAW,GAAG,UAAqB,GAAG,IAAW;YAC7C,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,UAAU,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;IACvG,CAAC;IAED,IAAI,UAAU,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,UAAU,CAAC,uBAAuB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAChF,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE;QAChD,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;KACpB,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AAChB,CAAC","sourcesContent":["// noinspection JSUnusedGlobalSymbols\n\n\nimport KeyValuePair from \"./key-value-pair.js\";\nimport type {Resolvable, Constructor} from \"./types.js\";\nimport Type from \"./type.js\";\n\nexport function lazy<T extends object>(factory: () => T): T {\n let created = false;\n let instance: T;\n\n const getInstance = (): T => {\n if (!created) {\n instance = factory();\n created = true;\n }\n return instance;\n };\n\n return new Proxy({} as T, {\n get(_, prop, receiver) {\n return Reflect.get(getInstance(), prop, receiver);\n },\n set(_, prop, value) {\n return Reflect.set(getInstance(), prop, value, getInstance());\n },\n defineProperty(_, prop, descriptor) {\n return Reflect.defineProperty(getInstance(), prop, descriptor);\n },\n has(_, prop) {\n return Reflect.has(getInstance(), prop);\n },\n deleteProperty(_, prop) {\n return Reflect.deleteProperty(getInstance(), prop);\n },\n ownKeys() {\n return Reflect.ownKeys(getInstance());\n },\n getOwnPropertyDescriptor(_, prop) {\n const descriptor = Reflect.getOwnPropertyDescriptor(getInstance(), prop);\n if (descriptor == null || descriptor.configurable) {\n return descriptor;\n }\n return {...descriptor, configurable: true};\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(getInstance());\n },\n });\n}\n\n/**\n * Checks if an object is iterable.\n *\n * @param {any} obj - The object to check.\n * @return {boolean} - Returns true if the object is iterable, otherwise false.\n */\nexport function isIterable(obj: any): boolean {\n return obj != null && typeof obj[Symbol.iterator] === 'function';\n}\n\n/**\n * Checks if a given value is a string.\n *\n * @param {*} value - The value to check.\n * @return {boolean} - Returns true if the value is a string, otherwise returns false.\n */\nexport function isString(value: any): value is string {\n return typeof value === 'string';\n}\n\n/**\n * Checks if a value is a number.\n *\n * @param {any} value - The value to check.\n * @return {boolean} - Returns true if the value is a number, otherwise false.\n */\nexport function isNumber(value: any): value is number {\n return typeof value === 'number';\n}\n\n/**\n * Checks if a given value is a boolean.\n *\n * @param {any} value - The value to be checked.\n *\n * @return {boolean} - Returns true if the value is a boolean, otherwise false.\n */\nexport function isBoolean(value: any): value is boolean {\n return typeof value === 'boolean';\n}\n\n/**\n * Checks if a value is an object.\n * @param {any} value - The value to be checked.\n * @returns {boolean} - Returns true if the value is an object, otherwise returns false.\n */\nexport function isObject(value: any): value is object {\n return value != null && typeof value === 'object' && !Array.isArray(value);\n}\n\n/**\n * Determines if a value is an array.\n *\n * @param value - The value to be checked.\n *\n * @return Whether the value is an array.\n */\nexport function isArray(value: any): value is any[] {\n return Array.isArray(value);\n}\n\n/**\n * Checks if a value is a function.\n *\n * @param {any} value - The value to be checked.\n * @return {boolean} - Returns true if the value is a function, otherwise returns false.\n */\nexport function isFunction(value: any): value is Function {\n return typeof value === 'function';\n}\n\n\n/**\n * Structural deep equality check.\n *\n * Compares primitives by value, and objects/arrays/Maps/Sets/Dates/RegExps\n * by structure. Handles circular references.\n *\n * @param a - First value.\n * @param b - Second value.\n * @param includeInherited - Whether inherited enumerable properties are compared. Defaults to `true`.\n * @returns `true` if `a` and `b` are structurally equal.\n */\nexport function deepEqual(a: unknown, b: unknown, includeInherited = true): boolean {\n return _deepEqual(a, b, includeInherited);\n}\n\n/**\n * Internal implementation of deep equality check.\n * @param a - First value.\n * @param b - Second value.\n * @param includeInherited - Whether inherited enumerable properties are compared.\n * @param seen - Internal map used to handle circular references.\n */\nfunction _deepEqual(\n a: unknown,\n b: unknown,\n includeInherited: boolean,\n seen: Map<object, unknown> = new Map()\n): boolean {\n if (a === b) return true;\n if (a === null || b === null) return false;\n if (typeof a !== typeof b) return false;\n if (typeof a !== \"object\") return false;\n\n if (a instanceof Date || b instanceof Date) {\n return a instanceof Date && b instanceof Date && a.getTime() === b.getTime();\n }\n\n if (a instanceof RegExp || b instanceof RegExp) {\n return a instanceof RegExp && b instanceof RegExp && a.toString() === b.toString();\n }\n\n if (Array.isArray(a) !== Array.isArray(b)) return false;\n\n if (a instanceof Map || b instanceof Map) {\n if (!(a instanceof Map) || !(b instanceof Map)) return false;\n }\n\n if (a instanceof Set || b instanceof Set) {\n if (!(a instanceof Set) || !(b instanceof Set)) return false;\n }\n\n const objA = a as object;\n if (seen.has(objA)) return seen.get(objA) === b;\n seen.set(objA, b);\n\n if (a instanceof Map && b instanceof Map) {\n return _deepEqualMap(a, b, includeInherited, seen);\n }\n\n if (a instanceof Set && b instanceof Set) {\n return _deepEqualSet(a, b, includeInherited, seen);\n }\n\n const objB = b as object;\n const keysA = _deepEqualKeys(objA, includeInherited);\n const keysB = _deepEqualKeys(objB, includeInherited);\n if (keysA.length !== keysB.length) return false;\n\n for (const key of keysA) {\n if (!_deepEqualHasKey(objB, key, includeInherited)) return false;\n if (!_deepEqual((a as any)[key], (b as any)[key], includeInherited, seen)) return false;\n }\n\n return true;\n}\n\nfunction _deepEqualMap(\n a: Map<unknown, unknown>,\n b: Map<unknown, unknown>,\n includeInherited: boolean,\n seen: Map<object, unknown>\n): boolean {\n if (a.size !== b.size) return false;\n\n const entriesB = Array.from(b.entries());\n const matched = new Set<number>();\n\n for (const [keyA, valueA] of a) {\n let found = false;\n\n for (let i = 0; i < entriesB.length; i++) {\n if (matched.has(i)) continue;\n\n const [keyB, valueB] = entriesB[i];\n const candidateSeen = new Map(seen);\n if (\n _deepEqual(keyA, keyB, includeInherited, candidateSeen) &&\n _deepEqual(valueA, valueB, includeInherited, candidateSeen)\n ) {\n matched.add(i);\n _mergeDeepEqualSeen(candidateSeen, seen);\n found = true;\n break;\n }\n }\n\n if (!found) return false;\n }\n\n return true;\n}\n\nfunction _deepEqualSet(\n a: Set<unknown>,\n b: Set<unknown>,\n includeInherited: boolean,\n seen: Map<object, unknown>\n): boolean {\n if (a.size !== b.size) return false;\n\n const valuesB = Array.from(b.values());\n const matched = new Set<number>();\n\n for (const valueA of a) {\n let found = false;\n\n for (let i = 0; i < valuesB.length; i++) {\n if (matched.has(i)) continue;\n\n const candidateSeen = new Map(seen);\n if (_deepEqual(valueA, valuesB[i], includeInherited, candidateSeen)) {\n matched.add(i);\n _mergeDeepEqualSeen(candidateSeen, seen);\n found = true;\n break;\n }\n }\n\n if (!found) return false;\n }\n\n return true;\n}\n\nfunction _deepEqualKeys(value: object, includeInherited: boolean): PropertyKey[] {\n const keys: PropertyKey[] = [];\n const seen = new Set<PropertyKey>();\n const addKey = (key: PropertyKey) => {\n if (seen.has(key)) return;\n seen.add(key);\n keys.push(key);\n };\n\n for (const key of Reflect.ownKeys(value)) {\n addKey(key);\n }\n\n if (!includeInherited) return keys;\n\n let prototype = Object.getPrototypeOf(value);\n while (prototype !== null) {\n for (const key of Reflect.ownKeys(prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(prototype, key);\n if (descriptor?.enumerable) addKey(key);\n }\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return keys;\n}\n\nfunction _deepEqualHasKey(value: object, key: PropertyKey, includeInherited: boolean): boolean {\n return includeInherited\n ? key in value\n : Object.prototype.hasOwnProperty.call(value, key);\n}\n\nfunction _mergeDeepEqualSeen(source: Map<object, unknown>, target: Map<object, unknown>): void {\n for (const [key, value] of source) {\n target.set(key, value);\n }\n}\n\n\n/**\n * Submits an HTML form programmatically using the specified HTTP method (default is POST),\n * without using AJAX. Supports nested objects and arrays using bracket notation (e.g., `user[name]`, `tags[]`).\n *\n * @param url - The destination URL where the form will be submitted.\n * @param data - An object containing key-value pairs. Supports nested structures and arrays.\n * @param method - HTTP method to use: 'POST' or 'GET' (default: 'POST').\n * @param target - Optional parameter specifying the target for the form submission (e.g., '_blank', '_self', '_parent', '_top').\n */\n\n\n/**\n * Compares two objects or arrays to check if they have the same immediate fields and values,\n * or the same immediate elements if they are arrays (shallow equality check).\n *\n * @param {any} a - The first object or array.\n * @param {any} b - The second object or array.\n * @return {boolean} - Returns true if the objects/arrays are shallowly equal, otherwise false.\n */\nexport function shallowEqual(a: any, b: any): boolean {\n if (a === b) {\n return true;\n }\n\n if (a === null || b === null || typeof a !== typeof b) {\n return false;\n }\n\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n return a.every((value, index) => value === b[index]);\n }\n\n if (typeof a === \"object\" && typeof b === \"object\") {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n return keysA.every(key => Object.prototype.hasOwnProperty.call(b, key) && a[key] === b[key]);\n }\n\n return false;\n}\n\n\n/**\n * Pauses the execution of an asynchronous function for a specified duration.\n *\n * When `signal` is provided, the returned promise rejects with `signal.reason`\n * as soon as the signal is aborted (or immediately if it is already aborted),\n * and the pending timer is cleared.\n *\n * @param ms - The delay duration in milliseconds.\n * @param signal - Optional signal that cancels the wait.\n * @return A promise that resolves after the specified delay.\n */\nexport function delay(ms: number, signal?: AbortSignal): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (signal === undefined) {\n setTimeout(resolve, ms);\n return;\n }\n\n if (signal.aborted) {\n reject(signal.reason);\n return;\n }\n\n const onAbort = (): void => {\n clearTimeout(timer);\n reject(signal.reason);\n };\n const timer = setTimeout(() => {\n signal.removeEventListener(\"abort\", onAbort);\n resolve();\n }, ms);\n\n signal.addEventListener(\"abort\", onAbort, {once: true});\n });\n}\n\n/**\n * Checks if a value is undefined.\n *\n * @param {any} value - The value to check.\n * @returns {boolean} - True if the value is undefined, false otherwise.\n */\nexport function isUndefined(value: any): value is undefined {\n return typeof value === 'undefined';\n}\n\n/**\n * Checks if a value is defined or not.\n *\n * @param {any} value - The value to be checked.\n *\n * @return {boolean} - True if the value is defined, false otherwise.\n */\nexport function isDefined<T>(value: T): value is Exclude<T, undefined> {\n return typeof value !== 'undefined';\n}\n\n/**\n * Checks if a given value is null.\n *\n * @param {any} value - The value to check for null.\n * @return {boolean} - Returns true if the value is null, otherwise returns false.\n */\nexport function isNull(value: any): value is null {\n return value === null;\n}\n\n\n/**\n * Determines whether the given value is of type bigint.\n * @param {any} value - The value to be checked.\n * @return {boolean} - Returns true if the value is of type bigint, false otherwise.\n */\nexport function isBigInt(value: any): value is bigint {\n return typeof value === 'bigint';\n}\n\n/**\n * Checks if a given value is a symbol.\n *\n * @param {any} value - The value to be checked.\n * @return {boolean} - Returns true if the value is a symbol, false otherwise.\n */\nexport function isSymbol(value: any): value is symbol {\n return typeof value === 'symbol';\n}\n\n/**\n * Checks if a value is null or undefined.\n *\n * @param {any} value - The value to check.\n * @return {boolean} - Returns true if the value is null or undefined, false otherwise.\n * @deprecated\n */\nexport function isNullOrUndefined(value: any): boolean {\n return isNullish(value);\n}\n\n/**\n * Checks if a value is null or undefined.\n *\n * @param {any} value - The value to check.\n * @return {boolean} - Returns true if the value is null or undefined, false otherwise.\n\n */\nexport function isNullish(value: any): boolean {\n return value === null || typeof value === 'undefined';\n}\n\n/**\n * Checks if a given value is empty.\n *\n * @param {any} value - The value to check.\n * @return {boolean} - Returns true if the value is empty, otherwise returns false.\n */\nexport function isEmpty(value: any): boolean {\n if (isNullish(value)) return true;\n if (Array.isArray(value)) return value.length === 0;\n if (typeof value === 'string') return value === '';\n return false;\n}\n\n/**\n * Check if a value is empty or contains only whitespace characters.\n *\n * @param {any} value - The value to check.\n * @return {boolean} Returns true if the value is empty or contains only whitespace characters, otherwise returns false.\n */\nexport function isEmptyOrWhitespace(value: any): boolean {\n if (typeof value === 'string') return value.trim() === '';\n return isEmpty(value);\n}\n\n\n/**\n * Converts an object into an array of key-value pairs.\n *\n * @param {Record<string, any>} obj - The object to convert.\n * @return {KeyValuePair<string, any>[]} - The array of key-value pairs.\n */\nexport function toPairs(obj: Record<string, any>): KeyValuePair<string, any>[] {\n\n let output = [];\n for (const key in obj) {\n output.push(new KeyValuePair(key, obj[key]));\n }\n return output;\n\n}\n\n/**\n * Creates an object composed of the picked object properties.\n *\n * @template T - The type of the source object.\n * @template K - The type of the keys to pick.\n * @param obj - The source object.\n * @param props - The property names to pick.\n * @returns A new object with the picked properties.\n */\nexport function pick<T extends object, K extends keyof T>(obj: T, props: K[]): Pick<T, K> {\n const result = {} as Pick<T, K>;\n if (obj === null || typeof obj !== 'object') {\n return result;\n }\n\n for (const key of props) {\n if (key in obj) {\n result[key] = obj[key];\n }\n }\n return result;\n}\n\n/**\n * Converts a given thing into a Promise.\n * @template T\n * @param {any} thing - The thing to be converted into a Promise.\n * @returns {Promise<T>} - A Promise representing the given thing.\n */\nexport function promisify<T>(thing: Resolvable<T>): Promise<T> {\n\n if (thing instanceof Promise)\n return thing;\n\n\n if (isFunction(thing)) {\n return new Promise<T>((resolve, reject) => {\n try {\n const result = thing();\n resolve(result);\n } catch (error) {\n reject(error);\n }\n });\n }\n\n return Promise.resolve(thing);\n}\n\n\n/**\n * Create a deep, independent copy of a value.\n *\n * Supports primitives, plain objects, arrays, `Date`, `RegExp`, `Map`, `Set`,\n * symbol-keyed properties and circular references. Functions are copied by\n * reference. Class instances preserve their prototype.\n *\n * @template T - The value's type.\n * @param value - The value to clone.\n * @returns A deep clone of `value`.\n */\nexport function deepClone<T>(value: T): T {\n return _deepClone(value);\n}\n\n/**\n * Internal implementation of deep clone.\n * @param value - The value to clone.\n * @param seen - Internal map used to handle circular references.\n */\nfunction _deepClone<T>(\n value: T,\n seen: WeakMap<object, unknown> = new WeakMap()\n): T {\n if (value === null || typeof value !== \"object\") return value;\n\n const obj = value as unknown as object;\n if (seen.has(obj)) return seen.get(obj) as T;\n\n if (value instanceof Date) return new Date(value) as T;\n if (value instanceof RegExp) {\n const copy = new RegExp(value);\n copy.lastIndex = value.lastIndex;\n return copy as T;\n }\n\n if (value instanceof Map) {\n const copy = new Map();\n seen.set(value, copy);\n for (const [k, v] of value) {\n copy.set(_deepClone(k, seen), _deepClone(v, seen));\n }\n return copy as T;\n }\n\n if (value instanceof Set) {\n const copy = new Set();\n seen.set(value, copy);\n for (const v of value) {\n copy.add(_deepClone(v, seen));\n }\n return copy as T;\n }\n\n const copy: any = Array.isArray(value)\n ? []\n : Object.create(Object.getPrototypeOf(value));\n\n seen.set(obj, copy);\n\n for (const key of Reflect.ownKeys(obj)) {\n copy[key] = _deepClone((value as any)[key], seen);\n }\n\n return copy as T;\n}\n\n\n/**\n * Returns the type of the given value.\n *\n * @param {any} value - The value to determine the type of.\n * @return {Type} - The type of the given value.\n * @deprecated use Type.of(...)\n */\nexport function getType(value: any): Type {\n\n return Type.of(value);\n}\n\n/**\n * Patches a method onto a class prototype.\n *\n * This function allows adding new methods to existing classes (monkey-patching).\n * If the method name already exists on the prototype, a warning is issued\n * and the method is not overwritten.\n *\n * If `method` is a function, its name is extracted (if not provided) and\n * it is wrapped to pass the instance (`this`) as the first argument.\n *\n * @template T - The type of the class constructor.\n * @param {T} target - The class constructor whose prototype will be patched.\n * @param {any} method - The implementation or value to patch.\n * @param {string | symbol} [name] - Optional name for the method. If not provided and method is a function, method.name is used.\n * @returns {boolean} Returns `true` if the method was successfully added, or `false` if it already existed.\n */\nexport function monkeyPatch<T extends Constructor>(\n target: T,\n method: any,\n name?: string | symbol\n): boolean {\n\n let methodName;\n let methodValue = method;\n\n if (typeof method === 'function') {\n methodName = name ?? (method as Function).name;\n methodValue = function (this: any, ...args: any[]) {\n return method.apply(this, [this, ...args]);\n };\n } else {\n methodName = name;\n }\n\n if (!methodName) {\n throw new Error(\"Monkey patch failed: No name provided and could not be extracted from function.\");\n }\n\n if (methodName in target.prototype) {\n console.warn(`Method '${String(methodName)}' already exists on ${target.name}`);\n return false;\n }\n\n Object.defineProperty(target.prototype, methodName, {\n value: methodValue,\n writable: true,\n configurable: true,\n enumerable: false\n });\n\n return true;\n}"]}
|
package/package.json
CHANGED
|
@@ -1,70 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@develia/commons",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.25",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "Antonio Gil Espinosa",
|
|
6
6
|
"email": "antonio.gil.espinosa@gmail.com",
|
|
7
7
|
"url": "https://antoniogilespinosa.com"
|
|
8
8
|
},
|
|
9
9
|
"type": "module",
|
|
10
|
-
"main": "./dist/
|
|
11
|
-
"
|
|
12
|
-
"types": "./dist/types/index.d.ts",
|
|
10
|
+
"main": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
13
12
|
"exports": {
|
|
14
|
-
".":
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"./
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"require": "./dist/cjs/array.js",
|
|
24
|
-
"browser": "./dist/web/array.js"
|
|
25
|
-
},
|
|
26
|
-
"./functions": {
|
|
27
|
-
"types": "./dist/types/functions.d.ts",
|
|
28
|
-
"import": "./dist/esm/functions.js",
|
|
29
|
-
"require": "./dist/cjs/functions.js",
|
|
30
|
-
"browser": "./dist/web/functions.js"
|
|
31
|
-
},
|
|
32
|
-
"./utilities": {
|
|
33
|
-
"types": "./dist/types/utilities.d.ts",
|
|
34
|
-
"import": "./dist/esm/utilities.js",
|
|
35
|
-
"require": "./dist/cjs/utilities.js",
|
|
36
|
-
"browser": "./dist/web/utilities.js"
|
|
37
|
-
},
|
|
38
|
-
"./parse": {
|
|
39
|
-
"types": "./dist/types/parse.d.ts",
|
|
40
|
-
"import": "./dist/esm/parse.js",
|
|
41
|
-
"require": "./dist/cjs/parse.js",
|
|
42
|
-
"browser": "./dist/web/parse.js"
|
|
43
|
-
},
|
|
44
|
-
"./string": {
|
|
45
|
-
"types": "./dist/types/string.d.ts",
|
|
46
|
-
"import": "./dist/esm/string.js",
|
|
47
|
-
"require": "./dist/cjs/string.js",
|
|
48
|
-
"browser": "./dist/web/string.js"
|
|
49
|
-
},
|
|
50
|
-
"./math": {
|
|
51
|
-
"types": "./dist/types/math.d.ts",
|
|
52
|
-
"import": "./dist/esm/math.js",
|
|
53
|
-
"require": "./dist/cjs/math.js",
|
|
54
|
-
"browser": "./dist/web/math.js"
|
|
55
|
-
},
|
|
56
|
-
"./collections": {
|
|
57
|
-
"types": "./dist/types/collections/index.d.ts",
|
|
58
|
-
"import": "./dist/esm/collections/index.js",
|
|
59
|
-
"require": "./dist/cjs/collections/index.js",
|
|
60
|
-
"browser": "./dist/web/collections/index.js"
|
|
61
|
-
},
|
|
62
|
-
"./browser": {
|
|
63
|
-
"types": "./dist/types/browser/index.d.ts",
|
|
64
|
-
"import": "./dist/esm/browser/index.js",
|
|
65
|
-
"require": "./dist/cjs/browser/index.js",
|
|
66
|
-
"browser": "./dist/web/browser/index.js"
|
|
67
|
-
}
|
|
13
|
+
".": "./dist/index.js",
|
|
14
|
+
"./array": "./dist/array.js",
|
|
15
|
+
"./functions": "./dist/functions.js",
|
|
16
|
+
"./utilities": "./dist/utilities.js",
|
|
17
|
+
"./parse": "./dist/parse.js",
|
|
18
|
+
"./string": "./dist/string.js",
|
|
19
|
+
"./math": "./dist/math.js",
|
|
20
|
+
"./collections": "./dist/collections/index.js",
|
|
21
|
+
"./browser": "./dist/browser/index.js"
|
|
68
22
|
},
|
|
69
23
|
"license": "proprietary",
|
|
70
24
|
"devDependencies": {
|
|
@@ -77,10 +31,7 @@
|
|
|
77
31
|
},
|
|
78
32
|
"scripts": {
|
|
79
33
|
"clean": "rimraf dist || rm -rf dist",
|
|
80
|
-
"build
|
|
81
|
-
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
82
|
-
"build:web": "tsc -p tsconfig.web.json",
|
|
83
|
-
"build": "npm run clean && npm run build:esm && npm run build:cjs && npm run build:web",
|
|
34
|
+
"build": "npm run clean && tsc",
|
|
84
35
|
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
|
|
85
36
|
"validate": "npm test && npm run build",
|
|
86
37
|
"prepack": "npm run validate"
|