@tstdl/base 0.85.13 → 0.86.0-beta1

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