@warlock.js/devtools 5.25.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.
Files changed (68) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/LICENSE +21 -0
  3. package/README.md +35 -0
  4. package/cjs/index.cjs +694 -0
  5. package/cjs/index.cjs.map +1 -0
  6. package/cjs/server-DHYSVive.cjs +286 -0
  7. package/cjs/server-DHYSVive.cjs.map +1 -0
  8. package/esm/caller-location.mjs +33 -0
  9. package/esm/caller-location.mjs.map +1 -0
  10. package/esm/collector.mjs +185 -0
  11. package/esm/collector.mjs.map +1 -0
  12. package/esm/current-request-id.mjs +24 -0
  13. package/esm/current-request-id.mjs.map +1 -0
  14. package/esm/devtools-connector.d.mts +26 -0
  15. package/esm/devtools-connector.d.mts.map +1 -0
  16. package/esm/devtools-connector.mjs +112 -0
  17. package/esm/devtools-connector.mjs.map +1 -0
  18. package/esm/index.d.mts +3 -0
  19. package/esm/index.mjs +3 -0
  20. package/esm/n-plus-one.mjs +36 -0
  21. package/esm/n-plus-one.mjs.map +1 -0
  22. package/esm/options.mjs +19 -0
  23. package/esm/options.mjs.map +1 -0
  24. package/esm/query-shape.mjs +27 -0
  25. package/esm/query-shape.mjs.map +1 -0
  26. package/esm/safe-value.mjs +63 -0
  27. package/esm/safe-value.mjs.map +1 -0
  28. package/esm/server/background-routes.mjs +9 -0
  29. package/esm/server/background-routes.mjs.map +1 -0
  30. package/esm/server/explain-route.mjs +37 -0
  31. package/esm/server/explain-route.mjs.map +1 -0
  32. package/esm/server/guard.mjs +30 -0
  33. package/esm/server/guard.mjs.map +1 -0
  34. package/esm/server/index.mjs +37 -0
  35. package/esm/server/index.mjs.map +1 -0
  36. package/esm/server/log-routes.mjs +12 -0
  37. package/esm/server/log-routes.mjs.map +1 -0
  38. package/esm/server/mail-routes.mjs +27 -0
  39. package/esm/server/mail-routes.mjs.map +1 -0
  40. package/esm/server/requests-routes.mjs +21 -0
  41. package/esm/server/requests-routes.mjs.map +1 -0
  42. package/esm/server/route-routes.mjs +9 -0
  43. package/esm/server/route-routes.mjs.map +1 -0
  44. package/esm/server/stream-route.mjs +32 -0
  45. package/esm/server/stream-route.mjs.map +1 -0
  46. package/esm/server/ui-assets.mjs +38 -0
  47. package/esm/server/ui-assets.mjs.map +1 -0
  48. package/esm/sources/cache-source.mjs +51 -0
  49. package/esm/sources/cache-source.mjs.map +1 -0
  50. package/esm/sources/log-source.mjs +46 -0
  51. package/esm/sources/log-source.mjs.map +1 -0
  52. package/esm/sources/mail-source.mjs +48 -0
  53. package/esm/sources/mail-source.mjs.map +1 -0
  54. package/esm/sources/query-source.mjs +52 -0
  55. package/esm/sources/query-source.mjs.map +1 -0
  56. package/esm/sources/tracing-source.mjs +47 -0
  57. package/esm/sources/tracing-source.mjs.map +1 -0
  58. package/esm/types.d.mts +213 -0
  59. package/esm/types.d.mts.map +1 -0
  60. package/esm/ui-root.mjs +40 -0
  61. package/esm/ui-root.mjs.map +1 -0
  62. package/llms-full.txt +78 -0
  63. package/llms.txt +9 -0
  64. package/package.json +52 -0
  65. package/skills/devtools-overview/SKILL.md +68 -0
  66. package/ui/app.css +354 -0
  67. package/ui/app.js +520 -0
  68. package/ui/index.html +24 -0
package/ui/app.css ADDED
@@ -0,0 +1,354 @@
1
+ :root {
2
+ color-scheme: light dark;
3
+ --bg: #f5f6f8;
4
+ --surface: #fff;
5
+ --line: #d9dde5;
6
+ --text: #18202a;
7
+ --muted: #667085;
8
+ --accent: #285fc1;
9
+ --good: #167a43;
10
+ --warn: #a96000;
11
+ --bad: #b42318;
12
+ --code: #20242d;
13
+ --bar: #5b7cfa;
14
+ font-family:
15
+ system-ui,
16
+ -apple-system,
17
+ BlinkMacSystemFont,
18
+ "Segoe UI",
19
+ sans-serif;
20
+ }
21
+ @media (prefers-color-scheme: dark) {
22
+ :root {
23
+ --bg: #16191f;
24
+ --surface: #20242c;
25
+ --line: #383e49;
26
+ --text: #edf0f5;
27
+ --muted: #aab3c2;
28
+ --accent: #83adff;
29
+ --good: #65d394;
30
+ --warn: #f6b65a;
31
+ --bad: #ff9c95;
32
+ --code: #111319;
33
+ --bar: #8ca7ff;
34
+ }
35
+ }
36
+ * {
37
+ box-sizing: border-box;
38
+ }
39
+ body {
40
+ margin: 0;
41
+ background: var(--bg);
42
+ color: var(--text);
43
+ font-size: 14px;
44
+ }
45
+ button,
46
+ input,
47
+ select {
48
+ font: inherit;
49
+ }
50
+ button {
51
+ color: inherit;
52
+ cursor: pointer;
53
+ }
54
+ .topbar {
55
+ min-height: 56px;
56
+ display: flex;
57
+ align-items: center;
58
+ gap: 18px;
59
+ padding: 8px 20px;
60
+ border-bottom: 1px solid var(--line);
61
+ background: var(--surface);
62
+ }
63
+ h1 {
64
+ font-size: 16px;
65
+ margin: 0;
66
+ white-space: nowrap;
67
+ }
68
+ nav {
69
+ display: flex;
70
+ gap: 2px;
71
+ overflow-x: auto;
72
+ }
73
+ .tab,
74
+ .clear,
75
+ .toggle,
76
+ .explain {
77
+ border: 1px solid transparent;
78
+ background: transparent;
79
+ padding: 7px 9px;
80
+ border-radius: 5px;
81
+ }
82
+ .tab:hover,
83
+ .tab.is-active,
84
+ .toggle.is-active {
85
+ background: color-mix(in srgb, var(--accent) 14%, transparent);
86
+ color: var(--accent);
87
+ }
88
+ .clear {
89
+ margin-left: auto;
90
+ border-color: var(--line);
91
+ }
92
+ main {
93
+ max-width: 1440px;
94
+ margin: 0 auto;
95
+ padding: 18px 20px;
96
+ }
97
+ .layout {
98
+ display: grid;
99
+ grid-template-columns: minmax(280px, 38%) 1fr;
100
+ gap: 16px;
101
+ }
102
+ .panel,
103
+ .card {
104
+ background: var(--surface);
105
+ border: 1px solid var(--line);
106
+ border-radius: 7px;
107
+ overflow: hidden;
108
+ }
109
+ .list {
110
+ max-height: calc(100vh - 110px);
111
+ overflow: auto;
112
+ }
113
+ .row {
114
+ display: block;
115
+ width: 100%;
116
+ text-align: left;
117
+ background: transparent;
118
+ border: 0;
119
+ border-bottom: 1px solid var(--line);
120
+ padding: 11px 12px;
121
+ }
122
+ .row:hover,
123
+ .row.is-selected {
124
+ background: color-mix(in srgb, var(--accent) 10%, transparent);
125
+ }
126
+ .row-top,
127
+ .meta,
128
+ .toolbar {
129
+ display: flex;
130
+ gap: 9px;
131
+ align-items: center;
132
+ }
133
+ .row-top {
134
+ justify-content: space-between;
135
+ }
136
+ .meta {
137
+ color: var(--muted);
138
+ font-size: 12px;
139
+ margin-top: 5px;
140
+ flex-wrap: wrap;
141
+ }
142
+ .method {
143
+ font-weight: 700;
144
+ min-width: 48px;
145
+ }
146
+ .path {
147
+ overflow: hidden;
148
+ text-overflow: ellipsis;
149
+ white-space: nowrap;
150
+ }
151
+ .status-2 {
152
+ color: var(--good);
153
+ }
154
+ .status-3 {
155
+ color: var(--accent);
156
+ }
157
+ .status-4,
158
+ .status-5 {
159
+ color: var(--bad);
160
+ }
161
+ .badge {
162
+ color: var(--warn);
163
+ font-weight: 700;
164
+ }
165
+ .detail {
166
+ padding: 16px;
167
+ min-width: 0;
168
+ }
169
+ h2 {
170
+ font-size: 16px;
171
+ margin: 0 0 14px;
172
+ }
173
+ h3 {
174
+ font-size: 14px;
175
+ margin: 20px 0 8px;
176
+ }
177
+ .empty,
178
+ .error {
179
+ padding: 20px;
180
+ color: var(--muted);
181
+ }
182
+ .error {
183
+ color: var(--bad);
184
+ }
185
+ .warning {
186
+ border-left: 3px solid var(--warn);
187
+ padding: 8px 10px;
188
+ margin: 7px 0;
189
+ background: color-mix(in srgb, var(--warn) 10%, transparent);
190
+ }
191
+ a {
192
+ color: var(--accent);
193
+ }
194
+ pre {
195
+ white-space: pre-wrap;
196
+ overflow-wrap: anywhere;
197
+ margin: 8px 0;
198
+ padding: 10px;
199
+ border-radius: 5px;
200
+ background: var(--code);
201
+ color: #e9ecf1;
202
+ font:
203
+ 12px/1.45 ui-monospace,
204
+ SFMono-Regular,
205
+ Consolas,
206
+ monospace;
207
+ }
208
+ .waterfall {
209
+ border: 1px solid var(--line);
210
+ border-radius: 5px;
211
+ overflow: hidden;
212
+ }
213
+ .waterfall-row {
214
+ display: grid;
215
+ grid-template-columns: minmax(135px, 31%) 1fr;
216
+ min-height: 32px;
217
+ border-bottom: 1px solid var(--line);
218
+ }
219
+ .waterfall-row:last-child {
220
+ border: 0;
221
+ }
222
+ .waterfall-label {
223
+ padding: 7px;
224
+ overflow: hidden;
225
+ text-overflow: ellipsis;
226
+ white-space: nowrap;
227
+ font:
228
+ 12px ui-monospace,
229
+ SFMono-Regular,
230
+ Consolas,
231
+ monospace;
232
+ }
233
+ .track {
234
+ position: relative;
235
+ background-image: linear-gradient(
236
+ 90deg,
237
+ transparent 24.7%,
238
+ var(--line) 25%,
239
+ transparent 25.3%,
240
+ transparent 49.7%,
241
+ var(--line) 50%,
242
+ transparent 50.3%,
243
+ transparent 74.7%,
244
+ var(--line) 75%,
245
+ transparent 75.3%
246
+ );
247
+ }
248
+ .bar {
249
+ position: absolute;
250
+ top: 7px;
251
+ left: var(--start);
252
+ width: max(2px, var(--width));
253
+ height: 17px;
254
+ background: var(--bar);
255
+ border-radius: 3px;
256
+ }
257
+ .query {
258
+ padding: 12px;
259
+ border: 1px solid var(--line);
260
+ border-radius: 6px;
261
+ margin: 9px 0;
262
+ }
263
+ .query-head {
264
+ display: flex;
265
+ align-items: center;
266
+ justify-content: space-between;
267
+ gap: 8px;
268
+ color: var(--muted);
269
+ flex-wrap: wrap;
270
+ }
271
+ .explain {
272
+ border-color: var(--line);
273
+ }
274
+ .toolbar {
275
+ margin-bottom: 12px;
276
+ flex-wrap: wrap;
277
+ }
278
+ input,
279
+ select {
280
+ border: 1px solid var(--line);
281
+ color: var(--text);
282
+ background: var(--surface);
283
+ border-radius: 5px;
284
+ padding: 7px 8px;
285
+ }
286
+ input {
287
+ min-width: 220px;
288
+ }
289
+ table {
290
+ width: 100%;
291
+ border-collapse: collapse;
292
+ }
293
+ th,
294
+ td {
295
+ padding: 8px;
296
+ border-bottom: 1px solid var(--line);
297
+ text-align: left;
298
+ vertical-align: top;
299
+ }
300
+ th {
301
+ color: var(--muted);
302
+ font-size: 12px;
303
+ }
304
+ .mail-frame {
305
+ width: 100%;
306
+ min-height: 300px;
307
+ border: 1px solid var(--line);
308
+ background: white;
309
+ }
310
+ .attachments {
311
+ padding-left: 20px;
312
+ }
313
+ details summary {
314
+ cursor: pointer;
315
+ color: var(--muted);
316
+ }
317
+ .log-level {
318
+ text-transform: uppercase;
319
+ font-weight: 700;
320
+ }
321
+ .log-debug {
322
+ color: var(--muted);
323
+ }
324
+ .log-warn {
325
+ color: var(--warn);
326
+ }
327
+ .log-error {
328
+ color: var(--bad);
329
+ }
330
+ .log-success {
331
+ color: var(--good);
332
+ }
333
+ @media (max-width: 700px) {
334
+ .topbar {
335
+ gap: 10px;
336
+ padding: 8px 10px;
337
+ flex-wrap: wrap;
338
+ }
339
+ .clear {
340
+ margin-left: 0;
341
+ }
342
+ main {
343
+ padding: 12px 10px;
344
+ }
345
+ .layout {
346
+ grid-template-columns: 1fr;
347
+ }
348
+ .list {
349
+ max-height: 42vh;
350
+ }
351
+ .waterfall-row {
352
+ grid-template-columns: 120px 1fr;
353
+ }
354
+ }