opencons 0.1.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/LICENSE +21 -0
- package/README.md +382 -0
- package/opencons.d.ts +55 -0
- package/package.json +73 -0
- package/scripts/vendor-d3.js +22 -0
- package/src/core/context.js +44 -0
- package/src/core/index.js +198 -0
- package/src/core/tracer.js +252 -0
- package/src/drivers/db-language.js +207 -0
- package/src/drivers/detect.js +62 -0
- package/src/drivers/drizzle.js +87 -0
- package/src/drivers/index.js +43 -0
- package/src/drivers/mongoose.js +89 -0
- package/src/drivers/mysql2.js +116 -0
- package/src/drivers/pg.js +130 -0
- package/src/drivers/prisma.js +109 -0
- package/src/drivers/record.js +158 -0
- package/src/index.js +28 -0
- package/src/integrations/nest-lifecycle.js +357 -0
- package/src/integrations/nest.js +89 -0
- package/src/interceptors/express.js +270 -0
- package/src/interceptors/require-hook.js +109 -0
- package/src/lib/config.js +139 -0
- package/src/lib/errors.js +54 -0
- package/src/lib/http-response.js +37 -0
- package/src/lib/logger.js +69 -0
- package/src/lib/serialize.js +22 -0
- package/src/server/static.js +165 -0
- package/src/server/ws.js +62 -0
- package/src/store/source-cache.js +120 -0
- package/src/store/trace-store.js +117 -0
- package/src/transform/ast.js +255 -0
- package/src/transform/natural-language.js +146 -0
- package/src/transform/probe.js +161 -0
- package/src/transform/register.js +44 -0
- package/src/utils/label.js +26 -0
- package/src/utils/observable.js +103 -0
- package/widget/app.js +356 -0
- package/widget/db-language.js +90 -0
- package/widget/graph.js +1167 -0
- package/widget/index.html +132 -0
- package/widget/styles.css +773 -0
- package/widget/timeline.js +57 -0
- package/widget/vendor/d3.min.js +2 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>Opencons</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
9
|
+
<link
|
|
10
|
+
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"
|
|
11
|
+
rel="stylesheet"
|
|
12
|
+
/>
|
|
13
|
+
<link rel="stylesheet" href="/styles.css" />
|
|
14
|
+
<script src="/vendor/d3.min.js"></script>
|
|
15
|
+
<script>
|
|
16
|
+
if (typeof d3 === 'undefined') {
|
|
17
|
+
document.write(
|
|
18
|
+
'<script src="https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js"><\/script>'
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
</script>
|
|
22
|
+
</head>
|
|
23
|
+
<body>
|
|
24
|
+
<div class="app-shell">
|
|
25
|
+
<aside class="sidebar">
|
|
26
|
+
<div class="sidebar-top">
|
|
27
|
+
<div class="workspace-brand">
|
|
28
|
+
<span class="brand-mark">O</span>
|
|
29
|
+
<div class="brand-text">
|
|
30
|
+
<span class="workspace-name">Opencons</span>
|
|
31
|
+
<span class="workspace-sub">Runtime tracer</span>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
<nav class="sidebar-nav">
|
|
37
|
+
<button type="button" class="nav-item active" aria-current="page">
|
|
38
|
+
<svg class="nav-icon" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
|
39
|
+
<path
|
|
40
|
+
d="M3 4a1 1 0 011-1h12a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1V4zM3 10a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H4a1 1 0 01-1-1v-6zM14 9a1 1 0 00-1 1v6a1 1 0 001 1h2a1 1 0 001-1v-6a1 1 0 00-1-1h-2z"
|
|
41
|
+
/>
|
|
42
|
+
</svg>
|
|
43
|
+
<span>Requests</span>
|
|
44
|
+
<span class="nav-badge" id="request-count">0</span>
|
|
45
|
+
</button>
|
|
46
|
+
<button type="button" class="nav-item" disabled title="Coming soon">
|
|
47
|
+
<svg class="nav-icon" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
|
48
|
+
<path
|
|
49
|
+
fill-rule="evenodd"
|
|
50
|
+
d="M3 3a1 1 0 000 2v8a2 2 0 002 2h2.586l-1.293 1.293a1 1 0 101.414 1.414L10 15.414l2.293 2.293a1 1 0 001.414-1.414L12.414 15H15a2 2 0 002-2V5a1 1 0 100-2H3zm11.707 4.707a1 1 0 00-1.414-1.414L10 9.586 8.707 8.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z"
|
|
51
|
+
clip-rule="evenodd"
|
|
52
|
+
/>
|
|
53
|
+
</svg>
|
|
54
|
+
<span>Insights</span>
|
|
55
|
+
</button>
|
|
56
|
+
</nav>
|
|
57
|
+
|
|
58
|
+
<div class="sidebar-section">
|
|
59
|
+
<p class="section-label">Live requests</p>
|
|
60
|
+
<ul id="request-items" class="request-list"></ul>
|
|
61
|
+
<p class="empty-state" id="empty-state">Listening for requests…</p>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<div class="sidebar-footer">
|
|
65
|
+
<div class="status" id="connection-status">
|
|
66
|
+
<span class="status-dot disconnected"></span>
|
|
67
|
+
<span class="status-text">Disconnected</span>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</aside>
|
|
71
|
+
|
|
72
|
+
<main class="main-content">
|
|
73
|
+
<header class="main-header">
|
|
74
|
+
<div class="main-header-copy">
|
|
75
|
+
<p class="eyebrow">Execution trace</p>
|
|
76
|
+
<h1 id="trace-title">Select a request</h1>
|
|
77
|
+
</div>
|
|
78
|
+
<div class="view-tabs" role="tablist" aria-label="Trace views">
|
|
79
|
+
<button class="tab active" data-view="graph" role="tab" aria-selected="true">
|
|
80
|
+
Graph
|
|
81
|
+
</button>
|
|
82
|
+
<button class="tab" data-view="timeline" role="tab" aria-selected="false">
|
|
83
|
+
Timeline
|
|
84
|
+
</button>
|
|
85
|
+
</div>
|
|
86
|
+
</header>
|
|
87
|
+
|
|
88
|
+
<div class="main-body">
|
|
89
|
+
<div class="trace-views">
|
|
90
|
+
<div id="graph-view" class="view active">
|
|
91
|
+
<div class="view-card">
|
|
92
|
+
<svg id="graph-svg"></svg>
|
|
93
|
+
<div class="graph-controls">
|
|
94
|
+
<span class="graph-hint"
|
|
95
|
+
>Drag to pan · move nodes · scroll to zoom</span
|
|
96
|
+
>
|
|
97
|
+
<button type="button" id="graph-zoom-out" title="Zoom out">−</button>
|
|
98
|
+
<button type="button" id="graph-zoom-reset" title="Fit to view">Fit</button>
|
|
99
|
+
<button type="button" id="graph-zoom-in" title="Zoom in">+</button>
|
|
100
|
+
</div>
|
|
101
|
+
<div id="node-tooltip" class="tooltip hidden"></div>
|
|
102
|
+
</div>
|
|
103
|
+
</div>
|
|
104
|
+
<div id="timeline-view" class="view">
|
|
105
|
+
<div class="view-card timeline-card"></div>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
|
|
109
|
+
<div class="detail-panels">
|
|
110
|
+
<div id="node-detail" class="detail-card hidden">
|
|
111
|
+
<h3 class="card-title">Node details</h3>
|
|
112
|
+
<dl id="node-detail-content" class="detail-grid"></dl>
|
|
113
|
+
</div>
|
|
114
|
+
|
|
115
|
+
<div id="source-peek" class="detail-card hidden">
|
|
116
|
+
<div class="source-peek-header">
|
|
117
|
+
<h3 class="card-title">Source</h3>
|
|
118
|
+
<span id="source-peek-path" class="source-peek-path"></span>
|
|
119
|
+
</div>
|
|
120
|
+
<pre id="source-peek-content" class="source-peek-content"></pre>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
</main>
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
<script src="/app.js"></script>
|
|
128
|
+
<script src="/db-language.js"></script>
|
|
129
|
+
<script src="/graph.js"></script>
|
|
130
|
+
<script src="/timeline.js"></script>
|
|
131
|
+
</body>
|
|
132
|
+
</html>
|