storybook 10.1.0-alpha.9 → 10.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/dist/_browser-chunks/Color-FTG7SQDA.js +1097 -0
  2. package/dist/_browser-chunks/WithTooltip-LMROHDUP.js +1651 -0
  3. package/dist/_browser-chunks/chunk-2FRVAXCZ.js +7 -0
  4. package/dist/_browser-chunks/{chunk-FDWKXLBI.js → chunk-2XZMBGTA.js} +44 -109
  5. package/dist/_browser-chunks/chunk-3IAH5M2U.js +171 -0
  6. package/dist/_browser-chunks/chunk-3OXGAGBE.js +779 -0
  7. package/dist/_browser-chunks/{chunk-TMDZCWME.js → chunk-3PJE6VLG.js} +1 -3
  8. package/dist/_browser-chunks/{chunk-VAMFPZY3.js → chunk-45UGUKRX.js} +2 -7
  9. package/dist/_browser-chunks/chunk-6XWLIJQL.js +11 -0
  10. package/dist/_browser-chunks/{chunk-MM7DTO55.js → chunk-A242L54C.js} +10 -16
  11. package/dist/_browser-chunks/chunk-AIOS4NGK.js +252 -0
  12. package/dist/_browser-chunks/chunk-AS2HQEYC.js +14 -0
  13. package/dist/_browser-chunks/chunk-AXG2BOBL.js +836 -0
  14. package/dist/_browser-chunks/{chunk-MH6AXFXB.js → chunk-CHUV5WSW.js} +0 -5
  15. package/dist/_browser-chunks/chunk-EUVGDK4H.js +93 -0
  16. package/dist/_browser-chunks/chunk-EZSQOHRI.js +18 -0
  17. package/dist/_browser-chunks/{chunk-CADGRH3P.js → chunk-FNXWN6IK.js} +3 -8
  18. package/dist/_browser-chunks/chunk-FQ7SLVLR.js +66 -0
  19. package/dist/_browser-chunks/chunk-GFLS4VP3.js +64 -0
  20. package/dist/_browser-chunks/chunk-GFY5R5EY.js +47 -0
  21. package/dist/_browser-chunks/{chunk-L2D73C6Z.js → chunk-H6XK3RSC.js} +13 -21
  22. package/dist/_browser-chunks/chunk-IPA5A322.js +71 -0
  23. package/dist/_browser-chunks/chunk-JP7NCOJX.js +37 -0
  24. package/dist/_browser-chunks/chunk-KJHJLCBK.js +11 -0
  25. package/dist/_browser-chunks/{chunk-OWPZQM2D.js → chunk-L4RMQ7D7.js} +60 -110
  26. package/dist/_browser-chunks/chunk-P4F4UVXX.js +951 -0
  27. package/dist/_browser-chunks/{chunk-AB7OOPUX.js → chunk-QKODTO7K.js} +0 -5
  28. package/dist/_browser-chunks/chunk-RP5RXKFU.js +2491 -0
  29. package/dist/_browser-chunks/chunk-SL75JR6Y.js +9 -0
  30. package/dist/_browser-chunks/chunk-SS2NHR7W.js +2969 -0
  31. package/dist/_browser-chunks/chunk-UD6FQLAF.js +1481 -0
  32. package/dist/_browser-chunks/chunk-VYJQ7RU5.js +2853 -0
  33. package/dist/_browser-chunks/chunk-WJYERY3R.js +136 -0
  34. package/dist/_browser-chunks/chunk-XJNX76GA.js +85 -0
  35. package/dist/_browser-chunks/{chunk-F4Q6SGTB.js → chunk-YKE5S47A.js} +177 -399
  36. package/dist/_browser-chunks/{chunk-SN4J4IQ3.js → chunk-ZUWEVLDX.js} +1 -7
  37. package/dist/_browser-chunks/{formatter-OMEEQ6HG.js → formatter-QJ4M4OGQ.js} +4 -9
  38. package/dist/_browser-chunks/{syntaxhighlighter-CAVLW7PM.js → syntaxhighlighter-IQDEPFLK.js} +704 -1848
  39. package/dist/_node-chunks/{builder-manager-SM3UWERX.js → builder-manager-FTVC2JL7.js} +510 -1019
  40. package/dist/_node-chunks/camelcase-3SMT5WKC.js +37 -0
  41. package/dist/_node-chunks/chunk-2OVULPK3.js +54 -0
  42. package/dist/_node-chunks/chunk-3JJPSDXI.js +3043 -0
  43. package/dist/_node-chunks/chunk-54NMJ4II.js +1564 -0
  44. package/dist/_node-chunks/chunk-5V4A6MSI.js +943 -0
  45. package/dist/_node-chunks/chunk-6DEMT5VX.js +299 -0
  46. package/dist/_node-chunks/{chunk-HHSTA6QS.js → chunk-6L7FFBOW.js} +8 -10
  47. package/dist/_node-chunks/chunk-6ULDIDXV.js +46662 -0
  48. package/dist/_node-chunks/chunk-AREL5IXS.js +603 -0
  49. package/dist/_node-chunks/chunk-DWA53E73.js +23 -0
  50. package/dist/_node-chunks/chunk-FNYKBULZ.js +765 -0
  51. package/dist/_node-chunks/chunk-IUYZQKSX.js +70 -0
  52. package/dist/_node-chunks/{chunk-F6EFOEC7.js → chunk-K673CX4Q.js} +469 -983
  53. package/dist/_node-chunks/chunk-KJAFCNZ3.js +61 -0
  54. package/dist/_node-chunks/chunk-N3BJOOY5.js +78 -0
  55. package/dist/_node-chunks/{chunk-EBUEXRH5.js → chunk-O5FMCQHP.js} +116 -276
  56. package/dist/_node-chunks/chunk-RIKQZHV3.js +29 -0
  57. package/dist/_node-chunks/chunk-RURZIE3W.js +3780 -0
  58. package/dist/_node-chunks/chunk-RVII4SK6.js +919 -0
  59. package/dist/_node-chunks/chunk-S3PBHOVC.js +6024 -0
  60. package/dist/_node-chunks/chunk-SQSFX47N.js +61 -0
  61. package/dist/_node-chunks/{chunk-SGM3ZCCT.js → chunk-TURUTKVH.js} +292 -688
  62. package/dist/_node-chunks/chunk-VRICJPXY.js +72 -0
  63. package/dist/_node-chunks/chunk-WIWWMCEU.js +119 -0
  64. package/dist/_node-chunks/{chunk-ATDHMMIZ.js → chunk-XGNRK7QB.js} +15 -24
  65. package/dist/_node-chunks/chunk-Y2FOTPAE.js +4523 -0
  66. package/dist/_node-chunks/{chunk-GHIBZRKD.js → chunk-Y4UYN72K.js} +8133 -8887
  67. package/dist/_node-chunks/chunk-Z4BMBA5L.js +18 -0
  68. package/dist/_node-chunks/chunk-ZMCJS2GU.js +20 -0
  69. package/dist/_node-chunks/dist-TZLZ3T6L.js +121 -0
  70. package/dist/_node-chunks/globby-22GFCZQD.js +3452 -0
  71. package/dist/_node-chunks/lib-37NQ4ZIJ.js +366 -0
  72. package/dist/_node-chunks/mdx-N42X6CFJ-2TRB7OEH.js +14329 -0
  73. package/dist/_node-chunks/p-limit-UD7TYFDW.js +116 -0
  74. package/dist/actions/decorator.js +21 -42
  75. package/dist/actions/index.js +3 -3
  76. package/dist/babel/index.d.ts +671 -335
  77. package/dist/babel/index.js +10 -11
  78. package/dist/bin/core.js +602 -1549
  79. package/dist/bin/dispatcher.js +36 -36
  80. package/dist/bin/loader.js +24 -38
  81. package/dist/channels/index.js +98 -234
  82. package/dist/cli/index.d.ts +1479 -133
  83. package/dist/cli/index.js +30 -8540
  84. package/dist/client-logger/index.js +31 -61
  85. package/dist/common/index.d.ts +139 -62
  86. package/dist/common/index.js +66 -51
  87. package/dist/components/index.d.ts +575 -273
  88. package/dist/components/index.js +14863 -4313
  89. package/dist/core-events/index.js +2 -66
  90. package/dist/core-server/index.d.ts +3 -2
  91. package/dist/core-server/index.js +2911 -8519
  92. package/dist/core-server/presets/common-manager.css +2 -2
  93. package/dist/core-server/presets/common-manager.js +2521 -5233
  94. package/dist/core-server/presets/common-override-preset.js +31 -60
  95. package/dist/core-server/presets/common-preset.js +663 -962
  96. package/dist/csf/index.js +534 -1179
  97. package/dist/csf-tools/index.js +9 -9
  98. package/dist/docs-tools/index.js +6 -6
  99. package/dist/highlight/index.js +2 -2
  100. package/dist/instrumenter/index.js +199 -415
  101. package/dist/manager/globals-runtime.js +59044 -67141
  102. package/dist/manager/globals.js +2 -3
  103. package/dist/manager/manager-stores.d.ts +1 -0
  104. package/dist/manager/manager-stores.js +23 -0
  105. package/dist/manager/runtime.js +11569 -10953
  106. package/dist/manager-api/index.d.ts +1813 -2
  107. package/dist/manager-api/index.js +1348 -2401
  108. package/dist/manager-errors.d.ts +9 -0
  109. package/dist/manager-errors.js +3 -3
  110. package/dist/mocking-utils/index.d.ts +1126 -0
  111. package/dist/mocking-utils/index.js +1181 -0
  112. package/dist/node-logger/index.d.ts +192 -24
  113. package/dist/node-logger/index.js +23 -4471
  114. package/dist/preview/globals.js +2 -3
  115. package/dist/preview/runtime.js +10799 -22393
  116. package/dist/preview-api/index.d.ts +1 -1
  117. package/dist/preview-api/index.js +13 -13
  118. package/dist/preview-errors.d.ts +9 -0
  119. package/dist/preview-errors.js +4 -4
  120. package/dist/router/index.js +347 -899
  121. package/dist/server-errors.d.ts +34 -1
  122. package/dist/server-errors.js +17 -10
  123. package/dist/telemetry/index.d.ts +24 -3
  124. package/dist/telemetry/index.js +25 -24
  125. package/dist/test/index.js +6131 -11916
  126. package/dist/theming/create.d.ts +1 -0
  127. package/dist/theming/create.js +4 -4
  128. package/dist/theming/index.d.ts +3366 -2599
  129. package/dist/theming/index.js +501 -1091
  130. package/dist/types/index.d.ts +72 -8
  131. package/dist/types/index.js +27 -12
  132. package/dist/viewport/index.js +3 -3
  133. package/package.json +26 -17
  134. package/dist/_browser-chunks/Color-7ZNS6F6B.js +0 -1676
  135. package/dist/_browser-chunks/WithTooltip-SK46ZJ2J.js +0 -13
  136. package/dist/_browser-chunks/chunk-6A7OIVEL.js +0 -66
  137. package/dist/_browser-chunks/chunk-B4A3ADP3.js +0 -3816
  138. package/dist/_browser-chunks/chunk-BOOOPFZF.js +0 -2335
  139. package/dist/_browser-chunks/chunk-FSBVR7H5.js +0 -106
  140. package/dist/_browser-chunks/chunk-FUOHXXZT.js +0 -23
  141. package/dist/_browser-chunks/chunk-GTKOCWCT.js +0 -17
  142. package/dist/_browser-chunks/chunk-HHW4FUMO.js +0 -12
  143. package/dist/_browser-chunks/chunk-JVSKG4YS.js +0 -4052
  144. package/dist/_browser-chunks/chunk-LASUB7TL.js +0 -76
  145. package/dist/_browser-chunks/chunk-LYCSRYYR.js +0 -101
  146. package/dist/_browser-chunks/chunk-NVV6MIOE.js +0 -243
  147. package/dist/_browser-chunks/chunk-OBXWFEPB.js +0 -852
  148. package/dist/_browser-chunks/chunk-OPCDBBL3.js +0 -48
  149. package/dist/_browser-chunks/chunk-PB6FZ3WE.js +0 -130
  150. package/dist/_browser-chunks/chunk-RNE2IUTB.js +0 -1300
  151. package/dist/_browser-chunks/chunk-RW5PKMWM.js +0 -4182
  152. package/dist/_browser-chunks/chunk-SYS437NN.js +0 -122
  153. package/dist/_browser-chunks/chunk-U46RQHA4.js +0 -12
  154. package/dist/_browser-chunks/chunk-UTNZYD2N.js +0 -311
  155. package/dist/_browser-chunks/chunk-VUAFL5XK.js +0 -20
  156. package/dist/_browser-chunks/chunk-XDGMHOV7.js +0 -2197
  157. package/dist/_browser-chunks/chunk-XW6KSYKF.js +0 -16
  158. package/dist/_browser-chunks/chunk-Y3M7TW6K.js +0 -1041
  159. package/dist/_browser-chunks/chunk-ZNRFDIVA.js +0 -233
  160. package/dist/_node-chunks/camelcase-H5QSGQLK.js +0 -18
  161. package/dist/_node-chunks/chunk-3THWHQOC.js +0 -61
  162. package/dist/_node-chunks/chunk-45YUOLTU.js +0 -69
  163. package/dist/_node-chunks/chunk-4QSNCPAU.js +0 -64656
  164. package/dist/_node-chunks/chunk-744PQSOU.js +0 -79
  165. package/dist/_node-chunks/chunk-74Z2U7QG.js +0 -1544
  166. package/dist/_node-chunks/chunk-7MB7TFPO.js +0 -1198
  167. package/dist/_node-chunks/chunk-A7GS4RFT.js +0 -697
  168. package/dist/_node-chunks/chunk-BIA3A5UM.js +0 -61
  169. package/dist/_node-chunks/chunk-C5G7CLWX.js +0 -1657
  170. package/dist/_node-chunks/chunk-DLFUKMYJ.js +0 -1531
  171. package/dist/_node-chunks/chunk-EMRGRXKT.js +0 -111
  172. package/dist/_node-chunks/chunk-EX46EHHY.js +0 -420
  173. package/dist/_node-chunks/chunk-F76QKNOJ.js +0 -304
  174. package/dist/_node-chunks/chunk-HDCRUTEF.js +0 -220
  175. package/dist/_node-chunks/chunk-HUYAOIPH.js +0 -90
  176. package/dist/_node-chunks/chunk-IBJZQZJC.js +0 -101
  177. package/dist/_node-chunks/chunk-KZN2RDDT.js +0 -6712
  178. package/dist/_node-chunks/chunk-LYUNFU3F.js +0 -4741
  179. package/dist/_node-chunks/chunk-N44SIS6K.js +0 -28
  180. package/dist/_node-chunks/chunk-NILZM6KR.js +0 -18
  181. package/dist/_node-chunks/chunk-PC4ZRP6W.js +0 -34
  182. package/dist/_node-chunks/chunk-TJNGOQUH.js +0 -4272
  183. package/dist/_node-chunks/chunk-UBSYLHIL.js +0 -1250
  184. package/dist/_node-chunks/chunk-UTCLXPOC.js +0 -1518
  185. package/dist/_node-chunks/chunk-WOXXODXP.js +0 -5029
  186. package/dist/_node-chunks/chunk-XC4MEUA6.js +0 -1586
  187. package/dist/_node-chunks/chunk-YRXXMKRR.js +0 -2256
  188. package/dist/_node-chunks/dist-SL73W244.js +0 -175
  189. package/dist/_node-chunks/globby-ZSHAUQZ5.js +0 -5222
  190. package/dist/_node-chunks/lib-U2VIPUTI.js +0 -518
  191. package/dist/_node-chunks/mdx-N42X6CFJ-ZLHD33JK.js +0 -22017
  192. package/dist/_node-chunks/p-limit-K5BS5MSV.js +0 -168
  193. package/dist/_node-chunks/plugin-5PD4YIUH.js +0 -129
  194. package/dist/_node-chunks/plugin-MONDT2WL.js +0 -159
  195. package/dist/_node-chunks/webpack-inject-mocker-runtime-plugin-EUZJRG3W.js +0 -69102
  196. package/dist/_node-chunks/webpack-mock-plugin-T4LDXEHE.js +0 -124
  197. package/dist/core-server/presets/webpack/loaders/storybook-mock-transform-loader.js +0 -36
  198. package/dist/core-server/presets/webpack/loaders/webpack-automock-loader.js +0 -33
@@ -1,111 +0,0 @@
1
- import CJS_COMPAT_NODE_URL_jpweijb0qqj from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_jpweijb0qqj from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_jpweijb0qqj from "node:module";
4
-
5
- var __filename = CJS_COMPAT_NODE_URL_jpweijb0qqj.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_jpweijb0qqj.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_jpweijb0qqj.createRequire(import.meta.url);
8
-
9
- // ------------------------------------------------------------
10
- // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
- // ------------------------------------------------------------
12
- import {
13
- __name
14
- } from "./chunk-3THWHQOC.js";
15
-
16
- // src/telemetry/event-cache.ts
17
- import { cache } from "storybook/internal/common";
18
- var operation = Promise.resolve();
19
- var setHelper = /* @__PURE__ */ __name(async (eventType, body) => {
20
- const lastEvents = await cache.get("lastEvents") || {};
21
- lastEvents[eventType] = { body, timestamp: Date.now() };
22
- await cache.set("lastEvents", lastEvents);
23
- }, "setHelper");
24
- var set = /* @__PURE__ */ __name(async (eventType, body) => {
25
- await operation;
26
- operation = setHelper(eventType, body);
27
- return operation;
28
- }, "set");
29
- var getLastEvents = /* @__PURE__ */ __name(async () => {
30
- return await cache.get("lastEvents") || {};
31
- }, "getLastEvents");
32
- var upgradeFields = /* @__PURE__ */ __name((event) => {
33
- const { body, timestamp } = event;
34
- return {
35
- timestamp,
36
- eventType: body?.eventType,
37
- eventId: body?.eventId,
38
- sessionId: body?.sessionId
39
- };
40
- }, "upgradeFields");
41
- var UPGRADE_EVENTS = ["init", "upgrade"];
42
- var RUN_EVENTS = ["build", "dev", "error"];
43
- var lastEvent = /* @__PURE__ */ __name((lastEvents, eventTypes) => {
44
- const descendingEvents = eventTypes.map((eventType) => lastEvents?.[eventType]).filter(Boolean).sort((a, b) => b.timestamp - a.timestamp);
45
- return descendingEvents.length > 0 ? descendingEvents[0] : void 0;
46
- }, "lastEvent");
47
- var getPrecedingUpgrade = /* @__PURE__ */ __name(async (events = void 0) => {
48
- const lastEvents = events || await cache.get("lastEvents") || {};
49
- const lastUpgradeEvent = lastEvent(lastEvents, UPGRADE_EVENTS);
50
- const lastRunEvent = lastEvent(lastEvents, RUN_EVENTS);
51
- if (!lastUpgradeEvent) {
52
- return void 0;
53
- }
54
- return !lastRunEvent?.timestamp || lastUpgradeEvent.timestamp > lastRunEvent.timestamp ? upgradeFields(lastUpgradeEvent) : void 0;
55
- }, "getPrecedingUpgrade");
56
-
57
- // ../node_modules/nanoid/index.js
58
- import { randomFillSync } from "crypto";
59
-
60
- // ../node_modules/nanoid/url-alphabet/index.js
61
- var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
62
-
63
- // ../node_modules/nanoid/index.js
64
- var POOL_SIZE_MULTIPLIER = 128;
65
- var pool;
66
- var poolOffset;
67
- var fillPool = /* @__PURE__ */ __name((bytes) => {
68
- if (!pool || pool.length < bytes) {
69
- pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);
70
- randomFillSync(pool);
71
- poolOffset = 0;
72
- } else if (poolOffset + bytes > pool.length) {
73
- randomFillSync(pool);
74
- poolOffset = 0;
75
- }
76
- poolOffset += bytes;
77
- }, "fillPool");
78
- var nanoid = /* @__PURE__ */ __name((size = 21) => {
79
- fillPool(size -= 0);
80
- let id = "";
81
- for (let i = poolOffset - size; i < poolOffset; i++) {
82
- id += urlAlphabet[pool[i] & 63];
83
- }
84
- return id;
85
- }, "nanoid");
86
-
87
- // src/telemetry/session-id.ts
88
- import { cache as cache2 } from "storybook/internal/common";
89
- var SESSION_TIMEOUT = 1e3 * 60 * 60 * 2;
90
- var sessionId;
91
- var getSessionId = /* @__PURE__ */ __name(async () => {
92
- const now = Date.now();
93
- if (!sessionId) {
94
- const session = await cache2.get("session");
95
- if (session && session.lastUsed >= now - SESSION_TIMEOUT) {
96
- sessionId = session.id;
97
- } else {
98
- sessionId = nanoid();
99
- }
100
- }
101
- await cache2.set("session", { id: sessionId, lastUsed: now });
102
- return sessionId;
103
- }, "getSessionId");
104
-
105
- export {
106
- nanoid,
107
- set,
108
- getLastEvents,
109
- getPrecedingUpgrade,
110
- getSessionId
111
- };
@@ -1,420 +0,0 @@
1
- import CJS_COMPAT_NODE_URL_jpweijb0qqj from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_jpweijb0qqj from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_jpweijb0qqj from "node:module";
4
-
5
- var __filename = CJS_COMPAT_NODE_URL_jpweijb0qqj.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_jpweijb0qqj.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_jpweijb0qqj.createRequire(import.meta.url);
8
-
9
- // ------------------------------------------------------------
10
- // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
- // ------------------------------------------------------------
12
- import {
13
- basename,
14
- dirname,
15
- isAbsolute,
16
- join,
17
- normalize,
18
- resolve
19
- } from "./chunk-HDCRUTEF.js";
20
- import {
21
- __name
22
- } from "./chunk-3THWHQOC.js";
23
-
24
- // src/core-server/mocking-utils/resolve.ts
25
- import { readFileSync as readFileSync2, realpathSync } from "node:fs";
26
- import { createRequire } from "node:module";
27
- import { findMockRedirect } from "@vitest/mocker/redirect";
28
-
29
- // ../node_modules/resolve.exports/dist/index.mjs
30
- function e(e2, n2, r2) {
31
- throw new Error(r2 ? `No known conditions for "${n2}" specifier in "${e2}" package` : `Missing "${n2}" specifier in "${e2}" package`);
32
- }
33
- __name(e, "e");
34
- function n(n2, i, o2, f) {
35
- let s, u, l = r(n2, o2), c = function(e2) {
36
- let n3 = /* @__PURE__ */ new Set(["default", ...e2.conditions || []]);
37
- return e2.unsafe || n3.add(e2.require ? "require" : "import"), e2.unsafe || n3.add(e2.browser ? "browser" : "node"), n3;
38
- }(f || {}), a = i[l];
39
- if (void 0 === a) {
40
- let e2, n3, r2, t3;
41
- for (t3 in i) n3 && t3.length < n3.length || ("/" === t3[t3.length - 1] && l.startsWith(t3) ? (u = l.substring(t3.length), n3 = t3) : t3.length > 1 && (r2 = t3.indexOf("*", 1), ~r2 && (e2 = RegExp("^" + t3.substring(0, r2) + "(.*)" + t3.substring(1 + r2) + "$").exec(l), e2 && e2[1] && (u = e2[1], n3 = t3))));
42
- a = i[n3];
43
- }
44
- return a || e(n2, l), s = t(a, c), s || e(n2, l, 1), u && function(e2, n3) {
45
- let r2, t3 = 0, i2 = e2.length, o3 = /[*]/g, f2 = /[/]$/;
46
- for (; t3 < i2; t3++) e2[t3] = o3.test(r2 = e2[t3]) ? r2.replace(o3, n3) : f2.test(r2) ? r2 + n3 : r2;
47
- }(s, u), s;
48
- }
49
- __name(n, "n");
50
- function r(e2, n2, r2) {
51
- if (e2 === n2 || "." === n2) return ".";
52
- let t3 = e2 + "/", i = t3.length, o2 = n2.slice(0, i) === t3, f = o2 ? n2.slice(i) : n2;
53
- return "#" === f[0] ? f : o2 || !r2 ? "./" === f.slice(0, 2) ? f : "./" + f : f;
54
- }
55
- __name(r, "r");
56
- function t(e2, n2, r2) {
57
- if (e2) {
58
- if ("string" == typeof e2) return r2 && r2.add(e2), [e2];
59
- let i, o2;
60
- if (Array.isArray(e2)) {
61
- for (o2 = r2 || /* @__PURE__ */ new Set(), i = 0; i < e2.length; i++) t(e2[i], n2, o2);
62
- if (!r2 && o2.size) return [...o2];
63
- } else for (i in e2) if (n2.has(i)) return t(e2[i], n2, r2);
64
- }
65
- }
66
- __name(t, "t");
67
- function o(e2, r2, t3) {
68
- let i, o2 = e2.exports;
69
- if (o2) {
70
- if ("string" == typeof o2) o2 = { ".": o2 };
71
- else for (i in o2) {
72
- "." !== i[0] && (o2 = { ".": o2 });
73
- break;
74
- }
75
- return n(e2.name, o2, r2 || ".", t3);
76
- }
77
- }
78
- __name(o, "o");
79
-
80
- // src/core-server/mocking-utils/extract.ts
81
- import { readFileSync } from "node:fs";
82
- import { generate, parser, types as t2 } from "storybook/internal/babel";
83
- import { logger } from "storybook/internal/node-logger";
84
- import { telemetry } from "storybook/internal/telemetry";
85
- import { transformSync } from "esbuild";
86
-
87
- // ../node_modules/estree-walker/src/walker.js
88
- var WalkerBase = class {
89
- static {
90
- __name(this, "WalkerBase");
91
- }
92
- constructor() {
93
- this.should_skip = false;
94
- this.should_remove = false;
95
- this.replacement = null;
96
- this.context = {
97
- skip: /* @__PURE__ */ __name(() => this.should_skip = true, "skip"),
98
- remove: /* @__PURE__ */ __name(() => this.should_remove = true, "remove"),
99
- replace: /* @__PURE__ */ __name((node) => this.replacement = node, "replace")
100
- };
101
- }
102
- /**
103
- * @template {Node} Parent
104
- * @param {Parent | null | undefined} parent
105
- * @param {keyof Parent | null | undefined} prop
106
- * @param {number | null | undefined} index
107
- * @param {Node} node
108
- */
109
- replace(parent, prop, index, node) {
110
- if (parent && prop) {
111
- if (index != null) {
112
- parent[prop][index] = node;
113
- } else {
114
- parent[prop] = node;
115
- }
116
- }
117
- }
118
- /**
119
- * @template {Node} Parent
120
- * @param {Parent | null | undefined} parent
121
- * @param {keyof Parent | null | undefined} prop
122
- * @param {number | null | undefined} index
123
- */
124
- remove(parent, prop, index) {
125
- if (parent && prop) {
126
- if (index !== null && index !== void 0) {
127
- parent[prop].splice(index, 1);
128
- } else {
129
- delete parent[prop];
130
- }
131
- }
132
- }
133
- };
134
-
135
- // ../node_modules/estree-walker/src/sync.js
136
- var SyncWalker = class extends WalkerBase {
137
- static {
138
- __name(this, "SyncWalker");
139
- }
140
- /**
141
- *
142
- * @param {SyncHandler} [enter]
143
- * @param {SyncHandler} [leave]
144
- */
145
- constructor(enter, leave) {
146
- super();
147
- this.should_skip = false;
148
- this.should_remove = false;
149
- this.replacement = null;
150
- this.context = {
151
- skip: /* @__PURE__ */ __name(() => this.should_skip = true, "skip"),
152
- remove: /* @__PURE__ */ __name(() => this.should_remove = true, "remove"),
153
- replace: /* @__PURE__ */ __name((node) => this.replacement = node, "replace")
154
- };
155
- this.enter = enter;
156
- this.leave = leave;
157
- }
158
- /**
159
- * @template {Node} Parent
160
- * @param {Node} node
161
- * @param {Parent | null} parent
162
- * @param {keyof Parent} [prop]
163
- * @param {number | null} [index]
164
- * @returns {Node | null}
165
- */
166
- visit(node, parent, prop, index) {
167
- if (node) {
168
- if (this.enter) {
169
- const _should_skip = this.should_skip;
170
- const _should_remove = this.should_remove;
171
- const _replacement = this.replacement;
172
- this.should_skip = false;
173
- this.should_remove = false;
174
- this.replacement = null;
175
- this.enter.call(this.context, node, parent, prop, index);
176
- if (this.replacement) {
177
- node = this.replacement;
178
- this.replace(parent, prop, index, node);
179
- }
180
- if (this.should_remove) {
181
- this.remove(parent, prop, index);
182
- }
183
- const skipped = this.should_skip;
184
- const removed = this.should_remove;
185
- this.should_skip = _should_skip;
186
- this.should_remove = _should_remove;
187
- this.replacement = _replacement;
188
- if (skipped) return node;
189
- if (removed) return null;
190
- }
191
- let key;
192
- for (key in node) {
193
- const value = node[key];
194
- if (value && typeof value === "object") {
195
- if (Array.isArray(value)) {
196
- const nodes = (
197
- /** @type {Array<unknown>} */
198
- value
199
- );
200
- for (let i = 0; i < nodes.length; i += 1) {
201
- const item = nodes[i];
202
- if (isNode(item)) {
203
- if (!this.visit(item, node, key, i)) {
204
- i--;
205
- }
206
- }
207
- }
208
- } else if (isNode(value)) {
209
- this.visit(value, node, key, null);
210
- }
211
- }
212
- }
213
- if (this.leave) {
214
- const _replacement = this.replacement;
215
- const _should_remove = this.should_remove;
216
- this.replacement = null;
217
- this.should_remove = false;
218
- this.leave.call(this.context, node, parent, prop, index);
219
- if (this.replacement) {
220
- node = this.replacement;
221
- this.replace(parent, prop, index, node);
222
- }
223
- if (this.should_remove) {
224
- this.remove(parent, prop, index);
225
- }
226
- const removed = this.should_remove;
227
- this.replacement = _replacement;
228
- this.should_remove = _should_remove;
229
- if (removed) return null;
230
- }
231
- }
232
- return node;
233
- }
234
- };
235
- function isNode(value) {
236
- return value !== null && typeof value === "object" && "type" in value && typeof value.type === "string";
237
- }
238
- __name(isNode, "isNode");
239
-
240
- // ../node_modules/estree-walker/src/index.js
241
- function walk(ast, { enter, leave }) {
242
- const instance = new SyncWalker(enter, leave);
243
- return instance.visit(ast, null);
244
- }
245
- __name(walk, "walk");
246
-
247
- // src/core-server/mocking-utils/extract.ts
248
- var DEFAULT_MODULE_DIRECTORIES = ["/node_modules/"];
249
- function isModuleDirectory(path) {
250
- const normalizedPath = normalize(path);
251
- return DEFAULT_MODULE_DIRECTORIES.some((dir) => normalizedPath.includes(dir));
252
- }
253
- __name(isModuleDirectory, "isModuleDirectory");
254
- var babelParser = /* @__PURE__ */ __name((code) => {
255
- return parser.parse(code, {
256
- sourceType: "module",
257
- // Enable plugins to handle modern JavaScript features, including TSX.
258
- plugins: ["typescript", "jsx", "classProperties", "objectRestSpread"],
259
- errorRecovery: true
260
- }).program;
261
- }, "babelParser");
262
- function rewriteSbMockImportCalls(code) {
263
- const ast = babelParser(code);
264
- walk(ast, {
265
- enter(node) {
266
- if (node.type === "CallExpression" && node.callee.type === "MemberExpression" && node.callee.object.type === "Identifier" && node.callee.object.name === "sb" && node.callee.property.type === "Identifier" && node.callee.property.name === "mock" && node.arguments.length > 0 && node.arguments[0].type === "CallExpression" && node.arguments[0].callee.type === "Import" && node.arguments[0].arguments.length === 1 && node.arguments[0].arguments[0].type === "StringLiteral") {
267
- node.arguments[0] = t2.stringLiteral(node.arguments[0].arguments[0].value);
268
- }
269
- }
270
- });
271
- return generate(ast, {}, code);
272
- }
273
- __name(rewriteSbMockImportCalls, "rewriteSbMockImportCalls");
274
- function extractMockCalls(options, parse, root) {
275
- try {
276
- let hasSpyTrue2 = function(objectExpression) {
277
- if (!objectExpression || !objectExpression.properties) {
278
- return false;
279
- }
280
- for (const prop of objectExpression.properties) {
281
- if (prop.type === "ObjectProperty" && (prop.key.type === "Identifier" && prop.key.name === "spy" || prop.key.type === "StringLiteral" && prop.key.value === "spy") && prop.value.type === "BooleanLiteral" && prop.value.value === true) {
282
- return true;
283
- }
284
- }
285
- return false;
286
- };
287
- var hasSpyTrue = hasSpyTrue2;
288
- __name(hasSpyTrue2, "hasSpyTrue");
289
- const previewConfigCode = readFileSync(options.previewConfigPath, "utf-8");
290
- const { code: jsCode } = transformSync(previewConfigCode, { loader: "tsx", format: "esm" });
291
- const ast = parse(jsCode);
292
- const mocks = [];
293
- walk(ast, {
294
- // @ts-expect-error - Node comes from babel
295
- async enter(node) {
296
- if (node.type !== "CallExpression" || node.callee.type !== "MemberExpression" || node.callee.object.type !== "Identifier" || node.callee.object.name !== "sb" || node.callee.property.type !== "Identifier" || node.callee.property.name !== "mock") {
297
- return;
298
- }
299
- if (node.arguments.length === 0) {
300
- return;
301
- }
302
- let path;
303
- if (node.arguments[0].type === "StringLiteral") {
304
- path = node.arguments[0].value;
305
- } else if (node.arguments[0].type === "CallExpression" && node.arguments[0].callee.type === "Import" && node.arguments[0].arguments[0].type === "StringLiteral") {
306
- path = node.arguments[0].arguments[0].value;
307
- } else {
308
- return;
309
- }
310
- const spy = node.arguments.length > 1 && node.arguments[1].type === "ObjectExpression" && hasSpyTrue2(node.arguments[1]);
311
- const { absolutePath, redirectPath } = resolveMock(path, root, options.previewConfigPath);
312
- const pathWithoutExtension = path.replace(/\.[^/.]+$/, "");
313
- const basenameAbsolutePath = basename(absolutePath);
314
- const basenamePath = basename(path);
315
- const pathWithoutExtensionAndBasename = basenameAbsolutePath === basenamePath ? pathWithoutExtension : path;
316
- mocks.push({
317
- path: pathWithoutExtensionAndBasename,
318
- absolutePath,
319
- redirectPath,
320
- spy
321
- });
322
- }
323
- });
324
- if (!options.coreOptions?.disableTelemetry) {
325
- telemetry(
326
- "mocking",
327
- {
328
- modulesMocked: mocks.length,
329
- modulesSpied: mocks.map((mock) => mock.spy).filter(Boolean).length,
330
- modulesManuallyMocked: mocks.map((mock) => !!mock.redirectPath).filter(Boolean).length
331
- },
332
- { configDir: options.configDir }
333
- );
334
- }
335
- return mocks;
336
- } catch (error) {
337
- logger.debug("Error extracting mock calls", error);
338
- return [];
339
- }
340
- }
341
- __name(extractMockCalls, "extractMockCalls");
342
-
343
- // src/core-server/mocking-utils/resolve.ts
344
- var require2 = createRequire(import.meta.url);
345
- function findPackageJson(specifier, basedir) {
346
- const packageJsonPath = require2.resolve(`${specifier}/package.json`, { paths: [basedir] });
347
- return {
348
- path: packageJsonPath,
349
- data: JSON.parse(readFileSync2(packageJsonPath, "utf-8"))
350
- };
351
- }
352
- __name(findPackageJson, "findPackageJson");
353
- function resolveExternalModule(path, root) {
354
- const parts = path.split("/");
355
- const packageName = path.startsWith("@") ? `${parts[0]}/${parts[1]}` : parts[0];
356
- const entry = `.${path.slice(packageName.length)}`;
357
- const { path: packageJsonPath, data: pkg } = findPackageJson(packageName, root);
358
- const packageDir = dirname(packageJsonPath);
359
- if (pkg.exports) {
360
- const result = o(pkg, entry, {
361
- browser: true
362
- });
363
- if (result) {
364
- return join(packageDir, result[0]);
365
- }
366
- }
367
- return require2.resolve(path, { paths: [root] });
368
- }
369
- __name(resolveExternalModule, "resolveExternalModule");
370
- function getIsExternal(path, importer) {
371
- try {
372
- return !isAbsolute(path) && isModuleDirectory(require2.resolve(path, { paths: [importer] }));
373
- } catch (e2) {
374
- return false;
375
- }
376
- }
377
- __name(getIsExternal, "getIsExternal");
378
- function resolveMock(path, root, importer) {
379
- const isExternal = getIsExternal(path, root);
380
- const externalPath = isExternal ? path : null;
381
- const absolutePath = isExternal ? resolveExternalModule(path, root) : require2.resolve(path, { paths: [dirname(importer)] });
382
- const normalizedAbsolutePath = resolve(absolutePath);
383
- const redirectPath = findMockRedirect(root, normalizedAbsolutePath, externalPath);
384
- return {
385
- absolutePath: normalizedAbsolutePath,
386
- redirectPath
387
- // will be null if no __mocks__ file is found
388
- };
389
- }
390
- __name(resolveMock, "resolveMock");
391
- function getRealPath(path, preserveSymlinks) {
392
- try {
393
- return preserveSymlinks ? realpathSync(path) : path;
394
- } catch {
395
- return path;
396
- }
397
- }
398
- __name(getRealPath, "getRealPath");
399
- function resolveWithExtensions(path, from) {
400
- const extensions = [".js", ".ts", ".tsx", ".mjs", ".cjs", ".svelte", ".vue"];
401
- for (const extension of extensions) {
402
- try {
403
- return require2.resolve(path + extension, { paths: [from] });
404
- } catch (e2) {
405
- continue;
406
- }
407
- }
408
- return require2.resolve(path, { paths: [from] });
409
- }
410
- __name(resolveWithExtensions, "resolveWithExtensions");
411
-
412
- export {
413
- resolveExternalModule,
414
- getIsExternal,
415
- getRealPath,
416
- resolveWithExtensions,
417
- babelParser,
418
- rewriteSbMockImportCalls,
419
- extractMockCalls
420
- };