@lokalise/fastify-extras 21.5.0 → 21.7.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.
@@ -3,13 +3,9 @@ import type { Redis } from 'ioredis';
3
3
  import * as prometheus from 'prom-client';
4
4
  import type { QueueDiscoverer } from './queueDiscoverers';
5
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>;
6
+ countGauge: prometheus.Gauge<'status' | 'queue'>;
7
+ processedDuration: prometheus.Histogram<'status' | 'queue'>;
8
+ finishedDuration: prometheus.Histogram<'status' | 'queue'>;
13
9
  };
14
10
  export type MetricCollectorOptions = {
15
11
  redisClient: Redis;
@@ -6,42 +6,22 @@ const promise_pool_1 = require("@supercharge/promise-pool");
6
6
  const prometheus = tslib_1.__importStar(require("prom-client"));
7
7
  const ObservableQueue_1 = require("./ObservableQueue");
8
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'],
9
+ countGauge: new prometheus.Gauge({
10
+ name: `${prefix}_jobs_count`,
11
+ help: 'Total number of jobs',
12
+ labelNames: ['status', 'queue'],
33
13
  }),
34
14
  processedDuration: new prometheus.Histogram({
35
15
  name: `${prefix}_jobs_processed_duration`,
36
- help: 'Processing time for completed jobs (processing until completed)',
16
+ help: 'Processing time of a jobs (processing until finished)',
37
17
  buckets: histogramBuckets,
38
- labelNames: ['queue'],
18
+ labelNames: ['status', 'queue'],
39
19
  }),
40
- completedDuration: new prometheus.Histogram({
41
- name: `${prefix}_jobs_completed_duration`,
42
- help: 'Completion time for jobs (created until completed)',
20
+ finishedDuration: new prometheus.Histogram({
21
+ name: `${prefix}_jobs_finished_duration`,
22
+ help: 'Finish time for jobs (created until finished)',
43
23
  buckets: histogramBuckets,
44
- labelNames: ['queue'],
24
+ labelNames: ['status', 'queue'],
45
25
  }),
46
26
  });
47
27
  class MetricsCollector {
@@ -68,7 +48,7 @@ class MetricsCollector {
68
48
  .map((name) => new ObservableQueue_1.ObservableQueue(name, this.redis, this.metrics, this.logger));
69
49
  }
70
50
  await promise_pool_1.PromisePool.for(this.observedQueues).process((queue) => {
71
- void queue.collect();
51
+ queue.collect();
72
52
  });
73
53
  }
74
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"MetricsCollector.js","sourceRoot":"","sources":["../../../lib/plugins/bull-mq-metrics/MetricsCollector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MetricsCollector.js","sourceRoot":"","sources":["../../../lib/plugins/bull-mq-metrics/MetricsCollector.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export declare class ObservableQueue {
8
8
  private readonly logger;
9
9
  private readonly queue;
10
10
  private readonly events;
11
+ private collectDurationMetric;
11
12
  constructor(name: string, redis: Redis, metrics: Metrics, logger: FastifyBaseLogger);
12
13
  collect(): Promise<void>;
13
14
  dispose(): Promise<void>;
@@ -9,43 +9,44 @@ class ObservableQueue {
9
9
  logger;
10
10
  queue;
11
11
  events;
12
+ async collectDurationMetric(jobId, status) {
13
+ try {
14
+ const job = await this.queue.getJob(jobId);
15
+ if (!job || !job.finishedOn) {
16
+ return;
17
+ }
18
+ this.metrics.finishedDuration
19
+ .labels({ status, queue: this.name })
20
+ .observe(job.finishedOn - job.timestamp);
21
+ if (job.processedOn) {
22
+ this.metrics.processedDuration
23
+ .labels({ status, queue: this.name })
24
+ .observe(job.finishedOn - job.processedOn);
25
+ }
26
+ }
27
+ catch (err) {
28
+ this.logger.warn(err);
29
+ }
30
+ }
12
31
  constructor(name, redis, metrics, logger) {
13
32
  this.name = name;
14
33
  this.redis = redis;
15
34
  this.metrics = metrics;
16
35
  this.logger = logger;
17
36
  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
- });
37
+ this.events = new bullmq_1.QueueEvents(name, { connection: redis, autorun: true });
38
+ this.events.on('failed', async ({ jobId }) => {
39
+ await this.collectDurationMetric(jobId, 'failed');
40
+ });
41
+ this.events.on('completed', async ({ jobId }) => {
42
+ await this.collectDurationMetric(jobId, 'completed');
40
43
  });
41
44
  }
42
45
  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);
46
+ const { active, delayed, waiting } = await this.queue.getJobCounts('active', 'delayed', 'waiting');
47
+ for (const [status, count] of Object.entries({ active, delayed, waiting })) {
48
+ this.metrics.countGauge.set({ status, queue: this.name }, count);
49
+ }
49
50
  }
50
51
  async dispose() {
51
52
  await this.events.close();
@@ -1 +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"}
1
+ {"version":3,"file":"ObservableQueue.js","sourceRoot":"","sources":["../../../lib/plugins/bull-mq-metrics/ObservableQueue.ts"],"names":[],"mappings":";;;AAAA,mCAA2C;AAO3C,MAAa,eAAe;IA2Bf;IACQ;IACA;IACA;IA7BF,KAAK,CAAO;IACZ,MAAM,CAAa;IAE5B,KAAK,CAAC,qBAAqB,CAAC,KAAa,EAAE,MAAsB;QACvE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAE1C,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;gBAC5B,OAAM;YACR,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,gBAAgB;iBAC1B,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;iBACpC,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAAA;YAE1C,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,iBAAiB;qBAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;qBACpC,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IAED,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,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAEzE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAC3C,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9C,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACtD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAChE,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAA;QAED,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;QAClE,CAAC;IACH,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;AA5DD,0CA4DC"}
@@ -32,7 +32,7 @@ class BackgroundJobsBasedQueueDiscoverer {
32
32
  this.redis = redis;
33
33
  }
34
34
  async discoverQueues() {
35
- return await background_jobs_common_1.AbstractBackgroundJobProcessor.getActiveQueueIds(this.redis);
35
+ return await (0, background_jobs_common_1.backgroundJobProcessorGetActiveQueueIds)(this.redis);
36
36
  }
37
37
  }
38
38
  exports.BackgroundJobsBasedQueueDiscoverer = BackgroundJobsBasedQueueDiscoverer;
@@ -1 +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,wDAAwD;YACxD,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;AAtBD,8DAsBC;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"}
1
+ {"version":3,"file":"queueDiscoverers.js","sourceRoot":"","sources":["../../../lib/plugins/bull-mq-metrics/queueDiscoverers.ts"],"names":[],"mappings":";;;AAAA,6EAA0F;AAO1F,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,wDAAwD;YACxD,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;AAtBD,8DAsBC;AAED,MAAa,kCAAkC;IAChB;IAA7B,YAA6B,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAE7C,KAAK,CAAC,cAAc;QAClB,OAAO,MAAM,IAAA,gEAAuC,EAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClE,CAAC;CACF;AAND,gFAMC"}
package/package.json CHANGED
@@ -1,90 +1,90 @@
1
1
  {
2
- "name": "@lokalise/fastify-extras",
3
- "version": "21.5.0",
4
- "description": "Opinionated set of fastify plugins, commonly used in Lokalise",
5
- "author": {
6
- "name": "Lokalise",
7
- "url": "https://lokalise.com/"
8
- },
9
- "license": "Apache-2.0",
10
- "repository": {
11
- "type": "git",
12
- "url": "git://github.com/lokalise/fastify-extras.git"
13
- },
14
- "keywords": [
15
- "fastify",
16
- "newrelic",
17
- "bugsnag",
18
- "request-context",
19
- "request-id",
20
- "split-io"
21
- ],
22
- "homepage": "https://github.com/lokalise/fastify-extras",
23
- "files": [
24
- "dist/**",
25
- "LICENSE",
26
- "README.md"
27
- ],
28
- "main": "dist/index.js",
29
- "types": "dist/index.d.ts",
30
- "type": "commonjs",
31
- "publishConfig": {
32
- "access": "public"
33
- },
34
- "scripts": {
35
- "build": "shx rm -rf ./dist && tsc",
36
- "test": "vitest",
37
- "test:coverage": "vitest --coverage",
38
- "test:ci": "npm run lint && npm run test:coverage",
39
- "lint": "biome check . && tsc --project tsconfig.lint.json --noEmit",
40
- "lint:fix": "biome check --write",
41
- "docker:start": "docker compose -f docker-compose.yml up --build -d redis && docker compose -f docker-compose.yml up --build -d wait_for_redis",
42
- "docker:stop": "docker compose -f docker-compose.yml down",
43
- "version": "auto-changelog -p && git add CHANGELOG.md"
44
- },
45
- "dependencies": {
46
- "@bugsnag/js": "^7.22.7",
47
- "@supercharge/promise-pool": "^3.2.0",
48
- "@lokalise/error-utils": "^1.4.0",
49
- "@lokalise/background-jobs-common": "^4.0.1",
50
- "@splitsoftware/splitio": "^10.25.2",
51
- "@amplitude/analytics-node": "^1.3.5",
52
- "fastify-metrics": "^11.0.0",
53
- "fastify-plugin": "^4.5.1",
54
- "toad-cache": "^3.7.0",
55
- "tslib": "^2.6.2"
56
- },
57
- "peerDependencies": {
58
- "fastify": "^4.24.3",
59
- "@fastify/jwt": "^8.0.1",
60
- "newrelic": ">=11.13.0",
61
- "pino": "^9.0.0",
62
- "zod": "^3.22.4",
63
- "bullmq": "^5.8.4",
64
- "ioredis": "^5.4.1"
65
- },
66
- "devDependencies": {
67
- "@lokalise/backend-http-client": "^2.0.1",
68
- "@biomejs/biome": "^1.8.3",
69
- "@lokalise/biome-config": "^1.3.0",
70
- "@lokalise/node-core": "^11.2.0",
71
- "@types/newrelic": "^9.14.4",
72
- "@types/node": "^22.1.0",
73
- "@amplitude/analytics-types": "^2.5.0",
74
- "@vitest/coverage-v8": "^2.0.5",
75
- "auto-changelog": "^2.4.0",
76
- "bullmq": "^5.12.0",
77
- "ioredis": "^5.4.1",
78
- "fastify": "^4.28.1",
79
- "newrelic": "12.0.0",
80
- "pino": "^9.1.0",
81
- "pino-pretty": "^11.2.1",
82
- "shx": "^0.3.4",
83
- "typescript": "^5.5.4",
84
- "vitest": "^2.0.5",
85
- "zod": "^3.23.8"
86
- },
87
- "engines": {
88
- "node": ">=18"
89
- }
2
+ "name": "@lokalise/fastify-extras",
3
+ "version": "21.7.0",
4
+ "description": "Opinionated set of fastify plugins, commonly used in Lokalise",
5
+ "author": {
6
+ "name": "Lokalise",
7
+ "url": "https://lokalise.com/"
8
+ },
9
+ "license": "Apache-2.0",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git://github.com/lokalise/fastify-extras.git"
13
+ },
14
+ "keywords": [
15
+ "fastify",
16
+ "newrelic",
17
+ "bugsnag",
18
+ "request-context",
19
+ "request-id",
20
+ "split-io"
21
+ ],
22
+ "homepage": "https://github.com/lokalise/fastify-extras",
23
+ "files": [
24
+ "dist/**",
25
+ "LICENSE",
26
+ "README.md"
27
+ ],
28
+ "main": "dist/index.js",
29
+ "types": "dist/index.d.ts",
30
+ "type": "commonjs",
31
+ "publishConfig": {
32
+ "access": "public"
33
+ },
34
+ "scripts": {
35
+ "build": "shx rm -rf ./dist && tsc",
36
+ "test": "vitest",
37
+ "test:coverage": "vitest --coverage",
38
+ "test:ci": "npm run lint && npm run test:coverage",
39
+ "lint": "biome check . && tsc --project tsconfig.lint.json --noEmit",
40
+ "lint:fix": "biome check --write",
41
+ "docker:start": "docker compose -f docker-compose.yml up --build -d redis && docker compose -f docker-compose.yml up --build -d wait_for_redis",
42
+ "docker:stop": "docker compose -f docker-compose.yml down",
43
+ "version": "auto-changelog -p && git add CHANGELOG.md"
44
+ },
45
+ "dependencies": {
46
+ "@bugsnag/js": "^7.25.0",
47
+ "@supercharge/promise-pool": "^3.2.0",
48
+ "@lokalise/error-utils": "^2.0.0",
49
+ "@lokalise/background-jobs-common": "^7.0.0",
50
+ "@splitsoftware/splitio": "^10.27.0",
51
+ "@amplitude/analytics-node": "^1.3.5",
52
+ "fastify-metrics": "^11.0.0",
53
+ "fastify-plugin": "^4.5.1",
54
+ "toad-cache": "^3.7.0",
55
+ "tslib": "^2.6.3"
56
+ },
57
+ "peerDependencies": {
58
+ "fastify": "^4.24.3",
59
+ "@fastify/jwt": "^8.0.1",
60
+ "newrelic": ">=11.13.0",
61
+ "pino": "^9.0.0",
62
+ "zod": "^3.22.4",
63
+ "bullmq": "^5.8.4",
64
+ "ioredis": "^5.4.1"
65
+ },
66
+ "devDependencies": {
67
+ "@lokalise/backend-http-client": "^2.0.1",
68
+ "@biomejs/biome": "^1.8.3",
69
+ "@lokalise/biome-config": "^1.4.0",
70
+ "@lokalise/node-core": "^11.2.0",
71
+ "@types/newrelic": "^9.14.4",
72
+ "@types/node": "^22.1.0",
73
+ "@amplitude/analytics-types": "^2.5.0",
74
+ "@vitest/coverage-v8": "^2.0.5",
75
+ "auto-changelog": "^2.4.0",
76
+ "bullmq": "^5.12.0",
77
+ "ioredis": "^5.4.1",
78
+ "fastify": "^4.28.1",
79
+ "newrelic": "12.0.0",
80
+ "pino": "^9.1.0",
81
+ "pino-pretty": "^11.2.1",
82
+ "shx": "^0.3.4",
83
+ "typescript": "^5.5.4",
84
+ "vitest": "^2.0.5",
85
+ "zod": "^3.23.8"
86
+ },
87
+ "engines": {
88
+ "node": ">=18"
89
+ }
90
90
  }