@lokalise/fastify-extras 21.2.2 → 21.4.0

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 (141) hide show
  1. package/README.md +30 -1
  2. package/dist/{errors → lib/errors}/errorHandler.js +1 -2
  3. package/dist/lib/errors/errorHandler.js.map +1 -0
  4. package/dist/lib/errors/errorHandler.spec.js.map +1 -0
  5. package/dist/lib/errors/publicErrors.js.map +1 -0
  6. package/dist/{index.d.ts → lib/index.d.ts} +4 -0
  7. package/dist/{index.js → lib/index.js} +6 -1
  8. package/dist/lib/index.js.map +1 -0
  9. package/dist/lib/jwt-utils/tokenUtils.js.map +1 -0
  10. package/dist/lib/jwt-utils/tokenUtils.spec.js.map +1 -0
  11. package/dist/lib/plugins/amplitude/Amplitude.js.map +1 -0
  12. package/dist/lib/plugins/amplitude/AmplitudeAdapter.js.map +1 -0
  13. package/dist/lib/plugins/amplitude/AmplitudeAdapter.spec.js.map +1 -0
  14. package/dist/lib/plugins/amplitude/amplitudePlugin.js.map +1 -0
  15. package/dist/lib/plugins/amplitude/amplitudePlugin.spec.js.map +1 -0
  16. package/dist/lib/plugins/bugsnagPlugin.js.map +1 -0
  17. package/dist/lib/plugins/bull-mq-metrics/CollectionScheduler.d.ts +12 -0
  18. package/dist/lib/plugins/bull-mq-metrics/CollectionScheduler.js +24 -0
  19. package/dist/lib/plugins/bull-mq-metrics/CollectionScheduler.js.map +1 -0
  20. package/dist/lib/plugins/bull-mq-metrics/MetricsCollector.d.ts +39 -0
  21. package/dist/lib/plugins/bull-mq-metrics/MetricsCollector.js +103 -0
  22. package/dist/lib/plugins/bull-mq-metrics/MetricsCollector.js.map +1 -0
  23. package/dist/lib/plugins/bull-mq-metrics/ObservableQueue.d.ts +14 -0
  24. package/dist/lib/plugins/bull-mq-metrics/ObservableQueue.js +56 -0
  25. package/dist/lib/plugins/bull-mq-metrics/ObservableQueue.js.map +1 -0
  26. package/dist/lib/plugins/bull-mq-metrics/queueDiscoverers.d.ts +15 -0
  27. package/dist/lib/plugins/bull-mq-metrics/queueDiscoverers.js +40 -0
  28. package/dist/lib/plugins/bull-mq-metrics/queueDiscoverers.js.map +1 -0
  29. package/dist/lib/plugins/bullMqMetricsPlugin.d.ts +20 -0
  30. package/dist/lib/plugins/bullMqMetricsPlugin.js +56 -0
  31. package/dist/lib/plugins/bullMqMetricsPlugin.js.map +1 -0
  32. package/dist/lib/plugins/bullMqMetricsPlugin.spec.d.ts +7 -0
  33. package/dist/lib/plugins/bullMqMetricsPlugin.spec.js +102 -0
  34. package/dist/lib/plugins/bullMqMetricsPlugin.spec.js.map +1 -0
  35. package/dist/lib/plugins/healthcheck/healthcheckCommons.js.map +1 -0
  36. package/dist/lib/plugins/healthcheck/healthcheckMetricsPlugin.js.map +1 -0
  37. package/dist/lib/plugins/healthcheck/healthcheckMetricsPlugin.spec.js.map +1 -0
  38. package/dist/lib/plugins/healthcheck/publicHealthcheckPlugin.js.map +1 -0
  39. package/dist/lib/plugins/healthcheck/publicHealthcheckPlugin.spec.js.map +1 -0
  40. package/dist/lib/plugins/metricsPlugin.js.map +1 -0
  41. package/dist/lib/plugins/metricsPlugin.spec.js.map +1 -0
  42. package/dist/lib/plugins/newrelicTransactionManagerPlugin.js.map +1 -0
  43. package/dist/lib/plugins/requestContextProviderPlugin.js.map +1 -0
  44. package/dist/lib/plugins/requestContextProviderPlugin.spec.js.map +1 -0
  45. package/dist/lib/plugins/requestContextProviderPluginTypes.spec.js.map +1 -0
  46. package/dist/lib/plugins/splitIOFeatureManagerPlugin.js.map +1 -0
  47. package/dist/lib/plugins/splitIOFeatureManagerPlugin.spec.js.map +1 -0
  48. package/dist/lib/plugins/unhandledExceptionPlugin.js.map +1 -0
  49. package/dist/lib/plugins/unhandledExceptionPlugin.spec.js.map +1 -0
  50. package/dist/lib/types.js.map +1 -0
  51. package/dist/test/mocks/TestBackgroundJobProcessor.d.ts +8 -0
  52. package/dist/test/mocks/TestBackgroundJobProcessor.js +27 -0
  53. package/dist/test/mocks/TestBackgroundJobProcessor.js.map +1 -0
  54. package/dist/test/mocks/TestDepedendencies.d.ts +11 -0
  55. package/dist/test/mocks/TestDepedendencies.js +62 -0
  56. package/dist/test/mocks/TestDepedendencies.js.map +1 -0
  57. package/dist/test/setup.d.ts +2 -0
  58. package/dist/test/setup.js +14 -0
  59. package/dist/test/setup.js.map +1 -0
  60. package/package.json +13 -5
  61. package/dist/errors/errorHandler.js.map +0 -1
  62. package/dist/errors/errorHandler.spec.js.map +0 -1
  63. package/dist/errors/publicErrors.js.map +0 -1
  64. package/dist/index.js.map +0 -1
  65. package/dist/jwt-utils/tokenUtils.js.map +0 -1
  66. package/dist/jwt-utils/tokenUtils.spec.js.map +0 -1
  67. package/dist/plugins/amplitude/Amplitude.js.map +0 -1
  68. package/dist/plugins/amplitude/AmplitudeAdapter.js.map +0 -1
  69. package/dist/plugins/amplitude/AmplitudeAdapter.spec.js.map +0 -1
  70. package/dist/plugins/amplitude/amplitudePlugin.js.map +0 -1
  71. package/dist/plugins/amplitude/amplitudePlugin.spec.js.map +0 -1
  72. package/dist/plugins/bugsnagPlugin.js.map +0 -1
  73. package/dist/plugins/healthcheck/healthcheckCommons.js.map +0 -1
  74. package/dist/plugins/healthcheck/healthcheckMetricsPlugin.js.map +0 -1
  75. package/dist/plugins/healthcheck/healthcheckMetricsPlugin.spec.js.map +0 -1
  76. package/dist/plugins/healthcheck/publicHealthcheckPlugin.js.map +0 -1
  77. package/dist/plugins/healthcheck/publicHealthcheckPlugin.spec.js.map +0 -1
  78. package/dist/plugins/metricsPlugin.js.map +0 -1
  79. package/dist/plugins/metricsPlugin.spec.js.map +0 -1
  80. package/dist/plugins/newrelicTransactionManagerPlugin.js.map +0 -1
  81. package/dist/plugins/requestContextProviderPlugin.js.map +0 -1
  82. package/dist/plugins/requestContextProviderPlugin.spec.js.map +0 -1
  83. package/dist/plugins/requestContextProviderPluginTypes.spec.js.map +0 -1
  84. package/dist/plugins/splitIOFeatureManagerPlugin.js.map +0 -1
  85. package/dist/plugins/splitIOFeatureManagerPlugin.spec.js.map +0 -1
  86. package/dist/plugins/unhandledExceptionPlugin.js.map +0 -1
  87. package/dist/plugins/unhandledExceptionPlugin.spec.js.map +0 -1
  88. package/dist/types.js.map +0 -1
  89. /package/dist/{errors → lib/errors}/errorHandler.d.ts +0 -0
  90. /package/dist/{errors → lib/errors}/errorHandler.spec.d.ts +0 -0
  91. /package/dist/{errors → lib/errors}/errorHandler.spec.js +0 -0
  92. /package/dist/{errors → lib/errors}/publicErrors.d.ts +0 -0
  93. /package/dist/{errors → lib/errors}/publicErrors.js +0 -0
  94. /package/dist/{jwt-utils → lib/jwt-utils}/tokenUtils.d.ts +0 -0
  95. /package/dist/{jwt-utils → lib/jwt-utils}/tokenUtils.js +0 -0
  96. /package/dist/{jwt-utils → lib/jwt-utils}/tokenUtils.spec.d.ts +0 -0
  97. /package/dist/{jwt-utils → lib/jwt-utils}/tokenUtils.spec.js +0 -0
  98. /package/dist/{plugins → lib/plugins}/amplitude/Amplitude.d.ts +0 -0
  99. /package/dist/{plugins → lib/plugins}/amplitude/Amplitude.js +0 -0
  100. /package/dist/{plugins → lib/plugins}/amplitude/AmplitudeAdapter.d.ts +0 -0
  101. /package/dist/{plugins → lib/plugins}/amplitude/AmplitudeAdapter.js +0 -0
  102. /package/dist/{plugins → lib/plugins}/amplitude/AmplitudeAdapter.spec.d.ts +0 -0
  103. /package/dist/{plugins → lib/plugins}/amplitude/AmplitudeAdapter.spec.js +0 -0
  104. /package/dist/{plugins → lib/plugins}/amplitude/amplitudePlugin.d.ts +0 -0
  105. /package/dist/{plugins → lib/plugins}/amplitude/amplitudePlugin.js +0 -0
  106. /package/dist/{plugins → lib/plugins}/amplitude/amplitudePlugin.spec.d.ts +0 -0
  107. /package/dist/{plugins → lib/plugins}/amplitude/amplitudePlugin.spec.js +0 -0
  108. /package/dist/{plugins → lib/plugins}/bugsnagPlugin.d.ts +0 -0
  109. /package/dist/{plugins → lib/plugins}/bugsnagPlugin.js +0 -0
  110. /package/dist/{plugins → lib/plugins}/healthcheck/healthcheckCommons.d.ts +0 -0
  111. /package/dist/{plugins → lib/plugins}/healthcheck/healthcheckCommons.js +0 -0
  112. /package/dist/{plugins → lib/plugins}/healthcheck/healthcheckMetricsPlugin.d.ts +0 -0
  113. /package/dist/{plugins → lib/plugins}/healthcheck/healthcheckMetricsPlugin.js +0 -0
  114. /package/dist/{plugins → lib/plugins}/healthcheck/healthcheckMetricsPlugin.spec.d.ts +0 -0
  115. /package/dist/{plugins → lib/plugins}/healthcheck/healthcheckMetricsPlugin.spec.js +0 -0
  116. /package/dist/{plugins → lib/plugins}/healthcheck/publicHealthcheckPlugin.d.ts +0 -0
  117. /package/dist/{plugins → lib/plugins}/healthcheck/publicHealthcheckPlugin.js +0 -0
  118. /package/dist/{plugins → lib/plugins}/healthcheck/publicHealthcheckPlugin.spec.d.ts +0 -0
  119. /package/dist/{plugins → lib/plugins}/healthcheck/publicHealthcheckPlugin.spec.js +0 -0
  120. /package/dist/{plugins → lib/plugins}/metricsPlugin.d.ts +0 -0
  121. /package/dist/{plugins → lib/plugins}/metricsPlugin.js +0 -0
  122. /package/dist/{plugins → lib/plugins}/metricsPlugin.spec.d.ts +0 -0
  123. /package/dist/{plugins → lib/plugins}/metricsPlugin.spec.js +0 -0
  124. /package/dist/{plugins → lib/plugins}/newrelicTransactionManagerPlugin.d.ts +0 -0
  125. /package/dist/{plugins → lib/plugins}/newrelicTransactionManagerPlugin.js +0 -0
  126. /package/dist/{plugins → lib/plugins}/requestContextProviderPlugin.d.ts +0 -0
  127. /package/dist/{plugins → lib/plugins}/requestContextProviderPlugin.js +0 -0
  128. /package/dist/{plugins → lib/plugins}/requestContextProviderPlugin.spec.d.ts +0 -0
  129. /package/dist/{plugins → lib/plugins}/requestContextProviderPlugin.spec.js +0 -0
  130. /package/dist/{plugins → lib/plugins}/requestContextProviderPluginTypes.spec.d.ts +0 -0
  131. /package/dist/{plugins → lib/plugins}/requestContextProviderPluginTypes.spec.js +0 -0
  132. /package/dist/{plugins → lib/plugins}/splitIOFeatureManagerPlugin.d.ts +0 -0
  133. /package/dist/{plugins → lib/plugins}/splitIOFeatureManagerPlugin.js +0 -0
  134. /package/dist/{plugins → lib/plugins}/splitIOFeatureManagerPlugin.spec.d.ts +0 -0
  135. /package/dist/{plugins → lib/plugins}/splitIOFeatureManagerPlugin.spec.js +0 -0
  136. /package/dist/{plugins → lib/plugins}/unhandledExceptionPlugin.d.ts +0 -0
  137. /package/dist/{plugins → lib/plugins}/unhandledExceptionPlugin.js +0 -0
  138. /package/dist/{plugins → lib/plugins}/unhandledExceptionPlugin.spec.d.ts +0 -0
  139. /package/dist/{plugins → lib/plugins}/unhandledExceptionPlugin.spec.js +0 -0
  140. /package/dist/{types.d.ts → lib/types.d.ts} +0 -0
  141. /package/dist/{types.js → lib/types.js} +0 -0
package/README.md CHANGED
@@ -10,6 +10,7 @@ Reusable plugins for Fastify.
10
10
  - [Split IO Plugin](#split-io-plugin)
11
11
  - [BugSnag Plugin](#bugsnag-plugin)
12
12
  - [Metrics Plugin](#metrics-plugin)
13
+ - [Bull MQ Metrics Plugin](#bullmq-metrics-plugin)
13
14
  - [NewRelic Transaction Manager Plugin](#newrelic-transaction-manager-plugin)
14
15
  - [UnhandledException Plugin](#unhandledexception-plugin)
15
16
 
@@ -33,7 +34,8 @@ The following needs to be taken into consideration when adding new runtime depen
33
34
  - `@fastify/jwt`;
34
35
  - `fastify`;
35
36
  - `newrelic`;
36
- - `pino`.
37
+ - `pino`;
38
+ - `bullmq`;
37
39
 
38
40
  ## Plugins
39
41
 
@@ -132,6 +134,33 @@ Add the plugin to your Fastify instance by registering it with the following opt
132
134
 
133
135
  The plugin exposes a `GET /metrics` route in your Fastify app to retrieve Prometheus metrics. If something goes wrong while starting the Prometheus metrics server, an `Error` is thrown. Otherwise, a success message is displayed when the plugin has been loaded.
134
136
 
137
+ ### BullMQ Metrics Plugin
138
+
139
+ Plugin to auto-discover BullMQ queues which can regularly collect metrics for them and expose via `fastify-metrics` global Prometheus registry. If used together with `metricsPlugin`, it will show these metrics on `GET /metrics` route.
140
+
141
+ This plugin depends on the following peer-installed packages:
142
+
143
+ - `bullmq`
144
+ - `ioredis`
145
+
146
+ Add the plugin to your Fastify instance by registering it with the following possible options:
147
+
148
+ - `redisClient`, a Redis client instance which is used by the BullMQ: plugin uses it to discover the queues;
149
+ - `bullMqPrefix` (optional, default: `bull`). The prefix used by BullMQ to store the queues in Redis;
150
+ - `metricsPrefix` (optional, default: `bullmq`). The prefix for the metrics in Prometheus;
151
+ - `queueDiscoverer` (optional, default: `BackgroundJobsBasedQueueDiscoverer`). The queue discoverer to use. The default one relies on the logic implemented by `@lokalise/background-jobs-common` where queue names are registered by the background job processors; If you are not using `@lokalise/background-jobs-common`, you can use your own queue discoverer by instantiating a `RedisBasedQueueDiscoverer` or implementing a `QueueDiscoverer` interface;
152
+ - `excludedQueues` (optional, default: `[]`). An array of queue names to exclude from metrics collection;
153
+ - `histogramBuckets` (optional, default: `[20, 50, 150, 400, 1000, 3000, 8000, 22000, 60000, 150000]`). Buckets for the histogram metrics (such as job completion or overall processing time).
154
+ - `collectionOptions` (optional, default: `{ type: 'interval', intervalInMs: 5000 }`). Allows to configure how metrics are collected. Supports the following properties:
155
+ - `type`. Can be either `interval` or `manual`.
156
+ - With `interval` type, plugin automatically loops and updates metrics at the specified interval.
157
+ - With `manual` type, you need to call `app.bullMqMetrics.collect()` to update the metrics; that allows you to build your own logic for scheduling the updates.
158
+ - `intervalInMs` (only for `type: 'interval'`). The interval in milliseconds at which the metrics are collected;
159
+
160
+ This plugin exposes `bullMqMetrics.collect()` method on the Fastify instance to manually trigger the metrics collection.
161
+
162
+ If something goes wrong while starting the BullMQ metrics plugin, an `Error` is thrown.
163
+
135
164
  ### NewRelic Transaction Manager Plugin
136
165
 
137
166
  Plugin to create custom NewRelic spans for background jobs.
@@ -28,8 +28,7 @@ function resolveLogObject(error) {
28
28
  }
29
29
  return {
30
30
  message: (0, node_core_1.isObject)(error) ? error.message : JSON.stringify(error),
31
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
32
- error: error instanceof Error ? pino_1.default.stdSerializers.err(error) : error,
31
+ error: (0, node_core_1.isError)(error) ? pino_1.default.stdSerializers.err(error) : error,
33
32
  };
34
33
  }
35
34
  function resolveResponseObject(error) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../../lib/errors/errorHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorHandler.spec.js","sourceRoot":"","sources":["../../../lib/errors/errorHandler.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicErrors.js","sourceRoot":"","sources":["../../../lib/errors/publicErrors.ts"],"names":[],"mappings":";;;AACA,mDAA+D;AAE/D,MAAa,eAAgB,SAAQ,qCAAyB;IAC5D,YAAY,SAAqC,EAAE;QACjD,KAAK,CAAC;YACJ,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,aAAa;YACxC,SAAS,EAAE,aAAa;YACxB,cAAc,EAAE,GAAG;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAA;IACJ,CAAC;CACF;AATD,0CASC"}
@@ -8,6 +8,10 @@ export { splitIOFeatureManagerPlugin, SplitIOFeatureManager, } from './plugins/s
8
8
  export type { SplitIOOptions } from './plugins/splitIOFeatureManagerPlugin';
9
9
  export { healthcheckMetricsPlugin, wrapHealthCheckForPrometheus, } from './plugins/healthcheck/healthcheckMetricsPlugin';
10
10
  export type { PrometheusHealthCheck, HealthcheckResult, HealthcheckMetricsPluginOptions, } from './plugins/healthcheck/healthcheckMetricsPlugin';
11
+ export { bullMqMetricsPlugin } from './plugins/bullMqMetricsPlugin';
12
+ export type { BullMqMetricsPluginOptions } from './plugins/bullMqMetricsPlugin';
13
+ export { RedisBasedQueueDiscoverer, BackgroundJobsBasedQueueDiscoverer, } from './plugins/bull-mq-metrics/queueDiscoverers';
14
+ export type { QueueDiscoverer } from './plugins/bull-mq-metrics/queueDiscoverers';
11
15
  export { metricsPlugin } from './plugins/metricsPlugin';
12
16
  export type { ErrorObjectResolver, MetricsPluginOptions } from './plugins/metricsPlugin';
13
17
  export { publicHealthcheckPlugin } from './plugins/healthcheck/publicHealthcheckPlugin';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decodeJwtToken = exports.generateJwtToken = exports.isZodError = exports.createErrorHandler = exports.commonErrorObjectResolver = exports.unhandledExceptionPlugin = exports.AMPLITUDE_BASE_MESSAGE_SCHEMA = exports.AmplitudeAdapter = exports.Amplitude = exports.amplitudePlugin = exports.wrapHealthCheck = exports.publicHealthcheckPlugin = exports.metricsPlugin = exports.wrapHealthCheckForPrometheus = exports.healthcheckMetricsPlugin = exports.SplitIOFeatureManager = exports.splitIOFeatureManagerPlugin = exports.NewRelicTransactionManager = exports.newrelicTransactionManagerPlugin = exports.getRequestIdFastifyAppConfig = exports.requestContextProviderPlugin = exports.addFeatureFlag = exports.bugsnagErrorReporter = exports.reportErrorToBugsnag = exports.bugsnagPlugin = void 0;
3
+ exports.decodeJwtToken = exports.generateJwtToken = exports.isZodError = exports.createErrorHandler = exports.commonErrorObjectResolver = exports.unhandledExceptionPlugin = exports.AMPLITUDE_BASE_MESSAGE_SCHEMA = exports.AmplitudeAdapter = exports.Amplitude = exports.amplitudePlugin = exports.wrapHealthCheck = exports.publicHealthcheckPlugin = exports.metricsPlugin = exports.BackgroundJobsBasedQueueDiscoverer = exports.RedisBasedQueueDiscoverer = exports.bullMqMetricsPlugin = exports.wrapHealthCheckForPrometheus = exports.healthcheckMetricsPlugin = exports.SplitIOFeatureManager = exports.splitIOFeatureManagerPlugin = exports.NewRelicTransactionManager = exports.newrelicTransactionManagerPlugin = exports.getRequestIdFastifyAppConfig = exports.requestContextProviderPlugin = exports.addFeatureFlag = exports.bugsnagErrorReporter = exports.reportErrorToBugsnag = exports.bugsnagPlugin = void 0;
4
4
  var bugsnagPlugin_1 = require("./plugins/bugsnagPlugin");
5
5
  Object.defineProperty(exports, "bugsnagPlugin", { enumerable: true, get: function () { return bugsnagPlugin_1.bugsnagPlugin; } });
6
6
  Object.defineProperty(exports, "reportErrorToBugsnag", { enumerable: true, get: function () { return bugsnagPlugin_1.reportErrorToBugsnag; } });
@@ -18,6 +18,11 @@ Object.defineProperty(exports, "SplitIOFeatureManager", { enumerable: true, get:
18
18
  var healthcheckMetricsPlugin_1 = require("./plugins/healthcheck/healthcheckMetricsPlugin");
19
19
  Object.defineProperty(exports, "healthcheckMetricsPlugin", { enumerable: true, get: function () { return healthcheckMetricsPlugin_1.healthcheckMetricsPlugin; } });
20
20
  Object.defineProperty(exports, "wrapHealthCheckForPrometheus", { enumerable: true, get: function () { return healthcheckMetricsPlugin_1.wrapHealthCheckForPrometheus; } });
21
+ var bullMqMetricsPlugin_1 = require("./plugins/bullMqMetricsPlugin");
22
+ Object.defineProperty(exports, "bullMqMetricsPlugin", { enumerable: true, get: function () { return bullMqMetricsPlugin_1.bullMqMetricsPlugin; } });
23
+ var queueDiscoverers_1 = require("./plugins/bull-mq-metrics/queueDiscoverers");
24
+ Object.defineProperty(exports, "RedisBasedQueueDiscoverer", { enumerable: true, get: function () { return queueDiscoverers_1.RedisBasedQueueDiscoverer; } });
25
+ Object.defineProperty(exports, "BackgroundJobsBasedQueueDiscoverer", { enumerable: true, get: function () { return queueDiscoverers_1.BackgroundJobsBasedQueueDiscoverer; } });
21
26
  var metricsPlugin_1 = require("./plugins/metricsPlugin");
22
27
  Object.defineProperty(exports, "metricsPlugin", { enumerable: true, get: function () { return metricsPlugin_1.metricsPlugin; } });
23
28
  var publicHealthcheckPlugin_1 = require("./plugins/healthcheck/publicHealthcheckPlugin");
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;AAAA,yDAKgC;AAJ9B,8GAAA,aAAa,OAAA;AACb,qHAAA,oBAAoB,OAAA;AACpB,qHAAA,oBAAoB,OAAA;AACpB,+GAAA,cAAc,OAAA;AAIhB,uFAG+C;AAF7C,4IAAA,4BAA4B,OAAA;AAC5B,4IAAA,4BAA4B,OAAA;AAI9B,+FAGmD;AAFjD,oJAAA,gCAAgC,OAAA;AAChC,8IAAA,0BAA0B,OAAA;AAI5B,qFAG8C;AAF5C,0IAAA,2BAA2B,OAAA;AAC3B,oIAAA,qBAAqB,OAAA;AAIvB,2FAGuD;AAFrD,oIAAA,wBAAwB,OAAA;AACxB,wIAAA,4BAA4B,OAAA;AAQ9B,qEAAmE;AAA1D,0HAAA,mBAAmB,OAAA;AAE5B,+EAGmD;AAFjD,6HAAA,yBAAyB,OAAA;AACzB,sIAAA,kCAAkC,OAAA;AAIpC,yDAAuD;AAA9C,8GAAA,aAAa,OAAA;AAGtB,yFAAuF;AAA9E,kIAAA,uBAAuB,OAAA;AAOhC,+EAA0E;AAAjE,qHAAA,eAAe,OAAA;AAGxB,uEAI4C;AAH1C,kHAAA,eAAe,OAAA;AAIjB,2DAAyD;AAAhD,sGAAA,SAAS,OAAA;AAClB,yEAK6C;AAJ3C,oHAAA,gBAAgB,OAAA;AAChB,iIAAA,6BAA6B,OAAA;AAO/B,+EAG2C;AAFzC,oIAAA,wBAAwB,OAAA;AACxB,qIAAA,yBAAyB,OAAA;AAI3B,sDAAsE;AAA7D,kHAAA,kBAAkB,OAAA;AAAE,0GAAA,UAAU,OAAA;AAGvC,qDAAyE;AAAhE,8GAAA,gBAAgB,OAAA;AAAE,4GAAA,cAAc,OAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenUtils.js","sourceRoot":"","sources":["../../../lib/jwt-utils/tokenUtils.ts"],"names":[],"mappings":";;AAKA,4CAkBC;AAMD,wCAoBC;AAhDD,mDAAqD;AAErD,yDAAwD;AAExD,SAAgB,gBAAgB,CAC9B,GAAQ,EACR,OAAgC,EAChC,YAAoB;IAEpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YAC9D,sBAAsB;YACtB,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;YACpB,CAAC;YACD,sBAAsB;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,8BAAe,EAAE,CAAA;YAC7B,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,KAAc,EAA8B,EAAE,CAC7D,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,CAAA;AAEhE,8DAA8D;AAC9D,SAAgB,cAAc,CAAC,GAAQ,EAAE,YAAoB;IAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,8DAA8D;QAC9D,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,GAAiB,EAAE,OAAY,EAAE,EAAE;YAC3D,sBAAsB;YACtB,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;YACpB,CAAC;YACD,sBAAsB;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,8BAAe,EAAE,CAAA;YAC7B,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;YAC9D,MAAM,IAAI,2BAAe,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;QACtD,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenUtils.spec.js","sourceRoot":"","sources":["../../../lib/jwt-utils/tokenUtils.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Amplitude.js","sourceRoot":"","sources":["../../../../lib/plugins/amplitude/Amplitude.ts"],"names":[],"mappings":";;;AAAA,8DAAiD;AAGjD,MAAa,SAAS;IACH,SAAS,CAAS;IAEnC,YAAY,SAAkB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,KAAgB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,sBAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IAC3E,CAAC;CACF;AAjBD,8BAiBC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AmplitudeAdapter.js","sourceRoot":"","sources":["../../../../lib/plugins/amplitude/AmplitudeAdapter.ts"],"names":[],"mappings":";;;;AAAA,sDAAuC;AAI1B,QAAA,6BAA6B,GAAG,aAAC;KAC3C,MAAM,CAAC;IACN,UAAU,EAAE,aAAC,CAAC,OAAO,CAAS,cAAc,CAAC;IAC7C,gBAAgB,EAAE,aAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9B,OAAO,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,aAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;CACnD,CAAC;KACD,KAAK,EAAE,CAAA;AAWV;;GAEG;AACH,MAAa,gBAAgB;IACV,SAAS,CAAW;IAErC,YAAY,EAAE,SAAS,EAAgC;QACrD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,KAAK,CACV,gBAAyB,EACzB,IAA6D;QAE7D,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC;YAC5C,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK;YAC1D,GAAG,IAAI;SACR,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;CACF;AAjBD,4CAiBC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AmplitudeAdapter.spec.js","sourceRoot":"","sources":["../../../../lib/plugins/amplitude/AmplitudeAdapter.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amplitudePlugin.js","sourceRoot":"","sources":["../../../../lib/plugins/amplitude/amplitudePlugin.ts"],"names":[],"mappings":";;;;AAAA,8DAAqD;AAQrD,4EAA+B;AAE/B,2CAAuC;AAQvC,SAAS,MAAM,CAAC,OAAwB,EAAE,MAAuB,EAAE,IAA2B;IAC5F,MAAM,iBAAiB,GAAG,IAAI,qBAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;IAEhD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,IAAI,EAAE,CAAA;IACf,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,IAAA,qBAAI,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;SAChC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;QACjB,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAA;QAC7E,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,mBAAmB;YACnB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,oBAAG,EAAC,CAAC,CAAC,CAAC,CAAA;QACvC,CAAC;QAED,IAAI,EAAE,CAAA;IACR,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,CAAC,GAAY,CAAC,CAAA;IACpB,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAwB,EACxB,SAAoB,EACpB,eAAyC;IAEzC,OAAO,CAAC,OAAO,CACb,YAAY,EACZ,CAAC,GAAmB,EAAE,GAAiB,EAAE,IAA6B,EAAE,EAAE;QACxE,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACvC,IAAI,KAAK,EAAE,CAAC;YACV,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;QACD,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CACF,CAAA;AACH,CAAC;AAqCD;;;;;;;;;;;;;GAaG;AACU,QAAA,eAAe,GAAG,IAAA,wBAAE,EAAkB,MAAM,EAAE;IACzD,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amplitudePlugin.spec.js","sourceRoot":"","sources":["../../../../lib/plugins/amplitude/amplitudePlugin.spec.ts"],"names":[],"mappings":";;;AAAA,6EAAsD;AAGtD,8DAA6B;AAE7B,uDAAmD;AAEnD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,GAAoB,CAAA;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAA;IACjB,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,CAAC,aAAa,EAAE,CAAA;QACtB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,QAAQ;QACR,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAE/C,OAAO;QACP,MAAM,GAAG,CAAC,QAAQ,CAAC,iCAAe,EAAE;YAClC,SAAS,EAAE,KAAK;SACjB,CAAC,CAAA;QAEF,OAAO;QACP,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,QAAQ;QACR,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAE/C,OAAO;QACP,IAAI,KAAK,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,QAAQ,CAAC,iCAAe,EAAE;gBAClC,SAAS,EAAE,IAAI;aAChB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,GAAG,CAAC,CAAA;QACX,CAAC;QAED,OAAO;QACP,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QACtC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,QAAQ;QACR,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACjD,MAAM,GAAG,CAAC,QAAQ,CAAC,iCAAe,EAAE;YAClC,SAAS,EAAE,KAAK;SACjB,CAAC,CAAA;QAEF,OAAO;QACP,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAA;QAErF,OAAO;QACP,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;QACzB,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,QAAQ;QACR,MAAM,aAAa,GAAW;YAC5B,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;YAC7B,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,SAAS;SACnB,CAAA;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1E,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;SACxC,CAAC,CAAC,CAAA;QACH,MAAM,GAAG,CAAC,QAAQ,CAAC,iCAAe,EAAE;YAClC,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,oBAAoB;SAC7B,CAAC,CAAA;QAEF,OAAO;QACP,MAAM,KAAK,GAAc,EAAE,UAAU,EAAE,eAAe,EAAE,CAAA;QACxD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;QAEzD,OAAO;QACP,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACpC,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,QAAQ;QACR,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1E,OAAO,EAAE,OAAO,CAAC,OAAO,CAAS;gBAC/B,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;gBAC7B,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,SAAS;aACnB,CAAC;SACH,CAAC,CAAC,CAAA;QACH,MAAM,KAAK,GAAc,EAAE,UAAU,EAAE,cAAc,EAAE,CAAA;QACvD,MAAM,GAAG,CAAC,QAAQ,CAAC,iCAAe,EAAE;YAClC,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,oBAAoB;YAC5B,gBAAgB,EAAE,GAAG,EAAE,CAAC,KAAK;SAC9B,CAAC,CAAA;QAEF,OAAO;QACP,MAAM,QAAQ,GAAG,MAAM,GAAG;aACvB,KAAK,CAAC;YACL,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;gBAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC9B,CAAC;SACF,CAAC;aACD,MAAM,CAAC;YACN,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,OAAO;SACb,CAAC,CAAA;QAEJ,OAAO;QACP,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACrC,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,QAAQ;QACR,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACjD,MAAM,GAAG,CAAC,QAAQ,CAAC,iCAAe,EAAE;YAClC,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,oBAAoB;YAC5B,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI;SAC7B,CAAC,CAAA;QAEF,OAAO;QACP,MAAM,QAAQ,GAAG,MAAM,GAAG;aACvB,KAAK,CAAC;YACL,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;gBAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC9B,CAAC;SACF,CAAC;aACD,MAAM,CAAC;YACN,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,OAAO;SACb,CAAC,CAAA;QAEJ,OAAO;QACP,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACrC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,QAAQ;QACR,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAC7C,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;QAC/B,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAEpD,OAAO;QACP,MAAM,GAAG,CAAC,QAAQ,CAAC,iCAAe,EAAE;YAClC,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,CAAC,MAAM,CAAC;SAClB,CAAC,CAAA;QAEF,OAAO;QACP,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,CAAC,cAAc,CAAC,CAAC,gBAAgB,EAAE,CAAA;IAC3C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,MAAM,UAAU;IACd,IAAI,GAAG,YAAqB,CAAA;IAC5B,KAAK,GAAG,GAAuB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC5D,OAAO,GAAG,CAAC,KAAY,EAAkB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;CACnE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bugsnagPlugin.js","sourceRoot":"","sources":["../../../lib/plugins/bugsnagPlugin.ts"],"names":[],"mappings":";;;;AAAA,6DAAiC;AAEjC,uDAM8B;AAIiB,qGAT7C,kCAAoB,OAS6C;AAA1D,qGAPP,kCAAoB,OAOO;AAAE,+FAN7B,4BAAc,OAM6B;AAF7C,4EAA+B;AAS/B,SAAS,MAAM,CAAC,IAAqB,EAAE,IAAyB,EAAE,IAAgB;IAChF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,YAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,EAAE,CAAA;AACR,CAAC;AAEY,QAAA,aAAa,GAAG,IAAA,wBAAE,EAAC,MAAM,EAAE;IACtC,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,gBAAgB;CACvB,CAAC,CAAA"}
@@ -0,0 +1,12 @@
1
+ export type CollectionScheduler = {
2
+ start: () => void;
3
+ stop: () => void;
4
+ };
5
+ export declare class PromiseBasedCollectionScheduler implements CollectionScheduler {
6
+ private active;
7
+ private readonly collectionIntervalInMs;
8
+ private readonly collect;
9
+ constructor(collectionIntervalInMs: number, collect: () => Promise<void>);
10
+ start(): Promise<void>;
11
+ stop(): void;
12
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromiseBasedCollectionScheduler = void 0;
4
+ const promises_1 = require("node:timers/promises");
5
+ class PromiseBasedCollectionScheduler {
6
+ active = true;
7
+ collectionIntervalInMs;
8
+ collect;
9
+ constructor(collectionIntervalInMs, collect) {
10
+ this.collectionIntervalInMs = collectionIntervalInMs;
11
+ this.collect = collect;
12
+ }
13
+ async start() {
14
+ while (this.active) {
15
+ await this.collect();
16
+ await (0, promises_1.setTimeout)(this.collectionIntervalInMs);
17
+ }
18
+ }
19
+ stop() {
20
+ this.active = false;
21
+ }
22
+ }
23
+ exports.PromiseBasedCollectionScheduler = PromiseBasedCollectionScheduler;
24
+ //# sourceMappingURL=CollectionScheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollectionScheduler.js","sourceRoot":"","sources":["../../../../lib/plugins/bull-mq-metrics/CollectionScheduler.ts"],"names":[],"mappings":";;;AAAA,mDAAiD;AAOjD,MAAa,+BAA+B;IAClC,MAAM,GAAG,IAAI,CAAA;IACJ,sBAAsB,CAAQ;IAC9B,OAAO,CAAqB;IAE7C,YAAY,sBAA8B,EAAE,OAA4B;QACtE,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAA;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YACpB,MAAM,IAAA,qBAAU,EAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACrB,CAAC;CACF;AApBD,0EAoBC"}
@@ -0,0 +1,39 @@
1
+ import type { FastifyBaseLogger } from 'fastify';
2
+ import type { Redis } from 'ioredis';
3
+ import * as prometheus from 'prom-client';
4
+ import type { QueueDiscoverer } from './queueDiscoverers';
5
+ export type Metrics = {
6
+ completedGauge: prometheus.Gauge<never>;
7
+ activeGauge: prometheus.Gauge<never>;
8
+ delayedGauge: prometheus.Gauge<never>;
9
+ failedGauge: prometheus.Gauge<never>;
10
+ waitingGauge: prometheus.Gauge<never>;
11
+ completedDuration: prometheus.Histogram<never>;
12
+ processedDuration: prometheus.Histogram<never>;
13
+ };
14
+ export type MetricCollectorOptions = {
15
+ redisClient: Redis;
16
+ bullMqPrefix: string;
17
+ metricsPrefix: string;
18
+ queueDiscoverer: QueueDiscoverer;
19
+ excludedQueues: string[];
20
+ histogramBuckets: number[];
21
+ };
22
+ export declare class MetricsCollector {
23
+ private readonly options;
24
+ private readonly registry;
25
+ private readonly logger;
26
+ private readonly redis;
27
+ private readonly metrics;
28
+ private observedQueues;
29
+ constructor(options: MetricCollectorOptions, registry: prometheus.Registry, logger: FastifyBaseLogger);
30
+ /**
31
+ * Updates metrics for all discovered queues
32
+ */
33
+ collect(): Promise<void>;
34
+ /**
35
+ * Stops the metrics collection and cleans up resources
36
+ */
37
+ dispose(): Promise<void>;
38
+ private registerMetrics;
39
+ }
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetricsCollector = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const promise_pool_1 = require("@supercharge/promise-pool");
6
+ const prometheus = tslib_1.__importStar(require("prom-client"));
7
+ const ObservableQueue_1 = require("./ObservableQueue");
8
+ const getMetrics = (prefix, histogramBuckets) => ({
9
+ completedGauge: new prometheus.Gauge({
10
+ name: `${prefix}_jobs_completed`,
11
+ help: 'Total number of completed jobs',
12
+ labelNames: ['queue'],
13
+ }),
14
+ activeGauge: new prometheus.Gauge({
15
+ name: `${prefix}_jobs_active`,
16
+ help: 'Total number of active jobs (currently being processed)',
17
+ labelNames: ['queue'],
18
+ }),
19
+ failedGauge: new prometheus.Gauge({
20
+ name: `${prefix}_jobs_failed`,
21
+ help: 'Total number of failed jobs',
22
+ labelNames: ['queue'],
23
+ }),
24
+ delayedGauge: new prometheus.Gauge({
25
+ name: `${prefix}_jobs_delayed`,
26
+ help: 'Total number of jobs that will run in the future',
27
+ labelNames: ['queue'],
28
+ }),
29
+ waitingGauge: new prometheus.Gauge({
30
+ name: `${prefix}_jobs_waiting`,
31
+ help: 'Total number of jobs waiting to be processed',
32
+ labelNames: ['queue'],
33
+ }),
34
+ processedDuration: new prometheus.Histogram({
35
+ name: `${prefix}_jobs_processed_duration`,
36
+ help: 'Processing time for completed jobs (processing until completed)',
37
+ buckets: histogramBuckets,
38
+ labelNames: ['queue'],
39
+ }),
40
+ completedDuration: new prometheus.Histogram({
41
+ name: `${prefix}_jobs_completed_duration`,
42
+ help: 'Completion time for jobs (created until completed)',
43
+ buckets: histogramBuckets,
44
+ labelNames: ['queue'],
45
+ }),
46
+ });
47
+ class MetricsCollector {
48
+ options;
49
+ registry;
50
+ logger;
51
+ redis;
52
+ metrics;
53
+ observedQueues;
54
+ constructor(options, registry, logger) {
55
+ this.options = options;
56
+ this.registry = registry;
57
+ this.logger = logger;
58
+ this.redis = options.redisClient;
59
+ this.metrics = this.registerMetrics(this.registry, this.options);
60
+ }
61
+ /**
62
+ * Updates metrics for all discovered queues
63
+ */
64
+ async collect() {
65
+ if (!this.observedQueues) {
66
+ this.observedQueues = (await this.options.queueDiscoverer.discoverQueues())
67
+ .filter((name) => !this.options.excludedQueues.includes(name))
68
+ .map((name) => new ObservableQueue_1.ObservableQueue(name, this.redis, this.metrics, this.logger));
69
+ }
70
+ await promise_pool_1.PromisePool.for(this.observedQueues).process((queue) => {
71
+ void queue.collect();
72
+ });
73
+ }
74
+ /**
75
+ * Stops the metrics collection and cleans up resources
76
+ */
77
+ async dispose() {
78
+ for (const queue of this.observedQueues ?? []) {
79
+ await queue.dispose();
80
+ }
81
+ }
82
+ registerMetrics(registry, { metricsPrefix, histogramBuckets }) {
83
+ const metrics = getMetrics(metricsPrefix, histogramBuckets);
84
+ const metricNames = Object.keys(metrics);
85
+ // If metrics are already registered, just return them to avoid triggering a Prometheus error
86
+ if (metricNames.length > 0 && registry.getSingleMetric(metricNames[0])) {
87
+ const retrievedMetrics = registry.getMetricsAsArray();
88
+ const returnValue = {};
89
+ for (const metric of retrievedMetrics) {
90
+ if (metricNames.includes(metric.name)) {
91
+ returnValue[metric.name] = metric;
92
+ }
93
+ }
94
+ return returnValue;
95
+ }
96
+ for (const metric of Object.values(metrics)) {
97
+ registry.registerMetric(metric);
98
+ }
99
+ return metrics;
100
+ }
101
+ }
102
+ exports.MetricsCollector = MetricsCollector;
103
+ //# sourceMappingURL=MetricsCollector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricsCollector.js","sourceRoot":"","sources":["../../../../lib/plugins/bull-mq-metrics/MetricsCollector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { FastifyBaseLogger } from 'fastify';
2
+ import type { Redis } from 'ioredis';
3
+ import type { Metrics } from './MetricsCollector';
4
+ export declare class ObservableQueue {
5
+ readonly name: string;
6
+ private readonly redis;
7
+ private readonly metrics;
8
+ private readonly logger;
9
+ private readonly queue;
10
+ private readonly events;
11
+ constructor(name: string, redis: Redis, metrics: Metrics, logger: FastifyBaseLogger);
12
+ collect(): Promise<void>;
13
+ dispose(): Promise<void>;
14
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObservableQueue = void 0;
4
+ const bullmq_1 = require("bullmq");
5
+ class ObservableQueue {
6
+ name;
7
+ redis;
8
+ metrics;
9
+ logger;
10
+ queue;
11
+ events;
12
+ constructor(name, redis, metrics, logger) {
13
+ this.name = name;
14
+ this.redis = redis;
15
+ this.metrics = metrics;
16
+ this.logger = logger;
17
+ this.queue = new bullmq_1.Queue(name, { connection: redis });
18
+ this.events = new bullmq_1.QueueEvents(name, { connection: redis });
19
+ this.events.on('completed', (completedJob) => {
20
+ this.queue
21
+ .getJob(completedJob.jobId)
22
+ .then((job) => {
23
+ if (!job) {
24
+ return;
25
+ }
26
+ if (job.finishedOn) {
27
+ metrics.completedDuration
28
+ .labels({ queue: name })
29
+ .observe(job.finishedOn - job.timestamp);
30
+ if (job.processedOn) {
31
+ metrics.processedDuration
32
+ .labels({ queue: name })
33
+ .observe(job.finishedOn - job.processedOn);
34
+ }
35
+ }
36
+ })
37
+ .catch((err) => {
38
+ this.logger.warn(err);
39
+ });
40
+ });
41
+ }
42
+ async collect() {
43
+ const { completed, active, delayed, failed, waiting } = await this.queue.getJobCounts();
44
+ this.metrics.activeGauge.labels({ queue: this.name }).set(active);
45
+ this.metrics.completedGauge.labels({ queue: this.name }).set(completed);
46
+ this.metrics.delayedGauge.labels({ queue: this.name }).set(delayed);
47
+ this.metrics.failedGauge.labels({ queue: this.name }).set(failed);
48
+ this.metrics.waitingGauge.labels({ queue: this.name }).set(waiting);
49
+ }
50
+ async dispose() {
51
+ await this.events.close();
52
+ await this.queue.close();
53
+ }
54
+ }
55
+ exports.ObservableQueue = ObservableQueue;
56
+ //# sourceMappingURL=ObservableQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObservableQueue.js","sourceRoot":"","sources":["../../../../lib/plugins/bull-mq-metrics/ObservableQueue.ts"],"names":[],"mappings":";;;AAAA,mCAA2C;AAM3C,MAAa,eAAe;IAKf;IACQ;IACA;IACA;IAPF,KAAK,CAAO;IACZ,MAAM,CAAa;IAEpC,YACW,IAAY,EACJ,KAAY,EACZ,OAAgB,EAChB,MAAyB;QAHjC,SAAI,GAAJ,IAAI,CAAQ;QACJ,UAAK,GAAL,KAAK,CAAO;QACZ,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAAmB;QAE1C,IAAI,CAAC,KAAK,GAAG,IAAI,cAAK,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM,GAAG,IAAI,oBAAW,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;QAE1D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,YAA+B,EAAE,EAAE;YAC9D,IAAI,CAAC,KAAK;iBACP,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;iBAC1B,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACZ,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,OAAM;gBACR,CAAC;gBAED,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnB,OAAO,CAAC,iBAAiB;yBACtB,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;yBACvB,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAAA;oBAE1C,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;wBACpB,OAAO,CAAC,iBAAiB;6BACtB,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;6BACvB,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,CAAA;oBAC9C,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACvB,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAA;QAEvF,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACjE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACvE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACnE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACjE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QACzB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;CACF;AArDD,0CAqDC"}
@@ -0,0 +1,15 @@
1
+ import type { Redis } from 'ioredis';
2
+ export type QueueDiscoverer = {
3
+ discoverQueues: () => Promise<string[]>;
4
+ };
5
+ export declare class RedisBasedQueueDiscoverer implements QueueDiscoverer {
6
+ private readonly redis;
7
+ private readonly queuesPrefix;
8
+ constructor(redis: Redis, queuesPrefix: string);
9
+ discoverQueues(): Promise<string[]>;
10
+ }
11
+ export declare class BackgroundJobsBasedQueueDiscoverer implements QueueDiscoverer {
12
+ private readonly redis;
13
+ constructor(redis: Redis);
14
+ discoverQueues(): Promise<string[]>;
15
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BackgroundJobsBasedQueueDiscoverer = exports.RedisBasedQueueDiscoverer = void 0;
4
+ const background_jobs_common_1 = require("@lokalise/background-jobs-common");
5
+ class RedisBasedQueueDiscoverer {
6
+ redis;
7
+ queuesPrefix;
8
+ constructor(redis, queuesPrefix) {
9
+ this.redis = redis;
10
+ this.queuesPrefix = queuesPrefix;
11
+ }
12
+ async discoverQueues() {
13
+ const scanStream = this.redis.scanStream({
14
+ match: `${this.queuesPrefix}:*:meta`,
15
+ });
16
+ const queues = new Set();
17
+ for await (const chunk of scanStream) {
18
+ // ESLint doesn't want a `;` here but Prettier does
19
+ // eslint-disable-next-line no-extra-semi
20
+ ;
21
+ chunk
22
+ .map((key) => key.split(':')[1])
23
+ .filter((value) => !!value)
24
+ .forEach((queue) => queues.add(queue));
25
+ }
26
+ return Array.from(queues).sort();
27
+ }
28
+ }
29
+ exports.RedisBasedQueueDiscoverer = RedisBasedQueueDiscoverer;
30
+ class BackgroundJobsBasedQueueDiscoverer {
31
+ redis;
32
+ constructor(redis) {
33
+ this.redis = redis;
34
+ }
35
+ async discoverQueues() {
36
+ return await background_jobs_common_1.AbstractBackgroundJobProcessor.getActiveQueueIds(this.redis);
37
+ }
38
+ }
39
+ exports.BackgroundJobsBasedQueueDiscoverer = BackgroundJobsBasedQueueDiscoverer;
40
+ //# sourceMappingURL=queueDiscoverers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queueDiscoverers.js","sourceRoot":"","sources":["../../../../lib/plugins/bull-mq-metrics/queueDiscoverers.ts"],"names":[],"mappings":";;;AAAA,6EAAiF;AAOjF,MAAa,yBAAyB;IAEjB;IACA;IAFnB,YACmB,KAAY,EACZ,YAAoB;QADpB,UAAK,GAAL,KAAK,CAAO;QACZ,iBAAY,GAAZ,YAAY,CAAQ;IACpC,CAAC;IAEJ,KAAK,CAAC,cAAc;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACvC,KAAK,EAAE,GAAG,IAAI,CAAC,YAAY,SAAS;SACrC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;QAChC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YACrC,mDAAmD;YACnD,yCAAyC;YACzC,CAAC;YAAC,KAAkB;iBACjB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;iBAC1B,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC1C,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IAClC,CAAC;CACF;AAvBD,8DAuBC;AAED,MAAa,kCAAkC;IAChB;IAA7B,YAA6B,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAE7C,KAAK,CAAC,cAAc;QAClB,OAAO,MAAM,uDAA8B,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3E,CAAC;CACF;AAND,gFAMC"}
@@ -0,0 +1,20 @@
1
+ import 'fastify-metrics';
2
+ import type { Redis } from 'ioredis';
3
+ import type { MetricCollectorOptions } from './bull-mq-metrics/MetricsCollector';
4
+ declare module 'fastify' {
5
+ interface FastifyInstance {
6
+ bullMqMetrics: {
7
+ collect: () => Promise<void>;
8
+ };
9
+ }
10
+ }
11
+ export type BullMqMetricsPluginOptions = {
12
+ redisClient: Redis;
13
+ collectionOptions?: {
14
+ type: 'interval';
15
+ intervalInMs: number;
16
+ } | {
17
+ type: 'manual';
18
+ };
19
+ } & Partial<MetricCollectorOptions>;
20
+ export declare const bullMqMetricsPlugin: import("fastify").FastifyPluginCallback<BullMqMetricsPluginOptions, import("fastify").RawServerDefault, import("fastify").FastifyTypeProviderDefault, import("fastify").FastifyBaseLogger>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bullMqMetricsPlugin = void 0;
4
+ const tslib_1 = require("tslib");
5
+ require("fastify-metrics");
6
+ const fastify_plugin_1 = tslib_1.__importDefault(require("fastify-plugin"));
7
+ const CollectionScheduler_1 = require("./bull-mq-metrics/CollectionScheduler");
8
+ const MetricsCollector_1 = require("./bull-mq-metrics/MetricsCollector");
9
+ const queueDiscoverers_1 = require("./bull-mq-metrics/queueDiscoverers");
10
+ function plugin(fastify, pluginOptions, next) {
11
+ if (!fastify.metrics) {
12
+ return next(new Error('No Prometheus Client found, BullMQ metrics plugin requires `fastify-metrics` plugin to be registered'));
13
+ }
14
+ const options = {
15
+ bullMqPrefix: 'bull',
16
+ metricsPrefix: 'bullmq',
17
+ queueDiscoverer: new queueDiscoverers_1.BackgroundJobsBasedQueueDiscoverer(pluginOptions.redisClient),
18
+ excludedQueues: [],
19
+ histogramBuckets: [20, 50, 150, 400, 1000, 3000, 8000, 22000, 60000, 150000],
20
+ collectionOptions: {
21
+ type: 'interval',
22
+ intervalInMs: 5000,
23
+ },
24
+ ...pluginOptions,
25
+ };
26
+ try {
27
+ const collector = new MetricsCollector_1.MetricsCollector(options, fastify.metrics.client.register, fastify.log);
28
+ const collectFn = async () => await collector.collect();
29
+ let scheduler;
30
+ if (options.collectionOptions.type === 'interval') {
31
+ scheduler = new CollectionScheduler_1.PromiseBasedCollectionScheduler(options.collectionOptions.intervalInMs, collectFn);
32
+ // Void is set so the scheduler can run indefinitely
33
+ void scheduler.start();
34
+ }
35
+ fastify.addHook('onClose', async () => {
36
+ if (scheduler) {
37
+ scheduler.stop();
38
+ }
39
+ await collector.dispose();
40
+ });
41
+ fastify.decorate('bullMqMetrics', {
42
+ collect: collectFn,
43
+ });
44
+ next();
45
+ }
46
+ catch (err) {
47
+ return next(err instanceof Error
48
+ ? err
49
+ : new Error('Unknown error in bull-mq-metrics-plugin', { cause: err }));
50
+ }
51
+ }
52
+ exports.bullMqMetricsPlugin = (0, fastify_plugin_1.default)(plugin, {
53
+ fastify: '4.x',
54
+ name: 'bull-mq-metrics-plugin',
55
+ });
56
+ //# sourceMappingURL=bullMqMetricsPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bullMqMetricsPlugin.js","sourceRoot":"","sources":["../../../lib/plugins/bullMqMetricsPlugin.ts"],"names":[],"mappings":";;;;AACA,2BAAwB;AACxB,4EAA+B;AAI/B,+EAAuF;AAEvF,yEAAqE;AACrE,yEAAuF;AAuBvF,SAAS,MAAM,CACb,OAAwB,EACxB,aAAyC,EACzC,IAA2B;IAE3B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,CACT,IAAI,KAAK,CACP,sGAAsG,CACvG,CACF,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAAG;QACd,YAAY,EAAE,MAAM;QACpB,aAAa,EAAE,QAAQ;QACvB,eAAe,EAAE,IAAI,qDAAkC,CAAC,aAAa,CAAC,WAAW,CAAC;QAClF,cAAc,EAAE,EAAE;QAClB,gBAAgB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;QAC5E,iBAAiB,EAAE;YACjB,IAAI,EAAE,UAAU;YAChB,YAAY,EAAE,IAAI;SACnB;QACD,GAAG,aAAa;KACjB,CAAA;IAED,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,mCAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAC7F,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,CAAA;QACvD,IAAI,SAA8B,CAAA;QAElC,IAAI,OAAO,CAAC,iBAAiB,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAClD,SAAS,GAAG,IAAI,qDAA+B,CAC7C,OAAO,CAAC,iBAAiB,CAAC,YAAY,EACtC,SAAS,CACV,CAAA;YAED,oDAAoD;YACpD,KAAK,SAAS,CAAC,KAAK,EAAE,CAAA;QACxB,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YACpC,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,IAAI,EAAE,CAAA;YAClB,CAAC;YACD,MAAM,SAAS,CAAC,OAAO,EAAE,CAAA;QAC3B,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE;YAChC,OAAO,EAAE,SAAS;SACnB,CAAC,CAAA;QAEF,IAAI,EAAE,CAAA;IACR,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,IAAI,CACT,GAAG,YAAY,KAAK;YAClB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,IAAI,KAAK,CAAC,yCAAyC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CACzE,CAAA;IACH,CAAC;AACH,CAAC;AAEY,QAAA,mBAAmB,GAAG,IAAA,wBAAE,EAA6B,MAAM,EAAE;IACxE,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,wBAAwB;CAC/B,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { FastifyInstance } from 'fastify';
2
+ import type { BullMqMetricsPluginOptions } from './bullMqMetricsPlugin';
3
+ type TestOptions = {
4
+ enableMetricsPlugin: boolean;
5
+ };
6
+ export declare function initAppWithBullMqMetrics(pluginOptions: BullMqMetricsPluginOptions, { enableMetricsPlugin }?: TestOptions): Promise<FastifyInstance<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>>;
7
+ export {};