Index: node_modules/es-toolkit/dist/array/at.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/at.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/at.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+/**
+ * Retrieves elements from an array at the specified indices.
+ *
+ * This function supports negative indices, which count from the end of the array.
+ *
+ * @template T
+ * @param {readonly T[]} arr - The array to retrieve elements from.
+ * @param {number[]} indices - An array of indices specifying the positions of elements to retrieve.
+ * @returns {T[]} A new array containing the elements at the specified indices.
+ *
+ * @example
+ * const numbers = [10, 20, 30, 40, 50];
+ * const result = at(numbers, [1, 3, 4]);
+ * console.log(result); // [20, 40, 50]
+ */
+declare function at<T>(arr: readonly T[], indices: number[]): T[];
+
+export { at };
Index: node_modules/es-toolkit/dist/array/at.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/at.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/at.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+/**
+ * Retrieves elements from an array at the specified indices.
+ *
+ * This function supports negative indices, which count from the end of the array.
+ *
+ * @template T
+ * @param {readonly T[]} arr - The array to retrieve elements from.
+ * @param {number[]} indices - An array of indices specifying the positions of elements to retrieve.
+ * @returns {T[]} A new array containing the elements at the specified indices.
+ *
+ * @example
+ * const numbers = [10, 20, 30, 40, 50];
+ * const result = at(numbers, [1, 3, 4]);
+ * console.log(result); // [20, 40, 50]
+ */
+declare function at<T>(arr: readonly T[], indices: number[]): T[];
+
+export { at };
Index: node_modules/es-toolkit/dist/array/at.js
===================================================================
--- node_modules/es-toolkit/dist/array/at.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/at.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function at(arr, indices) {
+    const result = new Array(indices.length);
+    const length = arr.length;
+    for (let i = 0; i < indices.length; i++) {
+        let index = indices[i];
+        index = Number.isInteger(index) ? index : Math.trunc(index) || 0;
+        if (index < 0) {
+            index += length;
+        }
+        result[i] = arr[index];
+    }
+    return result;
+}
+
+exports.at = at;
Index: node_modules/es-toolkit/dist/array/at.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/at.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/at.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,15 @@
+function at(arr, indices) {
+    const result = new Array(indices.length);
+    const length = arr.length;
+    for (let i = 0; i < indices.length; i++) {
+        let index = indices[i];
+        index = Number.isInteger(index) ? index : Math.trunc(index) || 0;
+        if (index < 0) {
+            index += length;
+        }
+        result[i] = arr[index];
+    }
+    return result;
+}
+
+export { at };
Index: node_modules/es-toolkit/dist/array/chunk.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/chunk.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/chunk.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,26 @@
+/**
+ * Splits an array into smaller arrays of a specified length.
+ *
+ * This function takes an input array and divides it into multiple smaller arrays,
+ * each of a specified length. If the input array cannot be evenly divided,
+ * the final sub-array will contain the remaining elements.
+ *
+ * @template T The type of elements in the array.
+ * @param {T[]} arr - The array to be chunked into smaller arrays.
+ * @param {number} size - The size of each smaller array. Must be a positive integer.
+ * @returns {T[][]} A two-dimensional array where each sub-array has a maximum length of `size`.
+ * @throws {Error} Throws an error if `size` is not a positive integer.
+ *
+ * @example
+ * // Splits an array of numbers into sub-arrays of length 2
+ * chunk([1, 2, 3, 4, 5], 2);
+ * // Returns: [[1, 2], [3, 4], [5]]
+ *
+ * @example
+ * // Splits an array of strings into sub-arrays of length 3
+ * chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], 3);
+ * // Returns: [['a', 'b', 'c'], ['d', 'e', 'f'], ['g']]
+ */
+declare function chunk<T>(arr: readonly T[], size: number): T[][];
+
+export { chunk };
Index: node_modules/es-toolkit/dist/array/chunk.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/chunk.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/chunk.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,26 @@
+/**
+ * Splits an array into smaller arrays of a specified length.
+ *
+ * This function takes an input array and divides it into multiple smaller arrays,
+ * each of a specified length. If the input array cannot be evenly divided,
+ * the final sub-array will contain the remaining elements.
+ *
+ * @template T The type of elements in the array.
+ * @param {T[]} arr - The array to be chunked into smaller arrays.
+ * @param {number} size - The size of each smaller array. Must be a positive integer.
+ * @returns {T[][]} A two-dimensional array where each sub-array has a maximum length of `size`.
+ * @throws {Error} Throws an error if `size` is not a positive integer.
+ *
+ * @example
+ * // Splits an array of numbers into sub-arrays of length 2
+ * chunk([1, 2, 3, 4, 5], 2);
+ * // Returns: [[1, 2], [3, 4], [5]]
+ *
+ * @example
+ * // Splits an array of strings into sub-arrays of length 3
+ * chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], 3);
+ * // Returns: [['a', 'b', 'c'], ['d', 'e', 'f'], ['g']]
+ */
+declare function chunk<T>(arr: readonly T[], size: number): T[][];
+
+export { chunk };
Index: node_modules/es-toolkit/dist/array/chunk.js
===================================================================
--- node_modules/es-toolkit/dist/array/chunk.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/chunk.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function chunk(arr, size) {
+    if (!Number.isInteger(size) || size <= 0) {
+        throw new Error('Size must be an integer greater than zero.');
+    }
+    const chunkLength = Math.ceil(arr.length / size);
+    const result = Array(chunkLength);
+    for (let index = 0; index < chunkLength; index++) {
+        const start = index * size;
+        const end = start + size;
+        result[index] = arr.slice(start, end);
+    }
+    return result;
+}
+
+exports.chunk = chunk;
Index: node_modules/es-toolkit/dist/array/chunk.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/chunk.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/chunk.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,15 @@
+function chunk(arr, size) {
+    if (!Number.isInteger(size) || size <= 0) {
+        throw new Error('Size must be an integer greater than zero.');
+    }
+    const chunkLength = Math.ceil(arr.length / size);
+    const result = Array(chunkLength);
+    for (let index = 0; index < chunkLength; index++) {
+        const start = index * size;
+        const end = start + size;
+        result[index] = arr.slice(start, end);
+    }
+    return result;
+}
+
+export { chunk };
Index: node_modules/es-toolkit/dist/array/compact.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/compact.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/compact.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,15 @@
+type NotFalsey<T> = Exclude<T, false | null | 0 | 0n | '' | undefined>;
+/**
+ * Removes falsey values (false, null, 0, -0, 0n, '', undefined, NaN) from an array.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The input array to remove falsey values.
+ * @returns {Array<Exclude<T, false | null | 0 | 0n | '' | undefined>>} - A new array with all falsey values removed.
+ *
+ * @example
+ * compact([0, -0, 0n, 1, false, 2, '', 3, null, undefined, 4, NaN, 5]);
+ * Returns: [1, 2, 3, 4, 5]
+ */
+declare function compact<T>(arr: readonly T[]): Array<NotFalsey<T>>;
+
+export { compact };
Index: node_modules/es-toolkit/dist/array/compact.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/compact.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/compact.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,15 @@
+type NotFalsey<T> = Exclude<T, false | null | 0 | 0n | '' | undefined>;
+/**
+ * Removes falsey values (false, null, 0, -0, 0n, '', undefined, NaN) from an array.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The input array to remove falsey values.
+ * @returns {Array<Exclude<T, false | null | 0 | 0n | '' | undefined>>} - A new array with all falsey values removed.
+ *
+ * @example
+ * compact([0, -0, 0n, 1, false, 2, '', 3, null, undefined, 4, NaN, 5]);
+ * Returns: [1, 2, 3, 4, 5]
+ */
+declare function compact<T>(arr: readonly T[]): Array<NotFalsey<T>>;
+
+export { compact };
Index: node_modules/es-toolkit/dist/array/compact.js
===================================================================
--- node_modules/es-toolkit/dist/array/compact.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/compact.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,16 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function compact(arr) {
+    const result = [];
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        if (item) {
+            result.push(item);
+        }
+    }
+    return result;
+}
+
+exports.compact = compact;
Index: node_modules/es-toolkit/dist/array/compact.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/compact.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/compact.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,12 @@
+function compact(arr) {
+    const result = [];
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        if (item) {
+            result.push(item);
+        }
+    }
+    return result;
+}
+
+export { compact };
Index: node_modules/es-toolkit/dist/array/countBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/countBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/countBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,36 @@
+/**
+ * Count the occurrences of each item in an array
+ * based on a transformation function.
+ *
+ * This function takes an array and a transformation function
+ * that converts each item in the array to a key. It then
+ * counts the occurrences of each transformed item and returns
+ * an object with the transformed items as keys and the counts
+ * as values.
+ *
+ * @template T - The type of the items in the input array.
+ * @template K - The type of keys.
+ * @param {T[]} arr - The input array to count occurrences.
+ * @param {(item: T, index: number, array: readonly T[]) => K} mapper - The transformation function that maps each item, its index, and the array to a key.
+ * @returns {Record<K, number>} An object containing the transformed items as keys and the
+ * counts as values.
+ *
+ * @example
+ * const array = ['a', 'b', 'c', 'a', 'b', 'a'];
+ * const result = countBy(array, x => x);
+ * // result will be { a: 3, b: 2, c: 1 }
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const result = countBy(array, item => item % 2 === 0 ? 'even' : 'odd');
+ * // result will be { odd: 3, even: 2 }
+ *
+ * @example
+ * // Using index parameter
+ * const array = ['a', 'b', 'c', 'd'];
+ * const result = countBy(array, (item, index) => index < 2 ? 'first' : 'rest');
+ * // result will be { first: 2, rest: 2 }
+ */
+declare function countBy<T, K extends PropertyKey>(arr: readonly T[], mapper: (item: T, index: number, array: readonly T[]) => K): Record<K, number>;
+
+export { countBy };
Index: node_modules/es-toolkit/dist/array/countBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/countBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/countBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,36 @@
+/**
+ * Count the occurrences of each item in an array
+ * based on a transformation function.
+ *
+ * This function takes an array and a transformation function
+ * that converts each item in the array to a key. It then
+ * counts the occurrences of each transformed item and returns
+ * an object with the transformed items as keys and the counts
+ * as values.
+ *
+ * @template T - The type of the items in the input array.
+ * @template K - The type of keys.
+ * @param {T[]} arr - The input array to count occurrences.
+ * @param {(item: T, index: number, array: readonly T[]) => K} mapper - The transformation function that maps each item, its index, and the array to a key.
+ * @returns {Record<K, number>} An object containing the transformed items as keys and the
+ * counts as values.
+ *
+ * @example
+ * const array = ['a', 'b', 'c', 'a', 'b', 'a'];
+ * const result = countBy(array, x => x);
+ * // result will be { a: 3, b: 2, c: 1 }
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const result = countBy(array, item => item % 2 === 0 ? 'even' : 'odd');
+ * // result will be { odd: 3, even: 2 }
+ *
+ * @example
+ * // Using index parameter
+ * const array = ['a', 'b', 'c', 'd'];
+ * const result = countBy(array, (item, index) => index < 2 ? 'first' : 'rest');
+ * // result will be { first: 2, rest: 2 }
+ */
+declare function countBy<T, K extends PropertyKey>(arr: readonly T[], mapper: (item: T, index: number, array: readonly T[]) => K): Record<K, number>;
+
+export { countBy };
Index: node_modules/es-toolkit/dist/array/countBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/countBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/countBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,15 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function countBy(arr, mapper) {
+    const result = {};
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        const key = mapper(item, i, arr);
+        result[key] = (result[key] ?? 0) + 1;
+    }
+    return result;
+}
+
+exports.countBy = countBy;
Index: node_modules/es-toolkit/dist/array/countBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/countBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/countBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+function countBy(arr, mapper) {
+    const result = {};
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        const key = mapper(item, i, arr);
+        result[key] = (result[key] ?? 0) + 1;
+    }
+    return result;
+}
+
+export { countBy };
Index: node_modules/es-toolkit/dist/array/difference.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/difference.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/difference.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,25 @@
+/**
+ * Computes the difference between two arrays.
+ *
+ * This function takes two arrays and returns a new array containing the elements
+ * that are present in the first array but not in the second array. It effectively
+ * filters out any elements from the first array that also appear in the second array.
+ *
+ * @template T
+ * @param {T[]} firstArr - The array from which to derive the difference. This is the primary array
+ * from which elements will be compared and filtered.
+ * @param {T[]} secondArr - The array containing elements to be excluded from the first array.
+ * Each element in this array will be checked against the first array, and if a match is found,
+ * that element will be excluded from the result.
+ * @returns {T[]} A new array containing the elements that are present in the first array but not
+ * in the second array.
+ *
+ * @example
+ * const array1 = [1, 2, 3, 4, 5];
+ * const array2 = [2, 4];
+ * const result = difference(array1, array2);
+ * // result will be [1, 3, 5] since 2 and 4 are in both arrays and are excluded from the result.
+ */
+declare function difference<T>(firstArr: readonly T[], secondArr: readonly T[]): T[];
+
+export { difference };
Index: node_modules/es-toolkit/dist/array/difference.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/difference.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/difference.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,25 @@
+/**
+ * Computes the difference between two arrays.
+ *
+ * This function takes two arrays and returns a new array containing the elements
+ * that are present in the first array but not in the second array. It effectively
+ * filters out any elements from the first array that also appear in the second array.
+ *
+ * @template T
+ * @param {T[]} firstArr - The array from which to derive the difference. This is the primary array
+ * from which elements will be compared and filtered.
+ * @param {T[]} secondArr - The array containing elements to be excluded from the first array.
+ * Each element in this array will be checked against the first array, and if a match is found,
+ * that element will be excluded from the result.
+ * @returns {T[]} A new array containing the elements that are present in the first array but not
+ * in the second array.
+ *
+ * @example
+ * const array1 = [1, 2, 3, 4, 5];
+ * const array2 = [2, 4];
+ * const result = difference(array1, array2);
+ * // result will be [1, 3, 5] since 2 and 4 are in both arrays and are excluded from the result.
+ */
+declare function difference<T>(firstArr: readonly T[], secondArr: readonly T[]): T[];
+
+export { difference };
Index: node_modules/es-toolkit/dist/array/difference.js
===================================================================
--- node_modules/es-toolkit/dist/array/difference.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/difference.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,10 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function difference(firstArr, secondArr) {
+    const secondSet = new Set(secondArr);
+    return firstArr.filter(item => !secondSet.has(item));
+}
+
+exports.difference = difference;
Index: node_modules/es-toolkit/dist/array/difference.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/difference.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/difference.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,6 @@
+function difference(firstArr, secondArr) {
+    const secondSet = new Set(secondArr);
+    return firstArr.filter(item => !secondSet.has(item));
+}
+
+export { difference };
Index: node_modules/es-toolkit/dist/array/differenceBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/differenceBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/differenceBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,35 @@
+/**
+ * Computes the difference between two arrays after mapping their elements through a provided function.
+ *
+ * This function takes two arrays and a mapper function. It returns a new array containing the elements
+ * that are present in the first array but not in the second array, based on the identity calculated
+ * by the mapper function.
+ *
+ * Essentially, it filters out any elements from the first array that, when
+ * mapped, match an element in the mapped version of the second array.
+ *
+ * @template T, U
+ * @param {T[]} firstArr - The primary array from which to derive the difference.
+ * @param {U[]} secondArr - The array containing elements to be excluded from the first array.
+ * @param {(value: T | U) => unknown} mapper - The function to map the elements of both arrays. This function
+ * is applied to each element in both arrays, and the comparison is made based on the mapped values.
+ * @returns {T[]} A new array containing the elements from the first array that do not have a corresponding
+ * mapped identity in the second array.
+ *
+ * @example
+ * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const array2 = [{ id: 2 }, { id: 4 }];
+ * const mapper = item => item.id;
+ * const result = differenceBy(array1, array2, mapper);
+ * // result will be [{ id: 1 }, { id: 3 }] since the elements with id 2 are in both arrays and are excluded from the result.
+ *
+ * @example
+ * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const array2 = [2, 4];
+ * const mapper = item => (typeof item === 'object' ? item.id : item);
+ * const result = differenceBy(array1, array2, mapper);
+ * // result will be [{ id: 1 }, { id: 3 }] since 2 is present in both arrays after mapping, and is excluded from the result.
+ */
+declare function differenceBy<T, U>(firstArr: readonly T[], secondArr: readonly U[], mapper: (value: T | U) => unknown): T[];
+
+export { differenceBy };
Index: node_modules/es-toolkit/dist/array/differenceBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/differenceBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/differenceBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,35 @@
+/**
+ * Computes the difference between two arrays after mapping their elements through a provided function.
+ *
+ * This function takes two arrays and a mapper function. It returns a new array containing the elements
+ * that are present in the first array but not in the second array, based on the identity calculated
+ * by the mapper function.
+ *
+ * Essentially, it filters out any elements from the first array that, when
+ * mapped, match an element in the mapped version of the second array.
+ *
+ * @template T, U
+ * @param {T[]} firstArr - The primary array from which to derive the difference.
+ * @param {U[]} secondArr - The array containing elements to be excluded from the first array.
+ * @param {(value: T | U) => unknown} mapper - The function to map the elements of both arrays. This function
+ * is applied to each element in both arrays, and the comparison is made based on the mapped values.
+ * @returns {T[]} A new array containing the elements from the first array that do not have a corresponding
+ * mapped identity in the second array.
+ *
+ * @example
+ * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const array2 = [{ id: 2 }, { id: 4 }];
+ * const mapper = item => item.id;
+ * const result = differenceBy(array1, array2, mapper);
+ * // result will be [{ id: 1 }, { id: 3 }] since the elements with id 2 are in both arrays and are excluded from the result.
+ *
+ * @example
+ * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const array2 = [2, 4];
+ * const mapper = item => (typeof item === 'object' ? item.id : item);
+ * const result = differenceBy(array1, array2, mapper);
+ * // result will be [{ id: 1 }, { id: 3 }] since 2 is present in both arrays after mapping, and is excluded from the result.
+ */
+declare function differenceBy<T, U>(firstArr: readonly T[], secondArr: readonly U[], mapper: (value: T | U) => unknown): T[];
+
+export { differenceBy };
Index: node_modules/es-toolkit/dist/array/differenceBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/differenceBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/differenceBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,12 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function differenceBy(firstArr, secondArr, mapper) {
+    const mappedSecondSet = new Set(secondArr.map(item => mapper(item)));
+    return firstArr.filter(item => {
+        return !mappedSecondSet.has(mapper(item));
+    });
+}
+
+exports.differenceBy = differenceBy;
Index: node_modules/es-toolkit/dist/array/differenceBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/differenceBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/differenceBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,8 @@
+function differenceBy(firstArr, secondArr, mapper) {
+    const mappedSecondSet = new Set(secondArr.map(item => mapper(item)));
+    return firstArr.filter(item => {
+        return !mappedSecondSet.has(mapper(item));
+    });
+}
+
+export { differenceBy };
Index: node_modules/es-toolkit/dist/array/differenceWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/differenceWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/differenceWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,31 @@
+/**
+ * Computes the difference between two arrays based on a custom equality function.
+ *
+ * This function takes two arrays and a custom comparison function. It returns a new array containing
+ * the elements that are present in the first array but not in the second array. The comparison to determine
+ * if elements are equal is made using the provided custom function.
+ *
+ * @template T, U
+ * @param {T[]} firstArr - The array from which to get the difference.
+ * @param {U[]} secondArr - The array containing elements to exclude from the first array.
+ * @param {(x: T, y: U) => boolean} areItemsEqual - A function to determine if two items are equal.
+ * @returns {T[]} A new array containing the elements from the first array that do not match any elements in the second array
+ * according to the custom equality function.
+ *
+ * @example
+ * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const array2 = [{ id: 2 }, { id: 4 }];
+ * const areItemsEqual = (a, b) => a.id === b.id;
+ * const result = differenceWith(array1, array2, areItemsEqual);
+ * // result will be [{ id: 1 }, { id: 3 }] since the elements with id 2 are considered equal and are excluded from the result.
+ *
+ * @example
+ * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const array2 = [2, 4];
+ * const areItemsEqual = (a, b) => a.id === b;
+ * const result = differenceWith(array1, array2, areItemsEqual);
+ * // result will be [{ id: 1 }, { id: 3 }] since the element with id 2 is considered equal to the second array's element and is excluded from the result.
+ */
+declare function differenceWith<T, U>(firstArr: readonly T[], secondArr: readonly U[], areItemsEqual: (x: T, y: U) => boolean): T[];
+
+export { differenceWith };
Index: node_modules/es-toolkit/dist/array/differenceWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/differenceWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/differenceWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,31 @@
+/**
+ * Computes the difference between two arrays based on a custom equality function.
+ *
+ * This function takes two arrays and a custom comparison function. It returns a new array containing
+ * the elements that are present in the first array but not in the second array. The comparison to determine
+ * if elements are equal is made using the provided custom function.
+ *
+ * @template T, U
+ * @param {T[]} firstArr - The array from which to get the difference.
+ * @param {U[]} secondArr - The array containing elements to exclude from the first array.
+ * @param {(x: T, y: U) => boolean} areItemsEqual - A function to determine if two items are equal.
+ * @returns {T[]} A new array containing the elements from the first array that do not match any elements in the second array
+ * according to the custom equality function.
+ *
+ * @example
+ * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const array2 = [{ id: 2 }, { id: 4 }];
+ * const areItemsEqual = (a, b) => a.id === b.id;
+ * const result = differenceWith(array1, array2, areItemsEqual);
+ * // result will be [{ id: 1 }, { id: 3 }] since the elements with id 2 are considered equal and are excluded from the result.
+ *
+ * @example
+ * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const array2 = [2, 4];
+ * const areItemsEqual = (a, b) => a.id === b;
+ * const result = differenceWith(array1, array2, areItemsEqual);
+ * // result will be [{ id: 1 }, { id: 3 }] since the element with id 2 is considered equal to the second array's element and is excluded from the result.
+ */
+declare function differenceWith<T, U>(firstArr: readonly T[], secondArr: readonly U[], areItemsEqual: (x: T, y: U) => boolean): T[];
+
+export { differenceWith };
Index: node_modules/es-toolkit/dist/array/differenceWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/differenceWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/differenceWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,13 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function differenceWith(firstArr, secondArr, areItemsEqual) {
+    return firstArr.filter(firstItem => {
+        return secondArr.every(secondItem => {
+            return !areItemsEqual(firstItem, secondItem);
+        });
+    });
+}
+
+exports.differenceWith = differenceWith;
Index: node_modules/es-toolkit/dist/array/differenceWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/differenceWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/differenceWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,9 @@
+function differenceWith(firstArr, secondArr, areItemsEqual) {
+    return firstArr.filter(firstItem => {
+        return secondArr.every(secondItem => {
+            return !areItemsEqual(firstItem, secondItem);
+        });
+    });
+}
+
+export { differenceWith };
Index: node_modules/es-toolkit/dist/array/drop.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/drop.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/drop.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+/**
+ * Removes a specified number of elements from the beginning of an array and returns the rest.
+ *
+ * This function takes an array and a number, and returns a new array with the specified number
+ * of elements removed from the start.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array from which to drop elements.
+ * @param {number} itemsCount - The number of elements to drop from the beginning of the array.
+ * @returns {T[]} A new array with the specified number of elements removed from the start.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const result = drop(array, 2);
+ * // result will be [3, 4, 5] since the first two elements are dropped.
+ */
+declare function drop<T>(arr: readonly T[], itemsCount: number): T[];
+
+export { drop };
Index: node_modules/es-toolkit/dist/array/drop.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/drop.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/drop.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+/**
+ * Removes a specified number of elements from the beginning of an array and returns the rest.
+ *
+ * This function takes an array and a number, and returns a new array with the specified number
+ * of elements removed from the start.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array from which to drop elements.
+ * @param {number} itemsCount - The number of elements to drop from the beginning of the array.
+ * @returns {T[]} A new array with the specified number of elements removed from the start.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const result = drop(array, 2);
+ * // result will be [3, 4, 5] since the first two elements are dropped.
+ */
+declare function drop<T>(arr: readonly T[], itemsCount: number): T[];
+
+export { drop };
Index: node_modules/es-toolkit/dist/array/drop.js
===================================================================
--- node_modules/es-toolkit/dist/array/drop.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/drop.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,10 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function drop(arr, itemsCount) {
+    itemsCount = Math.max(itemsCount, 0);
+    return arr.slice(itemsCount);
+}
+
+exports.drop = drop;
Index: node_modules/es-toolkit/dist/array/drop.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/drop.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/drop.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,6 @@
+function drop(arr, itemsCount) {
+    itemsCount = Math.max(itemsCount, 0);
+    return arr.slice(itemsCount);
+}
+
+export { drop };
Index: node_modules/es-toolkit/dist/array/dropRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/dropRight.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/dropRight.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+/**
+ * Removes a specified number of elements from the end of an array and returns the rest.
+ *
+ * This function takes an array and a number, and returns a new array with the specified number
+ * of elements removed from the end.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array from which to drop elements.
+ * @param {number} itemsCount - The number of elements to drop from the end of the array.
+ * @returns {T[]} A new array with the specified number of elements removed from the end.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const result = dropRight(array, 2);
+ * // result will be [1, 2, 3] since the last two elements are dropped.
+ */
+declare function dropRight<T>(arr: readonly T[], itemsCount: number): T[];
+
+export { dropRight };
Index: node_modules/es-toolkit/dist/array/dropRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/dropRight.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/dropRight.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+/**
+ * Removes a specified number of elements from the end of an array and returns the rest.
+ *
+ * This function takes an array and a number, and returns a new array with the specified number
+ * of elements removed from the end.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array from which to drop elements.
+ * @param {number} itemsCount - The number of elements to drop from the end of the array.
+ * @returns {T[]} A new array with the specified number of elements removed from the end.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const result = dropRight(array, 2);
+ * // result will be [1, 2, 3] since the last two elements are dropped.
+ */
+declare function dropRight<T>(arr: readonly T[], itemsCount: number): T[];
+
+export { dropRight };
Index: node_modules/es-toolkit/dist/array/dropRight.js
===================================================================
--- node_modules/es-toolkit/dist/array/dropRight.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/dropRight.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,13 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function dropRight(arr, itemsCount) {
+    itemsCount = Math.min(-itemsCount, 0);
+    if (itemsCount === 0) {
+        return arr.slice();
+    }
+    return arr.slice(0, itemsCount);
+}
+
+exports.dropRight = dropRight;
Index: node_modules/es-toolkit/dist/array/dropRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/dropRight.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/dropRight.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,9 @@
+function dropRight(arr, itemsCount) {
+    itemsCount = Math.min(-itemsCount, 0);
+    if (itemsCount === 0) {
+        return arr.slice();
+    }
+    return arr.slice(0, itemsCount);
+}
+
+export { dropRight };
Index: node_modules/es-toolkit/dist/array/dropRightWhile.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/dropRightWhile.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/dropRightWhile.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,21 @@
+/**
+ * Removes elements from the end of an array until the predicate returns false.
+ *
+ * This function iterates over an array from the end and drops elements until the provided
+ * predicate function returns false. It then returns a new array with the remaining elements.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array from which to drop elements.
+ * @param {(item: T, index: number, arr: T[]) => boolean} canContinueDropping - A predicate function that determines
+ * whether to continue dropping elements. The function is called with each element from the end,
+ * and dropping continues as long as it returns true.
+ * @returns {T[]} A new array with the elements remaining after the predicate returns false.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const result = dropRightWhile(array, x => x > 3);
+ * // result will be [1, 2, 3] since elements greater than 3 are dropped from the end.
+ */
+declare function dropRightWhile<T>(arr: readonly T[], canContinueDropping: (item: T, index: number, arr: readonly T[]) => boolean): T[];
+
+export { dropRightWhile };
Index: node_modules/es-toolkit/dist/array/dropRightWhile.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/dropRightWhile.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/dropRightWhile.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,21 @@
+/**
+ * Removes elements from the end of an array until the predicate returns false.
+ *
+ * This function iterates over an array from the end and drops elements until the provided
+ * predicate function returns false. It then returns a new array with the remaining elements.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array from which to drop elements.
+ * @param {(item: T, index: number, arr: T[]) => boolean} canContinueDropping - A predicate function that determines
+ * whether to continue dropping elements. The function is called with each element from the end,
+ * and dropping continues as long as it returns true.
+ * @returns {T[]} A new array with the elements remaining after the predicate returns false.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const result = dropRightWhile(array, x => x > 3);
+ * // result will be [1, 2, 3] since elements greater than 3 are dropped from the end.
+ */
+declare function dropRightWhile<T>(arr: readonly T[], canContinueDropping: (item: T, index: number, arr: readonly T[]) => boolean): T[];
+
+export { dropRightWhile };
Index: node_modules/es-toolkit/dist/array/dropRightWhile.js
===================================================================
--- node_modules/es-toolkit/dist/array/dropRightWhile.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/dropRightWhile.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,14 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function dropRightWhile(arr, canContinueDropping) {
+    for (let i = arr.length - 1; i >= 0; i--) {
+        if (!canContinueDropping(arr[i], i, arr)) {
+            return arr.slice(0, i + 1);
+        }
+    }
+    return [];
+}
+
+exports.dropRightWhile = dropRightWhile;
Index: node_modules/es-toolkit/dist/array/dropRightWhile.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/dropRightWhile.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/dropRightWhile.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,10 @@
+function dropRightWhile(arr, canContinueDropping) {
+    for (let i = arr.length - 1; i >= 0; i--) {
+        if (!canContinueDropping(arr[i], i, arr)) {
+            return arr.slice(0, i + 1);
+        }
+    }
+    return [];
+}
+
+export { dropRightWhile };
Index: node_modules/es-toolkit/dist/array/dropWhile.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/dropWhile.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/dropWhile.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,21 @@
+/**
+ * Removes elements from the beginning of an array until the predicate returns false.
+ *
+ * This function iterates over an array and drops elements from the start until the provided
+ * predicate function returns false. It then returns a new array with the remaining elements.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array from which to drop elements.
+ * @param {(item: T, index: number, arr: T[]) => boolean} canContinueDropping - A predicate function that determines
+ * whether to continue dropping elements. The function is called with each element, and dropping
+ * continues as long as it returns true.
+ * @returns {T[]} A new array with the elements remaining after the predicate returns false.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const result = dropWhile(array, x => x < 3);
+ * // result will be [3, 4, 5] since elements less than 3 are dropped.
+ */
+declare function dropWhile<T>(arr: readonly T[], canContinueDropping: (item: T, index: number, arr: readonly T[]) => boolean): T[];
+
+export { dropWhile };
Index: node_modules/es-toolkit/dist/array/dropWhile.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/dropWhile.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/dropWhile.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,21 @@
+/**
+ * Removes elements from the beginning of an array until the predicate returns false.
+ *
+ * This function iterates over an array and drops elements from the start until the provided
+ * predicate function returns false. It then returns a new array with the remaining elements.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array from which to drop elements.
+ * @param {(item: T, index: number, arr: T[]) => boolean} canContinueDropping - A predicate function that determines
+ * whether to continue dropping elements. The function is called with each element, and dropping
+ * continues as long as it returns true.
+ * @returns {T[]} A new array with the elements remaining after the predicate returns false.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const result = dropWhile(array, x => x < 3);
+ * // result will be [3, 4, 5] since elements less than 3 are dropped.
+ */
+declare function dropWhile<T>(arr: readonly T[], canContinueDropping: (item: T, index: number, arr: readonly T[]) => boolean): T[];
+
+export { dropWhile };
Index: node_modules/es-toolkit/dist/array/dropWhile.js
===================================================================
--- node_modules/es-toolkit/dist/array/dropWhile.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/dropWhile.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,13 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function dropWhile(arr, canContinueDropping) {
+    const dropEndIndex = arr.findIndex((item, index, arr) => !canContinueDropping(item, index, arr));
+    if (dropEndIndex === -1) {
+        return [];
+    }
+    return arr.slice(dropEndIndex);
+}
+
+exports.dropWhile = dropWhile;
Index: node_modules/es-toolkit/dist/array/dropWhile.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/dropWhile.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/dropWhile.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,9 @@
+function dropWhile(arr, canContinueDropping) {
+    const dropEndIndex = arr.findIndex((item, index, arr) => !canContinueDropping(item, index, arr));
+    if (dropEndIndex === -1) {
+        return [];
+    }
+    return arr.slice(dropEndIndex);
+}
+
+export { dropWhile };
Index: node_modules/es-toolkit/dist/array/fill.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/fill.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/fill.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,88 @@
+/**
+ * Fills the whole array with a specified value.
+ *
+ * This function mutates the original array and replaces its elements with the provided value, starting from the specified
+ * start index up to the end index (non-inclusive). If the start or end indices are not provided, it defaults to filling the
+ * entire array.
+ *
+ * @template T - The type of the value to fill the array with.
+ * @param {unknown[]} array - The array to fill.
+ * @param {T} value - The value to fill the array with.
+ * @returns {T[]} The array with the filled values.
+ *
+ * @example
+ * const array = [1, 2, 3];
+ * const result = fill(array, 'a');
+ * // => ['a', 'a', 'a']
+ *
+ * const result = fill(Array(3), 2);
+ * // => [2, 2, 2]
+ *
+ * const result = fill([4, 6, 8, 10], '*', 1, 3);
+ * // => [4, '*', '*', 10]
+ *
+ * const result = fill(array, '*', -2, -1);
+ * // => [1, '*', 3]
+ */
+declare function fill<T>(array: unknown[], value: T): T[];
+/**
+ * Fills elements of an array with a specified value from the start position up to the end of the array.
+ *
+ * This function mutates the original array and replaces its elements with the provided value, starting from the specified
+ * start index up to the end index (non-inclusive). If the start or end indices are not provided, it defaults to filling the
+ * entire array.
+ *
+ * @template T - The type of elements in the original array.
+ * @template U - The type of the value to fill the array with.
+ * @param {Array<T | U>} array - The array to fill.
+ * @param {U} value - The value to fill the array with.
+ * @param {number} [start=0] - The start position. Defaults to 0.
+ * @returns {Array<T | U>} The array with the filled values.
+ *
+ * @example
+ * const array = [1, 2, 3];
+ * const result = fill(array, 'a');
+ * // => ['a', 'a', 'a']
+ *
+ * const result = fill(Array(3), 2);
+ * // => [2, 2, 2]
+ *
+ * const result = fill([4, 6, 8, 10], '*', 1, 3);
+ * // => [4, '*', '*', 10]
+ *
+ * const result = fill(array, '*', -2, -1);
+ * // => [1, '*', 3]
+ */
+declare function fill<T, U>(array: Array<T | U>, value: U, start: number): Array<T | U>;
+/**
+ * Fills elements of an array with a specified value from the start position up to, but not including, the end position.
+ *
+ * This function mutates the original array and replaces its elements with the provided value, starting from the specified
+ * start index up to the end index (non-inclusive). If the start or end indices are not provided, it defaults to filling the
+ * entire array.
+ *
+ * @template T - The type of elements in the original array.
+ * @template U - The type of the value to fill the array with.
+ * @param {Array<T | U>} array - The array to fill.
+ * @param {U} value - The value to fill the array with.
+ * @param {number} [start=0] - The start position. Defaults to 0.
+ * @param {number} [end=arr.length] - The end position. Defaults to the array's length.
+ * @returns {Array<T | U>} The array with the filled values.
+ *
+ * @example
+ * const array = [1, 2, 3];
+ * const result = fill(array, 'a');
+ * // => ['a', 'a', 'a']
+ *
+ * const result = fill(Array(3), 2);
+ * // => [2, 2, 2]
+ *
+ * const result = fill([4, 6, 8, 10], '*', 1, 3);
+ * // => [4, '*', '*', 10]
+ *
+ * const result = fill(array, '*', -2, -1);
+ * // => [1, '*', 3]
+ */
+declare function fill<T, U>(array: Array<T | U>, value: U, start: number, end: number): Array<T | U>;
+
+export { fill };
Index: node_modules/es-toolkit/dist/array/fill.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/fill.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/fill.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,88 @@
+/**
+ * Fills the whole array with a specified value.
+ *
+ * This function mutates the original array and replaces its elements with the provided value, starting from the specified
+ * start index up to the end index (non-inclusive). If the start or end indices are not provided, it defaults to filling the
+ * entire array.
+ *
+ * @template T - The type of the value to fill the array with.
+ * @param {unknown[]} array - The array to fill.
+ * @param {T} value - The value to fill the array with.
+ * @returns {T[]} The array with the filled values.
+ *
+ * @example
+ * const array = [1, 2, 3];
+ * const result = fill(array, 'a');
+ * // => ['a', 'a', 'a']
+ *
+ * const result = fill(Array(3), 2);
+ * // => [2, 2, 2]
+ *
+ * const result = fill([4, 6, 8, 10], '*', 1, 3);
+ * // => [4, '*', '*', 10]
+ *
+ * const result = fill(array, '*', -2, -1);
+ * // => [1, '*', 3]
+ */
+declare function fill<T>(array: unknown[], value: T): T[];
+/**
+ * Fills elements of an array with a specified value from the start position up to the end of the array.
+ *
+ * This function mutates the original array and replaces its elements with the provided value, starting from the specified
+ * start index up to the end index (non-inclusive). If the start or end indices are not provided, it defaults to filling the
+ * entire array.
+ *
+ * @template T - The type of elements in the original array.
+ * @template U - The type of the value to fill the array with.
+ * @param {Array<T | U>} array - The array to fill.
+ * @param {U} value - The value to fill the array with.
+ * @param {number} [start=0] - The start position. Defaults to 0.
+ * @returns {Array<T | U>} The array with the filled values.
+ *
+ * @example
+ * const array = [1, 2, 3];
+ * const result = fill(array, 'a');
+ * // => ['a', 'a', 'a']
+ *
+ * const result = fill(Array(3), 2);
+ * // => [2, 2, 2]
+ *
+ * const result = fill([4, 6, 8, 10], '*', 1, 3);
+ * // => [4, '*', '*', 10]
+ *
+ * const result = fill(array, '*', -2, -1);
+ * // => [1, '*', 3]
+ */
+declare function fill<T, U>(array: Array<T | U>, value: U, start: number): Array<T | U>;
+/**
+ * Fills elements of an array with a specified value from the start position up to, but not including, the end position.
+ *
+ * This function mutates the original array and replaces its elements with the provided value, starting from the specified
+ * start index up to the end index (non-inclusive). If the start or end indices are not provided, it defaults to filling the
+ * entire array.
+ *
+ * @template T - The type of elements in the original array.
+ * @template U - The type of the value to fill the array with.
+ * @param {Array<T | U>} array - The array to fill.
+ * @param {U} value - The value to fill the array with.
+ * @param {number} [start=0] - The start position. Defaults to 0.
+ * @param {number} [end=arr.length] - The end position. Defaults to the array's length.
+ * @returns {Array<T | U>} The array with the filled values.
+ *
+ * @example
+ * const array = [1, 2, 3];
+ * const result = fill(array, 'a');
+ * // => ['a', 'a', 'a']
+ *
+ * const result = fill(Array(3), 2);
+ * // => [2, 2, 2]
+ *
+ * const result = fill([4, 6, 8, 10], '*', 1, 3);
+ * // => [4, '*', '*', 10]
+ *
+ * const result = fill(array, '*', -2, -1);
+ * // => [1, '*', 3]
+ */
+declare function fill<T, U>(array: Array<T | U>, value: U, start: number, end: number): Array<T | U>;
+
+export { fill };
Index: node_modules/es-toolkit/dist/array/fill.js
===================================================================
--- node_modules/es-toolkit/dist/array/fill.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/fill.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,15 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function fill(array, value, start = 0, end = array.length) {
+    const length = array.length;
+    const finalStart = Math.max(start >= 0 ? start : length + start, 0);
+    const finalEnd = Math.min(end >= 0 ? end : length + end, length);
+    for (let i = finalStart; i < finalEnd; i++) {
+        array[i] = value;
+    }
+    return array;
+}
+
+exports.fill = fill;
Index: node_modules/es-toolkit/dist/array/fill.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/fill.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/fill.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+function fill(array, value, start = 0, end = array.length) {
+    const length = array.length;
+    const finalStart = Math.max(start >= 0 ? start : length + start, 0);
+    const finalEnd = Math.min(end >= 0 ? end : length + end, length);
+    for (let i = finalStart; i < finalEnd; i++) {
+        array[i] = value;
+    }
+    return array;
+}
+
+export { fill };
Index: node_modules/es-toolkit/dist/array/filterAsync.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/filterAsync.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/filterAsync.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,35 @@
+interface FilterAsyncOptions {
+    concurrency?: number;
+}
+/**
+ * Filters an array asynchronously using an async predicate function.
+ *
+ * Returns a promise that resolves to a new array containing only the elements
+ * for which the predicate function returns a truthy value.
+ *
+ * @template T - The type of elements in the array.
+ * @param {readonly T[]} array The array to filter.
+ * @param {(item: T, index: number, array: readonly T[]) => Promise<boolean>} predicate An async function that tests each element.
+ * @param {FilterAsyncOptions} [options] Optional configuration object.
+ * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
+ * @returns {Promise<T[]>} A promise that resolves to the filtered array.
+ * @example
+ * const users = [{ id: 1, active: true }, { id: 2, active: false }, { id: 3, active: true }];
+ * const activeUsers = await filterAsync(users, async (user) => {
+ *   return await checkUserStatus(user.id);
+ * });
+ * // Returns: [{ id: 1, active: true }, { id: 3, active: true }]
+ *
+ * @example
+ * // With concurrency limit
+ * const numbers = [1, 2, 3, 4, 5];
+ * const evenNumbers = await filterAsync(
+ *   numbers,
+ *   async (n) => await isEvenAsync(n),
+ *   { concurrency: 2 }
+ * );
+ * // Processes at most 2 operations concurrently
+ */
+declare function filterAsync<T>(array: readonly T[], predicate: (item: T, index: number, array: readonly T[]) => Promise<boolean>, options?: FilterAsyncOptions): Promise<T[]>;
+
+export { filterAsync };
Index: node_modules/es-toolkit/dist/array/filterAsync.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/filterAsync.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/filterAsync.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,35 @@
+interface FilterAsyncOptions {
+    concurrency?: number;
+}
+/**
+ * Filters an array asynchronously using an async predicate function.
+ *
+ * Returns a promise that resolves to a new array containing only the elements
+ * for which the predicate function returns a truthy value.
+ *
+ * @template T - The type of elements in the array.
+ * @param {readonly T[]} array The array to filter.
+ * @param {(item: T, index: number, array: readonly T[]) => Promise<boolean>} predicate An async function that tests each element.
+ * @param {FilterAsyncOptions} [options] Optional configuration object.
+ * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
+ * @returns {Promise<T[]>} A promise that resolves to the filtered array.
+ * @example
+ * const users = [{ id: 1, active: true }, { id: 2, active: false }, { id: 3, active: true }];
+ * const activeUsers = await filterAsync(users, async (user) => {
+ *   return await checkUserStatus(user.id);
+ * });
+ * // Returns: [{ id: 1, active: true }, { id: 3, active: true }]
+ *
+ * @example
+ * // With concurrency limit
+ * const numbers = [1, 2, 3, 4, 5];
+ * const evenNumbers = await filterAsync(
+ *   numbers,
+ *   async (n) => await isEvenAsync(n),
+ *   { concurrency: 2 }
+ * );
+ * // Processes at most 2 operations concurrently
+ */
+declare function filterAsync<T>(array: readonly T[], predicate: (item: T, index: number, array: readonly T[]) => Promise<boolean>, options?: FilterAsyncOptions): Promise<T[]>;
+
+export { filterAsync };
Index: node_modules/es-toolkit/dist/array/filterAsync.js
===================================================================
--- node_modules/es-toolkit/dist/array/filterAsync.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/filterAsync.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,15 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const limitAsync = require('./limitAsync.js');
+
+async function filterAsync(array, predicate, options) {
+    if (options?.concurrency != null) {
+        predicate = limitAsync.limitAsync(predicate, options.concurrency);
+    }
+    const results = await Promise.all(array.map(predicate));
+    return array.filter((_, index) => results[index]);
+}
+
+exports.filterAsync = filterAsync;
Index: node_modules/es-toolkit/dist/array/filterAsync.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/filterAsync.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/filterAsync.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+import { limitAsync } from './limitAsync.mjs';
+
+async function filterAsync(array, predicate, options) {
+    if (options?.concurrency != null) {
+        predicate = limitAsync(predicate, options.concurrency);
+    }
+    const results = await Promise.all(array.map(predicate));
+    return array.filter((_, index) => results[index]);
+}
+
+export { filterAsync };
Index: node_modules/es-toolkit/dist/array/flatMap.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/flatMap.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatMap.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,23 @@
+/**
+ * Maps each element in the array using the iteratee function and flattens the result up to the specified depth.
+ *
+ * @template T - The type of elements within the array.
+ * @template U - The type of elements within the returned array from the iteratee function.
+ * @template D - The depth to which the array should be flattened.
+ * @param {T[]} arr - The array to flatten.
+ * @param {(item: T, index: number, array: readonly T[]) => U} iteratee - The function that produces the new array elements. It receives the element, its index, and the array.
+ * @param {D} depth - The depth level specifying how deep a nested array structure should be flattened. Defaults to 1.
+ * @returns {Array<FlatArray<U[], D>>} The new array with the mapped and flattened elements.
+ *
+ * @example
+ * const arr = [1, 2, 3];
+ *
+ * flatMap(arr, (item: number) => [item, item]);
+ * // [1, 1, 2, 2, 3, 3]
+ *
+ * flatMap(arr, (item: number) => [[item, item]], 2);
+ * // [1, 1, 2, 2, 3, 3]
+ */
+declare function flatMap<T, U, D extends number = 1>(arr: readonly T[], iteratee: (item: T, index: number, array: readonly T[]) => U, depth?: D): Array<FlatArray<U[], D>>;
+
+export { flatMap };
Index: node_modules/es-toolkit/dist/array/flatMap.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/flatMap.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatMap.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,23 @@
+/**
+ * Maps each element in the array using the iteratee function and flattens the result up to the specified depth.
+ *
+ * @template T - The type of elements within the array.
+ * @template U - The type of elements within the returned array from the iteratee function.
+ * @template D - The depth to which the array should be flattened.
+ * @param {T[]} arr - The array to flatten.
+ * @param {(item: T, index: number, array: readonly T[]) => U} iteratee - The function that produces the new array elements. It receives the element, its index, and the array.
+ * @param {D} depth - The depth level specifying how deep a nested array structure should be flattened. Defaults to 1.
+ * @returns {Array<FlatArray<U[], D>>} The new array with the mapped and flattened elements.
+ *
+ * @example
+ * const arr = [1, 2, 3];
+ *
+ * flatMap(arr, (item: number) => [item, item]);
+ * // [1, 1, 2, 2, 3, 3]
+ *
+ * flatMap(arr, (item: number) => [[item, item]], 2);
+ * // [1, 1, 2, 2, 3, 3]
+ */
+declare function flatMap<T, U, D extends number = 1>(arr: readonly T[], iteratee: (item: T, index: number, array: readonly T[]) => U, depth?: D): Array<FlatArray<U[], D>>;
+
+export { flatMap };
Index: node_modules/es-toolkit/dist/array/flatMap.js
===================================================================
--- node_modules/es-toolkit/dist/array/flatMap.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatMap.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const flatten = require('./flatten.js');
+
+function flatMap(arr, iteratee, depth = 1) {
+    return flatten.flatten(arr.map((item, index) => iteratee(item, index, arr)), depth);
+}
+
+exports.flatMap = flatMap;
Index: node_modules/es-toolkit/dist/array/flatMap.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/flatMap.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatMap.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,7 @@
+import { flatten } from './flatten.mjs';
+
+function flatMap(arr, iteratee, depth = 1) {
+    return flatten(arr.map((item, index) => iteratee(item, index, arr)), depth);
+}
+
+export { flatMap };
Index: node_modules/es-toolkit/dist/array/flatMapAsync.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapAsync.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatMapAsync.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,37 @@
+interface FlatMapAsyncOptions {
+    concurrency?: number;
+}
+/**
+ * Maps each element in an array using an async callback function and flattens the result by one level.
+ *
+ * This is equivalent to calling `mapAsync` followed by `flat(1)`, but more efficient.
+ * Each callback should return an array, and all returned arrays are concatenated into
+ * a single output array.
+ *
+ * @template T - The type of elements in the input array.
+ * @template R - The type of elements in the arrays returned by the callback.
+ * @param {readonly T[]} array The array to transform.
+ * @param {(item: T, index: number, array: readonly T[]) => Promise<R[]>} callback An async function that transforms each element into an array.
+ * @param {FlatMapAsyncOptions} [options] Optional configuration object.
+ * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
+ * @returns {Promise<R[]>} A promise that resolves to a flattened array of transformed values.
+ * @example
+ * const users = [{ id: 1 }, { id: 2 }];
+ * const allPosts = await flatMapAsync(users, async (user) => {
+ *   return await fetchUserPosts(user.id);
+ * });
+ * // Returns: [post1, post2, post3, ...] (all posts from all users)
+ *
+ * @example
+ * // With concurrency limit
+ * const numbers = [1, 2, 3];
+ * const results = await flatMapAsync(
+ *   numbers,
+ *   async (n) => await fetchRelatedItems(n),
+ *   { concurrency: 2 }
+ * );
+ * // Processes at most 2 operations concurrently
+ */
+declare function flatMapAsync<T, R>(array: readonly T[], callback: (item: T, index: number, array: readonly T[]) => Promise<R[]>, options?: FlatMapAsyncOptions): Promise<R[]>;
+
+export { flatMapAsync };
Index: node_modules/es-toolkit/dist/array/flatMapAsync.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapAsync.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatMapAsync.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,37 @@
+interface FlatMapAsyncOptions {
+    concurrency?: number;
+}
+/**
+ * Maps each element in an array using an async callback function and flattens the result by one level.
+ *
+ * This is equivalent to calling `mapAsync` followed by `flat(1)`, but more efficient.
+ * Each callback should return an array, and all returned arrays are concatenated into
+ * a single output array.
+ *
+ * @template T - The type of elements in the input array.
+ * @template R - The type of elements in the arrays returned by the callback.
+ * @param {readonly T[]} array The array to transform.
+ * @param {(item: T, index: number, array: readonly T[]) => Promise<R[]>} callback An async function that transforms each element into an array.
+ * @param {FlatMapAsyncOptions} [options] Optional configuration object.
+ * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
+ * @returns {Promise<R[]>} A promise that resolves to a flattened array of transformed values.
+ * @example
+ * const users = [{ id: 1 }, { id: 2 }];
+ * const allPosts = await flatMapAsync(users, async (user) => {
+ *   return await fetchUserPosts(user.id);
+ * });
+ * // Returns: [post1, post2, post3, ...] (all posts from all users)
+ *
+ * @example
+ * // With concurrency limit
+ * const numbers = [1, 2, 3];
+ * const results = await flatMapAsync(
+ *   numbers,
+ *   async (n) => await fetchRelatedItems(n),
+ *   { concurrency: 2 }
+ * );
+ * // Processes at most 2 operations concurrently
+ */
+declare function flatMapAsync<T, R>(array: readonly T[], callback: (item: T, index: number, array: readonly T[]) => Promise<R[]>, options?: FlatMapAsyncOptions): Promise<R[]>;
+
+export { flatMapAsync };
Index: node_modules/es-toolkit/dist/array/flatMapAsync.js
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapAsync.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatMapAsync.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,16 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const flatten = require('./flatten.js');
+const limitAsync = require('./limitAsync.js');
+
+async function flatMapAsync(array, callback, options) {
+    if (options?.concurrency != null) {
+        callback = limitAsync.limitAsync(callback, options.concurrency);
+    }
+    const results = await Promise.all(array.map(callback));
+    return flatten.flatten(results);
+}
+
+exports.flatMapAsync = flatMapAsync;
Index: node_modules/es-toolkit/dist/array/flatMapAsync.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapAsync.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatMapAsync.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,12 @@
+import { flatten } from './flatten.mjs';
+import { limitAsync } from './limitAsync.mjs';
+
+async function flatMapAsync(array, callback, options) {
+    if (options?.concurrency != null) {
+        callback = limitAsync(callback, options.concurrency);
+    }
+    const results = await Promise.all(array.map(callback));
+    return flatten(results);
+}
+
+export { flatMapAsync };
Index: node_modules/es-toolkit/dist/array/flatMapDeep.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapDeep.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatMapDeep.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+import { ExtractNestedArrayType } from './flattenDeep.mjs';
+
+/**
+ * Recursively maps each element in an array using a provided iteratee function and then deeply flattens the resulting array.
+ *
+ * @template T - The type of elements within the array.
+ * @template U - The type of elements within the returned array from the iteratee function.
+ * @param {T[]} arr - The array to flatten.
+ * @param {(item: T, index: number, array: readonly T[]) => U} iteratee - The function that produces the new array elements. It receives the element, its index, and the array.
+ * @returns {Array<ExtractNestedArrayType<U>>} A new array that has been flattened.
+ *
+ * @example
+ * const result = flatMapDeep([1, 2, 3], n => [[n, n]]);
+ * // [1, 1, 2, 2, 3, 3]
+ */
+declare function flatMapDeep<T, U>(arr: readonly T[], iteratee: (item: T, index: number, array: readonly T[]) => U): Array<ExtractNestedArrayType<U>>;
+
+export { flatMapDeep };
Index: node_modules/es-toolkit/dist/array/flatMapDeep.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapDeep.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatMapDeep.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+import { ExtractNestedArrayType } from './flattenDeep.js';
+
+/**
+ * Recursively maps each element in an array using a provided iteratee function and then deeply flattens the resulting array.
+ *
+ * @template T - The type of elements within the array.
+ * @template U - The type of elements within the returned array from the iteratee function.
+ * @param {T[]} arr - The array to flatten.
+ * @param {(item: T, index: number, array: readonly T[]) => U} iteratee - The function that produces the new array elements. It receives the element, its index, and the array.
+ * @returns {Array<ExtractNestedArrayType<U>>} A new array that has been flattened.
+ *
+ * @example
+ * const result = flatMapDeep([1, 2, 3], n => [[n, n]]);
+ * // [1, 1, 2, 2, 3, 3]
+ */
+declare function flatMapDeep<T, U>(arr: readonly T[], iteratee: (item: T, index: number, array: readonly T[]) => U): Array<ExtractNestedArrayType<U>>;
+
+export { flatMapDeep };
Index: node_modules/es-toolkit/dist/array/flatMapDeep.js
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapDeep.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatMapDeep.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const flattenDeep = require('./flattenDeep.js');
+
+function flatMapDeep(arr, iteratee) {
+    return flattenDeep.flattenDeep(arr.map((item, index) => iteratee(item, index, arr)));
+}
+
+exports.flatMapDeep = flatMapDeep;
Index: node_modules/es-toolkit/dist/array/flatMapDeep.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/flatMapDeep.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatMapDeep.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,7 @@
+import { flattenDeep } from './flattenDeep.mjs';
+
+function flatMapDeep(arr, iteratee) {
+    return flattenDeep(arr.map((item, index) => iteratee(item, index, arr)));
+}
+
+export { flatMapDeep };
Index: node_modules/es-toolkit/dist/array/flatten.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/flatten.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatten.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+/**
+ * Flattens an array up to the specified depth.
+ *
+ * @template T - The type of elements within the array.
+ * @template D - The depth to which the array should be flattened.
+ * @param {T[]} arr - The array to flatten.
+ * @param {D} depth - The depth level specifying how deep a nested array structure should be flattened. Defaults to 1.
+ * @returns {Array<FlatArray<T[], D>>} A new array that has been flattened.
+ *
+ * @example
+ * const arr = flatten([1, [2, 3], [4, [5, 6]]], 1);
+ * // Returns: [1, 2, 3, 4, [5, 6]]
+ *
+ * const arr = flatten([1, [2, 3], [4, [5, 6]]], 2);
+ * // Returns: [1, 2, 3, 4, 5, 6]
+ */
+declare function flatten<T, D extends number = 1>(arr: readonly T[], depth?: D): Array<FlatArray<T[], D>>;
+
+export { flatten };
Index: node_modules/es-toolkit/dist/array/flatten.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/flatten.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatten.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+/**
+ * Flattens an array up to the specified depth.
+ *
+ * @template T - The type of elements within the array.
+ * @template D - The depth to which the array should be flattened.
+ * @param {T[]} arr - The array to flatten.
+ * @param {D} depth - The depth level specifying how deep a nested array structure should be flattened. Defaults to 1.
+ * @returns {Array<FlatArray<T[], D>>} A new array that has been flattened.
+ *
+ * @example
+ * const arr = flatten([1, [2, 3], [4, [5, 6]]], 1);
+ * // Returns: [1, 2, 3, 4, [5, 6]]
+ *
+ * const arr = flatten([1, [2, 3], [4, [5, 6]]], 2);
+ * // Returns: [1, 2, 3, 4, 5, 6]
+ */
+declare function flatten<T, D extends number = 1>(arr: readonly T[], depth?: D): Array<FlatArray<T[], D>>;
+
+export { flatten };
Index: node_modules/es-toolkit/dist/array/flatten.js
===================================================================
--- node_modules/es-toolkit/dist/array/flatten.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatten.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,23 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function flatten(arr, depth = 1) {
+    const result = [];
+    const flooredDepth = Math.floor(depth);
+    const recursive = (arr, currentDepth) => {
+        for (let i = 0; i < arr.length; i++) {
+            const item = arr[i];
+            if (Array.isArray(item) && currentDepth < flooredDepth) {
+                recursive(item, currentDepth + 1);
+            }
+            else {
+                result.push(item);
+            }
+        }
+    };
+    recursive(arr, 0);
+    return result;
+}
+
+exports.flatten = flatten;
Index: node_modules/es-toolkit/dist/array/flatten.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/flatten.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flatten.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+function flatten(arr, depth = 1) {
+    const result = [];
+    const flooredDepth = Math.floor(depth);
+    const recursive = (arr, currentDepth) => {
+        for (let i = 0; i < arr.length; i++) {
+            const item = arr[i];
+            if (Array.isArray(item) && currentDepth < flooredDepth) {
+                recursive(item, currentDepth + 1);
+            }
+            else {
+                result.push(item);
+            }
+        }
+    };
+    recursive(arr, 0);
+    return result;
+}
+
+export { flatten };
Index: node_modules/es-toolkit/dist/array/flattenDeep.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/flattenDeep.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flattenDeep.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,25 @@
+/**
+ * Utility type for recursively unpacking nested array types to extract the type of the innermost element
+ *
+ * @example
+ * ExtractNestedArrayType<(number | (number | number[])[])[]>
+ * // number
+ *
+ * ExtractNestedArrayType<(boolean | (string | number[])[])[]>
+ * // string | number | boolean
+ */
+type ExtractNestedArrayType<T> = T extends ReadonlyArray<infer U> ? ExtractNestedArrayType<U> : T;
+/**
+ * Flattens all depths of a nested array.
+ *
+ * @template T - The type of elements within the array.
+ * @param {T[]} arr - The array to flatten.
+ * @returns {Array<ExtractNestedArrayType<T>>} A new array that has been flattened.
+ *
+ * @example
+ * const arr = flattenDeep([1, [2, [3]], [4, [5, 6]]]);
+ * // Returns: [1, 2, 3, 4, 5, 6]
+ */
+declare function flattenDeep<T>(arr: readonly T[]): Array<ExtractNestedArrayType<T>>;
+
+export { type ExtractNestedArrayType, flattenDeep };
Index: node_modules/es-toolkit/dist/array/flattenDeep.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/flattenDeep.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flattenDeep.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,25 @@
+/**
+ * Utility type for recursively unpacking nested array types to extract the type of the innermost element
+ *
+ * @example
+ * ExtractNestedArrayType<(number | (number | number[])[])[]>
+ * // number
+ *
+ * ExtractNestedArrayType<(boolean | (string | number[])[])[]>
+ * // string | number | boolean
+ */
+type ExtractNestedArrayType<T> = T extends ReadonlyArray<infer U> ? ExtractNestedArrayType<U> : T;
+/**
+ * Flattens all depths of a nested array.
+ *
+ * @template T - The type of elements within the array.
+ * @param {T[]} arr - The array to flatten.
+ * @returns {Array<ExtractNestedArrayType<T>>} A new array that has been flattened.
+ *
+ * @example
+ * const arr = flattenDeep([1, [2, [3]], [4, [5, 6]]]);
+ * // Returns: [1, 2, 3, 4, 5, 6]
+ */
+declare function flattenDeep<T>(arr: readonly T[]): Array<ExtractNestedArrayType<T>>;
+
+export { type ExtractNestedArrayType, flattenDeep };
Index: node_modules/es-toolkit/dist/array/flattenDeep.js
===================================================================
--- node_modules/es-toolkit/dist/array/flattenDeep.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flattenDeep.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const flatten = require('./flatten.js');
+
+function flattenDeep(arr) {
+    return flatten.flatten(arr, Infinity);
+}
+
+exports.flattenDeep = flattenDeep;
Index: node_modules/es-toolkit/dist/array/flattenDeep.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/flattenDeep.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/flattenDeep.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,7 @@
+import { flatten } from './flatten.mjs';
+
+function flattenDeep(arr) {
+    return flatten(arr, Infinity);
+}
+
+export { flattenDeep };
Index: node_modules/es-toolkit/dist/array/forEachAsync.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/forEachAsync.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/forEachAsync.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,35 @@
+interface ForEachAsyncOptions {
+    concurrency?: number;
+}
+/**
+ * Executes an async callback function for each element in an array.
+ *
+ * Unlike the native `forEach`, this function returns a promise that resolves
+ * when all async operations complete. It supports optional concurrency limiting.
+ *
+ * @template T - The type of elements in the array.
+ * @param {readonly T[]} array The array to iterate over.
+ * @param {(item: T, index: number, array: readonly T[]) => Promise<void>} callback An async function to execute for each element.
+ * @param {ForEachAsyncOptions} [options] Optional configuration object.
+ * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
+ * @returns {Promise<void>} A promise that resolves when all operations complete.
+ * @example
+ * const users = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * await forEachAsync(users, async (user) => {
+ *   await updateUser(user.id);
+ * });
+ * // All users have been updated
+ *
+ * @example
+ * // With concurrency limit
+ * const items = [1, 2, 3, 4, 5];
+ * await forEachAsync(
+ *   items,
+ *   async (item) => await processItem(item),
+ *   { concurrency: 2 }
+ * );
+ * // Processes at most 2 items concurrently
+ */
+declare function forEachAsync<T>(array: readonly T[], callback: (item: T, index: number, array: readonly T[]) => Promise<void>, options?: ForEachAsyncOptions): Promise<void>;
+
+export { forEachAsync };
Index: node_modules/es-toolkit/dist/array/forEachAsync.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/forEachAsync.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/forEachAsync.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,35 @@
+interface ForEachAsyncOptions {
+    concurrency?: number;
+}
+/**
+ * Executes an async callback function for each element in an array.
+ *
+ * Unlike the native `forEach`, this function returns a promise that resolves
+ * when all async operations complete. It supports optional concurrency limiting.
+ *
+ * @template T - The type of elements in the array.
+ * @param {readonly T[]} array The array to iterate over.
+ * @param {(item: T, index: number, array: readonly T[]) => Promise<void>} callback An async function to execute for each element.
+ * @param {ForEachAsyncOptions} [options] Optional configuration object.
+ * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
+ * @returns {Promise<void>} A promise that resolves when all operations complete.
+ * @example
+ * const users = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * await forEachAsync(users, async (user) => {
+ *   await updateUser(user.id);
+ * });
+ * // All users have been updated
+ *
+ * @example
+ * // With concurrency limit
+ * const items = [1, 2, 3, 4, 5];
+ * await forEachAsync(
+ *   items,
+ *   async (item) => await processItem(item),
+ *   { concurrency: 2 }
+ * );
+ * // Processes at most 2 items concurrently
+ */
+declare function forEachAsync<T>(array: readonly T[], callback: (item: T, index: number, array: readonly T[]) => Promise<void>, options?: ForEachAsyncOptions): Promise<void>;
+
+export { forEachAsync };
Index: node_modules/es-toolkit/dist/array/forEachAsync.js
===================================================================
--- node_modules/es-toolkit/dist/array/forEachAsync.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/forEachAsync.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,14 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const limitAsync = require('./limitAsync.js');
+
+async function forEachAsync(array, callback, options) {
+    if (options?.concurrency != null) {
+        callback = limitAsync.limitAsync(callback, options.concurrency);
+    }
+    await Promise.all(array.map(callback));
+}
+
+exports.forEachAsync = forEachAsync;
Index: node_modules/es-toolkit/dist/array/forEachAsync.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/forEachAsync.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/forEachAsync.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,10 @@
+import { limitAsync } from './limitAsync.mjs';
+
+async function forEachAsync(array, callback, options) {
+    if (options?.concurrency != null) {
+        callback = limitAsync(callback, options.concurrency);
+    }
+    await Promise.all(array.map(callback));
+}
+
+export { forEachAsync };
Index: node_modules/es-toolkit/dist/array/forEachRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/forEachRight.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/forEachRight.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,48 @@
+/**
+ * Iterates over elements of 'arr' from right to left and invokes 'callback' for each element.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to iterate over.
+ * @param {(value: T, index: number, arr: T[]) => void} callback - The function invoked per iteration.
+ * The callback function receives three arguments:
+ *  - 'value': The current element being processed in the array.
+ *  - 'index': The index of the current element being processed in the array.
+ *  - 'arr': The array 'forEachRight' was called upon.
+ *
+ * @example
+ * const array = [1, 2, 3];
+ * const result: number[] = [];
+ *
+ * // Use the forEachRight function to iterate through the array and add each element to the result array.
+ * forEachRight(array, (value) => {
+ *  result.push(value);
+ * })
+ *
+ * console.log(result) // Output: [3, 2, 1]
+ */
+declare function forEachRight<T>(arr: T[], callback: (value: T, index: number, arr: T[]) => void): void;
+/**
+ * Iterates over elements of 'arr' from right to left and invokes 'callback' for each element.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to iterate over.
+ * @param {(value: T, index: number, arr: T[]) => void} callback - The function invoked per iteration.
+ * The callback function receives three arguments:
+ *  - 'value': The current element being processed in the array.
+ *  - 'index': The index of the current element being processed in the array.
+ *  - 'arr': The array 'forEachRight' was called upon.
+ *
+ * @example
+ * const array = [1, 2, 3];
+ * const result: number[] = [];
+ *
+ * // Use the forEachRight function to iterate through the array and add each element to the result array.
+ * forEachRight(array, (value) => {
+ *  result.push(value);
+ * })
+ *
+ * console.log(result) // Output: [3, 2, 1]
+ */
+declare function forEachRight<T>(arr: readonly T[], callback: (value: T, index: number, arr: readonly T[]) => void): void;
+
+export { forEachRight };
Index: node_modules/es-toolkit/dist/array/forEachRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/forEachRight.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/forEachRight.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,48 @@
+/**
+ * Iterates over elements of 'arr' from right to left and invokes 'callback' for each element.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to iterate over.
+ * @param {(value: T, index: number, arr: T[]) => void} callback - The function invoked per iteration.
+ * The callback function receives three arguments:
+ *  - 'value': The current element being processed in the array.
+ *  - 'index': The index of the current element being processed in the array.
+ *  - 'arr': The array 'forEachRight' was called upon.
+ *
+ * @example
+ * const array = [1, 2, 3];
+ * const result: number[] = [];
+ *
+ * // Use the forEachRight function to iterate through the array and add each element to the result array.
+ * forEachRight(array, (value) => {
+ *  result.push(value);
+ * })
+ *
+ * console.log(result) // Output: [3, 2, 1]
+ */
+declare function forEachRight<T>(arr: T[], callback: (value: T, index: number, arr: T[]) => void): void;
+/**
+ * Iterates over elements of 'arr' from right to left and invokes 'callback' for each element.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to iterate over.
+ * @param {(value: T, index: number, arr: T[]) => void} callback - The function invoked per iteration.
+ * The callback function receives three arguments:
+ *  - 'value': The current element being processed in the array.
+ *  - 'index': The index of the current element being processed in the array.
+ *  - 'arr': The array 'forEachRight' was called upon.
+ *
+ * @example
+ * const array = [1, 2, 3];
+ * const result: number[] = [];
+ *
+ * // Use the forEachRight function to iterate through the array and add each element to the result array.
+ * forEachRight(array, (value) => {
+ *  result.push(value);
+ * })
+ *
+ * console.log(result) // Output: [3, 2, 1]
+ */
+declare function forEachRight<T>(arr: readonly T[], callback: (value: T, index: number, arr: readonly T[]) => void): void;
+
+export { forEachRight };
Index: node_modules/es-toolkit/dist/array/forEachRight.js
===================================================================
--- node_modules/es-toolkit/dist/array/forEachRight.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/forEachRight.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,12 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function forEachRight(arr, callback) {
+    for (let i = arr.length - 1; i >= 0; i--) {
+        const element = arr[i];
+        callback(element, i, arr);
+    }
+}
+
+exports.forEachRight = forEachRight;
Index: node_modules/es-toolkit/dist/array/forEachRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/forEachRight.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/forEachRight.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,8 @@
+function forEachRight(arr, callback) {
+    for (let i = arr.length - 1; i >= 0; i--) {
+        const element = arr[i];
+        callback(element, i, arr);
+    }
+}
+
+export { forEachRight };
Index: node_modules/es-toolkit/dist/array/groupBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/groupBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/groupBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,41 @@
+/**
+ * Groups the elements of an array based on a provided key-generating function.
+ *
+ * This function takes an array and a function that generates a key from each element. It returns
+ * an object where the keys are the generated keys and the values are arrays of elements that share
+ * the same key.
+ *
+ * @template T - The type of elements in the array.
+ * @template K - The type of keys.
+ * @param {T[]} arr - The array to group.
+ * @param {(item: T, index: number, array: readonly T[]) => K} getKeyFromItem - A function that generates a key from an element, its index, and the array.
+ * @returns {Record<K, T[]>} An object where each key is associated with an array of elements that
+ * share that key.
+ *
+ * @example
+ * const array = [
+ *   { category: 'fruit', name: 'apple' },
+ *   { category: 'fruit', name: 'banana' },
+ *   { category: 'vegetable', name: 'carrot' }
+ * ];
+ * const result = groupBy(array, item => item.category);
+ * // result will be:
+ * // {
+ * //   fruit: [
+ * //     { category: 'fruit', name: 'apple' },
+ * //     { category: 'fruit', name: 'banana' }
+ * //   ],
+ * //   vegetable: [
+ * //     { category: 'vegetable', name: 'carrot' }
+ * //   ]
+ * // }
+ *
+ * @example
+ * // Using index parameter
+ * const items = ['a', 'b', 'c', 'd'];
+ * const result = groupBy(items, (item, index) => index % 2 === 0 ? 'even' : 'odd');
+ * // result will be: { even: ['a', 'c'], odd: ['b', 'd'] }
+ */
+declare function groupBy<T, K extends PropertyKey>(arr: readonly T[], getKeyFromItem: (item: T, index: number, array: readonly T[]) => K): Record<K, T[]>;
+
+export { groupBy };
Index: node_modules/es-toolkit/dist/array/groupBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/groupBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/groupBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,41 @@
+/**
+ * Groups the elements of an array based on a provided key-generating function.
+ *
+ * This function takes an array and a function that generates a key from each element. It returns
+ * an object where the keys are the generated keys and the values are arrays of elements that share
+ * the same key.
+ *
+ * @template T - The type of elements in the array.
+ * @template K - The type of keys.
+ * @param {T[]} arr - The array to group.
+ * @param {(item: T, index: number, array: readonly T[]) => K} getKeyFromItem - A function that generates a key from an element, its index, and the array.
+ * @returns {Record<K, T[]>} An object where each key is associated with an array of elements that
+ * share that key.
+ *
+ * @example
+ * const array = [
+ *   { category: 'fruit', name: 'apple' },
+ *   { category: 'fruit', name: 'banana' },
+ *   { category: 'vegetable', name: 'carrot' }
+ * ];
+ * const result = groupBy(array, item => item.category);
+ * // result will be:
+ * // {
+ * //   fruit: [
+ * //     { category: 'fruit', name: 'apple' },
+ * //     { category: 'fruit', name: 'banana' }
+ * //   ],
+ * //   vegetable: [
+ * //     { category: 'vegetable', name: 'carrot' }
+ * //   ]
+ * // }
+ *
+ * @example
+ * // Using index parameter
+ * const items = ['a', 'b', 'c', 'd'];
+ * const result = groupBy(items, (item, index) => index % 2 === 0 ? 'even' : 'odd');
+ * // result will be: { even: ['a', 'c'], odd: ['b', 'd'] }
+ */
+declare function groupBy<T, K extends PropertyKey>(arr: readonly T[], getKeyFromItem: (item: T, index: number, array: readonly T[]) => K): Record<K, T[]>;
+
+export { groupBy };
Index: node_modules/es-toolkit/dist/array/groupBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/groupBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/groupBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function groupBy(arr, getKeyFromItem) {
+    const result = {};
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        const key = getKeyFromItem(item, i, arr);
+        if (!Object.hasOwn(result, key)) {
+            result[key] = [];
+        }
+        result[key].push(item);
+    }
+    return result;
+}
+
+exports.groupBy = groupBy;
Index: node_modules/es-toolkit/dist/array/groupBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/groupBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/groupBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,14 @@
+function groupBy(arr, getKeyFromItem) {
+    const result = {};
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        const key = getKeyFromItem(item, i, arr);
+        if (!Object.hasOwn(result, key)) {
+            result[key] = [];
+        }
+        result[key].push(item);
+    }
+    return result;
+}
+
+export { groupBy };
Index: node_modules/es-toolkit/dist/array/head.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/head.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/head.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,34 @@
+/**
+ * Returns the first element of an array.
+ *
+ * This function takes an array and returns the first element of the array.
+ * If the array is empty, the function returns `undefined`.
+ *
+ * @template T - The type of elements in the array.
+ * @param {[T, ...T[]]} arr - A non-empty array from which to get the first element.
+ * @returns {T} The first element of the array.
+ *
+ * @example
+ * const arr = [1, 2, 3];
+ * const firstElement = head(arr);
+ * // firstElement will be 1
+ */
+declare function head<T>(arr: readonly [T, ...T[]]): T;
+/**
+ * Returns the first element of an array or `undefined` if the array is empty.
+ *
+ * This function takes an array and returns the first element of the array.
+ * If the array is empty, the function returns `undefined`.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array from which to get the first element.
+ * @returns {T | undefined} The first element of the array, or `undefined` if the array is empty.
+ *
+ * @example
+ * const emptyArr: number[] = [];
+ * const noElement = head(emptyArr);
+ * // noElement will be undefined
+ */
+declare function head<T>(arr: readonly T[]): T | undefined;
+
+export { head };
Index: node_modules/es-toolkit/dist/array/head.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/head.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/head.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,34 @@
+/**
+ * Returns the first element of an array.
+ *
+ * This function takes an array and returns the first element of the array.
+ * If the array is empty, the function returns `undefined`.
+ *
+ * @template T - The type of elements in the array.
+ * @param {[T, ...T[]]} arr - A non-empty array from which to get the first element.
+ * @returns {T} The first element of the array.
+ *
+ * @example
+ * const arr = [1, 2, 3];
+ * const firstElement = head(arr);
+ * // firstElement will be 1
+ */
+declare function head<T>(arr: readonly [T, ...T[]]): T;
+/**
+ * Returns the first element of an array or `undefined` if the array is empty.
+ *
+ * This function takes an array and returns the first element of the array.
+ * If the array is empty, the function returns `undefined`.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array from which to get the first element.
+ * @returns {T | undefined} The first element of the array, or `undefined` if the array is empty.
+ *
+ * @example
+ * const emptyArr: number[] = [];
+ * const noElement = head(emptyArr);
+ * // noElement will be undefined
+ */
+declare function head<T>(arr: readonly T[]): T | undefined;
+
+export { head };
Index: node_modules/es-toolkit/dist/array/head.js
===================================================================
--- node_modules/es-toolkit/dist/array/head.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/head.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,9 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function head(arr) {
+    return arr[0];
+}
+
+exports.head = head;
Index: node_modules/es-toolkit/dist/array/head.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/head.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/head.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,5 @@
+function head(arr) {
+    return arr[0];
+}
+
+export { head };
Index: node_modules/es-toolkit/dist/array/index.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/index.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/index.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,66 @@
+export { at } from './at.mjs';
+export { chunk } from './chunk.mjs';
+export { compact } from './compact.mjs';
+export { countBy } from './countBy.mjs';
+export { difference } from './difference.mjs';
+export { differenceBy } from './differenceBy.mjs';
+export { differenceWith } from './differenceWith.mjs';
+export { drop } from './drop.mjs';
+export { dropRight } from './dropRight.mjs';
+export { dropRightWhile } from './dropRightWhile.mjs';
+export { dropWhile } from './dropWhile.mjs';
+export { fill } from './fill.mjs';
+export { filterAsync } from './filterAsync.mjs';
+export { flatMap } from './flatMap.mjs';
+export { flatMapAsync } from './flatMapAsync.mjs';
+export { flatMapDeep } from './flatMapDeep.mjs';
+export { flatten } from './flatten.mjs';
+export { flattenDeep } from './flattenDeep.mjs';
+export { forEachAsync } from './forEachAsync.mjs';
+export { forEachRight } from './forEachRight.mjs';
+export { groupBy } from './groupBy.mjs';
+export { head } from './head.mjs';
+export { initial } from './initial.mjs';
+export { intersection } from './intersection.mjs';
+export { intersectionBy } from './intersectionBy.mjs';
+export { intersectionWith } from './intersectionWith.mjs';
+export { isSubset } from './isSubset.mjs';
+export { isSubsetWith } from './isSubsetWith.mjs';
+export { keyBy } from './keyBy.mjs';
+export { last } from './last.mjs';
+export { limitAsync } from './limitAsync.mjs';
+export { mapAsync } from './mapAsync.mjs';
+export { maxBy } from './maxBy.mjs';
+export { minBy } from './minBy.mjs';
+export { orderBy } from './orderBy.mjs';
+export { partition } from './partition.mjs';
+export { pull } from './pull.mjs';
+export { pullAt } from './pullAt.mjs';
+export { reduceAsync } from './reduceAsync.mjs';
+export { remove } from './remove.mjs';
+export { sample } from './sample.mjs';
+export { sampleSize } from './sampleSize.mjs';
+export { shuffle } from './shuffle.mjs';
+export { sortBy } from './sortBy.mjs';
+export { tail } from './tail.mjs';
+export { take } from './take.mjs';
+export { takeRight } from './takeRight.mjs';
+export { takeRightWhile } from './takeRightWhile.mjs';
+export { takeWhile } from './takeWhile.mjs';
+export { toFilled } from './toFilled.mjs';
+export { union } from './union.mjs';
+export { unionBy } from './unionBy.mjs';
+export { unionWith } from './unionWith.mjs';
+export { uniq } from './uniq.mjs';
+export { uniqBy } from './uniqBy.mjs';
+export { uniqWith } from './uniqWith.mjs';
+export { unzip } from './unzip.mjs';
+export { unzipWith } from './unzipWith.mjs';
+export { windowed } from './windowed.mjs';
+export { without } from './without.mjs';
+export { xor } from './xor.mjs';
+export { xorBy } from './xorBy.mjs';
+export { xorWith } from './xorWith.mjs';
+export { zip } from './zip.mjs';
+export { zipObject } from './zipObject.mjs';
+export { zipWith } from './zipWith.mjs';
Index: node_modules/es-toolkit/dist/array/index.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/index.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/index.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,66 @@
+export { at } from './at.js';
+export { chunk } from './chunk.js';
+export { compact } from './compact.js';
+export { countBy } from './countBy.js';
+export { difference } from './difference.js';
+export { differenceBy } from './differenceBy.js';
+export { differenceWith } from './differenceWith.js';
+export { drop } from './drop.js';
+export { dropRight } from './dropRight.js';
+export { dropRightWhile } from './dropRightWhile.js';
+export { dropWhile } from './dropWhile.js';
+export { fill } from './fill.js';
+export { filterAsync } from './filterAsync.js';
+export { flatMap } from './flatMap.js';
+export { flatMapAsync } from './flatMapAsync.js';
+export { flatMapDeep } from './flatMapDeep.js';
+export { flatten } from './flatten.js';
+export { flattenDeep } from './flattenDeep.js';
+export { forEachAsync } from './forEachAsync.js';
+export { forEachRight } from './forEachRight.js';
+export { groupBy } from './groupBy.js';
+export { head } from './head.js';
+export { initial } from './initial.js';
+export { intersection } from './intersection.js';
+export { intersectionBy } from './intersectionBy.js';
+export { intersectionWith } from './intersectionWith.js';
+export { isSubset } from './isSubset.js';
+export { isSubsetWith } from './isSubsetWith.js';
+export { keyBy } from './keyBy.js';
+export { last } from './last.js';
+export { limitAsync } from './limitAsync.js';
+export { mapAsync } from './mapAsync.js';
+export { maxBy } from './maxBy.js';
+export { minBy } from './minBy.js';
+export { orderBy } from './orderBy.js';
+export { partition } from './partition.js';
+export { pull } from './pull.js';
+export { pullAt } from './pullAt.js';
+export { reduceAsync } from './reduceAsync.js';
+export { remove } from './remove.js';
+export { sample } from './sample.js';
+export { sampleSize } from './sampleSize.js';
+export { shuffle } from './shuffle.js';
+export { sortBy } from './sortBy.js';
+export { tail } from './tail.js';
+export { take } from './take.js';
+export { takeRight } from './takeRight.js';
+export { takeRightWhile } from './takeRightWhile.js';
+export { takeWhile } from './takeWhile.js';
+export { toFilled } from './toFilled.js';
+export { union } from './union.js';
+export { unionBy } from './unionBy.js';
+export { unionWith } from './unionWith.js';
+export { uniq } from './uniq.js';
+export { uniqBy } from './uniqBy.js';
+export { uniqWith } from './uniqWith.js';
+export { unzip } from './unzip.js';
+export { unzipWith } from './unzipWith.js';
+export { windowed } from './windowed.js';
+export { without } from './without.js';
+export { xor } from './xor.js';
+export { xorBy } from './xorBy.js';
+export { xorWith } from './xorWith.js';
+export { zip } from './zip.js';
+export { zipObject } from './zipObject.js';
+export { zipWith } from './zipWith.js';
Index: node_modules/es-toolkit/dist/array/index.js
===================================================================
--- node_modules/es-toolkit/dist/array/index.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/index.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,139 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const at = require('./at.js');
+const chunk = require('./chunk.js');
+const compact = require('./compact.js');
+const countBy = require('./countBy.js');
+const difference = require('./difference.js');
+const differenceBy = require('./differenceBy.js');
+const differenceWith = require('./differenceWith.js');
+const drop = require('./drop.js');
+const dropRight = require('./dropRight.js');
+const dropRightWhile = require('./dropRightWhile.js');
+const dropWhile = require('./dropWhile.js');
+const fill = require('./fill.js');
+const filterAsync = require('./filterAsync.js');
+const flatMap = require('./flatMap.js');
+const flatMapAsync = require('./flatMapAsync.js');
+const flatMapDeep = require('./flatMapDeep.js');
+const flatten = require('./flatten.js');
+const flattenDeep = require('./flattenDeep.js');
+const forEachAsync = require('./forEachAsync.js');
+const forEachRight = require('./forEachRight.js');
+const groupBy = require('./groupBy.js');
+const head = require('./head.js');
+const initial = require('./initial.js');
+const intersection = require('./intersection.js');
+const intersectionBy = require('./intersectionBy.js');
+const intersectionWith = require('./intersectionWith.js');
+const isSubset = require('./isSubset.js');
+const isSubsetWith = require('./isSubsetWith.js');
+const keyBy = require('./keyBy.js');
+const last = require('./last.js');
+const limitAsync = require('./limitAsync.js');
+const mapAsync = require('./mapAsync.js');
+const maxBy = require('./maxBy.js');
+const minBy = require('./minBy.js');
+const orderBy = require('./orderBy.js');
+const partition = require('./partition.js');
+const pull = require('./pull.js');
+const pullAt = require('./pullAt.js');
+const reduceAsync = require('./reduceAsync.js');
+const remove = require('./remove.js');
+const sample = require('./sample.js');
+const sampleSize = require('./sampleSize.js');
+const shuffle = require('./shuffle.js');
+const sortBy = require('./sortBy.js');
+const tail = require('./tail.js');
+const take = require('./take.js');
+const takeRight = require('./takeRight.js');
+const takeRightWhile = require('./takeRightWhile.js');
+const takeWhile = require('./takeWhile.js');
+const toFilled = require('./toFilled.js');
+const union = require('./union.js');
+const unionBy = require('./unionBy.js');
+const unionWith = require('./unionWith.js');
+const uniq = require('./uniq.js');
+const uniqBy = require('./uniqBy.js');
+const uniqWith = require('./uniqWith.js');
+const unzip = require('./unzip.js');
+const unzipWith = require('./unzipWith.js');
+const windowed = require('./windowed.js');
+const without = require('./without.js');
+const xor = require('./xor.js');
+const xorBy = require('./xorBy.js');
+const xorWith = require('./xorWith.js');
+const zip = require('./zip.js');
+const zipObject = require('./zipObject.js');
+const zipWith = require('./zipWith.js');
+
+
+
+exports.at = at.at;
+exports.chunk = chunk.chunk;
+exports.compact = compact.compact;
+exports.countBy = countBy.countBy;
+exports.difference = difference.difference;
+exports.differenceBy = differenceBy.differenceBy;
+exports.differenceWith = differenceWith.differenceWith;
+exports.drop = drop.drop;
+exports.dropRight = dropRight.dropRight;
+exports.dropRightWhile = dropRightWhile.dropRightWhile;
+exports.dropWhile = dropWhile.dropWhile;
+exports.fill = fill.fill;
+exports.filterAsync = filterAsync.filterAsync;
+exports.flatMap = flatMap.flatMap;
+exports.flatMapAsync = flatMapAsync.flatMapAsync;
+exports.flatMapDeep = flatMapDeep.flatMapDeep;
+exports.flatten = flatten.flatten;
+exports.flattenDeep = flattenDeep.flattenDeep;
+exports.forEachAsync = forEachAsync.forEachAsync;
+exports.forEachRight = forEachRight.forEachRight;
+exports.groupBy = groupBy.groupBy;
+exports.head = head.head;
+exports.initial = initial.initial;
+exports.intersection = intersection.intersection;
+exports.intersectionBy = intersectionBy.intersectionBy;
+exports.intersectionWith = intersectionWith.intersectionWith;
+exports.isSubset = isSubset.isSubset;
+exports.isSubsetWith = isSubsetWith.isSubsetWith;
+exports.keyBy = keyBy.keyBy;
+exports.last = last.last;
+exports.limitAsync = limitAsync.limitAsync;
+exports.mapAsync = mapAsync.mapAsync;
+exports.maxBy = maxBy.maxBy;
+exports.minBy = minBy.minBy;
+exports.orderBy = orderBy.orderBy;
+exports.partition = partition.partition;
+exports.pull = pull.pull;
+exports.pullAt = pullAt.pullAt;
+exports.reduceAsync = reduceAsync.reduceAsync;
+exports.remove = remove.remove;
+exports.sample = sample.sample;
+exports.sampleSize = sampleSize.sampleSize;
+exports.shuffle = shuffle.shuffle;
+exports.sortBy = sortBy.sortBy;
+exports.tail = tail.tail;
+exports.take = take.take;
+exports.takeRight = takeRight.takeRight;
+exports.takeRightWhile = takeRightWhile.takeRightWhile;
+exports.takeWhile = takeWhile.takeWhile;
+exports.toFilled = toFilled.toFilled;
+exports.union = union.union;
+exports.unionBy = unionBy.unionBy;
+exports.unionWith = unionWith.unionWith;
+exports.uniq = uniq.uniq;
+exports.uniqBy = uniqBy.uniqBy;
+exports.uniqWith = uniqWith.uniqWith;
+exports.unzip = unzip.unzip;
+exports.unzipWith = unzipWith.unzipWith;
+exports.windowed = windowed.windowed;
+exports.without = without.without;
+exports.xor = xor.xor;
+exports.xorBy = xorBy.xorBy;
+exports.xorWith = xorWith.xorWith;
+exports.zip = zip.zip;
+exports.zipObject = zipObject.zipObject;
+exports.zipWith = zipWith.zipWith;
Index: node_modules/es-toolkit/dist/array/index.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/index.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/index.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,66 @@
+export { at } from './at.mjs';
+export { chunk } from './chunk.mjs';
+export { compact } from './compact.mjs';
+export { countBy } from './countBy.mjs';
+export { difference } from './difference.mjs';
+export { differenceBy } from './differenceBy.mjs';
+export { differenceWith } from './differenceWith.mjs';
+export { drop } from './drop.mjs';
+export { dropRight } from './dropRight.mjs';
+export { dropRightWhile } from './dropRightWhile.mjs';
+export { dropWhile } from './dropWhile.mjs';
+export { fill } from './fill.mjs';
+export { filterAsync } from './filterAsync.mjs';
+export { flatMap } from './flatMap.mjs';
+export { flatMapAsync } from './flatMapAsync.mjs';
+export { flatMapDeep } from './flatMapDeep.mjs';
+export { flatten } from './flatten.mjs';
+export { flattenDeep } from './flattenDeep.mjs';
+export { forEachAsync } from './forEachAsync.mjs';
+export { forEachRight } from './forEachRight.mjs';
+export { groupBy } from './groupBy.mjs';
+export { head } from './head.mjs';
+export { initial } from './initial.mjs';
+export { intersection } from './intersection.mjs';
+export { intersectionBy } from './intersectionBy.mjs';
+export { intersectionWith } from './intersectionWith.mjs';
+export { isSubset } from './isSubset.mjs';
+export { isSubsetWith } from './isSubsetWith.mjs';
+export { keyBy } from './keyBy.mjs';
+export { last } from './last.mjs';
+export { limitAsync } from './limitAsync.mjs';
+export { mapAsync } from './mapAsync.mjs';
+export { maxBy } from './maxBy.mjs';
+export { minBy } from './minBy.mjs';
+export { orderBy } from './orderBy.mjs';
+export { partition } from './partition.mjs';
+export { pull } from './pull.mjs';
+export { pullAt } from './pullAt.mjs';
+export { reduceAsync } from './reduceAsync.mjs';
+export { remove } from './remove.mjs';
+export { sample } from './sample.mjs';
+export { sampleSize } from './sampleSize.mjs';
+export { shuffle } from './shuffle.mjs';
+export { sortBy } from './sortBy.mjs';
+export { tail } from './tail.mjs';
+export { take } from './take.mjs';
+export { takeRight } from './takeRight.mjs';
+export { takeRightWhile } from './takeRightWhile.mjs';
+export { takeWhile } from './takeWhile.mjs';
+export { toFilled } from './toFilled.mjs';
+export { union } from './union.mjs';
+export { unionBy } from './unionBy.mjs';
+export { unionWith } from './unionWith.mjs';
+export { uniq } from './uniq.mjs';
+export { uniqBy } from './uniqBy.mjs';
+export { uniqWith } from './uniqWith.mjs';
+export { unzip } from './unzip.mjs';
+export { unzipWith } from './unzipWith.mjs';
+export { windowed } from './windowed.mjs';
+export { without } from './without.mjs';
+export { xor } from './xor.mjs';
+export { xorBy } from './xorBy.mjs';
+export { xorWith } from './xorWith.mjs';
+export { zip } from './zip.mjs';
+export { zipObject } from './zipObject.mjs';
+export { zipWith } from './zipWith.mjs';
Index: node_modules/es-toolkit/dist/array/initial.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/initial.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/initial.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,54 @@
+/**
+ * Returns an empty array when the input is a tuple containing exactly one element.
+ *
+ * @template T The type of the single element.
+ * @param {[T]} arr - A tuple containing exactly one element.
+ * @returns {[]} An empty array since there is only one element.
+ *
+ * @example
+ * const array = [100] as const;
+ * const result = initial(array);
+ * // result will be []
+ */
+declare function initial<T>(arr: readonly [T]): [];
+/**
+ * Returns an empty array when the input array is empty.
+ *
+ * @returns {[]} Always returns an empty array for an empty input.
+ *
+ * @example
+ * const array = [] as const;
+ * const result = initial(array);
+ * // result will be []
+ */
+declare function initial(arr: readonly []): [];
+/**
+ * Returns a new array containing all elements except the last one from a tuple with multiple elements.
+ *
+ * @template T The types of the initial elements.
+ * @template U The type of the last element in the tuple.
+ * @param {[...T[], U]} arr - A tuple with one or more elements.
+ * @returns {T[]} A new array containing all but the last element of the tuple.
+ *
+ * @example
+ * const array = ['apple', 'banana', 'cherry'] as const;
+ * const result = initial(array);
+ * // result will be ['apple', 'banana']
+ */
+declare function initial<T, U>(arr: readonly [...T[], U]): T[];
+/**
+ * Returns a new array containing all elements except the last one from the input array.
+ * If the input array is empty or has only one element, the function returns an empty array.
+ *
+ * @template T The type of elements in the array.
+ * @param {T[]} arr - The input array.
+ * @returns {T[]} A new array containing all but the last element of the input array.
+ *
+ * @example
+ * const arr = [1, 2, 3, 4];
+ * const result = initial(arr);
+ * // result will be [1, 2, 3]
+ */
+declare function initial<T>(arr: readonly T[]): T[];
+
+export { initial };
Index: node_modules/es-toolkit/dist/array/initial.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/initial.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/initial.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,54 @@
+/**
+ * Returns an empty array when the input is a tuple containing exactly one element.
+ *
+ * @template T The type of the single element.
+ * @param {[T]} arr - A tuple containing exactly one element.
+ * @returns {[]} An empty array since there is only one element.
+ *
+ * @example
+ * const array = [100] as const;
+ * const result = initial(array);
+ * // result will be []
+ */
+declare function initial<T>(arr: readonly [T]): [];
+/**
+ * Returns an empty array when the input array is empty.
+ *
+ * @returns {[]} Always returns an empty array for an empty input.
+ *
+ * @example
+ * const array = [] as const;
+ * const result = initial(array);
+ * // result will be []
+ */
+declare function initial(arr: readonly []): [];
+/**
+ * Returns a new array containing all elements except the last one from a tuple with multiple elements.
+ *
+ * @template T The types of the initial elements.
+ * @template U The type of the last element in the tuple.
+ * @param {[...T[], U]} arr - A tuple with one or more elements.
+ * @returns {T[]} A new array containing all but the last element of the tuple.
+ *
+ * @example
+ * const array = ['apple', 'banana', 'cherry'] as const;
+ * const result = initial(array);
+ * // result will be ['apple', 'banana']
+ */
+declare function initial<T, U>(arr: readonly [...T[], U]): T[];
+/**
+ * Returns a new array containing all elements except the last one from the input array.
+ * If the input array is empty or has only one element, the function returns an empty array.
+ *
+ * @template T The type of elements in the array.
+ * @param {T[]} arr - The input array.
+ * @returns {T[]} A new array containing all but the last element of the input array.
+ *
+ * @example
+ * const arr = [1, 2, 3, 4];
+ * const result = initial(arr);
+ * // result will be [1, 2, 3]
+ */
+declare function initial<T>(arr: readonly T[]): T[];
+
+export { initial };
Index: node_modules/es-toolkit/dist/array/initial.js
===================================================================
--- node_modules/es-toolkit/dist/array/initial.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/initial.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,9 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function initial(arr) {
+    return arr.slice(0, -1);
+}
+
+exports.initial = initial;
Index: node_modules/es-toolkit/dist/array/initial.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/initial.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/initial.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,5 @@
+function initial(arr) {
+    return arr.slice(0, -1);
+}
+
+export { initial };
Index: node_modules/es-toolkit/dist/array/intersection.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/intersection.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/intersection.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,21 @@
+/**
+ * Returns the intersection of two arrays.
+ *
+ * This function takes two arrays and returns a new array containing the elements that are
+ * present in both arrays. It effectively filters out any elements from the first array that
+ * are not found in the second array.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} firstArr - The first array to compare.
+ * @param {T[]} secondArr - The second array to compare.
+ * @returns {T[]} A new array containing the elements that are present in both arrays.
+ *
+ * @example
+ * const array1 = [1, 2, 3, 4, 5];
+ * const array2 = [3, 4, 5, 6, 7];
+ * const result = intersection(array1, array2);
+ * // result will be [3, 4, 5] since these elements are in both arrays.
+ */
+declare function intersection<T>(firstArr: readonly T[], secondArr: readonly T[]): T[];
+
+export { intersection };
Index: node_modules/es-toolkit/dist/array/intersection.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/intersection.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/intersection.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,21 @@
+/**
+ * Returns the intersection of two arrays.
+ *
+ * This function takes two arrays and returns a new array containing the elements that are
+ * present in both arrays. It effectively filters out any elements from the first array that
+ * are not found in the second array.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} firstArr - The first array to compare.
+ * @param {T[]} secondArr - The second array to compare.
+ * @returns {T[]} A new array containing the elements that are present in both arrays.
+ *
+ * @example
+ * const array1 = [1, 2, 3, 4, 5];
+ * const array2 = [3, 4, 5, 6, 7];
+ * const result = intersection(array1, array2);
+ * // result will be [3, 4, 5] since these elements are in both arrays.
+ */
+declare function intersection<T>(firstArr: readonly T[], secondArr: readonly T[]): T[];
+
+export { intersection };
Index: node_modules/es-toolkit/dist/array/intersection.js
===================================================================
--- node_modules/es-toolkit/dist/array/intersection.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/intersection.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,10 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function intersection(firstArr, secondArr) {
+    const secondSet = new Set(secondArr);
+    return firstArr.filter(item => secondSet.has(item));
+}
+
+exports.intersection = intersection;
Index: node_modules/es-toolkit/dist/array/intersection.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/intersection.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/intersection.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,6 @@
+function intersection(firstArr, secondArr) {
+    const secondSet = new Set(secondArr);
+    return firstArr.filter(item => secondSet.has(item));
+}
+
+export { intersection };
Index: node_modules/es-toolkit/dist/array/intersectionBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/intersectionBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,36 @@
+/**
+ * Returns the intersection of two arrays based on a mapping function.
+ *
+ * This function takes two arrays and a mapping function. It returns a new array containing
+ * the elements from the first array that, when mapped using the provided function, have matching
+ * mapped elements in the second array. It effectively filters out any elements from the first array
+ * that do not have corresponding mapped values in the second array.
+ *
+ * @template T - The type of elements in the first array.
+ * @template U - The type of elements in the second array.
+ * @param {T[]} firstArr - The first array to compare.
+ * @param {U[]} secondArr - The second array to compare.
+ * @param {(item: T | U) => unknown} mapper - A function to map the elements of both arrays for comparison.
+ * @returns {T[]} A new array containing the elements from the first array that have corresponding mapped values in the second array.
+ *
+ * @example
+ * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const array2 = [{ id: 2 }, { id: 4 }];
+ * const mapper = item => item.id;
+ * const result = intersectionBy(array1, array2, mapper);
+ * // result will be [{ id: 2 }] since only this element has a matching id in both arrays.
+ *
+ * @example
+ * const array1 = [
+ *   { id: 1, name: 'jane' },
+ *   { id: 2, name: 'amy' },
+ *   { id: 3, name: 'michael' },
+ * ];
+ * const array2 = [2, 4];
+ * const mapper = item => (typeof item === 'object' ? item.id : item);
+ * const result = intersectionBy(array1, array2, mapper);
+ * // result will be [{ id: 2, name: 'amy' }] since only this element has a matching id that is equal to seconds array's element.
+ */
+declare function intersectionBy<T, U>(firstArr: readonly T[], secondArr: readonly U[], mapper: (item: T | U) => unknown): T[];
+
+export { intersectionBy };
Index: node_modules/es-toolkit/dist/array/intersectionBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/intersectionBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,36 @@
+/**
+ * Returns the intersection of two arrays based on a mapping function.
+ *
+ * This function takes two arrays and a mapping function. It returns a new array containing
+ * the elements from the first array that, when mapped using the provided function, have matching
+ * mapped elements in the second array. It effectively filters out any elements from the first array
+ * that do not have corresponding mapped values in the second array.
+ *
+ * @template T - The type of elements in the first array.
+ * @template U - The type of elements in the second array.
+ * @param {T[]} firstArr - The first array to compare.
+ * @param {U[]} secondArr - The second array to compare.
+ * @param {(item: T | U) => unknown} mapper - A function to map the elements of both arrays for comparison.
+ * @returns {T[]} A new array containing the elements from the first array that have corresponding mapped values in the second array.
+ *
+ * @example
+ * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const array2 = [{ id: 2 }, { id: 4 }];
+ * const mapper = item => item.id;
+ * const result = intersectionBy(array1, array2, mapper);
+ * // result will be [{ id: 2 }] since only this element has a matching id in both arrays.
+ *
+ * @example
+ * const array1 = [
+ *   { id: 1, name: 'jane' },
+ *   { id: 2, name: 'amy' },
+ *   { id: 3, name: 'michael' },
+ * ];
+ * const array2 = [2, 4];
+ * const mapper = item => (typeof item === 'object' ? item.id : item);
+ * const result = intersectionBy(array1, array2, mapper);
+ * // result will be [{ id: 2, name: 'amy' }] since only this element has a matching id that is equal to seconds array's element.
+ */
+declare function intersectionBy<T, U>(firstArr: readonly T[], secondArr: readonly U[], mapper: (item: T | U) => unknown): T[];
+
+export { intersectionBy };
Index: node_modules/es-toolkit/dist/array/intersectionBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/intersectionBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function intersectionBy(firstArr, secondArr, mapper) {
+    const result = [];
+    const mappedSecondSet = new Set(secondArr.map(mapper));
+    for (let i = 0; i < firstArr.length; i++) {
+        const item = firstArr[i];
+        const mappedItem = mapper(item);
+        if (mappedSecondSet.has(mappedItem)) {
+            result.push(item);
+            mappedSecondSet.delete(mappedItem);
+        }
+    }
+    return result;
+}
+
+exports.intersectionBy = intersectionBy;
Index: node_modules/es-toolkit/dist/array/intersectionBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/intersectionBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,15 @@
+function intersectionBy(firstArr, secondArr, mapper) {
+    const result = [];
+    const mappedSecondSet = new Set(secondArr.map(mapper));
+    for (let i = 0; i < firstArr.length; i++) {
+        const item = firstArr[i];
+        const mappedItem = mapper(item);
+        if (mappedSecondSet.has(mappedItem)) {
+            result.push(item);
+            mappedSecondSet.delete(mappedItem);
+        }
+    }
+    return result;
+}
+
+export { intersectionBy };
Index: node_modules/es-toolkit/dist/array/intersectionWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/intersectionWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,37 @@
+/**
+ * Returns the intersection of two arrays based on a custom equality function.
+ *
+ * This function takes two arrays and a custom equality function. It returns a new array containing
+ * the elements from the first array that have matching elements in the second array, as determined
+ * by the custom equality function. It effectively filters out any elements from the first array that
+ * do not have corresponding matches in the second array according to the equality function.
+ *
+ * @template T - The type of elements in the first array.
+ * @template U - The type of elements in the second array.
+ * @param {T[]} firstArr - The first array to compare.
+ * @param {U[]} secondArr - The second array to compare.
+ * @param {(x: T, y: U) => boolean} areItemsEqual - A custom function to determine if two elements are equal.
+ * This function takes two arguments, one from each array, and returns `true` if the elements are considered equal, and `false` otherwise.
+ * @returns {T[]} A new array containing the elements from the first array that have corresponding matches in the second array according to the custom equality function.
+ *
+ * @example
+ * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const array2 = [{ id: 2 }, { id: 4 }];
+ * const areItemsEqual = (a, b) => a.id === b.id;
+ * const result = intersectionWith(array1, array2, areItemsEqual);
+ * // result will be [{ id: 2 }] since this element has a matching id in both arrays.
+ *
+ * @example
+ * const array1 = [
+ *   { id: 1, name: 'jane' },
+ *   { id: 2, name: 'amy' },
+ *   { id: 3, name: 'michael' },
+ * ];
+ * const array2 = [2, 4];
+ * const areItemsEqual = (a, b) => a.id === b;
+ * const result = intersectionWith(array1, array2, areItemsEqual);
+ * // result will be [{ id: 2, name: 'amy' }] since this element has a matching id that is equal to seconds array's element.
+ */
+declare function intersectionWith<T, U>(firstArr: readonly T[], secondArr: readonly U[], areItemsEqual: (x: T, y: U) => boolean): T[];
+
+export { intersectionWith };
Index: node_modules/es-toolkit/dist/array/intersectionWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/intersectionWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,37 @@
+/**
+ * Returns the intersection of two arrays based on a custom equality function.
+ *
+ * This function takes two arrays and a custom equality function. It returns a new array containing
+ * the elements from the first array that have matching elements in the second array, as determined
+ * by the custom equality function. It effectively filters out any elements from the first array that
+ * do not have corresponding matches in the second array according to the equality function.
+ *
+ * @template T - The type of elements in the first array.
+ * @template U - The type of elements in the second array.
+ * @param {T[]} firstArr - The first array to compare.
+ * @param {U[]} secondArr - The second array to compare.
+ * @param {(x: T, y: U) => boolean} areItemsEqual - A custom function to determine if two elements are equal.
+ * This function takes two arguments, one from each array, and returns `true` if the elements are considered equal, and `false` otherwise.
+ * @returns {T[]} A new array containing the elements from the first array that have corresponding matches in the second array according to the custom equality function.
+ *
+ * @example
+ * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const array2 = [{ id: 2 }, { id: 4 }];
+ * const areItemsEqual = (a, b) => a.id === b.id;
+ * const result = intersectionWith(array1, array2, areItemsEqual);
+ * // result will be [{ id: 2 }] since this element has a matching id in both arrays.
+ *
+ * @example
+ * const array1 = [
+ *   { id: 1, name: 'jane' },
+ *   { id: 2, name: 'amy' },
+ *   { id: 3, name: 'michael' },
+ * ];
+ * const array2 = [2, 4];
+ * const areItemsEqual = (a, b) => a.id === b;
+ * const result = intersectionWith(array1, array2, areItemsEqual);
+ * // result will be [{ id: 2, name: 'amy' }] since this element has a matching id that is equal to seconds array's element.
+ */
+declare function intersectionWith<T, U>(firstArr: readonly T[], secondArr: readonly U[], areItemsEqual: (x: T, y: U) => boolean): T[];
+
+export { intersectionWith };
Index: node_modules/es-toolkit/dist/array/intersectionWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/intersectionWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,13 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function intersectionWith(firstArr, secondArr, areItemsEqual) {
+    return firstArr.filter(firstItem => {
+        return secondArr.some(secondItem => {
+            return areItemsEqual(firstItem, secondItem);
+        });
+    });
+}
+
+exports.intersectionWith = intersectionWith;
Index: node_modules/es-toolkit/dist/array/intersectionWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/intersectionWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/intersectionWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,9 @@
+function intersectionWith(firstArr, secondArr, areItemsEqual) {
+    return firstArr.filter(firstItem => {
+        return secondArr.some(secondItem => {
+            return areItemsEqual(firstItem, secondItem);
+        });
+    });
+}
+
+export { intersectionWith };
Index: node_modules/es-toolkit/dist/array/isSubset.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/isSubset.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/isSubset.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,26 @@
+/**
+ * Checks if the `subset` array is entirely contained within the `superset` array.
+ *
+ *
+ * @template T - The type of elements contained in the arrays.
+ * @param {T[]} superset - The array that may contain all elements of the subset.
+ * @param {T[]} subset - The array to check against the superset.
+ * @returns {boolean} - Returns `true` if all elements of the `subset` are present in the `superset`, otherwise returns `false`.
+ *
+ * @example
+ * ```typescript
+ * const superset = [1, 2, 3, 4, 5];
+ * const subset = [2, 3, 4];
+ * isSubset(superset, subset); // true
+ * ```
+ *
+ * @example
+ * ```typescript
+ * const superset = ['a', 'b', 'c'];
+ * const subset = ['a', 'd'];
+ * isSubset(superset, subset); // false
+ * ```
+ */
+declare function isSubset<T>(superset: readonly T[], subset: readonly T[]): boolean;
+
+export { isSubset };
Index: node_modules/es-toolkit/dist/array/isSubset.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/isSubset.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/isSubset.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,26 @@
+/**
+ * Checks if the `subset` array is entirely contained within the `superset` array.
+ *
+ *
+ * @template T - The type of elements contained in the arrays.
+ * @param {T[]} superset - The array that may contain all elements of the subset.
+ * @param {T[]} subset - The array to check against the superset.
+ * @returns {boolean} - Returns `true` if all elements of the `subset` are present in the `superset`, otherwise returns `false`.
+ *
+ * @example
+ * ```typescript
+ * const superset = [1, 2, 3, 4, 5];
+ * const subset = [2, 3, 4];
+ * isSubset(superset, subset); // true
+ * ```
+ *
+ * @example
+ * ```typescript
+ * const superset = ['a', 'b', 'c'];
+ * const subset = ['a', 'd'];
+ * isSubset(superset, subset); // false
+ * ```
+ */
+declare function isSubset<T>(superset: readonly T[], subset: readonly T[]): boolean;
+
+export { isSubset };
Index: node_modules/es-toolkit/dist/array/isSubset.js
===================================================================
--- node_modules/es-toolkit/dist/array/isSubset.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/isSubset.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const difference = require('./difference.js');
+
+function isSubset(superset, subset) {
+    return difference.difference(subset, superset).length === 0;
+}
+
+exports.isSubset = isSubset;
Index: node_modules/es-toolkit/dist/array/isSubset.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/isSubset.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/isSubset.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,7 @@
+import { difference } from './difference.mjs';
+
+function isSubset(superset, subset) {
+    return difference(subset, superset).length === 0;
+}
+
+export { isSubset };
Index: node_modules/es-toolkit/dist/array/isSubsetWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/isSubsetWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/isSubsetWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,33 @@
+/**
+ * Checks if the `subset` array is entirely contained within the `superset` array based on a custom equality function.
+ *
+ * This function takes two arrays and a custom comparison function. It returns a boolean indicating
+ * whether all elements in the subset array are present in the superset array, as determined by the provided
+ * custom equality function.
+ *
+ * @template T - The type of elements contained in the arrays.
+ * @param {T[]} superset - The array that may contain all elements of the subset.
+ * @param {T[]} subset - The array to check against the superset.
+ * @param {(x: T, y: T) => boolean} areItemsEqual - A function to determine if two items are equal.
+ * @returns {boolean} - Returns `true` if all elements of the subset are present in the superset
+ * according to the custom equality function, otherwise returns `false`.
+ *
+ * @example
+ * ```typescript
+ * const superset = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const subset = [{ id: 2 }, { id: 1 }];
+ * const areItemsEqual = (a, b) => a.id === b.id;
+ * isSubsetWith(superset, subset, areItemsEqual); // true
+ * ```
+ *
+ * @example
+ * ```typescript
+ * const superset = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const subset = [{ id: 4 }];
+ * const areItemsEqual = (a, b) => a.id === b.id;
+ * isSubsetWith(superset, subset, areItemsEqual); // false
+ * ```
+ */
+declare function isSubsetWith<T>(superset: readonly T[], subset: readonly T[], areItemsEqual: (x: T, y: T) => boolean): boolean;
+
+export { isSubsetWith };
Index: node_modules/es-toolkit/dist/array/isSubsetWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/isSubsetWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/isSubsetWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,33 @@
+/**
+ * Checks if the `subset` array is entirely contained within the `superset` array based on a custom equality function.
+ *
+ * This function takes two arrays and a custom comparison function. It returns a boolean indicating
+ * whether all elements in the subset array are present in the superset array, as determined by the provided
+ * custom equality function.
+ *
+ * @template T - The type of elements contained in the arrays.
+ * @param {T[]} superset - The array that may contain all elements of the subset.
+ * @param {T[]} subset - The array to check against the superset.
+ * @param {(x: T, y: T) => boolean} areItemsEqual - A function to determine if two items are equal.
+ * @returns {boolean} - Returns `true` if all elements of the subset are present in the superset
+ * according to the custom equality function, otherwise returns `false`.
+ *
+ * @example
+ * ```typescript
+ * const superset = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const subset = [{ id: 2 }, { id: 1 }];
+ * const areItemsEqual = (a, b) => a.id === b.id;
+ * isSubsetWith(superset, subset, areItemsEqual); // true
+ * ```
+ *
+ * @example
+ * ```typescript
+ * const superset = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const subset = [{ id: 4 }];
+ * const areItemsEqual = (a, b) => a.id === b.id;
+ * isSubsetWith(superset, subset, areItemsEqual); // false
+ * ```
+ */
+declare function isSubsetWith<T>(superset: readonly T[], subset: readonly T[], areItemsEqual: (x: T, y: T) => boolean): boolean;
+
+export { isSubsetWith };
Index: node_modules/es-toolkit/dist/array/isSubsetWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/isSubsetWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/isSubsetWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const differenceWith = require('./differenceWith.js');
+
+function isSubsetWith(superset, subset, areItemsEqual) {
+    return differenceWith.differenceWith(subset, superset, areItemsEqual).length === 0;
+}
+
+exports.isSubsetWith = isSubsetWith;
Index: node_modules/es-toolkit/dist/array/isSubsetWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/isSubsetWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/isSubsetWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,7 @@
+import { differenceWith } from './differenceWith.mjs';
+
+function isSubsetWith(superset, subset, areItemsEqual) {
+    return differenceWith(subset, superset, areItemsEqual).length === 0;
+}
+
+export { isSubsetWith };
Index: node_modules/es-toolkit/dist/array/keyBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/keyBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/keyBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,36 @@
+/**
+ * Maps each element of an array based on a provided key-generating function.
+ *
+ * This function takes an array and a function that generates a key from each element. It returns
+ * an object where the keys are the generated keys and the values are the corresponding elements.
+ * If there are multiple elements generating the same key, the last element among them is used
+ * as the value.
+ *
+ * @template T - The type of elements in the array.
+ * @template K - The type of keys.
+ * @param {T[]} arr - The array of elements to be mapped.
+ * @param {(item: T, index: number, array: readonly T[]) => K} getKeyFromItem - A function that generates a key from an element, its index, and the array.
+ * @returns {Record<K, T>} An object where keys are mapped to each element of an array.
+ *
+ * @example
+ * const array = [
+ *   { category: 'fruit', name: 'apple' },
+ *   { category: 'fruit', name: 'banana' },
+ *   { category: 'vegetable', name: 'carrot' }
+ * ];
+ * const result = keyBy(array, item => item.category);
+ * // result will be:
+ * // {
+ * //   fruit: { category: 'fruit', name: 'banana' },
+ * //   vegetable: { category: 'vegetable', name: 'carrot' }
+ * // }
+ *
+ * @example
+ * // Using index parameter
+ * const items = ['a', 'b', 'c'];
+ * const result = keyBy(items, (item, index) => index);
+ * // result will be: { 0: 'a', 1: 'b', 2: 'c' }
+ */
+declare function keyBy<T, K extends PropertyKey>(arr: readonly T[], getKeyFromItem: (item: T, index: number, array: readonly T[]) => K): Record<K, T>;
+
+export { keyBy };
Index: node_modules/es-toolkit/dist/array/keyBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/keyBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/keyBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,36 @@
+/**
+ * Maps each element of an array based on a provided key-generating function.
+ *
+ * This function takes an array and a function that generates a key from each element. It returns
+ * an object where the keys are the generated keys and the values are the corresponding elements.
+ * If there are multiple elements generating the same key, the last element among them is used
+ * as the value.
+ *
+ * @template T - The type of elements in the array.
+ * @template K - The type of keys.
+ * @param {T[]} arr - The array of elements to be mapped.
+ * @param {(item: T, index: number, array: readonly T[]) => K} getKeyFromItem - A function that generates a key from an element, its index, and the array.
+ * @returns {Record<K, T>} An object where keys are mapped to each element of an array.
+ *
+ * @example
+ * const array = [
+ *   { category: 'fruit', name: 'apple' },
+ *   { category: 'fruit', name: 'banana' },
+ *   { category: 'vegetable', name: 'carrot' }
+ * ];
+ * const result = keyBy(array, item => item.category);
+ * // result will be:
+ * // {
+ * //   fruit: { category: 'fruit', name: 'banana' },
+ * //   vegetable: { category: 'vegetable', name: 'carrot' }
+ * // }
+ *
+ * @example
+ * // Using index parameter
+ * const items = ['a', 'b', 'c'];
+ * const result = keyBy(items, (item, index) => index);
+ * // result will be: { 0: 'a', 1: 'b', 2: 'c' }
+ */
+declare function keyBy<T, K extends PropertyKey>(arr: readonly T[], getKeyFromItem: (item: T, index: number, array: readonly T[]) => K): Record<K, T>;
+
+export { keyBy };
Index: node_modules/es-toolkit/dist/array/keyBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/keyBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/keyBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,15 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function keyBy(arr, getKeyFromItem) {
+    const result = {};
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        const key = getKeyFromItem(item, i, arr);
+        result[key] = item;
+    }
+    return result;
+}
+
+exports.keyBy = keyBy;
Index: node_modules/es-toolkit/dist/array/keyBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/keyBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/keyBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+function keyBy(arr, getKeyFromItem) {
+    const result = {};
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        const key = getKeyFromItem(item, i, arr);
+        result[key] = item;
+    }
+    return result;
+}
+
+export { keyBy };
Index: node_modules/es-toolkit/dist/array/last.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/last.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/last.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,48 @@
+/**
+ * Returns the last element of an array.
+ *
+ * This function takes an array and returns the last element of the array.
+ * If the array is empty, the function returns `undefined`.
+ *
+ * Unlike some implementations, this function is optimized for performance
+ * by directly accessing the last index of the array.
+ *
+ * @template T - The type of elements in the array.
+ * @param {[...T[], T]} arr - The array from which to get the last element.
+ * @returns {T} The last element of the array, or `undefined` if the array is empty.
+ *
+ * @example
+ * const arr = [1, 2, 3];
+ * const lastElement = last(arr);
+ * // lastElement will be 3
+ *
+ * const emptyArr: number[] = [];
+ * const noElement = last(emptyArr);
+ * // noElement will be undefined
+ */
+declare function last<T>(arr: readonly [...T[], T]): T;
+/**
+ * Returns the last element of an array.
+ *
+ * This function takes an array and returns the last element of the array.
+ * If the array is empty, the function returns `undefined`.
+ *
+ * Unlike some implementations, this function is optimized for performance
+ * by directly accessing the last index of the array.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array from which to get the last element.
+ * @returns {T | undefined} The last element of the array, or `undefined` if the array is empty.
+ *
+ * @example
+ * const arr = [1, 2, 3];
+ * const lastElement = last(arr);
+ * // lastElement will be 3
+ *
+ * const emptyArr: number[] = [];
+ * const noElement = last(emptyArr);
+ * // noElement will be undefined
+ */
+declare function last<T>(arr: readonly T[]): T | undefined;
+
+export { last };
Index: node_modules/es-toolkit/dist/array/last.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/last.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/last.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,48 @@
+/**
+ * Returns the last element of an array.
+ *
+ * This function takes an array and returns the last element of the array.
+ * If the array is empty, the function returns `undefined`.
+ *
+ * Unlike some implementations, this function is optimized for performance
+ * by directly accessing the last index of the array.
+ *
+ * @template T - The type of elements in the array.
+ * @param {[...T[], T]} arr - The array from which to get the last element.
+ * @returns {T} The last element of the array, or `undefined` if the array is empty.
+ *
+ * @example
+ * const arr = [1, 2, 3];
+ * const lastElement = last(arr);
+ * // lastElement will be 3
+ *
+ * const emptyArr: number[] = [];
+ * const noElement = last(emptyArr);
+ * // noElement will be undefined
+ */
+declare function last<T>(arr: readonly [...T[], T]): T;
+/**
+ * Returns the last element of an array.
+ *
+ * This function takes an array and returns the last element of the array.
+ * If the array is empty, the function returns `undefined`.
+ *
+ * Unlike some implementations, this function is optimized for performance
+ * by directly accessing the last index of the array.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array from which to get the last element.
+ * @returns {T | undefined} The last element of the array, or `undefined` if the array is empty.
+ *
+ * @example
+ * const arr = [1, 2, 3];
+ * const lastElement = last(arr);
+ * // lastElement will be 3
+ *
+ * const emptyArr: number[] = [];
+ * const noElement = last(emptyArr);
+ * // noElement will be undefined
+ */
+declare function last<T>(arr: readonly T[]): T | undefined;
+
+export { last };
Index: node_modules/es-toolkit/dist/array/last.js
===================================================================
--- node_modules/es-toolkit/dist/array/last.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/last.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,9 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function last(arr) {
+    return arr[arr.length - 1];
+}
+
+exports.last = last;
Index: node_modules/es-toolkit/dist/array/last.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/last.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/last.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,5 @@
+function last(arr) {
+    return arr[arr.length - 1];
+}
+
+export { last };
Index: node_modules/es-toolkit/dist/array/limitAsync.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/limitAsync.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/limitAsync.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,34 @@
+/**
+ * Wraps an async function to limit the number of concurrent executions.
+ *
+ * This function creates a wrapper around an async callback that ensures at most
+ * `concurrency` number of executions can run simultaneously. Additional calls will
+ * wait until a slot becomes available.
+ *
+ * @template F - The type of the async function to wrap.
+ * @param {F} callback The async function to wrap with concurrency control.
+ * @param {number} concurrency Maximum number of concurrent executions allowed.
+ * @returns {F} A wrapped version of the callback with concurrency limiting.
+ * @example
+ * const limitedFetch = limitAsync(async (url) => {
+ *   return await fetch(url);
+ * }, 3);
+ *
+ * // Only 3 fetches will run concurrently
+ * const urls = ['url1', 'url2', 'url3', 'url4', 'url5'];
+ * await Promise.all(urls.map(url => limitedFetch(url)));
+ *
+ * @example
+ * const processItem = async (item) => {
+ *   // Expensive async operation
+ *   return await heavyComputation(item);
+ * };
+ *
+ * const limitedProcess = limitAsync(processItem, 2);
+ * const items = [1, 2, 3, 4, 5];
+ * // At most 2 items will be processed concurrently
+ * await Promise.all(items.map(item => limitedProcess(item)));
+ */
+declare function limitAsync<F extends (...args: any[]) => Promise<any>>(callback: F, concurrency: number): F;
+
+export { limitAsync };
Index: node_modules/es-toolkit/dist/array/limitAsync.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/limitAsync.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/limitAsync.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,34 @@
+/**
+ * Wraps an async function to limit the number of concurrent executions.
+ *
+ * This function creates a wrapper around an async callback that ensures at most
+ * `concurrency` number of executions can run simultaneously. Additional calls will
+ * wait until a slot becomes available.
+ *
+ * @template F - The type of the async function to wrap.
+ * @param {F} callback The async function to wrap with concurrency control.
+ * @param {number} concurrency Maximum number of concurrent executions allowed.
+ * @returns {F} A wrapped version of the callback with concurrency limiting.
+ * @example
+ * const limitedFetch = limitAsync(async (url) => {
+ *   return await fetch(url);
+ * }, 3);
+ *
+ * // Only 3 fetches will run concurrently
+ * const urls = ['url1', 'url2', 'url3', 'url4', 'url5'];
+ * await Promise.all(urls.map(url => limitedFetch(url)));
+ *
+ * @example
+ * const processItem = async (item) => {
+ *   // Expensive async operation
+ *   return await heavyComputation(item);
+ * };
+ *
+ * const limitedProcess = limitAsync(processItem, 2);
+ * const items = [1, 2, 3, 4, 5];
+ * // At most 2 items will be processed concurrently
+ * await Promise.all(items.map(item => limitedProcess(item)));
+ */
+declare function limitAsync<F extends (...args: any[]) => Promise<any>>(callback: F, concurrency: number): F;
+
+export { limitAsync };
Index: node_modules/es-toolkit/dist/array/limitAsync.js
===================================================================
--- node_modules/es-toolkit/dist/array/limitAsync.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/limitAsync.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,20 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const semaphore = require('../promise/semaphore.js');
+
+function limitAsync(callback, concurrency) {
+    const semaphore$1 = new semaphore.Semaphore(concurrency);
+    return async function (...args) {
+        try {
+            await semaphore$1.acquire();
+            return await callback.apply(this, args);
+        }
+        finally {
+            semaphore$1.release();
+        }
+    };
+}
+
+exports.limitAsync = limitAsync;
Index: node_modules/es-toolkit/dist/array/limitAsync.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/limitAsync.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/limitAsync.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,16 @@
+import { Semaphore } from '../promise/semaphore.mjs';
+
+function limitAsync(callback, concurrency) {
+    const semaphore = new Semaphore(concurrency);
+    return async function (...args) {
+        try {
+            await semaphore.acquire();
+            return await callback.apply(this, args);
+        }
+        finally {
+            semaphore.release();
+        }
+    };
+}
+
+export { limitAsync };
Index: node_modules/es-toolkit/dist/array/mapAsync.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/mapAsync.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/mapAsync.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,34 @@
+interface MapAsyncOptions {
+    concurrency?: number;
+}
+/**
+ * Transforms each element in an array using an async callback function and returns
+ * a promise that resolves to an array of transformed values.
+ *
+ * @template T - The type of elements in the input array.
+ * @template R - The type of elements in the output array.
+ * @param {readonly T[]} array The array to transform.
+ * @param {(item: T, index: number, array: readonly T[]) => Promise<R>} callback An async function that transforms each element.
+ * @param {MapAsyncOptions} [options] Optional configuration object.
+ * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
+ * @returns {Promise<R[]>} A promise that resolves to an array of transformed values.
+ * @example
+ * const users = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const userDetails = await mapAsync(users, async (user) => {
+ *   return await fetchUserDetails(user.id);
+ * });
+ * // Returns: [{ id: 1, name: '...' }, { id: 2, name: '...' }, { id: 3, name: '...' }]
+ *
+ * @example
+ * // With concurrency limit
+ * const numbers = [1, 2, 3, 4, 5];
+ * const results = await mapAsync(
+ *   numbers,
+ *   async (n) => await slowOperation(n),
+ *   { concurrency: 2 }
+ * );
+ * // Processes at most 2 operations concurrently
+ */
+declare function mapAsync<T, R>(array: readonly T[], callback: (item: T, index: number, array: readonly T[]) => Promise<R>, options?: MapAsyncOptions): Promise<R[]>;
+
+export { mapAsync };
Index: node_modules/es-toolkit/dist/array/mapAsync.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/mapAsync.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/mapAsync.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,34 @@
+interface MapAsyncOptions {
+    concurrency?: number;
+}
+/**
+ * Transforms each element in an array using an async callback function and returns
+ * a promise that resolves to an array of transformed values.
+ *
+ * @template T - The type of elements in the input array.
+ * @template R - The type of elements in the output array.
+ * @param {readonly T[]} array The array to transform.
+ * @param {(item: T, index: number, array: readonly T[]) => Promise<R>} callback An async function that transforms each element.
+ * @param {MapAsyncOptions} [options] Optional configuration object.
+ * @param {number} [options.concurrency] Maximum number of concurrent async operations. If not specified, all operations run concurrently.
+ * @returns {Promise<R[]>} A promise that resolves to an array of transformed values.
+ * @example
+ * const users = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const userDetails = await mapAsync(users, async (user) => {
+ *   return await fetchUserDetails(user.id);
+ * });
+ * // Returns: [{ id: 1, name: '...' }, { id: 2, name: '...' }, { id: 3, name: '...' }]
+ *
+ * @example
+ * // With concurrency limit
+ * const numbers = [1, 2, 3, 4, 5];
+ * const results = await mapAsync(
+ *   numbers,
+ *   async (n) => await slowOperation(n),
+ *   { concurrency: 2 }
+ * );
+ * // Processes at most 2 operations concurrently
+ */
+declare function mapAsync<T, R>(array: readonly T[], callback: (item: T, index: number, array: readonly T[]) => Promise<R>, options?: MapAsyncOptions): Promise<R[]>;
+
+export { mapAsync };
Index: node_modules/es-toolkit/dist/array/mapAsync.js
===================================================================
--- node_modules/es-toolkit/dist/array/mapAsync.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/mapAsync.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,14 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const limitAsync = require('./limitAsync.js');
+
+function mapAsync(array, callback, options) {
+    if (options?.concurrency != null) {
+        callback = limitAsync.limitAsync(callback, options.concurrency);
+    }
+    return Promise.all(array.map(callback));
+}
+
+exports.mapAsync = mapAsync;
Index: node_modules/es-toolkit/dist/array/mapAsync.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/mapAsync.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/mapAsync.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,10 @@
+import { limitAsync } from './limitAsync.mjs';
+
+function mapAsync(array, callback, options) {
+    if (options?.concurrency != null) {
+        callback = limitAsync(callback, options.concurrency);
+    }
+    return Promise.all(array.map(callback));
+}
+
+export { mapAsync };
Index: node_modules/es-toolkit/dist/array/maxBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/maxBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/maxBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,45 @@
+/**
+ * Finds the element in an array that has the maximum value when applying
+ * the `getValue` function to each element.
+ *
+ * @template T - The type of elements in the array.
+ * @param {[T, ...T[]]} items The nonempty array of elements to search.
+ * @param {(element: T) => number} getValue A function that selects a numeric value from each element.
+ * @returns {T} The element with the maximum value as determined by the `getValue` function.
+ * @example
+ * maxBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 3 }
+ * maxBy([], x => x.a); // Returns: undefined
+ * maxBy(
+ *   [
+ *     { name: 'john', age: 30 },
+ *     { name: 'jane', age: 28 },
+ *     { name: 'joe', age: 26 },
+ *   ],
+ *   x => x.age
+ * ); // Returns: { name: 'john', age: 30 }
+ */
+declare function maxBy<T>(items: readonly [T, ...T[]], getValue: (element: T, index: number, array: readonly T[]) => number): T;
+/**
+ * Finds the element in an array that has the maximum value when applying
+ * the `getValue` function to each element.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} items The array of elements to search.
+ * @param {(element: T, index: number, array: readonly T[]) => number} getValue A function that selects a numeric value from each element.
+ * @returns {T | undefined} The element with the maximum value as determined by the `getValue` function,
+ * or `undefined` if the array is empty.
+ * @example
+ * maxBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 3 }
+ * maxBy([], x => x.a); // Returns: undefined
+ * maxBy(
+ *   [
+ *     { name: 'john', age: 30 },
+ *     { name: 'jane', age: 28 },
+ *     { name: 'joe', age: 26 },
+ *   ],
+ *   x => x.age
+ * ); // Returns: { name: 'john', age: 30 }
+ */
+declare function maxBy<T>(items: readonly T[], getValue: (element: T, index: number, array: readonly T[]) => number): T | undefined;
+
+export { maxBy };
Index: node_modules/es-toolkit/dist/array/maxBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/maxBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/maxBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,45 @@
+/**
+ * Finds the element in an array that has the maximum value when applying
+ * the `getValue` function to each element.
+ *
+ * @template T - The type of elements in the array.
+ * @param {[T, ...T[]]} items The nonempty array of elements to search.
+ * @param {(element: T) => number} getValue A function that selects a numeric value from each element.
+ * @returns {T} The element with the maximum value as determined by the `getValue` function.
+ * @example
+ * maxBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 3 }
+ * maxBy([], x => x.a); // Returns: undefined
+ * maxBy(
+ *   [
+ *     { name: 'john', age: 30 },
+ *     { name: 'jane', age: 28 },
+ *     { name: 'joe', age: 26 },
+ *   ],
+ *   x => x.age
+ * ); // Returns: { name: 'john', age: 30 }
+ */
+declare function maxBy<T>(items: readonly [T, ...T[]], getValue: (element: T, index: number, array: readonly T[]) => number): T;
+/**
+ * Finds the element in an array that has the maximum value when applying
+ * the `getValue` function to each element.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} items The array of elements to search.
+ * @param {(element: T, index: number, array: readonly T[]) => number} getValue A function that selects a numeric value from each element.
+ * @returns {T | undefined} The element with the maximum value as determined by the `getValue` function,
+ * or `undefined` if the array is empty.
+ * @example
+ * maxBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 3 }
+ * maxBy([], x => x.a); // Returns: undefined
+ * maxBy(
+ *   [
+ *     { name: 'john', age: 30 },
+ *     { name: 'jane', age: 28 },
+ *     { name: 'joe', age: 26 },
+ *   ],
+ *   x => x.age
+ * ); // Returns: { name: 'john', age: 30 }
+ */
+declare function maxBy<T>(items: readonly T[], getValue: (element: T, index: number, array: readonly T[]) => number): T | undefined;
+
+export { maxBy };
Index: node_modules/es-toolkit/dist/array/maxBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/maxBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/maxBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,22 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function maxBy(items, getValue) {
+    if (items.length === 0) {
+        return undefined;
+    }
+    let maxElement = items[0];
+    let max = getValue(maxElement, 0, items);
+    for (let i = 1; i < items.length; i++) {
+        const element = items[i];
+        const value = getValue(element, i, items);
+        if (value > max) {
+            max = value;
+            maxElement = element;
+        }
+    }
+    return maxElement;
+}
+
+exports.maxBy = maxBy;
Index: node_modules/es-toolkit/dist/array/maxBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/maxBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/maxBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+function maxBy(items, getValue) {
+    if (items.length === 0) {
+        return undefined;
+    }
+    let maxElement = items[0];
+    let max = getValue(maxElement, 0, items);
+    for (let i = 1; i < items.length; i++) {
+        const element = items[i];
+        const value = getValue(element, i, items);
+        if (value > max) {
+            max = value;
+            maxElement = element;
+        }
+    }
+    return maxElement;
+}
+
+export { maxBy };
Index: node_modules/es-toolkit/dist/array/minBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/minBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/minBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,45 @@
+/**
+ * Finds the element in an array that has the minimum value when applying
+ * the `getValue` function to each element.
+ *
+ * @template T - The type of elements in the array.
+ * @param {[T, ...T[]]} items The nonempty array of elements to search.
+ * @param {(element: T) => number} getValue A function that selects a numeric value from each element.
+ * @returns {T} The element with the minimum value as determined by the `getValue` function.
+ * @example
+ * minBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 1 }
+ * minBy([], x => x.a); // Returns: undefined
+ * minBy(
+ *   [
+ *     { name: 'john', age: 30 },
+ *     { name: 'jane', age: 28 },
+ *     { name: 'joe', age: 26 },
+ *   ],
+ *   x => x.age
+ * ); // Returns: { name: 'joe', age: 26 }
+ */
+declare function minBy<T>(items: readonly [T, ...T[]], getValue: (element: T, index: number, array: readonly T[]) => number): T;
+/**
+ * Finds the element in an array that has the minimum value when applying
+ * the `getValue` function to each element.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} items The array of elements to search.
+ * @param {(element: T, index: number, array: readonly T[]) => number} getValue A function that selects a numeric value from each element.
+ * @returns {T | undefined} The element with the minimum value as determined by the `getValue` function,
+ * or `undefined` if the array is empty.
+ * @example
+ * minBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 1 }
+ * minBy([], x => x.a); // Returns: undefined
+ * minBy(
+ *   [
+ *     { name: 'john', age: 30 },
+ *     { name: 'jane', age: 28 },
+ *     { name: 'joe', age: 26 },
+ *   ],
+ *   x => x.age
+ * ); // Returns: { name: 'joe', age: 26 }
+ */
+declare function minBy<T>(items: readonly T[], getValue: (element: T, index: number, array: readonly T[]) => number): T | undefined;
+
+export { minBy };
Index: node_modules/es-toolkit/dist/array/minBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/minBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/minBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,45 @@
+/**
+ * Finds the element in an array that has the minimum value when applying
+ * the `getValue` function to each element.
+ *
+ * @template T - The type of elements in the array.
+ * @param {[T, ...T[]]} items The nonempty array of elements to search.
+ * @param {(element: T) => number} getValue A function that selects a numeric value from each element.
+ * @returns {T} The element with the minimum value as determined by the `getValue` function.
+ * @example
+ * minBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 1 }
+ * minBy([], x => x.a); // Returns: undefined
+ * minBy(
+ *   [
+ *     { name: 'john', age: 30 },
+ *     { name: 'jane', age: 28 },
+ *     { name: 'joe', age: 26 },
+ *   ],
+ *   x => x.age
+ * ); // Returns: { name: 'joe', age: 26 }
+ */
+declare function minBy<T>(items: readonly [T, ...T[]], getValue: (element: T, index: number, array: readonly T[]) => number): T;
+/**
+ * Finds the element in an array that has the minimum value when applying
+ * the `getValue` function to each element.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} items The array of elements to search.
+ * @param {(element: T, index: number, array: readonly T[]) => number} getValue A function that selects a numeric value from each element.
+ * @returns {T | undefined} The element with the minimum value as determined by the `getValue` function,
+ * or `undefined` if the array is empty.
+ * @example
+ * minBy([{ a: 1 }, { a: 2 }, { a: 3 }], x => x.a); // Returns: { a: 1 }
+ * minBy([], x => x.a); // Returns: undefined
+ * minBy(
+ *   [
+ *     { name: 'john', age: 30 },
+ *     { name: 'jane', age: 28 },
+ *     { name: 'joe', age: 26 },
+ *   ],
+ *   x => x.age
+ * ); // Returns: { name: 'joe', age: 26 }
+ */
+declare function minBy<T>(items: readonly T[], getValue: (element: T, index: number, array: readonly T[]) => number): T | undefined;
+
+export { minBy };
Index: node_modules/es-toolkit/dist/array/minBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/minBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/minBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,22 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function minBy(items, getValue) {
+    if (items.length === 0) {
+        return undefined;
+    }
+    let minElement = items[0];
+    let min = getValue(minElement, 0, items);
+    for (let i = 1; i < items.length; i++) {
+        const element = items[i];
+        const value = getValue(element, i, items);
+        if (value < min) {
+            min = value;
+            minElement = element;
+        }
+    }
+    return minElement;
+}
+
+exports.minBy = minBy;
Index: node_modules/es-toolkit/dist/array/minBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/minBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/minBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+function minBy(items, getValue) {
+    if (items.length === 0) {
+        return undefined;
+    }
+    let minElement = items[0];
+    let min = getValue(minElement, 0, items);
+    for (let i = 1; i < items.length; i++) {
+        const element = items[i];
+        const value = getValue(element, i, items);
+        if (value < min) {
+            min = value;
+            minElement = element;
+        }
+    }
+    return minElement;
+}
+
+export { minBy };
Index: node_modules/es-toolkit/dist/array/orderBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/orderBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/orderBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,37 @@
+/**
+ * Sorts an array of objects based on the given `criteria` and their corresponding order directions.
+ *
+ * - If you provide keys, it sorts the objects by the values of those keys.
+ * - If you provide functions, it sorts based on the values returned by those functions.
+ *
+ * The function returns the array of objects sorted in corresponding order directions.
+ * If two objects have the same value for the current criterion, it uses the next criterion to determine their order.
+ * If the number of orders is less than the number of criteria, it uses the last order for the rest of the criteria.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array of objects to be sorted.
+ * @param {Array<((item: T) => unknown) | keyof T>} criteria  - The criteria for sorting. This can be an array of object keys or functions that return values used for sorting.
+ * @param {Array<'asc' | 'desc'>} orders - An array of order directions ('asc' for ascending or 'desc' for descending).
+ * @returns {T[]} - The sorted array.
+ *
+ * @example
+ * // Sort an array of objects by 'user' in ascending order and 'age' in descending order.
+ * const users = [
+ *   { user: 'fred', age: 48 },
+ *   { user: 'barney', age: 34 },
+ *   { user: 'fred', age: 40 },
+ *   { user: 'barney', age: 36 },
+ * ];
+ *
+ * const result = orderBy(users, [obj => obj.user, 'age'], ['asc', 'desc']);
+ * // result will be:
+ * // [
+ * //   { user: 'barney', age: 36 },
+ * //   { user: 'barney', age: 34 },
+ * //   { user: 'fred', age: 48 },
+ * //   { user: 'fred', age: 40 },
+ * // ]
+ */
+declare function orderBy<T extends object>(arr: readonly T[], criteria: Array<((item: T) => unknown) | keyof T>, orders: Array<'asc' | 'desc'>): T[];
+
+export { orderBy };
Index: node_modules/es-toolkit/dist/array/orderBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/orderBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/orderBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,37 @@
+/**
+ * Sorts an array of objects based on the given `criteria` and their corresponding order directions.
+ *
+ * - If you provide keys, it sorts the objects by the values of those keys.
+ * - If you provide functions, it sorts based on the values returned by those functions.
+ *
+ * The function returns the array of objects sorted in corresponding order directions.
+ * If two objects have the same value for the current criterion, it uses the next criterion to determine their order.
+ * If the number of orders is less than the number of criteria, it uses the last order for the rest of the criteria.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array of objects to be sorted.
+ * @param {Array<((item: T) => unknown) | keyof T>} criteria  - The criteria for sorting. This can be an array of object keys or functions that return values used for sorting.
+ * @param {Array<'asc' | 'desc'>} orders - An array of order directions ('asc' for ascending or 'desc' for descending).
+ * @returns {T[]} - The sorted array.
+ *
+ * @example
+ * // Sort an array of objects by 'user' in ascending order and 'age' in descending order.
+ * const users = [
+ *   { user: 'fred', age: 48 },
+ *   { user: 'barney', age: 34 },
+ *   { user: 'fred', age: 40 },
+ *   { user: 'barney', age: 36 },
+ * ];
+ *
+ * const result = orderBy(users, [obj => obj.user, 'age'], ['asc', 'desc']);
+ * // result will be:
+ * // [
+ * //   { user: 'barney', age: 36 },
+ * //   { user: 'barney', age: 34 },
+ * //   { user: 'fred', age: 48 },
+ * //   { user: 'fred', age: 40 },
+ * // ]
+ */
+declare function orderBy<T extends object>(arr: readonly T[], criteria: Array<((item: T) => unknown) | keyof T>, orders: Array<'asc' | 'desc'>): T[];
+
+export { orderBy };
Index: node_modules/es-toolkit/dist/array/orderBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/orderBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/orderBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,25 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const compareValues = require('../_internal/compareValues.js');
+
+function orderBy(arr, criteria, orders) {
+    return arr.slice().sort((a, b) => {
+        const ordersLength = orders.length;
+        for (let i = 0; i < criteria.length; i++) {
+            const order = ordersLength > i ? orders[i] : orders[ordersLength - 1];
+            const criterion = criteria[i];
+            const criterionIsFunction = typeof criterion === 'function';
+            const valueA = criterionIsFunction ? criterion(a) : a[criterion];
+            const valueB = criterionIsFunction ? criterion(b) : b[criterion];
+            const result = compareValues.compareValues(valueA, valueB, order);
+            if (result !== 0) {
+                return result;
+            }
+        }
+        return 0;
+    });
+}
+
+exports.orderBy = orderBy;
Index: node_modules/es-toolkit/dist/array/orderBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/orderBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/orderBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,21 @@
+import { compareValues } from '../_internal/compareValues.mjs';
+
+function orderBy(arr, criteria, orders) {
+    return arr.slice().sort((a, b) => {
+        const ordersLength = orders.length;
+        for (let i = 0; i < criteria.length; i++) {
+            const order = ordersLength > i ? orders[i] : orders[ordersLength - 1];
+            const criterion = criteria[i];
+            const criterionIsFunction = typeof criterion === 'function';
+            const valueA = criterionIsFunction ? criterion(a) : a[criterion];
+            const valueB = criterionIsFunction ? criterion(b) : b[criterion];
+            const result = compareValues(valueA, valueB, order);
+            if (result !== 0) {
+                return result;
+            }
+        }
+        return 0;
+    });
+}
+
+export { orderBy };
Index: node_modules/es-toolkit/dist/array/partition.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/partition.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/partition.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,49 @@
+/**
+ * Splits an array into two groups based on a predicate function.
+ *
+ * This function takes an array and a predicate function. It returns a tuple of two arrays:
+ * the first array contains elements for which the predicate function returns true, and
+ * the second array contains elements for which the predicate function returns false.
+ *
+ * @template T - The type of elements in the array.
+ * @template {T} U - The type being filtered for.
+ * @param {T[]} arr - The array to partition.
+ * @param {(value: T, index: number, array: readonly T[]) => value is U} isInTruthy - A type guard that determines whether an
+ * element should be placed in the truthy array. The function is called with each element
+ * of the array and its index.
+ * @returns {[U[], Exclude<T, U>[]]} A tuple containing two arrays: the first array contains elements for
+ * which the predicate returned true, and the second array contains elements for which the
+ * predicate returned false.
+ *
+ * @example
+ * const array = [1, 2, 3, 4] as const;
+ * const isEven = (x: number): x is 2 | 4 => x % 2 === 0;
+ * const [even, odd]: [(2 | 4)[], (2 | 4)[]] = partition(array, isEven);
+ * // even will be [2, 4], and odd will be [1, 3]
+ */
+declare function partition<T, U extends T>(arr: readonly T[], isInTruthy: (value: T, index: number, array: readonly T[]) => value is U): [truthy: U[], falsy: Array<Exclude<T, U>>];
+/**
+ * Splits an array into two groups based on a predicate function.
+ *
+ * This function takes an array and a predicate function. It returns a tuple of two arrays:
+ * the first array contains elements for which the predicate function returns true, and
+ * the second array contains elements for which the predicate function returns false.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to partition.
+ * @param {(value: T, index: number) => boolean} isInTruthy - A predicate function that determines
+ * whether an element should be placed in the truthy array. The function is called with each
+ * element of the array and its index.
+ * @returns {[T[], T[]]} A tuple containing two arrays: the first array contains elements for
+ * which the predicate returned true, and the second array contains elements for which the
+ * predicate returned false.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const isEven = x => x % 2 === 0;
+ * const [even, odd] = partition(array, isEven);
+ * // even will be [2, 4], and odd will be [1, 3, 5]
+ */
+declare function partition<T>(arr: readonly T[], isInTruthy: (value: T, index: number, array: readonly T[]) => boolean): [truthy: T[], falsy: T[]];
+
+export { partition };
Index: node_modules/es-toolkit/dist/array/partition.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/partition.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/partition.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,49 @@
+/**
+ * Splits an array into two groups based on a predicate function.
+ *
+ * This function takes an array and a predicate function. It returns a tuple of two arrays:
+ * the first array contains elements for which the predicate function returns true, and
+ * the second array contains elements for which the predicate function returns false.
+ *
+ * @template T - The type of elements in the array.
+ * @template {T} U - The type being filtered for.
+ * @param {T[]} arr - The array to partition.
+ * @param {(value: T, index: number, array: readonly T[]) => value is U} isInTruthy - A type guard that determines whether an
+ * element should be placed in the truthy array. The function is called with each element
+ * of the array and its index.
+ * @returns {[U[], Exclude<T, U>[]]} A tuple containing two arrays: the first array contains elements for
+ * which the predicate returned true, and the second array contains elements for which the
+ * predicate returned false.
+ *
+ * @example
+ * const array = [1, 2, 3, 4] as const;
+ * const isEven = (x: number): x is 2 | 4 => x % 2 === 0;
+ * const [even, odd]: [(2 | 4)[], (2 | 4)[]] = partition(array, isEven);
+ * // even will be [2, 4], and odd will be [1, 3]
+ */
+declare function partition<T, U extends T>(arr: readonly T[], isInTruthy: (value: T, index: number, array: readonly T[]) => value is U): [truthy: U[], falsy: Array<Exclude<T, U>>];
+/**
+ * Splits an array into two groups based on a predicate function.
+ *
+ * This function takes an array and a predicate function. It returns a tuple of two arrays:
+ * the first array contains elements for which the predicate function returns true, and
+ * the second array contains elements for which the predicate function returns false.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to partition.
+ * @param {(value: T, index: number) => boolean} isInTruthy - A predicate function that determines
+ * whether an element should be placed in the truthy array. The function is called with each
+ * element of the array and its index.
+ * @returns {[T[], T[]]} A tuple containing two arrays: the first array contains elements for
+ * which the predicate returned true, and the second array contains elements for which the
+ * predicate returned false.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const isEven = x => x % 2 === 0;
+ * const [even, odd] = partition(array, isEven);
+ * // even will be [2, 4], and odd will be [1, 3, 5]
+ */
+declare function partition<T>(arr: readonly T[], isInTruthy: (value: T, index: number, array: readonly T[]) => boolean): [truthy: T[], falsy: T[]];
+
+export { partition };
Index: node_modules/es-toolkit/dist/array/partition.js
===================================================================
--- node_modules/es-toolkit/dist/array/partition.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/partition.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,20 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function partition(arr, isInTruthy) {
+    const truthy = [];
+    const falsy = [];
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        if (isInTruthy(item, i, arr)) {
+            truthy.push(item);
+        }
+        else {
+            falsy.push(item);
+        }
+    }
+    return [truthy, falsy];
+}
+
+exports.partition = partition;
Index: node_modules/es-toolkit/dist/array/partition.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/partition.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/partition.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,16 @@
+function partition(arr, isInTruthy) {
+    const truthy = [];
+    const falsy = [];
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        if (isInTruthy(item, i, arr)) {
+            truthy.push(item);
+        }
+        else {
+            falsy.push(item);
+        }
+    }
+    return [truthy, falsy];
+}
+
+export { partition };
Index: node_modules/es-toolkit/dist/array/pull.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/pull.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/pull.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+/**
+ * Removes all specified values from an array.
+ *
+ * This function changes `arr` in place.
+ * If you want to remove values without modifying the original array, use `difference`.
+ *
+ * @template T, U
+ * @param {T[]} arr - The array to modify.
+ * @param {unknown[]} valuesToRemove - The values to remove from the array.
+ * @returns {T[]} The modified array with the specified values removed.
+ *
+ * @example
+ * const numbers = [1, 2, 3, 4, 5, 2, 4];
+ * pull(numbers, [2, 4]);
+ * console.log(numbers); // [1, 3, 5]
+ */
+declare function pull<T>(arr: T[], valuesToRemove: readonly unknown[]): T[];
+
+export { pull };
Index: node_modules/es-toolkit/dist/array/pull.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/pull.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/pull.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+/**
+ * Removes all specified values from an array.
+ *
+ * This function changes `arr` in place.
+ * If you want to remove values without modifying the original array, use `difference`.
+ *
+ * @template T, U
+ * @param {T[]} arr - The array to modify.
+ * @param {unknown[]} valuesToRemove - The values to remove from the array.
+ * @returns {T[]} The modified array with the specified values removed.
+ *
+ * @example
+ * const numbers = [1, 2, 3, 4, 5, 2, 4];
+ * pull(numbers, [2, 4]);
+ * console.log(numbers); // [1, 3, 5]
+ */
+declare function pull<T>(arr: T[], valuesToRemove: readonly unknown[]): T[];
+
+export { pull };
Index: node_modules/es-toolkit/dist/array/pull.js
===================================================================
--- node_modules/es-toolkit/dist/array/pull.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/pull.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,22 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function pull(arr, valuesToRemove) {
+    const valuesSet = new Set(valuesToRemove);
+    let resultIndex = 0;
+    for (let i = 0; i < arr.length; i++) {
+        if (valuesSet.has(arr[i])) {
+            continue;
+        }
+        if (!Object.hasOwn(arr, i)) {
+            delete arr[resultIndex++];
+            continue;
+        }
+        arr[resultIndex++] = arr[i];
+    }
+    arr.length = resultIndex;
+    return arr;
+}
+
+exports.pull = pull;
Index: node_modules/es-toolkit/dist/array/pull.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/pull.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/pull.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+function pull(arr, valuesToRemove) {
+    const valuesSet = new Set(valuesToRemove);
+    let resultIndex = 0;
+    for (let i = 0; i < arr.length; i++) {
+        if (valuesSet.has(arr[i])) {
+            continue;
+        }
+        if (!Object.hasOwn(arr, i)) {
+            delete arr[resultIndex++];
+            continue;
+        }
+        arr[resultIndex++] = arr[i];
+    }
+    arr.length = resultIndex;
+    return arr;
+}
+
+export { pull };
Index: node_modules/es-toolkit/dist/array/pullAt.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/pullAt.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/pullAt.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+/**
+ * Removes elements from an array at specified indices and returns the removed elements.
+ *
+ * This function supports negative indices, which count from the end of the array.
+ *
+ * @template T
+ * @param {T[]} arr - The array from which elements will be removed.
+ * @param {number[]} indicesToRemove - An array of indices specifying the positions of elements to remove.
+ * @returns {Array<T | undefined>} An array containing the elements that were removed from the original array.
+ *
+ * @example
+ * const numbers = [10, 20, 30, 40, 50];
+ * const removed = pullAt(numbers, [1, 3, 4]);
+ * console.log(removed); // [20, 40, 50]
+ * console.log(numbers); // [10, 30]
+ */
+declare function pullAt<T>(arr: T[], indicesToRemove: number[]): T[];
+
+export { pullAt };
Index: node_modules/es-toolkit/dist/array/pullAt.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/pullAt.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/pullAt.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+/**
+ * Removes elements from an array at specified indices and returns the removed elements.
+ *
+ * This function supports negative indices, which count from the end of the array.
+ *
+ * @template T
+ * @param {T[]} arr - The array from which elements will be removed.
+ * @param {number[]} indicesToRemove - An array of indices specifying the positions of elements to remove.
+ * @returns {Array<T | undefined>} An array containing the elements that were removed from the original array.
+ *
+ * @example
+ * const numbers = [10, 20, 30, 40, 50];
+ * const removed = pullAt(numbers, [1, 3, 4]);
+ * console.log(removed); // [20, 40, 50]
+ * console.log(numbers); // [10, 30]
+ */
+declare function pullAt<T>(arr: T[], indicesToRemove: number[]): T[];
+
+export { pullAt };
Index: node_modules/es-toolkit/dist/array/pullAt.js
===================================================================
--- node_modules/es-toolkit/dist/array/pullAt.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/pullAt.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,16 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const at = require('./at.js');
+
+function pullAt(arr, indicesToRemove) {
+    const removed = at.at(arr, indicesToRemove);
+    const indices = new Set(indicesToRemove.slice().sort((x, y) => y - x));
+    for (const index of indices) {
+        arr.splice(index, 1);
+    }
+    return removed;
+}
+
+exports.pullAt = pullAt;
Index: node_modules/es-toolkit/dist/array/pullAt.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/pullAt.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/pullAt.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,12 @@
+import { at } from './at.mjs';
+
+function pullAt(arr, indicesToRemove) {
+    const removed = at(arr, indicesToRemove);
+    const indices = new Set(indicesToRemove.slice().sort((x, y) => y - x));
+    for (const index of indices) {
+        arr.splice(index, 1);
+    }
+    return removed;
+}
+
+export { pullAt };
Index: node_modules/es-toolkit/dist/array/reduceAsync.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/reduceAsync.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/reduceAsync.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,71 @@
+/**
+ * Reduces an array to a single value using an async reducer function.
+ *
+ * Applies the reducer function sequentially to each element (left to right),
+ * carrying an accumulated result from one call to the next. Unlike other async
+ * array methods, reduce must process elements sequentially and does not support
+ * concurrency limiting.
+ *
+ * @template T - The type of elements in the array.
+ * @template U - The type of the accumulated result.
+ * @param {readonly T[]} array The array to reduce.
+ * @param {(accumulator: U, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<U>} reducer An async function that processes each element.
+ * @param {U} initialValue The initial value of the accumulator.
+ * @returns {Promise<U>} A promise that resolves to the final accumulated value.
+ * @example
+ * const numbers = [1, 2, 3, 4, 5];
+ * const sum = await reduceAsync(
+ *   numbers,
+ *   async (acc, n) => acc + await fetchValue(n),
+ *   0
+ * );
+ * // Returns: sum of all fetched values
+ *
+ * @example
+ * const users = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const userMap = await reduceAsync(
+ *   users,
+ *   async (acc, user) => {
+ *     const details = await fetchUserDetails(user.id);
+ *     acc[user.id] = details;
+ *     return acc;
+ *   },
+ *   {} as Record<number, any>
+ * );
+ * // Returns: { 1: {...}, 2: {...}, 3: {...} }
+ */
+declare function reduceAsync<T, U>(array: readonly T[], reducer: (accumulator: U, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<U>, initialValue: U): Promise<U>;
+/**
+ * Reduces an array to a single value using an async reducer function.
+ *
+ * Applies the reducer function sequentially to each element (left to right),
+ * carrying an accumulated result from one call to the next. Unlike other async
+ * array methods, reduce must process elements sequentially and does not support
+ * concurrency limiting.
+ *
+ * When no initial value is provided, the first element of the array is used as
+ * the initial value and the reduction starts from the second element.
+ *
+ * @template T - The type of elements in the array.
+ * @param {readonly T[]} array The array to reduce.
+ * @param {(accumulator: T, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<T>} reducer An async function that processes each element.
+ * @returns {Promise<T | undefined>} A promise that resolves to the final accumulated value, or undefined if the array is empty.
+ * @example
+ * const numbers = [1, 2, 3, 4, 5];
+ * const sum = await reduceAsync(
+ *   numbers,
+ *   async (acc, n) => acc + n
+ * );
+ * // Returns: 15
+ *
+ * @example
+ * const emptyArray: number[] = [];
+ * const result = await reduceAsync(
+ *   emptyArray,
+ *   async (acc, n) => acc + n
+ * );
+ * // Returns: undefined
+ */
+declare function reduceAsync<T>(array: readonly T[], reducer: (accumulator: T, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<T>): Promise<T>;
+
+export { reduceAsync };
Index: node_modules/es-toolkit/dist/array/reduceAsync.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/reduceAsync.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/reduceAsync.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,71 @@
+/**
+ * Reduces an array to a single value using an async reducer function.
+ *
+ * Applies the reducer function sequentially to each element (left to right),
+ * carrying an accumulated result from one call to the next. Unlike other async
+ * array methods, reduce must process elements sequentially and does not support
+ * concurrency limiting.
+ *
+ * @template T - The type of elements in the array.
+ * @template U - The type of the accumulated result.
+ * @param {readonly T[]} array The array to reduce.
+ * @param {(accumulator: U, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<U>} reducer An async function that processes each element.
+ * @param {U} initialValue The initial value of the accumulator.
+ * @returns {Promise<U>} A promise that resolves to the final accumulated value.
+ * @example
+ * const numbers = [1, 2, 3, 4, 5];
+ * const sum = await reduceAsync(
+ *   numbers,
+ *   async (acc, n) => acc + await fetchValue(n),
+ *   0
+ * );
+ * // Returns: sum of all fetched values
+ *
+ * @example
+ * const users = [{ id: 1 }, { id: 2 }, { id: 3 }];
+ * const userMap = await reduceAsync(
+ *   users,
+ *   async (acc, user) => {
+ *     const details = await fetchUserDetails(user.id);
+ *     acc[user.id] = details;
+ *     return acc;
+ *   },
+ *   {} as Record<number, any>
+ * );
+ * // Returns: { 1: {...}, 2: {...}, 3: {...} }
+ */
+declare function reduceAsync<T, U>(array: readonly T[], reducer: (accumulator: U, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<U>, initialValue: U): Promise<U>;
+/**
+ * Reduces an array to a single value using an async reducer function.
+ *
+ * Applies the reducer function sequentially to each element (left to right),
+ * carrying an accumulated result from one call to the next. Unlike other async
+ * array methods, reduce must process elements sequentially and does not support
+ * concurrency limiting.
+ *
+ * When no initial value is provided, the first element of the array is used as
+ * the initial value and the reduction starts from the second element.
+ *
+ * @template T - The type of elements in the array.
+ * @param {readonly T[]} array The array to reduce.
+ * @param {(accumulator: T, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<T>} reducer An async function that processes each element.
+ * @returns {Promise<T | undefined>} A promise that resolves to the final accumulated value, or undefined if the array is empty.
+ * @example
+ * const numbers = [1, 2, 3, 4, 5];
+ * const sum = await reduceAsync(
+ *   numbers,
+ *   async (acc, n) => acc + n
+ * );
+ * // Returns: 15
+ *
+ * @example
+ * const emptyArray: number[] = [];
+ * const result = await reduceAsync(
+ *   emptyArray,
+ *   async (acc, n) => acc + n
+ * );
+ * // Returns: undefined
+ */
+declare function reduceAsync<T>(array: readonly T[], reducer: (accumulator: T, currentValue: T, currentIndex: number, array: readonly T[]) => Promise<T>): Promise<T>;
+
+export { reduceAsync };
Index: node_modules/es-toolkit/dist/array/reduceAsync.js
===================================================================
--- node_modules/es-toolkit/dist/array/reduceAsync.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/reduceAsync.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+async function reduceAsync(array, reducer, initialValue) {
+    let startIndex = 0;
+    if (initialValue == null) {
+        initialValue = array[0];
+        startIndex = 1;
+    }
+    let accumulator = initialValue;
+    for (let i = startIndex; i < array.length; i++) {
+        accumulator = await reducer(accumulator, array[i], i, array);
+    }
+    return accumulator;
+}
+
+exports.reduceAsync = reduceAsync;
Index: node_modules/es-toolkit/dist/array/reduceAsync.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/reduceAsync.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/reduceAsync.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,14 @@
+async function reduceAsync(array, reducer, initialValue) {
+    let startIndex = 0;
+    if (initialValue == null) {
+        initialValue = array[0];
+        startIndex = 1;
+    }
+    let accumulator = initialValue;
+    for (let i = startIndex; i < array.length; i++) {
+        accumulator = await reducer(accumulator, array[i], i, array);
+    }
+    return accumulator;
+}
+
+export { reduceAsync };
Index: node_modules/es-toolkit/dist/array/remove.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/remove.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/remove.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+/**
+ * Removes elements from an array based on a predicate function.
+ *
+ * This function changes `arr` in place.
+ * If you want to remove elements without modifying the original array, use `filter`.
+ *
+ * @template T
+ * @param {T[]} arr - The array to modify.
+ * @param {(value: T, index: number, array: T[]) => boolean} shouldRemoveElement - The function invoked per iteration to determine if an element should be removed.
+ * @returns {T[]} The modified array with the specified elements removed.
+ *
+ * @example
+ * const numbers = [1, 2, 3, 4, 5];
+ * remove(numbers, (value) => value % 2 === 0);
+ * console.log(numbers); // [1, 3, 5]
+ */
+declare function remove<T>(arr: T[], shouldRemoveElement: (value: T, index: number, array: T[]) => boolean): T[];
+
+export { remove };
Index: node_modules/es-toolkit/dist/array/remove.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/remove.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/remove.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+/**
+ * Removes elements from an array based on a predicate function.
+ *
+ * This function changes `arr` in place.
+ * If you want to remove elements without modifying the original array, use `filter`.
+ *
+ * @template T
+ * @param {T[]} arr - The array to modify.
+ * @param {(value: T, index: number, array: T[]) => boolean} shouldRemoveElement - The function invoked per iteration to determine if an element should be removed.
+ * @returns {T[]} The modified array with the specified elements removed.
+ *
+ * @example
+ * const numbers = [1, 2, 3, 4, 5];
+ * remove(numbers, (value) => value % 2 === 0);
+ * console.log(numbers); // [1, 3, 5]
+ */
+declare function remove<T>(arr: T[], shouldRemoveElement: (value: T, index: number, array: T[]) => boolean): T[];
+
+export { remove };
Index: node_modules/es-toolkit/dist/array/remove.js
===================================================================
--- node_modules/es-toolkit/dist/array/remove.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/remove.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,24 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function remove(arr, shouldRemoveElement) {
+    const originalArr = arr.slice();
+    const removed = [];
+    let resultIndex = 0;
+    for (let i = 0; i < arr.length; i++) {
+        if (shouldRemoveElement(arr[i], i, originalArr)) {
+            removed.push(arr[i]);
+            continue;
+        }
+        if (!Object.hasOwn(arr, i)) {
+            delete arr[resultIndex++];
+            continue;
+        }
+        arr[resultIndex++] = arr[i];
+    }
+    arr.length = resultIndex;
+    return removed;
+}
+
+exports.remove = remove;
Index: node_modules/es-toolkit/dist/array/remove.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/remove.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/remove.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,20 @@
+function remove(arr, shouldRemoveElement) {
+    const originalArr = arr.slice();
+    const removed = [];
+    let resultIndex = 0;
+    for (let i = 0; i < arr.length; i++) {
+        if (shouldRemoveElement(arr[i], i, originalArr)) {
+            removed.push(arr[i]);
+            continue;
+        }
+        if (!Object.hasOwn(arr, i)) {
+            delete arr[resultIndex++];
+            continue;
+        }
+        arr[resultIndex++] = arr[i];
+    }
+    arr.length = resultIndex;
+    return removed;
+}
+
+export { remove };
Index: node_modules/es-toolkit/dist/array/sample.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/sample.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/sample.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,17 @@
+/**
+ * Returns a random element from an array.
+ *
+ * This function takes an array and returns a single element selected randomly from the array.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to sample from.
+ * @returns {T} A random element from the array.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const randomElement = sample(array);
+ * // randomElement will be one of the elements from the array, selected randomly.
+ */
+declare function sample<T>(arr: readonly T[]): T;
+
+export { sample };
Index: node_modules/es-toolkit/dist/array/sample.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/sample.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/sample.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,17 @@
+/**
+ * Returns a random element from an array.
+ *
+ * This function takes an array and returns a single element selected randomly from the array.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to sample from.
+ * @returns {T} A random element from the array.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const randomElement = sample(array);
+ * // randomElement will be one of the elements from the array, selected randomly.
+ */
+declare function sample<T>(arr: readonly T[]): T;
+
+export { sample };
Index: node_modules/es-toolkit/dist/array/sample.js
===================================================================
--- node_modules/es-toolkit/dist/array/sample.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/sample.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,10 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function sample(arr) {
+    const randomIndex = Math.floor(Math.random() * arr.length);
+    return arr[randomIndex];
+}
+
+exports.sample = sample;
Index: node_modules/es-toolkit/dist/array/sample.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/sample.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/sample.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,6 @@
+function sample(arr) {
+    const randomIndex = Math.floor(Math.random() * arr.length);
+    return arr[randomIndex];
+}
+
+export { sample };
Index: node_modules/es-toolkit/dist/array/sampleSize.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/sampleSize.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/sampleSize.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,21 @@
+/**
+ * Returns a sample element array of a specified `size`.
+ *
+ * This function takes an array and a number, and returns an array containing the sampled elements using Floyd's algorithm.
+ *
+ * {@link https://www.nowherenearithaca.com/2013/05/robert-floyds-tiny-and-beautiful.html Floyd's algorithm}
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} array - The array to sample from.
+ * @param {number} size - The size of sample.
+ * @returns {T[]} A new array with sample size applied.
+ * @throws {Error} Throws an error if `size` is greater than the length of `array`.
+ *
+ * @example
+ * const result = sampleSize([1, 2, 3], 2)
+ * // result will be an array containing two of the elements from the array.
+ * // [1, 2] or [1, 3] or [2, 3]
+ */
+declare function sampleSize<T>(array: readonly T[], size: number): T[];
+
+export { sampleSize };
Index: node_modules/es-toolkit/dist/array/sampleSize.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/sampleSize.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/sampleSize.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,21 @@
+/**
+ * Returns a sample element array of a specified `size`.
+ *
+ * This function takes an array and a number, and returns an array containing the sampled elements using Floyd's algorithm.
+ *
+ * {@link https://www.nowherenearithaca.com/2013/05/robert-floyds-tiny-and-beautiful.html Floyd's algorithm}
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} array - The array to sample from.
+ * @param {number} size - The size of sample.
+ * @returns {T[]} A new array with sample size applied.
+ * @throws {Error} Throws an error if `size` is greater than the length of `array`.
+ *
+ * @example
+ * const result = sampleSize([1, 2, 3], 2)
+ * // result will be an array containing two of the elements from the array.
+ * // [1, 2] or [1, 3] or [2, 3]
+ */
+declare function sampleSize<T>(array: readonly T[], size: number): T[];
+
+export { sampleSize };
Index: node_modules/es-toolkit/dist/array/sampleSize.js
===================================================================
--- node_modules/es-toolkit/dist/array/sampleSize.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/sampleSize.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,24 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const randomInt = require('../math/randomInt.js');
+
+function sampleSize(array, size) {
+    if (size > array.length) {
+        throw new Error('Size must be less than or equal to the length of array.');
+    }
+    const result = new Array(size);
+    const selected = new Set();
+    for (let step = array.length - size, resultIndex = 0; step < array.length; step++, resultIndex++) {
+        let index = randomInt.randomInt(0, step + 1);
+        if (selected.has(index)) {
+            index = step;
+        }
+        selected.add(index);
+        result[resultIndex] = array[index];
+    }
+    return result;
+}
+
+exports.sampleSize = sampleSize;
Index: node_modules/es-toolkit/dist/array/sampleSize.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/sampleSize.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/sampleSize.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,20 @@
+import { randomInt } from '../math/randomInt.mjs';
+
+function sampleSize(array, size) {
+    if (size > array.length) {
+        throw new Error('Size must be less than or equal to the length of array.');
+    }
+    const result = new Array(size);
+    const selected = new Set();
+    for (let step = array.length - size, resultIndex = 0; step < array.length; step++, resultIndex++) {
+        let index = randomInt(0, step + 1);
+        if (selected.has(index)) {
+            index = step;
+        }
+        selected.add(index);
+        result[resultIndex] = array[index];
+    }
+    return result;
+}
+
+export { sampleSize };
Index: node_modules/es-toolkit/dist/array/shuffle.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/shuffle.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/shuffle.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,17 @@
+/**
+ * Randomizes the order of elements in an array using the Fisher-Yates algorithm.
+ *
+ * This function takes an array and returns a new array with its elements shuffled in a random order.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to shuffle.
+ * @returns {T[]} A new array with its elements shuffled in random order.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const shuffledArray = shuffle(array);
+ * // shuffledArray will be a new array with elements of array in random order, e.g., [3, 1, 4, 5, 2]
+ */
+declare function shuffle<T>(arr: readonly T[]): T[];
+
+export { shuffle };
Index: node_modules/es-toolkit/dist/array/shuffle.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/shuffle.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/shuffle.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,17 @@
+/**
+ * Randomizes the order of elements in an array using the Fisher-Yates algorithm.
+ *
+ * This function takes an array and returns a new array with its elements shuffled in a random order.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to shuffle.
+ * @returns {T[]} A new array with its elements shuffled in random order.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * const shuffledArray = shuffle(array);
+ * // shuffledArray will be a new array with elements of array in random order, e.g., [3, 1, 4, 5, 2]
+ */
+declare function shuffle<T>(arr: readonly T[]): T[];
+
+export { shuffle };
Index: node_modules/es-toolkit/dist/array/shuffle.js
===================================================================
--- node_modules/es-toolkit/dist/array/shuffle.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/shuffle.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,14 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function shuffle(arr) {
+    const result = arr.slice();
+    for (let i = result.length - 1; i >= 1; i--) {
+        const j = Math.floor(Math.random() * (i + 1));
+        [result[i], result[j]] = [result[j], result[i]];
+    }
+    return result;
+}
+
+exports.shuffle = shuffle;
Index: node_modules/es-toolkit/dist/array/shuffle.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/shuffle.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/shuffle.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,10 @@
+function shuffle(arr) {
+    const result = arr.slice();
+    for (let i = result.length - 1; i >= 1; i--) {
+        const j = Math.floor(Math.random() * (i + 1));
+        [result[i], result[j]] = [result[j], result[i]];
+    }
+    return result;
+}
+
+export { shuffle };
Index: node_modules/es-toolkit/dist/array/sortBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/sortBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/sortBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,35 @@
+/**
+ * Sorts an array of objects based on the given `criteria`.
+ *
+ * - If you provide keys, it sorts the objects by the values of those keys.
+ * - If you provide functions, it sorts based on the values returned by those functions.
+ *
+ * The function returns the array of objects sorted in ascending order.
+ * If two objects have the same value for the current criterion, it uses the next criterion to determine their order.
+ *
+ * @template T - The type of the objects in the array.
+ * @param {T[]} arr - The array of objects to be sorted.
+ * @param {Array<((item: T) => unknown) | keyof T>} criteria - The criteria for sorting. This can be an array of object keys or functions that return values used for sorting.
+ * @returns {T[]} - The sorted array.
+ *
+ * @example
+ * const users = [
+ *  { user: 'foo', age: 24 },
+ *  { user: 'bar', age: 7 },
+ *  { user: 'foo', age: 8 },
+ *  { user: 'bar', age: 29 },
+ * ];
+ *
+ * sortBy(users, ['user', 'age']);
+ * sortBy(users, [obj => obj.user, 'age']);
+ * // results will be:
+ * // [
+ * //   { user : 'bar', age: 7 },
+ * //   { user : 'bar', age: 29 },
+ * //   { user : 'foo', age: 8 },
+ * //   { user : 'foo', age: 24 },
+ * // ]
+ */
+declare function sortBy<T extends object>(arr: readonly T[], criteria: Array<((item: T) => unknown) | keyof T>): T[];
+
+export { sortBy };
Index: node_modules/es-toolkit/dist/array/sortBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/sortBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/sortBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,35 @@
+/**
+ * Sorts an array of objects based on the given `criteria`.
+ *
+ * - If you provide keys, it sorts the objects by the values of those keys.
+ * - If you provide functions, it sorts based on the values returned by those functions.
+ *
+ * The function returns the array of objects sorted in ascending order.
+ * If two objects have the same value for the current criterion, it uses the next criterion to determine their order.
+ *
+ * @template T - The type of the objects in the array.
+ * @param {T[]} arr - The array of objects to be sorted.
+ * @param {Array<((item: T) => unknown) | keyof T>} criteria - The criteria for sorting. This can be an array of object keys or functions that return values used for sorting.
+ * @returns {T[]} - The sorted array.
+ *
+ * @example
+ * const users = [
+ *  { user: 'foo', age: 24 },
+ *  { user: 'bar', age: 7 },
+ *  { user: 'foo', age: 8 },
+ *  { user: 'bar', age: 29 },
+ * ];
+ *
+ * sortBy(users, ['user', 'age']);
+ * sortBy(users, [obj => obj.user, 'age']);
+ * // results will be:
+ * // [
+ * //   { user : 'bar', age: 7 },
+ * //   { user : 'bar', age: 29 },
+ * //   { user : 'foo', age: 8 },
+ * //   { user : 'foo', age: 24 },
+ * // ]
+ */
+declare function sortBy<T extends object>(arr: readonly T[], criteria: Array<((item: T) => unknown) | keyof T>): T[];
+
+export { sortBy };
Index: node_modules/es-toolkit/dist/array/sortBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/sortBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/sortBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const orderBy = require('./orderBy.js');
+
+function sortBy(arr, criteria) {
+    return orderBy.orderBy(arr, criteria, ['asc']);
+}
+
+exports.sortBy = sortBy;
Index: node_modules/es-toolkit/dist/array/sortBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/sortBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/sortBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,7 @@
+import { orderBy } from './orderBy.mjs';
+
+function sortBy(arr, criteria) {
+    return orderBy(arr, criteria, ['asc']);
+}
+
+export { sortBy };
Index: node_modules/es-toolkit/dist/array/tail.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/tail.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/tail.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,67 @@
+/**
+ * Returns an empty array when the input is a single-element array.
+ *
+ * @template T - The type of the single element in the array.
+ * @param {[T]} arr - The single-element array to process.
+ * @returns {[]} An empty array.
+ *
+ * @example
+ * const arr = [1];
+ * const result = tail(arr);
+ * // result will be []
+ */
+declare function tail<T>(arr: readonly [T]): [];
+/**
+ * Returns an empty array when the input is an empty array.
+ *
+ * @template T - The type of elements in the array.
+ * @param {[]} arr - The empty array to process.
+ * @returns {[]} An empty array.
+ *
+ * @example
+ * const arr = [];
+ * const result = tail(arr);
+ * // result will be []
+ */
+declare function tail(arr: readonly []): [];
+/**
+ * Returns a new array with all elements except for the first when the input is a tuple array.
+ *
+ * @template T - The type of the first element in the tuple array.
+ * @template U - The type of the remaining elements in the tuple array.
+ * @param {[T, ...U[]]} arr - The tuple array to process.
+ * @returns {U[]} A new array containing all elements of the input array except for the first one.
+ *
+ * @example
+ * const arr = [1, 2, 3];
+ * const result = tail(arr);
+ * // result will be [2, 3]
+ */
+declare function tail<T, U>(arr: readonly [T, ...U[]]): U[];
+/**
+ * Returns a new array with all elements except for the first.
+ *
+ * This function takes an array and returns a new array containing all the elements
+ * except for the first one. If the input array is empty or has only one element,
+ * an empty array is returned.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to get the tail of.
+ * @returns {T[]} A new array containing all elements of the input array except for the first one.
+ *
+ * @example
+ * const arr1 = [1, 2, 3];
+ * const result = tail(arr1);
+ * // result will be [2, 3]
+ *
+ * const arr2 = [1];
+ * const result2 = tail(arr2);
+ * // result2 will be []
+ *
+ * const arr3 = [];
+ * const result3 = tail(arr3);
+ * // result3 will be []
+ */
+declare function tail<T>(arr: readonly T[]): T[];
+
+export { tail };
Index: node_modules/es-toolkit/dist/array/tail.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/tail.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/tail.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,67 @@
+/**
+ * Returns an empty array when the input is a single-element array.
+ *
+ * @template T - The type of the single element in the array.
+ * @param {[T]} arr - The single-element array to process.
+ * @returns {[]} An empty array.
+ *
+ * @example
+ * const arr = [1];
+ * const result = tail(arr);
+ * // result will be []
+ */
+declare function tail<T>(arr: readonly [T]): [];
+/**
+ * Returns an empty array when the input is an empty array.
+ *
+ * @template T - The type of elements in the array.
+ * @param {[]} arr - The empty array to process.
+ * @returns {[]} An empty array.
+ *
+ * @example
+ * const arr = [];
+ * const result = tail(arr);
+ * // result will be []
+ */
+declare function tail(arr: readonly []): [];
+/**
+ * Returns a new array with all elements except for the first when the input is a tuple array.
+ *
+ * @template T - The type of the first element in the tuple array.
+ * @template U - The type of the remaining elements in the tuple array.
+ * @param {[T, ...U[]]} arr - The tuple array to process.
+ * @returns {U[]} A new array containing all elements of the input array except for the first one.
+ *
+ * @example
+ * const arr = [1, 2, 3];
+ * const result = tail(arr);
+ * // result will be [2, 3]
+ */
+declare function tail<T, U>(arr: readonly [T, ...U[]]): U[];
+/**
+ * Returns a new array with all elements except for the first.
+ *
+ * This function takes an array and returns a new array containing all the elements
+ * except for the first one. If the input array is empty or has only one element,
+ * an empty array is returned.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to get the tail of.
+ * @returns {T[]} A new array containing all elements of the input array except for the first one.
+ *
+ * @example
+ * const arr1 = [1, 2, 3];
+ * const result = tail(arr1);
+ * // result will be [2, 3]
+ *
+ * const arr2 = [1];
+ * const result2 = tail(arr2);
+ * // result2 will be []
+ *
+ * const arr3 = [];
+ * const result3 = tail(arr3);
+ * // result3 will be []
+ */
+declare function tail<T>(arr: readonly T[]): T[];
+
+export { tail };
Index: node_modules/es-toolkit/dist/array/tail.js
===================================================================
--- node_modules/es-toolkit/dist/array/tail.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/tail.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,9 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function tail(arr) {
+    return arr.slice(1);
+}
+
+exports.tail = tail;
Index: node_modules/es-toolkit/dist/array/tail.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/tail.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/tail.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,5 @@
+function tail(arr) {
+    return arr.slice(1);
+}
+
+export { tail };
Index: node_modules/es-toolkit/dist/array/take.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/take.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/take.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,31 @@
+/**
+ * Returns a new array containing the first `count` elements from the input array `arr`.
+ * If `count` is greater than the length of `arr`, the entire array is returned.
+ *
+ * @template T - Type of elements in the input array.
+ *
+ * @param {T[]} arr - The array to take elements from.
+ * @param {number} count - The number of elements to take.
+ * @param {unknown} guard - If truthy, ignores `count` and defaults to 1.
+ * @returns {T[]} A new array containing the first `count` elements from `arr`.
+ *
+ * @example
+ * // Returns [1, 2, 3]
+ * take([1, 2, 3, 4, 5], 3);
+ *
+ * @example
+ * // Returns ['a', 'b']
+ * take(['a', 'b', 'c'], 2);
+ *
+ * @example
+ * // Returns [1, 2, 3]
+ * take([1, 2, 3], 5);
+ *
+ * @example
+ * // Returns [[1], [1], [1]]
+ * const arr = [1, 2, 3];
+ * const result = arr.map((v, i, array) => take(array, i, true));
+ */
+declare function take<T>(arr: readonly T[], count?: number, guard?: unknown): T[];
+
+export { take };
Index: node_modules/es-toolkit/dist/array/take.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/take.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/take.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,31 @@
+/**
+ * Returns a new array containing the first `count` elements from the input array `arr`.
+ * If `count` is greater than the length of `arr`, the entire array is returned.
+ *
+ * @template T - Type of elements in the input array.
+ *
+ * @param {T[]} arr - The array to take elements from.
+ * @param {number} count - The number of elements to take.
+ * @param {unknown} guard - If truthy, ignores `count` and defaults to 1.
+ * @returns {T[]} A new array containing the first `count` elements from `arr`.
+ *
+ * @example
+ * // Returns [1, 2, 3]
+ * take([1, 2, 3, 4, 5], 3);
+ *
+ * @example
+ * // Returns ['a', 'b']
+ * take(['a', 'b', 'c'], 2);
+ *
+ * @example
+ * // Returns [1, 2, 3]
+ * take([1, 2, 3], 5);
+ *
+ * @example
+ * // Returns [[1], [1], [1]]
+ * const arr = [1, 2, 3];
+ * const result = arr.map((v, i, array) => take(array, i, true));
+ */
+declare function take<T>(arr: readonly T[], count?: number, guard?: unknown): T[];
+
+export { take };
Index: node_modules/es-toolkit/dist/array/take.js
===================================================================
--- node_modules/es-toolkit/dist/array/take.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/take.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,12 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const toInteger = require('../compat/util/toInteger.js');
+
+function take(arr, count, guard) {
+    count = guard || count === undefined ? 1 : toInteger.toInteger(count);
+    return arr.slice(0, count);
+}
+
+exports.take = take;
Index: node_modules/es-toolkit/dist/array/take.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/take.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/take.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,8 @@
+import { toInteger } from '../compat/util/toInteger.mjs';
+
+function take(arr, count, guard) {
+    count = guard || count === undefined ? 1 : toInteger(count);
+    return arr.slice(0, count);
+}
+
+export { take };
Index: node_modules/es-toolkit/dist/array/takeRight.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/takeRight.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/takeRight.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,24 @@
+/**
+ * Returns a new array containing the last `count` elements from the input array `arr`.
+ * If `count` is greater than the length of `arr`, the entire array is returned.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to take elements from.
+ * @param {number} [count=1] - The number of elements to take.
+ * @returns {T[]} A new array containing the last `count` elements from `arr`.
+ *
+ * @example
+ * // Returns [4, 5]
+ * takeRight([1, 2, 3, 4, 5], 2);
+ *
+ * @example
+ * // Returns ['b', 'c']
+ * takeRight(['a', 'b', 'c'], 2);
+ *
+ * @example
+ * // Returns [1, 2, 3]
+ * takeRight([1, 2, 3], 5);
+ */
+declare function takeRight<T>(arr: readonly T[], count?: number, guard?: unknown): T[];
+
+export { takeRight };
Index: node_modules/es-toolkit/dist/array/takeRight.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/takeRight.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/takeRight.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,24 @@
+/**
+ * Returns a new array containing the last `count` elements from the input array `arr`.
+ * If `count` is greater than the length of `arr`, the entire array is returned.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to take elements from.
+ * @param {number} [count=1] - The number of elements to take.
+ * @returns {T[]} A new array containing the last `count` elements from `arr`.
+ *
+ * @example
+ * // Returns [4, 5]
+ * takeRight([1, 2, 3, 4, 5], 2);
+ *
+ * @example
+ * // Returns ['b', 'c']
+ * takeRight(['a', 'b', 'c'], 2);
+ *
+ * @example
+ * // Returns [1, 2, 3]
+ * takeRight([1, 2, 3], 5);
+ */
+declare function takeRight<T>(arr: readonly T[], count?: number, guard?: unknown): T[];
+
+export { takeRight };
Index: node_modules/es-toolkit/dist/array/takeRight.js
===================================================================
--- node_modules/es-toolkit/dist/array/takeRight.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/takeRight.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,15 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const toInteger = require('../compat/util/toInteger.js');
+
+function takeRight(arr, count, guard) {
+    count = guard || count === undefined ? 1 : toInteger.toInteger(count);
+    if (count <= 0 || arr.length === 0) {
+        return [];
+    }
+    return arr.slice(-count);
+}
+
+exports.takeRight = takeRight;
Index: node_modules/es-toolkit/dist/array/takeRight.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/takeRight.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/takeRight.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+import { toInteger } from '../compat/util/toInteger.mjs';
+
+function takeRight(arr, count, guard) {
+    count = guard || count === undefined ? 1 : toInteger(count);
+    if (count <= 0 || arr.length === 0) {
+        return [];
+    }
+    return arr.slice(-count);
+}
+
+export { takeRight };
Index: node_modules/es-toolkit/dist/array/takeRightWhile.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/takeRightWhile.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/takeRightWhile.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,25 @@
+/**
+ * Takes elements from the end of the array while the predicate function returns `true`.
+ *
+ * @template T - Type of elements in the input array.
+ *
+ * @param {T[]} arr - The array to take elements from.
+ * @param {(item: T, index: number, array: readonly T[]) => boolean} shouldContinueTaking - The function invoked per element with the item, its index, and the array.
+ * @returns {T[]} A new array containing the elements taken from the end while the predicate returns `true`.
+ *
+ * @example
+ * // Returns [3, 2, 1]
+ * takeRightWhile([5, 4, 3, 2, 1], n => n < 4);
+ *
+ * @example
+ * // Returns []
+ * takeRightWhile([1, 2, 3], n => n > 3);
+ *
+ * @example
+ * // Using index parameter
+ * takeRightWhile([10, 20, 30, 40], (x, index) => index > 1);
+ * // Returns: [30, 40]
+ */
+declare function takeRightWhile<T>(arr: readonly T[], shouldContinueTaking: (item: T, index: number, array: readonly T[]) => boolean): T[];
+
+export { takeRightWhile };
Index: node_modules/es-toolkit/dist/array/takeRightWhile.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/takeRightWhile.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/takeRightWhile.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,25 @@
+/**
+ * Takes elements from the end of the array while the predicate function returns `true`.
+ *
+ * @template T - Type of elements in the input array.
+ *
+ * @param {T[]} arr - The array to take elements from.
+ * @param {(item: T, index: number, array: readonly T[]) => boolean} shouldContinueTaking - The function invoked per element with the item, its index, and the array.
+ * @returns {T[]} A new array containing the elements taken from the end while the predicate returns `true`.
+ *
+ * @example
+ * // Returns [3, 2, 1]
+ * takeRightWhile([5, 4, 3, 2, 1], n => n < 4);
+ *
+ * @example
+ * // Returns []
+ * takeRightWhile([1, 2, 3], n => n > 3);
+ *
+ * @example
+ * // Using index parameter
+ * takeRightWhile([10, 20, 30, 40], (x, index) => index > 1);
+ * // Returns: [30, 40]
+ */
+declare function takeRightWhile<T>(arr: readonly T[], shouldContinueTaking: (item: T, index: number, array: readonly T[]) => boolean): T[];
+
+export { takeRightWhile };
Index: node_modules/es-toolkit/dist/array/takeRightWhile.js
===================================================================
--- node_modules/es-toolkit/dist/array/takeRightWhile.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/takeRightWhile.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,14 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function takeRightWhile(arr, shouldContinueTaking) {
+    for (let i = arr.length - 1; i >= 0; i--) {
+        if (!shouldContinueTaking(arr[i], i, arr)) {
+            return arr.slice(i + 1);
+        }
+    }
+    return arr.slice();
+}
+
+exports.takeRightWhile = takeRightWhile;
Index: node_modules/es-toolkit/dist/array/takeRightWhile.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/takeRightWhile.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/takeRightWhile.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,10 @@
+function takeRightWhile(arr, shouldContinueTaking) {
+    for (let i = arr.length - 1; i >= 0; i--) {
+        if (!shouldContinueTaking(arr[i], i, arr)) {
+            return arr.slice(i + 1);
+        }
+    }
+    return arr.slice();
+}
+
+export { takeRightWhile };
Index: node_modules/es-toolkit/dist/array/takeWhile.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/takeWhile.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/takeWhile.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,26 @@
+/**
+ * Returns a new array containing the leading elements of the provided array
+ * that satisfy the provided predicate function. It stops taking elements as soon
+ * as an element does not satisfy the predicate.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to process.
+ * @param {(element: T, index: number, array: readonly T[]) => boolean} shouldContinueTaking - The predicate function that is called with each element, its index, and the array. Elements are included in the result as long as this function returns true.
+ * @returns {T[]} A new array containing the leading elements that satisfy the predicate.
+ *
+ * @example
+ * // Returns [1, 2]
+ * takeWhile([1, 2, 3, 4], x => x < 3);
+ *
+ * @example
+ * // Returns []
+ * takeWhile([1, 2, 3, 4], x => x > 3);
+ *
+ * @example
+ * // Using index parameter
+ * takeWhile([10, 20, 30, 40], (x, index) => index < 2);
+ * // Returns: [10, 20]
+ */
+declare function takeWhile<T>(arr: readonly T[], shouldContinueTaking: (element: T, index: number, array: readonly T[]) => boolean): T[];
+
+export { takeWhile };
Index: node_modules/es-toolkit/dist/array/takeWhile.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/takeWhile.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/takeWhile.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,26 @@
+/**
+ * Returns a new array containing the leading elements of the provided array
+ * that satisfy the provided predicate function. It stops taking elements as soon
+ * as an element does not satisfy the predicate.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to process.
+ * @param {(element: T, index: number, array: readonly T[]) => boolean} shouldContinueTaking - The predicate function that is called with each element, its index, and the array. Elements are included in the result as long as this function returns true.
+ * @returns {T[]} A new array containing the leading elements that satisfy the predicate.
+ *
+ * @example
+ * // Returns [1, 2]
+ * takeWhile([1, 2, 3, 4], x => x < 3);
+ *
+ * @example
+ * // Returns []
+ * takeWhile([1, 2, 3, 4], x => x > 3);
+ *
+ * @example
+ * // Using index parameter
+ * takeWhile([10, 20, 30, 40], (x, index) => index < 2);
+ * // Returns: [10, 20]
+ */
+declare function takeWhile<T>(arr: readonly T[], shouldContinueTaking: (element: T, index: number, array: readonly T[]) => boolean): T[];
+
+export { takeWhile };
Index: node_modules/es-toolkit/dist/array/takeWhile.js
===================================================================
--- node_modules/es-toolkit/dist/array/takeWhile.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/takeWhile.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,17 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function takeWhile(arr, shouldContinueTaking) {
+    const result = [];
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        if (!shouldContinueTaking(item, i, arr)) {
+            break;
+        }
+        result.push(item);
+    }
+    return result;
+}
+
+exports.takeWhile = takeWhile;
Index: node_modules/es-toolkit/dist/array/takeWhile.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/takeWhile.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/takeWhile.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,13 @@
+function takeWhile(arr, shouldContinueTaking) {
+    const result = [];
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        if (!shouldContinueTaking(item, i, arr)) {
+            break;
+        }
+        result.push(item);
+    }
+    return result;
+}
+
+export { takeWhile };
Index: node_modules/es-toolkit/dist/array/toFilled.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/toFilled.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/toFilled.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,92 @@
+/**
+ * Creates a new array filled with the specified value from the start position up to, but not including, the end position.
+ * This function does not mutate the original array.
+ *
+ * @template T - The type of elements in the original array.
+ * @template U - The type of the value to fill the new array with.
+ * @param {Array<T>} arr - The array to base the new array on.
+ * @param {U} value - The value to fill the new array with.
+ * @returns {Array<T | U>} The new array with the filled values.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * let result = toFilled(array, '*', 2);
+ * console.log(result); // [1, 2, '*', '*', '*']
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*', 1, 4);
+ * console.log(result); // [1, '*', '*', '*', 5]
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*');
+ * console.log(result); // ['*', '*', '*', '*', '*']
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*', -4, -1);
+ * console.log(result); // [1, '*', '*', '*', 5]
+ * console.log(array); // [1, 2, 3, 4, 5]
+ */
+declare function toFilled<T, U>(arr: readonly T[], value: U): Array<T | U>;
+/**
+ * Creates a new array filled with the specified value from the start position up to, but not including, the end position.
+ * This function does not mutate the original array.
+ *
+ * @template T - The type of elements in the original array.
+ * @template U - The type of the value to fill the new array with.
+ * @param {Array<T>} arr - The array to base the new array on.
+ * @param {U} value - The value to fill the new array with.
+ * @param {number} [start=0] - The start position. Defaults to 0.
+ * @returns {Array<T | U>} The new array with the filled values.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * let result = toFilled(array, '*', 2);
+ * console.log(result); // [1, 2, '*', '*', '*']
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*', 1, 4);
+ * console.log(result); // [1, '*', '*', '*', 5]
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*');
+ * console.log(result); // ['*', '*', '*', '*', '*']
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*', -4, -1);
+ * console.log(result); // [1, '*', '*', '*', 5]
+ * console.log(array); // [1, 2, 3, 4, 5]
+ */
+declare function toFilled<T, U>(arr: readonly T[], value: U, start: number): Array<T | U>;
+/**
+ * Creates a new array filled with the specified value from the start position up to, but not including, the end position.
+ * This function does not mutate the original array.
+ *
+ * @template T - The type of elements in the original array.
+ * @template U - The type of the value to fill the new array with.
+ * @param {Array<T>} arr - The array to base the new array on.
+ * @param {U} value - The value to fill the new array with.
+ * @param {number} [start=0] - The start position. Defaults to 0.
+ * @param {number} [end=arr.length] - The end position. Defaults to the array's length.
+ * @returns {Array<T | U>} The new array with the filled values.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * let result = toFilled(array, '*', 2);
+ * console.log(result); // [1, 2, '*', '*', '*']
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*', 1, 4);
+ * console.log(result); // [1, '*', '*', '*', 5]
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*');
+ * console.log(result); // ['*', '*', '*', '*', '*']
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*', -4, -1);
+ * console.log(result); // [1, '*', '*', '*', 5]
+ * console.log(array); // [1, 2, 3, 4, 5]
+ */
+declare function toFilled<T, U>(arr: readonly T[], value: U, start: number, end: number): Array<T | U>;
+
+export { toFilled };
Index: node_modules/es-toolkit/dist/array/toFilled.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/toFilled.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/toFilled.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,92 @@
+/**
+ * Creates a new array filled with the specified value from the start position up to, but not including, the end position.
+ * This function does not mutate the original array.
+ *
+ * @template T - The type of elements in the original array.
+ * @template U - The type of the value to fill the new array with.
+ * @param {Array<T>} arr - The array to base the new array on.
+ * @param {U} value - The value to fill the new array with.
+ * @returns {Array<T | U>} The new array with the filled values.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * let result = toFilled(array, '*', 2);
+ * console.log(result); // [1, 2, '*', '*', '*']
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*', 1, 4);
+ * console.log(result); // [1, '*', '*', '*', 5]
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*');
+ * console.log(result); // ['*', '*', '*', '*', '*']
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*', -4, -1);
+ * console.log(result); // [1, '*', '*', '*', 5]
+ * console.log(array); // [1, 2, 3, 4, 5]
+ */
+declare function toFilled<T, U>(arr: readonly T[], value: U): Array<T | U>;
+/**
+ * Creates a new array filled with the specified value from the start position up to, but not including, the end position.
+ * This function does not mutate the original array.
+ *
+ * @template T - The type of elements in the original array.
+ * @template U - The type of the value to fill the new array with.
+ * @param {Array<T>} arr - The array to base the new array on.
+ * @param {U} value - The value to fill the new array with.
+ * @param {number} [start=0] - The start position. Defaults to 0.
+ * @returns {Array<T | U>} The new array with the filled values.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * let result = toFilled(array, '*', 2);
+ * console.log(result); // [1, 2, '*', '*', '*']
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*', 1, 4);
+ * console.log(result); // [1, '*', '*', '*', 5]
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*');
+ * console.log(result); // ['*', '*', '*', '*', '*']
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*', -4, -1);
+ * console.log(result); // [1, '*', '*', '*', 5]
+ * console.log(array); // [1, 2, 3, 4, 5]
+ */
+declare function toFilled<T, U>(arr: readonly T[], value: U, start: number): Array<T | U>;
+/**
+ * Creates a new array filled with the specified value from the start position up to, but not including, the end position.
+ * This function does not mutate the original array.
+ *
+ * @template T - The type of elements in the original array.
+ * @template U - The type of the value to fill the new array with.
+ * @param {Array<T>} arr - The array to base the new array on.
+ * @param {U} value - The value to fill the new array with.
+ * @param {number} [start=0] - The start position. Defaults to 0.
+ * @param {number} [end=arr.length] - The end position. Defaults to the array's length.
+ * @returns {Array<T | U>} The new array with the filled values.
+ *
+ * @example
+ * const array = [1, 2, 3, 4, 5];
+ * let result = toFilled(array, '*', 2);
+ * console.log(result); // [1, 2, '*', '*', '*']
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*', 1, 4);
+ * console.log(result); // [1, '*', '*', '*', 5]
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*');
+ * console.log(result); // ['*', '*', '*', '*', '*']
+ * console.log(array); // [1, 2, 3, 4, 5]
+ *
+ * result = toFilled(array, '*', -4, -1);
+ * console.log(result); // [1, '*', '*', '*', 5]
+ * console.log(array); // [1, 2, 3, 4, 5]
+ */
+declare function toFilled<T, U>(arr: readonly T[], value: U, start: number, end: number): Array<T | U>;
+
+export { toFilled };
Index: node_modules/es-toolkit/dist/array/toFilled.js
===================================================================
--- node_modules/es-toolkit/dist/array/toFilled.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/toFilled.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,16 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function toFilled(arr, value, start = 0, end = arr.length) {
+    const length = arr.length;
+    const finalStart = Math.max(start >= 0 ? start : length + start, 0);
+    const finalEnd = Math.min(end >= 0 ? end : length + end, length);
+    const newArr = arr.slice();
+    for (let i = finalStart; i < finalEnd; i++) {
+        newArr[i] = value;
+    }
+    return newArr;
+}
+
+exports.toFilled = toFilled;
Index: node_modules/es-toolkit/dist/array/toFilled.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/toFilled.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/toFilled.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,12 @@
+function toFilled(arr, value, start = 0, end = arr.length) {
+    const length = arr.length;
+    const finalStart = Math.max(start >= 0 ? start : length + start, 0);
+    const finalEnd = Math.min(end >= 0 ? end : length + end, length);
+    const newArr = arr.slice();
+    for (let i = finalStart; i < finalEnd; i++) {
+        newArr[i] = value;
+    }
+    return newArr;
+}
+
+export { toFilled };
Index: node_modules/es-toolkit/dist/array/union.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/union.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/union.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,20 @@
+/**
+ * Creates an array of unique values from all given arrays.
+ *
+ * This function takes two arrays, merges them into a single array, and returns a new array
+ * containing only the unique values from the merged array.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr1 - The first array to merge and filter for unique values.
+ * @param {T[]} arr2 - The second array to merge and filter for unique values.
+ * @returns {T[]} A new array of unique values.
+ *
+ * @example
+ * const array1 = [1, 2, 3];
+ * const array2 = [3, 4, 5];
+ * const result = union(array1, array2);
+ * // result will be [1, 2, 3, 4, 5]
+ */
+declare function union<T>(arr1: readonly T[], arr2: readonly T[]): T[];
+
+export { union };
Index: node_modules/es-toolkit/dist/array/union.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/union.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/union.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,20 @@
+/**
+ * Creates an array of unique values from all given arrays.
+ *
+ * This function takes two arrays, merges them into a single array, and returns a new array
+ * containing only the unique values from the merged array.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr1 - The first array to merge and filter for unique values.
+ * @param {T[]} arr2 - The second array to merge and filter for unique values.
+ * @returns {T[]} A new array of unique values.
+ *
+ * @example
+ * const array1 = [1, 2, 3];
+ * const array2 = [3, 4, 5];
+ * const result = union(array1, array2);
+ * // result will be [1, 2, 3, 4, 5]
+ */
+declare function union<T>(arr1: readonly T[], arr2: readonly T[]): T[];
+
+export { union };
Index: node_modules/es-toolkit/dist/array/union.js
===================================================================
--- node_modules/es-toolkit/dist/array/union.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/union.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const uniq = require('./uniq.js');
+
+function union(arr1, arr2) {
+    return uniq.uniq(arr1.concat(arr2));
+}
+
+exports.union = union;
Index: node_modules/es-toolkit/dist/array/union.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/union.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/union.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,7 @@
+import { uniq } from './uniq.mjs';
+
+function union(arr1, arr2) {
+    return uniq(arr1.concat(arr2));
+}
+
+export { union };
Index: node_modules/es-toolkit/dist/array/unionBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/unionBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unionBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,25 @@
+/**
+ * Creates an array of unique values, in order, from all given arrays using a provided mapping function to determine equality.
+ *
+ * @template T - The type of elements in the array.
+ * @template U - The type of mapped elements.
+ * @param {T[]} arr1 - The first array.
+ * @param {T[]} arr2 - The second array.
+ * @param {(item: T) => U} mapper - The function to map array elements to comparison values.
+ * @returns {T[]} A new array containing the union of unique elements from `arr1` and `arr2`, based on the values returned by the mapping function.
+ *
+ * @example
+ * // Custom mapping function for numbers (modulo comparison)
+ * const moduloMapper = (x) => x % 3;
+ * unionBy([1, 2, 3], [4, 5, 6], moduloMapper);
+ * // Returns [1, 2, 3]
+ *
+ * @example
+ * // Custom mapping function for objects with an 'id' property
+ * const idMapper = (obj) => obj.id;
+ * unionBy([{ id: 1 }, { id: 2 }], [{ id: 2 }, { id: 3 }], idMapper);
+ * // Returns [{ id: 1 }, { id: 2 }, { id: 3 }]
+ */
+declare function unionBy<T, U>(arr1: readonly T[], arr2: readonly T[], mapper: (item: T) => U): T[];
+
+export { unionBy };
Index: node_modules/es-toolkit/dist/array/unionBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/unionBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unionBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,25 @@
+/**
+ * Creates an array of unique values, in order, from all given arrays using a provided mapping function to determine equality.
+ *
+ * @template T - The type of elements in the array.
+ * @template U - The type of mapped elements.
+ * @param {T[]} arr1 - The first array.
+ * @param {T[]} arr2 - The second array.
+ * @param {(item: T) => U} mapper - The function to map array elements to comparison values.
+ * @returns {T[]} A new array containing the union of unique elements from `arr1` and `arr2`, based on the values returned by the mapping function.
+ *
+ * @example
+ * // Custom mapping function for numbers (modulo comparison)
+ * const moduloMapper = (x) => x % 3;
+ * unionBy([1, 2, 3], [4, 5, 6], moduloMapper);
+ * // Returns [1, 2, 3]
+ *
+ * @example
+ * // Custom mapping function for objects with an 'id' property
+ * const idMapper = (obj) => obj.id;
+ * unionBy([{ id: 1 }, { id: 2 }], [{ id: 2 }, { id: 3 }], idMapper);
+ * // Returns [{ id: 1 }, { id: 2 }, { id: 3 }]
+ */
+declare function unionBy<T, U>(arr1: readonly T[], arr2: readonly T[], mapper: (item: T) => U): T[];
+
+export { unionBy };
Index: node_modules/es-toolkit/dist/array/unionBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/unionBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unionBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const uniqBy = require('./uniqBy.js');
+
+function unionBy(arr1, arr2, mapper) {
+    return uniqBy.uniqBy(arr1.concat(arr2), mapper);
+}
+
+exports.unionBy = unionBy;
Index: node_modules/es-toolkit/dist/array/unionBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/unionBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unionBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,7 @@
+import { uniqBy } from './uniqBy.mjs';
+
+function unionBy(arr1, arr2, mapper) {
+    return uniqBy(arr1.concat(arr2), mapper);
+}
+
+export { unionBy };
Index: node_modules/es-toolkit/dist/array/unionWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/unionWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unionWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,23 @@
+/**
+ * Creates an array of unique values from two given arrays based on a custom equality function.
+ *
+ * This function takes two arrays and a custom equality function, merges the arrays, and returns
+ * a new array containing only the unique values as determined by the custom equality function.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr1 - The first array to merge and filter for unique values.
+ * @param {T[]} arr2 - The second array to merge and filter for unique values.
+ * @param {(item1: T, item2: T) => boolean} areItemsEqual - A custom function to determine if two elements are equal.
+ * It takes two arguments and returns `true` if the elements are considered equal, and `false` otherwise.
+ * @returns {T[]} A new array of unique values based on the custom equality function.
+ *
+ * @example
+ * const array1 = [{ id: 1 }, { id: 2 }];
+ * const array2 = [{ id: 2 }, { id: 3 }];
+ * const areItemsEqual = (a, b) => a.id === b.id;
+ * const result = unionWith(array1, array2, areItemsEqual);
+ * // result will be [{ id: 1 }, { id: 2 }, { id: 3 }] since { id: 2 } is considered equal in both arrays
+ */
+declare function unionWith<T>(arr1: readonly T[], arr2: readonly T[], areItemsEqual: (item1: T, item2: T) => boolean): T[];
+
+export { unionWith };
Index: node_modules/es-toolkit/dist/array/unionWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/unionWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unionWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,23 @@
+/**
+ * Creates an array of unique values from two given arrays based on a custom equality function.
+ *
+ * This function takes two arrays and a custom equality function, merges the arrays, and returns
+ * a new array containing only the unique values as determined by the custom equality function.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr1 - The first array to merge and filter for unique values.
+ * @param {T[]} arr2 - The second array to merge and filter for unique values.
+ * @param {(item1: T, item2: T) => boolean} areItemsEqual - A custom function to determine if two elements are equal.
+ * It takes two arguments and returns `true` if the elements are considered equal, and `false` otherwise.
+ * @returns {T[]} A new array of unique values based on the custom equality function.
+ *
+ * @example
+ * const array1 = [{ id: 1 }, { id: 2 }];
+ * const array2 = [{ id: 2 }, { id: 3 }];
+ * const areItemsEqual = (a, b) => a.id === b.id;
+ * const result = unionWith(array1, array2, areItemsEqual);
+ * // result will be [{ id: 1 }, { id: 2 }, { id: 3 }] since { id: 2 } is considered equal in both arrays
+ */
+declare function unionWith<T>(arr1: readonly T[], arr2: readonly T[], areItemsEqual: (item1: T, item2: T) => boolean): T[];
+
+export { unionWith };
Index: node_modules/es-toolkit/dist/array/unionWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/unionWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unionWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const uniqWith = require('./uniqWith.js');
+
+function unionWith(arr1, arr2, areItemsEqual) {
+    return uniqWith.uniqWith(arr1.concat(arr2), areItemsEqual);
+}
+
+exports.unionWith = unionWith;
Index: node_modules/es-toolkit/dist/array/unionWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/unionWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unionWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,7 @@
+import { uniqWith } from './uniqWith.mjs';
+
+function unionWith(arr1, arr2, areItemsEqual) {
+    return uniqWith(arr1.concat(arr2), areItemsEqual);
+}
+
+export { unionWith };
Index: node_modules/es-toolkit/dist/array/uniq.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/uniq.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/uniq.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+/**
+ * Creates a duplicate-free version of an array.
+ *
+ * This function takes an array and returns a new array containing only the unique values
+ * from the original array, preserving the order of first occurrence.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to process.
+ * @returns {T[]} A new array with only unique values from the original array.
+ *
+ * @example
+ * const array = [1, 2, 2, 3, 4, 4, 5];
+ * const result = uniq(array);
+ * // result will be [1, 2, 3, 4, 5]
+ */
+declare function uniq<T>(arr: readonly T[]): T[];
+
+export { uniq };
Index: node_modules/es-toolkit/dist/array/uniq.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/uniq.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/uniq.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+/**
+ * Creates a duplicate-free version of an array.
+ *
+ * This function takes an array and returns a new array containing only the unique values
+ * from the original array, preserving the order of first occurrence.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to process.
+ * @returns {T[]} A new array with only unique values from the original array.
+ *
+ * @example
+ * const array = [1, 2, 2, 3, 4, 4, 5];
+ * const result = uniq(array);
+ * // result will be [1, 2, 3, 4, 5]
+ */
+declare function uniq<T>(arr: readonly T[]): T[];
+
+export { uniq };
Index: node_modules/es-toolkit/dist/array/uniq.js
===================================================================
--- node_modules/es-toolkit/dist/array/uniq.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/uniq.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,9 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function uniq(arr) {
+    return [...new Set(arr)];
+}
+
+exports.uniq = uniq;
Index: node_modules/es-toolkit/dist/array/uniq.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/uniq.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/uniq.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,5 @@
+function uniq(arr) {
+    return [...new Set(arr)];
+}
+
+export { uniq };
Index: node_modules/es-toolkit/dist/array/uniqBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/uniqBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/uniqBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,31 @@
+/**
+ * Returns a new array containing only the unique elements from the original array,
+ * based on the values returned by the mapper function.
+ *
+ * When duplicates are found, the first occurrence is kept and the rest are discarded.
+ *
+ * @template T - The type of elements in the array.
+ * @template U - The type of mapped elements.
+ * @param {T[]} arr - The array to process.
+ * @param {(item: T) => U} mapper - The function used to convert the array elements.
+ * @returns {T[]} A new array containing only the unique elements from the original array, based on the values returned by the mapper function.
+ *
+ * @example
+ * ```ts
+ * uniqBy([1.2, 1.5, 2.1, 3.2, 5.7, 5.3, 7.19], Math.floor);
+ * // [1.2, 2.1, 3.2, 5.7, 7.19]
+ * ```
+ *
+ * @example
+ * const array = [
+ *   { category: 'fruit', name: 'apple' },
+ *   { category: 'fruit', name: 'banana' },
+ *   { category: 'vegetable', name: 'carrot' },
+ * ];
+ * uniqBy(array, item => item.category).length
+ * // 2
+ * ```
+ */
+declare function uniqBy<T, U>(arr: readonly T[], mapper: (item: T, index: number, array: readonly T[]) => U): T[];
+
+export { uniqBy };
Index: node_modules/es-toolkit/dist/array/uniqBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/uniqBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/uniqBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,31 @@
+/**
+ * Returns a new array containing only the unique elements from the original array,
+ * based on the values returned by the mapper function.
+ *
+ * When duplicates are found, the first occurrence is kept and the rest are discarded.
+ *
+ * @template T - The type of elements in the array.
+ * @template U - The type of mapped elements.
+ * @param {T[]} arr - The array to process.
+ * @param {(item: T) => U} mapper - The function used to convert the array elements.
+ * @returns {T[]} A new array containing only the unique elements from the original array, based on the values returned by the mapper function.
+ *
+ * @example
+ * ```ts
+ * uniqBy([1.2, 1.5, 2.1, 3.2, 5.7, 5.3, 7.19], Math.floor);
+ * // [1.2, 2.1, 3.2, 5.7, 7.19]
+ * ```
+ *
+ * @example
+ * const array = [
+ *   { category: 'fruit', name: 'apple' },
+ *   { category: 'fruit', name: 'banana' },
+ *   { category: 'vegetable', name: 'carrot' },
+ * ];
+ * uniqBy(array, item => item.category).length
+ * // 2
+ * ```
+ */
+declare function uniqBy<T, U>(arr: readonly T[], mapper: (item: T, index: number, array: readonly T[]) => U): T[];
+
+export { uniqBy };
Index: node_modules/es-toolkit/dist/array/uniqBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/uniqBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/uniqBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,17 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function uniqBy(arr, mapper) {
+    const map = new Map();
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        const key = mapper(item, i, arr);
+        if (!map.has(key)) {
+            map.set(key, item);
+        }
+    }
+    return Array.from(map.values());
+}
+
+exports.uniqBy = uniqBy;
Index: node_modules/es-toolkit/dist/array/uniqBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/uniqBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/uniqBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,13 @@
+function uniqBy(arr, mapper) {
+    const map = new Map();
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        const key = mapper(item, i, arr);
+        if (!map.has(key)) {
+            map.set(key, item);
+        }
+    }
+    return Array.from(map.values());
+}
+
+export { uniqBy };
Index: node_modules/es-toolkit/dist/array/uniqWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/uniqWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/uniqWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+/**
+ * Returns a new array containing only the unique elements from the original array,
+ * based on the values returned by the comparator function.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to process.
+ * @param {(item1: T, item2: T) => boolean} areItemsEqual - The function used to compare the array elements.
+ * @returns {T[]} A new array containing only the unique elements from the original array, based on the values returned by the comparator function.
+ *
+ * @example
+ * ```ts
+ * uniqWith([1.2, 1.5, 2.1, 3.2, 5.7, 5.3, 7.19], (a, b) => Math.abs(a - b) < 1);
+ * // [1.2, 3.2, 5.7, 7.19]
+ * ```
+ */
+declare function uniqWith<T>(arr: readonly T[], areItemsEqual: (item1: T, item2: T) => boolean): T[];
+
+export { uniqWith };
Index: node_modules/es-toolkit/dist/array/uniqWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/uniqWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/uniqWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+/**
+ * Returns a new array containing only the unique elements from the original array,
+ * based on the values returned by the comparator function.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr - The array to process.
+ * @param {(item1: T, item2: T) => boolean} areItemsEqual - The function used to compare the array elements.
+ * @returns {T[]} A new array containing only the unique elements from the original array, based on the values returned by the comparator function.
+ *
+ * @example
+ * ```ts
+ * uniqWith([1.2, 1.5, 2.1, 3.2, 5.7, 5.3, 7.19], (a, b) => Math.abs(a - b) < 1);
+ * // [1.2, 3.2, 5.7, 7.19]
+ * ```
+ */
+declare function uniqWith<T>(arr: readonly T[], areItemsEqual: (item1: T, item2: T) => boolean): T[];
+
+export { uniqWith };
Index: node_modules/es-toolkit/dist/array/uniqWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/uniqWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/uniqWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,17 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function uniqWith(arr, areItemsEqual) {
+    const result = [];
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        const isUniq = result.every(v => !areItemsEqual(v, item));
+        if (isUniq) {
+            result.push(item);
+        }
+    }
+    return result;
+}
+
+exports.uniqWith = uniqWith;
Index: node_modules/es-toolkit/dist/array/uniqWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/uniqWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/uniqWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,13 @@
+function uniqWith(arr, areItemsEqual) {
+    const result = [];
+    for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        const isUniq = result.every(v => !areItemsEqual(v, item));
+        if (isUniq) {
+            result.push(item);
+        }
+    }
+    return result;
+}
+
+export { uniqWith };
Index: node_modules/es-toolkit/dist/array/unzip.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/unzip.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unzip.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+/**
+ * Gathers elements in the same position in an internal array
+ * from a grouped array of elements and returns them as a new array.
+ *
+ * @template T - The type of elements in the nested array.
+ * @param {Array<[...T]>} zipped - The nested array to unzip.
+ * @returns {Unzip<T>} A new array of unzipped elements.
+ *
+ * @example
+ * const zipped = [['a', true, 1],['b', false, 2]];
+ * const result = unzip(zipped);
+ * // result will be [['a', 'b'], [true, false], [1, 2]]
+ */
+declare function unzip<T extends unknown[]>(zipped: ReadonlyArray<[...T]>): Unzip<T>;
+type Unzip<K extends unknown[]> = {
+    [I in keyof K]: Array<K[I]>;
+};
+
+export { unzip };
Index: node_modules/es-toolkit/dist/array/unzip.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/unzip.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unzip.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,19 @@
+/**
+ * Gathers elements in the same position in an internal array
+ * from a grouped array of elements and returns them as a new array.
+ *
+ * @template T - The type of elements in the nested array.
+ * @param {Array<[...T]>} zipped - The nested array to unzip.
+ * @returns {Unzip<T>} A new array of unzipped elements.
+ *
+ * @example
+ * const zipped = [['a', true, 1],['b', false, 2]];
+ * const result = unzip(zipped);
+ * // result will be [['a', 'b'], [true, false], [1, 2]]
+ */
+declare function unzip<T extends unknown[]>(zipped: ReadonlyArray<[...T]>): Unzip<T>;
+type Unzip<K extends unknown[]> = {
+    [I in keyof K]: Array<K[I]>;
+};
+
+export { unzip };
Index: node_modules/es-toolkit/dist/array/unzip.js
===================================================================
--- node_modules/es-toolkit/dist/array/unzip.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unzip.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,22 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function unzip(zipped) {
+    let maxLen = 0;
+    for (let i = 0; i < zipped.length; i++) {
+        if (zipped[i].length > maxLen) {
+            maxLen = zipped[i].length;
+        }
+    }
+    const result = new Array(maxLen);
+    for (let i = 0; i < maxLen; i++) {
+        result[i] = new Array(zipped.length);
+        for (let j = 0; j < zipped.length; j++) {
+            result[i][j] = zipped[j][i];
+        }
+    }
+    return result;
+}
+
+exports.unzip = unzip;
Index: node_modules/es-toolkit/dist/array/unzip.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/unzip.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unzip.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+function unzip(zipped) {
+    let maxLen = 0;
+    for (let i = 0; i < zipped.length; i++) {
+        if (zipped[i].length > maxLen) {
+            maxLen = zipped[i].length;
+        }
+    }
+    const result = new Array(maxLen);
+    for (let i = 0; i < maxLen; i++) {
+        result[i] = new Array(zipped.length);
+        for (let j = 0; j < zipped.length; j++) {
+            result[i][j] = zipped[j][i];
+        }
+    }
+    return result;
+}
+
+export { unzip };
Index: node_modules/es-toolkit/dist/array/unzipWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/unzipWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unzipWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,17 @@
+/**
+ * Unzips an array of arrays, applying an `iteratee` function to regrouped elements.
+ *
+ * @template T, R
+ * @param {T[][]} target - The nested array to unzip. This is an array of arrays,
+ * where each inner array contains elements to be unzipped.
+ * @param {(...args: T[]) => R} iteratee - A function to transform the unzipped elements.
+ * @returns {R[]} A new array of unzipped and transformed elements.
+ *
+ * @example
+ * const nestedArray = [[1, 2], [3, 4], [5, 6]];
+ * const result = unzipWith(nestedArray, (item, item2, item3) => item + item2 + item3);
+ * // result will be [9, 12]
+ */
+declare function unzipWith<T, R>(target: readonly T[][], iteratee: (...args: T[]) => R): R[];
+
+export { unzipWith };
Index: node_modules/es-toolkit/dist/array/unzipWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/unzipWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unzipWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,17 @@
+/**
+ * Unzips an array of arrays, applying an `iteratee` function to regrouped elements.
+ *
+ * @template T, R
+ * @param {T[][]} target - The nested array to unzip. This is an array of arrays,
+ * where each inner array contains elements to be unzipped.
+ * @param {(...args: T[]) => R} iteratee - A function to transform the unzipped elements.
+ * @returns {R[]} A new array of unzipped and transformed elements.
+ *
+ * @example
+ * const nestedArray = [[1, 2], [3, 4], [5, 6]];
+ * const result = unzipWith(nestedArray, (item, item2, item3) => item + item2 + item3);
+ * // result will be [9, 12]
+ */
+declare function unzipWith<T, R>(target: readonly T[][], iteratee: (...args: T[]) => R): R[];
+
+export { unzipWith };
Index: node_modules/es-toolkit/dist/array/unzipWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/unzipWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unzipWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,18 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function unzipWith(target, iteratee) {
+    const maxLength = Math.max(...target.map(innerArray => innerArray.length));
+    const result = new Array(maxLength);
+    for (let i = 0; i < maxLength; i++) {
+        const group = new Array(target.length);
+        for (let j = 0; j < target.length; j++) {
+            group[j] = target[j][i];
+        }
+        result[i] = iteratee(...group);
+    }
+    return result;
+}
+
+exports.unzipWith = unzipWith;
Index: node_modules/es-toolkit/dist/array/unzipWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/unzipWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/unzipWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,14 @@
+function unzipWith(target, iteratee) {
+    const maxLength = Math.max(...target.map(innerArray => innerArray.length));
+    const result = new Array(maxLength);
+    for (let i = 0; i < maxLength; i++) {
+        const group = new Array(target.length);
+        for (let j = 0; j < target.length; j++) {
+            group[j] = target[j][i];
+        }
+        result[i] = iteratee(...group);
+    }
+    return result;
+}
+
+export { unzipWith };
Index: node_modules/es-toolkit/dist/array/windowed.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/windowed.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/windowed.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,50 @@
+/**
+ * Options for the windowed function.
+ *
+ * @interface WindowedOptions
+ * @property {boolean} [partialWindows=false] - Whether to include partial windows at the end of the array.
+ */
+interface WindowedOptions {
+    /**
+     * Whether to include partial windows at the end of the array.
+     *
+     * By default, `windowed` only includes full windows in the result,
+     * ignoring any leftover elements that can't form a full window.
+     *
+     * If `partialWindows` is true, the function will also include these smaller, partial windows at the end of the result.
+     */
+    partialWindows?: boolean;
+}
+/**
+ * Creates an array of sub-arrays (windows) from the input array, each of the specified size.
+ * The windows can overlap depending on the step size provided.
+ *
+ * By default, only full windows are included in the result, and any leftover elements that can't form a full window are ignored.
+ *
+ * If the `partialWindows` option is set to true in the options object, the function will also include partial windows at the end of the result.
+ * Partial windows are smaller sub-arrays created when there aren't enough elements left in the input array to form a full window.
+ *
+ * @template T
+ * @param {readonly T[]} arr - The input array to create windows from.
+ * @param {number} size - The size of each window. Must be a positive integer.
+ * @param {number} [step=1] - The step size between the start of each window. Must be a positive integer.
+ * @param {WindowedOptions} [options={}] - Options object to configure the behavior of the function.
+ * @param {boolean} [options.partialWindows=false] - Whether to include partial windows at the end of the array.
+ * @returns {T[][]} An array of windows (sub-arrays) created from the input array.
+ * @throws {Error} If the size or step is not a positive integer.
+ *
+ * @example
+ * windowed([1, 2, 3, 4], 2);
+ * // => [[1, 2], [2, 3], [3, 4]]
+ *
+ * @example
+ * windowed([1, 2, 3, 4, 5, 6], 3, 2);
+ * // => [[1, 2, 3], [3, 4, 5]]
+ *
+ * @example
+ * windowed([1, 2, 3, 4, 5, 6], 3, 2, { partialWindows: true });
+ * // => [[1, 2, 3], [3, 4, 5], [5, 6]]
+ */
+declare function windowed<T>(arr: readonly T[], size: number, step?: number, { partialWindows }?: WindowedOptions): T[][];
+
+export { type WindowedOptions, windowed };
Index: node_modules/es-toolkit/dist/array/windowed.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/windowed.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/windowed.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,50 @@
+/**
+ * Options for the windowed function.
+ *
+ * @interface WindowedOptions
+ * @property {boolean} [partialWindows=false] - Whether to include partial windows at the end of the array.
+ */
+interface WindowedOptions {
+    /**
+     * Whether to include partial windows at the end of the array.
+     *
+     * By default, `windowed` only includes full windows in the result,
+     * ignoring any leftover elements that can't form a full window.
+     *
+     * If `partialWindows` is true, the function will also include these smaller, partial windows at the end of the result.
+     */
+    partialWindows?: boolean;
+}
+/**
+ * Creates an array of sub-arrays (windows) from the input array, each of the specified size.
+ * The windows can overlap depending on the step size provided.
+ *
+ * By default, only full windows are included in the result, and any leftover elements that can't form a full window are ignored.
+ *
+ * If the `partialWindows` option is set to true in the options object, the function will also include partial windows at the end of the result.
+ * Partial windows are smaller sub-arrays created when there aren't enough elements left in the input array to form a full window.
+ *
+ * @template T
+ * @param {readonly T[]} arr - The input array to create windows from.
+ * @param {number} size - The size of each window. Must be a positive integer.
+ * @param {number} [step=1] - The step size between the start of each window. Must be a positive integer.
+ * @param {WindowedOptions} [options={}] - Options object to configure the behavior of the function.
+ * @param {boolean} [options.partialWindows=false] - Whether to include partial windows at the end of the array.
+ * @returns {T[][]} An array of windows (sub-arrays) created from the input array.
+ * @throws {Error} If the size or step is not a positive integer.
+ *
+ * @example
+ * windowed([1, 2, 3, 4], 2);
+ * // => [[1, 2], [2, 3], [3, 4]]
+ *
+ * @example
+ * windowed([1, 2, 3, 4, 5, 6], 3, 2);
+ * // => [[1, 2, 3], [3, 4, 5]]
+ *
+ * @example
+ * windowed([1, 2, 3, 4, 5, 6], 3, 2, { partialWindows: true });
+ * // => [[1, 2, 3], [3, 4, 5], [5, 6]]
+ */
+declare function windowed<T>(arr: readonly T[], size: number, step?: number, { partialWindows }?: WindowedOptions): T[][];
+
+export { type WindowedOptions, windowed };
Index: node_modules/es-toolkit/dist/array/windowed.js
===================================================================
--- node_modules/es-toolkit/dist/array/windowed.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/windowed.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,20 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function windowed(arr, size, step = 1, { partialWindows = false } = {}) {
+    if (size <= 0 || !Number.isInteger(size)) {
+        throw new Error('Size must be a positive integer.');
+    }
+    if (step <= 0 || !Number.isInteger(step)) {
+        throw new Error('Step must be a positive integer.');
+    }
+    const result = [];
+    const end = partialWindows ? arr.length : arr.length - size + 1;
+    for (let i = 0; i < end; i += step) {
+        result.push(arr.slice(i, i + size));
+    }
+    return result;
+}
+
+exports.windowed = windowed;
Index: node_modules/es-toolkit/dist/array/windowed.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/windowed.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/windowed.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,16 @@
+function windowed(arr, size, step = 1, { partialWindows = false } = {}) {
+    if (size <= 0 || !Number.isInteger(size)) {
+        throw new Error('Size must be a positive integer.');
+    }
+    if (step <= 0 || !Number.isInteger(step)) {
+        throw new Error('Step must be a positive integer.');
+    }
+    const result = [];
+    const end = partialWindows ? arr.length : arr.length - size + 1;
+    for (let i = 0; i < end; i += step) {
+        result.push(arr.slice(i, i + size));
+    }
+    return result;
+}
+
+export { windowed };
Index: node_modules/es-toolkit/dist/array/without.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/without.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/without.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,23 @@
+/**
+ * Creates an array that excludes all specified values.
+ *
+ * It correctly excludes `NaN`, as it compares values using [SameValueZero](https://tc39.es/ecma262/multipage/abstract-operations.html#sec-samevaluezero).
+ *
+ * @template T The type of elements in the array.
+ * @param {T[]} array - The array to filter.
+ * @param {...T[]} values - The values to exclude.
+ * @returns {T[]} A new array without the specified values.
+ *
+ * @example
+ * // Removes the specified values from the array
+ * without([1, 2, 3, 4, 5], 2, 4);
+ * // Returns: [1, 3, 5]
+ *
+ * @example
+ * // Removes specified string values from the array
+ * without(['a', 'b', 'c', 'a'], 'a');
+ * // Returns: ['b', 'c']
+ */
+declare function without<T>(array: readonly T[], ...values: T[]): T[];
+
+export { without };
Index: node_modules/es-toolkit/dist/array/without.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/without.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/without.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,23 @@
+/**
+ * Creates an array that excludes all specified values.
+ *
+ * It correctly excludes `NaN`, as it compares values using [SameValueZero](https://tc39.es/ecma262/multipage/abstract-operations.html#sec-samevaluezero).
+ *
+ * @template T The type of elements in the array.
+ * @param {T[]} array - The array to filter.
+ * @param {...T[]} values - The values to exclude.
+ * @returns {T[]} A new array without the specified values.
+ *
+ * @example
+ * // Removes the specified values from the array
+ * without([1, 2, 3, 4, 5], 2, 4);
+ * // Returns: [1, 3, 5]
+ *
+ * @example
+ * // Removes specified string values from the array
+ * without(['a', 'b', 'c', 'a'], 'a');
+ * // Returns: ['b', 'c']
+ */
+declare function without<T>(array: readonly T[], ...values: T[]): T[];
+
+export { without };
Index: node_modules/es-toolkit/dist/array/without.js
===================================================================
--- node_modules/es-toolkit/dist/array/without.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/without.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const difference = require('./difference.js');
+
+function without(array, ...values) {
+    return difference.difference(array, values);
+}
+
+exports.without = without;
Index: node_modules/es-toolkit/dist/array/without.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/without.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/without.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,7 @@
+import { difference } from './difference.mjs';
+
+function without(array, ...values) {
+    return difference(array, values);
+}
+
+export { without };
Index: node_modules/es-toolkit/dist/array/xor.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/xor.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/xor.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,20 @@
+/**
+ * Computes the symmetric difference between two arrays. The symmetric difference is the set of elements
+ * which are in either of the arrays, but not in their intersection.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr1 - The first array.
+ * @param {T[]} arr2 - The second array.
+ * @returns {T[]} An array containing the elements that are present in either `arr1` or `arr2` but not in both.
+ *
+ * @example
+ * // Returns [1, 2, 5, 6]
+ * xor([1, 2, 3, 4], [3, 4, 5, 6]);
+ *
+ * @example
+ * // Returns ['a', 'c']
+ * xor(['a', 'b'], ['b', 'c']);
+ */
+declare function xor<T>(arr1: readonly T[], arr2: readonly T[]): T[];
+
+export { xor };
Index: node_modules/es-toolkit/dist/array/xor.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/xor.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/xor.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,20 @@
+/**
+ * Computes the symmetric difference between two arrays. The symmetric difference is the set of elements
+ * which are in either of the arrays, but not in their intersection.
+ *
+ * @template T - The type of elements in the array.
+ * @param {T[]} arr1 - The first array.
+ * @param {T[]} arr2 - The second array.
+ * @returns {T[]} An array containing the elements that are present in either `arr1` or `arr2` but not in both.
+ *
+ * @example
+ * // Returns [1, 2, 5, 6]
+ * xor([1, 2, 3, 4], [3, 4, 5, 6]);
+ *
+ * @example
+ * // Returns ['a', 'c']
+ * xor(['a', 'b'], ['b', 'c']);
+ */
+declare function xor<T>(arr1: readonly T[], arr2: readonly T[]): T[];
+
+export { xor };
Index: node_modules/es-toolkit/dist/array/xor.js
===================================================================
--- node_modules/es-toolkit/dist/array/xor.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/xor.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,13 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const difference = require('./difference.js');
+const intersection = require('./intersection.js');
+const union = require('./union.js');
+
+function xor(arr1, arr2) {
+    return difference.difference(union.union(arr1, arr2), intersection.intersection(arr1, arr2));
+}
+
+exports.xor = xor;
Index: node_modules/es-toolkit/dist/array/xor.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/xor.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/xor.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,9 @@
+import { difference } from './difference.mjs';
+import { intersection } from './intersection.mjs';
+import { union } from './union.mjs';
+
+function xor(arr1, arr2) {
+    return difference(union(arr1, arr2), intersection(arr1, arr2));
+}
+
+export { xor };
Index: node_modules/es-toolkit/dist/array/xorBy.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/xorBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/xorBy.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,22 @@
+/**
+ * Computes the symmetric difference between two arrays using a custom mapping function.
+ * The symmetric difference is the set of elements which are in either of the arrays,
+ * but not in their intersection, determined by the result of the mapping function.
+ *
+ * @template T - Type of elements in the input arrays.
+ * @template U - Type of the values returned by the mapping function.
+ *
+ * @param {T[]} arr1 - The first array.
+ * @param {T[]} arr2 - The second array.
+ * @param {(item: T) => U} mapper - The function to map array elements to comparison values.
+ * @returns {T[]} An array containing the elements that are present in either `arr1` or `arr2` but not in both, based on the values returned by the mapping function.
+ *
+ * @example
+ * // Custom mapping function for objects with an 'id' property
+ * const idMapper = obj => obj.id;
+ * xorBy([{ id: 1 }, { id: 2 }], [{ id: 2 }, { id: 3 }], idMapper);
+ * // Returns [{ id: 1 }, { id: 3 }]
+ */
+declare function xorBy<T, U>(arr1: readonly T[], arr2: readonly T[], mapper: (item: T) => U): T[];
+
+export { xorBy };
Index: node_modules/es-toolkit/dist/array/xorBy.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/xorBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/xorBy.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,22 @@
+/**
+ * Computes the symmetric difference between two arrays using a custom mapping function.
+ * The symmetric difference is the set of elements which are in either of the arrays,
+ * but not in their intersection, determined by the result of the mapping function.
+ *
+ * @template T - Type of elements in the input arrays.
+ * @template U - Type of the values returned by the mapping function.
+ *
+ * @param {T[]} arr1 - The first array.
+ * @param {T[]} arr2 - The second array.
+ * @param {(item: T) => U} mapper - The function to map array elements to comparison values.
+ * @returns {T[]} An array containing the elements that are present in either `arr1` or `arr2` but not in both, based on the values returned by the mapping function.
+ *
+ * @example
+ * // Custom mapping function for objects with an 'id' property
+ * const idMapper = obj => obj.id;
+ * xorBy([{ id: 1 }, { id: 2 }], [{ id: 2 }, { id: 3 }], idMapper);
+ * // Returns [{ id: 1 }, { id: 3 }]
+ */
+declare function xorBy<T, U>(arr1: readonly T[], arr2: readonly T[], mapper: (item: T) => U): T[];
+
+export { xorBy };
Index: node_modules/es-toolkit/dist/array/xorBy.js
===================================================================
--- node_modules/es-toolkit/dist/array/xorBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/xorBy.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,15 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const differenceBy = require('./differenceBy.js');
+const intersectionBy = require('./intersectionBy.js');
+const unionBy = require('./unionBy.js');
+
+function xorBy(arr1, arr2, mapper) {
+    const union = unionBy.unionBy(arr1, arr2, mapper);
+    const intersection = intersectionBy.intersectionBy(arr1, arr2, mapper);
+    return differenceBy.differenceBy(union, intersection, mapper);
+}
+
+exports.xorBy = xorBy;
Index: node_modules/es-toolkit/dist/array/xorBy.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/xorBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/xorBy.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+import { differenceBy } from './differenceBy.mjs';
+import { intersectionBy } from './intersectionBy.mjs';
+import { unionBy } from './unionBy.mjs';
+
+function xorBy(arr1, arr2, mapper) {
+    const union = unionBy(arr1, arr2, mapper);
+    const intersection = intersectionBy(arr1, arr2, mapper);
+    return differenceBy(union, intersection, mapper);
+}
+
+export { xorBy };
Index: node_modules/es-toolkit/dist/array/xorWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/xorWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/xorWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,21 @@
+/**
+ * Computes the symmetric difference between two arrays using a custom equality function.
+ * The symmetric difference is the set of elements which are in either of the arrays,
+ * but not in their intersection.
+ *
+ * @template T - Type of elements in the input arrays.
+ *
+ * @param {T[]} arr1 - The first array.
+ * @param {T[]} arr2 - The second array.
+ * @param {(item1: T, item2: T) => boolean} areElementsEqual - The custom equality function to compare elements.
+ * @returns {T[]} An array containing the elements that are present in either `arr1` or `arr2` but not in both, based on the custom equality function.
+ *
+ * @example
+ * // Custom equality function for objects with an 'id' property
+ * const areObjectsEqual = (a, b) => a.id === b.id;
+ * xorWith([{ id: 1 }, { id: 2 }], [{ id: 2 }, { id: 3 }], areObjectsEqual);
+ * // Returns [{ id: 1 }, { id: 3 }]
+ */
+declare function xorWith<T>(arr1: readonly T[], arr2: readonly T[], areElementsEqual: (item1: T, item2: T) => boolean): T[];
+
+export { xorWith };
Index: node_modules/es-toolkit/dist/array/xorWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/xorWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/xorWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,21 @@
+/**
+ * Computes the symmetric difference between two arrays using a custom equality function.
+ * The symmetric difference is the set of elements which are in either of the arrays,
+ * but not in their intersection.
+ *
+ * @template T - Type of elements in the input arrays.
+ *
+ * @param {T[]} arr1 - The first array.
+ * @param {T[]} arr2 - The second array.
+ * @param {(item1: T, item2: T) => boolean} areElementsEqual - The custom equality function to compare elements.
+ * @returns {T[]} An array containing the elements that are present in either `arr1` or `arr2` but not in both, based on the custom equality function.
+ *
+ * @example
+ * // Custom equality function for objects with an 'id' property
+ * const areObjectsEqual = (a, b) => a.id === b.id;
+ * xorWith([{ id: 1 }, { id: 2 }], [{ id: 2 }, { id: 3 }], areObjectsEqual);
+ * // Returns [{ id: 1 }, { id: 3 }]
+ */
+declare function xorWith<T>(arr1: readonly T[], arr2: readonly T[], areElementsEqual: (item1: T, item2: T) => boolean): T[];
+
+export { xorWith };
Index: node_modules/es-toolkit/dist/array/xorWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/xorWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/xorWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,15 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+const differenceWith = require('./differenceWith.js');
+const intersectionWith = require('./intersectionWith.js');
+const unionWith = require('./unionWith.js');
+
+function xorWith(arr1, arr2, areElementsEqual) {
+    const union = unionWith.unionWith(arr1, arr2, areElementsEqual);
+    const intersection = intersectionWith.intersectionWith(arr1, arr2, areElementsEqual);
+    return differenceWith.differenceWith(union, intersection, areElementsEqual);
+}
+
+exports.xorWith = xorWith;
Index: node_modules/es-toolkit/dist/array/xorWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/xorWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/xorWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,11 @@
+import { differenceWith } from './differenceWith.mjs';
+import { intersectionWith } from './intersectionWith.mjs';
+import { unionWith } from './unionWith.mjs';
+
+function xorWith(arr1, arr2, areElementsEqual) {
+    const union = unionWith(arr1, arr2, areElementsEqual);
+    const intersection = intersectionWith(arr1, arr2, areElementsEqual);
+    return differenceWith(union, intersection, areElementsEqual);
+}
+
+export { xorWith };
Index: node_modules/es-toolkit/dist/array/zip.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/zip.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/zip.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,106 @@
+/**
+ * Combines multiple arrays into a single array of tuples.
+ *
+ * This function takes multiple arrays and returns a new array where each element is a tuple
+ * containing the corresponding elements from the input arrays. If the input arrays are of
+ * different lengths, the resulting array will have the length of the longest input array,
+ * with undefined values for missing elements.
+ *
+ * @template T
+ * @param {T[]} arr1 - The first array to zip.
+ * @returns {Array<[T]>} A new array of tuples containing the corresponding elements from the input arrays.
+ *
+ * @example
+ * const arr1 = [1, 2, 3];
+ * const result = zip(arr1);
+ * // result will be [[1], [2], [3]]
+ */
+declare function zip<T>(arr1: readonly T[]): Array<[T]>;
+/**
+ * Combines multiple arrays into a single array of tuples.
+ *
+ * This function takes multiple arrays and returns a new array where each element is a tuple
+ * containing the corresponding elements from the input arrays. If the input arrays are of
+ * different lengths, the resulting array will have the length of the longest input array,
+ * with undefined values for missing elements.
+ *
+ * @template T, U
+ * @param {T[]} arr1 - The first array to zip.
+ * @param {U[]} arr2 - The second array to zip.
+ * @returns {Array<[T, U]>} A new array of tuples containing the corresponding elements from the input arrays.
+ *
+ * @example
+ * const arr1 = [1, 2, 3];
+ * const arr2 = ['a', 'b', 'c'];
+ * const result = zip(arr1, arr2);
+ * // result will be [[1, 'a'], [2, 'b'], [3, 'c']]
+ */
+declare function zip<T, U>(arr1: readonly T[], arr2: readonly U[]): Array<[T, U]>;
+/**
+ * Combines multiple arrays into a single array of tuples.
+ *
+ * This function takes multiple arrays and returns a new array where each element is a tuple
+ * containing the corresponding elements from the input arrays. If the input arrays are of
+ * different lengths, the resulting array will have the length of the longest input array,
+ * with undefined values for missing elements.
+ *
+ * @template T, U, V
+ * @param {T[]} arr1 - The first array to zip.
+ * @param {U[]} arr2 - The second array to zip.
+ * @param {V[]} arr3 - The third array to zip.
+ * @returns {Array<[T, U, V]>} A new array of tuples containing the corresponding elements from the input arrays.
+ *
+ * @example
+ * const arr1 = [1, 2, 3];
+ * const arr2 = ['a', 'b', 'c'];
+ * const arr3 = [true, false];
+ * const result = zip(arr1, arr2, arr3);
+ * // result will be [[1, 'a', true], [2, 'b', false], [3, 'c', undefined]]
+ */
+declare function zip<T, U, V>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[]): Array<[T, U, V]>;
+/**
+ * Combines multiple arrays into a single array of tuples.
+ *
+ * This function takes multiple arrays and returns a new array where each element is a tuple
+ * containing the corresponding elements from the input arrays. If the input arrays are of
+ * different lengths, the resulting array will have the length of the longest input array,
+ * with undefined values for missing elements.
+ *
+ * @template T, U, V, W
+ * @param {T[]} arr1 - The first array to zip.
+ * @param {U[]} arr2 - The second array to zip.
+ * @param {V[]} arr3 - The third array to zip.
+ * @param {W[]} arr4 - The fourth array to zip.
+ * @returns {Array<[T, U, V, W]>} A new array of tuples containing the corresponding elements from the input arrays.
+ *
+ * @example
+ * const arr1 = [1, 2, 3];
+ * const arr2 = ['a', 'b', 'c'];
+ * const arr3 = [true, false];
+ * const arr4 = [null, null, null];
+ * const result = zip(arr1, arr2, arr3, arr4);
+ * // result will be [[1, 'a', true, null], [2, 'b', false, null], [3, 'c', undefined, null]]
+ */
+declare function zip<T, U, V, W>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[], arr4: readonly W[]): Array<[T, U, V, W]>;
+/**
+ * Combines multiple arrays into a single array of tuples.
+ *
+ * This function takes multiple arrays and returns a new array where each element is a tuple
+ * containing the corresponding elements from the input arrays. If the input arrays are of
+ * different lengths, the resulting array will have the length of the longest input array,
+ * with undefined values for missing elements.
+ *
+ * @template T
+ * @param {...Array<readonly T[]>} arrs - The arrays to zip together.
+ * @returns {T[][]} A new array of tuples containing the corresponding elements from the input arrays.
+ *
+ * @example
+ * const arr1 = [1, 2, 3];
+ * const arr2 = ['a', 'b', 'c'];
+ * const arr3 = [true, false];
+ * const result = zip(arr1, arr2, arr3);
+ * // result will be [[1, 'a', true], [2, 'b', false], [3, 'c', undefined]]
+ */
+declare function zip<T>(...arrs: Array<readonly T[]>): T[][];
+
+export { zip };
Index: node_modules/es-toolkit/dist/array/zip.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/zip.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/zip.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,106 @@
+/**
+ * Combines multiple arrays into a single array of tuples.
+ *
+ * This function takes multiple arrays and returns a new array where each element is a tuple
+ * containing the corresponding elements from the input arrays. If the input arrays are of
+ * different lengths, the resulting array will have the length of the longest input array,
+ * with undefined values for missing elements.
+ *
+ * @template T
+ * @param {T[]} arr1 - The first array to zip.
+ * @returns {Array<[T]>} A new array of tuples containing the corresponding elements from the input arrays.
+ *
+ * @example
+ * const arr1 = [1, 2, 3];
+ * const result = zip(arr1);
+ * // result will be [[1], [2], [3]]
+ */
+declare function zip<T>(arr1: readonly T[]): Array<[T]>;
+/**
+ * Combines multiple arrays into a single array of tuples.
+ *
+ * This function takes multiple arrays and returns a new array where each element is a tuple
+ * containing the corresponding elements from the input arrays. If the input arrays are of
+ * different lengths, the resulting array will have the length of the longest input array,
+ * with undefined values for missing elements.
+ *
+ * @template T, U
+ * @param {T[]} arr1 - The first array to zip.
+ * @param {U[]} arr2 - The second array to zip.
+ * @returns {Array<[T, U]>} A new array of tuples containing the corresponding elements from the input arrays.
+ *
+ * @example
+ * const arr1 = [1, 2, 3];
+ * const arr2 = ['a', 'b', 'c'];
+ * const result = zip(arr1, arr2);
+ * // result will be [[1, 'a'], [2, 'b'], [3, 'c']]
+ */
+declare function zip<T, U>(arr1: readonly T[], arr2: readonly U[]): Array<[T, U]>;
+/**
+ * Combines multiple arrays into a single array of tuples.
+ *
+ * This function takes multiple arrays and returns a new array where each element is a tuple
+ * containing the corresponding elements from the input arrays. If the input arrays are of
+ * different lengths, the resulting array will have the length of the longest input array,
+ * with undefined values for missing elements.
+ *
+ * @template T, U, V
+ * @param {T[]} arr1 - The first array to zip.
+ * @param {U[]} arr2 - The second array to zip.
+ * @param {V[]} arr3 - The third array to zip.
+ * @returns {Array<[T, U, V]>} A new array of tuples containing the corresponding elements from the input arrays.
+ *
+ * @example
+ * const arr1 = [1, 2, 3];
+ * const arr2 = ['a', 'b', 'c'];
+ * const arr3 = [true, false];
+ * const result = zip(arr1, arr2, arr3);
+ * // result will be [[1, 'a', true], [2, 'b', false], [3, 'c', undefined]]
+ */
+declare function zip<T, U, V>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[]): Array<[T, U, V]>;
+/**
+ * Combines multiple arrays into a single array of tuples.
+ *
+ * This function takes multiple arrays and returns a new array where each element is a tuple
+ * containing the corresponding elements from the input arrays. If the input arrays are of
+ * different lengths, the resulting array will have the length of the longest input array,
+ * with undefined values for missing elements.
+ *
+ * @template T, U, V, W
+ * @param {T[]} arr1 - The first array to zip.
+ * @param {U[]} arr2 - The second array to zip.
+ * @param {V[]} arr3 - The third array to zip.
+ * @param {W[]} arr4 - The fourth array to zip.
+ * @returns {Array<[T, U, V, W]>} A new array of tuples containing the corresponding elements from the input arrays.
+ *
+ * @example
+ * const arr1 = [1, 2, 3];
+ * const arr2 = ['a', 'b', 'c'];
+ * const arr3 = [true, false];
+ * const arr4 = [null, null, null];
+ * const result = zip(arr1, arr2, arr3, arr4);
+ * // result will be [[1, 'a', true, null], [2, 'b', false, null], [3, 'c', undefined, null]]
+ */
+declare function zip<T, U, V, W>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[], arr4: readonly W[]): Array<[T, U, V, W]>;
+/**
+ * Combines multiple arrays into a single array of tuples.
+ *
+ * This function takes multiple arrays and returns a new array where each element is a tuple
+ * containing the corresponding elements from the input arrays. If the input arrays are of
+ * different lengths, the resulting array will have the length of the longest input array,
+ * with undefined values for missing elements.
+ *
+ * @template T
+ * @param {...Array<readonly T[]>} arrs - The arrays to zip together.
+ * @returns {T[][]} A new array of tuples containing the corresponding elements from the input arrays.
+ *
+ * @example
+ * const arr1 = [1, 2, 3];
+ * const arr2 = ['a', 'b', 'c'];
+ * const arr3 = [true, false];
+ * const result = zip(arr1, arr2, arr3);
+ * // result will be [[1, 'a', true], [2, 'b', false], [3, 'c', undefined]]
+ */
+declare function zip<T>(...arrs: Array<readonly T[]>): T[][];
+
+export { zip };
Index: node_modules/es-toolkit/dist/array/zip.js
===================================================================
--- node_modules/es-toolkit/dist/array/zip.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/zip.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,24 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function zip(...arrs) {
+    let rowCount = 0;
+    for (let i = 0; i < arrs.length; i++) {
+        if (arrs[i].length > rowCount) {
+            rowCount = arrs[i].length;
+        }
+    }
+    const columnCount = arrs.length;
+    const result = Array(rowCount);
+    for (let i = 0; i < rowCount; ++i) {
+        const row = Array(columnCount);
+        for (let j = 0; j < columnCount; ++j) {
+            row[j] = arrs[j][i];
+        }
+        result[i] = row;
+    }
+    return result;
+}
+
+exports.zip = zip;
Index: node_modules/es-toolkit/dist/array/zip.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/zip.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/zip.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,20 @@
+function zip(...arrs) {
+    let rowCount = 0;
+    for (let i = 0; i < arrs.length; i++) {
+        if (arrs[i].length > rowCount) {
+            rowCount = arrs[i].length;
+        }
+    }
+    const columnCount = arrs.length;
+    const result = Array(rowCount);
+    for (let i = 0; i < rowCount; ++i) {
+        const row = Array(columnCount);
+        for (let j = 0; j < columnCount; ++j) {
+            row[j] = arrs[j][i];
+        }
+        result[i] = row;
+    }
+    return result;
+}
+
+export { zip };
Index: node_modules/es-toolkit/dist/array/zipObject.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/zipObject.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/zipObject.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,33 @@
+/**
+ * Combines two arrays, one of property names and one of corresponding values, into a single object.
+ *
+ * This function takes two arrays: one containing property names and another containing corresponding values.
+ * It returns a new object where the property names from the first array are keys, and the corresponding elements
+ * from the second array are values. If the `keys` array is longer than the `values` array, the remaining keys will
+ * have `undefined` as their values.
+ *
+ * @template P - The type of elements in the array.
+ * @template V - The type of elements in the array.
+ * @param {P[]} keys - An array of property names.
+ * @param {V[]} values - An array of values corresponding to the property names.
+ * @returns {Record<P, V>} - A new object composed of the given property names and values.
+ *
+ * @example
+ * const keys = ['a', 'b', 'c'];
+ * const values = [1, 2, 3];
+ * const result = zipObject(keys, values);
+ * // result will be { a: 1, b: 2, c: 3 }
+ *
+ * const keys2 = ['a', 'b', 'c'];
+ * const values2 = [1, 2];
+ * const result2 = zipObject(keys2, values2);
+ * // result2 will be { a: 1, b: 2, c: undefined }
+ *
+ * const keys2 = ['a', 'b'];
+ * const values2 = [1, 2, 3];
+ * const result2 = zipObject(keys2, values2);
+ * // result2 will be { a: 1, b: 2 }
+ */
+declare function zipObject<P extends PropertyKey, V>(keys: readonly P[], values: readonly V[]): Record<P, V>;
+
+export { zipObject };
Index: node_modules/es-toolkit/dist/array/zipObject.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/zipObject.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/zipObject.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,33 @@
+/**
+ * Combines two arrays, one of property names and one of corresponding values, into a single object.
+ *
+ * This function takes two arrays: one containing property names and another containing corresponding values.
+ * It returns a new object where the property names from the first array are keys, and the corresponding elements
+ * from the second array are values. If the `keys` array is longer than the `values` array, the remaining keys will
+ * have `undefined` as their values.
+ *
+ * @template P - The type of elements in the array.
+ * @template V - The type of elements in the array.
+ * @param {P[]} keys - An array of property names.
+ * @param {V[]} values - An array of values corresponding to the property names.
+ * @returns {Record<P, V>} - A new object composed of the given property names and values.
+ *
+ * @example
+ * const keys = ['a', 'b', 'c'];
+ * const values = [1, 2, 3];
+ * const result = zipObject(keys, values);
+ * // result will be { a: 1, b: 2, c: 3 }
+ *
+ * const keys2 = ['a', 'b', 'c'];
+ * const values2 = [1, 2];
+ * const result2 = zipObject(keys2, values2);
+ * // result2 will be { a: 1, b: 2, c: undefined }
+ *
+ * const keys2 = ['a', 'b'];
+ * const values2 = [1, 2, 3];
+ * const result2 = zipObject(keys2, values2);
+ * // result2 will be { a: 1, b: 2 }
+ */
+declare function zipObject<P extends PropertyKey, V>(keys: readonly P[], values: readonly V[]): Record<P, V>;
+
+export { zipObject };
Index: node_modules/es-toolkit/dist/array/zipObject.js
===================================================================
--- node_modules/es-toolkit/dist/array/zipObject.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/zipObject.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,13 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function zipObject(keys, values) {
+    const result = {};
+    for (let i = 0; i < keys.length; i++) {
+        result[keys[i]] = values[i];
+    }
+    return result;
+}
+
+exports.zipObject = zipObject;
Index: node_modules/es-toolkit/dist/array/zipObject.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/zipObject.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/zipObject.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,9 @@
+function zipObject(keys, values) {
+    const result = {};
+    for (let i = 0; i < keys.length; i++) {
+        result[keys[i]] = values[i];
+    }
+    return result;
+}
+
+export { zipObject };
Index: node_modules/es-toolkit/dist/array/zipWith.d.mts
===================================================================
--- node_modules/es-toolkit/dist/array/zipWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/zipWith.d.mts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,72 @@
+/**
+ * Combines multiple arrays into a single array using a custom combiner function.
+ *
+ * This function takes multiple arrays and a combiner function, and returns a new array where each element
+ * is the result of applying the combiner function to the corresponding elements of the input arrays.
+ *
+ * @template T - The type of elements in the first array.
+ * @template R - The type of elements in the resulting array.
+ * @param {T[]} arr1 - The first array to zip.
+ * @param {(item: T, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
+ * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
+ *
+ * @example
+ * // Example usage with two arrays:
+ * const arr1 = [1, 2, 3];
+ * const arr2 = [4, 5, 6];
+ * const result = zipWith(arr1, arr2, (a, b) => a + b);
+ * // result will be [5, 7, 9]
+ *
+ * @example
+ * // Example usage with three arrays:
+ * const arr1 = [1, 2];
+ * const arr2 = [3, 4];
+ * const arr3 = [5, 6];
+ * const result = zipWith(arr1, arr2, arr3, (a, b, c) => `${a}${b}${c}`);
+ * // result will be [`135`, `246`]
+ */
+declare function zipWith<T, R>(arr1: readonly T[], combine: (item: T, index: number) => R): R[];
+/**
+ * Combines two arrays into a single array using a custom combiner function.
+ *
+ * @template T - The type of elements in the first array.
+ * @template U - The type of elements in the second array.
+ * @template R - The type of elements in the resulting array.
+ * @param {T[]} arr1 - The first array to zip.
+ * @param {U[]} arr2 - The second array to zip.
+ * @param {(item1: T, item2: U, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
+ * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
+ */
+declare function zipWith<T, U, R>(arr1: readonly T[], arr2: readonly U[], combine: (item1: T, item2: U, index: number) => R): R[];
+/**
+ * Combines three arrays into a single array using a custom combiner function.
+ *
+ * @template T - The type of elements in the first array.
+ * @template U - The type of elements in the second array.
+ * @template V - The type of elements in the third array.
+ * @template R - The type of elements in the resulting array.
+ * @param {T[]} arr1 - The first array to zip.
+ * @param {U[]} arr2 - The second array to zip.
+ * @param {V[]} arr3 - The third array to zip.
+ * @param {(item1: T, item2: U, item3: V, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
+ * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
+ */
+declare function zipWith<T, U, V, R>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[], combine: (item1: T, item2: U, item3: V, index: number) => R): R[];
+/**
+ * Combines four arrays into a single array using a custom combiner function.
+ *
+ * @template T - The type of elements in the first array.
+ * @template U - The type of elements in the second array.
+ * @template V - The type of elements in the third array.
+ * @template W - The type of elements in the fourth array.
+ * @template R - The type of elements in the resulting array.
+ * @param {T[]} arr1 - The first array to zip.
+ * @param {U[]} arr2 - The second array to zip.
+ * @param {V[]} arr3 - The third array to zip.
+ * @param {W[]} arr4 - The fourth array to zip.
+ * @param {(item1: T, item2: U, item3: V, item4: W, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
+ * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
+ */
+declare function zipWith<T, U, V, W, R>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[], arr4: readonly W[], combine: (item1: T, item2: U, item3: V, item4: W, index: number) => R): R[];
+
+export { zipWith };
Index: node_modules/es-toolkit/dist/array/zipWith.d.ts
===================================================================
--- node_modules/es-toolkit/dist/array/zipWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/zipWith.d.ts	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,72 @@
+/**
+ * Combines multiple arrays into a single array using a custom combiner function.
+ *
+ * This function takes multiple arrays and a combiner function, and returns a new array where each element
+ * is the result of applying the combiner function to the corresponding elements of the input arrays.
+ *
+ * @template T - The type of elements in the first array.
+ * @template R - The type of elements in the resulting array.
+ * @param {T[]} arr1 - The first array to zip.
+ * @param {(item: T, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
+ * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
+ *
+ * @example
+ * // Example usage with two arrays:
+ * const arr1 = [1, 2, 3];
+ * const arr2 = [4, 5, 6];
+ * const result = zipWith(arr1, arr2, (a, b) => a + b);
+ * // result will be [5, 7, 9]
+ *
+ * @example
+ * // Example usage with three arrays:
+ * const arr1 = [1, 2];
+ * const arr2 = [3, 4];
+ * const arr3 = [5, 6];
+ * const result = zipWith(arr1, arr2, arr3, (a, b, c) => `${a}${b}${c}`);
+ * // result will be [`135`, `246`]
+ */
+declare function zipWith<T, R>(arr1: readonly T[], combine: (item: T, index: number) => R): R[];
+/**
+ * Combines two arrays into a single array using a custom combiner function.
+ *
+ * @template T - The type of elements in the first array.
+ * @template U - The type of elements in the second array.
+ * @template R - The type of elements in the resulting array.
+ * @param {T[]} arr1 - The first array to zip.
+ * @param {U[]} arr2 - The second array to zip.
+ * @param {(item1: T, item2: U, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
+ * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
+ */
+declare function zipWith<T, U, R>(arr1: readonly T[], arr2: readonly U[], combine: (item1: T, item2: U, index: number) => R): R[];
+/**
+ * Combines three arrays into a single array using a custom combiner function.
+ *
+ * @template T - The type of elements in the first array.
+ * @template U - The type of elements in the second array.
+ * @template V - The type of elements in the third array.
+ * @template R - The type of elements in the resulting array.
+ * @param {T[]} arr1 - The first array to zip.
+ * @param {U[]} arr2 - The second array to zip.
+ * @param {V[]} arr3 - The third array to zip.
+ * @param {(item1: T, item2: U, item3: V, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
+ * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
+ */
+declare function zipWith<T, U, V, R>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[], combine: (item1: T, item2: U, item3: V, index: number) => R): R[];
+/**
+ * Combines four arrays into a single array using a custom combiner function.
+ *
+ * @template T - The type of elements in the first array.
+ * @template U - The type of elements in the second array.
+ * @template V - The type of elements in the third array.
+ * @template W - The type of elements in the fourth array.
+ * @template R - The type of elements in the resulting array.
+ * @param {T[]} arr1 - The first array to zip.
+ * @param {U[]} arr2 - The second array to zip.
+ * @param {V[]} arr3 - The third array to zip.
+ * @param {W[]} arr4 - The fourth array to zip.
+ * @param {(item1: T, item2: U, item3: V, item4: W, index: number) => R} combine - The combiner function that takes corresponding elements from each array, their index, and returns a single value.
+ * @returns {R[]} A new array where each element is the result of applying the combiner function to the corresponding elements of the input arrays.
+ */
+declare function zipWith<T, U, V, W, R>(arr1: readonly T[], arr2: readonly U[], arr3: readonly V[], arr4: readonly W[], combine: (item1: T, item2: U, item3: V, item4: W, index: number) => R): R[];
+
+export { zipWith };
Index: node_modules/es-toolkit/dist/array/zipWith.js
===================================================================
--- node_modules/es-toolkit/dist/array/zipWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/zipWith.js	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,17 @@
+'use strict';
+
+Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+
+function zipWith(arr1, ...rest) {
+    const arrs = [arr1, ...rest.slice(0, -1)];
+    const combine = rest[rest.length - 1];
+    const maxIndex = Math.max(...arrs.map(arr => arr.length));
+    const result = Array(maxIndex);
+    for (let i = 0; i < maxIndex; i++) {
+        const elements = arrs.map(arr => arr[i]);
+        result[i] = combine(...elements, i);
+    }
+    return result;
+}
+
+exports.zipWith = zipWith;
Index: node_modules/es-toolkit/dist/array/zipWith.mjs
===================================================================
--- node_modules/es-toolkit/dist/array/zipWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
+++ node_modules/es-toolkit/dist/array/zipWith.mjs	(revision a762898ecd37a452c782821d4c2c4955c6ed2521)
@@ -0,0 +1,13 @@
+function zipWith(arr1, ...rest) {
+    const arrs = [arr1, ...rest.slice(0, -1)];
+    const combine = rest[rest.length - 1];
+    const maxIndex = Math.max(...arrs.map(arr => arr.length));
+    const result = Array(maxIndex);
+    for (let i = 0; i < maxIndex; i++) {
+        const elements = arrs.map(arr => arr[i]);
+        result[i] = combine(...elements, i);
+    }
+    return result;
+}
+
+export { zipWith };
