@fluixi/utils 1.0.0-alpha.53

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 (354) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +73 -0
  3. package/dist/index.cjs +1 -0
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +1 -0
  7. package/dist/index.mjs +1 -0
  8. package/dist/lib/array/advanced.cjs +1 -0
  9. package/dist/lib/array/advanced.d.ts +1116 -0
  10. package/dist/lib/array/advanced.d.ts.map +1 -0
  11. package/dist/lib/array/advanced.js +2429 -0
  12. package/dist/lib/array/advanced.mjs +1 -0
  13. package/dist/lib/array/array.cjs +1 -0
  14. package/dist/lib/array/array.d.ts +6 -0
  15. package/dist/lib/array/array.d.ts.map +1 -0
  16. package/dist/lib/array/array.js +31 -0
  17. package/dist/lib/array/array.mjs +1 -0
  18. package/dist/lib/array/index.cjs +1 -0
  19. package/dist/lib/array/index.d.ts +4 -0
  20. package/dist/lib/array/index.d.ts.map +1 -0
  21. package/dist/lib/array/index.js +3 -0
  22. package/dist/lib/array/index.mjs +1 -0
  23. package/dist/lib/array/utils.cjs +1 -0
  24. package/dist/lib/array/utils.d.ts +100 -0
  25. package/dist/lib/array/utils.d.ts.map +1 -0
  26. package/dist/lib/array/utils.js +165 -0
  27. package/dist/lib/array/utils.mjs +1 -0
  28. package/dist/lib/color/color.cjs +1 -0
  29. package/dist/lib/color/color.d.ts +366 -0
  30. package/dist/lib/color/color.d.ts.map +1 -0
  31. package/dist/lib/color/color.js +722 -0
  32. package/dist/lib/color/color.mjs +1 -0
  33. package/dist/lib/color/constants.cjs +1 -0
  34. package/dist/lib/color/constants.d.ts +361 -0
  35. package/dist/lib/color/constants.d.ts.map +1 -0
  36. package/dist/lib/color/constants.js +358 -0
  37. package/dist/lib/color/constants.mjs +1 -0
  38. package/dist/lib/color/conversions.cjs +1 -0
  39. package/dist/lib/color/conversions.d.ts +166 -0
  40. package/dist/lib/color/conversions.d.ts.map +1 -0
  41. package/dist/lib/color/conversions.js +766 -0
  42. package/dist/lib/color/conversions.mjs +1 -0
  43. package/dist/lib/color/helpers.cjs +1 -0
  44. package/dist/lib/color/helpers.d.ts +75 -0
  45. package/dist/lib/color/helpers.d.ts.map +1 -0
  46. package/dist/lib/color/helpers.js +419 -0
  47. package/dist/lib/color/helpers.mjs +1 -0
  48. package/dist/lib/color/index.cjs +1 -0
  49. package/dist/lib/color/index.d.ts +12 -0
  50. package/dist/lib/color/index.d.ts.map +1 -0
  51. package/dist/lib/color/index.js +15 -0
  52. package/dist/lib/color/index.mjs +1 -0
  53. package/dist/lib/color/types.cjs +1 -0
  54. package/dist/lib/color/types.d.ts +179 -0
  55. package/dist/lib/color/types.d.ts.map +1 -0
  56. package/dist/lib/color/types.js +1 -0
  57. package/dist/lib/color/types.mjs +0 -0
  58. package/dist/lib/color/utils.cjs +1 -0
  59. package/dist/lib/color/utils.d.ts +199 -0
  60. package/dist/lib/color/utils.d.ts.map +1 -0
  61. package/dist/lib/color/utils.js +858 -0
  62. package/dist/lib/color/utils.mjs +1 -0
  63. package/dist/lib/compare/comparators.cjs +1 -0
  64. package/dist/lib/compare/comparators.d.ts +65 -0
  65. package/dist/lib/compare/comparators.d.ts.map +1 -0
  66. package/dist/lib/compare/comparators.js +210 -0
  67. package/dist/lib/compare/comparators.mjs +1 -0
  68. package/dist/lib/compare/index.cjs +1 -0
  69. package/dist/lib/compare/index.d.ts +2 -0
  70. package/dist/lib/compare/index.d.ts.map +1 -0
  71. package/dist/lib/compare/index.js +1 -0
  72. package/dist/lib/compare/index.mjs +1 -0
  73. package/dist/lib/crypto/hash.cjs +1 -0
  74. package/dist/lib/crypto/hash.d.ts +6 -0
  75. package/dist/lib/crypto/hash.d.ts.map +1 -0
  76. package/dist/lib/crypto/hash.js +53 -0
  77. package/dist/lib/crypto/hash.mjs +1 -0
  78. package/dist/lib/crypto/index.cjs +1 -0
  79. package/dist/lib/crypto/index.d.ts +2 -0
  80. package/dist/lib/crypto/index.d.ts.map +1 -0
  81. package/dist/lib/crypto/index.js +1 -0
  82. package/dist/lib/crypto/index.mjs +1 -0
  83. package/dist/lib/dom/events.cjs +1 -0
  84. package/dist/lib/dom/events.d.ts +159 -0
  85. package/dist/lib/dom/events.d.ts.map +1 -0
  86. package/dist/lib/dom/events.js +50 -0
  87. package/dist/lib/dom/events.mjs +1 -0
  88. package/dist/lib/dom/index.cjs +1 -0
  89. package/dist/lib/dom/index.d.ts +3 -0
  90. package/dist/lib/dom/index.d.ts.map +1 -0
  91. package/dist/lib/dom/index.js +2 -0
  92. package/dist/lib/dom/index.mjs +1 -0
  93. package/dist/lib/dom/utils.cjs +1 -0
  94. package/dist/lib/dom/utils.d.ts +6 -0
  95. package/dist/lib/dom/utils.d.ts.map +1 -0
  96. package/dist/lib/dom/utils.js +37 -0
  97. package/dist/lib/dom/utils.mjs +1 -0
  98. package/dist/lib/functions/functions.cjs +1 -0
  99. package/dist/lib/functions/functions.d.ts +329 -0
  100. package/dist/lib/functions/functions.d.ts.map +1 -0
  101. package/dist/lib/functions/functions.js +585 -0
  102. package/dist/lib/functions/functions.mjs +1 -0
  103. package/dist/lib/functions/index.cjs +1 -0
  104. package/dist/lib/functions/index.d.ts +3 -0
  105. package/dist/lib/functions/index.d.ts.map +1 -0
  106. package/dist/lib/functions/index.js +1 -0
  107. package/dist/lib/functions/index.mjs +1 -0
  108. package/dist/lib/functions/types.cjs +1 -0
  109. package/dist/lib/functions/types.d.ts +2 -0
  110. package/dist/lib/functions/types.d.ts.map +1 -0
  111. package/dist/lib/functions/types.js +1 -0
  112. package/dist/lib/functions/types.mjs +0 -0
  113. package/dist/lib/helpers.cjs +1 -0
  114. package/dist/lib/helpers.d.ts +13 -0
  115. package/dist/lib/helpers.d.ts.map +1 -0
  116. package/dist/lib/helpers.js +66 -0
  117. package/dist/lib/helpers.mjs +1 -0
  118. package/dist/lib/index.cjs +1 -0
  119. package/dist/lib/index.d.ts +6 -0
  120. package/dist/lib/index.d.ts.map +1 -0
  121. package/dist/lib/index.js +8 -0
  122. package/dist/lib/index.mjs +1 -0
  123. package/dist/lib/maths/constants.cjs +1 -0
  124. package/dist/lib/maths/constants.d.ts +84 -0
  125. package/dist/lib/maths/constants.d.ts.map +1 -0
  126. package/dist/lib/maths/constants.js +79 -0
  127. package/dist/lib/maths/constants.mjs +1 -0
  128. package/dist/lib/maths/fn/advanced.cjs +1 -0
  129. package/dist/lib/maths/fn/advanced.d.ts +149 -0
  130. package/dist/lib/maths/fn/advanced.d.ts.map +1 -0
  131. package/dist/lib/maths/fn/advanced.js +264 -0
  132. package/dist/lib/maths/fn/advanced.mjs +1 -0
  133. package/dist/lib/maths/fn/basic.cjs +1 -0
  134. package/dist/lib/maths/fn/basic.d.ts +182 -0
  135. package/dist/lib/maths/fn/basic.d.ts.map +1 -0
  136. package/dist/lib/maths/fn/basic.js +343 -0
  137. package/dist/lib/maths/fn/basic.mjs +1 -0
  138. package/dist/lib/maths/fn/complex.cjs +1 -0
  139. package/dist/lib/maths/fn/complex.d.ts +153 -0
  140. package/dist/lib/maths/fn/complex.d.ts.map +1 -0
  141. package/dist/lib/maths/fn/complex.js +383 -0
  142. package/dist/lib/maths/fn/complex.mjs +1 -0
  143. package/dist/lib/maths/fn/index.cjs +1 -0
  144. package/dist/lib/maths/fn/index.d.ts +10 -0
  145. package/dist/lib/maths/fn/index.d.ts.map +1 -0
  146. package/dist/lib/maths/fn/index.js +9 -0
  147. package/dist/lib/maths/fn/index.mjs +1 -0
  148. package/dist/lib/maths/fn/trigo.cjs +1 -0
  149. package/dist/lib/maths/fn/trigo.d.ts +147 -0
  150. package/dist/lib/maths/fn/trigo.d.ts.map +1 -0
  151. package/dist/lib/maths/fn/trigo.js +227 -0
  152. package/dist/lib/maths/fn/trigo.mjs +1 -0
  153. package/dist/lib/maths/fn/vector.cjs +1 -0
  154. package/dist/lib/maths/fn/vector.d.ts +512 -0
  155. package/dist/lib/maths/fn/vector.d.ts.map +1 -0
  156. package/dist/lib/maths/fn/vector.js +1136 -0
  157. package/dist/lib/maths/fn/vector.mjs +1 -0
  158. package/dist/lib/maths/formatter.cjs +1 -0
  159. package/dist/lib/maths/formatter.d.ts +35 -0
  160. package/dist/lib/maths/formatter.d.ts.map +1 -0
  161. package/dist/lib/maths/formatter.js +56 -0
  162. package/dist/lib/maths/formatter.mjs +1 -0
  163. package/dist/lib/maths/guards.cjs +1 -0
  164. package/dist/lib/maths/guards.d.ts +166 -0
  165. package/dist/lib/maths/guards.d.ts.map +1 -0
  166. package/dist/lib/maths/guards.js +315 -0
  167. package/dist/lib/maths/guards.mjs +1 -0
  168. package/dist/lib/maths/index.cjs +1 -0
  169. package/dist/lib/maths/index.d.ts +24 -0
  170. package/dist/lib/maths/index.d.ts.map +1 -0
  171. package/dist/lib/maths/index.js +29 -0
  172. package/dist/lib/maths/index.mjs +1 -0
  173. package/dist/lib/maths/parser.cjs +1 -0
  174. package/dist/lib/maths/parser.d.ts +20 -0
  175. package/dist/lib/maths/parser.d.ts.map +1 -0
  176. package/dist/lib/maths/parser.js +78 -0
  177. package/dist/lib/maths/parser.mjs +1 -0
  178. package/dist/lib/maths/random.cjs +1 -0
  179. package/dist/lib/maths/random.d.ts +27 -0
  180. package/dist/lib/maths/random.d.ts.map +1 -0
  181. package/dist/lib/maths/random.js +49 -0
  182. package/dist/lib/maths/random.mjs +1 -0
  183. package/dist/lib/maths/types/advanced.cjs +1 -0
  184. package/dist/lib/maths/types/advanced.d.ts +357 -0
  185. package/dist/lib/maths/types/advanced.d.ts.map +1 -0
  186. package/dist/lib/maths/types/advanced.js +5 -0
  187. package/dist/lib/maths/types/advanced.mjs +0 -0
  188. package/dist/lib/maths/types/basic.cjs +1 -0
  189. package/dist/lib/maths/types/basic.d.ts +95 -0
  190. package/dist/lib/maths/types/basic.d.ts.map +1 -0
  191. package/dist/lib/maths/types/basic.js +5 -0
  192. package/dist/lib/maths/types/basic.mjs +0 -0
  193. package/dist/lib/maths/types/index.cjs +1 -0
  194. package/dist/lib/maths/types/index.d.ts +4 -0
  195. package/dist/lib/maths/types/index.d.ts.map +1 -0
  196. package/dist/lib/maths/types/index.js +3 -0
  197. package/dist/lib/maths/types/index.mjs +0 -0
  198. package/dist/lib/maths/types/negative.cjs +1 -0
  199. package/dist/lib/maths/types/negative.d.ts +51 -0
  200. package/dist/lib/maths/types/negative.d.ts.map +1 -0
  201. package/dist/lib/maths/types/negative.js +5 -0
  202. package/dist/lib/maths/types/negative.mjs +0 -0
  203. package/dist/lib/maths/types/operations.cjs +1 -0
  204. package/dist/lib/maths/types/operations.d.ts +188 -0
  205. package/dist/lib/maths/types/operations.d.ts.map +1 -0
  206. package/dist/lib/maths/types/operations.js +6 -0
  207. package/dist/lib/maths/types/operations.mjs +0 -0
  208. package/dist/lib/object/clone.cjs +1 -0
  209. package/dist/lib/object/clone.d.ts +46 -0
  210. package/dist/lib/object/clone.d.ts.map +1 -0
  211. package/dist/lib/object/clone.js +104 -0
  212. package/dist/lib/object/clone.mjs +1 -0
  213. package/dist/lib/object/diff.cjs +1 -0
  214. package/dist/lib/object/diff.d.ts +203 -0
  215. package/dist/lib/object/diff.d.ts.map +1 -0
  216. package/dist/lib/object/diff.js +805 -0
  217. package/dist/lib/object/diff.mjs +1 -0
  218. package/dist/lib/object/getter-setter.cjs +1 -0
  219. package/dist/lib/object/getter-setter.d.ts +361 -0
  220. package/dist/lib/object/getter-setter.d.ts.map +1 -0
  221. package/dist/lib/object/getter-setter.js +1771 -0
  222. package/dist/lib/object/getter-setter.mjs +1 -0
  223. package/dist/lib/object/index.cjs +6 -0
  224. package/dist/lib/object/index.d.ts +13 -0
  225. package/dist/lib/object/index.d.ts.map +1 -0
  226. package/dist/lib/object/index.js +12 -0
  227. package/dist/lib/object/index.mjs +6 -0
  228. package/dist/lib/object/merge.cjs +1 -0
  229. package/dist/lib/object/merge.d.ts +93 -0
  230. package/dist/lib/object/merge.d.ts.map +1 -0
  231. package/dist/lib/object/merge.js +474 -0
  232. package/dist/lib/object/merge.mjs +1 -0
  233. package/dist/lib/object/object.cjs +1 -0
  234. package/dist/lib/object/object.d.ts +128 -0
  235. package/dist/lib/object/object.d.ts.map +1 -0
  236. package/dist/lib/object/object.js +432 -0
  237. package/dist/lib/object/object.mjs +1 -0
  238. package/dist/lib/object/omit.cjs +1 -0
  239. package/dist/lib/object/omit.d.ts +351 -0
  240. package/dist/lib/object/omit.d.ts.map +1 -0
  241. package/dist/lib/object/omit.js +656 -0
  242. package/dist/lib/object/omit.mjs +1 -0
  243. package/dist/lib/object/reconcile.cjs +1 -0
  244. package/dist/lib/object/reconcile.d.ts +7 -0
  245. package/dist/lib/object/reconcile.d.ts.map +1 -0
  246. package/dist/lib/object/reconcile.js +122 -0
  247. package/dist/lib/object/reconcile.mjs +1 -0
  248. package/dist/lib/object/selector.cjs +1 -0
  249. package/dist/lib/object/selector.d.ts +50 -0
  250. package/dist/lib/object/selector.d.ts.map +1 -0
  251. package/dist/lib/object/selector.js +371 -0
  252. package/dist/lib/object/selector.mjs +1 -0
  253. package/dist/lib/object/sort.cjs +1 -0
  254. package/dist/lib/object/sort.d.ts +149 -0
  255. package/dist/lib/object/sort.d.ts.map +1 -0
  256. package/dist/lib/object/sort.js +298 -0
  257. package/dist/lib/object/sort.mjs +1 -0
  258. package/dist/lib/object/transform.cjs +1 -0
  259. package/dist/lib/object/transform.d.ts +620 -0
  260. package/dist/lib/object/transform.d.ts.map +1 -0
  261. package/dist/lib/object/transform.js +1058 -0
  262. package/dist/lib/object/transform.mjs +1 -0
  263. package/dist/lib/object/types.cjs +1 -0
  264. package/dist/lib/object/types.d.ts +250 -0
  265. package/dist/lib/object/types.d.ts.map +1 -0
  266. package/dist/lib/object/types.js +1 -0
  267. package/dist/lib/object/types.mjs +0 -0
  268. package/dist/lib/object/utils.cjs +6 -0
  269. package/dist/lib/object/utils.d.ts +165 -0
  270. package/dist/lib/object/utils.d.ts.map +1 -0
  271. package/dist/lib/object/utils.js +444 -0
  272. package/dist/lib/object/utils.mjs +6 -0
  273. package/dist/lib/primitive/boolean/boolean.cjs +1 -0
  274. package/dist/lib/primitive/boolean/boolean.d.ts +276 -0
  275. package/dist/lib/primitive/boolean/boolean.d.ts.map +1 -0
  276. package/dist/lib/primitive/boolean/boolean.js +615 -0
  277. package/dist/lib/primitive/boolean/boolean.mjs +1 -0
  278. package/dist/lib/primitive/boolean/index.cjs +1 -0
  279. package/dist/lib/primitive/boolean/index.d.ts +3 -0
  280. package/dist/lib/primitive/boolean/index.d.ts.map +1 -0
  281. package/dist/lib/primitive/boolean/index.js +2 -0
  282. package/dist/lib/primitive/boolean/index.mjs +1 -0
  283. package/dist/lib/primitive/boolean/types.cjs +1 -0
  284. package/dist/lib/primitive/boolean/types.d.ts +14 -0
  285. package/dist/lib/primitive/boolean/types.d.ts.map +1 -0
  286. package/dist/lib/primitive/boolean/types.js +1 -0
  287. package/dist/lib/primitive/boolean/types.mjs +0 -0
  288. package/dist/lib/primitive/date/date.cjs +1 -0
  289. package/dist/lib/primitive/date/date.d.ts +641 -0
  290. package/dist/lib/primitive/date/date.d.ts.map +1 -0
  291. package/dist/lib/primitive/date/date.js +1998 -0
  292. package/dist/lib/primitive/date/date.mjs +1 -0
  293. package/dist/lib/primitive/date/index.cjs +1 -0
  294. package/dist/lib/primitive/date/index.d.ts +3 -0
  295. package/dist/lib/primitive/date/index.d.ts.map +1 -0
  296. package/dist/lib/primitive/date/index.js +2 -0
  297. package/dist/lib/primitive/date/index.mjs +1 -0
  298. package/dist/lib/primitive/date/types.cjs +1 -0
  299. package/dist/lib/primitive/date/types.d.ts +205 -0
  300. package/dist/lib/primitive/date/types.d.ts.map +1 -0
  301. package/dist/lib/primitive/date/types.js +7 -0
  302. package/dist/lib/primitive/date/types.mjs +0 -0
  303. package/dist/lib/primitive/index.cjs +5 -0
  304. package/dist/lib/primitive/index.d.ts +5 -0
  305. package/dist/lib/primitive/index.d.ts.map +1 -0
  306. package/dist/lib/primitive/index.js +4 -0
  307. package/dist/lib/primitive/index.mjs +5 -0
  308. package/dist/lib/primitive/string/index.cjs +5 -0
  309. package/dist/lib/primitive/string/index.d.ts +3 -0
  310. package/dist/lib/primitive/string/index.d.ts.map +1 -0
  311. package/dist/lib/primitive/string/index.js +2 -0
  312. package/dist/lib/primitive/string/index.mjs +5 -0
  313. package/dist/lib/primitive/string/parser-2.cjs +8 -0
  314. package/dist/lib/primitive/string/parser-2.d.ts +17 -0
  315. package/dist/lib/primitive/string/parser-2.d.ts.map +1 -0
  316. package/dist/lib/primitive/string/parser-2.js +656 -0
  317. package/dist/lib/primitive/string/parser-2.mjs +8 -0
  318. package/dist/lib/primitive/string/parser.cjs +3 -0
  319. package/dist/lib/primitive/string/parser.d.ts +9 -0
  320. package/dist/lib/primitive/string/parser.d.ts.map +1 -0
  321. package/dist/lib/primitive/string/parser.js +775 -0
  322. package/dist/lib/primitive/string/parser.mjs +3 -0
  323. package/dist/lib/primitive/string/string.cjs +5 -0
  324. package/dist/lib/primitive/string/string.d.ts +535 -0
  325. package/dist/lib/primitive/string/string.d.ts.map +1 -0
  326. package/dist/lib/primitive/string/string.js +1301 -0
  327. package/dist/lib/primitive/string/string.mjs +5 -0
  328. package/dist/lib/primitive/string/types.cjs +1 -0
  329. package/dist/lib/primitive/string/types.d.ts +318 -0
  330. package/dist/lib/primitive/string/types.d.ts.map +1 -0
  331. package/dist/lib/primitive/string/types.js +5 -0
  332. package/dist/lib/primitive/string/types.mjs +0 -0
  333. package/dist/lib/primitive/types.cjs +1 -0
  334. package/dist/lib/primitive/types.d.ts +27 -0
  335. package/dist/lib/primitive/types.d.ts.map +1 -0
  336. package/dist/lib/primitive/types.js +1 -0
  337. package/dist/lib/primitive/types.mjs +0 -0
  338. package/dist/lib/url/index.cjs +1 -0
  339. package/dist/lib/url/index.d.ts +3 -0
  340. package/dist/lib/url/index.d.ts.map +1 -0
  341. package/dist/lib/url/index.js +2 -0
  342. package/dist/lib/url/index.mjs +1 -0
  343. package/dist/lib/url/parser.cjs +1 -0
  344. package/dist/lib/url/parser.d.ts +216 -0
  345. package/dist/lib/url/parser.d.ts.map +1 -0
  346. package/dist/lib/url/parser.js +488 -0
  347. package/dist/lib/url/parser.mjs +1 -0
  348. package/dist/lib/url/types.cjs +1 -0
  349. package/dist/lib/url/types.d.ts +18 -0
  350. package/dist/lib/url/types.d.ts.map +1 -0
  351. package/dist/lib/url/types.js +1 -0
  352. package/dist/lib/url/types.mjs +0 -0
  353. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  354. package/package.json +150 -0
@@ -0,0 +1,432 @@
1
+ import { isObject } from './utils.js';
2
+ import { deepClone } from './clone.js';
3
+ /**
4
+ * Inverts an object (swaps keys and values)
5
+ * @param obj - Source object
6
+ * @returns Inverted object
7
+ * @example
8
+ * invert({a: 1, b: 2}) // {1: 'a', 2: 'b'}
9
+ */
10
+ export const invert = (obj, deep = false) => {
11
+ if (Array.isArray(obj)) {
12
+ return obj.map((item) => invert(item, deep));
13
+ }
14
+ if (!isObject(obj)) {
15
+ return {};
16
+ }
17
+ const result = {};
18
+ for (const key in obj) {
19
+ let value = obj[key];
20
+ // Only invert if value can be used as a key
21
+ if (typeof value === 'string' ||
22
+ typeof value === 'number' ||
23
+ typeof value === 'symbol') {
24
+ result[value] = key;
25
+ }
26
+ else if (isObject(value)) {
27
+ if (deep) {
28
+ result[key] = invert(value, deep);
29
+ }
30
+ }
31
+ else if (Array.isArray(value)) {
32
+ if (deep) {
33
+ result[key] = value.map((item) => invert(item, deep));
34
+ }
35
+ }
36
+ }
37
+ return result;
38
+ };
39
+ /**
40
+ * Maps object values using a callback function
41
+ * @param obj - Source object
42
+ * @param callback - Mapping function
43
+ * @returns New object with mapped values
44
+ * @example
45
+ * mapValues({a: 1, b: 2}, (value) => value * 2) // {a: 2, b: 4}
46
+ */
47
+ // export const mapValues = <T extends AnyObject, U>(
48
+ // obj: T,
49
+ // callback: (value: T[keyof T], key: keyof T) => U
50
+ // ): Record<keyof T, U> => {
51
+ // if (Array.isArray(obj)) {
52
+ // return (obj as any).map(callback);
53
+ // }
54
+ // if (!isObject(obj)) {
55
+ // return {} as Record<keyof T, U>;
56
+ // }
57
+ // const result: Partial<Record<keyof T, U>> = {};
58
+ // for (const key in obj) {
59
+ // result[key] = callback(obj[key], key as any);
60
+ // }
61
+ // return result as Record<keyof T, U>;
62
+ // };
63
+ /**
64
+ * Maps object keys using a callback function
65
+ * @param obj - Source object
66
+ * @param callback - Mapping function
67
+ * @returns New object with mapped keys
68
+ * @example
69
+ * mapKeys({a: 1, b: 2}, (key) => key.toUpperCase()) // {A: 1, B: 2}
70
+ */
71
+ // export const mapKeys = <T extends AnyObject>(
72
+ // obj: T,
73
+ // callback: (key: keyof T, value: T[keyof T]) => string
74
+ // ): AnyObject => {
75
+ // if (Array.isArray(obj)) {
76
+ // return (obj as any).map(callback);
77
+ // }
78
+ // if (!isObject(obj)) {
79
+ // return {};
80
+ // }
81
+ // const result: AnyObject = {};
82
+ // for (const key in obj) {
83
+ // const newKey = callback(key as any, obj[key]);
84
+ // result[newKey] = obj[key];
85
+ // }
86
+ // return result;
87
+ // };
88
+ /**
89
+ * Filters object properties using a predicate
90
+ * @param obj - Source object
91
+ * @param predicate - Filter function
92
+ * @returns New object with filtered properties
93
+ * @example
94
+ * filter({a: 1, b: 2, c: 3}, (value) => value > 1) // {b: 2, c: 3}
95
+ */
96
+ export const filter = (obj, predicate) => {
97
+ if (Array.isArray(obj)) {
98
+ return obj.filter(predicate);
99
+ }
100
+ if (!isObject(obj)) {
101
+ return {};
102
+ }
103
+ const result = {};
104
+ for (const key in obj) {
105
+ if (predicate(obj[key], key)) {
106
+ result[key] = obj[key];
107
+ }
108
+ }
109
+ return result;
110
+ };
111
+ /**
112
+ * Flattens a nested object
113
+ * @param obj - Source object
114
+ * @param separator - Separator for nested keys (default: '.')
115
+ * @returns Flattened object
116
+ * @example
117
+ * flatten({a: {b: {c: 1}}, d: 2}) // {'a.b.c': 1, d: 2}
118
+ */
119
+ // export const flatten = (obj: AnyObject, separator: string = '.'): AnyObject => {
120
+ // if (Array.isArray(obj)) {
121
+ // return obj.map((item) => flatten(item, separator));
122
+ // // return obj.reduce((acc, item) => {
123
+ // // return {
124
+ // // ...acc,
125
+ // // ...flatten(item, separator),
126
+ // // };
127
+ // // }, {});
128
+ // }
129
+ // const result: AnyObject = {};
130
+ // const flattenRecursive = (current: any, path: string = '') => {
131
+ // if (!isObject(current) && !Array.isArray(current)) {
132
+ // if (path) {
133
+ // result[path] = current;
134
+ // }
135
+ // return;
136
+ // }
137
+ // if (Array.isArray(current)) {
138
+ // for (let i = 0; i < current.length; i++) {
139
+ // const newPath = path ? `${path}[${i}]` : `[${i}]`;
140
+ // flattenRecursive(current[i], newPath);
141
+ // }
142
+ // } else {
143
+ // for (const key in current) {
144
+ // const newPath = path ? `${path}${separator}${key}` : key;
145
+ // flattenRecursive(current[key], newPath);
146
+ // }
147
+ // // Handle symbols
148
+ // const symbols = Object.getOwnPropertySymbols(current);
149
+ // for (const symbol of symbols) {
150
+ // const newPath = path
151
+ // ? `${path}${separator}${symbol.toString()}`
152
+ // : symbol.toString();
153
+ // flattenRecursive(current[symbol], newPath);
154
+ // }
155
+ // }
156
+ // };
157
+ // flattenRecursive(obj);
158
+ // return result;
159
+ // };
160
+ /**
161
+ * Unflattens an object (reverse of flatten)
162
+ * @param obj - Source object
163
+ * @param separator - Separator used for nested keys (default: '.')
164
+ * @returns Unflattened object
165
+ * @example
166
+ * unflatten({'a.b.c': 1, d: 2}) // {a: {b: {c: 1}}, d: 2}
167
+ */
168
+ // export const unflatten = (
169
+ // obj: AnyObject,
170
+ // separator: string = '.'
171
+ // ): AnyObject => {
172
+ // const result: AnyObject = {};
173
+ // for (const key in obj) {
174
+ // const keys = key.split(separator);
175
+ // let current: any = result;
176
+ // for (let i = 0; i < keys.length - 1; i++) {
177
+ // const part = keys[i];
178
+ // // Handle array indices
179
+ // if (part.startsWith('[') && part.endsWith(']')) {
180
+ // const index = parseInt(part.slice(1, -1), 10);
181
+ // if (!Array.isArray(current)) {
182
+ // current = [];
183
+ // }
184
+ // if (current[index] == null) {
185
+ // current[index] = {};
186
+ // }
187
+ // current = current[index];
188
+ // } else {
189
+ // if (current[part] == null) {
190
+ // current[part] = {};
191
+ // }
192
+ // current = current[part];
193
+ // }
194
+ // }
195
+ // const lastKey = keys[keys.length - 1];
196
+ // // Handle array indices
197
+ // if (lastKey.startsWith('[') && lastKey.endsWith(']')) {
198
+ // const index = parseInt(lastKey.slice(1, -1), 10);
199
+ // if (!Array.isArray(current)) {
200
+ // current = [];
201
+ // }
202
+ // if (index >= current.length) {
203
+ // for (let i = current.length; i <= index; i++) {
204
+ // current.push(undefined);
205
+ // }
206
+ // }
207
+ // current[index] = obj[key];
208
+ // } else {
209
+ // current[lastKey] = obj[key];
210
+ // }
211
+ // }
212
+ // return result;
213
+ // };
214
+ /**
215
+ * Removes undefined or null properties from an object
216
+ * @param obj - Source object
217
+ * @param deep - Whether to clean recursively (default: false)
218
+ * @returns Cleaned object
219
+ * @example
220
+ * clean({a: 1, b: null, c: undefined, d: {e: null}}) // {a: 1, d: {}}
221
+ * clean({a: 1, b: null, d: {e: null}}, true) // {a: 1}
222
+ */
223
+ export const clean = (obj, deep = false) => {
224
+ if (!isObject(obj)) {
225
+ return {};
226
+ }
227
+ const result = {};
228
+ for (const key in obj) {
229
+ const value = obj[key];
230
+ if (value != null) {
231
+ if (deep && isObject(value)) {
232
+ const cleaned = clean(value, true);
233
+ if (Object.keys(cleaned).length > 0) {
234
+ result[key] = cleaned;
235
+ }
236
+ }
237
+ else {
238
+ result[key] = value;
239
+ }
240
+ }
241
+ }
242
+ return result;
243
+ };
244
+ /**
245
+ * Creates a new object with default values
246
+ * @param defaults - Default values
247
+ * @param overrides - Override values
248
+ * @returns Merged object with defaults
249
+ * @example
250
+ * defaults({a: 1, b: 2}, {b: 3, c: 4}) // {a: 1, b: 3, c: 4}
251
+ */
252
+ export const defaults = (current, overrides) => {
253
+ if (Array.isArray(current)) {
254
+ if (Array.isArray(overrides)) {
255
+ return [...current, ...overrides];
256
+ }
257
+ return [...current, overrides];
258
+ }
259
+ const result = deepClone(current);
260
+ for (const key in overrides) {
261
+ if (result[key] === undefined) {
262
+ result[key] = overrides[key];
263
+ }
264
+ }
265
+ return result;
266
+ };
267
+ /**
268
+ * Gets the size of an object (number of own enumerable properties)
269
+ * @param obj - Source object
270
+ * @returns Number of properties
271
+ * @example
272
+ * size({a: 1, b: 2, c: 3}) // 3
273
+ */
274
+ export const size = (obj) => {
275
+ if (!isObject(obj)) {
276
+ return 0;
277
+ }
278
+ return Object.keys(obj).length;
279
+ };
280
+ /**
281
+ * Creates a new object with the same keys but transformed values
282
+ * @param obj - Source object
283
+ * @param transformer - Transformation function
284
+ * @returns Transformed object
285
+ * @example
286
+ * transform({a: 1, b: 2}, (key, value) => ({[key]: value * 2})) // {a: 2, b: 4}
287
+ */
288
+ export const transform = (obj, transformer) => {
289
+ if (Array.isArray(obj)) {
290
+ return obj.map(transformer);
291
+ }
292
+ if (!isObject(obj)) {
293
+ return {};
294
+ }
295
+ const result = {};
296
+ for (const key in obj) {
297
+ const [newKey, newValue] = transformer(key, obj[key]);
298
+ result[newKey] = newValue;
299
+ }
300
+ return result;
301
+ };
302
+ /**
303
+ * Groups an array of objects by a key
304
+ * @param array - Array of objects
305
+ * @param key - Key to group by
306
+ * @returns Grouped object
307
+ * @example
308
+ * groupBy([{type: 'a', value: 1}, {type: 'b', value: 2}, {type: 'a', value: 3}], 'type')
309
+ * // {a: [{type: 'a', value: 1}, {type: 'a', value: 3}], b: [{type: 'b', value: 2}]}
310
+ */
311
+ export const groupBy = (array, key) => {
312
+ if (!Array.isArray(array)) {
313
+ return {};
314
+ }
315
+ return array.reduce((groups, item) => {
316
+ const groupKey = item[key];
317
+ if (groupKey == null) {
318
+ return groups;
319
+ }
320
+ const keyStr = String(groupKey);
321
+ if (!groups[keyStr]) {
322
+ groups[keyStr] = [];
323
+ }
324
+ groups[keyStr].push(item);
325
+ return groups;
326
+ }, {});
327
+ };
328
+ /**
329
+ * Converts an object to a query string
330
+ * @param obj - Source object
331
+ * @returns Query string
332
+ * @example
333
+ * toQueryString({a: 1, b: 'test', c: [1, 2, 3]}) // 'a=1&b=test&c=1&c=2&c=3'
334
+ */
335
+ export const toQueryString = (obj) => {
336
+ if (!isObject(obj)) {
337
+ return '';
338
+ }
339
+ const params = [];
340
+ const addParam = (key, value) => {
341
+ if (value == null)
342
+ return;
343
+ if (Array.isArray(value)) {
344
+ value.forEach((item) => {
345
+ params.push(`${encodeURIComponent(key)}=${encodeURIComponent(item)}`);
346
+ });
347
+ }
348
+ else {
349
+ params.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);
350
+ }
351
+ };
352
+ for (const key in obj) {
353
+ addParam(key, obj[key]);
354
+ }
355
+ return params.join('&');
356
+ };
357
+ /**
358
+ * Parses a query string to an object
359
+ * @param queryString - Query string
360
+ * @returns Parsed object
361
+ * @example
362
+ * fromQueryString('a=1&b=test&c=1&c=2&c=3') // {a: '1', b: 'test', c: ['1', '2', '3']}
363
+ */
364
+ export const fromQueryString = (queryString) => {
365
+ if (!queryString || typeof queryString !== 'string') {
366
+ return {};
367
+ }
368
+ // Remove leading ?
369
+ const str = queryString.startsWith('?') ? queryString.slice(1) : queryString;
370
+ if (!str) {
371
+ return {};
372
+ }
373
+ const result = {};
374
+ const pairs = str.split('&');
375
+ for (const pair of pairs) {
376
+ const [key, value] = pair.split('=').map(decodeURIComponent);
377
+ if (key) {
378
+ if (key in result) {
379
+ // Handle duplicate keys as arrays
380
+ if (Array.isArray(result[key])) {
381
+ result[key].push(value || '');
382
+ }
383
+ else {
384
+ result[key] = [result[key], value || ''];
385
+ }
386
+ }
387
+ else {
388
+ result[key] = value || '';
389
+ }
390
+ }
391
+ }
392
+ return result;
393
+ };
394
+ /**
395
+ * Creates a frozen deep clone of an object
396
+ * @param obj - Source object
397
+ * @returns Deep frozen object
398
+ * @example
399
+ * const frozen = deepFreeze({a: {b: 1}})
400
+ * frozen.a.b = 2 // Error in strict mode
401
+ */
402
+ export const deepFreeze = (obj) => {
403
+ if (obj == null || typeof obj !== 'object') {
404
+ return obj;
405
+ }
406
+ // Freeze the object itself
407
+ Object.freeze(obj);
408
+ // Recursively freeze all properties
409
+ for (const key in obj) {
410
+ const value = obj[key];
411
+ if (value != null && typeof value === 'object') {
412
+ deepFreeze(value);
413
+ }
414
+ }
415
+ // Freeze symbols
416
+ const symbols = Object.getOwnPropertySymbols(obj);
417
+ for (const symbol of symbols) {
418
+ const value = obj[symbol];
419
+ if (value != null && typeof value === 'object') {
420
+ deepFreeze(value);
421
+ }
422
+ }
423
+ return obj;
424
+ };
425
+ /**
426
+ * Type guard for non-null object
427
+ * @param value - Value to check
428
+ * @returns True if value is a non-null object
429
+ */
430
+ export const isNonNullObject = (value) => {
431
+ return value != null && typeof value === 'object' && !Array.isArray(value);
432
+ };
@@ -0,0 +1 @@
1
+ var i=e=>e==null||Array.isArray(e)||typeof e=="function"||e instanceof Date||e instanceof RegExp||e instanceof Map||e instanceof Set||e instanceof Error?!1:typeof e=="object";var f=(e,r)=>{if(e==null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(e instanceof Map){let n=new Map;return e.forEach((t,s)=>{(!r||!r.some(o=>o.toString()===s.toString()))&&n.set(s,f(t))}),n}if(e instanceof Set){let n=new Set;return e.forEach(t=>{n.add(f(t))}),n}if(Array.isArray(e))return Array.from(e).map(n=>f(n));if(i(e)){let n={};for(let s in e)Object.prototype.hasOwnProperty.call(e,s)&&(!r||!r.some(o=>o.toString()===s.toString()))&&(n[s]=f(e[s]));let t=Object.getOwnPropertySymbols(e);for(let s of t)(!r||!r.some(o=>o.toString()===s.toString()))&&(n[s]=f(e[s]));return n}return e};var c=(e,r=!1)=>{if(Array.isArray(e))return e.map(t=>c(t,r));if(!i(e))return{};let n={};for(let t in e){let s=e[t];typeof s=="string"||typeof s=="number"||typeof s=="symbol"?n[s]=t:i(s)?r&&(n[t]=c(s,r)):Array.isArray(s)&&r&&(n[t]=s.map(o=>c(o,r)))}return n},T=(e,r)=>{if(Array.isArray(e))return e.filter(r);if(!i(e))return{};let n={};for(let t in e)r(e[t],t)&&(n[t]=e[t]);return n},u=(e,r=!1)=>{if(!i(e))return{};let n={};for(let t in e){let s=e[t];if(s!=null)if(r&&i(s)){let o=u(s,!0);Object.keys(o).length>0&&(n[t]=o)}else n[t]=s}return n},O=(e,r)=>{if(Array.isArray(e))return Array.isArray(r)?[...e,...r]:[...e,r];let n=f(e);for(let t in r)n[t]===void 0&&(n[t]=r[t]);return n},m=e=>i(e)?Object.keys(e).length:0,b=(e,r)=>{if(Array.isArray(e))return e.map(r);if(!i(e))return{};let n={};for(let t in e){let[s,o]=r(t,e[t]);n[s]=o}return n},R=(e,r)=>Array.isArray(e)?e.reduce((n,t)=>{let s=t[r];if(s==null)return n;let o=String(s);return n[o]||(n[o]=[]),n[o].push(t),n},{}):{},k=e=>{if(!i(e))return"";let r=[],n=(t,s)=>{s!=null&&(Array.isArray(s)?s.forEach(o=>{r.push(`${encodeURIComponent(t)}=${encodeURIComponent(o)}`)}):r.push(`${encodeURIComponent(t)}=${encodeURIComponent(s)}`))};for(let t in e)n(t,e[t]);return r.join("&")},S=e=>{if(!e||typeof e!="string")return{};let r=e.startsWith("?")?e.slice(1):e;if(!r)return{};let n={},t=r.split("&");for(let s of t){let[o,a]=s.split("=").map(decodeURIComponent);o&&(o in n?Array.isArray(n[o])?n[o].push(a||""):n[o]=[n[o],a||""]:n[o]=a||"")}return n},l=e=>{if(e==null||typeof e!="object")return e;Object.freeze(e);for(let n in e){let t=e[n];t!=null&&typeof t=="object"&&l(t)}let r=Object.getOwnPropertySymbols(e);for(let n of r){let t=e[n];t!=null&&typeof t=="object"&&l(t)}return e},w=e=>e!=null&&typeof e=="object"&&!Array.isArray(e);export{u as clean,l as deepFreeze,O as defaults,T as filter,S as fromQueryString,R as groupBy,c as invert,w as isNonNullObject,m as size,k as toQueryString,b as transform};
@@ -0,0 +1 @@
1
+ "use strict";var U=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var G=Object.prototype.hasOwnProperty;var H=(e,i)=>{for(var s in i)U(e,s,{get:i[s],enumerable:!0})},X=(e,i,s,r)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of Z(i))!G.call(e,n)&&n!==s&&U(e,n,{get:()=>i[n],enumerable:!(r=Q(i,n))||r.enumerable});return e};var Y=e=>X(U({},"__esModule",{value:!0}),e);var ce={};H(ce,{createOmitter:()=>ae,deepOmit:()=>D,deepOmitBy:()=>C,omit:()=>ie,omitBy:()=>z,omitNil:()=>oe,omitPath:()=>ye,pick:()=>le,pickBy:()=>fe,pickPath:()=>ue});module.exports=Y(ce);var m=e=>e==null||Array.isArray(e)||typeof e=="function"||e instanceof Date||e instanceof RegExp||e instanceof Map||e instanceof Set||e instanceof Error?!1:typeof e=="object";function k(e){if(typeof e!="object"||e===null)return!1;let i=Object.getPrototypeOf(e);return i===Object.prototype||i===null}var w=(e,i,s,r)=>{if(s>r)return;if(i.length===0)return e;let n=i[0],f=i.slice(1);if(n.type==="descendant"){let o=w(e,f,s+1,r);if(o!==void 0)return o;if(e&&typeof e=="object")if(Array.isArray(e)){let t=[];for(let l=0;l<e.length;l++){let a=w(e[l],i,s+1,r);a!==void 0&&(t[l]=a)}return t.length>0?t:void 0}else{let t={};for(let l in e)if(e.hasOwnProperty(l)){let a=w(e[l],i,s+1,r);a!==void 0&&(t[l]=a)}return Object.keys(t).length>0?t:void 0}return}switch(n.type){case"property":if(m(e)&&n.value&&String(n.value)in e){let o=e[String(n.value)],t=w(o,f,s+1,r);if(t!==void 0)return{[String(n.value)]:t}}break;case"index":if(Array.isArray(e)){let o=n.value;if(o>=0&&o<e.length){let t=w(e[o],f,s+1,r);if(t!==void 0){let l=new Array(e.length).filter(a=>a!==void 0);return l[o]=t,l}}}else if(e&&typeof e=="object"){let o=String(n.value);if(o in e){let t=w(e[o],f,s+1,r);if(t!==void 0)return{[o]:t}}}break;case"wildcard":if(e&&typeof e=="object")if(Array.isArray(e)){let o=[],t=!1;for(let l=0;l<e.length;l++){let a=w(e[l],f,s+1,r);a!==void 0&&(o[l]=a,t=!0)}return t?o:void 0}else{let o={},t=!1;for(let l in e)if(e.hasOwnProperty(l)){let a=w(e[l],f,s+1,r);a!==void 0&&(o[l]=a,t=!0)}return t?o:void 0}break;case"slice":if(Array.isArray(e)){let[o,t]=n.value,l=Math.max(0,o),a=Math.min(e.length,t===1/0?e.length:t),y=[],g=!1;for(let A=l;A<a;A++){let p=w(e[A],f,s+1,r);p!==void 0&&(y[A]=p,g=!0)}return g?y:void 0}break;case"union":if(Array.isArray(e)){let o=n.value,t=[],l=!1;for(let a of o)if(a>=0&&a<e.length){let y=w(e[a],f,s+1,r);y!==void 0&&(t[a]=y,l=!0)}return l?t:void 0}break;case"filter":if(Array.isArray(e)){let o=n.value,t=[],l=!1;for(let a=0;a<e.length;a++)if(o(e[a])){let y=w(e[a],f,s+1,r);y!==void 0&&(t[a]=y,l=!0)}return l?t:void 0}break}};var O=(e,i)=>{if(e==null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(e instanceof Map){let s=new Map;return e.forEach((r,n)=>{(!i||!i.some(f=>f.toString()===n.toString()))&&s.set(n,O(r))}),s}if(e instanceof Set){let s=new Set;return e.forEach(r=>{s.add(O(r))}),s}if(Array.isArray(e))return Array.from(e).map(s=>O(s));if(m(e)){let s={};for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(!i||!i.some(f=>f.toString()===n.toString()))&&(s[n]=O(e[n]));let r=Object.getOwnPropertySymbols(e);for(let n of r)(!i||!i.some(f=>f.toString()===n.toString()))&&(s[n]=O(e[n]));return s}return e};var N=(e,i)=>e===i,V=(e,i)=>{if(e.length!==i.length)return!1;for(let s=0;s<e.length;s++)if(Array.isArray(e[s])&&Array.isArray(i[s])){if(!V(e[s],i[s]))return!1}else if(m(e[s])&&m(i[s])){if(!B(e[s],i[s]))return!1}else if(e[s]!==i[s])return!1;return!0},B=(e,i)=>{let s=Object.keys(e),r=Object.keys(i);if(s.length!==r.length)return!1;for(let n of s){if(!(n in i))return!1;let f=e[n],o=i[n];if(Array.isArray(f)&&Array.isArray(o)){if(!V(f,o))return!1}else if(m(f)&&m(o)){if(!B(f,o))return!1}else if(f!==o)return!1}return!0},_=(e,i,s={})=>{let{includeDeleted:r=!1,includeAdded:n=!0,deepArrayComparison:f=!0,equalityFn:o=N,preserveStructure:t=!1}=s;if(e==null&&i==null)return{};if(e==null)return n?{...i}:{};if(i==null){if(r){let y={};for(let g in e)y[g]=void 0;return y}return{}}if(!m(e)||!m(i))return o(e,i)?{}:i;let l={},a=new Set;for(let y in i){a.add(y);let g=e[y],A=i[y];if(!(y in e)){n&&(l[y]=A);continue}if(Array.isArray(g)&&Array.isArray(A)){f?V(g,A)?t&&(l[y]=void 0):l[y]=A:g!==A?l[y]=A:t&&(l[y]=void 0);continue}if(m(g)&&m(A)){let p=_(g,A,s);Object.keys(p).length>0?l[y]=p:t&&(l[y]=void 0);continue}o(g,A)?t&&(l[y]=void 0):l[y]=A}if(r)for(let y in e)a.has(y)||(l[y]=void 0);return l},j=(e,i,s={})=>{let r=[],n=[],f=[],o={},{includeDeleted:t=!1,includeAdded:l=!0,deepArrayComparison:a=!0,equalityFn:y=N}=s;if(Array.isArray(e)&&Array.isArray(i)){let p=Math.max(e.length,i.length),d=[],c=!1;for(let u=0;u<p;u++){let T=`[${u}]`;if(u>=e.length)r.push(T),d[u]=i[u],c=!0;else if(u>=i.length)n.push(T),c=!0;else{let x=e[u],h=i[u];m(x)&&m(h)||Array.isArray(x)&&Array.isArray(h)?j(x,h,s).hasChanges?(f.push(T),d[u]=h,c=!0):d[u]=x:y(x,h)?d[u]=x:(f.push(T),d[u]=h,c=!0)}}return{changes:c?d:{},added:r,deleted:n,modified:f,hasChanges:c||n.length>0}}let g=(p,d,c="")=>{let u={added:[],deleted:[],modified:[]};if(Array.isArray(p)&&Array.isArray(d)){let T=Math.max(p.length,d.length);for(let x=0;x<T;x++){let h=c?`${c}[${x}]`:`[${x}]`;if(x>=p.length)u.added.push(h);else if(x>=d.length)u.deleted.push(h);else{let S=p[x],b=d[x];if(m(S)&&m(b)){let K=g(S,b,h);u.added.push(...K.added),u.deleted.push(...K.deleted),u.modified.push(...K.modified)}else if(Array.isArray(S)&&Array.isArray(b)){let K=g(S,b,h);u.added.push(...K.added),u.deleted.push(...K.deleted),u.modified.push(...K.modified)}else S!==b&&u.modified.push(h)}}return u}if(m(p)&&m(d)){let T=new Set([...Object.keys(p||{}),...Object.keys(d||{})]);for(let x of T){let h=p?.[x],S=d?.[x],b=c?`${c}.${x}`:x;if(!(x in(p||{})))u.added.push(b);else if(!(x in(d||{})))u.deleted.push(b);else if(Array.isArray(h)&&Array.isArray(S)){if(!V(h,S)){let K=g(h,S,b);u.added.push(...K.added),u.deleted.push(...K.deleted),u.modified.push(...K.modified)}}else if(m(h)&&m(S)){let K=g(h,S,b);u.added.push(...K.added),u.deleted.push(...K.deleted),u.modified.push(...K.modified)}else h!==S&&u.modified.push(b)}}return u};if(e==null&&i==null)return{changes:{},added:r,deleted:n,modified:f,hasChanges:!1};if(e==null){if(l&&i)for(let p in i)r.push(p),o[p]=i[p];return{changes:o,added:r,deleted:n,modified:f,hasChanges:r.length>0}}if(i==null){if(t)for(let p in e)n.push(p),o[p]=void 0;return{changes:o,added:r,deleted:n,modified:f,hasChanges:n.length>0}}let A=new Set;for(let p in i){A.add(p);let d=e[p],c=i[p];if(!(p in e)){l&&(r.push(p),o[p]=c);continue}let u=!1;if(Array.isArray(d)&&Array.isArray(c)){if(u=a?!V(d,c):d!==c,u){let T=g(d,c,p);r.push(...T.added),n.push(...T.deleted),f.push(...T.modified),o[p]=c}}else if(m(d)&&m(c)){let T=_(d,c,s);if(u=Object.keys(T).length>0,u){let x=g(d,c,p);r.push(...x.added),n.push(...x.deleted),f.push(...x.modified),o[p]=T}}else u=!y(d,c),u&&(f.push(p),o[p]=c)}for(let p in e)A.has(p)||(n.push(p),o[p]=void 0);return{changes:o,added:r,deleted:n,modified:f,hasChanges:r.length>0||n.length>0||f.length>0}};function ee(e){return!!(e&&(e.diff||e.changes)&&(e.modified||e.deleted||e.hasChanges))}var F=(e,i,s)=>{if(!ee(i)){let u=i,T=s||!1;if(Array.isArray(e)&&Array.isArray(u)){let h=T?e:[...e];u.length<h.length&&(h.length=u.length);for(let S=0;S<u.length;S++){let b=u[S];b!==void 0&&(m(h[S])&&m(b)||Array.isArray(h[S])&&Array.isArray(b)?h[S]=F(h[S],b,T):h[S]=b)}return h}if(!m(e))return u;if(!m(u))return e;let x=T?e:{...e};for(let h in u){let S=u[h];S===void 0?delete x[h]:Array.isArray(x[h])&&Array.isArray(S)||m(x[h])&&m(S)?x[h]=F(x[h],S,T):x[h]=S}return x}let{diff:r,added:n=[],deleted:f=[],modified:o=[],changes:t,keepRef:l}=i,a=s!==void 0?s:l,y=t||r;if(!y)return e;let g=new Set(n),A=new Set(f),p=new Set(o),d=u=>{if(n.length===0&&f.length===0&&o.length===0)return!0;let T=u.split(/[.\[\]]+/).filter(Boolean);for(let x=0;x<=T.length;x++){let h=T.slice(0,x).join("."),S=T.slice(0,x).map((b,K)=>/^\d+$/.test(b)?`[${b}]`:K>0?`.${b}`:b).join("");if(g.has(h)||g.has(S)||A.has(h)||A.has(S)||p.has(h)||p.has(S))return!0}return!1};if(Array.isArray(e)&&Array.isArray(y)){let u=a?e:[...e];u.length=y.length;for(let T=0;T<y.length;T++){let x=`[${T}]`,h=y[T];h!==void 0&&d(x)&&(m(u[T])&&m(h)||Array.isArray(u[T])&&Array.isArray(h)?u[T]=F(u[T],h,a):u[T]=h)}return u}if(!m(e))return y;if(!m(y))return e;let c=a?e:{...e};for(let u of f)u.includes(".")||u.includes("[")||d(u)&&delete c[u];for(let u in y){let T=y[u];d(u)&&(T===void 0?delete c[u]:Array.isArray(c[u])&&Array.isArray(T)||m(c[u])&&m(T)?c[u]=F(c[u],T,a):c[u]=T)}return c};var P=(e,i={})=>{let{type:s="auto",throwOnError:r=!1}=i;if(!e||typeof e!="string")return[];let n=[],f="",o=!1,t=!1,l="",a="",y=0,A=s==="auto"?(d=>d.includes("..")?"descendant":d.includes("[?(")?"filter":d.includes("[:")||d.includes("[0:")?"slice":d.includes("[,")||d.includes("[0,1]")?"union":d.includes("[*]")||d.includes(".*.")?"wildcard":d.includes("[]")?"array-wildcard":d.includes("[")&&d.includes("]")?"bracket":"dot")(e):s,p=d=>{let c=d.trim();if(c==="*"||c==="")return{type:"wildcard",value:c===""?"[]":"*",raw:c===""?"[]":d};if(c==="[]")return{type:"wildcard",value:"[]",raw:d};if(/^-?\d+$/.test(c))return{type:"index",value:parseInt(c,10),raw:d};if(c.includes(":")){let u=c.split(":").map(h=>h.trim()),T=u[0]===""?0:parseInt(u[0],10),x=u[1]===""?1/0:parseInt(u[1],10);if(isNaN(T)||isNaN(x)){if(r)throw new Error(`Invalid slice notation: ${d}`);return{type:"wildcard",value:"*",raw:d}}return{type:"slice",value:[T,x],raw:d}}if(c.includes(",")){let u=c.split(",").map(T=>{let x=parseInt(T.trim(),10);return isNaN(x)?-1:x}).filter(T=>T>=0);if(u.length===0){if(r)throw new Error(`Invalid union notation: ${d}`);return{type:"wildcard",value:"*",raw:d}}return{type:"union",value:u,raw:d}}if(c.startsWith("?(")&&c.endsWith(")")){let u=c.slice(2,-1);try{return{type:"filter",value:te(u),raw:d}}catch(T){if(r)throw T;return{type:"wildcard",value:"*",raw:d}}}return c.startsWith('"')&&c.endsWith('"')||c.startsWith("'")&&c.endsWith("'")?{type:"property",value:c.slice(1,-1),raw:d}:{type:"property",value:c,raw:d}};for(let d=0;d<e.length;d++){let c=e[d],u=e[d+1];if((c==='"'||c==="'")&&!t){t=!0,l=c;continue}else if(c===l&&t){t=!1,l="",c==='"'||c==="'"||(o?a+=c:f+=c);continue}if(t){o?a+=c:f+=c;continue}if(c==="["&&!o){f&&(n.push({type:"property",value:f,raw:f}),f=""),o=!0,a="";continue}if(c==="]"&&o&&!t){o=!1;let x=p(a);n.push(x);continue}let T=n.length>0?n[n.length-1]:null;if(c==="."&&!o&&!t){if(u==="."){let x=e.split("..")[0];n.push({type:"property",value:x,raw:x}),n.push({type:"descendant",value:"..",raw:".."}),d++}else f&&(f==="*"?n.push({type:"wildcard",value:f,raw:f}):n.push({type:"property",value:f,raw:f}),f="");continue}if(o)a+=c;else if(T&&T.type!=="descendant")f+=c;else{let x=e.split(T?.raw)[1];x!==void 0?f=x:f+=c}}return f&&n.push({type:"property",value:f,raw:f}),n.map(d=>{if(d.type==="property"&&typeof d.value=="string"&&/^-?\d+$/.test(d.value)){let c=parseInt(d.value,10);if(!isNaN(c))return{...d,type:"index",value:c}}return d})},te=e=>{let i=e.replace(/@\.([a-zA-Z_$][\w$]*)/g,(s,r)=>`item.${r}`).replace(/@/g,"item");try{return new Function("item",`return ${i}`)}catch{throw new Error(`Invalid filter expression: ${e}`)}},M=e=>{let i=[];for(let s=0;s<e.length;s++){let r=e[s],n=s>0?e[s-1]:null;switch(r.type){case"property":/[\.\[\]\s]/.test(String(r.value))?i.push(`["${r.value}"]`):(n&&n.type!=="descendant"&&i.push("."),i.push(String(r.value)));break;case"index":i.push(`[${r.value}]`);break;case"wildcard":r.value==="[]"?i.push("[]"):i.push("[*]");break;case"slice":let[o,t]=r.value;i.push(`[${o}:${t===1/0?"":t}]`);break;case"union":let l=r.value;i.push(`[${l.join(",")}]`);break;case"filter":i.push(`[?(${r.raw?.slice(2,-1)||""})]`);break;case"descendant":i.push("..");break}}return i.join("").replace(/\.\[/g,"[")};function ne(e,i){for(let s in i){let r=e[s],n=i[s],f=j(r,n);Array.isArray(r)&&Array.isArray(n)?(r.length=0,r.push(...n)):typeof r=="object"&&typeof n=="object"&&r&&n&&f.hasChanges?F(r,n):e[s]=n}}function $(e,...i){if(i.length===0)return O(e);let s={preserveTarget:!1,strict:!1},r=i,n=i[i.length-1];n&&typeof n=="object"&&("preserveTarget"in n||"strict"in n)&&(s={...s,...n},r=i.slice(0,-1));let f=s.preserveTarget?e:O(e),o=Array.isArray(f);for(let t of r)if(t&&Array.isArray(t)!==o)throw new Error("Cannot mix arrays and objects in deepMergeWithOptions");for(let t of r)if(t!=null)if(o){let l=f,a=t;if(s.strict)for(let y=0;y<l.length&&y<a.length;y++)k(l[y])&&k(a[y])?l[y]=$(l[y],a[y],s):typeof l[y]==typeof a[y]&&(l[y]=O(a[y]));else ne(l,a)}else{if(!k(t))continue;let l=f,a=t;for(let g in a){if(!Object.prototype.hasOwnProperty.call(a,g))continue;let A=a[g];if(s.strict&&!(g in l))continue;let p=l[g];p===void 0?l[g]=O(A):Array.isArray(A)&&Array.isArray(p)?s.strict?l[g]=$(p,A,s):l[g]=[...p,...A.map(d=>O(d))]:k(A)&&k(p)?l[g]=$(p,A,s):l[g]=O(A)}let y=Object.getOwnPropertySymbols(a);for(let g of y){if(s.strict&&!(g in l))continue;let A=a[g],p=l[g];p===void 0?l[g]=O(A):Array.isArray(A)&&Array.isArray(p)?s.strict?l[g]=$(p,A,s):l[g]=[...p,...A.map(d=>O(d))]:k(A)&&k(p)?l[g]=$(p,A,s):l[g]=O(A)}}return f}function W(e,...i){return $(e,...i,{preserveTarget:!0})}var q=(e,i,s)=>{let r=P(i),n=e;for(let f=0;f<r.length;f++){let o=r[f],t=f===r.length-1;switch(o.type){case"property":if(t)n[String(o.value)]=s;else{if(!n[String(o.value)]){let a=r[f+1];n[String(o.value)]=a.type==="index"||a.type==="slice"||a.type==="union"||a.type==="wildcard"?[]:{}}n=n[String(o.value)]}break;case"index":Array.isArray(n)||(n=[]);let l=o.value;if(t){if(l>=n.length)for(let a=n.length;a<=l;a++)n.push(void 0);n[l]=s}else{if(!n[l]){let a=r[f+1];n[l]=a.type==="index"||a.type==="slice"||a.type==="union"||a.type==="wildcard"?[]:{}}n=n[l]}break;case"wildcard":if(Array.isArray(n))if(t)for(let a=0;a<n.length;a++)n[a]=s;else{let a=r[f+1];for(let y=0;y<n.length;y++)n[y]||(n[y]=a.type==="index"||a.type==="slice"||a.type==="union"||a.type==="wildcard"?[]:{});n.length>0&&(n=n[0])}break}}};function I(e,i,s={}){let{preserveStructure:r,multiple:n,throwOnError:f=!1,defaultValue:o,maxDepth:t=20}=s;if(!e||typeof e!="object")return o;if(!i)return e;if(Array.isArray(i))if(r){let y={};for(let g of i){let A=I(e,g,{...s,preserveStructure:!1});A!==void 0&&q(y,g,A)}return y}else return i.map(y=>I(e,y,{...s,preserveStructure:!1}));let l=P(i,{...s,throwOnError:f});if(l.length===0)return e;if(typeof r>"u"||r===!1){let y=re(e,i);return n===!1&&Array.isArray(y)?y[0]:y===void 0&&o!==void 0?o:y}let a=w(e,l,0,t);return a===void 0&&o!==void 0?o:a}function re(e,i,s={}){let{createMissing:r=!1,add:n=!1,debug:f=!1}=s,o=P(i),t=e,l=!1,a="",y=i;if(typeof t=="object"&&!Array.isArray(t)&&y.length>0&&t[y])return t=t[y],t;for(let g=0;g<o.length;g++){let A=o[g],p=o.length>1?g===o.length-1:!1;if(t===null&&!r)return;let d=o[g+1];switch(A.type){case"property":if(t&&typeof t=="object")if(Array.isArray(t)){if(typeof A.value=="number"){let c=A.value;if(r&&c>=t.length)for(let u=t.length;u<=c;u++)t.push(void 0);if(r&&(t[c]===null||t[c]===void 0)&&(!p||l)&&(d?t[c]=d.type==="index"||d.type==="slice"||d.type==="union"||d.type==="wildcard"?[]:{}:t[c]=null,l=!1),t=t[c],d){l=!0;continue}}else n?t.push({[String(A.value)]:null}):t=t.map(c=>c[String(A.value)]);if(d)continue;return J(t)}else{if(t[a]&&a.split(".").length>=2){t=t[a];continue}if(r&&(t[String(A.value)]===null||t[String(A.value)]===void 0)&&(!p||l)&&(d?t[String(A.value)]=d.type==="index"||d.type==="slice"||d.type==="union"||d.type==="wildcard"?[]:{}:t[String(A.value)]=null,l=!1,t=t[String(A.value)],d)){l=!0;continue}if(t?(!t[String(A.value)]&&r&&(t[String(A.value)]=null),t=t[String(A.value)]):t={[String(A.value)]:null},d)continue}else if(r)t={},t[String(A.value)]=d.type==="index"||d.type==="slice"||d.type==="union"||d.type==="wildcard"||s.type==="array"?[]:{},t=t[String(A.value)];else return;break;case"index":case"wildcard":if(Array.isArray(t)){if(A.type==="index"){let c=A.value;if(c<0){t=t[t.length-Math.abs(c)];continue}if(r&&(c>=t.length||t[c]==null||t[c]==null)&&!p){for(let u=t.length;u<=c;u++)t.push(void 0);d&&(t[c]=d.type==="index"||d.type==="slice"||d.type==="union"||d.type==="wildcard"?[]:{})}t=t[c]}else if(!p)continue}else if(r){let c=o[g+1];t=[];let u=A.value;for(let T=0;T<=u;T++)t.push(void 0);t[u]=c.type==="index"||c.type==="slice"||c.type==="union"||c.type==="wildcard"||s.type==="array"?[]:{},t=t[u]}else{if(A.type==="index"&&typeof t=="object"&&t&&t[String(A.value)]!==void 0){t=t[String(A.value)];continue}if(typeof t=="object"){t=Object.values(t);continue}return}break;default:return}}return J(t)}function J(e){return Array.isArray(e)?e.filter(i=>typeof i<"u"):e}var R=(e,i,s={})=>{let{throwOnError:r=!1}=s;if(Array.isArray(i))return i.map(t=>R(e,t,s));let n=P(i,{throwOnError:r});if(n.length===0)return!1;let f=n[n.length-1];if(n.some(t=>t.type==="wildcard"||t.type==="slice"||t.type==="union")){let t=L(e,i,s),l=!1;for(let a of t)se(e,a)&&(l=!0);return l}let o=e;for(let t=0;t<n.length-1;t++){let l=n[t];if(o==null)return!1;switch(l.type){case"property":o=o[String(l.value)];break;case"index":if(!Array.isArray(o))return!1;let a=l.value;if(a<0||a>=o.length)return!1;o=o[a];break;default:return!1}}if(o==null)return!1;switch(f.type){case"property":if(String(f.value)in o)return delete o[String(f.value)],!0;break;case"index":if(!Array.isArray(o))return!1;let t=f.value;if(t>=0&&t<o.length)return o.splice(t,1),!0;break}return!1},se=(e,i)=>{let s=P(i);if(s.length===0)return!1;let r=s[s.length-1],n=e;for(let f=0;f<s.length-1;f++){let o=s[f];if(n==null)return!1;switch(o.type){case"property":n=n[String(o.value)];break;case"index":if(!Array.isArray(n))return!1;let t=o.value;if(t<0||t>=n.length)return!1;n=n[t];break;default:return!1}}if(n==null)return!1;switch(r.type){case"property":if(String(r.value)in n)return delete n[String(r.value)],!0;break;case"index":if(!Array.isArray(n))return!1;let f=r.value;if(f>=0&&f<n.length)return n.splice(f,1),!0;break}return!1},L=(e,i,s={})=>{let{format:r="selector",maxDepth:n=20}=s;if(i&&Array.isArray(i)){let t=[];for(let l of i){let a=L(e,l,s);t.push(...a)}return t}if(i){let t=P(i,s);return v(e,t,0,n).map(a=>r==="selector"?a.path:a.stringPath)}let f=[],o=(t,l=[],a=[],y=0)=>{if(!(y>n)){if(l.length>0){let g=M(l);f.push({path:g,stringPath:a.join(".")})}if(t&&typeof t=="object")if(Array.isArray(t))for(let g=0;g<t.length;g++)o(t[g],[...l,{type:"index",value:g,raw:`[${g}]`}],[...a,`[${g}]`],y+1);else for(let g in t)t.hasOwnProperty(g)&&o(t[g],[...l,{type:"property",value:g,raw:g}],[...a,g],y+1)}};return o(e),f.map(t=>r==="selector"?t.path:t.stringPath)};function v(e,i,s,r,n=[],f=[]){if(s>r)return[];if(i.length===0)return[{value:e,path:M(n),stringPath:f.join(".")}];let o=i[0],t=i.slice(1),l=[];if(o.type==="descendant"){if(l.push(...v(e,t,s+1,r,n,f)),e&&typeof e=="object")if(Array.isArray(e))for(let a=0;a<e.length;a++)l.push(...v(e[a],i,s+1,r,[...n,{type:"index",value:a,raw:`[${a}]`}],[...f,`[${a}]`]));else for(let a in e)e.hasOwnProperty(a)&&l.push(...v(e[a],i,s+1,r,[...n,{type:"property",value:a,raw:a}],[...f,a]));return l}switch(o.type){case"property":if(e&&typeof e=="object"&&String(o.value)in e){let a=e[String(o.value)];l.push(...v(a,t,s+1,r,[...n,o],[...f,String(o.value)]))}break;case"index":if(Array.isArray(e)){let a=o.value;a>=0&&a<e.length&&l.push(...v(e[a],t,s+1,r,[...n,o],[...f,`[${a}]`]))}else if(e&&typeof e=="object"){let a=String(o.value);a in e&&l.push(...v(e[a],t,s+1,r,[...n,{...o,type:"property"}],[...f,a]))}break;case"wildcard":if(e&&typeof e=="object")if(Array.isArray(e))for(let a=0;a<e.length;a++)l.push(...v(e[a],t,s+1,r,[...n,{type:"index",value:a,raw:`[${a}]`}],[...f,`[${a}]`]));else for(let a in e)e.hasOwnProperty(a)&&l.push(...v(e[a],t,s+1,r,[...n,{type:"property",value:a,raw:a}],[...f,a]));break;case"slice":if(Array.isArray(e)){let[a,y]=o.value,g=Math.max(0,a),A=Math.min(e.length,y===1/0?e.length:y);for(let p=g;p<A;p++)l.push(...v(e[p],t,s+1,r,[...n,{type:"index",value:p,raw:`[${p}]`}],[...f,`[${p}]`]))}break;case"union":if(Array.isArray(e)){let a=o.value;for(let y of a)y>=0&&y<e.length&&l.push(...v(e[y],t,s+1,r,[...n,{type:"index",value:y,raw:`[${y}]`}],[...f,`[${y}]`]))}break;case"filter":if(Array.isArray(e)){let a=o.value;for(let y=0;y<e.length;y++)a(e[y])&&l.push(...v(e[y],t,s+1,r,[...n,{type:"index",value:y,raw:`[${y}]`}],[...f,`[${y}]`]))}break}return l}function ie(e,i){if(!m(e))return{};let s={...e};for(let r of i)delete s[r];return s}function D(e,i){if(e==null||typeof e!="object")return e;if(Array.isArray(e))return e.map(r=>D(r,i));let s={};for(let[r,n]of Object.entries(e))i.includes(r)||(s[r]=D(n,i));return s}function ae(e){return i=>{if(!m(i))return{};let s={...i};for(let r of e)r in s&&delete s[r];return s}}function z(e,i){if(!m(e))return{};let s={};for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&!i(e[r],r,e)&&(s[r]=e[r]);return s}function oe(e){return z(e,i=>i==null)}function le(e,i){if(!m(e))return{};let s={};for(let r of i)r in e&&(s[r]=e[r]);return s}function fe(e,i){if(!m(e))return{};let s={};for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&i(e[r],r,e)&&(s[r]=e[r]);return s}function ye(e,i,s){if(!m(e))return{};let r=JSON.parse(JSON.stringify(e)),n=Array.isArray(i)?i:[i];for(let o=0;o<n.length;o++){let t=n[o],l=n[o+1];if(!t||t==="")continue;let a=P(t);if(t.includes("*")||t.includes("[")||a.length>1){let A=function(p,d=""){if(m(p)){if(Array.isArray(p)){p.forEach((c,u)=>{A(c,d?`${d}[${u}]`:`[${u}]`)});return}for(let c in p)if(Object.prototype.hasOwnProperty.call(p,c)){let u=d?`${d}.${c}`:c;g.push({fullPath:u,segments:P(u)}),A(p[c],u)}}};var f=A;let y=I(r,t,{preserveStructure:!0});if(y===void 0)continue;let g=[];A(y);for(let{fullPath:p,segments:d}of g){let c=[...d],u=c.pop();if(!u)continue;let T=c.map(K=>K.type==="index"?`[${K.value}]`:K.value).join(".").replace(/\.\[/g,"["),x=I(r,T.length>0?T:p,{preserveStructure:!0}),h=T?x:r;if(!h)continue;let S=String(u.value),b=h[S];if(s){let K=s(b,p,r);if(K===!0)if(u.type==="index"&&Array.isArray(h)){let E=u.value;E>=0&&E<h.length&&h.splice(E,1)}else R(r,n[o]);else K!==!1&&(h[S]=K)}else if(u.type==="index"&&Array.isArray(h)){let K=u.value;K>=0&&K<h.length&&h.splice(K,1)}else R(r,n[o])}}else{let y=t;if(typeof y=="string"&&y in r)if(s){let g=s(r[y],t,r);g===!0?delete r[y]:g!==!1&&(r[y]=g)}else R(r,n[o])}}return r}function ue(e,i,s){if(!m(e))return{};if(Array.isArray(i)){let f={};for(let o of i){let t=I(e,o,{preserveStructure:!0});if(t!==void 0)if(s){let l=(y,g)=>{if(m(y)){if(Array.isArray(y))return y.map((p,d)=>l(p,`${g}[${d}]`));let A={};for(let p in y)if(Object.prototype.hasOwnProperty.call(y,p)){let d=g?`${g}.${p}`:p;A[p]=l(y[p],d)}return A}return s(y,g,e)},a=l(t,o);W(f,a)}else Object.assign(f,W(f,t))}return f}let r=Array.isArray(i)?i[0]:i,n=I(e,r,{preserveStructure:!0});if(n===void 0)return{};if(s){let f=(o,t)=>{if(m(o)){if(Array.isArray(o))return o.map((a,y)=>f(a,`${t}[${y}]`));let l={};for(let a in o)if(Object.prototype.hasOwnProperty.call(o,a)){let y=t?`${t}.${a}`:a;l[a]=f(o[a],y)}return l}return s(o,t,e)};return f(n,r)}return n}function C(e,i){if(!m(e))return e;if(Array.isArray(e))return e.map(r=>C(r,i));let s={};for(let r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;let n=e[r];i(n,r,e)||(m(n)?s[r]=C(n,i):Array.isArray(n)?s[r]=n.map(f=>C(f,i)):s[r]=n)}return s}