@tstdl/base 0.87.15 → 0.88.0-alpha2

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 (784) hide show
  1. package/api/client/client.js +111 -127
  2. package/api/client/index.js +1 -18
  3. package/api/default-error-handlers.js +18 -44
  4. package/api/index.js +14 -20
  5. package/api/response.js +99 -123
  6. package/api/server/api-controller.js +43 -71
  7. package/api/server/api-request-token.provider.js +13 -40
  8. package/api/server/error-handler.js +25 -46
  9. package/api/server/gateway.js +219 -225
  10. package/api/server/index.js +5 -22
  11. package/api/server/middlewares/allowed-methods.middleware.js +17 -40
  12. package/api/server/middlewares/catch-error.middleware.js +12 -33
  13. package/api/server/middlewares/cors.middleware.js +49 -69
  14. package/api/server/middlewares/index.js +4 -21
  15. package/api/server/middlewares/response-time.middleware.js +8 -31
  16. package/api/server/module.js +18 -42
  17. package/api/server/tokens.js +6 -31
  18. package/api/types.js +14 -40
  19. package/api/utils.js +13 -36
  20. package/application/application.js +147 -169
  21. package/application/index.js +1 -18
  22. package/authentication/authentication.api.js +89 -113
  23. package/authentication/client/api.client.js +29 -57
  24. package/authentication/client/authentication.service.js +214 -235
  25. package/authentication/client/http-client.middleware.js +16 -38
  26. package/authentication/client/index.js +5 -22
  27. package/authentication/client/module.js +22 -45
  28. package/authentication/client/tokens.js +6 -30
  29. package/authentication/errors/index.js +1 -18
  30. package/authentication/errors/secret-requirements.error.js +6 -29
  31. package/authentication/index.d.ts +1 -0
  32. package/authentication/index.js +3 -19
  33. package/authentication/models/authentication-credentials.model.js +37 -66
  34. package/authentication/models/authentication-session.model.js +51 -80
  35. package/authentication/models/index.js +6 -23
  36. package/authentication/models/init-secret-reset-data.model.js +16 -44
  37. package/authentication/models/secret-check-result.model.js +10 -36
  38. package/authentication/models/token-payload-base.model.js +31 -59
  39. package/authentication/models/token.model.js +1 -16
  40. package/authentication/server/authentication-api-request-token.provider.js +25 -52
  41. package/authentication/server/authentication-credentials.repository.js +1 -24
  42. package/authentication/server/authentication-secret-requirements.validator.js +30 -57
  43. package/authentication/server/authentication-secret-reset.handler.js +1 -24
  44. package/authentication/server/authentication-session.repository.js +1 -24
  45. package/authentication/server/authentication-subject.resolver.js +5 -24
  46. package/authentication/server/authentication-token-payload.provider.js +5 -29
  47. package/authentication/server/authentication.api-controller.js +89 -114
  48. package/authentication/server/authentication.service.js +273 -308
  49. package/authentication/server/helper.js +66 -87
  50. package/authentication/server/index.js +11 -28
  51. package/authentication/server/module.js +26 -48
  52. package/authentication/server/mongo/index.js +2 -19
  53. package/authentication/server/mongo/mongo-authentication-credentials.repository.js +54 -84
  54. package/authentication/server/mongo/mongo-authentication-session.repository.js +51 -81
  55. package/browser/browser-context-controller.js +106 -133
  56. package/browser/browser-controller.js +87 -113
  57. package/browser/browser.service.js +87 -117
  58. package/browser/document-controller.js +70 -94
  59. package/browser/element-controller.js +231 -252
  60. package/browser/frame-controller.js +24 -47
  61. package/browser/index.d.ts +1 -0
  62. package/browser/index.js +11 -27
  63. package/browser/locator-controller.js +36 -59
  64. package/browser/module.js +26 -50
  65. package/browser/page-controller.js +150 -166
  66. package/browser/pdf-options.js +73 -103
  67. package/browser/types.js +1 -16
  68. package/browser/utils.js +94 -128
  69. package/cancellation/index.js +1 -18
  70. package/cancellation/token.js +164 -184
  71. package/collections/awaitable/awaitable-list.js +99 -122
  72. package/collections/awaitable/awaitable-map.js +93 -116
  73. package/collections/awaitable/awaitable-set.js +63 -86
  74. package/collections/awaitable/index.js +3 -20
  75. package/collections/collection.js +1 -16
  76. package/collections/index.js +6 -23
  77. package/collections/keyed-set.js +53 -77
  78. package/collections/list.js +1 -16
  79. package/collections/observable/index.js +8 -25
  80. package/collections/observable/observable-array.js +95 -118
  81. package/collections/observable/observable-collection-base.js +60 -83
  82. package/collections/observable/observable-collection.js +1 -16
  83. package/collections/observable/observable-list-base.js +55 -78
  84. package/collections/observable/observable-list.js +1 -16
  85. package/collections/observable/observable-map.js +56 -79
  86. package/collections/observable/observable-set.js +75 -98
  87. package/collections/observable/observable-sorted-array-list.js +165 -188
  88. package/collections/sorted-array-list.js +156 -179
  89. package/collections/sorted-list.js +1 -16
  90. package/collections/sorted-map.js +70 -93
  91. package/container/decorators.js +1 -34
  92. package/container/index.js +3 -20
  93. package/container/interfaces.js +1 -25
  94. package/container/token.js +1 -26
  95. package/cookie/cookie.js +49 -71
  96. package/cookie/index.js +1 -18
  97. package/core.js +56 -81
  98. package/data-structures/array-dictionary.js +89 -110
  99. package/data-structures/array-list.js +107 -130
  100. package/data-structures/cache.js +41 -64
  101. package/data-structures/circular-buffer.js +200 -220
  102. package/data-structures/collection.js +86 -109
  103. package/data-structures/dictionary.js +51 -75
  104. package/data-structures/distinct-collection.js +49 -73
  105. package/data-structures/index-out-of-bounds.error.js +8 -31
  106. package/data-structures/index.d.ts +1 -0
  107. package/data-structures/index.js +17 -33
  108. package/data-structures/iterable-weak-map.js +129 -149
  109. package/data-structures/linked-list.js +368 -385
  110. package/data-structures/list.js +86 -109
  111. package/data-structures/map-dictionary.js +55 -78
  112. package/data-structures/multi-key-map.js +141 -163
  113. package/data-structures/multi-key-set.js +56 -79
  114. package/data-structures/set-collection.js +54 -77
  115. package/data-structures/sorted-array-list.js +140 -166
  116. package/data-structures/weak-ref-map.js +126 -146
  117. package/database/entity-repository.js +2 -26
  118. package/database/entity.js +1 -16
  119. package/database/id.js +8 -29
  120. package/database/index.js +6 -23
  121. package/database/module.js +9 -33
  122. package/database/mongo/classes.js +18 -43
  123. package/database/mongo/index.js +10 -27
  124. package/database/mongo/model/document.js +62 -93
  125. package/database/mongo/model/index.js +1 -18
  126. package/database/mongo/module.js +59 -79
  127. package/database/mongo/mongo-base.repository.js +259 -283
  128. package/database/mongo/mongo-bulk.js +87 -110
  129. package/database/mongo/mongo-entity-repository.js +270 -296
  130. package/database/mongo/operations.js +48 -76
  131. package/database/mongo/query-converter.js +73 -96
  132. package/database/mongo/simple-entity-repository.js +5 -28
  133. package/database/mongo/types.js +2 -25
  134. package/database/query.js +7 -36
  135. package/database/utils.js +2 -25
  136. package/decorators/index.js +1 -18
  137. package/decorators/log.js +29 -51
  138. package/disposable/async-disposer.js +118 -130
  139. package/disposable/disposable.js +9 -36
  140. package/disposable/index.js +3 -20
  141. package/disposable/using.js +15 -37
  142. package/distributed-loop/controller.js +1 -16
  143. package/distributed-loop/distributed-loop.js +77 -105
  144. package/distributed-loop/index.js +3 -20
  145. package/distributed-loop/provider.js +21 -48
  146. package/enumerable/async-enumerable.js +238 -261
  147. package/enumerable/enumerable-methods.js +1 -16
  148. package/enumerable/enumerable.js +177 -200
  149. package/enumerable/index.js +2 -19
  150. package/environment.js +25 -57
  151. package/error/api.error.js +10 -33
  152. package/error/assertion.error.js +6 -29
  153. package/error/bad-request.error.js +6 -29
  154. package/error/custom.error.js +25 -47
  155. package/error/details.error.js +8 -31
  156. package/error/forbidden.error.js +6 -29
  157. package/error/index.js +16 -33
  158. package/error/invalid-token.error.js +6 -29
  159. package/error/max-bytes-exceeded.error.js +9 -32
  160. package/error/method-not-allowed.error.js +6 -29
  161. package/error/multi.error.js +8 -31
  162. package/error/not-found.error.js +6 -29
  163. package/error/not-implemented.error.js +6 -29
  164. package/error/not-supported.error.js +11 -34
  165. package/error/timeout.error.js +6 -29
  166. package/error/unauthorized.error.js +6 -29
  167. package/error/unsupported-media-type.error.js +6 -29
  168. package/examples/api/authentication.js +49 -49
  169. package/examples/api/basic-overview.js +80 -85
  170. package/examples/api/custom-authentication.js +94 -99
  171. package/examples/api/streaming.js +90 -95
  172. package/examples/browser/basic.js +21 -22
  173. package/examples/http/client.js +15 -16
  174. package/examples/mail/basic.js +41 -42
  175. package/examples/mail/templates/hello-name.js +10 -33
  176. package/examples/pdf/basic.js +48 -49
  177. package/examples/pdf/templates/hello-name.js +35 -58
  178. package/examples/reflection/basic.js +53 -84
  179. package/examples/template/basic.js +32 -33
  180. package/examples/template/templates/hello-jsx.js +8 -32
  181. package/examples/template/templates/hello-name.js +18 -41
  182. package/function/index.js +1 -18
  183. package/function/log.js +18 -40
  184. package/http/client/adapters/index.d.ts +1 -0
  185. package/http/client/adapters/index.js +1 -0
  186. package/http/client/adapters/undici-http-client.adapter.js +92 -111
  187. package/http/client/http-client-options.js +10 -33
  188. package/http/client/http-client-request.js +149 -171
  189. package/http/client/http-client-response.js +33 -56
  190. package/http/client/http-client.adapter.js +1 -24
  191. package/http/client/http-client.js +295 -313
  192. package/http/client/index.d.ts +2 -0
  193. package/http/client/index.js +8 -23
  194. package/http/client/middleware.js +1 -16
  195. package/http/client/module.js +20 -43
  196. package/http/client/tokens.js +2 -25
  197. package/http/cookie-parser.js +19 -42
  198. package/http/http-body.js +52 -75
  199. package/http/http-form.js +14 -37
  200. package/http/http-headers.js +86 -109
  201. package/http/http-query.js +14 -37
  202. package/http/http-url-parameters.js +8 -31
  203. package/http/http-value-map.js +110 -133
  204. package/http/http.error.js +60 -82
  205. package/http/index.js +11 -28
  206. package/http/server/http-server-request.js +24 -47
  207. package/http/server/http-server-response.js +22 -45
  208. package/http/server/http-server.js +2 -25
  209. package/http/server/index.js +3 -20
  210. package/http/server/node/index.js +2 -19
  211. package/http/server/node/module.js +8 -28
  212. package/http/server/node/node-http-server.js +205 -230
  213. package/http/types.js +21 -47
  214. package/http/utils.js +92 -108
  215. package/image-service/image-service.js +59 -91
  216. package/image-service/imgproxy/imgproxy-image-service.js +88 -125
  217. package/image-service/imgproxy/index.js +1 -18
  218. package/image-service/index.js +1 -18
  219. package/import.js +2 -25
  220. package/index.js +1 -18
  221. package/injector/decorators.js +134 -112
  222. package/injector/index.js +11 -28
  223. package/injector/inject.js +104 -103
  224. package/injector/injector.js +481 -497
  225. package/injector/interfaces.js +2 -26
  226. package/injector/provider.js +22 -54
  227. package/injector/resolve-chain.js +91 -117
  228. package/injector/resolve.error.js +11 -36
  229. package/injector/symbols.js +2 -26
  230. package/injector/token.js +17 -38
  231. package/injector/type-info.js +1 -16
  232. package/injector/types.js +1 -16
  233. package/interfaces.js +1 -16
  234. package/json-path/index.js +1 -18
  235. package/json-path/json-path.js +138 -138
  236. package/key-value-store/index.js +2 -19
  237. package/key-value-store/key-value-store.provider.js +1 -24
  238. package/key-value-store/key-value.store.js +6 -29
  239. package/key-value-store/mongo/index.js +6 -23
  240. package/key-value-store/mongo/module.js +17 -35
  241. package/key-value-store/mongo/mongo-key-value-store.provider.js +21 -48
  242. package/key-value-store/mongo/mongo-key-value.model.js +1 -16
  243. package/key-value-store/mongo/mongo-key-value.repository.js +23 -52
  244. package/key-value-store/mongo/mongo-key-value.store.js +60 -89
  245. package/key-value-store/mongo/tokens.js +2 -25
  246. package/lock/index.js +2 -19
  247. package/lock/lock.js +6 -29
  248. package/lock/mongo/index.js +5 -22
  249. package/lock/mongo/lock.js +112 -135
  250. package/lock/mongo/model.js +1 -16
  251. package/lock/mongo/module.js +18 -37
  252. package/lock/mongo/mongo-lock-repository.js +57 -85
  253. package/lock/mongo/provider.js +39 -68
  254. package/lock/provider.js +2 -25
  255. package/lock/web/index.js +3 -20
  256. package/lock/web/module.js +11 -31
  257. package/lock/web/web-lock.js +81 -105
  258. package/lock/web/web-lock.provider.js +28 -57
  259. package/logger/console/index.js +1 -18
  260. package/logger/console/logger.js +55 -81
  261. package/logger/index.js +3 -20
  262. package/logger/level.js +8 -31
  263. package/logger/logger.js +38 -61
  264. package/logger/noop/index.js +1 -18
  265. package/logger/noop/logger.js +20 -42
  266. package/logger/tokens.js +2 -25
  267. package/mail/clients/index.d.ts +1 -0
  268. package/mail/clients/index.js +1 -0
  269. package/mail/clients/nodemailer.mail-client.js +64 -91
  270. package/mail/index.d.ts +2 -0
  271. package/mail/index.js +7 -22
  272. package/mail/mail.client.js +35 -63
  273. package/mail/mail.service.d.ts +1 -1
  274. package/mail/mail.service.js +74 -106
  275. package/mail/models/index.js +6 -23
  276. package/mail/models/mail-address.model.js +1 -16
  277. package/mail/models/mail-content.model.js +1 -16
  278. package/mail/models/mail-data.model.js +1 -16
  279. package/mail/models/mail-log.model.js +1 -16
  280. package/mail/models/mail-send-result.model.js +1 -16
  281. package/mail/models/mail-template.model.js +5 -28
  282. package/mail/module.d.ts +1 -1
  283. package/mail/module.js +21 -41
  284. package/mail/repositories/index.d.ts +1 -0
  285. package/mail/repositories/index.js +1 -0
  286. package/mail/repositories/mail-log.repository.d.ts +4 -0
  287. package/mail/repositories/mail-log.repository.js +3 -0
  288. package/mail/repositories/mongo/index.d.ts +1 -0
  289. package/mail/repositories/mongo/index.js +1 -0
  290. package/mail/repositories/{mongo-mail-log.repository.d.ts → mongo/mongo-mail-log.repository.d.ts} +6 -6
  291. package/mail/repositories/mongo/mongo-mail-log.repository.js +33 -0
  292. package/mail/tokens.js +2 -25
  293. package/memory/finalization.js +36 -60
  294. package/memory/index.js +2 -19
  295. package/memory/observable-finalization-registry.js +9 -32
  296. package/message-bus/broadcast-channel/broadcast-channel-message-bus-provider.js +24 -53
  297. package/message-bus/broadcast-channel/broadcast-channel-message-bus.js +47 -74
  298. package/message-bus/broadcast-channel/index.js +3 -20
  299. package/message-bus/broadcast-channel/module.js +11 -31
  300. package/message-bus/index.js +3 -20
  301. package/message-bus/local/index.js +3 -20
  302. package/message-bus/local/local-message-bus-provider.js +36 -65
  303. package/message-bus/local/local-message-bus.js +39 -66
  304. package/message-bus/local/module.js +11 -31
  305. package/message-bus/local/types.js +1 -16
  306. package/message-bus/message-bus-base.js +41 -63
  307. package/message-bus/message-bus-provider.js +1 -24
  308. package/message-bus/message-bus.js +6 -29
  309. package/migration/index.js +3 -20
  310. package/migration/migration-state-repository.js +2 -25
  311. package/migration/migration-state.js +1 -16
  312. package/migration/migrator.js +81 -108
  313. package/migration/mongo/index.js +2 -19
  314. package/migration/mongo/migration-state-repository.js +24 -53
  315. package/migration/mongo/module.js +15 -34
  316. package/module/index.js +4 -21
  317. package/module/module-base.js +37 -60
  318. package/module/module-metric-reporter.js +58 -77
  319. package/module/module.js +10 -34
  320. package/module/modules/function.module.js +11 -34
  321. package/module/modules/index.js +2 -19
  322. package/module/modules/web-server.module.js +54 -83
  323. package/module/utils.js +19 -43
  324. package/object-storage/index.js +3 -20
  325. package/object-storage/object-storage-provider.js +1 -24
  326. package/object-storage/object-storage.js +7 -30
  327. package/object-storage/object.js +7 -30
  328. package/object-storage/s3/index.js +3 -20
  329. package/object-storage/s3/s3.object-storage-provider.js +75 -100
  330. package/object-storage/s3/s3.object-storage.js +134 -160
  331. package/object-storage/s3/s3.object.js +39 -62
  332. package/openid-connect/cached-oidc-configuration.service.js +36 -65
  333. package/openid-connect/index.js +11 -28
  334. package/openid-connect/mongo-oidc-state.repository.js +40 -65
  335. package/openid-connect/oidc-configuration.service.js +39 -66
  336. package/openid-connect/oidc-state.model.js +1 -16
  337. package/openid-connect/oidc-state.repository.js +2 -25
  338. package/openid-connect/oidc.service-model.js +1 -16
  339. package/openid-connect/oidc.service.js +158 -187
  340. package/package.json +95 -5
  341. package/password/have-i-been-pwned.js +21 -39
  342. package/password/index.js +4 -21
  343. package/password/password-check-result.model.js +34 -63
  344. package/password/password-check.js +46 -76
  345. package/password/password-check.localization.js +86 -111
  346. package/pdf/index.js +1 -18
  347. package/pdf/pdf.service.js +172 -206
  348. package/polyfills.js +1 -2
  349. package/pool/index.js +1 -18
  350. package/pool/pool.js +116 -133
  351. package/process-shutdown.js +57 -81
  352. package/promise/cancelable-promise.js +23 -41
  353. package/promise/deferred-promise.js +68 -92
  354. package/promise/index.js +3 -20
  355. package/promise/lazy-promise.js +24 -47
  356. package/queue/enqueue-batch.js +18 -41
  357. package/queue/index.js +3 -20
  358. package/queue/mongo/index.js +4 -21
  359. package/queue/mongo/job.js +1 -16
  360. package/queue/mongo/mongo-job.repository.js +45 -70
  361. package/queue/mongo/queue.js +243 -265
  362. package/queue/mongo/queue.provider.js +47 -72
  363. package/queue/provider.js +1 -24
  364. package/queue/queue.js +15 -41
  365. package/random/index.js +2 -19
  366. package/random/number-generator/index.d.ts +2 -0
  367. package/random/number-generator/index.js +5 -20
  368. package/random/number-generator/mulberry32.js +34 -51
  369. package/random/number-generator/random-number-generator-function.js +1 -24
  370. package/random/number-generator/random-number-generator.js +8 -31
  371. package/random/number-generator/seeded-random-number-generator.js +5 -28
  372. package/random/number-generator/sfc32.js +41 -64
  373. package/random/number-generator/utils.d.ts +1 -0
  374. package/random/number-generator/utils.js +7 -25
  375. package/random/series.js +41 -43
  376. package/reflection/decorator-data.js +63 -80
  377. package/reflection/decorators.js +39 -69
  378. package/reflection/index.js +5 -22
  379. package/reflection/reflection-data-map.js +32 -55
  380. package/reflection/registry.js +110 -130
  381. package/reflection/types.js +1 -16
  382. package/reflection/utils.js +96 -124
  383. package/require.js +3 -26
  384. package/rpc/endpoints/index.d.ts +1 -0
  385. package/rpc/endpoints/index.js +1 -0
  386. package/rpc/endpoints/message-port.rpc-endpoint.js +29 -48
  387. package/rpc/index.js +4 -21
  388. package/rpc/model.js +7 -30
  389. package/rpc/rpc-endpoint.js +17 -40
  390. package/rpc/rpc-error.js +17 -40
  391. package/rpc/rpc.js +223 -235
  392. package/rxjs/cast.js +4 -28
  393. package/rxjs/index.js +13 -30
  394. package/rxjs/intersection-observer.js +25 -48
  395. package/rxjs/media-query.js +8 -27
  396. package/rxjs/mutation-observer.js +28 -50
  397. package/rxjs/noop.js +4 -28
  398. package/rxjs/performance-observer.js +37 -60
  399. package/rxjs/resize-observer.js +28 -50
  400. package/rxjs/retry-backoff.js +23 -47
  401. package/rxjs/slow-array.js +22 -36
  402. package/rxjs/start-with-provider.js +5 -28
  403. package/rxjs/teardown.js +21 -44
  404. package/rxjs/timing.js +26 -57
  405. package/rxjs/touch.js +11 -30
  406. package/schema/array-constraints/index.js +2 -19
  407. package/schema/array-constraints/maximum-length.js +19 -42
  408. package/schema/array-constraints/minimum-length.js +19 -42
  409. package/schema/coercers/boolean.coercer.js +25 -49
  410. package/schema/coercers/date.coercer.js +14 -38
  411. package/schema/coercers/index.js +6 -23
  412. package/schema/coercers/number.coercer.js +12 -36
  413. package/schema/coercers/regexp.coercer.js +18 -41
  414. package/schema/coercers/string.coercer.js +12 -36
  415. package/schema/coercers/uint8-array.coercer.js +20 -44
  416. package/schema/constraints/enumeration.js +27 -49
  417. package/schema/constraints/generic.js +21 -41
  418. package/schema/constraints/index.js +12 -29
  419. package/schema/constraints/integer.js +20 -44
  420. package/schema/constraints/length.js +14 -36
  421. package/schema/constraints/literal.js +22 -44
  422. package/schema/constraints/maximum-date.js +23 -46
  423. package/schema/constraints/maximum-length.js +22 -45
  424. package/schema/constraints/maximum.js +21 -44
  425. package/schema/constraints/minimum-date.js +23 -46
  426. package/schema/constraints/minimum-length.js +22 -45
  427. package/schema/constraints/minimum.js +21 -44
  428. package/schema/constraints/pattern.js +23 -46
  429. package/schema/decorators/class.js +4 -26
  430. package/schema/decorators/coerce.js +4 -26
  431. package/schema/decorators/constraint.js +6 -28
  432. package/schema/decorators/index.js +6 -23
  433. package/schema/decorators/property.js +16 -38
  434. package/schema/decorators/types.js +1 -16
  435. package/schema/decorators/utils.js +45 -73
  436. package/schema/index.js +10 -27
  437. package/schema/schema.error.js +59 -72
  438. package/schema/schema.js +256 -274
  439. package/schema/schemas/any.js +7 -30
  440. package/schema/schemas/array.js +21 -44
  441. package/schema/schemas/assign.js +23 -46
  442. package/schema/schemas/boolean.js +7 -30
  443. package/schema/schemas/constraint.js +6 -29
  444. package/schema/schemas/date.js +20 -43
  445. package/schema/schemas/defaulted.js +8 -31
  446. package/schema/schemas/enumeration.js +15 -38
  447. package/schema/schemas/index.js +26 -43
  448. package/schema/schemas/instance.js +4 -26
  449. package/schema/schemas/literal.js +15 -38
  450. package/schema/schemas/nullable.js +7 -30
  451. package/schema/schemas/number.js +25 -48
  452. package/schema/schemas/object.js +10 -34
  453. package/schema/schemas/omit.js +14 -37
  454. package/schema/schemas/one-or-many.js +13 -35
  455. package/schema/schemas/optional.js +6 -30
  456. package/schema/schemas/partial.js +16 -39
  457. package/schema/schemas/pick.js +14 -37
  458. package/schema/schemas/readable-stream.js +7 -30
  459. package/schema/schemas/record.js +9 -31
  460. package/schema/schemas/regexp.js +7 -30
  461. package/schema/schemas/string.js +36 -59
  462. package/schema/schemas/transform.js +6 -29
  463. package/schema/schemas/uint8-array.js +27 -50
  464. package/schema/schemas/union.js +11 -34
  465. package/schema/schemas/unknown.js +7 -30
  466. package/schema/transformers/generic.js +16 -39
  467. package/schema/transformers/index.js +4 -21
  468. package/schema/transformers/lowercase.js +10 -33
  469. package/schema/transformers/trim.js +10 -33
  470. package/schema/transformers/uppercase.js +10 -33
  471. package/schema/types/index.js +5 -22
  472. package/schema/types/schema-array-constraint.js +1 -24
  473. package/schema/types/schema-value-coercer.js +1 -24
  474. package/schema/types/schema-value-constraint.js +1 -24
  475. package/schema/types/schema-value-transformer.js +1 -24
  476. package/schema/types/types.js +161 -191
  477. package/schema/utils/index.js +2 -19
  478. package/schema/utils/schema.js +120 -142
  479. package/schema/utils/value-type.js +51 -74
  480. package/search-index/elastic/config.js +21 -50
  481. package/search-index/elastic/index.js +6 -23
  482. package/search-index/elastic/keyword-rewriter.js +17 -40
  483. package/search-index/elastic/model/elastic-query.js +1 -16
  484. package/search-index/elastic/model/index-mapping.js +4 -26
  485. package/search-index/elastic/model/index.js +3 -20
  486. package/search-index/elastic/model/sort.js +1 -16
  487. package/search-index/elastic/module.js +43 -68
  488. package/search-index/elastic/query-builder/boolean-query-builder.js +46 -69
  489. package/search-index/elastic/query-builder/index.js +1 -18
  490. package/search-index/elastic/query-converter.js +174 -192
  491. package/search-index/elastic/search-index.js +132 -153
  492. package/search-index/elastic/sort-converter.js +12 -34
  493. package/search-index/elastic/types.js +1 -16
  494. package/search-index/error.js +12 -35
  495. package/search-index/index.js +3 -20
  496. package/search-index/memory/index.js +1 -18
  497. package/search-index/memory/memory-search-index.js +130 -152
  498. package/search-index/search-index.js +30 -53
  499. package/search-index/search-result.js +1 -16
  500. package/serializer/handlers/binary.js +19 -47
  501. package/serializer/handlers/date.js +4 -28
  502. package/serializer/handlers/error.js +7 -31
  503. package/serializer/handlers/index.js +7 -24
  504. package/serializer/handlers/map.js +16 -40
  505. package/serializer/handlers/regex.js +7 -31
  506. package/serializer/handlers/register.js +36 -59
  507. package/serializer/handlers/set.js +13 -37
  508. package/serializer/index.js +3 -30
  509. package/serializer/serializable.js +43 -68
  510. package/serializer/serializer.js +244 -264
  511. package/serializer/types.js +6 -34
  512. package/signals/api.js +18 -46
  513. package/signals/computed-with-dependencies.js +8 -31
  514. package/signals/effect-with-dependencies.js +8 -31
  515. package/signals/implementation/api.js +25 -30
  516. package/signals/implementation/computed.js +77 -73
  517. package/signals/implementation/configure.js +18 -41
  518. package/signals/implementation/effect.js +49 -66
  519. package/signals/implementation/errors.js +5 -29
  520. package/signals/implementation/graph.js +232 -176
  521. package/signals/implementation/index.js +10 -27
  522. package/signals/implementation/signal.js +62 -76
  523. package/signals/implementation/to-observable.js +21 -38
  524. package/signals/implementation/to-signal.js +44 -60
  525. package/signals/implementation/untracked.js +15 -31
  526. package/signals/implementation/watch.js +41 -64
  527. package/signals/index.js +9 -26
  528. package/signals/lazylize.js +4 -27
  529. package/signals/pipe.js +9 -33
  530. package/signals/switch-map.js +4 -27
  531. package/signals/to-signal-2.js +38 -61
  532. package/signals/types.js +1 -16
  533. package/signals/untracked-operator.js +11 -33
  534. package/sse/index.d.ts +1 -0
  535. package/sse/index.js +3 -19
  536. package/sse/model.js +1 -16
  537. package/sse/server-sent-events-source.js +54 -76
  538. package/sse/server-sent-events.js +48 -72
  539. package/supports.js +5 -32
  540. package/templates/index.js +9 -26
  541. package/templates/module.js +27 -48
  542. package/templates/providers/file.template-provider.js +41 -82
  543. package/templates/providers/index.d.ts +2 -0
  544. package/templates/providers/index.js +2 -0
  545. package/templates/providers/memory.template-provider.js +28 -55
  546. package/templates/renderers/handlebars.template-renderer.js +85 -122
  547. package/templates/renderers/index.d.ts +4 -0
  548. package/templates/renderers/index.js +4 -0
  549. package/templates/renderers/jsx.template-renderer.js +29 -56
  550. package/templates/renderers/mjml.template-renderer.js +43 -82
  551. package/templates/renderers/string.template-renderer.js +25 -52
  552. package/templates/resolvers/file.template-resolver.js +47 -90
  553. package/templates/resolvers/index.d.ts +3 -0
  554. package/templates/resolvers/index.js +3 -0
  555. package/templates/resolvers/jsx.template-resolver.js +30 -59
  556. package/templates/resolvers/string.template-resolver.js +30 -59
  557. package/templates/template-renderer.provider.js +37 -66
  558. package/templates/template-resolver.provider.js +37 -66
  559. package/templates/template.model.js +40 -69
  560. package/templates/template.provider.js +1 -24
  561. package/templates/template.renderer.js +11 -34
  562. package/templates/template.resolver.js +1 -24
  563. package/templates/template.service.js +50 -82
  564. package/templates/tokens.js +3 -27
  565. package/templates/types/index.d.ts +1 -0
  566. package/templates/types/index.js +1 -0
  567. package/templates/types/jsx.intrinsic-elements.js +1 -16
  568. package/text/dynamic-text.model.js +40 -69
  569. package/text/index.js +3 -20
  570. package/text/localizable-text.model.js +1 -16
  571. package/text/localization.service.js +197 -229
  572. package/theme/adapters/css-adapter.js +23 -46
  573. package/theme/adapters/index.d.ts +2 -0
  574. package/theme/adapters/index.js +2 -0
  575. package/theme/adapters/tailwind-adapter.js +29 -52
  576. package/theme/index.js +1 -18
  577. package/theme/theme-service.js +109 -147
  578. package/threading/index.js +2 -19
  579. package/threading/thread-pool.js +48 -70
  580. package/threading/thread-worker.js +3 -26
  581. package/tokens.js +2 -25
  582. package/types/geo-json.js +1 -16
  583. package/types.js +2 -16
  584. package/utils/alphabet.js +12 -35
  585. package/utils/any-iterable-iterator.js +4 -27
  586. package/utils/array/array-backtracker.js +42 -65
  587. package/utils/array/array.js +76 -79
  588. package/utils/array/index.js +2 -19
  589. package/utils/async-iterable-helpers/all.js +25 -46
  590. package/utils/async-iterable-helpers/any.js +25 -46
  591. package/utils/async-iterable-helpers/assert.js +22 -43
  592. package/utils/async-iterable-helpers/batch.js +26 -46
  593. package/utils/async-iterable-helpers/buffer.js +47 -64
  594. package/utils/async-iterable-helpers/concat.js +5 -27
  595. package/utils/async-iterable-helpers/default-if-empty.js +9 -32
  596. package/utils/async-iterable-helpers/deferred.js +3 -26
  597. package/utils/async-iterable-helpers/difference.js +24 -48
  598. package/utils/async-iterable-helpers/distinct.js +23 -44
  599. package/utils/async-iterable-helpers/drain.js +4 -26
  600. package/utils/async-iterable-helpers/filter.js +23 -44
  601. package/utils/async-iterable-helpers/first-or-default.js +8 -30
  602. package/utils/async-iterable-helpers/first.js +8 -30
  603. package/utils/async-iterable-helpers/for-each.js +18 -38
  604. package/utils/async-iterable-helpers/group-single.js +3 -26
  605. package/utils/async-iterable-helpers/group-to-map.js +20 -41
  606. package/utils/async-iterable-helpers/group-to-single-map.js +23 -44
  607. package/utils/async-iterable-helpers/group.js +3 -26
  608. package/utils/async-iterable-helpers/includes.js +7 -28
  609. package/utils/async-iterable-helpers/index.js +48 -65
  610. package/utils/async-iterable-helpers/interrupt.js +19 -43
  611. package/utils/async-iterable-helpers/is-async-iterable.js +5 -29
  612. package/utils/async-iterable-helpers/last-or-default.js +13 -36
  613. package/utils/async-iterable-helpers/last.js +13 -36
  614. package/utils/async-iterable-helpers/map-many.js +19 -40
  615. package/utils/async-iterable-helpers/map.js +19 -40
  616. package/utils/async-iterable-helpers/materialize.js +21 -42
  617. package/utils/async-iterable-helpers/metadata.js +36 -54
  618. package/utils/async-iterable-helpers/multiplex.js +23 -44
  619. package/utils/async-iterable-helpers/observable-iterable.js +31 -53
  620. package/utils/async-iterable-helpers/pairwise.js +26 -44
  621. package/utils/async-iterable-helpers/parallel/feed.js +24 -45
  622. package/utils/async-iterable-helpers/parallel/filter.js +8 -31
  623. package/utils/async-iterable-helpers/parallel/for-each.js +21 -44
  624. package/utils/async-iterable-helpers/parallel/group.js +9 -32
  625. package/utils/async-iterable-helpers/parallel/index.js +7 -24
  626. package/utils/async-iterable-helpers/parallel/map.js +6 -29
  627. package/utils/async-iterable-helpers/parallel/tap.js +6 -29
  628. package/utils/async-iterable-helpers/parallel/types.js +1 -16
  629. package/utils/async-iterable-helpers/reduce.js +31 -46
  630. package/utils/async-iterable-helpers/retry.js +43 -58
  631. package/utils/async-iterable-helpers/single-or-default.js +17 -40
  632. package/utils/async-iterable-helpers/single.js +19 -42
  633. package/utils/async-iterable-helpers/skip.js +3 -26
  634. package/utils/async-iterable-helpers/sort.js +6 -29
  635. package/utils/async-iterable-helpers/take-until.js +32 -49
  636. package/utils/async-iterable-helpers/take-while.js +29 -46
  637. package/utils/async-iterable-helpers/take.js +23 -44
  638. package/utils/async-iterable-helpers/tap.js +19 -40
  639. package/utils/async-iterable-helpers/throttle.js +9 -30
  640. package/utils/async-iterable-helpers/to-array.js +10 -33
  641. package/utils/async-iterable-helpers/to-async-iterable-iterator.js +40 -59
  642. package/utils/async-iterable-helpers/to-async-iterator.js +32 -54
  643. package/utils/async-iterable-helpers/to-set.js +10 -33
  644. package/utils/async-iterable-helpers/to-sync-iterable.js +6 -27
  645. package/utils/async-iterable-helpers/types.js +1 -16
  646. package/utils/async-iterable-helpers/while.js +25 -46
  647. package/utils/async-iterator-iterable-iterator.js +41 -62
  648. package/utils/backoff.js +109 -109
  649. package/utils/base64.js +153 -140
  650. package/utils/benchmark.js +114 -107
  651. package/utils/binary-search.js +70 -87
  652. package/utils/binary.js +50 -61
  653. package/utils/clone.js +43 -64
  654. package/utils/comparison.js +76 -98
  655. package/utils/compression.js +107 -118
  656. package/utils/config-parser.js +21 -48
  657. package/utils/crc32.js +20 -42
  658. package/utils/cryptography.js +163 -121
  659. package/utils/date-time.js +102 -138
  660. package/utils/encoding.js +62 -60
  661. package/utils/enum.js +27 -53
  662. package/utils/equals.js +103 -119
  663. package/utils/event-loop.js +19 -39
  664. package/utils/factory-map.js +53 -75
  665. package/utils/feedable-async-iterable.js +47 -70
  666. package/utils/file-reader.js +15 -41
  667. package/utils/format-error.js +36 -57
  668. package/utils/format.js +32 -53
  669. package/utils/function/index.js +2 -19
  670. package/utils/function/memoize.js +38 -53
  671. package/utils/function/throttle.js +26 -48
  672. package/utils/helpers.js +93 -102
  673. package/utils/image.js +62 -88
  674. package/utils/index.js +47 -64
  675. package/utils/iterable-helpers/all.js +8 -31
  676. package/utils/iterable-helpers/any.js +8 -31
  677. package/utils/iterable-helpers/assert.js +7 -30
  678. package/utils/iterable-helpers/batch.js +11 -34
  679. package/utils/iterable-helpers/concat.js +4 -27
  680. package/utils/iterable-helpers/default-if-empty.js +9 -32
  681. package/utils/iterable-helpers/deferred.js +2 -25
  682. package/utils/iterable-helpers/difference.js +21 -45
  683. package/utils/iterable-helpers/distinct.js +9 -32
  684. package/utils/iterable-helpers/drain.js +4 -26
  685. package/utils/iterable-helpers/filter.js +7 -30
  686. package/utils/iterable-helpers/first-or-default.js +8 -30
  687. package/utils/iterable-helpers/first.js +8 -30
  688. package/utils/iterable-helpers/for-each.js +5 -28
  689. package/utils/iterable-helpers/group-single.js +3 -26
  690. package/utils/iterable-helpers/group-to-map.js +9 -32
  691. package/utils/iterable-helpers/group-to-single-map.js +10 -33
  692. package/utils/iterable-helpers/group.js +3 -26
  693. package/utils/iterable-helpers/includes.js +3 -26
  694. package/utils/iterable-helpers/index.js +39 -56
  695. package/utils/iterable-helpers/is-iterable.js +5 -29
  696. package/utils/iterable-helpers/last-or-default.js +13 -36
  697. package/utils/iterable-helpers/last.js +13 -36
  698. package/utils/iterable-helpers/map-many.js +6 -29
  699. package/utils/iterable-helpers/map.js +6 -29
  700. package/utils/iterable-helpers/materialize.js +2 -25
  701. package/utils/iterable-helpers/metadata.js +16 -38
  702. package/utils/iterable-helpers/pairwise.js +11 -33
  703. package/utils/iterable-helpers/range.js +4 -27
  704. package/utils/iterable-helpers/reduce.js +11 -33
  705. package/utils/iterable-helpers/single-or-default.js +14 -37
  706. package/utils/iterable-helpers/single.js +17 -40
  707. package/utils/iterable-helpers/skip.js +6 -29
  708. package/utils/iterable-helpers/sort.js +4 -27
  709. package/utils/iterable-helpers/take-until.js +8 -31
  710. package/utils/iterable-helpers/take-while.js +10 -33
  711. package/utils/iterable-helpers/take.js +10 -33
  712. package/utils/iterable-helpers/tap.js +6 -29
  713. package/utils/iterable-helpers/types.js +1 -16
  714. package/utils/iterable-helpers/while.js +8 -31
  715. package/utils/jwt.js +77 -100
  716. package/utils/map.js +35 -62
  717. package/utils/math.js +102 -64
  718. package/utils/merge.js +26 -45
  719. package/utils/middleware.js +36 -60
  720. package/utils/moving-metric.js +155 -188
  721. package/utils/noop.js +4 -27
  722. package/utils/object/decycle.js +57 -78
  723. package/utils/object/dereference.js +46 -44
  724. package/utils/object/forward-ref.js +59 -73
  725. package/utils/object/index.js +7 -24
  726. package/utils/object/lazy-property.js +81 -96
  727. package/utils/object/merge.js +48 -70
  728. package/utils/object/object.js +106 -136
  729. package/utils/object/property-name.js +69 -72
  730. package/utils/ordered-feedable-async-iterable.js +42 -65
  731. package/utils/patch-worker.js +69 -90
  732. package/utils/patterns.js +7 -29
  733. package/utils/periodic-reporter.js +60 -82
  734. package/utils/periodic-sampler.js +67 -91
  735. package/utils/provider-function-iterable.js +26 -48
  736. package/utils/proxy.js +17 -42
  737. package/utils/random.js +40 -50
  738. package/utils/reflection.js +13 -41
  739. package/utils/repl.js +14 -33
  740. package/utils/set.js +36 -62
  741. package/utils/singleton.js +18 -41
  742. package/utils/sort.js +53 -77
  743. package/utils/stream/finalize-stream.js +43 -62
  744. package/utils/stream/index.js +6 -23
  745. package/utils/stream/readable-stream-adapter.js +35 -57
  746. package/utils/stream/readable-stream-from-promise.js +7 -28
  747. package/utils/stream/size-limited-stream.js +12 -35
  748. package/utils/stream/stream-helper-types.js +1 -16
  749. package/utils/stream/stream-reader.js +30 -52
  750. package/utils/string/hypenate.js +2 -25
  751. package/utils/string/index.js +3 -20
  752. package/utils/string/title-case.js +6 -26
  753. package/utils/string/trim.js +9 -32
  754. package/utils/throw.js +7 -30
  755. package/utils/timer.js +70 -91
  756. package/utils/timing.js +52 -80
  757. package/utils/type-guards.js +253 -1076
  758. package/utils/type-of.js +25 -43
  759. package/utils/units.js +53 -124
  760. package/utils/url-builder.js +47 -68
  761. package/utils/value-or-provider.js +19 -44
  762. package/utils/z-base32.js +42 -63
  763. package/web-types.js +1 -16
  764. package/async-iterator-symbol.d.ts +0 -1
  765. package/async-iterator-symbol.js +0 -29
  766. package/mail/mail-log.repository.d.ts +0 -4
  767. package/mail/mail-log.repository.js +0 -26
  768. package/mail/repositories/mongo-mail-log.repository.js +0 -64
  769. package/notification/api.d.ts +0 -15
  770. package/notification/api.js +0 -56
  771. package/notification/models/index.d.ts +0 -2
  772. package/notification/models/index.js +0 -19
  773. package/notification/models/notification-channel-job.model.d.ts +0 -3
  774. package/notification/models/notification-channel-job.model.js +0 -16
  775. package/notification/models/notification.model.d.ts +0 -45
  776. package/notification/models/notification.model.js +0 -131
  777. package/notification/module.d.ts +0 -9
  778. package/notification/module.js +0 -30
  779. package/notification/notification-channel.service.d.ts +0 -5
  780. package/notification/notification-channel.service.js +0 -25
  781. package/notification/notification.repository.d.ts +0 -5
  782. package/notification/notification.repository.js +0 -25
  783. package/notification/notification.service.d.ts +0 -8
  784. package/notification/notification.service.js +0 -63
@@ -1,323 +1,288 @@
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 });
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
9
6
  };
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;
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
17
9
  };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var authentication_service_exports = {};
20
- __export(authentication_service_exports, {
21
- AuthenticationService: () => AuthenticationService,
22
- AuthenticationServiceOptions: () => AuthenticationServiceOptions
23
- });
24
- module.exports = __toCommonJS(authentication_service_exports);
25
- var import_invalid_token_error = require("../../error/invalid-token.error.js");
26
- var import_not_implemented_error = require("../../error/not-implemented.error.js");
27
- var import_injector = require("../../injector/index.js");
28
- var import_alphabet = require("../../utils/alphabet.js");
29
- var import_cryptography = require("../../utils/cryptography.js");
30
- var import_date_time = require("../../utils/date-time.js");
31
- var import_equals = require("../../utils/equals.js");
32
- var import_jwt = require("../../utils/jwt.js");
33
- var import_random = require("../../utils/random.js");
34
- var import_type_guards = require("../../utils/type-guards.js");
35
- var import_units = require("../../utils/units.js");
36
- var import_authentication_credentials_repository = require("./authentication-credentials.repository.js");
37
- var import_authentication_secret_requirements_validator = require("./authentication-secret-requirements.validator.js");
38
- var import_authentication_secret_reset_handler = require("./authentication-secret-reset.handler.js");
39
- var import_authentication_session_repository = require("./authentication-session.repository.js");
40
- var import_authentication_subject_resolver = require("./authentication-subject.resolver.js");
41
- var import_authentication_token_payload_provider = require("./authentication-token-payload.provider.js");
42
- var import_helper = require("./helper.js");
43
- var __decorate = function(decorators, target, key, desc) {
44
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
46
- r = Reflect.decorate(decorators, target, key, desc);
47
- else
48
- for (var i = decorators.length - 1; i >= 0; i--)
49
- if (d = decorators[i])
50
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
51
- return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
52
12
  };
53
- var __metadata = function(k, v) {
54
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
55
- return Reflect.metadata(k, v);
56
- };
57
- var __param = function(paramIndex, decorator) {
58
- return function(target, key) {
59
- decorator(target, key, paramIndex);
60
- };
61
- };
62
- class AuthenticationServiceOptions {
63
- /**
64
- * Secrets used for signing tokens and refreshTokens
65
- * If single secret is provided, multiple secrets are derived internally
66
- */
67
- secret;
68
- /** Token version, forces refresh on mismatch (useful if payload changes) */
69
- version;
70
- /** How long a token is valid */
71
- tokenTimeToLive;
72
- /** How long a refresh token is valid. Implies session time to live. */
73
- refreshTokenTimeToLive;
74
- /** How long a secret reset token is valid. */
75
- secretResetTokenTimeToLive;
13
+ import { InvalidTokenError } from '../../error/invalid-token.error.js';
14
+ import { NotImplementedError } from '../../error/not-implemented.error.js';
15
+ import { Inject, Optional, Singleton, afterResolve } from '../../injector/index.js';
16
+ import { Alphabet } from '../../utils/alphabet.js';
17
+ import { deriveBytesMultiple, importPbkdf2Key } from '../../utils/cryptography.js';
18
+ import { currentTimestamp, timestampToTimestampSeconds } from '../../utils/date-time.js';
19
+ import { binaryEquals } from '../../utils/equals.js';
20
+ import { createJwtTokenString } from '../../utils/jwt.js';
21
+ import { getRandomBytes, getRandomString } from '../../utils/random.js';
22
+ import { isBinaryData, isString, isUndefined } from '../../utils/type-guards.js';
23
+ import { millisecondsPerDay, millisecondsPerMinute } from '../../utils/units.js';
24
+ import { AuthenticationCredentialsRepository } from './authentication-credentials.repository.js';
25
+ import { AuthenticationSecretRequirementsValidator } from './authentication-secret-requirements.validator.js';
26
+ import { AuthenticationSecretResetHandler } from './authentication-secret-reset.handler.js';
27
+ import { AuthenticationSessionRepository } from './authentication-session.repository.js';
28
+ import { AuthenticationSubjectResolver } from './authentication-subject.resolver.js';
29
+ import { AuthenticationTokenPayloadProvider, GetTokenPayloadContextAction } from './authentication-token-payload.provider.js';
30
+ import { getRefreshTokenFromString, getSecretResetTokenFromString, getTokenFromString } from './helper.js';
31
+ export class AuthenticationServiceOptions {
32
+ /**
33
+ * Secrets used for signing tokens and refreshTokens
34
+ * If single secret is provided, multiple secrets are derived internally
35
+ */
36
+ secret;
37
+ /** Token version, forces refresh on mismatch (useful if payload changes) */
38
+ version;
39
+ /** How long a token is valid */
40
+ tokenTimeToLive;
41
+ /** How long a refresh token is valid. Implies session time to live. */
42
+ refreshTokenTimeToLive;
43
+ /** How long a secret reset token is valid. */
44
+ secretResetTokenTimeToLive;
76
45
  }
77
46
  const SIGNING_SECRETS_LENGTH = 64;
78
- let AuthenticationService = class AuthenticationService2 {
79
- credentialsRepository;
80
- sessionRepository;
81
- authenticationSecretRequirementsValidator;
82
- tokenPayloadProvider;
83
- subjectResolver;
84
- authenticationResetSecretHandler;
85
- options;
86
- secret;
87
- tokenVersion;
88
- tokenTimeToLive;
89
- refreshTokenTimeToLive;
90
- secretResetTokenTimeToLive;
91
- derivedTokenSigningSecret;
92
- derivedRefreshTokenSigningSecret;
93
- derivedSecretResetTokenSigningSecret;
94
- constructor(credentialsRepository, sessionRepository, authenticationSecretRequirementsValidator, subjectResolver, tokenPayloadProvider, authenticationResetSecretHandler, options) {
95
- this.credentialsRepository = credentialsRepository;
96
- this.sessionRepository = sessionRepository;
97
- this.authenticationSecretRequirementsValidator = authenticationSecretRequirementsValidator;
98
- this.subjectResolver = subjectResolver;
99
- this.tokenPayloadProvider = tokenPayloadProvider;
100
- this.authenticationResetSecretHandler = authenticationResetSecretHandler;
101
- this.options = options;
102
- this.tokenVersion = options.version ?? 1;
103
- this.tokenTimeToLive = options.tokenTimeToLive ?? 5 * import_units.millisecondsPerMinute;
104
- this.refreshTokenTimeToLive = options.refreshTokenTimeToLive ?? 5 * import_units.millisecondsPerDay;
105
- this.secretResetTokenTimeToLive = options.secretResetTokenTimeToLive ?? 10 * import_units.millisecondsPerMinute;
106
- }
107
- async [import_injector.afterResolve]() {
108
- await this.initialize();
109
- }
110
- async initialize() {
111
- if ((0, import_type_guards.isString)(this.options.secret) || (0, import_type_guards.isBinaryData)(this.options.secret)) {
112
- await this.deriveSigningSecrets(this.options.secret);
113
- } else {
114
- this.derivedTokenSigningSecret = this.options.secret.tokenSigningSecret;
115
- this.derivedRefreshTokenSigningSecret = this.options.secret.refreshTokenSigningSecret;
116
- this.derivedSecretResetTokenSigningSecret = this.options.secret.secretResetTokenSigningSecret;
47
+ let AuthenticationService = class AuthenticationService {
48
+ credentialsRepository;
49
+ sessionRepository;
50
+ authenticationSecretRequirementsValidator;
51
+ tokenPayloadProvider;
52
+ subjectResolver;
53
+ authenticationResetSecretHandler;
54
+ options;
55
+ secret;
56
+ tokenVersion;
57
+ tokenTimeToLive;
58
+ refreshTokenTimeToLive;
59
+ secretResetTokenTimeToLive;
60
+ derivedTokenSigningSecret;
61
+ derivedRefreshTokenSigningSecret;
62
+ derivedSecretResetTokenSigningSecret;
63
+ constructor(credentialsRepository, sessionRepository, authenticationSecretRequirementsValidator, subjectResolver, tokenPayloadProvider, authenticationResetSecretHandler, options) {
64
+ this.credentialsRepository = credentialsRepository;
65
+ this.sessionRepository = sessionRepository;
66
+ this.authenticationSecretRequirementsValidator = authenticationSecretRequirementsValidator;
67
+ this.subjectResolver = subjectResolver;
68
+ this.tokenPayloadProvider = tokenPayloadProvider;
69
+ this.authenticationResetSecretHandler = authenticationResetSecretHandler;
70
+ this.options = options;
71
+ this.tokenVersion = options.version ?? 1;
72
+ this.tokenTimeToLive = options.tokenTimeToLive ?? (5 * millisecondsPerMinute);
73
+ this.refreshTokenTimeToLive = options.refreshTokenTimeToLive ?? (5 * millisecondsPerDay);
74
+ this.secretResetTokenTimeToLive = options.secretResetTokenTimeToLive ?? (10 * millisecondsPerMinute);
75
+ }
76
+ async [afterResolve]() {
77
+ await this.initialize();
78
+ }
79
+ async initialize() {
80
+ if (isString(this.options.secret) || isBinaryData(this.options.secret)) {
81
+ await this.deriveSigningSecrets(this.options.secret);
82
+ }
83
+ else {
84
+ this.derivedTokenSigningSecret = this.options.secret.tokenSigningSecret;
85
+ this.derivedRefreshTokenSigningSecret = this.options.secret.refreshTokenSigningSecret;
86
+ this.derivedSecretResetTokenSigningSecret = this.options.secret.secretResetTokenSigningSecret;
87
+ }
88
+ }
89
+ async setCredentials(subject, secret, options) {
90
+ const actualSubject = await this.resolveSubject(subject);
91
+ if (options?.skipValidation != true) {
92
+ await this.authenticationSecretRequirementsValidator.validateSecretRequirements(secret);
93
+ }
94
+ const salt = getRandomBytes(32);
95
+ const hash = await this.getHash(secret, salt);
96
+ const credentials = {
97
+ subject: actualSubject,
98
+ hashVersion: 1,
99
+ salt,
100
+ hash
101
+ };
102
+ await this.credentialsRepository.save(credentials);
103
+ }
104
+ async authenticate(subject, secret) {
105
+ const actualSubject = await this.resolveSubject(subject);
106
+ const credentials = await this.credentialsRepository.tryLoadBySubject(actualSubject);
107
+ if (isUndefined(credentials)) {
108
+ return { success: false };
109
+ }
110
+ const hash = await this.getHash(secret, credentials.salt);
111
+ const valid = binaryEquals(hash, credentials.hash);
112
+ if (valid) {
113
+ return { success: true, subject: credentials.subject };
114
+ }
115
+ return { success: false };
116
+ }
117
+ async getToken(subject, authenticationData) {
118
+ const actualSubject = await this.resolveSubject(subject);
119
+ const now = currentTimestamp();
120
+ const end = now + this.refreshTokenTimeToLive;
121
+ const session = await this.sessionRepository.insert({
122
+ subject: actualSubject,
123
+ begin: now,
124
+ end,
125
+ refreshTokenHashVersion: 0,
126
+ refreshTokenSalt: new Uint8Array(),
127
+ refreshTokenHash: new Uint8Array()
128
+ });
129
+ const tokenPayload = await this.tokenPayloadProvider?.getTokenPayload(actualSubject, authenticationData, { action: GetTokenPayloadContextAction.GetToken });
130
+ const { token, jsonToken } = await this.createToken({ additionalTokenPayload: tokenPayload, subject: actualSubject, sessionId: session.id, refreshTokenExpiration: end, timestamp: now });
131
+ const refreshToken = await this.createRefreshToken(actualSubject, session.id, end);
132
+ await this.sessionRepository.extend(session.id, {
133
+ end,
134
+ refreshTokenHashVersion: 1,
135
+ refreshTokenSalt: refreshToken.salt,
136
+ refreshTokenHash: refreshToken.hash
137
+ });
138
+ return { token, jsonToken, refreshToken: refreshToken.token };
139
+ }
140
+ async endSession(sessionId) {
141
+ const now = currentTimestamp();
142
+ await this.sessionRepository.end(sessionId, now);
143
+ }
144
+ async refresh(refreshToken, authenticationData) {
145
+ const validatedToken = await this.validateRefreshToken(refreshToken);
146
+ const sessionId = validatedToken.payload.sessionId;
147
+ const session = await this.sessionRepository.load(sessionId);
148
+ const hash = await this.getHash(validatedToken.payload.secret, session.refreshTokenSalt);
149
+ if (session.end <= currentTimestamp()) {
150
+ throw new InvalidTokenError('Session is expired.');
151
+ }
152
+ if (!binaryEquals(hash, session.refreshTokenHash)) {
153
+ throw new InvalidTokenError('Invalid refresh token.');
154
+ }
155
+ const now = currentTimestamp();
156
+ const newEnd = now + this.refreshTokenTimeToLive;
157
+ const tokenPayload = await this.tokenPayloadProvider?.getTokenPayload(session.subject, authenticationData, { action: GetTokenPayloadContextAction.Refresh });
158
+ const { token, jsonToken } = await this.createToken({ additionalTokenPayload: tokenPayload, subject: session.subject, sessionId, refreshTokenExpiration: newEnd, timestamp: now });
159
+ const newRefreshToken = await this.createRefreshToken(validatedToken.payload.subject, sessionId, newEnd);
160
+ await this.sessionRepository.extend(sessionId, {
161
+ end: newEnd,
162
+ refreshTokenHashVersion: 1,
163
+ refreshTokenSalt: newRefreshToken.salt,
164
+ refreshTokenHash: newRefreshToken.hash
165
+ });
166
+ return { token, jsonToken, refreshToken: newRefreshToken.token };
167
+ }
168
+ async initResetSecret(subject) {
169
+ if (isUndefined(this.authenticationResetSecretHandler)) {
170
+ throw new NotImplementedError();
171
+ }
172
+ const actualSubject = await this.resolveSubject(subject);
173
+ const secretResetToken = await this.createSecretResetToken(actualSubject, currentTimestamp() + this.secretResetTokenTimeToLive);
174
+ const initSecretResetData = {
175
+ subject: actualSubject,
176
+ token: secretResetToken.token
177
+ };
178
+ await this.authenticationResetSecretHandler.handleInitSecretReset(initSecretResetData);
179
+ }
180
+ async resetSecret(tokenString, newSecret) {
181
+ const token = await this.validateSecretResetToken(tokenString);
182
+ await this.setCredentials(token.payload.subject, newSecret);
183
+ }
184
+ async checkSecret(secret) {
185
+ return this.authenticationSecretRequirementsValidator.checkSecretRequirements(secret);
186
+ }
187
+ async testSecret(secret) {
188
+ return this.authenticationSecretRequirementsValidator.testSecretRequirements(secret);
189
+ }
190
+ async validateSecret(secret) {
191
+ return this.authenticationSecretRequirementsValidator.validateSecretRequirements(secret);
192
+ }
193
+ async validateToken(token) {
194
+ return getTokenFromString(token, this.tokenVersion, this.derivedTokenSigningSecret);
195
+ }
196
+ async validateRefreshToken(token) {
197
+ return getRefreshTokenFromString(token, this.derivedRefreshTokenSigningSecret);
198
+ }
199
+ async validateSecretResetToken(token) {
200
+ return getSecretResetTokenFromString(token, this.derivedSecretResetTokenSigningSecret);
117
201
  }
118
- }
119
- async setCredentials(subject, secret, options) {
120
- const actualSubject = await this.resolveSubject(subject);
121
- if (options?.skipValidation != true) {
122
- await this.authenticationSecretRequirementsValidator.validateSecretRequirements(secret);
202
+ async resolveSubject(subject) {
203
+ return this.subjectResolver?.resolveSubject(subject) ?? subject;
123
204
  }
124
- const salt = (0, import_random.getRandomBytes)(32);
125
- const hash = await this.getHash(secret, salt);
126
- const credentials = {
127
- subject: actualSubject,
128
- hashVersion: 1,
129
- salt,
130
- hash
131
- };
132
- await this.credentialsRepository.save(credentials);
133
- }
134
- async authenticate(subject, secret) {
135
- const actualSubject = await this.resolveSubject(subject);
136
- const credentials = await this.credentialsRepository.tryLoadBySubject(actualSubject);
137
- if ((0, import_type_guards.isUndefined)(credentials)) {
138
- return { success: false };
205
+ /** Creates a token without session or refresh token and is not saved in database */
206
+ async createToken({ tokenVersion, jwtId, issuedAt, expiration, additionalTokenPayload, subject, sessionId, refreshTokenExpiration, timestamp = currentTimestamp() }) {
207
+ const header = {
208
+ v: tokenVersion ?? this.tokenVersion,
209
+ alg: 'HS256',
210
+ typ: 'JWT'
211
+ };
212
+ const payload = {
213
+ jti: jwtId ?? getRandomString(24, Alphabet.LowerUpperCaseNumbers),
214
+ iat: issuedAt ?? timestampToTimestampSeconds(timestamp),
215
+ exp: expiration ?? timestampToTimestampSeconds(timestamp + this.tokenTimeToLive),
216
+ refreshTokenExp: timestampToTimestampSeconds(refreshTokenExpiration),
217
+ sessionId,
218
+ subject,
219
+ ...additionalTokenPayload
220
+ };
221
+ const jsonToken = {
222
+ header,
223
+ payload
224
+ };
225
+ const token = await createJwtTokenString(jsonToken, this.derivedTokenSigningSecret);
226
+ return { token, jsonToken };
139
227
  }
140
- const hash = await this.getHash(secret, credentials.salt);
141
- const valid = (0, import_equals.binaryEquals)(hash, credentials.hash);
142
- if (valid) {
143
- return { success: true, subject: credentials.subject };
228
+ /** Creates a refresh token without session or something else. */
229
+ async createRefreshToken(subject, sessionId, expirationTimestamp) {
230
+ const secret = getRandomString(64, Alphabet.LowerUpperCaseNumbers);
231
+ const salt = getRandomBytes(32);
232
+ const hash = await this.getHash(secret, salt);
233
+ const jsonToken = {
234
+ header: {
235
+ alg: 'HS256',
236
+ typ: 'JWT'
237
+ },
238
+ payload: {
239
+ exp: timestampToTimestampSeconds(expirationTimestamp),
240
+ subject,
241
+ sessionId,
242
+ secret
243
+ }
244
+ };
245
+ const token = await createJwtTokenString(jsonToken, this.derivedRefreshTokenSigningSecret);
246
+ return { token, jsonToken, salt, hash: new Uint8Array(hash) };
144
247
  }
145
- return { success: false };
146
- }
147
- async getToken(subject, authenticationData) {
148
- const actualSubject = await this.resolveSubject(subject);
149
- const now = (0, import_date_time.currentTimestamp)();
150
- const end = now + this.refreshTokenTimeToLive;
151
- const session = await this.sessionRepository.insert({
152
- subject: actualSubject,
153
- begin: now,
154
- end,
155
- refreshTokenHashVersion: 0,
156
- refreshTokenSalt: new Uint8Array(),
157
- refreshTokenHash: new Uint8Array()
158
- });
159
- const tokenPayload = await this.tokenPayloadProvider?.getTokenPayload(actualSubject, authenticationData, { action: import_authentication_token_payload_provider.GetTokenPayloadContextAction.GetToken });
160
- const { token, jsonToken } = await this.createToken({ additionalTokenPayload: tokenPayload, subject: actualSubject, sessionId: session.id, refreshTokenExpiration: end, timestamp: now });
161
- const refreshToken = await this.createRefreshToken(actualSubject, session.id, end);
162
- await this.sessionRepository.extend(session.id, {
163
- end,
164
- refreshTokenHashVersion: 1,
165
- refreshTokenSalt: refreshToken.salt,
166
- refreshTokenHash: refreshToken.hash
167
- });
168
- return { token, jsonToken, refreshToken: refreshToken.token };
169
- }
170
- async endSession(sessionId) {
171
- const now = (0, import_date_time.currentTimestamp)();
172
- await this.sessionRepository.end(sessionId, now);
173
- }
174
- async refresh(refreshToken, authenticationData) {
175
- const validatedToken = await this.validateRefreshToken(refreshToken);
176
- const sessionId = validatedToken.payload.sessionId;
177
- const session = await this.sessionRepository.load(sessionId);
178
- const hash = await this.getHash(validatedToken.payload.secret, session.refreshTokenSalt);
179
- if (session.end <= (0, import_date_time.currentTimestamp)()) {
180
- throw new import_invalid_token_error.InvalidTokenError("Session is expired.");
248
+ async createSecretResetToken(subject, expirationTimestamp) {
249
+ const jsonToken = {
250
+ header: {
251
+ alg: 'HS256',
252
+ typ: 'JWT'
253
+ },
254
+ payload: {
255
+ exp: timestampToTimestampSeconds(expirationTimestamp),
256
+ subject
257
+ }
258
+ };
259
+ const token = await createJwtTokenString(jsonToken, this.derivedSecretResetTokenSigningSecret);
260
+ return { token, jsonToken };
181
261
  }
182
- if (!(0, import_equals.binaryEquals)(hash, session.refreshTokenHash)) {
183
- throw new import_invalid_token_error.InvalidTokenError("Invalid refresh token.");
262
+ async deriveSigningSecrets(secret) {
263
+ const key = await importPbkdf2Key(secret);
264
+ const algorithm = { name: 'PBKDF2', hash: 'SHA-512', iterations: 500000, salt: new Uint8Array() };
265
+ const [derivedTokenSigningSecret, derivedRefreshTokenSigningSecret, derivedSecretResetTokenSigningSecret] = await deriveBytesMultiple(algorithm, key, 3, SIGNING_SECRETS_LENGTH);
266
+ this.derivedTokenSigningSecret = derivedTokenSigningSecret;
267
+ this.derivedRefreshTokenSigningSecret = derivedRefreshTokenSigningSecret;
268
+ this.derivedSecretResetTokenSigningSecret = derivedSecretResetTokenSigningSecret;
184
269
  }
185
- const now = (0, import_date_time.currentTimestamp)();
186
- const newEnd = now + this.refreshTokenTimeToLive;
187
- const tokenPayload = await this.tokenPayloadProvider?.getTokenPayload(session.subject, authenticationData, { action: import_authentication_token_payload_provider.GetTokenPayloadContextAction.Refresh });
188
- const { token, jsonToken } = await this.createToken({ additionalTokenPayload: tokenPayload, subject: session.subject, sessionId, refreshTokenExpiration: newEnd, timestamp: now });
189
- const newRefreshToken = await this.createRefreshToken(validatedToken.payload.subject, sessionId, newEnd);
190
- await this.sessionRepository.extend(sessionId, {
191
- end: newEnd,
192
- refreshTokenHashVersion: 1,
193
- refreshTokenSalt: newRefreshToken.salt,
194
- refreshTokenHash: newRefreshToken.hash
195
- });
196
- return { token, jsonToken, refreshToken: newRefreshToken.token };
197
- }
198
- async initResetSecret(subject) {
199
- if ((0, import_type_guards.isUndefined)(this.authenticationResetSecretHandler)) {
200
- throw new import_not_implemented_error.NotImplementedError();
270
+ async getHash(secret, salt) {
271
+ const key = await importPbkdf2Key(secret);
272
+ const hash = await globalThis.crypto.subtle.deriveBits({ name: 'PBKDF2', hash: 'SHA-512', iterations: 250000, salt }, key, 512);
273
+ return new Uint8Array(hash);
201
274
  }
202
- const actualSubject = await this.resolveSubject(subject);
203
- const secretResetToken = await this.createSecretResetToken(actualSubject, (0, import_date_time.currentTimestamp)() + this.secretResetTokenTimeToLive);
204
- const initSecretResetData = {
205
- subject: actualSubject,
206
- token: secretResetToken.token
207
- };
208
- await this.authenticationResetSecretHandler.handleInitSecretReset(initSecretResetData);
209
- }
210
- async resetSecret(tokenString, newSecret) {
211
- const token = await this.validateSecretResetToken(tokenString);
212
- await this.setCredentials(token.payload.subject, newSecret);
213
- }
214
- async checkSecret(secret) {
215
- return this.authenticationSecretRequirementsValidator.checkSecretRequirements(secret);
216
- }
217
- async testSecret(secret) {
218
- return this.authenticationSecretRequirementsValidator.testSecretRequirements(secret);
219
- }
220
- async validateSecret(secret) {
221
- return this.authenticationSecretRequirementsValidator.validateSecretRequirements(secret);
222
- }
223
- async validateToken(token) {
224
- return (0, import_helper.getTokenFromString)(token, this.tokenVersion, this.derivedTokenSigningSecret);
225
- }
226
- async validateRefreshToken(token) {
227
- return (0, import_helper.getRefreshTokenFromString)(token, this.derivedRefreshTokenSigningSecret);
228
- }
229
- async validateSecretResetToken(token) {
230
- return (0, import_helper.getSecretResetTokenFromString)(token, this.derivedSecretResetTokenSigningSecret);
231
- }
232
- async resolveSubject(subject) {
233
- return this.subjectResolver?.resolveSubject(subject) ?? subject;
234
- }
235
- /** Creates a token without session or refresh token and is not saved in database */
236
- async createToken({ tokenVersion, jwtId, issuedAt, expiration, additionalTokenPayload, subject, sessionId, refreshTokenExpiration, timestamp = (0, import_date_time.currentTimestamp)() }) {
237
- const header = {
238
- v: tokenVersion ?? this.tokenVersion,
239
- alg: "HS256",
240
- typ: "JWT"
241
- };
242
- const payload = {
243
- jti: jwtId ?? (0, import_random.getRandomString)(24, import_alphabet.Alphabet.LowerUpperCaseNumbers),
244
- iat: issuedAt ?? (0, import_date_time.timestampToTimestampSeconds)(timestamp),
245
- exp: expiration ?? (0, import_date_time.timestampToTimestampSeconds)(timestamp + this.tokenTimeToLive),
246
- refreshTokenExp: (0, import_date_time.timestampToTimestampSeconds)(refreshTokenExpiration),
247
- sessionId,
248
- subject,
249
- ...additionalTokenPayload
250
- };
251
- const jsonToken = {
252
- header,
253
- payload
254
- };
255
- const token = await (0, import_jwt.createJwtTokenString)(jsonToken, this.derivedTokenSigningSecret);
256
- return { token, jsonToken };
257
- }
258
- /** Creates a refresh token without session or something else. */
259
- async createRefreshToken(subject, sessionId, expirationTimestamp) {
260
- const secret = (0, import_random.getRandomString)(64, import_alphabet.Alphabet.LowerUpperCaseNumbers);
261
- const salt = (0, import_random.getRandomBytes)(32);
262
- const hash = await this.getHash(secret, salt);
263
- const jsonToken = {
264
- header: {
265
- alg: "HS256",
266
- typ: "JWT"
267
- },
268
- payload: {
269
- exp: (0, import_date_time.timestampToTimestampSeconds)(expirationTimestamp),
270
- subject,
271
- sessionId,
272
- secret
273
- }
274
- };
275
- const token = await (0, import_jwt.createJwtTokenString)(jsonToken, this.derivedRefreshTokenSigningSecret);
276
- return { token, jsonToken, salt, hash: new Uint8Array(hash) };
277
- }
278
- async createSecretResetToken(subject, expirationTimestamp) {
279
- const jsonToken = {
280
- header: {
281
- alg: "HS256",
282
- typ: "JWT"
283
- },
284
- payload: {
285
- exp: (0, import_date_time.timestampToTimestampSeconds)(expirationTimestamp),
286
- subject
287
- }
288
- };
289
- const token = await (0, import_jwt.createJwtTokenString)(jsonToken, this.derivedSecretResetTokenSigningSecret);
290
- return { token, jsonToken };
291
- }
292
- async deriveSigningSecrets(secret) {
293
- const key = await (0, import_cryptography.importPbkdf2Key)(secret);
294
- const algorithm = { name: "PBKDF2", hash: "SHA-512", iterations: 5e5, salt: new Uint8Array() };
295
- const [derivedTokenSigningSecret, derivedRefreshTokenSigningSecret, derivedSecretResetTokenSigningSecret] = await (0, import_cryptography.deriveBytesMultiple)(algorithm, key, 3, SIGNING_SECRETS_LENGTH);
296
- this.derivedTokenSigningSecret = derivedTokenSigningSecret;
297
- this.derivedRefreshTokenSigningSecret = derivedRefreshTokenSigningSecret;
298
- this.derivedSecretResetTokenSigningSecret = derivedSecretResetTokenSigningSecret;
299
- }
300
- async getHash(secret, salt) {
301
- const key = await (0, import_cryptography.importPbkdf2Key)(secret);
302
- const hash = await globalThis.crypto.subtle.deriveBits({ name: "PBKDF2", hash: "SHA-512", iterations: 25e4, salt }, key, 512);
303
- return new Uint8Array(hash);
304
- }
305
275
  };
306
276
  AuthenticationService = __decorate([
307
- (0, import_injector.Singleton)(),
308
- __param(3, (0, import_injector.Inject)(import_authentication_subject_resolver.AuthenticationSubjectResolver)),
309
- __param(3, (0, import_injector.Optional)()),
310
- __param(4, (0, import_injector.Inject)(import_authentication_token_payload_provider.AuthenticationTokenPayloadProvider)),
311
- __param(4, (0, import_injector.Optional)()),
312
- __param(5, (0, import_injector.Inject)(import_authentication_secret_reset_handler.AuthenticationSecretResetHandler)),
313
- __param(5, (0, import_injector.Optional)()),
314
- __metadata("design:paramtypes", [
315
- import_authentication_credentials_repository.AuthenticationCredentialsRepository,
316
- import_authentication_session_repository.AuthenticationSessionRepository,
317
- import_authentication_secret_requirements_validator.AuthenticationSecretRequirementsValidator,
318
- Object,
319
- Object,
320
- Object,
321
- AuthenticationServiceOptions
322
- ])
277
+ Singleton(),
278
+ __param(3, Inject(AuthenticationSubjectResolver)),
279
+ __param(3, Optional()),
280
+ __param(4, Inject(AuthenticationTokenPayloadProvider)),
281
+ __param(4, Optional()),
282
+ __param(5, Inject(AuthenticationSecretResetHandler)),
283
+ __param(5, Optional()),
284
+ __metadata("design:paramtypes", [AuthenticationCredentialsRepository,
285
+ AuthenticationSessionRepository,
286
+ AuthenticationSecretRequirementsValidator, Object, Object, Object, AuthenticationServiceOptions])
323
287
  ], AuthenticationService);
288
+ export { AuthenticationService };