@aforoai/metering 1.1.2 → 2.0.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 (70) hide show
  1. package/README.md +46 -28
  2. package/dist/cjs/client.d.ts +32 -50
  3. package/dist/cjs/client.d.ts.map +1 -1
  4. package/dist/cjs/client.js +104 -215
  5. package/dist/cjs/client.js.map +1 -1
  6. package/dist/cjs/middleware/common.d.ts +16 -0
  7. package/dist/cjs/middleware/common.d.ts.map +1 -1
  8. package/dist/cjs/middleware/common.js +54 -0
  9. package/dist/cjs/middleware/common.js.map +1 -1
  10. package/dist/cjs/middleware/express.d.ts +10 -5
  11. package/dist/cjs/middleware/express.d.ts.map +1 -1
  12. package/dist/cjs/middleware/express.js +22 -59
  13. package/dist/cjs/middleware/express.js.map +1 -1
  14. package/dist/cjs/middleware/fastify.d.ts +8 -4
  15. package/dist/cjs/middleware/fastify.d.ts.map +1 -1
  16. package/dist/cjs/middleware/fastify.js +25 -45
  17. package/dist/cjs/middleware/fastify.js.map +1 -1
  18. package/dist/cjs/middleware/koa.d.ts +10 -5
  19. package/dist/cjs/middleware/koa.d.ts.map +1 -1
  20. package/dist/cjs/middleware/koa.js +25 -43
  21. package/dist/cjs/middleware/koa.js.map +1 -1
  22. package/dist/cjs/transport-core/core.d.ts +355 -0
  23. package/dist/cjs/transport-core/core.d.ts.map +1 -0
  24. package/dist/cjs/transport-core/core.js +1047 -0
  25. package/dist/cjs/transport-core/core.js.map +1 -0
  26. package/dist/cjs/types.d.ts +82 -46
  27. package/dist/cjs/types.d.ts.map +1 -1
  28. package/dist/esm/client.js +103 -214
  29. package/dist/esm/client.js.map +1 -1
  30. package/dist/esm/middleware/common.js +51 -0
  31. package/dist/esm/middleware/common.js.map +1 -1
  32. package/dist/esm/middleware/express.js +23 -60
  33. package/dist/esm/middleware/express.js.map +1 -1
  34. package/dist/esm/middleware/fastify.js +26 -46
  35. package/dist/esm/middleware/fastify.js.map +1 -1
  36. package/dist/esm/middleware/koa.js +26 -44
  37. package/dist/esm/middleware/koa.js.map +1 -1
  38. package/dist/esm/transport-core/core.js +1038 -0
  39. package/dist/esm/transport-core/core.js.map +1 -0
  40. package/dist/types/client.d.ts +32 -50
  41. package/dist/types/client.d.ts.map +1 -1
  42. package/dist/types/middleware/common.d.ts +16 -0
  43. package/dist/types/middleware/common.d.ts.map +1 -1
  44. package/dist/types/middleware/express.d.ts +10 -5
  45. package/dist/types/middleware/express.d.ts.map +1 -1
  46. package/dist/types/middleware/fastify.d.ts +8 -4
  47. package/dist/types/middleware/fastify.d.ts.map +1 -1
  48. package/dist/types/middleware/koa.d.ts +10 -5
  49. package/dist/types/middleware/koa.d.ts.map +1 -1
  50. package/dist/types/transport-core/core.d.ts +355 -0
  51. package/dist/types/transport-core/core.d.ts.map +1 -0
  52. package/dist/types/types.d.ts +82 -46
  53. package/dist/types/types.d.ts.map +1 -1
  54. package/package.json +1 -1
  55. package/dist/cjs/buffer.d.ts +0 -33
  56. package/dist/cjs/buffer.d.ts.map +0 -1
  57. package/dist/cjs/buffer.js +0 -83
  58. package/dist/cjs/buffer.js.map +0 -1
  59. package/dist/cjs/transport.d.ts +0 -41
  60. package/dist/cjs/transport.d.ts.map +0 -1
  61. package/dist/cjs/transport.js +0 -186
  62. package/dist/cjs/transport.js.map +0 -1
  63. package/dist/esm/buffer.js +0 -79
  64. package/dist/esm/buffer.js.map +0 -1
  65. package/dist/esm/transport.js +0 -182
  66. package/dist/esm/transport.js.map +0 -1
  67. package/dist/types/buffer.d.ts +0 -33
  68. package/dist/types/buffer.d.ts.map +0 -1
  69. package/dist/types/transport.d.ts +0 -41
  70. package/dist/types/transport.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/transport-core/core.ts"],"names":[],"mappings":"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"}
@@ -1,38 +1,28 @@
1
- import { AforoOptions, TrackEvent, FlushResult } from './types.js';
1
+ import { AforoOptions, TrackEvent, ResolvedEvent, FlushResult } from './types.js';
2
+ /** Package version, sent in User-Agent. Keep in step with package.json. */
3
+ export declare const SDK_VERSION = "2.0.0";
2
4
  /**
3
5
  * Aforo metering client.
4
6
  *
5
- * Enqueues usage events into a ring buffer, flushes them in batches
6
- * to the Aforo ingestor service via HTTP. Non-blocking — `track()`
7
- * returns immediately, flushing happens in the background.
7
+ * `track()` validates the event and puts it on a bounded queue; one background
8
+ * flusher sends batches to the ingestor. If the ingestor is down, batches go
9
+ * back on the queue (same idempotency keys) and are sent when it recovers.
8
10
  *
9
11
  * ```typescript
10
- * const client = new AforoClient({ apiKey: 'your-key', productType: 'API' });
12
+ * const client = new AforoClient({ apiKey: process.env.AFORO_API_KEY!, productType: 'API' });
11
13
  * await client.track({ customerId: 'cust_1', metricName: 'api_calls', quantity: 1 });
12
- * // On shutdown:
13
- * await client.shutdown();
14
+ * // The SDK installs no signal handlers. Flush from your own:
15
+ * process.once('SIGTERM', async () => { await client.shutdown(); process.exit(0); });
14
16
  * ```
15
17
  */
16
18
  export declare class AforoClient {
17
- private readonly buffer;
18
- private readonly transport;
19
- private readonly flushCount;
20
- private readonly flushInterval;
21
- private readonly shutdownTimeoutMs;
19
+ private readonly core;
20
+ private readonly sendHeartbeat;
22
21
  private readonly productType;
23
- private readonly onDrop?;
24
- private dropped;
25
- private overflowDrops;
26
- private invalidDrops;
27
- private flushTimer;
28
- private flushing;
29
- private closed;
30
- private pendingFlush;
31
22
  private heartbeatTimer;
32
23
  private activeSessionId;
33
24
  private sessionStartedAt;
34
25
  private sessionProductType;
35
- private readonly signalHandler;
36
26
  constructor(options: AforoOptions);
37
27
  /**
38
28
  * Start a session and emit `system.session.heartbeat` events: one now, then
@@ -56,47 +46,39 @@ export declare class AforoClient {
56
46
  private stopHeartbeatTimer;
57
47
  private emitSessionHeartbeat;
58
48
  /**
59
- * Enqueue a usage event for batched delivery.
60
- * Returns immediately — does not await HTTP.
61
- * Triggers a flush if the buffer reaches flushCount.
49
+ * Queue a usage event. Returns at once — it never waits on HTTP and never
50
+ * starts a request (the background flusher sends batches).
62
51
  *
63
- * Throws only when the client is shut down. An event the ingestor would
64
- * reject — a blank or over-long `customerId` / `metricName` /
65
- * `idempotencyKey`, a `quantity` that is not positive or carries more than
66
- * 14 integer digits / 6 decimal places, an `occurredAt` that is not an
67
- * ISO-8601 instant, or any other capped field that is too long — is NOT
68
- * buffered and NOT sent. It is counted in `droppedCount`, WARN-logged with
69
- * the field, the limit and the offending value, and passed to the opt-in
70
- * `onDrop` hook with reason `'invalid'`. Limits the server makes
71
- * configurable (event age, clock skew, metadata size) are left to the
72
- * server. See `limits.ts` for the limits and where each one comes from.
52
+ * Never throws. An event the ingestor would reject — a blank or over-long
53
+ * `customerId` / `metricName` / `idempotencyKey`, a `quantity` that is not
54
+ * positive or carries more than 14 integer digits / 6 decimal places, an
55
+ * `occurredAt` that is not an ISO-8601 instant, or any other capped field
56
+ * that is too long — is NOT queued and NOT sent. It is counted in
57
+ * `droppedCount`, WARN-logged with the field and the limit, and passed to
58
+ * the opt-in `onDrop` hook with reason `'invalid'`. After `shutdown()` the
59
+ * event is counted and reported with reason `'closed'`.
73
60
  */
74
61
  track(event: TrackEvent): Promise<void>;
75
- /** Buffer an event; surface the evicted-oldest event if the push overflowed. */
76
- private enqueue;
62
+ /** @internal Count and report an event a middleware could not build (reason 'invalid'). */
63
+ reportInvalid(event: ResolvedEvent, detail: string): void;
77
64
  /**
78
- * Account for permanently lost events: bump the counter, WARN-log, and
79
- * invoke the opt-in onDrop hook. Overflow logs are throttled (first, then
80
- * every 1000th eviction) so sustained overflow can't storm the log;
81
- * failed-batch drops log every time (bounded by flush cadence).
82
- */
83
- private recordDrop;
84
- /**
85
- * Force-flush all buffered events to the ingestor.
86
- * Safe to call concurrently — only one flush runs at a time.
65
+ * Send everything queued now and wait for it. Runs on the single flusher —
66
+ * never a second concurrent request. While the ingestor is down this makes
67
+ * one attempt; unsent events stay queued.
87
68
  */
88
69
  flush(): Promise<FlushResult>;
89
- private doFlush;
90
70
  /**
91
- * Flush remaining events and stop the client.
92
- * After shutdown, track() will throw.
71
+ * Stop accepting events and send what is queued, for at most
72
+ * `shutdownTimeoutMs`. Events still queued at the deadline are counted and
73
+ * reported through onDrop with reason 'shutdown'. Safe to call more than once.
93
74
  */
94
75
  shutdown(): Promise<void>;
95
- /** Number of events currently buffered. */
76
+ /** Number of events currently queued. */
96
77
  get bufferedCount(): number;
97
- /** Total events permanently dropped (overflow, failed batches, server-rejected and invalid events) since creation. */
78
+ /** Total events permanently dropped (every DropReason) since creation. */
98
79
  get droppedCount(): number;
99
80
  /** Whether the client has been shut down. */
100
81
  get isShutdown(): boolean;
82
+ toJSON(): Record<string, unknown>;
101
83
  }
102
84
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAiB,WAAW,EAAc,MAAM,YAAY,CAAC;AAuB9F;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAwD;IAIhF,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAqC;IAGzD,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,kBAAkB,CAAwC;IAIlE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAa;gBAE/B,OAAO,EAAE,YAAY;IAuCjC;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,MAAqC,GAAG,IAAI;IAezF;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;IAkC5B;;;;;;;;;;;;;;;OAeG;IACG,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA8D7C,gFAAgF;IAChF,OAAO,CAAC,OAAO;IAOf;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAqClB;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;YAgBrB,OAAO;IAsCrB;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC/B,2CAA2C;IAC3C,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,sHAAsH;IACtH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,6CAA6C;IAC7C,IAAI,UAAU,IAAI,OAAO,CAExB;CACF"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAc,MAAM,YAAY,CAAC;AAK9F,2EAA2E;AAC3E,eAAO,MAAM,WAAW,UAAU,CAAC;AAsCnC;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+B;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAGrC,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,kBAAkB,CAAwC;gBAEtD,OAAO,EAAE,YAAY;IAgCjC;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,MAAqC,GAAG,IAAI;IAezF;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;IAkC5B;;;;;;;;;;;;OAYG;IACG,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAoD7C,2FAA2F;IAC3F,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAIzD;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAKnC;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B,yCAAyC;IACzC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,0EAA0E;IAC1E,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,6CAA6C;IAC7C,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAOlC"}
@@ -1,4 +1,5 @@
1
1
  import { MiddlewareOptions } from '../types.js';
2
+ import { AforoClient } from '../client.js';
2
3
  /**
3
4
  * Metric recorded for each request when `metricName` is not configured.
4
5
  *
@@ -25,4 +26,19 @@ export declare function endpointPathOf(url: string): string;
25
26
  export declare function httpMethodOf(method: string): string;
26
27
  /** First non-empty string among the candidates, or null. */
27
28
  export declare function firstNonEmpty(...values: unknown[]): string | null;
29
+ /** The client a middleware meters through: the app's own, or one built from the options. */
30
+ export declare function middlewareClient(options: MiddlewareOptions): AforoClient;
31
+ /**
32
+ * Build the per-request customer lookup. Throws at setup when neither a
33
+ * resolver nor the explicit `trustCustomerHeader` opt-in is configured: the
34
+ * X-Customer-Id header is set by whoever calls the API, so it is never read
35
+ * by default.
36
+ */
37
+ export declare function customerLookup(options: MiddlewareOptions, readHeader: (req: any) => unknown): (req: any, headerSource?: any) => string | null;
38
+ /**
39
+ * The endpointPath to send: the query string removed, dynamic segments
40
+ * collapsed unless `normalizePath` is false (a framework route template wins),
41
+ * and cut to the ingestor's 512-character limit.
42
+ */
43
+ export declare function endpointPathFor(options: MiddlewareOptions, rawPath: string, req: any, routeTemplate?: unknown): string;
28
44
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/middleware/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE/D;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAKxF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAOjE"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/middleware/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE/D;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAKxF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAOjE;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,WAAW,CAMxE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,GAChC,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAkBjD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAUtH"}
@@ -1,15 +1,20 @@
1
1
  import { MiddlewareOptions } from '../types.js';
2
2
  /**
3
- * Express middleware that automatically captures API usage events.
3
+ * Express middleware that records one usage event per request.
4
4
  *
5
- * Hooks into `res.on('finish')` — runs AFTER the response is sent to the client.
6
- * Zero latency impact on the API call itself.
5
+ * Hooks into `res.on('finish')` — runs AFTER the response is sent, so it adds
6
+ * no latency to the request. Metering never throws into the request.
7
7
  *
8
8
  * ```typescript
9
+ * import { AforoClient } from '@aforoai/metering';
9
10
  * import { expressMiddleware } from '@aforoai/metering/middleware/express';
10
- * app.use(expressMiddleware({ apiKey: process.env.AFORO_API_KEY, productType: 'API' }));
11
+ * const aforo = new AforoClient({ apiKey: process.env.AFORO_API_KEY!, productType: 'API' });
12
+ * app.use(expressMiddleware({ client: aforo, customerResolver: (req) => req.user?.aforoCustomerId }));
13
+ * process.once('SIGTERM', async () => { await aforo.shutdown(); process.exit(0); });
11
14
  * ```
12
15
  */
13
- export declare function expressMiddleware(options: MiddlewareOptions): (req: any, res: any, next: any) => void;
16
+ export declare function expressMiddleware(options: MiddlewareOptions): ((req: any, res: any, next: any) => void) & {
17
+ client: import("../client.js").AforoClient;
18
+ };
14
19
  export declare const middleware: typeof expressMiddleware;
15
20
  //# sourceMappingURL=express.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../../src/middleware/express.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKhD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,IAUlB,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,UAgEtE;AAeD,eAAO,MAAM,UAAU,0BAAoB,CAAC"}
1
+ {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../../src/middleware/express.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKhD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,UAOJ,GAAG,OAAO,GAAG,QAAQ,GAAG;;EAsC/E;AAGD,eAAO,MAAM,UAAU,0BAAoB,CAAC"}
@@ -1,13 +1,17 @@
1
1
  import { MiddlewareOptions } from '../types.js';
2
2
  /**
3
- * Fastify plugin that automatically captures API usage events.
4
- *
5
- * Uses the `onResponse` hook — runs AFTER the response is sent.
3
+ * Fastify plugin that records one usage event per request in the
4
+ * `onResponse` hook (after the response is sent).
6
5
  *
7
6
  * ```typescript
7
+ * import { AforoClient } from '@aforoai/metering';
8
8
  * import { fastifyPlugin } from '@aforoai/metering/middleware/fastify';
9
- * fastify.register(fastifyPlugin, { apiKey: process.env.AFORO_API_KEY, productType: 'API' });
9
+ * const aforo = new AforoClient({ apiKey: process.env.AFORO_API_KEY!, productType: 'API' });
10
+ * fastify.register(fastifyPlugin, { client: aforo, customerResolver: (request) => request.user?.aforoCustomerId });
10
11
  * ```
12
+ *
13
+ * When the plugin creates its own client (apiKey instead of client), it shuts
14
+ * that client down in Fastify's onClose hook. A client you pass in is yours to shut down.
11
15
  */
12
16
  export declare function fastifyPlugin(fastify: any, options: MiddlewareOptions): Promise<void>;
13
17
  //# sourceMappingURL=fastify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../../../src/middleware/fastify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKhD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,iBAwE3E"}
1
+ {"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../../../src/middleware/fastify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKhD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,iBAiD3E"}
@@ -1,13 +1,18 @@
1
1
  import { MiddlewareOptions } from '../types.js';
2
2
  /**
3
- * Koa middleware that automatically captures API usage events.
4
- *
5
- * Captures after `await next()` completes — runs after the response is generated.
3
+ * Koa middleware that records one usage event per request, after `await next()`.
4
+ * Metering never throws into the request.
6
5
  *
7
6
  * ```typescript
7
+ * import { AforoClient } from '@aforoai/metering';
8
8
  * import { koaMiddleware } from '@aforoai/metering/middleware/koa';
9
- * app.use(koaMiddleware({ apiKey: process.env.AFORO_API_KEY, productType: 'API' }));
9
+ * const aforo = new AforoClient({ apiKey: process.env.AFORO_API_KEY!, productType: 'API' });
10
+ * app.use(koaMiddleware({ client: aforo, customerResolver: (ctx) => ctx.state.user?.aforoCustomerId }));
10
11
  * ```
12
+ *
13
+ * `customerResolver` receives the Koa context.
11
14
  */
12
- export declare function koaMiddleware(options: MiddlewareOptions): (ctx: any, next: any) => Promise<void>;
15
+ export declare function koaMiddleware(options: MiddlewareOptions): ((ctx: any, next: any) => Promise<void>) & {
16
+ client: import("../client.js").AforoClient;
17
+ };
13
18
  //# sourceMappingURL=koa.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"koa.d.ts","sourceRoot":"","sources":["../../../src/middleware/koa.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKhD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,IAUR,KAAK,GAAG,EAAE,MAAM,GAAG,mBAuDlE"}
1
+ {"version":3,"file":"koa.d.ts","sourceRoot":"","sources":["../../../src/middleware/koa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,UAgBM,GAAG,QAAQ,GAAG;;EAkC3E"}