autotel-tanstack 1.8.0 → 1.8.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/dist/auto.d.ts CHANGED
@@ -15,6 +15,7 @@ import '@tanstack/react-router';
15
15
  * - OTEL_SERVICE_NAME: Service name (default: 'tanstack-start')
16
16
  * - OTEL_EXPORTER_OTLP_ENDPOINT: OTLP collector URL
17
17
  * - OTEL_EXPORTER_OTLP_HEADERS: Authentication headers (key=value,key=value)
18
+ * - AUTOTEL_DEBUG: Set to 'true' or 'pretty' to log spans to the server console
18
19
  *
19
20
  * @example
20
21
  * ```typescript
package/dist/auto.js CHANGED
@@ -20,10 +20,19 @@ if (process.env.OTEL_EXPORTER_OTLP_HEADERS) {
20
20
  }
21
21
  }
22
22
  }
23
+ function resolveDebug() {
24
+ const env = process.env.AUTOTEL_DEBUG;
25
+ if (env === "pretty") return "pretty";
26
+ if (env === "true" || env === "1") return true;
27
+ if (env === "false" || env === "0") return false;
28
+ if (!endpoint && process.env.NODE_ENV === "development") return "pretty";
29
+ return false;
30
+ }
23
31
  init({
24
32
  service,
25
33
  endpoint,
26
- headers
34
+ headers,
35
+ debug: resolveDebug()
27
36
  });
28
37
  if (process.env.NODE_ENV === "development" || process.env.AUTOTEL_DEBUG) {
29
38
  console.log("[autotel-tanstack] Auto-initialized with:", {
package/dist/auto.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/auto.ts"],"names":[],"mappings":";;;;;;;;;AA2BA,IAAM,OAAA,GAAU,OAAA,CAAQ,GAAA,CAAI,iBAAA,IAAqB,gBAAA;AAGjD,IAAM,QAAA,GAAW,QAAQ,GAAA,CAAI,2BAAA;AAG7B,IAAI,OAAA;AACJ,IAAI,OAAA,CAAQ,IAAI,0BAAA,EAA4B;AAC1C,EAAA,OAAA,GAAU,EAAC;AACX,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,GAAA,CAAI,0BAAA,CAA2B,MAAM,GAAG,CAAA;AAC9D,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,MAAM,CAAC,GAAA,EAAK,KAAK,CAAA,GAAI,IAAA,CAAK,MAAM,GAAG,CAAA;AACnC,IAAA,IAAI,OAAO,KAAA,EAAO;AAChB,MAAA,OAAA,CAAQ,GAAA,CAAI,IAAA,EAAM,CAAA,GAAI,MAAM,IAAA,EAAK;AAAA,IACnC;AAAA,EACF;AACF;AAGA,IAAA,CAAK;AAAA,EACH,OAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAC,CAAA;AAGD,IAAI,QAAQ,GAAA,CAAI,QAAA,KAAa,aAAA,IAAiB,OAAA,CAAQ,IAAI,aAAA,EAAe;AACvE,EAAA,OAAA,CAAQ,IAAI,2CAAA,EAA6C;AAAA,IACvD,OAAA;AAAA,IACA,UAAU,QAAA,IAAY,kBAAA;AAAA,IACtB,UAAA,EAAY,CAAC,CAAC;AAAA,GACf,CAAA;AACH;AAUO,SAAS,2BAAA,GAAuC;AACrD,EAAA,OAAO,IAAA;AACT;AAKO,SAAS,cAAA,GAAyB;AACvC,EAAA,OAAO,OAAA;AACT;AAKO,SAAS,WAAA,GAAkC;AAChD,EAAA,OAAO,QAAA;AACT","file":"auto.js","sourcesContent":["/**\n * Zero-config auto-instrumentation for TanStack Start\n *\n * Import this module to automatically instrument TanStack Start applications\n * with OpenTelemetry tracing. Configuration is read from environment variables.\n *\n * Environment Variables:\n * - OTEL_SERVICE_NAME: Service name (default: 'tanstack-start')\n * - OTEL_EXPORTER_OTLP_ENDPOINT: OTLP collector URL\n * - OTEL_EXPORTER_OTLP_HEADERS: Authentication headers (key=value,key=value)\n *\n * @example\n * ```typescript\n * // app/start.ts\n * import 'autotel-tanstack/auto';\n * import { createStart } from '@tanstack/react-start';\n *\n * // Tracing is automatically configured!\n * export const startInstance = createStart(() => ({}));\n * ```\n *\n * @module\n */\n\nimport { init } from 'autotel';\n\n// Parse service name\nconst service = process.env.OTEL_SERVICE_NAME || 'tanstack-start';\n\n// Parse endpoint\nconst endpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT;\n\n// Parse headers\nlet headers: Record<string, string> | undefined;\nif (process.env.OTEL_EXPORTER_OTLP_HEADERS) {\n headers = {};\n const pairs = process.env.OTEL_EXPORTER_OTLP_HEADERS.split(',');\n for (const pair of pairs) {\n const [key, value] = pair.split('=');\n if (key && value) {\n headers[key.trim()] = value.trim();\n }\n }\n}\n\n// Initialize autotel\ninit({\n service,\n endpoint,\n headers,\n});\n\n// Log initialization (only in development)\nif (process.env.NODE_ENV === 'development' || process.env.AUTOTEL_DEBUG) {\n console.log('[autotel-tanstack] Auto-initialized with:', {\n service,\n endpoint: endpoint || '(not configured)',\n hasHeaders: !!headers,\n });\n}\n\n// Re-export middleware for convenience\nexport { tracingMiddleware, functionTracingMiddleware } from './middleware';\nexport { traceServerFn } from './server-functions';\nexport { traceLoader, traceBeforeLoad } from './loaders';\n\n/**\n * Check if auto-instrumentation is active\n */\nexport function isAutoInstrumentationActive(): boolean {\n return true;\n}\n\n/**\n * Get the configured service name\n */\nexport function getServiceName(): string {\n return service;\n}\n\n/**\n * Get the configured endpoint\n */\nexport function getEndpoint(): string | undefined {\n return endpoint;\n}\n"]}
1
+ {"version":3,"sources":["../src/auto.ts"],"names":[],"mappings":";;;;;;;;;AA4BA,IAAM,OAAA,GAAU,OAAA,CAAQ,GAAA,CAAI,iBAAA,IAAqB,gBAAA;AAGjD,IAAM,QAAA,GAAW,QAAQ,GAAA,CAAI,2BAAA;AAG7B,IAAI,OAAA;AACJ,IAAI,OAAA,CAAQ,IAAI,0BAAA,EAA4B;AAC1C,EAAA,OAAA,GAAU,EAAC;AACX,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,GAAA,CAAI,0BAAA,CAA2B,MAAM,GAAG,CAAA;AAC9D,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,MAAM,CAAC,GAAA,EAAK,KAAK,CAAA,GAAI,IAAA,CAAK,MAAM,GAAG,CAAA;AACnC,IAAA,IAAI,OAAO,KAAA,EAAO;AAChB,MAAA,OAAA,CAAQ,GAAA,CAAI,IAAA,EAAM,CAAA,GAAI,MAAM,IAAA,EAAK;AAAA,IACnC;AAAA,EACF;AACF;AAIA,SAAS,YAAA,GAAmC;AAC1C,EAAA,MAAM,GAAA,GAAM,QAAQ,GAAA,CAAI,aAAA;AACxB,EAAA,IAAI,GAAA,KAAQ,UAAU,OAAO,QAAA;AAC7B,EAAA,IAAI,GAAA,KAAQ,MAAA,IAAU,GAAA,KAAQ,GAAA,EAAK,OAAO,IAAA;AAC1C,EAAA,IAAI,GAAA,KAAQ,OAAA,IAAW,GAAA,KAAQ,GAAA,EAAK,OAAO,KAAA;AAC3C,EAAA,IAAI,CAAC,QAAA,IAAY,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,eAAe,OAAO,QAAA;AAChE,EAAA,OAAO,KAAA;AACT;AAGA,IAAA,CAAK;AAAA,EACH,OAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAO,YAAA;AACT,CAAC,CAAA;AAGD,IAAI,QAAQ,GAAA,CAAI,QAAA,KAAa,aAAA,IAAiB,OAAA,CAAQ,IAAI,aAAA,EAAe;AACvE,EAAA,OAAA,CAAQ,IAAI,2CAAA,EAA6C;AAAA,IACvD,OAAA;AAAA,IACA,UAAU,QAAA,IAAY,kBAAA;AAAA,IACtB,UAAA,EAAY,CAAC,CAAC;AAAA,GACf,CAAA;AACH;AAUO,SAAS,2BAAA,GAAuC;AACrD,EAAA,OAAO,IAAA;AACT;AAKO,SAAS,cAAA,GAAyB;AACvC,EAAA,OAAO,OAAA;AACT;AAKO,SAAS,WAAA,GAAkC;AAChD,EAAA,OAAO,QAAA;AACT","file":"auto.js","sourcesContent":["/**\n * Zero-config auto-instrumentation for TanStack Start\n *\n * Import this module to automatically instrument TanStack Start applications\n * with OpenTelemetry tracing. Configuration is read from environment variables.\n *\n * Environment Variables:\n * - OTEL_SERVICE_NAME: Service name (default: 'tanstack-start')\n * - OTEL_EXPORTER_OTLP_ENDPOINT: OTLP collector URL\n * - OTEL_EXPORTER_OTLP_HEADERS: Authentication headers (key=value,key=value)\n * - AUTOTEL_DEBUG: Set to 'true' or 'pretty' to log spans to the server console\n *\n * @example\n * ```typescript\n * // app/start.ts\n * import 'autotel-tanstack/auto';\n * import { createStart } from '@tanstack/react-start';\n *\n * // Tracing is automatically configured!\n * export const startInstance = createStart(() => ({}));\n * ```\n *\n * @module\n */\n\nimport { init } from 'autotel';\n\n// Parse service name\nconst service = process.env.OTEL_SERVICE_NAME || 'tanstack-start';\n\n// Parse endpoint\nconst endpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT;\n\n// Parse headers\nlet headers: Record<string, string> | undefined;\nif (process.env.OTEL_EXPORTER_OTLP_HEADERS) {\n headers = {};\n const pairs = process.env.OTEL_EXPORTER_OTLP_HEADERS.split(',');\n for (const pair of pairs) {\n const [key, value] = pair.split('=');\n if (key && value) {\n headers[key.trim()] = value.trim();\n }\n }\n}\n\n// Debug: span output to server console. AUTOTEL_DEBUG=pretty | true, or default\n// to pretty in dev when no OTLP endpoint is set so you see spans immediately.\nfunction resolveDebug(): boolean | 'pretty' {\n const env = process.env.AUTOTEL_DEBUG;\n if (env === 'pretty') return 'pretty';\n if (env === 'true' || env === '1') return true;\n if (env === 'false' || env === '0') return false;\n if (!endpoint && process.env.NODE_ENV === 'development') return 'pretty';\n return false;\n}\n\n// Initialize autotel\ninit({\n service,\n endpoint,\n headers,\n debug: resolveDebug(),\n});\n\n// Log initialization (only in development)\nif (process.env.NODE_ENV === 'development' || process.env.AUTOTEL_DEBUG) {\n console.log('[autotel-tanstack] Auto-initialized with:', {\n service,\n endpoint: endpoint || '(not configured)',\n hasHeaders: !!headers,\n });\n}\n\n// Re-export middleware for convenience\nexport { tracingMiddleware, functionTracingMiddleware } from './middleware';\nexport { traceServerFn } from './server-functions';\nexport { traceLoader, traceBeforeLoad } from './loaders';\n\n/**\n * Check if auto-instrumentation is active\n */\nexport function isAutoInstrumentationActive(): boolean {\n return true;\n}\n\n/**\n * Get the configured service name\n */\nexport function getServiceName(): string {\n return service;\n}\n\n/**\n * Get the configured endpoint\n */\nexport function getEndpoint(): string | undefined {\n return endpoint;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autotel-tanstack",
3
- "version": "1.8.0",
3
+ "version": "1.8.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",
@@ -117,11 +117,11 @@
117
117
  "license": "MIT",
118
118
  "dependencies": {
119
119
  "@opentelemetry/api": "^1.9.0",
120
- "autotel": "2.15.0"
120
+ "autotel": "2.16.0"
121
121
  },
122
122
  "peerDependencies": {
123
- "@tanstack/react-start": "^1.157.17",
124
- "@tanstack/solid-start": "^1.157.17"
123
+ "@tanstack/react-start": "^1.157.18",
124
+ "@tanstack/solid-start": "^1.157.18"
125
125
  },
126
126
  "peerDependenciesMeta": {
127
127
  "@tanstack/react-start": {
@@ -133,7 +133,7 @@
133
133
  },
134
134
  "devDependencies": {
135
135
  "@opentelemetry/sdk-trace-base": "^2.5.0",
136
- "@tanstack/react-router": "^1.157.17",
136
+ "@tanstack/react-router": "^1.157.18",
137
137
  "@types/node": "^25.1.0",
138
138
  "rimraf": "^6.1.2",
139
139
  "tsup": "^8.5.1",
package/src/auto.ts CHANGED
@@ -8,6 +8,7 @@
8
8
  * - OTEL_SERVICE_NAME: Service name (default: 'tanstack-start')
9
9
  * - OTEL_EXPORTER_OTLP_ENDPOINT: OTLP collector URL
10
10
  * - OTEL_EXPORTER_OTLP_HEADERS: Authentication headers (key=value,key=value)
11
+ * - AUTOTEL_DEBUG: Set to 'true' or 'pretty' to log spans to the server console
11
12
  *
12
13
  * @example
13
14
  * ```typescript
@@ -43,11 +44,23 @@ if (process.env.OTEL_EXPORTER_OTLP_HEADERS) {
43
44
  }
44
45
  }
45
46
 
47
+ // Debug: span output to server console. AUTOTEL_DEBUG=pretty | true, or default
48
+ // to pretty in dev when no OTLP endpoint is set so you see spans immediately.
49
+ function resolveDebug(): boolean | 'pretty' {
50
+ const env = process.env.AUTOTEL_DEBUG;
51
+ if (env === 'pretty') return 'pretty';
52
+ if (env === 'true' || env === '1') return true;
53
+ if (env === 'false' || env === '0') return false;
54
+ if (!endpoint && process.env.NODE_ENV === 'development') return 'pretty';
55
+ return false;
56
+ }
57
+
46
58
  // Initialize autotel
47
59
  init({
48
60
  service,
49
61
  endpoint,
50
62
  headers,
63
+ debug: resolveDebug(),
51
64
  });
52
65
 
53
66
  // Log initialization (only in development)