@tstdl/base 0.87.15 → 0.88.0-alpha2

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