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 +1 @@
1
- {"version":3,"file":"string.mjs","names":[],"sources":["../../../../src/common/bin/lib0/string.ts"],"sourcesContent":["/**\n * Original at https://github.com/dmonad/lib0\n *\n * Utility module to work with strings.\n */\n\n// export const fromCharCode = String.fromCharCode\n// export const fromCodePoint = String.fromCodePoint\n\nfunction toLowerCase(s: string): string {\n return s.toLowerCase()\n}\n\nconst trimLeftRegex = /^\\s*/g\n\nexport function trimLeft(s: string): string {\n return s.replace(trimLeftRegex, '')\n}\n\nconst fromCamelCaseRegex = /([A-Z])/g\n\nexport function fromCamelCase(s: string, separator: string): string {\n return trimLeft(s.replace(fromCamelCaseRegex, match => `${separator}${toLowerCase(match)}`))\n}\n\n/**\n * Compute the utf8ByteLength\n */\nexport function utf8ByteLength(str: string): number {\n return unescape(encodeURIComponent(str)).length\n}\n\nexport function _encodeUtf8Polyfill(str: string): Uint8Array {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n const buf = new Uint8Array(len)\n for (let i = 0; i < len; i++)\n buf[i] = (encodedString.codePointAt(i) as number)\n\n return buf\n}\n\nlet utf8TextEncoder: TextEncoder | undefined | null\n\nexport function getUtf8TextEncoder(): TextEncoder | null {\n if (utf8TextEncoder === undefined)\n utf8TextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder() : null)\n return utf8TextEncoder\n}\n\nexport function encodeUtf8(str: string): Uint8Array {\n return getUtf8TextEncoder()\n ? utf8TextEncoder!.encode(str)\n : _encodeUtf8Polyfill(str)\n}\n\nfunction _decodeUtf8Polyfill(buf: Uint8Array): string {\n let remainingLen = buf.length\n let encodedString = ''\n let bufPos = 0\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n const bytes = buf.subarray(bufPos, bufPos + nextLen)\n bufPos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint(...bytes as any)\n remainingLen -= nextLen\n }\n return decodeURIComponent(escape(encodedString))\n}\n\nlet utf8TextDecoder: any\n\nexport function getUtf8TextDecoder(): TextDecoder | undefined {\n if (utf8TextDecoder === undefined) {\n utf8TextDecoder = (typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true })) ?? null\n if (utf8TextDecoder && utf8TextDecoder.decode(new Uint8Array()).length === 1) {\n // Safari doesn't handle BOM correctly.\n // This fixes a bug in Safari 13.0.5 where it produces a BOM the first time it is called.\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the first call and\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the second call\n // Another issue is that from then on no BOM chars are recognized anymore\n utf8TextDecoder = null\n }\n }\n return utf8TextDecoder\n}\n\nexport function decodeUtf8(buf: Uint8Array): string {\n return getUtf8TextDecoder()\n ? utf8TextDecoder.decode(buf)\n : _decodeUtf8Polyfill(buf)\n}\n\nexport function splice(str: string, index: number, remove: number, insert = '') {\n return str.slice(0, index) + insert + str.slice(index + remove)\n}\n"],"mappings":"AASA,SAAS,EAAY,EAAmB,CACtC,OAAO,EAAE,aAAa,CAGxB,MAAM,EAAgB,QAEtB,SAAgB,EAAS,EAAmB,CAC1C,OAAO,EAAE,QAAQ,EAAe,GAAG,CAGrC,MAAM,EAAqB,WAE3B,SAAgB,EAAc,EAAW,EAA2B,CAClE,OAAO,EAAS,EAAE,QAAQ,EAAoB,GAAS,GAAG,IAAY,EAAY,EAAM,GAAG,CAAC,CAM9F,SAAgB,EAAe,EAAqB,CAClD,OAAO,SAAS,mBAAmB,EAAI,CAAC,CAAC,OAG3C,SAAgB,EAAoB,EAAyB,CAC3D,IAAM,EAAgB,SAAS,mBAAmB,EAAI,CAAC,CACjD,EAAM,EAAc,OACpB,EAAM,IAAI,WAAW,EAAI,CAC/B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IACvB,EAAI,GAAM,EAAc,YAAY,EAAE,CAExC,OAAO,EAGT,IAAI,EAEJ,SAAgB,GAAyC,CAGvD,OAFI,IAAoB,IAAA,KACtB,EAAmB,OAAO,YAAgB,IAAc,IAAI,YAAgB,MACvE,EAGT,SAAgB,EAAW,EAAyB,CAClD,OAAO,GAAoB,CACvB,EAAiB,OAAO,EAAI,CAC5B,EAAoB,EAAI,CAG9B,SAAS,EAAoB,EAAyB,CACpD,IAAI,EAAe,EAAI,OACnB,EAAgB,GAChB,EAAS,EACb,KAAO,EAAe,GAAG,CACvB,IAAM,EAAU,EAAe,IAAQ,EAAe,IAChD,EAAQ,EAAI,SAAS,EAAQ,EAAS,EAAQ,CACpD,GAAU,EAEV,GAAiB,OAAO,cAAc,GAAG,EAAa,CACtD,GAAgB,EAElB,OAAO,mBAAmB,OAAO,EAAc,CAAC,CAGlD,IAAI,EAEJ,SAAgB,GAA8C,CAY5D,OAXI,IAAoB,IAAA,KACtB,GAAmB,OAAO,YAAgB,IAAc,KAAO,IAAI,YAAY,QAAS,CAAE,MAAO,GAAM,UAAW,GAAM,CAAC,GAAK,KAC1H,GAAmB,EAAgB,OAAO,IAAI,WAAa,CAAC,SAAW,IAMzE,EAAkB,OAGf,EAGT,SAAgB,EAAW,EAAyB,CAClD,OAAO,GAAoB,CACvB,EAAgB,OAAO,EAAI,CAC3B,EAAoB,EAAI,CAG9B,SAAgB,EAAO,EAAa,EAAe,EAAgB,EAAS,GAAI,CAC9E,OAAO,EAAI,MAAM,EAAG,EAAM,CAAG,EAAS,EAAI,MAAM,EAAQ,EAAO"}
1
+ {"version":3,"file":"string.mjs","names":[],"sources":["../../../../src/common/bin/lib0/string.ts"],"sourcesContent":["/**\n * Original at https://github.com/dmonad/lib0\n *\n * Utility module to work with strings.\n */\n\n// export const fromCharCode = String.fromCharCode\n// export const fromCodePoint = String.fromCodePoint\n\nfunction toLowerCase(s: string): string {\n return s.toLowerCase()\n}\n\nconst trimLeftRegex = /^\\s*/g\n\nexport function trimLeft(s: string): string {\n return s.replace(trimLeftRegex, '')\n}\n\nconst fromCamelCaseRegex = /([A-Z])/g\n\nexport function fromCamelCase(s: string, separator: string): string {\n return trimLeft(s.replace(fromCamelCaseRegex, match => `${separator}${toLowerCase(match)}`))\n}\n\n/**\n * Compute the utf8ByteLength\n */\nexport function utf8ByteLength(str: string): number {\n return unescape(encodeURIComponent(str)).length\n}\n\nexport function _encodeUtf8Polyfill(str: string): Uint8Array {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n const buf = new Uint8Array(len)\n for (let i = 0; i < len; i++)\n buf[i] = (encodedString.codePointAt(i) as number)\n\n return buf\n}\n\nlet utf8TextEncoder: TextEncoder | undefined | null\n\nexport function getUtf8TextEncoder(): TextEncoder | null {\n if (utf8TextEncoder === undefined)\n utf8TextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder() : null)\n return utf8TextEncoder\n}\n\nexport function encodeUtf8(str: string): Uint8Array {\n return getUtf8TextEncoder()\n ? utf8TextEncoder!.encode(str)\n : _encodeUtf8Polyfill(str)\n}\n\nfunction _decodeUtf8Polyfill(buf: Uint8Array): string {\n let remainingLen = buf.length\n let encodedString = ''\n let bufPos = 0\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n const bytes = buf.subarray(bufPos, bufPos + nextLen)\n bufPos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint(...bytes as any)\n remainingLen -= nextLen\n }\n return decodeURIComponent(escape(encodedString))\n}\n\nlet utf8TextDecoder: any\n\nexport function getUtf8TextDecoder(): TextDecoder | undefined {\n if (utf8TextDecoder === undefined) {\n utf8TextDecoder = (typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true })) ?? null\n if (utf8TextDecoder && utf8TextDecoder.decode(new Uint8Array()).length === 1) {\n // Safari doesn't handle BOM correctly.\n // This fixes a bug in Safari 13.0.5 where it produces a BOM the first time it is called.\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the first call and\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the second call\n // Another issue is that from then on no BOM chars are recognized anymore\n utf8TextDecoder = null\n }\n }\n return utf8TextDecoder\n}\n\nexport function decodeUtf8(buf: Uint8Array): string {\n return getUtf8TextDecoder()\n ? utf8TextDecoder.decode(buf)\n : _decodeUtf8Polyfill(buf)\n}\n\nexport function splice(str: string, index: number, remove: number, insert = '') {\n return str.slice(0, index) + insert + str.slice(index + remove)\n}\n"],"mappings":";;;;;;AASA,SAAS,YAAY,GAAmB;AACtC,QAAO,EAAE,aAAa;;AAGxB,MAAM,gBAAgB;AAEtB,SAAgB,SAAS,GAAmB;AAC1C,QAAO,EAAE,QAAQ,eAAe,GAAG;;AAGrC,MAAM,qBAAqB;AAE3B,SAAgB,cAAc,GAAW,WAA2B;AAClE,QAAO,SAAS,EAAE,QAAQ,qBAAoB,UAAS,GAAG,YAAY,YAAY,MAAM,GAAG,CAAC;;;;;AAM9F,SAAgB,eAAe,KAAqB;AAClD,QAAO,SAAS,mBAAmB,IAAI,CAAC,CAAC;;AAG3C,SAAgB,oBAAoB,KAAyB;CAC3D,MAAM,gBAAgB,SAAS,mBAAmB,IAAI,CAAC;CACvD,MAAM,MAAM,cAAc;CAC1B,MAAM,MAAM,IAAI,WAAW,IAAI;AAC/B,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,IACvB,KAAI,KAAM,cAAc,YAAY,EAAE;AAExC,QAAO;;AAGT,IAAI;AAEJ,SAAgB,qBAAyC;AACvD,KAAI,oBAAoB,OACtB,mBAAmB,OAAO,gBAAgB,cAAc,IAAI,aAAa,GAAG;AAC9E,QAAO;;AAGT,SAAgB,WAAW,KAAyB;AAClD,QAAO,oBAAoB,GACvB,gBAAiB,OAAO,IAAI,GAC5B,oBAAoB,IAAI;;AAG9B,SAAS,oBAAoB,KAAyB;CACpD,IAAI,eAAe,IAAI;CACvB,IAAI,gBAAgB;CACpB,IAAI,SAAS;AACb,QAAO,eAAe,GAAG;EACvB,MAAM,UAAU,eAAe,MAAQ,eAAe;EACtD,MAAM,QAAQ,IAAI,SAAS,QAAQ,SAAS,QAAQ;AACpD,YAAU;AAEV,mBAAiB,OAAO,cAAc,GAAG,MAAa;AACtD,kBAAgB;;AAElB,QAAO,mBAAmB,OAAO,cAAc,CAAC;;AAGlD,IAAI;AAEJ,SAAgB,qBAA8C;AAC5D,KAAI,oBAAoB,QAAW;AACjC,qBAAmB,OAAO,gBAAgB,cAAc,OAAO,IAAI,YAAY,SAAS;GAAE,OAAO;GAAM,WAAW;GAAM,CAAC,KAAK;AAC9H,MAAI,mBAAmB,gBAAgB,OAAO,IAAI,YAAY,CAAC,CAAC,WAAW,EAMzE,mBAAkB;;AAGtB,QAAO;;AAGT,SAAgB,WAAW,KAAyB;AAClD,QAAO,oBAAoB,GACvB,gBAAgB,OAAO,IAAI,GAC3B,oBAAoB,IAAI;;AAG9B,SAAgB,OAAO,KAAa,OAAe,QAAgB,SAAS,IAAI;AAC9E,QAAO,IAAI,MAAM,GAAG,MAAM,GAAG,SAAS,IAAI,MAAM,QAAQ,OAAO"}
@@ -1,2 +1,35 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../bin-Ce3i6ABn.cjs`);async function t(t,n,r=new Uint8Array){let i=crypto.getRandomValues(new Uint8Array(12)),a=await crypto.subtle.encrypt({name:`AES-GCM`,iv:i,tagLength:128,additionalData:e.o(r)},n,e.o(t)),o=new Uint8Array(a),s=new Uint8Array(i.length+o.length);return s.set(i),s.set(o,i.length),s}async function n(t,n,r=new Uint8Array){let i=e.o(t.slice(0,12)),a=e.o(t.slice(12)),o=await crypto.subtle.decrypt({name:`AES-GCM`,iv:i,tagLength:128,additionalData:e.o(r)},n,a);return new Uint8Array(o)}exports.decryptAesGcm=n,exports.encryptAesGcm=t;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_bin = require('../../bin-Ddaz2lxM.cjs');
3
+
4
+ //#region src/common/crypto/aes-sealed.ts
5
+ const AES_GCM_TAG_LENGTH_BITS = 128;
6
+ async function encryptAesGcm(data, key, authenticating = new Uint8Array()) {
7
+ const iv = crypto.getRandomValues(new Uint8Array(12));
8
+ const encrypted = await crypto.subtle.encrypt({
9
+ name: "AES-GCM",
10
+ iv,
11
+ tagLength: AES_GCM_TAG_LENGTH_BITS,
12
+ additionalData: require_bin.ensureUint8Array(authenticating)
13
+ }, key, require_bin.ensureUint8Array(data));
14
+ const encryptedArray = new Uint8Array(encrypted);
15
+ const combined = new Uint8Array(iv.length + encryptedArray.length);
16
+ combined.set(iv);
17
+ combined.set(encryptedArray, iv.length);
18
+ return combined;
19
+ }
20
+ async function decryptAesGcm(data, key, authenticating = new Uint8Array()) {
21
+ const iv = require_bin.ensureUint8Array(data.slice(0, 12));
22
+ const encrypted = require_bin.ensureUint8Array(data.slice(12));
23
+ const decrypted = await crypto.subtle.decrypt({
24
+ name: "AES-GCM",
25
+ iv,
26
+ tagLength: AES_GCM_TAG_LENGTH_BITS,
27
+ additionalData: require_bin.ensureUint8Array(authenticating)
28
+ }, key, encrypted);
29
+ return new Uint8Array(decrypted);
30
+ }
31
+
32
+ //#endregion
33
+ exports.decryptAesGcm = decryptAesGcm;
34
+ exports.encryptAesGcm = encryptAesGcm;
2
35
  //# sourceMappingURL=aes-sealed.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"aes-sealed.cjs","names":["ensureUint8Array"],"sources":["../../../src/common/crypto/aes-sealed.ts"],"sourcesContent":["import { ensureUint8Array } from '../data/bin'\n\nconst AES_GCM_TAG_LENGTH_BITS = 128\n\nexport async function encryptAesGcm(data: Uint8Array, key: CryptoKey, authenticating: Uint8Array = new Uint8Array()): Promise<Uint8Array> {\n const iv = crypto.getRandomValues(new Uint8Array(12)) // AES-GCM requires a 12-byte IV\n const encrypted = await crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv,\n tagLength: AES_GCM_TAG_LENGTH_BITS,\n additionalData: ensureUint8Array(authenticating),\n },\n key,\n ensureUint8Array(data),\n )\n\n const encryptedArray = new Uint8Array(encrypted)\n const combined = new Uint8Array(iv.length + encryptedArray.length)\n combined.set(iv)\n combined.set(encryptedArray, iv.length)\n return combined\n}\n\nexport async function decryptAesGcm(data: Uint8Array, key: CryptoKey, authenticating: Uint8Array = new Uint8Array()): Promise<Uint8Array> {\n const iv = ensureUint8Array(data.slice(0, 12)) // nonce is the first 12 bytes\n const encrypted = ensureUint8Array(data.slice(12)) // ciphertext and tag of 128 bits\n const decrypted = await crypto.subtle.decrypt({\n name: 'AES-GCM',\n iv,\n tagLength: AES_GCM_TAG_LENGTH_BITS,\n additionalData: ensureUint8Array(authenticating),\n }, key, encrypted)\n return new Uint8Array(decrypted)\n}\n"],"mappings":"6GAIA,eAAsB,EAAc,EAAkB,EAAgB,EAA6B,IAAI,WAAmC,CACxI,IAAM,EAAK,OAAO,gBAAgB,IAAI,WAAW,GAAG,CAAC,CAC/C,EAAY,MAAM,OAAO,OAAO,QACpC,CACE,KAAM,UACN,KACA,UAAW,IACX,eAAgBA,EAAAA,EAAiB,EAAe,CACjD,CACD,EACAA,EAAAA,EAAiB,EAAK,CACvB,CAEK,EAAiB,IAAI,WAAW,EAAU,CAC1C,EAAW,IAAI,WAAW,EAAG,OAAS,EAAe,OAAO,CAGlE,OAFA,EAAS,IAAI,EAAG,CAChB,EAAS,IAAI,EAAgB,EAAG,OAAO,CAChC,EAGT,eAAsB,EAAc,EAAkB,EAAgB,EAA6B,IAAI,WAAmC,CACxI,IAAM,EAAKA,EAAAA,EAAiB,EAAK,MAAM,EAAG,GAAG,CAAC,CACxC,EAAYA,EAAAA,EAAiB,EAAK,MAAM,GAAG,CAAC,CAC5C,EAAY,MAAM,OAAO,OAAO,QAAQ,CAC5C,KAAM,UACN,KACA,UAAW,IACX,eAAgBA,EAAAA,EAAiB,EAAe,CACjD,CAAE,EAAK,EAAU,CAClB,OAAO,IAAI,WAAW,EAAU"}
1
+ {"version":3,"file":"aes-sealed.cjs","names":["ensureUint8Array"],"sources":["../../../src/common/crypto/aes-sealed.ts"],"sourcesContent":["import { ensureUint8Array } from '../data/bin'\n\nconst AES_GCM_TAG_LENGTH_BITS = 128\n\nexport async function encryptAesGcm(data: Uint8Array, key: CryptoKey, authenticating: Uint8Array = new Uint8Array()): Promise<Uint8Array> {\n const iv = crypto.getRandomValues(new Uint8Array(12)) // AES-GCM requires a 12-byte IV\n const encrypted = await crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv,\n tagLength: AES_GCM_TAG_LENGTH_BITS,\n additionalData: ensureUint8Array(authenticating),\n },\n key,\n ensureUint8Array(data),\n )\n\n const encryptedArray = new Uint8Array(encrypted)\n const combined = new Uint8Array(iv.length + encryptedArray.length)\n combined.set(iv)\n combined.set(encryptedArray, iv.length)\n return combined\n}\n\nexport async function decryptAesGcm(data: Uint8Array, key: CryptoKey, authenticating: Uint8Array = new Uint8Array()): Promise<Uint8Array> {\n const iv = ensureUint8Array(data.slice(0, 12)) // nonce is the first 12 bytes\n const encrypted = ensureUint8Array(data.slice(12)) // ciphertext and tag of 128 bits\n const decrypted = await crypto.subtle.decrypt({\n name: 'AES-GCM',\n iv,\n tagLength: AES_GCM_TAG_LENGTH_BITS,\n additionalData: ensureUint8Array(authenticating),\n }, key, encrypted)\n return new Uint8Array(decrypted)\n}\n"],"mappings":";;;;AAEA,MAAM,0BAA0B;AAEhC,eAAsB,cAAc,MAAkB,KAAgB,iBAA6B,IAAI,YAAY,EAAuB;CACxI,MAAM,KAAK,OAAO,gBAAgB,IAAI,WAAW,GAAG,CAAC;CACrD,MAAM,YAAY,MAAM,OAAO,OAAO,QACpC;EACE,MAAM;EACN;EACA,WAAW;EACX,gBAAgBA,6BAAiB,eAAe;EACjD,EACD,KACAA,6BAAiB,KAAK,CACvB;CAED,MAAM,iBAAiB,IAAI,WAAW,UAAU;CAChD,MAAM,WAAW,IAAI,WAAW,GAAG,SAAS,eAAe,OAAO;AAClE,UAAS,IAAI,GAAG;AAChB,UAAS,IAAI,gBAAgB,GAAG,OAAO;AACvC,QAAO;;AAGT,eAAsB,cAAc,MAAkB,KAAgB,iBAA6B,IAAI,YAAY,EAAuB;CACxI,MAAM,KAAKA,6BAAiB,KAAK,MAAM,GAAG,GAAG,CAAC;CAC9C,MAAM,YAAYA,6BAAiB,KAAK,MAAM,GAAG,CAAC;CAClD,MAAM,YAAY,MAAM,OAAO,OAAO,QAAQ;EAC5C,MAAM;EACN;EACA,WAAW;EACX,gBAAgBA,6BAAiB,eAAe;EACjD,EAAE,KAAK,UAAU;AAClB,QAAO,IAAI,WAAW,UAAU"}
@@ -1,2 +1,33 @@
1
- import{o as e}from"../../bin-SPdenYkw.mjs";async function t(t,n,r=new Uint8Array){let i=crypto.getRandomValues(new Uint8Array(12)),a=await crypto.subtle.encrypt({name:`AES-GCM`,iv:i,tagLength:128,additionalData:e(r)},n,e(t)),o=new Uint8Array(a),s=new Uint8Array(i.length+o.length);return s.set(i),s.set(o,i.length),s}async function n(t,n,r=new Uint8Array){let i=e(t.slice(0,12)),a=e(t.slice(12)),o=await crypto.subtle.decrypt({name:`AES-GCM`,iv:i,tagLength:128,additionalData:e(r)},n,a);return new Uint8Array(o)}export{n as decryptAesGcm,t as encryptAesGcm};
1
+ import { o as ensureUint8Array } from "../../bin-BAoS4qtm.mjs";
2
+
3
+ //#region src/common/crypto/aes-sealed.ts
4
+ const AES_GCM_TAG_LENGTH_BITS = 128;
5
+ async function encryptAesGcm(data, key, authenticating = new Uint8Array()) {
6
+ const iv = crypto.getRandomValues(new Uint8Array(12));
7
+ const encrypted = await crypto.subtle.encrypt({
8
+ name: "AES-GCM",
9
+ iv,
10
+ tagLength: AES_GCM_TAG_LENGTH_BITS,
11
+ additionalData: ensureUint8Array(authenticating)
12
+ }, key, ensureUint8Array(data));
13
+ const encryptedArray = new Uint8Array(encrypted);
14
+ const combined = new Uint8Array(iv.length + encryptedArray.length);
15
+ combined.set(iv);
16
+ combined.set(encryptedArray, iv.length);
17
+ return combined;
18
+ }
19
+ async function decryptAesGcm(data, key, authenticating = new Uint8Array()) {
20
+ const iv = ensureUint8Array(data.slice(0, 12));
21
+ const encrypted = ensureUint8Array(data.slice(12));
22
+ const decrypted = await crypto.subtle.decrypt({
23
+ name: "AES-GCM",
24
+ iv,
25
+ tagLength: AES_GCM_TAG_LENGTH_BITS,
26
+ additionalData: ensureUint8Array(authenticating)
27
+ }, key, encrypted);
28
+ return new Uint8Array(decrypted);
29
+ }
30
+
31
+ //#endregion
32
+ export { decryptAesGcm, encryptAesGcm };
2
33
  //# sourceMappingURL=aes-sealed.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"aes-sealed.mjs","names":[],"sources":["../../../src/common/crypto/aes-sealed.ts"],"sourcesContent":["import { ensureUint8Array } from '../data/bin'\n\nconst AES_GCM_TAG_LENGTH_BITS = 128\n\nexport async function encryptAesGcm(data: Uint8Array, key: CryptoKey, authenticating: Uint8Array = new Uint8Array()): Promise<Uint8Array> {\n const iv = crypto.getRandomValues(new Uint8Array(12)) // AES-GCM requires a 12-byte IV\n const encrypted = await crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv,\n tagLength: AES_GCM_TAG_LENGTH_BITS,\n additionalData: ensureUint8Array(authenticating),\n },\n key,\n ensureUint8Array(data),\n )\n\n const encryptedArray = new Uint8Array(encrypted)\n const combined = new Uint8Array(iv.length + encryptedArray.length)\n combined.set(iv)\n combined.set(encryptedArray, iv.length)\n return combined\n}\n\nexport async function decryptAesGcm(data: Uint8Array, key: CryptoKey, authenticating: Uint8Array = new Uint8Array()): Promise<Uint8Array> {\n const iv = ensureUint8Array(data.slice(0, 12)) // nonce is the first 12 bytes\n const encrypted = ensureUint8Array(data.slice(12)) // ciphertext and tag of 128 bits\n const decrypted = await crypto.subtle.decrypt({\n name: 'AES-GCM',\n iv,\n tagLength: AES_GCM_TAG_LENGTH_BITS,\n additionalData: ensureUint8Array(authenticating),\n }, key, encrypted)\n return new Uint8Array(decrypted)\n}\n"],"mappings":"2CAIA,eAAsB,EAAc,EAAkB,EAAgB,EAA6B,IAAI,WAAmC,CACxI,IAAM,EAAK,OAAO,gBAAgB,IAAI,WAAW,GAAG,CAAC,CAC/C,EAAY,MAAM,OAAO,OAAO,QACpC,CACE,KAAM,UACN,KACA,UAAW,IACX,eAAgB,EAAiB,EAAe,CACjD,CACD,EACA,EAAiB,EAAK,CACvB,CAEK,EAAiB,IAAI,WAAW,EAAU,CAC1C,EAAW,IAAI,WAAW,EAAG,OAAS,EAAe,OAAO,CAGlE,OAFA,EAAS,IAAI,EAAG,CAChB,EAAS,IAAI,EAAgB,EAAG,OAAO,CAChC,EAGT,eAAsB,EAAc,EAAkB,EAAgB,EAA6B,IAAI,WAAmC,CACxI,IAAM,EAAK,EAAiB,EAAK,MAAM,EAAG,GAAG,CAAC,CACxC,EAAY,EAAiB,EAAK,MAAM,GAAG,CAAC,CAC5C,EAAY,MAAM,OAAO,OAAO,QAAQ,CAC5C,KAAM,UACN,KACA,UAAW,IACX,eAAgB,EAAiB,EAAe,CACjD,CAAE,EAAK,EAAU,CAClB,OAAO,IAAI,WAAW,EAAU"}
1
+ {"version":3,"file":"aes-sealed.mjs","names":[],"sources":["../../../src/common/crypto/aes-sealed.ts"],"sourcesContent":["import { ensureUint8Array } from '../data/bin'\n\nconst AES_GCM_TAG_LENGTH_BITS = 128\n\nexport async function encryptAesGcm(data: Uint8Array, key: CryptoKey, authenticating: Uint8Array = new Uint8Array()): Promise<Uint8Array> {\n const iv = crypto.getRandomValues(new Uint8Array(12)) // AES-GCM requires a 12-byte IV\n const encrypted = await crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv,\n tagLength: AES_GCM_TAG_LENGTH_BITS,\n additionalData: ensureUint8Array(authenticating),\n },\n key,\n ensureUint8Array(data),\n )\n\n const encryptedArray = new Uint8Array(encrypted)\n const combined = new Uint8Array(iv.length + encryptedArray.length)\n combined.set(iv)\n combined.set(encryptedArray, iv.length)\n return combined\n}\n\nexport async function decryptAesGcm(data: Uint8Array, key: CryptoKey, authenticating: Uint8Array = new Uint8Array()): Promise<Uint8Array> {\n const iv = ensureUint8Array(data.slice(0, 12)) // nonce is the first 12 bytes\n const encrypted = ensureUint8Array(data.slice(12)) // ciphertext and tag of 128 bits\n const decrypted = await crypto.subtle.decrypt({\n name: 'AES-GCM',\n iv,\n tagLength: AES_GCM_TAG_LENGTH_BITS,\n additionalData: ensureUint8Array(authenticating),\n }, key, encrypted)\n return new Uint8Array(decrypted)\n}\n"],"mappings":";;;AAEA,MAAM,0BAA0B;AAEhC,eAAsB,cAAc,MAAkB,KAAgB,iBAA6B,IAAI,YAAY,EAAuB;CACxI,MAAM,KAAK,OAAO,gBAAgB,IAAI,WAAW,GAAG,CAAC;CACrD,MAAM,YAAY,MAAM,OAAO,OAAO,QACpC;EACE,MAAM;EACN;EACA,WAAW;EACX,gBAAgB,iBAAiB,eAAe;EACjD,EACD,KACA,iBAAiB,KAAK,CACvB;CAED,MAAM,iBAAiB,IAAI,WAAW,UAAU;CAChD,MAAM,WAAW,IAAI,WAAW,GAAG,SAAS,eAAe,OAAO;AAClE,UAAS,IAAI,GAAG;AAChB,UAAS,IAAI,gBAAgB,GAAG,OAAO;AACvC,QAAO;;AAGT,eAAsB,cAAc,MAAkB,KAAgB,iBAA6B,IAAI,YAAY,EAAuB;CACxI,MAAM,KAAK,iBAAiB,KAAK,MAAM,GAAG,GAAG,CAAC;CAC9C,MAAM,YAAY,iBAAiB,KAAK,MAAM,GAAG,CAAC;CAClD,MAAM,YAAY,MAAM,OAAO,OAAO,QAAQ;EAC5C,MAAM;EACN;EACA,WAAW;EACX,gBAAgB,iBAAiB,eAAe;EACjD,EAAE,KAAK,UAAU;AAClB,QAAO,IAAI,WAAW,UAAU"}
@@ -1,2 +1,92 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../bin-Ce3i6ABn.cjs`);function t(e=16){let t=new Uint8Array(e);if(typeof crypto<`u`&&crypto.getRandomValues)crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.floor(Math.random()*256);return t}const n=`SHA-256`,r=`AES-GCM`,i=`PBKDF2`;async function a(t,r=n){let i=e.o(e.v(t));return e.v(await crypto.subtle.digest(r,i))}async function o(t,a={}){let o=e.o(e.v(t)),s=await crypto.subtle.importKey(`raw`,o,i,!1,[`deriveKey`]);return await crypto.subtle.deriveKey({name:i,salt:a.salt?e.o(e.v(a.salt)):new Uint8Array,iterations:a.iterations??1e5,hash:n},s,{name:r,length:256},!0,[`encrypt`,`decrypt`])}async function s(t,r={}){let a=e.o(e.v(t)),o=await crypto.subtle.importKey(`raw`,a,i,!1,[`deriveKey`]);return await crypto.subtle.deriveKey({name:i,salt:r.salt?e.o(e.v(r.salt)):new Uint8Array,iterations:r.iterations??1e5,hash:n},o,{name:`AES-CBC`,length:256},!0,[`encrypt`,`decrypt`])}function c(){return new Uint8Array([1,1])}async function l(n,i){let a=c(),o=t(12),s=await crypto.subtle.encrypt({name:r,iv:e.o(o)},i,e.o(n)),l=new Uint8Array(s),u=a.length+o.length+l.length,d=new Uint8Array(u),f=0;return d.set(a,f),f+=a.length,d.set(o,f),f+=o.length,d.set(l,f),d}async function u(t,n){let i=e.o(t.subarray(0,2));if(!e.s(i,c()))return Promise.reject(Error(`Unknown magic ${i}`));let a=e.o(t.subarray(2,14)),o=e.o(t.subarray(14,t.length)),s=await crypto.subtle.decrypt({name:r,iv:a},n,o);return new Uint8Array(s)}exports.CRYPTO_DEFAULT_ALG=r,exports.CRYPTO_DEFAULT_DERIVE_ALG=i,exports.CRYPTO_DEFAULT_DERIVE_ITERATIONS=1e5,exports.CRYPTO_DEFAULT_HASH_ALG=n,exports.CRYPTO_DEFAULT_IV_LENGTH=12,exports.decrypt=u,exports.deriveKeyPbkdf2=o,exports.deriveKeyPbkdf2CBC=s,exports.digest=a,exports.encrypt=l,exports.randomUint8Array=t;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_bin = require('../../bin-Ddaz2lxM.cjs');
3
+
4
+ //#region src/common/crypto/crypto.ts
5
+ /** Get random bytes using window.crypto if available. Else use a poor fallback solution. */
6
+ function randomUint8Array(length = 16) {
7
+ const randomBytes = new Uint8Array(length);
8
+ if (typeof crypto !== "undefined" && crypto.getRandomValues) crypto.getRandomValues(randomBytes);
9
+ else for (let i = 0; i < length; i++) randomBytes[i] = Math.floor(Math.random() * 256);
10
+ return randomBytes;
11
+ }
12
+ const CRYPTO_DEFAULT_HASH_ALG = "SHA-256";
13
+ const CRYPTO_DEFAULT_ALG = "AES-GCM";
14
+ const CRYPTO_DEFAULT_DERIVE_ALG = "PBKDF2";
15
+ const CRYPTO_DEFAULT_DERIVE_ITERATIONS = 1e5;
16
+ const CRYPTO_DEFAULT_IV_LENGTH = 12;
17
+ async function digest(message, algorithm = CRYPTO_DEFAULT_HASH_ALG) {
18
+ const m = require_bin.ensureUint8Array(require_bin.toUint8Array(message));
19
+ return require_bin.toUint8Array(await crypto.subtle.digest(algorithm, m));
20
+ }
21
+ async function deriveKeyPbkdf2(secret, opt = {}) {
22
+ const secretBuffer = require_bin.ensureUint8Array(require_bin.toUint8Array(secret));
23
+ const keyMaterial = await crypto.subtle.importKey("raw", secretBuffer, CRYPTO_DEFAULT_DERIVE_ALG, false, ["deriveKey"]);
24
+ return await crypto.subtle.deriveKey({
25
+ name: CRYPTO_DEFAULT_DERIVE_ALG,
26
+ salt: opt.salt ? require_bin.ensureUint8Array(require_bin.toUint8Array(opt.salt)) : new Uint8Array(0),
27
+ iterations: opt.iterations ?? 1e5,
28
+ hash: CRYPTO_DEFAULT_HASH_ALG
29
+ }, keyMaterial, {
30
+ name: CRYPTO_DEFAULT_ALG,
31
+ length: 256
32
+ }, true, ["encrypt", "decrypt"]);
33
+ }
34
+ async function deriveKeyPbkdf2CBC(secret, opt = {}) {
35
+ const secretBuffer = require_bin.ensureUint8Array(require_bin.toUint8Array(secret));
36
+ const keyMaterial = await crypto.subtle.importKey("raw", secretBuffer, CRYPTO_DEFAULT_DERIVE_ALG, false, ["deriveKey"]);
37
+ return await crypto.subtle.deriveKey({
38
+ name: CRYPTO_DEFAULT_DERIVE_ALG,
39
+ salt: opt.salt ? require_bin.ensureUint8Array(require_bin.toUint8Array(opt.salt)) : new Uint8Array(0),
40
+ iterations: opt.iterations ?? 1e5,
41
+ hash: CRYPTO_DEFAULT_HASH_ALG
42
+ }, keyMaterial, {
43
+ name: "AES-CBC",
44
+ length: 256
45
+ }, true, ["encrypt", "decrypt"]);
46
+ }
47
+ function getMagicId() {
48
+ return new Uint8Array([1, 1]);
49
+ }
50
+ async function encrypt(data, key) {
51
+ const MAGIC_ID = getMagicId();
52
+ const iv = randomUint8Array(12);
53
+ const cipher = await crypto.subtle.encrypt({
54
+ name: CRYPTO_DEFAULT_ALG,
55
+ iv: require_bin.ensureUint8Array(iv)
56
+ }, key, require_bin.ensureUint8Array(data));
57
+ const binCypher = new Uint8Array(cipher);
58
+ const bufferLength = MAGIC_ID.length + iv.length + binCypher.length;
59
+ const buffer = new Uint8Array(bufferLength);
60
+ let pos = 0;
61
+ buffer.set(MAGIC_ID, pos);
62
+ pos += MAGIC_ID.length;
63
+ buffer.set(iv, pos);
64
+ pos += iv.length;
65
+ buffer.set(binCypher, pos);
66
+ return buffer;
67
+ }
68
+ async function decrypt(data, key) {
69
+ const magic = require_bin.ensureUint8Array(data.subarray(0, 2));
70
+ if (!require_bin.equalBinary(magic, getMagicId())) return Promise.reject(/* @__PURE__ */ new Error(`Unknown magic ${magic}`));
71
+ const iv = require_bin.ensureUint8Array(data.subarray(2, 2 + 12));
72
+ const cipher = require_bin.ensureUint8Array(data.subarray(2 + 12, data.length));
73
+ const plain = await crypto.subtle.decrypt({
74
+ name: CRYPTO_DEFAULT_ALG,
75
+ iv
76
+ }, key, cipher);
77
+ return new Uint8Array(plain);
78
+ }
79
+
80
+ //#endregion
81
+ exports.CRYPTO_DEFAULT_ALG = CRYPTO_DEFAULT_ALG;
82
+ exports.CRYPTO_DEFAULT_DERIVE_ALG = CRYPTO_DEFAULT_DERIVE_ALG;
83
+ exports.CRYPTO_DEFAULT_DERIVE_ITERATIONS = CRYPTO_DEFAULT_DERIVE_ITERATIONS;
84
+ exports.CRYPTO_DEFAULT_HASH_ALG = CRYPTO_DEFAULT_HASH_ALG;
85
+ exports.CRYPTO_DEFAULT_IV_LENGTH = CRYPTO_DEFAULT_IV_LENGTH;
86
+ exports.decrypt = decrypt;
87
+ exports.deriveKeyPbkdf2 = deriveKeyPbkdf2;
88
+ exports.deriveKeyPbkdf2CBC = deriveKeyPbkdf2CBC;
89
+ exports.digest = digest;
90
+ exports.encrypt = encrypt;
91
+ exports.randomUint8Array = randomUint8Array;
2
92
  //# sourceMappingURL=crypto.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.cjs","names":["ensureUint8Array","toUint8Array","equalBinary"],"sources":["../../../src/common/crypto/crypto.ts"],"sourcesContent":["import type { BinInput } from '../data/bin-types'\nimport { ensureUint8Array, equalBinary, toUint8Array } from '../data/bin'\n\n/** Get random bytes using window.crypto if available. Else use a poor fallback solution. */\nexport function randomUint8Array(length = 16): Uint8Array {\n const randomBytes = new Uint8Array(length)\n if (typeof crypto !== 'undefined' && crypto.getRandomValues) {\n crypto.getRandomValues(randomBytes)\n }\n else {\n // hack: not state of the art secure\n // throw \"crypto.getRandomValues is required\"\n for (let i = 0; i < length; i++) {\n // Math.random: \"...range 0 to less than 1 (inclusive of 0, but not 1)\"\n // 0.9... * 0xff < 255 therefore * 0x100\n randomBytes[i] = Math.floor(Math.random() * 0x100) // 0...255\n }\n }\n return randomBytes\n}\n\nexport const CRYPTO_DEFAULT_HASH_ALG = 'SHA-256'\nexport const CRYPTO_DEFAULT_ALG = 'AES-GCM'\nexport const CRYPTO_DEFAULT_DERIVE_ALG = 'PBKDF2'\nexport const CRYPTO_DEFAULT_DERIVE_ITERATIONS = 100000\nexport const CRYPTO_DEFAULT_IV_LENGTH = 12\n\nexport async function digest(\n message: BinInput,\n algorithm: AlgorithmIdentifier = CRYPTO_DEFAULT_HASH_ALG,\n): Promise<Uint8Array> {\n const m = ensureUint8Array(toUint8Array(message))\n return toUint8Array(\n await crypto.subtle.digest(algorithm, m),\n )\n}\n\nexport async function deriveKeyPbkdf2(\n secret: BinInput,\n opt: {\n iterations?: number\n salt?: BinInput\n } = {},\n): Promise<CryptoKey> {\n const secretBuffer = ensureUint8Array(toUint8Array(secret))\n const keyMaterial = await crypto.subtle.importKey(\n 'raw',\n secretBuffer,\n CRYPTO_DEFAULT_DERIVE_ALG,\n false,\n ['deriveKey'],\n )\n return await crypto.subtle.deriveKey(\n {\n name: CRYPTO_DEFAULT_DERIVE_ALG,\n salt: opt.salt ? ensureUint8Array(toUint8Array(opt.salt)) : new Uint8Array(0),\n iterations: opt.iterations ?? CRYPTO_DEFAULT_DERIVE_ITERATIONS,\n hash: CRYPTO_DEFAULT_HASH_ALG,\n },\n keyMaterial,\n {\n name: CRYPTO_DEFAULT_ALG,\n length: 256,\n },\n true,\n ['encrypt', 'decrypt'],\n )\n}\n\nexport async function deriveKeyPbkdf2CBC(\n secret: BinInput,\n opt: {\n iterations?: number\n salt?: BinInput\n } = {},\n): Promise<CryptoKey> {\n const secretBuffer = ensureUint8Array(toUint8Array(secret))\n const keyMaterial = await crypto.subtle.importKey(\n 'raw',\n secretBuffer,\n CRYPTO_DEFAULT_DERIVE_ALG,\n false,\n ['deriveKey'],\n )\n return await crypto.subtle.deriveKey(\n {\n name: CRYPTO_DEFAULT_DERIVE_ALG,\n salt: opt.salt ? ensureUint8Array(toUint8Array(opt.salt)) : new Uint8Array(0),\n iterations: opt.iterations ?? CRYPTO_DEFAULT_DERIVE_ITERATIONS,\n hash: CRYPTO_DEFAULT_HASH_ALG,\n },\n keyMaterial,\n {\n name: 'AES-CBC',\n length: 256,\n },\n true,\n ['encrypt', 'decrypt'],\n )\n}\n\nfunction getMagicId() {\n return new Uint8Array([1, 1])\n}\n\nexport async function encrypt(\n data: Uint8Array,\n key: CryptoKey,\n): Promise<Uint8Array> {\n const MAGIC_ID = getMagicId()\n const iv = randomUint8Array(CRYPTO_DEFAULT_IV_LENGTH)\n const cipher = await crypto.subtle.encrypt(\n { name: CRYPTO_DEFAULT_ALG, iv: ensureUint8Array(iv) },\n key,\n ensureUint8Array(data),\n )\n const binCypher = new Uint8Array(cipher)\n const bufferLength = MAGIC_ID.length + iv.length + binCypher.length\n const buffer = new Uint8Array(bufferLength)\n let pos = 0\n buffer.set(MAGIC_ID, pos)\n pos += MAGIC_ID.length\n buffer.set(iv, pos)\n pos += iv.length\n buffer.set(binCypher, pos)\n return buffer\n}\n\nexport async function decrypt(\n data: Uint8Array,\n key: CryptoKey,\n): Promise<Uint8Array> {\n const magic = ensureUint8Array(data.subarray(0, 2))\n if (!equalBinary(magic, getMagicId()))\n return Promise.reject(new Error(`Unknown magic ${magic}`))\n\n const iv = ensureUint8Array(data.subarray(2, 2 + CRYPTO_DEFAULT_IV_LENGTH))\n const cipher = ensureUint8Array(data.subarray(2 + CRYPTO_DEFAULT_IV_LENGTH, data.length))\n const plain = await crypto.subtle.decrypt(\n { name: CRYPTO_DEFAULT_ALG, iv },\n key,\n cipher,\n )\n return new Uint8Array(plain)\n}\n"],"mappings":"6GAIA,SAAgB,EAAiB,EAAS,GAAgB,CACxD,IAAM,EAAc,IAAI,WAAW,EAAO,CAC1C,GAAI,OAAO,OAAW,KAAe,OAAO,gBAC1C,OAAO,gBAAgB,EAAY,MAKnC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,IAG1B,EAAY,GAAK,KAAK,MAAM,KAAK,QAAQ,CAAG,IAAM,CAGtD,OAAO,EAGT,MAAa,EAA0B,UAC1B,EAAqB,UACrB,EAA4B,SAIzC,eAAsB,EACpB,EACA,EAAiC,EACZ,CACrB,IAAM,EAAIA,EAAAA,EAAiBC,EAAAA,EAAa,EAAQ,CAAC,CACjD,OAAOA,EAAAA,EACL,MAAM,OAAO,OAAO,OAAO,EAAW,EAAE,CACzC,CAGH,eAAsB,EACpB,EACA,EAGI,EAAE,CACc,CACpB,IAAM,EAAeD,EAAAA,EAAiBC,EAAAA,EAAa,EAAO,CAAC,CACrD,EAAc,MAAM,OAAO,OAAO,UACtC,MACA,EACA,EACA,GACA,CAAC,YAAY,CACd,CACD,OAAO,MAAM,OAAO,OAAO,UACzB,CACE,KAAM,EACN,KAAM,EAAI,KAAOD,EAAAA,EAAiBC,EAAAA,EAAa,EAAI,KAAK,CAAC,CAAG,IAAI,WAChE,WAAY,EAAI,YAAA,IAChB,KAAM,EACP,CACD,EACA,CACE,KAAM,EACN,OAAQ,IACT,CACD,GACA,CAAC,UAAW,UAAU,CACvB,CAGH,eAAsB,EACpB,EACA,EAGI,EAAE,CACc,CACpB,IAAM,EAAeD,EAAAA,EAAiBC,EAAAA,EAAa,EAAO,CAAC,CACrD,EAAc,MAAM,OAAO,OAAO,UACtC,MACA,EACA,EACA,GACA,CAAC,YAAY,CACd,CACD,OAAO,MAAM,OAAO,OAAO,UACzB,CACE,KAAM,EACN,KAAM,EAAI,KAAOD,EAAAA,EAAiBC,EAAAA,EAAa,EAAI,KAAK,CAAC,CAAG,IAAI,WAChE,WAAY,EAAI,YAAA,IAChB,KAAM,EACP,CACD,EACA,CACE,KAAM,UACN,OAAQ,IACT,CACD,GACA,CAAC,UAAW,UAAU,CACvB,CAGH,SAAS,GAAa,CACpB,OAAO,IAAI,WAAW,CAAC,EAAG,EAAE,CAAC,CAG/B,eAAsB,EACpB,EACA,EACqB,CACrB,IAAM,EAAW,GAAY,CACvB,EAAK,EAAA,GAA0C,CAC/C,EAAS,MAAM,OAAO,OAAO,QACjC,CAAE,KAAM,EAAoB,GAAID,EAAAA,EAAiB,EAAG,CAAE,CACtD,EACAA,EAAAA,EAAiB,EAAK,CACvB,CACK,EAAY,IAAI,WAAW,EAAO,CAClC,EAAe,EAAS,OAAS,EAAG,OAAS,EAAU,OACvD,EAAS,IAAI,WAAW,EAAa,CACvC,EAAM,EAMV,OALA,EAAO,IAAI,EAAU,EAAI,CACzB,GAAO,EAAS,OAChB,EAAO,IAAI,EAAI,EAAI,CACnB,GAAO,EAAG,OACV,EAAO,IAAI,EAAW,EAAI,CACnB,EAGT,eAAsB,EACpB,EACA,EACqB,CACrB,IAAM,EAAQA,EAAAA,EAAiB,EAAK,SAAS,EAAG,EAAE,CAAC,CACnD,GAAI,CAACE,EAAAA,EAAY,EAAO,GAAY,CAAC,CACnC,OAAO,QAAQ,OAAW,MAAM,iBAAiB,IAAQ,CAAC,CAE5D,IAAM,EAAKF,EAAAA,EAAiB,EAAK,SAAS,EAAG,GAA6B,CAAC,CACrE,EAASA,EAAAA,EAAiB,EAAK,SAAS,GAA8B,EAAK,OAAO,CAAC,CACnF,EAAQ,MAAM,OAAO,OAAO,QAChC,CAAE,KAAM,EAAoB,KAAI,CAChC,EACA,EACD,CACD,OAAO,IAAI,WAAW,EAAM"}
1
+ {"version":3,"file":"crypto.cjs","names":["ensureUint8Array","toUint8Array","equalBinary"],"sources":["../../../src/common/crypto/crypto.ts"],"sourcesContent":["import type { BinInput } from '../data/bin-types'\nimport { ensureUint8Array, equalBinary, toUint8Array } from '../data/bin'\n\n/** Get random bytes using window.crypto if available. Else use a poor fallback solution. */\nexport function randomUint8Array(length = 16): Uint8Array {\n const randomBytes = new Uint8Array(length)\n if (typeof crypto !== 'undefined' && crypto.getRandomValues) {\n crypto.getRandomValues(randomBytes)\n }\n else {\n // hack: not state of the art secure\n // throw \"crypto.getRandomValues is required\"\n for (let i = 0; i < length; i++) {\n // Math.random: \"...range 0 to less than 1 (inclusive of 0, but not 1)\"\n // 0.9... * 0xff < 255 therefore * 0x100\n randomBytes[i] = Math.floor(Math.random() * 0x100) // 0...255\n }\n }\n return randomBytes\n}\n\nexport const CRYPTO_DEFAULT_HASH_ALG = 'SHA-256'\nexport const CRYPTO_DEFAULT_ALG = 'AES-GCM'\nexport const CRYPTO_DEFAULT_DERIVE_ALG = 'PBKDF2'\nexport const CRYPTO_DEFAULT_DERIVE_ITERATIONS = 100000\nexport const CRYPTO_DEFAULT_IV_LENGTH = 12\n\nexport async function digest(\n message: BinInput,\n algorithm: AlgorithmIdentifier = CRYPTO_DEFAULT_HASH_ALG,\n): Promise<Uint8Array> {\n const m = ensureUint8Array(toUint8Array(message))\n return toUint8Array(\n await crypto.subtle.digest(algorithm, m),\n )\n}\n\nexport async function deriveKeyPbkdf2(\n secret: BinInput,\n opt: {\n iterations?: number\n salt?: BinInput\n } = {},\n): Promise<CryptoKey> {\n const secretBuffer = ensureUint8Array(toUint8Array(secret))\n const keyMaterial = await crypto.subtle.importKey(\n 'raw',\n secretBuffer,\n CRYPTO_DEFAULT_DERIVE_ALG,\n false,\n ['deriveKey'],\n )\n return await crypto.subtle.deriveKey(\n {\n name: CRYPTO_DEFAULT_DERIVE_ALG,\n salt: opt.salt ? ensureUint8Array(toUint8Array(opt.salt)) : new Uint8Array(0),\n iterations: opt.iterations ?? CRYPTO_DEFAULT_DERIVE_ITERATIONS,\n hash: CRYPTO_DEFAULT_HASH_ALG,\n },\n keyMaterial,\n {\n name: CRYPTO_DEFAULT_ALG,\n length: 256,\n },\n true,\n ['encrypt', 'decrypt'],\n )\n}\n\nexport async function deriveKeyPbkdf2CBC(\n secret: BinInput,\n opt: {\n iterations?: number\n salt?: BinInput\n } = {},\n): Promise<CryptoKey> {\n const secretBuffer = ensureUint8Array(toUint8Array(secret))\n const keyMaterial = await crypto.subtle.importKey(\n 'raw',\n secretBuffer,\n CRYPTO_DEFAULT_DERIVE_ALG,\n false,\n ['deriveKey'],\n )\n return await crypto.subtle.deriveKey(\n {\n name: CRYPTO_DEFAULT_DERIVE_ALG,\n salt: opt.salt ? ensureUint8Array(toUint8Array(opt.salt)) : new Uint8Array(0),\n iterations: opt.iterations ?? CRYPTO_DEFAULT_DERIVE_ITERATIONS,\n hash: CRYPTO_DEFAULT_HASH_ALG,\n },\n keyMaterial,\n {\n name: 'AES-CBC',\n length: 256,\n },\n true,\n ['encrypt', 'decrypt'],\n )\n}\n\nfunction getMagicId() {\n return new Uint8Array([1, 1])\n}\n\nexport async function encrypt(\n data: Uint8Array,\n key: CryptoKey,\n): Promise<Uint8Array> {\n const MAGIC_ID = getMagicId()\n const iv = randomUint8Array(CRYPTO_DEFAULT_IV_LENGTH)\n const cipher = await crypto.subtle.encrypt(\n { name: CRYPTO_DEFAULT_ALG, iv: ensureUint8Array(iv) },\n key,\n ensureUint8Array(data),\n )\n const binCypher = new Uint8Array(cipher)\n const bufferLength = MAGIC_ID.length + iv.length + binCypher.length\n const buffer = new Uint8Array(bufferLength)\n let pos = 0\n buffer.set(MAGIC_ID, pos)\n pos += MAGIC_ID.length\n buffer.set(iv, pos)\n pos += iv.length\n buffer.set(binCypher, pos)\n return buffer\n}\n\nexport async function decrypt(\n data: Uint8Array,\n key: CryptoKey,\n): Promise<Uint8Array> {\n const magic = ensureUint8Array(data.subarray(0, 2))\n if (!equalBinary(magic, getMagicId()))\n return Promise.reject(new Error(`Unknown magic ${magic}`))\n\n const iv = ensureUint8Array(data.subarray(2, 2 + CRYPTO_DEFAULT_IV_LENGTH))\n const cipher = ensureUint8Array(data.subarray(2 + CRYPTO_DEFAULT_IV_LENGTH, data.length))\n const plain = await crypto.subtle.decrypt(\n { name: CRYPTO_DEFAULT_ALG, iv },\n key,\n cipher,\n )\n return new Uint8Array(plain)\n}\n"],"mappings":";;;;;AAIA,SAAgB,iBAAiB,SAAS,IAAgB;CACxD,MAAM,cAAc,IAAI,WAAW,OAAO;AAC1C,KAAI,OAAO,WAAW,eAAe,OAAO,gBAC1C,QAAO,gBAAgB,YAAY;KAKnC,MAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,IAG1B,aAAY,KAAK,KAAK,MAAM,KAAK,QAAQ,GAAG,IAAM;AAGtD,QAAO;;AAGT,MAAa,0BAA0B;AACvC,MAAa,qBAAqB;AAClC,MAAa,4BAA4B;AACzC,MAAa,mCAAmC;AAChD,MAAa,2BAA2B;AAExC,eAAsB,OACpB,SACA,YAAiC,yBACZ;CACrB,MAAM,IAAIA,6BAAiBC,yBAAa,QAAQ,CAAC;AACjD,QAAOA,yBACL,MAAM,OAAO,OAAO,OAAO,WAAW,EAAE,CACzC;;AAGH,eAAsB,gBACpB,QACA,MAGI,EAAE,EACc;CACpB,MAAM,eAAeD,6BAAiBC,yBAAa,OAAO,CAAC;CAC3D,MAAM,cAAc,MAAM,OAAO,OAAO,UACtC,OACA,cACA,2BACA,OACA,CAAC,YAAY,CACd;AACD,QAAO,MAAM,OAAO,OAAO,UACzB;EACE,MAAM;EACN,MAAM,IAAI,OAAOD,6BAAiBC,yBAAa,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,EAAE;EAC7E,YAAY,IAAI;EAChB,MAAM;EACP,EACD,aACA;EACE,MAAM;EACN,QAAQ;EACT,EACD,MACA,CAAC,WAAW,UAAU,CACvB;;AAGH,eAAsB,mBACpB,QACA,MAGI,EAAE,EACc;CACpB,MAAM,eAAeD,6BAAiBC,yBAAa,OAAO,CAAC;CAC3D,MAAM,cAAc,MAAM,OAAO,OAAO,UACtC,OACA,cACA,2BACA,OACA,CAAC,YAAY,CACd;AACD,QAAO,MAAM,OAAO,OAAO,UACzB;EACE,MAAM;EACN,MAAM,IAAI,OAAOD,6BAAiBC,yBAAa,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,EAAE;EAC7E,YAAY,IAAI;EAChB,MAAM;EACP,EACD,aACA;EACE,MAAM;EACN,QAAQ;EACT,EACD,MACA,CAAC,WAAW,UAAU,CACvB;;AAGH,SAAS,aAAa;AACpB,QAAO,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;;AAG/B,eAAsB,QACpB,MACA,KACqB;CACrB,MAAM,WAAW,YAAY;CAC7B,MAAM,KAAK,oBAA0C;CACrD,MAAM,SAAS,MAAM,OAAO,OAAO,QACjC;EAAE,MAAM;EAAoB,IAAID,6BAAiB,GAAG;EAAE,EACtD,KACAA,6BAAiB,KAAK,CACvB;CACD,MAAM,YAAY,IAAI,WAAW,OAAO;CACxC,MAAM,eAAe,SAAS,SAAS,GAAG,SAAS,UAAU;CAC7D,MAAM,SAAS,IAAI,WAAW,aAAa;CAC3C,IAAI,MAAM;AACV,QAAO,IAAI,UAAU,IAAI;AACzB,QAAO,SAAS;AAChB,QAAO,IAAI,IAAI,IAAI;AACnB,QAAO,GAAG;AACV,QAAO,IAAI,WAAW,IAAI;AAC1B,QAAO;;AAGT,eAAsB,QACpB,MACA,KACqB;CACrB,MAAM,QAAQA,6BAAiB,KAAK,SAAS,GAAG,EAAE,CAAC;AACnD,KAAI,CAACE,wBAAY,OAAO,YAAY,CAAC,CACnC,QAAO,QAAQ,uBAAO,IAAI,MAAM,iBAAiB,QAAQ,CAAC;CAE5D,MAAM,KAAKF,6BAAiB,KAAK,SAAS,GAAG,OAA6B,CAAC;CAC3E,MAAM,SAASA,6BAAiB,KAAK,SAAS,QAA8B,KAAK,OAAO,CAAC;CACzF,MAAM,QAAQ,MAAM,OAAO,OAAO,QAChC;EAAE,MAAM;EAAoB;EAAI,EAChC,KACA,OACD;AACD,QAAO,IAAI,WAAW,MAAM"}
@@ -1,2 +1,81 @@
1
- import{o as e,s as t,v as n}from"../../bin-SPdenYkw.mjs";function r(e=16){let t=new Uint8Array(e);if(typeof crypto<`u`&&crypto.getRandomValues)crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.floor(Math.random()*256);return t}const i=`SHA-256`,a=`AES-GCM`,o=`PBKDF2`,s=1e5,c=12;async function l(t,r=i){let a=e(n(t));return n(await crypto.subtle.digest(r,a))}async function u(t,r={}){let s=e(n(t)),c=await crypto.subtle.importKey(`raw`,s,o,!1,[`deriveKey`]);return await crypto.subtle.deriveKey({name:o,salt:r.salt?e(n(r.salt)):new Uint8Array,iterations:r.iterations??1e5,hash:i},c,{name:a,length:256},!0,[`encrypt`,`decrypt`])}async function d(t,r={}){let a=e(n(t)),s=await crypto.subtle.importKey(`raw`,a,o,!1,[`deriveKey`]);return await crypto.subtle.deriveKey({name:o,salt:r.salt?e(n(r.salt)):new Uint8Array,iterations:r.iterations??1e5,hash:i},s,{name:`AES-CBC`,length:256},!0,[`encrypt`,`decrypt`])}function f(){return new Uint8Array([1,1])}async function p(t,n){let i=f(),o=r(12),s=await crypto.subtle.encrypt({name:a,iv:e(o)},n,e(t)),c=new Uint8Array(s),l=i.length+o.length+c.length,u=new Uint8Array(l),d=0;return u.set(i,d),d+=i.length,u.set(o,d),d+=o.length,u.set(c,d),u}async function m(n,r){let i=e(n.subarray(0,2));if(!t(i,f()))return Promise.reject(Error(`Unknown magic ${i}`));let o=e(n.subarray(2,14)),s=e(n.subarray(14,n.length)),c=await crypto.subtle.decrypt({name:a,iv:o},r,s);return new Uint8Array(c)}export{a as CRYPTO_DEFAULT_ALG,o as CRYPTO_DEFAULT_DERIVE_ALG,s as CRYPTO_DEFAULT_DERIVE_ITERATIONS,i as CRYPTO_DEFAULT_HASH_ALG,c as CRYPTO_DEFAULT_IV_LENGTH,m as decrypt,u as deriveKeyPbkdf2,d as deriveKeyPbkdf2CBC,l as digest,p as encrypt,r as randomUint8Array};
1
+ import { o as ensureUint8Array, s as equalBinary, v as toUint8Array } from "../../bin-BAoS4qtm.mjs";
2
+
3
+ //#region src/common/crypto/crypto.ts
4
+ /** Get random bytes using window.crypto if available. Else use a poor fallback solution. */
5
+ function randomUint8Array(length = 16) {
6
+ const randomBytes = new Uint8Array(length);
7
+ if (typeof crypto !== "undefined" && crypto.getRandomValues) crypto.getRandomValues(randomBytes);
8
+ else for (let i = 0; i < length; i++) randomBytes[i] = Math.floor(Math.random() * 256);
9
+ return randomBytes;
10
+ }
11
+ const CRYPTO_DEFAULT_HASH_ALG = "SHA-256";
12
+ const CRYPTO_DEFAULT_ALG = "AES-GCM";
13
+ const CRYPTO_DEFAULT_DERIVE_ALG = "PBKDF2";
14
+ const CRYPTO_DEFAULT_DERIVE_ITERATIONS = 1e5;
15
+ const CRYPTO_DEFAULT_IV_LENGTH = 12;
16
+ async function digest(message, algorithm = CRYPTO_DEFAULT_HASH_ALG) {
17
+ const m = ensureUint8Array(toUint8Array(message));
18
+ return toUint8Array(await crypto.subtle.digest(algorithm, m));
19
+ }
20
+ async function deriveKeyPbkdf2(secret, opt = {}) {
21
+ const secretBuffer = ensureUint8Array(toUint8Array(secret));
22
+ const keyMaterial = await crypto.subtle.importKey("raw", secretBuffer, CRYPTO_DEFAULT_DERIVE_ALG, false, ["deriveKey"]);
23
+ return await crypto.subtle.deriveKey({
24
+ name: CRYPTO_DEFAULT_DERIVE_ALG,
25
+ salt: opt.salt ? ensureUint8Array(toUint8Array(opt.salt)) : new Uint8Array(0),
26
+ iterations: opt.iterations ?? 1e5,
27
+ hash: CRYPTO_DEFAULT_HASH_ALG
28
+ }, keyMaterial, {
29
+ name: CRYPTO_DEFAULT_ALG,
30
+ length: 256
31
+ }, true, ["encrypt", "decrypt"]);
32
+ }
33
+ async function deriveKeyPbkdf2CBC(secret, opt = {}) {
34
+ const secretBuffer = ensureUint8Array(toUint8Array(secret));
35
+ const keyMaterial = await crypto.subtle.importKey("raw", secretBuffer, CRYPTO_DEFAULT_DERIVE_ALG, false, ["deriveKey"]);
36
+ return await crypto.subtle.deriveKey({
37
+ name: CRYPTO_DEFAULT_DERIVE_ALG,
38
+ salt: opt.salt ? ensureUint8Array(toUint8Array(opt.salt)) : new Uint8Array(0),
39
+ iterations: opt.iterations ?? 1e5,
40
+ hash: CRYPTO_DEFAULT_HASH_ALG
41
+ }, keyMaterial, {
42
+ name: "AES-CBC",
43
+ length: 256
44
+ }, true, ["encrypt", "decrypt"]);
45
+ }
46
+ function getMagicId() {
47
+ return new Uint8Array([1, 1]);
48
+ }
49
+ async function encrypt(data, key) {
50
+ const MAGIC_ID = getMagicId();
51
+ const iv = randomUint8Array(12);
52
+ const cipher = await crypto.subtle.encrypt({
53
+ name: CRYPTO_DEFAULT_ALG,
54
+ iv: ensureUint8Array(iv)
55
+ }, key, ensureUint8Array(data));
56
+ const binCypher = new Uint8Array(cipher);
57
+ const bufferLength = MAGIC_ID.length + iv.length + binCypher.length;
58
+ const buffer = new Uint8Array(bufferLength);
59
+ let pos = 0;
60
+ buffer.set(MAGIC_ID, pos);
61
+ pos += MAGIC_ID.length;
62
+ buffer.set(iv, pos);
63
+ pos += iv.length;
64
+ buffer.set(binCypher, pos);
65
+ return buffer;
66
+ }
67
+ async function decrypt(data, key) {
68
+ const magic = ensureUint8Array(data.subarray(0, 2));
69
+ if (!equalBinary(magic, getMagicId())) return Promise.reject(/* @__PURE__ */ new Error(`Unknown magic ${magic}`));
70
+ const iv = ensureUint8Array(data.subarray(2, 2 + 12));
71
+ const cipher = ensureUint8Array(data.subarray(2 + 12, data.length));
72
+ const plain = await crypto.subtle.decrypt({
73
+ name: CRYPTO_DEFAULT_ALG,
74
+ iv
75
+ }, key, cipher);
76
+ return new Uint8Array(plain);
77
+ }
78
+
79
+ //#endregion
80
+ export { CRYPTO_DEFAULT_ALG, CRYPTO_DEFAULT_DERIVE_ALG, CRYPTO_DEFAULT_DERIVE_ITERATIONS, CRYPTO_DEFAULT_HASH_ALG, CRYPTO_DEFAULT_IV_LENGTH, decrypt, deriveKeyPbkdf2, deriveKeyPbkdf2CBC, digest, encrypt, randomUint8Array };
2
81
  //# sourceMappingURL=crypto.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.mjs","names":[],"sources":["../../../src/common/crypto/crypto.ts"],"sourcesContent":["import type { BinInput } from '../data/bin-types'\nimport { ensureUint8Array, equalBinary, toUint8Array } from '../data/bin'\n\n/** Get random bytes using window.crypto if available. Else use a poor fallback solution. */\nexport function randomUint8Array(length = 16): Uint8Array {\n const randomBytes = new Uint8Array(length)\n if (typeof crypto !== 'undefined' && crypto.getRandomValues) {\n crypto.getRandomValues(randomBytes)\n }\n else {\n // hack: not state of the art secure\n // throw \"crypto.getRandomValues is required\"\n for (let i = 0; i < length; i++) {\n // Math.random: \"...range 0 to less than 1 (inclusive of 0, but not 1)\"\n // 0.9... * 0xff < 255 therefore * 0x100\n randomBytes[i] = Math.floor(Math.random() * 0x100) // 0...255\n }\n }\n return randomBytes\n}\n\nexport const CRYPTO_DEFAULT_HASH_ALG = 'SHA-256'\nexport const CRYPTO_DEFAULT_ALG = 'AES-GCM'\nexport const CRYPTO_DEFAULT_DERIVE_ALG = 'PBKDF2'\nexport const CRYPTO_DEFAULT_DERIVE_ITERATIONS = 100000\nexport const CRYPTO_DEFAULT_IV_LENGTH = 12\n\nexport async function digest(\n message: BinInput,\n algorithm: AlgorithmIdentifier = CRYPTO_DEFAULT_HASH_ALG,\n): Promise<Uint8Array> {\n const m = ensureUint8Array(toUint8Array(message))\n return toUint8Array(\n await crypto.subtle.digest(algorithm, m),\n )\n}\n\nexport async function deriveKeyPbkdf2(\n secret: BinInput,\n opt: {\n iterations?: number\n salt?: BinInput\n } = {},\n): Promise<CryptoKey> {\n const secretBuffer = ensureUint8Array(toUint8Array(secret))\n const keyMaterial = await crypto.subtle.importKey(\n 'raw',\n secretBuffer,\n CRYPTO_DEFAULT_DERIVE_ALG,\n false,\n ['deriveKey'],\n )\n return await crypto.subtle.deriveKey(\n {\n name: CRYPTO_DEFAULT_DERIVE_ALG,\n salt: opt.salt ? ensureUint8Array(toUint8Array(opt.salt)) : new Uint8Array(0),\n iterations: opt.iterations ?? CRYPTO_DEFAULT_DERIVE_ITERATIONS,\n hash: CRYPTO_DEFAULT_HASH_ALG,\n },\n keyMaterial,\n {\n name: CRYPTO_DEFAULT_ALG,\n length: 256,\n },\n true,\n ['encrypt', 'decrypt'],\n )\n}\n\nexport async function deriveKeyPbkdf2CBC(\n secret: BinInput,\n opt: {\n iterations?: number\n salt?: BinInput\n } = {},\n): Promise<CryptoKey> {\n const secretBuffer = ensureUint8Array(toUint8Array(secret))\n const keyMaterial = await crypto.subtle.importKey(\n 'raw',\n secretBuffer,\n CRYPTO_DEFAULT_DERIVE_ALG,\n false,\n ['deriveKey'],\n )\n return await crypto.subtle.deriveKey(\n {\n name: CRYPTO_DEFAULT_DERIVE_ALG,\n salt: opt.salt ? ensureUint8Array(toUint8Array(opt.salt)) : new Uint8Array(0),\n iterations: opt.iterations ?? CRYPTO_DEFAULT_DERIVE_ITERATIONS,\n hash: CRYPTO_DEFAULT_HASH_ALG,\n },\n keyMaterial,\n {\n name: 'AES-CBC',\n length: 256,\n },\n true,\n ['encrypt', 'decrypt'],\n )\n}\n\nfunction getMagicId() {\n return new Uint8Array([1, 1])\n}\n\nexport async function encrypt(\n data: Uint8Array,\n key: CryptoKey,\n): Promise<Uint8Array> {\n const MAGIC_ID = getMagicId()\n const iv = randomUint8Array(CRYPTO_DEFAULT_IV_LENGTH)\n const cipher = await crypto.subtle.encrypt(\n { name: CRYPTO_DEFAULT_ALG, iv: ensureUint8Array(iv) },\n key,\n ensureUint8Array(data),\n )\n const binCypher = new Uint8Array(cipher)\n const bufferLength = MAGIC_ID.length + iv.length + binCypher.length\n const buffer = new Uint8Array(bufferLength)\n let pos = 0\n buffer.set(MAGIC_ID, pos)\n pos += MAGIC_ID.length\n buffer.set(iv, pos)\n pos += iv.length\n buffer.set(binCypher, pos)\n return buffer\n}\n\nexport async function decrypt(\n data: Uint8Array,\n key: CryptoKey,\n): Promise<Uint8Array> {\n const magic = ensureUint8Array(data.subarray(0, 2))\n if (!equalBinary(magic, getMagicId()))\n return Promise.reject(new Error(`Unknown magic ${magic}`))\n\n const iv = ensureUint8Array(data.subarray(2, 2 + CRYPTO_DEFAULT_IV_LENGTH))\n const cipher = ensureUint8Array(data.subarray(2 + CRYPTO_DEFAULT_IV_LENGTH, data.length))\n const plain = await crypto.subtle.decrypt(\n { name: CRYPTO_DEFAULT_ALG, iv },\n key,\n cipher,\n )\n return new Uint8Array(plain)\n}\n"],"mappings":"yDAIA,SAAgB,EAAiB,EAAS,GAAgB,CACxD,IAAM,EAAc,IAAI,WAAW,EAAO,CAC1C,GAAI,OAAO,OAAW,KAAe,OAAO,gBAC1C,OAAO,gBAAgB,EAAY,MAKnC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,IAG1B,EAAY,GAAK,KAAK,MAAM,KAAK,QAAQ,CAAG,IAAM,CAGtD,OAAO,EAGT,MAAa,EAA0B,UAC1B,EAAqB,UACrB,EAA4B,SAC5B,EAAmC,IACnC,EAA2B,GAExC,eAAsB,EACpB,EACA,EAAiC,EACZ,CACrB,IAAM,EAAI,EAAiB,EAAa,EAAQ,CAAC,CACjD,OAAO,EACL,MAAM,OAAO,OAAO,OAAO,EAAW,EAAE,CACzC,CAGH,eAAsB,EACpB,EACA,EAGI,EAAE,CACc,CACpB,IAAM,EAAe,EAAiB,EAAa,EAAO,CAAC,CACrD,EAAc,MAAM,OAAO,OAAO,UACtC,MACA,EACA,EACA,GACA,CAAC,YAAY,CACd,CACD,OAAO,MAAM,OAAO,OAAO,UACzB,CACE,KAAM,EACN,KAAM,EAAI,KAAO,EAAiB,EAAa,EAAI,KAAK,CAAC,CAAG,IAAI,WAChE,WAAY,EAAI,YAAA,IAChB,KAAM,EACP,CACD,EACA,CACE,KAAM,EACN,OAAQ,IACT,CACD,GACA,CAAC,UAAW,UAAU,CACvB,CAGH,eAAsB,EACpB,EACA,EAGI,EAAE,CACc,CACpB,IAAM,EAAe,EAAiB,EAAa,EAAO,CAAC,CACrD,EAAc,MAAM,OAAO,OAAO,UACtC,MACA,EACA,EACA,GACA,CAAC,YAAY,CACd,CACD,OAAO,MAAM,OAAO,OAAO,UACzB,CACE,KAAM,EACN,KAAM,EAAI,KAAO,EAAiB,EAAa,EAAI,KAAK,CAAC,CAAG,IAAI,WAChE,WAAY,EAAI,YAAA,IAChB,KAAM,EACP,CACD,EACA,CACE,KAAM,UACN,OAAQ,IACT,CACD,GACA,CAAC,UAAW,UAAU,CACvB,CAGH,SAAS,GAAa,CACpB,OAAO,IAAI,WAAW,CAAC,EAAG,EAAE,CAAC,CAG/B,eAAsB,EACpB,EACA,EACqB,CACrB,IAAM,EAAW,GAAY,CACvB,EAAK,EAAA,GAA0C,CAC/C,EAAS,MAAM,OAAO,OAAO,QACjC,CAAE,KAAM,EAAoB,GAAI,EAAiB,EAAG,CAAE,CACtD,EACA,EAAiB,EAAK,CACvB,CACK,EAAY,IAAI,WAAW,EAAO,CAClC,EAAe,EAAS,OAAS,EAAG,OAAS,EAAU,OACvD,EAAS,IAAI,WAAW,EAAa,CACvC,EAAM,EAMV,OALA,EAAO,IAAI,EAAU,EAAI,CACzB,GAAO,EAAS,OAChB,EAAO,IAAI,EAAI,EAAI,CACnB,GAAO,EAAG,OACV,EAAO,IAAI,EAAW,EAAI,CACnB,EAGT,eAAsB,EACpB,EACA,EACqB,CACrB,IAAM,EAAQ,EAAiB,EAAK,SAAS,EAAG,EAAE,CAAC,CACnD,GAAI,CAAC,EAAY,EAAO,GAAY,CAAC,CACnC,OAAO,QAAQ,OAAW,MAAM,iBAAiB,IAAQ,CAAC,CAE5D,IAAM,EAAK,EAAiB,EAAK,SAAS,EAAG,GAA6B,CAAC,CACrE,EAAS,EAAiB,EAAK,SAAS,GAA8B,EAAK,OAAO,CAAC,CACnF,EAAQ,MAAM,OAAO,OAAO,QAChC,CAAE,KAAM,EAAoB,KAAI,CAChC,EACA,EACD,CACD,OAAO,IAAI,WAAW,EAAM"}
1
+ {"version":3,"file":"crypto.mjs","names":[],"sources":["../../../src/common/crypto/crypto.ts"],"sourcesContent":["import type { BinInput } from '../data/bin-types'\nimport { ensureUint8Array, equalBinary, toUint8Array } from '../data/bin'\n\n/** Get random bytes using window.crypto if available. Else use a poor fallback solution. */\nexport function randomUint8Array(length = 16): Uint8Array {\n const randomBytes = new Uint8Array(length)\n if (typeof crypto !== 'undefined' && crypto.getRandomValues) {\n crypto.getRandomValues(randomBytes)\n }\n else {\n // hack: not state of the art secure\n // throw \"crypto.getRandomValues is required\"\n for (let i = 0; i < length; i++) {\n // Math.random: \"...range 0 to less than 1 (inclusive of 0, but not 1)\"\n // 0.9... * 0xff < 255 therefore * 0x100\n randomBytes[i] = Math.floor(Math.random() * 0x100) // 0...255\n }\n }\n return randomBytes\n}\n\nexport const CRYPTO_DEFAULT_HASH_ALG = 'SHA-256'\nexport const CRYPTO_DEFAULT_ALG = 'AES-GCM'\nexport const CRYPTO_DEFAULT_DERIVE_ALG = 'PBKDF2'\nexport const CRYPTO_DEFAULT_DERIVE_ITERATIONS = 100000\nexport const CRYPTO_DEFAULT_IV_LENGTH = 12\n\nexport async function digest(\n message: BinInput,\n algorithm: AlgorithmIdentifier = CRYPTO_DEFAULT_HASH_ALG,\n): Promise<Uint8Array> {\n const m = ensureUint8Array(toUint8Array(message))\n return toUint8Array(\n await crypto.subtle.digest(algorithm, m),\n )\n}\n\nexport async function deriveKeyPbkdf2(\n secret: BinInput,\n opt: {\n iterations?: number\n salt?: BinInput\n } = {},\n): Promise<CryptoKey> {\n const secretBuffer = ensureUint8Array(toUint8Array(secret))\n const keyMaterial = await crypto.subtle.importKey(\n 'raw',\n secretBuffer,\n CRYPTO_DEFAULT_DERIVE_ALG,\n false,\n ['deriveKey'],\n )\n return await crypto.subtle.deriveKey(\n {\n name: CRYPTO_DEFAULT_DERIVE_ALG,\n salt: opt.salt ? ensureUint8Array(toUint8Array(opt.salt)) : new Uint8Array(0),\n iterations: opt.iterations ?? CRYPTO_DEFAULT_DERIVE_ITERATIONS,\n hash: CRYPTO_DEFAULT_HASH_ALG,\n },\n keyMaterial,\n {\n name: CRYPTO_DEFAULT_ALG,\n length: 256,\n },\n true,\n ['encrypt', 'decrypt'],\n )\n}\n\nexport async function deriveKeyPbkdf2CBC(\n secret: BinInput,\n opt: {\n iterations?: number\n salt?: BinInput\n } = {},\n): Promise<CryptoKey> {\n const secretBuffer = ensureUint8Array(toUint8Array(secret))\n const keyMaterial = await crypto.subtle.importKey(\n 'raw',\n secretBuffer,\n CRYPTO_DEFAULT_DERIVE_ALG,\n false,\n ['deriveKey'],\n )\n return await crypto.subtle.deriveKey(\n {\n name: CRYPTO_DEFAULT_DERIVE_ALG,\n salt: opt.salt ? ensureUint8Array(toUint8Array(opt.salt)) : new Uint8Array(0),\n iterations: opt.iterations ?? CRYPTO_DEFAULT_DERIVE_ITERATIONS,\n hash: CRYPTO_DEFAULT_HASH_ALG,\n },\n keyMaterial,\n {\n name: 'AES-CBC',\n length: 256,\n },\n true,\n ['encrypt', 'decrypt'],\n )\n}\n\nfunction getMagicId() {\n return new Uint8Array([1, 1])\n}\n\nexport async function encrypt(\n data: Uint8Array,\n key: CryptoKey,\n): Promise<Uint8Array> {\n const MAGIC_ID = getMagicId()\n const iv = randomUint8Array(CRYPTO_DEFAULT_IV_LENGTH)\n const cipher = await crypto.subtle.encrypt(\n { name: CRYPTO_DEFAULT_ALG, iv: ensureUint8Array(iv) },\n key,\n ensureUint8Array(data),\n )\n const binCypher = new Uint8Array(cipher)\n const bufferLength = MAGIC_ID.length + iv.length + binCypher.length\n const buffer = new Uint8Array(bufferLength)\n let pos = 0\n buffer.set(MAGIC_ID, pos)\n pos += MAGIC_ID.length\n buffer.set(iv, pos)\n pos += iv.length\n buffer.set(binCypher, pos)\n return buffer\n}\n\nexport async function decrypt(\n data: Uint8Array,\n key: CryptoKey,\n): Promise<Uint8Array> {\n const magic = ensureUint8Array(data.subarray(0, 2))\n if (!equalBinary(magic, getMagicId()))\n return Promise.reject(new Error(`Unknown magic ${magic}`))\n\n const iv = ensureUint8Array(data.subarray(2, 2 + CRYPTO_DEFAULT_IV_LENGTH))\n const cipher = ensureUint8Array(data.subarray(2 + CRYPTO_DEFAULT_IV_LENGTH, data.length))\n const plain = await crypto.subtle.decrypt(\n { name: CRYPTO_DEFAULT_ALG, iv },\n key,\n cipher,\n )\n return new Uint8Array(plain)\n}\n"],"mappings":";;;;AAIA,SAAgB,iBAAiB,SAAS,IAAgB;CACxD,MAAM,cAAc,IAAI,WAAW,OAAO;AAC1C,KAAI,OAAO,WAAW,eAAe,OAAO,gBAC1C,QAAO,gBAAgB,YAAY;KAKnC,MAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,IAG1B,aAAY,KAAK,KAAK,MAAM,KAAK,QAAQ,GAAG,IAAM;AAGtD,QAAO;;AAGT,MAAa,0BAA0B;AACvC,MAAa,qBAAqB;AAClC,MAAa,4BAA4B;AACzC,MAAa,mCAAmC;AAChD,MAAa,2BAA2B;AAExC,eAAsB,OACpB,SACA,YAAiC,yBACZ;CACrB,MAAM,IAAI,iBAAiB,aAAa,QAAQ,CAAC;AACjD,QAAO,aACL,MAAM,OAAO,OAAO,OAAO,WAAW,EAAE,CACzC;;AAGH,eAAsB,gBACpB,QACA,MAGI,EAAE,EACc;CACpB,MAAM,eAAe,iBAAiB,aAAa,OAAO,CAAC;CAC3D,MAAM,cAAc,MAAM,OAAO,OAAO,UACtC,OACA,cACA,2BACA,OACA,CAAC,YAAY,CACd;AACD,QAAO,MAAM,OAAO,OAAO,UACzB;EACE,MAAM;EACN,MAAM,IAAI,OAAO,iBAAiB,aAAa,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,EAAE;EAC7E,YAAY,IAAI;EAChB,MAAM;EACP,EACD,aACA;EACE,MAAM;EACN,QAAQ;EACT,EACD,MACA,CAAC,WAAW,UAAU,CACvB;;AAGH,eAAsB,mBACpB,QACA,MAGI,EAAE,EACc;CACpB,MAAM,eAAe,iBAAiB,aAAa,OAAO,CAAC;CAC3D,MAAM,cAAc,MAAM,OAAO,OAAO,UACtC,OACA,cACA,2BACA,OACA,CAAC,YAAY,CACd;AACD,QAAO,MAAM,OAAO,OAAO,UACzB;EACE,MAAM;EACN,MAAM,IAAI,OAAO,iBAAiB,aAAa,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,EAAE;EAC7E,YAAY,IAAI;EAChB,MAAM;EACP,EACD,aACA;EACE,MAAM;EACN,QAAQ;EACT,EACD,MACA,CAAC,WAAW,UAAU,CACvB;;AAGH,SAAS,aAAa;AACpB,QAAO,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;;AAG/B,eAAsB,QACpB,MACA,KACqB;CACrB,MAAM,WAAW,YAAY;CAC7B,MAAM,KAAK,oBAA0C;CACrD,MAAM,SAAS,MAAM,OAAO,OAAO,QACjC;EAAE,MAAM;EAAoB,IAAI,iBAAiB,GAAG;EAAE,EACtD,KACA,iBAAiB,KAAK,CACvB;CACD,MAAM,YAAY,IAAI,WAAW,OAAO;CACxC,MAAM,eAAe,SAAS,SAAS,GAAG,SAAS,UAAU;CAC7D,MAAM,SAAS,IAAI,WAAW,aAAa;CAC3C,IAAI,MAAM;AACV,QAAO,IAAI,UAAU,IAAI;AACzB,QAAO,SAAS;AAChB,QAAO,IAAI,IAAI,IAAI;AACnB,QAAO,GAAG;AACV,QAAO,IAAI,WAAW,IAAI;AAC1B,QAAO;;AAGT,eAAsB,QACpB,MACA,KACqB;CACrB,MAAM,QAAQ,iBAAiB,KAAK,SAAS,GAAG,EAAE,CAAC;AACnD,KAAI,CAAC,YAAY,OAAO,YAAY,CAAC,CACnC,QAAO,QAAQ,uBAAO,IAAI,MAAM,iBAAiB,QAAQ,CAAC;CAE5D,MAAM,KAAK,iBAAiB,KAAK,SAAS,GAAG,OAA6B,CAAC;CAC3E,MAAM,SAAS,iBAAiB,KAAK,SAAS,QAA8B,KAAK,OAAO,CAAC;CACzF,MAAM,QAAQ,MAAM,OAAO,OAAO,QAChC;EAAE,MAAM;EAAoB;EAAI,EAChC,KACA,OACD;AACD,QAAO,IAAI,WAAW,MAAM"}
@@ -1 +1,23 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./aes-sealed.cjs`),t=require(`./crypto.cjs`),n=require(`./xaes.cjs`);exports.CRYPTO_DEFAULT_ALG=t.CRYPTO_DEFAULT_ALG,exports.CRYPTO_DEFAULT_DERIVE_ALG=t.CRYPTO_DEFAULT_DERIVE_ALG,exports.CRYPTO_DEFAULT_DERIVE_ITERATIONS=t.CRYPTO_DEFAULT_DERIVE_ITERATIONS,exports.CRYPTO_DEFAULT_HASH_ALG=t.CRYPTO_DEFAULT_HASH_ALG,exports.CRYPTO_DEFAULT_IV_LENGTH=t.CRYPTO_DEFAULT_IV_LENGTH,exports.decrypt=t.decrypt,exports.decryptAesGcm=e.decryptAesGcm,exports.decryptXAES=n.decryptXAES,exports.deriveKeyPbkdf2=t.deriveKeyPbkdf2,exports.deriveKeyPbkdf2CBC=t.deriveKeyPbkdf2CBC,exports.digest=t.digest,exports.encrypt=t.encrypt,exports.encryptAesGcm=e.encryptAesGcm,exports.encryptXAES=n.encryptXAES,exports.exportKeyXAES=n.exportKeyXAES,exports.generateKeyXAES=n.generateKeyXAES,exports.importKeyXAES=n.importKeyXAES,exports.randomUint8Array=t.randomUint8Array;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_common_crypto_aes_sealed = require('./aes-sealed.cjs');
3
+ const require_common_crypto_crypto = require('./crypto.cjs');
4
+ const require_common_crypto_xaes = require('./xaes.cjs');
5
+
6
+ exports.CRYPTO_DEFAULT_ALG = require_common_crypto_crypto.CRYPTO_DEFAULT_ALG;
7
+ exports.CRYPTO_DEFAULT_DERIVE_ALG = require_common_crypto_crypto.CRYPTO_DEFAULT_DERIVE_ALG;
8
+ exports.CRYPTO_DEFAULT_DERIVE_ITERATIONS = require_common_crypto_crypto.CRYPTO_DEFAULT_DERIVE_ITERATIONS;
9
+ exports.CRYPTO_DEFAULT_HASH_ALG = require_common_crypto_crypto.CRYPTO_DEFAULT_HASH_ALG;
10
+ exports.CRYPTO_DEFAULT_IV_LENGTH = require_common_crypto_crypto.CRYPTO_DEFAULT_IV_LENGTH;
11
+ exports.decrypt = require_common_crypto_crypto.decrypt;
12
+ exports.decryptAesGcm = require_common_crypto_aes_sealed.decryptAesGcm;
13
+ exports.decryptXAES = require_common_crypto_xaes.decryptXAES;
14
+ exports.deriveKeyPbkdf2 = require_common_crypto_crypto.deriveKeyPbkdf2;
15
+ exports.deriveKeyPbkdf2CBC = require_common_crypto_crypto.deriveKeyPbkdf2CBC;
16
+ exports.digest = require_common_crypto_crypto.digest;
17
+ exports.encrypt = require_common_crypto_crypto.encrypt;
18
+ exports.encryptAesGcm = require_common_crypto_aes_sealed.encryptAesGcm;
19
+ exports.encryptXAES = require_common_crypto_xaes.encryptXAES;
20
+ exports.exportKeyXAES = require_common_crypto_xaes.exportKeyXAES;
21
+ exports.generateKeyXAES = require_common_crypto_xaes.generateKeyXAES;
22
+ exports.importKeyXAES = require_common_crypto_xaes.importKeyXAES;
23
+ exports.randomUint8Array = require_common_crypto_crypto.randomUint8Array;
@@ -1 +1,5 @@
1
- import{decryptAesGcm as e,encryptAesGcm as t}from"./aes-sealed.mjs";import{CRYPTO_DEFAULT_ALG as n,CRYPTO_DEFAULT_DERIVE_ALG as r,CRYPTO_DEFAULT_DERIVE_ITERATIONS as i,CRYPTO_DEFAULT_HASH_ALG as a,CRYPTO_DEFAULT_IV_LENGTH as o,decrypt as s,deriveKeyPbkdf2 as c,deriveKeyPbkdf2CBC as l,digest as u,encrypt as d,randomUint8Array as f}from"./crypto.mjs";import{decryptXAES as p,encryptXAES as m,exportKeyXAES as h,generateKeyXAES as g,importKeyXAES as _}from"./xaes.mjs";export{n as CRYPTO_DEFAULT_ALG,r as CRYPTO_DEFAULT_DERIVE_ALG,i as CRYPTO_DEFAULT_DERIVE_ITERATIONS,a as CRYPTO_DEFAULT_HASH_ALG,o as CRYPTO_DEFAULT_IV_LENGTH,s as decrypt,e as decryptAesGcm,p as decryptXAES,c as deriveKeyPbkdf2,l as deriveKeyPbkdf2CBC,u as digest,d as encrypt,t as encryptAesGcm,m as encryptXAES,h as exportKeyXAES,g as generateKeyXAES,_ as importKeyXAES,f as randomUint8Array};
1
+ import { decryptAesGcm, encryptAesGcm } from "./aes-sealed.mjs";
2
+ import { CRYPTO_DEFAULT_ALG, CRYPTO_DEFAULT_DERIVE_ALG, CRYPTO_DEFAULT_DERIVE_ITERATIONS, CRYPTO_DEFAULT_HASH_ALG, CRYPTO_DEFAULT_IV_LENGTH, decrypt, deriveKeyPbkdf2, deriveKeyPbkdf2CBC, digest, encrypt, randomUint8Array } from "./crypto.mjs";
3
+ import { decryptXAES, encryptXAES, exportKeyXAES, generateKeyXAES, importKeyXAES } from "./xaes.mjs";
4
+
5
+ export { CRYPTO_DEFAULT_ALG, CRYPTO_DEFAULT_DERIVE_ALG, CRYPTO_DEFAULT_DERIVE_ITERATIONS, CRYPTO_DEFAULT_HASH_ALG, CRYPTO_DEFAULT_IV_LENGTH, decrypt, decryptAesGcm, decryptXAES, deriveKeyPbkdf2, deriveKeyPbkdf2CBC, digest, encrypt, encryptAesGcm, encryptXAES, exportKeyXAES, generateKeyXAES, importKeyXAES, randomUint8Array };
@@ -1,2 +1,129 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../bin-Ce3i6ABn.cjs`);async function t(e,t,n){let r=await crypto.subtle.encrypt({name:`AES-CBC`,iv:n},e,t);return new Uint8Array(r,0,16)}async function n(n,r,i,a){let o=new Uint8Array(16);return o[1]=n,o[2]=88,o.set(e.o(i.subarray(0,12)),4),await t(r,o,e.o(a))}async function r(r,i){if(r.algorithm.name!==`AES-CBC`)throw Error(`key must be for AES-CBC`);if(!r.usages.includes(`encrypt`))throw Error(`key must have 'encrypt' usage`);if(r.algorithm.length!==256)throw Error(`key must be 256 bits`);if(i==null||i.byteLength!==24)throw Error(`iv must be 24 bytes`);let a=ArrayBuffer.isView(i)?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):new Uint8Array(i),o=await t(r,new Uint8Array(16),new Uint8Array(16)),s=0;for(let e=o.length-1;e>=0;e--)[s,o[e]]=[o[e]>>>7&255,(o[e]<<1|s)&255];o[o.length-1]^=s*135&255;let c=new Uint8Array(32);return c.set(await n(1,r,a,o),0),c.set(await n(2,r,a,o),16),{key:await crypto.subtle.importKey(`raw`,c,{name:`AES-GCM`,length:256},!1,[...r.usages]),iv:e.o(a.subarray(12))}}async function i(e,t,n){let i=await r(t,e.iv);return await crypto.subtle.encrypt({name:`AES-GCM`,iv:i.iv,tagLength:128,additionalData:e.additionalData??new Uint8Array},i.key,n)}async function a(e,t,n){let i=await r(t,e.iv);return await crypto.subtle.decrypt({name:`AES-GCM`,iv:i.iv,tagLength:128,additionalData:e.additionalData??new Uint8Array},i.key,n)}async function o(e){return await crypto.subtle.generateKey({name:`AES-CBC`,length:256},e,[`encrypt`,`decrypt`])}async function s(e,t,n){return await crypto.subtle.importKey(e,t,{name:`AES-CBC`,length:256},n,[`encrypt`,`decrypt`])}async function c(e,t){return await crypto.subtle.exportKey(e,t)}exports.decryptXAES=a,exports.encryptXAES=i,exports.exportKeyXAES=c,exports.generateKeyXAES=o,exports.importKeyXAES=s;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_bin = require('../../bin-Ddaz2lxM.cjs');
3
+
4
+ //#region src/common/crypto/xaes.ts
5
+ /**
6
+ * Implementation of XAES-256-GCM as defined in https://c2sp.org/XAES-256-GCM
7
+ * based on the Web Cryptography API (https://www.w3.org/TR/WebCryptoAPI/).
8
+ *
9
+ * It uses a 256-bit AES-CBC CryptoKey and a 192-bit nonce to derive
10
+ * a 256-bit key and a 96-bit nonce for AES-GCM.
11
+ *
12
+ * Due to the use of the standard CryptoKey and Web Cryptography API operations,
13
+ * this implementation is fully compatible with other parts of the Web Cryptography API.
14
+ * For example, keys can be stored in IndexedDB and be non-extractable. The only
15
+ * additional requirement is that the key must have 'encrypt' usage even for decryption,
16
+ * however, there's no real distinction between encryption and decryption operations
17
+ * for AES-GCM anyway (you can simulate decryption by encrypting the ciphertext).
18
+ */
19
+ /**
20
+ * Generates an AES block using the given key and data xored with the given xor.
21
+ */
22
+ async function aesBlock(key, data, xor) {
23
+ const block = await crypto.subtle.encrypt({
24
+ name: "AES-CBC",
25
+ iv: xor
26
+ }, key, data);
27
+ return new Uint8Array(block, 0, 16);
28
+ }
29
+ /**
30
+ * Derives a half key.
31
+ */
32
+ async function halfKey(index, key, iv, k1) {
33
+ const m = new Uint8Array(16);
34
+ m[1] = index;
35
+ m[2] = 88;
36
+ m.set(require_bin.ensureUint8Array(iv.subarray(0, 12)), 4);
37
+ return await aesBlock(key, m, require_bin.ensureUint8Array(k1));
38
+ }
39
+ /**
40
+ * Derives a 256-bit key and 96-bit nonce from the given 256-bit key and a 192-bit nonce.
41
+ */
42
+ async function deriveKeyNonce(key, iv) {
43
+ if (key.algorithm.name !== "AES-CBC") throw new Error("key must be for AES-CBC");
44
+ if (!key.usages.includes("encrypt")) throw new Error("key must have 'encrypt' usage");
45
+ if (key.algorithm.length !== 256) throw new Error("key must be 256 bits");
46
+ if (iv == null || iv.byteLength !== 24) throw new Error("iv must be 24 bytes");
47
+ const ivBytes = ArrayBuffer.isView(iv) ? new Uint8Array(iv.buffer, iv.byteOffset, iv.byteLength) : new Uint8Array(iv);
48
+ const k1 = await aesBlock(key, new Uint8Array(16), new Uint8Array(16));
49
+ let msb = 0;
50
+ for (let i = k1.length - 1; i >= 0; i--) [msb, k1[i]] = [k1[i] >>> 7 & 255, (k1[i] << 1 | msb) & 255];
51
+ k1[k1.length - 1] ^= msb * 135 & 255;
52
+ const kxBytes = new Uint8Array(32);
53
+ kxBytes.set(await halfKey(1, key, ivBytes, k1), 0);
54
+ kxBytes.set(await halfKey(2, key, ivBytes, k1), 16);
55
+ return {
56
+ key: await crypto.subtle.importKey("raw", kxBytes, {
57
+ name: "AES-GCM",
58
+ length: 256
59
+ }, false, [...key.usages]),
60
+ iv: require_bin.ensureUint8Array(ivBytes.subarray(12))
61
+ };
62
+ }
63
+ /**
64
+ * Encrypts data using XAES-256-GCM with the given key and iv.
65
+ * Key must be a 256-bit AES-CBC CryptoKey with 'encrypt' usage.
66
+ */
67
+ async function encryptXAES(params, key, data) {
68
+ const derived = await deriveKeyNonce(key, params.iv);
69
+ return await crypto.subtle.encrypt({
70
+ name: "AES-GCM",
71
+ iv: derived.iv,
72
+ tagLength: 128,
73
+ additionalData: params.additionalData ?? new Uint8Array()
74
+ }, derived.key, data);
75
+ }
76
+ /**
77
+ * Decrypts data using XAES-256-GCM with the given key and iv.
78
+ * Key must be a 256-bit AES-CBC CryptoKey with 'encrypt' and 'decrypt' usages.
79
+ */
80
+ async function decryptXAES(params, key, data) {
81
+ const derived = await deriveKeyNonce(key, params.iv);
82
+ return await crypto.subtle.decrypt({
83
+ name: "AES-GCM",
84
+ iv: derived.iv,
85
+ tagLength: 128,
86
+ additionalData: params.additionalData ?? new Uint8Array()
87
+ }, derived.key, data);
88
+ }
89
+ /**
90
+ * Generate a random key suitable for XAES-256-GCM.
91
+ * The actual key is an AES-CBC CryptoKey with 256-bit length.
92
+ *
93
+ * This function is not necessary, as you can use crypto.subtle.generateKey with AES-CBC directly.
94
+ */
95
+ async function generateKeyXAES(extractable) {
96
+ return await crypto.subtle.generateKey({
97
+ name: "AES-CBC",
98
+ length: 256
99
+ }, extractable, ["encrypt", "decrypt"]);
100
+ }
101
+ /**
102
+ * Import a key suitable for XAES-256-GCM.
103
+ * The actual key must be an AES-CBC CryptoKey with 256-bit length.
104
+ *
105
+ * This function is not necessary, as you can use crypto.subtle.importKey with AES-CBC directly.
106
+ */
107
+ async function importKeyXAES(format, keyData, extractable) {
108
+ return await crypto.subtle.importKey(format, keyData, {
109
+ name: "AES-CBC",
110
+ length: 256
111
+ }, extractable, ["encrypt", "decrypt"]);
112
+ }
113
+ /**
114
+ * Export a key.
115
+ * The resulting export will have AES-CBC algorithm specified.
116
+ *
117
+ * This function is not necessary, as you can use crypto.subtle.exportKey directly.
118
+ */
119
+ async function exportKeyXAES(format, key) {
120
+ return await crypto.subtle.exportKey(format, key);
121
+ }
122
+
123
+ //#endregion
124
+ exports.decryptXAES = decryptXAES;
125
+ exports.encryptXAES = encryptXAES;
126
+ exports.exportKeyXAES = exportKeyXAES;
127
+ exports.generateKeyXAES = generateKeyXAES;
128
+ exports.importKeyXAES = importKeyXAES;
2
129
  //# sourceMappingURL=xaes.cjs.map