@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
@@ -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
  }