@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,329 +1,311 @@
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 http_client_exports = {};
20
- __export(http_client_exports, {
21
- HttpClient: () => HttpClient
22
- });
23
- module.exports = __toCommonJS(http_client_exports);
24
- var import_response = require("../../api/response.js");
25
- var import_injector = require("../../injector/index.js");
26
- var import_array = require("../../utils/array/array.js");
27
- var import_base64 = require("../../utils/base64.js");
28
- var import_encoding = require("../../utils/encoding.js");
29
- var import_middleware = require("../../utils/middleware.js");
30
- var import_object = require("../../utils/object/object.js");
31
- var import_readable_stream_from_promise = require("../../utils/stream/readable-stream-from-promise.js");
32
- var import_type_guards = require("../../utils/type-guards.js");
33
- var import_url_builder = require("../../utils/url-builder.js");
34
- var import_http_headers = require("../http-headers.js");
35
- var import_http_error = require("../http.error.js");
36
- var import_types = require("../types.js");
37
- var import_http_client_options = require("./http-client-options.js");
38
- var import_http_client_request = require("./http-client-request.js");
39
- var import_http_client_adapter = require("./http-client.adapter.js");
40
- var import_tokens = require("./tokens.js");
41
- var __decorate = function(decorators, target, key, desc) {
42
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
43
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
44
- r = Reflect.decorate(decorators, target, key, desc);
45
- else
46
- for (var i = decorators.length - 1; i >= 0; i--)
47
- if (d = decorators[i])
48
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
49
- return c > 3 && r && Object.defineProperty(target, key, r), r;
50
- };
51
- var __metadata = function(k, v) {
52
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
53
- return Reflect.metadata(k, v);
54
- };
55
- let HttpClient = class HttpClient2 {
56
- adapter = (0, import_injector.inject)(import_http_client_adapter.HttpClientAdapter);
57
- middleware = (0, import_injector.injectAll)(import_tokens.HTTP_CLIENT_MIDDLEWARE, void 0, { optional: true });
58
- headers = new import_http_headers.HttpHeaders();
59
- internalMiddleware;
60
- callHandler;
61
- options = (0, import_injector.injectArgument)(this, { optional: true }) ?? (0, import_injector.inject)(import_http_client_options.HttpClientOptions, void 0, { optional: true }) ?? {};
62
- constructor() {
63
- this.internalMiddleware = [
64
- getBuildRequestUrlMiddleware(this.options.baseUrl),
65
- addRequestHeadersMiddleware,
66
- ...this.options.enableErrorHandling ?? true ? [errorMiddleware] : []
67
- ];
68
- this.updateHandlers();
69
- }
70
- addMiddleware(middleware) {
71
- this.middleware.push(middleware);
72
- this.updateHandlers();
73
- }
74
- setDefaultHeader(name, value) {
75
- this.headers.set(name, value);
76
- }
77
- deleteDefaultHeader(name) {
78
- this.headers.remove(name);
79
- }
80
- async head(url, options) {
81
- return this.request("HEAD", url, { ...options });
82
- }
83
- async get(url, options) {
84
- return this.request("GET", url, options);
85
- }
86
- async getText(url, options) {
87
- const response = await this.request("GET", url, { ...options });
88
- return response.body.readAsText();
89
- }
90
- async getJson(url, options) {
91
- const response = await this.request("GET", url, { ...options });
92
- return response.body.readAsJson();
93
- }
94
- async getBuffer(url, options) {
95
- const response = await this.request("GET", url, { ...options });
96
- return response.body.readAsBuffer();
97
- }
98
- getStream(url, options) {
99
- return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
100
- const response = await this.request("GET", url, { ...options });
101
- return response.body.readAsStream();
102
- });
103
- }
104
- getTextStream(url, options) {
105
- return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
106
- const response = await this.request("GET", url, { ...options });
107
- return response.body.readAsTextStream();
108
- });
109
- }
110
- getBinaryStream(url, options) {
111
- return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
112
- const response = await this.request("GET", url, { ...options });
113
- return response.body.readAsBinaryStream();
114
- });
115
- }
116
- async post(url, options) {
117
- return this.request("POST", url, options);
118
- }
119
- async postText(url, options) {
120
- const response = await this.request("POST", url, { ...options });
121
- return response.body.readAsText();
122
- }
123
- async postJson(url, options) {
124
- const response = await this.request("POST", url, { ...options });
125
- return response.body.readAsJson();
126
- }
127
- async postBuffer(url, options) {
128
- const response = await this.request("POST", url, { ...options });
129
- return response.body.readAsBuffer();
130
- }
131
- postStream(url, options) {
132
- return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
133
- const response = await this.request("POST", url, { ...options });
134
- return response.body.readAsBinaryStream();
135
- });
136
- }
137
- async put(url, options) {
138
- return this.request("PUT", url, options);
139
- }
140
- async putText(url, options) {
141
- const response = await this.request("PUT", url, { ...options });
142
- return response.body.readAsText();
143
- }
144
- async putJson(url, options) {
145
- const response = await this.request("PUT", url, { ...options });
146
- return response.body.readAsJson();
147
- }
148
- async putBuffer(url, options) {
149
- const response = await this.request("PUT", url, { ...options });
150
- return response.body.readAsBuffer();
151
- }
152
- putStream(url, options) {
153
- return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
154
- const response = await this.request("PUT", url, { ...options });
155
- return response.body.readAsBinaryStream();
156
- });
157
- }
158
- async patch(url, options) {
159
- return this.request("PATCH", url, options);
160
- }
161
- async patchText(url, options) {
162
- const response = await this.request("PATCH", url, { ...options });
163
- return response.body.readAsText();
164
- }
165
- async patchJson(url, options) {
166
- const response = await this.request("PATCH", url, { ...options });
167
- return response.body.readAsJson();
168
- }
169
- async patchBuffer(url, options) {
170
- const response = await this.request("PATCH", url, { ...options });
171
- return response.body.readAsBuffer();
172
- }
173
- patchStream(url, options) {
174
- return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
175
- const response = await this.request("PATCH", url, { ...options });
176
- return response.body.readAsBinaryStream();
177
- });
178
- }
179
- async delete(url, options) {
180
- return this.request("DELETE", url, options);
181
- }
182
- async deleteText(url, options) {
183
- const response = await this.request("DELETE", url, { ...options });
184
- return response.body.readAsText();
185
- }
186
- async deleteJson(url, options) {
187
- const response = await this.request("DELETE", url, { ...options });
188
- return response.body.readAsJson();
189
- }
190
- async deleteBuffer(url, options) {
191
- const response = await this.request("DELETE", url, { ...options });
192
- return response.body.readAsBuffer();
193
- }
194
- deleteStream(url, options) {
195
- return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
196
- const response = await this.request("DELETE", url, { ...options });
197
- return response.body.readAsBinaryStream();
198
- });
199
- }
200
- async request(method, url, options = {}) {
201
- const request = new import_http_client_request.HttpClientRequest(url, method, options);
202
- return this.rawRequest(request);
203
- }
204
- async rawRequest(request) {
205
- const preparedRequest = this.prepareRequest(request);
206
- return this.callHandler(preparedRequest, request.context);
207
- }
208
- updateHandlers() {
209
- this.callHandler = (0, import_middleware.composeAsyncMiddleware)([...this.middleware, ...this.internalMiddleware], async (request) => this.adapter.call(request), { allowMultipleNextCalls: true });
210
- }
211
- prepareRequest(request) {
212
- const clone = request.clone();
213
- clone.headers = new import_http_headers.HttpHeaders(this.headers);
214
- clone.headers.setMany(request.headers);
215
- return clone;
216
- }
10
+ import { hasErrorHandler, isErrorResponse, parseErrorResponse } from '../../api/response.js';
11
+ import { Singleton, inject, injectAll, injectArgument, resolveArgumentType } from '../../injector/index.js';
12
+ import { toArray } from '../../utils/array/array.js';
13
+ import { encodeBase64 } from '../../utils/base64.js';
14
+ import { encodeUtf8 } from '../../utils/encoding.js';
15
+ import { composeAsyncMiddleware } from '../../utils/middleware.js';
16
+ import { objectEntries } from '../../utils/object/object.js';
17
+ import { readableStreamFromPromise } from '../../utils/stream/readable-stream-from-promise.js';
18
+ import { isDefined, isObject, isUndefined } from '../../utils/type-guards.js';
19
+ import { buildUrl } from '../../utils/url-builder.js';
20
+ import { HttpHeaders } from '../http-headers.js';
21
+ import { HttpError, HttpErrorReason } from '../http.error.js';
22
+ import { normalizeHttpValue, normalizeSingleHttpValue } from '../types.js';
23
+ import { HttpClientOptions } from './http-client-options.js';
24
+ import { HttpClientRequest } from './http-client-request.js';
25
+ import { HttpClientAdapter } from './http-client.adapter.js';
26
+ import { HTTP_CLIENT_MIDDLEWARE } from './tokens.js';
27
+ let HttpClient = class HttpClient {
28
+ adapter = inject(HttpClientAdapter);
29
+ middleware = injectAll(HTTP_CLIENT_MIDDLEWARE, undefined, { optional: true });
30
+ headers = new HttpHeaders();
31
+ internalMiddleware;
32
+ callHandler;
33
+ options = injectArgument(this, { optional: true }) ?? inject(HttpClientOptions, undefined, { optional: true }) ?? {};
34
+ constructor() {
35
+ this.internalMiddleware = [
36
+ getBuildRequestUrlMiddleware(this.options.baseUrl),
37
+ addRequestHeadersMiddleware,
38
+ ...((this.options.enableErrorHandling ?? true) ? [errorMiddleware] : [])
39
+ ];
40
+ this.updateHandlers();
41
+ }
42
+ addMiddleware(middleware) {
43
+ this.middleware.push(middleware);
44
+ this.updateHandlers();
45
+ }
46
+ setDefaultHeader(name, value) {
47
+ this.headers.set(name, value);
48
+ }
49
+ deleteDefaultHeader(name) {
50
+ this.headers.remove(name);
51
+ }
52
+ async head(url, options) {
53
+ return this.request('HEAD', url, { ...options });
54
+ }
55
+ async get(url, options) {
56
+ return this.request('GET', url, options);
57
+ }
58
+ async getText(url, options) {
59
+ const response = await this.request('GET', url, { ...options });
60
+ return response.body.readAsText();
61
+ }
62
+ async getJson(url, options) {
63
+ const response = await this.request('GET', url, { ...options });
64
+ return response.body.readAsJson();
65
+ }
66
+ async getBuffer(url, options) {
67
+ const response = await this.request('GET', url, { ...options });
68
+ return response.body.readAsBuffer();
69
+ }
70
+ getStream(url, options) {
71
+ return readableStreamFromPromise(async () => {
72
+ const response = await this.request('GET', url, { ...options });
73
+ return response.body.readAsStream();
74
+ });
75
+ }
76
+ getTextStream(url, options) {
77
+ return readableStreamFromPromise(async () => {
78
+ const response = await this.request('GET', url, { ...options });
79
+ return response.body.readAsTextStream();
80
+ });
81
+ }
82
+ getBinaryStream(url, options) {
83
+ return readableStreamFromPromise(async () => {
84
+ const response = await this.request('GET', url, { ...options });
85
+ return response.body.readAsBinaryStream();
86
+ });
87
+ }
88
+ async post(url, options) {
89
+ return this.request('POST', url, options);
90
+ }
91
+ async postText(url, options) {
92
+ const response = await this.request('POST', url, { ...options });
93
+ return response.body.readAsText();
94
+ }
95
+ async postJson(url, options) {
96
+ const response = await this.request('POST', url, { ...options });
97
+ return response.body.readAsJson();
98
+ }
99
+ async postBuffer(url, options) {
100
+ const response = await this.request('POST', url, { ...options });
101
+ return response.body.readAsBuffer();
102
+ }
103
+ postStream(url, options) {
104
+ return readableStreamFromPromise(async () => {
105
+ const response = await this.request('POST', url, { ...options });
106
+ return response.body.readAsBinaryStream();
107
+ });
108
+ }
109
+ async put(url, options) {
110
+ return this.request('PUT', url, options);
111
+ }
112
+ async putText(url, options) {
113
+ const response = await this.request('PUT', url, { ...options });
114
+ return response.body.readAsText();
115
+ }
116
+ async putJson(url, options) {
117
+ const response = await this.request('PUT', url, { ...options });
118
+ return response.body.readAsJson();
119
+ }
120
+ async putBuffer(url, options) {
121
+ const response = await this.request('PUT', url, { ...options });
122
+ return response.body.readAsBuffer();
123
+ }
124
+ putStream(url, options) {
125
+ return readableStreamFromPromise(async () => {
126
+ const response = await this.request('PUT', url, { ...options });
127
+ return response.body.readAsBinaryStream();
128
+ });
129
+ }
130
+ async patch(url, options) {
131
+ return this.request('PATCH', url, options);
132
+ }
133
+ async patchText(url, options) {
134
+ const response = await this.request('PATCH', url, { ...options });
135
+ return response.body.readAsText();
136
+ }
137
+ async patchJson(url, options) {
138
+ const response = await this.request('PATCH', url, { ...options });
139
+ return response.body.readAsJson();
140
+ }
141
+ async patchBuffer(url, options) {
142
+ const response = await this.request('PATCH', url, { ...options });
143
+ return response.body.readAsBuffer();
144
+ }
145
+ patchStream(url, options) {
146
+ return readableStreamFromPromise(async () => {
147
+ const response = await this.request('PATCH', url, { ...options });
148
+ return response.body.readAsBinaryStream();
149
+ });
150
+ }
151
+ async delete(url, options) {
152
+ return this.request('DELETE', url, options);
153
+ }
154
+ async deleteText(url, options) {
155
+ const response = await this.request('DELETE', url, { ...options });
156
+ return response.body.readAsText();
157
+ }
158
+ async deleteJson(url, options) {
159
+ const response = await this.request('DELETE', url, { ...options });
160
+ return response.body.readAsJson();
161
+ }
162
+ async deleteBuffer(url, options) {
163
+ const response = await this.request('DELETE', url, { ...options });
164
+ return response.body.readAsBuffer();
165
+ }
166
+ deleteStream(url, options) {
167
+ return readableStreamFromPromise(async () => {
168
+ const response = await this.request('DELETE', url, { ...options });
169
+ return response.body.readAsBinaryStream();
170
+ });
171
+ }
172
+ async request(method, url, options = {}) {
173
+ const request = new HttpClientRequest(url, method, options);
174
+ return this.rawRequest(request);
175
+ }
176
+ async rawRequest(request) {
177
+ const preparedRequest = this.prepareRequest(request);
178
+ return this.callHandler(preparedRequest, request.context);
179
+ }
180
+ updateHandlers() {
181
+ this.callHandler = composeAsyncMiddleware([...this.middleware, ...this.internalMiddleware], async (request) => this.adapter.call(request), { allowMultipleNextCalls: true });
182
+ }
183
+ prepareRequest(request) {
184
+ const clone = request.clone();
185
+ clone.headers = new HttpHeaders(this.headers);
186
+ clone.headers.setMany(request.headers);
187
+ return clone;
188
+ }
217
189
  };
218
190
  HttpClient = __decorate([
219
- (0, import_injector.Singleton)(),
220
- __metadata("design:paramtypes", [])
191
+ Singleton(),
192
+ __metadata("design:paramtypes", [])
221
193
  ], HttpClient);
194
+ export { HttpClient };
222
195
  function getBuildRequestUrlMiddleware(baseUrl) {
223
- async function buildUrlParametersMiddleware(request, next) {
224
- if (!request.mapParameters) {
225
- return next(request);
226
- }
227
- const modifiedRequest = mapParameters(request, baseUrl);
228
- return next(modifiedRequest);
229
- }
230
- return buildUrlParametersMiddleware;
196
+ async function buildUrlParametersMiddleware(request, next) {
197
+ if (!request.mapParameters) {
198
+ return next(request);
199
+ }
200
+ const modifiedRequest = mapParameters(request, baseUrl);
201
+ return next(modifiedRequest);
202
+ }
203
+ return buildUrlParametersMiddleware;
231
204
  }
232
205
  async function addRequestHeadersMiddleware(request, next) {
233
- const clone = request.clone();
234
- const { body, authorization } = clone;
235
- if ((0, import_type_guards.isDefined)(body) && (0, import_type_guards.isUndefined)(clone.headers.contentType)) {
236
- if ((0, import_type_guards.isDefined)(body.json)) {
237
- clone.headers.contentType = "application/json";
238
- } else if ((0, import_type_guards.isDefined)(body.text)) {
239
- clone.headers.contentType = "text/plain";
240
- } else if ((0, import_type_guards.isDefined)(body.form)) {
241
- clone.headers.contentType = "application/x-www-form-urlencoded";
242
- } else if ((0, import_type_guards.isDefined)(body.blob)) {
243
- clone.headers.contentType = body.blob.type.length > 0 ? body.blob.type : "application/octet-stream";
244
- } else if ((0, import_type_guards.isDefined)(body.stream) || (0, import_type_guards.isDefined)(body.buffer)) {
245
- clone.headers.contentType = "application/octet-stream";
246
- }
247
- }
248
- if ((0, import_type_guards.isDefined)(authorization) && (0, import_type_guards.isUndefined)(clone.headers.authorization)) {
249
- if ((0, import_type_guards.isDefined)(authorization.basic)) {
250
- const base64 = (0, import_base64.encodeBase64)((0, import_encoding.encodeUtf8)(`${authorization.basic.username}:${authorization.basic.password}`));
251
- clone.headers.authorization = `Basic ${base64}`;
252
- } else if ((0, import_type_guards.isDefined)(authorization.bearer)) {
253
- clone.headers.authorization = `Bearer ${authorization.bearer}`;
254
- } else if ((0, import_type_guards.isDefined)(authorization.token)) {
255
- clone.headers.authorization = `Token ${authorization.token}`;
256
- }
257
- }
258
- return next(clone);
206
+ const clone = request.clone();
207
+ const { body, authorization } = clone;
208
+ if (isDefined(body) && isUndefined(clone.headers.contentType)) {
209
+ if (isDefined(body.json)) {
210
+ clone.headers.contentType = 'application/json';
211
+ }
212
+ else if (isDefined(body.text)) {
213
+ clone.headers.contentType = 'text/plain';
214
+ }
215
+ else if (isDefined(body.form)) {
216
+ clone.headers.contentType = 'application/x-www-form-urlencoded';
217
+ }
218
+ else if (isDefined(body.blob)) {
219
+ clone.headers.contentType = (body.blob.type.length > 0) ? body.blob.type : 'application/octet-stream';
220
+ }
221
+ else if (isDefined(body.stream) || isDefined(body.buffer)) {
222
+ clone.headers.contentType = 'application/octet-stream';
223
+ }
224
+ }
225
+ if (isDefined(authorization) && isUndefined(clone.headers.authorization)) {
226
+ if (isDefined(authorization.basic)) {
227
+ const base64 = encodeBase64(encodeUtf8(`${authorization.basic.username}:${authorization.basic.password}`));
228
+ clone.headers.authorization = `Basic ${base64}`;
229
+ }
230
+ else if (isDefined(authorization.bearer)) {
231
+ clone.headers.authorization = `Bearer ${authorization.bearer}`;
232
+ }
233
+ else if (isDefined(authorization.token)) {
234
+ clone.headers.authorization = `Token ${authorization.token}`;
235
+ }
236
+ }
237
+ return next(clone);
259
238
  }
260
239
  async function errorMiddleware(request, next) {
261
- try {
262
- const response = await next(request);
263
- if (request.throwOnNon200 && (response.statusCode < 200 || response.statusCode >= 400)) {
264
- const httpError = await import_http_error.HttpError.create(import_http_error.HttpErrorReason.Non200StatusCode, request, response, `Status code ${response.statusCode}.`);
265
- throw httpError;
266
- }
267
- return response;
268
- } catch (error) {
269
- if (!(error instanceof import_http_error.HttpError) || error.responseInstance?.headers.contentType?.includes("json") == false) {
270
- throw error;
271
- }
272
- if ((0, import_type_guards.isDefined)(error.responseBody)) {
273
- if (!(0, import_response.isErrorResponse)(error.responseBody) || !(0, import_response.hasErrorHandler)(error.responseBody)) {
240
+ try {
241
+ const response = await next(request);
242
+ if (request.throwOnNon200 && ((response.statusCode < 200) || (response.statusCode >= 400))) {
243
+ const httpError = await HttpError.create(HttpErrorReason.Non200StatusCode, request, response, `Status code ${response.statusCode}.`);
244
+ throw httpError;
245
+ }
246
+ return response;
247
+ }
248
+ catch (error) {
249
+ if (!(error instanceof HttpError) || (error.responseInstance?.headers.contentType?.includes('json') == false)) {
250
+ throw error;
251
+ }
252
+ if (isDefined(error.responseBody)) {
253
+ if (!isErrorResponse(error.responseBody) || !hasErrorHandler(error.responseBody)) {
254
+ throw error;
255
+ }
256
+ const parsedError = parseErrorResponse(error.responseBody, false);
257
+ if (isDefined(parsedError)) {
258
+ throw parsedError;
259
+ }
260
+ }
274
261
  throw error;
275
- }
276
- const parsedError = (0, import_response.parseErrorResponse)(error.responseBody, false);
277
- if ((0, import_type_guards.isDefined)(parsedError)) {
278
- throw parsedError;
279
- }
280
- }
281
- throw error;
282
- }
262
+ }
283
263
  }
264
+ // eslint-disable-next-line max-statements, max-lines-per-function, complexity
284
265
  function mapParameters(request, baseUrl) {
285
- const clone = request.clone();
286
- const isGetOrHead = request.method == "GET" || request.method == "HEAD";
287
- let url;
288
- const filteredParameterEntries = (0, import_object.objectEntries)(request.parameters ?? {}).filter(([_, value]) => (0, import_type_guards.isDefined)(value));
289
- const filteredParameters = Object.fromEntries(filteredParameterEntries);
290
- let parameterEntries = new Set(filteredParameterEntries);
291
- if (!request.mapParametersToUrl) {
292
- url = new URL(request.url, baseUrl);
293
- } else {
294
- const { parsedUrl, parametersRest } = (0, import_url_builder.buildUrl)(request.url, filteredParameters, { arraySeparator: request.urlParametersSeparator });
295
- url = new URL(parsedUrl, baseUrl);
296
- parameterEntries = new Set((0, import_object.objectEntries)(parametersRest));
297
- }
298
- if (request.mapParametersToBody && !isGetOrHead && (0, import_type_guards.isUndefined)(request.body)) {
299
- clone.body = { json: Object.fromEntries(parameterEntries) };
300
- parameterEntries.clear();
301
- }
302
- if (request.mapParametersToQuery) {
303
- for (const entry of parameterEntries) {
304
- const [parameter, value] = entry;
305
- if ((0, import_type_guards.isUndefined)(value) || (0, import_type_guards.isObject)(value)) {
306
- continue;
307
- }
308
- for (const val of (0, import_array.toArray)(value)) {
309
- url.searchParams.append(parameter, (0, import_types.normalizeSingleHttpValue)(val));
310
- }
311
- parameterEntries.delete(entry);
312
- }
313
- }
314
- if (parameterEntries.size > 0) {
315
- throw new import_http_error.HttpError(import_http_error.HttpErrorReason.InvalidRequest, request, void 0, "Not all parameters could be mapped to url, query and body because request is either GET/HEAD or body is already defined");
316
- }
317
- if ((0, import_type_guards.isDefined)(request.query)) {
318
- for (const [key, valueOrValues] of request.query) {
319
- const normalizedValues = (0, import_types.normalizeHttpValue)(valueOrValues);
320
- if ((0, import_type_guards.isDefined)(normalizedValues)) {
321
- for (const normalizedValue of (0, import_array.toArray)(normalizedValues)) {
322
- url.searchParams.append(key, normalizedValue.toString());
266
+ const clone = request.clone();
267
+ const isGetOrHead = (request.method == 'GET') || (request.method == 'HEAD');
268
+ let url;
269
+ const filteredParameterEntries = objectEntries(request.parameters ?? {}).filter(([_, value]) => isDefined(value));
270
+ const filteredParameters = Object.fromEntries(filteredParameterEntries);
271
+ let parameterEntries = new Set(filteredParameterEntries);
272
+ if (!request.mapParametersToUrl) {
273
+ url = new URL(request.url, baseUrl);
274
+ }
275
+ else {
276
+ const { parsedUrl, parametersRest } = buildUrl(request.url, filteredParameters, { arraySeparator: request.urlParametersSeparator });
277
+ url = new URL(parsedUrl, baseUrl);
278
+ parameterEntries = new Set(objectEntries(parametersRest));
279
+ }
280
+ if (request.mapParametersToBody && !isGetOrHead && isUndefined(request.body)) {
281
+ clone.body = { json: Object.fromEntries(parameterEntries) };
282
+ parameterEntries.clear();
283
+ }
284
+ if (request.mapParametersToQuery) {
285
+ for (const entry of parameterEntries) {
286
+ const [parameter, value] = entry;
287
+ if (isUndefined(value) || isObject(value)) {
288
+ continue;
289
+ }
290
+ for (const val of toArray(value)) {
291
+ url.searchParams.append(parameter, normalizeSingleHttpValue(val));
292
+ }
293
+ parameterEntries.delete(entry);
323
294
  }
324
- }
325
295
  }
326
- }
327
- clone.url = url.href;
328
- return clone;
296
+ if (parameterEntries.size > 0) {
297
+ throw new HttpError(HttpErrorReason.InvalidRequest, request, undefined, 'Not all parameters could be mapped to url, query and body because request is either GET/HEAD or body is already defined');
298
+ }
299
+ if (isDefined(request.query)) {
300
+ for (const [key, valueOrValues] of request.query) {
301
+ const normalizedValues = normalizeHttpValue(valueOrValues);
302
+ if (isDefined(normalizedValues)) {
303
+ for (const normalizedValue of toArray(normalizedValues)) {
304
+ url.searchParams.append(key, normalizedValue.toString());
305
+ }
306
+ }
307
+ }
308
+ }
309
+ clone.url = url.href;
310
+ return clone;
329
311
  }