@lokalise/fastify-extras 30.6.0 → 30.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.
- package/README.md +56 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/plugins/datadogTransactionManagerPlugin.d.ts +35 -0
- package/dist/plugins/datadogTransactionManagerPlugin.js +95 -0
- package/dist/plugins/datadogTransactionManagerPlugin.js.map +1 -0
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -15,6 +15,7 @@ Reusable plugins for Fastify.
|
|
|
15
15
|
- [Bull MQ Metrics Plugin](#bullmq-metrics-plugin)
|
|
16
16
|
- [NewRelic Transaction Manager Plugin](#newrelic-transaction-manager-plugin)
|
|
17
17
|
- [OpenTelemetry Transaction Manager Plugin](#opentelemetry-transaction-manager-plugin)
|
|
18
|
+
- [Datadog Transaction Manager Plugin](#datadog-transaction-manager-plugin)
|
|
18
19
|
- [UnhandledException Plugin](#unhandledexception-plugin)
|
|
19
20
|
|
|
20
21
|
## Dependency Management
|
|
@@ -36,6 +37,7 @@ The following needs to be taken into consideration when adding new runtime depen
|
|
|
36
37
|
|
|
37
38
|
- `@fastify/jwt`;
|
|
38
39
|
- `@opentelemetry/api`;
|
|
40
|
+
- `dd-trace`;
|
|
39
41
|
- `fastify`;
|
|
40
42
|
- `newrelic`;
|
|
41
43
|
- `pino`;
|
|
@@ -382,6 +384,60 @@ manager.stop('job-123', true) // true = successful
|
|
|
382
384
|
|
|
383
385
|
> **Note:** This plugin requires `@opentelemetry/api` as a peer dependency. Make sure your application has OpenTelemetry configured with appropriate exporters (e.g., OTLP exporter) to send traces to your observability backend.
|
|
384
386
|
|
|
387
|
+
### Datadog Transaction Manager Plugin
|
|
388
|
+
|
|
389
|
+
Plugin to create custom Datadog APM spans for background jobs using `dd-trace`. This is an alternative to the NewRelic and OpenTelemetry Transaction Manager plugins for applications using Datadog for observability.
|
|
390
|
+
|
|
391
|
+
**Important:** The Datadog tracer must be pre-initialized before your application starts. Use the `--import` flag to load the tracer:
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
node --import dd-trace/initialize.mjs app.js
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
The plugin does **not** call `tracer.init()` — it expects the tracer to already be running when the plugin loads.
|
|
398
|
+
|
|
399
|
+
Add the plugin to your Fastify instance by registering it with the following options:
|
|
400
|
+
|
|
401
|
+
- `isEnabled`, if `true` the plugin will create spans using the Datadog tracer.
|
|
402
|
+
|
|
403
|
+
The plugin decorates your Fastify instance with a `DatadogTransactionManager`, which implements the `TransactionObservabilityManager` interface from `@lokalise/node-core`. You can inject and use the following methods:
|
|
404
|
+
|
|
405
|
+
- `start(transactionName, uniqueTransactionKey)`, starts a background span with the provided name and stores it by the unique key;
|
|
406
|
+
- `startWithGroup(transactionName, uniqueTransactionKey, transactionGroup)`, starts a background span with an additional `transaction.group` tag;
|
|
407
|
+
- `stop(uniqueTransactionKey)`, ends the span referenced by the unique key;
|
|
408
|
+
- `addCustomAttribute(attrName, attrValue)`, adds a custom tag to the currently active span. `attrValue` can be a string, number, or boolean;
|
|
409
|
+
- `addCustomAttributes(uniqueTransactionKey, atts)`, adds multiple tags to the span identified by the unique key;
|
|
410
|
+
- `setUserID(userId)`, sets the `usr.id` tag on the active span (Datadog convention);
|
|
411
|
+
- `setControllerName(name, action)`, sets `code.namespace` and `code.function` tags on the active span.
|
|
412
|
+
|
|
413
|
+
Example usage:
|
|
414
|
+
|
|
415
|
+
```typescript
|
|
416
|
+
import { datadogTransactionManagerPlugin } from '@lokalise/fastify-extras'
|
|
417
|
+
|
|
418
|
+
// Register the plugin
|
|
419
|
+
await app.register(datadogTransactionManagerPlugin, {
|
|
420
|
+
isEnabled: true,
|
|
421
|
+
})
|
|
422
|
+
|
|
423
|
+
// Use in your application
|
|
424
|
+
const manager = app.datadogTransactionManager
|
|
425
|
+
|
|
426
|
+
// Start a transaction
|
|
427
|
+
manager.start('process-email-job', 'job-123')
|
|
428
|
+
|
|
429
|
+
// Add custom attributes
|
|
430
|
+
manager.addCustomAttributes('job-123', {
|
|
431
|
+
jobType: 'email',
|
|
432
|
+
recipient: 'user@example.com',
|
|
433
|
+
})
|
|
434
|
+
|
|
435
|
+
// End the transaction
|
|
436
|
+
manager.stop('job-123')
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
> **Note:** This plugin requires `dd-trace` as a peer dependency (`>=5.0.0`). The tracer must be initialized externally via `node --import dd-trace/initialize.mjs app.js` — the plugin only obtains the already-running tracer singleton.
|
|
440
|
+
|
|
385
441
|
### Amplitude Plugin
|
|
386
442
|
|
|
387
443
|
This plugin facilitates the transmission of events to Amplitude.
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export { newrelicTransactionManagerPlugin, NewRelicTransactionManager, } from '.
|
|
|
6
6
|
export type { NewRelicTransactionManagerOptions } from './plugins/newrelicTransactionManagerPlugin.js';
|
|
7
7
|
export { openTelemetryTransactionManagerPlugin, OpenTelemetryTransactionManager, } from './plugins/openTelemetryTransactionManagerPlugin.js';
|
|
8
8
|
export type { OpenTelemetryTransactionManagerOptions } from './plugins/openTelemetryTransactionManagerPlugin.js';
|
|
9
|
+
export { datadogTransactionManagerPlugin, DatadogTransactionManager, } from './plugins/datadogTransactionManagerPlugin.js';
|
|
10
|
+
export type { DatadogTransactionManagerOptions } from './plugins/datadogTransactionManagerPlugin.js';
|
|
9
11
|
export { splitIOFeatureManagerPlugin, SplitIOFeatureManager, } from './plugins/splitIOFeatureManagerPlugin.js';
|
|
10
12
|
export type { SplitIOOptions } from './plugins/splitIOFeatureManagerPlugin.js';
|
|
11
13
|
export { healthcheckMetricsPlugin, wrapHealthCheckForPrometheus, } from './plugins/healthcheck/healthcheckMetricsPlugin.js';
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@ export { bugsnagPlugin, reportErrorToBugsnag, bugsnagErrorReporter, addFeatureFl
|
|
|
2
2
|
export { requestContextProviderPlugin, getRequestIdFastifyAppConfig, } from './plugins/requestContextProviderPlugin.js';
|
|
3
3
|
export { newrelicTransactionManagerPlugin, NewRelicTransactionManager, } from './plugins/newrelicTransactionManagerPlugin.js';
|
|
4
4
|
export { openTelemetryTransactionManagerPlugin, OpenTelemetryTransactionManager, } from './plugins/openTelemetryTransactionManagerPlugin.js';
|
|
5
|
+
export { datadogTransactionManagerPlugin, DatadogTransactionManager, } from './plugins/datadogTransactionManagerPlugin.js';
|
|
5
6
|
export { splitIOFeatureManagerPlugin, SplitIOFeatureManager, } from './plugins/splitIOFeatureManagerPlugin.js';
|
|
6
7
|
export { healthcheckMetricsPlugin, wrapHealthCheckForPrometheus, } from './plugins/healthcheck/healthcheckMetricsPlugin.js';
|
|
7
8
|
export { PrometheusCounterTransactionManager } from './plugins/prometheus/PrometheusCounterTransactionManager.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,GACf,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,2CAA2C,CAAA;AAGlD,OAAO,EACL,gCAAgC,EAChC,0BAA0B,GAC3B,MAAM,+CAA+C,CAAA;AAGtD,OAAO,EACL,qCAAqC,EACrC,+BAA+B,GAChC,MAAM,oDAAoD,CAAA;AAG3D,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,0CAA0C,CAAA;AAGjD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,mDAAmD,CAAA;AAO1D,OAAO,EAAE,mCAAmC,EAAE,MAAM,6DAA6D,CAAA;AAEjH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EACL,yBAAyB,EACzB,kCAAkC,GACnC,MAAM,+CAA+C,CAAA;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAM1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAA;AAO1F,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAA;AAG7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAA;AAG1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAA;AAG5F,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAA;AAGlG,OAAO,EACL,eAAe,GAGhB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AACpE,OAAO,EACL,gBAAgB,EAChB,6BAA6B,GAG9B,MAAM,yCAAyC,CAAA;AAIhD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAA;AAEhF,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,uCAAuC,CAAA;AAG9C,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAA4B,MAAM,0BAA0B,CAAA;AAGnG,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE5E,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAA;AAClF,OAAO,EACL,0BAA0B,GAG3B,MAAM,4BAA4B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,GACf,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,2CAA2C,CAAA;AAGlD,OAAO,EACL,gCAAgC,EAChC,0BAA0B,GAC3B,MAAM,+CAA+C,CAAA;AAGtD,OAAO,EACL,qCAAqC,EACrC,+BAA+B,GAChC,MAAM,oDAAoD,CAAA;AAG3D,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,8CAA8C,CAAA;AAGrD,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,0CAA0C,CAAA;AAGjD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,mDAAmD,CAAA;AAO1D,OAAO,EAAE,mCAAmC,EAAE,MAAM,6DAA6D,CAAA;AAEjH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EACL,yBAAyB,EACzB,kCAAkC,GACnC,MAAM,+CAA+C,CAAA;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAM1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAA;AAO1F,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAA;AAG7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAA;AAG1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAA;AAG5F,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAA;AAGlG,OAAO,EACL,eAAe,GAGhB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AACpE,OAAO,EACL,gBAAgB,EAChB,6BAA6B,GAG9B,MAAM,yCAAyC,CAAA;AAIhD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAA;AAEhF,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,uCAAuC,CAAA;AAG9C,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAA4B,MAAM,0BAA0B,CAAA;AAGnG,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE5E,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAA;AAClF,OAAO,EACL,0BAA0B,GAG3B,MAAM,4BAA4B,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { TransactionObservabilityManager } from '@lokalise/node-core';
|
|
2
|
+
import type { FastifyPluginCallback } from 'fastify';
|
|
3
|
+
declare module 'fastify' {
|
|
4
|
+
interface FastifyInstance {
|
|
5
|
+
datadogTransactionManager: DatadogTransactionManager;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export interface DatadogTransactionManagerOptions {
|
|
9
|
+
isEnabled: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare class DatadogTransactionManager implements TransactionObservabilityManager {
|
|
12
|
+
private readonly isEnabled;
|
|
13
|
+
private readonly spanMap;
|
|
14
|
+
constructor(isEnabled: boolean);
|
|
15
|
+
static createDisabled(): DatadogTransactionManager;
|
|
16
|
+
/**
|
|
17
|
+
* @param transactionName - used for grouping similar transactions together
|
|
18
|
+
* @param uniqueTransactionKey - used for identifying specific ongoing transaction. Must be reasonably unique to reduce possibility of collisions
|
|
19
|
+
*/
|
|
20
|
+
start(transactionName: string, uniqueTransactionKey: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* @param transactionName - used for grouping similar transactions together
|
|
23
|
+
* @param uniqueTransactionKey - used for identifying specific ongoing transaction. Must be reasonably unique to reduce possibility of collisions
|
|
24
|
+
* @param transactionGroup - group is used for grouping related transactions with different names
|
|
25
|
+
*/
|
|
26
|
+
startWithGroup(transactionName: string, uniqueTransactionKey: string, transactionGroup: string): void;
|
|
27
|
+
stop(uniqueTransactionKey: string): void;
|
|
28
|
+
addCustomAttribute(attrName: string, attrValue: string | number | boolean): void;
|
|
29
|
+
addCustomAttributes(uniqueTransactionKey: string, atts: {
|
|
30
|
+
[p: string]: string | number | boolean;
|
|
31
|
+
}): void;
|
|
32
|
+
setUserID(userId: string): void;
|
|
33
|
+
setControllerName(name: string, action: string): void;
|
|
34
|
+
}
|
|
35
|
+
export declare const datadogTransactionManagerPlugin: FastifyPluginCallback<DatadogTransactionManagerOptions>;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import tracer, {} from 'dd-trace';
|
|
2
|
+
import fp from 'fastify-plugin';
|
|
3
|
+
import { FifoMap } from 'toad-cache';
|
|
4
|
+
export class DatadogTransactionManager {
|
|
5
|
+
isEnabled;
|
|
6
|
+
spanMap;
|
|
7
|
+
constructor(isEnabled) {
|
|
8
|
+
this.isEnabled = isEnabled;
|
|
9
|
+
this.spanMap = new FifoMap(2000);
|
|
10
|
+
}
|
|
11
|
+
static createDisabled() {
|
|
12
|
+
return new DatadogTransactionManager(false);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @param transactionName - used for grouping similar transactions together
|
|
16
|
+
* @param uniqueTransactionKey - used for identifying specific ongoing transaction. Must be reasonably unique to reduce possibility of collisions
|
|
17
|
+
*/
|
|
18
|
+
start(transactionName, uniqueTransactionKey) {
|
|
19
|
+
if (!this.isEnabled)
|
|
20
|
+
return;
|
|
21
|
+
const span = tracer.startSpan(transactionName, {
|
|
22
|
+
tags: {
|
|
23
|
+
'transaction.type': 'background',
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
this.spanMap.set(uniqueTransactionKey, span);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @param transactionName - used for grouping similar transactions together
|
|
30
|
+
* @param uniqueTransactionKey - used for identifying specific ongoing transaction. Must be reasonably unique to reduce possibility of collisions
|
|
31
|
+
* @param transactionGroup - group is used for grouping related transactions with different names
|
|
32
|
+
*/
|
|
33
|
+
startWithGroup(transactionName, uniqueTransactionKey, transactionGroup) {
|
|
34
|
+
if (!this.isEnabled)
|
|
35
|
+
return;
|
|
36
|
+
const span = tracer.startSpan(transactionName, {
|
|
37
|
+
tags: {
|
|
38
|
+
'transaction.type': 'background',
|
|
39
|
+
'transaction.group': transactionGroup,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
this.spanMap.set(uniqueTransactionKey, span);
|
|
43
|
+
}
|
|
44
|
+
stop(uniqueTransactionKey) {
|
|
45
|
+
if (!this.isEnabled)
|
|
46
|
+
return;
|
|
47
|
+
const span = this.spanMap.get(uniqueTransactionKey) ?? null;
|
|
48
|
+
if (!span)
|
|
49
|
+
return;
|
|
50
|
+
span.finish();
|
|
51
|
+
this.spanMap.delete(uniqueTransactionKey);
|
|
52
|
+
}
|
|
53
|
+
addCustomAttribute(attrName, attrValue) {
|
|
54
|
+
if (!this.isEnabled)
|
|
55
|
+
return;
|
|
56
|
+
const activeSpan = tracer.scope().active();
|
|
57
|
+
if (activeSpan) {
|
|
58
|
+
activeSpan.setTag(attrName, attrValue);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
addCustomAttributes(uniqueTransactionKey, atts) {
|
|
62
|
+
if (!this.isEnabled)
|
|
63
|
+
return;
|
|
64
|
+
const span = this.spanMap.get(uniqueTransactionKey);
|
|
65
|
+
if (!span)
|
|
66
|
+
return;
|
|
67
|
+
span.addTags(atts);
|
|
68
|
+
}
|
|
69
|
+
setUserID(userId) {
|
|
70
|
+
if (!this.isEnabled)
|
|
71
|
+
return;
|
|
72
|
+
const activeSpan = tracer.scope().active();
|
|
73
|
+
if (activeSpan) {
|
|
74
|
+
activeSpan.setTag('usr.id', userId);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
setControllerName(name, action) {
|
|
78
|
+
if (!this.isEnabled)
|
|
79
|
+
return;
|
|
80
|
+
const activeSpan = tracer.scope().active();
|
|
81
|
+
if (activeSpan) {
|
|
82
|
+
activeSpan.setTag('code.namespace', name);
|
|
83
|
+
activeSpan.setTag('code.function', action);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function plugin(fastify, opts) {
|
|
88
|
+
const manager = new DatadogTransactionManager(opts.isEnabled);
|
|
89
|
+
fastify.decorate('datadogTransactionManager', manager);
|
|
90
|
+
}
|
|
91
|
+
export const datadogTransactionManagerPlugin = fp(plugin, {
|
|
92
|
+
fastify: '5.x',
|
|
93
|
+
name: 'datadog-transaction-manager-plugin',
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=datadogTransactionManagerPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datadogTransactionManagerPlugin.js","sourceRoot":"","sources":["../../lib/plugins/datadogTransactionManagerPlugin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lokalise/fastify-extras",
|
|
3
|
-
"version": "30.
|
|
3
|
+
"version": "30.7.0",
|
|
4
4
|
"description": "Opinionated set of fastify plugins, commonly used in Lokalise",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Lokalise",
|
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
"fastify": "^5.7.1",
|
|
56
56
|
"fastify-type-provider-zod": ">=6.0.0",
|
|
57
57
|
"ioredis": "^5.7.0",
|
|
58
|
+
"dd-trace": ">=5.0.0",
|
|
58
59
|
"newrelic": ">=11.13.0",
|
|
59
60
|
"pino": ">=9.9.0",
|
|
60
61
|
"zod": ">=4.1.5"
|
|
@@ -73,10 +74,11 @@
|
|
|
73
74
|
"@vitest/coverage-v8": "^3.2.4",
|
|
74
75
|
"auto-changelog": "^2.4.0",
|
|
75
76
|
"bullmq": "^5.67.1",
|
|
77
|
+
"dd-trace": "^5.85.0",
|
|
76
78
|
"fastify": "^5.7.2",
|
|
77
79
|
"fastify-type-provider-zod": "^6.0.0",
|
|
78
80
|
"ioredis": "^5.6.1",
|
|
79
|
-
"newrelic": "13.
|
|
81
|
+
"newrelic": "13.12.0",
|
|
80
82
|
"pino": "^10.0.0",
|
|
81
83
|
"pino-pretty": "^13.1.1",
|
|
82
84
|
"rimraf": "^6.0.1",
|