@pawells/typescript-common 1.0.1 → 1.1.1

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.
Files changed (142) hide show
  1. package/README.md +177 -2
  2. package/build/array/array-chunk.d.ts +10 -4
  3. package/build/array/array-chunk.d.ts.map +1 -1
  4. package/build/array/array-chunk.js +10 -4
  5. package/build/array/array-chunk.js.map +1 -1
  6. package/build/array/array-contains.d.ts +11 -3
  7. package/build/array/array-contains.d.ts.map +1 -1
  8. package/build/array/array-contains.js +11 -3
  9. package/build/array/array-contains.js.map +1 -1
  10. package/build/array/array-group-by.d.ts +14 -5
  11. package/build/array/array-group-by.d.ts.map +1 -1
  12. package/build/array/array-group-by.js +14 -5
  13. package/build/array/array-group-by.js.map +1 -1
  14. package/build/array/array-shuffle.d.ts +12 -3
  15. package/build/array/array-shuffle.d.ts.map +1 -1
  16. package/build/array/array-shuffle.js +12 -3
  17. package/build/array/array-shuffle.js.map +1 -1
  18. package/build/array/assert.d.ts +115 -0
  19. package/build/array/assert.d.ts.map +1 -0
  20. package/build/array/assert.js +182 -0
  21. package/build/array/assert.js.map +1 -0
  22. package/build/array/index.d.ts +1 -0
  23. package/build/array/index.d.ts.map +1 -1
  24. package/build/array/index.js +1 -0
  25. package/build/array/index.js.map +1 -1
  26. package/build/array/unique.d.ts +13 -3
  27. package/build/array/unique.d.ts.map +1 -1
  28. package/build/array/unique.js +13 -3
  29. package/build/array/unique.js.map +1 -1
  30. package/build/asserts/errors.d.ts +129 -0
  31. package/build/asserts/errors.d.ts.map +1 -0
  32. package/build/asserts/errors.js +149 -0
  33. package/build/asserts/errors.js.map +1 -0
  34. package/build/asserts/generic.d.ts +436 -0
  35. package/build/asserts/generic.d.ts.map +1 -0
  36. package/build/asserts/generic.js +543 -0
  37. package/build/asserts/generic.js.map +1 -0
  38. package/build/asserts/index.d.ts +41 -0
  39. package/build/asserts/index.d.ts.map +1 -0
  40. package/build/asserts/index.js +41 -0
  41. package/build/asserts/index.js.map +1 -0
  42. package/build/asserts/internal-utils.d.ts +53 -0
  43. package/build/asserts/internal-utils.d.ts.map +1 -0
  44. package/build/asserts/internal-utils.js +108 -0
  45. package/build/asserts/internal-utils.js.map +1 -0
  46. package/build/asserts/types.d.ts +180 -0
  47. package/build/asserts/types.d.ts.map +1 -0
  48. package/build/asserts/types.js +2 -0
  49. package/build/asserts/types.js.map +1 -0
  50. package/build/asserts/utils.d.ts +92 -0
  51. package/build/asserts/utils.d.ts.map +1 -0
  52. package/build/asserts/utils.js +103 -0
  53. package/build/asserts/utils.js.map +1 -0
  54. package/build/boolean/assert.d.ts +66 -0
  55. package/build/boolean/assert.d.ts.map +1 -0
  56. package/build/boolean/assert.js +76 -0
  57. package/build/boolean/assert.js.map +1 -0
  58. package/build/boolean/index.d.ts +9 -0
  59. package/build/boolean/index.d.ts.map +1 -0
  60. package/build/boolean/index.js +9 -0
  61. package/build/boolean/index.js.map +1 -0
  62. package/build/enum/enum-entries.d.ts +8 -3
  63. package/build/enum/enum-entries.d.ts.map +1 -1
  64. package/build/enum/enum-entries.js +8 -3
  65. package/build/enum/enum-entries.js.map +1 -1
  66. package/build/enum/enum-key-by-value.d.ts +10 -5
  67. package/build/enum/enum-key-by-value.d.ts.map +1 -1
  68. package/build/enum/enum-key-by-value.js +10 -5
  69. package/build/enum/enum-key-by-value.js.map +1 -1
  70. package/build/enum/enum-keys.d.ts +12 -3
  71. package/build/enum/enum-keys.d.ts.map +1 -1
  72. package/build/enum/enum-keys.js +12 -3
  73. package/build/enum/enum-keys.js.map +1 -1
  74. package/build/enum/enum-safe-value.d.ts +11 -6
  75. package/build/enum/enum-safe-value.d.ts.map +1 -1
  76. package/build/enum/enum-safe-value.js +11 -6
  77. package/build/enum/enum-safe-value.js.map +1 -1
  78. package/build/enum/validate-enum-value.d.ts +10 -5
  79. package/build/enum/validate-enum-value.d.ts.map +1 -1
  80. package/build/enum/validate-enum-value.js +10 -5
  81. package/build/enum/validate-enum-value.js.map +1 -1
  82. package/build/index.d.ts +5 -0
  83. package/build/index.d.ts.map +1 -1
  84. package/build/index.js +12 -0
  85. package/build/index.js.map +1 -1
  86. package/build/number/assert.d.ts +154 -0
  87. package/build/number/assert.d.ts.map +1 -0
  88. package/build/number/assert.js +153 -0
  89. package/build/number/assert.js.map +1 -0
  90. package/build/number/index.d.ts +9 -0
  91. package/build/number/index.d.ts.map +1 -0
  92. package/build/number/index.js +9 -0
  93. package/build/number/index.js.map +1 -0
  94. package/build/object/assert.d.ts +138 -0
  95. package/build/object/assert.d.ts.map +1 -0
  96. package/build/object/assert.js +204 -0
  97. package/build/object/assert.js.map +1 -0
  98. package/build/object/clone.d.ts +17 -6
  99. package/build/object/clone.d.ts.map +1 -1
  100. package/build/object/clone.js +17 -6
  101. package/build/object/clone.js.map +1 -1
  102. package/build/object/filter-cached.d.ts +15 -3
  103. package/build/object/filter-cached.d.ts.map +1 -1
  104. package/build/object/filter-cached.js +15 -3
  105. package/build/object/filter-cached.js.map +1 -1
  106. package/build/object/has-circular-reference.d.ts +12 -3
  107. package/build/object/has-circular-reference.d.ts.map +1 -1
  108. package/build/object/has-circular-reference.js +12 -3
  109. package/build/object/has-circular-reference.js.map +1 -1
  110. package/build/object/index.d.ts +1 -0
  111. package/build/object/index.d.ts.map +1 -1
  112. package/build/object/index.js +1 -0
  113. package/build/object/index.js.map +1 -1
  114. package/build/object/key-value-pairs.d.ts +11 -3
  115. package/build/object/key-value-pairs.d.ts.map +1 -1
  116. package/build/object/key-value-pairs.js +11 -3
  117. package/build/object/key-value-pairs.js.map +1 -1
  118. package/build/object/map-cached.d.ts +14 -3
  119. package/build/object/map-cached.d.ts.map +1 -1
  120. package/build/object/map-cached.js +14 -3
  121. package/build/object/map-cached.js.map +1 -1
  122. package/build/object/merge.d.ts +18 -7
  123. package/build/object/merge.d.ts.map +1 -1
  124. package/build/object/merge.js +18 -7
  125. package/build/object/merge.js.map +1 -1
  126. package/build/object/omit.d.ts +13 -4
  127. package/build/object/omit.d.ts.map +1 -1
  128. package/build/object/omit.js +13 -4
  129. package/build/object/omit.js.map +1 -1
  130. package/build/string/assert.d.ts +100 -0
  131. package/build/string/assert.d.ts.map +1 -0
  132. package/build/string/assert.js +185 -0
  133. package/build/string/assert.js.map +1 -0
  134. package/build/string/formatting.d.ts +10 -3
  135. package/build/string/formatting.d.ts.map +1 -1
  136. package/build/string/formatting.js +10 -3
  137. package/build/string/formatting.js.map +1 -1
  138. package/build/string/index.d.ts +1 -0
  139. package/build/string/index.d.ts.map +1 -1
  140. package/build/string/index.js +1 -0
  141. package/build/string/index.js.map +1 -1
  142. package/package.json +1 -1
@@ -1,9 +1,21 @@
1
1
  import type { ICachedObjectFilterOptions, TCachedObjectFilterFunction } from './types.js';
2
2
  /**
3
- * Creates a cached version of filter for improved performance when filtering the same objects repeatedly
3
+ * Creates a cached version of {@link ObjectFilter} for improved performance
4
+ * when filtering the same objects repeatedly.
4
5
  *
5
- * @param options Configuration options for both the cache and the underlying filter
6
- * @returns A cached version of the filter function
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;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,GAAE,0BAA+B,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAmH7H"}
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 filter for improved performance when filtering the same objects repeatedly
8
+ * Creates a cached version of {@link ObjectFilter} for improved performance
9
+ * when filtering the same objects repeatedly.
9
10
  *
10
- * @param options Configuration options for both the cache and the underlying filter
11
- * @returns A cached version of the filter function
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":"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"}
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 object to check for circular references
5
- * @returns True if the object contains circular references, false otherwise
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;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAyChE"}
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 object to check for circular references
5
- * @returns True if the object contains circular references, false otherwise
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;;;;;GAKG;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
+ {"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"}
@@ -26,6 +26,7 @@ export { isPropertyKeySafe, isPropertyPathSafe, sanitizePropertyKey, filterDange
26
26
  export { ObjectInvert } from './object-invert.js';
27
27
  export { ObjectFlatten } from './object-flatten.js';
28
28
  export { ObjectDiff } from './object-diff.js';
29
+ export { ObjectError, ObjectPropertyError, AssertObjectHasProperty, AssertObjectHasOwnProperty, AssertObjectPropertyNotNull } from './assert.js';
29
30
  export type { IObjectDiffResult } from './object-diff.js';
30
31
  export type { TConstructableObject, TObjectOmitExtraProperties, TCachedObjectFilterFunction, TCachedObjectMapperFunction, TObjectPredicate, TObjectTransformer, TObjectComparator, TObjectEqualityComparator, TPropertyMapper, TPropertyFilter } from './types.js';
31
32
  export type { IObjectFilterOptions, ICachedObjectFilterOptions, ICachedObjectMapOptions } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpK,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,YAAY,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGnQ,YAAY,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpK,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AACjJ,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,YAAY,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGnQ,YAAY,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC"}
@@ -27,4 +27,5 @@ export { isPropertyKeySafe, isPropertyPathSafe, sanitizePropertyKey, filterDange
27
27
  export { ObjectInvert } from './object-invert.js';
28
28
  export { ObjectFlatten } from './object-flatten.js';
29
29
  export { ObjectDiff } from './object-diff.js';
30
+ export { ObjectError, ObjectPropertyError, AssertObjectHasProperty, AssertObjectHasOwnProperty, AssertObjectPropertyNotNull } from './assert.js';
30
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,YAAY;AACZ,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpK,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,YAAY;AACZ,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpK,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC"}
@@ -1,7 +1,15 @@
1
1
  /**
2
- * Creates an object from an array of key-value pairs
3
- * @param entries Array of [key, value] tuples
4
- * @returns Object with keys and values from the entries
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;;;;GAIG;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
+ {"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 pairs
3
- * @param entries Array of [key, value] tuples
4
- * @returns Object with keys and values from the entries
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;;;;GAIG;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
+ {"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 when mapping the same objects repeatedly
3
+ * Creates a cached version of {@link MapObject} for improved performance
4
+ * when mapping the same objects repeatedly.
4
5
  *
5
- * @param options Configuration options for the cache
6
- * @returns A cached version of the map function
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;;;;;GAKG;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"}
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 when mapping the same objects repeatedly
8
+ * Creates a cached version of {@link MapObject} for improved performance
9
+ * when mapping the same objects repeatedly.
9
10
  *
10
- * @param options Configuration options for the cache
11
- * @returns A cached version of the map function
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":"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"}
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;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,eAAe,CAAmB,UAAmC,EAAE;IACtF,MAAM,EAAE,YAAY,GAAG,sBAAsB,EAAE,GAAG,OAAO,CAAC;IAE1D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiD,CAAC;IACvE,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAE3B;;;;;;OAMG;IACH,MAAM,kBAAkB,GAAG,GAAS,EAAE;QACrC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAE7B,uCAAuC;QACvC,IAAI,YAAY,GAAiD,IAAI,CAAC;QACtE,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,IAAI,WAAW,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC;gBACpC,YAAY,GAAG,WAAW,CAAC;gBAC3B,eAAe,GAAG,GAAG,CAAC;gBACtB,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC;YAChC,CAAC;QACF,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YAClB,6DAA6D;YAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,yBAAyB,CAAC,CAAC;YAC3E,IAAI,OAAO,GAAG,CAAC,CAAC;YAEhB,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;gBACvC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACzB,OAAO,EAAE,CAAC;gBACV,IAAI,OAAO,IAAI,eAAe;oBAAE,MAAM;YACvC,CAAC;YAED,kDAAkD;YAClD,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC7B,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC/B,CAAC;YAED,kBAAkB,IAAI,OAAO,CAAC;QAC/B,CAAC;IACF,CAAC,CAAC;IAEF,OAAO,CAAC,MAAS,EAAE,MAA0B,EAAE,SAAkB,EAAqC,EAAE;QACvG,kBAAkB;QAClB,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,EAA8B,CAAC,CAAC;QACxD,CAAC;QAED,wDAAwD;QACxD,8EAA8E;QAC9E,mFAAmF;QACnF,4EAA4E;QAC5E,MAAM,iBAAiB,GAAG,SAAS,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEzD,8CAA8C;QAC9C,IAAI,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,WAAW,GAAG,IAAI,GAAG,EAAoC,CAAC;YAC1D,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC3C,CAAC;QAED,oEAAoE;QACpE,IAAI,SAAiB,CAAC;QAEtB,IAAI,CAAC;YACJ,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YACR,uEAAuE;YACvE,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,mCAAmC;QACnC,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAChD,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,EAA8B,CAAC,CAAC;QACxE,CAAC;QAED,uBAAuB;QACvB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEzC,mBAAmB;QACnB,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnC,kBAAkB,EAAE,CAAC;QAErB,kDAAkD;QAClD,IAAI,kBAAkB,GAAG,YAAY,EAAE,CAAC;YACvC,kBAAkB,EAAE,CAAC;QACtB,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC,CAAC;AACH,CAAC"}
@@ -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
- * - Protects against malicious source objects
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
- * @param target Target object
10
- * @param source Source object
11
- * @returns Merged object
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;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CA6BvF"}
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"}
@@ -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
- * - Protects against malicious source objects
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
- * @param target Target object
11
- * @param source Source object
12
- * @returns Merged object
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;;;;;;;;;;;GAWG;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"}
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"}
@@ -1,8 +1,17 @@
1
1
  /**
2
- * Creates a new object without the specified keys from the source object
3
- * @param obj Source object
4
- * @param keys Keys to omit
5
- * @returns New object without the specified keys
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;;;;;GAKG;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"}
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"}
@@ -1,8 +1,17 @@
1
1
  /**
2
- * Creates a new object without the specified keys from the source object
3
- * @param obj Source object
4
- * @param keys Keys to omit
5
- * @returns New object without the specified keys
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"omit.js","sourceRoot":"","sources":["../../src/object/omit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;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
+ {"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"}
@@ -0,0 +1,100 @@
1
+ import type { IAssertException } from '../asserts/types.js';
2
+ /**
3
+ * Error thrown when a value is not a valid string or fails a string assertion.
4
+ *
5
+ * @example
6
+ * throw new StringError('Value is not a valid string');
7
+ */
8
+ export declare class StringError extends Error {
9
+ constructor(message?: string);
10
+ }
11
+ /**
12
+ * Asserts that a value is a string primitive type.
13
+ *
14
+ * This method validates that the provided value is of type 'string'. It accepts
15
+ * any string including empty strings. This is a strict type check that will
16
+ * reject string objects created with new String().
17
+ *
18
+ * @template TError - Custom error type to throw on failure
19
+ * @param value - The value to validate as a string
20
+ * @param exception - Optional exception configuration for custom error handling
21
+ * @throws {StringError} When value is not a string primitive
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * AssertString("hello"); // ✓ Valid
26
+ * AssertString(""); // ✓ Valid (empty string is still a string)
27
+ * AssertString("123"); // ✓ Valid (numeric string)
28
+ * AssertString(123); // ✗ Throws StringError (number)
29
+ * AssertString(null); // ✗ Throws StringError
30
+ * AssertString(new String("hello")); // ✗ Throws StringError (String object)
31
+ * ```
32
+ */
33
+ export declare function AssertString(value: unknown, exception?: IAssertException): asserts value is string;
34
+ /**
35
+ * Asserts that a value is a non-empty string (after trimming whitespace).
36
+ *
37
+ * This method validates that the provided value is a string and contains at least
38
+ * one non-whitespace character after trimming. This is useful for validating user
39
+ * inputs, form fields, and API parameters where empty or whitespace-only strings
40
+ * are not acceptable.
41
+ *
42
+ * @template TError - Custom error type to throw on failure
43
+ * @param value - The value to validate as a non-empty string
44
+ * @param exception - Optional exception configuration for custom error handling
45
+ * @throws {StringError} When value is not a string or is empty/whitespace-only
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * AssertStringNotEmpty("hello"); // ✓ Valid
50
+ * AssertStringNotEmpty(" a "); // ✓ Valid (has non-whitespace content)
51
+ * AssertStringNotEmpty("x"); // ✓ Valid (single character)
52
+ * AssertStringNotEmpty(""); // ✗ Throws StringError (empty)
53
+ * AssertStringNotEmpty(" "); // ✗ Throws StringError (whitespace only)
54
+ * AssertStringNotEmpty("\t\n "); // ✗ Throws StringError (whitespace only)
55
+ * AssertStringNotEmpty(123); // ✗ Throws StringError (not a string)
56
+ * ```
57
+ */
58
+ export declare function AssertStringNotEmpty(value: unknown, exception?: IAssertException): asserts value is string;
59
+ /**
60
+ * Asserts that a string matches a regular expression pattern.
61
+ *
62
+ * This method validates that the provided string matches the specified regular
63
+ * expression pattern. The string must be a valid string type (use AssertString first
64
+ * if needed). Useful for validating formats like emails, phone numbers, IDs, and
65
+ * other structured text data.
66
+ *
67
+ * For performance optimization, regex patterns are cached when possible to avoid
68
+ * recompilation of the same patterns. This provides significant performance benefits
69
+ * when validating many values against the same pattern.
70
+ *
71
+ * @template TError - Custom error type to throw on failure
72
+ * @param value - The string to test against the pattern
73
+ * @param regex - The regular expression pattern to match against
74
+ * @param exception - Optional exception configuration for custom error handling
75
+ * @throws {StringError} When string does not match the pattern
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * // Email validation
80
+ * AssertStringMatches("hello@example.com", /^[^\s@]+@[^\s@]+\.[^\s@]+$/); // ✓ Valid
81
+ *
82
+ * // Digits only validation
83
+ * AssertStringMatches("123", /^\d+$/); // ✓ Valid
84
+ * AssertStringMatches("12a", /^\d+$/); // ✗ Throws StringError
85
+ *
86
+ * // Phone number format
87
+ * AssertStringMatches("(555) 123-4567", /^\(\d{3}\) \d{3}-\d{4}$/); // ✓ Valid
88
+ *
89
+ * // Alphanumeric with length constraint
90
+ * AssertStringMatches("abc123", /^[a-zA-Z0-9]{3,10}$/); // ✓ Valid
91
+ * AssertStringMatches("ab", /^[a-zA-Z0-9]{3,10}$/); // ✗ Throws (too short)
92
+ *
93
+ * // Performance benefit with repeated pattern usage
94
+ * const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
95
+ * AssertStringMatches("user1@example.com", emailPattern); // Cached for future use
96
+ * AssertStringMatches("user2@example.com", emailPattern); // Uses cached pattern
97
+ * ```
98
+ */
99
+ export declare function AssertStringMatches(value: string, regex: RegExp, exception?: IAssertException): void;
100
+ //# sourceMappingURL=assert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/string/assert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAqD5D;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBACzB,OAAO,CAAC,EAAE,MAAM;CAK5B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAMtG;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAe9G;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,gBAAqB,GAAG,IAAI,CAkBxG"}