@storybook/addon-vitest 9.2.0-alpha.2 → 10.0.0-beta.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 (42) hide show
  1. package/README.md +2 -0
  2. package/dist/_browser-chunks/chunk-JK72E6FR.js +6 -0
  3. package/dist/_browser-chunks/chunk-PMYV6BH2.js +76 -0
  4. package/dist/_node-chunks/chunk-2LKDLHP2.js +91 -0
  5. package/dist/_node-chunks/chunk-75PF53UG.js +103 -0
  6. package/dist/_node-chunks/chunk-EZERIZC2.js +481 -0
  7. package/dist/_node-chunks/chunk-FJO43W6J.js +37 -0
  8. package/dist/_node-chunks/chunk-HIDBMPI3.js +247 -0
  9. package/dist/_node-chunks/chunk-MHHQUJAV.js +50 -0
  10. package/dist/_node-chunks/chunk-MJKNSUFZ.js +295 -0
  11. package/dist/_node-chunks/chunk-T7EST64K.js +2264 -0
  12. package/dist/index.js +9 -6
  13. package/dist/manager.js +955 -8
  14. package/dist/node/coverage-reporter.js +1898 -4
  15. package/dist/node/vitest.js +871 -17
  16. package/dist/postinstall.js +2076 -88
  17. package/dist/preset.js +615 -35
  18. package/dist/vitest-plugin/global-setup.js +200 -6
  19. package/dist/vitest-plugin/index.js +3823 -43
  20. package/dist/vitest-plugin/setup-file.js +30 -8
  21. package/dist/vitest-plugin/test-utils.js +102 -8
  22. package/manager.js +1 -1
  23. package/package.json +27 -93
  24. package/preset.js +1 -1
  25. package/dist/chunk-55WZLVGN.mjs +0 -11
  26. package/dist/chunk-JKRQGT2U.mjs +0 -10
  27. package/dist/index.mjs +0 -5
  28. package/dist/node/coverage-reporter.d.ts +0 -184
  29. package/dist/node/coverage-reporter.mjs +0 -12
  30. package/dist/node/vitest.d.ts +0 -2
  31. package/dist/node/vitest.mjs +0 -19
  32. package/dist/vitest-plugin/global-setup.d.ts +0 -6
  33. package/dist/vitest-plugin/global-setup.mjs +0 -13
  34. package/dist/vitest-plugin/index.mjs +0 -28
  35. package/dist/vitest-plugin/setup-file.d.ts +0 -14
  36. package/dist/vitest-plugin/setup-file.mjs +0 -9
  37. package/dist/vitest-plugin/test-utils.d.ts +0 -20
  38. package/dist/vitest-plugin/test-utils.mjs +0 -8
  39. package/manager.mjs +0 -1
  40. package/postinstall.js +0 -1
  41. package/postinstall.mjs +0 -1
  42. package/preset.mjs +0 -1
@@ -1,9 +1,203 @@
1
- 'use strict';
1
+ import CJS_COMPAT_NODE_URL_nt0sybtpwl from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_nt0sybtpwl from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_nt0sybtpwl from "node:module";
2
4
 
3
- var child_process = require('child_process');
4
- var nodeLogger = require('storybook/internal/node-logger');
5
+ var __filename = CJS_COMPAT_NODE_URL_nt0sybtpwl.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_nt0sybtpwl.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_nt0sybtpwl.createRequire(import.meta.url);
5
8
 
6
- var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(a,b)=>(typeof require<"u"?require:a)[b]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});var __commonJS=(cb,mod)=>function(){return mod||(0, cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod));var require_tree_kill=__commonJS({"../../node_modules/tree-kill/index.js"(exports,module){var childProcess=__require("child_process"),spawn2=childProcess.spawn,exec=childProcess.exec;module.exports=function(pid,signal,callback){if(typeof signal=="function"&&callback===void 0&&(callback=signal,signal=void 0),pid=parseInt(pid),Number.isNaN(pid)){if(callback)return callback(new Error("pid must be a number"));throw new Error("pid must be a number")}var tree={},pidsToProcess={};switch(tree[pid]=[],pidsToProcess[pid]=1,process.platform){case"win32":exec("taskkill /pid "+pid+" /T /F",callback);break;case"darwin":buildProcessTree(pid,tree,pidsToProcess,function(parentPid){return spawn2("pgrep",["-P",parentPid])},function(){killAll(tree,signal,callback);});break;default:buildProcessTree(pid,tree,pidsToProcess,function(parentPid){return spawn2("ps",["-o","pid","--no-headers","--ppid",parentPid])},function(){killAll(tree,signal,callback);});break}};function killAll(tree,signal,callback){var killed={};try{Object.keys(tree).forEach(function(pid){tree[pid].forEach(function(pidpid){killed[pidpid]||(killPid(pidpid,signal),killed[pidpid]=1);}),killed[pid]||(killPid(pid,signal),killed[pid]=1);});}catch(err){if(callback)return callback(err);throw err}if(callback)return callback()}function killPid(pid,signal){try{process.kill(parseInt(pid,10),signal);}catch(err){if(err.code!=="ESRCH")throw err}}function buildProcessTree(parentPid,tree,pidsToProcess,spawnChildProcessesList,cb){var ps=spawnChildProcessesList(parentPid),allData="";ps.stdout.on("data",function(data){var data=data.toString("ascii");allData+=data;});var onClose=function(code){if(delete pidsToProcess[parentPid],code!=0){Object.keys(pidsToProcess).length==0&&cb();return}allData.match(/\d+/g).forEach(function(pid){pid=parseInt(pid,10),tree[parentPid].push(pid),tree[pid]=[],pidsToProcess[pid]=1,buildProcessTree(pid,tree,pidsToProcess,spawnChildProcessesList,cb);});};ps.on("close",onClose);}}});var import_tree_kill=__toESM(require_tree_kill());var storybookProcess=null,getIsVitestStandaloneRun=()=>{try{return (undefined||process?.env).STORYBOOK!=="true"}catch{return !1}},isVitestStandaloneRun=getIsVitestStandaloneRun(),checkStorybookRunning=async storybookUrl=>{try{return (await fetch(`${storybookUrl}/iframe.html`,{method:"HEAD"})).ok}catch{return !1}},startStorybookIfNotRunning=async()=>{let storybookScript=process.env.__STORYBOOK_SCRIPT__,storybookUrl=process.env.__STORYBOOK_URL__;if(await checkStorybookRunning(storybookUrl)){nodeLogger.logger.verbose("Storybook is already running");return}nodeLogger.logger.verbose(`Starting Storybook with command: ${storybookScript}`);try{storybookProcess=child_process.spawn(storybookScript,[],{stdio:process.env.DEBUG==="storybook"?"pipe":"ignore",cwd:process.cwd(),shell:!0}),storybookProcess.on("error",error=>{throw nodeLogger.logger.verbose("Failed to start Storybook:"+error.message),error});}catch(error){throw nodeLogger.logger.verbose("Failed to start Storybook:"+error.message),error}},setup=async({config})=>{config.watch&&isVitestStandaloneRun&&await startStorybookIfNotRunning();},teardown=async()=>{storybookProcess&&(nodeLogger.logger.verbose("Stopping Storybook process"),await new Promise((resolve,reject)=>{storybookProcess?.pid&&(0, import_tree_kill.default)(storybookProcess.pid,"SIGTERM",error=>{if(error){nodeLogger.logger.error("Failed to stop Storybook process:"),reject(error);return}resolve();});}));};
9
+ // ------------------------------------------------------------
10
+ // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
+ // ------------------------------------------------------------
12
+ import {
13
+ __commonJS,
14
+ __name,
15
+ __require,
16
+ __toESM
17
+ } from "../_node-chunks/chunk-MHHQUJAV.js";
7
18
 
8
- exports.setup = setup;
9
- exports.teardown = teardown;
19
+ // ../../node_modules/tree-kill/index.js
20
+ var require_tree_kill = __commonJS({
21
+ "../../node_modules/tree-kill/index.js"(exports, module) {
22
+ "use strict";
23
+ var childProcess = __require("child_process");
24
+ var spawn2 = childProcess.spawn;
25
+ var exec = childProcess.exec;
26
+ module.exports = function(pid, signal, callback) {
27
+ if (typeof signal === "function" && callback === void 0) {
28
+ callback = signal;
29
+ signal = void 0;
30
+ }
31
+ pid = parseInt(pid);
32
+ if (Number.isNaN(pid)) {
33
+ if (callback) {
34
+ return callback(new Error("pid must be a number"));
35
+ } else {
36
+ throw new Error("pid must be a number");
37
+ }
38
+ }
39
+ var tree = {};
40
+ var pidsToProcess = {};
41
+ tree[pid] = [];
42
+ pidsToProcess[pid] = 1;
43
+ switch (process.platform) {
44
+ case "win32":
45
+ exec("taskkill /pid " + pid + " /T /F", callback);
46
+ break;
47
+ case "darwin":
48
+ buildProcessTree(pid, tree, pidsToProcess, function(parentPid) {
49
+ return spawn2("pgrep", ["-P", parentPid]);
50
+ }, function() {
51
+ killAll(tree, signal, callback);
52
+ });
53
+ break;
54
+ // case 'sunos':
55
+ // buildProcessTreeSunOS(pid, tree, pidsToProcess, function () {
56
+ // killAll(tree, signal, callback);
57
+ // });
58
+ // break;
59
+ default:
60
+ buildProcessTree(pid, tree, pidsToProcess, function(parentPid) {
61
+ return spawn2("ps", ["-o", "pid", "--no-headers", "--ppid", parentPid]);
62
+ }, function() {
63
+ killAll(tree, signal, callback);
64
+ });
65
+ break;
66
+ }
67
+ };
68
+ function killAll(tree, signal, callback) {
69
+ var killed = {};
70
+ try {
71
+ Object.keys(tree).forEach(function(pid) {
72
+ tree[pid].forEach(function(pidpid) {
73
+ if (!killed[pidpid]) {
74
+ killPid(pidpid, signal);
75
+ killed[pidpid] = 1;
76
+ }
77
+ });
78
+ if (!killed[pid]) {
79
+ killPid(pid, signal);
80
+ killed[pid] = 1;
81
+ }
82
+ });
83
+ } catch (err) {
84
+ if (callback) {
85
+ return callback(err);
86
+ } else {
87
+ throw err;
88
+ }
89
+ }
90
+ if (callback) {
91
+ return callback();
92
+ }
93
+ }
94
+ __name(killAll, "killAll");
95
+ function killPid(pid, signal) {
96
+ try {
97
+ process.kill(parseInt(pid, 10), signal);
98
+ } catch (err) {
99
+ if (err.code !== "ESRCH") throw err;
100
+ }
101
+ }
102
+ __name(killPid, "killPid");
103
+ function buildProcessTree(parentPid, tree, pidsToProcess, spawnChildProcessesList, cb) {
104
+ var ps = spawnChildProcessesList(parentPid);
105
+ var allData = "";
106
+ ps.stdout.on("data", function(data) {
107
+ var data = data.toString("ascii");
108
+ allData += data;
109
+ });
110
+ var onClose = /* @__PURE__ */ __name(function(code) {
111
+ delete pidsToProcess[parentPid];
112
+ if (code != 0) {
113
+ if (Object.keys(pidsToProcess).length == 0) {
114
+ cb();
115
+ }
116
+ return;
117
+ }
118
+ allData.match(/\d+/g).forEach(function(pid) {
119
+ pid = parseInt(pid, 10);
120
+ tree[parentPid].push(pid);
121
+ tree[pid] = [];
122
+ pidsToProcess[pid] = 1;
123
+ buildProcessTree(pid, tree, pidsToProcess, spawnChildProcessesList, cb);
124
+ });
125
+ }, "onClose");
126
+ ps.on("close", onClose);
127
+ }
128
+ __name(buildProcessTree, "buildProcessTree");
129
+ }
130
+ });
131
+
132
+ // src/vitest-plugin/global-setup.ts
133
+ var import_tree_kill = __toESM(require_tree_kill(), 1);
134
+ import { spawn } from "node:child_process";
135
+ import { logger } from "storybook/internal/node-logger";
136
+ var storybookProcess = null;
137
+ var getIsVitestStandaloneRun = /* @__PURE__ */ __name(() => {
138
+ try {
139
+ return (import.meta.env || process?.env).STORYBOOK !== "true";
140
+ } catch (e) {
141
+ return false;
142
+ }
143
+ }, "getIsVitestStandaloneRun");
144
+ var isVitestStandaloneRun = getIsVitestStandaloneRun();
145
+ var checkStorybookRunning = /* @__PURE__ */ __name(async (storybookUrl) => {
146
+ try {
147
+ const response = await fetch(`${storybookUrl}/iframe.html`, { method: "HEAD" });
148
+ return response.ok;
149
+ } catch {
150
+ return false;
151
+ }
152
+ }, "checkStorybookRunning");
153
+ var startStorybookIfNotRunning = /* @__PURE__ */ __name(async () => {
154
+ const storybookScript = process.env.__STORYBOOK_SCRIPT__;
155
+ const storybookUrl = process.env.__STORYBOOK_URL__;
156
+ const isRunning = await checkStorybookRunning(storybookUrl);
157
+ if (isRunning) {
158
+ logger.verbose("Storybook is already running");
159
+ return;
160
+ }
161
+ logger.verbose(`Starting Storybook with command: ${storybookScript}`);
162
+ try {
163
+ storybookProcess = spawn(storybookScript, [], {
164
+ stdio: process.env.DEBUG === "storybook" ? "pipe" : "ignore",
165
+ cwd: process.cwd(),
166
+ shell: true
167
+ });
168
+ storybookProcess.on("error", (error) => {
169
+ logger.verbose("Failed to start Storybook:" + error.message);
170
+ throw error;
171
+ });
172
+ } catch (error) {
173
+ logger.verbose("Failed to start Storybook:" + error.message);
174
+ throw error;
175
+ }
176
+ }, "startStorybookIfNotRunning");
177
+ var setup = /* @__PURE__ */ __name(async ({ config }) => {
178
+ if (config.watch && isVitestStandaloneRun) {
179
+ await startStorybookIfNotRunning();
180
+ }
181
+ }, "setup");
182
+ var teardown = /* @__PURE__ */ __name(async () => {
183
+ if (!storybookProcess) {
184
+ return;
185
+ }
186
+ logger.verbose("Stopping Storybook process");
187
+ await new Promise((resolve, reject) => {
188
+ if (storybookProcess?.pid) {
189
+ (0, import_tree_kill.default)(storybookProcess.pid, "SIGTERM", (error) => {
190
+ if (error) {
191
+ logger.error("Failed to stop Storybook process:");
192
+ reject(error);
193
+ return;
194
+ }
195
+ resolve();
196
+ });
197
+ }
198
+ });
199
+ }, "teardown");
200
+ export {
201
+ setup,
202
+ teardown
203
+ };