autotel-tanstack 1.12.0 → 1.12.1

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/bin/intent.js ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ // Auto-generated by @tanstack/intent setup
3
+ // Exposes the intent end-user CLI for consumers of this library.
4
+ // Commit this file, then add to your package.json:
5
+ // "bin": { "intent": "./bin/intent.js" }
6
+ await import('@tanstack/intent/intent-library');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autotel-tanstack",
3
- "version": "1.12.0",
3
+ "version": "1.12.1",
4
4
  "description": "OpenTelemetry instrumentation for TanStack Start - automatic tracing for server functions, middleware, and route loaders",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -95,7 +95,10 @@
95
95
  "files": [
96
96
  "dist",
97
97
  "src",
98
- "README.md"
98
+ "README.md",
99
+ "skills",
100
+ "!skills/_artifacts",
101
+ "bin"
99
102
  ],
100
103
  "keywords": [
101
104
  "opentelemetry",
@@ -117,12 +120,13 @@
117
120
  "license": "MIT",
118
121
  "dependencies": {
119
122
  "@opentelemetry/api": "^1.9.0",
120
- "autotel": "2.23.0",
121
- "autotel-adapters": "0.1.1"
123
+ "@tanstack/intent": "^0.0.13",
124
+ "autotel": "2.23.1",
125
+ "autotel-adapters": "0.1.2"
122
126
  },
123
127
  "peerDependencies": {
124
- "@tanstack/react-start": "^1.166.1",
125
- "@tanstack/solid-start": "^1.166.1"
128
+ "@tanstack/react-start": "^1.166.2",
129
+ "@tanstack/solid-start": "^1.166.2"
126
130
  },
127
131
  "peerDependenciesMeta": {
128
132
  "@tanstack/react-start": {
@@ -133,9 +137,9 @@
133
137
  }
134
138
  },
135
139
  "devDependencies": {
136
- "@opentelemetry/sdk-trace-base": "^2.5.1",
137
- "@tanstack/react-router": "^1.163.3",
138
- "@types/node": "^25.3.3",
140
+ "@opentelemetry/sdk-trace-base": "^2.6.0",
141
+ "@tanstack/react-router": "^1.166.2",
142
+ "@types/node": "^25.3.5",
139
143
  "rimraf": "^6.1.3",
140
144
  "tsup": "^8.5.1",
141
145
  "typescript": "^5.9.3",
@@ -151,6 +155,9 @@
151
155
  "url": "https://github.com/jagreehal/autotel/issues"
152
156
  },
153
157
  "homepage": "https://github.com/jagreehal/autotel/tree/main/packages/autotel-tanstack#readme",
158
+ "bin": {
159
+ "intent": "./bin/intent.js"
160
+ },
154
161
  "scripts": {
155
162
  "build": "tsup",
156
163
  "dev": "tsup --watch",
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: autotel-tanstack
3
+ description: >
4
+ OpenTelemetry for TanStack Start. Trace server functions, route loaders, middleware, and request handlers. Supports zero-config, middleware-based, and explicit wrapper patterns.
5
+ type: integration
6
+ library: autotel-tanstack
7
+ library_version: '1.12.0'
8
+ sources:
9
+ - jagreehal/autotel:packages/autotel-tanstack/CLAUDE.md
10
+ ---
11
+
12
+ # autotel-tanstack
13
+
14
+ OpenTelemetry instrumentation for TanStack Start (React Start and Solid Start).
15
+
16
+ ## Quick Start — pick one approach
17
+
18
+ ### Zero-config
19
+
20
+ ```typescript
21
+ import 'autotel-tanstack/auto';
22
+ // Set env: OTEL_SERVICE_NAME, OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_HEADERS
23
+ ```
24
+
25
+ ### Middleware (recommended)
26
+
27
+ ```typescript
28
+ import { tracingMiddleware } from 'autotel-tanstack/middleware';
29
+
30
+ // Request-level tracing
31
+ export const startInstance = createStart(() => ({
32
+ requestMiddleware: [tracingMiddleware()],
33
+ }));
34
+
35
+ // Server function tracing
36
+ export const getUser = createServerFn({ method: 'GET' })
37
+ .middleware([tracingMiddleware({ type: 'function' })])
38
+ .handler(async ({ data: id }) => db.users.findUnique({ where: { id } }));
39
+ ```
40
+
41
+ ### Explicit wrappers
42
+
43
+ ```typescript
44
+ import { traceServerFn } from 'autotel-tanstack/server-functions';
45
+ import { traceLoader } from 'autotel-tanstack/loaders';
46
+ import { wrapStartHandler } from 'autotel-tanstack/handlers';
47
+
48
+ // Server function
49
+ export const getUser = traceServerFn(
50
+ createServerFn({ method: 'GET' }).handler(async ({ data }) => { ... }),
51
+ { name: 'getUser', captureArgs: true },
52
+ );
53
+
54
+ // Route loader
55
+ export const Route = createFileRoute('/users/$userId')({
56
+ loader: traceLoader(async ({ params }) => {
57
+ return db.users.findUnique({ where: { id: params.userId } });
58
+ }),
59
+ });
60
+
61
+ // Request handler
62
+ export default wrapStartHandler({
63
+ service: 'my-app',
64
+ endpoint: process.env.OTEL_EXPORTER_OTLP_ENDPOINT,
65
+ })(createStartHandler(defaultStreamHandler));
66
+ ```
67
+
68
+ ## Configuration Options
69
+
70
+ ```typescript
71
+ tracingMiddleware({
72
+ captureHeaders: ['x-request-id'], // Request headers to capture
73
+ captureArgs: true, // Capture server function arguments
74
+ captureResults: false, // Capture return values
75
+ captureParams: true, // Capture route params
76
+ excludePaths: ['/health', /^\/api\/internal/],
77
+ sampling: 'adaptive', // 'adaptive' | 'always' | 'never'
78
+ customAttributes: (ctx) => ({ 'app.tenant': ctx.tenant }),
79
+ });
80
+ ```
81
+
82
+ ## Entry Points (tree-shaking)
83
+
84
+ | Import | What |
85
+ | ----------------------------------- | ------------------------- |
86
+ | `autotel-tanstack` | Everything |
87
+ | `autotel-tanstack/auto` | Zero-config |
88
+ | `autotel-tanstack/middleware` | Middleware only |
89
+ | `autotel-tanstack/server-functions` | Server function wrappers |
90
+ | `autotel-tanstack/loaders` | Loader wrappers |
91
+ | `autotel-tanstack/handlers` | Handler wrappers |
92
+ | `autotel-tanstack/context` | Trace context propagation |
93
+
94
+ ## Common Mistakes
95
+
96
+ - Do NOT use `tracingMiddleware()` in browser — it no-ops. Server functions run server-side only.
97
+ - Do NOT forget to wrap the start handler — without it, there's no root span for requests.
98
+ - Use `captureArgs: true` carefully — it serializes function arguments into span attributes. Avoid for large payloads.
99
+ - Prefer middleware over explicit wrappers — middleware composes with TanStack's built-in patterns.