@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 @@
1
+ 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";var w=(e,r,n,a)=>{if(n>a)return;if(r.length===0)return e;let s=r[0],i=r.slice(1);if(s.type==="descendant"){let o=w(e,i,n+1,a);if(o!==void 0)return o;if(e&&typeof e=="object")if(Array.isArray(e)){let t=[];for(let f=0;f<e.length;f++){let l=w(e[f],r,n+1,a);l!==void 0&&(t[f]=l)}return t.length>0?t:void 0}else{let t={};for(let f in e)if(e.hasOwnProperty(f)){let l=w(e[f],r,n+1,a);l!==void 0&&(t[f]=l)}return Object.keys(t).length>0?t:void 0}return}switch(s.type){case"property":if(m(e)&&s.value&&String(s.value)in e){let o=e[String(s.value)],t=w(o,i,n+1,a);if(t!==void 0)return{[String(s.value)]:t}}break;case"index":if(Array.isArray(e)){let o=s.value;if(o>=0&&o<e.length){let t=w(e[o],i,n+1,a);if(t!==void 0){let f=new Array(e.length).filter(l=>l!==void 0);return f[o]=t,f}}}else if(e&&typeof e=="object"){let o=String(s.value);if(o in e){let t=w(e[o],i,n+1,a);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 f=0;f<e.length;f++){let l=w(e[f],i,n+1,a);l!==void 0&&(o[f]=l,t=!0)}return t?o:void 0}else{let o={},t=!1;for(let f in e)if(e.hasOwnProperty(f)){let l=w(e[f],i,n+1,a);l!==void 0&&(o[f]=l,t=!0)}return t?o:void 0}break;case"slice":if(Array.isArray(e)){let[o,t]=s.value,f=Math.max(0,o),l=Math.min(e.length,t===1/0?e.length:t),y=[],A=!1;for(let p=f;p<l;p++){let g=w(e[p],i,n+1,a);g!==void 0&&(y[p]=g,A=!0)}return A?y:void 0}break;case"union":if(Array.isArray(e)){let o=s.value,t=[],f=!1;for(let l of o)if(l>=0&&l<e.length){let y=w(e[l],i,n+1,a);y!==void 0&&(t[l]=y,f=!0)}return f?t:void 0}break;case"filter":if(Array.isArray(e)){let o=s.value,t=[],f=!1;for(let l=0;l<e.length;l++)if(o(e[l])){let y=w(e[l],i,n+1,a);y!==void 0&&(t[l]=y,f=!0)}return f?t:void 0}break}};import{isDate as X}from"@fluixi/utils/primitive";import{isClass as Te,isObject as xe}from"@fluixi/utils/object";import{isArray as me}from"@fluixi/utils/array";import{isFunction as Ke}from"@fluixi/utils/functions";function D(e){let r=typeof e;return e===null||r==="string"||r==="number"||r==="boolean"||r==="symbol"||r==="bigint"||r==="undefined"||X(e)}var I=(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((a,s)=>{(!r||!r.some(i=>i.toString()===s.toString()))&&n.set(s,I(a))}),n}if(e instanceof Set){let n=new Set;return e.forEach(a=>{n.add(I(a))}),n}if(Array.isArray(e))return Array.from(e).map(n=>I(n));if(m(e)){let n={};for(let s in e)Object.prototype.hasOwnProperty.call(e,s)&&(!r||!r.some(i=>i.toString()===s.toString()))&&(n[s]=I(e[s]));let a=Object.getOwnPropertySymbols(e);for(let s of a)(!r||!r.some(i=>i.toString()===s.toString()))&&(n[s]=I(e[s]));return n}return e};var W=(e,r)=>e===r,V=(e,r)=>{if(e.length!==r.length)return!1;for(let n=0;n<e.length;n++)if(Array.isArray(e[n])&&Array.isArray(r[n])){if(!V(e[n],r[n]))return!1}else if(m(e[n])&&m(r[n])){if(!N(e[n],r[n]))return!1}else if(e[n]!==r[n])return!1;return!0},N=(e,r)=>{let n=Object.keys(e),a=Object.keys(r);if(n.length!==a.length)return!1;for(let s of n){if(!(s in r))return!1;let i=e[s],o=r[s];if(Array.isArray(i)&&Array.isArray(o)){if(!V(i,o))return!1}else if(m(i)&&m(o)){if(!N(i,o))return!1}else if(i!==o)return!1}return!0},_=(e,r,n={})=>{let{includeDeleted:a=!1,includeAdded:s=!0,deepArrayComparison:i=!0,equalityFn:o=W,preserveStructure:t=!1}=n;if(e==null&&r==null)return{};if(e==null)return s?{...r}:{};if(r==null){if(a){let y={};for(let A in e)y[A]=void 0;return y}return{}}if(!m(e)||!m(r))return o(e,r)?{}:r;let f={},l=new Set;for(let y in r){l.add(y);let A=e[y],p=r[y];if(!(y in e)){s&&(f[y]=p);continue}if(Array.isArray(A)&&Array.isArray(p)){i?V(A,p)?t&&(f[y]=void 0):f[y]=p:A!==p?f[y]=p:t&&(f[y]=void 0);continue}if(m(A)&&m(p)){let g=_(A,p,n);Object.keys(g).length>0?f[y]=g:t&&(f[y]=void 0);continue}o(A,p)?t&&(f[y]=void 0):f[y]=p}if(a)for(let y in e)l.has(y)||(f[y]=void 0);return f},C=(e,r,n={})=>{let a=[],s=[],i=[],o={},{includeDeleted:t=!1,includeAdded:f=!0,deepArrayComparison:l=!0,equalityFn:y=W}=n;if(Array.isArray(e)&&Array.isArray(r)){let g=Math.max(e.length,r.length),c=[],d=!1;for(let u=0;u<g;u++){let T=`[${u}]`;if(u>=e.length)a.push(T),c[u]=r[u],d=!0;else if(u>=r.length)s.push(T),d=!0;else{let x=e[u],h=r[u];m(x)&&m(h)||Array.isArray(x)&&Array.isArray(h)?C(x,h,n).hasChanges?(i.push(T),c[u]=h,d=!0):c[u]=x:y(x,h)?c[u]=x:(i.push(T),c[u]=h,d=!0)}}return{changes:d?c:{},added:a,deleted:s,modified:i,hasChanges:d||s.length>0}}let A=(g,c,d="")=>{let u={added:[],deleted:[],modified:[]};if(Array.isArray(g)&&Array.isArray(c)){let T=Math.max(g.length,c.length);for(let x=0;x<T;x++){let h=d?`${d}[${x}]`:`[${x}]`;if(x>=g.length)u.added.push(h);else if(x>=c.length)u.deleted.push(h);else{let S=g[x],K=c[x];if(m(S)&&m(K)){let b=A(S,K,h);u.added.push(...b.added),u.deleted.push(...b.deleted),u.modified.push(...b.modified)}else if(Array.isArray(S)&&Array.isArray(K)){let b=A(S,K,h);u.added.push(...b.added),u.deleted.push(...b.deleted),u.modified.push(...b.modified)}else S!==K&&u.modified.push(h)}}return u}if(m(g)&&m(c)){let T=new Set([...Object.keys(g||{}),...Object.keys(c||{})]);for(let x of T){let h=g?.[x],S=c?.[x],K=d?`${d}.${x}`:x;if(!(x in(g||{})))u.added.push(K);else if(!(x in(c||{})))u.deleted.push(K);else if(Array.isArray(h)&&Array.isArray(S)){if(!V(h,S)){let b=A(h,S,K);u.added.push(...b.added),u.deleted.push(...b.deleted),u.modified.push(...b.modified)}}else if(m(h)&&m(S)){let b=A(h,S,K);u.added.push(...b.added),u.deleted.push(...b.deleted),u.modified.push(...b.modified)}else h!==S&&u.modified.push(K)}}return u};if(e==null&&r==null)return{changes:{},added:a,deleted:s,modified:i,hasChanges:!1};if(e==null){if(f&&r)for(let g in r)a.push(g),o[g]=r[g];return{changes:o,added:a,deleted:s,modified:i,hasChanges:a.length>0}}if(r==null){if(t)for(let g in e)s.push(g),o[g]=void 0;return{changes:o,added:a,deleted:s,modified:i,hasChanges:s.length>0}}let p=new Set;for(let g in r){p.add(g);let c=e[g],d=r[g];if(!(g in e)){f&&(a.push(g),o[g]=d);continue}let u=!1;if(Array.isArray(c)&&Array.isArray(d)){if(u=l?!V(c,d):c!==d,u){let T=A(c,d,g);a.push(...T.added),s.push(...T.deleted),i.push(...T.modified),o[g]=d}}else if(m(c)&&m(d)){let T=_(c,d,n);if(u=Object.keys(T).length>0,u){let x=A(c,d,g);a.push(...x.added),s.push(...x.deleted),i.push(...x.modified),o[g]=T}}else u=!y(c,d),u&&(i.push(g),o[g]=d)}for(let g in e)p.has(g)||(s.push(g),o[g]=void 0);return{changes:o,added:a,deleted:s,modified:i,hasChanges:a.length>0||s.length>0||i.length>0}};function Y(e){return!!(e&&(e.diff||e.changes)&&(e.modified||e.deleted||e.hasChanges))}var O=(e,r,n)=>{if(!Y(r)){let u=r,T=n||!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 K=u[S];K!==void 0&&(m(h[S])&&m(K)||Array.isArray(h[S])&&Array.isArray(K)?h[S]=O(h[S],K,T):h[S]=K)}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]=O(x[h],S,T):x[h]=S}return x}let{diff:a,added:s=[],deleted:i=[],modified:o=[],changes:t,keepRef:f}=r,l=n!==void 0?n:f,y=t||a;if(!y)return e;let A=new Set(s),p=new Set(i),g=new Set(o),c=u=>{if(s.length===0&&i.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((K,b)=>/^\d+$/.test(K)?`[${K}]`:b>0?`.${K}`:K).join("");if(A.has(h)||A.has(S)||p.has(h)||p.has(S)||g.has(h)||g.has(S))return!0}return!1};if(Array.isArray(e)&&Array.isArray(y)){let u=l?e:[...e];u.length=y.length;for(let T=0;T<y.length;T++){let x=`[${T}]`,h=y[T];h!==void 0&&c(x)&&(m(u[T])&&m(h)||Array.isArray(u[T])&&Array.isArray(h)?u[T]=O(u[T],h,l):u[T]=h)}return u}if(!m(e))return y;if(!m(y))return e;let d=l?e:{...e};for(let u of i)u.includes(".")||u.includes("[")||c(u)&&delete d[u];for(let u in y){let T=y[u];c(u)&&(T===void 0?delete d[u]:Array.isArray(d[u])&&Array.isArray(T)||m(d[u])&&m(T)?d[u]=O(d[u],T,l):d[u]=T)}return d};var v=(e,r={})=>{let{type:n="auto",throwOnError:a=!1}=r;if(!e||typeof e!="string")return[];let s=[],i="",o=!1,t=!1,f="",l="",y=0,p=n==="auto"?(c=>c.includes("..")?"descendant":c.includes("[?(")?"filter":c.includes("[:")||c.includes("[0:")?"slice":c.includes("[,")||c.includes("[0,1]")?"union":c.includes("[*]")||c.includes(".*.")?"wildcard":c.includes("[]")?"array-wildcard":c.includes("[")&&c.includes("]")?"bracket":"dot")(e):n,g=c=>{let d=c.trim();if(d==="*"||d==="")return{type:"wildcard",value:d===""?"[]":"*",raw:d===""?"[]":c};if(d==="[]")return{type:"wildcard",value:"[]",raw:c};if(/^-?\d+$/.test(d))return{type:"index",value:parseInt(d,10),raw:c};if(d.includes(":")){let u=d.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(a)throw new Error(`Invalid slice notation: ${c}`);return{type:"wildcard",value:"*",raw:c}}return{type:"slice",value:[T,x],raw:c}}if(d.includes(",")){let u=d.split(",").map(T=>{let x=parseInt(T.trim(),10);return isNaN(x)?-1:x}).filter(T=>T>=0);if(u.length===0){if(a)throw new Error(`Invalid union notation: ${c}`);return{type:"wildcard",value:"*",raw:c}}return{type:"union",value:u,raw:c}}if(d.startsWith("?(")&&d.endsWith(")")){let u=d.slice(2,-1);try{return{type:"filter",value:ee(u),raw:c}}catch(T){if(a)throw T;return{type:"wildcard",value:"*",raw:c}}}return d.startsWith('"')&&d.endsWith('"')||d.startsWith("'")&&d.endsWith("'")?{type:"property",value:d.slice(1,-1),raw:c}:{type:"property",value:d,raw:c}};for(let c=0;c<e.length;c++){let d=e[c],u=e[c+1];if((d==='"'||d==="'")&&!t){t=!0,f=d;continue}else if(d===f&&t){t=!1,f="",d==='"'||d==="'"||(o?l+=d:i+=d);continue}if(t){o?l+=d:i+=d;continue}if(d==="["&&!o){i&&(s.push({type:"property",value:i,raw:i}),i=""),o=!0,l="";continue}if(d==="]"&&o&&!t){o=!1;let x=g(l);s.push(x);continue}let T=s.length>0?s[s.length-1]:null;if(d==="."&&!o&&!t){if(u==="."){let x=e.split("..")[0];s.push({type:"property",value:x,raw:x}),s.push({type:"descendant",value:"..",raw:".."}),c++}else i&&(i==="*"?s.push({type:"wildcard",value:i,raw:i}):s.push({type:"property",value:i,raw:i}),i="");continue}if(o)l+=d;else if(T&&T.type!=="descendant")i+=d;else{let x=e.split(T?.raw)[1];x!==void 0?i=x:i+=d}}return i&&s.push({type:"property",value:i,raw:i}),s.map(c=>{if(c.type==="property"&&typeof c.value=="string"&&/^-?\d+$/.test(c.value)){let d=parseInt(c.value,10);if(!isNaN(d))return{...c,type:"index",value:d}}return c})},ee=e=>{let r=e.replace(/@\.([a-zA-Z_$][\w$]*)/g,(n,a)=>`item.${a}`).replace(/@/g,"item");try{return new Function("item",`return ${r}`)}catch{throw new Error(`Invalid filter expression: ${e}`)}};var q=(e,r,n)=>{let a=v(r),s=e;for(let i=0;i<a.length;i++){let o=a[i],t=i===a.length-1;switch(o.type){case"property":if(t)s[String(o.value)]=n;else{if(!s[String(o.value)]){let l=a[i+1];s[String(o.value)]=l.type==="index"||l.type==="slice"||l.type==="union"||l.type==="wildcard"?[]:{}}s=s[String(o.value)]}break;case"index":Array.isArray(s)||(s=[]);let f=o.value;if(t){if(f>=s.length)for(let l=s.length;l<=f;l++)s.push(void 0);s[f]=n}else{if(!s[f]){let l=a[i+1];s[f]=l.type==="index"||l.type==="slice"||l.type==="union"||l.type==="wildcard"?[]:{}}s=s[f]}break;case"wildcard":if(Array.isArray(s))if(t)for(let l=0;l<s.length;l++)s[l]=n;else{let l=a[i+1];for(let y=0;y<s.length;y++)s[y]||(s[y]=l.type==="index"||l.type==="slice"||l.type==="union"||l.type==="wildcard"?[]:{});s.length>0&&(s=s[0])}break}}};function $(e,r,n={}){let{preserveStructure:a,multiple:s,throwOnError:i=!1,defaultValue:o,maxDepth:t=20}=n;if(!e||typeof e!="object")return o;if(!r)return e;if(Array.isArray(r))if(a){let y={};for(let A of r){let p=$(e,A,{...n,preserveStructure:!1});p!==void 0&&q(y,A,p)}return y}else return r.map(y=>$(e,y,{...n,preserveStructure:!1}));let f=v(r,{...n,throwOnError:i});if(f.length===0)return e;if(typeof a>"u"||a===!1){let y=F(e,r);return s===!1&&Array.isArray(y)?y[0]:y===void 0&&o!==void 0?o:y}let l=w(e,f,0,t);return l===void 0&&o!==void 0?o:l}function Z(e,r,n,a,s){let i=I(e),o=[];if(typeof r<"u"&&o.push(r),typeof n<"u"&&o.push(n),typeof a<"u"&&o.push(a),typeof s<"u"&&o.push(s),D(i))return typeof r=="function"?r(i):r;if(o.length===1){if(typeof o[0]=="function")return le(i,o[0]);if(Array.isArray(o[0])){if(Array.isArray(i))if(r.length===0)for(let t=0;t<i.length;t++)i.pop();else return C([...i],[...o[0]]).hasChanges&&O(i,[...o[0]],!0),i}else typeof o[0]=="object"&&!Array.isArray(o[0])?typeof i=="object"&&!Array.isArray(i)&&O(i,o[0],!0):i=o[0];return i}if(Array.isArray(i)){if(typeof r=="string"&&(ne(n)||typeof n=="string")&&o.length===3){if(Array.isArray(n)){for(let t=0;t<n.length;t++)P(i,r,a,n[t]);return i}return P(i,r,a,n)}if(typeof r=="string"&&typeof n=="function"&&o.length===2)return P(i,r,n)}if((typeof r=="string"||typeof r=="number")&&(o.length===2||o.length===3))return te(n)?E(i,r,n,a):typeof r=="number"?typeof a<"u"?P(i,`[${r}].${n}`,a):P(i,`[${r}]`,n,a):typeof n=="number"&&typeof a<"u"?U(i,r,n,a):Array.isArray(n)&&n.length>0&&n.every(t=>typeof t=="number")?R(i,r,n,a):typeof a<"u"&&typeof n=="function"?j(i,r,n,a):P(i,r,n,a);if(typeof r=="string"&&typeof n=="number"){if(o.length===3)return U(i,r,n,a);if(o.length===4)return re(i,r,n,a,s)}if(typeof r=="string"&&Array.isArray(n)){if(o.length===3)return R(i,r,n,a);if(o.length===4)return se(i,r,n,a,s)}if(typeof r=="string"&&typeof n=="object"&&!Array.isArray(n)&&n!==null){let t=n;if("from"in t||"to"in t){if(o.length===3)return E(i,r,t,a);if(o.length===4)return ae(i,r,t,a,s)}}if(typeof r=="object"&&!Array.isArray(r)&&o.length===1)return O(i,r,!0);if(typeof r=="string"&&typeof n=="object"&&!Array.isArray(n)&&o.length===2)return oe(i,r,n);if(typeof r=="string"&&typeof n=="function"){if(o.length===3)return j(i,r,n,a);if(o.length===4)return B(i,r,n,a,s)}if(typeof r=="function"&&typeof n=="string"){if(o.length===3)return ie(i,r,n,a);if(o.length===4)return B(i,n,r,a,s)}if(Array.isArray(r)){if(o.length===2&&typeof n=="object"&&!Array.isArray(n))return L(i,r,n);if(o.length===2)return L(i,r,n)}throw new Error(`Invalid set parameters: ${JSON.stringify(o)}`)}function M(e,r,n,a=!1){let s=v(e);if(s.length===0)return n;let i=s[s.length-1].type==="wildcard",o=s.some(f=>f.type==="wildcard")&&Array.isArray(r),t;if((i||o&&a||o&&s.length===2)&&Array.isArray(r))for(let f=0;f<r.length;f++){let l=typeof n=="function"?n(r[f]):typeof r[f]=="object"?O(r[f],n,!0):n;t||(t=[]),t.push(l)}return!i&&!t&&(t=typeof n=="function"?n(r):n),t}function te(e){return typeof e=="object"&&e!==null&&"from"in e&&"to"in e&&typeof e.from=="number"&&typeof e.to=="number"&&e.from<e.to&&e.from>=0&&e.to>0}function ne(e){return Array.isArray(e)&&e.every(r=>typeof r=="string")}function P(e,r,n,a){let s=v(r),i=F(e,r,{paths:s,createMissing:!0}),o;a&&typeof n=="function"&&(o=$(i,a));let f=M(r,a?o:i,n,Array.isArray(e));return a?k(e,`${r}.${a}`,f,{createMissing:!0}):k(e,r,f,{createMissing:!0})}function U(e,r,n,a){let s=F(e,r,{createMissing:!0});if(!Array.isArray(s))throw new Error(`Target at ${r} is not an array ${n}`);let i=structuredClone(s),o=M(r,i[n],a);if(n<0){let t=s.length+n;if(t<0)throw new Error(`Index ${n} is out of bounds`);return k(e,`${r}[${t}]`,o,{createMissing:!0})}return k(e,`${r}[${n}]`,o,{createMissing:!0})}var re=(e,r,n,a,s)=>typeof a=="function"?P(e,`${r}[${n}]`,a):typeof a=="string"?P(e,`${r}[${n}]`,s,a):null,R=(e,r,n,a)=>{let s=F(e,r);if(!Array.isArray(s))throw new Error(`Target at ${r} is not an array`);for(let i of n)typeof i=="number"?U(e,r,i,a):typeof i=="string"&&P(e,r,a,i);return e},se=(e,r,n,a,s)=>R(e,r,n,o=>{let t=typeof s=="function"?s(o?F(o,a):void 0):s,f=o?{...o}:{};return k(f,a,t),f});function E(e,r,n,a){let s=F(e,r);if(!Array.isArray(s))throw new Error(`Target at ${r} is not an array`);let i=n.from??0,o=n.to??s.length-1,t=n.by??1,f=[];for(let l=i;l<=o;l+=t)l>=0&&l<s.length&&f.push(l);return R(e,r,f,a)}var ae=(e,r,n,a,s)=>E(e,r,n,o=>{let t=typeof s=="function"?s(o?F(o,a):void 0):s,f=o?{...o}:{};return k(f,a,t),f});function j(e,r,n,a){let s=F(e,r);if(!Array.isArray(s))throw new Error(`Target at ${r} is not an array`);let i=[],o=[...s];return s.forEach((t,f)=>{n(t,f)&&i.push(f)}),R(e,r,i,a)}function ie(e,r,n,a){let s=e;if(!Array.isArray(s))throw new Error(`Target at ${n} is not an array`);let i=[],o=[...s];return s.forEach((t,f)=>{t=k(t,n,a,{createMissing:!0})}),s}function B(e,r,n,a,s){return j(e,r,n,o=>{let t=typeof s=="function"?s(o?F(o,a):void 0):s,f=o?{...o}:{};return k(f,a,t),f})}function oe(e,r,n){let a=F(e,r,{createMissing:!0}),s=O(a||{},n,!0);return k(e,r,s,{createMissing:!0})}function L(e,r,n){if(typeof n=="object"&&!Array.isArray(n)&&n!==null)for(let[a,s]of Object.entries(n))r.includes(a)&&k(e,a,s,{createMissing:!0});else for(let a of r){let s=M(a,F(e,a),n);k(e,a,s,{createMissing:!0})}return e}function F(e,r,n={}){let{createMissing:a=!1,add:s=!1,debug:i=!1}=n,o=v(r),t=e,f=!1,l="",y=r;if(typeof t=="object"&&!Array.isArray(t)&&y.length>0&&t[y])return t=t[y],t;for(let A=0;A<o.length;A++){let p=o[A],g=o.length>1?A===o.length-1:!1;if(t===null&&!a)return;let c=o[A+1];switch(p.type){case"property":if(t&&typeof t=="object")if(Array.isArray(t)){if(typeof p.value=="number"){let d=p.value;if(a&&d>=t.length)for(let u=t.length;u<=d;u++)t.push(void 0);if(a&&(t[d]===null||t[d]===void 0)&&(!g||f)&&(c?t[d]=c.type==="index"||c.type==="slice"||c.type==="union"||c.type==="wildcard"?[]:{}:t[d]=null,f=!1),t=t[d],c){f=!0;continue}}else s?t.push({[String(p.value)]:null}):t=t.map(d=>d[String(p.value)]);if(c)continue;return z(t)}else{if(t[l]&&l.split(".").length>=2){t=t[l];continue}if(a&&(t[String(p.value)]===null||t[String(p.value)]===void 0)&&(!g||f)&&(c?t[String(p.value)]=c.type==="index"||c.type==="slice"||c.type==="union"||c.type==="wildcard"?[]:{}:t[String(p.value)]=null,f=!1,t=t[String(p.value)],c)){f=!0;continue}if(t?(!t[String(p.value)]&&a&&(t[String(p.value)]=null),t=t[String(p.value)]):t={[String(p.value)]:null},c)continue}else if(a)t={},t[String(p.value)]=c.type==="index"||c.type==="slice"||c.type==="union"||c.type==="wildcard"||n.type==="array"?[]:{},t=t[String(p.value)];else return;break;case"index":case"wildcard":if(Array.isArray(t)){if(p.type==="index"){let d=p.value;if(d<0){t=t[t.length-Math.abs(d)];continue}if(a&&(d>=t.length||t[d]==null||t[d]==null)&&!g){for(let u=t.length;u<=d;u++)t.push(void 0);c&&(t[d]=c.type==="index"||c.type==="slice"||c.type==="union"||c.type==="wildcard"?[]:{})}t=t[d]}else if(!g)continue}else if(a){let d=o[A+1];t=[];let u=p.value;for(let T=0;T<=u;T++)t.push(void 0);t[u]=d.type==="index"||d.type==="slice"||d.type==="union"||d.type==="wildcard"||n.type==="array"?[]:{},t=t[u]}else{if(p.type==="index"&&typeof t=="object"&&t&&t[String(p.value)]!==void 0){t=t[String(p.value)];continue}if(typeof t=="object"){t=Object.values(t);continue}return}break;default:return}}return z(t)}function z(e){return Array.isArray(e)?e.filter(r=>typeof r<"u"):e}var k=(e,r,n,a={})=>{if(r==="[*]")return O(e,n,!0);let{createMissing:s=!0}=a,i=v(r);if(i.length===0)return e;let o=i[i.length-1],t=e;for(let f=0;f<i.length-1;f++){let l=i[f];if(t==null){if(!s)return e;throw new Error(`Cannot navigate through null/undefined at segment ${f}`)}let y=i[f+1],A=y.type==="index"||y.type==="slice"||y.type==="union"||y.type==="wildcard";if(l.type==="property"){if(Array.isArray(t)&&typeof typeof l.value=="number"){let p=l.value;if(p<0)throw new Error(`Negative index ${p} not allowed`);if(p>=t.length&&s)for(let g=t.length;g<=p;g++)t.push(void 0);(t[p]===null||t[p]===void 0)&&s&&(t[p]=A?[]:{}),t=t[p]}else(t[String(l.value)]===null||t[String(l.value)]===void 0)&&s&&(t[String(l.value)]=A?[]:{}),typeof t=="object"&&!Array.isArray(t)&&(t=t[String(l.value)]);if(y)continue;break}else if(l.type==="index"||l.type==="wildcard"){if(!Array.isArray(t)){if(!s)return e;t=[]}if(l.type==="index"){let p=l.value;if(p<0)throw new Error(`Negative index ${p} not allowed`);if(p>=t.length&&s)for(let g=t.length;g<=p;g++)t.push(void 0);(t[p]===null||t[p]===void 0)&&s&&(t[p]=A?[]:void 0),t=t[p]}if(y)continue;break}else throw new Error(`Invalid segment type for set: ${l.type}`)}switch(o.type){case"property":if(Array.isArray(t)&&typeof o.value=="number"){let l=o.value;if(l<0)throw new Error(`Negative index ${l} not allowed`);if(l>=t.length)for(let y=t.length;y<=l;y++)t.push(void 0);Array.isArray(n)?t[l]=O(structuredClone(t[l]),n[l],!0):t[l]=n}else if(t||(t={}),Array.isArray(t)){let l=r.split("."),y;if(l.length>=2){l.shift();for(let A=0;A<t.length;A++)Array.isArray(n)?(y=J(l.join("."),n[A]),t[A]=typeof t[A]=="object"?O(t[A],y,!0):y):(y=J(l.join("."),n),t[A]=typeof t[A]=="object"?O(t[A],y,!0):y)}else y={[String(o.value)]:n}}else Array.isArray(n)&&n.length===0?typeof t[String(o.value)]>"u"?t[String(o.value)]=[]:t[String(o.value)]=[]:t[String(o.value)]=n;break;case"index":case"wildcard":if(!Array.isArray(t))throw new Error("Cannot use index on non-array for final segment");let f=o.value;if(o.type==="index"){if(f<0)throw new Error(`Negative index ${f} not allowed`);if(f>=t.length)for(let l=t.length;l<=f;l++)t.push(void 0);if(Array.isArray(n))if(typeof t[f]==typeof n[f])try{t[f]=O(I(t[f]),n[f],!0)}catch{throw Error("expected on array")}else t[f]=n;else t[f]=n}else if(o.type==="wildcard")if(Array.isArray(n))for(let l=0;l<t.length;l++)typeof t[l]=="object"?t[l]=O(t[l],n[l],!0):t[l]=n[l];else for(let l=0;l<t.length;l++)typeof t[l]=="object"?t[l]=O(t[l],n,!0):t[l]=n;break;default:throw new Error(`Invalid final segment type for set: ${o.type}`)}return e};var J=(e,r)=>{let n=v(e);if(n.length===0)return r;let a=r;for(let s=n.length-1;s>=0;s--){let i=n[s];if(i.type==="property")a={[String(i.value)]:a};else if(i.type==="index"){let o=parseInt(String(i.value)),t=[];t[o]=a,a=t}else i.type==="wildcard"?Array.isArray(a)?a=a:a=[a]:i.type==="slice"?Array.isArray(a)||(a=[a]):i.type==="union"?Array.isArray(a)||(a=[a]):i.type==="filter"?Array.isArray(a)||(a=[a]):i.type==="descendant"&&(a=a)}return a};var le=(e,r)=>{let n=r(e);return O(e,n,!0)};function qe(e,r){if(!m(e))return{};let n={};for(let a in e)Object.prototype.hasOwnProperty.call(e,a)&&(n[a]=r(e[a],a,e));return n}function Be(e,r){if(!m(e))return{};let n={};for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a)){let s=r(a,e[a],e);n[s]=e[a]}return n}function Q(e,r={deep:!0}){if(!m(e))return e;if(Array.isArray(e))return r.deep?e.map(a=>Q(a,r)):e;let n={};for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a)){let s=e[a],i=a.replace(/[-_]([a-z])/g,(o,t)=>t.toUpperCase()).replace(/^([A-Z])/,o=>o.toLowerCase());n[i]=r.deep&&m(s)?Q(s,r):s}return n}function G(e,r={deep:!0}){if(!m(e))return e;if(Array.isArray(e))return r.deep?e.map(a=>G(a,r)):e;let n={};for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a)){let s=e[a],i=a.replace(/[-]([a-z])/g,(o,t)=>`_${t}`).replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase();n[i]=r.deep&&m(s)?G(s,r):s}return n}function H(e,r={deep:!0}){if(!m(e))return e;if(Array.isArray(e))return r.deep?e.map(a=>H(a,r)):e;let n={};for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a)){let s=e[a],i=a.replace(/[_]([a-z])/g,(o,t)=>`-${t}`).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();n[i]=r.deep&&m(s)?H(s,r):s}return n}var fe=(e,r={})=>{let{delimiter:n=".",includeArrays:a=!1,maxDepth:s=9}=r;if(Array.isArray(e))return e.map(t=>fe(t,r));let i={},o=(t,f="",l=0)=>{if(l>s){i[f]=t;return}if(!m(t)&&!Array.isArray(t)){f&&(i[f]=t);return}if(Array.isArray(t))for(let y=0;y<t.length;y++){let A=f?`${f}[${y}]`:`[${y}]`;o(t[y],A,l+1)}else{for(let A in t){let p=f?`${f}${n}${A}`:A;o(t[A],p,l+1)}let y=Object.getOwnPropertySymbols(t);for(let A of y){let p=f?`${f}${n}${A.toString()}`:A.toString();o(t[A],p,l+1)}}};return o(e),i};function ye(e,r={}){let{delimiter:n=".",detectArrays:a=!0}=r,s={};for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let o=e[i],t=i.split(n),f=s;for(let y=0;y<t.length-1;y++){let A=t[y],p=t[y+1],g=a&&/^\d+$/.test(p);if(!(A in f))f[A]=g?[]:{};else if(g&&!Array.isArray(f[A])){let c={...f[A]};f[A]=[],Object.assign(f[A],c)}f=f[A]}let l=t[t.length-1];f[l]=o}if(a){let i=o=>{if(!m(o))return o;if(Array.isArray(o))return o.map(i);let t=Object.keys(o);if(t.length>0&&t.every((y,A)=>String(A)===y))return Object.values(o).map(i);let l={};for(let y in o)Object.prototype.hasOwnProperty.call(o,y)&&(l[y]=i(o[y]));return l};return i(s)}return s}function Le(e,...r){if(!m(e)||r.length===0)return e;let n={...e};for(let a in n)if(Object.prototype.hasOwnProperty.call(n,a)){let s=n[a];for(let i of r)s=i(s);n[a]=s}return n}function ze(e,r,n={}){if(!m(e))return e;let{removeUnmapped:a=!1}=n,s={};for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&(i in r?s[r[i]]=e[i]:a||(s[i]=e[i]));return s}function Je(e,r={}){let{transformObject:n=t=>t,transformArray:a=t=>t,transformValue:s=t=>t,maxDepth:i=1/0}=r;function o(t,f=[],l=0){if(l>i)return t;if(Array.isArray(t)){let A=t.map((p,g)=>o(p,[...f,g.toString()],l+1));return a(A,f)}if(m(t)){let A={};for(let p in t)if(Object.prototype.hasOwnProperty.call(t,p)){let g=[...f,p];A[p]=o(t[p],g,l+1),!Array.isArray(t[p])&&!m(t[p])&&(A[p]=s(A[p],p,g))}return n(A,f)}let y=f.length>0?f[f.length-1]:"";return s(t,y,f)}return o(e)}function Ze(e,r={}){return ye(e,r)}function Qe(e,r,n,a={}){if(!m(e))return e;let s=JSON.parse(JSON.stringify(e)),{transformAll:i=!1}=a,o=Array.isArray(r)?r:[r];for(let l of o)if(l.includes("*")||l.includes("[")){let A=function(g,c=""){if(m(g)){if(Array.isArray(g)){g.forEach((d,u)=>{let T=c?`${c}[${u}]`:`[${u}]`;A(d,T)});return}for(let d in g)if(Object.prototype.hasOwnProperty.call(g,d)){let u=g[d],T=c?`${c}.${d}`:d;if(u===null||typeof u!="object"){let x=c?$(s,c):s,h=i?n(u,T,x):n(u,d,x);g[d]=h}else A(u,T)}}};var t=A;let y=$(s,l,{preserveStructure:!0});if(y===void 0)continue;A(y);let p=v(l);if(p.length>0){let g=p[0];g.type==="property"&&(s[String(g.value)]=y[String(g.value)])}}else{let A=function(p,g,c,d){if(c>=g.length)return p;let u=g[c];if(c===g.length-1){let x=c>0?A(p,g,c-1,g.slice(0,c).join(".")):p,h=i?n(x[u],d,x):n(x[u],u,x);return x[u]=h,x}let T=p[u]||{};return p[u]=A(T,g,c+1,d),p};var f=A;let y=l.split(".");A(s,y,0,l)}return s}function Ge(e,r,n,a={}){if(!m(e))return[];let{flatten:s=!0}=a,o=(Array.isArray(r)?r:[r]).map(t=>{let f=$(e,t);return f===void 0?[]:Array.isArray(f)?f.map((l,y)=>{let A=`${t}[${y}]`;return n(l,A,e)}):[n(f,t,e)]});return s?o.flat():o}function He(e,r,n,a={}){if(!m(e))return e;let s=JSON.parse(JSON.stringify(e)),{recursive:i=!1}=a,o=Array.isArray(r)?r:[r];for(let t of o){let f=t?$(s,t):s;if(!m(f))continue;let l=(y,A=t)=>{if(!m(y))return y;if(Array.isArray(y))return y.map((g,c)=>m(g)&&!Array.isArray(g)?l(g,`${A}[${c}]`):g);let p={};for(let g in y)if(Object.prototype.hasOwnProperty.call(y,g)){let c=n(g,y[g],A);i&&m(y[g])?p[c]=l(y[g],`${A}.${c}`):p[c]=y[g]}return p};if(Array.isArray(f))for(let y=0;y<f.length;y++)m(f[y])&&!Array.isArray(f[y])&&(f[y]=l(f[y],`${t}[${y}]`));else{let y=l(f);t?Z(s,t,y):(Object.keys(s).forEach(A=>{delete s[A]}),Object.assign(s,y))}}return s}export{Q as camelCaseKeys,Je as deepTransform,fe as flatten,H as kebabCaseKeys,Be as mapKeys,Ge as mapPath,qe as mapValues,ze as renameKeys,G as snakeCaseKeys,Ze as structureByKeys,He as transformKeysAtPath,Qe as transformPath,Le as transformValues,ye as unflatten};
@@ -0,0 +1 @@
1
+ "use strict";var s=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var i=(t,e,a,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of x(e))!o.call(t,n)&&n!==a&&s(t,n,{get:()=>e[n],enumerable:!(r=d(e,n))||r.enumerable});return t};var y=t=>i(s({},"__esModule",{value:!0}),t);var l={};module.exports=y(l);
@@ -0,0 +1,250 @@
1
+ import type { Add } from '@fluixi/utils/maths';
2
+ import type { FilterStartsWith, PrimitiveType, ReplaceStartsWith } from '../primitive/index.js';
3
+ /**
4
+ * Type for any object (excluding arrays, functions, and null)
5
+ */
6
+ export type RecordObject = Record<string | number | symbol, any>;
7
+ export type AnyObject = RecordObject | Array<RecordObject> | Array<any>;
8
+ /**
9
+ * Type for deep partial object
10
+ */
11
+ export type DeepPartial<T> = T extends object ? {
12
+ [P in keyof T]?: DeepPartial<T[P]>;
13
+ } : T;
14
+ /**
15
+ * Type for deep required object
16
+ */
17
+ export type DeepRequired<T> = T extends object ? {
18
+ [P in keyof T]-?: DeepRequired<T[P]>;
19
+ } : T;
20
+ /**
21
+ * Type for deep readonly object
22
+ */
23
+ export type DeepReadonly<T> = T extends object ? {
24
+ readonly [P in keyof T]: DeepReadonly<T[P]>;
25
+ } : T;
26
+ /**
27
+ * Type for deep mutable object
28
+ */
29
+ export type DeepMutable<T> = T extends object ? {
30
+ -readonly [P in keyof T]: DeepMutable<T[P]>;
31
+ } : T;
32
+ export type ExpandRecursively<T extends any, level extends number = 0> = T extends object ? level extends 6 ? T extends () => any ? T : {
33
+ [K in keyof T]: ExpandRecursively<T[K], Add<level, 1>>;
34
+ } : T : T;
35
+ export type Paths<T, Prev extends string = '', Depth extends number = 4> = Depth extends 0 ? never : T extends PrimitiveType ? Prev : T extends Array<infer U> ? Paths<U, Prev, Depth extends keyof Decrement ? Decrement[Depth] : 0> : {
36
+ [K in keyof T]: Paths<T[K], Prev extends '' ? `${Extract<K, string>}` : `${Prev}.${Extract<K, string>}`, Depth extends keyof Decrement ? Decrement[Depth] : 0>;
37
+ }[keyof T];
38
+ type Matcher = `*` | `${number}`;
39
+ export type Match = `[${number}]` | `[*]`;
40
+ export type OnlyDefined<T> = T extends undefined ? never : T;
41
+ export type BasicSelector<T extends AnyObject> = T extends object ? {
42
+ [K in keyof T]: T[K];
43
+ }[keyof T] : string;
44
+ export type SelectorFor<T, Prev extends string = '', Depth extends number = 5> = Depth extends 0 ? never : Prev extends undefined ? never : T extends PrimitiveType ? T extends undefined ? never : Prev : T extends Array<infer U> ? U extends RecordObject ? `${Prev}${Match}` | SelectorFor<U, `${Prev}${Match}`, Depth extends keyof Decrement ? Decrement[Depth] : 0> : `${Prev}${Match}` : T extends object ? OnlyDefined<{
45
+ [K in keyof T]: `${Prev}${Prev extends '' ? '' : '.'}${Extract<K, string>}` | SelectorFor<T[K], Prev extends '' ? `${Extract<K, string>}` : `${Prev}${Prev extends '' ? '' : '.'}${Extract<K, string>}`, Depth extends keyof Decrement ? Decrement[Depth] : 0>;
46
+ }[keyof T]> : Prev;
47
+ export type NonEmptySelectors<T> = Exclude<SelectorFor<T>, ''> extends SelectorFor<T> ? Exclude<SelectorFor<T>, ''> : never;
48
+ export type _SubPathSelector<Selector, S extends string> = Selector extends string ? S extends `${Selector}.${infer R}` ? ReplaceStartsWith<FilterStartsWith<Selector, S>, `${S}.`> : Selector extends `${S}.${Match}.${string}` ? ReplaceStartsWith<FilterStartsWith<Selector, `${S}.${Match}`>, `${S}.${Match}.`> : Selector extends `${S}.${Match}` ? ReplaceStartsWith<FilterStartsWith<Selector, `${S}.${Match}`>, `${S}.${Match}.`> : S extends `${string}.${infer A}` ? A : S extends Selector ? never : S : never;
49
+ export type SubPathSelector<Selector, S extends string> = Selector extends string ? OnlyDefined<_SubPathSelector<Selector, S>> : never;
50
+ export type PathSelector<Selector extends string, S extends string> = OnlyDefined<FilterStartsWith<Selector, S>>;
51
+ type Decrement = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
52
+ /** SinglePath = either a valid dot string from Paths<T> or an array of keys */
53
+ export type SinglePath<T> = Paths<T>;
54
+ /** MultiPath = array of SinglePath */
55
+ export type MultiPath<T> = readonly SinglePath<T>[];
56
+ /** Accepted path formats */
57
+ export type AllowedPath<T extends unknown> = Paths<T> | Paths<T>[];
58
+ export type Split<S extends string, Sep extends string = '.'> = S extends `${infer T}${Sep}${infer U}` ? [T, ...Split<U, Sep>] : [S];
59
+ export type PathBuilder<T extends unknown> = {
60
+ $path: string[];
61
+ } & {
62
+ [K in keyof T]: T[K] extends PrimitiveType ? PathBuilder<T> & {
63
+ $path: [...string[], Extract<K, string>];
64
+ } : PathBuilder<T[K]> & {
65
+ $path: [...string[], Extract<K, string>];
66
+ };
67
+ };
68
+ export type PathObjectTyped<T> = T extends PrimitiveType ? T : {
69
+ [K in keyof T]-?: PathObjectTyped<T[K]>;
70
+ };
71
+ export type DotPathToTuple<P extends string> = P extends `${infer A}.${infer B}` ? [A, ...DotPathToTuple<B>] : P extends '' ? [] : [P];
72
+ export type Join<T extends readonly string[]> = T extends [] ? '' : T extends [infer F extends string] ? F : T extends [infer F extends string, ...infer R extends string[]] ? `${F}.${Join<R>}` : string;
73
+ export type PathValueString<T, P extends string, Depth extends number = 5> = Depth extends 0 ? never : P extends `${infer K}.${infer Rest}` ? K extends keyof T ? PathValueString<T[K], Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0> : never : P extends keyof T ? T[P] : never;
74
+ /** Resolve a path that can be string OR readonly string[] */
75
+ export type PathValue<T, P> = P extends readonly string[] ? PathValueString<T, Join<P>> : P extends string ? PathValueString<T, P> : never;
76
+ /** Path update tuple for setByPath multi-update */
77
+ export type PathUpdateTuple<T> = [SinglePath<T>, any];
78
+ export type MultiUpdateInput<T> = readonly PathUpdateTuple<T>[];
79
+ export type NormalizePath<P extends string> = P extends `${infer K}[${infer M}]${infer Rest}` ? K extends '' | '.' ? `[${M}]${Rest}` : `${K}.[${M}]${Rest}` : P;
80
+ export type IsStartArray<P> = P extends `[${Matcher}]${infer Rest}` ? Rest extends string ? true : false : false;
81
+ export type GetStartArray<P> = P extends `[${infer V}]${infer Rest}` ? V extends Matcher ? V : never : never;
82
+ export type GetEndArray<P> = P extends `[${infer V}]${infer Rest}` ? V extends Matcher ? Rest : never : never;
83
+ type HasArray<T> = T extends `${string}[${string}]` ? true : false;
84
+ type GetLastArray<P> = P extends `${infer Head}[${infer Index}]${infer Tail}` ? HasArray<Tail> extends true ? GetLastArray<Tail> : Index extends Matcher ? Index : never : never;
85
+ export type GetAtPath<T, P extends string, Depth extends number = 5> = Depth extends 0 ? never : NormalizePath<P> extends `${infer K}.${infer Rest}` ? K extends Keys<T> ? Rest extends `${infer z}.${infer _}` ? z extends `[${Matcher}]` ? NonNullable<T[K]> extends (infer U)[] ? U extends AnyObject ? z extends `[*]` ? GetAtPath<U, _, Depth extends keyof Decrement ? Decrement[Depth] : 0>[] : GetAtPath<U, _, Depth extends keyof Decrement ? Decrement[Depth] : 0>[][number] : U extends PrimitiveType ? U : U extends (infer V)[] ? 'infered array' : never : T[K] : GetAtPath<NonNullable<T[K]>, Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0> : NonNullable<T[K]> extends AnyObject ? GetAtPath<NonNullable<T[K]>, Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0> : T[K] extends (infer U)[] ? 'U' : 'never' : T extends RecordObject ? Rest extends `${infer k}[${infer m}]` ? k extends keyof T ? m extends '*' ? T[K] : T[k][number] : T extends (infer U)[] ? k extends keyof U ? U[k] : never : never : Rest extends keyof Flatten<T> ? Flatten<T>[Rest] : GetAtPath<T, Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0> : 'nevere again' : P extends keyof NonNullable<T> ? NonNullable<T>[P] : P extends `[${infer M}]` ? M extends '*' ? T : T extends (infer U)[] ? U : never : never;
86
+ export type PickPath<T, P extends string, Depth extends number = 5> = Depth extends 0 ? never : T extends (infer U)[] ? 'PickPath<U, P>[]' : P extends keyof T ? {
87
+ [K in P]: T[P];
88
+ } : P extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? T[Key] extends (infer U)[] ? {
89
+ [K in Key as `${K}`]: Rest extends `[${Matcher}].${infer _}` ? PickPath<U, _, Depth extends keyof Decrement ? Decrement[Depth] : 0>[] : PickPath<U, Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0>[];
90
+ } : {
91
+ [K in Key as `${K}`]: T[K] extends (infer V)[] ? PickPath<V, Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0>[] : PickPath<T[Key], Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0>;
92
+ } : T extends Record<string, any> ? {
93
+ [K1 in keyof T as K1 extends Key ? `${K1}` : 'nevers']: K1 extends Key ? T[K1] extends (infer U)[] ? Rest extends `[${Matcher}].${infer _}` ? PickPath<U, _, Depth extends keyof Decrement ? Decrement[Depth] : 0>[] : PickPath<U, Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0>[] : PickPath<T[K1], Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0> : never;
94
+ } : never : T extends Record<any, any> ? {
95
+ [K in keyof T as K extends P ? K : P extends `${infer X}.${infer Y}` ? X extends K ? K : never : never]: K extends P ? T[K] extends (infer U)[] ? PickPath<U, K, Depth extends keyof Decrement ? Decrement[Depth] : 0>[] : P extends `${infer X}.${infer Y}` ? 'never-T[K]' : T[K] : never;
96
+ } : never;
97
+ type _PathResult<T extends AnyObject, P extends SelectorFor<T>, Filter extends string> = T extends Record<string, any> ? P extends string ? PickPath<T, PathSelector<P, Filter>> : P extends (infer U)[] ? U extends string ? PickPath<T, U> : never : never : never;
98
+ export type MergeUnionObject<A extends any, B extends any> = {
99
+ [K in keyof AddMissingProps<A | B>]: AddMissingProps<A | B>[K];
100
+ };
101
+ export type MergeUnionObjectSingle<T extends any> = T extends object ? {
102
+ [K in keyof AddMissingProps<T>]: AddMissingProps<T>[K];
103
+ } : T;
104
+ type _Keys<T> = T extends Record<string, any> ? NonNullable<{
105
+ [K in keyof T]: K;
106
+ }>[keyof T] : never;
107
+ export type Keys<T> = NonNullable<_Keys<T>> extends string ? NonNullable<_Keys<T>> : never;
108
+ export type AllKeys<T extends any> = T extends Record<string, any> ? keyof T : never;
109
+ export type AddMissingProps<T extends any, K extends PropertyKey = AllKeys<T>> = T extends unknown ? T & Record<Exclude<K, keyof T>, never> : never;
110
+ export type UnionToIntersection<U extends any> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
111
+ export type CreateMutable<T extends any, Depth extends number = 9> = Depth extends 0 ? never : T extends object ? ExpandRecursively<{
112
+ [K in keyof T]: T[K] extends Date | Function ? T[K] : T[K] extends object ? CreateMutable<T[K], Depth extends keyof Decrement ? Decrement[Depth] : 0> : T[K] extends readonly (infer R)[] ? R[] : T[K] extends (infer R)[] ? R[] : T[K] extends [] ? T[K] : T[K];
113
+ }> : T;
114
+ export type PathResult<T extends AnyObject, P extends SelectorFor<T>, Filter extends string> = CreateMutable<UnionToIntersection<_PathResult<T, P, Filter>>>;
115
+ export type AllKeysDefined<T> = {
116
+ [K in keyof T]: NonNullable<T[K]>;
117
+ };
118
+ export type PickType<T extends any, V extends any> = {
119
+ [k in keyof T as k extends V ? k : never]: T[k];
120
+ };
121
+ export type Flatten<T> = T extends (infer U)[] ? U : T;
122
+ export type IsMatch<T> = T extends Match ? true : false;
123
+ export type IsFullMatch<T> = T extends `[*]` ? true : false;
124
+ export type IsWildcardPath<T> = T extends `${string}[*]${string}` ? true : false;
125
+ export type ExtractPathBeforeWildcard<T> = T extends `${infer Before}[*]${string}` ? Before : T;
126
+ export type ExtractPathAfterWildcard<T> = T extends `${string}[*]${infer After}` ? After : '';
127
+ export type HasMultipleWildcards<T> = T extends `${string}[*]${string}[*]${string}` ? true : false;
128
+ export type ArrayElement<T> = T extends (infer U)[] ? U : T extends readonly (infer U)[] ? U : never;
129
+ export type DeepArrayElement<T, Depth extends number = 3> = Depth extends 0 ? T : T extends (infer U)[] ? DeepArrayElement<U, Depth extends keyof Decrement ? Decrement[Depth] : 0> : T;
130
+ export type IsNumericString<T> = T extends `${number}` ? true : false;
131
+ export type ParseNumber<T> = T extends `${infer N extends number}` ? N : never;
132
+ export type NormalizeWildcardPath<T extends string> = T extends `${infer Before}[*]${infer After}` ? After extends `.${infer Rest}` ? `${Before}[*].${NormalizeWildcardPath<Rest>}` : `${Before}[*]${NormalizeWildcardPath<After>}` : T;
133
+ export type IValueOfKey<D, U> = D extends AnyObject | any[] ? _IValueOfKeySimple<D, U> extends never ? _IValueOfKeyComplex<D, U> : _IValueOfKeySimple<D, U> : never;
134
+ type _IValueOfKeySimple<D extends AnyObject | any[], U> = IsMatch<U> extends true ? GetStartArray<U> extends '*' ? D : Flatten<D> : U extends keyof D ? D[U] : U extends Indices ? D extends (infer T)[] ? T : never : D extends any[] ? U extends `${number}` ? D[number] : U extends `[${number}]` ? D[number] : U extends `[*]` ? D[number][] : never : never;
135
+ type _IValueOfKeyComplex<D extends AnyObject | any[], U> = U extends SelectorFor<D> ? GetAtPath<D, U> : IsStartArray<U> extends true ? GetStartArray<U> extends `*` ? GetEndArray<U> extends '' ? D extends (infer T)[] ? T[] : D : D extends (infer T)[] ? GetAtPath<T, GetEndArray<U>>[] : GetAtPath<D, GetEndArray<U>>[] : GetEndArray<U> extends '' ? Flatten<D> : GetAtPath<D, GetEndArray<U>>[] : never;
136
+ export type SetStoreFunction<T extends AnyObject | any[]> = {
137
+ (value: T | Partial<T> | ((prev: T) => T | Partial<T>)): void;
138
+ <K extends SelectorFor<T>>(key: K, value: IValueOfKey<T, K> | ((prev: IValueOfKey<T, K>) => IValueOfKey<T, K>)): void;
139
+ <K extends SelectorFor<T>>(key: K, index: number, value: IValueOfKey<T, K> extends (infer U)[] ? U | Partial<U> | ((prev: U) => U | Partial<U>) : any): void;
140
+ <K extends SelectorFor<T>>(key: K, index: number, subPath: string, value: any): void;
141
+ <K extends SelectorFor<T>>(key: K, indices: (number | string)[], value: IValueOfKey<T, K> extends (infer U)[] ? U | Partial<U> | ((prev: U) => U | Partial<U>) : any): void;
142
+ <K extends SelectorFor<T>>(key: K, indices: (number | string)[], subPath: string, value: any): void;
143
+ <K extends SelectorFor<T>>(key: K, range: SetterRange, value: IValueOfKey<T, K> extends (infer U)[] ? U | Partial<U> | ((prev: U) => U | Partial<U>) : any): void;
144
+ <K extends SelectorFor<T>>(key: K, range: SetterRange, subPath: string, value: any): void;
145
+ <K extends SelectorFor<T>>(key: K, filterFn: (item: IValueOfKey<T, K> extends (infer U)[] ? U : any, index: number) => boolean, value: IValueOfKey<T, K> extends (infer U)[] ? U | Partial<U> | ((prev: U) => U | Partial<U>) : any): void;
146
+ <K extends SelectorFor<T>>(key: K, filterFn: (item: IValueOfKey<T, K> extends (infer U)[] ? U : any, index: number) => boolean, subPath: string, value: any): void;
147
+ (updates: Partial<T>): void;
148
+ <K extends SelectorFor<T>>(key: K, updates: IValueOfKey<T, K> extends AnyObject ? Partial<IValueOfKey<T, K>> : any): void;
149
+ (paths: string[], value: any): void;
150
+ (paths: string[], updates: Partial<any>): void;
151
+ } & (T extends any[] ? ArrayStoreMethods<T> : {});
152
+ export type StorePath<T> = T extends object ? {
153
+ [K in keyof T]: K extends string | number ? [K] | [K, ...StorePath<T[K]>] : never;
154
+ }[keyof T] : never;
155
+ export type ArrayStoreMethods<T extends any[]> = {
156
+ insert: (index: number, value: T[0]) => void;
157
+ move: (from: number, to: number) => void;
158
+ remove: (index: number) => void;
159
+ removeWhere: (filterFn: (item: T[0], index: number) => boolean) => void;
160
+ push: (...items: T[0][]) => void;
161
+ pop: () => T[0] | undefined;
162
+ shift: () => T[0] | undefined;
163
+ unshift: (...items: T[0][]) => void;
164
+ reverse: () => void;
165
+ sort: (compareFn?: (a: T[0], b: T[0]) => number) => void;
166
+ splice: (start: number, deleteCount: number, ...items: T[0][]) => T[0][];
167
+ };
168
+ /** Setter - getter */
169
+ /**
170
+ * Parsed selector segment
171
+ */
172
+ export interface SelectorSegment {
173
+ type: 'property' | 'index' | 'wildcard' | 'slice' | 'filter' | 'union' | 'descendant';
174
+ value: string | number | [number, number] | number[] | ((item: any) => boolean);
175
+ raw?: string;
176
+ }
177
+ export type SelectorType = 'dot' | 'bracket' | 'wildcard' | 'array-wildcard' | 'property' | 'filter' | 'slice' | 'union' | 'descendant';
178
+ /**
179
+ * Selector options
180
+ */
181
+ export interface SelectorOptions {
182
+ /** Type of selector parsing (default: 'auto' detects from string) */
183
+ type?: SelectorType | 'auto';
184
+ /** Whether to throw on errors (default: false) */
185
+ throwOnError?: boolean;
186
+ /** Default value for missing paths */
187
+ defaultValue?: any;
188
+ /** Maximum depth for recursive selectors (default: 20) */
189
+ maxDepth?: number;
190
+ /** Whether to flatten results (default: true for wildcards) */
191
+ flattenResults?: boolean;
192
+ /** Whether to include undefined values in results (default: false) */
193
+ includeUndefined?: boolean;
194
+ }
195
+ export type Indices = number | number[];
196
+ export type FnPropertyKey<T extends AnyObject, K> = SelectorFor<IValueOfKey<T, K> extends (infer U)[] ? U : never>;
197
+ export type FilteredFnPropertyKey<T extends AnyObject, K, Filter = never> = Filter extends never ? SelectorFor<IValueOfKey<T, K> extends (infer U)[] ? U : never> : Filter extends (infer U)[] ? U extends SelectorFor<IValueOfKey<T, K>> ? SubPathSelector<SelectorFor<IValueOfKey<T, K> extends (infer U)[] ? U : never>, U> : never : never;
198
+ export type ForKeyOf<V> = V extends object ? V[keyof V] : V extends (infer U)[] ? U[keyof U] : V extends string | number | boolean | Date | Set<any> ? V : never;
199
+ export type KeyOf<T, V> = V extends keyof T ? T[V] : never;
200
+ export type PropertyValue<T extends AnyObject, K, I extends Indices = never, Sub = never> = PropertyValueFn<T, K, I, Sub> | PropertyValuePathValue<T, K, I, Sub>;
201
+ export type PropertyValueFn<T extends AnyObject, K, I extends Indices = never, Sub = never> = Sub extends never ? Callback<Flattened<IValueOfKey<T, K>, I>> : IValueOfKey<T, K> extends never ? never : IValueOfKey<Flattened<IValueOfKey<T, K>>, Sub> extends never ? never : Callback<IValueOfKey<Flattened<IValueOfKey<T, K>>, Sub>>;
202
+ export type PropertyValuePathValue<T extends AnyObject, K, I extends Indices = never, Sub = never> = Sub extends never ? Flattened<IValueOfKey<T, K>, I> : IValueOfKey<T, K> extends never ? never : IValueOfKey<Flattened<IValueOfKey<T, K>>, Sub> extends never ? never : IValueOfKey<Flattened<IValueOfKey<T, K>>, Sub>;
203
+ export type Flattened<T, I extends boolean | Indices = true> = I extends never ? T : T extends (infer U)[] ? U extends RecordObject ? U : never : T extends Array<any> ? T[number] : T;
204
+ export type PropertyOrArrayValue<T extends AnyObject, K, I extends Indices = never, Sub extends FnPropertyKey<T, K> = never> = I extends never | number ? Flattened<PropertyValuePathValue<T, K, I, Sub>> : Flattened<PropertyValueFn<T, K, I, Sub>>;
205
+ export type Compare<T extends AnyObject, K> = (item: IValueOfKey<T, K> extends (infer U)[] ? U : IValueOfKey<T, K>, index: number) => boolean;
206
+ export type CompareWithProperty<T extends AnyObject, K, P> = P extends SelectorFor<IValueOfKey<T, K>> ? IValueOfKey<T, K> extends AnyObject ? Compare<IValueOfKey<T, K>, P> : never : never;
207
+ export type Callback<T> = (state: T) => T;
208
+ export type MixCallback<T = any> = {
209
+ (state: Merge<T, Array<T>>): T;
210
+ };
211
+ type Merge<A, B> = ExpandRecursively<{
212
+ [K in keyof A | keyof B]: K extends keyof B ? B[K] : K extends keyof A ? A[K] : never;
213
+ }>;
214
+ export type RangeCompare = {
215
+ from: number;
216
+ to: number;
217
+ by?: number;
218
+ };
219
+ type Expand<T> = T extends PrimitiveType ? T extends never ? never : T : ExpandRecursively<T>;
220
+ export type ParamUpdateValue<T> = T extends never ? never : NonNullable<Expand<T>> extends never ? never : Expand<NonNullable<T>> | Callback<NonNullable<Expand<T>>>;
221
+ export type SelectorForIfIndices<T, K> = K extends Indices ? T extends (infer U)[] ? SelectorFor<U> : SelectorFor<T> : never;
222
+ type FlattenParam<T, K> = IsStartArray<K> extends true ? IsFullMatch<K> extends true ? Expand<ParamUpdateValue<T>> : ParamUpdateValue<T> : ParamUpdateValue<T>;
223
+ export type DataParam<T, K, I = never, Depth extends number = 5> = Depth extends 0 ? never : IValueOfKey<T, K> extends AnyObject ? IValueOfKey<T, K> extends Array<(infer U)> ? T extends (infer V)[] ? IsStartArray<K> extends true ? IsFullMatch<K> extends true ? Expand<ParamUpdateValue<U>> : ParamUpdateValue<U> : Expand<ParamUpdateValue<IValueOfKey<T, K>>> : ParamUpdateValue<U[]> : I extends string ? T extends (infer V)[] ? Expand<ParamUpdateValue<IValueOfKey<V, I>>> : T extends RecordObject ? Expand<ParamUpdateValue<IValueOfKey<T, I>>> : never : Expand<ParamUpdateValue<IValueOfKey<T, K>>> : GetLastArray<K> extends '*' ? Expand<ParamUpdateValue<IValueOfKey<T, K>>> : Expand<ParamUpdateValue<Flatten<IValueOfKey<T, K>>>>;
224
+ export type ArrayFnParam<T extends AnyObject, K, I = never> = I extends (infer U)[] ? U extends string ? FlattenParam<IValueOfKey<IValueOfKey<T, K>, U>, K> : never : never;
225
+ /**
226
+ * Update type for selector - can be string or array of strings
227
+ */
228
+ export type Selector = string | string[];
229
+ export type CompareFn<T> = (state: T) => boolean;
230
+ /**
231
+ * Type for update function or value
232
+ */
233
+ export type UpdateValue<T = any> = Partial<T> | ((state: T) => Partial<T>);
234
+ export type UpdateObject = Record<string, any>;
235
+ /**
236
+ * Type for range object in SolidJS-style updates
237
+ */
238
+ export interface SetterRange {
239
+ from?: number;
240
+ to?: number;
241
+ by?: number;
242
+ }
243
+ export type WildcardSelector<T> = T extends (infer U)[] ? `[*]` | `[${number}]` | `${number}` : never;
244
+ export type NestedWildcardSelector<T, K extends keyof T> = T[K] extends (infer U)[] ? `${K & string}[*]` | `${K & string}[${number}]` | `${K & string}.${number}` : never;
245
+ export type DeepWildcardSelector<T, K extends keyof T> = T[K] extends (infer U)[] ? U extends AnyObject ? `${K & string}[*].${keyof U & string}` | `${K & string}[${number}].${keyof U & string}` : `${K & string}[*]` | `${K & string}[${number}]` : never;
246
+ export type AllSelectorPatterns<T> = T extends any[] ? WildcardSelector<T> | SelectorFor<T> : T extends AnyObject ? SelectorFor<T> | {
247
+ [K in keyof T]: NestedWildcardSelector<T, K> | DeepWildcardSelector<T, K>;
248
+ }[keyof T] : string;
249
+ export {};
250
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/object/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
File without changes
@@ -0,0 +1,6 @@
1
+ "use strict";var A=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var p=(e,i)=>{for(var o in i)A(e,o,{get:i[o],enumerable:!0})},$=(e,i,o,a)=>{if(i&&typeof i=="object"||typeof i=="function")for(let f of O(i))!R.call(e,f)&&f!==o&&A(e,f,{get:()=>i[f],enumerable:!(a=k(i,f))||a.enumerable});return e};var w=e=>$(A({},"__esModule",{value:!0}),e);var T={};p(T,{isClass:()=>h,isEmptyObject:()=>C,isObject:()=>S,isPlainObject:()=>m,toJSONString:()=>E,traverseStructure:()=>c});module.exports=w(T);var S=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 m(e){if(typeof e!="object"||e===null)return!1;let i=Object.getPrototypeOf(e);return i===Object.prototype||i===null}function h(e){return typeof e=="function"&&/^class\s/.test(Function.prototype.toString.call(e))}var C=e=>S(e)?Object.keys(e).length===0:!1,c=(e,i,o,a)=>{if(o>a)return;if(i.length===0)return e;let f=i[0],l=i.slice(1);if(f.type==="descendant"){let s=c(e,l,o+1,a);if(s!==void 0)return s;if(e&&typeof e=="object")if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++){let r=c(e[n],i,o+1,a);r!==void 0&&(t[n]=r)}return t.length>0?t:void 0}else{let t={};for(let n in e)if(e.hasOwnProperty(n)){let r=c(e[n],i,o+1,a);r!==void 0&&(t[n]=r)}return Object.keys(t).length>0?t:void 0}return}switch(f.type){case"property":if(S(e)&&f.value&&String(f.value)in e){let s=e[String(f.value)],t=c(s,l,o+1,a);if(t!==void 0)return{[String(f.value)]:t}}break;case"index":if(Array.isArray(e)){let s=f.value;if(s>=0&&s<e.length){let t=c(e[s],l,o+1,a);if(t!==void 0){let n=new Array(e.length).filter(r=>r!==void 0);return n[s]=t,n}}}else if(e&&typeof e=="object"){let s=String(f.value);if(s in e){let t=c(e[s],l,o+1,a);if(t!==void 0)return{[s]:t}}}break;case"wildcard":if(e&&typeof e=="object")if(Array.isArray(e)){let s=[],t=!1;for(let n=0;n<e.length;n++){let r=c(e[n],l,o+1,a);r!==void 0&&(s[n]=r,t=!0)}return t?s:void 0}else{let s={},t=!1;for(let n in e)if(e.hasOwnProperty(n)){let r=c(e[n],l,o+1,a);r!==void 0&&(s[n]=r,t=!0)}return t?s:void 0}break;case"slice":if(Array.isArray(e)){let[s,t]=f.value,n=Math.max(0,s),r=Math.min(e.length,t===1/0?e.length:t),u=[],b=!1;for(let d=n;d<r;d++){let y=c(e[d],l,o+1,a);y!==void 0&&(u[d]=y,b=!0)}return b?u:void 0}break;case"union":if(Array.isArray(e)){let s=f.value,t=[],n=!1;for(let r of s)if(r>=0&&r<e.length){let u=c(e[r],l,o+1,a);u!==void 0&&(t[r]=u,n=!0)}return n?t:void 0}break;case"filter":if(Array.isArray(e)){let s=f.value,t=[],n=!1;for(let r=0;r<e.length;r++)if(s(e[r])){let u=c(e[r],l,o+1,a);u!==void 0&&(t[r]=u,n=!0)}return n?t:void 0}break}};function E(e,i=0){let o=new WeakSet,a=n=>i?" ".repeat(n):"",f=n=>i?`
2
+ ${" ".repeat(n)}`:"",l=n=>n.replace(/[\u0000-\u001F"\\]/g,r=>{switch(r){case'"':return'\\"';case"\\":return"\\\\";case"\b":return"\\b";case"\f":return"\\f";case`
3
+ `:return"\\n";case"\r":return"\\r";case" ":return"\\t";default:return`\\u${r.charCodeAt(0).toString(16).padStart(4,"0")}`}}),s=(n,r)=>{if(n===null)return"null";let u=typeof n;if(u==="number")return Number.isFinite(n)?String(n):"null";if(u==="boolean")return n?"true":"false";if(u==="bigint")return`"${String(n)}"`;if(!(u==="function"||u==="undefined"||u==="symbol")){if(Array.isArray(n)){if(o.has(n))throw new TypeError("Converting circular structure to JSON");o.add(n);let b=r+i,d=n.map(y=>{let g=s(y,b);return g===void 0?"null":g});return o.delete(n),i?`[${f(b)}${d.join(`,${f(b)}`)}${f(r)}]`:`[${d.join(",")}]`}if(u==="object"){if(o.has(n))throw new TypeError("Converting circular structure to JSON");o.add(n);let b=Object.keys(n),d=r+i,y=[];for(let g of b){let j=s(n[g],d);j!==void 0&&(i?y.push(`${a(d)}"${l(g)}": ${j}`):y.push(`"${l(g)}":${j}`))}return o.delete(n),i?`{
4
+ ${y.join(`,
5
+ `)}
6
+ ${a(r)}}`:`{${y.join(",")}}`}}},t=s(e,0);return t===void 0?void 0:t}
@@ -0,0 +1,165 @@
1
+ import { ClassType } from '@fluixi/utils/primitive';
2
+ import { RecordObject, SelectorSegment } from './types.js';
3
+ /**
4
+ * Checks if a value is an object (not array, function, date, etc.)
5
+ *
6
+ * This function determines if a value is a plain JavaScript object by excluding
7
+ * arrays, functions, and built-in object types like Date, RegExp, Map, etc.
8
+ *
9
+ * @param value - The value to check
10
+ * @returns `true` if value is a plain object; `false` otherwise
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * isObject({}); // true
15
+ * isObject({ key: 'value' }); // true
16
+ *
17
+ * isObject([]); // false
18
+ * isObject(null); // false
19
+ * isObject(undefined); // false
20
+ * isObject(new Date()); // false
21
+ * isObject(() => {}); // false
22
+ * isObject(new Map()); // false
23
+ * ```
24
+ *
25
+ * @category Type Checking
26
+ * @see isPlainObject - For stricter object type checking
27
+ */
28
+ export declare const isObject: (value: unknown) => value is RecordObject;
29
+ /**
30
+ * Checks if a value is a plain object (only Object.prototype or null in prototype chain)
31
+ *
32
+ * Unlike {@link isObject}, this function performs a stricter check to ensure the value
33
+ * is a "plain" object - created via object literal `{}` or `Object.create(null)`.
34
+ * This excludes objects created with custom constructors.
35
+ *
36
+ * @template T - The expected object type
37
+ * @param v - The value to check
38
+ * @returns `true` if value is a plain object; `false` otherwise
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * isPlainObject({}); // true
43
+ * isPlainObject(Object.create(null)); // true
44
+ *
45
+ * class Custom {}
46
+ * isPlainObject(new Custom()); // false
47
+ * isPlainObject([]); // false
48
+ * isPlainObject(null); // false
49
+ * ```
50
+ *
51
+ * @category Type Checking
52
+ */
53
+ export declare function isPlainObject<T extends Record<string, any> = Record<string, any>>(v: unknown): v is T;
54
+ /**
55
+ * Checks if a value is a class constructor
56
+ *
57
+ * This function determines if a value is a class constructor by checking
58
+ * if it's a function and if its string representation starts with the "class" keyword.
59
+ *
60
+ * @param obj - The value to check
61
+ * @returns `true` if value is a class constructor; `false` otherwise
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * class Example {}
66
+ * isClass(Example); // true
67
+ *
68
+ * function regularFn() {}
69
+ * isClass(regularFn); // false
70
+ *
71
+ * const arrowFn = () => {};
72
+ * isClass(arrowFn); // false
73
+ * ```
74
+ *
75
+ * @category Type Checking
76
+ */
77
+ export declare function isClass(obj: unknown): obj is ClassType;
78
+ /**
79
+ * Checks if a value is an empty object
80
+ *
81
+ * This function determines if a value is an object with no enumerable properties.
82
+ * It first checks if the value is an object using {@link isObject} and then
83
+ * checks if it has any enumerable properties.
84
+ *
85
+ * @param value - The value to check
86
+ * @returns `true` if value is an object with no properties; `false` otherwise
87
+ *
88
+ * @example
89
+ * ```ts
90
+ * isEmptyObject({}); // true
91
+ * isEmptyObject(Object.create(null)); // true
92
+ *
93
+ * isEmptyObject({a: 1}); // false
94
+ * isEmptyObject(null); // false
95
+ * isEmptyObject([]); // false (arrays are not objects in this context)
96
+ * ```
97
+ *
98
+ * @category Type Checking
99
+ * @see isObject - Used internally for type checking
100
+ */
101
+ export declare const isEmptyObject: (value: unknown) => boolean;
102
+ /**
103
+ * Traverses an object structure based on selector segments
104
+ *
105
+ * This advanced utility function traverses a data structure (object or array) based on
106
+ * a series of selector segments. It preserves the structure of the original data while
107
+ * navigating through it. The function supports various selector types including property access,
108
+ * array indexing, wildcards, slices, unions, filters, and recursive descent.
109
+ *
110
+ * @param current - The current object/array being traversed
111
+ * @param segments - An array of selector segments that define the traversal path
112
+ * @param depth - The current traversal depth (for recursion limits)
113
+ * @param maxDepth - The maximum depth to traverse (prevents infinite recursion)
114
+ * @returns The traversed structure or undefined if no match found
115
+ *
116
+ * @example
117
+ * ```ts
118
+ * // Access nested property with a simple path
119
+ * const data = { users: [{ name: 'Alice', age: 30 }] };
120
+ * const segments = [
121
+ * { type: 'property', value: 'users' },
122
+ * { type: 'index', value: 0 },
123
+ * { type: 'property', value: 'name' }
124
+ * ];
125
+ * traverseStructure(data, segments, 0, 10); // { users: [{ name: 'Alice' }] }
126
+ * ```
127
+ *
128
+ * @internal
129
+ * @category Object Traversal
130
+ */
131
+ export declare const traverseStructure: (current: any, segments: SelectorSegment[], depth: number, maxDepth: number) => any;
132
+ /**
133
+ * Converts a value to a JSON string with improved handling of special cases
134
+ *
135
+ * This function converts a JavaScript value to a JSON string, similar to `JSON.stringify`,
136
+ * but with improved handling of circular references and special character escaping.
137
+ *
138
+ * @param value - The value to convert to a JSON string
139
+ * @param space - The number of spaces to use for indentation (0 for no formatting)
140
+ * @returns The JSON string representation of the value or undefined for unsupported types
141
+ *
142
+ * @example
143
+ * ```ts
144
+ * // Basic usage
145
+ * toJSONString({ name: 'Alice', age: 30 });
146
+ * // '{"name":"Alice","age":30}'
147
+ *
148
+ * // With formatting
149
+ * toJSONString({ name: 'Alice', age: 30 }, 2);
150
+ * // '{
151
+ * // "name": "Alice",
152
+ * // "age": 30
153
+ * // }'
154
+ *
155
+ * // Handles circular references safely
156
+ * const circular = { self: null };
157
+ * circular.self = circular;
158
+ * toJSONString(circular); // throws TypeError (circular structure)
159
+ * ```
160
+ *
161
+ * @throws {TypeError} When encountering circular references
162
+ * @category Serialization
163
+ */
164
+ export declare function toJSONString(value: any, space?: number): string | undefined;
165
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/object/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAa,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,YAUlD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAC3B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnD,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,CAIpB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,SAAS,CAKtD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,OAG9C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,GAAG,EACZ,UAAU,eAAe,EAAE,EAC3B,OAAO,MAAM,EACb,UAAU,MAAM,KACf,GA+NF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,SAAI,sBAuFjD"}