This commit is contained in:
2026-03-03 15:23:00 +00:00
parent 5e3726de39
commit 8e223bfbec
3689 changed files with 955330 additions and 1011 deletions

44
node_modules/ts-deepmerge/cjs/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,44 @@
type TAllKeys<T> = T extends any ? keyof T : never;
type TIndexValue<T, K extends PropertyKey, D = never> = T extends any ? K extends keyof T ? T[K] : D : never;
type TPartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>> extends infer O ? {
[P in keyof O]: O[P];
} : never;
type TFunction = (...a: any[]) => any;
type TPrimitives = string | number | boolean | bigint | symbol | Date | TFunction;
type TMerged<T> = [T] extends [Array<any>] ? {
[K in keyof T]: TMerged<T[K]>;
} : [T] extends [TPrimitives] ? T : [T] extends [object] ? TPartialKeys<{
[K in TAllKeys<T>]: TMerged<TIndexValue<T, K>>;
}, never> : T;
interface IObject {
[key: string]: any;
}
export declare const merge: {
<T extends IObject[]>(...objects: T): TMerged<T[number]>;
options: IOptions;
withOptions<T extends IObject[]>(options: Partial<IOptions>, ...objects: T): TMerged<T[number]>;
};
interface IOptions {
/**
* When `true`, values explicitly provided as `undefined` will override existing values, though properties that are simply omitted won't affect anything.
* When `false`, values explicitly provided as `undefined` won't override existing values.
*
* Default: `true`
*/
allowUndefinedOverrides: boolean;
/**
* When `true` it will merge array properties.
* When `false` it will replace array properties with the last instance entirely instead of merging their contents.
*
* Default: `true`
*/
mergeArrays: boolean;
/**
* When `true` it will ensure there are no duplicate array items.
* When `false` it will allow duplicates when merging arrays.
*
* Default: `true`
*/
uniqueArrayItems: boolean;
}
export {};

62
node_modules/ts-deepmerge/cjs/index.js generated vendored Normal file
View File

@@ -0,0 +1,62 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.merge = void 0;
// istanbul ignore next
const isObject = (obj) => {
if (typeof obj === "object" && obj !== null) {
if (typeof Object.getPrototypeOf === "function") {
const prototype = Object.getPrototypeOf(obj);
return prototype === Object.prototype || prototype === null;
}
return Object.prototype.toString.call(obj) === "[object Object]";
}
return false;
};
const merge = (...objects) => objects.reduce((result, current) => {
if (current === undefined) {
return result;
}
if (Array.isArray(current)) {
throw new TypeError("Arguments provided to ts-deepmerge must be objects, not arrays.");
}
Object.keys(current).forEach((key) => {
if (["__proto__", "constructor", "prototype"].includes(key)) {
return;
}
if (Array.isArray(result[key]) && Array.isArray(current[key])) {
result[key] = exports.merge.options.mergeArrays
? exports.merge.options.uniqueArrayItems
? Array.from(new Set(result[key].concat(current[key])))
: [...result[key], ...current[key]]
: current[key];
}
else if (isObject(result[key]) && isObject(current[key])) {
result[key] = (0, exports.merge)(result[key], current[key]);
}
else if (!isObject(result[key]) && isObject(current[key])) {
result[key] = (0, exports.merge)(current[key], undefined);
}
else {
result[key] =
current[key] === undefined
? exports.merge.options.allowUndefinedOverrides
? current[key]
: result[key]
: current[key];
}
});
return result;
}, {});
exports.merge = merge;
const defaultOptions = {
allowUndefinedOverrides: true,
mergeArrays: true,
uniqueArrayItems: true,
};
exports.merge.options = defaultOptions;
exports.merge.withOptions = (options, ...objects) => {
exports.merge.options = Object.assign(Object.assign({}, defaultOptions), options);
const result = (0, exports.merge)(...objects);
exports.merge.options = defaultOptions;
return result;
};

3
node_modules/ts-deepmerge/cjs/package.json generated vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"type": "commonjs"
}