@tstdl/base 0.87.13 → 0.88.0-alpha1

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