storybook 10.6.0-beta.2 → 10.6.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.
- package/dist/_node-chunks/{attached-runtime-4LYNE56D.js → attached-runtime-OD2MHCQ2.js} +63 -110
- package/dist/_node-chunks/{builder-manager-LZCFZ4BC.js → builder-manager-TBY7BTS6.js} +13 -13
- package/dist/_node-chunks/{camelcase-S5RJPIWM.js → camelcase-GPBUWO7L.js} +7 -7
- package/dist/_node-chunks/{chunk-OHSFBZGR.js → chunk-2BMSH5CU.js} +7 -7
- package/dist/_node-chunks/{chunk-VJRD3KJS.js → chunk-2J2NU66Q.js} +6 -6
- package/dist/_node-chunks/{chunk-ELQM5TSS.js → chunk-2WYCRIJA.js} +8 -8
- package/dist/_node-chunks/{chunk-3EZOYVDD.js → chunk-4C4AXOGG.js} +7 -7
- package/dist/_node-chunks/{chunk-7STJOIKR.js → chunk-4CTPDGB7.js} +29 -44
- package/dist/_node-chunks/{chunk-TD66FMTK.js → chunk-4US4PNS3.js} +6 -6
- package/dist/_node-chunks/{chunk-RFRDPYB3.js → chunk-52XR72NR.js} +7 -7
- package/dist/_node-chunks/{chunk-KDQYQXK4.js → chunk-5DGTSUE6.js} +11 -11
- package/dist/_node-chunks/{chunk-S4NILJLO.js → chunk-5EYYAT2W.js} +9 -9
- package/dist/_node-chunks/{chunk-M4B2FU7J.js → chunk-5G6TGQDE.js} +8 -8
- package/dist/_node-chunks/{chunk-NVAKATDJ.js → chunk-5VUZRITZ.js} +31 -31
- package/dist/_node-chunks/{chunk-IBEQGW6M.js → chunk-5XWVTFUD.js} +12 -12
- package/dist/_node-chunks/{chunk-QOHKBWEP.js → chunk-5ZQGOLDE.js} +8 -8
- package/dist/_node-chunks/{chunk-JYSLRBKF.js → chunk-6EPLEZFZ.js} +8 -8
- package/dist/_node-chunks/{chunk-JAUF3TAM.js → chunk-6WZPWJR4.js} +6 -6
- package/dist/_node-chunks/{chunk-NHUY2G4W.js → chunk-7BA6K3X5.js} +6 -6
- package/dist/_node-chunks/{chunk-I2U5WTNL.js → chunk-7L4K47Q6.js} +9 -9
- package/dist/_node-chunks/{chunk-BRX3R7VK.js → chunk-7LZUPCQB.js} +6 -6
- package/dist/_node-chunks/{chunk-7V5ZUGUS.js → chunk-ANRJD6WC.js} +7 -7
- package/dist/_node-chunks/{chunk-N5OKA53X.js → chunk-AWDYUSA7.js} +7 -7
- package/dist/_node-chunks/{chunk-5B4FR2UI.js → chunk-B6IHDMAH.js} +6 -6
- package/dist/_node-chunks/{chunk-WJWZMA7V.js → chunk-DKPWMKSY.js} +6 -6
- package/dist/_node-chunks/{chunk-IZANUVH3.js → chunk-DW727PJG.js} +9 -9
- package/dist/_node-chunks/{chunk-5PMG7ELX.js → chunk-EEWXQXZP.js} +6 -6
- package/dist/_node-chunks/{chunk-XGWZM36Q.js → chunk-F5UFNM2U.js} +9 -8
- package/dist/_node-chunks/{chunk-PWYI74FH.js → chunk-FE5AV6EP.js} +7 -7
- package/dist/_node-chunks/{chunk-ZIP6IRTS.js → chunk-FSXNZYNT.js} +6 -6
- package/dist/_node-chunks/{chunk-UQPQ5TGJ.js → chunk-FTP3QZ7O.js} +7 -7
- package/dist/_node-chunks/{chunk-FWCAFNSR.js → chunk-G4ZCAUZF.js} +7 -7
- package/dist/_node-chunks/{chunk-C5XFVBFG.js → chunk-GVZSAAZJ.js} +6 -6
- package/dist/_node-chunks/{chunk-6J3N56KQ.js → chunk-HFXQZX54.js} +9 -9
- package/dist/_node-chunks/{chunk-CLFGP654.js → chunk-HJMGUQVU.js} +8 -8
- package/dist/_node-chunks/{chunk-4XY2DNJC.js → chunk-HVTJ6ETP.js} +8 -8
- package/dist/_node-chunks/chunk-ICU5OS5Q.js +20 -0
- package/dist/_node-chunks/{chunk-ENZ7LFNS.js → chunk-IMMVTA66.js} +7 -7
- package/dist/_node-chunks/{chunk-KNBT4Z5V.js → chunk-IQHYYTFR.js} +119 -88
- package/dist/_node-chunks/{chunk-ZBNG6IMK.js → chunk-IRHRSPSI.js} +6 -6
- package/dist/_node-chunks/{chunk-JLARGK2D.js → chunk-IRIMEJJ3.js} +8 -8
- package/dist/_node-chunks/{chunk-TU6QHYCY.js → chunk-ISBS76F6.js} +9 -9
- package/dist/_node-chunks/{chunk-TGYVXD3W.js → chunk-J4Q2MOKA.js} +6 -6
- package/dist/_node-chunks/{chunk-J5ELXDRF.js → chunk-K36QW2O3.js} +16 -9
- package/dist/_node-chunks/{chunk-SHYSEVFU.js → chunk-LBGJYL6K.js} +6 -6
- package/dist/_node-chunks/{chunk-X675OXJG.js → chunk-MC4KT4LA.js} +6 -6
- package/dist/_node-chunks/{chunk-ZU4AIX7P.js → chunk-MQGAF7D5.js} +6 -6
- package/dist/_node-chunks/{chunk-HDTYLBMK.js → chunk-N4PAIJ2W.js} +17 -17
- package/dist/_node-chunks/{chunk-LJE6A2SZ.js → chunk-NQDYICFM.js} +6 -6
- package/dist/_node-chunks/{chunk-EBD2KMBT.js → chunk-PDN6UNOP.js} +10 -10
- package/dist/_node-chunks/{chunk-6I24ZI2Q.js → chunk-PG6QDVJT.js} +9 -9
- package/dist/_node-chunks/{chunk-VGQIJTT2.js → chunk-PNNIQSR4.js} +9 -9
- package/dist/_node-chunks/{chunk-7WLLBTL6.js → chunk-PPVCVHOS.js} +6 -6
- package/dist/_node-chunks/{chunk-JQ6TP2EM.js → chunk-S76TV45M.js} +7 -7
- package/dist/_node-chunks/{chunk-7NFMLX5W.js → chunk-S7XIM54L.js} +6 -6
- package/dist/_node-chunks/chunk-SC2O4JWO.js +11 -0
- package/dist/_node-chunks/{chunk-BYCABFUZ.js → chunk-UAW7LJY2.js} +8 -8
- package/dist/_node-chunks/chunk-UF3LYQOO.js +19 -0
- package/dist/_node-chunks/{chunk-GZMZZAQC.js → chunk-VBSZV6KY.js} +7 -7
- package/dist/_node-chunks/{chunk-QJOPST6J.js → chunk-VGN5LGMI.js} +7 -7
- package/dist/_node-chunks/{chunk-O3JFB67Q.js → chunk-VT3VBFAX.js} +29 -19
- package/dist/_node-chunks/{chunk-I63IG6LI.js → chunk-XGT335GY.js} +13 -13
- package/dist/_node-chunks/chunk-XSINJFVF.js +87 -0
- package/dist/_node-chunks/{chunk-4IDWYMHF.js → chunk-XTZ2XLTY.js} +7 -7
- package/dist/_node-chunks/{globby-PDRQQPCD.js → globby-MBJFQ4QO.js} +10 -10
- package/dist/_node-chunks/{lib-2LI4KB2K.js → lib-OBLZOLLS.js} +7 -7
- package/dist/_node-chunks/{local-runtime-BNG7UC6D.js → local-runtime-QL5INIZ2.js} +17 -17
- package/dist/_node-chunks/{monorepo-RNLCC3XR.js → monorepo-KBAWAMFF.js} +10 -10
- package/dist/_node-chunks/{monorepo-optimized-tests-relaxed-limits-no-story-deletion-GPOAT7LE.js → monorepo-optimized-tests-relaxed-limits-no-story-deletion-7TDELDWK.js} +10 -10
- package/dist/_node-chunks/optimized-tests-XOQZOPAA.js +21 -0
- package/dist/_node-chunks/p-limit-OC7IM4Z4.js +20 -0
- package/dist/_node-chunks/{pattern-copy-play-77WNV7Q4.js → pattern-copy-play-WEHXTRPC.js} +10 -10
- package/dist/_node-chunks/{relaxed-limits-ILBTYA63.js → relaxed-limits-WE3GWBOO.js} +10 -10
- package/dist/_node-chunks/session-id-5SLMZUEO.js +23 -0
- package/dist/_node-chunks/{setup-QAJL7XDT.js → setup-ODZF2RFR.js} +9 -9
- package/dist/babel/index.js +10 -10
- package/dist/bin/core.js +112 -125
- package/dist/bin/dispatcher.js +12 -12
- package/dist/bin/loader.js +9 -9
- package/dist/{chunk-CqzusPWE.d.ts → chunk-ByoeRqRY.d.ts} +11 -6
- package/dist/cli/index.js +23 -23
- package/dist/cli/skills/content/index.d.ts +2 -2
- package/dist/cli/skills/content/index.js +1 -1
- package/dist/cli/tools/sdk/child-host.d.ts +1 -1
- package/dist/cli/tools/sdk/child-host.js +16 -16
- package/dist/cli/tools/sdk/index.d.ts +14 -7
- package/dist/cli/tools/sdk/index.js +17 -17
- package/dist/common/index.d.ts +12 -1
- package/dist/common/index.js +32 -30
- package/dist/component-meta/index.js +9 -9
- package/dist/core-server/index.js +57 -55
- package/dist/core-server/presets/common-override-preset.js +9 -9
- package/dist/core-server/presets/common-preset.js +44 -44
- package/dist/csf-tools/index.js +11 -11
- package/dist/manager/globals-runtime.js +1 -1
- package/dist/manager-api/index.js +1 -1
- package/dist/mocking-utils/index.js +9 -9
- package/dist/node-logger/index.js +9 -9
- package/dist/oxc-parser/index.js +11 -11
- package/dist/oxc-parser/worker.js +11 -11
- package/dist/server-errors.js +10 -10
- package/dist/shared/open-service/services/docgen/worker/docgen-worker.js +10 -10
- package/dist/telemetry/index.js +36 -36
- package/package.json +1 -1
- package/dist/_node-chunks/chunk-34VOED5E.js +0 -11
- package/dist/_node-chunks/chunk-A4BQXPUM.js +0 -20
- package/dist/_node-chunks/chunk-KURXRIIH.js +0 -19
- package/dist/_node-chunks/chunk-SZHZNGLV.js +0 -87
- package/dist/_node-chunks/optimized-tests-QL3WA5CI.js +0 -21
- package/dist/_node-chunks/p-limit-IXIUUKXD.js +0 -20
- package/dist/_node-chunks/session-id-3NN3WPHV.js +0 -23
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_qjinduibsyq from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_qjinduibsyq from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_qjinduibsyq from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_qjinduibsyq.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_qjinduibsyq.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_qjinduibsyq.createRequire(import.meta.url);
|
|
8
8
|
|
|
9
9
|
// ------------------------------------------------------------
|
|
10
10
|
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
|
|
@@ -12,63 +12,62 @@ var require = CJS_COMPAT_NODE_MODULE_ot1ifgqjfh.createRequire(import.meta.url);
|
|
|
12
12
|
import {
|
|
13
13
|
readRegistry,
|
|
14
14
|
selectInstances
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-K36QW2O3.js";
|
|
16
16
|
import {
|
|
17
17
|
resolveStorybookConfigDir
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-S7XIM54L.js";
|
|
19
19
|
import {
|
|
20
20
|
formatConnectionFailed,
|
|
21
|
-
|
|
21
|
+
formatInstallationMismatch,
|
|
22
22
|
formatNoInstance,
|
|
23
23
|
formatOldServer,
|
|
24
24
|
formatPortMismatch,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
resolveProjectStorybookVersion
|
|
28
|
-
} from "./chunk-7STJOIKR.js";
|
|
25
|
+
formatUnknownInstallation
|
|
26
|
+
} from "./chunk-4CTPDGB7.js";
|
|
29
27
|
import {
|
|
30
28
|
AttachUnavailableError,
|
|
31
29
|
EnvironmentMismatchError,
|
|
32
|
-
SpawnFailedError,
|
|
33
30
|
ToolsRuntimeError,
|
|
34
31
|
projectPathsEqual
|
|
35
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-F5UFNM2U.js";
|
|
36
33
|
import {
|
|
37
34
|
SERVER_CHANNEL_PATH,
|
|
38
35
|
WebsocketTransport
|
|
39
|
-
} from "./chunk-
|
|
40
|
-
import "./chunk-
|
|
36
|
+
} from "./chunk-6EPLEZFZ.js";
|
|
37
|
+
import "./chunk-UF3LYQOO.js";
|
|
41
38
|
import {
|
|
42
39
|
detectAgent
|
|
43
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-GVZSAAZJ.js";
|
|
44
41
|
import {
|
|
45
42
|
UniversalStore
|
|
46
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-HFXQZX54.js";
|
|
47
44
|
import {
|
|
48
45
|
getRegisteredToolsets
|
|
49
|
-
} from "./chunk-
|
|
50
|
-
import "./chunk-
|
|
51
|
-
import "./chunk-
|
|
52
|
-
import "./chunk-
|
|
46
|
+
} from "./chunk-5ZQGOLDE.js";
|
|
47
|
+
import "./chunk-4C4AXOGG.js";
|
|
48
|
+
import "./chunk-52XR72NR.js";
|
|
49
|
+
import "./chunk-NQDYICFM.js";
|
|
53
50
|
import {
|
|
54
51
|
Channel,
|
|
55
52
|
getChannel,
|
|
56
53
|
setChannel,
|
|
57
54
|
setDelegatedMode
|
|
58
|
-
} from "./chunk-
|
|
59
|
-
import "./chunk-
|
|
60
|
-
import "./chunk-
|
|
55
|
+
} from "./chunk-5EYYAT2W.js";
|
|
56
|
+
import "./chunk-2J2NU66Q.js";
|
|
57
|
+
import "./chunk-6WZPWJR4.js";
|
|
61
58
|
import {
|
|
62
59
|
StorybookDevServerDisconnectedError
|
|
63
|
-
} from "./chunk-
|
|
64
|
-
import "./chunk-
|
|
65
|
-
import "./chunk-
|
|
66
|
-
import
|
|
60
|
+
} from "./chunk-DW727PJG.js";
|
|
61
|
+
import "./chunk-FE5AV6EP.js";
|
|
62
|
+
import "./chunk-VGN5LGMI.js";
|
|
63
|
+
import {
|
|
64
|
+
normalize
|
|
65
|
+
} from "./chunk-PPVCVHOS.js";
|
|
66
|
+
import "./chunk-4US4PNS3.js";
|
|
67
67
|
|
|
68
68
|
// src/cli/tools/sdk/attached-runtime.ts
|
|
69
|
-
import {
|
|
70
|
-
import {
|
|
71
|
-
import { versions } from "storybook/internal/common";
|
|
69
|
+
import { resolve } from "node:path";
|
|
70
|
+
import { findStorybookPackageRoot, versions } from "storybook/internal/common";
|
|
72
71
|
|
|
73
72
|
// src/cli/tools/sdk/node-channel.ts
|
|
74
73
|
import { CHANNEL_WS_DISCONNECT } from "storybook/internal/core-events";
|
|
@@ -125,9 +124,9 @@ function createNodeChannel({ url, token }) {
|
|
|
125
124
|
};
|
|
126
125
|
}
|
|
127
126
|
function waitUntilOpen(socket) {
|
|
128
|
-
return new Promise((
|
|
127
|
+
return new Promise((resolve2, reject) => {
|
|
129
128
|
if (socket.readyState === WebSocket.OPEN) {
|
|
130
|
-
|
|
129
|
+
resolve2();
|
|
131
130
|
return;
|
|
132
131
|
}
|
|
133
132
|
let fail = (reason) => reject(new StorybookDevServerDisconnectedError({ reason }));
|
|
@@ -137,46 +136,28 @@ function waitUntilOpen(socket) {
|
|
|
137
136
|
}
|
|
138
137
|
let settle = (action) => {
|
|
139
138
|
socket.off("open", onOpen), socket.off("error", onError), socket.off("close", onClose), action();
|
|
140
|
-
}, onOpen = () => settle(
|
|
139
|
+
}, onOpen = () => settle(resolve2), onError = (error) => settle(() => fail(error.message)), onClose = () => settle(() => fail("WebSocket closed before the Storybook channel opened"));
|
|
141
140
|
socket.once("open", onOpen), socket.once("error", onError), socket.once("close", onClose);
|
|
142
141
|
});
|
|
143
142
|
}
|
|
144
143
|
|
|
145
|
-
// src/cli/tools/sdk/
|
|
146
|
-
import
|
|
147
|
-
function
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
} : { ok: !0 };
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
// src/cli/tools/sdk/spawn-plan.ts
|
|
161
|
-
function planAttachHost({
|
|
162
|
-
processCwd,
|
|
163
|
-
callerVersion,
|
|
164
|
-
record,
|
|
165
|
-
autoSpawn,
|
|
166
|
-
isChildHost,
|
|
167
|
-
resolvedProjectVersion
|
|
168
|
-
}) {
|
|
169
|
-
let fidelity = checkFidelity(record, { cwd: processCwd, version: callerVersion });
|
|
170
|
-
return fidelity.ok ? { action: "in-process" } : !autoSpawn || isChildHost ? { action: "throw-mismatch", fidelity } : resolvedProjectVersion === void 0 ? { action: "throw-spawn-failed" } : resolvedProjectVersion !== record.storybookVersion ? {
|
|
171
|
-
action: "throw-restart",
|
|
172
|
-
instanceVersion: record.storybookVersion ?? "unknown",
|
|
173
|
-
resolvedProjectVersion
|
|
174
|
-
} : { action: "spawn", cwd: record.cwd };
|
|
144
|
+
// src/cli/tools/sdk/installation.ts
|
|
145
|
+
import { realpathSync } from "node:fs";
|
|
146
|
+
function checkInstallation(record, callerPath) {
|
|
147
|
+
if (!callerPath || !record.storybookPath)
|
|
148
|
+
return { ok: !1, reason: "unknown-installation" };
|
|
149
|
+
let instancePath;
|
|
150
|
+
try {
|
|
151
|
+
instancePath = normalize(realpathSync(record.storybookPath));
|
|
152
|
+
} catch {
|
|
153
|
+
return { ok: !1, reason: "unknown-installation" };
|
|
154
|
+
}
|
|
155
|
+
return projectPathsEqual(instancePath, callerPath) ? { ok: !0 } : { ok: !1, reason: "different-installation", callerPath, instancePath };
|
|
175
156
|
}
|
|
176
157
|
|
|
177
158
|
// src/cli/tools/sdk/attached-runtime.ts
|
|
178
159
|
async function bootstrapAttachedRuntime(options = {}, deps = {}) {
|
|
179
|
-
let discoveryCwd =
|
|
160
|
+
let discoveryCwd = resolve(options.cwd ?? process.cwd()), resolvedConfigDir = resolveStorybookConfigDir({
|
|
180
161
|
cwd: discoveryCwd,
|
|
181
162
|
configDir: options.configDir
|
|
182
163
|
}), records = await (deps.readRegistry ?? readRegistry)(), selection = selectInstances(records, {
|
|
@@ -205,41 +186,20 @@ async function bootstrapAttachedRuntime(options = {}, deps = {}) {
|
|
|
205
186
|
instances: [record],
|
|
206
187
|
remediation: formatOldServer(callerVersion)
|
|
207
188
|
});
|
|
208
|
-
let
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
return { kind: "spawn", record, siblings };
|
|
223
|
-
case "throw-mismatch": {
|
|
224
|
-
let { fidelity } = plan;
|
|
225
|
-
throw new EnvironmentMismatchError({
|
|
226
|
-
instanceCwd: record.cwd,
|
|
227
|
-
resolvedBinPath,
|
|
228
|
-
reason: fidelity.kind === "cwd" ? formatCwdMismatch(fidelity.processCwd, fidelity.instanceCwd) : formatVersionMismatch(fidelity.callerVersion, fidelity.instanceVersion)
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
case "throw-restart":
|
|
232
|
-
throw new EnvironmentMismatchError({
|
|
233
|
-
instanceCwd: record.cwd,
|
|
234
|
-
resolvedBinPath,
|
|
235
|
-
reason: formatRestartRequired(plan.resolvedProjectVersion, plan.instanceVersion)
|
|
236
|
-
});
|
|
237
|
-
case "throw-spawn-failed":
|
|
238
|
-
throw new SpawnFailedError({
|
|
239
|
-
reason: `Could not resolve the \`storybook\` package from ${record.cwd}. Install Storybook in that project, then retry.`
|
|
240
|
-
});
|
|
241
|
-
default:
|
|
242
|
-
throw plan;
|
|
189
|
+
let callerStorybookPath = (deps.storybookPath ?? findStorybookPackageRoot)(), installation = checkInstallation(record, callerStorybookPath);
|
|
190
|
+
if (!installation.ok) {
|
|
191
|
+
let autoSpawn = options.autoSpawn ?? !1, isChildHost = deps.isChildHost ?? process.env.STORYBOOK_TOOLS_CHILD_HOST === "true";
|
|
192
|
+
if (installation.reason === "different-installation" && autoSpawn && !isChildHost)
|
|
193
|
+
return { kind: "spawn", record, storybookPath: installation.instancePath, siblings };
|
|
194
|
+
throw new EnvironmentMismatchError({
|
|
195
|
+
reason: installation.reason === "different-installation" ? formatInstallationMismatch({
|
|
196
|
+
callerPath: installation.callerPath,
|
|
197
|
+
callerVersion,
|
|
198
|
+
instancePath: installation.instancePath,
|
|
199
|
+
instanceVersion: record.storybookVersion,
|
|
200
|
+
configDir: record.configDir
|
|
201
|
+
}) : formatUnknownInstallation()
|
|
202
|
+
});
|
|
243
203
|
}
|
|
244
204
|
let connection;
|
|
245
205
|
try {
|
|
@@ -256,7 +216,7 @@ async function bootstrapAttachedRuntime(options = {}, deps = {}) {
|
|
|
256
216
|
}
|
|
257
217
|
let enableDelegatedMode = deps.setDelegatedMode ?? setDelegatedMode;
|
|
258
218
|
enableDelegatedMode(!0);
|
|
259
|
-
let configDir = record.configDir ??
|
|
219
|
+
let configDir = record.configDir ?? resolve(record.cwd, ".storybook"), { loadStorybook, getService } = await resolveLoaders(deps);
|
|
260
220
|
try {
|
|
261
221
|
await loadStorybook({ configDir, channel: connection.channel });
|
|
262
222
|
} catch (error) {
|
|
@@ -292,13 +252,6 @@ async function resolveLoaders(deps) {
|
|
|
292
252
|
getService: deps.getService ?? ((id, options) => core.getService(id, options))
|
|
293
253
|
};
|
|
294
254
|
}
|
|
295
|
-
function resolveStorybookBinPath() {
|
|
296
|
-
try {
|
|
297
|
-
return createRequire(import.meta.url).resolve("storybook/package.json");
|
|
298
|
-
} catch {
|
|
299
|
-
return process.execPath;
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
255
|
var ATTACH_HANDSHAKE_TIMEOUT_MS = 1e4;
|
|
303
256
|
async function waitForHandshake(connection) {
|
|
304
257
|
let timer;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_qjinduibsyq from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_qjinduibsyq from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_qjinduibsyq from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_qjinduibsyq.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_qjinduibsyq.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_qjinduibsyq.createRequire(import.meta.url);
|
|
8
8
|
|
|
9
9
|
// ------------------------------------------------------------
|
|
10
10
|
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
|
|
@@ -13,27 +13,27 @@ import {
|
|
|
13
13
|
BROWSER_TARGETS,
|
|
14
14
|
NODE_TARGET,
|
|
15
15
|
SUPPORTED_FEATURES
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-DKPWMKSY.js";
|
|
17
17
|
import {
|
|
18
18
|
require_build
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-G4ZCAUZF.js";
|
|
20
20
|
import {
|
|
21
21
|
resolveModulePath,
|
|
22
22
|
resolvePackageDir
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-5G6TGQDE.js";
|
|
24
|
+
import "./chunk-7LZUPCQB.js";
|
|
25
25
|
import {
|
|
26
26
|
join,
|
|
27
27
|
parse
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-PPVCVHOS.js";
|
|
29
29
|
import {
|
|
30
30
|
slash
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-ICU5OS5Q.js";
|
|
32
32
|
import {
|
|
33
33
|
__commonJS,
|
|
34
34
|
__require,
|
|
35
35
|
__toESM
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-4US4PNS3.js";
|
|
37
37
|
|
|
38
38
|
// ../../node_modules/ejs/lib/utils.js
|
|
39
39
|
var require_utils = __commonJS({
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_qjinduibsyq from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_qjinduibsyq from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_qjinduibsyq from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_qjinduibsyq.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_qjinduibsyq.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_qjinduibsyq.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-
|
|
12
|
+
import "./chunk-4US4PNS3.js";
|
|
13
13
|
|
|
14
14
|
// ../../node_modules/camelcase/index.js
|
|
15
15
|
var UPPERCASE = /[\p{Lu}]/u, LOWERCASE = /[\p{Ll}]/u, LEADING_CAPITAL = /^[\p{Lu}](?![\p{Lu}])/u, SEPARATORS = /[_.\- ]+/, IDENTIFIER = /([\p{Alpha}\p{N}_]|$)/u, LEADING_SEPARATORS = new RegExp("^" + SEPARATORS.source), SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, "gu"), NUMBERS_AND_IDENTIFIER = new RegExp(String.raw`\d+` + IDENTIFIER.source, "gu"), preserveCamelCase = (string, toLowerCase, toUpperCase, preserveConsecutiveUppercase2) => {
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_qjinduibsyq from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_qjinduibsyq from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_qjinduibsyq from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_qjinduibsyq.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_qjinduibsyq.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_qjinduibsyq.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
|
nanoid
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2J2NU66Q.js";
|
|
15
15
|
|
|
16
16
|
// src/telemetry/session-id.ts
|
|
17
17
|
import { cache } from "storybook/internal/common";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_qjinduibsyq from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_qjinduibsyq from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_qjinduibsyq from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_qjinduibsyq.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_qjinduibsyq.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_qjinduibsyq.createRequire(import.meta.url);
|
|
8
8
|
|
|
9
9
|
// ------------------------------------------------------------
|
|
10
10
|
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_qjinduibsyq from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_qjinduibsyq from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_qjinduibsyq from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_qjinduibsyq.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_qjinduibsyq.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_qjinduibsyq.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_picocolors
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-VGN5LGMI.js";
|
|
15
15
|
import {
|
|
16
16
|
__commonJS,
|
|
17
17
|
__export,
|
|
18
18
|
__require,
|
|
19
19
|
__toESM
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-4US4PNS3.js";
|
|
21
21
|
|
|
22
22
|
// ../../node_modules/are-we-there-yet/lib/tracker-base.js
|
|
23
23
|
var require_tracker_base = __commonJS({
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_qjinduibsyq from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_qjinduibsyq from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_qjinduibsyq from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_qjinduibsyq.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_qjinduibsyq.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_qjinduibsyq.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
|
StorybookError
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-DW727PJG.js";
|
|
15
15
|
|
|
16
16
|
// src/manager-errors.ts
|
|
17
17
|
var StatusTypeIdMismatchError = class extends StorybookError {
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_qjinduibsyq from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_qjinduibsyq from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_qjinduibsyq from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_qjinduibsyq.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_qjinduibsyq.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_qjinduibsyq.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
|
|
|
13
13
|
// src/cli/tools/sdk/attach-messages.ts
|
|
14
|
-
|
|
15
|
-
return /[\s'"$`\\]/.test(value) ? `'${value.replace(/'/g, "'\\''")}'` : value;
|
|
16
|
-
}
|
|
17
|
-
function attachCommand(record) {
|
|
18
|
-
return record.configDir ? `npx storybook tools --attach --cwd ${quoteShellArg(record.cwd)} --config-dir ${quoteShellArg(record.configDir)}` : `npx storybook tools --attach --cwd ${quoteShellArg(record.cwd)}`;
|
|
19
|
-
}
|
|
14
|
+
var RESTART_GUIDANCE = "From your project directory, restart Storybook (for example `npx storybook dev`) and re-run this command from there.";
|
|
20
15
|
function formatNoInstance(records) {
|
|
21
16
|
let lines = [
|
|
22
17
|
"No running Storybook was found for this project. Start it first (for example `npm run storybook`), then retry with `--attach`."
|
|
@@ -24,11 +19,11 @@ function formatNoInstance(records) {
|
|
|
24
19
|
if (records.length > 0) {
|
|
25
20
|
lines.push(
|
|
26
21
|
"",
|
|
27
|
-
"Running Storybook instances that did not match this project \u2014 target one
|
|
22
|
+
"Running Storybook instances that did not match this project \u2014 target one by re-running this command from its project directory, or with `--config-dir <dir>`:"
|
|
28
23
|
);
|
|
29
24
|
for (let record of records) {
|
|
30
25
|
let configDir = record.configDir ? `; configDir \`${record.configDir}\`` : "";
|
|
31
|
-
lines.push(`- ${record.url} (cwd \`${record.cwd}\`${configDir})`)
|
|
26
|
+
lines.push(`- ${record.url} (cwd \`${record.cwd}\`${configDir})`);
|
|
32
27
|
}
|
|
33
28
|
}
|
|
34
29
|
return lines.join(`
|
|
@@ -49,14 +44,24 @@ function formatOldServer(version) {
|
|
|
49
44
|
function formatConnectionFailed(record) {
|
|
50
45
|
return `Could not connect to the Storybook at ${record.url}. The instance registry may be stale \u2014 if that Storybook is no longer running, start it again (for example \`npm run storybook\`) and retry.`;
|
|
51
46
|
}
|
|
52
|
-
function
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
47
|
+
function formatInstallationMismatch({
|
|
48
|
+
callerPath,
|
|
49
|
+
callerVersion,
|
|
50
|
+
instancePath,
|
|
51
|
+
instanceVersion,
|
|
52
|
+
configDir
|
|
53
|
+
}) {
|
|
54
|
+
let instanceConfigDir = configDir ? `; config dir \`${configDir}\`` : "";
|
|
55
|
+
return [
|
|
56
|
+
"The running Storybook and this CLI are different `storybook` installations:",
|
|
57
|
+
`- running instance: \`${instancePath}\` (version ${instanceVersion ?? "unknown"}${instanceConfigDir})`,
|
|
58
|
+
`- this CLI: \`${callerPath}\` (version ${callerVersion})`,
|
|
59
|
+
`They must be the same installation. ${RESTART_GUIDANCE}`
|
|
60
|
+
].join(`
|
|
61
|
+
`);
|
|
57
62
|
}
|
|
58
|
-
function
|
|
59
|
-
return `
|
|
63
|
+
function formatUnknownInstallation() {
|
|
64
|
+
return `Could not verify that the running Storybook and this CLI are the same \`storybook\` installation. ${RESTART_GUIDANCE}`;
|
|
60
65
|
}
|
|
61
66
|
function formatAttachFallback(remediation) {
|
|
62
67
|
return `${remediation}
|
|
@@ -87,33 +92,13 @@ function instanceDetails(instance) {
|
|
|
87
92
|
return details.length > 0 ? ` (${details.join(", ")})` : "";
|
|
88
93
|
}
|
|
89
94
|
|
|
90
|
-
// src/cli/tools/sdk/resolve-project-storybook.ts
|
|
91
|
-
import { readFileSync } from "node:fs";
|
|
92
|
-
import { createRequire } from "node:module";
|
|
93
|
-
import { join } from "node:path";
|
|
94
|
-
var STORYBOOK_MANIFEST = "storybook/package.json", CHILD_HOST_ENTRY = "storybook/internal/tools/child-host";
|
|
95
|
-
function resolveProjectStorybookVersion(projectDir) {
|
|
96
|
-
try {
|
|
97
|
-
let manifestPath = createRequire(join(projectDir, "package.json")).resolve(STORYBOOK_MANIFEST, { paths: [projectDir] }), manifest = JSON.parse(readFileSync(manifestPath, "utf8"));
|
|
98
|
-
return typeof manifest.version == "string" ? manifest.version : void 0;
|
|
99
|
-
} catch {
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
function resolveChildHostScript(projectDir) {
|
|
104
|
-
return createRequire(join(projectDir, "package.json")).resolve(CHILD_HOST_ENTRY, { paths: [projectDir] });
|
|
105
|
-
}
|
|
106
|
-
|
|
107
95
|
export {
|
|
108
96
|
formatNoInstance,
|
|
109
97
|
formatPortMismatch,
|
|
110
98
|
formatOldServer,
|
|
111
99
|
formatConnectionFailed,
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
formatRestartRequired,
|
|
100
|
+
formatInstallationMismatch,
|
|
101
|
+
formatUnknownInstallation,
|
|
115
102
|
formatAttachFallback,
|
|
116
|
-
formatMultiInstanceNotice
|
|
117
|
-
resolveProjectStorybookVersion,
|
|
118
|
-
resolveChildHostScript
|
|
103
|
+
formatMultiInstanceNotice
|
|
119
104
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_qjinduibsyq from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_qjinduibsyq from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_qjinduibsyq from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_qjinduibsyq.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_qjinduibsyq.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_qjinduibsyq.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
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_qjinduibsyq from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_qjinduibsyq from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_qjinduibsyq from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_qjinduibsyq.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_qjinduibsyq.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_qjinduibsyq.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
|
words
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-6WZPWJR4.js";
|
|
15
15
|
|
|
16
16
|
// ../../node_modules/es-toolkit/dist/string/kebabCase.mjs
|
|
17
17
|
function kebabCase(str) {
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_qjinduibsyq from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_qjinduibsyq from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_qjinduibsyq from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_qjinduibsyq.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_qjinduibsyq.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_qjinduibsyq.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
|
StatusTypeIdMismatchError as StatusTypeIdMismatchError2
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-4C4AXOGG.js";
|
|
15
15
|
import {
|
|
16
16
|
any
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-7BA6K3X5.js";
|
|
18
18
|
import {
|
|
19
19
|
StatusTypeIdMismatchError,
|
|
20
20
|
StorybookError
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-DW727PJG.js";
|
|
22
22
|
import {
|
|
23
23
|
require_dist
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-FE5AV6EP.js";
|
|
25
25
|
import {
|
|
26
26
|
__toESM
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-4US4PNS3.js";
|
|
28
28
|
|
|
29
29
|
// src/cli/detect.ts
|
|
30
30
|
async function detectPnp() {
|