shokupan 0.9.0 → 0.10.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.
Files changed (49) hide show
  1. package/dist/analyzer-BqIe1p0R.js +35 -0
  2. package/dist/analyzer-BqIe1p0R.js.map +1 -0
  3. package/dist/analyzer-CKLGLFtx.cjs +35 -0
  4. package/dist/analyzer-CKLGLFtx.cjs.map +1 -0
  5. package/dist/{analyzer-Ce_7JxZh.js → analyzer.impl-CV6W1Eq7.js} +238 -21
  6. package/dist/analyzer.impl-CV6W1Eq7.js.map +1 -0
  7. package/dist/{analyzer-Bei1sVWp.cjs → analyzer.impl-D9Yi1Hax.cjs} +237 -20
  8. package/dist/analyzer.impl-D9Yi1Hax.cjs.map +1 -0
  9. package/dist/cli.cjs +1 -1
  10. package/dist/cli.js +1 -1
  11. package/dist/context.d.ts +19 -7
  12. package/dist/http-server-BEMPIs33.cjs.map +1 -1
  13. package/dist/http-server-CCeagTyU.js.map +1 -1
  14. package/dist/index.cjs +1500 -275
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.ts +3 -0
  17. package/dist/index.js +1482 -256
  18. package/dist/index.js.map +1 -1
  19. package/dist/plugins/application/api-explorer/plugin.d.ts +9 -0
  20. package/dist/plugins/application/api-explorer/static/explorer-client.mjs +880 -0
  21. package/dist/plugins/application/api-explorer/static/style.css +767 -0
  22. package/dist/plugins/application/api-explorer/static/theme.css +128 -0
  23. package/dist/plugins/application/asyncapi/generator.d.ts +3 -0
  24. package/dist/plugins/application/asyncapi/plugin.d.ts +15 -0
  25. package/dist/plugins/application/asyncapi/static/asyncapi-client.mjs +748 -0
  26. package/dist/plugins/application/asyncapi/static/style.css +565 -0
  27. package/dist/plugins/application/asyncapi/static/theme.css +128 -0
  28. package/dist/plugins/application/auth.d.ts +3 -1
  29. package/dist/plugins/application/dashboard/metrics-collector.d.ts +3 -1
  30. package/dist/plugins/application/dashboard/plugin.d.ts +13 -3
  31. package/dist/plugins/application/dashboard/static/registry.css +0 -53
  32. package/dist/plugins/application/dashboard/static/styles.css +29 -20
  33. package/dist/plugins/application/dashboard/static/tabulator.css +83 -31
  34. package/dist/plugins/application/dashboard/static/theme.css +128 -0
  35. package/dist/plugins/application/graphql-apollo.d.ts +33 -0
  36. package/dist/plugins/application/graphql-yoga.d.ts +25 -0
  37. package/dist/plugins/application/openapi/analyzer.d.ts +12 -119
  38. package/dist/plugins/application/openapi/analyzer.impl.d.ts +167 -0
  39. package/dist/plugins/application/scalar.d.ts +9 -2
  40. package/dist/router.d.ts +80 -51
  41. package/dist/shokupan.d.ts +14 -8
  42. package/dist/util/datastore.d.ts +71 -7
  43. package/dist/util/decorators.d.ts +2 -2
  44. package/dist/util/types.d.ts +96 -3
  45. package/package.json +32 -12
  46. package/dist/analyzer-Bei1sVWp.cjs.map +0 -1
  47. package/dist/analyzer-Ce_7JxZh.js.map +0 -1
  48. package/dist/plugins/application/dashboard/static/scrollbar.css +0 -24
  49. package/dist/plugins/application/dashboard/template.eta +0 -246
@@ -1,246 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
-
4
- <head>
5
- <meta charset="UTF-8">
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <title>Shokupan Debug Dashboard</title>
8
- <link href="https://unpkg.com/tabulator-tables@5.5.0/dist/css/tabulator_bootstrap5.min.css" rel="stylesheet">
9
- <link rel="stylesheet" href="https://esm.sh/@xyflow/react@12.3.6/dist/style.css" />
10
- <style id="styles"><%~ include("styles.css") %></style>
11
- <style id="reactflow"><%~ include("reactflow.css") %></style>
12
- <style id="registry"><%~ include("registry.css") %></style>
13
- <style id="scrollbar"><%~ include("scrollbar.css") %></style>
14
- <style id="tabulator"><%~ include("tabulator.css") %></style>
15
- <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
16
- <script type="text/javascript" src="https://unpkg.com/tabulator-tables@5.5.0/dist/js/tabulator.min.js"></script>
17
- </head>
18
- <body>
19
- <div class="container">
20
- <header>
21
- <div>
22
- <h1>Debug Dashboard</h1>
23
- <div style="color: var(--text-secondary)">Uptime: <span id="uptime"><%= it.uptime %></span></div>
24
- </div>
25
- <div class="tabs">
26
- <button class="tab-btn active" onclick="switchTab('overview')">Overview</button>
27
- <button class="tab-btn" onclick="switchTab('registry')">Registry</button>
28
- <button class="tab-btn" onclick="switchTab('graph')">Graph</button>
29
- <button class="tab-btn" onclick="switchTab('requests')">Requests</button>
30
- <button class="tab-btn" onclick="switchTab('failures')">Failures</button>
31
- </div>
32
- </header>
33
-
34
- <!-- Overview Tab -->
35
- <div id="tab-overview" class="tab-content active">
36
-
37
- <div class="metrics-grid">
38
- <div class="card">
39
- <div class="card-title">Total Requests</div>
40
- <div class="card-value" id="total-requests">
41
- <%= it.metrics.totalRequests %>
42
- </div>
43
- </div>
44
-
45
- <div class="card">
46
- <div class="card-title">Active Requests</div>
47
- <div class="card-value" style="color: var(--accent)" id="active-requests">
48
- <%= it.metrics.activeRequests %>
49
- </div>
50
- </div>
51
-
52
- <div class="card">
53
- <div class="card-title">Success Rate</div>
54
- <div class="card-value text-success">
55
- <span id="success-rate">
56
- <%= (it.metrics.totalRequests - it.metrics.activeRequests) ?
57
- Math.round((it.metrics.successfulRequests / (it.metrics.totalRequests -
58
- it.metrics.activeRequests)) * 100) : 100 %>%
59
- </span>
60
- </div>
61
- <div style="color: var(--text-secondary); margin-top: 0.5rem">
62
- <span id="successful-requests">
63
- <%= it.metrics.successfulRequests %>
64
- </span> successful
65
- </div>
66
- </div>
67
-
68
- <div class="card">
69
- <div class="card-title">Fail Rate</div>
70
- <div class="card-value text-error">
71
- <span id="fail-rate">
72
- <%= (it.metrics.totalRequests - it.metrics.activeRequests) ?
73
- Math.round((it.metrics.failedRequests / (it.metrics.totalRequests -
74
- it.metrics.activeRequests)) * 100) : 0 %>%
75
- </span>
76
- </div>
77
- <div style="color: var(--text-secondary); margin-top: 0.5rem">
78
- <span id="failed-requests">
79
- <%= it.metrics.failedRequests %>
80
- </span> failed
81
- </div>
82
- </div>
83
-
84
- <div class="card">
85
- <div class="card-title">Avg Latency</div>
86
- <div class="card-value">
87
- <span id="avg-latency">
88
- <%= it.metrics.averageTotalTime_ms.toFixed(2) %>
89
- </span> <span style="font-size: 1rem; color: var(--text-secondary)">ms</span>
90
- </div>
91
- </div>
92
- </div>
93
-
94
- <div id="chart-container" style="display: flex; flex-direction: column; gap: 1rem;">
95
- <div style="display: flex; justify-content: flex-end;">
96
- <select id="time-range-selector" onchange="updateCharts(); updateDashboard(); fetchTopStats();" style="background: var(--bg-primary); color: var(--text-primary); border: 1px solid var(--card-border); padding: 5px; border-radius: 4px;">
97
- <option value="1m">1 Minute</option>
98
- <option value="5m">5 Minutes</option>
99
- <option value="30m">30 Minutes</option>
100
- <option value="1h">1 Hour</option>
101
- <option value="2h">2 Hours</option>
102
- <option value="6h">6 Hours</option>
103
- <option value="12h">12 Hours</option>
104
- <option value="1d">1 Day</option>
105
- <option value="3d">3 Days</option>
106
- <option value="7d">7 Days</option>
107
- <option value="30d">30 Days</option>
108
- </select>
109
- </div>
110
-
111
-
112
- <div class="card-container" >
113
- <div class="card" style="height: 300px;">
114
- <div class="card-title">Response Time</div>
115
- <div class="card-chart">
116
- <canvas id="latencyChart"></canvas>
117
- </div>
118
- </div>
119
- <div class="card" style="height: 300px;">
120
- <div class="card-title">Requests / Second</div>
121
- <div class="card-chart">
122
- <canvas id="rpsChart"></canvas>
123
- </div>
124
- </div>
125
- <div class="card" style="height: 300px;">
126
- <div class="card-title">CPU & Load</div>
127
- <div class="card-chart">
128
- <canvas id="cpuChart"></canvas>
129
- </div>
130
- </div>
131
- <div class="card" style="height: 300px;">
132
- <div class="card-title">Memory</div>
133
- <div class="card-chart">
134
- <canvas id="memoryChart"></canvas>
135
- </div>
136
- </div>
137
- <div class="card" style="height: 300px;">
138
- <div class="card-title">Heap Usage</div>
139
- <div class="card-chart">
140
- <canvas id="heapChart"></canvas>
141
- </div>
142
- </div>
143
- <div class="card" style="height: 300px;">
144
- <div class="card-title">Event Loop Latency</div>
145
- <div class="card-chart">
146
- <canvas id="eventLoopChart"></canvas>
147
- </div>
148
- </div>
149
- <div class="card" style="height: 300px;">
150
- <div class="card-title">Error Rate</div>
151
- <div class="card-chart">
152
- <canvas id="errorRateChart"></canvas>
153
- </div>
154
- </div>
155
- </div>
156
-
157
- <div class="card-title" style="margin-top: 1rem;">Top Statistics</div>
158
- <div class="card-container">
159
- <div class="card">
160
- <div class="card-title">Top Requests</div>
161
- <div id="top-requests-table"></div>
162
- </div>
163
- <div class="card">
164
- <div class="card-title">Top Errors</div>
165
- <div id="top-errors-table"></div>
166
- </div>
167
- <div class="card">
168
- <div class="card-title">Most Frequent Failures</div>
169
- <div id="failing-requests-table"></div>
170
- </div>
171
- <div class="card">
172
- <div class="card-title">Slowest Requests</div>
173
- <div id="slowest-requests-table"></div>
174
- </div>
175
- </div>
176
-
177
- <div id="table-container" style="padding: 0; margin-top: 1rem;">
178
- <div id="requests-table" class="table-dark"></div>
179
- </div>
180
- </div>
181
- </div>
182
-
183
- <!-- Registry Tab -->
184
- <div id="tab-registry" class="tab-content">
185
- <div id="registry-container" class="card" style="margin-top: 2rem;">
186
- <div class="card-title">Component Registry</div>
187
- <div id="registry-tree" style="padding: 0 1rem 1rem 1rem; font-family: monospace; font-size: 0.9rem;"></div>
188
- </div>
189
- </div>
190
-
191
- <!-- Graph Tab -->
192
- <div id="tab-graph" class="tab-content">
193
- <div class="card" style="margin-bottom: 1rem;">
194
- <div style="display: flex; gap: 1rem;">
195
- <input type="text" id="graph-search" placeholder="Search routes or middleware..." style="flex:1; padding: 0.5rem; border-radius: 0.5rem; background: var(--bg-primary); border: 1px solid var(--card-border); color: var(--text-primary);">
196
- </div>
197
- </div>
198
- <div id="cy"></div>
199
- </div>
200
-
201
- <!-- Requests Tab -->
202
- <div id="tab-requests" class="tab-content">
203
- <div class="card" style="margin-bottom: 1rem; display: flex; justify-content: space-between; align-items: center;">
204
- <div class="card-title">Recent Requests (Last 100)</div>
205
- <div>
206
- <button onclick="fetchRequests()" style="background: var(--bg-primary); color: var(--text-primary); border: 1px solid var(--card-border); padding: 5px 10px; border-radius: 4px; cursor: pointer;">Refresh</button>
207
- </div>
208
- </div>
209
- <div id="requests-list-container" style="height: calc(100vh - 300px); margin-bottom: 2rem;"></div>
210
-
211
- <div id="request-details-container" class="card" style="display: none;">
212
- <div class="card-title">Request Details</div>
213
- <div id="request-details-content"></div>
214
- <div class="card-title" style="margin-top: 1rem;">Middleware Trace</div>
215
- <div id="middleware-trace-container"></div>
216
- </div>
217
- </div>
218
-
219
- <!-- Failures Tab -->
220
- <div id="tab-failures" class="tab-content">
221
- <div class="card" style="margin-bottom: 1rem; display: flex; justify-content: space-between; align-items: center;">
222
- <div class="card-title">Failed Requests (Last 50)</div>
223
- <div>
224
- <button onclick="importFailure()" style="background: var(--bg-primary); color: var(--text-primary); border: 1px solid var(--card-border); padding: 5px 10px; border-radius: 4px; cursor: pointer; margin-right: 8px;">Import</button>
225
- <button onclick="fetchFailures()" style="background: var(--bg-primary); color: var(--text-primary); border: 1px solid var(--card-border); padding: 5px 10px; border-radius: 4px; cursor: pointer;">Refresh</button>
226
- </div>
227
- </div>
228
- <div id="failures-table-container"></div>
229
- </div>
230
- </div>
231
-
232
- <script>
233
- // Injected function from server config
234
- const getRequestHeaders = <%~ it.getRequestHeaders || "undefined" %>;
235
- </script>
236
- <script id="poll.js"><%~ include("poll.js") %></script>
237
- <script id="graph.mjs" type="module"><%~ include("graph.mjs") %></script>
238
- <script id="charts.js"><%~ include("charts.js") %></script>
239
- <script id="tables.js"><%~ include("tables.js") %></script>
240
- <script id="registry.js"><%~ include("registry.js") %></script>
241
- <script id="failures.js"><%~ include("failures.js") %></script>
242
- <script id="requests.js"><%~ include("requests.js") %></script>
243
- <script id="tabs.js"><%~ include("tabs.js") %></script>
244
- </body>
245
-
246
- </html>