From c6a0d26228a8bef4173c4d438e200b5edfb209d6 Mon Sep 17 00:00:00 2001 From: daisukidayo <91368591+Daaisukidayo@users.noreply.github.com> Date: Sun, 6 Sep 2026 21:14:14 +0200 Subject: [PATCH] Fixed array functions storing and comparing values as strings --- dist/functions/parsePrimitive.d.ts | 4 +++ dist/functions/parsePrimitive.d.ts.map | 1 + dist/functions/parsePrimitive.js | 33 +++++++++++++++++++++ dist/functions/parsePrimitive.js.map | 1 + dist/native/array/arrayIncludes.js | 4 +-- dist/native/array/arrayIncludes.js.map | 2 +- dist/native/array/arrayIndexOf.d.ts.map | 2 +- dist/native/array/arrayIndexOf.js | 6 +++- dist/native/array/arrayIndexOf.js.map | 2 +- dist/native/array/arrayLastIndexOf.d.ts.map | 2 +- dist/native/array/arrayLastIndexOf.js | 6 +++- dist/native/array/arrayLastIndexOf.js.map | 2 +- dist/native/array/arrayLoad.d.ts.map | 2 +- dist/native/array/arrayLoad.js | 6 +++- dist/native/array/arrayLoad.js.map | 2 +- dist/native/array/arrayPush.d.ts.map | 2 +- dist/native/array/arrayPush.js | 6 +++- dist/native/array/arrayPush.js.map | 2 +- dist/native/array/arraySplice.d.ts.map | 2 +- dist/native/array/arraySplice.js | 6 +++- dist/native/array/arraySplice.js.map | 2 +- dist/native/array/arrayUnshift.d.ts.map | 2 +- dist/native/array/arrayUnshift.js | 6 +++- dist/native/array/arrayUnshift.js.map | 2 +- src/functions/parsePrimitive.ts | 30 +++++++++++++++++++ src/native/array/arrayIncludes.ts | 4 +-- src/native/array/arrayIndexOf.ts | 5 ++-- src/native/array/arrayLastIndexOf.ts | 5 ++-- src/native/array/arrayLoad.ts | 5 ++-- src/native/array/arrayPush.ts | 5 ++-- src/native/array/arraySplice.ts | 5 ++-- src/native/array/arrayUnshift.ts | 5 ++-- 32 files changed, 134 insertions(+), 35 deletions(-) create mode 100644 dist/functions/parsePrimitive.d.ts create mode 100644 dist/functions/parsePrimitive.d.ts.map create mode 100644 dist/functions/parsePrimitive.js create mode 100644 dist/functions/parsePrimitive.js.map create mode 100644 src/functions/parsePrimitive.ts diff --git a/dist/functions/parsePrimitive.d.ts b/dist/functions/parsePrimitive.d.ts new file mode 100644 index 0000000000..1598cf3836 --- /dev/null +++ b/dist/functions/parsePrimitive.d.ts @@ -0,0 +1,4 @@ +export declare const PrimitiveNumberRegex: RegExp; +export declare const QuotedStringRegex: RegExp; +export default function parsePrimitive(str: unknown): unknown; +//# sourceMappingURL=parsePrimitive.d.ts.map \ No newline at end of file diff --git a/dist/functions/parsePrimitive.d.ts.map b/dist/functions/parsePrimitive.d.ts.map new file mode 100644 index 0000000000..476c254974 --- /dev/null +++ b/dist/functions/parsePrimitive.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"parsePrimitive.d.ts","sourceRoot":"","sources":["../../src/functions/parsePrimitive.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB,QAAkD,CAAA;AAEnF,eAAO,MAAM,iBAAiB,QAAc,CAAA;AAE5C,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,GAAG,EAAE,OAAO,WAoBlD"} \ No newline at end of file diff --git a/dist/functions/parsePrimitive.js b/dist/functions/parsePrimitive.js new file mode 100644 index 0000000000..d8139b4a17 --- /dev/null +++ b/dist/functions/parsePrimitive.js @@ -0,0 +1,33 @@ +"use strict"; +/* +* SPDX-License-Identifier: LGPL-3.0-or-later +* Copyright © 2026 BotForge +*/ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.QuotedStringRegex = exports.PrimitiveNumberRegex = void 0; +exports.default = parsePrimitive; +exports.PrimitiveNumberRegex = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/; +exports.QuotedStringRegex = /^"[^"]*"$/; +function parsePrimitive(str) { + if (typeof str !== "string") + return str; + if (exports.QuotedStringRegex.test(str)) { + try { + return JSON.parse(str); + } + catch (error) { + return str.slice(1, -1); + } + } + if (str === "true") + return true; + else if (str === "false") + return false; + if (exports.PrimitiveNumberRegex.test(str)) { + const n = Number(str); + if (Number.isFinite(n) && (!Number.isInteger(n) || Number.isSafeInteger(n))) + return n; + } + return str; +} +//# sourceMappingURL=parsePrimitive.js.map \ No newline at end of file diff --git a/dist/functions/parsePrimitive.js.map b/dist/functions/parsePrimitive.js.map new file mode 100644 index 0000000000..ebbf9710ca --- /dev/null +++ b/dist/functions/parsePrimitive.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parsePrimitive.js","sourceRoot":"","sources":["../../src/functions/parsePrimitive.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;AAMF,iCAoBC;AAxBY,QAAA,oBAAoB,GAAG,+CAA+C,CAAA;AAEtE,QAAA,iBAAiB,GAAG,WAAW,CAAA;AAE5C,SAAwB,cAAc,CAAC,GAAY;IAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IAEvC,IAAI,yBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAW,CAAA;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC3B,CAAC;IACL,CAAC;IAED,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;SAC1B,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,KAAK,CAAA;IAEtC,IAAI,4BAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACrB,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAA;IACzF,CAAC;IAED,OAAO,GAAG,CAAA;AACd,CAAC"} \ No newline at end of file diff --git a/dist/native/array/arrayIncludes.js b/dist/native/array/arrayIncludes.js index 20a458c329..54b67a4257 100644 --- a/dist/native/array/arrayIncludes.js +++ b/dist/native/array/arrayIncludes.js @@ -8,7 +8,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const structures_1 = require("../../structures"); -const parseJSON_1 = __importDefault(require("../../functions/parseJSON")); +const parsePrimitive_1 = __importDefault(require("../../functions/parsePrimitive")); exports.default = new structures_1.NativeFunction({ name: "$arrayIncludes", version: "1.0.0", @@ -34,7 +34,7 @@ exports.default = new structures_1.NativeFunction({ output: structures_1.ArgType.Boolean, execute(ctx, [name, value]) { const arr = ctx.getEnvironmentKey(name); - return this.success(Array.isArray(arr) ? arr.includes((0, parseJSON_1.default)(value)) : false); + return this.success(Array.isArray(arr) ? arr.includes((0, parsePrimitive_1.default)(value)) : false); }, }); //# sourceMappingURL=arrayIncludes.js.map \ No newline at end of file diff --git a/dist/native/array/arrayIncludes.js.map b/dist/native/array/arrayIncludes.js.map index 73a99d4890..80be9b609e 100644 --- a/dist/native/array/arrayIncludes.js.map +++ b/dist/native/array/arrayIncludes.js.map @@ -1 +1 @@ -{"version":3,"file":"arrayIncludes.js","sourceRoot":"","sources":["../../../src/native/array/arrayIncludes.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;;;AAEF,iDAA0D;AAC1D,0EAAiD;AAEjD,kBAAe,IAAI,2BAAc,CAAC;IAC9B,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,2CAA2C;IACxD,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE;QACF;YACI,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,wBAAwB;YACrC,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,oBAAO,CAAC,MAAM;YACpB,QAAQ,EAAE,IAAI;SACjB;KACJ;IACD,MAAM,EAAE,oBAAO,CAAC,OAAO;IACvB,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACpF,CAAC;CACJ,CAAC,CAAA"} \ No newline at end of file +{"version":3,"file":"arrayIncludes.js","sourceRoot":"","sources":["../../../src/native/array/arrayIncludes.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;;;AAEF,iDAA0D;AAC1D,oFAA2D;AAE3D,kBAAe,IAAI,2BAAc,CAAC;IAC9B,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,2CAA2C;IACxD,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE;QACF;YACI,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,wBAAwB;YACrC,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,oBAAO,CAAC,MAAM;YACpB,QAAQ,EAAE,IAAI;SACjB;KACJ;IACD,MAAM,EAAE,oBAAO,CAAC,OAAO;IACvB,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAA,wBAAc,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACzF,CAAC;CACJ,CAAC,CAAA"} \ No newline at end of file diff --git a/dist/native/array/arrayIndexOf.d.ts.map b/dist/native/array/arrayIndexOf.d.ts.map index c73718280b..5083e1e61b 100644 --- a/dist/native/array/arrayIndexOf.d.ts.map +++ b/dist/native/array/arrayIndexOf.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"arrayIndexOf.d.ts","sourceRoot":"","sources":["../../../src/native/array/arrayIndexOf.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAU,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;AAElE,wBA2BE"} \ No newline at end of file +{"version":3,"file":"arrayIndexOf.d.ts","sourceRoot":"","sources":["../../../src/native/array/arrayIndexOf.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;AAG1D,wBA2BE"} \ No newline at end of file diff --git a/dist/native/array/arrayIndexOf.js b/dist/native/array/arrayIndexOf.js index 9dde2325b7..57871656ed 100644 --- a/dist/native/array/arrayIndexOf.js +++ b/dist/native/array/arrayIndexOf.js @@ -3,8 +3,12 @@ * SPDX-License-Identifier: LGPL-3.0-or-later * Copyright © 2026 BotForge */ +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); const structures_1 = require("../../structures"); +const parsePrimitive_1 = __importDefault(require("../../functions/parsePrimitive")); exports.default = new structures_1.NativeFunction({ name: "$arrayIndexOf", version: "1.0.0", @@ -30,7 +34,7 @@ exports.default = new structures_1.NativeFunction({ brackets: true, execute(ctx, [name, value]) { const arr = ctx.getEnvironmentKey(name); - return this.success(Array.isArray(arr) ? arr.indexOf(value) : -1); + return this.success(Array.isArray(arr) ? arr.indexOf((0, parsePrimitive_1.default)(value)) : -1); }, }); //# sourceMappingURL=arrayIndexOf.js.map \ No newline at end of file diff --git a/dist/native/array/arrayIndexOf.js.map b/dist/native/array/arrayIndexOf.js.map index 98adf84a53..3a3dec7a91 100644 --- a/dist/native/array/arrayIndexOf.js.map +++ b/dist/native/array/arrayIndexOf.js.map @@ -1 +1 @@ -{"version":3,"file":"arrayIndexOf.js","sourceRoot":"","sources":["../../../src/native/array/arrayIndexOf.ts"],"names":[],"mappings":";AAAA;;;EAGE;;AAEF,iDAAkE;AAElE,kBAAe,IAAI,2BAAc,CAAC;IAC9B,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,sDAAsD;IACnE,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,oBAAO,CAAC,MAAM;IACtB,IAAI,EAAE;QACF;YACI,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,kCAAkC;YAC/C,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;KACJ;IACD,QAAQ,EAAE,IAAI;IACd,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,CAAC;CACJ,CAAC,CAAA"} \ No newline at end of file +{"version":3,"file":"arrayIndexOf.js","sourceRoot":"","sources":["../../../src/native/array/arrayIndexOf.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;;;AAEF,iDAA0D;AAC1D,oFAA2D;AAE3D,kBAAe,IAAI,2BAAc,CAAC;IAC9B,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,sDAAsD;IACnE,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,oBAAO,CAAC,MAAM;IACtB,IAAI,EAAE;QACF;YACI,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,kCAAkC;YAC/C,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;KACJ;IACD,QAAQ,EAAE,IAAI;IACd,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAA,wBAAc,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrF,CAAC;CACJ,CAAC,CAAA"} \ No newline at end of file diff --git a/dist/native/array/arrayLastIndexOf.d.ts.map b/dist/native/array/arrayLastIndexOf.d.ts.map index 0bff96fa56..ef3441fb5e 100644 --- a/dist/native/array/arrayLastIndexOf.d.ts.map +++ b/dist/native/array/arrayLastIndexOf.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"arrayLastIndexOf.d.ts","sourceRoot":"","sources":["../../../src/native/array/arrayLastIndexOf.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAU,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;AAElE,wBA2BE"} \ No newline at end of file +{"version":3,"file":"arrayLastIndexOf.d.ts","sourceRoot":"","sources":["../../../src/native/array/arrayLastIndexOf.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;AAG1D,wBA2BE"} \ No newline at end of file diff --git a/dist/native/array/arrayLastIndexOf.js b/dist/native/array/arrayLastIndexOf.js index 4971810f84..4287b171c2 100644 --- a/dist/native/array/arrayLastIndexOf.js +++ b/dist/native/array/arrayLastIndexOf.js @@ -3,8 +3,12 @@ * SPDX-License-Identifier: LGPL-3.0-or-later * Copyright © 2026 BotForge */ +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); const structures_1 = require("../../structures"); +const parsePrimitive_1 = __importDefault(require("../../functions/parsePrimitive")); exports.default = new structures_1.NativeFunction({ name: "$arrayLastIndexOf", version: "1.5.0", @@ -30,7 +34,7 @@ exports.default = new structures_1.NativeFunction({ brackets: true, execute(ctx, [name, value]) { const arr = ctx.getEnvironmentKey(name); - return this.success(Array.isArray(arr) ? arr.lastIndexOf(value) : -1); + return this.success(Array.isArray(arr) ? arr.lastIndexOf((0, parsePrimitive_1.default)(value)) : -1); }, }); //# sourceMappingURL=arrayLastIndexOf.js.map \ No newline at end of file diff --git a/dist/native/array/arrayLastIndexOf.js.map b/dist/native/array/arrayLastIndexOf.js.map index 968c6972c0..c9db2f081e 100644 --- a/dist/native/array/arrayLastIndexOf.js.map +++ b/dist/native/array/arrayLastIndexOf.js.map @@ -1 +1 @@ -{"version":3,"file":"arrayLastIndexOf.js","sourceRoot":"","sources":["../../../src/native/array/arrayLastIndexOf.ts"],"names":[],"mappings":";AAAA;;;EAGE;;AAEF,iDAAkE;AAElE,kBAAe,IAAI,2BAAc,CAAC;IAC9B,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,qDAAqD;IAClE,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,oBAAO,CAAC,MAAM;IACtB,IAAI,EAAE;QACF;YACI,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,uCAAuC;YACpD,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;KACJ;IACD,QAAQ,EAAE,IAAI;IACd,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzE,CAAC;CACJ,CAAC,CAAA"} \ No newline at end of file +{"version":3,"file":"arrayLastIndexOf.js","sourceRoot":"","sources":["../../../src/native/array/arrayLastIndexOf.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;;;AAEF,iDAA0D;AAC1D,oFAA2D;AAE3D,kBAAe,IAAI,2BAAc,CAAC;IAC9B,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,qDAAqD;IAClE,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,oBAAO,CAAC,MAAM;IACtB,IAAI,EAAE;QACF;YACI,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,uCAAuC;YACpD,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;KACJ;IACD,QAAQ,EAAE,IAAI;IACd,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAA,wBAAc,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzF,CAAC;CACJ,CAAC,CAAA"} \ No newline at end of file diff --git a/dist/native/array/arrayLoad.d.ts.map b/dist/native/array/arrayLoad.d.ts.map index 6f22494544..eab1419957 100644 --- a/dist/native/array/arrayLoad.d.ts.map +++ b/dist/native/array/arrayLoad.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"arrayLoad.d.ts","sourceRoot":"","sources":["../../../src/native/array/arrayLoad.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAU,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;;;;;;AAElE,wBAgCE"} \ No newline at end of file +{"version":3,"file":"arrayLoad.d.ts","sourceRoot":"","sources":["../../../src/native/array/arrayLoad.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;;;;;;AAG1D,wBAgCE"} \ No newline at end of file diff --git a/dist/native/array/arrayLoad.js b/dist/native/array/arrayLoad.js index bed7dc522d..5f4b85a4be 100644 --- a/dist/native/array/arrayLoad.js +++ b/dist/native/array/arrayLoad.js @@ -3,8 +3,12 @@ * SPDX-License-Identifier: LGPL-3.0-or-later * Copyright © 2026 BotForge */ +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); const structures_1 = require("../../structures"); +const parsePrimitive_1 = __importDefault(require("../../functions/parsePrimitive")); exports.default = new structures_1.NativeFunction({ name: "$arrayLoad", version: "1.0.0", @@ -34,7 +38,7 @@ exports.default = new structures_1.NativeFunction({ unwrap: true, brackets: true, execute(ctx, [name, sep, values]) { - ctx.setEnvironmentKey(name, sep === null ? [] : values.join(";").split(sep)); + ctx.setEnvironmentKey(name, sep === null ? [] : values.join(";").split(sep).map(parsePrimitive_1.default)); return this.success(); }, }); diff --git a/dist/native/array/arrayLoad.js.map b/dist/native/array/arrayLoad.js.map index c68ef78006..88e5894393 100644 --- a/dist/native/array/arrayLoad.js.map +++ b/dist/native/array/arrayLoad.js.map @@ -1 +1 @@ -{"version":3,"file":"arrayLoad.js","sourceRoot":"","sources":["../../../src/native/array/arrayLoad.ts"],"names":[],"mappings":";AAAA;;;EAGE;;AAEF,iDAAkE;AAElE,kBAAe,IAAI,2BAAc,CAAC;IAC9B,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,2CAA2C;IACxD,IAAI,EAAE;QACF;YACI,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,yCAAyC;YACtD,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,6CAA6C;YAC1D,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,oBAAO,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK;SAClB;QACD;YACI,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2BAA2B;YACxC,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;KACJ;IACD,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC;QAC5B,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5E,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;CACJ,CAAC,CAAA"} \ No newline at end of file +{"version":3,"file":"arrayLoad.js","sourceRoot":"","sources":["../../../src/native/array/arrayLoad.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;;;AAEF,iDAA0D;AAC1D,oFAA2D;AAE3D,kBAAe,IAAI,2BAAc,CAAC;IAC9B,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,2CAA2C;IACxD,IAAI,EAAE;QACF;YACI,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,yCAAyC;YACtD,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,6CAA6C;YAC1D,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,oBAAO,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK;SAClB;QACD;YACI,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2BAA2B;YACxC,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;KACJ;IACD,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC;QAC5B,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,wBAAc,CAAC,CAAC,CAAA;QAChG,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;CACJ,CAAC,CAAA"} \ No newline at end of file diff --git a/dist/native/array/arrayPush.d.ts.map b/dist/native/array/arrayPush.d.ts.map index 148c21aff0..3b79de4d10 100644 --- a/dist/native/array/arrayPush.d.ts.map +++ b/dist/native/array/arrayPush.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"arrayPush.d.ts","sourceRoot":"","sources":["../../../src/native/array/arrayPush.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAU,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;AAElE,wBA2BE"} \ No newline at end of file +{"version":3,"file":"arrayPush.d.ts","sourceRoot":"","sources":["../../../src/native/array/arrayPush.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;AAG1D,wBA2BE"} \ No newline at end of file diff --git a/dist/native/array/arrayPush.js b/dist/native/array/arrayPush.js index 12f79acf32..461249f07d 100644 --- a/dist/native/array/arrayPush.js +++ b/dist/native/array/arrayPush.js @@ -3,8 +3,12 @@ * SPDX-License-Identifier: LGPL-3.0-or-later * Copyright © 2026 BotForge */ +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); const structures_1 = require("../../structures"); +const parsePrimitive_1 = __importDefault(require("../../functions/parsePrimitive")); exports.default = new structures_1.NativeFunction({ name: "$arrayPush", version: "1.0.0", @@ -30,7 +34,7 @@ exports.default = new structures_1.NativeFunction({ execute(ctx, [name, values]) { const arr = ctx.getEnvironmentKey(name); if (Array.isArray(arr)) - arr.push(...values); + arr.push(...values.map(parsePrimitive_1.default)); return this.success(); }, }); diff --git a/dist/native/array/arrayPush.js.map b/dist/native/array/arrayPush.js.map index 86b6baa268..7f63146497 100644 --- a/dist/native/array/arrayPush.js.map +++ b/dist/native/array/arrayPush.js.map @@ -1 +1 @@ -{"version":3,"file":"arrayPush.js","sourceRoot":"","sources":["../../../src/native/array/arrayPush.ts"],"names":[],"mappings":";AAAA;;;EAGE;;AAEF,iDAAkE;AAElE,kBAAe,IAAI,2BAAc,CAAC;IAC9B,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,gCAAgC;IAC7C,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE;QACF;YACI,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,8CAA8C;YAC3D,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;KACJ;IACD,QAAQ,EAAE,IAAI;IACd,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;CACJ,CAAC,CAAA"} \ No newline at end of file +{"version":3,"file":"arrayPush.js","sourceRoot":"","sources":["../../../src/native/array/arrayPush.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;;;AAEF,iDAA0D;AAC1D,oFAA2D;AAE3D,kBAAe,IAAI,2BAAc,CAAC;IAC9B,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,gCAAgC;IAC7C,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE;QACF;YACI,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,8CAA8C;YAC3D,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;KACJ;IACD,QAAQ,EAAE,IAAI;IACd,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,wBAAc,CAAC,CAAC,CAAA;QAC/D,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;CACJ,CAAC,CAAA"} \ No newline at end of file diff --git a/dist/native/array/arraySplice.d.ts.map b/dist/native/array/arraySplice.d.ts.map index 8aafab520e..f039abb433 100644 --- a/dist/native/array/arraySplice.d.ts.map +++ b/dist/native/array/arraySplice.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"arraySplice.d.ts","sourceRoot":"","sources":["../../../src/native/array/arraySplice.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAU,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAElE,wBAyCE"} \ No newline at end of file +{"version":3,"file":"arraySplice.d.ts","sourceRoot":"","sources":["../../../src/native/array/arraySplice.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAG1D,wBAyCE"} \ No newline at end of file diff --git a/dist/native/array/arraySplice.js b/dist/native/array/arraySplice.js index a11179a179..384d4cf1a8 100644 --- a/dist/native/array/arraySplice.js +++ b/dist/native/array/arraySplice.js @@ -3,8 +3,12 @@ * SPDX-License-Identifier: LGPL-3.0-or-later * Copyright © 2026 BotForge */ +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); const structures_1 = require("../../structures"); +const parsePrimitive_1 = __importDefault(require("../../functions/parsePrimitive")); exports.default = new structures_1.NativeFunction({ name: "$arraySplice", version: "1.0.0", @@ -44,7 +48,7 @@ exports.default = new structures_1.NativeFunction({ execute(ctx, [name, index, count, elements]) { const arr = ctx.getEnvironmentKey(name); if (Array.isArray(arr)) - return this.successJSON(arr.splice(index, count, ...elements)); + return this.successJSON(arr.splice(index, count, ...elements.map(parsePrimitive_1.default))); return this.success(); }, }); diff --git a/dist/native/array/arraySplice.js.map b/dist/native/array/arraySplice.js.map index 2f5287d770..2b939c668c 100644 --- a/dist/native/array/arraySplice.js.map +++ b/dist/native/array/arraySplice.js.map @@ -1 +1 @@ -{"version":3,"file":"arraySplice.js","sourceRoot":"","sources":["../../../src/native/array/arraySplice.ts"],"names":[],"mappings":";AAAA;;;EAGE;;AAEF,iDAAkE;AAElE,kBAAe,IAAI,2BAAc,CAAC;IAC9B,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,oEAAoE;IACjF,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,oBAAO,CAAC,IAAI;IACpB,IAAI,EAAE;QACF;YACI,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,iBAAiB;YAC9B,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,+BAA+B;YAC5C,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,+CAA+C;YAC5D,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;KACJ;IACD,QAAQ,EAAE,IAAI;IACd,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;QACvC,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAA;QACtF,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;CACJ,CAAC,CAAA"} \ No newline at end of file +{"version":3,"file":"arraySplice.js","sourceRoot":"","sources":["../../../src/native/array/arraySplice.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;;;AAEF,iDAA0D;AAC1D,oFAA2D;AAE3D,kBAAe,IAAI,2BAAc,CAAC;IAC9B,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,oEAAoE;IACjF,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,oBAAO,CAAC,IAAI;IACpB,IAAI,EAAE;QACF;YACI,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,iBAAiB;YAC9B,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,+BAA+B;YAC5C,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,+CAA+C;YAC5D,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;KACJ;IACD,QAAQ,EAAE,IAAI;IACd,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;QACvC,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,wBAAc,CAAC,CAAC,CAAC,CAAA;QAC1G,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;CACJ,CAAC,CAAA"} \ No newline at end of file diff --git a/dist/native/array/arrayUnshift.d.ts.map b/dist/native/array/arrayUnshift.d.ts.map index a38aa4737b..2b832a5c6d 100644 --- a/dist/native/array/arrayUnshift.d.ts.map +++ b/dist/native/array/arrayUnshift.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"arrayUnshift.d.ts","sourceRoot":"","sources":["../../../src/native/array/arrayUnshift.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAU,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;AAElE,wBA2BE"} \ No newline at end of file +{"version":3,"file":"arrayUnshift.d.ts","sourceRoot":"","sources":["../../../src/native/array/arrayUnshift.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;AAG1D,wBA2BE"} \ No newline at end of file diff --git a/dist/native/array/arrayUnshift.js b/dist/native/array/arrayUnshift.js index 9c3e6f52c5..306a8f6b49 100644 --- a/dist/native/array/arrayUnshift.js +++ b/dist/native/array/arrayUnshift.js @@ -3,8 +3,12 @@ * SPDX-License-Identifier: LGPL-3.0-or-later * Copyright © 2026 BotForge */ +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); const structures_1 = require("../../structures"); +const parsePrimitive_1 = __importDefault(require("../../functions/parsePrimitive")); exports.default = new structures_1.NativeFunction({ name: "$arrayUnshift", version: "1.0.0", @@ -30,7 +34,7 @@ exports.default = new structures_1.NativeFunction({ execute(ctx, [name, values]) { const arr = ctx.getEnvironmentKey(name); if (Array.isArray(arr)) - arr.unshift(...values); + arr.unshift(...values.map(parsePrimitive_1.default)); return this.success(); }, }); diff --git a/dist/native/array/arrayUnshift.js.map b/dist/native/array/arrayUnshift.js.map index b708ebddb2..b782043104 100644 --- a/dist/native/array/arrayUnshift.js.map +++ b/dist/native/array/arrayUnshift.js.map @@ -1 +1 @@ -{"version":3,"file":"arrayUnshift.js","sourceRoot":"","sources":["../../../src/native/array/arrayUnshift.ts"],"names":[],"mappings":";AAAA;;;EAGE;;AAEF,iDAAkE;AAElE,kBAAe,IAAI,2BAAc,CAAC;IAC9B,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,4CAA4C;IACzD,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE;QACF;YACI,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gDAAgD;YAC7D,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;KACJ;IACD,QAAQ,EAAE,IAAI;IACd,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;CACJ,CAAC,CAAA"} \ No newline at end of file +{"version":3,"file":"arrayUnshift.js","sourceRoot":"","sources":["../../../src/native/array/arrayUnshift.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;;;AAEF,iDAA0D;AAC1D,oFAA2D;AAE3D,kBAAe,IAAI,2BAAc,CAAC;IAC9B,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,4CAA4C;IACzD,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE;QACF;YACI,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;QACD;YACI,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gDAAgD;YAC7D,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,oBAAO,CAAC,MAAM;SACvB;KACJ;IACD,QAAQ,EAAE,IAAI;IACd,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,wBAAc,CAAC,CAAC,CAAA;QAClE,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;CACJ,CAAC,CAAA"} \ No newline at end of file diff --git a/src/functions/parsePrimitive.ts b/src/functions/parsePrimitive.ts new file mode 100644 index 0000000000..69e80183a8 --- /dev/null +++ b/src/functions/parsePrimitive.ts @@ -0,0 +1,30 @@ +/* +* SPDX-License-Identifier: LGPL-3.0-or-later +* Copyright © 2026 BotForge +*/ + +export const PrimitiveNumberRegex = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/ + +export const QuotedStringRegex = /^"[^"]*"$/ + +export default function parsePrimitive(str: unknown) { + if (typeof str !== "string") return str + + if (QuotedStringRegex.test(str)) { + try { + return JSON.parse(str) as string + } catch (error) { + return str.slice(1, -1) + } + } + + if (str === "true") return true + else if (str === "false") return false + + if (PrimitiveNumberRegex.test(str)) { + const n = Number(str) + if (Number.isFinite(n) && (!Number.isInteger(n) || Number.isSafeInteger(n))) return n + } + + return str +} \ No newline at end of file diff --git a/src/native/array/arrayIncludes.ts b/src/native/array/arrayIncludes.ts index 9f14cc408d..d050ad8fd6 100644 --- a/src/native/array/arrayIncludes.ts +++ b/src/native/array/arrayIncludes.ts @@ -4,7 +4,7 @@ */ import { ArgType, NativeFunction } from "../../structures" -import parseJSON from "../../functions/parseJSON" +import parsePrimitive from "../../functions/parsePrimitive" export default new NativeFunction({ name: "$arrayIncludes", @@ -31,6 +31,6 @@ export default new NativeFunction({ output: ArgType.Boolean, execute(ctx, [name, value]) { const arr = ctx.getEnvironmentKey(name) - return this.success(Array.isArray(arr) ? arr.includes(parseJSON(value)) : false) + return this.success(Array.isArray(arr) ? arr.includes(parsePrimitive(value)) : false) }, }) diff --git a/src/native/array/arrayIndexOf.ts b/src/native/array/arrayIndexOf.ts index 9e8a16c331..7d9ce0c3a0 100644 --- a/src/native/array/arrayIndexOf.ts +++ b/src/native/array/arrayIndexOf.ts @@ -3,7 +3,8 @@ * Copyright © 2026 BotForge */ -import { ArgType, NativeFunction, Return } from "../../structures" +import { ArgType, NativeFunction } from "../../structures" +import parsePrimitive from "../../functions/parsePrimitive" export default new NativeFunction({ name: "$arrayIndexOf", @@ -30,6 +31,6 @@ export default new NativeFunction({ brackets: true, execute(ctx, [name, value]) { const arr = ctx.getEnvironmentKey(name) - return this.success(Array.isArray(arr) ? arr.indexOf(value) : -1) + return this.success(Array.isArray(arr) ? arr.indexOf(parsePrimitive(value)) : -1) }, }) diff --git a/src/native/array/arrayLastIndexOf.ts b/src/native/array/arrayLastIndexOf.ts index e609d5ad85..216b0123f0 100644 --- a/src/native/array/arrayLastIndexOf.ts +++ b/src/native/array/arrayLastIndexOf.ts @@ -3,7 +3,8 @@ * Copyright © 2026 BotForge */ -import { ArgType, NativeFunction, Return } from "../../structures" +import { ArgType, NativeFunction } from "../../structures" +import parsePrimitive from "../../functions/parsePrimitive" export default new NativeFunction({ name: "$arrayLastIndexOf", @@ -30,6 +31,6 @@ export default new NativeFunction({ brackets: true, execute(ctx, [name, value]) { const arr = ctx.getEnvironmentKey(name) - return this.success(Array.isArray(arr) ? arr.lastIndexOf(value) : -1) + return this.success(Array.isArray(arr) ? arr.lastIndexOf(parsePrimitive(value)) : -1) }, }) \ No newline at end of file diff --git a/src/native/array/arrayLoad.ts b/src/native/array/arrayLoad.ts index 75e05e1a22..b0b5059cc8 100644 --- a/src/native/array/arrayLoad.ts +++ b/src/native/array/arrayLoad.ts @@ -3,7 +3,8 @@ * Copyright © 2026 BotForge */ -import { ArgType, NativeFunction, Return } from "../../structures" +import { ArgType, NativeFunction } from "../../structures" +import parsePrimitive from "../../functions/parsePrimitive" export default new NativeFunction({ name: "$arrayLoad", @@ -34,7 +35,7 @@ export default new NativeFunction({ unwrap: true, brackets: true, execute(ctx, [name, sep, values]) { - ctx.setEnvironmentKey(name, sep === null ? [] : values.join(";").split(sep)) + ctx.setEnvironmentKey(name, sep === null ? [] : values.join(";").split(sep).map(parsePrimitive)) return this.success() }, }) diff --git a/src/native/array/arrayPush.ts b/src/native/array/arrayPush.ts index 871106cb8d..a34642ff86 100644 --- a/src/native/array/arrayPush.ts +++ b/src/native/array/arrayPush.ts @@ -3,7 +3,8 @@ * Copyright © 2026 BotForge */ -import { ArgType, NativeFunction, Return } from "../../structures" +import { ArgType, NativeFunction } from "../../structures" +import parsePrimitive from "../../functions/parsePrimitive" export default new NativeFunction({ name: "$arrayPush", @@ -29,7 +30,7 @@ export default new NativeFunction({ brackets: true, execute(ctx, [name, values]) { const arr = ctx.getEnvironmentKey(name) - if (Array.isArray(arr)) arr.push(...values) + if (Array.isArray(arr)) arr.push(...values.map(parsePrimitive)) return this.success() }, }) diff --git a/src/native/array/arraySplice.ts b/src/native/array/arraySplice.ts index 5888abed1d..23a62a6c5c 100644 --- a/src/native/array/arraySplice.ts +++ b/src/native/array/arraySplice.ts @@ -3,7 +3,8 @@ * Copyright © 2026 BotForge */ -import { ArgType, NativeFunction, Return } from "../../structures" +import { ArgType, NativeFunction } from "../../structures" +import parsePrimitive from "../../functions/parsePrimitive" export default new NativeFunction({ name: "$arraySplice", @@ -43,7 +44,7 @@ export default new NativeFunction({ brackets: true, execute(ctx, [name, index, count, elements]) { const arr = ctx.getEnvironmentKey(name) - if (Array.isArray(arr)) return this.successJSON(arr.splice(index, count, ...elements)) + if (Array.isArray(arr)) return this.successJSON(arr.splice(index, count, ...elements.map(parsePrimitive))) return this.success() }, }) diff --git a/src/native/array/arrayUnshift.ts b/src/native/array/arrayUnshift.ts index 2cc6327c05..fe60307186 100644 --- a/src/native/array/arrayUnshift.ts +++ b/src/native/array/arrayUnshift.ts @@ -3,7 +3,8 @@ * Copyright © 2026 BotForge */ -import { ArgType, NativeFunction, Return } from "../../structures" +import { ArgType, NativeFunction } from "../../structures" +import parsePrimitive from "../../functions/parsePrimitive" export default new NativeFunction({ name: "$arrayUnshift", @@ -29,7 +30,7 @@ export default new NativeFunction({ brackets: true, execute(ctx, [name, values]) { const arr = ctx.getEnvironmentKey(name) - if (Array.isArray(arr)) arr.unshift(...values) + if (Array.isArray(arr)) arr.unshift(...values.map(parsePrimitive)) return this.success() }, })