@fluixi/utils 1.0.0-alpha.100

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 (364) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +68 -0
  3. package/dist/index.cjs +2858 -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 +2838 -0
  8. package/dist/lib/array/advanced.cjs +2227 -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 +2204 -0
  13. package/dist/lib/array/array.cjs +57 -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 +36 -0
  18. package/dist/lib/array/index.cjs +2344 -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 +2322 -0
  23. package/dist/lib/array/utils.cjs +103 -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 +82 -0
  28. package/dist/lib/color/color.cjs +2190 -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 +2167 -0
  33. package/dist/lib/color/constants.cjs +380 -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 +359 -0
  38. package/dist/lib/color/conversions.cjs +629 -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 +608 -0
  43. package/dist/lib/color/helpers.cjs +2534 -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 +2511 -0
  48. package/dist/lib/color/index.cjs +2641 -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 +2619 -0
  53. package/dist/lib/color/types.cjs +18 -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 +962 -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 +939 -0
  63. package/dist/lib/compare/comparators.cjs +171 -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 +150 -0
  68. package/dist/lib/compare/index.cjs +172 -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 +152 -0
  73. package/dist/lib/cookie/codec.cjs +72 -0
  74. package/dist/lib/cookie/codec.d.ts +22 -0
  75. package/dist/lib/cookie/codec.d.ts.map +1 -0
  76. package/dist/lib/cookie/codec.js +67 -0
  77. package/dist/lib/cookie/codec.mjs +51 -0
  78. package/dist/lib/cookie/index.cjs +75 -0
  79. package/dist/lib/cookie/index.d.ts +2 -0
  80. package/dist/lib/cookie/index.d.ts.map +1 -0
  81. package/dist/lib/cookie/index.js +1 -0
  82. package/dist/lib/cookie/index.mjs +53 -0
  83. package/dist/lib/crypto/hash.cjs +83 -0
  84. package/dist/lib/crypto/hash.d.ts +6 -0
  85. package/dist/lib/crypto/hash.d.ts.map +1 -0
  86. package/dist/lib/crypto/hash.js +53 -0
  87. package/dist/lib/crypto/hash.mjs +62 -0
  88. package/dist/lib/crypto/index.cjs +85 -0
  89. package/dist/lib/crypto/index.d.ts +2 -0
  90. package/dist/lib/crypto/index.d.ts.map +1 -0
  91. package/dist/lib/crypto/index.js +1 -0
  92. package/dist/lib/crypto/index.mjs +62 -0
  93. package/dist/lib/dom/events.cjs +40 -0
  94. package/dist/lib/dom/events.d.ts +159 -0
  95. package/dist/lib/dom/events.d.ts.map +1 -0
  96. package/dist/lib/dom/events.js +50 -0
  97. package/dist/lib/dom/events.mjs +19 -0
  98. package/dist/lib/dom/index.cjs +78 -0
  99. package/dist/lib/dom/index.d.ts +3 -0
  100. package/dist/lib/dom/index.d.ts.map +1 -0
  101. package/dist/lib/dom/index.js +2 -0
  102. package/dist/lib/dom/index.mjs +56 -0
  103. package/dist/lib/dom/utils.cjs +57 -0
  104. package/dist/lib/dom/utils.d.ts +6 -0
  105. package/dist/lib/dom/utils.d.ts.map +1 -0
  106. package/dist/lib/dom/utils.js +37 -0
  107. package/dist/lib/dom/utils.mjs +36 -0
  108. package/dist/lib/functions/functions.cjs +366 -0
  109. package/dist/lib/functions/functions.d.ts +329 -0
  110. package/dist/lib/functions/functions.d.ts.map +1 -0
  111. package/dist/lib/functions/functions.js +585 -0
  112. package/dist/lib/functions/functions.mjs +345 -0
  113. package/dist/lib/functions/index.cjs +369 -0
  114. package/dist/lib/functions/index.d.ts +3 -0
  115. package/dist/lib/functions/index.d.ts.map +1 -0
  116. package/dist/lib/functions/index.js +1 -0
  117. package/dist/lib/functions/index.mjs +347 -0
  118. package/dist/lib/functions/types.cjs +18 -0
  119. package/dist/lib/functions/types.d.ts +2 -0
  120. package/dist/lib/functions/types.d.ts.map +1 -0
  121. package/dist/lib/functions/types.js +1 -0
  122. package/dist/lib/functions/types.mjs +0 -0
  123. package/dist/lib/helpers.cjs +78 -0
  124. package/dist/lib/helpers.d.ts +13 -0
  125. package/dist/lib/helpers.d.ts.map +1 -0
  126. package/dist/lib/helpers.js +66 -0
  127. package/dist/lib/helpers.mjs +59 -0
  128. package/dist/lib/index.cjs +2857 -0
  129. package/dist/lib/index.d.ts +6 -0
  130. package/dist/lib/index.d.ts.map +1 -0
  131. package/dist/lib/index.js +8 -0
  132. package/dist/lib/index.mjs +2836 -0
  133. package/dist/lib/maths/constants.cjs +70 -0
  134. package/dist/lib/maths/constants.d.ts +84 -0
  135. package/dist/lib/maths/constants.d.ts.map +1 -0
  136. package/dist/lib/maths/constants.js +79 -0
  137. package/dist/lib/maths/constants.mjs +50 -0
  138. package/dist/lib/maths/fn/advanced.cjs +231 -0
  139. package/dist/lib/maths/fn/advanced.d.ts +149 -0
  140. package/dist/lib/maths/fn/advanced.d.ts.map +1 -0
  141. package/dist/lib/maths/fn/advanced.js +264 -0
  142. package/dist/lib/maths/fn/advanced.mjs +208 -0
  143. package/dist/lib/maths/fn/basic.cjs +212 -0
  144. package/dist/lib/maths/fn/basic.d.ts +182 -0
  145. package/dist/lib/maths/fn/basic.d.ts.map +1 -0
  146. package/dist/lib/maths/fn/basic.js +343 -0
  147. package/dist/lib/maths/fn/basic.mjs +191 -0
  148. package/dist/lib/maths/fn/complex.cjs +268 -0
  149. package/dist/lib/maths/fn/complex.d.ts +153 -0
  150. package/dist/lib/maths/fn/complex.d.ts.map +1 -0
  151. package/dist/lib/maths/fn/complex.js +383 -0
  152. package/dist/lib/maths/fn/complex.mjs +247 -0
  153. package/dist/lib/maths/fn/index.cjs +877 -0
  154. package/dist/lib/maths/fn/index.d.ts +10 -0
  155. package/dist/lib/maths/fn/index.d.ts.map +1 -0
  156. package/dist/lib/maths/fn/index.js +9 -0
  157. package/dist/lib/maths/fn/index.mjs +855 -0
  158. package/dist/lib/maths/fn/trigo.cjs +179 -0
  159. package/dist/lib/maths/fn/trigo.d.ts +147 -0
  160. package/dist/lib/maths/fn/trigo.d.ts.map +1 -0
  161. package/dist/lib/maths/fn/trigo.js +227 -0
  162. package/dist/lib/maths/fn/trigo.mjs +156 -0
  163. package/dist/lib/maths/fn/vector.cjs +728 -0
  164. package/dist/lib/maths/fn/vector.d.ts +512 -0
  165. package/dist/lib/maths/fn/vector.d.ts.map +1 -0
  166. package/dist/lib/maths/fn/vector.js +1136 -0
  167. package/dist/lib/maths/fn/vector.mjs +707 -0
  168. package/dist/lib/maths/formatter.cjs +61 -0
  169. package/dist/lib/maths/formatter.d.ts +35 -0
  170. package/dist/lib/maths/formatter.d.ts.map +1 -0
  171. package/dist/lib/maths/formatter.js +56 -0
  172. package/dist/lib/maths/formatter.mjs +40 -0
  173. package/dist/lib/maths/guards.cjs +164 -0
  174. package/dist/lib/maths/guards.d.ts +166 -0
  175. package/dist/lib/maths/guards.d.ts.map +1 -0
  176. package/dist/lib/maths/guards.js +315 -0
  177. package/dist/lib/maths/guards.mjs +144 -0
  178. package/dist/lib/maths/index.cjs +1152 -0
  179. package/dist/lib/maths/index.d.ts +24 -0
  180. package/dist/lib/maths/index.d.ts.map +1 -0
  181. package/dist/lib/maths/index.js +29 -0
  182. package/dist/lib/maths/index.mjs +1130 -0
  183. package/dist/lib/maths/parser.cjs +75 -0
  184. package/dist/lib/maths/parser.d.ts +20 -0
  185. package/dist/lib/maths/parser.d.ts.map +1 -0
  186. package/dist/lib/maths/parser.js +78 -0
  187. package/dist/lib/maths/parser.mjs +54 -0
  188. package/dist/lib/maths/random.cjs +49 -0
  189. package/dist/lib/maths/random.d.ts +27 -0
  190. package/dist/lib/maths/random.d.ts.map +1 -0
  191. package/dist/lib/maths/random.js +49 -0
  192. package/dist/lib/maths/random.mjs +28 -0
  193. package/dist/lib/maths/types/advanced.cjs +18 -0
  194. package/dist/lib/maths/types/advanced.d.ts +357 -0
  195. package/dist/lib/maths/types/advanced.d.ts.map +1 -0
  196. package/dist/lib/maths/types/advanced.js +5 -0
  197. package/dist/lib/maths/types/advanced.mjs +0 -0
  198. package/dist/lib/maths/types/basic.cjs +18 -0
  199. package/dist/lib/maths/types/basic.d.ts +95 -0
  200. package/dist/lib/maths/types/basic.d.ts.map +1 -0
  201. package/dist/lib/maths/types/basic.js +5 -0
  202. package/dist/lib/maths/types/basic.mjs +0 -0
  203. package/dist/lib/maths/types/index.cjs +19 -0
  204. package/dist/lib/maths/types/index.d.ts +4 -0
  205. package/dist/lib/maths/types/index.d.ts.map +1 -0
  206. package/dist/lib/maths/types/index.js +3 -0
  207. package/dist/lib/maths/types/index.mjs +1 -0
  208. package/dist/lib/maths/types/negative.cjs +18 -0
  209. package/dist/lib/maths/types/negative.d.ts +51 -0
  210. package/dist/lib/maths/types/negative.d.ts.map +1 -0
  211. package/dist/lib/maths/types/negative.js +5 -0
  212. package/dist/lib/maths/types/negative.mjs +0 -0
  213. package/dist/lib/maths/types/operations.cjs +18 -0
  214. package/dist/lib/maths/types/operations.d.ts +188 -0
  215. package/dist/lib/maths/types/operations.d.ts.map +1 -0
  216. package/dist/lib/maths/types/operations.js +6 -0
  217. package/dist/lib/maths/types/operations.mjs +0 -0
  218. package/dist/lib/object/clone.cjs +88 -0
  219. package/dist/lib/object/clone.d.ts +46 -0
  220. package/dist/lib/object/clone.d.ts.map +1 -0
  221. package/dist/lib/object/clone.js +104 -0
  222. package/dist/lib/object/clone.mjs +65 -0
  223. package/dist/lib/object/diff.cjs +573 -0
  224. package/dist/lib/object/diff.d.ts +203 -0
  225. package/dist/lib/object/diff.d.ts.map +1 -0
  226. package/dist/lib/object/diff.js +805 -0
  227. package/dist/lib/object/diff.mjs +550 -0
  228. package/dist/lib/object/getter-setter.cjs +2351 -0
  229. package/dist/lib/object/getter-setter.d.ts +361 -0
  230. package/dist/lib/object/getter-setter.d.ts.map +1 -0
  231. package/dist/lib/object/getter-setter.js +1771 -0
  232. package/dist/lib/object/getter-setter.mjs +2330 -0
  233. package/dist/lib/object/index.cjs +3956 -0
  234. package/dist/lib/object/index.d.ts +13 -0
  235. package/dist/lib/object/index.d.ts.map +1 -0
  236. package/dist/lib/object/index.js +12 -0
  237. package/dist/lib/object/index.mjs +3936 -0
  238. package/dist/lib/object/merge.cjs +1029 -0
  239. package/dist/lib/object/merge.d.ts +93 -0
  240. package/dist/lib/object/merge.d.ts.map +1 -0
  241. package/dist/lib/object/merge.js +474 -0
  242. package/dist/lib/object/merge.mjs +1006 -0
  243. package/dist/lib/object/object.cjs +280 -0
  244. package/dist/lib/object/object.d.ts +128 -0
  245. package/dist/lib/object/object.d.ts.map +1 -0
  246. package/dist/lib/object/object.js +432 -0
  247. package/dist/lib/object/object.mjs +257 -0
  248. package/dist/lib/object/omit.cjs +2022 -0
  249. package/dist/lib/object/omit.d.ts +351 -0
  250. package/dist/lib/object/omit.d.ts.map +1 -0
  251. package/dist/lib/object/omit.js +656 -0
  252. package/dist/lib/object/omit.mjs +1999 -0
  253. package/dist/lib/object/reconcile.cjs +126 -0
  254. package/dist/lib/object/reconcile.d.ts +7 -0
  255. package/dist/lib/object/reconcile.d.ts.map +1 -0
  256. package/dist/lib/object/reconcile.js +122 -0
  257. package/dist/lib/object/reconcile.mjs +105 -0
  258. package/dist/lib/object/selector.cjs +303 -0
  259. package/dist/lib/object/selector.d.ts +50 -0
  260. package/dist/lib/object/selector.d.ts.map +1 -0
  261. package/dist/lib/object/selector.js +371 -0
  262. package/dist/lib/object/selector.mjs +282 -0
  263. package/dist/lib/object/sort.cjs +209 -0
  264. package/dist/lib/object/sort.d.ts +149 -0
  265. package/dist/lib/object/sort.d.ts.map +1 -0
  266. package/dist/lib/object/sort.js +298 -0
  267. package/dist/lib/object/sort.mjs +186 -0
  268. package/dist/lib/object/transform.cjs +2211 -0
  269. package/dist/lib/object/transform.d.ts +620 -0
  270. package/dist/lib/object/transform.d.ts.map +1 -0
  271. package/dist/lib/object/transform.js +1058 -0
  272. package/dist/lib/object/transform.mjs +2190 -0
  273. package/dist/lib/object/types.cjs +18 -0
  274. package/dist/lib/object/types.d.ts +250 -0
  275. package/dist/lib/object/types.d.ts.map +1 -0
  276. package/dist/lib/object/types.js +1 -0
  277. package/dist/lib/object/types.mjs +0 -0
  278. package/dist/lib/object/utils.cjs +326 -0
  279. package/dist/lib/object/utils.d.ts +165 -0
  280. package/dist/lib/object/utils.d.ts.map +1 -0
  281. package/dist/lib/object/utils.js +444 -0
  282. package/dist/lib/object/utils.mjs +305 -0
  283. package/dist/lib/primitive/boolean/boolean.cjs +407 -0
  284. package/dist/lib/primitive/boolean/boolean.d.ts +276 -0
  285. package/dist/lib/primitive/boolean/boolean.d.ts.map +1 -0
  286. package/dist/lib/primitive/boolean/boolean.js +615 -0
  287. package/dist/lib/primitive/boolean/boolean.mjs +386 -0
  288. package/dist/lib/primitive/boolean/index.cjs +382 -0
  289. package/dist/lib/primitive/boolean/index.d.ts +3 -0
  290. package/dist/lib/primitive/boolean/index.d.ts.map +1 -0
  291. package/dist/lib/primitive/boolean/index.js +2 -0
  292. package/dist/lib/primitive/boolean/index.mjs +359 -0
  293. package/dist/lib/primitive/boolean/types.cjs +18 -0
  294. package/dist/lib/primitive/boolean/types.d.ts +14 -0
  295. package/dist/lib/primitive/boolean/types.d.ts.map +1 -0
  296. package/dist/lib/primitive/boolean/types.js +1 -0
  297. package/dist/lib/primitive/boolean/types.mjs +0 -0
  298. package/dist/lib/primitive/date/date.cjs +1126 -0
  299. package/dist/lib/primitive/date/date.d.ts +641 -0
  300. package/dist/lib/primitive/date/date.d.ts.map +1 -0
  301. package/dist/lib/primitive/date/date.js +1998 -0
  302. package/dist/lib/primitive/date/date.mjs +1105 -0
  303. package/dist/lib/primitive/date/index.cjs +1128 -0
  304. package/dist/lib/primitive/date/index.d.ts +3 -0
  305. package/dist/lib/primitive/date/index.d.ts.map +1 -0
  306. package/dist/lib/primitive/date/index.js +2 -0
  307. package/dist/lib/primitive/date/index.mjs +1105 -0
  308. package/dist/lib/primitive/date/types.cjs +18 -0
  309. package/dist/lib/primitive/date/types.d.ts +205 -0
  310. package/dist/lib/primitive/date/types.d.ts.map +1 -0
  311. package/dist/lib/primitive/date/types.js +7 -0
  312. package/dist/lib/primitive/date/types.mjs +0 -0
  313. package/dist/lib/primitive/index.cjs +2338 -0
  314. package/dist/lib/primitive/index.d.ts +5 -0
  315. package/dist/lib/primitive/index.d.ts.map +1 -0
  316. package/dist/lib/primitive/index.js +4 -0
  317. package/dist/lib/primitive/index.mjs +2316 -0
  318. package/dist/lib/primitive/string/index.cjs +875 -0
  319. package/dist/lib/primitive/string/index.d.ts +3 -0
  320. package/dist/lib/primitive/string/index.d.ts.map +1 -0
  321. package/dist/lib/primitive/string/index.js +2 -0
  322. package/dist/lib/primitive/string/index.mjs +852 -0
  323. package/dist/lib/primitive/string/parser-2.cjs +543 -0
  324. package/dist/lib/primitive/string/parser-2.d.ts +17 -0
  325. package/dist/lib/primitive/string/parser-2.d.ts.map +1 -0
  326. package/dist/lib/primitive/string/parser-2.js +656 -0
  327. package/dist/lib/primitive/string/parser-2.mjs +522 -0
  328. package/dist/lib/primitive/string/parser.cjs +236 -0
  329. package/dist/lib/primitive/string/parser.d.ts +9 -0
  330. package/dist/lib/primitive/string/parser.d.ts.map +1 -0
  331. package/dist/lib/primitive/string/parser.js +775 -0
  332. package/dist/lib/primitive/string/parser.mjs +215 -0
  333. package/dist/lib/primitive/string/string.cjs +926 -0
  334. package/dist/lib/primitive/string/string.d.ts +535 -0
  335. package/dist/lib/primitive/string/string.d.ts.map +1 -0
  336. package/dist/lib/primitive/string/string.js +1301 -0
  337. package/dist/lib/primitive/string/string.mjs +903 -0
  338. package/dist/lib/primitive/string/types.cjs +18 -0
  339. package/dist/lib/primitive/string/types.d.ts +318 -0
  340. package/dist/lib/primitive/string/types.d.ts.map +1 -0
  341. package/dist/lib/primitive/string/types.js +5 -0
  342. package/dist/lib/primitive/string/types.mjs +0 -0
  343. package/dist/lib/primitive/types.cjs +18 -0
  344. package/dist/lib/primitive/types.d.ts +27 -0
  345. package/dist/lib/primitive/types.d.ts.map +1 -0
  346. package/dist/lib/primitive/types.js +1 -0
  347. package/dist/lib/primitive/types.mjs +0 -0
  348. package/dist/lib/url/index.cjs +327 -0
  349. package/dist/lib/url/index.d.ts +3 -0
  350. package/dist/lib/url/index.d.ts.map +1 -0
  351. package/dist/lib/url/index.js +2 -0
  352. package/dist/lib/url/index.mjs +304 -0
  353. package/dist/lib/url/parser.cjs +325 -0
  354. package/dist/lib/url/parser.d.ts +216 -0
  355. package/dist/lib/url/parser.d.ts.map +1 -0
  356. package/dist/lib/url/parser.js +488 -0
  357. package/dist/lib/url/parser.mjs +304 -0
  358. package/dist/lib/url/types.cjs +18 -0
  359. package/dist/lib/url/types.d.ts +18 -0
  360. package/dist/lib/url/types.d.ts.map +1 -0
  361. package/dist/lib/url/types.js +1 -0
  362. package/dist/lib/url/types.mjs +0 -0
  363. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  364. package/package.json +127 -0
@@ -0,0 +1,326 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/lib/object/utils.ts
21
+ var utils_exports = {};
22
+ __export(utils_exports, {
23
+ isClass: () => isClass,
24
+ isEmptyObject: () => isEmptyObject,
25
+ isObject: () => isObject,
26
+ isPlainObject: () => isPlainObject,
27
+ toJSONString: () => toJSONString,
28
+ traverseStructure: () => traverseStructure
29
+ });
30
+ module.exports = __toCommonJS(utils_exports);
31
+ var isObject = (value) => {
32
+ if (value == null) return false;
33
+ if (Array.isArray(value)) return false;
34
+ if (typeof value === "function") return false;
35
+ if (value instanceof Date) return false;
36
+ if (value instanceof RegExp) return false;
37
+ if (value instanceof Map) return false;
38
+ if (value instanceof Set) return false;
39
+ if (value instanceof Error) return false;
40
+ return typeof value === "object";
41
+ };
42
+ function isPlainObject(v) {
43
+ if (typeof v !== "object" || v === null) return false;
44
+ const proto = Object.getPrototypeOf(v);
45
+ return proto === Object.prototype || proto === null;
46
+ }
47
+ function isClass(obj) {
48
+ return typeof obj === "function" && /^class\s/.test(Function.prototype.toString.call(obj));
49
+ }
50
+ var isEmptyObject = (value) => {
51
+ if (!isObject(value)) return false;
52
+ return Object.keys(value).length === 0;
53
+ };
54
+ var traverseStructure = (current, segments, depth, maxDepth) => {
55
+ if (depth > maxDepth) return void 0;
56
+ if (segments.length === 0) return current;
57
+ const segment = segments[0];
58
+ const remaining = segments.slice(1);
59
+ if (segment.type === "descendant") {
60
+ const result = traverseStructure(current, remaining, depth + 1, maxDepth);
61
+ if (result !== void 0) {
62
+ return result;
63
+ }
64
+ if (current && typeof current === "object") {
65
+ if (Array.isArray(current)) {
66
+ const arrResult = [];
67
+ for (let i = 0; i < current.length; i++) {
68
+ const itemResult = traverseStructure(
69
+ current[i],
70
+ segments,
71
+ depth + 1,
72
+ maxDepth
73
+ );
74
+ if (itemResult !== void 0) {
75
+ arrResult[i] = itemResult;
76
+ }
77
+ }
78
+ return arrResult.length > 0 ? arrResult : void 0;
79
+ } else {
80
+ const objResult = {};
81
+ for (const key in current) {
82
+ if (current.hasOwnProperty(key)) {
83
+ const itemResult = traverseStructure(
84
+ current[key],
85
+ segments,
86
+ depth + 1,
87
+ maxDepth
88
+ );
89
+ if (itemResult !== void 0) {
90
+ objResult[key] = itemResult;
91
+ }
92
+ }
93
+ }
94
+ return Object.keys(objResult).length > 0 ? objResult : void 0;
95
+ }
96
+ }
97
+ return void 0;
98
+ }
99
+ switch (segment.type) {
100
+ case "property":
101
+ if (isObject(current) && segment.value && String(segment.value) in current) {
102
+ const next = current[String(segment.value)];
103
+ const result = traverseStructure(next, remaining, depth + 1, maxDepth);
104
+ if (result !== void 0) {
105
+ return { [String(segment.value)]: result };
106
+ }
107
+ }
108
+ break;
109
+ case "index":
110
+ if (Array.isArray(current)) {
111
+ const index = segment.value;
112
+ if (index >= 0 && index < current.length) {
113
+ const result = traverseStructure(
114
+ current[index],
115
+ remaining,
116
+ depth + 1,
117
+ maxDepth
118
+ );
119
+ if (result !== void 0) {
120
+ const arr = new Array(current.length).filter(
121
+ (a) => a !== void 0
122
+ );
123
+ arr[index] = result;
124
+ return arr;
125
+ }
126
+ }
127
+ } else if (current && typeof current === "object") {
128
+ const key = String(segment.value);
129
+ if (key in current) {
130
+ const result = traverseStructure(
131
+ current[key],
132
+ remaining,
133
+ depth + 1,
134
+ maxDepth
135
+ );
136
+ if (result !== void 0) {
137
+ return { [key]: result };
138
+ }
139
+ }
140
+ }
141
+ break;
142
+ case "wildcard":
143
+ if (current && typeof current === "object") {
144
+ if (Array.isArray(current)) {
145
+ const arrResult = [];
146
+ let hasResults = false;
147
+ for (let i = 0; i < current.length; i++) {
148
+ const result = traverseStructure(
149
+ current[i],
150
+ remaining,
151
+ depth + 1,
152
+ maxDepth
153
+ );
154
+ if (result !== void 0) {
155
+ arrResult[i] = result;
156
+ hasResults = true;
157
+ }
158
+ }
159
+ return hasResults ? arrResult : void 0;
160
+ } else {
161
+ const objResult = {};
162
+ let hasResults = false;
163
+ for (const key in current) {
164
+ if (current.hasOwnProperty(key)) {
165
+ const result = traverseStructure(
166
+ current[key],
167
+ remaining,
168
+ depth + 1,
169
+ maxDepth
170
+ );
171
+ if (result !== void 0) {
172
+ objResult[key] = result;
173
+ hasResults = true;
174
+ }
175
+ }
176
+ }
177
+ return hasResults ? objResult : void 0;
178
+ }
179
+ }
180
+ break;
181
+ case "slice":
182
+ if (Array.isArray(current)) {
183
+ const [start, end] = segment.value;
184
+ const actualStart = Math.max(0, start);
185
+ const actualEnd = Math.min(
186
+ current.length,
187
+ end === Infinity ? current.length : end
188
+ );
189
+ const arrResult = [];
190
+ let hasResults = false;
191
+ for (let i = actualStart; i < actualEnd; i++) {
192
+ const result = traverseStructure(
193
+ current[i],
194
+ remaining,
195
+ depth + 1,
196
+ maxDepth
197
+ );
198
+ if (result !== void 0) {
199
+ arrResult[i] = result;
200
+ hasResults = true;
201
+ }
202
+ }
203
+ return hasResults ? arrResult : void 0;
204
+ }
205
+ break;
206
+ case "union":
207
+ if (Array.isArray(current)) {
208
+ const indices = segment.value;
209
+ const arrResult = [];
210
+ let hasResults = false;
211
+ for (const index of indices) {
212
+ if (index >= 0 && index < current.length) {
213
+ const result = traverseStructure(
214
+ current[index],
215
+ remaining,
216
+ depth + 1,
217
+ maxDepth
218
+ );
219
+ if (result !== void 0) {
220
+ arrResult[index] = result;
221
+ hasResults = true;
222
+ }
223
+ }
224
+ }
225
+ return hasResults ? arrResult : void 0;
226
+ }
227
+ break;
228
+ case "filter":
229
+ if (Array.isArray(current)) {
230
+ const filterFn = segment.value;
231
+ const arrResult = [];
232
+ let hasResults = false;
233
+ for (let i = 0; i < current.length; i++) {
234
+ if (filterFn(current[i])) {
235
+ const result = traverseStructure(
236
+ current[i],
237
+ remaining,
238
+ depth + 1,
239
+ maxDepth
240
+ );
241
+ if (result !== void 0) {
242
+ arrResult[i] = result;
243
+ hasResults = true;
244
+ }
245
+ }
246
+ }
247
+ return hasResults ? arrResult : void 0;
248
+ }
249
+ break;
250
+ }
251
+ return void 0;
252
+ };
253
+ function toJSONString(value, space = 0) {
254
+ const seen = /* @__PURE__ */ new WeakSet();
255
+ const gap = (n) => space ? " ".repeat(n) : "";
256
+ const nl = (n) => space ? `
257
+ ${" ".repeat(n)}` : "";
258
+ const esc = (s) => s.replace(/[\u0000-\u001F"\\]/g, (c) => {
259
+ switch (c) {
260
+ case '"':
261
+ return '\\"';
262
+ case "\\":
263
+ return "\\\\";
264
+ case "\b":
265
+ return "\\b";
266
+ case "\f":
267
+ return "\\f";
268
+ case "\n":
269
+ return "\\n";
270
+ case "\r":
271
+ return "\\r";
272
+ case " ":
273
+ return "\\t";
274
+ default:
275
+ const code = c.charCodeAt(0).toString(16).padStart(4, "0");
276
+ return `\\u${code}`;
277
+ }
278
+ });
279
+ const ser = (v, indent) => {
280
+ if (v === null) return "null";
281
+ const t = typeof v;
282
+ if (t === "number") return Number.isFinite(v) ? String(v) : "null";
283
+ if (t === "boolean") return v ? "true" : "false";
284
+ if (t === "string") {
285
+ }
286
+ if (t === "bigint") return `"${String(v)}"`;
287
+ if (t === "function" || t === "undefined" || t === "symbol")
288
+ return void 0;
289
+ if (Array.isArray(v)) {
290
+ if (seen.has(v))
291
+ throw new TypeError("Converting circular structure to JSON");
292
+ seen.add(v);
293
+ const next = indent + space;
294
+ const parts = v.map((x) => {
295
+ const s = ser(x, next);
296
+ return s === void 0 ? "null" : s;
297
+ });
298
+ seen.delete(v);
299
+ if (!space) return `[${parts.join(",")}]`;
300
+ return `[${nl(next)}${parts.join(`,${nl(next)}`)}${nl(indent)}]`;
301
+ }
302
+ if (t === "object") {
303
+ if (seen.has(v))
304
+ throw new TypeError("Converting circular structure to JSON");
305
+ seen.add(v);
306
+ const keys = Object.keys(v);
307
+ const next = indent + space;
308
+ const parts = [];
309
+ for (const k of keys) {
310
+ const s = ser(v[k], next);
311
+ if (s !== void 0) {
312
+ if (!space) parts.push(`"${esc(k)}":${s}`);
313
+ else parts.push(`${gap(next)}"${esc(k)}": ${s}`);
314
+ }
315
+ }
316
+ seen.delete(v);
317
+ if (!space) return `{${parts.join(",")}}`;
318
+ return `{
319
+ ${parts.join(",\n")}
320
+ ${gap(indent)}}`;
321
+ }
322
+ return void 0;
323
+ };
324
+ const out = ser(value, 0);
325
+ return out === void 0 ? void 0 : out;
326
+ }
@@ -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"}