reroute-js 0.25.3 → 0.26.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/README.md +153 -53
- package/cli/bin.d.ts +1 -1
- package/cli/bin.js +446 -150
- package/cli/bin.js.map +13 -9
- package/cli/index.d.ts +1 -1
- package/cli/index.js +4 -4
- package/cli/index.js.map +1 -1
- package/cli/src/cli.d.ts +1 -1
- package/cli/src/commands/analyze.d.ts +1 -1
- package/cli/src/commands/build.d.ts +1 -1
- package/cli/src/commands/dev.d.ts +1 -1
- package/cli/src/commands/gen.d.ts +1 -1
- package/cli/src/commands/gen.d.ts.map +1 -1
- package/cli/src/commands/index.d.ts +1 -1
- package/cli/src/commands/init.d.ts +1 -1
- package/cli/src/commands/lib/assets.d.ts +1 -1
- package/cli/src/commands/lib/bundler.d.ts +1 -1
- package/cli/src/commands/lib/command.d.ts +1 -1
- package/cli/src/commands/lib/env.d.ts +1 -1
- package/cli/src/commands/lib/index.d.ts +1 -1
- package/cli/src/commands/lib/log.d.ts +1 -1
- package/cli/src/commands/lib/markdown/availability.d.ts +1 -1
- package/cli/src/commands/lib/markdown/index.d.ts +1 -1
- package/cli/src/commands/lib/markdown/processor.d.ts +1 -1
- package/cli/src/commands/lib/production.d.ts +1 -1
- package/cli/src/commands/lib/server.d.ts +1 -1
- package/cli/src/commands/lib/streaming/analyzer.d.ts +1 -1
- package/cli/src/commands/lib/streaming/suspense.d.ts +1 -1
- package/cli/src/commands/lib/tailwind.d.ts +1 -1
- package/cli/src/commands/lib/terminal-ui.d.ts +1 -1
- package/cli/src/commands/lib/version.d.ts +1 -1
- package/cli/src/commands/og.d.ts +1 -1
- package/cli/src/commands/start.d.ts +1 -1
- package/cli/src/index.d.ts +1 -1
- package/core/index.d.ts +1 -1
- package/core/index.js +912 -589
- package/core/index.js.map +22 -14
- package/core/src/bundler/hash.d.ts +1 -1
- package/core/src/bundler/index.d.ts +1 -1
- package/core/src/config.d.ts +243 -2
- package/core/src/config.d.ts.map +1 -1
- package/core/src/content/discovery.d.ts +1 -1
- package/core/src/content/index.d.ts +1 -1
- package/core/src/content/metadata.d.ts +1 -1
- package/core/src/index.d.ts +1 -1
- package/core/src/llms/extractor.d.ts +1 -1
- package/core/src/llms/formatter.d.ts +1 -1
- package/core/src/llms/full-generator.d.ts +1 -1
- package/core/src/llms/index-generator.d.ts +1 -1
- package/core/src/llms/index.d.ts +1 -1
- package/core/src/og/discovery.d.ts +1 -1
- package/core/src/og/index.d.ts +1 -1
- package/core/src/og/meta.d.ts +1 -1
- package/core/src/og/render.d.ts +1 -1
- package/core/src/og/types.d.ts +1 -1
- package/core/src/robots/discovery.d.ts +1 -1
- package/core/src/robots/generator.d.ts +1 -1
- package/core/src/robots/index.d.ts +1 -1
- package/core/src/robots/policies.d.ts +1 -1
- package/core/src/rss/discovery.d.ts +1 -1
- package/core/src/rss/generator.d.ts +1 -1
- package/core/src/rss/index.d.ts +1 -1
- package/core/src/sitemap/discovery.d.ts +1 -1
- package/core/src/sitemap/generator.d.ts +1 -1
- package/core/src/sitemap/index.d.ts +1 -1
- package/core/src/ssr/index.d.ts +1 -1
- package/core/src/ssr/lib/cache.d.ts +1 -1
- package/core/src/ssr/lib/collections.d.ts +1 -1
- package/core/src/ssr/lib/compression.d.ts +1 -1
- package/core/src/ssr/lib/compute/content.d.ts +1 -1
- package/core/src/ssr/lib/compute/index.d.ts +1 -1
- package/core/src/ssr/lib/compute/layouts.d.ts +1 -1
- package/core/src/ssr/lib/compute/routes.d.ts +1 -1
- package/core/src/ssr/lib/data.d.ts +1 -1
- package/core/src/ssr/lib/html.d.ts +1 -1
- package/core/src/ssr/lib/imports.d.ts +1 -1
- package/core/src/ssr/lib/index.d.ts +1 -1
- package/core/src/ssr/lib/layouts.d.ts +1 -1
- package/core/src/ssr/lib/metadata.d.ts +1 -1
- package/core/src/ssr/lib/mime.d.ts +1 -1
- package/core/src/ssr/lib/modules.d.ts +1 -1
- package/core/src/ssr/lib/path.d.ts +1 -1
- package/core/src/ssr/lib/preload.d.ts +1 -1
- package/core/src/ssr/lib/scripts/collections.d.ts +1 -1
- package/core/src/ssr/lib/scripts/data.d.ts +2 -2
- package/core/src/ssr/lib/scripts/data.d.ts.map +1 -1
- package/core/src/ssr/lib/scripts/escape.d.ts +1 -1
- package/core/src/ssr/lib/scripts/feeds.d.ts +1 -1
- package/core/src/ssr/lib/scripts/index.d.ts +1 -1
- package/core/src/ssr/lib/seed.d.ts +1 -1
- package/core/src/ssr/lib/setup.d.ts +4 -2
- package/core/src/ssr/lib/setup.d.ts.map +1 -1
- package/core/src/ssr/lib/styles.d.ts +1 -1
- package/core/src/ssr/lib/template.d.ts +1 -1
- package/core/src/ssr/lib/types.d.ts +1 -1
- package/core/src/ssr/render.d.ts +4 -2
- package/core/src/ssr/render.d.ts.map +1 -1
- package/core/src/ssr/stream.d.ts +4 -2
- package/core/src/ssr/stream.d.ts.map +1 -1
- package/elysia/index.d.ts +1 -1
- package/elysia/index.js +715 -468
- package/elysia/index.js.map +15 -11
- package/elysia/src/index.d.ts +1 -1
- package/elysia/src/libs/assets.d.ts +1 -1
- package/elysia/src/libs/cache.d.ts +1 -1
- package/elysia/src/libs/caching.d.ts +1 -1
- package/elysia/src/libs/http.d.ts +1 -1
- package/elysia/src/libs/image.d.ts +1 -1
- package/elysia/src/libs/index.d.ts +1 -1
- package/elysia/src/libs/llms.d.ts +1 -1
- package/elysia/src/libs/response.d.ts +1 -1
- package/elysia/src/libs/serving.d.ts +1 -1
- package/elysia/src/plugin.d.ts +1 -1
- package/elysia/src/routes/artifacts.d.ts +1 -1
- package/elysia/src/routes/content.d.ts +1 -1
- package/elysia/src/routes/content.d.ts.map +1 -1
- package/elysia/src/routes/image.d.ts +1 -1
- package/elysia/src/routes/index.d.ts +1 -1
- package/elysia/src/routes/internal.d.ts +1 -1
- package/elysia/src/routes/llms.d.ts +1 -1
- package/elysia/src/routes/og.d.ts +1 -1
- package/elysia/src/routes/redirects.d.ts +1 -1
- package/elysia/src/routes/robots.d.ts +1 -1
- package/elysia/src/routes/rss.d.ts +1 -1
- package/elysia/src/routes/search.d.ts +1 -1
- package/elysia/src/routes/sitemap.d.ts +1 -1
- package/elysia/src/routes/ssr.d.ts +1 -1
- package/elysia/src/routes/ssr.d.ts.map +1 -1
- package/elysia/src/routes/static.d.ts +1 -1
- package/elysia/src/routes/static.d.ts.map +1 -1
- package/elysia/src/types.d.ts +1 -1
- package/package.json +4 -15
- package/react/index.d.ts +1 -1
- package/react/index.js +2 -2
- package/react/index.js.map +1 -1
- package/react/src/components/ClientOnly.d.ts +1 -1
- package/react/src/components/ContentRoute.d.ts +1 -1
- package/react/src/components/Image.d.ts +1 -1
- package/react/src/components/LazyRoute.d.ts +1 -1
- package/react/src/components/Link.d.ts +1 -1
- package/react/src/components/Markdown.d.ts +1 -1
- package/react/src/components/Outlet.d.ts +1 -1
- package/react/src/components/index.d.ts +1 -1
- package/react/src/hooks/index.d.ts +1 -1
- package/react/src/hooks/useContent.d.ts +1 -1
- package/react/src/hooks/useData.d.ts +1 -1
- package/react/src/hooks/useFeed.d.ts +1 -1
- package/react/src/hooks/useLayoutData.d.ts +1 -1
- package/react/src/hooks/useLlms.d.ts +1 -1
- package/react/src/hooks/useNavigate.d.ts +1 -1
- package/react/src/hooks/useParams.d.ts +1 -1
- package/react/src/hooks/useRouter.d.ts +1 -1
- package/react/src/hooks/useSearch.d.ts +1 -1
- package/react/src/hooks/useSearchParams.d.ts +1 -1
- package/react/src/hooks/useToc.d.ts +1 -1
- package/react/src/index.d.ts +1 -1
- package/react/src/lib/collection.d.ts +1 -1
- package/react/src/lib/content.d.ts +1 -1
- package/react/src/lib/head.d.ts +1 -1
- package/react/src/lib/index.d.ts +1 -1
- package/react/src/lib/lazy-route.d.ts +1 -1
- package/react/src/lib/route-loader.d.ts +1 -1
- package/react/src/providers/ContentProvider.d.ts +1 -1
- package/react/src/providers/RerouteProvider.d.ts +1 -1
- package/react/src/providers/RouterProvider.d.ts +1 -1
- package/react/src/providers/index.d.ts +1 -1
- package/react/src/types/any.d.ts +1 -1
- package/react/src/types/index.d.ts +1 -1
- package/react/src/types/router.d.ts +1 -1
- package/telemetry/react.d.ts +2 -2
- package/telemetry/react.d.ts.map +1 -1
- package/telemetry/react.js +164 -183
- package/telemetry/react.js.map +7 -6
- package/telemetry/{index.d.ts → server.d.ts} +2 -2
- package/telemetry/server.d.ts.map +1 -0
- package/telemetry/server.js +1134 -0
- package/telemetry/server.js.map +44 -0
- package/telemetry/src/{browser/react.d.ts → react/api.d.ts} +4 -12
- package/telemetry/src/react/api.d.ts.map +1 -0
- package/telemetry/{browser.d.ts → src/react/index.d.ts} +4 -3
- package/telemetry/src/react/index.d.ts.map +1 -0
- package/telemetry/src/{browser/index.d.ts → react/telemetry.d.ts} +13 -13
- package/telemetry/src/react/telemetry.d.ts.map +1 -0
- package/telemetry/src/server/index.d.ts +3 -101
- package/telemetry/src/server/index.d.ts.map +1 -1
- package/telemetry/src/server/instrumentation.d.ts +62 -0
- package/telemetry/src/server/instrumentation.d.ts.map +1 -0
- package/telemetry/src/server/plugin.d.ts +72 -0
- package/telemetry/src/server/plugin.d.ts.map +1 -0
- package/telemetry/browser.d.ts.map +0 -1
- package/telemetry/browser.js +0 -383
- package/telemetry/browser.js.map +0 -10
- package/telemetry/index.d.ts.map +0 -1
- package/telemetry/index.js +0 -525
- package/telemetry/index.js.map +0 -10
- package/telemetry/src/browser/index.d.ts.map +0 -1
- package/telemetry/src/browser/react.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -48,6 +48,10 @@ Reroute is a dead-simple file-based routing framework for building full-stack Re
|
|
|
48
48
|
- [CLI Preview](#cli-preview)
|
|
49
49
|
- [URLs & Meta Tags](#urls--meta-tags)
|
|
50
50
|
- [Default Template](#default-template)
|
|
51
|
+
- [📊 OpenTelemetry](#-opentelemetry-optional)
|
|
52
|
+
- [Server Telemetry](#server-telemetry)
|
|
53
|
+
- [Custom Instrumentation](#custom-instrumentation)
|
|
54
|
+
- [Reroute SSR Tracing](#reroute-ssr-tracing)
|
|
51
55
|
- [📖 Learn More](#-learn-more)
|
|
52
56
|
- [📝 License](#-license)
|
|
53
57
|
|
|
@@ -185,7 +189,7 @@ Reroute is a dead-simple file-based routing framework for building full-stack Re
|
|
|
185
189
|
- 📚 **Content API Routes** - Dynamic content endpoints
|
|
186
190
|
- 🛠️ **Dev Mode Routes** - Development tooling and live reload
|
|
187
191
|
- 📦 **Artifact Routes** - Serve generated content chunks and registry
|
|
188
|
-
- 📊 **Optional OpenTelemetry** - Built-in tracing for SSR, 404s, cache hits
|
|
192
|
+
- 📊 **Optional OpenTelemetry** - Built-in tracing for SSR, 404s, cache hits
|
|
189
193
|
|
|
190
194
|
### 🎯 Build System
|
|
191
195
|
- 🔧 **Transpilation** - TypeScript/JSX to optimized JavaScript
|
|
@@ -1477,83 +1481,179 @@ If no `[og].tsx` exists for a route, uses built-in template with:
|
|
|
1477
1481
|
- Avatar and siteName from config
|
|
1478
1482
|
- Clean black card design
|
|
1479
1483
|
|
|
1480
|
-
## 📊 OpenTelemetry
|
|
1484
|
+
## 📊 OpenTelemetry
|
|
1481
1485
|
|
|
1482
|
-
|
|
1486
|
+
### Server Telemetry
|
|
1483
1487
|
|
|
1484
|
-
|
|
1488
|
+
Track HTTP requests, errors, and system metrics.
|
|
1489
|
+
|
|
1490
|
+
**Installation:**
|
|
1485
1491
|
|
|
1486
1492
|
```bash
|
|
1487
|
-
|
|
1493
|
+
# Server telemetry packages
|
|
1494
|
+
bun add @opentelemetry/api \
|
|
1495
|
+
@opentelemetry/api-logs \
|
|
1496
|
+
@opentelemetry/exporter-logs-otlp-proto \
|
|
1497
|
+
@opentelemetry/exporter-metrics-otlp-proto \
|
|
1498
|
+
@opentelemetry/exporter-trace-otlp-proto \
|
|
1499
|
+
@opentelemetry/resources \
|
|
1500
|
+
@opentelemetry/sdk-logs \
|
|
1501
|
+
@opentelemetry/sdk-metrics \
|
|
1502
|
+
@opentelemetry/sdk-trace-node \
|
|
1503
|
+
@opentelemetry/semantic-conventions
|
|
1488
1504
|
```
|
|
1489
1505
|
|
|
1490
|
-
|
|
1506
|
+
**Configuration** in `reroute.config.ts`:
|
|
1491
1507
|
|
|
1492
|
-
|
|
1508
|
+
```typescript
|
|
1509
|
+
export default defineConfig({
|
|
1510
|
+
telemetry: {
|
|
1511
|
+
// Server telemetry
|
|
1512
|
+
enabled: true,
|
|
1513
|
+
environment: process.env.NODE_ENV || 'development',
|
|
1514
|
+
ignoreRoutes: [
|
|
1515
|
+
'/health',
|
|
1516
|
+
(pathname) => pathname.startsWith('/assets/'),
|
|
1517
|
+
/\.(js|css|png|jpg|svg|ico)$/,
|
|
1518
|
+
],
|
|
1519
|
+
sampleRate: 1.0,
|
|
1520
|
+
captureHeaders: ['user-agent'],
|
|
1521
|
+
|
|
1522
|
+
// Browser telemetry proxy (avoids CORS and ad blockers)
|
|
1523
|
+
proxy: {
|
|
1524
|
+
enabled: true, // Default when proxy is an object
|
|
1525
|
+
pathname: '/api/telemetry', // Default
|
|
1526
|
+
verbose: false, // Log proxy requests
|
|
1527
|
+
},
|
|
1528
|
+
|
|
1529
|
+
// Browser telemetry
|
|
1530
|
+
browser: {
|
|
1531
|
+
enabled: true,
|
|
1532
|
+
serviceName: 'my-app-browser',
|
|
1533
|
+
environment: process.env.NODE_ENV || 'development',
|
|
1534
|
+
otlpEndpoint: '/api/telemetry', // Must match proxy.pathname
|
|
1535
|
+
enableConsoleCapture: true,
|
|
1536
|
+
},
|
|
1537
|
+
},
|
|
1538
|
+
});
|
|
1539
|
+
```
|
|
1493
1540
|
|
|
1494
|
-
|
|
1541
|
+
**Usage** - Config loaded automatically:
|
|
1495
1542
|
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
- `reroute.pathname`: `/blog/my-post`
|
|
1499
|
-
- `reroute.collection`: `blog`
|
|
1500
|
-
- `reroute.cache.hit`: `true`/`false`
|
|
1543
|
+
```typescript
|
|
1544
|
+
import { telemetry } from 'reroute-js/telemetry/server';
|
|
1501
1545
|
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1546
|
+
new Elysia()
|
|
1547
|
+
.use(telemetry())
|
|
1548
|
+
.use(reroute({ app: createElement(App) }))
|
|
1549
|
+
.listen(3000);
|
|
1550
|
+
```
|
|
1506
1551
|
|
|
1507
|
-
|
|
1508
|
-
- `reroute.data.path`: `/products/123`
|
|
1509
|
-
- `reroute.data.cache_hit`: `true`/`false`
|
|
1552
|
+
**Browser telemetry** - Track client-side events and errors.
|
|
1510
1553
|
|
|
1511
|
-
|
|
1512
|
-
- `reroute.error`: `true`
|
|
1513
|
-
- `reroute.error.type`: `SSRRenderError`, `SSRDataError`, etc.
|
|
1514
|
-
- `reroute.error.collection`: `blog`
|
|
1554
|
+
**Installation:**
|
|
1515
1555
|
|
|
1516
|
-
|
|
1556
|
+
```bash
|
|
1557
|
+
# Browser telemetry packages
|
|
1558
|
+
bun add @opentelemetry/api \
|
|
1559
|
+
@opentelemetry/auto-instrumentations-web \
|
|
1560
|
+
@opentelemetry/context-zone \
|
|
1561
|
+
@opentelemetry/exporter-trace-otlp-http \
|
|
1562
|
+
@opentelemetry/instrumentation \
|
|
1563
|
+
@opentelemetry/resources \
|
|
1564
|
+
@opentelemetry/sdk-trace-base \
|
|
1565
|
+
@opentelemetry/sdk-trace-web \
|
|
1566
|
+
@opentelemetry/semantic-conventions
|
|
1567
|
+
```
|
|
1517
1568
|
|
|
1518
|
-
|
|
1519
|
-
import { Elysia } from 'elysia';
|
|
1520
|
-
import { reroute } from 'reroute-js/elysia';
|
|
1521
|
-
import { opentelemetry } from '@elysiajs/opentelemetry';
|
|
1522
|
-
import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-node';
|
|
1523
|
-
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto';
|
|
1569
|
+
**Usage:**
|
|
1524
1570
|
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
}
|
|
1536
|
-
|
|
1537
|
-
.listen(3000);
|
|
1571
|
+
```tsx
|
|
1572
|
+
import { TelemetryProvider } from 'reroute-js/telemetry/react/react';
|
|
1573
|
+
|
|
1574
|
+
// Auto-loads from telemetry.browser config
|
|
1575
|
+
<TelemetryProvider>
|
|
1576
|
+
<RerouteProvider {...bundle} />
|
|
1577
|
+
</TelemetryProvider>
|
|
1578
|
+
|
|
1579
|
+
// Or override config values
|
|
1580
|
+
<TelemetryProvider enabled={true} serviceName="custom-name">
|
|
1581
|
+
<RerouteProvider {...bundle} />
|
|
1582
|
+
</TelemetryProvider>
|
|
1538
1583
|
```
|
|
1539
1584
|
|
|
1540
|
-
|
|
1585
|
+
### Custom Instrumentation
|
|
1541
1586
|
|
|
1542
|
-
|
|
1587
|
+
Create custom spans for API calls, database queries, or any operation:
|
|
1543
1588
|
|
|
1544
1589
|
```typescript
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1590
|
+
import { withSpan } from 'reroute-js/telemetry/server';
|
|
1591
|
+
|
|
1592
|
+
// Instrument API endpoints
|
|
1593
|
+
app.get('/api/products', async () => {
|
|
1594
|
+
return withSpan('api.get_products', async (span) => {
|
|
1595
|
+
span.setAttribute('api.operation', 'list_products');
|
|
1596
|
+
|
|
1597
|
+
const products = await fetchProducts();
|
|
1598
|
+
span.setAttribute('api.result_count', products.length);
|
|
1599
|
+
|
|
1600
|
+
return products;
|
|
1601
|
+
});
|
|
1602
|
+
});
|
|
1603
|
+
|
|
1604
|
+
// Nested spans automatically create parent-child relationships
|
|
1605
|
+
app.get('/api/orders', async () => {
|
|
1606
|
+
return withSpan('api.get_orders', async (span) => {
|
|
1607
|
+
span.setAttribute('api.operation', 'list_orders');
|
|
1608
|
+
|
|
1609
|
+
// Child span
|
|
1610
|
+
const user = await withSpan('api.fetch_user', async (childSpan) => {
|
|
1611
|
+
childSpan.setAttribute('user.id', userId);
|
|
1612
|
+
return await getUser(userId);
|
|
1613
|
+
});
|
|
1614
|
+
|
|
1615
|
+
return { user, orders: await getOrders(user.id) };
|
|
1616
|
+
});
|
|
1548
1617
|
});
|
|
1618
|
+
```
|
|
1619
|
+
|
|
1620
|
+
**Error Handling:**
|
|
1549
1621
|
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1622
|
+
Errors are automatically tracked and the span is properly closed:
|
|
1623
|
+
|
|
1624
|
+
```typescript
|
|
1625
|
+
app.get('/api/user/:id', async ({ params }) => {
|
|
1626
|
+
return withSpan('api.get_user', async (span) => {
|
|
1627
|
+
span.setAttribute('user.id', params.id);
|
|
1628
|
+
|
|
1629
|
+
const user = await getUser(params.id);
|
|
1630
|
+
|
|
1631
|
+
if (!user) {
|
|
1632
|
+
// Error is automatically captured in the span
|
|
1633
|
+
throw new Error('User not found');
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1636
|
+
return user;
|
|
1637
|
+
});
|
|
1553
1638
|
});
|
|
1554
1639
|
```
|
|
1555
1640
|
|
|
1556
|
-
|
|
1641
|
+
When an error occurs inside a span:
|
|
1642
|
+
1. **Error is recorded** - `span.recordException()` captures the full error details
|
|
1643
|
+
2. **Status is set** - Span status automatically set to `ERROR` with error message
|
|
1644
|
+
3. **Span is closed** - Span properly ended even when errors occur
|
|
1645
|
+
4. **Error is re-thrown** - Error propagates normally (not swallowed)
|
|
1646
|
+
|
|
1647
|
+
This means errors appear in your traces with full context while maintaining normal error handling behavior.
|
|
1648
|
+
|
|
1649
|
+
**Key Features:**
|
|
1650
|
+
- **Automatic error tracking** - Errors are captured and recorded in spans
|
|
1651
|
+
- **Nested spans** - Child spans automatically linked to parent context
|
|
1652
|
+
- **Zero overhead when disabled** - No-op implementation when OpenTelemetry not installed
|
|
1653
|
+
|
|
1654
|
+
### Reroute SSR Tracing
|
|
1655
|
+
|
|
1656
|
+
Built-in tracing for debugging SSR, 404s, and cache behavior. Automatically traces SSR rendering, 404s, data loading, and errors. Filter by `reroute.*` attributes in SigNoz/Jaeger.
|
|
1557
1657
|
|
|
1558
1658
|
## 📖 Learn More
|
|
1559
1659
|
|
package/cli/bin.d.ts
CHANGED