@davidilie/telemetry-next 0.1.3 → 0.3.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 CHANGED
@@ -168,7 +168,8 @@ reaches VictoriaLogs with active `trace_id`, `span_id`, service, and release.
168
168
 
169
169
  In long-running Next server processes the framework owns the provider
170
170
  lifecycle. Do not call `shutdown()` during an ordinary request. Use `flush()`
171
- only at a real lifecycle boundary; it drains core sends, not every private
172
- batch inside `@vercel/otel`.
171
+ only when queued telemetry must leave before returning or exiting. It drains
172
+ core sends and invokes public `forceFlush()` on registered trace, log, and
173
+ metric providers when supported. It does not shut down the framework provider.
173
174
 
174
175
  See the [web adapter](https://www.npmjs.com/package/@davidilie/telemetry-web), [Node adapter](https://www.npmjs.com/package/@davidilie/telemetry-node), [project onboarding](https://github.com/DavidIlie/davidapps-telemetry/blob/main/docs/adding-a-project.md), and [troubleshooting](https://github.com/DavidIlie/davidapps-telemetry/blob/main/docs/troubleshooting.md).
@@ -7,5 +7,6 @@ DavidApps Telemetry depends on permissively licensed open-source projects and us
7
7
  - Vercel Analytics and Vercel OTEL — MIT License — Copyright Vercel, Inc.
8
8
  - PostHog JavaScript SDKs — Apache-2.0/MIT — API reference only; no source is vendored.
9
9
  - Honeycomb OpenTelemetry React Native — MIT License — Copyright Honeycomb.io.
10
+ - Stripe Node.js SDK — MIT License — Copyright Ask Bjørn Hansen and Stripe, Inc.; API reference only.
10
11
 
11
- Reference license texts are retained in `licenses/` so future adaptations cannot accidentally lose their attribution obligations. The current source tree does not vendor code from PostHog, Vercel, Honeycomb, or the OpenTelemetry demo.
12
+ Reference license texts are retained in `licenses/` so future adaptations cannot accidentally lose their attribution obligations. The current source tree does not vendor code from PostHog, Vercel, Honeycomb, Stripe, or the OpenTelemetry demo.
package/UPSTREAM.yml CHANGED
@@ -54,3 +54,8 @@ sources:
54
54
  license: MIT
55
55
  commit: 07d144459177a58a347e18be762cf8f04e63cb1d
56
56
  use: api-reference
57
+ - name: stripe-node
58
+ repository: https://github.com/stripe/stripe-node
59
+ license: MIT
60
+ commit: 8adba1d35fdb76ba4104e5d7ae1ac999649c7061
61
+ use: api-reference
package/dist/index.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_request_error = require("./request-error-CtYIz296.cjs");
2
+ const require_request_error = require("./request-error-DR7VrDk_.cjs");
3
3
  exports.createNextRequestErrorHandler = require_request_error.createNextRequestErrorHandler;
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { t as createNextRequestErrorHandler } from "./request-error-6cvJ4jpq.mjs";
1
+ import { t as createNextRequestErrorHandler } from "./request-error-BWohGji2.mjs";
2
2
  export { createNextRequestErrorHandler };
package/dist/node.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_request_error = require("./request-error-CtYIz296.cjs");
3
- let _vercel_otel = require("@vercel/otel");
2
+ const require_request_error = require("./request-error-DR7VrDk_.cjs");
4
3
  let _davidilie_telemetry_core = require("@davidilie/telemetry-core");
4
+ let _vercel_otel = require("@vercel/otel");
5
5
  let _davidilie_telemetry_node = require("@davidilie/telemetry-node");
6
6
  let _opentelemetry_sdk_trace_base = require("@opentelemetry/sdk-trace-base");
7
7
  //#region src/node.ts
package/dist/node.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { t as createNextRequestErrorHandler } from "./request-error-6cvJ4jpq.mjs";
2
- import { registerOTel } from "@vercel/otel";
1
+ import { t as createNextRequestErrorHandler } from "./request-error-BWohGji2.mjs";
3
2
  import { sanitizeResource } from "@davidilie/telemetry-core";
3
+ import { registerOTel } from "@vercel/otel";
4
4
  import { DynamicTelemetrySampler, NodeTelemetryClient, telemetryResourceAttributes } from "@davidilie/telemetry-node";
5
5
  import { ParentBasedSampler, TraceIdRatioBasedSampler } from "@opentelemetry/sdk-trace-base";
6
6
  //#region src/node.ts
@@ -1,3 +1,4 @@
1
+ import { sanitizeAttributes, sanitizeUrl } from "@davidilie/telemetry-core";
1
2
  //#region src/request-error.ts
2
3
  async function reportFailure(config, error, stage) {
3
4
  try {
@@ -15,20 +16,20 @@ function createNextRequestErrorHandler(config) {
15
16
  await reportFailure(config, hookError, "beforeCapture");
16
17
  return;
17
18
  }
18
- const digest = errorDigest(error);
19
19
  try {
20
- config.telemetry.captureException(error, {
20
+ const digest = errorDigest(error);
21
+ config.telemetry.captureException(error, sanitizeAttributes({
21
22
  ...config.attributes,
22
23
  "http.request.method": request.method,
23
- "url.path": request.path,
24
+ "url.path": sanitizeUrl(request.path),
24
25
  "next.router.kind": context.routerKind,
25
- "next.route.path": context.routePath,
26
+ "next.route.path": sanitizeUrl(context.routePath),
26
27
  "next.route.type": context.routeType,
27
28
  ...context.renderSource ? { "next.render.source": context.renderSource } : {},
28
29
  ...context.revalidateReason ? { "next.revalidate.reason": context.revalidateReason } : {},
29
30
  ...context.renderType ? { "next.render.type": context.renderType } : {},
30
31
  ...digest ? { "next.error.digest": digest } : {}
31
- });
32
+ }));
32
33
  } catch (captureError) {
33
34
  await reportFailure(config, captureError, "capture");
34
35
  return;
@@ -1,3 +1,4 @@
1
+ let _davidilie_telemetry_core = require("@davidilie/telemetry-core");
1
2
  //#region src/request-error.ts
2
3
  async function reportFailure(config, error, stage) {
3
4
  try {
@@ -15,20 +16,20 @@ function createNextRequestErrorHandler(config) {
15
16
  await reportFailure(config, hookError, "beforeCapture");
16
17
  return;
17
18
  }
18
- const digest = errorDigest(error);
19
19
  try {
20
- config.telemetry.captureException(error, {
20
+ const digest = errorDigest(error);
21
+ config.telemetry.captureException(error, (0, _davidilie_telemetry_core.sanitizeAttributes)({
21
22
  ...config.attributes,
22
23
  "http.request.method": request.method,
23
- "url.path": request.path,
24
+ "url.path": (0, _davidilie_telemetry_core.sanitizeUrl)(request.path),
24
25
  "next.router.kind": context.routerKind,
25
- "next.route.path": context.routePath,
26
+ "next.route.path": (0, _davidilie_telemetry_core.sanitizeUrl)(context.routePath),
26
27
  "next.route.type": context.routeType,
27
28
  ...context.renderSource ? { "next.render.source": context.renderSource } : {},
28
29
  ...context.revalidateReason ? { "next.revalidate.reason": context.revalidateReason } : {},
29
30
  ...context.renderType ? { "next.render.type": context.renderType } : {},
30
31
  ...digest ? { "next.error.digest": digest } : {}
31
- });
32
+ }));
32
33
  } catch (captureError) {
33
34
  await reportFailure(config, captureError, "capture");
34
35
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@davidilie/telemetry-next",
3
- "version": "0.1.3",
3
+ "version": "0.3.0",
4
4
  "description": "Runtime-safe Next.js telemetry backed by @vercel/otel.",
5
5
  "keywords": [
6
6
  "analytics",
@@ -66,8 +66,8 @@
66
66
  "clean": "rm -rf dist coverage"
67
67
  },
68
68
  "dependencies": {
69
- "@davidilie/telemetry-core": "0.1.3",
70
- "@davidilie/telemetry-node": "0.1.3",
69
+ "@davidilie/telemetry-core": "0.3.0",
70
+ "@davidilie/telemetry-node": "0.3.0",
71
71
  "@opentelemetry/sdk-trace-base": "2.10.0",
72
72
  "@vercel/otel": "2.1.3"
73
73
  },
@@ -83,7 +83,7 @@
83
83
  "devDependencies": {
84
84
  "@opentelemetry/api": "1.9.0",
85
85
  "@types/node": "25.0.10",
86
- "next": "16.3.1"
86
+ "next": "16.3.5"
87
87
  },
88
88
  "publishConfig": {
89
89
  "access": "public",