@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
package/utils/helpers.js CHANGED
@@ -1,111 +1,102 @@
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 helpers_exports = {};
20
- __export(helpers_exports, {
21
- flatten: () => flatten,
22
- iif: () => iif,
23
- normalizeText: () => normalizeText,
24
- parseFirstAndFamilyName: () => parseFirstAndFamilyName,
25
- select: () => select,
26
- structuredClone: () => structuredClone,
27
- structuredCloneAsync: () => structuredCloneAsync,
28
- toError: () => toError,
29
- valueOfType: () => valueOfType
30
- });
31
- module.exports = __toCommonJS(helpers_exports);
32
- var import_supports = require("../supports.js");
33
- var import_details_error = require("../error/details.error.js");
34
- var import_decycle = require("./object/decycle.js");
35
- var import_type_guards = require("./type-guards.js");
36
- function structuredClone(value) {
37
- if (import_supports.supportsNotification) {
38
- return new Notification("", { data: value, silent: true }).data;
39
- }
40
- const oldState = history.state;
41
- history.replaceState(value, document.title);
42
- const copy = history.state;
43
- history.replaceState(oldState, document.title);
44
- return copy;
1
+ /* eslint-disable @typescript-eslint/ban-types */
2
+ import { supportsNotification } from '../supports.js';
3
+ import { DetailsError } from '../error/details.error.js';
4
+ import { decycle } from './object/decycle.js';
5
+ import { isDefined } from './type-guards.js';
6
+ /**
7
+ * create an structured clone of an value using Notification if available, otherwise history state (may alters history)
8
+ *
9
+ * may not work in every environment!
10
+ * @param value value to clone
11
+ * @returns clone of value
12
+ */
13
+ export function structuredClone(value) {
14
+ if (supportsNotification) {
15
+ return new Notification('', { data: value, silent: true }).data;
16
+ }
17
+ const oldState = history.state;
18
+ history.replaceState(value, document.title);
19
+ const copy = history.state;
20
+ history.replaceState(oldState, document.title);
21
+ return copy;
45
22
  }
46
- async function structuredCloneAsync(value, options) {
47
- const { port1, port2 } = new MessageChannel();
48
- const promise = new Promise((resolve) => port2.onmessage = (event) => resolve(event.data));
49
- port1.postMessage(value, options);
50
- return promise;
23
+ /**
24
+ * create an structured clone of an value using a MessageChannel
25
+ *
26
+ * should work in all environments
27
+ * @param value value to clone
28
+ * @returns clone of value
29
+ */
30
+ export async function structuredCloneAsync(value, options) {
31
+ const { port1, port2 } = new MessageChannel();
32
+ const promise = new Promise((resolve) => (port2.onmessage = (event) => resolve(event.data)));
33
+ port1.postMessage(value, options);
34
+ return promise;
51
35
  }
52
- function valueOfType(value) {
53
- return value;
36
+ export function valueOfType(value) {
37
+ return value;
54
38
  }
55
- function flatten(array) {
56
- return array.reduce((acc, item) => Array.isArray(item) ? [...acc, ...flatten(item)] : [...acc, item], []);
39
+ export function flatten(array) {
40
+ return array.reduce((acc, item) => (Array.isArray(item) ? [...(acc), ...flatten(item)] : [...(acc), item]), []);
57
41
  }
58
- function toError(obj) {
59
- if (obj instanceof Error) {
60
- return obj;
61
- }
62
- let message;
63
- try {
64
- message = JSON.stringify((0, import_decycle.decycle)(obj));
65
- } catch {
66
- message = "serialization of error reason failed. Take a look at the details property of this error instance.";
67
- }
68
- const error = new import_details_error.DetailsError(message, obj);
69
- return error;
42
+ export function toError(obj) {
43
+ if (obj instanceof Error) {
44
+ return obj;
45
+ }
46
+ let message;
47
+ try {
48
+ message = JSON.stringify(decycle(obj));
49
+ }
50
+ catch {
51
+ message = 'serialization of error reason failed. Take a look at the details property of this error instance.';
52
+ }
53
+ const error = new DetailsError(message, obj);
54
+ return error;
70
55
  }
71
- function select(key) {
72
- return (item) => item[key];
56
+ export function select(key) {
57
+ return (item) => item[key];
73
58
  }
74
- function parseFirstAndFamilyName(name) {
75
- if (name.includes(",")) {
76
- const [familyName2, firstName2] = name.split(",").map((part) => part.trim());
77
- return { firstName: firstName2, familyName: familyName2 };
78
- }
79
- const parts = name.split(" ");
80
- const familyName = parts.length > 1 ? parts.pop().trim() : "";
81
- const firstName = parts.map((part) => part.trim()).join(" ");
82
- return {
83
- firstName: firstName.length > 0 ? firstName : void 0,
84
- familyName: familyName.length > 0 ? familyName : void 0
85
- };
59
+ export function parseFirstAndFamilyName(name) {
60
+ if (name.includes(',')) {
61
+ const [familyName, firstName] = name.split(',').map((part) => part.trim());
62
+ return { firstName, familyName };
63
+ }
64
+ const parts = name.split(' ');
65
+ const familyName = (parts.length > 1) ? (parts.pop()).trim() : '';
66
+ const firstName = parts.map((part) => part.trim()).join(' ');
67
+ return {
68
+ firstName: firstName.length > 0 ? firstName : undefined,
69
+ familyName: familyName.length > 0 ? familyName : undefined
70
+ };
86
71
  }
87
- function normalizeText(text, options = { trim: true, lowercase: true, multipleWhitespace: true, diacritics: true, ligatures: true }) {
88
- let normalized = text;
89
- if (options.trim == true) {
90
- normalized = normalized.trim();
91
- }
92
- if (options.lowercase == true) {
93
- normalized = normalized.toLowerCase();
94
- }
95
- if (options.multipleWhitespace == true) {
96
- normalized = normalized.replace(/\s+/ug, " ");
97
- }
98
- if (options.diacritics == true) {
99
- normalized = normalized.normalize("NFD").replace(/\p{Diacritic}/ug, "");
100
- }
101
- if (options.ligatures == true) {
102
- normalized = normalized.normalize("NFKC");
103
- }
104
- if ((0, import_type_guards.isDefined)(options.unicode)) {
105
- normalized = normalized.normalize(options.unicode);
106
- }
107
- return normalized;
72
+ /**
73
+ * trims, lowercases, replaces multi-character whitespace with a single space and unicode normalization
74
+ * @param text text to normalize
75
+ * @param options specify what to normalize. Defaults to all except unicode
76
+ * @returns normalized text
77
+ */
78
+ export function normalizeText(text, options = { trim: true, lowercase: true, multipleWhitespace: true, diacritics: true, ligatures: true }) {
79
+ let normalized = text;
80
+ if (options.trim == true) {
81
+ normalized = normalized.trim();
82
+ }
83
+ if (options.lowercase == true) {
84
+ normalized = normalized.toLowerCase();
85
+ }
86
+ if (options.multipleWhitespace == true) {
87
+ normalized = normalized.replace(/\s+/ug, ' ');
88
+ }
89
+ if (options.diacritics == true) {
90
+ normalized = normalized.normalize('NFD').replace(/\p{Diacritic}/ug, '');
91
+ }
92
+ if (options.ligatures == true) {
93
+ normalized = normalized.normalize('NFKC');
94
+ }
95
+ if (isDefined(options.unicode)) {
96
+ normalized = normalized.normalize(options.unicode);
97
+ }
98
+ return normalized;
108
99
  }
109
- function iif(condition, trueFn, falseFn) {
110
- return condition ? trueFn() : falseFn();
100
+ export function iif(condition, trueFn, falseFn) {
101
+ return condition ? trueFn() : falseFn();
111
102
  }
package/utils/image.js CHANGED
@@ -1,97 +1,71 @@
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 image_exports = {};
20
- __export(image_exports, {
21
- canDecodeAvif: () => canDecodeAvif,
22
- canDecodeImage: () => canDecodeImage,
23
- canDecodeWebp: () => canDecodeWebp,
24
- canEncodeImageFormat: () => canEncodeImageFormat,
25
- compressImage: () => compressImage
26
- });
27
- module.exports = __toCommonJS(image_exports);
28
- var import_assertion_error = require("../error/assertion.error.js");
29
- var import_rxjs = require("rxjs");
30
- var import_factory_map = require("./factory-map.js");
31
- var import_type_guards = require("./type-guards.js");
32
- const supportedImageDecoders = new import_factory_map.FactoryMap(async (dataUrl) => _canDecodeImage(dataUrl));
33
- const supportedImageEncoders = new import_factory_map.FactoryMap((mimeType) => _canEncodeImage(mimeType));
34
- const webpData = "data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoCAAEAAQAcJaQAA3AA/v3AgAA=";
35
- const avifData = "data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=";
36
- async function canDecodeWebp() {
37
- return canDecodeImage(webpData);
1
+ import { AssertionError } from '../error/assertion.error.js';
2
+ import { firstValueFrom, fromEvent, map, race, switchMap, throwError } from 'rxjs';
3
+ import { FactoryMap } from './factory-map.js';
4
+ import { assertNotNullPass, isFunction, isNull } from './type-guards.js';
5
+ const supportedImageDecoders = new FactoryMap(async (dataUrl) => _canDecodeImage(dataUrl));
6
+ const supportedImageEncoders = new FactoryMap((mimeType) => _canEncodeImage(mimeType));
7
+ const webpData = 'data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoCAAEAAQAcJaQAA3AA/v3AgAA=';
8
+ const avifData = 'data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=';
9
+ export async function canDecodeWebp() {
10
+ return canDecodeImage(webpData);
38
11
  }
39
- async function canDecodeAvif() {
40
- return canDecodeImage(avifData);
12
+ export async function canDecodeAvif() {
13
+ return canDecodeImage(avifData);
41
14
  }
42
- async function canDecodeImage(dataUrl) {
43
- return supportedImageDecoders.get(dataUrl);
15
+ export async function canDecodeImage(dataUrl) {
16
+ return supportedImageDecoders.get(dataUrl);
44
17
  }
45
- function canEncodeImageFormat(mimeType) {
46
- return supportedImageEncoders.get(mimeType);
18
+ export function canEncodeImageFormat(mimeType) {
19
+ return supportedImageEncoders.get(mimeType);
47
20
  }
48
21
  async function _canDecodeImage(dataUrl) {
49
- if ((0, import_type_guards.isFunction)(globalThis.createImageBitmap)) {
50
- const response = await fetch(dataUrl);
51
- const blob = await response.blob();
52
- return createImageBitmap(blob).then(() => true).catch(() => false);
53
- }
54
- const image = new Image();
55
- const canPromise = (0, import_rxjs.firstValueFrom)((0, import_rxjs.race)([
56
- (0, import_rxjs.fromEvent)(image, "load").pipe((0, import_rxjs.map)(() => true)),
57
- (0, import_rxjs.fromEvent)(image, "error").pipe((0, import_rxjs.map)(() => false))
58
- ]));
59
- image.src = dataUrl;
60
- return canPromise;
22
+ if (isFunction(globalThis.createImageBitmap)) {
23
+ const response = await fetch(dataUrl);
24
+ const blob = await response.blob();
25
+ return createImageBitmap(blob).then(() => true).catch(() => false);
26
+ }
27
+ const image = new Image();
28
+ const canPromise = firstValueFrom(race([
29
+ fromEvent(image, 'load').pipe(map(() => true)),
30
+ fromEvent(image, 'error').pipe(map(() => false))
31
+ ]));
32
+ image.src = dataUrl;
33
+ return canPromise;
61
34
  }
62
35
  function _canEncodeImage(mimeType) {
63
- return document.createElement("canvas").toDataURL(mimeType).startsWith(`data:${mimeType};`);
36
+ return document.createElement('canvas').toDataURL(mimeType).startsWith(`data:${mimeType};`);
64
37
  }
65
- async function compressImage(sourceImage, width, height, mimeType, quality) {
66
- const canvas = document.createElement("canvas");
67
- const objectUrl = URL.createObjectURL(sourceImage);
68
- try {
69
- const image = new Image();
70
- const imagePromise = (0, import_rxjs.firstValueFrom)((0, import_rxjs.race)([
71
- (0, import_rxjs.fromEvent)(image, "load").pipe((0, import_rxjs.map)(() => void 0)),
72
- (0, import_rxjs.fromEvent)(image, "error").pipe((0, import_rxjs.switchMap)((event) => (0, import_rxjs.throwError)(() => event.error ?? new Error(event.message))))
73
- ]));
74
- image.src = objectUrl;
75
- await imagePromise;
76
- const widthFactor = width / image.naturalWidth;
77
- const heightFactor = height / image.naturalHeight;
78
- const scaleFactor = Math.min(1, widthFactor < heightFactor ? widthFactor : heightFactor);
79
- const targetWidth = width * scaleFactor;
80
- const targetHeight = height * scaleFactor;
81
- canvas.width = targetWidth;
82
- canvas.height = targetHeight;
83
- const context = (0, import_type_guards.assertNotNullPass)(canvas.getContext("2d"), "canvas 2d context not supported");
84
- context.imageSmoothingQuality = "high";
85
- context.drawImage(image, 0, 0, targetWidth, targetHeight);
86
- const resultBlob = await new Promise((resolve, reject) => canvas.toBlob((blob) => {
87
- if ((0, import_type_guards.isNull)(blob)) {
88
- reject(new import_assertion_error.AssertionError("could not render image"));
89
- return;
90
- }
91
- resolve(blob);
92
- }, mimeType, quality));
93
- return resultBlob;
94
- } finally {
95
- URL.revokeObjectURL(objectUrl);
96
- }
38
+ export async function compressImage(sourceImage, width, height, mimeType, quality) {
39
+ const canvas = document.createElement('canvas');
40
+ const objectUrl = URL.createObjectURL(sourceImage);
41
+ try {
42
+ const image = new Image();
43
+ const imagePromise = firstValueFrom(race([
44
+ fromEvent(image, 'load').pipe(map(() => undefined)),
45
+ fromEvent(image, 'error').pipe(switchMap((event) => throwError(() => event.error ?? new Error(event.message))))
46
+ ]));
47
+ image.src = objectUrl;
48
+ await imagePromise;
49
+ const widthFactor = width / image.naturalWidth;
50
+ const heightFactor = height / image.naturalHeight;
51
+ const scaleFactor = Math.min(1, (widthFactor < heightFactor) ? widthFactor : heightFactor);
52
+ const targetWidth = width * scaleFactor;
53
+ const targetHeight = height * scaleFactor;
54
+ canvas.width = targetWidth;
55
+ canvas.height = targetHeight;
56
+ const context = assertNotNullPass(canvas.getContext('2d'), 'canvas 2d context not supported');
57
+ context.imageSmoothingQuality = 'high';
58
+ context.drawImage(image, 0, 0, targetWidth, targetHeight);
59
+ const resultBlob = await new Promise((resolve, reject) => canvas.toBlob((blob) => {
60
+ if (isNull(blob)) {
61
+ reject(new AssertionError('could not render image'));
62
+ return;
63
+ }
64
+ resolve(blob);
65
+ }, mimeType, quality));
66
+ return resultBlob;
67
+ }
68
+ finally {
69
+ URL.revokeObjectURL(objectUrl);
70
+ }
97
71
  }
package/utils/index.js CHANGED
@@ -1,65 +1,48 @@
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 utils_exports = {};
17
- module.exports = __toCommonJS(utils_exports);
18
- __reExport(utils_exports, require("./alphabet.js"), module.exports);
19
- __reExport(utils_exports, require("./any-iterable-iterator.js"), module.exports);
20
- __reExport(utils_exports, require("./async-iterator-iterable-iterator.js"), module.exports);
21
- __reExport(utils_exports, require("./backoff.js"), module.exports);
22
- __reExport(utils_exports, require("./base64.js"), module.exports);
23
- __reExport(utils_exports, require("./benchmark.js"), module.exports);
24
- __reExport(utils_exports, require("./binary-search.js"), module.exports);
25
- __reExport(utils_exports, require("./binary.js"), module.exports);
26
- __reExport(utils_exports, require("./cancellation-token.js"), module.exports);
27
- __reExport(utils_exports, require("./clone.js"), module.exports);
28
- __reExport(utils_exports, require("./comparison.js"), module.exports);
29
- __reExport(utils_exports, require("./date-time.js"), module.exports);
30
- __reExport(utils_exports, require("./encoding.js"), module.exports);
31
- __reExport(utils_exports, require("./enum.js"), module.exports);
32
- __reExport(utils_exports, require("./equals.js"), module.exports);
33
- __reExport(utils_exports, require("./event-loop.js"), module.exports);
34
- __reExport(utils_exports, require("./factory-map.js"), module.exports);
35
- __reExport(utils_exports, require("./feedable-async-iterable.js"), module.exports);
36
- __reExport(utils_exports, require("./file-reader.js"), module.exports);
37
- __reExport(utils_exports, require("./format-error.js"), module.exports);
38
- __reExport(utils_exports, require("./helpers.js"), module.exports);
39
- __reExport(utils_exports, require("./image.js"), module.exports);
40
- __reExport(utils_exports, require("./map.js"), module.exports);
41
- __reExport(utils_exports, require("./math.js"), module.exports);
42
- __reExport(utils_exports, require("./merge.js"), module.exports);
43
- __reExport(utils_exports, require("./middleware.js"), module.exports);
44
- __reExport(utils_exports, require("./moving-metric.js"), module.exports);
45
- __reExport(utils_exports, require("./noop.js"), module.exports);
46
- __reExport(utils_exports, require("./ordered-feedable-async-iterable.js"), module.exports);
47
- __reExport(utils_exports, require("./patterns.js"), module.exports);
48
- __reExport(utils_exports, require("./periodic-reporter.js"), module.exports);
49
- __reExport(utils_exports, require("./periodic-sampler.js"), module.exports);
50
- __reExport(utils_exports, require("./provider-function-iterable.js"), module.exports);
51
- __reExport(utils_exports, require("./proxy.js"), module.exports);
52
- __reExport(utils_exports, require("./random.js"), module.exports);
53
- __reExport(utils_exports, require("./reflection.js"), module.exports);
54
- __reExport(utils_exports, require("./set.js"), module.exports);
55
- __reExport(utils_exports, require("./singleton.js"), module.exports);
56
- __reExport(utils_exports, require("./sort.js"), module.exports);
57
- __reExport(utils_exports, require("./throw.js"), module.exports);
58
- __reExport(utils_exports, require("./timer.js"), module.exports);
59
- __reExport(utils_exports, require("./timing.js"), module.exports);
60
- __reExport(utils_exports, require("./type-guards.js"), module.exports);
61
- __reExport(utils_exports, require("./type-of.js"), module.exports);
62
- __reExport(utils_exports, require("./units.js"), module.exports);
63
- __reExport(utils_exports, require("./url-builder.js"), module.exports);
64
- __reExport(utils_exports, require("./value-or-provider.js"), module.exports);
65
- __reExport(utils_exports, require("./z-base32.js"), module.exports);
1
+ export * from './alphabet.js';
2
+ export * from './any-iterable-iterator.js';
3
+ export * from './async-iterator-iterable-iterator.js';
4
+ export * from './backoff.js';
5
+ export * from './base64.js';
6
+ export * from './benchmark.js';
7
+ export * from './binary-search.js';
8
+ export * from './binary.js';
9
+ export * from './cancellation-token.js';
10
+ export * from './clone.js';
11
+ export * from './comparison.js';
12
+ export * from './date-time.js';
13
+ export * from './encoding.js';
14
+ export * from './enum.js';
15
+ export * from './equals.js';
16
+ export * from './event-loop.js';
17
+ export * from './factory-map.js';
18
+ export * from './feedable-async-iterable.js';
19
+ export * from './file-reader.js';
20
+ export * from './format-error.js';
21
+ export * from './helpers.js';
22
+ export * from './image.js';
23
+ export * from './map.js';
24
+ export * from './math.js';
25
+ export * from './merge.js';
26
+ export * from './middleware.js';
27
+ export * from './moving-metric.js';
28
+ export * from './noop.js';
29
+ export * from './ordered-feedable-async-iterable.js';
30
+ export * from './patterns.js';
31
+ export * from './periodic-reporter.js';
32
+ export * from './periodic-sampler.js';
33
+ export * from './provider-function-iterable.js';
34
+ export * from './proxy.js';
35
+ export * from './random.js';
36
+ export * from './reflection.js';
37
+ export * from './set.js';
38
+ export * from './singleton.js';
39
+ export * from './sort.js';
40
+ export * from './throw.js';
41
+ export * from './timer.js';
42
+ export * from './timing.js';
43
+ export * from './type-guards.js';
44
+ export * from './type-of.js';
45
+ export * from './units.js';
46
+ export * from './url-builder.js';
47
+ export * from './value-or-provider.js';
48
+ export * from './z-base32.js';
@@ -1,33 +1,10 @@
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, all2) => {
7
- for (var name in all2)
8
- __defProp(target, name, { get: all2[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 all_exports = {};
20
- __export(all_exports, {
21
- all: () => all
22
- });
23
- module.exports = __toCommonJS(all_exports);
24
- function all(iterable, predicate = () => true) {
25
- let index = 0;
26
- for (const item of iterable) {
27
- const matches = predicate(item, index++);
28
- if (!matches) {
29
- return false;
1
+ export function all(iterable, predicate = (() => true)) {
2
+ let index = 0;
3
+ for (const item of iterable) {
4
+ const matches = predicate(item, index++);
5
+ if (!matches) {
6
+ return false;
7
+ }
30
8
  }
31
- }
32
- return true;
9
+ return true;
33
10
  }
@@ -1,33 +1,10 @@
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 any_exports = {};
20
- __export(any_exports, {
21
- any: () => any
22
- });
23
- module.exports = __toCommonJS(any_exports);
24
- function any(iterable, predicate = () => true) {
25
- let index = 0;
26
- for (const item of iterable) {
27
- const matches = predicate(item, index++);
28
- if (matches) {
29
- return true;
1
+ export function any(iterable, predicate = (() => true)) {
2
+ let index = 0;
3
+ for (const item of iterable) {
4
+ const matches = predicate(item, index++);
5
+ if (matches) {
6
+ return true;
7
+ }
30
8
  }
31
- }
32
- return false;
9
+ return false;
33
10
  }
@@ -1,31 +1,8 @@
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 assert_exports = {};
20
- __export(assert_exports, {
21
- assert: () => assert
22
- });
23
- module.exports = __toCommonJS(assert_exports);
24
- var import_type_guards = require("../type-guards.js");
25
- function* assert(iterable, predicate) {
26
- let index = 0;
27
- for (const item of iterable) {
28
- (0, import_type_guards.assert)(predicate(item, index++));
29
- yield item;
30
- }
1
+ import { assert as assertHelper } from '../type-guards.js';
2
+ export function* assert(iterable, predicate) {
3
+ let index = 0;
4
+ for (const item of iterable) {
5
+ assertHelper(predicate(item, index++));
6
+ yield item;
7
+ }
31
8
  }