@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/encoding.js CHANGED
@@ -1,68 +1,70 @@
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 encoding_exports = {};
20
- __export(encoding_exports, {
21
- decodeHex: () => decodeHex,
22
- decodeText: () => decodeText,
23
- decodeTextStream: () => decodeTextStream,
24
- encodeHex: () => encodeHex,
25
- encodeUtf8: () => encodeUtf8,
26
- encodeUtf8Stream: () => encodeUtf8Stream
27
- });
28
- module.exports = __toCommonJS(encoding_exports);
29
- var import_assertion_error = require("../error/assertion.error.js");
30
- var import_array = require("./array/array.js");
31
- var import_binary = require("./binary.js");
32
- var import_type_guards = require("./type-guards.js");
33
- const byteToHex = (0, import_array.createArray)(2 ** 8, (i) => i).map((value) => value.toString(16).padStart(2, "0"));
1
+ import { AssertionError } from '../error/assertion.error.js';
2
+ import { createArray } from './array/array.js';
3
+ import { toUint8Array } from './binary.js';
4
+ import { isUndefined } from './type-guards.js';
5
+ const byteToHex = createArray(2 ** 8, (i) => i).map((value) => value.toString(16).padStart(2, '0'));
34
6
  const hexToByte = new Map(byteToHex.map((hex, value) => [hex, value]));
35
- function encodeUtf8(text) {
36
- const encoder = new TextEncoder();
37
- return encoder.encode(text);
7
+ /**
8
+ * encodes text to utf8
9
+ * @param text text to encode
10
+ * @returns utf8 encoded text
11
+ */
12
+ export function encodeUtf8(text) {
13
+ const encoder = new TextEncoder();
14
+ return encoder.encode(text);
38
15
  }
39
- function encodeUtf8Stream() {
40
- return new TextEncoderStream();
16
+ /**
17
+ * encodes text stream to utf8 bytes stream
18
+ */
19
+ export function encodeUtf8Stream() {
20
+ return new TextEncoderStream();
41
21
  }
42
- function decodeText(buffer, encoding) {
43
- const decoder = new TextDecoder(encoding, { fatal: true });
44
- return decoder.decode(buffer);
22
+ /**
23
+ * decodes buffer to string
24
+ * @param buffer buffer to decode
25
+ * @param encoding encoding, defaults to utf8
26
+ * @returns decoded string
27
+ */
28
+ export function decodeText(buffer, encoding) {
29
+ const decoder = new TextDecoder(encoding, { fatal: true });
30
+ return decoder.decode(buffer);
45
31
  }
46
- function decodeTextStream(encoding) {
47
- return new TextDecoderStream(encoding, { fatal: true });
32
+ /**
33
+ * transforms binary stream to string stream
34
+ * @param encoding encoding, defaults to utf8
35
+ * @returns stream of decoded string
36
+ */
37
+ export function decodeTextStream(encoding) {
38
+ return new TextDecoderStream(encoding, { fatal: true });
48
39
  }
49
- function encodeHex(buffer) {
50
- const bytes = (0, import_binary.toUint8Array)(buffer);
51
- let result = "";
52
- for (let i = 0; i < bytes.length; i++) {
53
- result += byteToHex[bytes[i]];
54
- }
55
- return result;
40
+ /**
41
+ * encodes buffer to hex
42
+ * @param buffer buffer to encode
43
+ * @returns hex encoded string
44
+ */
45
+ export function encodeHex(buffer) {
46
+ const bytes = toUint8Array(buffer);
47
+ let result = '';
48
+ // eslint-disable-next-line @typescript-eslint/prefer-for-of
49
+ for (let i = 0; i < bytes.length; i++) {
50
+ result += byteToHex[bytes[i]];
51
+ }
52
+ return result;
56
53
  }
57
- function decodeHex(hex) {
58
- const bytes = new Uint8Array(hex.length / 2);
59
- for (let i = 0; i < hex.length; i += 2) {
60
- const hexPart = hex.substring(i, i + 2);
61
- const byte = hexToByte.get(hexPart);
62
- if ((0, import_type_guards.isUndefined)(byte)) {
63
- throw new import_assertion_error.AssertionError(`invalid hex string at position ${i}`);
54
+ /**
55
+ * decodes hex string to buffer
56
+ * @param hex hex string to decode
57
+ * @returns decoded buffer
58
+ */
59
+ export function decodeHex(hex) {
60
+ const bytes = new Uint8Array(hex.length / 2);
61
+ for (let i = 0; i < hex.length; i += 2) {
62
+ const hexPart = hex.substring(i, i + 2);
63
+ const byte = hexToByte.get(hexPart);
64
+ if (isUndefined(byte)) {
65
+ throw new AssertionError(`invalid hex string at position ${i}`);
66
+ }
67
+ bytes[i / 2] = byte;
64
68
  }
65
- bytes[i / 2] = byte;
66
- }
67
- return bytes;
69
+ return bytes;
68
70
  }
package/utils/enum.js CHANGED
@@ -1,60 +1,34 @@
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 enum_exports = {};
20
- __export(enum_exports, {
21
- enumEntries: () => enumEntries,
22
- enumKeys: () => enumKeys,
23
- enumValueName: () => enumValueName,
24
- enumValues: () => enumValues,
25
- randomEnumValue: () => randomEnumValue
26
- });
27
- module.exports = __toCommonJS(enum_exports);
28
- var import_array = require("./array/array.js");
29
- var import_memoize = require("./function/memoize.js");
30
- var import_object = require("./object/object.js");
31
- var import_type_guards = require("./type-guards.js");
32
- const memoizedEnumEntries = (0, import_memoize.memoizeSingle)(_enumEntries, { weak: true });
33
- const memoizedEnumKeys = (0, import_memoize.memoizeSingle)(_enumKeys, { weak: true });
34
- const memoizedEnumValues = (0, import_memoize.memoizeSingle)(_enumValues, { weak: true });
35
- function enumValueName(enumeration, value) {
36
- return (0, import_type_guards.isNumber)(value) ? enumeration[value]?.toString() ?? value.toString() : value;
37
- }
38
- function enumEntries(enumeration) {
39
- return memoizedEnumEntries(enumeration);
40
- }
41
- function enumKeys(enumeration) {
42
- return memoizedEnumKeys(enumeration);
43
- }
44
- function enumValues(enumeration) {
45
- return memoizedEnumValues(enumeration);
46
- }
47
- function randomEnumValue(enumeration) {
48
- return (0, import_array.randomItem)(enumValues(enumeration));
1
+ import { randomItem } from './array/array.js';
2
+ import { memoizeSingle } from './function/memoize.js';
3
+ import { objectEntries } from './object/object.js';
4
+ import { isNumber } from './type-guards.js';
5
+ const memoizedEnumEntries = memoizeSingle(_enumEntries, { weak: true });
6
+ const memoizedEnumKeys = memoizeSingle(_enumKeys, { weak: true });
7
+ const memoizedEnumValues = memoizeSingle(_enumValues, { weak: true });
8
+ export function enumValueName(enumeration, value) {
9
+ return isNumber(value) ? enumeration[value]?.toString() ?? value.toString() : value;
10
+ }
11
+ export function enumEntries(enumeration) {
12
+ return memoizedEnumEntries(enumeration);
13
+ }
14
+ export function enumKeys(enumeration) {
15
+ return memoizedEnumKeys(enumeration);
16
+ }
17
+ export function enumValues(enumeration) {
18
+ return memoizedEnumValues(enumeration);
19
+ }
20
+ export function randomEnumValue(enumeration) {
21
+ return randomItem(enumValues(enumeration));
49
22
  }
50
23
  function _enumEntries(enumeration) {
51
- return (0, import_object.objectEntries)(enumeration).filter((entry) => Number.isNaN(Number(entry[0])));
24
+ return objectEntries(enumeration)
25
+ .filter((entry) => Number.isNaN(Number(entry[0])));
52
26
  }
53
27
  function _enumKeys(enumeration) {
54
- const entries = enumEntries(enumeration);
55
- return entries.map((entry) => entry[0]);
28
+ const entries = enumEntries(enumeration);
29
+ return entries.map((entry) => entry[0]);
56
30
  }
57
31
  function _enumValues(enumeration) {
58
- const entries = enumEntries(enumeration);
59
- return entries.map((entry) => entry[1]);
32
+ const entries = enumEntries(enumeration);
33
+ return entries.map((entry) => entry[1]);
60
34
  }
package/utils/equals.js CHANGED
@@ -1,131 +1,115 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
1
+ /* eslint-disable @typescript-eslint/ban-types */
2
+ import { toArray } from './array/array.js';
3
+ import { toUint8Array } from './binary.js';
4
+ import { compareByValue } from './comparison.js';
5
+ import { sort } from './iterable-helpers/sort.js';
6
+ import { isDefined, isNotNull, isNull } from './type-guards.js';
7
+ const equalsSymbol = Symbol('equals');
8
+ // eslint-disable-next-line @typescript-eslint/no-redeclare, @typescript-eslint/naming-convention
9
+ export const Equals = {
10
+ symbol: equalsSymbol
9
11
  };
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 equals_exports = {};
20
- __export(equals_exports, {
21
- Equals: () => Equals,
22
- arrayEquals: () => arrayEquals,
23
- binaryEquals: () => binaryEquals,
24
- equals: () => equals,
25
- strictEquals: () => strictEquals
26
- });
27
- module.exports = __toCommonJS(equals_exports);
28
- var import_array = require("./array/array.js");
29
- var import_binary = require("./binary.js");
30
- var import_comparison = require("./comparison.js");
31
- var import_sort = require("./iterable-helpers/sort.js");
32
- var import_type_guards = require("./type-guards.js");
33
- const equalsSymbol = Symbol("equals");
34
- const Equals = {
35
- symbol: equalsSymbol
36
- };
37
- function strictEquals(a, b) {
38
- return a === b;
12
+ export function strictEquals(a, b) {
13
+ return a === b;
39
14
  }
40
- function arrayEquals(a, b, options) {
41
- const _sort = options?.sort ?? false;
42
- const comparator = options?.comparator ?? equals;
43
- if (a.length != b.length) {
44
- return false;
45
- }
46
- const c = _sort != false ? (0, import_array.toArray)((0, import_sort.sort)(a, _sort)) : a;
47
- const d = _sort != false ? (0, import_array.toArray)((0, import_sort.sort)(b, _sort)) : b;
48
- for (let i = 0; i < c.length; i++) {
49
- const itemEquals = comparator(c[i], d[i]);
50
- if (!itemEquals) {
51
- return false;
15
+ export function arrayEquals(a, b, options) {
16
+ const _sort = options?.sort ?? false;
17
+ const comparator = options?.comparator ?? equals;
18
+ if (a.length != b.length) {
19
+ return false;
52
20
  }
53
- }
54
- return true;
55
- }
56
- const allowedEqualsCoerceStringsTypes = ["string", "number", "boolean", "bigint"];
57
- function equals(a, b, options = {}, visitedNodes = /* @__PURE__ */ new Set()) {
58
- if (a === b) {
59
- return true;
60
- }
61
- const aType = typeof a;
62
- const bType = typeof b;
63
- if (aType != bType) {
64
- if ((0, import_type_guards.isDefined)(options.coerceStrings) && allowedEqualsCoerceStringsTypes.includes(aType) && allowedEqualsCoerceStringsTypes.includes(bType)) {
65
- return a.toString() == b.toString();
21
+ const c = _sort != false ? toArray(sort(a, _sort)) : a;
22
+ const d = _sort != false ? toArray(sort(b, _sort)) : b;
23
+ for (let i = 0; i < c.length; i++) {
24
+ const itemEquals = comparator(c[i], d[i]);
25
+ if (!itemEquals) {
26
+ return false;
27
+ }
66
28
  }
67
- return false;
68
- }
69
- switch (aType) {
70
- case "function":
71
- return options.deep == true ? a.toString() == b.toString() : false;
72
- case "object":
73
- if ((0, import_type_guards.isNull)(a) || (0, import_type_guards.isNull)(b)) {
74
- return false;
75
- }
76
- if (visitedNodes.has(a)) {
29
+ return true;
30
+ }
31
+ const allowedEqualsCoerceStringsTypes = ['string', 'number', 'boolean', 'bigint'];
32
+ export function equals(a, b, options = {}, visitedNodes = new Set()) {
33
+ if (a === b) {
77
34
  return true;
78
- }
79
- visitedNodes.add(a);
80
- const aPrototype = Object.getPrototypeOf(a);
81
- const bPrototype = Object.getPrototypeOf(b);
82
- if (aPrototype !== bPrototype) {
83
- return false;
84
- }
85
- if (Array.isArray(a)) {
86
- return options.arrayDeep != false && (options.deep == true || options.arrayDeep == true) ? arrayEquals(a, b, { sort: options.sortArray == true ? import_comparison.compareByValue : void 0, comparator: (x, y) => equals(x, y, options, visitedNodes) }) : a === b;
87
- }
88
- if (Equals.symbol in a) {
89
- return a[Equals.symbol](b);
90
- }
91
- if (Equals.symbol in b) {
92
- return b[Equals.symbol](a);
93
- }
94
- if (aPrototype != Object.prototype && (0, import_type_guards.isNotNull)(aPrototype)) {
95
- throw new Error("Equals only supports literal objects, arrays, primitives and Equals interface implementations.");
96
- }
97
- if (options.deep == false) {
35
+ }
36
+ const aType = typeof a;
37
+ const bType = typeof b;
38
+ if (aType != bType) {
39
+ if (isDefined(options.coerceStrings) && allowedEqualsCoerceStringsTypes.includes(aType) && allowedEqualsCoerceStringsTypes.includes(bType)) {
40
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
41
+ return a.toString() == b.toString();
42
+ }
98
43
  return false;
99
- }
100
- return objectEquals(a, b, options, visitedNodes);
101
- default:
102
- return a === b;
103
- }
44
+ }
45
+ switch (aType) {
46
+ case 'function':
47
+ return (options.deep == true)
48
+ ? a.toString() == b.toString()
49
+ : false;
50
+ case 'object':
51
+ if (isNull(a) || isNull(b)) { // hasn't passed equals check at top, so one must be a true object
52
+ return false;
53
+ }
54
+ if (visitedNodes.has(a)) {
55
+ return true;
56
+ }
57
+ visitedNodes.add(a);
58
+ const aPrototype = Object.getPrototypeOf(a);
59
+ const bPrototype = Object.getPrototypeOf(b);
60
+ if (aPrototype !== bPrototype) {
61
+ return false;
62
+ }
63
+ if (Array.isArray(a)) {
64
+ return (options.arrayDeep != false && (options.deep == true || options.arrayDeep == true))
65
+ ? arrayEquals(a, b, { sort: (options.sortArray == true) ? compareByValue : undefined, comparator: (x, y) => equals(x, y, options, visitedNodes) })
66
+ : a === b;
67
+ }
68
+ if (Equals.symbol in a) {
69
+ return a[Equals.symbol](b);
70
+ }
71
+ if (Equals.symbol in b) {
72
+ return b[Equals.symbol](a);
73
+ }
74
+ if ((aPrototype != Object.prototype) && isNotNull(aPrototype)) { // checking a is enough, because b must have equal prototype (checked above)
75
+ throw new Error('Equals only supports literal objects, arrays, primitives and Equals interface implementations.');
76
+ }
77
+ if (options.deep == false) {
78
+ return false;
79
+ }
80
+ return objectEquals(a, b, options, visitedNodes);
81
+ default:
82
+ return a === b;
83
+ }
104
84
  }
85
+ // eslint-disable-next-line max-statements, max-lines-per-function
105
86
  function objectEquals(a, b, options, visitedNodes) {
106
- const aProperties = Object.getOwnPropertyNames(a);
107
- const bProperties = Object.getOwnPropertyNames(b);
108
- if (!arrayEquals(aProperties, bProperties, { sort: import_comparison.compareByValue })) {
109
- return false;
110
- }
111
- for (const property of aProperties) {
112
- const eq = equals(a[property], b[property], options, visitedNodes);
113
- if (!eq) {
114
- return false;
87
+ const aProperties = Object.getOwnPropertyNames(a);
88
+ const bProperties = Object.getOwnPropertyNames(b);
89
+ if (!arrayEquals(aProperties, bProperties, { sort: compareByValue })) {
90
+ return false;
91
+ }
92
+ for (const property of aProperties) {
93
+ const eq = equals(a[property], b[property], options, visitedNodes);
94
+ if (!eq) {
95
+ return false;
96
+ }
115
97
  }
116
- }
117
- return true;
98
+ return true;
118
99
  }
119
- function binaryEquals(bufferA, bufferB) {
120
- const a = (0, import_binary.toUint8Array)(bufferA, false);
121
- const b = (0, import_binary.toUint8Array)(bufferB, false);
122
- if (a.length != b.length) {
123
- return false;
124
- }
125
- for (let i = 0; i < a.length; i++) {
126
- if (a[i] != b[i]) {
127
- return false;
100
+ /**
101
+ * compares to binary types for equal content
102
+ */
103
+ export function binaryEquals(bufferA, bufferB) {
104
+ const a = toUint8Array(bufferA, false);
105
+ const b = toUint8Array(bufferB, false);
106
+ if (a.length != b.length) {
107
+ return false;
128
108
  }
129
- }
130
- return true;
109
+ for (let i = 0; i < a.length; i++) {
110
+ if (a[i] != b[i]) {
111
+ return false;
112
+ }
113
+ }
114
+ return true;
131
115
  }
@@ -1,42 +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 event_loop_exports = {};
20
- __export(event_loop_exports, {
21
- measureEventLoopDelay: () => measureEventLoopDelay,
22
- runEventLoopWatcher: () => runEventLoopWatcher
23
- });
24
- module.exports = __toCommonJS(event_loop_exports);
25
- var import_format = require("./format.js");
26
- var import_periodic_sampler = require("./periodic-sampler.js");
27
- var import_timer = require("./timer.js");
28
- async function measureEventLoopDelay() {
29
- return new Promise((resolve) => {
30
- const stopwatch = new import_timer.Timer();
31
- setImmediate(() => {
32
- stopwatch.start();
33
- setImmediate(() => resolve(stopwatch.milliseconds));
1
+ import { formatDuration } from './format.js';
2
+ import { AggregationMode, PeriodicSampler } from './periodic-sampler.js';
3
+ import { Timer } from './timer.js';
4
+ export async function measureEventLoopDelay() {
5
+ return new Promise((resolve) => {
6
+ const stopwatch = new Timer();
7
+ setImmediate(() => {
8
+ stopwatch.start();
9
+ // inner setImmediate, to measure an full event-loop-cycle
10
+ setImmediate(() => resolve(stopwatch.milliseconds));
11
+ });
34
12
  });
35
- });
36
13
  }
37
- function runEventLoopWatcher(logger, cancellationToken) {
38
- const sampler = new import_periodic_sampler.PeriodicSampler(measureEventLoopDelay, 50);
39
- sampler.watch(0, 100, import_periodic_sampler.AggregationMode.ThirdQuartile).subscribe((delay) => logger.debug(`eventloop: ${(0, import_format.formatDuration)(delay, 2)}`));
40
- sampler.start();
41
- cancellationToken.then(async () => sampler.stop());
14
+ export function runEventLoopWatcher(logger, cancellationToken) {
15
+ const sampler = new PeriodicSampler(measureEventLoopDelay, 50);
16
+ sampler
17
+ .watch(0, 100, AggregationMode.ThirdQuartile)
18
+ .subscribe((delay) => logger.debug(`eventloop: ${formatDuration(delay, 2)}`));
19
+ sampler.start();
20
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
21
+ cancellationToken.then(async () => sampler.stop());
42
22
  }
@@ -1,77 +1,55 @@
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 factory_map_exports = {};
20
- __export(factory_map_exports, {
21
- FactoryMap: () => FactoryMap
22
- });
23
- module.exports = __toCommonJS(factory_map_exports);
24
- class FactoryMap {
25
- factory;
26
- [Symbol.toStringTag];
27
- backingMap;
28
- get size() {
29
- return this.backingMap.size;
30
- }
31
- constructor(factory, backingMap) {
32
- this.factory = factory;
33
- this[Symbol.toStringTag] = "FactoryMap";
34
- this.backingMap = backingMap ?? /* @__PURE__ */ new Map();
35
- }
36
- clear() {
37
- this.backingMap.clear();
38
- }
39
- has(key) {
40
- return this.backingMap.has(key);
41
- }
42
- get(key) {
43
- const has = this.backingMap.has(key);
44
- if (has) {
45
- return this.backingMap.get(key);
1
+ /** same as {@link Map}, except that it will build the value with the provided factory on {@link get} if it doesnt exist */
2
+ export class FactoryMap {
3
+ factory;
4
+ [Symbol.toStringTag];
5
+ backingMap;
6
+ get size() {
7
+ return this.backingMap.size;
8
+ }
9
+ constructor(factory, backingMap) {
10
+ this.factory = factory;
11
+ this[Symbol.toStringTag] = 'FactoryMap';
12
+ this.backingMap = backingMap ?? new Map();
13
+ }
14
+ clear() {
15
+ this.backingMap.clear();
16
+ }
17
+ has(key) {
18
+ return this.backingMap.has(key);
19
+ }
20
+ get(key) {
21
+ const has = this.backingMap.has(key);
22
+ if (has) {
23
+ return this.backingMap.get(key);
24
+ }
25
+ const value = this.factory(key);
26
+ this.backingMap.set(key, value);
27
+ return value;
28
+ }
29
+ getWithoutBuild(key) {
30
+ return this.backingMap.get(key);
31
+ }
32
+ set(key, value) {
33
+ this.backingMap.set(key, value);
34
+ return this;
35
+ }
36
+ delete(key) {
37
+ return this.backingMap.delete(key);
38
+ }
39
+ forEach(callback, thisArg) {
40
+ const boundCallback = callback.bind(thisArg);
41
+ this.backingMap.forEach((value, key) => boundCallback(value, key, this));
42
+ }
43
+ *[Symbol.iterator]() {
44
+ yield* this.backingMap[Symbol.iterator]();
45
+ }
46
+ *entries() {
47
+ yield* this.backingMap.entries();
48
+ }
49
+ *keys() {
50
+ yield* this.backingMap.keys();
51
+ }
52
+ *values() {
53
+ yield* this.backingMap.values();
46
54
  }
47
- const value = this.factory(key);
48
- this.backingMap.set(key, value);
49
- return value;
50
- }
51
- getWithoutBuild(key) {
52
- return this.backingMap.get(key);
53
- }
54
- set(key, value) {
55
- this.backingMap.set(key, value);
56
- return this;
57
- }
58
- delete(key) {
59
- return this.backingMap.delete(key);
60
- }
61
- forEach(callback, thisArg) {
62
- const boundCallback = callback.bind(thisArg);
63
- this.backingMap.forEach((value, key) => boundCallback(value, key, this));
64
- }
65
- *[Symbol.iterator]() {
66
- yield* this.backingMap[Symbol.iterator]();
67
- }
68
- *entries() {
69
- yield* this.backingMap.entries();
70
- }
71
- *keys() {
72
- yield* this.backingMap.keys();
73
- }
74
- *values() {
75
- yield* this.backingMap.values();
76
- }
77
55
  }