zeed 1.3.0 → 1.4.0

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 (575) hide show
  1. package/AGENTS.md +50 -211
  2. package/README.md +16 -0
  3. package/dist/_experiments/bitcask.cjs +243 -1
  4. package/dist/_experiments/bitcask.cjs.map +1 -1
  5. package/dist/_experiments/bitcask.mjs +230 -1
  6. package/dist/_experiments/bitcask.mjs.map +1 -1
  7. package/dist/bin-BAoS4qtm.mjs +593 -0
  8. package/dist/{bin-SPdenYkw.mjs.map → bin-BAoS4qtm.mjs.map} +1 -1
  9. package/dist/bin-Ddaz2lxM.cjs +862 -0
  10. package/dist/{bin-Ce3i6ABn.cjs.map → bin-Ddaz2lxM.cjs.map} +1 -1
  11. package/dist/browser/base64.cjs +14 -1
  12. package/dist/browser/base64.cjs.map +1 -1
  13. package/dist/browser/base64.mjs +12 -1
  14. package/dist/browser/base64.mjs.map +1 -1
  15. package/dist/browser/gravatar.cjs +186 -1
  16. package/dist/browser/gravatar.cjs.map +1 -1
  17. package/dist/browser/gravatar.mjs +184 -1
  18. package/dist/browser/gravatar.mjs.map +1 -1
  19. package/dist/browser/index.cjs +14 -1
  20. package/dist/browser/index.mjs +8 -1
  21. package/dist/browser/localstorage.cjs +46 -1
  22. package/dist/browser/localstorage.cjs.map +1 -1
  23. package/dist/browser/localstorage.mjs +45 -1
  24. package/dist/browser/localstorage.mjs.map +1 -1
  25. package/dist/browser/log/index.cjs +8 -1
  26. package/dist/browser/log/index.mjs +5 -1
  27. package/dist/browser/log/log-browser-factory.cjs +65 -1
  28. package/dist/browser/log/log-browser-factory.cjs.map +1 -1
  29. package/dist/browser/log/log-browser-factory.mjs +64 -1
  30. package/dist/browser/log/log-browser-factory.mjs.map +1 -1
  31. package/dist/browser/log/log-browser.cjs +72 -1
  32. package/dist/browser/log/log-browser.cjs.map +1 -1
  33. package/dist/browser/log/log-browser.mjs +71 -1
  34. package/dist/browser/log/log-browser.mjs.map +1 -1
  35. package/dist/browser/log/log-colors.cjs +11 -1
  36. package/dist/browser/log/log-colors.cjs.map +1 -1
  37. package/dist/browser/log/log-colors.mjs +9 -1
  38. package/dist/browser/log/log-colors.mjs.map +1 -1
  39. package/dist/browser/log/log-context-browser.cjs +25 -1
  40. package/dist/browser/log/log-context-browser.cjs.map +1 -1
  41. package/dist/browser/log/log-context-browser.mjs +23 -1
  42. package/dist/browser/log/log-context-browser.mjs.map +1 -1
  43. package/dist/chunk-DQk6qfdC.mjs +18 -0
  44. package/dist/chunk-uaV2rQ02.cjs +53 -0
  45. package/dist/common/assert.cjs +22 -1
  46. package/dist/common/assert.cjs.map +1 -1
  47. package/dist/common/assert.mjs +19 -1
  48. package/dist/common/assert.mjs.map +1 -1
  49. package/dist/common/bin/index.cjs +106 -1
  50. package/dist/common/bin/index.cjs.map +1 -1
  51. package/dist/common/bin/index.mjs +98 -1
  52. package/dist/common/bin/index.mjs.map +1 -1
  53. package/dist/common/bin/lib0/binary.cjs +146 -1
  54. package/dist/common/bin/lib0/binary.cjs.map +1 -1
  55. package/dist/common/bin/lib0/binary.mjs +80 -1
  56. package/dist/common/bin/lib0/binary.mjs.map +1 -1
  57. package/dist/common/bin/lib0/buffer.cjs +42 -1
  58. package/dist/common/bin/lib0/buffer.cjs.map +1 -1
  59. package/dist/common/bin/lib0/buffer.mjs +38 -1
  60. package/dist/common/bin/lib0/buffer.mjs.map +1 -1
  61. package/dist/common/bin/lib0/create.cjs +24 -1
  62. package/dist/common/bin/lib0/create.cjs.map +1 -1
  63. package/dist/common/bin/lib0/create.mjs +21 -1
  64. package/dist/common/bin/lib0/create.mjs.map +1 -1
  65. package/dist/common/bin/lib0/decoding.cjs +325 -1
  66. package/dist/common/bin/lib0/decoding.cjs.map +1 -1
  67. package/dist/common/bin/lib0/decoding.mjs +298 -1
  68. package/dist/common/bin/lib0/decoding.mjs.map +1 -1
  69. package/dist/common/bin/lib0/encoding.cjs +404 -1
  70. package/dist/common/bin/lib0/encoding.cjs.map +1 -1
  71. package/dist/common/bin/lib0/encoding.mjs +377 -1
  72. package/dist/common/bin/lib0/encoding.mjs.map +1 -1
  73. package/dist/common/bin/lib0/string.cjs +81 -1
  74. package/dist/common/bin/lib0/string.cjs.map +1 -1
  75. package/dist/common/bin/lib0/string.mjs +71 -1
  76. package/dist/common/bin/lib0/string.mjs.map +1 -1
  77. package/dist/common/crypto/aes-sealed.cjs +34 -1
  78. package/dist/common/crypto/aes-sealed.cjs.map +1 -1
  79. package/dist/common/crypto/aes-sealed.mjs +32 -1
  80. package/dist/common/crypto/aes-sealed.mjs.map +1 -1
  81. package/dist/common/crypto/crypto.cjs +91 -1
  82. package/dist/common/crypto/crypto.cjs.map +1 -1
  83. package/dist/common/crypto/crypto.mjs +80 -1
  84. package/dist/common/crypto/crypto.mjs.map +1 -1
  85. package/dist/common/crypto/index.cjs +23 -1
  86. package/dist/common/crypto/index.mjs +5 -1
  87. package/dist/common/crypto/xaes.cjs +128 -1
  88. package/dist/common/crypto/xaes.cjs.map +1 -1
  89. package/dist/common/crypto/xaes.mjs +123 -1
  90. package/dist/common/crypto/xaes.mjs.map +1 -1
  91. package/dist/common/csv.cjs +49 -4
  92. package/dist/common/csv.cjs.map +1 -1
  93. package/dist/common/csv.mjs +46 -4
  94. package/dist/common/csv.mjs.map +1 -1
  95. package/dist/common/data/array.cjs +299 -1
  96. package/dist/common/data/array.cjs.map +1 -1
  97. package/dist/common/data/array.mjs +274 -1
  98. package/dist/common/data/array.mjs.map +1 -1
  99. package/dist/common/data/basex-secure.cjs +30 -1
  100. package/dist/common/data/basex-secure.mjs +3 -1
  101. package/dist/common/data/basex.cjs +163 -1
  102. package/dist/common/data/basex.cjs.map +1 -1
  103. package/dist/common/data/basex.mjs +152 -1
  104. package/dist/common/data/basex.mjs.map +1 -1
  105. package/dist/common/data/bin-types.mjs +1 -1
  106. package/dist/common/data/bin.cjs +21 -1
  107. package/dist/common/data/bin.mjs +3 -1
  108. package/dist/common/data/camelcase.cjs +27 -1
  109. package/dist/common/data/camelcase.cjs.map +1 -1
  110. package/dist/common/data/camelcase.mjs +22 -1
  111. package/dist/common/data/camelcase.mjs.map +1 -1
  112. package/dist/common/data/convert.cjs +104 -1
  113. package/dist/common/data/convert.cjs.map +1 -1
  114. package/dist/common/data/convert.mjs +88 -1
  115. package/dist/common/data/convert.mjs.map +1 -1
  116. package/dist/common/data/datauri.cjs +32 -1
  117. package/dist/common/data/datauri.cjs.map +1 -1
  118. package/dist/common/data/datauri.mjs +27 -1
  119. package/dist/common/data/datauri.mjs.map +1 -1
  120. package/dist/common/data/day-legacy.cjs +148 -1
  121. package/dist/common/data/day-legacy.cjs.map +1 -1
  122. package/dist/common/data/day-legacy.mjs +143 -1
  123. package/dist/common/data/day-legacy.mjs.map +1 -1
  124. package/dist/common/data/day.cjs +335 -1
  125. package/dist/common/data/day.cjs.map +1 -1
  126. package/dist/common/data/day.mjs +305 -1
  127. package/dist/common/data/day.mjs.map +1 -1
  128. package/dist/common/data/decimal.cjs +28 -1
  129. package/dist/common/data/decimal.cjs.map +1 -1
  130. package/dist/common/data/decimal.mjs +23 -1
  131. package/dist/common/data/decimal.mjs.map +1 -1
  132. package/dist/common/data/deep.cjs +57 -1
  133. package/dist/common/data/deep.cjs.map +1 -1
  134. package/dist/common/data/deep.mjs +54 -1
  135. package/dist/common/data/deep.mjs.map +1 -1
  136. package/dist/common/data/diff.cjs +62 -1
  137. package/dist/common/data/diff.cjs.map +1 -1
  138. package/dist/common/data/diff.mjs +60 -1
  139. package/dist/common/data/diff.mjs.map +1 -1
  140. package/dist/common/data/distributed.cjs +24 -1
  141. package/dist/common/data/distributed.cjs.map +1 -1
  142. package/dist/common/data/distributed.mjs +22 -1
  143. package/dist/common/data/distributed.mjs.map +1 -1
  144. package/dist/common/data/format.cjs +63 -1
  145. package/dist/common/data/format.cjs.map +1 -1
  146. package/dist/common/data/format.mjs +59 -1
  147. package/dist/common/data/format.mjs.map +1 -1
  148. package/dist/common/data/html.cjs +13 -1
  149. package/dist/common/data/html.cjs.map +1 -1
  150. package/dist/common/data/html.mjs +10 -1
  151. package/dist/common/data/html.mjs.map +1 -1
  152. package/dist/common/data/index.cjs +296 -1
  153. package/dist/common/data/index.mjs +37 -1
  154. package/dist/common/data/is.cjs +106 -1
  155. package/dist/common/data/is.cjs.map +1 -1
  156. package/dist/common/data/is.mjs +85 -1
  157. package/dist/common/data/is.mjs.map +1 -1
  158. package/dist/common/data/json.cjs +70 -1
  159. package/dist/common/data/json.cjs.map +1 -1
  160. package/dist/common/data/json.mjs +65 -1
  161. package/dist/common/data/json.mjs.map +1 -1
  162. package/dist/common/data/list.cjs +32 -1
  163. package/dist/common/data/list.cjs.map +1 -1
  164. package/dist/common/data/list.mjs +27 -1
  165. package/dist/common/data/list.mjs.map +1 -1
  166. package/dist/common/data/lru.mjs +1 -1
  167. package/dist/common/data/math.cjs +79 -1
  168. package/dist/common/data/math.cjs.map +1 -1
  169. package/dist/common/data/math.mjs +65 -1
  170. package/dist/common/data/math.mjs.map +1 -1
  171. package/dist/common/data/message.cjs +30 -1
  172. package/dist/common/data/message.cjs.map +1 -1
  173. package/dist/common/data/message.mjs +28 -1
  174. package/dist/common/data/message.mjs.map +1 -1
  175. package/dist/common/data/object-changes.cjs +66 -1
  176. package/dist/common/data/object-changes.cjs.map +1 -1
  177. package/dist/common/data/object-changes.mjs +63 -1
  178. package/dist/common/data/object-changes.mjs.map +1 -1
  179. package/dist/common/data/object.cjs +112 -1
  180. package/dist/common/data/object.cjs.map +1 -1
  181. package/dist/common/data/object.mjs +104 -1
  182. package/dist/common/data/object.mjs.map +1 -1
  183. package/dist/common/data/orderby.cjs +42 -1
  184. package/dist/common/data/orderby.cjs.map +1 -1
  185. package/dist/common/data/orderby.mjs +37 -1
  186. package/dist/common/data/orderby.mjs.map +1 -1
  187. package/dist/common/data/path.cjs +26 -1
  188. package/dist/common/data/path.cjs.map +1 -1
  189. package/dist/common/data/path.mjs +25 -1
  190. package/dist/common/data/path.mjs.map +1 -1
  191. package/dist/common/data/regexp.cjs +12 -1
  192. package/dist/common/data/regexp.cjs.map +1 -1
  193. package/dist/common/data/regexp.mjs +10 -1
  194. package/dist/common/data/regexp.mjs.map +1 -1
  195. package/dist/common/data/rounding.cjs +107 -1
  196. package/dist/common/data/rounding.cjs.map +1 -1
  197. package/dist/common/data/rounding.mjs +95 -1
  198. package/dist/common/data/rounding.mjs.map +1 -1
  199. package/dist/common/data/signal.cjs +39 -1
  200. package/dist/common/data/signal.cjs.map +1 -1
  201. package/dist/common/data/signal.mjs +38 -1
  202. package/dist/common/data/signal.mjs.map +1 -1
  203. package/dist/common/data/sortable.cjs +35 -1
  204. package/dist/common/data/sortable.cjs.map +1 -1
  205. package/dist/common/data/sortable.mjs +31 -1
  206. package/dist/common/data/sortable.mjs.map +1 -1
  207. package/dist/common/data/sorted.cjs +54 -1
  208. package/dist/common/data/sorted.cjs.map +1 -1
  209. package/dist/common/data/sorted.mjs +53 -1
  210. package/dist/common/data/sorted.mjs.map +1 -1
  211. package/dist/common/data/string-deburr.cjs +240 -1
  212. package/dist/common/data/string-deburr.cjs.map +1 -1
  213. package/dist/common/data/string-deburr.mjs +238 -1
  214. package/dist/common/data/string-deburr.mjs.map +1 -1
  215. package/dist/common/data/string-hash-fnv.cjs +69 -1
  216. package/dist/common/data/string-hash-fnv.cjs.map +1 -1
  217. package/dist/common/data/string-hash-fnv.mjs +67 -1
  218. package/dist/common/data/string-hash-fnv.mjs.map +1 -1
  219. package/dist/common/data/string-hash-pool.cjs +28 -1
  220. package/dist/common/data/string-hash-pool.cjs.map +1 -1
  221. package/dist/common/data/string-hash-pool.mjs +27 -1
  222. package/dist/common/data/string-hash-pool.mjs.map +1 -1
  223. package/dist/common/data/url.cjs +98 -2
  224. package/dist/common/data/url.cjs.map +1 -1
  225. package/dist/common/data/url.mjs +91 -2
  226. package/dist/common/data/url.mjs.map +1 -1
  227. package/dist/common/data/utils.cjs +118 -1
  228. package/dist/common/data/utils.cjs.map +1 -1
  229. package/dist/common/data/utils.mjs +107 -1
  230. package/dist/common/data/utils.mjs.map +1 -1
  231. package/dist/common/data/wordlist.cjs +531 -1
  232. package/dist/common/data/wordlist.cjs.map +1 -1
  233. package/dist/common/data/wordlist.mjs +529 -1
  234. package/dist/common/data/wordlist.mjs.map +1 -1
  235. package/dist/common/data/xrx.cjs +96 -1
  236. package/dist/common/data/xrx.cjs.map +1 -1
  237. package/dist/common/data/xrx.mjs +92 -1
  238. package/dist/common/data/xrx.mjs.map +1 -1
  239. package/dist/common/dispose-defer.cjs +133 -1
  240. package/dist/common/dispose-defer.cjs.map +1 -1
  241. package/dist/common/dispose-defer.mjs +130 -1
  242. package/dist/common/dispose-defer.mjs.map +1 -1
  243. package/dist/common/dispose-types.mjs +1 -1
  244. package/dist/common/dispose-utils.cjs +113 -1
  245. package/dist/common/dispose-utils.cjs.map +1 -1
  246. package/dist/common/dispose-utils.mjs +106 -1
  247. package/dist/common/dispose-utils.mjs.map +1 -1
  248. package/dist/common/exec/index.cjs +24 -1
  249. package/dist/common/exec/index.d.cts +1 -1
  250. package/dist/common/exec/index.d.mts +1 -1
  251. package/dist/common/exec/index.mjs +8 -1
  252. package/dist/common/exec/mutex.cjs +44 -1
  253. package/dist/common/exec/mutex.cjs.map +1 -1
  254. package/dist/common/exec/mutex.mjs +42 -1
  255. package/dist/common/exec/mutex.mjs.map +1 -1
  256. package/dist/common/exec/pool.cjs +181 -1
  257. package/dist/common/exec/pool.cjs.map +1 -1
  258. package/dist/common/exec/pool.d.cts +1 -1
  259. package/dist/common/exec/pool.d.mts +1 -1
  260. package/dist/common/exec/pool.mjs +180 -1
  261. package/dist/common/exec/pool.mjs.map +1 -1
  262. package/dist/common/exec/progress.cjs +149 -1
  263. package/dist/common/exec/progress.cjs.map +1 -1
  264. package/dist/common/exec/progress.d.cts +1 -1
  265. package/dist/common/exec/progress.d.mts +1 -1
  266. package/dist/common/exec/progress.mjs +148 -1
  267. package/dist/common/exec/progress.mjs.map +1 -1
  268. package/dist/common/exec/promise.cjs +113 -1
  269. package/dist/common/exec/promise.cjs.map +1 -1
  270. package/dist/common/exec/promise.mjs +103 -1
  271. package/dist/common/exec/promise.mjs.map +1 -1
  272. package/dist/common/exec/queue.cjs +125 -1
  273. package/dist/common/exec/queue.cjs.map +1 -1
  274. package/dist/common/exec/queue.d.cts +1 -1
  275. package/dist/common/exec/queue.d.mts +1 -1
  276. package/dist/common/exec/queue.mjs +124 -1
  277. package/dist/common/exec/queue.mjs.map +1 -1
  278. package/dist/common/exec/throttle-debounce.cjs +114 -1
  279. package/dist/common/exec/throttle-debounce.cjs.map +1 -1
  280. package/dist/common/exec/throttle-debounce.mjs +112 -1
  281. package/dist/common/exec/throttle-debounce.mjs.map +1 -1
  282. package/dist/common/global.cjs +22 -1
  283. package/dist/common/global.cjs.map +1 -1
  284. package/dist/common/global.mjs +19 -1
  285. package/dist/common/global.mjs.map +1 -1
  286. package/dist/common/index.cjs +559 -1
  287. package/dist/common/index.d.cts +1 -1
  288. package/dist/common/index.d.mts +1 -1
  289. package/dist/common/index.mjs +89 -1
  290. package/dist/common/localhost.cjs +16 -1
  291. package/dist/common/localhost.cjs.map +1 -1
  292. package/dist/common/localhost.mjs +14 -1
  293. package/dist/common/localhost.mjs.map +1 -1
  294. package/dist/common/log/index.cjs +34 -1
  295. package/dist/common/log/index.mjs +11 -1
  296. package/dist/common/log/log-base.cjs +40 -1
  297. package/dist/common/log/log-base.cjs.map +1 -1
  298. package/dist/common/log/log-base.mjs +31 -1
  299. package/dist/common/log/log-base.mjs.map +1 -1
  300. package/dist/common/log/log-colors.cjs +92 -1
  301. package/dist/common/log/log-colors.cjs.map +1 -1
  302. package/dist/common/log/log-colors.mjs +90 -1
  303. package/dist/common/log/log-colors.mjs.map +1 -1
  304. package/dist/common/log/log-config.cjs +15 -1
  305. package/dist/common/log/log-config.cjs.map +1 -1
  306. package/dist/common/log/log-config.mjs +14 -1
  307. package/dist/common/log/log-config.mjs.map +1 -1
  308. package/dist/common/log/log-console-capture.cjs +33 -1
  309. package/dist/common/log/log-console-capture.cjs.map +1 -1
  310. package/dist/common/log/log-console-capture.mjs +32 -1
  311. package/dist/common/log/log-console-capture.mjs.map +1 -1
  312. package/dist/common/log/log-console-original.cjs +27 -1
  313. package/dist/common/log/log-console-original.cjs.map +1 -1
  314. package/dist/common/log/log-console-original.mjs +26 -1
  315. package/dist/common/log/log-console-original.mjs.map +1 -1
  316. package/dist/common/log/log-console.cjs +39 -1
  317. package/dist/common/log/log-console.cjs.map +1 -1
  318. package/dist/common/log/log-console.mjs +38 -1
  319. package/dist/common/log/log-console.mjs.map +1 -1
  320. package/dist/common/log/log-context.cjs +109 -1
  321. package/dist/common/log/log-context.cjs.map +1 -1
  322. package/dist/common/log/log-context.mjs +108 -1
  323. package/dist/common/log/log-context.mjs.map +1 -1
  324. package/dist/common/log/log-filter.cjs +80 -1
  325. package/dist/common/log/log-filter.cjs.map +1 -1
  326. package/dist/common/log/log-filter.mjs +75 -1
  327. package/dist/common/log/log-filter.mjs.map +1 -1
  328. package/dist/common/log/log-memory.cjs +45 -1
  329. package/dist/common/log/log-memory.cjs.map +1 -1
  330. package/dist/common/log/log-memory.mjs +43 -1
  331. package/dist/common/log/log-memory.mjs.map +1 -1
  332. package/dist/common/log/log-noop.cjs +17 -1
  333. package/dist/common/log/log-noop.cjs.map +1 -1
  334. package/dist/common/log/log-noop.mjs +15 -1
  335. package/dist/common/log/log-noop.mjs.map +1 -1
  336. package/dist/common/log/log.cjs +46 -1
  337. package/dist/common/log/log.cjs.map +1 -1
  338. package/dist/common/log/log.mjs +43 -1
  339. package/dist/common/log/log.mjs.map +1 -1
  340. package/dist/common/msg/channel-debug.cjs +17 -1
  341. package/dist/common/msg/channel-debug.cjs.map +1 -1
  342. package/dist/common/msg/channel-debug.d.cts +1 -1
  343. package/dist/common/msg/channel-debug.d.mts +1 -1
  344. package/dist/common/msg/channel-debug.mjs +16 -1
  345. package/dist/common/msg/channel-debug.mjs.map +1 -1
  346. package/dist/common/msg/channel-local.cjs +28 -1
  347. package/dist/common/msg/channel-local.cjs.map +1 -1
  348. package/dist/common/msg/channel-local.d.cts +1 -1
  349. package/dist/common/msg/channel-local.d.mts +1 -1
  350. package/dist/common/msg/channel-local.mjs +26 -1
  351. package/dist/common/msg/channel-local.mjs.map +1 -1
  352. package/dist/common/msg/channel-resilient.cjs +63 -1
  353. package/dist/common/msg/channel-resilient.cjs.map +1 -1
  354. package/dist/common/msg/channel-resilient.d.cts +1 -1
  355. package/dist/common/msg/channel-resilient.d.mts +1 -1
  356. package/dist/common/msg/channel-resilient.mjs +62 -1
  357. package/dist/common/msg/channel-resilient.mjs.map +1 -1
  358. package/dist/common/msg/channel-wkwebview.cjs +35 -1
  359. package/dist/common/msg/channel-wkwebview.cjs.map +1 -1
  360. package/dist/common/msg/channel-wkwebview.d.cts +2 -1
  361. package/dist/common/msg/channel-wkwebview.d.mts +2 -1
  362. package/dist/common/msg/channel-wkwebview.mjs +34 -1
  363. package/dist/common/msg/channel-wkwebview.mjs.map +1 -1
  364. package/dist/common/msg/channel.cjs +23 -1
  365. package/dist/common/msg/channel.cjs.map +1 -1
  366. package/dist/common/msg/channel.d.cts +1 -1
  367. package/dist/common/msg/channel.d.mts +1 -1
  368. package/dist/common/msg/channel.mjs +22 -1
  369. package/dist/common/msg/channel.mjs.map +1 -1
  370. package/dist/common/msg/emitter.cjs +141 -1
  371. package/dist/common/msg/emitter.cjs.map +1 -1
  372. package/dist/common/msg/emitter.d.cts +1 -1
  373. package/dist/common/msg/emitter.d.mts +1 -1
  374. package/dist/common/msg/emitter.mjs +139 -1
  375. package/dist/common/msg/emitter.mjs.map +1 -1
  376. package/dist/common/msg/encoder.cjs +38 -1
  377. package/dist/common/msg/encoder.cjs.map +1 -1
  378. package/dist/common/msg/encoder.mjs +35 -1
  379. package/dist/common/msg/encoder.mjs.map +1 -1
  380. package/dist/common/msg/index.cjs +28 -1
  381. package/dist/common/msg/index.d.cts +1 -1
  382. package/dist/common/msg/index.d.mts +1 -1
  383. package/dist/common/msg/index.mjs +11 -1
  384. package/dist/common/msg/messages.cjs +135 -1
  385. package/dist/common/msg/messages.cjs.map +1 -1
  386. package/dist/common/msg/messages.d.cts +1 -1
  387. package/dist/common/msg/messages.d.mts +1 -1
  388. package/dist/common/msg/messages.mjs +133 -1
  389. package/dist/common/msg/messages.mjs.map +1 -1
  390. package/dist/common/msg/pipe.mjs +1 -1
  391. package/dist/common/msg/pubsub.cjs +78 -1
  392. package/dist/common/msg/pubsub.cjs.map +1 -1
  393. package/dist/common/msg/pubsub.d.cts +1 -1
  394. package/dist/common/msg/pubsub.d.mts +1 -1
  395. package/dist/common/msg/pubsub.mjs +76 -1
  396. package/dist/common/msg/pubsub.mjs.map +1 -1
  397. package/dist/common/msg/rpc.cjs +142 -1
  398. package/dist/common/msg/rpc.cjs.map +1 -1
  399. package/dist/common/msg/rpc.mjs +139 -1
  400. package/dist/common/msg/rpc.mjs.map +1 -1
  401. package/dist/common/network.cjs +129 -1
  402. package/dist/common/network.cjs.map +1 -1
  403. package/dist/common/network.mjs +122 -1
  404. package/dist/common/network.mjs.map +1 -1
  405. package/dist/common/platform.cjs +92 -1
  406. package/dist/common/platform.cjs.map +1 -1
  407. package/dist/common/platform.mjs +84 -1
  408. package/dist/common/platform.mjs.map +1 -1
  409. package/dist/common/schema/_sandbox/sandbox-inherit.mjs +1 -1
  410. package/dist/common/schema/_sandbox/sandbox.mjs +1 -1
  411. package/dist/common/schema/_sandbox/sandbox.xspec.mjs +1 -1
  412. package/dist/common/schema/export-json-schema.cjs +54 -1
  413. package/dist/common/schema/export-json-schema.cjs.map +1 -1
  414. package/dist/common/schema/export-json-schema.mjs +52 -1
  415. package/dist/common/schema/export-json-schema.mjs.map +1 -1
  416. package/dist/common/schema/export-swift.cjs +30 -2
  417. package/dist/common/schema/export-swift.cjs.map +1 -1
  418. package/dist/common/schema/export-swift.mjs +29 -2
  419. package/dist/common/schema/export-swift.mjs.map +1 -1
  420. package/dist/common/schema/export-typescript.cjs +20 -2
  421. package/dist/common/schema/export-typescript.cjs.map +1 -1
  422. package/dist/common/schema/export-typescript.mjs +19 -2
  423. package/dist/common/schema/export-typescript.mjs.map +1 -1
  424. package/dist/common/schema/index.cjs +55 -1
  425. package/dist/common/schema/index.mjs +12 -1
  426. package/dist/common/schema/parse-args.cjs +62 -2
  427. package/dist/common/schema/parse-args.cjs.map +1 -1
  428. package/dist/common/schema/parse-args.mjs +60 -2
  429. package/dist/common/schema/parse-args.mjs.map +1 -1
  430. package/dist/common/schema/parse-env.cjs +48 -3
  431. package/dist/common/schema/parse-env.cjs.map +1 -1
  432. package/dist/common/schema/parse-env.mjs +46 -3
  433. package/dist/common/schema/parse-env.mjs.map +1 -1
  434. package/dist/common/schema/parse-object.cjs +122 -1
  435. package/dist/common/schema/parse-object.cjs.map +1 -1
  436. package/dist/common/schema/parse-object.mjs +119 -1
  437. package/dist/common/schema/parse-object.mjs.map +1 -1
  438. package/dist/common/schema/schema-standard.mjs +1 -1
  439. package/dist/common/schema/schema.cjs +423 -1
  440. package/dist/common/schema/schema.cjs.map +1 -1
  441. package/dist/common/schema/schema.mjs +404 -1
  442. package/dist/common/schema/schema.mjs.map +1 -1
  443. package/dist/common/schema/serialize.cjs +109 -1
  444. package/dist/common/schema/serialize.cjs.map +1 -1
  445. package/dist/common/schema/serialize.mjs +107 -1
  446. package/dist/common/schema/serialize.mjs.map +1 -1
  447. package/dist/common/schema/type-test.mjs +1 -1
  448. package/dist/common/schema/utils.cjs +25 -1
  449. package/dist/common/schema/utils.cjs.map +1 -1
  450. package/dist/common/schema/utils.mjs +19 -1
  451. package/dist/common/schema/utils.mjs.map +1 -1
  452. package/dist/common/schema/z-collection.cjs +51 -1
  453. package/dist/common/schema/z-collection.mjs +27 -1
  454. package/dist/common/schema/z.cjs +9 -1
  455. package/dist/common/schema/z.mjs +3 -1
  456. package/dist/common/storage/index.cjs +4 -1
  457. package/dist/common/storage/index.mjs +3 -1
  458. package/dist/common/storage/memstorage.cjs +26 -1
  459. package/dist/common/storage/memstorage.cjs.map +1 -1
  460. package/dist/common/storage/memstorage.mjs +25 -1
  461. package/dist/common/storage/memstorage.mjs.map +1 -1
  462. package/dist/common/test.cjs +14 -1
  463. package/dist/common/test.cjs.map +1 -1
  464. package/dist/common/test.mjs +13 -1
  465. package/dist/common/test.mjs.map +1 -1
  466. package/dist/common/time.cjs +220 -1
  467. package/dist/common/time.cjs.map +1 -1
  468. package/dist/common/time.mjs +194 -1
  469. package/dist/common/time.mjs.map +1 -1
  470. package/dist/common/timeout.cjs +27 -1
  471. package/dist/common/timeout.cjs.map +1 -1
  472. package/dist/common/timeout.mjs +25 -1
  473. package/dist/common/timeout.mjs.map +1 -1
  474. package/dist/common/types.mjs +1 -1
  475. package/dist/common/utils.cjs +7 -1
  476. package/dist/common/utils.cjs.map +1 -1
  477. package/dist/common/utils.mjs +5 -1
  478. package/dist/common/utils.mjs.map +1 -1
  479. package/dist/common/uuid.cjs +307 -1
  480. package/dist/common/uuid.cjs.map +1 -1
  481. package/dist/common/uuid.mjs +284 -1
  482. package/dist/common/uuid.mjs.map +1 -1
  483. package/dist/{index-DHXVOH8h.d.cts → index-CFkMqHvX.d.cts} +1 -2
  484. package/dist/{index-DMaPyx9O.d.mts → index-C_3Y_s6f.d.mts} +1 -2
  485. package/dist/index.all.cjs +641 -1
  486. package/dist/index.all.d.cts +1 -1
  487. package/dist/index.all.d.mts +1 -1
  488. package/dist/index.all.mjs +113 -1
  489. package/dist/index.browser.cjs +576 -1
  490. package/dist/index.browser.d.cts +1 -1
  491. package/dist/index.browser.d.mts +1 -1
  492. package/dist/index.browser.mjs +98 -1
  493. package/dist/index.jsr.cjs +57 -1
  494. package/dist/index.jsr.mjs +6 -1
  495. package/dist/index.node.cjs +628 -1
  496. package/dist/index.node.d.cts +1 -1
  497. package/dist/index.node.d.mts +1 -1
  498. package/dist/index.node.mjs +106 -1
  499. package/dist/node/args.cjs +56 -1
  500. package/dist/node/args.cjs.map +1 -1
  501. package/dist/node/args.mjs +53 -1
  502. package/dist/node/args.mjs.map +1 -1
  503. package/dist/node/clipboard.cjs +18 -1
  504. package/dist/node/clipboard.cjs.map +1 -1
  505. package/dist/node/clipboard.mjs +16 -1
  506. package/dist/node/clipboard.mjs.map +1 -1
  507. package/dist/node/crypto.cjs +28 -1
  508. package/dist/node/crypto.cjs.map +1 -1
  509. package/dist/node/crypto.mjs +24 -1
  510. package/dist/node/crypto.mjs.map +1 -1
  511. package/dist/node/env.cjs +100 -4
  512. package/dist/node/env.cjs.map +1 -1
  513. package/dist/node/env.mjs +90 -4
  514. package/dist/node/env.mjs.map +1 -1
  515. package/dist/node/files-async.cjs +66 -1
  516. package/dist/node/files-async.cjs.map +1 -1
  517. package/dist/node/files-async.mjs +60 -1
  518. package/dist/node/files-async.mjs.map +1 -1
  519. package/dist/node/files.cjs +52 -1
  520. package/dist/node/files.cjs.map +1 -1
  521. package/dist/node/files.mjs +46 -1
  522. package/dist/node/files.mjs.map +1 -1
  523. package/dist/node/filestorage.cjs +100 -1
  524. package/dist/node/filestorage.cjs.map +1 -1
  525. package/dist/node/filestorage.mjs +97 -1
  526. package/dist/node/filestorage.mjs.map +1 -1
  527. package/dist/node/fs.cjs +119 -1
  528. package/dist/node/fs.cjs.map +1 -1
  529. package/dist/node/fs.mjs +101 -1
  530. package/dist/node/fs.mjs.map +1 -1
  531. package/dist/node/glob.cjs +75 -1
  532. package/dist/node/glob.cjs.map +1 -1
  533. package/dist/node/glob.mjs +73 -1
  534. package/dist/node/glob.mjs.map +1 -1
  535. package/dist/node/index.cjs +66 -1
  536. package/dist/node/index.mjs +16 -1
  537. package/dist/node/log/index.cjs +20 -1
  538. package/dist/node/log/index.mjs +7 -1
  539. package/dist/node/log/log-context-node.cjs +39 -1
  540. package/dist/node/log/log-context-node.cjs.map +1 -1
  541. package/dist/node/log/log-context-node.mjs +35 -1
  542. package/dist/node/log/log-context-node.mjs.map +1 -1
  543. package/dist/node/log/log-file-rotation.cjs +71 -1
  544. package/dist/node/log/log-file-rotation.cjs.map +1 -1
  545. package/dist/node/log/log-file-rotation.mjs +68 -1
  546. package/dist/node/log/log-file-rotation.mjs.map +1 -1
  547. package/dist/node/log/log-file.cjs +57 -1
  548. package/dist/node/log/log-file.cjs.map +1 -1
  549. package/dist/node/log/log-file.mjs +54 -1
  550. package/dist/node/log/log-file.mjs.map +1 -1
  551. package/dist/node/log/log-node.cjs +162 -1
  552. package/dist/node/log/log-node.cjs.map +1 -1
  553. package/dist/node/log/log-node.mjs +155 -1
  554. package/dist/node/log/log-node.mjs.map +1 -1
  555. package/dist/node/log/log-rotation.cjs +543 -3
  556. package/dist/node/log/log-rotation.cjs.map +1 -1
  557. package/dist/node/log/log-rotation.mjs +538 -3
  558. package/dist/node/log/log-rotation.mjs.map +1 -1
  559. package/dist/node/log/log-util.cjs +69 -3
  560. package/dist/node/log/log-util.cjs.map +1 -1
  561. package/dist/node/log/log-util.mjs +63 -3
  562. package/dist/node/log/log-util.mjs.map +1 -1
  563. package/dist/node/open-browser.cjs +20 -1
  564. package/dist/node/open-browser.cjs.map +1 -1
  565. package/dist/node/open-browser.mjs +18 -1
  566. package/dist/node/open-browser.mjs.map +1 -1
  567. package/package.json +15 -15
  568. package/src/common/schema/README.md +247 -66
  569. package/src/eslint-defaults.js +4 -0
  570. package/src/index.spec.ts +6 -6
  571. package/dist/bin-Ce3i6ABn.cjs +0 -3
  572. package/dist/bin-SPdenYkw.mjs +0 -3
  573. package/dist/chunk-0Lt9GpW0.mjs +0 -1
  574. package/dist/chunk-D-qHiVGv.cjs +0 -1
  575. package/src/common/schema/README-SCHEMA.md +0 -0
@@ -1,2 +1,40 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./array.cjs`);function t(t,n){let r=structuredClone(t),i=[];function a(t){e.arrayRemoveElement(i,t)}function o(e){return i.push(e),()=>a(e)}n&&i.push(n);let s=()=>structuredClone(r),c=e=>{if(e!==r){let t=r;r=e,i.forEach(n=>n(e,t))}},l=[s,c,o,a];return l.get=s,l.set=c,l.on=o,l.off=a,l}exports.useSignal=t;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_common_data_array = require('./array.cjs');
3
+
4
+ //#region src/common/data/signal.ts
5
+ /** Super simple signal implementation */
6
+ function useSignal(value, onChange) {
7
+ let signal = structuredClone(value);
8
+ const watchers = [];
9
+ function off(fn) {
10
+ require_common_data_array.arrayRemoveElement(watchers, fn);
11
+ }
12
+ function on(fn) {
13
+ watchers.push(fn);
14
+ return () => off(fn);
15
+ }
16
+ if (onChange) watchers.push(onChange);
17
+ const get = () => structuredClone(signal);
18
+ const set = (value) => {
19
+ if (value !== signal) {
20
+ const oldValue = signal;
21
+ signal = value;
22
+ watchers.forEach((fn) => fn(value, oldValue));
23
+ }
24
+ };
25
+ const obj = [
26
+ get,
27
+ set,
28
+ on,
29
+ off
30
+ ];
31
+ obj.get = get;
32
+ obj.set = set;
33
+ obj.on = on;
34
+ obj.off = off;
35
+ return obj;
36
+ }
37
+
38
+ //#endregion
39
+ exports.useSignal = useSignal;
2
40
  //# sourceMappingURL=signal.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"signal.cjs","names":[],"sources":["../../../src/common/data/signal.ts"],"sourcesContent":["import { arrayRemoveElement } from './array'\n\n// I'm aware of this one, but like mine better ;)\n// https://github.com/proposal-signals/proposal-signals\n\nexport type SignalWatcher<T> = (value: T, oldValue: T) => void\n\nexport type Signal<T> = [\n () => T,\n (value: T) => void,\n (fn: SignalWatcher<T>) => () => void,\n (fn: SignalWatcher<T>) => void,\n] & {\n get: () => T\n set: (value: T) => void\n on: (fn: SignalWatcher<T>) => () => void\n off: (fn: SignalWatcher<T>) => void\n}\n\n/** Super simple signal implementation */\nexport function useSignal<T = any>(value: T, onChange?: SignalWatcher<T>): Signal<T> {\n let signal = structuredClone(value)\n\n const watchers: SignalWatcher<T>[] = []\n\n function off(fn: SignalWatcher<T>) {\n arrayRemoveElement(watchers, fn)\n }\n\n function on(fn: SignalWatcher<T>) {\n watchers.push(fn)\n return () => off(fn)\n }\n\n if (onChange)\n watchers.push(onChange)\n\n const get = () => structuredClone(signal)\n\n const set = (value: T) => {\n if (value !== signal) {\n const oldValue = signal\n signal = value\n watchers.forEach(fn => fn(value, oldValue))\n }\n }\n\n const obj: any = [get, set, on, off]\n obj.get = get\n obj.set = set\n obj.on = on\n obj.off = off\n return obj\n}\n"],"mappings":"kGAoBA,SAAgB,EAAmB,EAAU,EAAwC,CACnF,IAAI,EAAS,gBAAgB,EAAM,CAE7B,EAA+B,EAAE,CAEvC,SAAS,EAAI,EAAsB,CACjC,EAAA,mBAAmB,EAAU,EAAG,CAGlC,SAAS,EAAG,EAAsB,CAEhC,OADA,EAAS,KAAK,EAAG,KACJ,EAAI,EAAG,CAGlB,GACF,EAAS,KAAK,EAAS,CAEzB,IAAM,MAAY,gBAAgB,EAAO,CAEnC,EAAO,GAAa,CACxB,GAAI,IAAU,EAAQ,CACpB,IAAM,EAAW,EACjB,EAAS,EACT,EAAS,QAAQ,GAAM,EAAG,EAAO,EAAS,CAAC,GAIzC,EAAW,CAAC,EAAK,EAAK,EAAI,EAAI,CAKpC,MAJA,GAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,GAAK,EACT,EAAI,IAAM,EACH"}
1
+ {"version":3,"file":"signal.cjs","names":[],"sources":["../../../src/common/data/signal.ts"],"sourcesContent":["import { arrayRemoveElement } from './array'\n\n// I'm aware of this one, but like mine better ;)\n// https://github.com/proposal-signals/proposal-signals\n\nexport type SignalWatcher<T> = (value: T, oldValue: T) => void\n\nexport type Signal<T> = [\n () => T,\n (value: T) => void,\n (fn: SignalWatcher<T>) => () => void,\n (fn: SignalWatcher<T>) => void,\n] & {\n get: () => T\n set: (value: T) => void\n on: (fn: SignalWatcher<T>) => () => void\n off: (fn: SignalWatcher<T>) => void\n}\n\n/** Super simple signal implementation */\nexport function useSignal<T = any>(value: T, onChange?: SignalWatcher<T>): Signal<T> {\n let signal = structuredClone(value)\n\n const watchers: SignalWatcher<T>[] = []\n\n function off(fn: SignalWatcher<T>) {\n arrayRemoveElement(watchers, fn)\n }\n\n function on(fn: SignalWatcher<T>) {\n watchers.push(fn)\n return () => off(fn)\n }\n\n if (onChange)\n watchers.push(onChange)\n\n const get = () => structuredClone(signal)\n\n const set = (value: T) => {\n if (value !== signal) {\n const oldValue = signal\n signal = value\n watchers.forEach(fn => fn(value, oldValue))\n }\n }\n\n const obj: any = [get, set, on, off]\n obj.get = get\n obj.set = set\n obj.on = on\n obj.off = off\n return obj\n}\n"],"mappings":";;;;;AAoBA,SAAgB,UAAmB,OAAU,UAAwC;CACnF,IAAI,SAAS,gBAAgB,MAAM;CAEnC,MAAM,WAA+B,EAAE;CAEvC,SAAS,IAAI,IAAsB;AACjC,+CAAmB,UAAU,GAAG;;CAGlC,SAAS,GAAG,IAAsB;AAChC,WAAS,KAAK,GAAG;AACjB,eAAa,IAAI,GAAG;;AAGtB,KAAI,SACF,UAAS,KAAK,SAAS;CAEzB,MAAM,YAAY,gBAAgB,OAAO;CAEzC,MAAM,OAAO,UAAa;AACxB,MAAI,UAAU,QAAQ;GACpB,MAAM,WAAW;AACjB,YAAS;AACT,YAAS,SAAQ,OAAM,GAAG,OAAO,SAAS,CAAC;;;CAI/C,MAAM,MAAW;EAAC;EAAK;EAAK;EAAI;EAAI;AACpC,KAAI,MAAM;AACV,KAAI,MAAM;AACV,KAAI,KAAK;AACT,KAAI,MAAM;AACV,QAAO"}
@@ -1,2 +1,39 @@
1
- import{arrayRemoveElement as e}from"./array.mjs";function t(t,n){let r=structuredClone(t),i=[];function a(t){e(i,t)}function o(e){return i.push(e),()=>a(e)}n&&i.push(n);let s=()=>structuredClone(r),c=e=>{if(e!==r){let t=r;r=e,i.forEach(n=>n(e,t))}},l=[s,c,o,a];return l.get=s,l.set=c,l.on=o,l.off=a,l}export{t as useSignal};
1
+ import { arrayRemoveElement } from "./array.mjs";
2
+
3
+ //#region src/common/data/signal.ts
4
+ /** Super simple signal implementation */
5
+ function useSignal(value, onChange) {
6
+ let signal = structuredClone(value);
7
+ const watchers = [];
8
+ function off(fn) {
9
+ arrayRemoveElement(watchers, fn);
10
+ }
11
+ function on(fn) {
12
+ watchers.push(fn);
13
+ return () => off(fn);
14
+ }
15
+ if (onChange) watchers.push(onChange);
16
+ const get = () => structuredClone(signal);
17
+ const set = (value) => {
18
+ if (value !== signal) {
19
+ const oldValue = signal;
20
+ signal = value;
21
+ watchers.forEach((fn) => fn(value, oldValue));
22
+ }
23
+ };
24
+ const obj = [
25
+ get,
26
+ set,
27
+ on,
28
+ off
29
+ ];
30
+ obj.get = get;
31
+ obj.set = set;
32
+ obj.on = on;
33
+ obj.off = off;
34
+ return obj;
35
+ }
36
+
37
+ //#endregion
38
+ export { useSignal };
2
39
  //# sourceMappingURL=signal.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"signal.mjs","names":[],"sources":["../../../src/common/data/signal.ts"],"sourcesContent":["import { arrayRemoveElement } from './array'\n\n// I'm aware of this one, but like mine better ;)\n// https://github.com/proposal-signals/proposal-signals\n\nexport type SignalWatcher<T> = (value: T, oldValue: T) => void\n\nexport type Signal<T> = [\n () => T,\n (value: T) => void,\n (fn: SignalWatcher<T>) => () => void,\n (fn: SignalWatcher<T>) => void,\n] & {\n get: () => T\n set: (value: T) => void\n on: (fn: SignalWatcher<T>) => () => void\n off: (fn: SignalWatcher<T>) => void\n}\n\n/** Super simple signal implementation */\nexport function useSignal<T = any>(value: T, onChange?: SignalWatcher<T>): Signal<T> {\n let signal = structuredClone(value)\n\n const watchers: SignalWatcher<T>[] = []\n\n function off(fn: SignalWatcher<T>) {\n arrayRemoveElement(watchers, fn)\n }\n\n function on(fn: SignalWatcher<T>) {\n watchers.push(fn)\n return () => off(fn)\n }\n\n if (onChange)\n watchers.push(onChange)\n\n const get = () => structuredClone(signal)\n\n const set = (value: T) => {\n if (value !== signal) {\n const oldValue = signal\n signal = value\n watchers.forEach(fn => fn(value, oldValue))\n }\n }\n\n const obj: any = [get, set, on, off]\n obj.get = get\n obj.set = set\n obj.on = on\n obj.off = off\n return obj\n}\n"],"mappings":"iDAoBA,SAAgB,EAAmB,EAAU,EAAwC,CACnF,IAAI,EAAS,gBAAgB,EAAM,CAE7B,EAA+B,EAAE,CAEvC,SAAS,EAAI,EAAsB,CACjC,EAAmB,EAAU,EAAG,CAGlC,SAAS,EAAG,EAAsB,CAEhC,OADA,EAAS,KAAK,EAAG,KACJ,EAAI,EAAG,CAGlB,GACF,EAAS,KAAK,EAAS,CAEzB,IAAM,MAAY,gBAAgB,EAAO,CAEnC,EAAO,GAAa,CACxB,GAAI,IAAU,EAAQ,CACpB,IAAM,EAAW,EACjB,EAAS,EACT,EAAS,QAAQ,GAAM,EAAG,EAAO,EAAS,CAAC,GAIzC,EAAW,CAAC,EAAK,EAAK,EAAI,EAAI,CAKpC,MAJA,GAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,GAAK,EACT,EAAI,IAAM,EACH"}
1
+ {"version":3,"file":"signal.mjs","names":[],"sources":["../../../src/common/data/signal.ts"],"sourcesContent":["import { arrayRemoveElement } from './array'\n\n// I'm aware of this one, but like mine better ;)\n// https://github.com/proposal-signals/proposal-signals\n\nexport type SignalWatcher<T> = (value: T, oldValue: T) => void\n\nexport type Signal<T> = [\n () => T,\n (value: T) => void,\n (fn: SignalWatcher<T>) => () => void,\n (fn: SignalWatcher<T>) => void,\n] & {\n get: () => T\n set: (value: T) => void\n on: (fn: SignalWatcher<T>) => () => void\n off: (fn: SignalWatcher<T>) => void\n}\n\n/** Super simple signal implementation */\nexport function useSignal<T = any>(value: T, onChange?: SignalWatcher<T>): Signal<T> {\n let signal = structuredClone(value)\n\n const watchers: SignalWatcher<T>[] = []\n\n function off(fn: SignalWatcher<T>) {\n arrayRemoveElement(watchers, fn)\n }\n\n function on(fn: SignalWatcher<T>) {\n watchers.push(fn)\n return () => off(fn)\n }\n\n if (onChange)\n watchers.push(onChange)\n\n const get = () => structuredClone(signal)\n\n const set = (value: T) => {\n if (value !== signal) {\n const oldValue = signal\n signal = value\n watchers.forEach(fn => fn(value, oldValue))\n }\n }\n\n const obj: any = [get, set, on, off]\n obj.get = get\n obj.set = set\n obj.on = on\n obj.off = off\n return obj\n}\n"],"mappings":";;;;AAoBA,SAAgB,UAAmB,OAAU,UAAwC;CACnF,IAAI,SAAS,gBAAgB,MAAM;CAEnC,MAAM,WAA+B,EAAE;CAEvC,SAAS,IAAI,IAAsB;AACjC,qBAAmB,UAAU,GAAG;;CAGlC,SAAS,GAAG,IAAsB;AAChC,WAAS,KAAK,GAAG;AACjB,eAAa,IAAI,GAAG;;AAGtB,KAAI,SACF,UAAS,KAAK,SAAS;CAEzB,MAAM,YAAY,gBAAgB,OAAO;CAEzC,MAAM,OAAO,UAAa;AACxB,MAAI,UAAU,QAAQ;GACpB,MAAM,WAAW;AACjB,YAAS;AACT,YAAS,SAAQ,OAAM,GAAG,OAAO,SAAS,CAAC;;;CAI/C,MAAM,MAAW;EAAC;EAAK;EAAK;EAAI;EAAI;AACpC,KAAI,MAAM;AACV,KAAI,MAAM;AACV,KAAI,KAAK;AACT,KAAI,MAAM;AACV,QAAO"}
@@ -1,2 +1,36 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./math.cjs`);function t(t){return t.reduce((e,t)=>Math.min(e,t.sort_weight||0),0)-1-e.getSecureRandomIfPossible()}function n(t){return t.reduce((e,t)=>Math.max(e,t.sort_weight||0),0)+1+e.getSecureRandomIfPossible()}function r(r,a,o){let s=o.length,c=r<a;if(s<=0||r>=s-1)return n(o);if(r<=0)return t(o);o=i([...o]);let l=c?-1:0,u=o[r+l].sort_weight||0,d=(o[r+l+1].sort_weight||0)-u;return d===0?c?t(o):n(o):u+d/2+d*.01*(e.getSecureRandomIfPossible()-.5)}function i(e){return e.sort((e,t)=>(e.sort_weight||0)-(t.sort_weight||0)),e}exports.endSortWeight=n,exports.moveSortWeight=r,exports.sortedItems=i,exports.startSortWeight=t;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_common_data_math = require('./math.cjs');
3
+
4
+ //#region src/common/data/sortable.ts
5
+ function startSortWeight(items) {
6
+ return items.reduce((acc, item) => Math.min(acc, item.sort_weight || 0), 0) - 1 - require_common_data_math.getSecureRandomIfPossible();
7
+ }
8
+ function endSortWeight(items) {
9
+ return items.reduce((acc, item) => Math.max(acc, item.sort_weight || 0), 0) + 1 + require_common_data_math.getSecureRandomIfPossible();
10
+ }
11
+ function moveSortWeight(newIndex, oldIndex, items) {
12
+ const count = items.length;
13
+ const moveLower = newIndex < oldIndex;
14
+ if (count <= 0 || newIndex >= count - 1) return endSortWeight(items);
15
+ if (newIndex <= 0) return startSortWeight(items);
16
+ items = sortedItems([...items]);
17
+ const step = moveLower ? -1 : 0;
18
+ const lower = items[newIndex + step].sort_weight || 0;
19
+ const distance = (items[newIndex + step + 1].sort_weight || 0) - lower;
20
+ if (distance === 0) {
21
+ if (moveLower) return startSortWeight(items);
22
+ return endSortWeight(items);
23
+ }
24
+ return lower + distance / 2 + distance * .01 * (require_common_data_math.getSecureRandomIfPossible() - .5);
25
+ }
26
+ function sortedItems(items) {
27
+ items.sort((a, b) => (a.sort_weight || 0) - (b.sort_weight || 0));
28
+ return items;
29
+ }
30
+
31
+ //#endregion
32
+ exports.endSortWeight = endSortWeight;
33
+ exports.moveSortWeight = moveSortWeight;
34
+ exports.sortedItems = sortedItems;
35
+ exports.startSortWeight = startSortWeight;
2
36
  //# sourceMappingURL=sortable.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sortable.cjs","names":["getSecureRandomIfPossible"],"sources":["../../../src/common/data/sortable.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n// Get a sort_weight suitable for adding to top of list\n// Original idea https://holtwick.de/en/blog/smart-table-reordering\n\nexport interface SortableItem {\n sort_weight: number\n}\n\nexport function startSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, item.sort_weight || 0), 0)\n - 1\n - getSecureRandomIfPossible()\n )\n}\n\n// Get a sort_weight suitable for adding to end of list\nexport function endSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, item.sort_weight || 0), 0)\n + 1\n + getSecureRandomIfPossible()\n )\n}\n\n// The real magic\nexport function moveSortWeight(\n newIndex: number,\n oldIndex: number,\n items: SortableItem[],\n): number {\n const count = items.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return endSortWeight(items)\n\n if (newIndex <= 0)\n return startSortWeight(items)\n\n // Make sure they are sorted\n items = sortedItems([...items])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = items[newIndex + step].sort_weight || 0\n const upper = items[newIndex + step + 1].sort_weight || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return startSortWeight(items)\n\n return endSortWeight(items)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n}\n\nexport function sortedItems<T extends SortableItem>(items: T[]): T[] {\n items.sort((a, b) => (a.sort_weight || 0) - (b.sort_weight || 0))\n return items\n}\n"],"mappings":"iGASA,SAAgB,EAAgB,EAA+B,CAC7D,OACE,EAAM,QAAQ,EAAK,IAAS,KAAK,IAAI,EAAK,EAAK,aAAe,EAAE,CAAE,EAAE,CAClE,EACAA,EAAAA,2BAA2B,CAKjC,SAAgB,EAAc,EAA+B,CAC3D,OACE,EAAM,QAAQ,EAAK,IAAS,KAAK,IAAI,EAAK,EAAK,aAAe,EAAE,CAAE,EAAE,CAClE,EACAA,EAAAA,2BAA2B,CAKjC,SAAgB,EACd,EACA,EACA,EACQ,CACR,IAAM,EAAQ,EAAM,OAEd,EAAY,EAAW,EAC7B,GAAI,GAAS,GAAK,GAAY,EAAQ,EACpC,OAAO,EAAc,EAAM,CAE7B,GAAI,GAAY,EACd,OAAO,EAAgB,EAAM,CAG/B,EAAQ,EAAY,CAAC,GAAG,EAAM,CAAC,CAE/B,IAAM,EAAO,EAAY,GAAK,EACxB,EAAQ,EAAM,EAAW,GAAM,aAAe,EAE9C,GADQ,EAAM,EAAW,EAAO,GAAG,aAAe,GAC/B,EAUzB,OATI,IAAa,EAEX,EACK,EAAgB,EAAM,CAExB,EAAc,EAAM,CAEd,EAAQ,EAAW,EACpB,EAAW,KAAQA,EAAAA,2BAA2B,CAAG,IAIjE,SAAgB,EAAoC,EAAiB,CAEnE,OADA,EAAM,MAAM,EAAG,KAAO,EAAE,aAAe,IAAM,EAAE,aAAe,GAAG,CAC1D"}
1
+ {"version":3,"file":"sortable.cjs","names":["getSecureRandomIfPossible"],"sources":["../../../src/common/data/sortable.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n// Get a sort_weight suitable for adding to top of list\n// Original idea https://holtwick.de/en/blog/smart-table-reordering\n\nexport interface SortableItem {\n sort_weight: number\n}\n\nexport function startSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, item.sort_weight || 0), 0)\n - 1\n - getSecureRandomIfPossible()\n )\n}\n\n// Get a sort_weight suitable for adding to end of list\nexport function endSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, item.sort_weight || 0), 0)\n + 1\n + getSecureRandomIfPossible()\n )\n}\n\n// The real magic\nexport function moveSortWeight(\n newIndex: number,\n oldIndex: number,\n items: SortableItem[],\n): number {\n const count = items.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return endSortWeight(items)\n\n if (newIndex <= 0)\n return startSortWeight(items)\n\n // Make sure they are sorted\n items = sortedItems([...items])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = items[newIndex + step].sort_weight || 0\n const upper = items[newIndex + step + 1].sort_weight || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return startSortWeight(items)\n\n return endSortWeight(items)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n}\n\nexport function sortedItems<T extends SortableItem>(items: T[]): T[] {\n items.sort((a, b) => (a.sort_weight || 0) - (b.sort_weight || 0))\n return items\n}\n"],"mappings":";;;;AASA,SAAgB,gBAAgB,OAA+B;AAC7D,QACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,KAAK,eAAe,EAAE,EAAE,EAAE,GAClE,IACAA,oDAA2B;;AAKjC,SAAgB,cAAc,OAA+B;AAC3D,QACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,KAAK,eAAe,EAAE,EAAE,EAAE,GAClE,IACAA,oDAA2B;;AAKjC,SAAgB,eACd,UACA,UACA,OACQ;CACR,MAAM,QAAQ,MAAM;CAEpB,MAAM,YAAY,WAAW;AAC7B,KAAI,SAAS,KAAK,YAAY,QAAQ,EACpC,QAAO,cAAc,MAAM;AAE7B,KAAI,YAAY,EACd,QAAO,gBAAgB,MAAM;AAG/B,SAAQ,YAAY,CAAC,GAAG,MAAM,CAAC;CAE/B,MAAM,OAAO,YAAY,KAAK;CAC9B,MAAM,QAAQ,MAAM,WAAW,MAAM,eAAe;CAEpD,MAAM,YADQ,MAAM,WAAW,OAAO,GAAG,eAAe,KAC/B;AACzB,KAAI,aAAa,GAAG;AAElB,MAAI,UACF,QAAO,gBAAgB,MAAM;AAE/B,SAAO,cAAc,MAAM;;AAI7B,QAFe,QAAQ,WAAW,IACpB,WAAW,OAAQA,oDAA2B,GAAG;;AAIjE,SAAgB,YAAoC,OAAiB;AACnE,OAAM,MAAM,GAAG,OAAO,EAAE,eAAe,MAAM,EAAE,eAAe,GAAG;AACjE,QAAO"}
@@ -1,2 +1,32 @@
1
- import{getSecureRandomIfPossible as e}from"./math.mjs";function t(t){return t.reduce((e,t)=>Math.min(e,t.sort_weight||0),0)-1-e()}function n(t){return t.reduce((e,t)=>Math.max(e,t.sort_weight||0),0)+1+e()}function r(r,a,o){let s=o.length,c=r<a;if(s<=0||r>=s-1)return n(o);if(r<=0)return t(o);o=i([...o]);let l=c?-1:0,u=o[r+l].sort_weight||0,d=(o[r+l+1].sort_weight||0)-u;return d===0?c?t(o):n(o):u+d/2+d*.01*(e()-.5)}function i(e){return e.sort((e,t)=>(e.sort_weight||0)-(t.sort_weight||0)),e}export{n as endSortWeight,r as moveSortWeight,i as sortedItems,t as startSortWeight};
1
+ import { getSecureRandomIfPossible } from "./math.mjs";
2
+
3
+ //#region src/common/data/sortable.ts
4
+ function startSortWeight(items) {
5
+ return items.reduce((acc, item) => Math.min(acc, item.sort_weight || 0), 0) - 1 - getSecureRandomIfPossible();
6
+ }
7
+ function endSortWeight(items) {
8
+ return items.reduce((acc, item) => Math.max(acc, item.sort_weight || 0), 0) + 1 + getSecureRandomIfPossible();
9
+ }
10
+ function moveSortWeight(newIndex, oldIndex, items) {
11
+ const count = items.length;
12
+ const moveLower = newIndex < oldIndex;
13
+ if (count <= 0 || newIndex >= count - 1) return endSortWeight(items);
14
+ if (newIndex <= 0) return startSortWeight(items);
15
+ items = sortedItems([...items]);
16
+ const step = moveLower ? -1 : 0;
17
+ const lower = items[newIndex + step].sort_weight || 0;
18
+ const distance = (items[newIndex + step + 1].sort_weight || 0) - lower;
19
+ if (distance === 0) {
20
+ if (moveLower) return startSortWeight(items);
21
+ return endSortWeight(items);
22
+ }
23
+ return lower + distance / 2 + distance * .01 * (getSecureRandomIfPossible() - .5);
24
+ }
25
+ function sortedItems(items) {
26
+ items.sort((a, b) => (a.sort_weight || 0) - (b.sort_weight || 0));
27
+ return items;
28
+ }
29
+
30
+ //#endregion
31
+ export { endSortWeight, moveSortWeight, sortedItems, startSortWeight };
2
32
  //# sourceMappingURL=sortable.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sortable.mjs","names":[],"sources":["../../../src/common/data/sortable.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n// Get a sort_weight suitable for adding to top of list\n// Original idea https://holtwick.de/en/blog/smart-table-reordering\n\nexport interface SortableItem {\n sort_weight: number\n}\n\nexport function startSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, item.sort_weight || 0), 0)\n - 1\n - getSecureRandomIfPossible()\n )\n}\n\n// Get a sort_weight suitable for adding to end of list\nexport function endSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, item.sort_weight || 0), 0)\n + 1\n + getSecureRandomIfPossible()\n )\n}\n\n// The real magic\nexport function moveSortWeight(\n newIndex: number,\n oldIndex: number,\n items: SortableItem[],\n): number {\n const count = items.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return endSortWeight(items)\n\n if (newIndex <= 0)\n return startSortWeight(items)\n\n // Make sure they are sorted\n items = sortedItems([...items])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = items[newIndex + step].sort_weight || 0\n const upper = items[newIndex + step + 1].sort_weight || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return startSortWeight(items)\n\n return endSortWeight(items)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n}\n\nexport function sortedItems<T extends SortableItem>(items: T[]): T[] {\n items.sort((a, b) => (a.sort_weight || 0) - (b.sort_weight || 0))\n return items\n}\n"],"mappings":"uDASA,SAAgB,EAAgB,EAA+B,CAC7D,OACE,EAAM,QAAQ,EAAK,IAAS,KAAK,IAAI,EAAK,EAAK,aAAe,EAAE,CAAE,EAAE,CAClE,EACA,GAA2B,CAKjC,SAAgB,EAAc,EAA+B,CAC3D,OACE,EAAM,QAAQ,EAAK,IAAS,KAAK,IAAI,EAAK,EAAK,aAAe,EAAE,CAAE,EAAE,CAClE,EACA,GAA2B,CAKjC,SAAgB,EACd,EACA,EACA,EACQ,CACR,IAAM,EAAQ,EAAM,OAEd,EAAY,EAAW,EAC7B,GAAI,GAAS,GAAK,GAAY,EAAQ,EACpC,OAAO,EAAc,EAAM,CAE7B,GAAI,GAAY,EACd,OAAO,EAAgB,EAAM,CAG/B,EAAQ,EAAY,CAAC,GAAG,EAAM,CAAC,CAE/B,IAAM,EAAO,EAAY,GAAK,EACxB,EAAQ,EAAM,EAAW,GAAM,aAAe,EAE9C,GADQ,EAAM,EAAW,EAAO,GAAG,aAAe,GAC/B,EAUzB,OATI,IAAa,EAEX,EACK,EAAgB,EAAM,CAExB,EAAc,EAAM,CAEd,EAAQ,EAAW,EACpB,EAAW,KAAQ,GAA2B,CAAG,IAIjE,SAAgB,EAAoC,EAAiB,CAEnE,OADA,EAAM,MAAM,EAAG,KAAO,EAAE,aAAe,IAAM,EAAE,aAAe,GAAG,CAC1D"}
1
+ {"version":3,"file":"sortable.mjs","names":[],"sources":["../../../src/common/data/sortable.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n// Get a sort_weight suitable for adding to top of list\n// Original idea https://holtwick.de/en/blog/smart-table-reordering\n\nexport interface SortableItem {\n sort_weight: number\n}\n\nexport function startSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, item.sort_weight || 0), 0)\n - 1\n - getSecureRandomIfPossible()\n )\n}\n\n// Get a sort_weight suitable for adding to end of list\nexport function endSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, item.sort_weight || 0), 0)\n + 1\n + getSecureRandomIfPossible()\n )\n}\n\n// The real magic\nexport function moveSortWeight(\n newIndex: number,\n oldIndex: number,\n items: SortableItem[],\n): number {\n const count = items.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return endSortWeight(items)\n\n if (newIndex <= 0)\n return startSortWeight(items)\n\n // Make sure they are sorted\n items = sortedItems([...items])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = items[newIndex + step].sort_weight || 0\n const upper = items[newIndex + step + 1].sort_weight || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return startSortWeight(items)\n\n return endSortWeight(items)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n}\n\nexport function sortedItems<T extends SortableItem>(items: T[]): T[] {\n items.sort((a, b) => (a.sort_weight || 0) - (b.sort_weight || 0))\n return items\n}\n"],"mappings":";;;AASA,SAAgB,gBAAgB,OAA+B;AAC7D,QACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,KAAK,eAAe,EAAE,EAAE,EAAE,GAClE,IACA,2BAA2B;;AAKjC,SAAgB,cAAc,OAA+B;AAC3D,QACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,KAAK,eAAe,EAAE,EAAE,EAAE,GAClE,IACA,2BAA2B;;AAKjC,SAAgB,eACd,UACA,UACA,OACQ;CACR,MAAM,QAAQ,MAAM;CAEpB,MAAM,YAAY,WAAW;AAC7B,KAAI,SAAS,KAAK,YAAY,QAAQ,EACpC,QAAO,cAAc,MAAM;AAE7B,KAAI,YAAY,EACd,QAAO,gBAAgB,MAAM;AAG/B,SAAQ,YAAY,CAAC,GAAG,MAAM,CAAC;CAE/B,MAAM,OAAO,YAAY,KAAK;CAC9B,MAAM,QAAQ,MAAM,WAAW,MAAM,eAAe;CAEpD,MAAM,YADQ,MAAM,WAAW,OAAO,GAAG,eAAe,KAC/B;AACzB,KAAI,aAAa,GAAG;AAElB,MAAI,UACF,QAAO,gBAAgB,MAAM;AAE/B,SAAO,cAAc,MAAM;;AAI7B,QAFe,QAAQ,WAAW,IACpB,WAAW,OAAQ,2BAA2B,GAAG;;AAIjE,SAAgB,YAAoC,OAAiB;AACnE,OAAM,MAAM,GAAG,OAAO,EAAE,eAAe,MAAM,EAAE,eAAe,GAAG;AACjE,QAAO"}
@@ -1,2 +1,55 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./math.cjs`);function t(t={}){let{getter:n=e=>e.sort}=t;function r(e){return e.sort((e,t)=>(n(e)||0)-(n(t)||0)),e}function i(t){return t.reduce((e,t)=>Math.min(e,n(t)||0),0)-1-e.getSecureRandomIfPossible()}function a(t){return t.reduce((e,t)=>Math.max(e,n(t)||0),0)+1+e.getSecureRandomIfPossible()}function o(t,n){t??=(n??0)-1,n??=(t??0)+1;let r=n-t;return t+r/2+r*.01*(e.getSecureRandomIfPossible()-.5)}function s(t,o,s){let c=s.length,l=t<o;if(c<=0||t>=c-1)return a(s);if(t<=0)return i(s);s=r([...s]);let u=l?-1:0,d=n(s[t+u])||0,f=(n(s[t+u+1])||0)-d;return f===0?l?i(s):a(s):d+f/2+f*.01*(e.getSecureRandomIfPossible()-.5)}return{start:i,end:a,between:o,move:s,items:r}}exports.useSorted=t;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_common_data_math = require('./math.cjs');
3
+
4
+ //#region src/common/data/sorted.ts
5
+ /** CRDT compatible sorting with a single operation. Default name is `sort` */
6
+ function useSorted(config = {}) {
7
+ const { getter = (item) => item.sort } = config;
8
+ /** Return sorted list from low to high. */
9
+ function items(items) {
10
+ items.sort((a, b) => (getter(a) || 0) - (getter(b) || 0));
11
+ return items;
12
+ }
13
+ /** Get a sort suitable for adding to start of list. */
14
+ function start(items) {
15
+ return items.reduce((acc, item) => Math.min(acc, getter(item) || 0), 0) - 1 - require_common_data_math.getSecureRandomIfPossible();
16
+ }
17
+ /** Get a sort suitable for adding to end of list. */
18
+ function end(items) {
19
+ return items.reduce((acc, item) => Math.max(acc, getter(item) || 0), 0) + 1 + require_common_data_math.getSecureRandomIfPossible();
20
+ }
21
+ /** Find a suitable value inbetween a lower and upper bound. */
22
+ function between(lower, upper) {
23
+ if (lower == null) lower = (upper ?? 0) - 1;
24
+ if (upper == null) upper = (lower ?? 0) + 1;
25
+ const distance = upper - lower;
26
+ return lower + distance / 2 + distance * .01 * (require_common_data_math.getSecureRandomIfPossible() - .5);
27
+ }
28
+ /** Mainly for drag and drop movements, where an item has to be moved to another index. Respects its own move as well. */
29
+ function move(newIndex, oldIndex, sortableItems) {
30
+ const count = sortableItems.length;
31
+ const moveLower = newIndex < oldIndex;
32
+ if (count <= 0 || newIndex >= count - 1) return end(sortableItems);
33
+ if (newIndex <= 0) return start(sortableItems);
34
+ sortableItems = items([...sortableItems]);
35
+ const step = moveLower ? -1 : 0;
36
+ const lower = getter(sortableItems[newIndex + step]) || 0;
37
+ const distance = (getter(sortableItems[newIndex + step + 1]) || 0) - lower;
38
+ if (distance === 0) {
39
+ if (moveLower) return start(sortableItems);
40
+ return end(sortableItems);
41
+ }
42
+ return lower + distance / 2 + distance * .01 * (require_common_data_math.getSecureRandomIfPossible() - .5);
43
+ }
44
+ return {
45
+ start,
46
+ end,
47
+ between,
48
+ move,
49
+ items
50
+ };
51
+ }
52
+
53
+ //#endregion
54
+ exports.useSorted = useSorted;
2
55
  //# sourceMappingURL=sorted.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sorted.cjs","names":["getSecureRandomIfPossible"],"sources":["../../../src/common/data/sorted.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n/** CRDT compatible sorting with a single operation. Default name is `sort` */\nexport function useSorted<S extends Record<string, any>>(\n config: {\n getter?: (item: S) => number\n // setter?: (item: S, value: number) => void\n } = {},\n) {\n const {\n getter = (item: any): number => item.sort,\n // setter = (item: any, value) => (item.sort = value),\n } = config\n\n /** Return sorted list from low to high. */\n function items<T extends S>(items: T[]): T[] {\n items.sort((a, b) => (getter(a) || 0) - (getter(b) || 0))\n return items\n }\n\n /** Get a sort suitable for adding to start of list. */\n function start(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, getter(item) || 0), 0) - 1 - getSecureRandomIfPossible()\n )\n }\n\n /** Get a sort suitable for adding to end of list. */\n function end(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, getter(item) || 0), 0) + 1 + getSecureRandomIfPossible()\n )\n }\n\n /** Find a suitable value inbetween a lower and upper bound. */\n function between(lower?: number, upper?: number): number {\n if (lower == null)\n lower = (upper ?? 0) - 1\n if (upper == null)\n upper = (lower ?? 0) + 1\n\n const distance = upper - lower\n // if (distance === 0)\n\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n /** Mainly for drag and drop movements, where an item has to be moved to another index. Respects its own move as well. */\n function move(\n newIndex: number,\n oldIndex: number,\n sortableItems: S[],\n ): number {\n const count = sortableItems.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return end(sortableItems)\n\n if (newIndex <= 0)\n return start(sortableItems)\n\n // Make sure they are sorted\n sortableItems = items([...sortableItems])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = getter(sortableItems[newIndex + step]) || 0\n const upper = getter(sortableItems[newIndex + step + 1]) || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return start(sortableItems)\n\n return end(sortableItems)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n return {\n start,\n end,\n between,\n move,\n items,\n }\n}\n"],"mappings":"iGAGA,SAAgB,EACd,EAGI,EAAE,CACN,CACA,GAAM,CACJ,SAAU,GAAsB,EAAK,MAEnC,EAGJ,SAAS,EAAmB,EAAiB,CAE3C,OADA,EAAM,MAAM,EAAG,KAAO,EAAO,EAAE,EAAI,IAAM,EAAO,EAAE,EAAI,GAAG,CAClD,EAIT,SAAS,EAAM,EAAoB,CACjC,OACE,EAAM,QAAQ,EAAK,IAAS,KAAK,IAAI,EAAK,EAAO,EAAK,EAAI,EAAE,CAAE,EAAE,CAAG,EAAIA,EAAAA,2BAA2B,CAKtG,SAAS,EAAI,EAAoB,CAC/B,OACE,EAAM,QAAQ,EAAK,IAAS,KAAK,IAAI,EAAK,EAAO,EAAK,EAAI,EAAE,CAAE,EAAE,CAAG,EAAIA,EAAAA,2BAA2B,CAKtG,SAAS,EAAQ,EAAgB,EAAwB,CACvD,AACE,KAAS,GAAS,GAAK,EACzB,AACE,KAAS,GAAS,GAAK,EAEzB,IAAM,EAAW,EAAQ,EAKzB,OAFe,EAAQ,EAAW,EACpB,EAAW,KAAQA,EAAAA,2BAA2B,CAAG,IAKjE,SAAS,EACP,EACA,EACA,EACQ,CACR,IAAM,EAAQ,EAAc,OAEtB,EAAY,EAAW,EAC7B,GAAI,GAAS,GAAK,GAAY,EAAQ,EACpC,OAAO,EAAI,EAAc,CAE3B,GAAI,GAAY,EACd,OAAO,EAAM,EAAc,CAG7B,EAAgB,EAAM,CAAC,GAAG,EAAc,CAAC,CAEzC,IAAM,EAAO,EAAY,GAAK,EACxB,EAAQ,EAAO,EAAc,EAAW,GAAM,EAAI,EAElD,GADQ,EAAO,EAAc,EAAW,EAAO,GAAG,EAAI,GACnC,EAUzB,OATI,IAAa,EAEX,EACK,EAAM,EAAc,CAEtB,EAAI,EAAc,CAEZ,EAAQ,EAAW,EACpB,EAAW,KAAQA,EAAAA,2BAA2B,CAAG,IAIjE,MAAO,CACL,QACA,MACA,UACA,OACA,QACD"}
1
+ {"version":3,"file":"sorted.cjs","names":["getSecureRandomIfPossible"],"sources":["../../../src/common/data/sorted.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n/** CRDT compatible sorting with a single operation. Default name is `sort` */\nexport function useSorted<S extends Record<string, any>>(\n config: {\n getter?: (item: S) => number\n // setter?: (item: S, value: number) => void\n } = {},\n) {\n const {\n getter = (item: any): number => item.sort,\n // setter = (item: any, value) => (item.sort = value),\n } = config\n\n /** Return sorted list from low to high. */\n function items<T extends S>(items: T[]): T[] {\n items.sort((a, b) => (getter(a) || 0) - (getter(b) || 0))\n return items\n }\n\n /** Get a sort suitable for adding to start of list. */\n function start(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, getter(item) || 0), 0) - 1 - getSecureRandomIfPossible()\n )\n }\n\n /** Get a sort suitable for adding to end of list. */\n function end(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, getter(item) || 0), 0) + 1 + getSecureRandomIfPossible()\n )\n }\n\n /** Find a suitable value inbetween a lower and upper bound. */\n function between(lower?: number, upper?: number): number {\n if (lower == null)\n lower = (upper ?? 0) - 1\n if (upper == null)\n upper = (lower ?? 0) + 1\n\n const distance = upper - lower\n // if (distance === 0)\n\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n /** Mainly for drag and drop movements, where an item has to be moved to another index. Respects its own move as well. */\n function move(\n newIndex: number,\n oldIndex: number,\n sortableItems: S[],\n ): number {\n const count = sortableItems.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return end(sortableItems)\n\n if (newIndex <= 0)\n return start(sortableItems)\n\n // Make sure they are sorted\n sortableItems = items([...sortableItems])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = getter(sortableItems[newIndex + step]) || 0\n const upper = getter(sortableItems[newIndex + step + 1]) || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return start(sortableItems)\n\n return end(sortableItems)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n return {\n start,\n end,\n between,\n move,\n items,\n }\n}\n"],"mappings":";;;;;AAGA,SAAgB,UACd,SAGI,EAAE,EACN;CACA,MAAM,EACJ,UAAU,SAAsB,KAAK,SAEnC;;CAGJ,SAAS,MAAmB,OAAiB;AAC3C,QAAM,MAAM,GAAG,OAAO,OAAO,EAAE,IAAI,MAAM,OAAO,EAAE,IAAI,GAAG;AACzD,SAAO;;;CAIT,SAAS,MAAM,OAAoB;AACjC,SACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,OAAO,KAAK,IAAI,EAAE,EAAE,EAAE,GAAG,IAAIA,oDAA2B;;;CAKtG,SAAS,IAAI,OAAoB;AAC/B,SACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,OAAO,KAAK,IAAI,EAAE,EAAE,EAAE,GAAG,IAAIA,oDAA2B;;;CAKtG,SAAS,QAAQ,OAAgB,OAAwB;AACvD,MAAI,SAAS,KACX,UAAS,SAAS,KAAK;AACzB,MAAI,SAAS,KACX,UAAS,SAAS,KAAK;EAEzB,MAAM,WAAW,QAAQ;AAKzB,SAFe,QAAQ,WAAW,IACpB,WAAW,OAAQA,oDAA2B,GAAG;;;CAKjE,SAAS,KACP,UACA,UACA,eACQ;EACR,MAAM,QAAQ,cAAc;EAE5B,MAAM,YAAY,WAAW;AAC7B,MAAI,SAAS,KAAK,YAAY,QAAQ,EACpC,QAAO,IAAI,cAAc;AAE3B,MAAI,YAAY,EACd,QAAO,MAAM,cAAc;AAG7B,kBAAgB,MAAM,CAAC,GAAG,cAAc,CAAC;EAEzC,MAAM,OAAO,YAAY,KAAK;EAC9B,MAAM,QAAQ,OAAO,cAAc,WAAW,MAAM,IAAI;EAExD,MAAM,YADQ,OAAO,cAAc,WAAW,OAAO,GAAG,IAAI,KACnC;AACzB,MAAI,aAAa,GAAG;AAElB,OAAI,UACF,QAAO,MAAM,cAAc;AAE7B,UAAO,IAAI,cAAc;;AAI3B,SAFe,QAAQ,WAAW,IACpB,WAAW,OAAQA,oDAA2B,GAAG;;AAIjE,QAAO;EACL;EACA;EACA;EACA;EACA;EACD"}
@@ -1,2 +1,54 @@
1
- import{getSecureRandomIfPossible as e}from"./math.mjs";function t(t={}){let{getter:n=e=>e.sort}=t;function r(e){return e.sort((e,t)=>(n(e)||0)-(n(t)||0)),e}function i(t){return t.reduce((e,t)=>Math.min(e,n(t)||0),0)-1-e()}function a(t){return t.reduce((e,t)=>Math.max(e,n(t)||0),0)+1+e()}function o(t,n){t??=(n??0)-1,n??=(t??0)+1;let r=n-t;return t+r/2+r*.01*(e()-.5)}function s(t,o,s){let c=s.length,l=t<o;if(c<=0||t>=c-1)return a(s);if(t<=0)return i(s);s=r([...s]);let u=l?-1:0,d=n(s[t+u])||0,f=(n(s[t+u+1])||0)-d;return f===0?l?i(s):a(s):d+f/2+f*.01*(e()-.5)}return{start:i,end:a,between:o,move:s,items:r}}export{t as useSorted};
1
+ import { getSecureRandomIfPossible } from "./math.mjs";
2
+
3
+ //#region src/common/data/sorted.ts
4
+ /** CRDT compatible sorting with a single operation. Default name is `sort` */
5
+ function useSorted(config = {}) {
6
+ const { getter = (item) => item.sort } = config;
7
+ /** Return sorted list from low to high. */
8
+ function items(items) {
9
+ items.sort((a, b) => (getter(a) || 0) - (getter(b) || 0));
10
+ return items;
11
+ }
12
+ /** Get a sort suitable for adding to start of list. */
13
+ function start(items) {
14
+ return items.reduce((acc, item) => Math.min(acc, getter(item) || 0), 0) - 1 - getSecureRandomIfPossible();
15
+ }
16
+ /** Get a sort suitable for adding to end of list. */
17
+ function end(items) {
18
+ return items.reduce((acc, item) => Math.max(acc, getter(item) || 0), 0) + 1 + getSecureRandomIfPossible();
19
+ }
20
+ /** Find a suitable value inbetween a lower and upper bound. */
21
+ function between(lower, upper) {
22
+ if (lower == null) lower = (upper ?? 0) - 1;
23
+ if (upper == null) upper = (lower ?? 0) + 1;
24
+ const distance = upper - lower;
25
+ return lower + distance / 2 + distance * .01 * (getSecureRandomIfPossible() - .5);
26
+ }
27
+ /** Mainly for drag and drop movements, where an item has to be moved to another index. Respects its own move as well. */
28
+ function move(newIndex, oldIndex, sortableItems) {
29
+ const count = sortableItems.length;
30
+ const moveLower = newIndex < oldIndex;
31
+ if (count <= 0 || newIndex >= count - 1) return end(sortableItems);
32
+ if (newIndex <= 0) return start(sortableItems);
33
+ sortableItems = items([...sortableItems]);
34
+ const step = moveLower ? -1 : 0;
35
+ const lower = getter(sortableItems[newIndex + step]) || 0;
36
+ const distance = (getter(sortableItems[newIndex + step + 1]) || 0) - lower;
37
+ if (distance === 0) {
38
+ if (moveLower) return start(sortableItems);
39
+ return end(sortableItems);
40
+ }
41
+ return lower + distance / 2 + distance * .01 * (getSecureRandomIfPossible() - .5);
42
+ }
43
+ return {
44
+ start,
45
+ end,
46
+ between,
47
+ move,
48
+ items
49
+ };
50
+ }
51
+
52
+ //#endregion
53
+ export { useSorted };
2
54
  //# sourceMappingURL=sorted.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sorted.mjs","names":[],"sources":["../../../src/common/data/sorted.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n/** CRDT compatible sorting with a single operation. Default name is `sort` */\nexport function useSorted<S extends Record<string, any>>(\n config: {\n getter?: (item: S) => number\n // setter?: (item: S, value: number) => void\n } = {},\n) {\n const {\n getter = (item: any): number => item.sort,\n // setter = (item: any, value) => (item.sort = value),\n } = config\n\n /** Return sorted list from low to high. */\n function items<T extends S>(items: T[]): T[] {\n items.sort((a, b) => (getter(a) || 0) - (getter(b) || 0))\n return items\n }\n\n /** Get a sort suitable for adding to start of list. */\n function start(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, getter(item) || 0), 0) - 1 - getSecureRandomIfPossible()\n )\n }\n\n /** Get a sort suitable for adding to end of list. */\n function end(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, getter(item) || 0), 0) + 1 + getSecureRandomIfPossible()\n )\n }\n\n /** Find a suitable value inbetween a lower and upper bound. */\n function between(lower?: number, upper?: number): number {\n if (lower == null)\n lower = (upper ?? 0) - 1\n if (upper == null)\n upper = (lower ?? 0) + 1\n\n const distance = upper - lower\n // if (distance === 0)\n\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n /** Mainly for drag and drop movements, where an item has to be moved to another index. Respects its own move as well. */\n function move(\n newIndex: number,\n oldIndex: number,\n sortableItems: S[],\n ): number {\n const count = sortableItems.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return end(sortableItems)\n\n if (newIndex <= 0)\n return start(sortableItems)\n\n // Make sure they are sorted\n sortableItems = items([...sortableItems])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = getter(sortableItems[newIndex + step]) || 0\n const upper = getter(sortableItems[newIndex + step + 1]) || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return start(sortableItems)\n\n return end(sortableItems)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n return {\n start,\n end,\n between,\n move,\n items,\n }\n}\n"],"mappings":"uDAGA,SAAgB,EACd,EAGI,EAAE,CACN,CACA,GAAM,CACJ,SAAU,GAAsB,EAAK,MAEnC,EAGJ,SAAS,EAAmB,EAAiB,CAE3C,OADA,EAAM,MAAM,EAAG,KAAO,EAAO,EAAE,EAAI,IAAM,EAAO,EAAE,EAAI,GAAG,CAClD,EAIT,SAAS,EAAM,EAAoB,CACjC,OACE,EAAM,QAAQ,EAAK,IAAS,KAAK,IAAI,EAAK,EAAO,EAAK,EAAI,EAAE,CAAE,EAAE,CAAG,EAAI,GAA2B,CAKtG,SAAS,EAAI,EAAoB,CAC/B,OACE,EAAM,QAAQ,EAAK,IAAS,KAAK,IAAI,EAAK,EAAO,EAAK,EAAI,EAAE,CAAE,EAAE,CAAG,EAAI,GAA2B,CAKtG,SAAS,EAAQ,EAAgB,EAAwB,CACvD,AACE,KAAS,GAAS,GAAK,EACzB,AACE,KAAS,GAAS,GAAK,EAEzB,IAAM,EAAW,EAAQ,EAKzB,OAFe,EAAQ,EAAW,EACpB,EAAW,KAAQ,GAA2B,CAAG,IAKjE,SAAS,EACP,EACA,EACA,EACQ,CACR,IAAM,EAAQ,EAAc,OAEtB,EAAY,EAAW,EAC7B,GAAI,GAAS,GAAK,GAAY,EAAQ,EACpC,OAAO,EAAI,EAAc,CAE3B,GAAI,GAAY,EACd,OAAO,EAAM,EAAc,CAG7B,EAAgB,EAAM,CAAC,GAAG,EAAc,CAAC,CAEzC,IAAM,EAAO,EAAY,GAAK,EACxB,EAAQ,EAAO,EAAc,EAAW,GAAM,EAAI,EAElD,GADQ,EAAO,EAAc,EAAW,EAAO,GAAG,EAAI,GACnC,EAUzB,OATI,IAAa,EAEX,EACK,EAAM,EAAc,CAEtB,EAAI,EAAc,CAEZ,EAAQ,EAAW,EACpB,EAAW,KAAQ,GAA2B,CAAG,IAIjE,MAAO,CACL,QACA,MACA,UACA,OACA,QACD"}
1
+ {"version":3,"file":"sorted.mjs","names":[],"sources":["../../../src/common/data/sorted.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n/** CRDT compatible sorting with a single operation. Default name is `sort` */\nexport function useSorted<S extends Record<string, any>>(\n config: {\n getter?: (item: S) => number\n // setter?: (item: S, value: number) => void\n } = {},\n) {\n const {\n getter = (item: any): number => item.sort,\n // setter = (item: any, value) => (item.sort = value),\n } = config\n\n /** Return sorted list from low to high. */\n function items<T extends S>(items: T[]): T[] {\n items.sort((a, b) => (getter(a) || 0) - (getter(b) || 0))\n return items\n }\n\n /** Get a sort suitable for adding to start of list. */\n function start(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, getter(item) || 0), 0) - 1 - getSecureRandomIfPossible()\n )\n }\n\n /** Get a sort suitable for adding to end of list. */\n function end(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, getter(item) || 0), 0) + 1 + getSecureRandomIfPossible()\n )\n }\n\n /** Find a suitable value inbetween a lower and upper bound. */\n function between(lower?: number, upper?: number): number {\n if (lower == null)\n lower = (upper ?? 0) - 1\n if (upper == null)\n upper = (lower ?? 0) + 1\n\n const distance = upper - lower\n // if (distance === 0)\n\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n /** Mainly for drag and drop movements, where an item has to be moved to another index. Respects its own move as well. */\n function move(\n newIndex: number,\n oldIndex: number,\n sortableItems: S[],\n ): number {\n const count = sortableItems.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return end(sortableItems)\n\n if (newIndex <= 0)\n return start(sortableItems)\n\n // Make sure they are sorted\n sortableItems = items([...sortableItems])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = getter(sortableItems[newIndex + step]) || 0\n const upper = getter(sortableItems[newIndex + step + 1]) || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return start(sortableItems)\n\n return end(sortableItems)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n return {\n start,\n end,\n between,\n move,\n items,\n }\n}\n"],"mappings":";;;;AAGA,SAAgB,UACd,SAGI,EAAE,EACN;CACA,MAAM,EACJ,UAAU,SAAsB,KAAK,SAEnC;;CAGJ,SAAS,MAAmB,OAAiB;AAC3C,QAAM,MAAM,GAAG,OAAO,OAAO,EAAE,IAAI,MAAM,OAAO,EAAE,IAAI,GAAG;AACzD,SAAO;;;CAIT,SAAS,MAAM,OAAoB;AACjC,SACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,OAAO,KAAK,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,2BAA2B;;;CAKtG,SAAS,IAAI,OAAoB;AAC/B,SACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,OAAO,KAAK,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,2BAA2B;;;CAKtG,SAAS,QAAQ,OAAgB,OAAwB;AACvD,MAAI,SAAS,KACX,UAAS,SAAS,KAAK;AACzB,MAAI,SAAS,KACX,UAAS,SAAS,KAAK;EAEzB,MAAM,WAAW,QAAQ;AAKzB,SAFe,QAAQ,WAAW,IACpB,WAAW,OAAQ,2BAA2B,GAAG;;;CAKjE,SAAS,KACP,UACA,UACA,eACQ;EACR,MAAM,QAAQ,cAAc;EAE5B,MAAM,YAAY,WAAW;AAC7B,MAAI,SAAS,KAAK,YAAY,QAAQ,EACpC,QAAO,IAAI,cAAc;AAE3B,MAAI,YAAY,EACd,QAAO,MAAM,cAAc;AAG7B,kBAAgB,MAAM,CAAC,GAAG,cAAc,CAAC;EAEzC,MAAM,OAAO,YAAY,KAAK;EAC9B,MAAM,QAAQ,OAAO,cAAc,WAAW,MAAM,IAAI;EAExD,MAAM,YADQ,OAAO,cAAc,WAAW,OAAO,GAAG,IAAI,KACnC;AACzB,MAAI,aAAa,GAAG;AAElB,OAAI,UACF,QAAO,MAAM,cAAc;AAE7B,UAAO,IAAI,cAAc;;AAI3B,SAFe,QAAQ,WAAW,IACpB,WAAW,OAAQ,2BAA2B,GAAG;;AAIjE,QAAO;EACL;EACA;EACA;EACA;EACA;EACD"}
@@ -1,2 +1,241 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(e){return t=>e?.[t]}const t={À:`A`,Á:`A`,Â:`A`,Ã:`A`,Ä:`A`,Å:`A`,à:`a`,á:`a`,â:`a`,ã:`a`,ä:`a`,å:`a`,Ç:`C`,ç:`c`,Ð:`D`,ð:`d`,È:`E`,É:`E`,Ê:`E`,Ë:`E`,è:`e`,é:`e`,ê:`e`,ë:`e`,Ì:`I`,Í:`I`,Î:`I`,Ï:`I`,ì:`i`,í:`i`,î:`i`,ï:`i`,Ñ:`N`,ñ:`n`,Ò:`O`,Ó:`O`,Ô:`O`,Õ:`O`,Ö:`O`,Ø:`O`,ò:`o`,ó:`o`,ô:`o`,õ:`o`,ö:`o`,ø:`o`,Ù:`U`,Ú:`U`,Û:`U`,Ü:`U`,ù:`u`,ú:`u`,û:`u`,ü:`u`,Ý:`Y`,ý:`y`,ÿ:`y`,Æ:`Ae`,æ:`ae`,Þ:`Th`,þ:`th`,ß:`ss`,Ā:`A`,Ă:`A`,Ą:`A`,ā:`a`,ă:`a`,ą:`a`,Ć:`C`,Ĉ:`C`,Ċ:`C`,Č:`C`,ć:`c`,ĉ:`c`,ċ:`c`,č:`c`,Ď:`D`,Đ:`D`,ď:`d`,đ:`d`,Ē:`E`,Ĕ:`E`,Ė:`E`,Ę:`E`,Ě:`E`,ē:`e`,ĕ:`e`,ė:`e`,ę:`e`,ě:`e`,Ĝ:`G`,Ğ:`G`,Ġ:`G`,Ģ:`G`,ĝ:`g`,ğ:`g`,ġ:`g`,ģ:`g`,Ĥ:`H`,Ħ:`H`,ĥ:`h`,ħ:`h`,Ĩ:`I`,Ī:`I`,Ĭ:`I`,Į:`I`,İ:`I`,ĩ:`i`,ī:`i`,ĭ:`i`,į:`i`,ı:`i`,Ĵ:`J`,ĵ:`j`,Ķ:`K`,ķ:`k`,ĸ:`k`,Ĺ:`L`,Ļ:`L`,Ľ:`L`,Ŀ:`L`,Ł:`L`,ĺ:`l`,ļ:`l`,ľ:`l`,ŀ:`l`,ł:`l`,Ń:`N`,Ņ:`N`,Ň:`N`,Ŋ:`N`,ń:`n`,ņ:`n`,ň:`n`,ŋ:`n`,Ō:`O`,Ŏ:`O`,Ő:`O`,ō:`o`,ŏ:`o`,ő:`o`,Ŕ:`R`,Ŗ:`R`,Ř:`R`,ŕ:`r`,ŗ:`r`,ř:`r`,Ś:`S`,Ŝ:`S`,Ş:`S`,Š:`S`,ś:`s`,ŝ:`s`,ş:`s`,š:`s`,Ţ:`T`,Ť:`T`,Ŧ:`T`,ţ:`t`,ť:`t`,ŧ:`t`,Ũ:`U`,Ū:`U`,Ŭ:`U`,Ů:`U`,Ű:`U`,Ų:`U`,ũ:`u`,ū:`u`,ŭ:`u`,ů:`u`,ű:`u`,ų:`u`,Ŵ:`W`,ŵ:`w`,Ŷ:`Y`,ŷ:`y`,Ÿ:`Y`,Ź:`Z`,Ż:`Z`,Ž:`Z`,ź:`z`,ż:`z`,ž:`z`,IJ:`IJ`,ij:`ij`,Œ:`Oe`,œ:`oe`,ʼn:`'n`,ſ:`s`};let n;const r=/[\xD8-\xF6\u0100-\u017F]/gi;let i;function a(a){return i??=RegExp(`[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]`,`g`),n??=e(t),a&&a.replace(r,n).replace(i,``)}exports.deburr=a;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/common/data/string-deburr.ts
4
+ /**
5
+ * The base implementation of `propertyOf` without support for deep paths.
6
+ */
7
+ function basePropertyOf(object) {
8
+ return (key) => object == null ? void 0 : object[key];
9
+ }
10
+ /** Used to map Latin Unicode letters to basic Latin letters. */
11
+ const deburredLetters = {
12
+ À: "A",
13
+ Á: "A",
14
+ Â: "A",
15
+ Ã: "A",
16
+ Ä: "A",
17
+ Å: "A",
18
+ à: "a",
19
+ á: "a",
20
+ â: "a",
21
+ ã: "a",
22
+ ä: "a",
23
+ å: "a",
24
+ Ç: "C",
25
+ ç: "c",
26
+ Ð: "D",
27
+ ð: "d",
28
+ È: "E",
29
+ É: "E",
30
+ Ê: "E",
31
+ Ë: "E",
32
+ è: "e",
33
+ é: "e",
34
+ ê: "e",
35
+ ë: "e",
36
+ Ì: "I",
37
+ Í: "I",
38
+ Î: "I",
39
+ Ï: "I",
40
+ ì: "i",
41
+ í: "i",
42
+ î: "i",
43
+ ï: "i",
44
+ Ñ: "N",
45
+ ñ: "n",
46
+ Ò: "O",
47
+ Ó: "O",
48
+ Ô: "O",
49
+ Õ: "O",
50
+ Ö: "O",
51
+ Ø: "O",
52
+ ò: "o",
53
+ ó: "o",
54
+ ô: "o",
55
+ õ: "o",
56
+ ö: "o",
57
+ ø: "o",
58
+ Ù: "U",
59
+ Ú: "U",
60
+ Û: "U",
61
+ Ü: "U",
62
+ ù: "u",
63
+ ú: "u",
64
+ û: "u",
65
+ ü: "u",
66
+ Ý: "Y",
67
+ ý: "y",
68
+ ÿ: "y",
69
+ Æ: "Ae",
70
+ æ: "ae",
71
+ Þ: "Th",
72
+ þ: "th",
73
+ ß: "ss",
74
+ Ā: "A",
75
+ Ă: "A",
76
+ Ą: "A",
77
+ ā: "a",
78
+ ă: "a",
79
+ ą: "a",
80
+ Ć: "C",
81
+ Ĉ: "C",
82
+ Ċ: "C",
83
+ Č: "C",
84
+ ć: "c",
85
+ ĉ: "c",
86
+ ċ: "c",
87
+ č: "c",
88
+ Ď: "D",
89
+ Đ: "D",
90
+ ď: "d",
91
+ đ: "d",
92
+ Ē: "E",
93
+ Ĕ: "E",
94
+ Ė: "E",
95
+ Ę: "E",
96
+ Ě: "E",
97
+ ē: "e",
98
+ ĕ: "e",
99
+ ė: "e",
100
+ ę: "e",
101
+ ě: "e",
102
+ Ĝ: "G",
103
+ Ğ: "G",
104
+ Ġ: "G",
105
+ Ģ: "G",
106
+ ĝ: "g",
107
+ ğ: "g",
108
+ ġ: "g",
109
+ ģ: "g",
110
+ Ĥ: "H",
111
+ Ħ: "H",
112
+ ĥ: "h",
113
+ ħ: "h",
114
+ Ĩ: "I",
115
+ Ī: "I",
116
+ Ĭ: "I",
117
+ Į: "I",
118
+ İ: "I",
119
+ ĩ: "i",
120
+ ī: "i",
121
+ ĭ: "i",
122
+ į: "i",
123
+ ı: "i",
124
+ Ĵ: "J",
125
+ ĵ: "j",
126
+ Ķ: "K",
127
+ ķ: "k",
128
+ ĸ: "k",
129
+ Ĺ: "L",
130
+ Ļ: "L",
131
+ Ľ: "L",
132
+ Ŀ: "L",
133
+ Ł: "L",
134
+ ĺ: "l",
135
+ ļ: "l",
136
+ ľ: "l",
137
+ ŀ: "l",
138
+ ł: "l",
139
+ Ń: "N",
140
+ Ņ: "N",
141
+ Ň: "N",
142
+ Ŋ: "N",
143
+ ń: "n",
144
+ ņ: "n",
145
+ ň: "n",
146
+ ŋ: "n",
147
+ Ō: "O",
148
+ Ŏ: "O",
149
+ Ő: "O",
150
+ ō: "o",
151
+ ŏ: "o",
152
+ ő: "o",
153
+ Ŕ: "R",
154
+ Ŗ: "R",
155
+ Ř: "R",
156
+ ŕ: "r",
157
+ ŗ: "r",
158
+ ř: "r",
159
+ Ś: "S",
160
+ Ŝ: "S",
161
+ Ş: "S",
162
+ Š: "S",
163
+ ś: "s",
164
+ ŝ: "s",
165
+ ş: "s",
166
+ š: "s",
167
+ Ţ: "T",
168
+ Ť: "T",
169
+ Ŧ: "T",
170
+ ţ: "t",
171
+ ť: "t",
172
+ ŧ: "t",
173
+ Ũ: "U",
174
+ Ū: "U",
175
+ Ŭ: "U",
176
+ Ů: "U",
177
+ Ű: "U",
178
+ Ų: "U",
179
+ ũ: "u",
180
+ ū: "u",
181
+ ŭ: "u",
182
+ ů: "u",
183
+ ű: "u",
184
+ ų: "u",
185
+ Ŵ: "W",
186
+ ŵ: "w",
187
+ Ŷ: "Y",
188
+ ŷ: "y",
189
+ Ÿ: "Y",
190
+ Ź: "Z",
191
+ Ż: "Z",
192
+ Ž: "Z",
193
+ ź: "z",
194
+ ż: "z",
195
+ ž: "z",
196
+ IJ: "IJ",
197
+ ij: "ij",
198
+ Œ: "Oe",
199
+ œ: "oe",
200
+ ʼn: "'n",
201
+ ſ: "s"
202
+ };
203
+ /**
204
+ * Used by `deburr` to convert Latin-1 Supplement and Latin Extended-A
205
+ * letters to basic Latin letters.
206
+ *
207
+ * @private
208
+ * @param {string} letter The matched letter to deburr.
209
+ * @returns {string} Returns the deburred letter.
210
+ */
211
+ let deburrLetter;
212
+ /** Used to match Latin Unicode letters (excluding mathematical operators). */
213
+ const reLatin = /[\xD8-\xF6\u0100-\u017F]/gi;
214
+ /**
215
+ * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and
216
+ * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).
217
+ */
218
+ let reComboMark;
219
+ /**
220
+ * Deburrs `string` by converting
221
+ * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)
222
+ * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)
223
+ * letters to basic Latin letters and removing
224
+ * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).
225
+ *
226
+ * @param {string} string The string to deburr.
227
+ * @returns {string} Returns the deburred string.
228
+ * @example
229
+ *
230
+ * deburr('déjà vu')
231
+ * // => 'deja vu'
232
+ */
233
+ function deburr(string) {
234
+ if (reComboMark == null) reComboMark = RegExp(`[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]`, "g");
235
+ if (deburrLetter == null) deburrLetter = basePropertyOf(deburredLetters);
236
+ return string && string.replace(reLatin, deburrLetter).replace(reComboMark, "");
237
+ }
238
+
239
+ //#endregion
240
+ exports.deburr = deburr;
2
241
  //# sourceMappingURL=string-deburr.cjs.map