@nuxt/devtools 0.2.5 → 0.3.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 (134) hide show
  1. package/README.md +3 -3
  2. package/dist/chunks/module-main.mjs +692 -258
  3. package/dist/chunks/plugin-metrics.mjs +56 -0
  4. package/dist/chunks/vite-inspect.mjs +12 -13
  5. package/dist/chunks/vscode.mjs +44 -26
  6. package/dist/chunks/vue-inspector.mjs +2 -2
  7. package/dist/cli.mjs +5 -4
  8. package/dist/client/200.html +2 -2
  9. package/dist/client/404.html +2 -2
  10. package/dist/client/__inspecting/index.html +2 -2
  11. package/dist/client/_nuxt/Badge.ec308af3.js +1 -0
  12. package/dist/client/_nuxt/DrawerRight.vue.a85afa62.js +1 -0
  13. package/dist/client/_nuxt/DurationDisplay.vue.9b5b62d4.js +1 -0
  14. package/dist/client/_nuxt/FilepathItem.vue.178a1de3.js +1 -0
  15. package/dist/client/_nuxt/LaunchPage.vue.a0bbd67e.js +1 -0
  16. package/dist/client/_nuxt/NCheckbox.vue.4a02f339.js +1 -0
  17. package/dist/client/_nuxt/NCodeBlock.vue.593cb41f.js +1 -0
  18. package/dist/client/_nuxt/NIconButton.vue.a83f99ea.js +1 -0
  19. package/dist/client/_nuxt/NIconTitle.vue.ce90e41b.js +1 -0
  20. package/dist/client/_nuxt/NMarkdown.vue.11f68fad.js +1 -0
  21. package/dist/client/_nuxt/NSectionBlock.c955e75e.js +1 -0
  22. package/dist/client/_nuxt/NSelect.vue.e19311d6.js +1 -0
  23. package/dist/client/_nuxt/NSwitch.vue.76c93e66.js +1 -0
  24. package/dist/client/_nuxt/NTextInput.vue.d770ca6c.js +1 -0
  25. package/dist/client/_nuxt/NTip.vue.ac67cde4.js +1 -0
  26. package/dist/client/_nuxt/NpmVersionCheck.vue.0eab98c7.js +1 -0
  27. package/dist/client/_nuxt/{NuxtLogo.8111403f.js → NuxtLogo.38adb408.js} +1 -1
  28. package/dist/client/_nuxt/{PanelLeftRight.vue.56b5906c.js → PanelLeftRight.vue.90cdedcf.js} +1 -1
  29. package/dist/client/_nuxt/StateEditor.vue.c57dfe46.js +1 -0
  30. package/dist/client/_nuxt/{TabIcon.vue.30ae65eb.js → TabIcon.vue.8236980c.js} +1 -1
  31. package/dist/client/_nuxt/{__inspecting.8819ade8.js → __inspecting.143a746c.js} +1 -1
  32. package/dist/client/_nuxt/assets.d6a1ab2b.js +16 -0
  33. package/dist/client/_nuxt/components.1b7f02b2.js +1 -0
  34. package/dist/client/_nuxt/context.fe69916a.js +1 -0
  35. package/dist/client/_nuxt/custom-_name_.02ebd30e.js +1 -0
  36. package/dist/client/_nuxt/default.e6b60844.js +1 -0
  37. package/dist/client/_nuxt/editor.e10c09a2.js +1 -0
  38. package/dist/client/_nuxt/entry.216b69f8.js +259 -0
  39. package/dist/client/_nuxt/entry.654353dc.css +32 -0
  40. package/dist/client/_nuxt/error-404.51bdc645.js +1 -0
  41. package/dist/client/_nuxt/{error-500.8f6cefc5.js → error-500.15ac1dfe.js} +1 -1
  42. package/dist/client/_nuxt/error-component.0a7a48e4.js +3 -0
  43. package/dist/client/_nuxt/hooks.aa487478.js +1 -0
  44. package/dist/client/_nuxt/icons.43eaabec.js +1 -0
  45. package/dist/client/_nuxt/imports.01c0f8be.js +1 -0
  46. package/dist/client/_nuxt/{index.a6656ecb.js → index.3b3b7aca.js} +5 -5
  47. package/dist/client/_nuxt/index.517491fb.js +1 -0
  48. package/dist/client/_nuxt/index.c769634a.js +3 -0
  49. package/dist/client/_nuxt/layouts.e447e192.js +1 -0
  50. package/dist/client/_nuxt/middleware.e73473f1.js +1 -0
  51. package/dist/client/_nuxt/modules.304ea21e.js +1 -0
  52. package/dist/client/_nuxt/{none.394b52e6.js → none.3e2499ec.js} +1 -1
  53. package/dist/client/_nuxt/overview.b79bf694.js +1 -0
  54. package/dist/client/_nuxt/pages.fafa9fe0.js +1 -0
  55. package/dist/client/_nuxt/payload.ee430f3a.js +1 -0
  56. package/dist/client/_nuxt/plugins.5095ec46.js +1 -0
  57. package/dist/client/_nuxt/runtime-configs.b20fbeb6.js +1 -0
  58. package/dist/client/_nuxt/server-routes.7352d340.js +1 -0
  59. package/dist/client/_nuxt/settings.b6d3cae9.js +1 -0
  60. package/dist/client/_nuxt/storage.2e73159a.js +1 -0
  61. package/dist/client/_nuxt/terminals.4329aeb9.css +1 -0
  62. package/dist/client/_nuxt/terminals.65080a19.js +1 -0
  63. package/dist/client/_nuxt/{unocss-runtime.daeb320e.js → unocss-runtime.5708ce83.js} +2 -2
  64. package/dist/client/_nuxt/virtual-files.9eb05502.js +1 -0
  65. package/dist/client/index.html +2 -2
  66. package/dist/client/modules/assets/index.html +7 -0
  67. package/dist/client/modules/components/index.html +2 -2
  68. package/dist/client/modules/hooks/index.html +2 -2
  69. package/dist/client/modules/imports/index.html +2 -2
  70. package/dist/client/modules/layouts/index.html +2 -2
  71. package/dist/client/modules/middleware/index.html +2 -2
  72. package/dist/client/modules/modules/index.html +2 -2
  73. package/dist/client/modules/overview/index.html +2 -2
  74. package/dist/client/modules/pages/index.html +2 -2
  75. package/dist/client/modules/payload/index.html +2 -2
  76. package/dist/client/modules/plugins/index.html +2 -2
  77. package/dist/client/modules/runtime-configs/index.html +2 -2
  78. package/dist/client/modules/server-routes/index.html +2 -2
  79. package/dist/client/modules/storage/index.html +2 -2
  80. package/dist/client/modules/terminals/index.html +7 -0
  81. package/dist/client/modules/virtual-files/index.html +2 -2
  82. package/dist/client/settings/index.html +7 -0
  83. package/dist/dirs.mjs +2 -2
  84. package/dist/module.d.ts +3 -33
  85. package/dist/module.json +1 -1
  86. package/dist/module.mjs +2 -2
  87. package/dist/runtime/plugins/devtools.client.mjs +7 -1
  88. package/dist/shared/{devtools.258c6e2e.mjs → devtools.696fb428.mjs} +1 -1
  89. package/dist/types.d.ts +4 -337
  90. package/dist/types.mjs +1 -1
  91. package/package.json +36 -35
  92. package/dist/client/_nuxt/Badge.4f16da14.js +0 -1
  93. package/dist/client/_nuxt/FilepathItem.vue.235fa07d.js +0 -1
  94. package/dist/client/_nuxt/LaunchPage.vue.86f00e85.js +0 -1
  95. package/dist/client/_nuxt/NButton.a7fda268.css +0 -1
  96. package/dist/client/_nuxt/NButton.vue.76dccbb9.js +0 -100
  97. package/dist/client/_nuxt/NCheckbox.vue.60126ccb.js +0 -1
  98. package/dist/client/_nuxt/NMarkdown.vue.abb154b8.js +0 -1
  99. package/dist/client/_nuxt/NSectionBlock.58837776.js +0 -1
  100. package/dist/client/_nuxt/NSectionBlock.891fa081.css +0 -1
  101. package/dist/client/_nuxt/NTextInput.vue.1fd15b74.js +0 -1
  102. package/dist/client/_nuxt/StateEditor.vue.bdb7e5c8.js +0 -1
  103. package/dist/client/_nuxt/asyncData.103aad72.js +0 -1
  104. package/dist/client/_nuxt/client.9c41f495.js +0 -1
  105. package/dist/client/_nuxt/components.43dee80b.js +0 -1
  106. package/dist/client/_nuxt/context.55688cca.js +0 -1
  107. package/dist/client/_nuxt/custom-_name_.8832be9d.js +0 -1
  108. package/dist/client/_nuxt/default.c29c3e74.js +0 -1
  109. package/dist/client/_nuxt/editor.66e59505.js +0 -1
  110. package/dist/client/_nuxt/entry.3a404c59.css +0 -1
  111. package/dist/client/_nuxt/entry.883bcfe6.js +0 -11
  112. package/dist/client/_nuxt/error-404.d027ece6.js +0 -1
  113. package/dist/client/_nuxt/error-component.ee11a8ba.js +0 -3
  114. package/dist/client/_nuxt/hooks.427abdcd.js +0 -1
  115. package/dist/client/_nuxt/icons.7b11eba5.js +0 -1
  116. package/dist/client/_nuxt/imports.2dc7174b.js +0 -1
  117. package/dist/client/_nuxt/index.0d6abd2a.js +0 -1
  118. package/dist/client/_nuxt/json-editor-vue.a65019ca.js +0 -137
  119. package/dist/client/_nuxt/layouts.4db8e1e6.js +0 -1
  120. package/dist/client/_nuxt/middleware.c4f2a57b.js +0 -1
  121. package/dist/client/_nuxt/modules.a2209d2d.js +0 -1
  122. package/dist/client/_nuxt/nuxt-link.a34a1045.js +0 -1
  123. package/dist/client/_nuxt/overview.5053fd45.js +0 -1
  124. package/dist/client/_nuxt/pages.9a1a9ac3.js +0 -1
  125. package/dist/client/_nuxt/payload.ed4c5688.js +0 -1
  126. package/dist/client/_nuxt/plugins.95c9e3e6.js +0 -1
  127. package/dist/client/_nuxt/runtime-configs.7ebddf6f.js +0 -1
  128. package/dist/client/_nuxt/server-routes.5337ffc6.js +0 -1
  129. package/dist/client/_nuxt/state.1f523208.js +0 -1
  130. package/dist/client/_nuxt/storage.4459d7bf.js +0 -1
  131. package/dist/client/_nuxt/virtual-files.a15894d9.js +0 -3
  132. package/dist/iframe-client.d.ts +0 -15
  133. package/dist/iframe-client.mjs +0 -32
  134. package/iframe-client.d.ts +0 -1
package/dist/types.d.ts CHANGED
@@ -1,296 +1,5 @@
1
- import { Nuxt, NuxtOptions, Component, NuxtPage, NuxtLayout, AppConfig } from 'nuxt/schema';
2
- import { Import, UnimportMeta } from 'unimport';
3
- import { NuxtApp } from 'nuxt/dist/app/nuxt';
4
- import { RouteRecordNormalized } from 'vue-router';
5
- import { VueInspectorClient } from 'vite-plugin-vue-inspector';
6
- import { Hookable } from 'hookable';
7
- import { BirpcReturn } from 'birpc';
8
- import { VNode } from 'vue';
9
- import { StorageValue } from 'unstorage';
10
- import { StorageMounts } from 'nitropack';
1
+ export * from '@nuxt/devtools-kit/types';
11
2
 
12
- declare function enablePages(nuxt: Nuxt): Promise<void>;
13
-
14
- declare const wizard: {
15
- enablePages: typeof enablePages;
16
- };
17
- type Wizard = typeof wizard;
18
- type WizardActions = keyof Wizard;
19
- type WizardArgs<T extends WizardActions> = Wizard[T] extends (nuxt: any, ...args: infer A) => any ? A : never;
20
-
21
- interface ModuleOptions {
22
- /**
23
- * Enable DevTools
24
- *
25
- * @default true
26
- */
27
- enabled?: boolean;
28
- /**
29
- * VS Code Server integration options.
30
- */
31
- vscode?: VSCodeIntegrationOptions;
32
- /**
33
- * Enable Vue Component Inspector
34
- *
35
- * @default true
36
- */
37
- componentInspector?: boolean;
38
- /**
39
- * Enable vite-plugin-inspect
40
- *
41
- * @default true
42
- */
43
- viteInspect?: boolean;
44
- }
45
- interface ModuleGlobalOptions {
46
- /**
47
- * List of projects to enable devtools for. Only works when devtools is installed globally.
48
- */
49
- projects?: string[];
50
- }
51
- interface ServerFunctions {
52
- getStorageMounts(): Promise<StorageMounts>;
53
- getStorageKeys(base?: string): Promise<string[]>;
54
- getStorageItem(key: string): Promise<StorageValue>;
55
- setStorageItem(key: string, value: StorageValue): Promise<void>;
56
- removeStorageItem(key: string): Promise<void>;
57
- getServerConfig(): NuxtOptions;
58
- getComponents(): Component[];
59
- getComponentsRelationships(): Promise<ComponentRelationship[]>;
60
- getAutoImports(): AutoImportsWithMetadata;
61
- getServerPages(): NuxtPage[];
62
- getCustomTabs(): ModuleCustomTab[];
63
- getServerHooks(): HookInfo[];
64
- getServerLayouts(): NuxtLayout[];
65
- usePackageVersions(): UpdateInfo[];
66
- customTabAction(name: string, action: number): Promise<boolean>;
67
- runWizard<T extends WizardActions>(name: T, ...args: WizardArgs<T>): Promise<void>;
68
- openInEditor(filepath: string): void;
69
- }
70
- interface UpdateInfo {
71
- name: string;
72
- current: string;
73
- latest?: string;
74
- needsUpdate?: boolean;
75
- }
76
- interface AutoImportsWithMetadata {
77
- imports: Import[];
78
- metadata?: UnimportMeta;
79
- }
80
- type ClientUpdateEvent = keyof ServerFunctions;
81
- interface ClientFunctions {
82
- refresh(event: ClientUpdateEvent): void;
83
- callHook(hook: string, ...args: any[]): Promise<void>;
84
- }
85
- interface RouteInfo extends Pick<RouteRecordNormalized, 'name' | 'path' | 'meta' | 'props' | 'children'> {
86
- file?: string;
87
- }
88
- interface Payload {
89
- url: string;
90
- time: number;
91
- data?: Record<string, any>;
92
- state?: Record<string, any>;
93
- functions?: Record<string, any>;
94
- }
95
- interface BasicModuleInfo {
96
- entryPath?: string;
97
- meta?: {
98
- name?: string;
99
- };
100
- }
101
- interface ModuleMetric {
102
- name: string;
103
- description: string;
104
- repo: string;
105
- npm: string;
106
- icon?: string;
107
- github: string;
108
- website: string;
109
- learn_more: string;
110
- category: string;
111
- type: ModuleType;
112
- maintainers: MaintainerInfo[];
113
- contributors: GitHubContributor[];
114
- compatibility: ModuleCompatibility;
115
- }
116
- interface ModuleCompatibility {
117
- nuxt: string;
118
- requires: {
119
- bridge?: boolean | 'optional';
120
- };
121
- }
122
- type CompatibilityStatus = 'working' | 'wip' | 'unknown' | 'not-working';
123
- type ModuleType = 'community' | 'official' | '3rd-party';
124
- interface MaintainerInfo {
125
- name: string;
126
- github: string;
127
- twitter?: string;
128
- }
129
- interface GitHubContributor {
130
- login: string;
131
- name?: string;
132
- avatar_url?: string;
133
- }
134
- interface ModuleCustomTab {
135
- /**
136
- * The name of the tab, must be unique
137
- */
138
- name: string;
139
- /**
140
- * Icon of the tab, support any Iconify icons, or a url to an image
141
- */
142
- icon?: string;
143
- /**
144
- * Title of the tab
145
- */
146
- title: string;
147
- /**
148
- * Main view of the tab
149
- */
150
- view: ModuleView;
151
- /**
152
- * Insert static vnode to the tab entry
153
- *
154
- * Advanced options. You don't usually need this.
155
- */
156
- extraTabVNode?: VNode;
157
- }
158
- interface ModuleLaunchView {
159
- /**
160
- * A view for module to lazy launch some actions
161
- */
162
- type: 'launch';
163
- title?: string;
164
- icon?: string;
165
- description: string;
166
- /**
167
- * Action buttons
168
- */
169
- actions: ModuleLaunchAction[];
170
- }
171
- interface ModuleIframeView {
172
- /**
173
- * Iframe view
174
- */
175
- type: 'iframe';
176
- /**
177
- * Url of the iframe
178
- */
179
- src: string;
180
- /**
181
- * Persist the iframe instance even if the tab is not active
182
- *
183
- * @default true
184
- */
185
- persistent?: boolean;
186
- }
187
- interface ModuleVNodeView {
188
- /**
189
- * Vue's VNode view
190
- */
191
- type: 'vnode';
192
- /**
193
- * Send vnode to the client, they must be static and serializable
194
- *
195
- * Call `nuxt.hook('devtools:customTabs:refresh')` to trigger manual refresh
196
- */
197
- vnode: VNode;
198
- }
199
- interface ModuleLaunchAction {
200
- /**
201
- * Label of the action button
202
- */
203
- label: string;
204
- /**
205
- * Additional HTML attributes to the action button
206
- */
207
- attrs?: Record<string, string>;
208
- /**
209
- * Indicate if the action is pending, will show a loading indicator and disable the button
210
- */
211
- pending?: boolean;
212
- /**
213
- * Function to handle the action, this is executed on the server side.
214
- * Will automatically refresh the tabs after the action is resolved.
215
- */
216
- handle?: () => void | Promise<void>;
217
- /**
218
- * Treat the action as a link, will open the link in a new tab
219
- */
220
- src?: string;
221
- }
222
- type ModuleView = ModuleIframeView | ModuleLaunchView | ModuleVNodeView;
223
- interface ModuleIframeTabLazyOptions {
224
- description?: string;
225
- onLoad?: () => Promise<void>;
226
- }
227
- interface ModuleBuiltinTab {
228
- name: string;
229
- icon?: string;
230
- title?: string;
231
- path?: string;
232
- requireClient?: boolean;
233
- }
234
- type ModuleTabInfo = ModuleCustomTab | ModuleBuiltinTab;
235
- interface HookInfo {
236
- name: string;
237
- start: number;
238
- end?: number;
239
- duration?: number;
240
- listeners: number;
241
- executions: number[];
242
- }
243
- type VueInspectorData = VueInspectorClient['linkParams'] & VueInspectorClient['position'];
244
- interface NuxtDevtoolsClientHooks {
245
- /**
246
- * When the devtools navigates, used for persisting the current tab
247
- */
248
- 'devtools:navigate': (path: string) => void;
249
- /**
250
- * Event emitted when the component inspector is updated
251
- */
252
- 'host:inspector:update': (data: VueInspectorData) => void;
253
- /**
254
- * Event emitted when the component inspector is clicked
255
- */
256
- 'host:inspector:click': (baseUrl: string, file: string, line: number, column: number) => void;
257
- /**
258
- * Event to close the component inspector
259
- */
260
- 'host:inspector:close': () => void;
261
- /**
262
- * Triggers reactivity manually, since Vue won't be reactive across frames)
263
- */
264
- 'host:update:reactivity': () => void;
265
- }
266
- /**
267
- * Host client from the App
268
- */
269
- interface NuxtDevtoolsHostClient {
270
- nuxt: NuxtApp;
271
- appConfig: AppConfig;
272
- hooks: Hookable<NuxtDevtoolsClientHooks>;
273
- inspector?: {
274
- instance?: VueInspectorClient;
275
- enable: () => void;
276
- disable: () => void;
277
- };
278
- getClientHooksMetrics(): HookInfo[];
279
- closeDevTools(): void;
280
- }
281
- interface NuxtDevtoolsClient {
282
- rpc: BirpcReturn<ServerFunctions>;
283
- renderCodeHighlight: (code: string, lang: string, theme?: string) => string;
284
- renderMarkdown: (markdown: string) => string;
285
- colorMode: string;
286
- }
287
- interface NuxtDevtoolsIframeClient {
288
- host: NuxtDevtoolsHostClient;
289
- devtools: NuxtDevtoolsClient;
290
- }
291
- interface NuxtDevtoolsGlobal {
292
- setClient(client: NuxtDevtoolsHostClient): void;
293
- }
294
3
  interface DevToolsFrameState {
295
4
  width: number;
296
5
  height: number;
@@ -308,50 +17,8 @@ interface DevToolsUISettings {
308
17
  componentsGraphShowWorkspace: boolean;
309
18
  interactionCloseOnOutsideClick: boolean;
310
19
  showExperimentalFeatures: boolean;
311
- }
312
- interface ComponentRelationship {
313
- id: string;
314
- deps: string[];
315
- }
316
- interface VSCodeIntegrationOptions {
317
- /**
318
- * Enable VS Code Server integration
319
- */
320
- enabled?: boolean;
321
- /**
322
- * Start VS Code Server on boot
323
- *
324
- * @default false
325
- */
326
- startOnBoot?: boolean;
327
- /**
328
- * Port to start VS Code Server
329
- *
330
- * @default 3080
331
- */
332
- port?: number;
333
- /**
334
- * Reuse existing server if available (same port)
335
- */
336
- reuseExistingServer?: boolean;
337
- /**
338
- * Determine whether to use code-server or vs code tunnel
339
- *
340
- * @default 'local-serve'
341
- */
342
- mode?: 'local-serve' | 'tunnel';
343
- /**
344
- * Options for VS Code tunnel
345
- */
346
- tunnel?: VSCodeTunnelOptions;
347
- }
348
- interface VSCodeTunnelOptions {
349
- /**
350
- * the machine name for port forwarding service
351
- *
352
- * default: device hostname
353
- */
354
- name?: string;
20
+ scale: number;
21
+ hiddenTabs: string[];
355
22
  }
356
23
 
357
- export { AutoImportsWithMetadata, BasicModuleInfo, ClientFunctions, ClientUpdateEvent, CompatibilityStatus, ComponentRelationship, DevToolsFrameState, DevToolsUISettings, GitHubContributor, HookInfo, MaintainerInfo, ModuleBuiltinTab, ModuleCompatibility, ModuleCustomTab, ModuleGlobalOptions, ModuleIframeTabLazyOptions, ModuleIframeView, ModuleLaunchAction, ModuleLaunchView, ModuleMetric, ModuleOptions, ModuleTabInfo, ModuleType, ModuleVNodeView, ModuleView, NuxtDevtoolsClient, NuxtDevtoolsClientHooks, NuxtDevtoolsGlobal, NuxtDevtoolsHostClient, NuxtDevtoolsIframeClient, Payload, RouteInfo, ServerFunctions, UpdateInfo, VSCodeIntegrationOptions, VSCodeTunnelOptions, VueInspectorData };
24
+ export { DevToolsFrameState, DevToolsUISettings };
package/dist/types.mjs CHANGED
@@ -1 +1 @@
1
-
1
+ export * from '@nuxt/devtools-kit/types';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nuxt/devtools",
3
3
  "type": "module",
4
- "version": "0.2.5",
4
+ "version": "0.3.1",
5
5
  "license": "MIT",
6
6
  "repository": "nuxt/devtools",
7
7
  "exports": {
@@ -14,10 +14,6 @@
14
14
  "types": "./dist/types.d.ts",
15
15
  "import": "./dist/types.mjs"
16
16
  },
17
- "./iframe-client": {
18
- "types": "./dist/iframe-client.d.ts",
19
- "import": "./dist/iframe-client.mjs"
20
- },
21
17
  "./*": "./*"
22
18
  },
23
19
  "main": "./module.cjs",
@@ -29,43 +25,43 @@
29
25
  "*.cjs",
30
26
  "*.mjs"
31
27
  ],
32
- "workspaces": [
33
- "client"
34
- ],
35
28
  "peerDependencies": {
36
- "nuxt": "^3.2.2",
29
+ "nuxt": "^3.3.1",
37
30
  "vite": "*"
38
31
  },
39
32
  "dependencies": {
40
- "@antfu/install-pkg": "^0.1.1",
41
- "@nuxt/kit": "^3.2.3",
42
- "birpc": "^0.2.5",
33
+ "@nuxt/kit": "^3.3.1",
34
+ "birpc": "^0.2.10",
43
35
  "consola": "^2.15.3",
44
- "execa": "^7.0.0",
45
- "h3": "^1.5.0",
46
- "hookable": "^5.4.2",
36
+ "execa": "^7.1.1",
37
+ "fast-glob": "^3.2.12",
38
+ "h3": "^1.6.2",
39
+ "hookable": "^5.5.1",
40
+ "image-meta": "^0.1.1",
47
41
  "is-installed-globally": "^0.4.0",
48
42
  "launch-editor": "^2.6.0",
43
+ "local-pkg": "^0.4.3",
49
44
  "pacote": "^15.1.1",
50
45
  "pathe": "^1.1.0",
51
46
  "pkg-types": "^1.0.2",
52
47
  "rc9": "^2.0.1",
53
- "unimport": "^2.2.4",
54
- "vite-plugin-inspect": "^0.7.15",
55
- "vite-plugin-vue-inspector": "^3.3.2"
48
+ "unimport": "^3.0.3",
49
+ "vite-plugin-inspect": "^0.7.18",
50
+ "vite-plugin-vue-inspector": "^3.4.0",
51
+ "@nuxt/devtools-kit": "0.3.1"
56
52
  },
57
53
  "devDependencies": {
58
54
  "@antfu/utils": "^0.7.2",
59
55
  "@iconify-json/carbon": "^1.1.16",
60
56
  "@iconify-json/logos": "^1.1.23",
61
- "@iconify-json/mdi": "^1.1.47",
57
+ "@iconify-json/mdi": "^1.1.50",
62
58
  "@iconify-json/ri": "^1.1.5",
63
- "@iconify-json/tabler": "^1.1.63",
59
+ "@iconify-json/tabler": "^1.1.68",
64
60
  "@nuxtjs/color-mode": "^3.2.0",
65
- "@unocss/nuxt": "^0.50.1",
66
- "@unocss/preset-icons": "^0.50.1",
67
- "@unocss/preset-uno": "^0.50.1",
68
- "@unocss/runtime": "^0.50.1",
61
+ "@unocss/nuxt": "^0.50.6",
62
+ "@unocss/preset-icons": "^0.50.6",
63
+ "@unocss/preset-uno": "^0.50.6",
64
+ "@unocss/runtime": "^0.50.6",
69
65
  "@vueuse/nuxt": "^9.13.0",
70
66
  "esno": "^0.16.3",
71
67
  "flatted": "^3.2.7",
@@ -75,30 +71,35 @@
75
71
  "global-dirs": "^3.0.1",
76
72
  "json-editor-vue": "^0.10.5",
77
73
  "markdown-it": "^13.0.1",
78
- "nuxt": "^3.2.3",
79
- "nuxt-vitest": "^0.6.6",
74
+ "nanoid": "^4.0.1",
75
+ "nuxt": "^3.3.1",
76
+ "nuxt-vitest": "^0.6.9",
77
+ "nypm": "^0.1.0",
80
78
  "ofetch": "^1.0.1",
79
+ "ohash": "^1.0.0",
81
80
  "picocolors": "^1.0.0",
82
81
  "semver": "^7.3.8",
83
82
  "shiki": "^0.14.1",
84
83
  "shiki-es": "^0.2.0",
85
84
  "sirv": "^2.0.2",
86
85
  "splitpanes": "^3.1.5",
87
- "theme-vitesse": "^0.6.3",
86
+ "theme-vitesse": "^0.6.4",
88
87
  "tinyws": "^0.1.0",
89
- "unocss": "^0.50.1",
90
- "vanilla-jsoneditor": "^0.14.10",
91
- "vis-data": "^7.1.4",
92
- "vis-network": "^9.1.4",
88
+ "unocss": "^0.50.6",
89
+ "vanilla-jsoneditor": "^0.16.0",
90
+ "vis-data": "^7.1.5",
91
+ "vis-network": "^9.1.5",
92
+ "vue-template-promise": "^0.1.1",
93
93
  "vue-tsc": "^1.2.0",
94
94
  "wait-on": "^7.0.1",
95
95
  "which": "^3.0.0",
96
- "ws": "^8.12.1",
97
- "@nuxt/devtools-ui-kit": "0.2.5",
98
- "@nuxt/devtools": "0.2.5"
96
+ "ws": "^8.13.0",
97
+ "xterm": "^5.1.0",
98
+ "xterm-addon-fit": "^0.7.0",
99
+ "@nuxt/devtools": "0.3.1"
99
100
  },
100
101
  "scripts": {
101
- "build": "pnpm dev:prepare && pnpm build:module && pnpm build:client && cp ../../README.md .",
102
+ "build": "pnpm dev:prepare && pnpm build:module && pnpm build:client && esno scripts/prepare.ts",
102
103
  "build:client": "nuxi generate client",
103
104
  "build:module": "nuxt-build-module",
104
105
  "dev": "nuxi dev client",
@@ -1 +0,0 @@
1
- import{a2 as o,o as t,f as n,r as s}from"./entry.883bcfe6.js";const r={},c={class:"text-12px whitespace-nowrap px-1.5 py-0.5 mx-0.5 rounded"};function a(e,_){return t(),n("span",c,[s(e.$slots,"default")])}const d=o(r,[["render",a]]);export{d as _};
@@ -1 +0,0 @@
1
- import{a as p,k as s}from"./state.1f523208.js";import{o as l}from"./editor.66e59505.js";import{a as f,l as m,o as u,f as h,t as c,u as a}from"./entry.883bcfe6.js";const E=f({__name:"FilepathItem",props:{filepath:null},setup(e){const o=e,t=p(),i=m(()=>o.filepath&&t.value?s(o.filepath,t.value.rootDir):o.filepath);return(n,r)=>(u(),h("button",{"font-mono":"","hover:underline":"","ws-nowrap":"","of-hidden":"",onClick:r[0]||(r[0]=d=>("openInEditor"in n?n.openInEditor:a(l))(e.filepath))},c(a(i)),1))}});export{E as _};
@@ -1 +0,0 @@
1
- import{_ as f}from"./TabIcon.vue.30ae65eb.js";import{_ as p}from"./NMarkdown.vue.abb154b8.js";import{a as k,f as s,i as h,h as c,t as i,c as o,m as r,F as g,A as x,o as n,w as b,k as N,a0 as w,D as y}from"./entry.883bcfe6.js";import{_ as B}from"./NButton.vue.76dccbb9.js";const C={flex:"~ col gap2","h-full":"","items-center":"","justify-center":""},$={"text-xl":""},V={flex:"~ gap2 wrap"},P=k({__name:"LaunchPage",props:{icon:null,title:null,description:null,actions:null},emits:["action"],setup(e){return(l,v)=>{const m=f,d=p,_=y,u=B;return n(),s("div",C,[h(m,{"text-5xl":"",mb4:"",icon:e.icon||e.icon,title:e.title},null,8,["icon","title"]),c("h1",$,i(e.title),1),e.description?(n(),o(d,{key:0,op50:"","text-center":"","text-base":"","mt--1":"",mb2:"",markdown:e.description},null,8,["markdown"])):r("",!0),c("div",V,[(n(!0),s(g,null,x(e.actions,(t,a)=>(n(),o(u,w({key:a,n:"solid primary",disabled:t.pending,to:t.src,target:t.src?"_blank":void 0},t.attrs,{onClick:()=>{t.handle?.(),l.$emit("action",a)}}),{default:b(()=>[t.pending?(n(),o(_,{key:0,icon:"carbon-circle-dash","animate-spin":""})):r("",!0),N(" "+i(t.label),1)]),_:2},1040,["disabled","to","target","onClick"]))),128))])])}}});export{P as _};
@@ -1 +0,0 @@
1
- @media (prefers-color-scheme:light){.get-started-gradient-border[data-v-1d757ef3]{background:linear-gradient(90deg,#fff,#fff),linear-gradient(90deg,#00dc82,#1de0b1,#36e4da)}.gradient-border-modules[data-v-1d757ef3]{background:linear-gradient(var(--gradient-angle),#f7d14c,rgba(247,209,76,.6),hsla(0,0%,100%,.8),#f7d14c)}.gradient-border-examples[data-v-1d757ef3]{background:linear-gradient(var(--gradient-angle),#8deaff,rgba(141,234,255,.6),hsla(0,0%,100%,.8),#8deaff)}.gradient-border-documentation[data-v-1d757ef3]{background:linear-gradient(var(--gradient-angle),#00dc82,rgba(0,220,130,.6),hsla(0,0%,100%,.8),#00dc82)}}@media (prefers-color-scheme:dark){.get-started-gradient-border[data-v-1d757ef3]{background:linear-gradient(90deg,#18181b,#18181b),linear-gradient(90deg,#00dc82,#1de0b1,#36e4da)}.gradient-border-modules[data-v-1d757ef3]{background:linear-gradient(var(--gradient-angle),#f7d14c,#a38108,hsla(0,0%,100%,.3),#a38108)}.gradient-border-examples[data-v-1d757ef3]{background:linear-gradient(var(--gradient-angle),#8deaff,#008aa9,hsla(0,0%,100%,.3),#008aa9)}.gradient-border-documentation[data-v-1d757ef3]{background:linear-gradient(var(--gradient-angle),#00dc82,#003f25,hsla(0,0%,100%,.2),#003f25)}}.get-started-gradient-border[data-v-1d757ef3]{background-clip:padding-box,border-box;background-origin:padding-box,border-box;border-color:transparent;border-radius:12px;border-width:1px}.get-started-gradient-border[data-v-1d757ef3]:hover>:is(.get-started-gradient-left,.get-started-gradient-right){opacity:.2}.get-started-gradient-left[data-v-1d757ef3],.get-started-gradient-right[data-v-1d757ef3]{opacity:0}.gradient-border[data-v-1d757ef3]{border-radius:12px;left:0;opacity:0;position:absolute;top:0;transform:translate(-1px,-1px);width:calc(100% + 2px);z-index:-1}.gradient-border-rect[data-v-1d757ef3]{height:calc(100% + 2px)}@media (min-width:1024px){.gradient-border-rect[data-v-1d757ef3]{height:calc(100% + 1px)}}.gradient-border-square[data-v-1d757ef3]{height:calc(100% + 2px)}.modules-gradient-right[data-v-1d757ef3]{opacity:0}.documentation-container:hover>.gradient-border[data-v-1d757ef3],.examples-container:hover>.gradient-border[data-v-1d757ef3],.modules-container:hover>.gradient-border[data-v-1d757ef3]{animation:gradient-rotate 5s linear 0s infinite reverse;opacity:1;transition:all .3s linear}.modules-container:hover>.modules-gradient-right[data-v-1d757ef3]{opacity:.2}.examples-container:hover>.examples-gradient-right[data-v-1d757ef3]{opacity:.2}.examples-gradient-right[data-v-1d757ef3]{opacity:0}.documentation-image-color-dark[data-v-1d757ef3],.documentation-image-color-light[data-v-1d757ef3],.modules-image-color-dark[data-v-1d757ef3],.modules-image-color-light[data-v-1d757ef3],.examples-image-color-dark[data-v-1d757ef3],.examples-image-color-light[data-v-1d757ef3]{display:none}@media (prefers-color-scheme:light){.modules-image-light[data-v-1d757ef3]{display:block}.modules-image-dark[data-v-1d757ef3]{display:none}.modules-container:hover>a>.modules-image-light[data-v-1d757ef3]{display:none}.modules-container:hover>a>.modules-image-color-light[data-v-1d757ef3]{display:block}.examples-image-light[data-v-1d757ef3]{display:block}.examples-image-dark[data-v-1d757ef3]{display:none}.examples-container:hover>a>.examples-image-light[data-v-1d757ef3]{display:none}.examples-container:hover>a>.examples-image-color-light[data-v-1d757ef3]{display:block}.documentation-image-light[data-v-1d757ef3]{display:block}.documentation-image-dark[data-v-1d757ef3]{display:none}.documentation-container:hover>a>div>.documentation-image-light[data-v-1d757ef3]{display:none}.documentation-container:hover>a>div>.documentation-image-color-light[data-v-1d757ef3]{display:block}}@media (prefers-color-scheme:dark){.modules-image-dark[data-v-1d757ef3]{display:block}.modules-image-light[data-v-1d757ef3]{display:none}.modules-container:hover>a>.modules-image-color-dark[data-v-1d757ef3]{display:block}.modules-container:hover>a>.modules-image-dark[data-v-1d757ef3]{display:none}.examples-image-dark[data-v-1d757ef3]{display:block}.examples-image-light[data-v-1d757ef3]{display:none}.examples-container:hover>a>.examples-image-color-dark[data-v-1d757ef3]{display:block}.examples-container:hover>a>.examples-image-dark[data-v-1d757ef3]{display:none}.documentation-image-dark[data-v-1d757ef3]{display:block}.documentation-image-light[data-v-1d757ef3]{display:none}.documentation-container:hover>a>div>.documentation-image-color-dark[data-v-1d757ef3]{display:block}.documentation-container:hover>a>div>.documentation-image-dark[data-v-1d757ef3]{display:none}}.bg-white[data-v-1d757ef3]{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.bg-gray-100[data-v-1d757ef3]{--tw-bg-opacity:1;background-color:rgba(238,238,238,var(--tw-bg-opacity))}.bg-gradient-to-r[data-v-1d757ef3]{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-l[data-v-1d757ef3]{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.from-green-400[data-v-1d757ef3]{--tw-gradient-from:rgba(55, 233, 144, var(--tw-from-opacity, 1));--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to, hsla(0,0%,100%,0))}.from-blue-400[data-v-1d757ef3]{--tw-gradient-from:rgba(56, 189, 248, var(--tw-from-opacity, 1));--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to, hsla(0,0%,100%,0))}.from-yellow-400[data-v-1d757ef3]{--tw-gradient-from:rgba(251, 191, 36, var(--tw-from-opacity, 1));--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to, hsla(0,0%,100%,0))}.to-transparent[data-v-1d757ef3]{--tw-gradient-to:transparent}.border-gray-200[data-v-1d757ef3]{--tw-border-opacity:1;border-color:rgba(224,224,224,var(--tw-border-opacity))}.hover\:border-transparent[data-v-1d757ef3]:hover{border-color:transparent}.rounded-xl[data-v-1d757ef3]{border-radius:.75rem}.rounded[data-v-1d757ef3]{border-radius:.25rem}.border[data-v-1d757ef3]{border-width:1px}.border-t[data-v-1d757ef3]{border-top-width:1px}.flex[data-v-1d757ef3]{display:flex}.grid[data-v-1d757ef3]{display:grid}.hidden[data-v-1d757ef3]{display:none}.flex-col[data-v-1d757ef3]{flex-direction:column}.flex-col-reverse[data-v-1d757ef3]{flex-direction:column-reverse}.place-content-center[data-v-1d757ef3]{place-content:center}.items-center[data-v-1d757ef3]{align-items:center}.justify-end[data-v-1d757ef3]{justify-content:flex-end}.justify-center[data-v-1d757ef3]{justify-content:center}.flex-1[data-v-1d757ef3]{flex:1 1 0%}.order-last[data-v-1d757ef3]{order:9999}.font-mono[data-v-1d757ef3]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-semibold[data-v-1d757ef3]{font-weight:600}.font-bold[data-v-1d757ef3]{font-weight:700}.h-32[data-v-1d757ef3]{height:8rem}.h-\[70px\][data-v-1d757ef3]{height:70px}.text-4xl[data-v-1d757ef3]{font-size:2.25rem;line-height:2.5rem}.text-xl[data-v-1d757ef3]{font-size:1.25rem;line-height:1.75rem}.text-sm[data-v-1d757ef3]{font-size:.875rem;line-height:1.25rem}.text-2xl[data-v-1d757ef3]{font-size:1.5rem;line-height:2rem}.mx-auto[data-v-1d757ef3]{margin-left:auto;margin-right:auto}.mb-2[data-v-1d757ef3]{margin-bottom:.5rem}.max-w-\[960px\][data-v-1d757ef3]{max-width:960px}.min-h-screen[data-v-1d757ef3]{min-height:100vh}.p-1[data-v-1d757ef3]{padding:.25rem}.px-4[data-v-1d757ef3]{padding-left:1rem;padding-right:1rem}.py-14[data-v-1d757ef3]{padding-bottom:3.5rem;padding-top:3.5rem}.py-6[data-v-1d757ef3]{padding-bottom:1.5rem;padding-top:1.5rem}.px-5[data-v-1d757ef3]{padding-left:1.25rem;padding-right:1.25rem}.pt-\[58px\][data-v-1d757ef3]{padding-top:58px}.pb-6[data-v-1d757ef3]{padding-bottom:1.5rem}.absolute[data-v-1d757ef3]{position:absolute}.relative[data-v-1d757ef3]{position:relative}.inset-y-0[data-v-1d757ef3]{bottom:0;top:0}.inset-x-0[data-v-1d757ef3]{left:0;right:0}.left-0[data-v-1d757ef3]{left:0}.right-0[data-v-1d757ef3]{right:0}.-top-\[58px\][data-v-1d757ef3]{top:-58px}.-top-3[data-v-1d757ef3]{top:-.75rem}.focus-visible\:ring-2[data-v-1d757ef3]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.text-center[data-v-1d757ef3]{text-align:center}.text-black[data-v-1d757ef3]{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.text-gray-700[data-v-1d757ef3]{--tw-text-opacity:1;color:rgba(66,66,66,var(--tw-text-opacity))}.hover\:text-black[data-v-1d757ef3]:hover{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.antialiased[data-v-1d757ef3]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.w-full[data-v-1d757ef3]{width:100%}.w-\[20\%\][data-v-1d757ef3]{width:20%}.z-10[data-v-1d757ef3]{z-index:10}.z-1[data-v-1d757ef3]{z-index:1}.gap-6[data-v-1d757ef3]{grid-gap:1.5rem;gap:1.5rem}.gap-3[data-v-1d757ef3]{grid-gap:.75rem;gap:.75rem}.gap-x-4[data-v-1d757ef3]{grid-column-gap:1rem;-webkit-column-gap:1rem;-moz-column-gap:1rem;column-gap:1rem}.gap-y-16[data-v-1d757ef3]{grid-row-gap:4rem;-webkit-row-gap:4rem;-moz-row-gap:4rem;row-gap:4rem}.gap-y-4[data-v-1d757ef3]{grid-row-gap:1rem;-webkit-row-gap:1rem;-moz-row-gap:1rem;row-gap:1rem}.gap-y-2[data-v-1d757ef3]{grid-row-gap:.5rem;-webkit-row-gap:.5rem;-moz-row-gap:.5rem;row-gap:.5rem}.grid-cols-2[data-v-1d757ef3]{grid-template-columns:repeat(2,minmax(0,1fr))}.col-span-2[data-v-1d757ef3]{-ms-grid-column-span:span 2 / span 2;grid-column:span 2 / span 2}.row-span-2[data-v-1d757ef3]{-ms-grid-row-span:span 2 / span 2;grid-row:span 2 / span 2}.transition-opacity[data-v-1d757ef3]{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300[data-v-1d757ef3]{transition-duration:.3s}@media (min-width:640px){.sm\:flex-row[data-v-1d757ef3]{flex-direction:row}.sm\:justify-between[data-v-1d757ef3]{justify-content:space-between}.sm\:h-34[data-v-1d757ef3]{height:8.5rem}.sm\:text-base[data-v-1d757ef3]{font-size:1rem;line-height:1.5rem}.sm\:text-5xl[data-v-1d757ef3]{font-size:3rem;line-height:1}.sm\:min-h-\[220px\][data-v-1d757ef3]{min-height:220px}.sm\:px-6[data-v-1d757ef3]{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-28[data-v-1d757ef3]{padding-left:7rem;padding-right:7rem}.sm\:col-span-1[data-v-1d757ef3]{-ms-grid-column-span:span 1 / span 1;grid-column:span 1 / span 1}}@media (min-width:768px){.md\:min-h-\[180px\][data-v-1d757ef3]{min-height:180px}}@media (min-width:1024px){.lg\:flex-col[data-v-1d757ef3]{flex-direction:column}.lg\:order-none[data-v-1d757ef3]{order:0}.lg\:min-h-min[data-v-1d757ef3]{min-height:-moz-min-content;min-height:min-content}.lg\:py-7[data-v-1d757ef3]{padding-bottom:1.75rem;padding-top:1.75rem}.lg\:px-8[data-v-1d757ef3]{padding-left:2rem;padding-right:2rem}.lg\:grid-cols-10[data-v-1d757ef3]{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:col-span-10[data-v-1d757ef3]{-ms-grid-column-span:span 10 / span 10;grid-column:span 10 / span 10}.lg\:col-span-6[data-v-1d757ef3]{-ms-grid-column-span:span 6 / span 6;grid-column:span 6 / span 6}.lg\:col-span-4[data-v-1d757ef3]{-ms-grid-column-span:span 4 / span 4;grid-column:span 4 / span 4}}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-1d757ef3]{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.dark\:bg-white\/10[data-v-1d757ef3]{--tw-bg-opacity:.1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.dark\:bg-gray-900[data-v-1d757ef3]{--tw-bg-opacity:1;background-color:rgba(24,24,27,var(--tw-bg-opacity))}.dark\:border-transparent[data-v-1d757ef3]{border-color:transparent}.dark\:border-gray-900[data-v-1d757ef3]{--tw-border-opacity:1;border-color:rgba(24,24,27,var(--tw-border-opacity))}.dark\:border-none[data-v-1d757ef3]{border-style:none}.dark\:block[data-v-1d757ef3]{display:block}.dark\:hidden[data-v-1d757ef3]{display:none}.dark\:text-white[data-v-1d757ef3]{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.dark\:text-gray-300[data-v-1d757ef3]{--tw-text-opacity:1;color:rgba(189,189,189,var(--tw-text-opacity))}.dark\:hover\:text-white[data-v-1d757ef3]:hover{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}}