@pawells/typescript-common 1.1.0 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -118
- package/build/array/array-chunk.d.ts +10 -4
- package/build/array/array-chunk.d.ts.map +1 -1
- package/build/array/array-chunk.js +10 -4
- package/build/array/array-chunk.js.map +1 -1
- package/build/array/array-contains.d.ts +11 -3
- package/build/array/array-contains.d.ts.map +1 -1
- package/build/array/array-contains.js +11 -3
- package/build/array/array-contains.js.map +1 -1
- package/build/array/array-group-by.d.ts +14 -5
- package/build/array/array-group-by.d.ts.map +1 -1
- package/build/array/array-group-by.js +14 -5
- package/build/array/array-group-by.js.map +1 -1
- package/build/array/array-shuffle.d.ts +12 -3
- package/build/array/array-shuffle.d.ts.map +1 -1
- package/build/array/array-shuffle.js +12 -3
- package/build/array/array-shuffle.js.map +1 -1
- package/build/array/unique.d.ts +13 -3
- package/build/array/unique.d.ts.map +1 -1
- package/build/array/unique.js +13 -3
- package/build/array/unique.js.map +1 -1
- package/build/asserts/errors.d.ts +91 -7
- package/build/asserts/errors.d.ts.map +1 -1
- package/build/asserts/errors.js +91 -7
- package/build/asserts/errors.js.map +1 -1
- package/build/asserts/generic.d.ts +8 -4
- package/build/asserts/generic.d.ts.map +1 -1
- package/build/asserts/generic.js +8 -4
- package/build/asserts/generic.js.map +1 -1
- package/build/enum/enum-entries.d.ts +8 -3
- package/build/enum/enum-entries.d.ts.map +1 -1
- package/build/enum/enum-entries.js +8 -3
- package/build/enum/enum-entries.js.map +1 -1
- package/build/enum/enum-key-by-value.d.ts +10 -5
- package/build/enum/enum-key-by-value.d.ts.map +1 -1
- package/build/enum/enum-key-by-value.js +10 -5
- package/build/enum/enum-key-by-value.js.map +1 -1
- package/build/enum/enum-keys.d.ts +12 -3
- package/build/enum/enum-keys.d.ts.map +1 -1
- package/build/enum/enum-keys.js +12 -3
- package/build/enum/enum-keys.js.map +1 -1
- package/build/enum/enum-safe-value.d.ts +11 -6
- package/build/enum/enum-safe-value.d.ts.map +1 -1
- package/build/enum/enum-safe-value.js +11 -6
- package/build/enum/enum-safe-value.js.map +1 -1
- package/build/enum/validate-enum-value.d.ts +10 -5
- package/build/enum/validate-enum-value.d.ts.map +1 -1
- package/build/enum/validate-enum-value.js +10 -5
- package/build/enum/validate-enum-value.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/number/assert.d.ts +14 -14
- package/build/number/assert.d.ts.map +1 -1
- package/build/object/clone.d.ts +17 -6
- package/build/object/clone.d.ts.map +1 -1
- package/build/object/clone.js +17 -6
- package/build/object/clone.js.map +1 -1
- package/build/object/filter-cached.d.ts +15 -3
- package/build/object/filter-cached.d.ts.map +1 -1
- package/build/object/filter-cached.js +15 -3
- package/build/object/filter-cached.js.map +1 -1
- package/build/object/has-circular-reference.d.ts +12 -3
- package/build/object/has-circular-reference.d.ts.map +1 -1
- package/build/object/has-circular-reference.js +12 -3
- package/build/object/has-circular-reference.js.map +1 -1
- package/build/object/key-value-pairs.d.ts +11 -3
- package/build/object/key-value-pairs.d.ts.map +1 -1
- package/build/object/key-value-pairs.js +11 -3
- package/build/object/key-value-pairs.js.map +1 -1
- package/build/object/map-cached.d.ts +14 -3
- package/build/object/map-cached.d.ts.map +1 -1
- package/build/object/map-cached.js +14 -3
- package/build/object/map-cached.js.map +1 -1
- package/build/object/merge.d.ts +18 -7
- package/build/object/merge.d.ts.map +1 -1
- package/build/object/merge.js +18 -7
- package/build/object/merge.js.map +1 -1
- package/build/object/omit.d.ts +13 -4
- package/build/object/omit.d.ts.map +1 -1
- package/build/object/omit.js +13 -4
- package/build/object/omit.js.map +1 -1
- package/build/string/formatting.d.ts +10 -3
- package/build/string/formatting.d.ts.map +1 -1
- package/build/string/formatting.js +10 -3
- package/build/string/formatting.js.map +1 -1
- package/package.json +9 -5
- package/build/array/array.test.d.ts +0 -2
- package/build/array/array.test.d.ts.map +0 -1
- package/build/array/array.test.js +0 -347
- package/build/array/array.test.js.map +0 -1
- package/build/asserts/object.d.ts +0 -138
- package/build/asserts/object.d.ts.map +0 -1
- package/build/asserts/object.js +0 -204
- package/build/asserts/object.js.map +0 -1
- package/build/asserts/string.d.ts +0 -100
- package/build/asserts/string.d.ts.map +0 -1
- package/build/asserts/string.js +0 -185
- package/build/asserts/string.js.map +0 -1
- package/build/enum/enum.test.d.ts +0 -2
- package/build/enum/enum.test.d.ts.map +0 -1
- package/build/enum/enum.test.js +0 -122
- package/build/enum/enum.test.js.map +0 -1
- package/build/function/function.test.d.ts +0 -2
- package/build/function/function.test.d.ts.map +0 -1
- package/build/function/function.test.js +0 -158
- package/build/function/function.test.js.map +0 -1
- package/build/object/object.test.d.ts +0 -2
- package/build/object/object.test.d.ts.map +0 -1
- package/build/object/object.test.js +0 -432
- package/build/object/object.test.js.map +0 -1
- package/build/string/string.test.d.ts +0 -2
- package/build/string/string.test.d.ts.map +0 -1
- package/build/string/string.test.js +0 -321
- package/build/string/string.test.js.map +0 -1
- package/build/time/time.test.d.ts +0 -2
- package/build/time/time.test.d.ts.map +0 -1
- package/build/time/time.test.js +0 -211
- package/build/time/time.test.js.map +0 -1
package/build/number/assert.d.ts
CHANGED
|
@@ -51,32 +51,32 @@ export type TNumericRangeConstraints = Pick<IAssertNumberArgs, 'gt' | 'gte' | 'l
|
|
|
51
51
|
*/
|
|
52
52
|
export type TNumericTypeConstraints = Pick<IAssertNumberArgs, 'finite' | 'integer'>;
|
|
53
53
|
/**
|
|
54
|
-
* Configuration interface for numeric
|
|
54
|
+
* Configuration interface for numeric validation constraints.
|
|
55
55
|
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* complex validation rules (e.g., value must be > 0 AND <= 100).
|
|
56
|
+
* All properties are optional, allowing for flexible validation rules.
|
|
57
|
+
* Multiple constraints can be combined — all specified conditions must be
|
|
58
|
+
* satisfied simultaneously (AND logic).
|
|
60
59
|
*
|
|
61
|
-
* @interface RangeArgs
|
|
62
60
|
* @example
|
|
63
61
|
* ```typescript
|
|
64
62
|
* // Single constraint examples
|
|
65
|
-
* const minOnly:
|
|
66
|
-
* const maxOnly:
|
|
67
|
-
* const exactValue:
|
|
63
|
+
* const minOnly: IAssertNumberArgs = { gte: 0 }; // >= 0
|
|
64
|
+
* const maxOnly: IAssertNumberArgs = { lt: 100 }; // < 100
|
|
65
|
+
* const exactValue: IAssertNumberArgs = { eq: 42 }; // === 42
|
|
68
66
|
*
|
|
69
67
|
* // Multiple constraint examples
|
|
70
|
-
* const range:
|
|
71
|
-
* const exclusive:
|
|
68
|
+
* const range: IAssertNumberArgs = { gte: 0, lte: 100 }; // 0 <= value <= 100
|
|
69
|
+
* const exclusive: IAssertNumberArgs = { gt: 0, lt: 1 }; // 0 < value < 1
|
|
72
70
|
*
|
|
73
|
-
* // Used with
|
|
74
|
-
*
|
|
75
|
-
*
|
|
71
|
+
* // Used with AssertNumber
|
|
72
|
+
* AssertNumber(50, { gte: 0, lte: 100 }); // ✓ Valid
|
|
73
|
+
* AssertNumber(-1, { gte: 0, lte: 100 }); // ✗ Throws
|
|
76
74
|
* ```
|
|
77
75
|
*/
|
|
78
76
|
export interface IAssertNumberArgs {
|
|
77
|
+
/** When `true`, the value must be finite (not `Infinity` or `-Infinity`) */
|
|
79
78
|
finite?: boolean;
|
|
79
|
+
/** When `true`, the value must be an integer (no fractional component) */
|
|
80
80
|
integer?: boolean;
|
|
81
81
|
/** Value must be greater than this number (exclusive) */
|
|
82
82
|
gt?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/number/assert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBACzB,OAAO,CAAC,EAAE,MAAM;CAK5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;gBACpC,OAAO,CAAC,EAAE,MAAM;CAK5B;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;AAEnG;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC;AAEpF
|
|
1
|
+
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/number/assert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBACzB,OAAO,CAAC,EAAE,MAAM;CAK5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;gBACpC,OAAO,CAAC,EAAE,MAAM;CAK5B;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;AAEnG;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,iBAAiB;IACjC,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,yDAAyD;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,EAAE,CAAC,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,iBAAsB,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAoDpI"}
|
package/build/object/clone.d.ts
CHANGED
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
import type { TObjectTransformer } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
* Creates a deep clone of an object with security protections
|
|
3
|
+
* Creates a deep clone of an object with security protections.
|
|
4
4
|
*
|
|
5
5
|
* **Security Features:**
|
|
6
|
-
* - Prevents infinite recursion with circular reference detection
|
|
7
|
-
* - Filters out dangerous properties that could cause prototype pollution
|
|
8
|
-
* - Safely handles complex object structures
|
|
6
|
+
* - Prevents infinite recursion with circular reference detection.
|
|
7
|
+
* - Filters out dangerous properties that could cause prototype pollution.
|
|
8
|
+
* - Safely handles complex object structures.
|
|
9
9
|
*
|
|
10
|
-
* @
|
|
10
|
+
* @template T - The type of the object to clone
|
|
11
|
+
* @param obj - Object to clone
|
|
12
|
+
* @param visitedInput - Internal WeakSet used to detect circular references (do not pass manually)
|
|
11
13
|
* @returns Deep clone of the object
|
|
12
|
-
* @throws {Error}
|
|
14
|
+
* @throws {Error} When `obj` contains circular references.
|
|
15
|
+
* @throws {Error} When `obj` is a function, symbol, `Map`, `Set`, `WeakMap`, or a class instance.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const original = { a: 1, b: { c: 2 } };
|
|
20
|
+
* const clone = ObjectClone(original);
|
|
21
|
+
* clone.b.c = 99;
|
|
22
|
+
* console.log(original.b.c); // 2 (original is not affected)
|
|
23
|
+
* ```
|
|
13
24
|
*/
|
|
14
25
|
export declare function ObjectClone<T>(obj: T, visitedInput?: WeakSet<object>): T;
|
|
15
26
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../src/object/clone.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD
|
|
1
|
+
{"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../src/object/clone.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAiDxE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,MAAM,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAC5E,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9C,OAAO,CAMT"}
|
package/build/object/clone.js
CHANGED
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
import { filterDangerousKeys } from './security-utils.js';
|
|
2
2
|
/**
|
|
3
|
-
* Creates a deep clone of an object with security protections
|
|
3
|
+
* Creates a deep clone of an object with security protections.
|
|
4
4
|
*
|
|
5
5
|
* **Security Features:**
|
|
6
|
-
* - Prevents infinite recursion with circular reference detection
|
|
7
|
-
* - Filters out dangerous properties that could cause prototype pollution
|
|
8
|
-
* - Safely handles complex object structures
|
|
6
|
+
* - Prevents infinite recursion with circular reference detection.
|
|
7
|
+
* - Filters out dangerous properties that could cause prototype pollution.
|
|
8
|
+
* - Safely handles complex object structures.
|
|
9
9
|
*
|
|
10
|
-
* @
|
|
10
|
+
* @template T - The type of the object to clone
|
|
11
|
+
* @param obj - Object to clone
|
|
12
|
+
* @param visitedInput - Internal WeakSet used to detect circular references (do not pass manually)
|
|
11
13
|
* @returns Deep clone of the object
|
|
12
|
-
* @throws {Error}
|
|
14
|
+
* @throws {Error} When `obj` contains circular references.
|
|
15
|
+
* @throws {Error} When `obj` is a function, symbol, `Map`, `Set`, `WeakMap`, or a class instance.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const original = { a: 1, b: { c: 2 } };
|
|
20
|
+
* const clone = ObjectClone(original);
|
|
21
|
+
* clone.b.c = 99;
|
|
22
|
+
* console.log(original.b.c); // 2 (original is not affected)
|
|
23
|
+
* ```
|
|
13
24
|
*/
|
|
14
25
|
export function ObjectClone(obj, visitedInput) {
|
|
15
26
|
if (obj === null || obj === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../src/object/clone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D
|
|
1
|
+
{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../src/object/clone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,WAAW,CAAI,GAAM,EAAE,YAA8B;IACpE,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,uDAAuD;IACvD,MAAM,OAAO,GAAG,YAAY,IAAI,IAAI,OAAO,EAAE,CAAC;IAE9C,gDAAgD;IAChD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC7C,+BAA+B;QAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;QAC3G,CAAC;QAED,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,cAAc;IACd,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;QACzB,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAiB,CAAC;IAChD,CAAC;IAED,eAAe;IACf,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAiB,CAAC;IACtE,CAAC;IAED,4BAA4B;IAC5B,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAChC,sCAAsC;QACtC,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAA0B,CAAC,CAAC;QAChE,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpC,8BAA8B;YAC9B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC;QACF,CAAC,CAAC,CAAC;QACH,OAAO,IAAS,CAAC;IAClB,CAAC;IAED,+CAA+C;IAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC/G,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,kDAAkD,OAAO,GAAG,EAAE,CAAC,CAAC;AACjF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,eAAe,CAC9B,GAAW,EACX,WAAgD;IAEhD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
import type { ICachedObjectFilterOptions, TCachedObjectFilterFunction } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
* Creates a cached version of
|
|
3
|
+
* Creates a cached version of {@link ObjectFilter} for improved performance
|
|
4
|
+
* when filtering the same objects repeatedly.
|
|
4
5
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
6
|
+
* Results are cached by hashing the filter and object together. When the cache
|
|
7
|
+
* exceeds `maxCacheSize`, approximately 20% of the entries in the largest
|
|
8
|
+
* per-filter bucket are evicted.
|
|
9
|
+
*
|
|
10
|
+
* @template T - The object type being filtered
|
|
11
|
+
* @param options - Configuration for both the cache and the underlying filter
|
|
12
|
+
* @returns A cached filter function `(cursor, filter) => Promise<boolean>`
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const cachedFilter = ObjectFilterCached<User>({ maxCacheSize: 500 });
|
|
17
|
+
* const isAdmin = await cachedFilter(user, { role: 'admin' });
|
|
18
|
+
* ```
|
|
7
19
|
*/
|
|
8
20
|
export declare function ObjectFilterCached<T extends object>(options?: ICachedObjectFilterOptions): TCachedObjectFilterFunction<T>;
|
|
9
21
|
//# sourceMappingURL=filter-cached.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-cached.d.ts","sourceRoot":"","sources":["../../src/object/filter-cached.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,2BAA2B,EAAwB,MAAM,YAAY,CAAC;AAOhH
|
|
1
|
+
{"version":3,"file":"filter-cached.d.ts","sourceRoot":"","sources":["../../src/object/filter-cached.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,2BAA2B,EAAwB,MAAM,YAAY,CAAC;AAOhH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,GAAE,0BAA+B,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAmH7H"}
|
|
@@ -5,10 +5,22 @@ const DEFAULT_MAX_CACHE_SIZE = 1000;
|
|
|
5
5
|
const CACHE_EVICTION_PERCENTAGE = 0.2; // 20%
|
|
6
6
|
const INITIAL_CACHE_HASH_LENGTH = 16;
|
|
7
7
|
/**
|
|
8
|
-
* Creates a cached version of
|
|
8
|
+
* Creates a cached version of {@link ObjectFilter} for improved performance
|
|
9
|
+
* when filtering the same objects repeatedly.
|
|
9
10
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
11
|
+
* Results are cached by hashing the filter and object together. When the cache
|
|
12
|
+
* exceeds `maxCacheSize`, approximately 20% of the entries in the largest
|
|
13
|
+
* per-filter bucket are evicted.
|
|
14
|
+
*
|
|
15
|
+
* @template T - The object type being filtered
|
|
16
|
+
* @param options - Configuration for both the cache and the underlying filter
|
|
17
|
+
* @returns A cached filter function `(cursor, filter) => Promise<boolean>`
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const cachedFilter = ObjectFilterCached<User>({ maxCacheSize: 500 });
|
|
22
|
+
* const isAdmin = await cachedFilter(user, { role: 'admin' });
|
|
23
|
+
* ```
|
|
12
24
|
*/
|
|
13
25
|
export function ObjectFilterCached(options = {}) {
|
|
14
26
|
const { maxCacheSize = DEFAULT_MAX_CACHE_SIZE, useDeepEqual = false, caseInsensitiveStrings = false, validatePaths = true, } = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-cached.js","sourceRoot":"","sources":["../../src/object/filter-cached.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,gCAAgC;AAChC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AACpC,MAAM,yBAAyB,GAAG,GAAG,CAAC,CAAC,MAAM;AAC7C,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC
|
|
1
|
+
{"version":3,"file":"filter-cached.js","sourceRoot":"","sources":["../../src/object/filter-cached.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Checks whether an object contains circular references
|
|
2
|
+
* Checks whether an object (or any nested value) contains circular references.
|
|
3
3
|
*
|
|
4
|
-
* @param obj - The
|
|
5
|
-
* @returns
|
|
4
|
+
* @param obj - The value to inspect
|
|
5
|
+
* @returns `true` if a circular reference is detected, `false` otherwise
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* ObjectHasCircularReference({ a: 1, b: { c: 2 } }); // false
|
|
10
|
+
*
|
|
11
|
+
* const circular: any = { a: 1 };
|
|
12
|
+
* circular.self = circular;
|
|
13
|
+
* ObjectHasCircularReference(circular); // true
|
|
14
|
+
* ```
|
|
6
15
|
*/
|
|
7
16
|
export declare function ObjectHasCircularReference(obj: unknown): boolean;
|
|
8
17
|
//# sourceMappingURL=has-circular-reference.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-circular-reference.d.ts","sourceRoot":"","sources":["../../src/object/has-circular-reference.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"has-circular-reference.d.ts","sourceRoot":"","sources":["../../src/object/has-circular-reference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAyChE"}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Checks whether an object contains circular references
|
|
2
|
+
* Checks whether an object (or any nested value) contains circular references.
|
|
3
3
|
*
|
|
4
|
-
* @param obj - The
|
|
5
|
-
* @returns
|
|
4
|
+
* @param obj - The value to inspect
|
|
5
|
+
* @returns `true` if a circular reference is detected, `false` otherwise
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* ObjectHasCircularReference({ a: 1, b: { c: 2 } }); // false
|
|
10
|
+
*
|
|
11
|
+
* const circular: any = { a: 1 };
|
|
12
|
+
* circular.self = circular;
|
|
13
|
+
* ObjectHasCircularReference(circular); // true
|
|
14
|
+
* ```
|
|
6
15
|
*/
|
|
7
16
|
export function ObjectHasCircularReference(obj) {
|
|
8
17
|
const seen = new WeakSet();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-circular-reference.js","sourceRoot":"","sources":["../../src/object/has-circular-reference.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"has-circular-reference.js","sourceRoot":"","sources":["../../src/object/has-circular-reference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,0BAA0B,CAAC,GAAY;IACtD,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;IAE3B,MAAM,cAAc,GAAG,CAAC,KAAc,EAAW,EAAE;QAClD,yDAAyD;QACzD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC;QACd,CAAC;QAED,8DAA8D;QAC9D,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEhB,iCAAiC;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;YAED,OAAO,KAAK,CAAC;QACd,CAAC;QAED,kDAAkD;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC;QAE3D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,cAAc,CAAE,KAAiC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC7D,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Creates an object from an array of key-value
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Creates an object from an array of key-value pair tuples.
|
|
3
|
+
* The inverse of {@link ObjectToKeyValuePairs}.
|
|
4
|
+
*
|
|
5
|
+
* @template T - The value type
|
|
6
|
+
* @param entries - Array of `[key, value]` tuples
|
|
7
|
+
* @returns Object whose keys and values come from `entries`
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* ObjectFromKeyValuePairs([['a', 1], ['b', 2]]); // { a: 1, b: 2 }
|
|
12
|
+
* ```
|
|
5
13
|
*/
|
|
6
14
|
export declare function ObjectFromKeyValuePairs<T = unknown>(entries: [string, T][]): Record<string, T>;
|
|
7
15
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-value-pairs.d.ts","sourceRoot":"","sources":["../../src/object/key-value-pairs.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"key-value-pairs.d.ts","sourceRoot":"","sources":["../../src/object/key-value-pairs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAK9F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAExF"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Creates an object from an array of key-value
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Creates an object from an array of key-value pair tuples.
|
|
3
|
+
* The inverse of {@link ObjectToKeyValuePairs}.
|
|
4
|
+
*
|
|
5
|
+
* @template T - The value type
|
|
6
|
+
* @param entries - Array of `[key, value]` tuples
|
|
7
|
+
* @returns Object whose keys and values come from `entries`
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* ObjectFromKeyValuePairs([['a', 1], ['b', 2]]); // { a: 1, b: 2 }
|
|
12
|
+
* ```
|
|
5
13
|
*/
|
|
6
14
|
export function ObjectFromKeyValuePairs(entries) {
|
|
7
15
|
return entries.reduce((obj, [key, value]) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-value-pairs.js","sourceRoot":"","sources":["../../src/object/key-value-pairs.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"key-value-pairs.js","sourceRoot":"","sources":["../../src/object/key-value-pairs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAc,OAAsB;IAC1E,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC3C,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACjB,OAAO,GAAG,CAAC;IACZ,CAAC,EAAE,EAAuB,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAc,GAAsB;IACxE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAkB,CAAC;AAC7C,CAAC"}
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
import type { TPropertyMapper, ICachedObjectMapOptions } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
* Creates a cached version of MapObject for improved performance
|
|
3
|
+
* Creates a cached version of {@link MapObject} for improved performance
|
|
4
|
+
* when mapping the same objects repeatedly.
|
|
4
5
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
6
|
+
* Results are cached by hashing the object. Cache entries are evicted in
|
|
7
|
+
* approximately 20% batches when the limit is reached.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The object type being mapped
|
|
10
|
+
* @param options - Configuration options for cache behaviour
|
|
11
|
+
* @returns A cached map function `(cursor, mapper, mapperKey?) => Promise<Record<keyof T, unknown>>`
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const cachedMap = MapObjectCached<User>();
|
|
16
|
+
* const display = await cachedMap(user, (key, value) => String(value));
|
|
17
|
+
* ```
|
|
7
18
|
*/
|
|
8
19
|
export declare function MapObjectCached<T extends object>(options?: ICachedObjectMapOptions): (cursor: T, mapper: TPropertyMapper<T>, mapperKey?: string) => Promise<Record<keyof T, unknown>>;
|
|
9
20
|
//# sourceMappingURL=map-cached.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-cached.d.ts","sourceRoot":"","sources":["../../src/object/map-cached.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAO3E
|
|
1
|
+
{"version":3,"file":"map-cached.d.ts","sourceRoot":"","sources":["../../src/object/map-cached.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAO3E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAkGzL"}
|
|
@@ -5,10 +5,21 @@ const DEFAULT_MAX_CACHE_SIZE = 1000;
|
|
|
5
5
|
const CACHE_EVICTION_PERCENTAGE = 0.2; // 20%
|
|
6
6
|
const INITIAL_CACHE_HASH_LENGTH = 16;
|
|
7
7
|
/**
|
|
8
|
-
* Creates a cached version of MapObject for improved performance
|
|
8
|
+
* Creates a cached version of {@link MapObject} for improved performance
|
|
9
|
+
* when mapping the same objects repeatedly.
|
|
9
10
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
11
|
+
* Results are cached by hashing the object. Cache entries are evicted in
|
|
12
|
+
* approximately 20% batches when the limit is reached.
|
|
13
|
+
*
|
|
14
|
+
* @template T - The object type being mapped
|
|
15
|
+
* @param options - Configuration options for cache behaviour
|
|
16
|
+
* @returns A cached map function `(cursor, mapper, mapperKey?) => Promise<Record<keyof T, unknown>>`
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const cachedMap = MapObjectCached<User>();
|
|
21
|
+
* const display = await cachedMap(user, (key, value) => String(value));
|
|
22
|
+
* ```
|
|
12
23
|
*/
|
|
13
24
|
export function MapObjectCached(options = {}) {
|
|
14
25
|
const { maxCacheSize = DEFAULT_MAX_CACHE_SIZE } = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-cached.js","sourceRoot":"","sources":["../../src/object/map-cached.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,gCAAgC;AAChC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AACpC,MAAM,yBAAyB,GAAG,GAAG,CAAC,CAAC,MAAM;AAC7C,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC
|
|
1
|
+
{"version":3,"file":"map-cached.js","sourceRoot":"","sources":["../../src/object/map-cached.ts"],"names":[],"mappings":"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"}
|
package/build/object/merge.d.ts
CHANGED
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Merges two objects deeply with security protections
|
|
2
|
+
* Merges two objects deeply with security protections.
|
|
3
|
+
*
|
|
4
|
+
* **Merge behaviour:**
|
|
5
|
+
* - Primitive values from `source` overwrite those in `target`.
|
|
6
|
+
* - Arrays are concatenated (target array followed by source array).
|
|
7
|
+
* - Plain objects are recursively merged.
|
|
3
8
|
*
|
|
4
9
|
* **Security Features:**
|
|
5
|
-
* - Prevents prototype pollution by filtering dangerous keys
|
|
6
|
-
* - Safely handles nested object merging
|
|
7
|
-
*
|
|
10
|
+
* - Prevents prototype pollution by filtering dangerous keys (`__proto__`, `constructor`, `prototype`).
|
|
11
|
+
* - Safely handles nested object merging.
|
|
12
|
+
*
|
|
13
|
+
* @template T - The type of the target object
|
|
14
|
+
* @param target - Target object (base values)
|
|
15
|
+
* @param source - Source object (values to merge in)
|
|
16
|
+
* @returns A new merged object (neither `target` nor `source` is mutated)
|
|
8
17
|
*
|
|
9
|
-
* @
|
|
10
|
-
*
|
|
11
|
-
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* ObjectMerge({ a: 1, b: { x: 1 } }, { b: { y: 2 }, c: 3 });
|
|
21
|
+
* // { a: 1, b: { x: 1, y: 2 }, c: 3 }
|
|
22
|
+
* ```
|
|
12
23
|
*/
|
|
13
24
|
export declare function ObjectMerge<T extends object = object>(target: T, source: Partial<T>): T;
|
|
14
25
|
//# sourceMappingURL=merge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/object/merge.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/object/merge.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CA6BvF"}
|
package/build/object/merge.js
CHANGED
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
import { filterDangerousKeys } from './security-utils.js';
|
|
2
2
|
/**
|
|
3
|
-
* Merges two objects deeply with security protections
|
|
3
|
+
* Merges two objects deeply with security protections.
|
|
4
|
+
*
|
|
5
|
+
* **Merge behaviour:**
|
|
6
|
+
* - Primitive values from `source` overwrite those in `target`.
|
|
7
|
+
* - Arrays are concatenated (target array followed by source array).
|
|
8
|
+
* - Plain objects are recursively merged.
|
|
4
9
|
*
|
|
5
10
|
* **Security Features:**
|
|
6
|
-
* - Prevents prototype pollution by filtering dangerous keys
|
|
7
|
-
* - Safely handles nested object merging
|
|
8
|
-
*
|
|
11
|
+
* - Prevents prototype pollution by filtering dangerous keys (`__proto__`, `constructor`, `prototype`).
|
|
12
|
+
* - Safely handles nested object merging.
|
|
13
|
+
*
|
|
14
|
+
* @template T - The type of the target object
|
|
15
|
+
* @param target - Target object (base values)
|
|
16
|
+
* @param source - Source object (values to merge in)
|
|
17
|
+
* @returns A new merged object (neither `target` nor `source` is mutated)
|
|
9
18
|
*
|
|
10
|
-
* @
|
|
11
|
-
*
|
|
12
|
-
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* ObjectMerge({ a: 1, b: { x: 1 } }, { b: { y: 2 }, c: 3 });
|
|
22
|
+
* // { a: 1, b: { x: 1, y: 2 }, c: 3 }
|
|
23
|
+
* ```
|
|
13
24
|
*/
|
|
14
25
|
export function ObjectMerge(target, source) {
|
|
15
26
|
if (!target || typeof target !== 'object')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/object/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/object/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,WAAW,CAA4B,MAAS,EAAE,MAAkB;IACnF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAW,CAAC;IAC9D,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAEzD,yDAAyD;IACzD,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAA6B,CAAC,CAAC;IAEtE,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC7B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACvC,wDAAwD;QACxD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO;QACR,CAAC;QAED,MAAM,WAAW,GAAI,MAA8B,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7D,MAA8B,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW,CAAC,CAAC;QACzE,CAAC;aAAM,IACN,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAC/F,CAAC;YACD,MAA8B,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC9E,CAAC;aAAM,CAAC;YACN,MAA8B,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QACpD,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,MAAW,CAAC;AACpB,CAAC"}
|
package/build/object/omit.d.ts
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Creates a new object without the specified keys from the source object
|
|
3
|
-
*
|
|
4
|
-
* @
|
|
5
|
-
* @
|
|
2
|
+
* Creates a new object without the specified keys from the source object.
|
|
3
|
+
*
|
|
4
|
+
* @template T - The type of the source object
|
|
5
|
+
* @template K - The keys to omit (must be keys of `T`)
|
|
6
|
+
* @param obj - Source object
|
|
7
|
+
* @param keys - Array of keys to exclude from the result
|
|
8
|
+
* @returns A shallow copy of `obj` without the specified keys
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const user = { id: 1, name: 'John', password: 'secret' };
|
|
13
|
+
* ObjectOmit(user, ['password']); // { id: 1, name: 'John' }
|
|
14
|
+
* ```
|
|
6
15
|
*/
|
|
7
16
|
export declare function ObjectOmit<T extends object, K extends keyof T>(obj: T, keys: K[]): Omit<T, K>;
|
|
8
17
|
//# sourceMappingURL=omit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omit.d.ts","sourceRoot":"","sources":["../../src/object/omit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"omit.d.ts","sourceRoot":"","sources":["../../src/object/omit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAU7F"}
|
package/build/object/omit.js
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Creates a new object without the specified keys from the source object
|
|
3
|
-
*
|
|
4
|
-
* @
|
|
5
|
-
* @
|
|
2
|
+
* Creates a new object without the specified keys from the source object.
|
|
3
|
+
*
|
|
4
|
+
* @template T - The type of the source object
|
|
5
|
+
* @template K - The keys to omit (must be keys of `T`)
|
|
6
|
+
* @param obj - Source object
|
|
7
|
+
* @param keys - Array of keys to exclude from the result
|
|
8
|
+
* @returns A shallow copy of `obj` without the specified keys
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const user = { id: 1, name: 'John', password: 'secret' };
|
|
13
|
+
* ObjectOmit(user, ['password']); // { id: 1, name: 'John' }
|
|
14
|
+
* ```
|
|
6
15
|
*/
|
|
7
16
|
export function ObjectOmit(obj, keys) {
|
|
8
17
|
if (!obj) {
|
package/build/object/omit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omit.js","sourceRoot":"","sources":["../../src/object/omit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"omit.js","sourceRoot":"","sources":["../../src/object/omit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,UAAU,CAAsC,GAAM,EAAE,IAAS;IAChF,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,OAAO,EAAgB,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC1B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACpB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,OAAO,MAAoB,CAAC;AAC7B,CAAC"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import type { TFormatParams, TFormatArgs } from './types';
|
|
2
2
|
/**
|
|
3
|
-
* Escapes a string for safe use in HTML
|
|
3
|
+
* Escapes a string for safe use in HTML by replacing special characters with
|
|
4
|
+
* their HTML entity equivalents.
|
|
4
5
|
*
|
|
5
|
-
* @param str The input string
|
|
6
|
-
* @returns The HTML-escaped string
|
|
6
|
+
* @param str - The input string
|
|
7
|
+
* @returns The HTML-escaped string
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* EscapeHTML('<b>Hello & "World"</b>');
|
|
12
|
+
* // '<b>Hello & "World"</b>'
|
|
13
|
+
* ```
|
|
7
14
|
*/
|
|
8
15
|
export declare function EscapeHTML(str: string): string;
|
|
9
16
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../src/string/formatting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D
|
|
1
|
+
{"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../src/string/formatting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAW9C;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,GAAG,WAAW,GACjC,MAAM,CAoBR;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,SAAQ,GAAG,MAAM,CAUvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,SAAM,EAAE,MAAM,UAAO,GAAG,MAAM,CASxF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CASpE"}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Escapes a string for safe use in HTML
|
|
2
|
+
* Escapes a string for safe use in HTML by replacing special characters with
|
|
3
|
+
* their HTML entity equivalents.
|
|
3
4
|
*
|
|
4
|
-
* @param str The input string
|
|
5
|
-
* @returns The HTML-escaped string
|
|
5
|
+
* @param str - The input string
|
|
6
|
+
* @returns The HTML-escaped string
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* EscapeHTML('<b>Hello & "World"</b>');
|
|
11
|
+
* // '<b>Hello & "World"</b>'
|
|
12
|
+
* ```
|
|
6
13
|
*/
|
|
7
14
|
export function EscapeHTML(str) {
|
|
8
15
|
if (str && typeof str === 'string') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../src/string/formatting.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../src/string/formatting.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACrC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,GAAG;aACR,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;aACvB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;aACtB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;aACtB,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;aACxB,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,EAAE,CAAC;AACX,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,YAAY,CAC3B,QAAgB,EAChB,MAAmC;IAEnC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;YACrE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBACpD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC1C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACtE,CAAC,CAAC,CAAC;YACJ,CAAC;YAED,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAClD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACtE,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,CAAC;AACX,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,SAAiB,EAAE,QAAQ,GAAG,KAAK;IAC9E,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACrD,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC7B,OAAO,GAAG,CAAC;QACZ,CAAC;QAED,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC;IAC3C,CAAC;IAED,OAAO,EAAE,CAAC;AACX,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,MAAc,EAAE,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,IAAI;IAC/E,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3D,MAAM,aAAa,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE3C,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;IAC/C,CAAC;IAED,OAAO,GAAG,IAAI,EAAE,CAAC;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACpC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC/C,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,MAAe;IACrE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACjD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACpC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IAC9C,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,MAAc;IAC3D,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAChD,KAAK,EAAE,CAAC;QACR,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC"}
|