create-storybook 10.3.0-beta.2 → 10.3.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.
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_k4ueqr4ifbr from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_k4ueqr4ifbr from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr from "node:module";
1
+ import CJS_COMPAT_NODE_URL_r7qahwmxkrs from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_r7qahwmxkrs from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_r7qahwmxkrs from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_k4ueqr4ifbr.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_k4ueqr4ifbr.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_r7qahwmxkrs.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_r7qahwmxkrs.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_r7qahwmxkrs.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_k4ueqr4ifbr from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_k4ueqr4ifbr from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr from "node:module";
1
+ import CJS_COMPAT_NODE_URL_r7qahwmxkrs from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_r7qahwmxkrs from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_r7qahwmxkrs from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_k4ueqr4ifbr.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_k4ueqr4ifbr.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_r7qahwmxkrs.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_r7qahwmxkrs.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_r7qahwmxkrs.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -1,17 +1,17 @@
1
- import CJS_COMPAT_NODE_URL_k4ueqr4ifbr from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_k4ueqr4ifbr from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr from "node:module";
1
+ import CJS_COMPAT_NODE_URL_r7qahwmxkrs from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_r7qahwmxkrs from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_r7qahwmxkrs from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_k4ueqr4ifbr.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_k4ueqr4ifbr.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_r7qahwmxkrs.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_r7qahwmxkrs.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_r7qahwmxkrs.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
12
  import {
13
13
  __commonJS
14
- } from "./chunk-4RVUZUTM.js";
14
+ } from "./chunk-FU7DLKSJ.js";
15
15
 
16
16
  // ../../../node_modules/ts-dedent/dist/index.js
17
17
  var require_dist = __commonJS({
@@ -1,27 +1,27 @@
1
- import CJS_COMPAT_NODE_URL_k4ueqr4ifbr from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_k4ueqr4ifbr from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr from "node:module";
1
+ import CJS_COMPAT_NODE_URL_r7qahwmxkrs from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_r7qahwmxkrs from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_r7qahwmxkrs from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_k4ueqr4ifbr.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_k4ueqr4ifbr.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_r7qahwmxkrs.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_r7qahwmxkrs.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_r7qahwmxkrs.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
12
  import {
13
13
  require_dist
14
- } from "./chunk-QX5ZTUHG.js";
14
+ } from "./chunk-QZE4VZQA.js";
15
15
  import {
16
16
  dirname,
17
17
  normalize,
18
18
  relative,
19
19
  resolve
20
- } from "./chunk-CG2GBBCY.js";
20
+ } from "./chunk-G5LZA6KN.js";
21
21
  import {
22
22
  __commonJS,
23
23
  __toESM
24
- } from "./chunk-4RVUZUTM.js";
24
+ } from "./chunk-FU7DLKSJ.js";
25
25
 
26
26
  // ../../../node_modules/picocolors/picocolors.js
27
27
  var require_picocolors = __commonJS({
@@ -422,6 +422,8 @@ var VersionService = class {
422
422
  return "create-rsbuild";
423
423
  if (ancestor.command?.includes("@tanstack/start"))
424
424
  return "@tanstack/start";
425
+ if (ancestor.command?.includes("vike"))
426
+ return "vike";
425
427
  }
426
428
  }
427
429
  /** Get version info including current, latest, and prerelease status */
@@ -1501,16 +1503,17 @@ var STORE_CHANNEL_EVENT_NAME = `UNIVERSAL_STORE:${storeOptions.id}`;
1501
1503
  var TRIGGER_TEST_RUN_REQUEST = `${ADDON_ID3}/trigger-test-run-request`, TRIGGER_TEST_RUN_RESPONSE = `${ADDON_ID3}/trigger-test-run-response`;
1502
1504
 
1503
1505
  // ../../addons/vitest/src/updateVitestFile.ts
1506
+ import { resolveExpression } from "storybook/internal/babel";
1504
1507
  async function getTemplatePath(name) {
1505
1508
  switch (name) {
1506
1509
  case "vitest.config.template":
1507
- return import("./vitest.config-WAX2VKNT.js");
1510
+ return import("./vitest.config-3TO6ZZQB.js");
1508
1511
  case "vitest.config.4.template":
1509
- return import("./vitest.config.4-TSKSE3SD.js");
1512
+ return import("./vitest.config.4-H5DUMSJZ.js");
1510
1513
  case "vitest.config.3.2.template":
1511
- return import("./vitest.config.3.2-2PMEMG7J.js");
1514
+ return import("./vitest.config.3.2-SH7FBPFF.js");
1512
1515
  case "vitest.workspace.template":
1513
- return import("./vitest.workspace-MKQBJRZX.js");
1516
+ return import("./vitest.workspace-PRDAF6M5.js");
1514
1517
  default:
1515
1518
  throw new Error(`Unknown template: ${name}`);
1516
1519
  }
@@ -1528,27 +1531,145 @@ var loadTemplate = async (name, replacements) => {
1528
1531
  );
1529
1532
  targetProp && targetProp.type === "ObjectProperty" ? sourceProp.value.type === "ObjectExpression" && targetProp.value.type === "ObjectExpression" ? mergeProperties(sourceProp.value.properties, targetProp.value.properties) : sourceProp.value.type === "ArrayExpression" && targetProp.value.type === "ArrayExpression" ? targetProp.value.elements.push(...sourceProp.value.elements) : targetProp.value = sourceProp.value : target.push(sourceProp);
1530
1533
  }
1531
- }, getTargetConfigObject = (target, exportDefault) => {
1532
- let decl = exportDefault.declaration;
1533
- if (decl.type === "ObjectExpression")
1534
- return decl;
1535
- if (decl.type === "CallExpression" && decl.callee.type === "Identifier" && decl.callee.name === "defineConfig" && decl.arguments[0]?.type === "ObjectExpression")
1536
- return decl.arguments[0];
1537
- if (decl.type === "Identifier") {
1538
- let varName = decl.name, varDecl = target.program.body.find(
1539
- (n) => n.type === "VariableDeclaration" && n.declarations.some((d) => d.id.type === "Identifier" && d.id.name === varName)
1534
+ }, isImportedDefineConfigLikeIdentifier = (localName, ast) => ast.program.body.some(
1535
+ (node) => node.type === "ImportDeclaration" && (node.source.value === "vitest/config" || node.source.value === "vite") && node.specifiers.some(
1536
+ (specifier) => specifier.type === "ImportSpecifier" && specifier.local.type === "Identifier" && specifier.local.name === localName && specifier.imported.type === "Identifier" && (specifier.imported.name === "defineConfig" || specifier.imported.name === "defineProject")
1537
+ )
1538
+ ), isDefineConfigLike = (node, ast) => node.callee.type === "Identifier" && (node.callee.name === "defineConfig" || node.callee.name === "defineProject" || isImportedDefineConfigLikeIdentifier(node.callee.name, ast)), getConfigObjectFromMergeArg = (arg, ast) => {
1539
+ let resolved = resolveExpression(arg, ast);
1540
+ return resolved ? resolved.type === "ObjectExpression" ? resolved : resolved.type === "CallExpression" && resolved.arguments[0]?.type === "ObjectExpression" ? resolved.arguments[0] : null : null;
1541
+ }, resolveTestPropValue = (testProp, ast) => {
1542
+ if (testProp.value.type === "ObjectExpression")
1543
+ return testProp.value;
1544
+ let resolved = resolveExpression(testProp.value, ast);
1545
+ return resolved?.type === "ObjectExpression" ? resolved : null;
1546
+ }, findNamedProp = (properties, name) => properties.find(
1547
+ (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === name
1548
+ ), isWorkspaceOrProjectsArrayProp = (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && (p.key.name === "workspace" || p.key.name === "projects") && p.value.type === "ArrayExpression", appendToExistingProjectRefs = (existingProjectRefsProp, resolvedTestValue, templateTestProp, properties, targetConfigObject) => {
1549
+ let existingKeyName = existingProjectRefsProp.key.type === "Identifier" ? existingProjectRefsProp.key.name : null;
1550
+ if (templateTestProp && templateTestProp.value.type === "ObjectExpression") {
1551
+ let templateProjectRefsProp = templateTestProp.value.properties.find(
1552
+ (p) => isWorkspaceOrProjectsArrayProp(p) && (existingKeyName === null || p.key.type === "Identifier" && p.key.name === existingKeyName)
1540
1553
  );
1541
- if (!varDecl)
1542
- return null;
1543
- let declarator = varDecl.declarations.find(
1544
- (d) => d.id.type === "Identifier" && d.id.name === varName
1554
+ templateProjectRefsProp && templateProjectRefsProp.value.type === "ArrayExpression" && existingProjectRefsProp.value.elements.push(
1555
+ ...templateProjectRefsProp.value.elements
1545
1556
  );
1546
- if (!declarator?.init)
1547
- return null;
1548
- let init = declarator.init;
1549
- return init.type === "CallExpression" && init.callee.type === "Identifier" && init.callee.name === "defineConfig" && init.arguments[0]?.type === "ObjectExpression" ? init.arguments[0] : init.type === "ObjectExpression" ? init : null;
1557
+ let existingTestPropNames = new Set(
1558
+ resolvedTestValue.properties.filter(
1559
+ (p) => p.type === "ObjectProperty" && p.key.type === "Identifier"
1560
+ ).map((p) => p.key.name)
1561
+ );
1562
+ for (let templateProp of templateTestProp.value.properties)
1563
+ templateProp.type === "ObjectProperty" && templateProp.key.type === "Identifier" && templateProp.key.name !== "projects" && templateProp.key.name !== "workspace" && !existingTestPropNames.has(templateProp.key.name) && resolvedTestValue.properties.push(templateProp);
1564
+ }
1565
+ let otherTemplateProps = properties.filter(
1566
+ (p) => !(p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "test")
1567
+ );
1568
+ otherTemplateProps.length > 0 && mergeProperties(otherTemplateProps, targetConfigObject.properties);
1569
+ }, wrapTestConfigAsProject = (resolvedTestValue, existingTestProp, templateTestProp, properties, targetConfigObject) => {
1570
+ let workspaceOrProjectsProp = templateTestProp.value.type === "ObjectExpression" ? templateTestProp.value.properties.find(
1571
+ (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && (p.key.name === "workspace" || p.key.name === "projects")
1572
+ ) : void 0;
1573
+ if (!workspaceOrProjectsProp || workspaceOrProjectsProp.value.type !== "ArrayExpression") {
1574
+ mergeProperties(properties, targetConfigObject.properties);
1575
+ return;
1576
+ }
1577
+ let topLevelProps = [
1578
+ "shard",
1579
+ "watch",
1580
+ "run",
1581
+ "cache",
1582
+ "update",
1583
+ "reporters",
1584
+ "outputFile",
1585
+ "teardownTimeout",
1586
+ "silent",
1587
+ "forceRerunTriggers",
1588
+ "testNamePattern",
1589
+ "ui",
1590
+ "open",
1591
+ "uiBase",
1592
+ "snapshotFormat",
1593
+ "resolveSnapshotPath",
1594
+ "passWithNoTests",
1595
+ "onConsoleLog",
1596
+ "onStackTrace",
1597
+ "dangerouslyIgnoreUnhandledErrors",
1598
+ "slowTestThreshold",
1599
+ "inspect",
1600
+ "inspectBrk",
1601
+ "coverage",
1602
+ "watchTriggerPatterns"
1603
+ ].map(
1604
+ (name) => findNamedProp(resolvedTestValue.properties, name)
1605
+ ).filter(Boolean), topLevelPropSet = new Set(topLevelProps), projectTestProps = resolvedTestValue.properties.filter(
1606
+ (p) => !topLevelPropSet.has(p)
1607
+ ), existingTestProject = {
1608
+ type: "ObjectExpression",
1609
+ properties: [
1610
+ {
1611
+ type: "ObjectProperty",
1612
+ key: { type: "Identifier", name: "extends" },
1613
+ value: { type: "BooleanLiteral", value: !0 },
1614
+ computed: !1,
1615
+ shorthand: !1
1616
+ },
1617
+ {
1618
+ type: "ObjectProperty",
1619
+ key: { type: "Identifier", name: "test" },
1620
+ value: {
1621
+ type: "ObjectExpression",
1622
+ properties: projectTestProps
1623
+ },
1624
+ computed: !1,
1625
+ shorthand: !1
1626
+ }
1627
+ ]
1628
+ };
1629
+ workspaceOrProjectsProp.value.elements.unshift(existingTestProject), targetConfigObject.properties = targetConfigObject.properties.filter(
1630
+ (p) => p !== existingTestProp
1631
+ ), topLevelProps.length > 0 && templateTestProp.value.type === "ObjectExpression" && templateTestProp.value.properties.unshift(...topLevelProps), mergeProperties(properties, targetConfigObject.properties);
1632
+ }, mergeTemplateIntoConfigObject = (targetConfigObject, properties, target) => {
1633
+ let existingTestProp = findNamedProp(targetConfigObject.properties, "test"), resolvedTestValue = existingTestProp ? resolveTestPropValue(existingTestProp, target) : null, templateTestProp = findNamedProp(properties, "test");
1634
+ if (existingTestProp && resolvedTestValue !== null) {
1635
+ let existingProjectRefsProp = resolvedTestValue.properties.find(
1636
+ isWorkspaceOrProjectsArrayProp
1637
+ );
1638
+ if (existingProjectRefsProp) {
1639
+ appendToExistingProjectRefs(
1640
+ existingProjectRefsProp,
1641
+ resolvedTestValue,
1642
+ templateTestProp,
1643
+ properties,
1644
+ targetConfigObject
1645
+ );
1646
+ return;
1647
+ }
1648
+ if (templateTestProp && templateTestProp.value.type === "ObjectExpression") {
1649
+ wrapTestConfigAsProject(
1650
+ resolvedTestValue,
1651
+ existingTestProp,
1652
+ templateTestProp,
1653
+ properties,
1654
+ targetConfigObject
1655
+ );
1656
+ return;
1657
+ }
1550
1658
  }
1551
- return null;
1659
+ mergeProperties(properties, targetConfigObject.properties);
1660
+ }, getEffectiveMergeConfigCall = (decl, ast) => {
1661
+ let resolved = resolveExpression(decl, ast);
1662
+ if (!resolved || resolved.type !== "CallExpression")
1663
+ return null;
1664
+ if (isDefineConfigLike(resolved, ast) && resolved.arguments.length > 0) {
1665
+ let innerArg = resolveExpression(resolved.arguments[0], ast);
1666
+ if (innerArg?.type === "CallExpression" && innerArg.callee.type === "Identifier" && innerArg.callee.name === "mergeConfig")
1667
+ return innerArg;
1668
+ }
1669
+ return resolved.callee.type === "Identifier" && resolved.callee.name === "mergeConfig" ? resolved : null;
1670
+ }, getTargetConfigObject = (target, exportDefault) => {
1671
+ let resolved = resolveExpression(exportDefault.declaration, target);
1672
+ return resolved ? resolved.type === "ObjectExpression" ? resolved : resolved.type === "CallExpression" && isDefineConfigLike(resolved, target) && resolved.arguments[0]?.type === "ObjectExpression" ? resolved.arguments[0] : null : null;
1552
1673
  }, updateConfigFile = (source, target) => {
1553
1674
  let updated = !1, sourceExportDefault = source.program.body.find(
1554
1675
  (n) => n.type === "ExportDefaultDeclaration"
@@ -1560,20 +1681,11 @@ var loadTemplate = async (name, replacements) => {
1560
1681
  );
1561
1682
  if (!targetExportDefault)
1562
1683
  return !1;
1563
- let rejectFunctionNotation = (decl) => decl.type === "CallExpression" && decl.callee.type === "Identifier" && decl.callee.name === "defineConfig" && decl.arguments.length > 0 && decl.arguments[0].type === "ArrowFunctionExpression";
1564
- if (targetExportDefault.declaration.type === "CallExpression" && rejectFunctionNotation(targetExportDefault.declaration))
1684
+ let effectiveDecl = resolveExpression(targetExportDefault.declaration, target);
1685
+ if (effectiveDecl?.type === "CallExpression" && isDefineConfigLike(effectiveDecl, target) && effectiveDecl.arguments.length > 0 && effectiveDecl.arguments[0].type === "ArrowFunctionExpression")
1565
1686
  return !1;
1566
- if (targetExportDefault.declaration.type === "Identifier") {
1567
- let varName = targetExportDefault.declaration.name, declarator = target.program.body.find(
1568
- (n) => n.type === "VariableDeclaration" && n.declarations.some((d) => d.id.type === "Identifier" && d.id.name === varName)
1569
- )?.declarations.find(
1570
- (d) => d.id.type === "Identifier" && d.id.name === varName
1571
- );
1572
- if (declarator?.init?.type === "CallExpression" && rejectFunctionNotation(declarator.init))
1573
- return !1;
1574
- }
1575
1687
  let canHandleConfig = !1;
1576
- if ((getTargetConfigObject(target, targetExportDefault) !== null || targetExportDefault.declaration.type === "CallExpression" && targetExportDefault.declaration.callee.type === "Identifier" && targetExportDefault.declaration.callee.name === "mergeConfig" && targetExportDefault.declaration.arguments.length >= 2) && (canHandleConfig = !0), !canHandleConfig)
1688
+ if ((getTargetConfigObject(target, targetExportDefault) !== null || getEffectiveMergeConfigCall(targetExportDefault.declaration, target) !== null) && (canHandleConfig = !0), !canHandleConfig)
1577
1689
  return !1;
1578
1690
  for (let sourceNode of source.program.body)
1579
1691
  if (sourceNode.type === "ImportDeclaration") {
@@ -1597,84 +1709,24 @@ var loadTemplate = async (name, replacements) => {
1597
1709
  if (exportDefault && sourceNode.declaration.type === "CallExpression" && sourceNode.declaration.arguments.length > 0 && sourceNode.declaration.arguments[0].type === "ObjectExpression") {
1598
1710
  let { properties } = sourceNode.declaration.arguments[0], targetConfigObject = getTargetConfigObject(target, exportDefault);
1599
1711
  if (targetConfigObject !== null)
1600
- mergeProperties(properties, targetConfigObject.properties), updated = !0;
1601
- else if (exportDefault.declaration.type === "CallExpression" && exportDefault.declaration.callee.type === "Identifier" && exportDefault.declaration.callee.name === "mergeConfig" && exportDefault.declaration.arguments.length >= 2) {
1602
- let configObjectNodes = [];
1603
- for (let arg of exportDefault.declaration.arguments)
1604
- arg?.type === "CallExpression" && arg.callee.type === "Identifier" && arg.callee.name === "defineConfig" && arg.arguments[0]?.type === "ObjectExpression" ? configObjectNodes.push(arg.arguments[0]) : arg?.type === "ObjectExpression" && configObjectNodes.push(arg);
1605
- let targetConfigObject2 = configObjectNodes.find(
1606
- (obj) => obj.properties.some(
1607
- (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "test"
1608
- )
1609
- ) || configObjectNodes[0];
1610
- if (!targetConfigObject2)
1611
- return !1;
1612
- let existingTestProp = targetConfigObject2.properties.find(
1613
- (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "test"
1614
- );
1615
- if (existingTestProp && existingTestProp.value.type === "ObjectExpression") {
1616
- let templateTestProp = properties.find(
1617
- (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "test"
1618
- ), hasProjectsProp = (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "projects" && p.value.type === "ArrayExpression", existingProjectsProp = existingTestProp.value.properties.find(hasProjectsProp);
1619
- if (existingProjectsProp) {
1620
- if (templateTestProp && templateTestProp.value.type === "ObjectExpression") {
1621
- let templateProjectsProp = templateTestProp.value.properties.find(hasProjectsProp);
1622
- if (templateProjectsProp && templateProjectsProp.value.type === "ArrayExpression") {
1623
- let templateElements = templateProjectsProp.value.elements;
1624
- existingProjectsProp.value.elements.push(
1625
- ...templateElements
1626
- );
1627
- }
1628
- for (let templateProp of templateTestProp.value.properties)
1629
- templateProp.type === "ObjectProperty" && templateProp.key.type === "Identifier" && templateProp.key.name !== "projects" && !existingTestProp.value.properties.find(
1630
- (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === templateProp.key.name
1631
- ) && templateProp.type === "ObjectProperty" && existingTestProp.value.properties.push(templateProp);
1632
- }
1633
- let otherTemplateProps = properties.filter(
1634
- (p) => !(p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "test")
1635
- );
1636
- otherTemplateProps.length > 0 && mergeProperties(otherTemplateProps, targetConfigObject2.properties);
1637
- } else if (templateTestProp && templateTestProp.value.type === "ObjectExpression") {
1638
- let workspaceOrProjectsProp = templateTestProp.value.properties.find(
1639
- (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && (p.key.name === "workspace" || p.key.name === "projects")
1640
- );
1641
- if (workspaceOrProjectsProp && workspaceOrProjectsProp.value.type === "ArrayExpression") {
1642
- let coverageProp = existingTestProp.value.properties.find(
1643
- (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "coverage"
1644
- ), testConfigForProject = {
1645
- type: "ObjectExpression",
1646
- properties: existingTestProp.value.properties.filter(
1647
- (p) => p !== coverageProp
1648
- )
1649
- }, existingTestProject = {
1650
- type: "ObjectExpression",
1651
- properties: [
1652
- {
1653
- type: "ObjectProperty",
1654
- key: { type: "Identifier", name: "extends" },
1655
- value: { type: "BooleanLiteral", value: !0 },
1656
- computed: !1,
1657
- shorthand: !1
1658
- },
1659
- {
1660
- type: "ObjectProperty",
1661
- key: { type: "Identifier", name: "test" },
1662
- value: testConfigForProject,
1663
- computed: !1,
1664
- shorthand: !1
1665
- }
1666
- ]
1667
- };
1668
- workspaceOrProjectsProp.value.elements.unshift(existingTestProject), targetConfigObject2.properties = targetConfigObject2.properties.filter(
1669
- (p) => p !== existingTestProp
1670
- ), coverageProp && templateTestProp.value.type === "ObjectExpression" && templateTestProp.value.properties.unshift(coverageProp), mergeProperties(properties, targetConfigObject2.properties);
1671
- } else
1672
- mergeProperties(properties, targetConfigObject2.properties);
1673
- } else
1674
- mergeProperties(properties, targetConfigObject2.properties);
1675
- } else
1676
- mergeProperties(properties, targetConfigObject2.properties);
1677
- updated = !0;
1712
+ mergeTemplateIntoConfigObject(targetConfigObject, properties, target), updated = !0;
1713
+ else {
1714
+ let mergeConfigCall = getEffectiveMergeConfigCall(exportDefault.declaration, target);
1715
+ if (mergeConfigCall && mergeConfigCall.arguments.length >= 2) {
1716
+ let configObjectNodes = [];
1717
+ for (let arg of mergeConfigCall.arguments) {
1718
+ let configObject = getConfigObjectFromMergeArg(arg, target);
1719
+ configObject && configObjectNodes.push(configObject);
1720
+ }
1721
+ let targetConfigObject2 = configObjectNodes.find(
1722
+ (obj) => obj.properties.some(
1723
+ (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "test"
1724
+ )
1725
+ ) || configObjectNodes[0];
1726
+ if (!targetConfigObject2)
1727
+ return !1;
1728
+ mergeTemplateIntoConfigObject(targetConfigObject2, properties, target), updated = !0;
1729
+ }
1678
1730
  }
1679
1731
  }
1680
1732
  }
@@ -1778,7 +1830,7 @@ async function postInstall(options) {
1778
1830
  "vitest.shims.d.ts",
1779
1831
  isVitest4OrNewer ? '/// <reference types="@vitest/browser-playwright" />' : '/// <reference types="@vitest/browser/providers/playwright" />'
1780
1832
  );
1781
- let getTemplateName = () => isVitest4OrNewer ? "vitest.config.4.template" : isVitest3_2To4 ? "vitest.config.3.2.template" : "vitest.config.template";
1833
+ let getTemplateName = (configContent) => isVitest4OrNewer ? "vitest.config.4.template" : isVitest3_2To4 ? configContent && configUsesWorkspace(configContent) ? "vitest.config.template" : "vitest.config.3.2.template" : "vitest.config.template";
1782
1834
  if (vitestWorkspaceFile) {
1783
1835
  let workspaceFileContent = await fs.readFile(vitestWorkspaceFile, "utf8");
1784
1836
  if (isConfigAlreadySetup(vitestWorkspaceFile, workspaceFileContent)) {
@@ -1814,7 +1866,7 @@ async function postInstall(options) {
1814
1866
  } else if (rootConfig) {
1815
1867
  let target, updated, configFile = await fs.readFile(rootConfig, "utf8"), configFileHasTypeReference = configFile.match(
1816
1868
  /\/\/\/\s*<reference\s+types=["']vitest\/config["']\s*\/>/
1817
- ), templateName = getTemplateName(), alreadyConfigured = isConfigAlreadySetup(rootConfig, configFile);
1869
+ ), templateName = getTemplateName(configFile), alreadyConfigured = isConfigAlreadySetup(rootConfig, configFile);
1818
1870
  if (templateName && !alreadyConfigured) {
1819
1871
  let configTemplate = await loadTemplate(templateName, {
1820
1872
  CONFIG_DIR: options.configDir
@@ -1931,6 +1983,28 @@ function isConfigAlreadySetup(_configPath, configContent) {
1931
1983
  }
1932
1984
  }), pluginReferenced;
1933
1985
  }
1986
+ function configUsesWorkspace(configContent) {
1987
+ let ast;
1988
+ try {
1989
+ ast = babelParse(configContent);
1990
+ } catch {
1991
+ return !1;
1992
+ }
1993
+ let found = !1;
1994
+ return traverse(ast, {
1995
+ ObjectProperty(path) {
1996
+ if (found) {
1997
+ path.stop();
1998
+ return;
1999
+ }
2000
+ let key = path.node.key;
2001
+ if (key.type === "Identifier" && key.name === "workspace") {
2002
+ let parent = path.parentPath?.parentPath;
2003
+ parent?.isObjectProperty() && parent.node.key.type === "Identifier" && parent.node.key.name === "test" && (found = !0, path.stop());
2004
+ }
2005
+ }
2006
+ }), found;
2007
+ }
1934
2008
 
1935
2009
  // src/commands/AddonConfigurationCommand.ts
1936
2010
  var ADDON_INSTALLATION_INSTRUCTIONS = {
@@ -1984,7 +2058,7 @@ var ADDON_INSTALLATION_INSTRUCTIONS = {
1984
2058
  }
1985
2059
  /** Configure test addons (a11y and vitest) */
1986
2060
  async configureAddons(configDir, addons) {
1987
- let { postinstallAddon } = await import("./postinstallAddon-YNZJDYQA.js"), task = prompt6.taskLog({
2061
+ let { postinstallAddon } = await import("./postinstallAddon-WEQ7RNTP.js"), task = prompt6.taskLog({
1988
2062
  id: "configure-addons",
1989
2063
  title: "Configuring addons..."
1990
2064
  }), addonResults = /* @__PURE__ */ new Map();
@@ -1,16 +1,16 @@
1
- import CJS_COMPAT_NODE_URL_k4ueqr4ifbr from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_k4ueqr4ifbr from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr from "node:module";
1
+ import CJS_COMPAT_NODE_URL_r7qahwmxkrs from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_r7qahwmxkrs from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_r7qahwmxkrs from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_k4ueqr4ifbr.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_k4ueqr4ifbr.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_r7qahwmxkrs.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_r7qahwmxkrs.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_r7qahwmxkrs.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
- import "./chunk-CG2GBBCY.js";
13
- import "./chunk-4RVUZUTM.js";
12
+ import "./chunk-G5LZA6KN.js";
13
+ import "./chunk-FU7DLKSJ.js";
14
14
 
15
15
  // ../cli-storybook/src/postinstallAddon.ts
16
16
  import { createRequire as createRequire2 } from "node:module";
@@ -1,24 +1,24 @@
1
- import CJS_COMPAT_NODE_URL_k4ueqr4ifbr from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_k4ueqr4ifbr from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr from "node:module";
1
+ import CJS_COMPAT_NODE_URL_r7qahwmxkrs from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_r7qahwmxkrs from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_r7qahwmxkrs from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_k4ueqr4ifbr.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_k4ueqr4ifbr.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_r7qahwmxkrs.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_r7qahwmxkrs.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_r7qahwmxkrs.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
12
  import {
13
13
  initiate
14
- } from "./chunk-U6PJ3NQJ.js";
15
- import "./chunk-QX5ZTUHG.js";
16
- import "./chunk-CG2GBBCY.js";
14
+ } from "./chunk-VAA4M7OS.js";
15
+ import "./chunk-QZE4VZQA.js";
16
+ import "./chunk-G5LZA6KN.js";
17
17
  import {
18
18
  __commonJS,
19
19
  __require,
20
20
  __toESM
21
- } from "./chunk-4RVUZUTM.js";
21
+ } from "./chunk-FU7DLKSJ.js";
22
22
 
23
23
  // ../../../node_modules/commander/lib/error.js
24
24
  var require_error = __commonJS({
@@ -2621,7 +2621,7 @@ var import_index = __toESM(require_commander(), 1), {
2621
2621
  } = import_index.default;
2622
2622
 
2623
2623
  // package.json
2624
- var version = "10.3.0-beta.2";
2624
+ var version = "10.3.0";
2625
2625
 
2626
2626
  // src/bin/run.ts
2627
2627
  addToGlobalContext("cliVersion", version);
@@ -1,15 +1,15 @@
1
- import CJS_COMPAT_NODE_URL_k4ueqr4ifbr from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_k4ueqr4ifbr from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr from "node:module";
1
+ import CJS_COMPAT_NODE_URL_r7qahwmxkrs from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_r7qahwmxkrs from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_r7qahwmxkrs from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_k4ueqr4ifbr.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_k4ueqr4ifbr.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_r7qahwmxkrs.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_r7qahwmxkrs.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_r7qahwmxkrs.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
- import "./chunk-4RVUZUTM.js";
12
+ import "./chunk-FU7DLKSJ.js";
13
13
 
14
14
  // raw:../templates/vitest.config.template
15
15
  var vitest_config_default = `import path from 'node:path';
@@ -1,15 +1,15 @@
1
- import CJS_COMPAT_NODE_URL_k4ueqr4ifbr from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_k4ueqr4ifbr from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr from "node:module";
1
+ import CJS_COMPAT_NODE_URL_r7qahwmxkrs from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_r7qahwmxkrs from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_r7qahwmxkrs from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_k4ueqr4ifbr.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_k4ueqr4ifbr.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_r7qahwmxkrs.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_r7qahwmxkrs.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_r7qahwmxkrs.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
- import "./chunk-4RVUZUTM.js";
12
+ import "./chunk-FU7DLKSJ.js";
13
13
 
14
14
  // raw:../templates/vitest.config.3.2.template
15
15
  var vitest_config_3_2_default = `import path from 'node:path';
@@ -1,15 +1,15 @@
1
- import CJS_COMPAT_NODE_URL_k4ueqr4ifbr from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_k4ueqr4ifbr from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr from "node:module";
1
+ import CJS_COMPAT_NODE_URL_r7qahwmxkrs from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_r7qahwmxkrs from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_r7qahwmxkrs from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_k4ueqr4ifbr.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_k4ueqr4ifbr.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_r7qahwmxkrs.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_r7qahwmxkrs.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_r7qahwmxkrs.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
- import "./chunk-4RVUZUTM.js";
12
+ import "./chunk-FU7DLKSJ.js";
13
13
 
14
14
  // raw:../templates/vitest.config.4.template
15
15
  var vitest_config_4_default = `import path from 'node:path';
@@ -1,15 +1,15 @@
1
- import CJS_COMPAT_NODE_URL_k4ueqr4ifbr from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_k4ueqr4ifbr from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr from "node:module";
1
+ import CJS_COMPAT_NODE_URL_r7qahwmxkrs from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_r7qahwmxkrs from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_r7qahwmxkrs from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_k4ueqr4ifbr.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_k4ueqr4ifbr.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_r7qahwmxkrs.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_r7qahwmxkrs.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_r7qahwmxkrs.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
- import "./chunk-4RVUZUTM.js";
12
+ import "./chunk-FU7DLKSJ.js";
13
13
 
14
14
  // raw:../templates/vitest.workspace.template
15
15
  var vitest_workspace_default = `import path from 'node:path';
package/dist/bin/index.js CHANGED
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
- import CJS_COMPAT_NODE_URL_k4ueqr4ifbr from 'node:url';
3
- import CJS_COMPAT_NODE_PATH_k4ueqr4ifbr from 'node:path';
4
- import CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr from "node:module";
2
+ import CJS_COMPAT_NODE_URL_r7qahwmxkrs from 'node:url';
3
+ import CJS_COMPAT_NODE_PATH_r7qahwmxkrs from 'node:path';
4
+ import CJS_COMPAT_NODE_MODULE_r7qahwmxkrs from "node:module";
5
5
 
6
- var __filename = CJS_COMPAT_NODE_URL_k4ueqr4ifbr.fileURLToPath(import.meta.url);
7
- var __dirname = CJS_COMPAT_NODE_PATH_k4ueqr4ifbr.dirname(__filename);
8
- var require = CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr.createRequire(import.meta.url);
6
+ var __filename = CJS_COMPAT_NODE_URL_r7qahwmxkrs.fileURLToPath(import.meta.url);
7
+ var __dirname = CJS_COMPAT_NODE_PATH_r7qahwmxkrs.dirname(__filename);
8
+ var require = CJS_COMPAT_NODE_MODULE_r7qahwmxkrs.createRequire(import.meta.url);
9
9
 
10
10
  // ------------------------------------------------------------
11
11
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
12
12
  // ------------------------------------------------------------
13
13
  import {
14
14
  require_dist
15
- } from "../_node-chunks/chunk-QX5ZTUHG.js";
15
+ } from "../_node-chunks/chunk-QZE4VZQA.js";
16
16
  import {
17
17
  __toESM
18
- } from "../_node-chunks/chunk-4RVUZUTM.js";
18
+ } from "../_node-chunks/chunk-FU7DLKSJ.js";
19
19
 
20
20
  // src/bin/index.ts
21
21
  var import_ts_dedent = __toESM(require_dist(), 1);
@@ -25,4 +25,4 @@ var [majorNodeVersion, minorNodeVersion] = process.versions.node.split(".").map(
25
25
  import_ts_dedent.dedent`To run Storybook, you need Node.js version 20.19+ or 22.12+.
26
26
  You are currently running Node.js ${process.version}. Please upgrade your Node.js installation.`
27
27
  ), process.exit(1));
28
- import("../_node-chunks/run-H4NX6LHL.js");
28
+ import("../_node-chunks/run-LNUV2OSJ.js");
package/dist/index.js CHANGED
@@ -1,20 +1,20 @@
1
- import CJS_COMPAT_NODE_URL_k4ueqr4ifbr from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_k4ueqr4ifbr from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr from "node:module";
1
+ import CJS_COMPAT_NODE_URL_r7qahwmxkrs from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_r7qahwmxkrs from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_r7qahwmxkrs from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_k4ueqr4ifbr.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_k4ueqr4ifbr.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_k4ueqr4ifbr.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_r7qahwmxkrs.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_r7qahwmxkrs.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_r7qahwmxkrs.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
12
  import {
13
13
  doInitiate
14
- } from "./_node-chunks/chunk-U6PJ3NQJ.js";
15
- import "./_node-chunks/chunk-QX5ZTUHG.js";
16
- import "./_node-chunks/chunk-CG2GBBCY.js";
17
- import "./_node-chunks/chunk-4RVUZUTM.js";
14
+ } from "./_node-chunks/chunk-VAA4M7OS.js";
15
+ import "./_node-chunks/chunk-QZE4VZQA.js";
16
+ import "./_node-chunks/chunk-G5LZA6KN.js";
17
+ import "./_node-chunks/chunk-FU7DLKSJ.js";
18
18
  export {
19
19
  doInitiate as initiate
20
20
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-storybook",
3
- "version": "10.3.0-beta.2",
3
+ "version": "10.3.0",
4
4
  "description": "Storybook installer: Develop, document, and test UI components in isolation",
5
5
  "keywords": [
6
6
  "storybook",
@@ -39,7 +39,7 @@
39
39
  ],
40
40
  "dependencies": {
41
41
  "semver": "^7.7.3",
42
- "storybook": "10.3.0-beta.2"
42
+ "storybook": "10.3.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/prompts": "^2.0.9",