@tstdl/base 0.86.0-beta2 → 0.86.0-beta3

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 (872) hide show
  1. package/.eslintrc.json +1 -0
  2. package/__container/decorators.d.ts +2 -0
  3. package/__container/decorators.js +34 -0
  4. package/__container/index.d.ts +3 -0
  5. package/__container/index.js +20 -0
  6. package/__container/interfaces.d.ts +2 -0
  7. package/__container/interfaces.js +25 -0
  8. package/__container/token.d.ts +2 -0
  9. package/__container/token.js +26 -0
  10. package/_container/container.js +443 -0
  11. package/_container/decorators.js +110 -0
  12. package/_container/index.js +27 -0
  13. package/_container/interfaces.js +26 -0
  14. package/_container/provider.js +60 -0
  15. package/_container/resolve-chain.js +105 -0
  16. package/_container/resolve.error.js +36 -0
  17. package/_container/token.js +41 -0
  18. package/_container/type-info.js +16 -0
  19. package/_container/types.js +16 -0
  20. package/_container/utils.js +44 -0
  21. package/api/client/client.d.ts +2 -2
  22. package/api/client/client.js +127 -109
  23. package/api/client/index.js +18 -1
  24. package/api/default-error-handlers.js +44 -18
  25. package/api/index.js +20 -14
  26. package/api/response.js +123 -99
  27. package/api/server/api-controller.d.ts +2 -2
  28. package/api/server/api-controller.js +71 -42
  29. package/api/server/api-request-token.provider.js +40 -12
  30. package/api/server/error-handler.js +46 -25
  31. package/api/server/gateway.d.ts +5 -6
  32. package/api/server/gateway.js +226 -207
  33. package/api/server/index.js +22 -5
  34. package/api/server/middlewares/allowed-methods.middleware.js +40 -17
  35. package/api/server/middlewares/catch-error.middleware.js +33 -12
  36. package/api/server/middlewares/cors.middleware.js +69 -49
  37. package/api/server/middlewares/index.js +21 -4
  38. package/api/server/middlewares/response-time.middleware.js +31 -8
  39. package/api/server/module.js +42 -18
  40. package/api/server/tokens.d.ts +4 -1
  41. package/api/server/tokens.js +31 -2
  42. package/api/types.js +40 -14
  43. package/api/utils.js +36 -13
  44. package/application/application.d.ts +7 -8
  45. package/application/application.js +163 -155
  46. package/application/index.js +18 -1
  47. package/async-iterator-symbol.js +28 -5
  48. package/authentication/authentication.api.js +113 -89
  49. package/authentication/client/api.client.js +57 -28
  50. package/authentication/client/authentication.service.d.ts +4 -4
  51. package/authentication/client/authentication.service.js +249 -223
  52. package/authentication/client/http-client.middleware.d.ts +3 -5
  53. package/authentication/client/http-client.middleware.js +35 -21
  54. package/authentication/client/index.js +22 -5
  55. package/authentication/client/module.d.ts +2 -1
  56. package/authentication/client/module.js +46 -15
  57. package/authentication/client/tokens.d.ts +2 -2
  58. package/authentication/client/tokens.js +30 -5
  59. package/authentication/errors/index.js +18 -1
  60. package/authentication/errors/secret-requirements.error.js +29 -6
  61. package/authentication/index.js +19 -2
  62. package/authentication/models/authentication-credentials.model.js +66 -37
  63. package/authentication/models/authentication-session.model.js +80 -51
  64. package/authentication/models/index.js +23 -6
  65. package/authentication/models/init-secret-reset-data.model.js +44 -16
  66. package/authentication/models/secret-check-result.model.js +36 -9
  67. package/authentication/models/token-payload-base.model.js +59 -31
  68. package/authentication/models/token.model.js +16 -1
  69. package/authentication/server/authentication-api-request-token.provider.js +52 -24
  70. package/authentication/server/authentication-credentials.repository.js +24 -1
  71. package/authentication/server/authentication-secret-requirements.validator.d.ts +11 -2
  72. package/authentication/server/authentication-secret-requirements.validator.js +58 -23
  73. package/authentication/server/authentication-secret-reset.handler.js +24 -1
  74. package/authentication/server/authentication-session.repository.js +24 -1
  75. package/authentication/server/authentication-subject.resolver.js +24 -5
  76. package/authentication/server/authentication-token-payload.provider.js +29 -5
  77. package/authentication/server/authentication.api-controller.js +114 -88
  78. package/authentication/server/authentication.service.d.ts +10 -3
  79. package/authentication/server/authentication.service.js +308 -264
  80. package/authentication/server/helper.js +87 -66
  81. package/authentication/server/index.js +28 -11
  82. package/authentication/server/module.d.ts +2 -1
  83. package/authentication/server/module.js +48 -25
  84. package/authentication/server/mongo/index.js +19 -2
  85. package/authentication/server/mongo/mongo-authentication-credentials.repository.d.ts +3 -3
  86. package/authentication/server/mongo/mongo-authentication-credentials.repository.js +84 -52
  87. package/authentication/server/mongo/mongo-authentication-session.repository.d.ts +3 -3
  88. package/authentication/server/mongo/mongo-authentication-session.repository.js +81 -49
  89. package/browser/browser-context-controller.d.ts +4 -4
  90. package/browser/browser-context-controller.js +106 -72
  91. package/browser/browser-controller.d.ts +12 -5
  92. package/browser/browser-controller.js +115 -74
  93. package/browser/browser.service.d.ts +12 -6
  94. package/browser/browser.service.js +117 -83
  95. package/browser/document-controller.js +81 -48
  96. package/browser/element-controller.d.ts +24 -0
  97. package/browser/element-controller.js +217 -139
  98. package/browser/frame-controller.js +50 -27
  99. package/browser/index.js +27 -10
  100. package/browser/locator-controller.js +59 -36
  101. package/browser/module.js +47 -23
  102. package/browser/page-controller.js +108 -89
  103. package/browser/pdf-options.js +103 -73
  104. package/browser/types.js +16 -1
  105. package/browser/utils.d.ts +2 -0
  106. package/browser/utils.js +116 -77
  107. package/collections/awaitable/awaitable-list.js +122 -99
  108. package/collections/awaitable/awaitable-map.js +116 -93
  109. package/collections/awaitable/awaitable-set.js +86 -63
  110. package/collections/awaitable/index.js +20 -3
  111. package/collections/collection.js +16 -1
  112. package/collections/index.js +23 -6
  113. package/collections/keyed-set.js +77 -53
  114. package/collections/list.js +16 -1
  115. package/collections/observable/index.js +25 -8
  116. package/collections/observable/observable-array.js +118 -95
  117. package/collections/observable/observable-collection-base.js +83 -60
  118. package/collections/observable/observable-collection.js +16 -1
  119. package/collections/observable/observable-list-base.js +78 -55
  120. package/collections/observable/observable-list.js +16 -1
  121. package/collections/observable/observable-map.js +79 -56
  122. package/collections/observable/observable-set.js +98 -75
  123. package/collections/observable/observable-sorted-array-list.js +188 -165
  124. package/collections/sorted-array-list.js +179 -156
  125. package/collections/sorted-list.js +16 -1
  126. package/collections/sorted-map.js +93 -70
  127. package/cookie/cookie.js +71 -49
  128. package/cookie/index.js +18 -1
  129. package/core.d.ts +4 -2
  130. package/core.js +82 -46
  131. package/data-structures/array-dictionary.js +110 -89
  132. package/data-structures/array-list.d.ts +1 -1
  133. package/data-structures/array-list.js +128 -105
  134. package/data-structures/cache.js +64 -41
  135. package/data-structures/circular-buffer.js +219 -195
  136. package/data-structures/collection.js +109 -86
  137. package/data-structures/dictionary.js +75 -51
  138. package/data-structures/distinct-collection.d.ts +24 -0
  139. package/data-structures/distinct-collection.js +77 -0
  140. package/data-structures/index-out-of-bounds.error.js +31 -8
  141. package/data-structures/index.d.ts +2 -1
  142. package/data-structures/index.js +33 -15
  143. package/data-structures/iterable-weak-map.js +149 -129
  144. package/data-structures/linked-list.js +385 -367
  145. package/data-structures/list.js +109 -78
  146. package/data-structures/map-dictionary.js +78 -55
  147. package/data-structures/multi-key-map.d.ts +1 -1
  148. package/data-structures/multi-key-map.js +163 -138
  149. package/data-structures/multi-key-set.d.ts +19 -0
  150. package/data-structures/multi-key-set.js +81 -0
  151. package/data-structures/{set.d.ts → set-collection.d.ts} +3 -3
  152. package/data-structures/set-collection.js +79 -0
  153. package/data-structures/sorted-array-list.d.ts +1 -1
  154. package/data-structures/sorted-array-list.js +166 -142
  155. package/data-structures/weak-ref-map.js +146 -123
  156. package/database/entity-repository.js +26 -2
  157. package/database/entity.js +16 -1
  158. package/database/id.js +29 -8
  159. package/database/index.js +23 -6
  160. package/database/module.js +33 -9
  161. package/database/mongo/classes.d.ts +5 -5
  162. package/database/mongo/classes.js +43 -13
  163. package/database/mongo/index.js +27 -10
  164. package/database/mongo/model/document.js +93 -62
  165. package/database/mongo/model/index.js +18 -1
  166. package/database/mongo/module.js +79 -51
  167. package/database/mongo/mongo-base.repository.js +283 -259
  168. package/database/mongo/mongo-bulk.js +110 -87
  169. package/database/mongo/mongo-entity-repository.d.ts +5 -5
  170. package/database/mongo/mongo-entity-repository.js +296 -270
  171. package/database/mongo/operations.js +76 -48
  172. package/database/mongo/query-converter.js +96 -73
  173. package/database/mongo/simple-entity-repository.js +28 -5
  174. package/database/mongo/types.js +25 -2
  175. package/database/query.js +36 -7
  176. package/database/utils.js +25 -2
  177. package/decorators/index.d.ts +1 -0
  178. package/decorators/index.js +18 -0
  179. package/decorators/log.d.ts +2 -0
  180. package/decorators/log.js +56 -0
  181. package/disposable/async-disposer.d.ts +4 -4
  182. package/disposable/async-disposer.js +105 -93
  183. package/disposable/disposable.js +33 -7
  184. package/disposable/index.js +20 -3
  185. package/disposable/using.js +37 -15
  186. package/distributed-loop/controller.js +16 -1
  187. package/distributed-loop/distributed-loop.d.ts +3 -3
  188. package/distributed-loop/distributed-loop.js +105 -78
  189. package/distributed-loop/index.js +20 -3
  190. package/distributed-loop/provider.js +48 -20
  191. package/enumerable/async-enumerable.js +261 -238
  192. package/enumerable/enumerable-methods.js +16 -1
  193. package/enumerable/enumerable.js +200 -177
  194. package/enumerable/index.js +19 -2
  195. package/environment.js +57 -25
  196. package/error/api.error.js +33 -10
  197. package/error/assertion.error.js +29 -6
  198. package/error/bad-request.error.js +29 -6
  199. package/error/custom.error.js +47 -25
  200. package/error/details.error.js +31 -8
  201. package/error/forbidden.error.js +29 -6
  202. package/error/index.js +33 -16
  203. package/error/invalid-token.error.js +29 -6
  204. package/error/max-bytes-exceeded.error.js +32 -9
  205. package/error/method-not-allowed.error.js +29 -6
  206. package/error/multi.error.js +31 -8
  207. package/error/not-found.error.js +29 -6
  208. package/error/not-implemented.error.js +29 -6
  209. package/error/not-supported.error.js +34 -11
  210. package/error/timeout.error.js +29 -6
  211. package/error/unauthorized.error.js +29 -6
  212. package/error/unsupported-media-type.error.js +29 -6
  213. package/examples/api/authentication.js +49 -42
  214. package/examples/api/basic-overview.js +85 -81
  215. package/examples/api/custom-authentication.js +69 -61
  216. package/examples/api/streaming.js +95 -90
  217. package/examples/browser/basic.js +21 -20
  218. package/examples/http/client.js +16 -13
  219. package/examples/mail/basic.js +42 -36
  220. package/examples/mail/templates/hello-name.js +33 -10
  221. package/examples/pdf/basic.js +49 -44
  222. package/examples/pdf/templates/hello-name.js +58 -35
  223. package/examples/reflection/basic.js +84 -52
  224. package/examples/template/basic.js +33 -30
  225. package/examples/template/templates/hello-jsx.js +32 -8
  226. package/examples/template/templates/hello-name.js +41 -18
  227. package/function/index.d.ts +1 -0
  228. package/function/index.js +18 -0
  229. package/function/log.d.ts +6 -0
  230. package/function/log.js +37 -0
  231. package/global-this.js +36 -17
  232. package/http/client/adapters/undici-http-client.adapter.js +111 -90
  233. package/http/client/http-client-options.d.ts +0 -5
  234. package/http/client/http-client-options.js +33 -14
  235. package/http/client/http-client-request.js +171 -149
  236. package/http/client/http-client-response.js +56 -33
  237. package/http/client/http-client.adapter.js +24 -1
  238. package/http/client/http-client.d.ts +5 -8
  239. package/http/client/http-client.js +325 -301
  240. package/http/client/index.js +23 -6
  241. package/http/client/middleware.d.ts +6 -0
  242. package/http/client/middleware.js +16 -0
  243. package/http/client/module.d.ts +6 -1
  244. package/http/client/module.js +42 -14
  245. package/http/client/tokens.d.ts +2 -0
  246. package/http/client/tokens.js +25 -0
  247. package/http/cookie-parser.js +42 -19
  248. package/http/http-body.js +75 -52
  249. package/http/http-form.js +37 -14
  250. package/http/http-headers.js +109 -86
  251. package/http/http-query.js +37 -14
  252. package/http/http-url-parameters.js +31 -8
  253. package/http/http-value-map.js +133 -110
  254. package/http/http.error.js +82 -60
  255. package/http/index.js +28 -11
  256. package/http/server/http-server-request.js +47 -24
  257. package/http/server/http-server-response.js +45 -22
  258. package/http/server/http-server.js +25 -2
  259. package/http/server/index.js +20 -3
  260. package/http/server/node/index.js +19 -2
  261. package/http/server/node/module.js +28 -8
  262. package/http/server/node/node-http-server.d.ts +1 -4
  263. package/http/server/node/node-http-server.js +230 -208
  264. package/http/types.js +47 -21
  265. package/http/utils.js +108 -92
  266. package/image-service/image-service.js +91 -59
  267. package/image-service/imgproxy/imgproxy-image-service.d.ts +6 -8
  268. package/image-service/imgproxy/imgproxy-image-service.js +125 -86
  269. package/image-service/imgproxy/index.js +18 -1
  270. package/image-service/index.js +18 -1
  271. package/import.js +25 -2
  272. package/index.js +18 -1
  273. package/injector/decorators.d.ts +81 -0
  274. package/injector/decorators.js +126 -0
  275. package/{container/index.js → injector/index.d.ts} +3 -2
  276. package/injector/index.js +28 -0
  277. package/injector/inject.d.ts +85 -0
  278. package/injector/inject.js +106 -0
  279. package/injector/injector.d.ts +91 -0
  280. package/injector/injector.js +497 -0
  281. package/injector/interfaces.d.ts +16 -0
  282. package/injector/interfaces.js +26 -0
  283. package/injector/provider.d.ts +49 -0
  284. package/injector/provider.js +64 -0
  285. package/injector/resolve-chain.d.ts +31 -0
  286. package/injector/resolve-chain.js +113 -0
  287. package/injector/resolve.error.d.ts +5 -0
  288. package/injector/resolve.error.js +36 -0
  289. package/injector/symbols.d.ts +2 -0
  290. package/injector/symbols.js +26 -0
  291. package/injector/token.d.ts +25 -0
  292. package/injector/token.js +41 -0
  293. package/injector/type-info.d.ts +20 -0
  294. package/injector/type-info.js +16 -0
  295. package/injector/types.d.ts +49 -0
  296. package/injector/types.js +16 -0
  297. package/interfaces.js +16 -1
  298. package/json-path/index.js +18 -1
  299. package/json-path/json-path.js +138 -138
  300. package/key-value-store/index.js +19 -2
  301. package/key-value-store/key-value-store.provider.js +24 -1
  302. package/key-value-store/key-value.store.d.ts +3 -3
  303. package/key-value-store/key-value.store.js +29 -6
  304. package/key-value-store/mongo/index.js +23 -6
  305. package/key-value-store/mongo/module.js +35 -17
  306. package/key-value-store/mongo/mongo-key-value-store.provider.js +48 -20
  307. package/key-value-store/mongo/mongo-key-value.model.js +16 -1
  308. package/key-value-store/mongo/mongo-key-value.repository.d.ts +3 -3
  309. package/key-value-store/mongo/mongo-key-value.repository.js +52 -22
  310. package/key-value-store/mongo/mongo-key-value.store.js +89 -59
  311. package/key-value-store/mongo/tokens.d.ts +1 -1
  312. package/key-value-store/mongo/tokens.js +25 -2
  313. package/lock/index.js +19 -2
  314. package/lock/lock.d.ts +3 -2
  315. package/lock/lock.js +29 -5
  316. package/lock/mongo/index.js +22 -5
  317. package/lock/mongo/lock.js +135 -111
  318. package/lock/mongo/model.js +16 -1
  319. package/lock/mongo/module.js +37 -18
  320. package/lock/mongo/mongo-lock-repository.d.ts +3 -3
  321. package/lock/mongo/mongo-lock-repository.js +85 -56
  322. package/lock/mongo/provider.js +68 -38
  323. package/lock/provider.d.ts +3 -2
  324. package/lock/provider.js +25 -1
  325. package/lock/web/index.js +20 -3
  326. package/lock/web/module.js +31 -11
  327. package/lock/web/web-lock.js +105 -80
  328. package/lock/web/web-lock.provider.js +57 -27
  329. package/logger/console/index.js +18 -1
  330. package/logger/console/logger.js +80 -53
  331. package/logger/index.js +19 -2
  332. package/logger/level.js +31 -8
  333. package/logger/logger.d.ts +3 -2
  334. package/logger/logger.js +61 -37
  335. package/logger/noop/index.js +18 -1
  336. package/logger/noop/logger.js +42 -20
  337. package/mail/clients/nodemailer.mail-client.js +91 -62
  338. package/mail/index.js +22 -5
  339. package/mail/mail-log.repository.js +25 -2
  340. package/mail/mail.client.d.ts +3 -2
  341. package/mail/mail.client.js +63 -34
  342. package/mail/mail.service.js +106 -73
  343. package/mail/models/index.js +23 -6
  344. package/mail/models/mail-address.model.js +16 -1
  345. package/mail/models/mail-content.model.js +16 -1
  346. package/mail/models/mail-data.model.js +16 -1
  347. package/mail/models/mail-log.model.js +16 -1
  348. package/mail/models/mail-send-result.model.js +16 -1
  349. package/mail/models/mail-template.model.js +28 -5
  350. package/mail/module.js +41 -21
  351. package/mail/repositories/mongo-mail-log.repository.d.ts +3 -3
  352. package/mail/repositories/mongo-mail-log.repository.js +56 -24
  353. package/mail/tokens.d.ts +1 -1
  354. package/mail/tokens.js +25 -2
  355. package/memory/finalization.js +60 -36
  356. package/memory/index.js +19 -2
  357. package/memory/observable-finalization-registry.js +32 -9
  358. package/message-bus/broadcast-channel/broadcast-channel-message-bus-provider.js +53 -23
  359. package/message-bus/broadcast-channel/broadcast-channel-message-bus.d.ts +1 -1
  360. package/message-bus/broadcast-channel/broadcast-channel-message-bus.js +74 -46
  361. package/message-bus/broadcast-channel/index.js +20 -3
  362. package/message-bus/broadcast-channel/module.js +31 -11
  363. package/message-bus/index.js +20 -3
  364. package/message-bus/local/index.js +20 -3
  365. package/message-bus/local/local-message-bus-provider.js +65 -35
  366. package/message-bus/local/local-message-bus.d.ts +1 -1
  367. package/message-bus/local/local-message-bus.js +66 -38
  368. package/message-bus/local/module.js +31 -11
  369. package/message-bus/local/types.js +16 -1
  370. package/message-bus/message-bus-base.js +63 -41
  371. package/message-bus/message-bus-provider.js +24 -1
  372. package/message-bus/message-bus.d.ts +3 -3
  373. package/message-bus/message-bus.js +29 -5
  374. package/migration/index.d.ts +1 -1
  375. package/migration/index.js +20 -3
  376. package/migration/migration-state-repository.js +25 -2
  377. package/migration/migration-state.js +16 -1
  378. package/migration/migrator.js +108 -80
  379. package/migration/mongo/index.js +19 -2
  380. package/migration/mongo/migration-state-repository.d.ts +3 -3
  381. package/migration/mongo/migration-state-repository.js +53 -23
  382. package/migration/mongo/module.js +34 -15
  383. package/module/index.js +21 -4
  384. package/module/module-base.js +60 -37
  385. package/module/module-metric-reporter.js +77 -58
  386. package/module/module.js +34 -10
  387. package/module/modules/function.module.js +34 -11
  388. package/module/modules/index.js +19 -2
  389. package/module/modules/web-server.module.d.ts +5 -10
  390. package/module/modules/web-server.module.js +83 -67
  391. package/module/utils.js +43 -19
  392. package/notification/api.js +50 -21
  393. package/notification/models/index.js +19 -2
  394. package/notification/models/notification-channel-job.model.js +16 -1
  395. package/notification/models/notification.model.js +103 -74
  396. package/notification/module.js +28 -8
  397. package/notification/notification-channel.service.js +24 -1
  398. package/notification/notification.repository.js +24 -1
  399. package/notification/notification.service.js +58 -30
  400. package/object-storage/index.js +20 -3
  401. package/object-storage/object-storage-provider.js +24 -1
  402. package/object-storage/object-storage.d.ts +3 -3
  403. package/object-storage/object-storage.js +30 -6
  404. package/object-storage/object.js +30 -7
  405. package/object-storage/s3/index.js +20 -3
  406. package/object-storage/s3/s3.object-storage-provider.js +109 -82
  407. package/object-storage/s3/s3.object-storage.d.ts +2 -2
  408. package/object-storage/s3/s3.object-storage.js +157 -130
  409. package/object-storage/s3/s3.object.js +62 -39
  410. package/openid-connect/cached-oidc-configuration.service.js +65 -35
  411. package/openid-connect/index.d.ts +1 -1
  412. package/openid-connect/index.js +28 -11
  413. package/openid-connect/mongo-oidc-state.repository.d.ts +3 -3
  414. package/openid-connect/mongo-oidc-state.repository.js +65 -38
  415. package/openid-connect/oidc-configuration.service.js +66 -38
  416. package/openid-connect/oidc-state.model.js +16 -1
  417. package/openid-connect/oidc-state.repository.js +25 -2
  418. package/openid-connect/oidc.service-model.js +16 -1
  419. package/openid-connect/oidc.service.js +187 -157
  420. package/package.json +18 -18
  421. package/password/have-i-been-pwned.js +39 -21
  422. package/password/index.js +21 -4
  423. package/password/password-check-result.model.js +63 -34
  424. package/password/password-check.js +76 -46
  425. package/password/password-check.localization.js +111 -86
  426. package/pdf/index.js +18 -1
  427. package/pdf/pdf.service.d.ts +3 -3
  428. package/pdf/pdf.service.js +206 -171
  429. package/pool/index.js +18 -1
  430. package/pool/pool.js +133 -116
  431. package/process-shutdown.d.ts +2 -2
  432. package/process-shutdown.js +75 -54
  433. package/promise/cancelable-promise.js +41 -23
  434. package/promise/deferred-promise.js +92 -68
  435. package/promise/index.js +20 -3
  436. package/promise/lazy-promise.js +47 -24
  437. package/queue/enqueue-batch.js +41 -18
  438. package/queue/index.js +20 -3
  439. package/queue/mongo/index.js +21 -4
  440. package/queue/mongo/job.js +16 -1
  441. package/queue/mongo/mongo-job.repository.d.ts +3 -3
  442. package/queue/mongo/mongo-job.repository.js +70 -44
  443. package/queue/mongo/queue.js +265 -242
  444. package/queue/mongo/queue.provider.d.ts +3 -3
  445. package/queue/mongo/queue.provider.js +72 -44
  446. package/queue/provider.js +24 -1
  447. package/queue/queue.d.ts +3 -3
  448. package/queue/queue.js +41 -15
  449. package/random/index.js +19 -2
  450. package/random/number-generator/index.js +20 -3
  451. package/random/number-generator/mulberry32.js +51 -34
  452. package/random/number-generator/random-number-generator-function.js +24 -1
  453. package/random/number-generator/random-number-generator.js +31 -8
  454. package/random/number-generator/seeded-random-number-generator.js +28 -5
  455. package/random/number-generator/sfc32.js +64 -41
  456. package/random/number-generator/utils.js +25 -2
  457. package/random/series.js +43 -41
  458. package/reflection/decorator-data.js +80 -63
  459. package/reflection/decorators.js +69 -39
  460. package/reflection/index.js +22 -5
  461. package/reflection/reflection-data-map.js +55 -32
  462. package/reflection/registry.d.ts +0 -1
  463. package/reflection/registry.js +130 -111
  464. package/reflection/types.js +16 -1
  465. package/reflection/utils.js +124 -96
  466. package/require.js +26 -3
  467. package/rpc/endpoints/message-port.rpc-endpoint.js +48 -29
  468. package/rpc/index.js +21 -4
  469. package/rpc/model.js +30 -7
  470. package/rpc/rpc-endpoint.js +40 -17
  471. package/rpc/rpc-error.js +40 -17
  472. package/rpc/rpc.js +235 -223
  473. package/rxjs/cast.js +28 -4
  474. package/rxjs/index.d.ts +1 -0
  475. package/rxjs/index.js +30 -12
  476. package/rxjs/intersection-observer.js +48 -25
  477. package/rxjs/media-query.js +27 -8
  478. package/rxjs/mutation-observer.js +50 -28
  479. package/rxjs/noop.js +28 -4
  480. package/rxjs/performance-observer.js +60 -37
  481. package/rxjs/resize-observer.js +50 -28
  482. package/rxjs/retry-backoff.js +47 -23
  483. package/rxjs/slow-array.js +36 -22
  484. package/rxjs/start-with-provider.d.ts +2 -0
  485. package/rxjs/start-with-provider.js +29 -0
  486. package/rxjs/teardown.js +44 -21
  487. package/rxjs/timing.js +57 -26
  488. package/rxjs/touch.js +30 -11
  489. package/schema/array-constraints/index.js +19 -2
  490. package/schema/array-constraints/maximum-length.js +42 -19
  491. package/schema/array-constraints/minimum-length.js +42 -19
  492. package/schema/coercers/boolean.coercer.js +49 -25
  493. package/schema/coercers/date.coercer.js +38 -14
  494. package/schema/coercers/index.js +23 -6
  495. package/schema/coercers/number.coercer.js +36 -12
  496. package/schema/coercers/regexp.coercer.js +41 -18
  497. package/schema/coercers/string.coercer.js +36 -12
  498. package/schema/coercers/uint8-array.coercer.js +44 -20
  499. package/schema/constraints/enumeration.js +49 -27
  500. package/schema/constraints/generic.js +41 -21
  501. package/schema/constraints/index.js +29 -12
  502. package/schema/constraints/integer.js +44 -20
  503. package/schema/constraints/length.js +36 -14
  504. package/schema/constraints/literal.js +44 -22
  505. package/schema/constraints/maximum-date.js +46 -23
  506. package/schema/constraints/maximum-length.js +45 -22
  507. package/schema/constraints/maximum.js +44 -21
  508. package/schema/constraints/minimum-date.js +46 -23
  509. package/schema/constraints/minimum-length.js +45 -22
  510. package/schema/constraints/minimum.js +44 -21
  511. package/schema/constraints/pattern.js +46 -23
  512. package/schema/decorators/class.js +26 -4
  513. package/schema/decorators/coerce.js +26 -4
  514. package/schema/decorators/constraint.js +28 -6
  515. package/schema/decorators/index.js +23 -6
  516. package/schema/decorators/property.js +38 -16
  517. package/schema/decorators/types.js +16 -1
  518. package/schema/decorators/utils.js +73 -45
  519. package/schema/index.js +27 -10
  520. package/schema/schema.error.js +72 -59
  521. package/schema/schema.js +274 -256
  522. package/schema/schemas/any.js +30 -7
  523. package/schema/schemas/array.js +44 -21
  524. package/schema/schemas/assign.js +46 -23
  525. package/schema/schemas/boolean.js +30 -7
  526. package/schema/schemas/constraint.js +29 -6
  527. package/schema/schemas/date.js +43 -20
  528. package/schema/schemas/defaulted.js +31 -8
  529. package/schema/schemas/enumeration.js +38 -15
  530. package/schema/schemas/index.js +43 -26
  531. package/schema/schemas/instance.js +26 -4
  532. package/schema/schemas/literal.js +38 -15
  533. package/schema/schemas/nullable.js +30 -7
  534. package/schema/schemas/number.js +48 -25
  535. package/schema/schemas/object.js +34 -10
  536. package/schema/schemas/omit.js +37 -14
  537. package/schema/schemas/one-or-many.js +35 -13
  538. package/schema/schemas/optional.js +30 -6
  539. package/schema/schemas/partial.js +39 -16
  540. package/schema/schemas/pick.js +37 -14
  541. package/schema/schemas/readable-stream.js +30 -7
  542. package/schema/schemas/record.js +31 -9
  543. package/schema/schemas/regexp.js +30 -7
  544. package/schema/schemas/string.js +59 -36
  545. package/schema/schemas/transform.js +29 -6
  546. package/schema/schemas/uint8-array.js +50 -27
  547. package/schema/schemas/union.js +34 -11
  548. package/schema/schemas/unknown.js +30 -7
  549. package/schema/transformers/generic.js +39 -16
  550. package/schema/transformers/index.js +21 -4
  551. package/schema/transformers/lowercase.js +33 -10
  552. package/schema/transformers/trim.js +33 -10
  553. package/schema/transformers/uppercase.js +33 -10
  554. package/schema/types/index.js +22 -5
  555. package/schema/types/schema-array-constraint.js +24 -1
  556. package/schema/types/schema-value-coercer.js +24 -1
  557. package/schema/types/schema-value-constraint.js +24 -1
  558. package/schema/types/schema-value-transformer.js +24 -1
  559. package/schema/types/types.js +191 -161
  560. package/schema/utils/index.js +19 -2
  561. package/schema/utils/schema.js +142 -120
  562. package/schema/utils/value-type.js +74 -51
  563. package/search-index/elastic/config.d.ts +3 -3
  564. package/search-index/elastic/config.js +50 -19
  565. package/search-index/elastic/index.js +23 -6
  566. package/search-index/elastic/keyword-rewriter.js +40 -17
  567. package/search-index/elastic/model/elastic-query.js +16 -1
  568. package/search-index/elastic/model/index-mapping.js +26 -4
  569. package/search-index/elastic/model/index.js +20 -3
  570. package/search-index/elastic/model/sort.js +16 -1
  571. package/search-index/elastic/module.d.ts +1 -1
  572. package/search-index/elastic/module.js +72 -39
  573. package/search-index/elastic/query-builder/boolean-query-builder.js +69 -46
  574. package/search-index/elastic/query-builder/index.js +18 -1
  575. package/search-index/elastic/query-converter.js +192 -174
  576. package/search-index/elastic/search-index.d.ts +2 -2
  577. package/search-index/elastic/search-index.js +153 -132
  578. package/search-index/elastic/sort-converter.js +34 -12
  579. package/search-index/elastic/types.js +16 -1
  580. package/search-index/error.js +35 -12
  581. package/search-index/index.js +20 -3
  582. package/search-index/memory/index.js +18 -1
  583. package/search-index/memory/memory-search-index.js +152 -130
  584. package/search-index/search-index.js +53 -30
  585. package/search-index/search-result.js +16 -1
  586. package/serializer/handlers/binary.js +47 -19
  587. package/serializer/handlers/date.js +28 -4
  588. package/serializer/handlers/error.js +31 -7
  589. package/serializer/handlers/index.js +24 -7
  590. package/serializer/handlers/map.js +40 -16
  591. package/serializer/handlers/regex.js +31 -7
  592. package/serializer/handlers/register.js +59 -36
  593. package/serializer/handlers/set.js +37 -13
  594. package/serializer/index.js +30 -3
  595. package/serializer/serializable.js +68 -43
  596. package/serializer/serializer.js +264 -244
  597. package/serializer/types.js +34 -6
  598. package/signals/api.d.ts +1 -1
  599. package/signals/api.js +48 -17
  600. package/signals/computed-with-dependencies.js +31 -8
  601. package/signals/effect-with-dependencies.js +31 -8
  602. package/signals/implementation/api.js +33 -33
  603. package/signals/implementation/computed.js +104 -125
  604. package/signals/implementation/configure.js +41 -18
  605. package/signals/implementation/effect.js +66 -48
  606. package/signals/implementation/errors.js +29 -5
  607. package/signals/implementation/graph.js +136 -164
  608. package/signals/implementation/index.js +27 -10
  609. package/signals/implementation/signal.js +101 -91
  610. package/signals/implementation/to-observable.js +38 -21
  611. package/signals/implementation/to-signal.js +60 -44
  612. package/signals/implementation/untracked.js +31 -15
  613. package/signals/implementation/watch.js +73 -58
  614. package/signals/index.d.ts +2 -0
  615. package/signals/index.js +26 -7
  616. package/signals/lazylize.d.ts +2 -0
  617. package/signals/lazylize.js +28 -0
  618. package/signals/pipe.d.ts +1 -1
  619. package/signals/pipe.js +33 -7
  620. package/signals/switch-map.js +27 -4
  621. package/signals/to-signal-2.d.ts +14 -0
  622. package/signals/to-signal-2.js +67 -0
  623. package/signals/types.js +16 -1
  624. package/signals/untracked-operator.js +33 -11
  625. package/sse/index.js +19 -2
  626. package/sse/model.js +16 -1
  627. package/sse/server-sent-events-source.js +76 -54
  628. package/sse/server-sent-events.js +72 -48
  629. package/supports.js +32 -5
  630. package/templates/index.js +26 -9
  631. package/templates/module.d.ts +2 -2
  632. package/templates/module.js +47 -40
  633. package/templates/providers/file.template-provider.d.ts +3 -3
  634. package/templates/providers/file.template-provider.js +82 -39
  635. package/templates/providers/memory.template-provider.js +55 -27
  636. package/templates/renderers/handlebars.template-renderer.js +122 -84
  637. package/templates/renderers/jsx.template-renderer.js +56 -28
  638. package/templates/renderers/mjml.template-renderer.js +82 -42
  639. package/templates/renderers/string.template-renderer.js +52 -24
  640. package/templates/resolvers/file.template-resolver.d.ts +3 -3
  641. package/templates/resolvers/file.template-resolver.js +90 -45
  642. package/templates/resolvers/jsx.template-resolver.js +59 -29
  643. package/templates/resolvers/string.template-resolver.js +59 -29
  644. package/templates/template-renderer.provider.js +66 -36
  645. package/templates/template-resolver.provider.js +66 -36
  646. package/templates/template.model.js +69 -39
  647. package/templates/template.provider.js +24 -1
  648. package/templates/template.renderer.js +34 -11
  649. package/templates/template.resolver.js +24 -1
  650. package/templates/template.service.js +82 -49
  651. package/templates/tokens.d.ts +2 -2
  652. package/templates/tokens.js +27 -3
  653. package/templates/types/jsx.intrinsic-elements.js +16 -1
  654. package/text/dynamic-text.model.js +69 -41
  655. package/text/index.js +20 -3
  656. package/text/localizable-text.model.js +16 -1
  657. package/text/localization.service.js +229 -196
  658. package/theme/adapters/css-adapter.js +46 -23
  659. package/theme/adapters/tailwind-adapter.js +52 -29
  660. package/theme/index.js +18 -1
  661. package/theme/theme-service.d.ts +1 -1
  662. package/theme/theme-service.js +147 -107
  663. package/threading/index.js +19 -2
  664. package/threading/thread-pool.js +70 -48
  665. package/threading/thread-worker.js +26 -3
  666. package/tokens.d.ts +1 -1
  667. package/tokens.js +25 -2
  668. package/types/geo-json.js +16 -1
  669. package/types.js +16 -2
  670. package/utils/alphabet.js +35 -12
  671. package/utils/any-iterable-iterator.js +27 -4
  672. package/utils/array/array-backtracker.js +65 -42
  673. package/utils/array/array.js +79 -76
  674. package/utils/array/index.js +19 -2
  675. package/utils/async-iterable-helpers/all.js +46 -25
  676. package/utils/async-iterable-helpers/any.js +46 -25
  677. package/utils/async-iterable-helpers/assert.js +43 -22
  678. package/utils/async-iterable-helpers/batch.js +46 -26
  679. package/utils/async-iterable-helpers/buffer.js +64 -47
  680. package/utils/async-iterable-helpers/concat.js +27 -5
  681. package/utils/async-iterable-helpers/default-if-empty.js +32 -9
  682. package/utils/async-iterable-helpers/deferred.js +26 -3
  683. package/utils/async-iterable-helpers/difference.js +48 -24
  684. package/utils/async-iterable-helpers/distinct.js +44 -23
  685. package/utils/async-iterable-helpers/drain.js +26 -4
  686. package/utils/async-iterable-helpers/filter.js +44 -23
  687. package/utils/async-iterable-helpers/first-or-default.js +30 -8
  688. package/utils/async-iterable-helpers/first.js +30 -8
  689. package/utils/async-iterable-helpers/for-each.js +38 -18
  690. package/utils/async-iterable-helpers/group-single.js +26 -3
  691. package/utils/async-iterable-helpers/group-to-map.js +41 -20
  692. package/utils/async-iterable-helpers/group-to-single-map.js +44 -23
  693. package/utils/async-iterable-helpers/group.js +26 -3
  694. package/utils/async-iterable-helpers/includes.js +28 -7
  695. package/utils/async-iterable-helpers/index.js +65 -48
  696. package/utils/async-iterable-helpers/interrupt.js +43 -19
  697. package/utils/async-iterable-helpers/is-async-iterable.js +29 -5
  698. package/utils/async-iterable-helpers/last-or-default.js +36 -13
  699. package/utils/async-iterable-helpers/last.js +36 -13
  700. package/utils/async-iterable-helpers/map-many.js +40 -19
  701. package/utils/async-iterable-helpers/map.js +40 -19
  702. package/utils/async-iterable-helpers/materialize.js +42 -21
  703. package/utils/async-iterable-helpers/metadata.js +58 -38
  704. package/utils/async-iterable-helpers/multiplex.js +44 -23
  705. package/utils/async-iterable-helpers/observable-iterable.js +53 -31
  706. package/utils/async-iterable-helpers/pairwise.js +44 -26
  707. package/utils/async-iterable-helpers/parallel/feed.js +45 -24
  708. package/utils/async-iterable-helpers/parallel/filter.js +31 -8
  709. package/utils/async-iterable-helpers/parallel/for-each.js +44 -21
  710. package/utils/async-iterable-helpers/parallel/group.js +32 -9
  711. package/utils/async-iterable-helpers/parallel/index.js +24 -7
  712. package/utils/async-iterable-helpers/parallel/map.js +29 -6
  713. package/utils/async-iterable-helpers/parallel/tap.js +29 -6
  714. package/utils/async-iterable-helpers/parallel/types.js +16 -1
  715. package/utils/async-iterable-helpers/reduce.js +46 -31
  716. package/utils/async-iterable-helpers/retry.js +58 -43
  717. package/utils/async-iterable-helpers/single-or-default.js +40 -17
  718. package/utils/async-iterable-helpers/single.js +42 -19
  719. package/utils/async-iterable-helpers/skip.js +26 -3
  720. package/utils/async-iterable-helpers/sort.js +29 -6
  721. package/utils/async-iterable-helpers/take-until.js +49 -32
  722. package/utils/async-iterable-helpers/take-while.js +46 -29
  723. package/utils/async-iterable-helpers/take.js +33 -10
  724. package/utils/async-iterable-helpers/tap.js +40 -19
  725. package/utils/async-iterable-helpers/throttle.js +30 -9
  726. package/utils/async-iterable-helpers/to-array.js +33 -10
  727. package/utils/async-iterable-helpers/to-async-iterable-iterator.js +59 -40
  728. package/utils/async-iterable-helpers/to-async-iterator.js +54 -32
  729. package/utils/async-iterable-helpers/to-set.js +33 -10
  730. package/utils/async-iterable-helpers/to-sync-iterable.js +27 -6
  731. package/utils/async-iterable-helpers/types.js +16 -1
  732. package/utils/async-iterable-helpers/while.js +46 -25
  733. package/utils/async-iterator-iterable-iterator.js +62 -41
  734. package/utils/backoff.js +109 -109
  735. package/utils/base64.js +140 -153
  736. package/utils/benchmark.js +107 -114
  737. package/utils/binary-search.js +87 -70
  738. package/utils/binary.js +61 -50
  739. package/utils/cancellation-token.js +140 -120
  740. package/utils/clone.js +64 -43
  741. package/utils/comparison.js +98 -76
  742. package/utils/compression.js +118 -107
  743. package/utils/config-parser.js +48 -21
  744. package/utils/crc32.js +42 -20
  745. package/utils/cryptography.js +121 -163
  746. package/utils/date-time.js +138 -102
  747. package/utils/encoding.js +60 -62
  748. package/utils/enum.js +53 -27
  749. package/utils/equals.js +119 -103
  750. package/utils/event-loop.js +39 -19
  751. package/utils/factory-map.js +75 -53
  752. package/utils/feedable-async-iterable.js +70 -47
  753. package/utils/file-reader.js +41 -15
  754. package/utils/format-error.js +57 -36
  755. package/utils/format.js +53 -32
  756. package/utils/function/index.js +19 -2
  757. package/utils/function/memoize.js +53 -38
  758. package/utils/function/throttle.js +48 -26
  759. package/utils/helpers.js +102 -93
  760. package/utils/image.js +88 -62
  761. package/utils/index.js +65 -48
  762. package/utils/iterable-helpers/all.js +31 -8
  763. package/utils/iterable-helpers/any.js +31 -8
  764. package/utils/iterable-helpers/assert.js +30 -7
  765. package/utils/iterable-helpers/batch.js +34 -11
  766. package/utils/iterable-helpers/concat.js +27 -4
  767. package/utils/iterable-helpers/default-if-empty.js +32 -9
  768. package/utils/iterable-helpers/deferred.js +25 -2
  769. package/utils/iterable-helpers/difference.js +45 -21
  770. package/utils/iterable-helpers/distinct.js +32 -9
  771. package/utils/iterable-helpers/drain.js +26 -4
  772. package/utils/iterable-helpers/filter.js +30 -7
  773. package/utils/iterable-helpers/first-or-default.js +30 -8
  774. package/utils/iterable-helpers/first.js +30 -8
  775. package/utils/iterable-helpers/for-each.js +28 -5
  776. package/utils/iterable-helpers/group-single.js +26 -3
  777. package/utils/iterable-helpers/group-to-map.js +32 -9
  778. package/utils/iterable-helpers/group-to-single-map.js +33 -10
  779. package/utils/iterable-helpers/group.js +26 -3
  780. package/utils/iterable-helpers/includes.js +26 -3
  781. package/utils/iterable-helpers/index.js +56 -39
  782. package/utils/iterable-helpers/is-iterable.js +29 -5
  783. package/utils/iterable-helpers/last-or-default.js +36 -13
  784. package/utils/iterable-helpers/last.js +36 -13
  785. package/utils/iterable-helpers/map-many.js +29 -6
  786. package/utils/iterable-helpers/map.js +29 -6
  787. package/utils/iterable-helpers/materialize.js +25 -2
  788. package/utils/iterable-helpers/metadata.js +38 -16
  789. package/utils/iterable-helpers/pairwise.js +33 -11
  790. package/utils/iterable-helpers/range.js +27 -4
  791. package/utils/iterable-helpers/reduce.js +33 -11
  792. package/utils/iterable-helpers/single-or-default.js +37 -14
  793. package/utils/iterable-helpers/single.js +40 -17
  794. package/utils/iterable-helpers/skip.js +29 -6
  795. package/utils/iterable-helpers/sort.js +27 -4
  796. package/utils/iterable-helpers/take-until.js +31 -8
  797. package/utils/iterable-helpers/take-while.js +33 -10
  798. package/utils/iterable-helpers/take.js +33 -10
  799. package/utils/iterable-helpers/tap.js +29 -6
  800. package/utils/iterable-helpers/types.js +16 -1
  801. package/utils/iterable-helpers/while.js +31 -8
  802. package/utils/jwt.js +100 -77
  803. package/utils/map.js +62 -35
  804. package/utils/math.js +64 -102
  805. package/utils/merge.js +45 -26
  806. package/utils/middleware.js +60 -36
  807. package/utils/moving-metric.js +188 -155
  808. package/utils/noop.js +27 -4
  809. package/utils/object/decycle.js +78 -57
  810. package/utils/object/dereference.js +44 -46
  811. package/utils/object/forward-ref.js +73 -57
  812. package/utils/object/index.js +24 -7
  813. package/utils/object/lazy-property.js +96 -81
  814. package/utils/object/merge.js +70 -48
  815. package/utils/object/object.js +136 -106
  816. package/utils/object/property-name.js +72 -69
  817. package/utils/ordered-feedable-async-iterable.js +65 -42
  818. package/utils/patch-worker.js +90 -69
  819. package/utils/patterns.js +29 -7
  820. package/utils/periodic-reporter.js +82 -60
  821. package/utils/periodic-sampler.js +91 -67
  822. package/utils/provider-function-iterable.js +48 -26
  823. package/utils/proxy.js +42 -17
  824. package/utils/random.js +50 -40
  825. package/utils/reflection.js +41 -13
  826. package/utils/repl.js +33 -14
  827. package/utils/set.js +62 -36
  828. package/utils/singleton.js +41 -18
  829. package/utils/sort.js +77 -53
  830. package/utils/stream/finalize-stream.js +62 -43
  831. package/utils/stream/index.js +23 -6
  832. package/utils/stream/readable-stream-adapter.js +57 -35
  833. package/utils/stream/readable-stream-from-promise.js +28 -7
  834. package/utils/stream/size-limited-stream.js +35 -12
  835. package/utils/stream/stream-helper-types.js +16 -1
  836. package/utils/stream/stream-reader.js +52 -30
  837. package/utils/string/hypenate.js +25 -2
  838. package/utils/string/index.js +20 -3
  839. package/utils/string/title-case.js +26 -6
  840. package/utils/string/trim.js +32 -9
  841. package/utils/throw.js +30 -7
  842. package/utils/timer.js +91 -70
  843. package/utils/timing.js +80 -52
  844. package/utils/type-guards.js +1076 -253
  845. package/utils/type-of.js +43 -25
  846. package/utils/units.js +124 -53
  847. package/utils/url-builder.js +68 -47
  848. package/utils/value-or-provider.js +29 -6
  849. package/utils/z-base32.js +63 -42
  850. package/web-types.js +16 -1
  851. package/container/container.js +0 -428
  852. package/container/decorators.js +0 -126
  853. package/container/interfaces.js +0 -2
  854. package/container/provider.js +0 -29
  855. package/container/resolve-chain.js +0 -80
  856. package/container/resolve.error.js +0 -11
  857. package/container/token.js +0 -20
  858. package/container/type-info.js +0 -1
  859. package/container/types.js +0 -1
  860. package/container/utils.js +0 -20
  861. package/data-structures/set.js +0 -56
  862. /package/{container → _container}/container.d.ts +0 -0
  863. /package/{container → _container}/decorators.d.ts +0 -0
  864. /package/{container → _container}/index.d.ts +0 -0
  865. /package/{container → _container}/interfaces.d.ts +0 -0
  866. /package/{container → _container}/provider.d.ts +0 -0
  867. /package/{container → _container}/resolve-chain.d.ts +0 -0
  868. /package/{container → _container}/resolve.error.d.ts +0 -0
  869. /package/{container → _container}/token.d.ts +0 -0
  870. /package/{container → _container}/type-info.d.ts +0 -0
  871. /package/{container → _container}/types.d.ts +0 -0
  872. /package/{container → _container}/utils.d.ts +0 -0
package/utils/crc32.js CHANGED
@@ -1,25 +1,47 @@
1
- /* eslint-disable no-bitwise */
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var crc32_exports = {};
20
+ __export(crc32_exports, {
21
+ crc32b: () => crc32b
22
+ });
23
+ module.exports = __toCommonJS(crc32_exports);
2
24
  let crcTable;
3
- export function crc32b(bytes) {
4
- crcTable ??= generateCrc32Table();
5
- let crc = 0 ^ (-1);
6
- for (let i = 0; i < bytes.length; i++) { // eslint-disable-line @typescript-eslint/prefer-for-of
7
- crc = (crc >>> 8) ^ crcTable[(crc & 0xff) ^ bytes[i]];
8
- }
9
- crc = (crc ^ (-1)) >>> 0;
10
- const buffer = new ArrayBuffer(4);
11
- const dataView = new DataView(buffer);
12
- dataView.setUint32(0, crc, false);
13
- return new Uint8Array(buffer);
25
+ function crc32b(bytes) {
26
+ crcTable ??= generateCrc32Table();
27
+ let crc = 0 ^ -1;
28
+ for (let i = 0; i < bytes.length; i++) {
29
+ crc = crc >>> 8 ^ crcTable[crc & 255 ^ bytes[i]];
30
+ }
31
+ crc = (crc ^ -1) >>> 0;
32
+ const buffer = new ArrayBuffer(4);
33
+ const dataView = new DataView(buffer);
34
+ dataView.setUint32(0, crc, false);
35
+ return new Uint8Array(buffer);
14
36
  }
15
37
  function generateCrc32Table() {
16
- const table = new Uint32Array(256);
17
- for (let i = 0; i < 256; i++) {
18
- let c = i;
19
- for (let k = 0; k < 8; k++) {
20
- c = ((c & 1) ? (0xedb88320 ^ (c >>> 1)) : (c >>> 1));
21
- }
22
- table[i] = c;
38
+ const table = new Uint32Array(256);
39
+ for (let i = 0; i < 256; i++) {
40
+ let c = i;
41
+ for (let k = 0; k < 8; k++) {
42
+ c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;
23
43
  }
24
- return table;
44
+ table[i] = c;
45
+ }
46
+ return table;
25
47
  }
@@ -1,179 +1,137 @@
1
- import { createArray } from './array/array.js';
2
- import { encodeBase64, encodeBase64Url } from './base64.js';
3
- import { decodeText, encodeHex, encodeUtf8 } from './encoding.js';
4
- import { getRandomBytes } from './random.js';
5
- import { isDefined, isString } from './type-guards.js';
6
- import { zBase32Encode } from './z-base32.js';
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var cryptography_exports = {};
20
+ __export(cryptography_exports, {
21
+ decrypt: () => decrypt,
22
+ deriveBytes: () => deriveBytes,
23
+ deriveBytesMultiple: () => deriveBytesMultiple,
24
+ digest: () => digest,
25
+ encrypt: () => encrypt,
26
+ generateEcdsaKey: () => generateEcdsaKey,
27
+ generatePbkdf2Key: () => generatePbkdf2Key,
28
+ importEcdsaKey: () => importEcdsaKey,
29
+ importHmacKey: () => importHmacKey,
30
+ importPbkdf2Key: () => importPbkdf2Key,
31
+ importSymmetricKey: () => importSymmetricKey,
32
+ sign: () => sign,
33
+ verify: () => verify
34
+ });
35
+ module.exports = __toCommonJS(cryptography_exports);
36
+ var import_array = require("./array/array.js");
37
+ var import_base64 = require("./base64.js");
38
+ var import_encoding = require("./encoding.js");
39
+ var import_random = require("./random.js");
40
+ var import_type_guards = require("./type-guards.js");
41
+ var import_z_base32 = require("./z-base32.js");
7
42
  const subtle = globalThis.crypto.subtle;
8
- /**
9
- * encrypt data
10
- * @param algorithm algorithm as supported by Web Crypto API
11
- * @param key key
12
- * @param data data to encrypt. Encodes string to utf8
13
- */
14
- export function encrypt(algorithm, key, data) {
15
- const bytes = isString(data) ? encodeUtf8(data) : data;
16
- const encryptedBuffer = subtle.encrypt(algorithm, key, bytes);
17
- return {
18
- toBuffer: async () => encryptedBuffer,
19
- toHex: async () => encodeHex(await encryptedBuffer),
20
- toBase64: async () => encodeBase64(await encryptedBuffer),
21
- toBase64Url: async () => encodeBase64Url(await encryptedBuffer),
22
- toZBase32: async () => zBase32Encode(await encryptedBuffer)
23
- };
43
+ function encrypt(algorithm, key, data) {
44
+ const bytes = (0, import_type_guards.isString)(data) ? (0, import_encoding.encodeUtf8)(data) : data;
45
+ const encryptedBuffer = subtle.encrypt(algorithm, key, bytes);
46
+ return {
47
+ toBuffer: async () => encryptedBuffer,
48
+ toHex: async () => (0, import_encoding.encodeHex)(await encryptedBuffer),
49
+ toBase64: async () => (0, import_base64.encodeBase64)(await encryptedBuffer),
50
+ toBase64Url: async () => (0, import_base64.encodeBase64Url)(await encryptedBuffer),
51
+ toZBase32: async () => (0, import_z_base32.zBase32Encode)(await encryptedBuffer)
52
+ };
24
53
  }
25
- /**
26
- * decrypt data
27
- * @param algorithm algorithm as supported by Web Crypto API
28
- * @param key key
29
- * @param data data to decrypt
30
- */
31
- export function decrypt(algorithm, key, bytes) {
32
- const decryptedBuffer = subtle.decrypt(algorithm, key, bytes);
33
- return {
34
- toBuffer: async () => decryptedBuffer,
35
- toHex: async () => encodeHex(await decryptedBuffer),
36
- toBase64: async () => encodeBase64(await decryptedBuffer),
37
- toBase64Url: async () => encodeBase64Url(await decryptedBuffer),
38
- toZBase32: async () => zBase32Encode(await decryptedBuffer),
39
- toUtf8: async () => decodeText(await decryptedBuffer)
40
- };
54
+ function decrypt(algorithm, key, bytes) {
55
+ const decryptedBuffer = subtle.decrypt(algorithm, key, bytes);
56
+ return {
57
+ toBuffer: async () => decryptedBuffer,
58
+ toHex: async () => (0, import_encoding.encodeHex)(await decryptedBuffer),
59
+ toBase64: async () => (0, import_base64.encodeBase64)(await decryptedBuffer),
60
+ toBase64Url: async () => (0, import_base64.encodeBase64Url)(await decryptedBuffer),
61
+ toZBase32: async () => (0, import_z_base32.zBase32Encode)(await decryptedBuffer),
62
+ toUtf8: async () => (0, import_encoding.decodeText)(await decryptedBuffer)
63
+ };
41
64
  }
42
- /**
43
- * hashes data
44
- * @param algorithm algorithm as supported by Web Crypto API
45
- * @param data data to encrypt. Encodes string to utf8
46
- */
47
- export function digest(algorithm, data) {
48
- const bytes = isString(data) ? encodeUtf8(data) : data;
49
- const arrayBufferPromise = subtle.digest(algorithm, bytes);
50
- const result = {
51
- toBuffer: async () => arrayBufferPromise,
52
- toHex: async () => encodeHex(await arrayBufferPromise),
53
- toBase64: async () => encodeBase64(await arrayBufferPromise),
54
- toBase64Url: async () => encodeBase64Url(await arrayBufferPromise),
55
- toZBase32: async () => zBase32Encode(await arrayBufferPromise)
56
- };
57
- return result;
65
+ function digest(algorithm, data) {
66
+ const bytes = (0, import_type_guards.isString)(data) ? (0, import_encoding.encodeUtf8)(data) : data;
67
+ const arrayBufferPromise = subtle.digest(algorithm, bytes);
68
+ const result = {
69
+ toBuffer: async () => arrayBufferPromise,
70
+ toHex: async () => (0, import_encoding.encodeHex)(await arrayBufferPromise),
71
+ toBase64: async () => (0, import_base64.encodeBase64)(await arrayBufferPromise),
72
+ toBase64Url: async () => (0, import_base64.encodeBase64Url)(await arrayBufferPromise),
73
+ toZBase32: async () => (0, import_z_base32.zBase32Encode)(await arrayBufferPromise)
74
+ };
75
+ return result;
58
76
  }
59
- /**
60
- * signs data
61
- * @param algorithm algorithm as supported by Web Crypto API
62
- * @param key key
63
- * @param data data to sign
64
- */
65
- export function sign(algorithm, key, data) {
66
- const bytes = isString(data) ? encodeUtf8(data) : data;
67
- const arrayBufferPromise = subtle.sign(algorithm, key, bytes);
68
- const result = {
69
- toBuffer: async () => arrayBufferPromise,
70
- toHex: async () => encodeHex(await arrayBufferPromise),
71
- toBase64: async () => encodeBase64(await arrayBufferPromise),
72
- toBase64Url: async () => encodeBase64Url(await arrayBufferPromise),
73
- toZBase32: async () => zBase32Encode(await arrayBufferPromise)
74
- };
75
- return result;
77
+ function sign(algorithm, key, data) {
78
+ const bytes = (0, import_type_guards.isString)(data) ? (0, import_encoding.encodeUtf8)(data) : data;
79
+ const arrayBufferPromise = subtle.sign(algorithm, key, bytes);
80
+ const result = {
81
+ toBuffer: async () => arrayBufferPromise,
82
+ toHex: async () => (0, import_encoding.encodeHex)(await arrayBufferPromise),
83
+ toBase64: async () => (0, import_base64.encodeBase64)(await arrayBufferPromise),
84
+ toBase64Url: async () => (0, import_base64.encodeBase64Url)(await arrayBufferPromise),
85
+ toZBase32: async () => (0, import_z_base32.zBase32Encode)(await arrayBufferPromise)
86
+ };
87
+ return result;
76
88
  }
77
- /**
78
- * verifies data
79
- * @param algorithm algorithm as supported by Web Crypto API
80
- * @param key key
81
- * @param signature signature
82
- * @param data data to verify using provided signature
83
- */
84
- export async function verify(algorithm, key, signature, data) {
85
- const signatureBytes = isString(signature) ? encodeUtf8(signature) : signature;
86
- const dataBytes = isString(data) ? encodeUtf8(data) : data;
87
- return subtle.verify(algorithm, key, signatureBytes, dataBytes);
89
+ async function verify(algorithm, key, signature, data) {
90
+ const signatureBytes = (0, import_type_guards.isString)(signature) ? (0, import_encoding.encodeUtf8)(signature) : signature;
91
+ const dataBytes = (0, import_type_guards.isString)(data) ? (0, import_encoding.encodeUtf8)(data) : data;
92
+ return subtle.verify(algorithm, key, signatureBytes, dataBytes);
88
93
  }
89
- /**
90
- * imports a HMAC CryptoKey
91
- * @param algorithm hash algorithm
92
- * @param key JWK or binary key
93
- * @param extractable whether the key can be used for exportKey
94
- */
95
- export async function importHmacKey(algorithm, key, extractable = false) {
96
- const binaryKey = isString(key) ? encodeUtf8(key) : key;
97
- if (isBinaryKey(binaryKey)) {
98
- return subtle.importKey('raw', binaryKey, { name: 'HMAC', hash: algorithm }, extractable, ['sign', 'verify']);
99
- }
100
- return subtle.importKey('jwk', binaryKey, { name: 'HMAC', hash: algorithm }, extractable, ['sign', 'verify']);
94
+ async function importHmacKey(algorithm, key, extractable = false) {
95
+ const binaryKey = (0, import_type_guards.isString)(key) ? (0, import_encoding.encodeUtf8)(key) : key;
96
+ if (isBinaryKey(binaryKey)) {
97
+ return subtle.importKey("raw", binaryKey, { name: "HMAC", hash: algorithm }, extractable, ["sign", "verify"]);
98
+ }
99
+ return subtle.importKey("jwk", binaryKey, { name: "HMAC", hash: algorithm }, extractable, ["sign", "verify"]);
101
100
  }
102
- /**
103
- * imports a CryptoKey for symmetric encryption
104
- * @param algorithm symmetric algorithm
105
- * @param length key length
106
- * @param key JWK or binary key
107
- * @param extractable whether the key can be used for exportKey
108
- */
109
- export async function importSymmetricKey(algorithm, length, key, extractable = false) {
110
- const binaryKey = isString(key) ? encodeUtf8(key) : key;
111
- if (isBinaryKey(binaryKey)) {
112
- return subtle.importKey('raw', binaryKey, { name: algorithm, length }, extractable, ['encrypt', 'decrypt']);
113
- }
114
- return subtle.importKey('jwk', binaryKey, { name: algorithm, length }, extractable, ['encrypt', 'decrypt']);
101
+ async function importSymmetricKey(algorithm, length, key, extractable = false) {
102
+ const binaryKey = (0, import_type_guards.isString)(key) ? (0, import_encoding.encodeUtf8)(key) : key;
103
+ if (isBinaryKey(binaryKey)) {
104
+ return subtle.importKey("raw", binaryKey, { name: algorithm, length }, extractable, ["encrypt", "decrypt"]);
105
+ }
106
+ return subtle.importKey("jwk", binaryKey, { name: algorithm, length }, extractable, ["encrypt", "decrypt"]);
115
107
  }
116
- /**
117
- * imports an ECDSA CryptoKey
118
- * @param curve ECDSA curve
119
- * @param key JWK or DER encoded key
120
- * @param extractable whether the key can be used for exportKey
121
- */
122
- export async function importEcdsaKey(curve, key, extractable = false) {
123
- const binaryKey = isString(key) ? encodeUtf8(key) : key;
124
- if (isBinaryKey(binaryKey)) {
125
- return subtle.importKey('spki', binaryKey, { name: 'ECDSA', namedCurve: curve }, extractable, ['verify']);
126
- }
127
- return subtle.importKey('jwk', binaryKey, { name: 'ECDSA', namedCurve: curve }, extractable, ['verify']);
108
+ async function importEcdsaKey(curve, key, extractable = false) {
109
+ const binaryKey = (0, import_type_guards.isString)(key) ? (0, import_encoding.encodeUtf8)(key) : key;
110
+ if (isBinaryKey(binaryKey)) {
111
+ return subtle.importKey("spki", binaryKey, { name: "ECDSA", namedCurve: curve }, extractable, ["verify"]);
112
+ }
113
+ return subtle.importKey("jwk", binaryKey, { name: "ECDSA", namedCurve: curve }, extractable, ["verify"]);
128
114
  }
129
- /**
130
- * import a pbkdf2 CryptoKey
131
- * @param key binary key
132
- * @param extractable whether the key can be used for exportKey
133
- */
134
- export async function importPbkdf2Key(key, extractable = false) {
135
- const binaryKey = isString(key) ? encodeUtf8(key) : key;
136
- return globalThis.crypto.subtle.importKey('raw', binaryKey, { name: 'PBKDF2' }, extractable, ['deriveKey', 'deriveBits']);
115
+ async function importPbkdf2Key(key, extractable = false) {
116
+ const binaryKey = (0, import_type_guards.isString)(key) ? (0, import_encoding.encodeUtf8)(key) : key;
117
+ return globalThis.crypto.subtle.importKey("raw", binaryKey, { name: "PBKDF2" }, extractable, ["deriveKey", "deriveBits"]);
137
118
  }
138
- /**
139
- * generates a new ECDSA CryptoKeyPair
140
- * @param curve ECDSA cruve to use
141
- * @param extractable whether the key can be used for exportKey
142
- * @param usages whether to generate a key for signing, verifiying or both. Defaults to both
143
- */
144
- export async function generateEcdsaKey(curve, extractable = false, usages = ['sign', 'verify']) {
145
- return subtle.generateKey({ name: 'ECDSA', namedCurve: curve }, extractable, usages);
119
+ async function generateEcdsaKey(curve, extractable = false, usages = ["sign", "verify"]) {
120
+ return subtle.generateKey({ name: "ECDSA", namedCurve: curve }, extractable, usages);
146
121
  }
147
- /**
148
- * generates a pbkdf2 CryptoKey
149
- * @param extractable whether the key can be used for exportKey
150
- */
151
- export async function generatePbkdf2Key(extractable = false) {
152
- const key = getRandomBytes(16);
153
- return importPbkdf2Key(key, extractable);
122
+ async function generatePbkdf2Key(extractable = false) {
123
+ const key = (0, import_random.getRandomBytes)(16);
124
+ return importPbkdf2Key(key, extractable);
154
125
  }
155
- /**
156
- * derive byte array from key
157
- * @param length length in bytes
158
- * @param algorithm algorithm to derive with
159
- * @param baseKey key to derive from
160
- */
161
- export async function deriveBytes(algorithm, baseKey, length) {
162
- const bytes = await globalThis.crypto.subtle.deriveBits(algorithm, baseKey, length * 8);
163
- return new Uint8Array(bytes);
126
+ async function deriveBytes(algorithm, baseKey, length) {
127
+ const bytes = await globalThis.crypto.subtle.deriveBits(algorithm, baseKey, length * 8);
128
+ return new Uint8Array(bytes);
164
129
  }
165
- /**
166
- * derive multiply byte arrays from key
167
- * @param count how many Uint8Arrays to dervice
168
- * @param length length of each Uint8Array in bytes
169
- * @param algorithm algorithm to derive with
170
- * @param baseKey key to derive from
171
- */
172
- export async function deriveBytesMultiple(algorithm, baseKey, count, length) {
173
- const totalBits = count * length * 8;
174
- const bytes = await globalThis.crypto.subtle.deriveBits(algorithm, baseKey, totalBits);
175
- return createArray(count, (index) => new Uint8Array(bytes.slice(index * length, (index * length) + length)));
130
+ async function deriveBytesMultiple(algorithm, baseKey, count, length) {
131
+ const totalBits = count * length * 8;
132
+ const bytes = await globalThis.crypto.subtle.deriveBits(algorithm, baseKey, totalBits);
133
+ return (0, import_array.createArray)(count, (index) => new Uint8Array(bytes.slice(index * length, index * length + length)));
176
134
  }
177
135
  function isBinaryKey(key) {
178
- return isDefined(key.byteLength);
136
+ return (0, import_type_guards.isDefined)(key.byteLength);
179
137
  }
@@ -1,103 +1,139 @@
1
- import { NotSupportedError } from '../error/not-supported.error.js';
2
- import { DateTime } from 'luxon';
3
- import { isDate, isNumber } from './type-guards.js';
4
- import { typeOf } from './type-of.js';
5
- import { millisecondsPerDay, millisecondsPerHour, millisecondsPerMinute, millisecondsPerSecond } from './units.js';
6
- export function now() {
7
- return new Date();
8
- }
9
- export function currentTimestamp() {
10
- return Date.now();
11
- }
12
- export function currentTimestampSeconds() {
13
- return timestampToTimestampSeconds(currentTimestamp());
14
- }
15
- export function timestampToTimestampSeconds(timestamp) {
16
- return Math.floor(timestamp / 1000);
17
- }
18
- export function currentDate() {
19
- const timestamp = currentTimestamp();
20
- return timestampToNumericDate(timestamp);
21
- }
22
- export function currentTime() {
23
- const timestamp = currentTimestamp();
24
- return timestampToTime(timestamp);
25
- }
26
- /**
27
- * @param input {@link DateTime}, Date or timestamp in milliseconds
28
- * @returns DateTime
29
- */
30
- export function toDateTime(input) {
31
- if (isNumber(input)) {
32
- return DateTime.fromMillis(input);
33
- }
34
- if (isDate(input)) {
35
- return DateTime.fromJSDate(input);
36
- }
37
- if (DateTime.isDateTime(input)) {
38
- return input;
39
- }
40
- throw new NotSupportedError(`Unsupported input type "${typeOf(input)}".`);
41
- }
42
- export function timestampToNumericDate(timestamp) {
43
- return Math.floor(timestamp / millisecondsPerDay);
44
- }
45
- export function dateToNumericDate(date) {
46
- const timestamp = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate());
47
- return timestampToNumericDate(timestamp);
48
- }
49
- export function timestampToTime(timestamp) {
50
- return timestamp % millisecondsPerDay;
51
- }
52
- export function timeObjectToNumericTime(time) {
53
- return ((time.hour ?? 0) * millisecondsPerHour)
54
- + ((time.minute ?? 0) * millisecondsPerMinute)
55
- + ((time.second ?? 0) * millisecondsPerSecond)
56
- + (time.millisecond ?? 0);
57
- }
58
- export function numericTimeToTimeObject(time) {
59
- return {
60
- hour: Math.floor(time / millisecondsPerHour),
61
- minute: Math.floor((time % millisecondsPerHour) / millisecondsPerMinute),
62
- second: Math.floor((time % millisecondsPerMinute) / millisecondsPerSecond),
63
- millisecond: Math.floor(time % millisecondsPerSecond)
64
- };
65
- }
66
- export function timestampToNumericDateAndTime(timestamp) {
67
- return {
68
- date: timestampToNumericDate(timestamp),
69
- time: timestampToTime(timestamp)
70
- };
71
- }
72
- export function numericDateToTimestamp(numericDate) {
73
- return numericDate * millisecondsPerDay;
74
- }
75
- export function numericDateToDate(numericDate) {
76
- const timestamp = numericDateToTimestamp(numericDate);
77
- const date = new Date(timestamp);
78
- return {
79
- year: date.getUTCFullYear(),
80
- month: date.getUTCMonth() + 1,
81
- day: date.getUTCDate()
82
- };
83
- }
84
- export function numericDateTimeToTimestamp({ date, time }) {
85
- return numericDateToTimestamp(date) + time;
86
- }
87
- export function zonedDateObjectToDateTime(zonedDate, units, options) {
88
- return DateTime.fromObject({ ...zonedDate, ...units }, options);
89
- }
90
- export function dateTimeToNumericDate(dateTime) {
91
- const timestamp = dateTime.toUTC(undefined, { keepLocalTime: true }).toMillis();
92
- return timestampToNumericDate(timestamp);
93
- }
94
- export function numericDateToDateTime(numericDate, units, options) {
95
- const date = numericDateToDate(numericDate);
96
- return DateTime.fromObject({ ...date, ...units }, options);
97
- }
98
- export function dateTimeToTime(dateTime) {
99
- return dateTime.startOf('day').until(dateTime).count('milliseconds');
100
- }
101
- export function numericDateTimeToDateTime({ date, time }, zone) {
102
- return numericDateToDateTime(date, undefined, { zone }).set({ millisecond: time });
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var date_time_exports = {};
20
+ __export(date_time_exports, {
21
+ currentDate: () => currentDate,
22
+ currentTime: () => currentTime,
23
+ currentTimestamp: () => currentTimestamp,
24
+ currentTimestampSeconds: () => currentTimestampSeconds,
25
+ dateTimeToNumericDate: () => dateTimeToNumericDate,
26
+ dateTimeToTime: () => dateTimeToTime,
27
+ dateToNumericDate: () => dateToNumericDate,
28
+ now: () => now,
29
+ numericDateTimeToDateTime: () => numericDateTimeToDateTime,
30
+ numericDateTimeToTimestamp: () => numericDateTimeToTimestamp,
31
+ numericDateToDate: () => numericDateToDate,
32
+ numericDateToDateTime: () => numericDateToDateTime,
33
+ numericDateToTimestamp: () => numericDateToTimestamp,
34
+ numericTimeToTimeObject: () => numericTimeToTimeObject,
35
+ timeObjectToNumericTime: () => timeObjectToNumericTime,
36
+ timestampToNumericDate: () => timestampToNumericDate,
37
+ timestampToNumericDateAndTime: () => timestampToNumericDateAndTime,
38
+ timestampToTime: () => timestampToTime,
39
+ timestampToTimestampSeconds: () => timestampToTimestampSeconds,
40
+ toDateTime: () => toDateTime,
41
+ zonedDateObjectToDateTime: () => zonedDateObjectToDateTime
42
+ });
43
+ module.exports = __toCommonJS(date_time_exports);
44
+ var import_not_supported_error = require("../error/not-supported.error.js");
45
+ var import_luxon = require("luxon");
46
+ var import_type_guards = require("./type-guards.js");
47
+ var import_type_of = require("./type-of.js");
48
+ var import_units = require("./units.js");
49
+ function now() {
50
+ return /* @__PURE__ */ new Date();
51
+ }
52
+ function currentTimestamp() {
53
+ return Date.now();
54
+ }
55
+ function currentTimestampSeconds() {
56
+ return timestampToTimestampSeconds(currentTimestamp());
57
+ }
58
+ function timestampToTimestampSeconds(timestamp) {
59
+ return Math.floor(timestamp / 1e3);
60
+ }
61
+ function currentDate() {
62
+ const timestamp = currentTimestamp();
63
+ return timestampToNumericDate(timestamp);
64
+ }
65
+ function currentTime() {
66
+ const timestamp = currentTimestamp();
67
+ return timestampToTime(timestamp);
68
+ }
69
+ function toDateTime(input) {
70
+ if ((0, import_type_guards.isNumber)(input)) {
71
+ return import_luxon.DateTime.fromMillis(input);
72
+ }
73
+ if ((0, import_type_guards.isDate)(input)) {
74
+ return import_luxon.DateTime.fromJSDate(input);
75
+ }
76
+ if (import_luxon.DateTime.isDateTime(input)) {
77
+ return input;
78
+ }
79
+ throw new import_not_supported_error.NotSupportedError(`Unsupported input type "${(0, import_type_of.typeOf)(input)}".`);
80
+ }
81
+ function timestampToNumericDate(timestamp) {
82
+ return Math.floor(timestamp / import_units.millisecondsPerDay);
83
+ }
84
+ function dateToNumericDate(date) {
85
+ const timestamp = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate());
86
+ return timestampToNumericDate(timestamp);
87
+ }
88
+ function timestampToTime(timestamp) {
89
+ return timestamp % import_units.millisecondsPerDay;
90
+ }
91
+ function timeObjectToNumericTime(time) {
92
+ return (time.hour ?? 0) * import_units.millisecondsPerHour + (time.minute ?? 0) * import_units.millisecondsPerMinute + (time.second ?? 0) * import_units.millisecondsPerSecond + (time.millisecond ?? 0);
93
+ }
94
+ function numericTimeToTimeObject(time) {
95
+ return {
96
+ hour: Math.floor(time / import_units.millisecondsPerHour),
97
+ minute: Math.floor(time % import_units.millisecondsPerHour / import_units.millisecondsPerMinute),
98
+ second: Math.floor(time % import_units.millisecondsPerMinute / import_units.millisecondsPerSecond),
99
+ millisecond: Math.floor(time % import_units.millisecondsPerSecond)
100
+ };
101
+ }
102
+ function timestampToNumericDateAndTime(timestamp) {
103
+ return {
104
+ date: timestampToNumericDate(timestamp),
105
+ time: timestampToTime(timestamp)
106
+ };
107
+ }
108
+ function numericDateToTimestamp(numericDate) {
109
+ return numericDate * import_units.millisecondsPerDay;
110
+ }
111
+ function numericDateToDate(numericDate) {
112
+ const timestamp = numericDateToTimestamp(numericDate);
113
+ const date = new Date(timestamp);
114
+ return {
115
+ year: date.getUTCFullYear(),
116
+ month: date.getUTCMonth() + 1,
117
+ day: date.getUTCDate()
118
+ };
119
+ }
120
+ function numericDateTimeToTimestamp({ date, time }) {
121
+ return numericDateToTimestamp(date) + time;
122
+ }
123
+ function zonedDateObjectToDateTime(zonedDate, units, options) {
124
+ return import_luxon.DateTime.fromObject({ ...zonedDate, ...units }, options);
125
+ }
126
+ function dateTimeToNumericDate(dateTime) {
127
+ const timestamp = dateTime.toUTC(void 0, { keepLocalTime: true }).toMillis();
128
+ return timestampToNumericDate(timestamp);
129
+ }
130
+ function numericDateToDateTime(numericDate, units, options) {
131
+ const date = numericDateToDate(numericDate);
132
+ return import_luxon.DateTime.fromObject({ ...date, ...units }, options);
133
+ }
134
+ function dateTimeToTime(dateTime) {
135
+ return dateTime.startOf("day").until(dateTime).count("milliseconds");
136
+ }
137
+ function numericDateTimeToDateTime({ date, time }, zone) {
138
+ return numericDateToDateTime(date, void 0, { zone }).set({ millisecond: time });
103
139
  }