@tstdl/base 0.85.14 → 0.86.0-beta2

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 (722) 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 +13 -13
  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.js +7 -24
  499. package/signals/pipe.js +7 -31
  500. package/signals/switch-map.js +4 -27
  501. package/signals/types.js +1 -16
  502. package/signals/untracked-operator.js +11 -33
  503. package/sse/index.js +2 -19
  504. package/sse/model.js +1 -16
  505. package/sse/server-sent-events-source.js +54 -76
  506. package/sse/server-sent-events.js +48 -72
  507. package/supports.js +5 -32
  508. package/templates/index.js +9 -26
  509. package/templates/module.js +37 -58
  510. package/templates/providers/file.template-provider.js +39 -81
  511. package/templates/providers/memory.template-provider.js +27 -55
  512. package/templates/renderers/handlebars.template-renderer.js +84 -122
  513. package/templates/renderers/jsx.template-renderer.js +28 -56
  514. package/templates/renderers/mjml.template-renderer.js +42 -82
  515. package/templates/renderers/string.template-renderer.js +24 -52
  516. package/templates/resolvers/file.template-resolver.js +45 -89
  517. package/templates/resolvers/jsx.template-resolver.js +29 -59
  518. package/templates/resolvers/string.template-resolver.js +29 -59
  519. package/templates/template-renderer.provider.js +36 -66
  520. package/templates/template-resolver.provider.js +36 -66
  521. package/templates/template.model.js +39 -69
  522. package/templates/template.provider.js +1 -24
  523. package/templates/template.renderer.js +11 -34
  524. package/templates/template.resolver.js +1 -24
  525. package/templates/template.service.js +49 -82
  526. package/templates/tokens.js +3 -27
  527. package/templates/types/jsx.intrinsic-elements.js +1 -16
  528. package/text/dynamic-text.model.js +41 -70
  529. package/text/index.js +3 -20
  530. package/text/localizable-text.model.js +1 -16
  531. package/text/localization.service.js +196 -229
  532. package/theme/adapters/css-adapter.js +23 -46
  533. package/theme/adapters/tailwind-adapter.js +29 -52
  534. package/theme/index.js +1 -18
  535. package/theme/theme-service.js +107 -146
  536. package/threading/index.js +2 -19
  537. package/threading/thread-pool.js +48 -70
  538. package/threading/thread-worker.js +3 -26
  539. package/tokens.js +2 -25
  540. package/types/geo-json.js +1 -16
  541. package/types.js +2 -16
  542. package/utils/alphabet.js +12 -35
  543. package/utils/any-iterable-iterator.js +4 -27
  544. package/utils/array/array-backtracker.js +42 -65
  545. package/utils/array/array.js +76 -79
  546. package/utils/array/index.js +2 -19
  547. package/utils/async-iterable-helpers/all.js +25 -46
  548. package/utils/async-iterable-helpers/any.js +25 -46
  549. package/utils/async-iterable-helpers/assert.js +22 -43
  550. package/utils/async-iterable-helpers/batch.js +26 -46
  551. package/utils/async-iterable-helpers/buffer.js +47 -64
  552. package/utils/async-iterable-helpers/concat.js +5 -27
  553. package/utils/async-iterable-helpers/default-if-empty.js +9 -32
  554. package/utils/async-iterable-helpers/deferred.js +3 -26
  555. package/utils/async-iterable-helpers/difference.js +24 -48
  556. package/utils/async-iterable-helpers/distinct.js +23 -44
  557. package/utils/async-iterable-helpers/drain.js +4 -26
  558. package/utils/async-iterable-helpers/filter.js +23 -44
  559. package/utils/async-iterable-helpers/first-or-default.js +8 -30
  560. package/utils/async-iterable-helpers/first.js +8 -30
  561. package/utils/async-iterable-helpers/for-each.js +18 -38
  562. package/utils/async-iterable-helpers/group-single.js +3 -26
  563. package/utils/async-iterable-helpers/group-to-map.js +20 -41
  564. package/utils/async-iterable-helpers/group-to-single-map.js +23 -44
  565. package/utils/async-iterable-helpers/group.js +3 -26
  566. package/utils/async-iterable-helpers/includes.js +7 -28
  567. package/utils/async-iterable-helpers/index.js +48 -65
  568. package/utils/async-iterable-helpers/interrupt.js +19 -43
  569. package/utils/async-iterable-helpers/is-async-iterable.js +5 -29
  570. package/utils/async-iterable-helpers/last-or-default.js +13 -36
  571. package/utils/async-iterable-helpers/last.js +13 -36
  572. package/utils/async-iterable-helpers/map-many.js +19 -40
  573. package/utils/async-iterable-helpers/map.js +19 -40
  574. package/utils/async-iterable-helpers/materialize.js +21 -42
  575. package/utils/async-iterable-helpers/metadata.js +38 -58
  576. package/utils/async-iterable-helpers/multiplex.js +23 -44
  577. package/utils/async-iterable-helpers/observable-iterable.js +31 -53
  578. package/utils/async-iterable-helpers/pairwise.js +26 -44
  579. package/utils/async-iterable-helpers/parallel/feed.js +24 -45
  580. package/utils/async-iterable-helpers/parallel/filter.js +8 -31
  581. package/utils/async-iterable-helpers/parallel/for-each.js +21 -44
  582. package/utils/async-iterable-helpers/parallel/group.js +9 -32
  583. package/utils/async-iterable-helpers/parallel/index.js +7 -24
  584. package/utils/async-iterable-helpers/parallel/map.js +6 -29
  585. package/utils/async-iterable-helpers/parallel/tap.js +6 -29
  586. package/utils/async-iterable-helpers/parallel/types.js +1 -16
  587. package/utils/async-iterable-helpers/reduce.js +31 -46
  588. package/utils/async-iterable-helpers/retry.js +43 -58
  589. package/utils/async-iterable-helpers/single-or-default.js +17 -40
  590. package/utils/async-iterable-helpers/single.js +19 -42
  591. package/utils/async-iterable-helpers/skip.js +3 -26
  592. package/utils/async-iterable-helpers/sort.js +6 -29
  593. package/utils/async-iterable-helpers/take-until.js +32 -49
  594. package/utils/async-iterable-helpers/take-while.js +29 -46
  595. package/utils/async-iterable-helpers/take.js +10 -33
  596. package/utils/async-iterable-helpers/tap.js +19 -40
  597. package/utils/async-iterable-helpers/throttle.js +9 -30
  598. package/utils/async-iterable-helpers/to-array.js +10 -33
  599. package/utils/async-iterable-helpers/to-async-iterable-iterator.js +40 -59
  600. package/utils/async-iterable-helpers/to-async-iterator.js +32 -54
  601. package/utils/async-iterable-helpers/to-set.js +10 -33
  602. package/utils/async-iterable-helpers/to-sync-iterable.js +6 -27
  603. package/utils/async-iterable-helpers/types.js +1 -16
  604. package/utils/async-iterable-helpers/while.js +25 -46
  605. package/utils/async-iterator-iterable-iterator.js +41 -62
  606. package/utils/backoff.js +109 -109
  607. package/utils/base64.js +153 -140
  608. package/utils/benchmark.js +114 -107
  609. package/utils/binary-search.js +70 -87
  610. package/utils/binary.js +50 -61
  611. package/utils/cancellation-token.js +120 -140
  612. package/utils/clone.js +43 -64
  613. package/utils/comparison.js +76 -98
  614. package/utils/compression.js +107 -118
  615. package/utils/config-parser.js +21 -48
  616. package/utils/crc32.js +20 -42
  617. package/utils/cryptography.js +163 -121
  618. package/utils/date-time.js +102 -138
  619. package/utils/encoding.js +62 -60
  620. package/utils/enum.js +27 -53
  621. package/utils/equals.js +103 -119
  622. package/utils/event-loop.js +19 -39
  623. package/utils/factory-map.js +53 -75
  624. package/utils/feedable-async-iterable.js +47 -70
  625. package/utils/file-reader.js +15 -41
  626. package/utils/format-error.js +36 -57
  627. package/utils/format.js +32 -53
  628. package/utils/function/index.js +2 -19
  629. package/utils/function/memoize.js +38 -53
  630. package/utils/function/throttle.js +26 -48
  631. package/utils/helpers.js +93 -102
  632. package/utils/image.js +62 -88
  633. package/utils/index.js +48 -65
  634. package/utils/iterable-helpers/all.js +8 -31
  635. package/utils/iterable-helpers/any.js +8 -31
  636. package/utils/iterable-helpers/assert.js +7 -30
  637. package/utils/iterable-helpers/batch.js +11 -34
  638. package/utils/iterable-helpers/concat.js +4 -27
  639. package/utils/iterable-helpers/default-if-empty.js +9 -32
  640. package/utils/iterable-helpers/deferred.js +2 -25
  641. package/utils/iterable-helpers/difference.js +21 -45
  642. package/utils/iterable-helpers/distinct.js +9 -32
  643. package/utils/iterable-helpers/drain.js +4 -26
  644. package/utils/iterable-helpers/filter.js +7 -30
  645. package/utils/iterable-helpers/first-or-default.js +8 -30
  646. package/utils/iterable-helpers/first.js +8 -30
  647. package/utils/iterable-helpers/for-each.js +5 -28
  648. package/utils/iterable-helpers/group-single.js +3 -26
  649. package/utils/iterable-helpers/group-to-map.js +9 -32
  650. package/utils/iterable-helpers/group-to-single-map.js +10 -33
  651. package/utils/iterable-helpers/group.js +3 -26
  652. package/utils/iterable-helpers/includes.js +3 -26
  653. package/utils/iterable-helpers/index.js +39 -56
  654. package/utils/iterable-helpers/is-iterable.js +5 -29
  655. package/utils/iterable-helpers/last-or-default.js +13 -36
  656. package/utils/iterable-helpers/last.js +13 -36
  657. package/utils/iterable-helpers/map-many.js +6 -29
  658. package/utils/iterable-helpers/map.js +6 -29
  659. package/utils/iterable-helpers/materialize.js +2 -25
  660. package/utils/iterable-helpers/metadata.js +16 -38
  661. package/utils/iterable-helpers/pairwise.js +11 -33
  662. package/utils/iterable-helpers/range.js +4 -27
  663. package/utils/iterable-helpers/reduce.js +11 -33
  664. package/utils/iterable-helpers/single-or-default.js +14 -37
  665. package/utils/iterable-helpers/single.js +17 -40
  666. package/utils/iterable-helpers/skip.js +6 -29
  667. package/utils/iterable-helpers/sort.js +4 -27
  668. package/utils/iterable-helpers/take-until.js +8 -31
  669. package/utils/iterable-helpers/take-while.js +10 -33
  670. package/utils/iterable-helpers/take.js +10 -33
  671. package/utils/iterable-helpers/tap.js +6 -29
  672. package/utils/iterable-helpers/types.js +1 -16
  673. package/utils/iterable-helpers/while.js +8 -31
  674. package/utils/jwt.js +77 -100
  675. package/utils/map.js +35 -62
  676. package/utils/math.js +102 -64
  677. package/utils/merge.js +26 -45
  678. package/utils/middleware.js +36 -60
  679. package/utils/moving-metric.js +155 -188
  680. package/utils/noop.js +4 -27
  681. package/utils/object/decycle.js +57 -78
  682. package/utils/object/dereference.js +46 -44
  683. package/utils/object/forward-ref.js +57 -73
  684. package/utils/object/index.js +7 -24
  685. package/utils/object/lazy-property.js +81 -96
  686. package/utils/object/merge.js +48 -70
  687. package/utils/object/object.js +106 -136
  688. package/utils/object/property-name.js +69 -72
  689. package/utils/ordered-feedable-async-iterable.js +42 -65
  690. package/utils/patch-worker.js +69 -90
  691. package/utils/patterns.js +7 -29
  692. package/utils/periodic-reporter.js +60 -82
  693. package/utils/periodic-sampler.js +67 -91
  694. package/utils/provider-function-iterable.js +26 -48
  695. package/utils/proxy.js +17 -42
  696. package/utils/random.js +40 -50
  697. package/utils/reflection.js +13 -41
  698. package/utils/repl.js +14 -33
  699. package/utils/set.js +36 -62
  700. package/utils/singleton.js +18 -41
  701. package/utils/sort.js +53 -77
  702. package/utils/stream/finalize-stream.js +43 -62
  703. package/utils/stream/index.js +6 -23
  704. package/utils/stream/readable-stream-adapter.js +35 -57
  705. package/utils/stream/readable-stream-from-promise.js +7 -28
  706. package/utils/stream/size-limited-stream.js +12 -35
  707. package/utils/stream/stream-helper-types.js +1 -16
  708. package/utils/stream/stream-reader.js +30 -52
  709. package/utils/string/hypenate.js +2 -25
  710. package/utils/string/index.js +3 -20
  711. package/utils/string/title-case.js +6 -26
  712. package/utils/string/trim.js +9 -32
  713. package/utils/throw.js +7 -30
  714. package/utils/timer.js +70 -91
  715. package/utils/timing.js +52 -80
  716. package/utils/type-guards.js +253 -1076
  717. package/utils/type-of.js +25 -43
  718. package/utils/units.js +53 -124
  719. package/utils/url-builder.js +47 -68
  720. package/utils/value-or-provider.js +6 -29
  721. package/utils/z-base32.js +42 -63
  722. package/web-types.js +1 -16
@@ -1,135 +1,119 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var client_exports = {};
20
- __export(client_exports, {
21
- apiDefinitionSymbol: () => apiDefinitionSymbol,
22
- compileClient: () => compileClient,
23
- httpClientSymbol: () => httpClientSymbol
24
- });
25
- module.exports = __toCommonJS(client_exports);
26
- var import_container = require("../../container/index.js");
27
- var import_client = require("../../http/client/index.js");
28
- var import_types = require("../../http/types.js");
29
- var import_schema = require("../../schema/index.js");
30
- var import_server_sent_events = require("../../sse/server-sent-events.js");
31
- var import_array = require("../../utils/array/array.js");
32
- var import_object = require("../../utils/object/object.js");
33
- var import_title_case = require("../../utils/string/title-case.js");
34
- var import_type_guards = require("../../utils/type-guards.js");
35
- var import_url_builder = require("../../utils/url-builder.js");
36
- var import_types2 = require("../types.js");
37
- var import_utils = require("../utils.js");
38
- const httpClientSymbol = Symbol("ApiTransport");
39
- const apiDefinitionSymbol = Symbol("ApiDefinition");
40
- function compileClient(definition, options = {}) {
41
- const { resource: path, endpoints } = definition;
42
- const constructedApiName = (0, import_title_case.toTitleCase)(path[0] ?? "");
43
- const apiName = `${constructedApiName}ApiClient`;
44
- const api = {
45
- [apiName]: class {
46
- [httpClientSymbol];
47
- [apiDefinitionSymbol];
48
- constructor(httpClientOrOptions) {
49
- this[httpClientSymbol] = httpClientOrOptions instanceof import_client.HttpClient ? httpClientOrOptions : import_container.container.resolve(import_client.HttpClient, httpClientOrOptions);
50
- this[apiDefinitionSymbol] = definition;
51
- }
52
- }
53
- }[apiName];
54
- import_container.container.registerSingleton(api, {
55
- useFactory: (argument, context) => {
56
- const httpClient = argument instanceof import_client.HttpClient ? argument : context.resolve(import_client.HttpClient, argument ?? options.defaultHttpClientOptions);
57
- return new api(httpClient);
58
- }
59
- });
60
- const endpointsEntries = (0, import_types2.normalizedApiDefinitionEndpointsEntries)(endpoints);
61
- for (const [name, endpoint] of endpointsEntries) {
62
- const methods = (0, import_type_guards.isArray)(endpoint.method) ? endpoint.method : [endpoint.method ?? "GET"];
63
- const resource = (0, import_utils.getFullApiEndpointResource)({ api: definition, endpoint, defaultPrefix: options.prefix });
64
- const hasGet = methods.includes("GET");
65
- const fallbackMethod = methods.filter((method) => method != "GET")[0] ?? "GET";
66
- const apiEndpointFunction = {
67
- async [name](parameters, requestBody) {
68
- const context = { endpoint };
69
- const method = hasGet && (0, import_type_guards.isUndefined)(parameters) ? "GET" : fallbackMethod;
70
- if (endpoint.result == import_server_sent_events.ServerSentEvents) {
71
- if ((0, import_type_guards.isDefined)(requestBody)) {
72
- throw new Error("Body not supported for Server Sent Events.");
73
- }
74
- return getServerSentEvents(this[httpClientSymbol].options.baseUrl, resource, endpoint, parameters);
1
+ import { container } from '../../container/index.js';
2
+ import { HttpClient, HttpClientRequest } from '../../http/client/index.js';
3
+ import { normalizeSingleHttpValue } from '../../http/types.js';
4
+ import { Schema } from '../../schema/index.js';
5
+ import { ServerSentEvents } from '../../sse/server-sent-events.js';
6
+ import { toArray } from '../../utils/array/array.js';
7
+ import { objectEntries } from '../../utils/object/object.js';
8
+ import { toTitleCase } from '../../utils/string/title-case.js';
9
+ import { isArray, isBlob, isDefined, isObject, isReadableStream, isString, isUint8Array, isUndefined } from '../../utils/type-guards.js';
10
+ import { buildUrl } from '../../utils/url-builder.js';
11
+ import { normalizedApiDefinitionEndpointsEntries } from '../types.js';
12
+ import { getFullApiEndpointResource } from '../utils.js';
13
+ export const httpClientSymbol = Symbol('ApiTransport');
14
+ export const apiDefinitionSymbol = Symbol('ApiDefinition');
15
+ // eslint-disable-next-line max-lines-per-function
16
+ export function compileClient(definition, options = {}) {
17
+ const { resource: path, endpoints } = definition;
18
+ const constructedApiName = toTitleCase(path[0] ?? '');
19
+ const apiName = `${constructedApiName}ApiClient`;
20
+ const api = {
21
+ [apiName]: class {
22
+ [httpClientSymbol];
23
+ [apiDefinitionSymbol];
24
+ constructor(httpClientOrOptions) {
25
+ this[httpClientSymbol] = (httpClientOrOptions instanceof HttpClient) ? httpClientOrOptions : container.resolve(HttpClient, httpClientOrOptions);
26
+ this[apiDefinitionSymbol] = definition;
27
+ }
28
+ }
29
+ }[apiName];
30
+ container.registerSingleton(api, {
31
+ useFactory: (argument, context) => {
32
+ const httpClient = (argument instanceof HttpClient) ? argument : context.resolve(HttpClient, argument ?? options.defaultHttpClientOptions);
33
+ return new api(httpClient);
75
34
  }
76
- const request = new import_client.HttpClientRequest({
77
- method,
78
- url: resource,
79
- parameters,
80
- body: getRequestBody(requestBody),
81
- credentials: endpoint.credentials == true ? "include" : void 0,
82
- context
83
- });
84
- const response = await this[httpClientSymbol].rawRequest(request);
85
- return getResponseBody(response, endpoint.result);
86
- }
87
- }[name];
88
- Object.defineProperty(api.prototype, name, {
89
- enumerable: true,
90
- configurable: true,
91
- writable: true,
92
- value: apiEndpointFunction
93
35
  });
94
- }
95
- return api;
36
+ const endpointsEntries = normalizedApiDefinitionEndpointsEntries(endpoints);
37
+ for (const [name, endpoint] of endpointsEntries) {
38
+ const methods = isArray(endpoint.method) ? endpoint.method : [endpoint.method ?? 'GET'];
39
+ const resource = getFullApiEndpointResource({ api: definition, endpoint, defaultPrefix: options.prefix });
40
+ const hasGet = methods.includes('GET');
41
+ const fallbackMethod = methods.filter((method) => method != 'GET')[0] ?? 'GET';
42
+ const apiEndpointFunction = {
43
+ async [name](parameters, requestBody) {
44
+ const context = { endpoint };
45
+ const method = (hasGet && isUndefined(parameters)) ? 'GET' : fallbackMethod;
46
+ if (endpoint.result == ServerSentEvents) {
47
+ if (isDefined(requestBody)) {
48
+ throw new Error('Body not supported for Server Sent Events.');
49
+ }
50
+ return getServerSentEvents(this[httpClientSymbol].options.baseUrl, resource, endpoint, parameters);
51
+ }
52
+ const request = new HttpClientRequest({
53
+ method,
54
+ url: resource,
55
+ parameters,
56
+ body: getRequestBody(requestBody),
57
+ credentials: (endpoint.credentials == true) ? 'include' : undefined,
58
+ context
59
+ });
60
+ const response = await this[httpClientSymbol].rawRequest(request);
61
+ return getResponseBody(response, endpoint.result);
62
+ }
63
+ }[name];
64
+ Object.defineProperty(api.prototype, name, {
65
+ enumerable: true,
66
+ configurable: true,
67
+ writable: true,
68
+ value: apiEndpointFunction
69
+ });
70
+ }
71
+ return api;
96
72
  }
97
73
  function getRequestBody(body) {
98
- if ((0, import_type_guards.isUndefined)(body)) {
99
- return void 0;
100
- }
101
- if ((0, import_type_guards.isUint8Array)(body)) {
102
- return { buffer: body };
103
- }
104
- if ((0, import_type_guards.isReadableStream)(body)) {
105
- return { stream: body };
106
- }
107
- if ((0, import_type_guards.isBlob)(body)) {
108
- return { blob: body };
109
- }
110
- if ((0, import_type_guards.isString)(body)) {
111
- return { text: body };
112
- }
113
- return { json: body };
74
+ if (isUndefined(body)) {
75
+ return undefined;
76
+ }
77
+ if (isUint8Array(body)) {
78
+ return { buffer: body };
79
+ }
80
+ if (isReadableStream(body)) {
81
+ return { stream: body };
82
+ }
83
+ if (isBlob(body)) {
84
+ return { blob: body };
85
+ }
86
+ if (isString(body)) {
87
+ return { text: body };
88
+ }
89
+ return { json: body };
114
90
  }
115
91
  async function getResponseBody(response, schema) {
116
- if ((0, import_type_guards.isUndefined)(schema)) {
117
- response.close();
118
- return void 0;
119
- }
120
- const body = response.hasBody ? schema == ReadableStream ? response.body.readAsBinaryStream() : schema == Uint8Array ? await response.body.readAsBuffer() : schema == String ? await response.body.readAsText() : await response.body.read() : void 0;
121
- return import_schema.Schema.parse(schema, body, { mask: true });
92
+ if (isUndefined(schema)) {
93
+ response.close();
94
+ return undefined;
95
+ }
96
+ const body = response.hasBody
97
+ ? (schema == ReadableStream)
98
+ ? response.body.readAsBinaryStream()
99
+ : (schema == Uint8Array)
100
+ ? await response.body.readAsBuffer()
101
+ : (schema == String)
102
+ ? await response.body.readAsText()
103
+ : await response.body.read()
104
+ : undefined;
105
+ return Schema.parse(schema, body, { mask: true });
122
106
  }
123
107
  function getServerSentEvents(baseUrl, resource, endpoint, parameters) {
124
- const { parsedUrl, parametersRest } = (0, import_url_builder.buildUrl)(resource, parameters, { arraySeparator: "," });
125
- const url = new URL(parsedUrl, baseUrl);
126
- for (const [parameter, value] of (0, import_object.objectEntries)(parametersRest)) {
127
- for (const val of (0, import_array.toArray)(value)) {
128
- if ((0, import_type_guards.isUndefined)(val) || (0, import_type_guards.isObject)(val)) {
129
- continue;
130
- }
131
- url.searchParams.append(parameter, (0, import_types.normalizeSingleHttpValue)(val));
108
+ const { parsedUrl, parametersRest } = buildUrl(resource, parameters, { arraySeparator: ',' });
109
+ const url = new URL(parsedUrl, baseUrl);
110
+ for (const [parameter, value] of objectEntries(parametersRest)) {
111
+ for (const val of toArray(value)) {
112
+ if (isUndefined(val) || isObject(val)) {
113
+ continue;
114
+ }
115
+ url.searchParams.append(parameter, normalizeSingleHttpValue(val));
116
+ }
132
117
  }
133
- }
134
- return new import_server_sent_events.ServerSentEvents(url.toString(), { withCredentials: endpoint.credentials });
118
+ return new ServerSentEvents(url.toString(), { withCredentials: endpoint.credentials });
135
119
  }
@@ -1,18 +1 @@
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 __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
- var client_exports = {};
17
- module.exports = __toCommonJS(client_exports);
18
- __reExport(client_exports, require("./client.js"), module.exports);
1
+ export * from './client.js';
@@ -1,48 +1,22 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var default_error_handlers_exports = {};
20
- __export(default_error_handlers_exports, {
21
- deserializeInnerSchemaError: () => deserializeInnerSchemaError,
22
- deserializeSchemaError: () => deserializeSchemaError,
23
- serializeInnerSchemaError: () => serializeInnerSchemaError,
24
- serializeSchemaError: () => serializeSchemaError
25
- });
26
- module.exports = __toCommonJS(default_error_handlers_exports);
27
- var import_schema = require("../schema/index.js");
28
- var import_type_guards = require("../utils/type-guards.js");
29
- function serializeSchemaError(error) {
30
- return {
31
- path: error.path,
32
- details: error.details,
33
- inner: (0, import_type_guards.isDefined)(error.inner) ? (0, import_type_guards.isArray)(error.inner) ? error.inner.map(serializeInnerSchemaError) : serializeInnerSchemaError(error.inner) : void 0
34
- };
1
+ import { SchemaError } from '../schema/index.js';
2
+ import { isArray, isDefined } from '../utils/type-guards.js';
3
+ export function serializeSchemaError(error) {
4
+ return {
5
+ path: error.path,
6
+ details: error.details,
7
+ inner: isDefined(error.inner) ? isArray(error.inner) ? error.inner.map(serializeInnerSchemaError) : serializeInnerSchemaError(error.inner) : undefined
8
+ };
35
9
  }
36
- function serializeInnerSchemaError(error) {
37
- return {
38
- message: error.message,
39
- ...serializeSchemaError(error)
40
- };
10
+ export function serializeInnerSchemaError(error) {
11
+ return {
12
+ message: error.message,
13
+ ...serializeSchemaError(error)
14
+ };
41
15
  }
42
- function deserializeSchemaError(message, data) {
43
- const inner = (0, import_type_guards.isDefined)(data.inner) ? (0, import_type_guards.isArray)(data.inner) ? data.inner.map(deserializeInnerSchemaError) : deserializeInnerSchemaError(data.inner) : void 0;
44
- return new import_schema.SchemaError(message, { path: data.path, details: data.details, inner });
16
+ export function deserializeSchemaError(message, data) {
17
+ const inner = isDefined(data.inner) ? isArray(data.inner) ? data.inner.map(deserializeInnerSchemaError) : deserializeInnerSchemaError(data.inner) : undefined;
18
+ return new SchemaError(message, { path: data.path, details: data.details, inner });
45
19
  }
46
- function deserializeInnerSchemaError(data) {
47
- return deserializeSchemaError(data.message, data);
20
+ export function deserializeInnerSchemaError(data) {
21
+ return deserializeSchemaError(data.message, data);
48
22
  }
package/api/index.js CHANGED
@@ -1,20 +1,14 @@
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 __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
- var api_exports = {};
17
- module.exports = __toCommonJS(api_exports);
18
- __reExport(api_exports, require("./default-error-handlers.js"), module.exports);
19
- __reExport(api_exports, require("./response.js"), module.exports);
20
- __reExport(api_exports, require("./types.js"), module.exports);
1
+ /**
2
+ * Module for creating and consuming HTTP apis with built-in support for validation and error handling.
3
+ *
4
+ * This module contains types and functions to define and register apis and error handlers.
5
+ *
6
+ * Consumers of these definitions are [client](api_client.html) and [server](api_server.html).
7
+ *
8
+ * A basic example with a working minimal api server and client can be found in `source/examples/api/basic-overview.ts`
9
+ *
10
+ * @module
11
+ */
12
+ export * from './default-error-handlers.js';
13
+ export * from './response.js';
14
+ export * from './types.js';
package/api/response.js CHANGED
@@ -1,136 +1,112 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var response_exports = {};
20
- __export(response_exports, {
21
- createErrorResponse: () => createErrorResponse,
22
- createResultResponse: () => createResultResponse,
23
- getErrorStatusCode: () => getErrorStatusCode,
24
- hasErrorHandler: () => hasErrorHandler,
25
- isErrorResponse: () => isErrorResponse,
26
- isResponse: () => isResponse,
27
- isResultResponse: () => isResultResponse,
28
- parseErrorResponse: () => parseErrorResponse,
29
- parseResponse: () => parseResponse,
30
- registerErrorHandler: () => registerErrorHandler
31
- });
32
- module.exports = __toCommonJS(response_exports);
33
- var import_secret_requirements_error = require("../authentication/errors/secret-requirements.error.js");
34
- var import_schema_error = require("../schema/schema.error.js");
35
- var import_error = require("../error/index.js");
36
- var import_type_guards = require("../utils/type-guards.js");
37
- var import_default_error_handlers = require("./default-error-handlers.js");
38
- const errorHandlers = /* @__PURE__ */ new Map();
39
- function registerErrorHandler(constructor, statusCode, serializer, deserializer) {
40
- (0, import_type_guards.assertString)(constructor.errorName, "static property 'errorName' missing.");
41
- if (errorHandlers.has(constructor.errorName)) {
42
- throw new Error(`A handler for ${constructor.errorName} already registered.`);
43
- }
44
- errorHandlers.set(constructor.errorName, { statusCode, serializer, deserializer });
1
+ import { SecretRequirementsError } from '../authentication/errors/secret-requirements.error.js';
2
+ import { SchemaError } from '../schema/schema.error.js';
3
+ import { ApiError, BadRequestError, ForbiddenError, InvalidTokenError, MaxBytesExceededError, MethodNotAllowedError, NotFoundError, NotImplementedError, NotSupportedError, UnauthorizedError, UnsupportedMediaTypeError } from '../error/index.js';
4
+ import { assertString, isDefined, isFunction, isObject, isString } from '../utils/type-guards.js';
5
+ import { deserializeSchemaError, serializeSchemaError } from './default-error-handlers.js';
6
+ const errorHandlers = new Map();
7
+ export function registerErrorHandler(constructor, statusCode, serializer, deserializer) {
8
+ assertString(constructor.errorName, 'static property \'errorName\' missing.');
9
+ if (errorHandlers.has(constructor.errorName)) {
10
+ throw new Error(`A handler for ${constructor.errorName} already registered.`);
11
+ }
12
+ errorHandlers.set(constructor.errorName, { statusCode, serializer, deserializer });
45
13
  }
46
- function hasErrorHandler(constructor) {
47
- const name = (0, import_type_guards.isFunction)(constructor) ? constructor.errorName : (0, import_type_guards.isString)(constructor) ? constructor : isErrorResponse(constructor) ? constructor.error.name : void 0;
48
- return errorHandlers.has(name);
14
+ export function hasErrorHandler(constructor) {
15
+ const name = isFunction(constructor)
16
+ ? constructor.errorName
17
+ : isString(constructor)
18
+ ? constructor
19
+ : isErrorResponse(constructor)
20
+ ? constructor.error.name
21
+ : undefined;
22
+ return errorHandlers.has(name);
49
23
  }
50
- function getErrorStatusCode(error, defaultStatusCode = 500) {
51
- return errorHandlers.get(error.name)?.statusCode ?? defaultStatusCode;
24
+ export function getErrorStatusCode(error, defaultStatusCode = 500) {
25
+ return errorHandlers.get(error.name)?.statusCode ?? defaultStatusCode;
52
26
  }
53
- function createResultResponse(result) {
54
- const response = {
55
- result
56
- };
57
- return response;
27
+ export function createResultResponse(result) {
28
+ const response = {
29
+ result
30
+ };
31
+ return response;
58
32
  }
59
- function createErrorResponse(errorOrName, message = "", details) {
60
- let response;
61
- if (errorOrName instanceof Error) {
62
- const handler = errorHandlers.get(errorOrName.name);
63
- if (handler != void 0) {
64
- const data = handler.serializer(errorOrName);
65
- response = {
66
- error: {
67
- name: errorOrName.name,
68
- message: errorOrName.message,
69
- details,
70
- data
33
+ export function createErrorResponse(errorOrName, message = '', details) {
34
+ let response;
35
+ if (errorOrName instanceof Error) {
36
+ const handler = errorHandlers.get(errorOrName.name);
37
+ if (handler != undefined) {
38
+ const data = handler.serializer(errorOrName);
39
+ response = {
40
+ error: {
41
+ name: errorOrName.name,
42
+ message: errorOrName.message,
43
+ details,
44
+ data
45
+ }
46
+ };
71
47
  }
72
- };
73
- } else {
74
- response = {
75
- error: {
76
- name: errorOrName.name,
77
- message: errorOrName.message,
78
- details
48
+ else {
49
+ response = {
50
+ error: {
51
+ name: errorOrName.name,
52
+ message: errorOrName.message,
53
+ details
54
+ }
55
+ };
79
56
  }
80
- };
81
57
  }
82
- } else {
83
- response = {
84
- error: {
85
- name: errorOrName,
86
- message,
87
- details
88
- }
89
- };
90
- }
91
- return response;
58
+ else {
59
+ response = {
60
+ error: {
61
+ name: errorOrName,
62
+ message,
63
+ details
64
+ }
65
+ };
66
+ }
67
+ return response;
92
68
  }
93
- function parseResponse(response) {
94
- if (isResultResponse(response)) {
95
- return response.result;
96
- }
97
- if (isErrorResponse(response)) {
98
- throw parseErrorResponse(response);
99
- }
100
- throw new Error("Unsupported response.");
69
+ export function parseResponse(response) {
70
+ if (isResultResponse(response)) {
71
+ return response.result;
72
+ }
73
+ if (isErrorResponse(response)) {
74
+ throw parseErrorResponse(response);
75
+ }
76
+ throw new Error('Unsupported response.');
101
77
  }
102
- function parseErrorResponse(response, fallbackToGenericApiError = true) {
103
- const handler = errorHandlers.get(response.error.name);
104
- if (handler != void 0) {
105
- const error = handler.deserializer(response.error.data, response.error);
106
- return error;
107
- }
108
- if (!fallbackToGenericApiError) {
109
- return void 0;
110
- }
111
- return new import_error.ApiError(response);
78
+ export function parseErrorResponse(response, fallbackToGenericApiError = true) {
79
+ const handler = errorHandlers.get(response.error.name);
80
+ if (handler != undefined) {
81
+ const error = handler.deserializer(response.error.data, response.error);
82
+ return error;
83
+ }
84
+ if (!fallbackToGenericApiError) {
85
+ return undefined;
86
+ }
87
+ return new ApiError(response);
112
88
  }
113
- function isResultResponse(response) {
114
- const hasResult = (0, import_type_guards.isObject)(response) && (0, import_type_guards.isDefined)(response.result);
115
- return hasResult;
89
+ export function isResultResponse(response) {
90
+ const hasResult = isObject(response) && isDefined(response.result);
91
+ return hasResult;
116
92
  }
117
- function isErrorResponse(response) {
118
- const hasError = (0, import_type_guards.isObject)(response) && (0, import_type_guards.isDefined)(response.error);
119
- return hasError;
93
+ export function isErrorResponse(response) {
94
+ const hasError = isObject(response) && isDefined(response.error);
95
+ return hasError;
120
96
  }
121
- function isResponse(obj) {
122
- return isResultResponse(obj) || isErrorResponse(obj);
97
+ export function isResponse(obj) {
98
+ return (isResultResponse(obj) || isErrorResponse(obj));
123
99
  }
124
- registerErrorHandler(import_error.ApiError, 400, ({ response }) => response, (response) => new import_error.ApiError(response));
125
- registerErrorHandler(import_error.BadRequestError, 400, () => void 0, (_, error) => new import_error.BadRequestError(error.message));
126
- registerErrorHandler(import_error.ForbiddenError, 403, () => void 0, (_, error) => new import_error.ForbiddenError(error.message));
127
- registerErrorHandler(import_error.InvalidTokenError, 401, () => void 0, (_, error) => new import_error.InvalidTokenError(error.message));
128
- registerErrorHandler(import_error.MaxBytesExceededError, 400, () => void 0, (_, error) => new import_error.MaxBytesExceededError(error.message));
129
- registerErrorHandler(import_error.NotFoundError, 404, () => void 0, (_, error) => new import_error.NotFoundError(error.message));
130
- registerErrorHandler(import_error.NotImplementedError, 501, () => void 0, (_, error) => new import_error.NotImplementedError(error.message));
131
- registerErrorHandler(import_error.NotSupportedError, 400, () => void 0, (_, error) => new import_error.NotSupportedError(error.message));
132
- registerErrorHandler(import_error.UnauthorizedError, 401, () => void 0, (_, error) => new import_error.UnauthorizedError(error.message));
133
- registerErrorHandler(import_error.MethodNotAllowedError, 405, () => void 0, (_, error) => new import_error.MethodNotAllowedError(error.message));
134
- registerErrorHandler(import_error.UnsupportedMediaTypeError, 415, () => void 0, (_, error) => new import_error.UnsupportedMediaTypeError(error.message));
135
- registerErrorHandler(import_schema_error.SchemaError, 400, import_default_error_handlers.serializeSchemaError, (data, error) => (0, import_default_error_handlers.deserializeSchemaError)(error.message, data));
136
- registerErrorHandler(import_secret_requirements_error.SecretRequirementsError, 403, () => void 0, (_, error) => new import_secret_requirements_error.SecretRequirementsError(error.message));
100
+ registerErrorHandler(ApiError, 400, ({ response }) => response, (response) => new ApiError(response));
101
+ registerErrorHandler(BadRequestError, 400, () => undefined, (_, error) => new BadRequestError(error.message));
102
+ registerErrorHandler(ForbiddenError, 403, () => undefined, (_, error) => new ForbiddenError(error.message));
103
+ registerErrorHandler(InvalidTokenError, 401, () => undefined, (_, error) => new InvalidTokenError(error.message));
104
+ registerErrorHandler(MaxBytesExceededError, 400, () => undefined, (_, error) => new MaxBytesExceededError(error.message));
105
+ registerErrorHandler(NotFoundError, 404, () => undefined, (_, error) => new NotFoundError(error.message));
106
+ registerErrorHandler(NotImplementedError, 501, () => undefined, (_, error) => new NotImplementedError(error.message));
107
+ registerErrorHandler(NotSupportedError, 400, () => undefined, (_, error) => new NotSupportedError(error.message));
108
+ registerErrorHandler(UnauthorizedError, 401, () => undefined, (_, error) => new UnauthorizedError(error.message));
109
+ registerErrorHandler(MethodNotAllowedError, 405, () => undefined, (_, error) => new MethodNotAllowedError(error.message));
110
+ registerErrorHandler(UnsupportedMediaTypeError, 415, () => undefined, (_, error) => new UnsupportedMediaTypeError(error.message));
111
+ registerErrorHandler(SchemaError, 400, serializeSchemaError, (data, error) => deserializeSchemaError(error.message, data));
112
+ registerErrorHandler(SecretRequirementsError, 403, () => undefined, (_, error) => new SecretRequirementsError(error.message));