@fluixi/utils 1.0.0-alpha.100
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/LICENSE +21 -0
- package/README.md +68 -0
- package/dist/index.cjs +2858 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +2838 -0
- package/dist/lib/array/advanced.cjs +2227 -0
- package/dist/lib/array/advanced.d.ts +1116 -0
- package/dist/lib/array/advanced.d.ts.map +1 -0
- package/dist/lib/array/advanced.js +2429 -0
- package/dist/lib/array/advanced.mjs +2204 -0
- package/dist/lib/array/array.cjs +57 -0
- package/dist/lib/array/array.d.ts +6 -0
- package/dist/lib/array/array.d.ts.map +1 -0
- package/dist/lib/array/array.js +31 -0
- package/dist/lib/array/array.mjs +36 -0
- package/dist/lib/array/index.cjs +2344 -0
- package/dist/lib/array/index.d.ts +4 -0
- package/dist/lib/array/index.d.ts.map +1 -0
- package/dist/lib/array/index.js +3 -0
- package/dist/lib/array/index.mjs +2322 -0
- package/dist/lib/array/utils.cjs +103 -0
- package/dist/lib/array/utils.d.ts +100 -0
- package/dist/lib/array/utils.d.ts.map +1 -0
- package/dist/lib/array/utils.js +165 -0
- package/dist/lib/array/utils.mjs +82 -0
- package/dist/lib/color/color.cjs +2190 -0
- package/dist/lib/color/color.d.ts +366 -0
- package/dist/lib/color/color.d.ts.map +1 -0
- package/dist/lib/color/color.js +722 -0
- package/dist/lib/color/color.mjs +2167 -0
- package/dist/lib/color/constants.cjs +380 -0
- package/dist/lib/color/constants.d.ts +361 -0
- package/dist/lib/color/constants.d.ts.map +1 -0
- package/dist/lib/color/constants.js +358 -0
- package/dist/lib/color/constants.mjs +359 -0
- package/dist/lib/color/conversions.cjs +629 -0
- package/dist/lib/color/conversions.d.ts +166 -0
- package/dist/lib/color/conversions.d.ts.map +1 -0
- package/dist/lib/color/conversions.js +766 -0
- package/dist/lib/color/conversions.mjs +608 -0
- package/dist/lib/color/helpers.cjs +2534 -0
- package/dist/lib/color/helpers.d.ts +75 -0
- package/dist/lib/color/helpers.d.ts.map +1 -0
- package/dist/lib/color/helpers.js +419 -0
- package/dist/lib/color/helpers.mjs +2511 -0
- package/dist/lib/color/index.cjs +2641 -0
- package/dist/lib/color/index.d.ts +12 -0
- package/dist/lib/color/index.d.ts.map +1 -0
- package/dist/lib/color/index.js +15 -0
- package/dist/lib/color/index.mjs +2619 -0
- package/dist/lib/color/types.cjs +18 -0
- package/dist/lib/color/types.d.ts +179 -0
- package/dist/lib/color/types.d.ts.map +1 -0
- package/dist/lib/color/types.js +1 -0
- package/dist/lib/color/types.mjs +0 -0
- package/dist/lib/color/utils.cjs +962 -0
- package/dist/lib/color/utils.d.ts +199 -0
- package/dist/lib/color/utils.d.ts.map +1 -0
- package/dist/lib/color/utils.js +858 -0
- package/dist/lib/color/utils.mjs +939 -0
- package/dist/lib/compare/comparators.cjs +171 -0
- package/dist/lib/compare/comparators.d.ts +65 -0
- package/dist/lib/compare/comparators.d.ts.map +1 -0
- package/dist/lib/compare/comparators.js +210 -0
- package/dist/lib/compare/comparators.mjs +150 -0
- package/dist/lib/compare/index.cjs +172 -0
- package/dist/lib/compare/index.d.ts +2 -0
- package/dist/lib/compare/index.d.ts.map +1 -0
- package/dist/lib/compare/index.js +1 -0
- package/dist/lib/compare/index.mjs +152 -0
- package/dist/lib/cookie/codec.cjs +72 -0
- package/dist/lib/cookie/codec.d.ts +22 -0
- package/dist/lib/cookie/codec.d.ts.map +1 -0
- package/dist/lib/cookie/codec.js +67 -0
- package/dist/lib/cookie/codec.mjs +51 -0
- package/dist/lib/cookie/index.cjs +75 -0
- package/dist/lib/cookie/index.d.ts +2 -0
- package/dist/lib/cookie/index.d.ts.map +1 -0
- package/dist/lib/cookie/index.js +1 -0
- package/dist/lib/cookie/index.mjs +53 -0
- package/dist/lib/crypto/hash.cjs +83 -0
- package/dist/lib/crypto/hash.d.ts +6 -0
- package/dist/lib/crypto/hash.d.ts.map +1 -0
- package/dist/lib/crypto/hash.js +53 -0
- package/dist/lib/crypto/hash.mjs +62 -0
- package/dist/lib/crypto/index.cjs +85 -0
- package/dist/lib/crypto/index.d.ts +2 -0
- package/dist/lib/crypto/index.d.ts.map +1 -0
- package/dist/lib/crypto/index.js +1 -0
- package/dist/lib/crypto/index.mjs +62 -0
- package/dist/lib/dom/events.cjs +40 -0
- package/dist/lib/dom/events.d.ts +159 -0
- package/dist/lib/dom/events.d.ts.map +1 -0
- package/dist/lib/dom/events.js +50 -0
- package/dist/lib/dom/events.mjs +19 -0
- package/dist/lib/dom/index.cjs +78 -0
- package/dist/lib/dom/index.d.ts +3 -0
- package/dist/lib/dom/index.d.ts.map +1 -0
- package/dist/lib/dom/index.js +2 -0
- package/dist/lib/dom/index.mjs +56 -0
- package/dist/lib/dom/utils.cjs +57 -0
- package/dist/lib/dom/utils.d.ts +6 -0
- package/dist/lib/dom/utils.d.ts.map +1 -0
- package/dist/lib/dom/utils.js +37 -0
- package/dist/lib/dom/utils.mjs +36 -0
- package/dist/lib/functions/functions.cjs +366 -0
- package/dist/lib/functions/functions.d.ts +329 -0
- package/dist/lib/functions/functions.d.ts.map +1 -0
- package/dist/lib/functions/functions.js +585 -0
- package/dist/lib/functions/functions.mjs +345 -0
- package/dist/lib/functions/index.cjs +369 -0
- package/dist/lib/functions/index.d.ts +3 -0
- package/dist/lib/functions/index.d.ts.map +1 -0
- package/dist/lib/functions/index.js +1 -0
- package/dist/lib/functions/index.mjs +347 -0
- package/dist/lib/functions/types.cjs +18 -0
- package/dist/lib/functions/types.d.ts +2 -0
- package/dist/lib/functions/types.d.ts.map +1 -0
- package/dist/lib/functions/types.js +1 -0
- package/dist/lib/functions/types.mjs +0 -0
- package/dist/lib/helpers.cjs +78 -0
- package/dist/lib/helpers.d.ts +13 -0
- package/dist/lib/helpers.d.ts.map +1 -0
- package/dist/lib/helpers.js +66 -0
- package/dist/lib/helpers.mjs +59 -0
- package/dist/lib/index.cjs +2857 -0
- package/dist/lib/index.d.ts +6 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +8 -0
- package/dist/lib/index.mjs +2836 -0
- package/dist/lib/maths/constants.cjs +70 -0
- package/dist/lib/maths/constants.d.ts +84 -0
- package/dist/lib/maths/constants.d.ts.map +1 -0
- package/dist/lib/maths/constants.js +79 -0
- package/dist/lib/maths/constants.mjs +50 -0
- package/dist/lib/maths/fn/advanced.cjs +231 -0
- package/dist/lib/maths/fn/advanced.d.ts +149 -0
- package/dist/lib/maths/fn/advanced.d.ts.map +1 -0
- package/dist/lib/maths/fn/advanced.js +264 -0
- package/dist/lib/maths/fn/advanced.mjs +208 -0
- package/dist/lib/maths/fn/basic.cjs +212 -0
- package/dist/lib/maths/fn/basic.d.ts +182 -0
- package/dist/lib/maths/fn/basic.d.ts.map +1 -0
- package/dist/lib/maths/fn/basic.js +343 -0
- package/dist/lib/maths/fn/basic.mjs +191 -0
- package/dist/lib/maths/fn/complex.cjs +268 -0
- package/dist/lib/maths/fn/complex.d.ts +153 -0
- package/dist/lib/maths/fn/complex.d.ts.map +1 -0
- package/dist/lib/maths/fn/complex.js +383 -0
- package/dist/lib/maths/fn/complex.mjs +247 -0
- package/dist/lib/maths/fn/index.cjs +877 -0
- package/dist/lib/maths/fn/index.d.ts +10 -0
- package/dist/lib/maths/fn/index.d.ts.map +1 -0
- package/dist/lib/maths/fn/index.js +9 -0
- package/dist/lib/maths/fn/index.mjs +855 -0
- package/dist/lib/maths/fn/trigo.cjs +179 -0
- package/dist/lib/maths/fn/trigo.d.ts +147 -0
- package/dist/lib/maths/fn/trigo.d.ts.map +1 -0
- package/dist/lib/maths/fn/trigo.js +227 -0
- package/dist/lib/maths/fn/trigo.mjs +156 -0
- package/dist/lib/maths/fn/vector.cjs +728 -0
- package/dist/lib/maths/fn/vector.d.ts +512 -0
- package/dist/lib/maths/fn/vector.d.ts.map +1 -0
- package/dist/lib/maths/fn/vector.js +1136 -0
- package/dist/lib/maths/fn/vector.mjs +707 -0
- package/dist/lib/maths/formatter.cjs +61 -0
- package/dist/lib/maths/formatter.d.ts +35 -0
- package/dist/lib/maths/formatter.d.ts.map +1 -0
- package/dist/lib/maths/formatter.js +56 -0
- package/dist/lib/maths/formatter.mjs +40 -0
- package/dist/lib/maths/guards.cjs +164 -0
- package/dist/lib/maths/guards.d.ts +166 -0
- package/dist/lib/maths/guards.d.ts.map +1 -0
- package/dist/lib/maths/guards.js +315 -0
- package/dist/lib/maths/guards.mjs +144 -0
- package/dist/lib/maths/index.cjs +1152 -0
- package/dist/lib/maths/index.d.ts +24 -0
- package/dist/lib/maths/index.d.ts.map +1 -0
- package/dist/lib/maths/index.js +29 -0
- package/dist/lib/maths/index.mjs +1130 -0
- package/dist/lib/maths/parser.cjs +75 -0
- package/dist/lib/maths/parser.d.ts +20 -0
- package/dist/lib/maths/parser.d.ts.map +1 -0
- package/dist/lib/maths/parser.js +78 -0
- package/dist/lib/maths/parser.mjs +54 -0
- package/dist/lib/maths/random.cjs +49 -0
- package/dist/lib/maths/random.d.ts +27 -0
- package/dist/lib/maths/random.d.ts.map +1 -0
- package/dist/lib/maths/random.js +49 -0
- package/dist/lib/maths/random.mjs +28 -0
- package/dist/lib/maths/types/advanced.cjs +18 -0
- package/dist/lib/maths/types/advanced.d.ts +357 -0
- package/dist/lib/maths/types/advanced.d.ts.map +1 -0
- package/dist/lib/maths/types/advanced.js +5 -0
- package/dist/lib/maths/types/advanced.mjs +0 -0
- package/dist/lib/maths/types/basic.cjs +18 -0
- package/dist/lib/maths/types/basic.d.ts +95 -0
- package/dist/lib/maths/types/basic.d.ts.map +1 -0
- package/dist/lib/maths/types/basic.js +5 -0
- package/dist/lib/maths/types/basic.mjs +0 -0
- package/dist/lib/maths/types/index.cjs +19 -0
- package/dist/lib/maths/types/index.d.ts +4 -0
- package/dist/lib/maths/types/index.d.ts.map +1 -0
- package/dist/lib/maths/types/index.js +3 -0
- package/dist/lib/maths/types/index.mjs +1 -0
- package/dist/lib/maths/types/negative.cjs +18 -0
- package/dist/lib/maths/types/negative.d.ts +51 -0
- package/dist/lib/maths/types/negative.d.ts.map +1 -0
- package/dist/lib/maths/types/negative.js +5 -0
- package/dist/lib/maths/types/negative.mjs +0 -0
- package/dist/lib/maths/types/operations.cjs +18 -0
- package/dist/lib/maths/types/operations.d.ts +188 -0
- package/dist/lib/maths/types/operations.d.ts.map +1 -0
- package/dist/lib/maths/types/operations.js +6 -0
- package/dist/lib/maths/types/operations.mjs +0 -0
- package/dist/lib/object/clone.cjs +88 -0
- package/dist/lib/object/clone.d.ts +46 -0
- package/dist/lib/object/clone.d.ts.map +1 -0
- package/dist/lib/object/clone.js +104 -0
- package/dist/lib/object/clone.mjs +65 -0
- package/dist/lib/object/diff.cjs +573 -0
- package/dist/lib/object/diff.d.ts +203 -0
- package/dist/lib/object/diff.d.ts.map +1 -0
- package/dist/lib/object/diff.js +805 -0
- package/dist/lib/object/diff.mjs +550 -0
- package/dist/lib/object/getter-setter.cjs +2351 -0
- package/dist/lib/object/getter-setter.d.ts +361 -0
- package/dist/lib/object/getter-setter.d.ts.map +1 -0
- package/dist/lib/object/getter-setter.js +1771 -0
- package/dist/lib/object/getter-setter.mjs +2330 -0
- package/dist/lib/object/index.cjs +3956 -0
- package/dist/lib/object/index.d.ts +13 -0
- package/dist/lib/object/index.d.ts.map +1 -0
- package/dist/lib/object/index.js +12 -0
- package/dist/lib/object/index.mjs +3936 -0
- package/dist/lib/object/merge.cjs +1029 -0
- package/dist/lib/object/merge.d.ts +93 -0
- package/dist/lib/object/merge.d.ts.map +1 -0
- package/dist/lib/object/merge.js +474 -0
- package/dist/lib/object/merge.mjs +1006 -0
- package/dist/lib/object/object.cjs +280 -0
- package/dist/lib/object/object.d.ts +128 -0
- package/dist/lib/object/object.d.ts.map +1 -0
- package/dist/lib/object/object.js +432 -0
- package/dist/lib/object/object.mjs +257 -0
- package/dist/lib/object/omit.cjs +2022 -0
- package/dist/lib/object/omit.d.ts +351 -0
- package/dist/lib/object/omit.d.ts.map +1 -0
- package/dist/lib/object/omit.js +656 -0
- package/dist/lib/object/omit.mjs +1999 -0
- package/dist/lib/object/reconcile.cjs +126 -0
- package/dist/lib/object/reconcile.d.ts +7 -0
- package/dist/lib/object/reconcile.d.ts.map +1 -0
- package/dist/lib/object/reconcile.js +122 -0
- package/dist/lib/object/reconcile.mjs +105 -0
- package/dist/lib/object/selector.cjs +303 -0
- package/dist/lib/object/selector.d.ts +50 -0
- package/dist/lib/object/selector.d.ts.map +1 -0
- package/dist/lib/object/selector.js +371 -0
- package/dist/lib/object/selector.mjs +282 -0
- package/dist/lib/object/sort.cjs +209 -0
- package/dist/lib/object/sort.d.ts +149 -0
- package/dist/lib/object/sort.d.ts.map +1 -0
- package/dist/lib/object/sort.js +298 -0
- package/dist/lib/object/sort.mjs +186 -0
- package/dist/lib/object/transform.cjs +2211 -0
- package/dist/lib/object/transform.d.ts +620 -0
- package/dist/lib/object/transform.d.ts.map +1 -0
- package/dist/lib/object/transform.js +1058 -0
- package/dist/lib/object/transform.mjs +2190 -0
- package/dist/lib/object/types.cjs +18 -0
- package/dist/lib/object/types.d.ts +250 -0
- package/dist/lib/object/types.d.ts.map +1 -0
- package/dist/lib/object/types.js +1 -0
- package/dist/lib/object/types.mjs +0 -0
- package/dist/lib/object/utils.cjs +326 -0
- package/dist/lib/object/utils.d.ts +165 -0
- package/dist/lib/object/utils.d.ts.map +1 -0
- package/dist/lib/object/utils.js +444 -0
- package/dist/lib/object/utils.mjs +305 -0
- package/dist/lib/primitive/boolean/boolean.cjs +407 -0
- package/dist/lib/primitive/boolean/boolean.d.ts +276 -0
- package/dist/lib/primitive/boolean/boolean.d.ts.map +1 -0
- package/dist/lib/primitive/boolean/boolean.js +615 -0
- package/dist/lib/primitive/boolean/boolean.mjs +386 -0
- package/dist/lib/primitive/boolean/index.cjs +382 -0
- package/dist/lib/primitive/boolean/index.d.ts +3 -0
- package/dist/lib/primitive/boolean/index.d.ts.map +1 -0
- package/dist/lib/primitive/boolean/index.js +2 -0
- package/dist/lib/primitive/boolean/index.mjs +359 -0
- package/dist/lib/primitive/boolean/types.cjs +18 -0
- package/dist/lib/primitive/boolean/types.d.ts +14 -0
- package/dist/lib/primitive/boolean/types.d.ts.map +1 -0
- package/dist/lib/primitive/boolean/types.js +1 -0
- package/dist/lib/primitive/boolean/types.mjs +0 -0
- package/dist/lib/primitive/date/date.cjs +1126 -0
- package/dist/lib/primitive/date/date.d.ts +641 -0
- package/dist/lib/primitive/date/date.d.ts.map +1 -0
- package/dist/lib/primitive/date/date.js +1998 -0
- package/dist/lib/primitive/date/date.mjs +1105 -0
- package/dist/lib/primitive/date/index.cjs +1128 -0
- package/dist/lib/primitive/date/index.d.ts +3 -0
- package/dist/lib/primitive/date/index.d.ts.map +1 -0
- package/dist/lib/primitive/date/index.js +2 -0
- package/dist/lib/primitive/date/index.mjs +1105 -0
- package/dist/lib/primitive/date/types.cjs +18 -0
- package/dist/lib/primitive/date/types.d.ts +205 -0
- package/dist/lib/primitive/date/types.d.ts.map +1 -0
- package/dist/lib/primitive/date/types.js +7 -0
- package/dist/lib/primitive/date/types.mjs +0 -0
- package/dist/lib/primitive/index.cjs +2338 -0
- package/dist/lib/primitive/index.d.ts +5 -0
- package/dist/lib/primitive/index.d.ts.map +1 -0
- package/dist/lib/primitive/index.js +4 -0
- package/dist/lib/primitive/index.mjs +2316 -0
- package/dist/lib/primitive/string/index.cjs +875 -0
- package/dist/lib/primitive/string/index.d.ts +3 -0
- package/dist/lib/primitive/string/index.d.ts.map +1 -0
- package/dist/lib/primitive/string/index.js +2 -0
- package/dist/lib/primitive/string/index.mjs +852 -0
- package/dist/lib/primitive/string/parser-2.cjs +543 -0
- package/dist/lib/primitive/string/parser-2.d.ts +17 -0
- package/dist/lib/primitive/string/parser-2.d.ts.map +1 -0
- package/dist/lib/primitive/string/parser-2.js +656 -0
- package/dist/lib/primitive/string/parser-2.mjs +522 -0
- package/dist/lib/primitive/string/parser.cjs +236 -0
- package/dist/lib/primitive/string/parser.d.ts +9 -0
- package/dist/lib/primitive/string/parser.d.ts.map +1 -0
- package/dist/lib/primitive/string/parser.js +775 -0
- package/dist/lib/primitive/string/parser.mjs +215 -0
- package/dist/lib/primitive/string/string.cjs +926 -0
- package/dist/lib/primitive/string/string.d.ts +535 -0
- package/dist/lib/primitive/string/string.d.ts.map +1 -0
- package/dist/lib/primitive/string/string.js +1301 -0
- package/dist/lib/primitive/string/string.mjs +903 -0
- package/dist/lib/primitive/string/types.cjs +18 -0
- package/dist/lib/primitive/string/types.d.ts +318 -0
- package/dist/lib/primitive/string/types.d.ts.map +1 -0
- package/dist/lib/primitive/string/types.js +5 -0
- package/dist/lib/primitive/string/types.mjs +0 -0
- package/dist/lib/primitive/types.cjs +18 -0
- package/dist/lib/primitive/types.d.ts +27 -0
- package/dist/lib/primitive/types.d.ts.map +1 -0
- package/dist/lib/primitive/types.js +1 -0
- package/dist/lib/primitive/types.mjs +0 -0
- package/dist/lib/url/index.cjs +327 -0
- package/dist/lib/url/index.d.ts +3 -0
- package/dist/lib/url/index.d.ts.map +1 -0
- package/dist/lib/url/index.js +2 -0
- package/dist/lib/url/index.mjs +304 -0
- package/dist/lib/url/parser.cjs +325 -0
- package/dist/lib/url/parser.d.ts +216 -0
- package/dist/lib/url/parser.d.ts.map +1 -0
- package/dist/lib/url/parser.js +488 -0
- package/dist/lib/url/parser.mjs +304 -0
- package/dist/lib/url/types.cjs +18 -0
- package/dist/lib/url/types.d.ts +18 -0
- package/dist/lib/url/types.d.ts.map +1 -0
- package/dist/lib/url/types.js +1 -0
- package/dist/lib/url/types.mjs +0 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/package.json +127 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/lib/maths/parser.ts
|
|
21
|
+
var parser_exports = {};
|
|
22
|
+
__export(parser_exports, {
|
|
23
|
+
parseIntSafe: () => parseIntSafe,
|
|
24
|
+
toNumber: () => toNumber
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(parser_exports);
|
|
27
|
+
var toNumber = (value, fallback) => {
|
|
28
|
+
if (typeof value === "number") {
|
|
29
|
+
return Number.isFinite(value) ? value : fallback !== void 0 ? fallback : NaN;
|
|
30
|
+
}
|
|
31
|
+
if (value == null) {
|
|
32
|
+
return fallback !== void 0 ? fallback : NaN;
|
|
33
|
+
}
|
|
34
|
+
if (typeof value === "boolean") {
|
|
35
|
+
return value ? 1 : 0;
|
|
36
|
+
}
|
|
37
|
+
if (typeof value === "string") {
|
|
38
|
+
const trimmed = value.trim();
|
|
39
|
+
if (trimmed === "") {
|
|
40
|
+
return fallback !== void 0 ? fallback : NaN;
|
|
41
|
+
}
|
|
42
|
+
const num2 = Number(trimmed);
|
|
43
|
+
return Number.isFinite(num2) ? num2 : fallback !== void 0 ? fallback : NaN;
|
|
44
|
+
}
|
|
45
|
+
const num = Number(value);
|
|
46
|
+
return Number.isFinite(num) ? num : fallback !== void 0 ? fallback : NaN;
|
|
47
|
+
};
|
|
48
|
+
var parseIntSafe = (value, radix = 10, fallback) => {
|
|
49
|
+
const trimmed = value.trim();
|
|
50
|
+
if (trimmed === "") {
|
|
51
|
+
return fallback !== void 0 ? fallback : NaN;
|
|
52
|
+
}
|
|
53
|
+
if (radix === 16) {
|
|
54
|
+
const hexRegex = /^(-?)0?x?([0-9a-fA-F]+)$/;
|
|
55
|
+
const match = trimmed.match(hexRegex);
|
|
56
|
+
if (match) {
|
|
57
|
+
const sign = match[1] ? -1 : 1;
|
|
58
|
+
const hexStr = match[2];
|
|
59
|
+
const parsed2 = parseInt(hexStr, 16);
|
|
60
|
+
return !isNaN(parsed2) ? sign * parsed2 : fallback !== void 0 ? fallback : NaN;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const parsed = parseInt(trimmed, radix);
|
|
64
|
+
if (isNaN(parsed)) {
|
|
65
|
+
return fallback !== void 0 ? fallback : NaN;
|
|
66
|
+
}
|
|
67
|
+
if (radix !== 16 && radix !== 10) {
|
|
68
|
+
const validDigits = "0123456789abcdefghijklmnopqrstuvwxyz".slice(0, radix);
|
|
69
|
+
const pattern = new RegExp(`^[-+]?[${validDigits}]+$`, "i");
|
|
70
|
+
if (!pattern.test(trimmed)) {
|
|
71
|
+
return fallback !== void 0 ? fallback : NaN;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return parsed;
|
|
75
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safely converts any value to a number with fallback
|
|
3
|
+
* @param value - The value to convert
|
|
4
|
+
* @param fallback - Fallback value if conversion fails (default: NaN)
|
|
5
|
+
* @returns The converted number or fallback
|
|
6
|
+
* @example
|
|
7
|
+
* toNumber("42") // 42
|
|
8
|
+
* toNumber("abc", 0) // 0
|
|
9
|
+
* toNumber(null, 100) // 100
|
|
10
|
+
*/
|
|
11
|
+
export declare const toNumber: <T = number>(value: unknown, fallback?: T) => number | T;
|
|
12
|
+
/**
|
|
13
|
+
* Parses a string to integer with validation
|
|
14
|
+
* Optimized: Regex check before parsing
|
|
15
|
+
* @param value - String to parse
|
|
16
|
+
* @param radix - Numeric base (default: 10)
|
|
17
|
+
* @returns Parsed integer or fallback
|
|
18
|
+
*/
|
|
19
|
+
export declare const parseIntSafe: <T = number>(value: string, radix?: number, fallback?: T) => number | T;
|
|
20
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/lib/maths/parser.ts"],"names":[],"mappings":"AACA;;;;;;;;;EASE;AACF,eAAO,MAAM,QAAQ,GAAI,CAAC,GAAG,MAAM,EACjC,OAAO,OAAO,EACd,WAAW,CAAC,KACX,MAAM,GAAG,CA+BX,CAAC;AAGF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,GAAG,MAAM,EACrC,OAAO,MAAM,EACb,QAAO,MAAW,EAClB,WAAW,CAAC,KACX,MAAM,GAAG,CAqCX,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safely converts any value to a number with fallback
|
|
3
|
+
* @param value - The value to convert
|
|
4
|
+
* @param fallback - Fallback value if conversion fails (default: NaN)
|
|
5
|
+
* @returns The converted number or fallback
|
|
6
|
+
* @example
|
|
7
|
+
* toNumber("42") // 42
|
|
8
|
+
* toNumber("abc", 0) // 0
|
|
9
|
+
* toNumber(null, 100) // 100
|
|
10
|
+
*/
|
|
11
|
+
export const toNumber = (value, fallback) => {
|
|
12
|
+
// Fast path: already a number
|
|
13
|
+
if (typeof value === 'number') {
|
|
14
|
+
return Number.isFinite(value) ? value : (fallback !== undefined ? fallback : NaN);
|
|
15
|
+
}
|
|
16
|
+
// Fast path: null/undefined
|
|
17
|
+
if (value == null) {
|
|
18
|
+
return fallback !== undefined ? fallback : NaN;
|
|
19
|
+
}
|
|
20
|
+
// Fast path: boolean
|
|
21
|
+
if (typeof value === 'boolean') {
|
|
22
|
+
return value ? 1 : 0;
|
|
23
|
+
}
|
|
24
|
+
// Fast path: string
|
|
25
|
+
if (typeof value === 'string') {
|
|
26
|
+
const trimmed = value.trim();
|
|
27
|
+
if (trimmed === '') {
|
|
28
|
+
return fallback !== undefined ? fallback : NaN;
|
|
29
|
+
}
|
|
30
|
+
// Use Number() for conversion (faster than parseFloat for our use case)
|
|
31
|
+
const num = Number(trimmed);
|
|
32
|
+
return Number.isFinite(num) ? num : (fallback !== undefined ? fallback : NaN);
|
|
33
|
+
}
|
|
34
|
+
// For other types, attempt conversion
|
|
35
|
+
const num = Number(value);
|
|
36
|
+
return Number.isFinite(num) ? num : (fallback !== undefined ? fallback : NaN);
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Parses a string to integer with validation
|
|
40
|
+
* Optimized: Regex check before parsing
|
|
41
|
+
* @param value - String to parse
|
|
42
|
+
* @param radix - Numeric base (default: 10)
|
|
43
|
+
* @returns Parsed integer or fallback
|
|
44
|
+
*/
|
|
45
|
+
export const parseIntSafe = (value, radix = 10, fallback) => {
|
|
46
|
+
const trimmed = value.trim();
|
|
47
|
+
if (trimmed === '') {
|
|
48
|
+
return fallback !== undefined ? fallback : NaN;
|
|
49
|
+
}
|
|
50
|
+
// Allow hex digits for radix 16
|
|
51
|
+
if (radix === 16) {
|
|
52
|
+
// Allow hex format: optional 0x prefix, then hex digits
|
|
53
|
+
const hexRegex = /^(-?)0?x?([0-9a-fA-F]+)$/;
|
|
54
|
+
const match = trimmed.match(hexRegex);
|
|
55
|
+
if (match) {
|
|
56
|
+
const sign = match[1] ? -1 : 1;
|
|
57
|
+
const hexStr = match[2];
|
|
58
|
+
const parsed = parseInt(hexStr, 16);
|
|
59
|
+
return !isNaN(parsed) ? sign * parsed : (fallback !== undefined ? fallback : NaN);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// For other radices, use standard parseInt with validation
|
|
63
|
+
const parsed = parseInt(trimmed, radix);
|
|
64
|
+
if (isNaN(parsed)) {
|
|
65
|
+
return fallback !== undefined ? fallback : NaN;
|
|
66
|
+
}
|
|
67
|
+
// Validate that the entire string was consumed for the given radix
|
|
68
|
+
// (except for hex which we already handled)
|
|
69
|
+
if (radix !== 16 && radix !== 10) {
|
|
70
|
+
// For other radices, ensure the string only contains valid digits
|
|
71
|
+
const validDigits = '0123456789abcdefghijklmnopqrstuvwxyz'.slice(0, radix);
|
|
72
|
+
const pattern = new RegExp(`^[-+]?[${validDigits}]+$`, 'i');
|
|
73
|
+
if (!pattern.test(trimmed)) {
|
|
74
|
+
return fallback !== undefined ? fallback : NaN;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return parsed;
|
|
78
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// src/lib/maths/parser.ts
|
|
2
|
+
var toNumber = (value, fallback) => {
|
|
3
|
+
if (typeof value === "number") {
|
|
4
|
+
return Number.isFinite(value) ? value : fallback !== void 0 ? fallback : NaN;
|
|
5
|
+
}
|
|
6
|
+
if (value == null) {
|
|
7
|
+
return fallback !== void 0 ? fallback : NaN;
|
|
8
|
+
}
|
|
9
|
+
if (typeof value === "boolean") {
|
|
10
|
+
return value ? 1 : 0;
|
|
11
|
+
}
|
|
12
|
+
if (typeof value === "string") {
|
|
13
|
+
const trimmed = value.trim();
|
|
14
|
+
if (trimmed === "") {
|
|
15
|
+
return fallback !== void 0 ? fallback : NaN;
|
|
16
|
+
}
|
|
17
|
+
const num2 = Number(trimmed);
|
|
18
|
+
return Number.isFinite(num2) ? num2 : fallback !== void 0 ? fallback : NaN;
|
|
19
|
+
}
|
|
20
|
+
const num = Number(value);
|
|
21
|
+
return Number.isFinite(num) ? num : fallback !== void 0 ? fallback : NaN;
|
|
22
|
+
};
|
|
23
|
+
var parseIntSafe = (value, radix = 10, fallback) => {
|
|
24
|
+
const trimmed = value.trim();
|
|
25
|
+
if (trimmed === "") {
|
|
26
|
+
return fallback !== void 0 ? fallback : NaN;
|
|
27
|
+
}
|
|
28
|
+
if (radix === 16) {
|
|
29
|
+
const hexRegex = /^(-?)0?x?([0-9a-fA-F]+)$/;
|
|
30
|
+
const match = trimmed.match(hexRegex);
|
|
31
|
+
if (match) {
|
|
32
|
+
const sign = match[1] ? -1 : 1;
|
|
33
|
+
const hexStr = match[2];
|
|
34
|
+
const parsed2 = parseInt(hexStr, 16);
|
|
35
|
+
return !isNaN(parsed2) ? sign * parsed2 : fallback !== void 0 ? fallback : NaN;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const parsed = parseInt(trimmed, radix);
|
|
39
|
+
if (isNaN(parsed)) {
|
|
40
|
+
return fallback !== void 0 ? fallback : NaN;
|
|
41
|
+
}
|
|
42
|
+
if (radix !== 16 && radix !== 10) {
|
|
43
|
+
const validDigits = "0123456789abcdefghijklmnopqrstuvwxyz".slice(0, radix);
|
|
44
|
+
const pattern = new RegExp(`^[-+]?[${validDigits}]+$`, "i");
|
|
45
|
+
if (!pattern.test(trimmed)) {
|
|
46
|
+
return fallback !== void 0 ? fallback : NaN;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return parsed;
|
|
50
|
+
};
|
|
51
|
+
export {
|
|
52
|
+
parseIntSafe,
|
|
53
|
+
toNumber
|
|
54
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/lib/maths/random.ts
|
|
21
|
+
var random_exports = {};
|
|
22
|
+
__export(random_exports, {
|
|
23
|
+
randomBool: () => randomBool,
|
|
24
|
+
randomFloat: () => randomFloat,
|
|
25
|
+
randomInt: () => randomInt
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(random_exports);
|
|
28
|
+
var randomInt = (min, max) => {
|
|
29
|
+
const [realMin, realMax] = min <= max ? [min, max] : [max, min];
|
|
30
|
+
if (typeof crypto !== "undefined" && crypto.getRandomValues) {
|
|
31
|
+
const range = realMax - realMin + 1;
|
|
32
|
+
const maxSafe = 4294967295;
|
|
33
|
+
const byteArray = new Uint32Array(1);
|
|
34
|
+
let randomValue;
|
|
35
|
+
do {
|
|
36
|
+
crypto.getRandomValues(byteArray);
|
|
37
|
+
randomValue = byteArray[0] / (maxSafe + 1);
|
|
38
|
+
} while (randomValue >= 1 - 1 % range / 1);
|
|
39
|
+
return Math.floor(randomValue * range) + realMin;
|
|
40
|
+
}
|
|
41
|
+
return Math.floor(Math.random() * (realMax - realMin + 1)) + realMin;
|
|
42
|
+
};
|
|
43
|
+
var randomFloat = (min, max) => {
|
|
44
|
+
const [realMin, realMax] = min <= max ? [min, max] : [max, min];
|
|
45
|
+
return Math.random() * (realMax - realMin) + realMin;
|
|
46
|
+
};
|
|
47
|
+
var randomBool = (probability = 0.5) => {
|
|
48
|
+
return Math.random() < probability;
|
|
49
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates a random integer between min and max (inclusive)
|
|
3
|
+
* @function randomInt
|
|
4
|
+
* @param min - Minimum value (inclusive)
|
|
5
|
+
* @param max - Maximum value (inclusive)
|
|
6
|
+
* @returns Random integer
|
|
7
|
+
* Optimized: Single Math.random call with proper scaling
|
|
8
|
+
*/
|
|
9
|
+
export declare const randomInt: (min: number, max: number) => number;
|
|
10
|
+
/**
|
|
11
|
+
* Generates a random float between min and max (exclusive of max)
|
|
12
|
+
* @function randomFloat
|
|
13
|
+
* @param min - Minimum value (inclusive)
|
|
14
|
+
* @param max - Maximum value (exclusive)
|
|
15
|
+
* @returns Random float
|
|
16
|
+
* Optimized: Single Math.random call
|
|
17
|
+
*/
|
|
18
|
+
export declare const randomFloat: (min: number, max: number) => number;
|
|
19
|
+
/**
|
|
20
|
+
* Generates a random boolean with optional probability
|
|
21
|
+
* @function randomBool
|
|
22
|
+
* @param probability - Probability of returning true (default: 0.5)
|
|
23
|
+
* @returns Random boolean
|
|
24
|
+
* Optimized: Single comparison
|
|
25
|
+
*/
|
|
26
|
+
export declare const randomBool: (probability?: number) => boolean;
|
|
27
|
+
//# sourceMappingURL=random.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../../src/lib/maths/random.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAsBpD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAGtD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,cAAa,MAAY,KAAG,OAEtD,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates a random integer between min and max (inclusive)
|
|
3
|
+
* @function randomInt
|
|
4
|
+
* @param min - Minimum value (inclusive)
|
|
5
|
+
* @param max - Maximum value (inclusive)
|
|
6
|
+
* @returns Random integer
|
|
7
|
+
* Optimized: Single Math.random call with proper scaling
|
|
8
|
+
*/
|
|
9
|
+
export const randomInt = (min, max) => {
|
|
10
|
+
// Ensure min <= max
|
|
11
|
+
const [realMin, realMax] = min <= max ? [min, max] : [max, min];
|
|
12
|
+
// Use crypto.getRandomValues if available for better randomness
|
|
13
|
+
if (typeof crypto !== 'undefined' && crypto.getRandomValues) {
|
|
14
|
+
const range = realMax - realMin + 1;
|
|
15
|
+
const maxSafe = 0xFFFFFFFF; // Max value for Uint32
|
|
16
|
+
const byteArray = new Uint32Array(1);
|
|
17
|
+
// Generate until we get a value in the safe range
|
|
18
|
+
let randomValue;
|
|
19
|
+
do {
|
|
20
|
+
crypto.getRandomValues(byteArray);
|
|
21
|
+
randomValue = byteArray[0] / (maxSafe + 1);
|
|
22
|
+
} while (randomValue >= 1 - (1 % range) / 1);
|
|
23
|
+
return Math.floor(randomValue * range) + realMin;
|
|
24
|
+
}
|
|
25
|
+
// Fallback to Math.random
|
|
26
|
+
return Math.floor(Math.random() * (realMax - realMin + 1)) + realMin;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Generates a random float between min and max (exclusive of max)
|
|
30
|
+
* @function randomFloat
|
|
31
|
+
* @param min - Minimum value (inclusive)
|
|
32
|
+
* @param max - Maximum value (exclusive)
|
|
33
|
+
* @returns Random float
|
|
34
|
+
* Optimized: Single Math.random call
|
|
35
|
+
*/
|
|
36
|
+
export const randomFloat = (min, max) => {
|
|
37
|
+
const [realMin, realMax] = min <= max ? [min, max] : [max, min];
|
|
38
|
+
return Math.random() * (realMax - realMin) + realMin;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Generates a random boolean with optional probability
|
|
42
|
+
* @function randomBool
|
|
43
|
+
* @param probability - Probability of returning true (default: 0.5)
|
|
44
|
+
* @returns Random boolean
|
|
45
|
+
* Optimized: Single comparison
|
|
46
|
+
*/
|
|
47
|
+
export const randomBool = (probability = 0.5) => {
|
|
48
|
+
return Math.random() < probability;
|
|
49
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// src/lib/maths/random.ts
|
|
2
|
+
var randomInt = (min, max) => {
|
|
3
|
+
const [realMin, realMax] = min <= max ? [min, max] : [max, min];
|
|
4
|
+
if (typeof crypto !== "undefined" && crypto.getRandomValues) {
|
|
5
|
+
const range = realMax - realMin + 1;
|
|
6
|
+
const maxSafe = 4294967295;
|
|
7
|
+
const byteArray = new Uint32Array(1);
|
|
8
|
+
let randomValue;
|
|
9
|
+
do {
|
|
10
|
+
crypto.getRandomValues(byteArray);
|
|
11
|
+
randomValue = byteArray[0] / (maxSafe + 1);
|
|
12
|
+
} while (randomValue >= 1 - 1 % range / 1);
|
|
13
|
+
return Math.floor(randomValue * range) + realMin;
|
|
14
|
+
}
|
|
15
|
+
return Math.floor(Math.random() * (realMax - realMin + 1)) + realMin;
|
|
16
|
+
};
|
|
17
|
+
var randomFloat = (min, max) => {
|
|
18
|
+
const [realMin, realMax] = min <= max ? [min, max] : [max, min];
|
|
19
|
+
return Math.random() * (realMax - realMin) + realMin;
|
|
20
|
+
};
|
|
21
|
+
var randomBool = (probability = 0.5) => {
|
|
22
|
+
return Math.random() < probability;
|
|
23
|
+
};
|
|
24
|
+
export {
|
|
25
|
+
randomBool,
|
|
26
|
+
randomFloat,
|
|
27
|
+
randomInt
|
|
28
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
|
|
16
|
+
// src/lib/maths/types/advanced.ts
|
|
17
|
+
var advanced_exports = {};
|
|
18
|
+
module.exports = __toCommonJS(advanced_exports);
|