@stryke/helpers 0.10.19 → 0.10.20

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 (196) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/_virtual/_rolldown/runtime.cjs +19 -0
  3. package/dist/_virtual/_rolldown/runtime.mjs +18 -0
  4. package/dist/arg-identity.cjs +9 -1
  5. package/dist/arg-identity.mjs +4 -1
  6. package/dist/arg-identity.mjs.map +1 -1
  7. package/dist/arg-identity.test.cjs +12 -0
  8. package/dist/arg-identity.test.d.cts +1 -0
  9. package/dist/arg-identity.test.d.mts +1 -0
  10. package/dist/arg-identity.test.mjs +14 -0
  11. package/dist/arg-identity.test.mjs.map +1 -0
  12. package/dist/deep-clone.cjs +9 -1
  13. package/dist/deep-clone.mjs +3 -1
  14. package/dist/deep-clone.mjs.map +1 -1
  15. package/dist/deep-clone.test.cjs +12 -0
  16. package/dist/deep-clone.test.d.cts +1 -0
  17. package/dist/deep-clone.test.d.mts +1 -0
  18. package/dist/deep-clone.test.mjs +14 -0
  19. package/dist/deep-clone.test.mjs.map +1 -0
  20. package/dist/deep-merge.cjs +9 -1
  21. package/dist/deep-merge.mjs +3 -1
  22. package/dist/deep-merge.mjs.map +1 -1
  23. package/dist/deep-merge.test.cjs +12 -0
  24. package/dist/deep-merge.test.d.cts +1 -0
  25. package/dist/deep-merge.test.d.mts +1 -0
  26. package/dist/deep-merge.test.mjs +14 -0
  27. package/dist/deep-merge.test.mjs.map +1 -0
  28. package/dist/filter-empty.cjs +9 -1
  29. package/dist/filter-empty.mjs +3 -1
  30. package/dist/filter-empty.mjs.map +1 -1
  31. package/dist/filter-empty.test.cjs +12 -0
  32. package/dist/filter-empty.test.d.cts +1 -0
  33. package/dist/filter-empty.test.d.mts +1 -0
  34. package/dist/filter-empty.test.mjs +14 -0
  35. package/dist/filter-empty.test.mjs.map +1 -0
  36. package/dist/flatten-object.cjs +9 -1
  37. package/dist/flatten-object.mjs +3 -1
  38. package/dist/flatten-object.mjs.map +1 -1
  39. package/dist/flatten-object.test.cjs +12 -0
  40. package/dist/flatten-object.test.d.cts +1 -0
  41. package/dist/flatten-object.test.d.mts +1 -0
  42. package/dist/flatten-object.test.mjs +14 -0
  43. package/dist/flatten-object.test.mjs.map +1 -0
  44. package/dist/get-field.cjs +9 -1
  45. package/dist/get-field.mjs +3 -1
  46. package/dist/get-field.mjs.map +1 -1
  47. package/dist/get-field.test.cjs +12 -0
  48. package/dist/get-field.test.d.cts +1 -0
  49. package/dist/get-field.test.d.mts +1 -0
  50. package/dist/get-field.test.mjs +14 -0
  51. package/dist/get-field.test.mjs.map +1 -0
  52. package/dist/get-ordered-by.cjs +9 -1
  53. package/dist/get-ordered-by.mjs +4 -1
  54. package/dist/get-ordered-by.mjs.map +1 -1
  55. package/dist/get-ordered-by.test.cjs +12 -0
  56. package/dist/get-ordered-by.test.d.cts +1 -0
  57. package/dist/get-ordered-by.test.d.mts +1 -0
  58. package/dist/get-ordered-by.test.mjs +14 -0
  59. package/dist/get-ordered-by.test.mjs.map +1 -0
  60. package/dist/get-unique.cjs +12 -1
  61. package/dist/get-unique.mjs +7 -1
  62. package/dist/get-unique.mjs.map +1 -1
  63. package/dist/get-unique.test.cjs +12 -0
  64. package/dist/get-unique.test.d.cts +1 -0
  65. package/dist/get-unique.test.d.mts +1 -0
  66. package/dist/get-unique.test.mjs +14 -0
  67. package/dist/get-unique.test.mjs.map +1 -0
  68. package/dist/identity.cjs +9 -1
  69. package/dist/identity.mjs +4 -1
  70. package/dist/identity.mjs.map +1 -1
  71. package/dist/identity.test.cjs +12 -0
  72. package/dist/identity.test.d.cts +1 -0
  73. package/dist/identity.test.d.mts +1 -0
  74. package/dist/identity.test.mjs +14 -0
  75. package/dist/identity.test.mjs.map +1 -0
  76. package/dist/index.cjs +41 -0
  77. package/dist/index.mjs +37 -1
  78. package/dist/index.mjs.map +1 -0
  79. package/dist/index.test.cjs +12 -0
  80. package/dist/index.test.d.cts +1 -0
  81. package/dist/index.test.d.mts +1 -0
  82. package/dist/index.test.mjs +14 -0
  83. package/dist/index.test.mjs.map +1 -0
  84. package/dist/is-equal.cjs +9 -1
  85. package/dist/is-equal.mjs +3 -1
  86. package/dist/is-equal.mjs.map +1 -1
  87. package/dist/is-equal.test.cjs +12 -0
  88. package/dist/is-equal.test.d.cts +1 -0
  89. package/dist/is-equal.test.d.mts +1 -0
  90. package/dist/is-equal.test.mjs +14 -0
  91. package/dist/is-equal.test.mjs.map +1 -0
  92. package/dist/lru-cache.cjs +9 -1
  93. package/dist/lru-cache.mjs +4 -1
  94. package/dist/lru-cache.mjs.map +1 -1
  95. package/dist/lru-cache.test.cjs +12 -0
  96. package/dist/lru-cache.test.d.cts +1 -0
  97. package/dist/lru-cache.test.d.mts +1 -0
  98. package/dist/lru-cache.test.mjs +14 -0
  99. package/dist/lru-cache.test.mjs.map +1 -0
  100. package/dist/match-sorter.cjs +12 -0
  101. package/dist/match-sorter.mjs +7 -1
  102. package/dist/match-sorter.mjs.map +1 -1
  103. package/dist/match-sorter.test.cjs +12 -0
  104. package/dist/match-sorter.test.d.cts +1 -0
  105. package/dist/match-sorter.test.d.mts +1 -0
  106. package/dist/match-sorter.test.mjs +14 -0
  107. package/dist/match-sorter.test.mjs.map +1 -0
  108. package/dist/memoize.cjs +9 -1
  109. package/dist/memoize.mjs +4 -1
  110. package/dist/memoize.mjs.map +1 -1
  111. package/dist/memoize.test.cjs +12 -0
  112. package/dist/memoize.test.d.cts +1 -0
  113. package/dist/memoize.test.d.mts +1 -0
  114. package/dist/memoize.test.mjs +14 -0
  115. package/dist/memoize.test.mjs.map +1 -0
  116. package/dist/noop.cjs +12 -1
  117. package/dist/noop.mjs +7 -1
  118. package/dist/noop.mjs.map +1 -1
  119. package/dist/noop.test.cjs +12 -0
  120. package/dist/noop.test.d.cts +1 -0
  121. package/dist/noop.test.d.mts +1 -0
  122. package/dist/noop.test.mjs +14 -0
  123. package/dist/noop.test.mjs.map +1 -0
  124. package/dist/omit.cjs +9 -1
  125. package/dist/omit.mjs +4 -1
  126. package/dist/omit.mjs.map +1 -1
  127. package/dist/omit.test.cjs +12 -0
  128. package/dist/omit.test.d.cts +1 -0
  129. package/dist/omit.test.d.mts +1 -0
  130. package/dist/omit.test.mjs +14 -0
  131. package/dist/omit.test.mjs.map +1 -0
  132. package/dist/pick.cjs +9 -1
  133. package/dist/pick.mjs +4 -1
  134. package/dist/pick.mjs.map +1 -1
  135. package/dist/pick.test.cjs +12 -0
  136. package/dist/pick.test.d.cts +1 -0
  137. package/dist/pick.test.d.mts +1 -0
  138. package/dist/pick.test.mjs +14 -0
  139. package/dist/pick.test.mjs.map +1 -0
  140. package/dist/remove-accents.cjs +12 -1
  141. package/dist/remove-accents.mjs +7 -1
  142. package/dist/remove-accents.mjs.map +1 -1
  143. package/dist/remove-accents.test.cjs +12 -0
  144. package/dist/remove-accents.test.d.cts +1 -0
  145. package/dist/remove-accents.test.d.mts +1 -0
  146. package/dist/remove-accents.test.mjs +14 -0
  147. package/dist/remove-accents.test.mjs.map +1 -0
  148. package/dist/remove-empty-items.cjs +9 -1
  149. package/dist/remove-empty-items.mjs +4 -1
  150. package/dist/remove-empty-items.mjs.map +1 -1
  151. package/dist/remove-empty-items.test.cjs +12 -0
  152. package/dist/remove-empty-items.test.d.cts +1 -0
  153. package/dist/remove-empty-items.test.d.mts +1 -0
  154. package/dist/remove-empty-items.test.mjs +14 -0
  155. package/dist/remove-empty-items.test.mjs.map +1 -0
  156. package/dist/set-field.cjs +9 -1
  157. package/dist/set-field.mjs +3 -1
  158. package/dist/set-field.mjs.map +1 -1
  159. package/dist/set-field.test.cjs +12 -0
  160. package/dist/set-field.test.d.cts +1 -0
  161. package/dist/set-field.test.d.mts +1 -0
  162. package/dist/set-field.test.mjs +14 -0
  163. package/dist/set-field.test.mjs.map +1 -0
  164. package/dist/to-deep-key.cjs +12 -1
  165. package/dist/to-deep-key.mjs +6 -1
  166. package/dist/to-deep-key.mjs.map +1 -1
  167. package/dist/to-deep-key.test.cjs +12 -0
  168. package/dist/to-deep-key.test.d.cts +1 -0
  169. package/dist/to-deep-key.test.d.mts +1 -0
  170. package/dist/to-deep-key.test.mjs +14 -0
  171. package/dist/to-deep-key.test.mjs.map +1 -0
  172. package/dist/to-path.cjs +9 -1
  173. package/dist/to-path.mjs +4 -1
  174. package/dist/to-path.mjs.map +1 -1
  175. package/dist/to-path.test.cjs +12 -0
  176. package/dist/to-path.test.d.cts +1 -0
  177. package/dist/to-path.test.d.mts +1 -0
  178. package/dist/to-path.test.mjs +14 -0
  179. package/dist/to-path.test.mjs.map +1 -0
  180. package/dist/unflatten-object.cjs +9 -1
  181. package/dist/unflatten-object.mjs +3 -1
  182. package/dist/unflatten-object.mjs.map +1 -1
  183. package/dist/unflatten-object.test.cjs +12 -0
  184. package/dist/unflatten-object.test.d.cts +1 -0
  185. package/dist/unflatten-object.test.d.mts +1 -0
  186. package/dist/unflatten-object.test.mjs +14 -0
  187. package/dist/unflatten-object.test.mjs.map +1 -0
  188. package/dist/union.cjs +9 -1
  189. package/dist/union.mjs +3 -1
  190. package/dist/union.mjs.map +1 -1
  191. package/dist/union.test.cjs +12 -0
  192. package/dist/union.test.d.cts +1 -0
  193. package/dist/union.test.d.mts +1 -0
  194. package/dist/union.test.mjs +14 -0
  195. package/dist/union.test.mjs.map +1 -0
  196. package/package.json +101 -5
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  # Changelog for Stryke - Helpers
4
4
 
5
+ ## [0.10.19](https://github.com/storm-software/stryke/releases/tag/helpers%400.10.19) (05/27/2026)
6
+
7
+ ### Updated Dependencies
8
+
9
+ - Updated **convert** to **v0.7.10**
10
+ - Updated **type-checks** to **v0.6.12**
11
+ - Updated **types** to **v0.12.7**
12
+
5
13
  ## [0.10.18](https://github.com/storm-software/stryke/releases/tag/helpers%400.10.18) (05/27/2026)
6
14
 
7
15
  ### Updated Dependencies
@@ -0,0 +1,19 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, no_symbols) => {
4
+ let target = {};
5
+ for (var name in all) {
6
+ __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ }
11
+ if (!no_symbols) {
12
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
13
+ }
14
+ return target;
15
+ };
16
+
17
+ //#endregion
18
+
19
+ exports.__exportAll = __exportAll;
@@ -0,0 +1,18 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, no_symbols) => {
4
+ let target = {};
5
+ for (var name in all) {
6
+ __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ }
11
+ if (!no_symbols) {
12
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
13
+ }
14
+ return target;
15
+ };
16
+
17
+ //#endregion
18
+ export { __exportAll };
@@ -1,6 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
2
3
 
3
4
  //#region src/arg-identity.ts
5
+ var arg_identity_exports = /* @__PURE__ */ require_runtime.__exportAll({ argIdentity: () => argIdentity });
4
6
  /**
5
7
  * This method returns the first argument provided to it.
6
8
  *
@@ -15,4 +17,10 @@ function argIdentity(value) {
15
17
  }
16
18
 
17
19
  //#endregion
18
- exports.argIdentity = argIdentity;
20
+ exports.argIdentity = argIdentity;
21
+ Object.defineProperty(exports, 'arg_identity_exports', {
22
+ enumerable: true,
23
+ get: function () {
24
+ return arg_identity_exports;
25
+ }
26
+ });
@@ -1,4 +1,7 @@
1
+ import { __exportAll } from "./_virtual/_rolldown/runtime.mjs";
2
+
1
3
  //#region src/arg-identity.ts
4
+ var arg_identity_exports = /* @__PURE__ */ __exportAll({ argIdentity: () => argIdentity });
2
5
  /**
3
6
  * This method returns the first argument provided to it.
4
7
  *
@@ -13,5 +16,5 @@ function argIdentity(value) {
13
16
  }
14
17
 
15
18
  //#endregion
16
- export { argIdentity };
19
+ export { argIdentity, arg_identity_exports };
17
20
  //# sourceMappingURL=arg-identity.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"arg-identity.mjs","names":[],"sources":["../src/arg-identity.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\n/**\n * This method returns the first argument provided to it.\n *\n * @remarks\n * For more info, please see {@link https://lodash.com/docs/4.17.15#identity | the original Lodash documentation}.\n *\n * @param value - The value to return.\n * @returns The value provided.\n */\nexport function argIdentity(value: any) {\n return value;\n}\n"],"mappings":";;;;;;;;;;AA2BA,SAAgB,YAAY,OAAY;AACtC,QAAO"}
1
+ {"version":3,"file":"arg-identity.mjs","names":[],"sources":["../src/arg-identity.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\n/**\n * This method returns the first argument provided to it.\n *\n * @remarks\n * For more info, please see {@link https://lodash.com/docs/4.17.15#identity | the original Lodash documentation}.\n *\n * @param value - The value to return.\n * @returns The value provided.\n */\nexport function argIdentity(value: any) {\n return value;\n}\n"],"mappings":";;;;;;;;;;;;;AA2BA,SAAgB,YAAY,OAAY;AACtC,QAAO"}
@@ -0,0 +1,12 @@
1
+ const require_arg_identity = require('./arg-identity.cjs');
2
+ let vitest = require("vitest");
3
+
4
+ //#region src/arg-identity.test.ts
5
+ (0, vitest.describe)("arg-identity.ts exports", () => {
6
+ (0, vitest.it)("loads module exports", () => {
7
+ (0, vitest.expect)(require_arg_identity.arg_identity_exports).toBeDefined();
8
+ (0, vitest.expect)(typeof require_arg_identity.arg_identity_exports).toBe("object");
9
+ });
10
+ });
11
+
12
+ //#endregion
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,14 @@
1
+ import { arg_identity_exports } from "./arg-identity.mjs";
2
+ import { describe, expect, it } from "vitest";
3
+
4
+ //#region src/arg-identity.test.ts
5
+ describe("arg-identity.ts exports", () => {
6
+ it("loads module exports", () => {
7
+ expect(arg_identity_exports).toBeDefined();
8
+ expect(typeof arg_identity_exports).toBe("object");
9
+ });
10
+ });
11
+
12
+ //#endregion
13
+ export { };
14
+ //# sourceMappingURL=arg-identity.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arg-identity.test.mjs","names":["moduleExports"],"sources":["../src/arg-identity.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport * as moduleExports from \"./arg-identity.ts\";\n\ndescribe(\"arg-identity.ts exports\", () => {\n it(\"loads module exports\", () => {\n expect(moduleExports).toBeDefined();\n expect(typeof moduleExports).toBe(\"object\");\n });\n});\n"],"mappings":";;;;AAGA,SAAS,iCAAiC;AACxC,IAAG,8BAA8B;AAC/B,SAAOA,qBAAc,CAAC,aAAa;AACnC,SAAO,OAAOA,qBAAc,CAAC,KAAK,SAAS;GAC3C;EACF"}
@@ -1,7 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
2
3
  let _stryke_type_checks = require("@stryke/type-checks");
3
4
 
4
5
  //#region src/deep-clone.ts
6
+ var deep_clone_exports = /* @__PURE__ */ require_runtime.__exportAll({ deepClone: () => deepClone });
5
7
  /**
6
8
  * Creates a deep clone of the given object.
7
9
  *
@@ -110,4 +112,10 @@ function cloneDeepHelper(obj, clonedObj) {
110
112
  }
111
113
 
112
114
  //#endregion
113
- exports.deepClone = deepClone;
115
+ exports.deepClone = deepClone;
116
+ Object.defineProperty(exports, 'deep_clone_exports', {
117
+ enumerable: true,
118
+ get: function () {
119
+ return deep_clone_exports;
120
+ }
121
+ });
@@ -1,6 +1,8 @@
1
+ import { __exportAll } from "./_virtual/_rolldown/runtime.mjs";
1
2
  import { isPrimitive, isTypedArray } from "@stryke/type-checks";
2
3
 
3
4
  //#region src/deep-clone.ts
5
+ var deep_clone_exports = /* @__PURE__ */ __exportAll({ deepClone: () => deepClone });
4
6
  /**
5
7
  * Creates a deep clone of the given object.
6
8
  *
@@ -109,5 +111,5 @@ function cloneDeepHelper(obj, clonedObj) {
109
111
  }
110
112
 
111
113
  //#endregion
112
- export { deepClone };
114
+ export { deepClone, deep_clone_exports };
113
115
  //# sourceMappingURL=deep-clone.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"deep-clone.mjs","names":[],"sources":["../src/deep-clone.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { isPrimitive, isTypedArray } from \"@stryke/type-checks\";\n\nexport type Resolved<T> =\n Equal<T, ResolvedMain<T>> extends true ? T : ResolvedMain<T>;\n\ntype Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;\n\ntype ResolvedMain<T> = T extends [never]\n ? never // (special trick for jsonable | null) type\n : ValueOf<T> extends boolean | number | bigint | string\n ? ValueOf<T>\n : T extends (...args: any[]) => any\n ? never\n : T extends object\n ? ResolvedObject<T>\n : ValueOf<T>;\n\ntype ResolvedObject<T extends object> = T extends (infer U)[]\n ? IsTuple<T> extends true\n ? ResolvedTuple<T>\n : ResolvedMain<U>[]\n : T extends Set<infer U>\n ? Set<ResolvedMain<U>>\n : T extends Map<infer K, infer V>\n ? Map<ResolvedMain<K>, ResolvedMain<V>>\n : T extends WeakSet<any> | WeakMap<any, any>\n ? never\n : T extends\n | Date\n | Uint8Array\n | Uint8ClampedArray\n | Uint16Array\n | Uint32Array\n | BigUint64Array\n | Int8Array\n | Int16Array\n | Int32Array\n | BigInt64Array\n | Float32Array\n | Float64Array\n | ArrayBuffer\n | SharedArrayBuffer\n | DataView\n | Blob\n | File\n ? T\n : {\n [P in keyof T]: ResolvedMain<T[P]>;\n };\n\ntype ResolvedTuple<T extends readonly any[]> = T extends []\n ? []\n : T extends [infer F]\n ? [ResolvedMain<F>]\n : T extends [infer F, ...infer Rest extends readonly any[]]\n ? [ResolvedMain<F>, ...ResolvedTuple<Rest>]\n : T extends [(infer F)?]\n ? [ResolvedMain<F>?]\n : T extends [(infer F)?, ...infer Rest extends readonly any[]]\n ? [ResolvedMain<F>?, ...ResolvedTuple<Rest>]\n : [];\n\ntype IsTuple<T extends readonly any[] | { length: number }> = [T] extends [\n never\n]\n ? false\n : T extends readonly any[]\n ? number extends T[\"length\"]\n ? false\n : true\n : false;\n\ntype ValueOf<Instance> =\n IsValueOf<Instance, boolean> extends true\n ? boolean\n : IsValueOf<Instance, number> extends true\n ? number\n : IsValueOf<Instance, string> extends true\n ? string\n : Instance;\n\ntype IsValueOf<Instance, O extends ValueOfInterface<any>> = Instance extends O\n ? O extends ValueOfInterface<infer Primitive>\n ? Instance extends Primitive\n ? false\n : true // not Primitive, but Object\n : false // cannot be\n : false;\n\ninterface ValueOfInterface<T> {\n valueOf: () => T;\n}\n\n/**\n * Creates a deep clone of the given object.\n *\n * @remarks\n * This function creates a deep clone of the given object, including nested objects and arrays. The resulting output will be of type `Resolved<T>`, which is a type that resolves to the most specific type possible for the given input type `T`. **If you are just looking for a way to copy an object deeply, use {@link deepCopy} instead.**\n *\n * @example\n * ```typescript\n * // Clone a primitive values\n * const num = 29;\n * const clonedNum = clone(num);\n * console.log(clonedNum); // 29\n * console.log(clonedNum === num) ; // true\n *\n * // Clone an array\n * const arr = [1, 2, 3];\n * const clonedArr = clone(arr);\n * console.log(clonedArr); // [1, 2, 3]\n * console.log(clonedArr === arr); // false\n *\n * // Clone an array with nested objects\n * const arr = [1, { a: 1 }, [1, 2, 3]];\n * const clonedArr = clone(arr);\n * arr[1].a = 2;\n * console.log(arr); // [2, { a: 2 }, [1, 2, 3]]\n * console.log(clonedArr); // [1, { a: 1 }, [1, 2, 3]]\n * console.log(clonedArr === arr); // false\n *\n * // Clone an object\n * const obj = { a: 1, b: 'es-toolkit', c: [1, 2, 3] };\n * const clonedObj = clone(obj);\n * console.log(clonedObj); // { a: 1, b: 'es-toolkit', c: [1, 2, 3] }\n * console.log(clonedObj === obj); // false\n *\n *\n * // Clone an object with nested objects\n * const obj = { a: 1, b: { c: 1 } };\n * const clonedObj = clone(obj);\n * obj.b.c = 2;\n * console.log(obj); // { a: 1, b: { c: 2 } }\n * console.log(clonedObj); // { a: 1, b: { c: 1 } }\n * console.log(clonedObj === obj); // false\n * ```\n *\n * @param obj - The object to clone.\n * @returns A deep clone of the given object.\n */\nexport function deepClone<T>(obj: T): Resolved<T> {\n if (isPrimitive(obj)) {\n return obj as Resolved<T>;\n }\n\n if (Array.isArray(obj)) {\n return obj.map(item => deepClone(item)) as Resolved<T>;\n }\n\n if (obj instanceof Date) {\n return new Date(obj.getTime()) as Resolved<T>;\n }\n\n if (obj instanceof RegExp) {\n return new RegExp(obj.source, obj.flags) as Resolved<T>;\n }\n\n if (obj instanceof Map) {\n const result = new Map();\n for (const [key, value] of obj.entries()) {\n result.set(key, deepClone(value));\n }\n return result as Resolved<T>;\n }\n\n if (obj instanceof Set) {\n const result = new Set();\n for (const value of obj.values()) {\n result.add(deepClone(value));\n }\n return result as Resolved<T>;\n }\n\n if (isTypedArray(obj)) {\n // eslint-disable-next-line ts/no-unsafe-call\n const result = new (Object.getPrototypeOf(obj).constructor)(obj.length);\n\n for (const [i, element] of obj.entries()) {\n result[i] = deepClone(element);\n }\n return result as Resolved<T>;\n }\n\n if (\n obj instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== \"undefined\" &&\n obj instanceof SharedArrayBuffer)\n ) {\n return [...(obj as any)] as Resolved<T>;\n }\n\n if (obj instanceof DataView) {\n const result = new DataView([...(obj.buffer as any)] as any);\n cloneDeepHelper(obj, result);\n return result as Resolved<T>;\n }\n\n // For legacy NodeJS support\n if (typeof File !== \"undefined\" && obj instanceof File) {\n const result = new File([obj], obj.name, { type: obj.type });\n cloneDeepHelper(obj, result);\n return result as Resolved<T>;\n }\n\n if (obj instanceof Blob) {\n const result = new Blob([obj], { type: obj.type });\n cloneDeepHelper(obj, result);\n return result as Resolved<T>;\n }\n\n if (obj instanceof Error) {\n const result = new (obj.constructor as new () => Error)();\n result.message = obj.message;\n result.name = obj.name;\n result.stack = obj.stack;\n result.cause = obj.cause;\n cloneDeepHelper(obj, result);\n return result as Resolved<T>;\n }\n\n if (typeof obj === \"object\" && obj !== null) {\n const result = {};\n cloneDeepHelper(obj, result);\n return result as Resolved<T>;\n }\n\n return obj as Resolved<T>;\n}\n\nfunction cloneDeepHelper(obj: any, clonedObj: any): void {\n const keys = Object.keys(obj);\n\n for (const key of keys) {\n const descriptor = Object.getOwnPropertyDescriptor(obj, key);\n\n if (descriptor?.writable || descriptor?.set) {\n clonedObj[key] = deepClone(obj[key]);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8JA,SAAgB,UAAa,KAAqB;AAChD,KAAI,YAAY,IAAI,CAClB,QAAO;AAGT,KAAI,MAAM,QAAQ,IAAI,CACpB,QAAO,IAAI,KAAI,SAAQ,UAAU,KAAK,CAAC;AAGzC,KAAI,eAAe,KACjB,QAAO,IAAI,KAAK,IAAI,SAAS,CAAC;AAGhC,KAAI,eAAe,OACjB,QAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,MAAM;AAG1C,KAAI,eAAe,KAAK;EACtB,MAAM,yBAAS,IAAI,KAAK;AACxB,OAAK,MAAM,CAAC,KAAK,UAAU,IAAI,SAAS,CACtC,QAAO,IAAI,KAAK,UAAU,MAAM,CAAC;AAEnC,SAAO;;AAGT,KAAI,eAAe,KAAK;EACtB,MAAM,yBAAS,IAAI,KAAK;AACxB,OAAK,MAAM,SAAS,IAAI,QAAQ,CAC9B,QAAO,IAAI,UAAU,MAAM,CAAC;AAE9B,SAAO;;AAGT,KAAI,aAAa,IAAI,EAAE;EAErB,MAAM,SAAS,KAAK,OAAO,eAAe,IAAI,EAAC,YAAa,IAAI,OAAO;AAEvE,OAAK,MAAM,CAAC,GAAG,YAAY,IAAI,SAAS,CACtC,QAAO,KAAK,UAAU,QAAQ;AAEhC,SAAO;;AAGT,KACE,eAAe,eACd,OAAO,sBAAsB,eAC5B,eAAe,kBAEjB,QAAO,CAAC,GAAI,IAAY;AAG1B,KAAI,eAAe,UAAU;EAC3B,MAAM,SAAS,IAAI,SAAS,CAAC,GAAI,IAAI,OAAe,CAAQ;AAC5D,kBAAgB,KAAK,OAAO;AAC5B,SAAO;;AAIT,KAAI,OAAO,SAAS,eAAe,eAAe,MAAM;EACtD,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC;AAC5D,kBAAgB,KAAK,OAAO;AAC5B,SAAO;;AAGT,KAAI,eAAe,MAAM;EACvB,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,MAAM,CAAC;AAClD,kBAAgB,KAAK,OAAO;AAC5B,SAAO;;AAGT,KAAI,eAAe,OAAO;EACxB,MAAM,SAAS,IAAK,IAAI,aAAiC;AACzD,SAAO,UAAU,IAAI;AACrB,SAAO,OAAO,IAAI;AAClB,SAAO,QAAQ,IAAI;AACnB,SAAO,QAAQ,IAAI;AACnB,kBAAgB,KAAK,OAAO;AAC5B,SAAO;;AAGT,KAAI,OAAO,QAAQ,YAAY,QAAQ,MAAM;EAC3C,MAAM,SAAS,EAAE;AACjB,kBAAgB,KAAK,OAAO;AAC5B,SAAO;;AAGT,QAAO;;AAGT,SAAS,gBAAgB,KAAU,WAAsB;CACvD,MAAM,OAAO,OAAO,KAAK,IAAI;AAE7B,MAAK,MAAM,OAAO,MAAM;EACtB,MAAM,aAAa,OAAO,yBAAyB,KAAK,IAAI;AAE5D,MAAI,YAAY,YAAY,YAAY,IACtC,WAAU,OAAO,UAAU,IAAI,KAAK"}
1
+ {"version":3,"file":"deep-clone.mjs","names":[],"sources":["../src/deep-clone.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { isPrimitive, isTypedArray } from \"@stryke/type-checks\";\n\nexport type Resolved<T> =\n Equal<T, ResolvedMain<T>> extends true ? T : ResolvedMain<T>;\n\ntype Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;\n\ntype ResolvedMain<T> = T extends [never]\n ? never // (special trick for jsonable | null) type\n : ValueOf<T> extends boolean | number | bigint | string\n ? ValueOf<T>\n : T extends (...args: any[]) => any\n ? never\n : T extends object\n ? ResolvedObject<T>\n : ValueOf<T>;\n\ntype ResolvedObject<T extends object> = T extends (infer U)[]\n ? IsTuple<T> extends true\n ? ResolvedTuple<T>\n : ResolvedMain<U>[]\n : T extends Set<infer U>\n ? Set<ResolvedMain<U>>\n : T extends Map<infer K, infer V>\n ? Map<ResolvedMain<K>, ResolvedMain<V>>\n : T extends WeakSet<any> | WeakMap<any, any>\n ? never\n : T extends\n | Date\n | Uint8Array\n | Uint8ClampedArray\n | Uint16Array\n | Uint32Array\n | BigUint64Array\n | Int8Array\n | Int16Array\n | Int32Array\n | BigInt64Array\n | Float32Array\n | Float64Array\n | ArrayBuffer\n | SharedArrayBuffer\n | DataView\n | Blob\n | File\n ? T\n : {\n [P in keyof T]: ResolvedMain<T[P]>;\n };\n\ntype ResolvedTuple<T extends readonly any[]> = T extends []\n ? []\n : T extends [infer F]\n ? [ResolvedMain<F>]\n : T extends [infer F, ...infer Rest extends readonly any[]]\n ? [ResolvedMain<F>, ...ResolvedTuple<Rest>]\n : T extends [(infer F)?]\n ? [ResolvedMain<F>?]\n : T extends [(infer F)?, ...infer Rest extends readonly any[]]\n ? [ResolvedMain<F>?, ...ResolvedTuple<Rest>]\n : [];\n\ntype IsTuple<T extends readonly any[] | { length: number }> = [T] extends [\n never\n]\n ? false\n : T extends readonly any[]\n ? number extends T[\"length\"]\n ? false\n : true\n : false;\n\ntype ValueOf<Instance> =\n IsValueOf<Instance, boolean> extends true\n ? boolean\n : IsValueOf<Instance, number> extends true\n ? number\n : IsValueOf<Instance, string> extends true\n ? string\n : Instance;\n\ntype IsValueOf<Instance, O extends ValueOfInterface<any>> = Instance extends O\n ? O extends ValueOfInterface<infer Primitive>\n ? Instance extends Primitive\n ? false\n : true // not Primitive, but Object\n : false // cannot be\n : false;\n\ninterface ValueOfInterface<T> {\n valueOf: () => T;\n}\n\n/**\n * Creates a deep clone of the given object.\n *\n * @remarks\n * This function creates a deep clone of the given object, including nested objects and arrays. The resulting output will be of type `Resolved<T>`, which is a type that resolves to the most specific type possible for the given input type `T`. **If you are just looking for a way to copy an object deeply, use {@link deepCopy} instead.**\n *\n * @example\n * ```typescript\n * // Clone a primitive values\n * const num = 29;\n * const clonedNum = clone(num);\n * console.log(clonedNum); // 29\n * console.log(clonedNum === num) ; // true\n *\n * // Clone an array\n * const arr = [1, 2, 3];\n * const clonedArr = clone(arr);\n * console.log(clonedArr); // [1, 2, 3]\n * console.log(clonedArr === arr); // false\n *\n * // Clone an array with nested objects\n * const arr = [1, { a: 1 }, [1, 2, 3]];\n * const clonedArr = clone(arr);\n * arr[1].a = 2;\n * console.log(arr); // [2, { a: 2 }, [1, 2, 3]]\n * console.log(clonedArr); // [1, { a: 1 }, [1, 2, 3]]\n * console.log(clonedArr === arr); // false\n *\n * // Clone an object\n * const obj = { a: 1, b: 'es-toolkit', c: [1, 2, 3] };\n * const clonedObj = clone(obj);\n * console.log(clonedObj); // { a: 1, b: 'es-toolkit', c: [1, 2, 3] }\n * console.log(clonedObj === obj); // false\n *\n *\n * // Clone an object with nested objects\n * const obj = { a: 1, b: { c: 1 } };\n * const clonedObj = clone(obj);\n * obj.b.c = 2;\n * console.log(obj); // { a: 1, b: { c: 2 } }\n * console.log(clonedObj); // { a: 1, b: { c: 1 } }\n * console.log(clonedObj === obj); // false\n * ```\n *\n * @param obj - The object to clone.\n * @returns A deep clone of the given object.\n */\nexport function deepClone<T>(obj: T): Resolved<T> {\n if (isPrimitive(obj)) {\n return obj as Resolved<T>;\n }\n\n if (Array.isArray(obj)) {\n return obj.map(item => deepClone(item)) as Resolved<T>;\n }\n\n if (obj instanceof Date) {\n return new Date(obj.getTime()) as Resolved<T>;\n }\n\n if (obj instanceof RegExp) {\n return new RegExp(obj.source, obj.flags) as Resolved<T>;\n }\n\n if (obj instanceof Map) {\n const result = new Map();\n for (const [key, value] of obj.entries()) {\n result.set(key, deepClone(value));\n }\n return result as Resolved<T>;\n }\n\n if (obj instanceof Set) {\n const result = new Set();\n for (const value of obj.values()) {\n result.add(deepClone(value));\n }\n return result as Resolved<T>;\n }\n\n if (isTypedArray(obj)) {\n // eslint-disable-next-line ts/no-unsafe-call\n const result = new (Object.getPrototypeOf(obj).constructor)(obj.length);\n\n for (const [i, element] of obj.entries()) {\n result[i] = deepClone(element);\n }\n return result as Resolved<T>;\n }\n\n if (\n obj instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== \"undefined\" &&\n obj instanceof SharedArrayBuffer)\n ) {\n return [...(obj as any)] as Resolved<T>;\n }\n\n if (obj instanceof DataView) {\n const result = new DataView([...(obj.buffer as any)] as any);\n cloneDeepHelper(obj, result);\n return result as Resolved<T>;\n }\n\n // For legacy NodeJS support\n if (typeof File !== \"undefined\" && obj instanceof File) {\n const result = new File([obj], obj.name, { type: obj.type });\n cloneDeepHelper(obj, result);\n return result as Resolved<T>;\n }\n\n if (obj instanceof Blob) {\n const result = new Blob([obj], { type: obj.type });\n cloneDeepHelper(obj, result);\n return result as Resolved<T>;\n }\n\n if (obj instanceof Error) {\n const result = new (obj.constructor as new () => Error)();\n result.message = obj.message;\n result.name = obj.name;\n result.stack = obj.stack;\n result.cause = obj.cause;\n cloneDeepHelper(obj, result);\n return result as Resolved<T>;\n }\n\n if (typeof obj === \"object\" && obj !== null) {\n const result = {};\n cloneDeepHelper(obj, result);\n return result as Resolved<T>;\n }\n\n return obj as Resolved<T>;\n}\n\nfunction cloneDeepHelper(obj: any, clonedObj: any): void {\n const keys = Object.keys(obj);\n\n for (const key of keys) {\n const descriptor = Object.getOwnPropertyDescriptor(obj, key);\n\n if (descriptor?.writable || descriptor?.set) {\n clonedObj[key] = deepClone(obj[key]);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8JA,SAAgB,UAAa,KAAqB;AAChD,KAAI,YAAY,IAAI,CAClB,QAAO;AAGT,KAAI,MAAM,QAAQ,IAAI,CACpB,QAAO,IAAI,KAAI,SAAQ,UAAU,KAAK,CAAC;AAGzC,KAAI,eAAe,KACjB,QAAO,IAAI,KAAK,IAAI,SAAS,CAAC;AAGhC,KAAI,eAAe,OACjB,QAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,MAAM;AAG1C,KAAI,eAAe,KAAK;EACtB,MAAM,yBAAS,IAAI,KAAK;AACxB,OAAK,MAAM,CAAC,KAAK,UAAU,IAAI,SAAS,CACtC,QAAO,IAAI,KAAK,UAAU,MAAM,CAAC;AAEnC,SAAO;;AAGT,KAAI,eAAe,KAAK;EACtB,MAAM,yBAAS,IAAI,KAAK;AACxB,OAAK,MAAM,SAAS,IAAI,QAAQ,CAC9B,QAAO,IAAI,UAAU,MAAM,CAAC;AAE9B,SAAO;;AAGT,KAAI,aAAa,IAAI,EAAE;EAErB,MAAM,SAAS,KAAK,OAAO,eAAe,IAAI,EAAC,YAAa,IAAI,OAAO;AAEvE,OAAK,MAAM,CAAC,GAAG,YAAY,IAAI,SAAS,CACtC,QAAO,KAAK,UAAU,QAAQ;AAEhC,SAAO;;AAGT,KACE,eAAe,eACd,OAAO,sBAAsB,eAC5B,eAAe,kBAEjB,QAAO,CAAC,GAAI,IAAY;AAG1B,KAAI,eAAe,UAAU;EAC3B,MAAM,SAAS,IAAI,SAAS,CAAC,GAAI,IAAI,OAAe,CAAQ;AAC5D,kBAAgB,KAAK,OAAO;AAC5B,SAAO;;AAIT,KAAI,OAAO,SAAS,eAAe,eAAe,MAAM;EACtD,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC;AAC5D,kBAAgB,KAAK,OAAO;AAC5B,SAAO;;AAGT,KAAI,eAAe,MAAM;EACvB,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,MAAM,CAAC;AAClD,kBAAgB,KAAK,OAAO;AAC5B,SAAO;;AAGT,KAAI,eAAe,OAAO;EACxB,MAAM,SAAS,IAAK,IAAI,aAAiC;AACzD,SAAO,UAAU,IAAI;AACrB,SAAO,OAAO,IAAI;AAClB,SAAO,QAAQ,IAAI;AACnB,SAAO,QAAQ,IAAI;AACnB,kBAAgB,KAAK,OAAO;AAC5B,SAAO;;AAGT,KAAI,OAAO,QAAQ,YAAY,QAAQ,MAAM;EAC3C,MAAM,SAAS,EAAE;AACjB,kBAAgB,KAAK,OAAO;AAC5B,SAAO;;AAGT,QAAO;;AAGT,SAAS,gBAAgB,KAAU,WAAsB;CACvD,MAAM,OAAO,OAAO,KAAK,IAAI;AAE7B,MAAK,MAAM,OAAO,MAAM;EACtB,MAAM,aAAa,OAAO,yBAAyB,KAAK,IAAI;AAE5D,MAAI,YAAY,YAAY,YAAY,IACtC,WAAU,OAAO,UAAU,IAAI,KAAK"}
@@ -0,0 +1,12 @@
1
+ const require_deep_clone = require('./deep-clone.cjs');
2
+ let vitest = require("vitest");
3
+
4
+ //#region src/deep-clone.test.ts
5
+ (0, vitest.describe)("deep-clone.ts exports", () => {
6
+ (0, vitest.it)("loads module exports", () => {
7
+ (0, vitest.expect)(require_deep_clone.deep_clone_exports).toBeDefined();
8
+ (0, vitest.expect)(typeof require_deep_clone.deep_clone_exports).toBe("object");
9
+ });
10
+ });
11
+
12
+ //#endregion
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,14 @@
1
+ import { deep_clone_exports } from "./deep-clone.mjs";
2
+ import { describe, expect, it } from "vitest";
3
+
4
+ //#region src/deep-clone.test.ts
5
+ describe("deep-clone.ts exports", () => {
6
+ it("loads module exports", () => {
7
+ expect(deep_clone_exports).toBeDefined();
8
+ expect(typeof deep_clone_exports).toBe("object");
9
+ });
10
+ });
11
+
12
+ //#endregion
13
+ export { };
14
+ //# sourceMappingURL=deep-clone.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-clone.test.mjs","names":["moduleExports"],"sources":["../src/deep-clone.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport * as moduleExports from \"./deep-clone.ts\";\n\ndescribe(\"deep-clone.ts exports\", () => {\n it(\"loads module exports\", () => {\n expect(moduleExports).toBeDefined();\n expect(typeof moduleExports).toBe(\"object\");\n });\n});\n"],"mappings":";;;;AAGA,SAAS,+BAA+B;AACtC,IAAG,8BAA8B;AAC/B,SAAOA,mBAAc,CAAC,aAAa;AACnC,SAAO,OAAOA,mBAAc,CAAC,KAAK,SAAS;GAC3C;EACF"}
@@ -1,9 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
2
3
  let _stryke_type_checks_is_function = require("@stryke/type-checks/is-function");
3
4
  let _stryke_type_checks_is_mergeable_object = require("@stryke/type-checks/is-mergeable-object");
4
5
  let _stryke_type_checks_property_exists = require("@stryke/type-checks/property-exists");
5
6
 
6
7
  //#region src/deep-merge.ts
8
+ var deep_merge_exports = /* @__PURE__ */ require_runtime.__exportAll({ deepMerge: () => deepMerge });
7
9
  const emptyTarget = (val) => {
8
10
  return Array.isArray(val) ? [] : {};
9
11
  };
@@ -58,4 +60,10 @@ deepMerge.all = function deepMergeAll(array, options) {
58
60
  };
59
61
 
60
62
  //#endregion
61
- exports.deepMerge = deepMerge;
63
+ exports.deepMerge = deepMerge;
64
+ Object.defineProperty(exports, 'deep_merge_exports', {
65
+ enumerable: true,
66
+ get: function () {
67
+ return deep_merge_exports;
68
+ }
69
+ });
@@ -1,8 +1,10 @@
1
+ import { __exportAll } from "./_virtual/_rolldown/runtime.mjs";
1
2
  import { isFunction } from "@stryke/type-checks/is-function";
2
3
  import { isMergeableObject } from "@stryke/type-checks/is-mergeable-object";
3
4
  import { propertyUnsafe } from "@stryke/type-checks/property-exists";
4
5
 
5
6
  //#region src/deep-merge.ts
7
+ var deep_merge_exports = /* @__PURE__ */ __exportAll({ deepMerge: () => deepMerge });
6
8
  const emptyTarget = (val) => {
7
9
  return Array.isArray(val) ? [] : {};
8
10
  };
@@ -57,5 +59,5 @@ deepMerge.all = function deepMergeAll(array, options) {
57
59
  };
58
60
 
59
61
  //#endregion
60
- export { deepMerge };
62
+ export { deepMerge, deep_merge_exports };
61
63
  //# sourceMappingURL=deep-merge.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"deep-merge.mjs","names":[],"sources":["../src/deep-merge.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isMergeableObject } from \"@stryke/type-checks/is-mergeable-object\";\nimport { propertyUnsafe } from \"@stryke/type-checks/property-exists\";\n\nconst emptyTarget = (val: any) => {\n return Array.isArray(val) ? [] : {};\n};\n\nconst cloneUnlessOtherwiseSpecified = (\n value: any,\n options: {\n clone?: boolean;\n isMergeableObject: (value: any) => boolean;\n }\n) => {\n return options.clone !== false && options.isMergeableObject(value)\n ? deepMerge(emptyTarget(value), value, options)\n : value;\n};\n\nconst defaultArrayMerge = (target: any[], source: any[], options?: any) => {\n return [...target, ...source].map(element => {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n};\n\nconst getMergeFunction = (\n key: string,\n options: {\n customMerge?: (key: string) => any;\n }\n) => {\n if (!options.customMerge) {\n return deepMerge;\n }\n const customMerge = options.customMerge(key);\n\n return isFunction(customMerge) ? customMerge : deepMerge;\n};\n\nconst getKeys = (target: Record<string, any>) => {\n return [\n ...Object.keys(target),\n ...((Object.getOwnPropertySymbols\n ? Object.getOwnPropertySymbols(target).filter(symbol => {\n return Object.propertyIsEnumerable.call(target, symbol);\n })\n : []) as unknown as string[])\n ];\n};\n\nconst mergeObject = (\n target: Record<string, any>,\n source: Record<string, any>,\n options: {\n clone?: boolean;\n customMerge?: (key: string) => any;\n isMergeableObject: (value: any) => boolean;\n cloneUnlessOtherwiseSpecified?: (\n value: any,\n options: {\n clone: boolean;\n isMergeableObject: (value: any) => boolean;\n }\n ) => any;\n }\n) => {\n const destination: Record<string, any> = {};\n if (options.isMergeableObject(target)) {\n for (const key of getKeys(target)) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n }\n }\n for (const key of getKeys(source)) {\n destination[key] =\n propertyUnsafe(target, key) && options.isMergeableObject(source[key])\n ? getMergeFunction(key, options)(target[key], source[key], options)\n : cloneUnlessOtherwiseSpecified(source[key], options);\n }\n return destination;\n};\n\nexport interface DeepMergeOptions {\n clone?: boolean;\n customMerge?: (key: string) => any;\n isMergeableObject: (value: any) => boolean;\n cloneUnlessOtherwiseSpecified: (\n value: any,\n options: {\n clone?: boolean;\n isMergeableObject: (value: any) => boolean;\n }\n ) => any;\n arrayMerge: (target: any[], source: any[], options: any) => any;\n}\n\n/**\n * Deep merge two objects\n *\n * @param target - The target object\n * @param source - The source object\n * @param options - The options object\n * @returns The merged object\n */\nexport function deepMerge<X = any | any[], Y = any | any[], Z = X & Y>(\n target: X,\n source: Y,\n options?: Partial<DeepMergeOptions>\n): Z {\n if (!target || !source) {\n return (target || source) as Z;\n }\n\n const opts = (options ?? {}) as DeepMergeOptions;\n opts.arrayMerge ??= defaultArrayMerge;\n opts.isMergeableObject ??= isMergeableObject;\n // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n opts.cloneUnlessOtherwiseSpecified ??= cloneUnlessOtherwiseSpecified;\n\n const sourceIsArray = Array.isArray(source);\n const targetIsArray = Array.isArray(target);\n const sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, opts);\n }\n if (sourceIsArray) {\n return opts.arrayMerge(target as any[], source, opts);\n }\n return mergeObject(target, source, opts) as Z;\n}\n\ndeepMerge.all = function deepMergeAll(array: any[], options?: any) {\n if (!Array.isArray(array)) {\n throw new TypeError(\"first argument should be an array\");\n }\n\n return array.reduce((prev, next) => {\n return deepMerge(prev, next, options);\n }, {});\n};\n"],"mappings":";;;;;AAsBA,MAAM,eAAe,QAAa;AAChC,QAAO,MAAM,QAAQ,IAAI,GAAG,EAAE,GAAG,EAAE;;AAGrC,MAAM,iCACJ,OACA,YAIG;AACH,QAAO,QAAQ,UAAU,SAAS,QAAQ,kBAAkB,MAAM,GAC9D,UAAU,YAAY,MAAM,EAAE,OAAO,QAAQ,GAC7C;;AAGN,MAAM,qBAAqB,QAAe,QAAe,YAAkB;AACzE,QAAO,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,KAAI,YAAW;AAC3C,SAAO,8BAA8B,SAAS,QAAQ;GACtD;;AAGJ,MAAM,oBACJ,KACA,YAGG;AACH,KAAI,CAAC,QAAQ,YACX,QAAO;CAET,MAAM,cAAc,QAAQ,YAAY,IAAI;AAE5C,QAAO,WAAW,YAAY,GAAG,cAAc;;AAGjD,MAAM,WAAW,WAAgC;AAC/C,QAAO,CACL,GAAG,OAAO,KAAK,OAAO,EACtB,GAAK,OAAO,wBACR,OAAO,sBAAsB,OAAO,CAAC,QAAO,WAAU;AACpD,SAAO,OAAO,qBAAqB,KAAK,QAAQ,OAAO;GACvD,GACF,EAAE,CACP;;AAGH,MAAM,eACJ,QACA,QACA,YAYG;CACH,MAAM,cAAmC,EAAE;AAC3C,KAAI,QAAQ,kBAAkB,OAAO,CACnC,MAAK,MAAM,OAAO,QAAQ,OAAO,CAC/B,aAAY,OAAO,8BAA8B,OAAO,MAAM,QAAQ;AAG1E,MAAK,MAAM,OAAO,QAAQ,OAAO,CAC/B,aAAY,OACV,eAAe,QAAQ,IAAI,IAAI,QAAQ,kBAAkB,OAAO,KAAK,GACjE,iBAAiB,KAAK,QAAQ,CAAC,OAAO,MAAM,OAAO,MAAM,QAAQ,GACjE,8BAA8B,OAAO,MAAM,QAAQ;AAE3D,QAAO;;;;;;;;;;AAyBT,SAAgB,UACd,QACA,QACA,SACG;AACH,KAAI,CAAC,UAAU,CAAC,OACd,QAAQ,UAAU;CAGpB,MAAM,OAAQ,WAAW,EAAE;AAC3B,MAAK,eAAe;AACpB,MAAK,sBAAsB;AAG3B,MAAK,kCAAkC;CAEvC,MAAM,gBAAgB,MAAM,QAAQ,OAAO;AAI3C,KAAI,EAF8B,kBADZ,MAAM,QAAQ,OAC6B,EAG/D,QAAO,8BAA8B,QAAQ,KAAK;AAEpD,KAAI,cACF,QAAO,KAAK,WAAW,QAAiB,QAAQ,KAAK;AAEvD,QAAO,YAAY,QAAQ,QAAQ,KAAK;;AAG1C,UAAU,MAAM,SAAS,aAAa,OAAc,SAAe;AACjE,KAAI,CAAC,MAAM,QAAQ,MAAM,CACvB,OAAM,IAAI,UAAU,oCAAoC;AAG1D,QAAO,MAAM,QAAQ,MAAM,SAAS;AAClC,SAAO,UAAU,MAAM,MAAM,QAAQ;IACpC,EAAE,CAAC"}
1
+ {"version":3,"file":"deep-merge.mjs","names":[],"sources":["../src/deep-merge.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isMergeableObject } from \"@stryke/type-checks/is-mergeable-object\";\nimport { propertyUnsafe } from \"@stryke/type-checks/property-exists\";\n\nconst emptyTarget = (val: any) => {\n return Array.isArray(val) ? [] : {};\n};\n\nconst cloneUnlessOtherwiseSpecified = (\n value: any,\n options: {\n clone?: boolean;\n isMergeableObject: (value: any) => boolean;\n }\n) => {\n return options.clone !== false && options.isMergeableObject(value)\n ? deepMerge(emptyTarget(value), value, options)\n : value;\n};\n\nconst defaultArrayMerge = (target: any[], source: any[], options?: any) => {\n return [...target, ...source].map(element => {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n};\n\nconst getMergeFunction = (\n key: string,\n options: {\n customMerge?: (key: string) => any;\n }\n) => {\n if (!options.customMerge) {\n return deepMerge;\n }\n const customMerge = options.customMerge(key);\n\n return isFunction(customMerge) ? customMerge : deepMerge;\n};\n\nconst getKeys = (target: Record<string, any>) => {\n return [\n ...Object.keys(target),\n ...((Object.getOwnPropertySymbols\n ? Object.getOwnPropertySymbols(target).filter(symbol => {\n return Object.propertyIsEnumerable.call(target, symbol);\n })\n : []) as unknown as string[])\n ];\n};\n\nconst mergeObject = (\n target: Record<string, any>,\n source: Record<string, any>,\n options: {\n clone?: boolean;\n customMerge?: (key: string) => any;\n isMergeableObject: (value: any) => boolean;\n cloneUnlessOtherwiseSpecified?: (\n value: any,\n options: {\n clone: boolean;\n isMergeableObject: (value: any) => boolean;\n }\n ) => any;\n }\n) => {\n const destination: Record<string, any> = {};\n if (options.isMergeableObject(target)) {\n for (const key of getKeys(target)) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n }\n }\n for (const key of getKeys(source)) {\n destination[key] =\n propertyUnsafe(target, key) && options.isMergeableObject(source[key])\n ? getMergeFunction(key, options)(target[key], source[key], options)\n : cloneUnlessOtherwiseSpecified(source[key], options);\n }\n return destination;\n};\n\nexport interface DeepMergeOptions {\n clone?: boolean;\n customMerge?: (key: string) => any;\n isMergeableObject: (value: any) => boolean;\n cloneUnlessOtherwiseSpecified: (\n value: any,\n options: {\n clone?: boolean;\n isMergeableObject: (value: any) => boolean;\n }\n ) => any;\n arrayMerge: (target: any[], source: any[], options: any) => any;\n}\n\n/**\n * Deep merge two objects\n *\n * @param target - The target object\n * @param source - The source object\n * @param options - The options object\n * @returns The merged object\n */\nexport function deepMerge<X = any | any[], Y = any | any[], Z = X & Y>(\n target: X,\n source: Y,\n options?: Partial<DeepMergeOptions>\n): Z {\n if (!target || !source) {\n return (target || source) as Z;\n }\n\n const opts = (options ?? {}) as DeepMergeOptions;\n opts.arrayMerge ??= defaultArrayMerge;\n opts.isMergeableObject ??= isMergeableObject;\n // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n opts.cloneUnlessOtherwiseSpecified ??= cloneUnlessOtherwiseSpecified;\n\n const sourceIsArray = Array.isArray(source);\n const targetIsArray = Array.isArray(target);\n const sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, opts);\n }\n if (sourceIsArray) {\n return opts.arrayMerge(target as any[], source, opts);\n }\n return mergeObject(target, source, opts) as Z;\n}\n\ndeepMerge.all = function deepMergeAll(array: any[], options?: any) {\n if (!Array.isArray(array)) {\n throw new TypeError(\"first argument should be an array\");\n }\n\n return array.reduce((prev, next) => {\n return deepMerge(prev, next, options);\n }, {});\n};\n"],"mappings":";;;;;;;AAsBA,MAAM,eAAe,QAAa;AAChC,QAAO,MAAM,QAAQ,IAAI,GAAG,EAAE,GAAG,EAAE;;AAGrC,MAAM,iCACJ,OACA,YAIG;AACH,QAAO,QAAQ,UAAU,SAAS,QAAQ,kBAAkB,MAAM,GAC9D,UAAU,YAAY,MAAM,EAAE,OAAO,QAAQ,GAC7C;;AAGN,MAAM,qBAAqB,QAAe,QAAe,YAAkB;AACzE,QAAO,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,KAAI,YAAW;AAC3C,SAAO,8BAA8B,SAAS,QAAQ;GACtD;;AAGJ,MAAM,oBACJ,KACA,YAGG;AACH,KAAI,CAAC,QAAQ,YACX,QAAO;CAET,MAAM,cAAc,QAAQ,YAAY,IAAI;AAE5C,QAAO,WAAW,YAAY,GAAG,cAAc;;AAGjD,MAAM,WAAW,WAAgC;AAC/C,QAAO,CACL,GAAG,OAAO,KAAK,OAAO,EACtB,GAAK,OAAO,wBACR,OAAO,sBAAsB,OAAO,CAAC,QAAO,WAAU;AACpD,SAAO,OAAO,qBAAqB,KAAK,QAAQ,OAAO;GACvD,GACF,EAAE,CACP;;AAGH,MAAM,eACJ,QACA,QACA,YAYG;CACH,MAAM,cAAmC,EAAE;AAC3C,KAAI,QAAQ,kBAAkB,OAAO,CACnC,MAAK,MAAM,OAAO,QAAQ,OAAO,CAC/B,aAAY,OAAO,8BAA8B,OAAO,MAAM,QAAQ;AAG1E,MAAK,MAAM,OAAO,QAAQ,OAAO,CAC/B,aAAY,OACV,eAAe,QAAQ,IAAI,IAAI,QAAQ,kBAAkB,OAAO,KAAK,GACjE,iBAAiB,KAAK,QAAQ,CAAC,OAAO,MAAM,OAAO,MAAM,QAAQ,GACjE,8BAA8B,OAAO,MAAM,QAAQ;AAE3D,QAAO;;;;;;;;;;AAyBT,SAAgB,UACd,QACA,QACA,SACG;AACH,KAAI,CAAC,UAAU,CAAC,OACd,QAAQ,UAAU;CAGpB,MAAM,OAAQ,WAAW,EAAE;AAC3B,MAAK,eAAe;AACpB,MAAK,sBAAsB;AAG3B,MAAK,kCAAkC;CAEvC,MAAM,gBAAgB,MAAM,QAAQ,OAAO;AAI3C,KAAI,EAF8B,kBADZ,MAAM,QAAQ,OAC6B,EAG/D,QAAO,8BAA8B,QAAQ,KAAK;AAEpD,KAAI,cACF,QAAO,KAAK,WAAW,QAAiB,QAAQ,KAAK;AAEvD,QAAO,YAAY,QAAQ,QAAQ,KAAK;;AAG1C,UAAU,MAAM,SAAS,aAAa,OAAc,SAAe;AACjE,KAAI,CAAC,MAAM,QAAQ,MAAM,CACvB,OAAM,IAAI,UAAU,oCAAoC;AAG1D,QAAO,MAAM,QAAQ,MAAM,SAAS;AAClC,SAAO,UAAU,MAAM,MAAM,QAAQ;IACpC,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ const require_deep_merge = require('./deep-merge.cjs');
2
+ let vitest = require("vitest");
3
+
4
+ //#region src/deep-merge.test.ts
5
+ (0, vitest.describe)("deep-merge.ts exports", () => {
6
+ (0, vitest.it)("loads module exports", () => {
7
+ (0, vitest.expect)(require_deep_merge.deep_merge_exports).toBeDefined();
8
+ (0, vitest.expect)(typeof require_deep_merge.deep_merge_exports).toBe("object");
9
+ });
10
+ });
11
+
12
+ //#endregion
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,14 @@
1
+ import { deep_merge_exports } from "./deep-merge.mjs";
2
+ import { describe, expect, it } from "vitest";
3
+
4
+ //#region src/deep-merge.test.ts
5
+ describe("deep-merge.ts exports", () => {
6
+ it("loads module exports", () => {
7
+ expect(deep_merge_exports).toBeDefined();
8
+ expect(typeof deep_merge_exports).toBe("object");
9
+ });
10
+ });
11
+
12
+ //#endregion
13
+ export { };
14
+ //# sourceMappingURL=deep-merge.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-merge.test.mjs","names":["moduleExports"],"sources":["../src/deep-merge.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport * as moduleExports from \"./deep-merge.ts\";\n\ndescribe(\"deep-merge.ts exports\", () => {\n it(\"loads module exports\", () => {\n expect(moduleExports).toBeDefined();\n expect(typeof moduleExports).toBe(\"object\");\n });\n});\n"],"mappings":";;;;AAGA,SAAS,+BAA+B;AACtC,IAAG,8BAA8B;AAC/B,SAAOA,mBAAc,CAAC,aAAa;AACnC,SAAO,OAAOA,mBAAc,CAAC,KAAK,SAAS;GAC3C;EACF"}
@@ -1,8 +1,16 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
2
3
  let _stryke_type_checks_is_empty = require("@stryke/type-checks/is-empty");
3
4
 
4
5
  //#region src/filter-empty.ts
6
+ var filter_empty_exports = /* @__PURE__ */ require_runtime.__exportAll({ filterEmpty: () => filterEmpty });
5
7
  const filterEmpty = (values = []) => values.filter((value) => !(0, _stryke_type_checks_is_empty.isEmpty)(value));
6
8
 
7
9
  //#endregion
8
- exports.filterEmpty = filterEmpty;
10
+ exports.filterEmpty = filterEmpty;
11
+ Object.defineProperty(exports, 'filter_empty_exports', {
12
+ enumerable: true,
13
+ get: function () {
14
+ return filter_empty_exports;
15
+ }
16
+ });
@@ -1,8 +1,10 @@
1
+ import { __exportAll } from "./_virtual/_rolldown/runtime.mjs";
1
2
  import { isEmpty } from "@stryke/type-checks/is-empty";
2
3
 
3
4
  //#region src/filter-empty.ts
5
+ var filter_empty_exports = /* @__PURE__ */ __exportAll({ filterEmpty: () => filterEmpty });
4
6
  const filterEmpty = (values = []) => values.filter((value) => !isEmpty(value));
5
7
 
6
8
  //#endregion
7
- export { filterEmpty };
9
+ export { filterEmpty, filter_empty_exports };
8
10
  //# sourceMappingURL=filter-empty.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-empty.mjs","names":[],"sources":["../src/filter-empty.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { isEmpty } from \"@stryke/type-checks/is-empty\";\n\nexport const filterEmpty = <T>(values: (T | null | undefined)[] = []): T[] =>\n values.filter(value => !isEmpty(value)) as T[];\n"],"mappings":";;;AAoBA,MAAa,eAAkB,SAAmC,EAAE,KAClE,OAAO,QAAO,UAAS,CAAC,QAAQ,MAAM,CAAC"}
1
+ {"version":3,"file":"filter-empty.mjs","names":[],"sources":["../src/filter-empty.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { isEmpty } from \"@stryke/type-checks/is-empty\";\n\nexport const filterEmpty = <T>(values: (T | null | undefined)[] = []): T[] =>\n values.filter(value => !isEmpty(value)) as T[];\n"],"mappings":";;;;;AAoBA,MAAa,eAAkB,SAAmC,EAAE,KAClE,OAAO,QAAO,UAAS,CAAC,QAAQ,MAAM,CAAC"}
@@ -0,0 +1,12 @@
1
+ const require_filter_empty = require('./filter-empty.cjs');
2
+ let vitest = require("vitest");
3
+
4
+ //#region src/filter-empty.test.ts
5
+ (0, vitest.describe)("filter-empty.ts exports", () => {
6
+ (0, vitest.it)("loads module exports", () => {
7
+ (0, vitest.expect)(require_filter_empty.filter_empty_exports).toBeDefined();
8
+ (0, vitest.expect)(typeof require_filter_empty.filter_empty_exports).toBe("object");
9
+ });
10
+ });
11
+
12
+ //#endregion
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,14 @@
1
+ import { filter_empty_exports } from "./filter-empty.mjs";
2
+ import { describe, expect, it } from "vitest";
3
+
4
+ //#region src/filter-empty.test.ts
5
+ describe("filter-empty.ts exports", () => {
6
+ it("loads module exports", () => {
7
+ expect(filter_empty_exports).toBeDefined();
8
+ expect(typeof filter_empty_exports).toBe("object");
9
+ });
10
+ });
11
+
12
+ //#endregion
13
+ export { };
14
+ //# sourceMappingURL=filter-empty.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-empty.test.mjs","names":["moduleExports"],"sources":["../src/filter-empty.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport * as moduleExports from \"./filter-empty.ts\";\n\ndescribe(\"filter-empty.ts exports\", () => {\n it(\"loads module exports\", () => {\n expect(moduleExports).toBeDefined();\n expect(typeof moduleExports).toBe(\"object\");\n });\n});\n"],"mappings":";;;;AAGA,SAAS,iCAAiC;AACxC,IAAG,8BAA8B;AAC/B,SAAOA,qBAAc,CAAC,aAAa;AACnC,SAAO,OAAOA,qBAAc,CAAC,KAAK,SAAS;GAC3C;EACF"}
@@ -1,7 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
2
3
  let _stryke_type_checks = require("@stryke/type-checks");
3
4
 
4
5
  //#region src/flatten-object.ts
6
+ var flatten_object_exports = /* @__PURE__ */ require_runtime.__exportAll({ flattenObject: () => flattenObject });
5
7
  /**
6
8
  * Flattens a nested object into a single level object with dot-separated keys.
7
9
  *
@@ -46,4 +48,10 @@ function flattenObjectImpl(object, prefix = "") {
46
48
  }
47
49
 
48
50
  //#endregion
49
- exports.flattenObject = flattenObject;
51
+ exports.flattenObject = flattenObject;
52
+ Object.defineProperty(exports, 'flatten_object_exports', {
53
+ enumerable: true,
54
+ get: function () {
55
+ return flatten_object_exports;
56
+ }
57
+ });
@@ -1,6 +1,8 @@
1
+ import { __exportAll } from "./_virtual/_rolldown/runtime.mjs";
1
2
  import { isPlainObject } from "@stryke/type-checks";
2
3
 
3
4
  //#region src/flatten-object.ts
5
+ var flatten_object_exports = /* @__PURE__ */ __exportAll({ flattenObject: () => flattenObject });
4
6
  /**
5
7
  * Flattens a nested object into a single level object with dot-separated keys.
6
8
  *
@@ -45,5 +47,5 @@ function flattenObjectImpl(object, prefix = "") {
45
47
  }
46
48
 
47
49
  //#endregion
48
- export { flattenObject };
50
+ export { flattenObject, flatten_object_exports };
49
51
  //# sourceMappingURL=flatten-object.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"flatten-object.mjs","names":[],"sources":["../src/flatten-object.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { isPlainObject } from \"@stryke/type-checks\";\nimport type { DeepKey, DeepValue } from \"@stryke/types\";\n\n/**\n * Flattens a nested object into a single level object with dot-separated keys.\n *\n * @example\n * ```typescript\n * const nestedObject = {\n * a: {\n * b: {\n * c: 1\n * }\n * },\n * d: [2, 3]\n * };\n *\n * const flattened = flattenObject(nestedObject);\n * console.log(flattened);\n * // Output:\n * // {\n * // 'a.b.c': 1,\n * // 'd.0': 2,\n * // 'd.1': 3\n * // }\n * ```\n *\n * @param object - The object to flatten.\n * @returns - The flattened object.\n */\nexport function flattenObject<\n TObject extends Record<string, any> = Record<string, any>,\n TDeepKeyObject extends {\n [TKey in DeepKey<TObject>]: DeepValue<TObject, TKey>;\n } = { [TKey in DeepKey<TObject>]: DeepValue<TObject, TKey> }\n>(object: TObject): TDeepKeyObject {\n return flattenObjectImpl<TObject, TDeepKeyObject>(object);\n}\n\nfunction flattenObjectImpl<\n TObject extends Record<string, any> = Record<string, any>,\n TDeepKeyObject extends {\n [TKey in DeepKey<TObject>]: DeepValue<TObject, TKey>;\n } = { [TKey in DeepKey<TObject>]: DeepValue<TObject, TKey> }\n>(object: TObject, prefix = \"\"): TDeepKeyObject {\n const result = {} as TDeepKeyObject;\n const keys = Object.keys(object);\n\n for (const key of keys) {\n const value = (object as any)[key];\n\n const prefixedKey = prefix ? `${prefix}.${key}` : key;\n\n if (isPlainObject(value) && Object.keys(value).length > 0) {\n Object.assign(\n result,\n flattenObjectImpl<typeof value>(value, prefixedKey)\n );\n } else if (Array.isArray(value)) {\n for (const [index, element] of value.entries()) {\n (result as any)[`${prefixedKey}.${index}` as DeepKey<TObject>] =\n element;\n }\n } else {\n (result as any)[prefixedKey as DeepKey<TObject>] = value;\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,SAAgB,cAKd,QAAiC;AACjC,QAAO,kBAA2C,OAAO;;AAG3D,SAAS,kBAKP,QAAiB,SAAS,IAAoB;CAC9C,MAAM,SAAS,EAAE;CACjB,MAAM,OAAO,OAAO,KAAK,OAAO;AAEhC,MAAK,MAAM,OAAO,MAAM;EACtB,MAAM,QAAS,OAAe;EAE9B,MAAM,cAAc,SAAS,GAAG,OAAO,GAAG,QAAQ;AAElD,MAAI,cAAc,MAAM,IAAI,OAAO,KAAK,MAAM,CAAC,SAAS,EACtD,QAAO,OACL,QACA,kBAAgC,OAAO,YAAY,CACpD;WACQ,MAAM,QAAQ,MAAM,CAC7B,MAAK,MAAM,CAAC,OAAO,YAAY,MAAM,SAAS,CAC5C,CAAC,OAAe,GAAG,YAAY,GAAG,WAChC;MAGJ,CAAC,OAAe,eAAmC;;AAIvD,QAAO"}
1
+ {"version":3,"file":"flatten-object.mjs","names":[],"sources":["../src/flatten-object.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { isPlainObject } from \"@stryke/type-checks\";\nimport type { DeepKey, DeepValue } from \"@stryke/types\";\n\n/**\n * Flattens a nested object into a single level object with dot-separated keys.\n *\n * @example\n * ```typescript\n * const nestedObject = {\n * a: {\n * b: {\n * c: 1\n * }\n * },\n * d: [2, 3]\n * };\n *\n * const flattened = flattenObject(nestedObject);\n * console.log(flattened);\n * // Output:\n * // {\n * // 'a.b.c': 1,\n * // 'd.0': 2,\n * // 'd.1': 3\n * // }\n * ```\n *\n * @param object - The object to flatten.\n * @returns - The flattened object.\n */\nexport function flattenObject<\n TObject extends Record<string, any> = Record<string, any>,\n TDeepKeyObject extends {\n [TKey in DeepKey<TObject>]: DeepValue<TObject, TKey>;\n } = { [TKey in DeepKey<TObject>]: DeepValue<TObject, TKey> }\n>(object: TObject): TDeepKeyObject {\n return flattenObjectImpl<TObject, TDeepKeyObject>(object);\n}\n\nfunction flattenObjectImpl<\n TObject extends Record<string, any> = Record<string, any>,\n TDeepKeyObject extends {\n [TKey in DeepKey<TObject>]: DeepValue<TObject, TKey>;\n } = { [TKey in DeepKey<TObject>]: DeepValue<TObject, TKey> }\n>(object: TObject, prefix = \"\"): TDeepKeyObject {\n const result = {} as TDeepKeyObject;\n const keys = Object.keys(object);\n\n for (const key of keys) {\n const value = (object as any)[key];\n\n const prefixedKey = prefix ? `${prefix}.${key}` : key;\n\n if (isPlainObject(value) && Object.keys(value).length > 0) {\n Object.assign(\n result,\n flattenObjectImpl<typeof value>(value, prefixedKey)\n );\n } else if (Array.isArray(value)) {\n for (const [index, element] of value.entries()) {\n (result as any)[`${prefixedKey}.${index}` as DeepKey<TObject>] =\n element;\n }\n } else {\n (result as any)[prefixedKey as DeepKey<TObject>] = value;\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,SAAgB,cAKd,QAAiC;AACjC,QAAO,kBAA2C,OAAO;;AAG3D,SAAS,kBAKP,QAAiB,SAAS,IAAoB;CAC9C,MAAM,SAAS,EAAE;CACjB,MAAM,OAAO,OAAO,KAAK,OAAO;AAEhC,MAAK,MAAM,OAAO,MAAM;EACtB,MAAM,QAAS,OAAe;EAE9B,MAAM,cAAc,SAAS,GAAG,OAAO,GAAG,QAAQ;AAElD,MAAI,cAAc,MAAM,IAAI,OAAO,KAAK,MAAM,CAAC,SAAS,EACtD,QAAO,OACL,QACA,kBAAgC,OAAO,YAAY,CACpD;WACQ,MAAM,QAAQ,MAAM,CAC7B,MAAK,MAAM,CAAC,OAAO,YAAY,MAAM,SAAS,CAC5C,CAAC,OAAe,GAAG,YAAY,GAAG,WAChC;MAGJ,CAAC,OAAe,eAAmC;;AAIvD,QAAO"}
@@ -0,0 +1,12 @@
1
+ const require_flatten_object = require('./flatten-object.cjs');
2
+ let vitest = require("vitest");
3
+
4
+ //#region src/flatten-object.test.ts
5
+ (0, vitest.describe)("flatten-object.ts exports", () => {
6
+ (0, vitest.it)("loads module exports", () => {
7
+ (0, vitest.expect)(require_flatten_object.flatten_object_exports).toBeDefined();
8
+ (0, vitest.expect)(typeof require_flatten_object.flatten_object_exports).toBe("object");
9
+ });
10
+ });
11
+
12
+ //#endregion
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,14 @@
1
+ import { flatten_object_exports } from "./flatten-object.mjs";
2
+ import { describe, expect, it } from "vitest";
3
+
4
+ //#region src/flatten-object.test.ts
5
+ describe("flatten-object.ts exports", () => {
6
+ it("loads module exports", () => {
7
+ expect(flatten_object_exports).toBeDefined();
8
+ expect(typeof flatten_object_exports).toBe("object");
9
+ });
10
+ });
11
+
12
+ //#endregion
13
+ export { };
14
+ //# sourceMappingURL=flatten-object.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatten-object.test.mjs","names":["moduleExports"],"sources":["../src/flatten-object.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport * as moduleExports from \"./flatten-object.ts\";\n\ndescribe(\"flatten-object.ts exports\", () => {\n it(\"loads module exports\", () => {\n expect(moduleExports).toBeDefined();\n expect(typeof moduleExports).toBe(\"object\");\n });\n});\n"],"mappings":";;;;AAGA,SAAS,mCAAmC;AAC1C,IAAG,8BAA8B;AAC/B,SAAOA,uBAAc,CAAC,aAAa;AACnC,SAAO,OAAOA,uBAAc,CAAC,KAAK,SAAS;GAC3C;EACF"}
@@ -1,9 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
2
3
  const require_to_path = require('./to-path.cjs');
3
4
  let _stryke_type_checks = require("@stryke/type-checks");
4
5
  let _stryke_convert = require("@stryke/convert");
5
6
 
6
7
  //#region src/get-field.ts
8
+ var get_field_exports = /* @__PURE__ */ require_runtime.__exportAll({ getField: () => getField });
7
9
  /**
8
10
  * Retrieves the value at a given path from an object. If the resolved value is undefined, the defaultValue is returned instead.
9
11
  *
@@ -51,4 +53,10 @@ function getWithPath(object, path, defaultValue) {
51
53
  }
52
54
 
53
55
  //#endregion
54
- exports.getField = getField;
56
+ exports.getField = getField;
57
+ Object.defineProperty(exports, 'get_field_exports', {
58
+ enumerable: true,
59
+ get: function () {
60
+ return get_field_exports;
61
+ }
62
+ });
@@ -1,8 +1,10 @@
1
+ import { __exportAll } from "./_virtual/_rolldown/runtime.mjs";
1
2
  import { toPath } from "./to-path.mjs";
2
3
  import { isDeepKey, isNumber } from "@stryke/type-checks";
3
4
  import { toStringKey } from "@stryke/convert";
4
5
 
5
6
  //#region src/get-field.ts
7
+ var get_field_exports = /* @__PURE__ */ __exportAll({ getField: () => getField });
6
8
  /**
7
9
  * Retrieves the value at a given path from an object. If the resolved value is undefined, the defaultValue is returned instead.
8
10
  *
@@ -50,5 +52,5 @@ function getWithPath(object, path, defaultValue) {
50
52
  }
51
53
 
52
54
  //#endregion
53
- export { getField };
55
+ export { getField, get_field_exports };
54
56
  //# sourceMappingURL=get-field.mjs.map