@vscode/component-explorer-vite-plugin 0.1.1-2 → 0.1.1-20

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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Microsoft Corporation.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE
package/SECURITY.md ADDED
@@ -0,0 +1,14 @@
1
+ <!-- BEGIN MICROSOFT SECURITY.MD V1.0.0 BLOCK -->
2
+
3
+ ## Security
4
+
5
+ Microsoft takes the security of our software products and services seriously, which
6
+ includes all source code repositories in our GitHub organizations.
7
+
8
+ **Please do not report security vulnerabilities through public GitHub issues.**
9
+
10
+ For security reporting information, locations, contact information, and policies,
11
+ please review the latest guidance for Microsoft repositories at
12
+ [https://aka.ms/SECURITY.md](https://aka.ms/SECURITY.md).
13
+
14
+ <!-- END MICROSOFT SECURITY.MD BLOCK -->
package/dist/plugin.d.ts CHANGED
@@ -1,9 +1,21 @@
1
1
  import type { Plugin } from 'vite';
2
- export type LogLevel = 'silent' | 'info' | 'verbose';
2
+ declare global {
3
+ interface Window {
4
+ __EXPLORER_DAEMON__?: {
5
+ sessionName: string;
6
+ };
7
+ }
8
+ }
9
+ export type LogLevel = 'silent' | 'info' | 'verbose' | 'warn' | 'error';
3
10
  /** Controls what the plugin includes during `vite build`. Has no effect on dev serve. */
4
11
  export type BuildMode = 'app-only' | 'all' | 'explorer-only';
5
12
  export interface ComponentExplorerOptions {
6
- /** Glob pattern for fixture files. Default: './src/**\/*.fixture.{ts,tsx}' */
13
+ /**
14
+ * Root directory for fixture discovery.
15
+ * Default: undefined (uses Vite's project root - the folder containing vite.config.ts)
16
+ */
17
+ root?: string;
18
+ /** Glob pattern for fixture files (relative to root). Default: '**\/*.fixture.{ts,tsx}' */
7
19
  include?: string;
8
20
  /** Explorer route path. Default: '/___explorer' */
9
21
  route?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAanD,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAErD,0FAA0F;AAC1F,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,KAAK,GACL,eAAe,CAAC;AAapB,MAAM,WAAW,wBAAwB;IACvC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iHAAiH;IACjH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,MAAM,CA4LhF"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAkBnD,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,mBAAmB,CAAC,EAAE;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC;KAC9C;CACD;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAExE,0FAA0F;AAC1F,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,KAAK,GACL,eAAe,CAAC;AAapB,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iHAAiH;IACjH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,MAAM,CA6RhF"}
package/dist/plugin.js CHANGED
@@ -1,11 +1,11 @@
1
- import { createRequire } from 'node:module';
1
+ import http from 'node:http';
2
2
  import { glob } from 'tinyglobby';
3
3
  import path from 'node:path';
4
- const _require = createRequire(import.meta.url);
5
4
  const VIRTUAL_ENTRY_ID = 'virtual:component-explorer/entry';
6
5
  const VIRTUAL_FIXTURES_ID = 'virtual:component-explorer/fixtures';
7
6
  const RESOLVED_VIRTUAL_ENTRY_ID = '\0' + VIRTUAL_ENTRY_ID;
8
7
  const RESOLVED_VIRTUAL_FIXTURES_ID = '\0' + VIRTUAL_FIXTURES_ID;
8
+ const DAEMON_API_PREFIX = '/__explorer/daemon-api';
9
9
  /** Normalize a glob pattern for use with import.meta.glob (must start with '/') */
10
10
  function normalizeGlobForImportMeta(fixtureGlob) {
11
11
  if (fixtureGlob.startsWith('./')) {
@@ -19,12 +19,15 @@ function normalizeGlobForImportMeta(fixtureGlob) {
19
19
  }
20
20
  }
21
21
  export function componentExplorer(options = {}) {
22
- const fixtureGlob = options.include ?? './src/**/*.fixture.{ts,tsx}';
22
+ const rawRoot = options.root;
23
+ const rawInclude = options.include ?? (rawRoot ? '**/*.fixture.{ts,tsx}' : './src/**/*.fixture.{ts,tsx}');
23
24
  const explorerRoute = options.route ?? '/___explorer';
24
25
  const buildMode = options.build ?? 'app-only';
25
26
  const outFile = options.outFile ?? (buildMode === 'explorer-only' ? 'index.html' : '___explorer.html');
26
27
  const logLevel = options.logLevel ?? 'info';
27
28
  let config;
29
+ let fixtureGlob;
30
+ let fixtureRoot;
28
31
  const log = (level, message) => {
29
32
  const levels = ['silent', 'info', 'verbose'];
30
33
  if (levels.indexOf(level) <= levels.indexOf(logLevel)) {
@@ -35,19 +38,34 @@ export function componentExplorer(options = {}) {
35
38
  name: 'component-explorer',
36
39
  async configResolved(resolvedConfig) {
37
40
  config = resolvedConfig;
41
+ // Resolve fixture root - default to Vite's project root
42
+ if (rawRoot) {
43
+ fixtureRoot = path.isAbsolute(rawRoot)
44
+ ? rawRoot
45
+ : path.resolve(config.root, rawRoot);
46
+ }
47
+ else {
48
+ fixtureRoot = config.root;
49
+ }
50
+ // If the include glob is absolute, make it relative to fixtureRoot so both
51
+ // tinyglobby and import.meta.glob resolve consistently.
52
+ if (path.isAbsolute(rawInclude)) {
53
+ fixtureGlob = './' + path.relative(fixtureRoot, rawInclude).split(path.sep).join('/');
54
+ }
55
+ else {
56
+ fixtureGlob = rawInclude.startsWith('./') ? rawInclude : './' + rawInclude;
57
+ }
38
58
  if (logLevel === 'verbose') {
39
- const rootDir = config.root;
40
59
  const normalizedGlob = fixtureGlob.startsWith('./') ? fixtureGlob.slice(2) : fixtureGlob;
41
- const fixtures = await glob(normalizedGlob, { cwd: rootDir });
60
+ const fixtures = await glob(normalizedGlob, { cwd: fixtureRoot });
42
61
  const resolvedGlob = normalizeGlobForImportMeta(fixtureGlob);
43
62
  if (fixtures.length === 0) {
44
63
  log('verbose', `No fixtures found`);
45
64
  log('verbose', ` Glob: ${fixtureGlob}`);
46
- log('verbose', ` Resolved: ${resolvedGlob}`);
47
- log('verbose', ` Root: ${rootDir}`);
65
+ log('verbose', ` Root: ${fixtureRoot}`);
48
66
  }
49
67
  else {
50
- log('verbose', `Found ${fixtures.length} fixture(s) (glob: ${resolvedGlob}):`);
68
+ log('verbose', `Found ${fixtures.length} fixture(s) (glob: ${resolvedGlob}, root: ${fixtureRoot}):`);
51
69
  for (const fixture of fixtures) {
52
70
  log('verbose', ` - ${fixture}`);
53
71
  }
@@ -59,11 +77,17 @@ export function componentExplorer(options = {}) {
59
77
  return;
60
78
  }
61
79
  if (buildMode === 'explorer-only') {
80
+ // Mutate directly — returning `input` would deep-merge with the
81
+ // user's existing entries (e.g. MPA pages), but we want only the
82
+ // explorer entry.
83
+ userConfig.build ??= {};
84
+ userConfig.build.rollupOptions ??= {};
85
+ userConfig.build.rollupOptions.input = { '___explorer': VIRTUAL_ENTRY_ID };
86
+ // Clear lib mode so the explorer gets a proper HTML build
87
+ delete userConfig.build.lib;
62
88
  return {
63
- build: {
64
- rollupOptions: {
65
- input: { '___explorer': VIRTUAL_ENTRY_ID },
66
- },
89
+ define: {
90
+ 'process.env.NODE_ENV': JSON.stringify('production'),
67
91
  },
68
92
  };
69
93
  }
@@ -83,25 +107,51 @@ export function componentExplorer(options = {}) {
83
107
  else {
84
108
  input = { ...currentInput, '___explorer': VIRTUAL_ENTRY_ID };
85
109
  }
110
+ // When lib mode is used, lib.fileName controls entryFileNames for ALL
111
+ // entries, causing the explorer chunk to get the same filename as the
112
+ // app entry (e.g. both become "index.js"). Override entryFileNames to
113
+ // give the explorer entry a distinct name while preserving the lib
114
+ // naming for the app entry.
115
+ const lib = userConfig.build?.lib;
116
+ const libFileName = lib && typeof lib === 'object' && !Array.isArray(lib)
117
+ ? lib.fileName
118
+ : undefined;
119
+ const outputOverrides = {};
120
+ if (typeof libFileName === 'string') {
121
+ outputOverrides.entryFileNames = (chunkInfo) => {
122
+ if (chunkInfo.name === '___explorer') {
123
+ return '___explorer-[hash].js';
124
+ }
125
+ return `${libFileName}.js`;
126
+ };
127
+ }
86
128
  return {
129
+ define: {
130
+ 'process.env.NODE_ENV': JSON.stringify('production'),
131
+ },
87
132
  build: {
88
133
  rollupOptions: {
89
134
  input,
135
+ output: outputOverrides,
90
136
  },
91
137
  },
92
138
  };
93
139
  },
94
- resolveId(id, importer) {
140
+ async resolveId(id, importer) {
95
141
  if (id === VIRTUAL_ENTRY_ID) {
96
142
  return RESOLVED_VIRTUAL_ENTRY_ID;
97
143
  }
98
144
  if (id === VIRTUAL_FIXTURES_ID) {
99
145
  return RESOLVED_VIRTUAL_FIXTURES_ID;
100
146
  }
101
- // Resolve @vscode/component-explorer from the plugin's own location,
102
- // so it works regardless of the consumer's node_modules layout.
103
147
  if (importer === RESOLVED_VIRTUAL_ENTRY_ID && id.startsWith('@vscode/component-explorer')) {
104
- return _require.resolve(id);
148
+ const fakeImporter = config.configFile; // file must exist for vite resolution to work
149
+ const result = await this.resolve(id, fakeImporter, { skipSelf: true });
150
+ if (result) {
151
+ log('verbose', `Resolving ${id}: Resolved to ${result.id}`);
152
+ return result;
153
+ }
154
+ log('verbose', `Resolving ${id}: Failed to resolve from ${fakeImporter}`);
105
155
  }
106
156
  },
107
157
  load(id) {
@@ -121,8 +171,27 @@ export function componentExplorer(options = {}) {
121
171
  if (explorerChunk && explorerChunk.type === 'chunk') {
122
172
  const base = config.base ?? '/';
123
173
  const scriptPath = `${base}${explorerChunk.fileName}`;
124
- // Collect CSS files imported by the explorer
125
- const cssFiles = explorerChunk.viteMetadata?.importedCss ?? new Set();
174
+ // Collect CSS from the explorer chunk and all transitively imported chunks.
175
+ // viteMetadata.importedCss on the entry chunk alone may miss CSS from shared chunks.
176
+ const cssFiles = new Set();
177
+ const visited = new Set();
178
+ const collectCss = (chunkFileName) => {
179
+ if (visited.has(chunkFileName)) {
180
+ return;
181
+ }
182
+ visited.add(chunkFileName);
183
+ const chunk = bundle[chunkFileName];
184
+ if (!chunk || chunk.type !== 'chunk') {
185
+ return;
186
+ }
187
+ for (const css of chunk.viteMetadata?.importedCss ?? []) {
188
+ cssFiles.add(css);
189
+ }
190
+ for (const imported of chunk.imports ?? []) {
191
+ collectCss(imported);
192
+ }
193
+ };
194
+ collectCss(explorerChunk.fileName);
126
195
  const cssLinks = Array.from(cssFiles)
127
196
  .map((file) => ` <link rel="stylesheet" href="${base}${file}">`)
128
197
  .join('\n');
@@ -135,6 +204,18 @@ export function componentExplorer(options = {}) {
135
204
  },
136
205
  configureServer(viteServer) {
137
206
  log('info', `Explorer available at: ${explorerRoute}`);
207
+ // Parse daemon config from env var (set by daemon process)
208
+ const daemonEnv = process.env.COMPONENT_EXPLORER_DAEMON_CONFIG;
209
+ let daemonConfig;
210
+ if (daemonEnv) {
211
+ try {
212
+ daemonConfig = JSON.parse(daemonEnv);
213
+ log('info', `Daemon mode enabled (session: ${daemonConfig.sessionName})`);
214
+ }
215
+ catch (e) {
216
+ log('error', `Failed to parse daemon config: ${e}`);
217
+ }
218
+ }
138
219
  // Watch for fixture file additions/deletions to reload the fixtures module
139
220
  const isFixtureFile = (file) => file.match(/\.fixture\.(ts|tsx)$/);
140
221
  const invalidateFixturesModule = (file, event) => {
@@ -156,12 +237,21 @@ export function componentExplorer(options = {}) {
156
237
  });
157
238
  viteServer.middlewares.use(async (req, res, next) => {
158
239
  const url = req.url ?? '';
159
- // Explorer shell route
160
- if (url === explorerRoute || url === explorerRoute + '/') {
240
+ const parsedUrl = new URL(url, 'http://localhost');
241
+ // Proxy daemon API requests to the named pipe
242
+ if (daemonConfig && parsedUrl.pathname.startsWith(DAEMON_API_PREFIX + '/')) {
243
+ const daemonPath = '/api' + parsedUrl.pathname.slice(DAEMON_API_PREFIX.length);
244
+ proxyToDaemon(req, res, daemonConfig.pipeName, daemonPath, log);
245
+ return;
246
+ }
247
+ // Serve explorer HTML for the explorer route (all modes via query params)
248
+ if (parsedUrl.pathname === explorerRoute || parsedUrl.pathname === explorerRoute + '/') {
161
249
  log('verbose', `Serving explorer HTML for: ${url}`);
162
- const html = getExplorerHtml();
163
- // Transform HTML through Vite to inject React preamble and client
164
- const transformedHtml = await viteServer.transformIndexHtml(url, html);
250
+ const html = getExplorerHtml(daemonConfig);
251
+ // Transform HTML through Vite to inject React preamble and client.
252
+ // Use only the pathname — passing query params (e.g. ?report=...url.json)
253
+ // confuses Vite's JSON plugin into treating inline CSS as JSON.
254
+ const transformedHtml = await viteServer.transformIndexHtml(parsedUrl.pathname, html);
165
255
  res.setHeader('Content-Type', 'text/html');
166
256
  res.end(transformedHtml);
167
257
  return;
@@ -184,18 +274,38 @@ export function componentExplorer(options = {}) {
184
274
  }
185
275
  function generateEntryModule() {
186
276
  return `
277
+ import { ExplorerApp, CliRuntime } from '@vscode/component-explorer/viewer';
187
278
  import '@vscode/component-explorer/styles.css';
188
- import { ExplorerApp } from '@vscode/component-explorer';
189
279
  import { fixtures } from 'virtual:component-explorer/fixtures';
190
280
 
191
- const app = new ExplorerApp(document.getElementById('root'), fixtures);
281
+ const params = new URLSearchParams(location.search);
282
+ const root = document.getElementById('root');
283
+
284
+ const target = params.get('mode') === 'render'
285
+ ? new CliRuntime(root, fixtures)
286
+ : new ExplorerApp(root, fixtures);
287
+
288
+ const autoFixture = params.get('fixture');
289
+ if (autoFixture && target instanceof CliRuntime) {
290
+ target.renderFixture(autoFixture);
291
+ }
192
292
 
193
293
  if (import.meta.hot) {
194
294
  import.meta.hot.accept('virtual:component-explorer/fixtures', (newModule) => {
195
295
  if (newModule) {
196
- app.updateFixtures(newModule.fixtures);
296
+ target.updateFixtures(newModule.fixtures);
297
+ }
298
+ });
299
+
300
+ import.meta.hot.on('vite:afterUpdate', (payload) => {
301
+ if (payload.updates.length > 0) {
302
+ target.bumpVersion();
197
303
  }
198
304
  });
305
+
306
+ import.meta.hot.on('vite:beforeFullReload', () => {
307
+ console.log('[component-explorer] Full page reload incoming');
308
+ });
199
309
  }
200
310
  `;
201
311
  }
@@ -205,7 +315,10 @@ function generateFixturesModule(fixtureGlob) {
205
315
  export const fixtures = import.meta.glob('${normalizedGlob}', { eager: true });
206
316
  `;
207
317
  }
208
- function getExplorerHtml() {
318
+ function getExplorerHtml(daemonConfig) {
319
+ const daemonScript = daemonConfig
320
+ ? `<script>window.__EXPLORER_DAEMON__ = ${JSON.stringify({ sessionName: daemonConfig.sessionName })};</script>`
321
+ : '';
209
322
  return `<!DOCTYPE html>
210
323
  <html lang="en">
211
324
  <head>
@@ -216,6 +329,7 @@ function getExplorerHtml() {
216
329
  * { margin: 0; padding: 0; box-sizing: border-box; }
217
330
  html, body, #root { height: 100%; width: 100%; }
218
331
  </style>
332
+ ${daemonScript}
219
333
  </head>
220
334
  <body>
221
335
  <div id="root"></div>
@@ -223,6 +337,53 @@ function getExplorerHtml() {
223
337
  </body>
224
338
  </html>`;
225
339
  }
340
+ /**
341
+ * Proxies a request to the daemon's named pipe server.
342
+ */
343
+ function proxyToDaemon(req, res, pipeName, daemonPath, log) {
344
+ const body = [];
345
+ req.on('data', chunk => body.push(chunk));
346
+ req.on('end', () => {
347
+ const reqBody = Buffer.concat(body);
348
+ const options = {
349
+ socketPath: pipeName,
350
+ path: daemonPath || '/',
351
+ method: req.method,
352
+ headers: {
353
+ 'Content-Type': 'application/json',
354
+ 'Content-Length': reqBody.byteLength,
355
+ },
356
+ };
357
+ const daemonReq = http.request(options, (daemonRes) => {
358
+ const isStreaming = (daemonRes.headers['content-type'] ?? '').includes('application/jsonl');
359
+ if (isStreaming) {
360
+ res.writeHead(daemonRes.statusCode || 200, daemonRes.headers);
361
+ daemonRes.pipe(res);
362
+ res.on('close', () => { daemonReq.destroy(); });
363
+ }
364
+ else {
365
+ const chunks = [];
366
+ daemonRes.on('data', chunk => chunks.push(chunk));
367
+ daemonRes.on('end', () => {
368
+ const responseBuffer = Buffer.concat(chunks);
369
+ res.writeHead(daemonRes.statusCode || 200, daemonRes.headers);
370
+ res.end(responseBuffer);
371
+ });
372
+ }
373
+ });
374
+ daemonReq.on('error', (err) => {
375
+ if (res.writableEnded)
376
+ return;
377
+ log('info', `Daemon proxy error: ${err.message}`);
378
+ if (!res.headersSent) {
379
+ res.writeHead(503, { 'Content-Type': 'application/json' });
380
+ }
381
+ res.end(JSON.stringify({ error: 'Daemon unavailable' }));
382
+ });
383
+ daemonReq.write(reqBody);
384
+ daemonReq.end();
385
+ });
386
+ }
226
387
  function getExplorerHtmlForBuild(scriptPath, cssLinks) {
227
388
  return `<!DOCTYPE html>
228
389
  <html lang="en">
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,17 @@
1
1
  {
2
2
  "name": "@vscode/component-explorer-vite-plugin",
3
- "version": "0.1.1-2",
3
+ "version": "0.1.1-20",
4
4
  "type": "module",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/microsoft/vscode-packages.git",
8
+ "directory": "js-component-explorer/packages/vite-plugin"
9
+ },
10
+ "homepage": "https://github.com/microsoft/vscode-packages/tree/main/js-component-explorer/packages/vite-plugin",
11
+ "bugs": {
12
+ "url": "https://github.com/microsoft/vscode-packages/issues"
13
+ },
14
+ "license": "MIT",
5
15
  "main": "./dist/index.js",
6
16
  "types": "./dist/index.d.ts",
7
17
  "exports": {
@@ -11,20 +21,30 @@
11
21
  }
12
22
  },
13
23
  "files": [
14
- "dist"
24
+ "dist",
25
+ "README.md",
26
+ "LICENSE",
27
+ "SECURITY.md"
15
28
  ],
16
29
  "scripts": {
17
30
  "build": "tsc",
18
- "watch": "tsc --watch"
31
+ "dev": "tsc --watch",
32
+ "test": "vitest --run",
33
+ "test:update": "vitest --run --update"
19
34
  },
20
35
  "dependencies": {
21
36
  "tinyglobby": "^0.2.0"
22
37
  },
23
38
  "devDependencies": {
24
39
  "@vscode/component-explorer": "workspace:*",
25
- "@types/node": "^20.0.0",
40
+ "@types/node": "^22.0.0",
41
+ "@vitejs/plugin-react": "^4.3.0",
42
+ "playwright": "^1.40.0",
43
+ "react": "^18.3.0",
44
+ "react-dom": "^18.3.0",
26
45
  "typescript": "^5.4.0",
27
- "vite": "^6.0.0"
46
+ "vite": "^6.0.0",
47
+ "vitest": "^1.3.0"
28
48
  },
29
49
  "peerDependencies": {
30
50
  "@vscode/component-explorer": "*",