@tstdl/base 0.85.13 → 0.86.0-beta1

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 (724) hide show
  1. package/api/client/client.js +109 -125
  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 +42 -70
  7. package/api/server/api-request-token.provider.js +12 -40
  8. package/api/server/error-handler.js +25 -46
  9. package/api/server/gateway.js +207 -213
  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 +2 -25
  18. package/api/types.js +14 -40
  19. package/api/utils.js +13 -36
  20. package/application/application.js +155 -175
  21. package/application/index.js +1 -18
  22. package/async-iterator-symbol.js +5 -28
  23. package/authentication/authentication.api.js +89 -113
  24. package/authentication/client/api.client.js +28 -57
  25. package/authentication/client/authentication.service.js +223 -250
  26. package/authentication/client/http-client.middleware.js +21 -44
  27. package/authentication/client/index.js +5 -22
  28. package/authentication/client/module.js +15 -38
  29. package/authentication/client/tokens.js +5 -29
  30. package/authentication/errors/index.js +1 -18
  31. package/authentication/errors/secret-requirements.error.js +6 -29
  32. package/authentication/index.js +2 -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 +9 -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 +24 -52
  41. package/authentication/server/authentication-credentials.repository.js +1 -24
  42. package/authentication/server/authentication-secret-requirements.validator.js +23 -51
  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 +88 -114
  48. package/authentication/server/authentication.service.js +265 -301
  49. package/authentication/server/helper.js +66 -87
  50. package/authentication/server/index.js +11 -28
  51. package/authentication/server/module.js +25 -47
  52. package/authentication/server/mongo/index.js +2 -19
  53. package/authentication/server/mongo/mongo-authentication-credentials.repository.js +52 -84
  54. package/authentication/server/mongo/mongo-authentication-session.repository.js +49 -81
  55. package/browser/browser-context-controller.js +71 -99
  56. package/browser/browser-controller.js +73 -100
  57. package/browser/browser.service.js +83 -114
  58. package/browser/document-controller.js +48 -81
  59. package/browser/element-controller.js +139 -160
  60. package/browser/frame-controller.js +27 -50
  61. package/browser/index.js +10 -27
  62. package/browser/locator-controller.js +36 -59
  63. package/browser/module.js +23 -47
  64. package/browser/page-controller.js +89 -108
  65. package/browser/pdf-options.js +73 -103
  66. package/browser/types.js +1 -16
  67. package/browser/utils.js +77 -107
  68. package/collections/awaitable/awaitable-list.js +99 -122
  69. package/collections/awaitable/awaitable-map.js +93 -116
  70. package/collections/awaitable/awaitable-set.js +63 -86
  71. package/collections/awaitable/index.js +3 -20
  72. package/collections/collection.js +1 -16
  73. package/collections/index.js +6 -23
  74. package/collections/keyed-set.js +53 -77
  75. package/collections/list.js +1 -16
  76. package/collections/observable/index.js +8 -25
  77. package/collections/observable/observable-array.js +95 -118
  78. package/collections/observable/observable-collection-base.js +60 -83
  79. package/collections/observable/observable-collection.js +1 -16
  80. package/collections/observable/observable-list-base.js +55 -78
  81. package/collections/observable/observable-list.js +1 -16
  82. package/collections/observable/observable-map.js +56 -79
  83. package/collections/observable/observable-set.js +75 -98
  84. package/collections/observable/observable-sorted-array-list.js +165 -188
  85. package/collections/sorted-array-list.js +156 -179
  86. package/collections/sorted-list.js +1 -16
  87. package/collections/sorted-map.js +70 -93
  88. package/container/container.js +422 -437
  89. package/container/decorators.js +112 -96
  90. package/container/index.js +10 -27
  91. package/container/interfaces.js +2 -26
  92. package/container/provider.js +28 -59
  93. package/container/resolve-chain.js +74 -99
  94. package/container/resolve.error.js +10 -35
  95. package/container/token.js +17 -38
  96. package/container/type-info.js +1 -16
  97. package/container/types.js +1 -16
  98. package/container/utils.js +18 -42
  99. package/cookie/cookie.js +49 -71
  100. package/cookie/index.js +1 -18
  101. package/core.js +46 -75
  102. package/data-structures/array-dictionary.js +89 -110
  103. package/data-structures/array-list.js +105 -128
  104. package/data-structures/cache.js +41 -64
  105. package/data-structures/circular-buffer.js +195 -216
  106. package/data-structures/collection.js +86 -109
  107. package/data-structures/dictionary.js +51 -75
  108. package/data-structures/index-out-of-bounds.error.js +8 -31
  109. package/data-structures/index.js +15 -32
  110. package/data-structures/iterable-weak-map.js +129 -149
  111. package/data-structures/linked-list.js +367 -385
  112. package/data-structures/list.js +78 -101
  113. package/data-structures/map-dictionary.js +55 -78
  114. package/data-structures/multi-key-map.js +138 -161
  115. package/data-structures/set.js +54 -77
  116. package/data-structures/sorted-array-list.js +142 -169
  117. package/data-structures/weak-ref-map.js +123 -143
  118. package/database/entity-repository.js +2 -26
  119. package/database/entity.js +1 -16
  120. package/database/id.js +8 -29
  121. package/database/index.js +6 -23
  122. package/database/module.js +9 -33
  123. package/database/mongo/classes.js +13 -42
  124. package/database/mongo/index.js +10 -27
  125. package/database/mongo/model/document.js +62 -93
  126. package/database/mongo/model/index.js +1 -18
  127. package/database/mongo/module.js +51 -71
  128. package/database/mongo/mongo-base.repository.js +259 -283
  129. package/database/mongo/mongo-bulk.js +87 -110
  130. package/database/mongo/mongo-entity-repository.js +270 -296
  131. package/database/mongo/operations.js +48 -76
  132. package/database/mongo/query-converter.js +73 -96
  133. package/database/mongo/simple-entity-repository.js +5 -28
  134. package/database/mongo/types.js +2 -25
  135. package/database/query.js +7 -36
  136. package/database/utils.js +2 -25
  137. package/disposable/async-disposer.js +93 -105
  138. package/disposable/disposable.js +7 -33
  139. package/disposable/index.js +3 -20
  140. package/disposable/using.js +15 -37
  141. package/distributed-loop/controller.js +1 -16
  142. package/distributed-loop/distributed-loop.js +78 -105
  143. package/distributed-loop/index.js +3 -20
  144. package/distributed-loop/provider.js +20 -48
  145. package/enumerable/async-enumerable.js +238 -261
  146. package/enumerable/enumerable-methods.js +1 -16
  147. package/enumerable/enumerable.js +177 -200
  148. package/enumerable/index.js +2 -19
  149. package/environment.js +25 -57
  150. package/error/api.error.js +10 -33
  151. package/error/assertion.error.js +6 -29
  152. package/error/bad-request.error.js +6 -29
  153. package/error/custom.error.js +25 -47
  154. package/error/details.error.js +8 -31
  155. package/error/forbidden.error.js +6 -29
  156. package/error/index.js +16 -33
  157. package/error/invalid-token.error.js +6 -29
  158. package/error/max-bytes-exceeded.error.js +9 -32
  159. package/error/method-not-allowed.error.js +6 -29
  160. package/error/multi.error.js +8 -31
  161. package/error/not-found.error.js +6 -29
  162. package/error/not-implemented.error.js +6 -29
  163. package/error/not-supported.error.js +11 -34
  164. package/error/timeout.error.js +6 -29
  165. package/error/unauthorized.error.js +6 -29
  166. package/error/unsupported-media-type.error.js +6 -29
  167. package/examples/api/authentication.js +40 -40
  168. package/examples/api/basic-overview.js +81 -86
  169. package/examples/api/custom-authentication.js +61 -66
  170. package/examples/api/streaming.js +89 -94
  171. package/examples/browser/basic.js +20 -21
  172. package/examples/http/client.js +12 -13
  173. package/examples/mail/basic.js +35 -36
  174. package/examples/mail/templates/hello-name.js +10 -33
  175. package/examples/pdf/basic.js +44 -45
  176. package/examples/pdf/templates/hello-name.js +35 -58
  177. package/examples/reflection/basic.js +52 -84
  178. package/examples/template/basic.js +30 -31
  179. package/examples/template/templates/hello-jsx.js +8 -32
  180. package/examples/template/templates/hello-name.js +18 -41
  181. package/global-this.js +17 -36
  182. package/http/client/adapters/undici-http-client.adapter.js +90 -110
  183. package/http/client/http-client-options.js +14 -37
  184. package/http/client/http-client-request.js +149 -171
  185. package/http/client/http-client-response.js +33 -56
  186. package/http/client/http-client.adapter.js +1 -24
  187. package/http/client/http-client.js +301 -322
  188. package/http/client/index.js +6 -23
  189. package/http/client/module.js +15 -38
  190. package/http/cookie-parser.js +19 -42
  191. package/http/http-body.js +52 -75
  192. package/http/http-form.js +14 -37
  193. package/http/http-headers.js +86 -109
  194. package/http/http-query.js +14 -37
  195. package/http/http-url-parameters.js +8 -31
  196. package/http/http-value-map.js +110 -133
  197. package/http/http.error.js +60 -82
  198. package/http/index.js +11 -28
  199. package/http/server/http-server-request.js +24 -47
  200. package/http/server/http-server-response.js +22 -45
  201. package/http/server/http-server.js +2 -25
  202. package/http/server/index.js +3 -20
  203. package/http/server/node/index.js +2 -19
  204. package/http/server/node/module.js +8 -28
  205. package/http/server/node/node-http-server.js +208 -234
  206. package/http/types.js +21 -47
  207. package/http/utils.js +92 -108
  208. package/image-service/image-service.js +59 -91
  209. package/image-service/imgproxy/imgproxy-image-service.js +86 -124
  210. package/image-service/imgproxy/index.js +1 -18
  211. package/image-service/index.js +1 -18
  212. package/import.js +2 -25
  213. package/index.js +1 -18
  214. package/interfaces.js +1 -16
  215. package/json-path/index.js +1 -18
  216. package/json-path/json-path.js +138 -138
  217. package/key-value-store/index.js +2 -19
  218. package/key-value-store/key-value-store.provider.js +1 -24
  219. package/key-value-store/key-value.store.js +6 -29
  220. package/key-value-store/mongo/index.js +6 -23
  221. package/key-value-store/mongo/module.js +17 -35
  222. package/key-value-store/mongo/mongo-key-value-store.provider.js +20 -48
  223. package/key-value-store/mongo/mongo-key-value.model.js +1 -16
  224. package/key-value-store/mongo/mongo-key-value.repository.js +22 -52
  225. package/key-value-store/mongo/mongo-key-value.store.js +59 -89
  226. package/key-value-store/mongo/tokens.js +2 -25
  227. package/lock/index.js +2 -19
  228. package/lock/lock.js +5 -28
  229. package/lock/mongo/index.js +5 -22
  230. package/lock/mongo/lock.js +111 -135
  231. package/lock/mongo/model.js +1 -16
  232. package/lock/mongo/module.js +18 -37
  233. package/lock/mongo/mongo-lock-repository.js +56 -85
  234. package/lock/mongo/provider.js +38 -68
  235. package/lock/provider.js +1 -24
  236. package/lock/web/index.js +3 -20
  237. package/lock/web/module.js +11 -31
  238. package/lock/web/web-lock.js +80 -105
  239. package/lock/web/web-lock.provider.js +27 -57
  240. package/logger/console/index.js +1 -18
  241. package/logger/console/logger.js +53 -80
  242. package/logger/index.js +2 -19
  243. package/logger/level.js +8 -31
  244. package/logger/logger.js +37 -60
  245. package/logger/noop/index.js +1 -18
  246. package/logger/noop/logger.js +20 -42
  247. package/mail/clients/nodemailer.mail-client.js +62 -90
  248. package/mail/index.js +5 -22
  249. package/mail/mail-log.repository.js +2 -25
  250. package/mail/mail.client.js +34 -62
  251. package/mail/mail.service.js +73 -106
  252. package/mail/models/index.js +6 -23
  253. package/mail/models/mail-address.model.js +1 -16
  254. package/mail/models/mail-content.model.js +1 -16
  255. package/mail/models/mail-data.model.js +1 -16
  256. package/mail/models/mail-log.model.js +1 -16
  257. package/mail/models/mail-send-result.model.js +1 -16
  258. package/mail/models/mail-template.model.js +5 -28
  259. package/mail/module.js +21 -41
  260. package/mail/repositories/mongo-mail-log.repository.js +24 -56
  261. package/mail/tokens.js +2 -25
  262. package/memory/finalization.js +36 -60
  263. package/memory/index.js +2 -19
  264. package/memory/observable-finalization-registry.js +9 -32
  265. package/message-bus/broadcast-channel/broadcast-channel-message-bus-provider.js +23 -53
  266. package/message-bus/broadcast-channel/broadcast-channel-message-bus.js +46 -74
  267. package/message-bus/broadcast-channel/index.js +3 -20
  268. package/message-bus/broadcast-channel/module.js +11 -31
  269. package/message-bus/index.js +3 -20
  270. package/message-bus/local/index.js +3 -20
  271. package/message-bus/local/local-message-bus-provider.js +35 -65
  272. package/message-bus/local/local-message-bus.js +38 -66
  273. package/message-bus/local/module.js +11 -31
  274. package/message-bus/local/types.js +1 -16
  275. package/message-bus/message-bus-base.js +41 -63
  276. package/message-bus/message-bus-provider.js +1 -24
  277. package/message-bus/message-bus.js +5 -28
  278. package/migration/index.js +3 -20
  279. package/migration/migration-state-repository.js +2 -25
  280. package/migration/migration-state.js +1 -16
  281. package/migration/migrator.js +80 -108
  282. package/migration/mongo/index.js +2 -19
  283. package/migration/mongo/migration-state-repository.js +23 -53
  284. package/migration/mongo/module.js +15 -34
  285. package/module/index.js +4 -21
  286. package/module/module-base.js +37 -60
  287. package/module/module-metric-reporter.js +58 -77
  288. package/module/module.js +10 -34
  289. package/module/modules/function.module.js +11 -34
  290. package/module/modules/index.js +2 -19
  291. package/module/modules/web-server.module.js +67 -103
  292. package/module/utils.js +19 -43
  293. package/notification/api.js +21 -50
  294. package/notification/models/index.js +2 -19
  295. package/notification/models/notification-channel-job.model.js +1 -16
  296. package/notification/models/notification.model.js +74 -103
  297. package/notification/module.js +8 -28
  298. package/notification/notification-channel.service.js +1 -24
  299. package/notification/notification.repository.js +1 -24
  300. package/notification/notification.service.js +30 -58
  301. package/object-storage/index.js +3 -20
  302. package/object-storage/object-storage-provider.js +1 -24
  303. package/object-storage/object-storage.js +6 -29
  304. package/object-storage/object.js +7 -30
  305. package/object-storage/s3/index.js +3 -20
  306. package/object-storage/s3/s3.object-storage-provider.js +82 -108
  307. package/object-storage/s3/s3.object-storage.js +130 -157
  308. package/object-storage/s3/s3.object.js +39 -62
  309. package/openid-connect/cached-oidc-configuration.service.js +35 -65
  310. package/openid-connect/index.js +11 -28
  311. package/openid-connect/mongo-oidc-state.repository.js +38 -64
  312. package/openid-connect/oidc-configuration.service.js +38 -66
  313. package/openid-connect/oidc-state.model.js +1 -16
  314. package/openid-connect/oidc-state.repository.js +2 -25
  315. package/openid-connect/oidc.service-model.js +1 -16
  316. package/openid-connect/oidc.service.js +157 -187
  317. package/package.json +11 -11
  318. package/password/have-i-been-pwned.js +21 -39
  319. package/password/index.js +4 -21
  320. package/password/password-check-result.model.js +34 -63
  321. package/password/password-check.js +46 -76
  322. package/password/password-check.localization.js +86 -111
  323. package/pdf/index.js +1 -18
  324. package/pdf/pdf.service.js +171 -206
  325. package/pool/index.js +1 -18
  326. package/pool/pool.js +116 -133
  327. package/process-shutdown.js +54 -77
  328. package/promise/cancelable-promise.js +23 -41
  329. package/promise/deferred-promise.js +68 -92
  330. package/promise/index.js +3 -20
  331. package/promise/lazy-promise.js +24 -47
  332. package/queue/enqueue-batch.js +18 -41
  333. package/queue/index.js +3 -20
  334. package/queue/mongo/index.js +4 -21
  335. package/queue/mongo/job.js +1 -16
  336. package/queue/mongo/mongo-job.repository.js +44 -70
  337. package/queue/mongo/queue.js +242 -265
  338. package/queue/mongo/queue.provider.js +44 -70
  339. package/queue/provider.js +1 -24
  340. package/queue/queue.js +15 -41
  341. package/random/index.js +2 -19
  342. package/random/number-generator/index.js +3 -20
  343. package/random/number-generator/mulberry32.js +34 -51
  344. package/random/number-generator/random-number-generator-function.js +1 -24
  345. package/random/number-generator/random-number-generator.js +8 -31
  346. package/random/number-generator/seeded-random-number-generator.js +5 -28
  347. package/random/number-generator/sfc32.js +41 -64
  348. package/random/number-generator/utils.js +2 -25
  349. package/random/series.js +41 -43
  350. package/reflection/decorator-data.js +63 -80
  351. package/reflection/decorators.js +39 -69
  352. package/reflection/index.js +5 -22
  353. package/reflection/reflection-data-map.js +32 -55
  354. package/reflection/registry.js +112 -132
  355. package/reflection/types.js +1 -16
  356. package/reflection/utils.js +96 -124
  357. package/require.js +3 -26
  358. package/rpc/endpoints/message-port.rpc-endpoint.js +29 -48
  359. package/rpc/index.js +4 -21
  360. package/rpc/model.js +7 -30
  361. package/rpc/rpc-endpoint.js +17 -40
  362. package/rpc/rpc-error.js +17 -40
  363. package/rpc/rpc.js +223 -235
  364. package/rxjs/cast.js +4 -28
  365. package/rxjs/index.js +12 -29
  366. package/rxjs/intersection-observer.js +25 -48
  367. package/rxjs/media-query.js +8 -27
  368. package/rxjs/mutation-observer.js +28 -50
  369. package/rxjs/noop.js +4 -28
  370. package/rxjs/performance-observer.js +37 -60
  371. package/rxjs/resize-observer.js +28 -50
  372. package/rxjs/retry-backoff.js +23 -47
  373. package/rxjs/slow-array.js +22 -36
  374. package/rxjs/teardown.js +21 -44
  375. package/rxjs/timing.js +26 -57
  376. package/rxjs/touch.js +11 -30
  377. package/schema/array-constraints/index.js +2 -19
  378. package/schema/array-constraints/maximum-length.js +19 -42
  379. package/schema/array-constraints/minimum-length.js +19 -42
  380. package/schema/coercers/boolean.coercer.js +25 -49
  381. package/schema/coercers/date.coercer.js +14 -38
  382. package/schema/coercers/index.js +6 -23
  383. package/schema/coercers/number.coercer.js +12 -36
  384. package/schema/coercers/regexp.coercer.js +18 -41
  385. package/schema/coercers/string.coercer.js +12 -36
  386. package/schema/coercers/uint8-array.coercer.js +20 -44
  387. package/schema/constraints/enumeration.js +27 -49
  388. package/schema/constraints/generic.js +21 -41
  389. package/schema/constraints/index.js +12 -29
  390. package/schema/constraints/integer.js +20 -44
  391. package/schema/constraints/length.js +14 -36
  392. package/schema/constraints/literal.js +22 -44
  393. package/schema/constraints/maximum-date.js +23 -46
  394. package/schema/constraints/maximum-length.js +22 -45
  395. package/schema/constraints/maximum.js +21 -44
  396. package/schema/constraints/minimum-date.js +23 -46
  397. package/schema/constraints/minimum-length.js +22 -45
  398. package/schema/constraints/minimum.js +21 -44
  399. package/schema/constraints/pattern.js +23 -46
  400. package/schema/decorators/class.js +4 -26
  401. package/schema/decorators/coerce.js +4 -26
  402. package/schema/decorators/constraint.js +6 -28
  403. package/schema/decorators/index.js +6 -23
  404. package/schema/decorators/property.js +16 -38
  405. package/schema/decorators/types.js +1 -16
  406. package/schema/decorators/utils.js +45 -73
  407. package/schema/index.js +10 -27
  408. package/schema/schema.error.js +59 -72
  409. package/schema/schema.js +256 -274
  410. package/schema/schemas/any.js +7 -30
  411. package/schema/schemas/array.js +21 -44
  412. package/schema/schemas/assign.js +23 -46
  413. package/schema/schemas/boolean.js +7 -30
  414. package/schema/schemas/constraint.js +6 -29
  415. package/schema/schemas/date.js +20 -43
  416. package/schema/schemas/defaulted.js +8 -31
  417. package/schema/schemas/enumeration.js +15 -38
  418. package/schema/schemas/index.js +26 -43
  419. package/schema/schemas/instance.js +4 -26
  420. package/schema/schemas/literal.js +15 -38
  421. package/schema/schemas/nullable.js +7 -30
  422. package/schema/schemas/number.js +25 -48
  423. package/schema/schemas/object.js +10 -34
  424. package/schema/schemas/omit.js +14 -37
  425. package/schema/schemas/one-or-many.js +13 -35
  426. package/schema/schemas/optional.js +6 -30
  427. package/schema/schemas/partial.js +16 -39
  428. package/schema/schemas/pick.js +14 -37
  429. package/schema/schemas/readable-stream.js +7 -30
  430. package/schema/schemas/record.js +9 -31
  431. package/schema/schemas/regexp.js +7 -30
  432. package/schema/schemas/string.js +36 -59
  433. package/schema/schemas/transform.js +6 -29
  434. package/schema/schemas/uint8-array.js +27 -50
  435. package/schema/schemas/union.js +11 -34
  436. package/schema/schemas/unknown.js +7 -30
  437. package/schema/transformers/generic.js +16 -39
  438. package/schema/transformers/index.js +4 -21
  439. package/schema/transformers/lowercase.js +10 -33
  440. package/schema/transformers/trim.js +10 -33
  441. package/schema/transformers/uppercase.js +10 -33
  442. package/schema/types/index.js +5 -22
  443. package/schema/types/schema-array-constraint.js +1 -24
  444. package/schema/types/schema-value-coercer.js +1 -24
  445. package/schema/types/schema-value-constraint.js +1 -24
  446. package/schema/types/schema-value-transformer.js +1 -24
  447. package/schema/types/types.js +161 -191
  448. package/schema/utils/index.js +2 -19
  449. package/schema/utils/schema.js +120 -142
  450. package/schema/utils/value-type.js +51 -74
  451. package/search-index/elastic/config.js +19 -49
  452. package/search-index/elastic/index.js +6 -23
  453. package/search-index/elastic/keyword-rewriter.js +17 -40
  454. package/search-index/elastic/model/elastic-query.js +1 -16
  455. package/search-index/elastic/model/index-mapping.js +4 -26
  456. package/search-index/elastic/model/index.js +3 -20
  457. package/search-index/elastic/model/sort.js +1 -16
  458. package/search-index/elastic/module.js +38 -64
  459. package/search-index/elastic/query-builder/boolean-query-builder.js +46 -69
  460. package/search-index/elastic/query-builder/index.js +1 -18
  461. package/search-index/elastic/query-converter.js +174 -192
  462. package/search-index/elastic/search-index.js +132 -153
  463. package/search-index/elastic/sort-converter.js +12 -34
  464. package/search-index/elastic/types.js +1 -16
  465. package/search-index/error.js +12 -35
  466. package/search-index/index.js +3 -20
  467. package/search-index/memory/index.js +1 -18
  468. package/search-index/memory/memory-search-index.js +130 -152
  469. package/search-index/search-index.js +30 -53
  470. package/search-index/search-result.js +1 -16
  471. package/serializer/handlers/binary.js +19 -47
  472. package/serializer/handlers/date.js +4 -28
  473. package/serializer/handlers/error.js +7 -31
  474. package/serializer/handlers/index.js +7 -24
  475. package/serializer/handlers/map.js +16 -40
  476. package/serializer/handlers/regex.js +7 -31
  477. package/serializer/handlers/register.js +36 -59
  478. package/serializer/handlers/set.js +13 -37
  479. package/serializer/index.js +3 -30
  480. package/serializer/serializable.js +43 -68
  481. package/serializer/serializer.js +244 -264
  482. package/serializer/types.js +6 -34
  483. package/signals/api.js +17 -45
  484. package/signals/computed-with-dependencies.js +8 -31
  485. package/signals/effect-with-dependencies.js +8 -31
  486. package/signals/implementation/api.js +33 -33
  487. package/signals/implementation/computed.js +125 -104
  488. package/signals/implementation/configure.js +18 -41
  489. package/signals/implementation/effect.js +48 -66
  490. package/signals/implementation/errors.js +5 -29
  491. package/signals/implementation/graph.js +164 -136
  492. package/signals/implementation/index.js +10 -27
  493. package/signals/implementation/signal.js +91 -101
  494. package/signals/implementation/to-observable.js +21 -38
  495. package/signals/implementation/to-signal.js +44 -60
  496. package/signals/implementation/untracked.js +15 -31
  497. package/signals/implementation/watch.js +58 -73
  498. package/signals/index.d.ts +1 -0
  499. package/signals/index.js +7 -23
  500. package/signals/pipe.js +7 -31
  501. package/signals/switch-map.js +4 -27
  502. package/signals/types.js +1 -16
  503. package/signals/untracked-operator.d.ts +3 -0
  504. package/signals/untracked-operator.js +12 -0
  505. package/sse/index.js +2 -19
  506. package/sse/model.js +1 -16
  507. package/sse/server-sent-events-source.js +54 -76
  508. package/sse/server-sent-events.js +48 -72
  509. package/supports.js +5 -32
  510. package/templates/index.js +9 -26
  511. package/templates/module.js +37 -58
  512. package/templates/providers/file.template-provider.js +39 -81
  513. package/templates/providers/memory.template-provider.js +27 -55
  514. package/templates/renderers/handlebars.template-renderer.js +84 -122
  515. package/templates/renderers/jsx.template-renderer.js +28 -56
  516. package/templates/renderers/mjml.template-renderer.js +42 -82
  517. package/templates/renderers/string.template-renderer.js +24 -52
  518. package/templates/resolvers/file.template-resolver.js +45 -89
  519. package/templates/resolvers/jsx.template-resolver.js +29 -59
  520. package/templates/resolvers/string.template-resolver.js +29 -59
  521. package/templates/template-renderer.provider.js +36 -66
  522. package/templates/template-resolver.provider.js +36 -66
  523. package/templates/template.model.js +39 -69
  524. package/templates/template.provider.js +1 -24
  525. package/templates/template.renderer.js +11 -34
  526. package/templates/template.resolver.js +1 -24
  527. package/templates/template.service.js +49 -82
  528. package/templates/tokens.js +3 -27
  529. package/templates/types/jsx.intrinsic-elements.js +1 -16
  530. package/text/dynamic-text.model.js +41 -70
  531. package/text/index.js +3 -20
  532. package/text/localizable-text.model.js +1 -16
  533. package/text/localization.service.js +196 -229
  534. package/theme/adapters/css-adapter.js +23 -46
  535. package/theme/adapters/tailwind-adapter.js +29 -52
  536. package/theme/index.js +1 -18
  537. package/theme/theme-service.js +107 -146
  538. package/threading/index.js +2 -19
  539. package/threading/thread-pool.js +48 -70
  540. package/threading/thread-worker.js +3 -26
  541. package/tokens.js +2 -25
  542. package/types/geo-json.js +1 -16
  543. package/types.js +2 -16
  544. package/utils/alphabet.js +12 -35
  545. package/utils/any-iterable-iterator.js +4 -27
  546. package/utils/array/array-backtracker.js +42 -65
  547. package/utils/array/array.js +76 -79
  548. package/utils/array/index.js +2 -19
  549. package/utils/async-iterable-helpers/all.js +25 -46
  550. package/utils/async-iterable-helpers/any.js +25 -46
  551. package/utils/async-iterable-helpers/assert.js +22 -43
  552. package/utils/async-iterable-helpers/batch.js +26 -46
  553. package/utils/async-iterable-helpers/buffer.js +47 -64
  554. package/utils/async-iterable-helpers/concat.js +5 -27
  555. package/utils/async-iterable-helpers/default-if-empty.js +9 -32
  556. package/utils/async-iterable-helpers/deferred.js +3 -26
  557. package/utils/async-iterable-helpers/difference.js +24 -48
  558. package/utils/async-iterable-helpers/distinct.js +23 -44
  559. package/utils/async-iterable-helpers/drain.js +4 -26
  560. package/utils/async-iterable-helpers/filter.js +23 -44
  561. package/utils/async-iterable-helpers/first-or-default.js +8 -30
  562. package/utils/async-iterable-helpers/first.js +8 -30
  563. package/utils/async-iterable-helpers/for-each.js +18 -38
  564. package/utils/async-iterable-helpers/group-single.js +3 -26
  565. package/utils/async-iterable-helpers/group-to-map.js +20 -41
  566. package/utils/async-iterable-helpers/group-to-single-map.js +23 -44
  567. package/utils/async-iterable-helpers/group.js +3 -26
  568. package/utils/async-iterable-helpers/includes.js +7 -28
  569. package/utils/async-iterable-helpers/index.js +48 -65
  570. package/utils/async-iterable-helpers/interrupt.js +19 -43
  571. package/utils/async-iterable-helpers/is-async-iterable.js +5 -29
  572. package/utils/async-iterable-helpers/last-or-default.js +13 -36
  573. package/utils/async-iterable-helpers/last.js +13 -36
  574. package/utils/async-iterable-helpers/map-many.js +19 -40
  575. package/utils/async-iterable-helpers/map.js +19 -40
  576. package/utils/async-iterable-helpers/materialize.js +21 -42
  577. package/utils/async-iterable-helpers/metadata.js +38 -58
  578. package/utils/async-iterable-helpers/multiplex.js +23 -44
  579. package/utils/async-iterable-helpers/observable-iterable.js +31 -53
  580. package/utils/async-iterable-helpers/pairwise.js +26 -44
  581. package/utils/async-iterable-helpers/parallel/feed.js +24 -45
  582. package/utils/async-iterable-helpers/parallel/filter.js +8 -31
  583. package/utils/async-iterable-helpers/parallel/for-each.js +21 -44
  584. package/utils/async-iterable-helpers/parallel/group.js +9 -32
  585. package/utils/async-iterable-helpers/parallel/index.js +7 -24
  586. package/utils/async-iterable-helpers/parallel/map.js +6 -29
  587. package/utils/async-iterable-helpers/parallel/tap.js +6 -29
  588. package/utils/async-iterable-helpers/parallel/types.js +1 -16
  589. package/utils/async-iterable-helpers/reduce.js +31 -46
  590. package/utils/async-iterable-helpers/retry.js +43 -58
  591. package/utils/async-iterable-helpers/single-or-default.js +17 -40
  592. package/utils/async-iterable-helpers/single.js +19 -42
  593. package/utils/async-iterable-helpers/skip.js +3 -26
  594. package/utils/async-iterable-helpers/sort.js +6 -29
  595. package/utils/async-iterable-helpers/take-until.js +32 -49
  596. package/utils/async-iterable-helpers/take-while.js +29 -46
  597. package/utils/async-iterable-helpers/take.js +10 -33
  598. package/utils/async-iterable-helpers/tap.js +19 -40
  599. package/utils/async-iterable-helpers/throttle.js +9 -30
  600. package/utils/async-iterable-helpers/to-array.js +10 -33
  601. package/utils/async-iterable-helpers/to-async-iterable-iterator.js +40 -59
  602. package/utils/async-iterable-helpers/to-async-iterator.js +32 -54
  603. package/utils/async-iterable-helpers/to-set.js +10 -33
  604. package/utils/async-iterable-helpers/to-sync-iterable.js +6 -27
  605. package/utils/async-iterable-helpers/types.js +1 -16
  606. package/utils/async-iterable-helpers/while.js +25 -46
  607. package/utils/async-iterator-iterable-iterator.js +41 -62
  608. package/utils/backoff.js +109 -109
  609. package/utils/base64.js +153 -140
  610. package/utils/benchmark.js +114 -107
  611. package/utils/binary-search.js +70 -87
  612. package/utils/binary.js +50 -61
  613. package/utils/cancellation-token.js +120 -140
  614. package/utils/clone.js +43 -64
  615. package/utils/comparison.js +76 -98
  616. package/utils/compression.js +107 -118
  617. package/utils/config-parser.js +21 -48
  618. package/utils/crc32.js +20 -42
  619. package/utils/cryptography.js +163 -121
  620. package/utils/date-time.js +102 -138
  621. package/utils/encoding.js +62 -60
  622. package/utils/enum.js +27 -53
  623. package/utils/equals.js +103 -119
  624. package/utils/event-loop.js +19 -39
  625. package/utils/factory-map.js +53 -75
  626. package/utils/feedable-async-iterable.js +47 -70
  627. package/utils/file-reader.js +15 -41
  628. package/utils/format-error.js +36 -57
  629. package/utils/format.js +32 -53
  630. package/utils/function/index.js +2 -19
  631. package/utils/function/memoize.js +38 -53
  632. package/utils/function/throttle.js +26 -48
  633. package/utils/helpers.js +93 -102
  634. package/utils/image.js +62 -88
  635. package/utils/index.js +48 -65
  636. package/utils/iterable-helpers/all.js +8 -31
  637. package/utils/iterable-helpers/any.js +8 -31
  638. package/utils/iterable-helpers/assert.js +7 -30
  639. package/utils/iterable-helpers/batch.js +11 -34
  640. package/utils/iterable-helpers/concat.js +4 -27
  641. package/utils/iterable-helpers/default-if-empty.js +9 -32
  642. package/utils/iterable-helpers/deferred.js +2 -25
  643. package/utils/iterable-helpers/difference.js +21 -45
  644. package/utils/iterable-helpers/distinct.js +9 -32
  645. package/utils/iterable-helpers/drain.js +4 -26
  646. package/utils/iterable-helpers/filter.js +7 -30
  647. package/utils/iterable-helpers/first-or-default.js +8 -30
  648. package/utils/iterable-helpers/first.js +8 -30
  649. package/utils/iterable-helpers/for-each.js +5 -28
  650. package/utils/iterable-helpers/group-single.js +3 -26
  651. package/utils/iterable-helpers/group-to-map.js +9 -32
  652. package/utils/iterable-helpers/group-to-single-map.js +10 -33
  653. package/utils/iterable-helpers/group.js +3 -26
  654. package/utils/iterable-helpers/includes.js +3 -26
  655. package/utils/iterable-helpers/index.js +39 -56
  656. package/utils/iterable-helpers/is-iterable.js +5 -29
  657. package/utils/iterable-helpers/last-or-default.js +13 -36
  658. package/utils/iterable-helpers/last.js +13 -36
  659. package/utils/iterable-helpers/map-many.js +6 -29
  660. package/utils/iterable-helpers/map.js +6 -29
  661. package/utils/iterable-helpers/materialize.js +2 -25
  662. package/utils/iterable-helpers/metadata.js +16 -38
  663. package/utils/iterable-helpers/pairwise.js +11 -33
  664. package/utils/iterable-helpers/range.js +4 -27
  665. package/utils/iterable-helpers/reduce.js +11 -33
  666. package/utils/iterable-helpers/single-or-default.js +14 -37
  667. package/utils/iterable-helpers/single.js +17 -40
  668. package/utils/iterable-helpers/skip.js +6 -29
  669. package/utils/iterable-helpers/sort.js +4 -27
  670. package/utils/iterable-helpers/take-until.js +8 -31
  671. package/utils/iterable-helpers/take-while.js +10 -33
  672. package/utils/iterable-helpers/take.js +10 -33
  673. package/utils/iterable-helpers/tap.js +6 -29
  674. package/utils/iterable-helpers/types.js +1 -16
  675. package/utils/iterable-helpers/while.js +8 -31
  676. package/utils/jwt.js +77 -100
  677. package/utils/map.js +35 -62
  678. package/utils/math.js +102 -64
  679. package/utils/merge.js +26 -45
  680. package/utils/middleware.js +36 -60
  681. package/utils/moving-metric.js +155 -188
  682. package/utils/noop.js +4 -27
  683. package/utils/object/decycle.js +57 -78
  684. package/utils/object/dereference.js +46 -44
  685. package/utils/object/forward-ref.js +57 -73
  686. package/utils/object/index.js +7 -24
  687. package/utils/object/lazy-property.js +81 -96
  688. package/utils/object/merge.js +48 -70
  689. package/utils/object/object.js +106 -136
  690. package/utils/object/property-name.js +69 -72
  691. package/utils/ordered-feedable-async-iterable.js +42 -65
  692. package/utils/patch-worker.js +69 -90
  693. package/utils/patterns.js +7 -29
  694. package/utils/periodic-reporter.js +60 -82
  695. package/utils/periodic-sampler.js +67 -91
  696. package/utils/provider-function-iterable.js +26 -48
  697. package/utils/proxy.js +17 -42
  698. package/utils/random.js +40 -50
  699. package/utils/reflection.js +13 -41
  700. package/utils/repl.js +14 -33
  701. package/utils/set.js +36 -62
  702. package/utils/singleton.js +18 -41
  703. package/utils/sort.js +53 -77
  704. package/utils/stream/finalize-stream.js +43 -62
  705. package/utils/stream/index.js +6 -23
  706. package/utils/stream/readable-stream-adapter.js +35 -57
  707. package/utils/stream/readable-stream-from-promise.js +7 -28
  708. package/utils/stream/size-limited-stream.js +12 -35
  709. package/utils/stream/stream-helper-types.js +1 -16
  710. package/utils/stream/stream-reader.js +30 -52
  711. package/utils/string/hypenate.js +2 -25
  712. package/utils/string/index.js +3 -20
  713. package/utils/string/title-case.js +6 -26
  714. package/utils/string/trim.js +9 -32
  715. package/utils/throw.js +7 -30
  716. package/utils/timer.js +70 -91
  717. package/utils/timing.js +52 -80
  718. package/utils/type-guards.js +253 -1076
  719. package/utils/type-of.js +25 -43
  720. package/utils/units.js +53 -124
  721. package/utils/url-builder.js +47 -68
  722. package/utils/value-or-provider.js +6 -29
  723. package/utils/z-base32.js +42 -63
  724. package/web-types.js +1 -16
@@ -1,339 +1,318 @@
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_container = require("../../container/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 __decorate = function(decorators, target, key, desc) {
41
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
43
- r = Reflect.decorate(decorators, target, key, desc);
44
- else
45
- for (var i = decorators.length - 1; i >= 0; i--)
46
- if (d = decorators[i])
47
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
48
- 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); }
49
12
  };
50
- var __metadata = function(k, v) {
51
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
52
- return Reflect.metadata(k, v);
53
- };
54
- var __param = function(paramIndex, decorator) {
55
- return function(target, key) {
56
- decorator(target, key, paramIndex);
57
- };
58
- };
59
- let HttpClient = class HttpClient2 {
60
- adapter;
61
- headers;
62
- middleware;
63
- internalMiddleware;
64
- callHandler;
65
- options;
66
- constructor(adapter, options = {}) {
67
- this.adapter = adapter;
68
- this.options = options;
69
- this.middleware = [...options.middleware ?? []];
70
- this.headers = new import_http_headers.HttpHeaders();
71
- this.internalMiddleware = [
72
- getBuildRequestUrlMiddleware(options.baseUrl),
73
- addRequestHeadersMiddleware,
74
- ...options.enableErrorHandling ?? true ? [errorMiddleware] : []
75
- ];
76
- this.updateHandlers();
77
- }
78
- addMiddleware(middleware) {
79
- this.middleware.push(middleware);
80
- this.updateHandlers();
81
- }
82
- setDefaultHeader(name, value) {
83
- this.headers.set(name, value);
84
- }
85
- deleteDefaultHeader(name) {
86
- this.headers.remove(name);
87
- }
88
- async head(url, options) {
89
- return this.request("HEAD", url, { ...options });
90
- }
91
- async get(url, options) {
92
- return this.request("GET", url, options);
93
- }
94
- async getText(url, options) {
95
- const response = await this.request("GET", url, { ...options });
96
- return response.body.readAsText();
97
- }
98
- async getJson(url, options) {
99
- const response = await this.request("GET", url, { ...options });
100
- return response.body.readAsJson();
101
- }
102
- async getBuffer(url, options) {
103
- const response = await this.request("GET", url, { ...options });
104
- return response.body.readAsBuffer();
105
- }
106
- getStream(url, options) {
107
- return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
108
- const response = await this.request("GET", url, { ...options });
109
- return response.body.readAsStream();
110
- });
111
- }
112
- getTextStream(url, options) {
113
- return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
114
- const response = await this.request("GET", url, { ...options });
115
- return response.body.readAsTextStream();
116
- });
117
- }
118
- getBinaryStream(url, options) {
119
- return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
120
- const response = await this.request("GET", url, { ...options });
121
- return response.body.readAsBinaryStream();
122
- });
123
- }
124
- async post(url, options) {
125
- return this.request("POST", url, options);
126
- }
127
- async postText(url, options) {
128
- const response = await this.request("POST", url, { ...options });
129
- return response.body.readAsText();
130
- }
131
- async postJson(url, options) {
132
- const response = await this.request("POST", url, { ...options });
133
- return response.body.readAsJson();
134
- }
135
- async postBuffer(url, options) {
136
- const response = await this.request("POST", url, { ...options });
137
- return response.body.readAsBuffer();
138
- }
139
- postStream(url, options) {
140
- return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
141
- const response = await this.request("POST", url, { ...options });
142
- return response.body.readAsBinaryStream();
143
- });
144
- }
145
- async put(url, options) {
146
- return this.request("PUT", url, options);
147
- }
148
- async putText(url, options) {
149
- const response = await this.request("PUT", url, { ...options });
150
- return response.body.readAsText();
151
- }
152
- async putJson(url, options) {
153
- const response = await this.request("PUT", url, { ...options });
154
- return response.body.readAsJson();
155
- }
156
- async putBuffer(url, options) {
157
- const response = await this.request("PUT", url, { ...options });
158
- return response.body.readAsBuffer();
159
- }
160
- putStream(url, options) {
161
- return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
162
- const response = await this.request("PUT", url, { ...options });
163
- return response.body.readAsBinaryStream();
164
- });
165
- }
166
- async patch(url, options) {
167
- return this.request("PATCH", url, options);
168
- }
169
- async patchText(url, options) {
170
- const response = await this.request("PATCH", url, { ...options });
171
- return response.body.readAsText();
172
- }
173
- async patchJson(url, options) {
174
- const response = await this.request("PATCH", url, { ...options });
175
- return response.body.readAsJson();
176
- }
177
- async patchBuffer(url, options) {
178
- const response = await this.request("PATCH", url, { ...options });
179
- return response.body.readAsBuffer();
180
- }
181
- patchStream(url, options) {
182
- return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
183
- const response = await this.request("PATCH", url, { ...options });
184
- return response.body.readAsBinaryStream();
185
- });
186
- }
187
- async delete(url, options) {
188
- return this.request("DELETE", url, options);
189
- }
190
- async deleteText(url, options) {
191
- const response = await this.request("DELETE", url, { ...options });
192
- return response.body.readAsText();
193
- }
194
- async deleteJson(url, options) {
195
- const response = await this.request("DELETE", url, { ...options });
196
- return response.body.readAsJson();
197
- }
198
- async deleteBuffer(url, options) {
199
- const response = await this.request("DELETE", url, { ...options });
200
- return response.body.readAsBuffer();
201
- }
202
- deleteStream(url, options) {
203
- return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
204
- const response = await this.request("DELETE", url, { ...options });
205
- return response.body.readAsBinaryStream();
206
- });
207
- }
208
- async request(method, url, options = {}) {
209
- const request = new import_http_client_request.HttpClientRequest(url, method, options);
210
- return this.rawRequest(request);
211
- }
212
- async rawRequest(request) {
213
- const preparedRequest = this.prepareRequest(request);
214
- return this.callHandler(preparedRequest, request.context);
215
- }
216
- updateHandlers() {
217
- this.callHandler = (0, import_middleware.composeAsyncMiddleware)([...this.middleware, ...this.internalMiddleware], async (request) => this.adapter.call(request), { allowMultipleNextCalls: true });
218
- }
219
- prepareRequest(request) {
220
- const clone = request.clone();
221
- clone.headers = new import_http_headers.HttpHeaders(this.headers);
222
- clone.headers.setMany(request.headers);
223
- return clone;
224
- }
13
+ import { hasErrorHandler, isErrorResponse, parseErrorResponse } from '../../api/response.js';
14
+ import { injectArg, optional, singleton } from '../../container/index.js';
15
+ import { toArray } from '../../utils/array/array.js';
16
+ import { encodeBase64 } from '../../utils/base64.js';
17
+ import { encodeUtf8 } from '../../utils/encoding.js';
18
+ import { composeAsyncMiddleware } from '../../utils/middleware.js';
19
+ import { objectEntries } from '../../utils/object/object.js';
20
+ import { readableStreamFromPromise } from '../../utils/stream/readable-stream-from-promise.js';
21
+ import { isDefined, isObject, isUndefined } from '../../utils/type-guards.js';
22
+ import { buildUrl } from '../../utils/url-builder.js';
23
+ import { HttpHeaders } from '../http-headers.js';
24
+ import { HttpError, HttpErrorReason } from '../http.error.js';
25
+ import { normalizeHttpValue, normalizeSingleHttpValue } from '../types.js';
26
+ import { HttpClientOptions } from './http-client-options.js';
27
+ import { HttpClientRequest } from './http-client-request.js';
28
+ import { HttpClientAdapter } from './http-client.adapter.js';
29
+ export let HttpClient = class HttpClient {
30
+ adapter;
31
+ headers;
32
+ middleware;
33
+ internalMiddleware;
34
+ callHandler;
35
+ options;
36
+ constructor(adapter, options = {}) {
37
+ this.adapter = adapter;
38
+ this.options = options;
39
+ this.middleware = [...(options.middleware ?? [])];
40
+ this.headers = new HttpHeaders();
41
+ this.internalMiddleware = [
42
+ getBuildRequestUrlMiddleware(options.baseUrl),
43
+ addRequestHeadersMiddleware,
44
+ ...((options.enableErrorHandling ?? true) ? [errorMiddleware] : [])
45
+ ];
46
+ this.updateHandlers();
47
+ }
48
+ addMiddleware(middleware) {
49
+ this.middleware.push(middleware);
50
+ this.updateHandlers();
51
+ }
52
+ setDefaultHeader(name, value) {
53
+ this.headers.set(name, value);
54
+ }
55
+ deleteDefaultHeader(name) {
56
+ this.headers.remove(name);
57
+ }
58
+ async head(url, options) {
59
+ return this.request('HEAD', url, { ...options });
60
+ }
61
+ async get(url, options) {
62
+ return this.request('GET', url, options);
63
+ }
64
+ async getText(url, options) {
65
+ const response = await this.request('GET', url, { ...options });
66
+ return response.body.readAsText();
67
+ }
68
+ async getJson(url, options) {
69
+ const response = await this.request('GET', url, { ...options });
70
+ return response.body.readAsJson();
71
+ }
72
+ async getBuffer(url, options) {
73
+ const response = await this.request('GET', url, { ...options });
74
+ return response.body.readAsBuffer();
75
+ }
76
+ getStream(url, options) {
77
+ return readableStreamFromPromise(async () => {
78
+ const response = await this.request('GET', url, { ...options });
79
+ return response.body.readAsStream();
80
+ });
81
+ }
82
+ getTextStream(url, options) {
83
+ return readableStreamFromPromise(async () => {
84
+ const response = await this.request('GET', url, { ...options });
85
+ return response.body.readAsTextStream();
86
+ });
87
+ }
88
+ getBinaryStream(url, options) {
89
+ return readableStreamFromPromise(async () => {
90
+ const response = await this.request('GET', url, { ...options });
91
+ return response.body.readAsBinaryStream();
92
+ });
93
+ }
94
+ async post(url, options) {
95
+ return this.request('POST', url, options);
96
+ }
97
+ async postText(url, options) {
98
+ const response = await this.request('POST', url, { ...options });
99
+ return response.body.readAsText();
100
+ }
101
+ async postJson(url, options) {
102
+ const response = await this.request('POST', url, { ...options });
103
+ return response.body.readAsJson();
104
+ }
105
+ async postBuffer(url, options) {
106
+ const response = await this.request('POST', url, { ...options });
107
+ return response.body.readAsBuffer();
108
+ }
109
+ postStream(url, options) {
110
+ return readableStreamFromPromise(async () => {
111
+ const response = await this.request('POST', url, { ...options });
112
+ return response.body.readAsBinaryStream();
113
+ });
114
+ }
115
+ async put(url, options) {
116
+ return this.request('PUT', url, options);
117
+ }
118
+ async putText(url, options) {
119
+ const response = await this.request('PUT', url, { ...options });
120
+ return response.body.readAsText();
121
+ }
122
+ async putJson(url, options) {
123
+ const response = await this.request('PUT', url, { ...options });
124
+ return response.body.readAsJson();
125
+ }
126
+ async putBuffer(url, options) {
127
+ const response = await this.request('PUT', url, { ...options });
128
+ return response.body.readAsBuffer();
129
+ }
130
+ putStream(url, options) {
131
+ return readableStreamFromPromise(async () => {
132
+ const response = await this.request('PUT', url, { ...options });
133
+ return response.body.readAsBinaryStream();
134
+ });
135
+ }
136
+ async patch(url, options) {
137
+ return this.request('PATCH', url, options);
138
+ }
139
+ async patchText(url, options) {
140
+ const response = await this.request('PATCH', url, { ...options });
141
+ return response.body.readAsText();
142
+ }
143
+ async patchJson(url, options) {
144
+ const response = await this.request('PATCH', url, { ...options });
145
+ return response.body.readAsJson();
146
+ }
147
+ async patchBuffer(url, options) {
148
+ const response = await this.request('PATCH', url, { ...options });
149
+ return response.body.readAsBuffer();
150
+ }
151
+ patchStream(url, options) {
152
+ return readableStreamFromPromise(async () => {
153
+ const response = await this.request('PATCH', url, { ...options });
154
+ return response.body.readAsBinaryStream();
155
+ });
156
+ }
157
+ async delete(url, options) {
158
+ return this.request('DELETE', url, options);
159
+ }
160
+ async deleteText(url, options) {
161
+ const response = await this.request('DELETE', url, { ...options });
162
+ return response.body.readAsText();
163
+ }
164
+ async deleteJson(url, options) {
165
+ const response = await this.request('DELETE', url, { ...options });
166
+ return response.body.readAsJson();
167
+ }
168
+ async deleteBuffer(url, options) {
169
+ const response = await this.request('DELETE', url, { ...options });
170
+ return response.body.readAsBuffer();
171
+ }
172
+ deleteStream(url, options) {
173
+ return readableStreamFromPromise(async () => {
174
+ const response = await this.request('DELETE', url, { ...options });
175
+ return response.body.readAsBinaryStream();
176
+ });
177
+ }
178
+ async request(method, url, options = {}) {
179
+ const request = new HttpClientRequest(url, method, options);
180
+ return this.rawRequest(request);
181
+ }
182
+ async rawRequest(request) {
183
+ const preparedRequest = this.prepareRequest(request);
184
+ return this.callHandler(preparedRequest, request.context);
185
+ }
186
+ updateHandlers() {
187
+ this.callHandler = composeAsyncMiddleware([...this.middleware, ...this.internalMiddleware], async (request) => this.adapter.call(request), { allowMultipleNextCalls: true });
188
+ }
189
+ prepareRequest(request) {
190
+ const clone = request.clone();
191
+ clone.headers = new HttpHeaders(this.headers);
192
+ clone.headers.setMany(request.headers);
193
+ return clone;
194
+ }
225
195
  };
226
196
  HttpClient = __decorate([
227
- (0, import_container.singleton)(),
228
- __param(1, (0, import_container.optional)()),
229
- __param(1, (0, import_container.injectArg)()),
230
- __metadata("design:paramtypes", [import_http_client_adapter.HttpClientAdapter, import_http_client_options.HttpClientOptions])
197
+ singleton(),
198
+ __param(1, optional()),
199
+ __param(1, injectArg()),
200
+ __metadata("design:paramtypes", [HttpClientAdapter, HttpClientOptions])
231
201
  ], HttpClient);
232
202
  function getBuildRequestUrlMiddleware(baseUrl) {
233
- async function buildUrlParametersMiddleware(request, next) {
234
- if (!request.mapParameters) {
235
- return next(request);
236
- }
237
- const modifiedRequest = mapParameters(request, baseUrl);
238
- return next(modifiedRequest);
239
- }
240
- return buildUrlParametersMiddleware;
203
+ async function buildUrlParametersMiddleware(request, next) {
204
+ if (!request.mapParameters) {
205
+ return next(request);
206
+ }
207
+ const modifiedRequest = mapParameters(request, baseUrl);
208
+ return next(modifiedRequest);
209
+ }
210
+ return buildUrlParametersMiddleware;
241
211
  }
242
212
  async function addRequestHeadersMiddleware(request, next) {
243
- const clone = request.clone();
244
- const { body, authorization } = clone;
245
- if ((0, import_type_guards.isDefined)(body) && (0, import_type_guards.isUndefined)(clone.headers.contentType)) {
246
- if ((0, import_type_guards.isDefined)(body.json)) {
247
- clone.headers.contentType = "application/json";
248
- } else if ((0, import_type_guards.isDefined)(body.text)) {
249
- clone.headers.contentType = "text/plain";
250
- } else if ((0, import_type_guards.isDefined)(body.form)) {
251
- clone.headers.contentType = "application/x-www-form-urlencoded";
252
- } else if ((0, import_type_guards.isDefined)(body.blob)) {
253
- clone.headers.contentType = body.blob.type.length > 0 ? body.blob.type : "application/octet-stream";
254
- } else if ((0, import_type_guards.isDefined)(body.stream) || (0, import_type_guards.isDefined)(body.buffer)) {
255
- clone.headers.contentType = "application/octet-stream";
256
- }
257
- }
258
- if ((0, import_type_guards.isDefined)(authorization) && (0, import_type_guards.isUndefined)(clone.headers.authorization)) {
259
- if ((0, import_type_guards.isDefined)(authorization.basic)) {
260
- const base64 = (0, import_base64.encodeBase64)((0, import_encoding.encodeUtf8)(`${authorization.basic.username}:${authorization.basic.password}`));
261
- clone.headers.authorization = `Basic ${base64}`;
262
- } else if ((0, import_type_guards.isDefined)(authorization.bearer)) {
263
- clone.headers.authorization = `Bearer ${authorization.bearer}`;
264
- } else if ((0, import_type_guards.isDefined)(authorization.token)) {
265
- clone.headers.authorization = `Token ${authorization.token}`;
266
- }
267
- }
268
- return next(clone);
213
+ const clone = request.clone();
214
+ const { body, authorization } = clone;
215
+ if (isDefined(body) && isUndefined(clone.headers.contentType)) {
216
+ if (isDefined(body.json)) {
217
+ clone.headers.contentType = 'application/json';
218
+ }
219
+ else if (isDefined(body.text)) {
220
+ clone.headers.contentType = 'text/plain';
221
+ }
222
+ else if (isDefined(body.form)) {
223
+ clone.headers.contentType = 'application/x-www-form-urlencoded';
224
+ }
225
+ else if (isDefined(body.blob)) {
226
+ clone.headers.contentType = (body.blob.type.length > 0) ? body.blob.type : 'application/octet-stream';
227
+ }
228
+ else if (isDefined(body.stream) || isDefined(body.buffer)) {
229
+ clone.headers.contentType = 'application/octet-stream';
230
+ }
231
+ }
232
+ if (isDefined(authorization) && isUndefined(clone.headers.authorization)) {
233
+ if (isDefined(authorization.basic)) {
234
+ const base64 = encodeBase64(encodeUtf8(`${authorization.basic.username}:${authorization.basic.password}`));
235
+ clone.headers.authorization = `Basic ${base64}`;
236
+ }
237
+ else if (isDefined(authorization.bearer)) {
238
+ clone.headers.authorization = `Bearer ${authorization.bearer}`;
239
+ }
240
+ else if (isDefined(authorization.token)) {
241
+ clone.headers.authorization = `Token ${authorization.token}`;
242
+ }
243
+ }
244
+ return next(clone);
269
245
  }
270
246
  async function errorMiddleware(request, next) {
271
- try {
272
- const response = await next(request);
273
- if (request.throwOnNon200 && (response.statusCode < 200 || response.statusCode >= 400)) {
274
- const httpError = await import_http_error.HttpError.create(import_http_error.HttpErrorReason.Non200StatusCode, request, response, `Status code ${response.statusCode}.`);
275
- throw httpError;
276
- }
277
- return response;
278
- } catch (error) {
279
- if (!(error instanceof import_http_error.HttpError) || error.responseInstance?.headers.contentType?.includes("json") == false) {
280
- throw error;
281
- }
282
- if ((0, import_type_guards.isDefined)(error.responseBody)) {
283
- if (!(0, import_response.isErrorResponse)(error.responseBody) || !(0, import_response.hasErrorHandler)(error.responseBody)) {
247
+ try {
248
+ const response = await next(request);
249
+ if (request.throwOnNon200 && ((response.statusCode < 200) || (response.statusCode >= 400))) {
250
+ const httpError = await HttpError.create(HttpErrorReason.Non200StatusCode, request, response, `Status code ${response.statusCode}.`);
251
+ throw httpError;
252
+ }
253
+ return response;
254
+ }
255
+ catch (error) {
256
+ if (!(error instanceof HttpError) || (error.responseInstance?.headers.contentType?.includes('json') == false)) {
257
+ throw error;
258
+ }
259
+ if (isDefined(error.responseBody)) {
260
+ if (!isErrorResponse(error.responseBody) || !hasErrorHandler(error.responseBody)) {
261
+ throw error;
262
+ }
263
+ const parsedError = parseErrorResponse(error.responseBody, false);
264
+ if (isDefined(parsedError)) {
265
+ throw parsedError;
266
+ }
267
+ }
284
268
  throw error;
285
- }
286
- const parsedError = (0, import_response.parseErrorResponse)(error.responseBody, false);
287
- if ((0, import_type_guards.isDefined)(parsedError)) {
288
- throw parsedError;
289
- }
290
- }
291
- throw error;
292
- }
269
+ }
293
270
  }
271
+ // eslint-disable-next-line max-statements, max-lines-per-function, complexity
294
272
  function mapParameters(request, baseUrl) {
295
- const clone = request.clone();
296
- const isGetOrHead = request.method == "GET" || request.method == "HEAD";
297
- let url;
298
- const filteredParameterEntries = (0, import_object.objectEntries)(request.parameters ?? {}).filter(([_, value]) => (0, import_type_guards.isDefined)(value));
299
- const filteredParameters = Object.fromEntries(filteredParameterEntries);
300
- let parameterEntries = new Set(filteredParameterEntries);
301
- if (!request.mapParametersToUrl) {
302
- url = new URL(request.url, baseUrl);
303
- } else {
304
- const { parsedUrl, parametersRest } = (0, import_url_builder.buildUrl)(request.url, filteredParameters, { arraySeparator: request.urlParametersSeparator });
305
- url = new URL(parsedUrl, baseUrl);
306
- parameterEntries = new Set((0, import_object.objectEntries)(parametersRest));
307
- }
308
- if (request.mapParametersToBody && !isGetOrHead && (0, import_type_guards.isUndefined)(request.body)) {
309
- clone.body = { json: Object.fromEntries(parameterEntries) };
310
- parameterEntries.clear();
311
- }
312
- if (request.mapParametersToQuery) {
313
- for (const entry of parameterEntries) {
314
- const [parameter, value] = entry;
315
- if ((0, import_type_guards.isUndefined)(value) || (0, import_type_guards.isObject)(value)) {
316
- continue;
317
- }
318
- for (const val of (0, import_array.toArray)(value)) {
319
- url.searchParams.append(parameter, (0, import_types.normalizeSingleHttpValue)(val));
320
- }
321
- parameterEntries.delete(entry);
322
- }
323
- }
324
- if (parameterEntries.size > 0) {
325
- 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");
326
- }
327
- if ((0, import_type_guards.isDefined)(request.query)) {
328
- for (const [key, valueOrValues] of request.query) {
329
- const normalizedValues = (0, import_types.normalizeHttpValue)(valueOrValues);
330
- if ((0, import_type_guards.isDefined)(normalizedValues)) {
331
- for (const normalizedValue of (0, import_array.toArray)(normalizedValues)) {
332
- url.searchParams.append(key, normalizedValue.toString());
273
+ const clone = request.clone();
274
+ const isGetOrHead = (request.method == 'GET') || (request.method == 'HEAD');
275
+ let url;
276
+ const filteredParameterEntries = objectEntries(request.parameters ?? {}).filter(([_, value]) => isDefined(value));
277
+ const filteredParameters = Object.fromEntries(filteredParameterEntries);
278
+ let parameterEntries = new Set(filteredParameterEntries);
279
+ if (!request.mapParametersToUrl) {
280
+ url = new URL(request.url, baseUrl);
281
+ }
282
+ else {
283
+ const { parsedUrl, parametersRest } = buildUrl(request.url, filteredParameters, { arraySeparator: request.urlParametersSeparator });
284
+ url = new URL(parsedUrl, baseUrl);
285
+ parameterEntries = new Set(objectEntries(parametersRest));
286
+ }
287
+ if (request.mapParametersToBody && !isGetOrHead && isUndefined(request.body)) {
288
+ clone.body = { json: Object.fromEntries(parameterEntries) };
289
+ parameterEntries.clear();
290
+ }
291
+ if (request.mapParametersToQuery) {
292
+ for (const entry of parameterEntries) {
293
+ const [parameter, value] = entry;
294
+ if (isUndefined(value) || isObject(value)) {
295
+ continue;
296
+ }
297
+ for (const val of toArray(value)) {
298
+ url.searchParams.append(parameter, normalizeSingleHttpValue(val));
299
+ }
300
+ parameterEntries.delete(entry);
333
301
  }
334
- }
335
302
  }
336
- }
337
- clone.url = url.href;
338
- return clone;
303
+ if (parameterEntries.size > 0) {
304
+ 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');
305
+ }
306
+ if (isDefined(request.query)) {
307
+ for (const [key, valueOrValues] of request.query) {
308
+ const normalizedValues = normalizeHttpValue(valueOrValues);
309
+ if (isDefined(normalizedValues)) {
310
+ for (const normalizedValue of toArray(normalizedValues)) {
311
+ url.searchParams.append(key, normalizedValue.toString());
312
+ }
313
+ }
314
+ }
315
+ }
316
+ clone.url = url.href;
317
+ return clone;
339
318
  }