@fragments-sdk/cli 0.10.1 → 0.11.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.
- package/dist/bin.js +20 -2
- package/dist/bin.js.map +1 -1
- package/dist/{init-NDQXUWDU.js → init-UFGK5TCN.js} +75 -4
- package/dist/init-UFGK5TCN.js.map +1 -0
- package/dist/snapshot-SV2JOFZH.js +139 -0
- package/dist/snapshot-SV2JOFZH.js.map +1 -0
- package/dist/{viewer-DNMNC5VS.js → viewer-DLLJIMCK.js} +68 -46
- package/dist/viewer-DLLJIMCK.js.map +1 -0
- package/package.json +6 -14
- package/src/bin.ts +30 -0
- package/src/commands/init.ts +76 -1
- package/src/commands/snapshot.ts +197 -0
- package/src/viewer/__tests__/viewer-integration.test.ts +85 -74
- package/src/viewer/server.ts +37 -22
- package/src/viewer/vite-plugin.ts +25 -9
- package/dist/init-NDQXUWDU.js.map +0 -1
- package/dist/viewer-DNMNC5VS.js.map +0 -1
- package/src/viewer/__tests__/a11y-fixes.test.ts +0 -358
- package/src/viewer/__tests__/jsx-parser.test.ts +0 -502
- package/src/viewer/__tests__/render-utils.test.ts +0 -232
- package/src/viewer/__tests__/style-utils.test.ts +0 -404
- package/src/viewer/assets/fragments-logo.ts +0 -4
- package/src/viewer/assets/fragments_logo.png +0 -0
- package/src/viewer/components/AccessibilityPanel.tsx +0 -1457
- package/src/viewer/components/ActionCapture.tsx +0 -172
- package/src/viewer/components/ActionsPanel.tsx +0 -332
- package/src/viewer/components/AllVariantsPreview.tsx +0 -78
- package/src/viewer/components/App.tsx +0 -582
- package/src/viewer/components/BottomPanel.tsx +0 -288
- package/src/viewer/components/CodePanel.naming.test.tsx +0 -59
- package/src/viewer/components/CodePanel.tsx +0 -118
- package/src/viewer/components/CommandPalette.tsx +0 -392
- package/src/viewer/components/ComponentDocView.tsx +0 -164
- package/src/viewer/components/ComponentGraph.tsx +0 -380
- package/src/viewer/components/ComponentHeader.tsx +0 -88
- package/src/viewer/components/ContractPanel.tsx +0 -241
- package/src/viewer/components/EmptyVariantMessage.tsx +0 -54
- package/src/viewer/components/ErrorBoundary.tsx +0 -97
- package/src/viewer/components/FigmaEmbed.tsx +0 -238
- package/src/viewer/components/FragmentEditor.tsx +0 -525
- package/src/viewer/components/FragmentRenderer.tsx +0 -61
- package/src/viewer/components/HeaderSearch.tsx +0 -24
- package/src/viewer/components/HealthDashboard.tsx +0 -441
- package/src/viewer/components/HmrStatusIndicator.tsx +0 -61
- package/src/viewer/components/Icons.tsx +0 -479
- package/src/viewer/components/InteractionsPanel.tsx +0 -757
- package/src/viewer/components/IsolatedPreviewFrame.tsx +0 -346
- package/src/viewer/components/IsolatedRender.tsx +0 -113
- package/src/viewer/components/KeyboardShortcutsHelp.tsx +0 -53
- package/src/viewer/components/LandingPage.tsx +0 -421
- package/src/viewer/components/Layout.tsx +0 -27
- package/src/viewer/components/LeftSidebar.tsx +0 -472
- package/src/viewer/components/LoadErrorMessage.tsx +0 -102
- package/src/viewer/components/MultiViewportPreview.tsx +0 -522
- package/src/viewer/components/NoVariantsMessage.tsx +0 -59
- package/src/viewer/components/PanelShell.tsx +0 -161
- package/src/viewer/components/PerformancePanel.tsx +0 -304
- package/src/viewer/components/PreviewArea.tsx +0 -472
- package/src/viewer/components/PreviewAside.tsx +0 -168
- package/src/viewer/components/PreviewFrameHost.tsx +0 -303
- package/src/viewer/components/PreviewPane.tsx +0 -149
- package/src/viewer/components/PreviewToolbar.tsx +0 -80
- package/src/viewer/components/PropsEditor.tsx +0 -506
- package/src/viewer/components/PropsTable.tsx +0 -111
- package/src/viewer/components/RelationsSection.tsx +0 -88
- package/src/viewer/components/ResizablePanel.tsx +0 -271
- package/src/viewer/components/RightSidebar.tsx +0 -102
- package/src/viewer/components/RuntimeToolsRegistrar.tsx +0 -17
- package/src/viewer/components/ScreenshotButton.tsx +0 -90
- package/src/viewer/components/Sidebar.tsx +0 -169
- package/src/viewer/components/SkeletonLoader.tsx +0 -161
- package/src/viewer/components/ThemeProvider.tsx +0 -42
- package/src/viewer/components/Toast.tsx +0 -3
- package/src/viewer/components/TokenStylePanel.tsx +0 -699
- package/src/viewer/components/TopToolbar.tsx +0 -159
- package/src/viewer/components/UsageSection.tsx +0 -95
- package/src/viewer/components/VariantMatrix.tsx +0 -388
- package/src/viewer/components/VariantRenderer.tsx +0 -131
- package/src/viewer/components/VariantTabs.tsx +0 -40
- package/src/viewer/components/ViewerHeader.tsx +0 -69
- package/src/viewer/components/ViewerStateSync.tsx +0 -52
- package/src/viewer/components/ViewportSelector.tsx +0 -172
- package/src/viewer/components/WebMCPDevTools.tsx +0 -503
- package/src/viewer/components/WebMCPIntegration.tsx +0 -47
- package/src/viewer/components/WebMCPStatusIndicator.tsx +0 -60
- package/src/viewer/components/_future/CreatePage.tsx +0 -836
- package/src/viewer/components/viewer-utils.ts +0 -16
- package/src/viewer/composition-renderer.ts +0 -381
- package/src/viewer/constants/index.ts +0 -1
- package/src/viewer/constants/ui.ts +0 -166
- package/src/viewer/entry.tsx +0 -335
- package/src/viewer/hooks/index.ts +0 -2
- package/src/viewer/hooks/useA11yCache.ts +0 -383
- package/src/viewer/hooks/useA11yService.ts +0 -364
- package/src/viewer/hooks/useActions.ts +0 -138
- package/src/viewer/hooks/useAppState.ts +0 -147
- package/src/viewer/hooks/useCompiledFragments.ts +0 -42
- package/src/viewer/hooks/useFigmaIntegration.ts +0 -132
- package/src/viewer/hooks/useHmrStatus.ts +0 -109
- package/src/viewer/hooks/useKeyboardShortcuts.ts +0 -270
- package/src/viewer/hooks/usePreviewBridge.ts +0 -347
- package/src/viewer/hooks/useScrollSpy.ts +0 -78
- package/src/viewer/hooks/useUrlState.ts +0 -318
- package/src/viewer/hooks/useViewSettings.ts +0 -111
- package/src/viewer/index.html +0 -28
- package/src/viewer/intelligence/healthReport.ts +0 -505
- package/src/viewer/intelligence/styleDrift.ts +0 -340
- package/src/viewer/intelligence/usageScanner.ts +0 -309
- package/src/viewer/jsx-parser.ts +0 -486
- package/src/viewer/preview-frame-entry.tsx +0 -25
- package/src/viewer/preview-frame.html +0 -125
- package/src/viewer/public/favicon.ico +0 -0
- package/src/viewer/render-template.html +0 -68
- package/src/viewer/styles/globals.css +0 -278
- package/src/viewer/types/a11y.ts +0 -197
- package/src/viewer/utils/a11y-fixes.ts +0 -509
- package/src/viewer/utils/actionExport.ts +0 -372
- package/src/viewer/utils/colorSchemes.ts +0 -201
- package/src/viewer/utils/detectRelationships.ts +0 -256
- package/src/viewer/vendor/shared/src/ComponentDocContent.module.scss +0 -10
- package/src/viewer/vendor/shared/src/ComponentDocContent.module.scss.d.ts +0 -2
- package/src/viewer/vendor/shared/src/ComponentDocContent.tsx +0 -274
- package/src/viewer/vendor/shared/src/DocsHeaderBar.tsx +0 -129
- package/src/viewer/vendor/shared/src/DocsPageAsideHost.tsx +0 -89
- package/src/viewer/vendor/shared/src/DocsPageShell.tsx +0 -124
- package/src/viewer/vendor/shared/src/DocsSearchCommand.tsx +0 -99
- package/src/viewer/vendor/shared/src/DocsSidebarNav.tsx +0 -66
- package/src/viewer/vendor/shared/src/PropsTable.module.scss +0 -68
- package/src/viewer/vendor/shared/src/PropsTable.module.scss.d.ts +0 -2
- package/src/viewer/vendor/shared/src/PropsTable.tsx +0 -76
- package/src/viewer/vendor/shared/src/VariantPreviewCard.module.scss +0 -114
- package/src/viewer/vendor/shared/src/VariantPreviewCard.module.scss.d.ts +0 -2
- package/src/viewer/vendor/shared/src/VariantPreviewCard.tsx +0 -137
- package/src/viewer/vendor/shared/src/docs-data/index.ts +0 -32
- package/src/viewer/vendor/shared/src/docs-data/mcp-configs.ts +0 -72
- package/src/viewer/vendor/shared/src/docs-data/palettes.ts +0 -75
- package/src/viewer/vendor/shared/src/docs-data/setup-examples.ts +0 -55
- package/src/viewer/vendor/shared/src/docs-layout.scss +0 -28
- package/src/viewer/vendor/shared/src/docs-layout.scss.d.ts +0 -2
- package/src/viewer/vendor/shared/src/index.ts +0 -34
- package/src/viewer/vendor/shared/src/types.ts +0 -53
- package/src/viewer/webmcp/__tests__/analytics.test.ts +0 -108
- package/src/viewer/webmcp/analytics.ts +0 -165
- package/src/viewer/webmcp/index.ts +0 -3
- package/src/viewer/webmcp/posthog-bridge.ts +0 -39
- package/src/viewer/webmcp/runtime-tools.ts +0 -152
- package/src/viewer/webmcp/scan-utils.ts +0 -135
- package/src/viewer/webmcp/use-tool-analytics.ts +0 -69
- package/src/viewer/webmcp/viewer-state.ts +0 -45
|
@@ -25,13 +25,14 @@ import {
|
|
|
25
25
|
} from "vite";
|
|
26
26
|
import react from "@vitejs/plugin-react";
|
|
27
27
|
import { resolve as resolve2, dirname as dirname2, join } from "path";
|
|
28
|
-
import { existsSync, realpathSync } from "fs";
|
|
28
|
+
import { existsSync as existsSync2, realpathSync } from "fs";
|
|
29
29
|
import { readFile as readFile2 } from "fs/promises";
|
|
30
30
|
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
31
31
|
|
|
32
32
|
// src/viewer/vite-plugin.ts
|
|
33
33
|
import { resolve, dirname } from "path";
|
|
34
34
|
import { fileURLToPath } from "url";
|
|
35
|
+
import { existsSync } from "fs";
|
|
35
36
|
import { readFile } from "fs/promises";
|
|
36
37
|
import { transform } from "esbuild";
|
|
37
38
|
import svgr from "vite-plugin-svgr";
|
|
@@ -354,7 +355,19 @@ function compareNumericValues(value1, value2, tolerance) {
|
|
|
354
355
|
|
|
355
356
|
// src/viewer/vite-plugin.ts
|
|
356
357
|
var __dirname = dirname(fileURLToPath(import.meta.url));
|
|
357
|
-
var
|
|
358
|
+
var monorepoViewerSrc = resolve(__dirname, "..", "..", "viewer", "src");
|
|
359
|
+
var npmViewerSrc = (() => {
|
|
360
|
+
const cliNm = resolve(__dirname, "..", "node_modules", "@fragments-sdk", "viewer", "src");
|
|
361
|
+
if (existsSync(cliNm)) return cliNm;
|
|
362
|
+
let dir = resolve(__dirname, "..");
|
|
363
|
+
for (let i = 0; i < 5; i++) {
|
|
364
|
+
const candidate = resolve(dir, "node_modules", "@fragments-sdk", "viewer", "src");
|
|
365
|
+
if (existsSync(candidate)) return candidate;
|
|
366
|
+
dir = resolve(dir, "..");
|
|
367
|
+
}
|
|
368
|
+
return null;
|
|
369
|
+
})();
|
|
370
|
+
var viewerAssetsRoot = existsSync(monorepoViewerSrc) ? monorepoViewerSrc : npmViewerSrc ?? monorepoViewerSrc;
|
|
358
371
|
var pendingRenders = /* @__PURE__ */ new Map();
|
|
359
372
|
var sharedRenderPool = null;
|
|
360
373
|
var browserPoolModule = null;
|
|
@@ -1860,10 +1873,11 @@ async function loadFragmentsForContext(_server, _fragmentFiles, _config, configD
|
|
|
1860
1873
|
}
|
|
1861
1874
|
}
|
|
1862
1875
|
async function serveViewerHTML(res, server) {
|
|
1863
|
-
const
|
|
1864
|
-
const
|
|
1876
|
+
const viewerSrc = viewerAssetsRoot;
|
|
1877
|
+
const viewerPkgRoot = resolve(viewerSrc, "..");
|
|
1878
|
+
const entryPath = resolve(viewerSrc, "entry.tsx");
|
|
1865
1879
|
try {
|
|
1866
|
-
let html = await readFile(resolve(
|
|
1880
|
+
let html = await readFile(resolve(viewerPkgRoot, "index.html"), "utf-8");
|
|
1867
1881
|
html = html.replace("/src/entry.tsx", entryPath);
|
|
1868
1882
|
html = await server.transformIndexHtml("/fragments/", html);
|
|
1869
1883
|
res.writeHead(200, { "Content-Type": "text/html" });
|
|
@@ -1875,10 +1889,10 @@ async function serveViewerHTML(res, server) {
|
|
|
1875
1889
|
}
|
|
1876
1890
|
}
|
|
1877
1891
|
async function servePreviewFrameHTML(res, server) {
|
|
1878
|
-
const
|
|
1879
|
-
const entryPath = resolve(
|
|
1892
|
+
const viewerSrc = viewerAssetsRoot;
|
|
1893
|
+
const entryPath = resolve(viewerSrc, "preview-frame-entry.tsx");
|
|
1880
1894
|
try {
|
|
1881
|
-
let html = await readFile(resolve(
|
|
1895
|
+
let html = await readFile(resolve(viewerSrc, "preview-frame.html"), "utf-8");
|
|
1882
1896
|
html = html.replace("/src/preview-frame-entry.tsx", entryPath);
|
|
1883
1897
|
html = await server.transformIndexHtml("/fragments/preview/", html);
|
|
1884
1898
|
res.writeHead(200, { "Content-Type": "text/html" });
|
|
@@ -1971,10 +1985,10 @@ async function captureA11yAudit(url, viewport) {
|
|
|
1971
1985
|
}
|
|
1972
1986
|
}
|
|
1973
1987
|
async function serveRenderHTML(res, server, renderScript) {
|
|
1974
|
-
const
|
|
1988
|
+
const viewerRoot = viewerAssetsRoot;
|
|
1975
1989
|
try {
|
|
1976
1990
|
let html = await readFile(
|
|
1977
|
-
resolve(
|
|
1991
|
+
resolve(viewerRoot, "render-template.html"),
|
|
1978
1992
|
"utf-8"
|
|
1979
1993
|
);
|
|
1980
1994
|
html = html.replace(
|
|
@@ -2278,68 +2292,73 @@ async function resizePng(buffer, srcWidth, srcHeight, targetWidth, targetHeight)
|
|
|
2278
2292
|
// src/viewer/server.ts
|
|
2279
2293
|
var __dirname2 = dirname2(fileURLToPath2(import.meta.url));
|
|
2280
2294
|
var cliPackageRoot = resolve2(__dirname2, "..");
|
|
2281
|
-
var viewerRoot = resolve2(cliPackageRoot, "src/viewer");
|
|
2282
2295
|
var packagesRoot = resolve2(cliPackageRoot, "..");
|
|
2283
2296
|
var localUiLibRoot = resolve2(packagesRoot, "../libs/ui/src");
|
|
2284
|
-
var localSharedLibRoot = resolve2(packagesRoot, "../libs/shared/src");
|
|
2285
|
-
var vendoredSharedLibRoot = resolve2(viewerRoot, "vendor/shared/src");
|
|
2286
2297
|
var localWebMCPRoot = resolve2(packagesRoot, "webmcp/src");
|
|
2287
2298
|
var localContextRoot = resolve2(packagesRoot, "context/src");
|
|
2299
|
+
function resolveViewerRoot(nodeModulesDir) {
|
|
2300
|
+
const monorepoPath = resolve2(packagesRoot, "viewer");
|
|
2301
|
+
if (existsSync2(join(monorepoPath, "src/shared/index.ts"))) {
|
|
2302
|
+
return monorepoPath;
|
|
2303
|
+
}
|
|
2304
|
+
const npmPath = join(nodeModulesDir, "@fragments-sdk/viewer");
|
|
2305
|
+
if (existsSync2(npmPath)) {
|
|
2306
|
+
return npmPath;
|
|
2307
|
+
}
|
|
2308
|
+
const cliNpmPath = join(cliPackageRoot, "node_modules/@fragments-sdk/viewer");
|
|
2309
|
+
if (existsSync2(cliNpmPath)) {
|
|
2310
|
+
return cliNpmPath;
|
|
2311
|
+
}
|
|
2312
|
+
return monorepoPath;
|
|
2313
|
+
}
|
|
2288
2314
|
function resolveUiLib(nodeModulesDir) {
|
|
2289
2315
|
const localIndex = join(localUiLibRoot, "index.ts");
|
|
2290
|
-
if (
|
|
2316
|
+
if (existsSync2(localIndex)) {
|
|
2291
2317
|
return localUiLibRoot;
|
|
2292
2318
|
}
|
|
2293
2319
|
const installedUi = join(nodeModulesDir, "@fragments-sdk/ui/src/index.ts");
|
|
2294
|
-
if (
|
|
2320
|
+
if (existsSync2(installedUi)) {
|
|
2295
2321
|
return resolve2(dirname2(installedUi));
|
|
2296
2322
|
}
|
|
2297
2323
|
const installedUiDist = join(nodeModulesDir, "@fragments-sdk/ui");
|
|
2298
|
-
if (
|
|
2324
|
+
if (existsSync2(installedUiDist)) {
|
|
2299
2325
|
return installedUiDist;
|
|
2300
2326
|
}
|
|
2301
2327
|
return localUiLibRoot;
|
|
2302
2328
|
}
|
|
2303
2329
|
function resolveWebMCPLib(nodeModulesDir) {
|
|
2304
2330
|
const localIndex = join(localWebMCPRoot, "index.ts");
|
|
2305
|
-
if (
|
|
2331
|
+
if (existsSync2(localIndex)) {
|
|
2306
2332
|
return localWebMCPRoot;
|
|
2307
2333
|
}
|
|
2308
2334
|
const installedSrc = join(nodeModulesDir, "@fragments-sdk/webmcp/src/index.ts");
|
|
2309
|
-
if (
|
|
2335
|
+
if (existsSync2(installedSrc)) {
|
|
2310
2336
|
return resolve2(dirname2(installedSrc));
|
|
2311
2337
|
}
|
|
2312
2338
|
const installedDist = join(nodeModulesDir, "@fragments-sdk/webmcp");
|
|
2313
|
-
if (
|
|
2339
|
+
if (existsSync2(installedDist)) {
|
|
2314
2340
|
return installedDist;
|
|
2315
2341
|
}
|
|
2316
2342
|
return localWebMCPRoot;
|
|
2317
2343
|
}
|
|
2318
2344
|
function resolveContextLib(nodeModulesDir) {
|
|
2319
2345
|
const localIndex = join(localContextRoot, "index.ts");
|
|
2320
|
-
if (
|
|
2346
|
+
if (existsSync2(localIndex)) {
|
|
2321
2347
|
return localContextRoot;
|
|
2322
2348
|
}
|
|
2323
2349
|
const installedSrc = join(nodeModulesDir, "@fragments-sdk/context/src/index.ts");
|
|
2324
|
-
if (
|
|
2350
|
+
if (existsSync2(installedSrc)) {
|
|
2325
2351
|
return resolve2(dirname2(installedSrc));
|
|
2326
2352
|
}
|
|
2327
2353
|
const installedDist = join(nodeModulesDir, "@fragments-sdk/context");
|
|
2328
|
-
if (
|
|
2354
|
+
if (existsSync2(installedDist)) {
|
|
2329
2355
|
return installedDist;
|
|
2330
2356
|
}
|
|
2331
2357
|
return localContextRoot;
|
|
2332
2358
|
}
|
|
2333
|
-
function
|
|
2334
|
-
const
|
|
2335
|
-
|
|
2336
|
-
return localSharedLibRoot;
|
|
2337
|
-
}
|
|
2338
|
-
const vendoredIndex = join(vendoredSharedLibRoot, "index.ts");
|
|
2339
|
-
if (existsSync(vendoredIndex)) {
|
|
2340
|
-
return vendoredSharedLibRoot;
|
|
2341
|
-
}
|
|
2342
|
-
return localSharedLibRoot;
|
|
2359
|
+
function resolveViewerLib(nodeModulesDir) {
|
|
2360
|
+
const viewerRoot = resolveViewerRoot(nodeModulesDir);
|
|
2361
|
+
return resolve2(viewerRoot, "src");
|
|
2343
2362
|
}
|
|
2344
2363
|
function cjsInteropPlugin(nodeModulesPath) {
|
|
2345
2364
|
const virtualModules = {
|
|
@@ -2423,7 +2442,7 @@ function optionalPeerDepsPlugin(uiLibRoot) {
|
|
|
2423
2442
|
const availableDeps = /* @__PURE__ */ new Set();
|
|
2424
2443
|
for (const dep of optionalDeps) {
|
|
2425
2444
|
const depPath = join(uiLibRoot, "..", "node_modules", ...dep.split("/"));
|
|
2426
|
-
if (
|
|
2445
|
+
if (existsSync2(depPath)) availableDeps.add(dep);
|
|
2427
2446
|
}
|
|
2428
2447
|
return {
|
|
2429
2448
|
name: "fragments:optional-peer-deps",
|
|
@@ -2461,7 +2480,7 @@ function optionalPeerDepsPlugin(uiLibRoot) {
|
|
|
2461
2480
|
async function detectTsconfigPaths(projectRoot) {
|
|
2462
2481
|
const aliases = {};
|
|
2463
2482
|
const tsconfigPath = join(projectRoot, "tsconfig.json");
|
|
2464
|
-
if (!
|
|
2483
|
+
if (!existsSync2(tsconfigPath)) return aliases;
|
|
2465
2484
|
try {
|
|
2466
2485
|
const content = await readFile2(tsconfigPath, "utf-8");
|
|
2467
2486
|
const cleaned = content.replace(/\/\/.*$/gm, "").replace(/\/\*[\s\S]*?\*\//g, "");
|
|
@@ -2486,10 +2505,10 @@ async function detectStorybookAliases(projectRoot) {
|
|
|
2486
2505
|
const aliases = {};
|
|
2487
2506
|
const assetsDir = resolve2(projectRoot, "assets");
|
|
2488
2507
|
const fontsDir = resolve2(projectRoot, "assets/fonts");
|
|
2489
|
-
if (
|
|
2508
|
+
if (existsSync2(fontsDir)) {
|
|
2490
2509
|
aliases["/fonts"] = fontsDir;
|
|
2491
2510
|
}
|
|
2492
|
-
if (
|
|
2511
|
+
if (existsSync2(assetsDir)) {
|
|
2493
2512
|
aliases["/assets"] = assetsDir;
|
|
2494
2513
|
}
|
|
2495
2514
|
return aliases;
|
|
@@ -2529,16 +2548,17 @@ async function createDevServer(options = {}) {
|
|
|
2529
2548
|
}
|
|
2530
2549
|
const nodeModulesPath = findNodeModules(projectRoot);
|
|
2531
2550
|
const uiLibRoot = resolveUiLib(nodeModulesPath);
|
|
2532
|
-
const
|
|
2551
|
+
const viewerRoot = resolveViewerRoot(nodeModulesPath);
|
|
2552
|
+
const viewerLibRoot = resolveViewerLib(nodeModulesPath);
|
|
2533
2553
|
const webmcpLibRoot = resolveWebMCPLib(nodeModulesPath);
|
|
2534
2554
|
const contextLibRoot = resolveContextLib(nodeModulesPath);
|
|
2535
|
-
const isWebMCPSource =
|
|
2536
|
-
const isContextSource =
|
|
2555
|
+
const isWebMCPSource = existsSync2(join(webmcpLibRoot, "react/index.ts"));
|
|
2556
|
+
const isContextSource = existsSync2(join(contextLibRoot, "types/index.ts"));
|
|
2537
2557
|
console.log(`\u{1F4C1} Using node_modules: ${nodeModulesPath}`);
|
|
2538
2558
|
const tsconfigAliases = await detectTsconfigPaths(projectRoot);
|
|
2539
2559
|
const storybookAliases = await detectStorybookAliases(projectRoot);
|
|
2540
2560
|
const storybookDir = resolve2(projectRoot, ".storybook");
|
|
2541
|
-
const hasStorybookDir =
|
|
2561
|
+
const hasStorybookDir = existsSync2(storybookDir);
|
|
2542
2562
|
if (Object.keys(tsconfigAliases).length > 0) {
|
|
2543
2563
|
console.log(`\u{1F4CE} Detected ${Object.keys(tsconfigAliases).length} tsconfig path alias(es)`);
|
|
2544
2564
|
}
|
|
@@ -2570,7 +2590,7 @@ async function createDevServer(options = {}) {
|
|
|
2570
2590
|
allow: [
|
|
2571
2591
|
viewerRoot,
|
|
2572
2592
|
uiLibRoot,
|
|
2573
|
-
|
|
2593
|
+
viewerLibRoot,
|
|
2574
2594
|
webmcpLibRoot,
|
|
2575
2595
|
contextLibRoot,
|
|
2576
2596
|
projectRoot,
|
|
@@ -2626,8 +2646,10 @@ async function createDevServer(options = {}) {
|
|
|
2626
2646
|
...storybookAliases,
|
|
2627
2647
|
// Resolve @fragments-sdk/ui to local source or installed package
|
|
2628
2648
|
"@fragments-sdk/ui": uiLibRoot,
|
|
2629
|
-
// Resolve @fragments-sdk/
|
|
2630
|
-
"@fragments-sdk/shared":
|
|
2649
|
+
// Resolve @fragments-sdk/viewer subpaths to viewer package source
|
|
2650
|
+
"@fragments-sdk/viewer/shared": join(viewerLibRoot, "shared/index.ts"),
|
|
2651
|
+
"@fragments-sdk/viewer/app": join(viewerLibRoot, "app/index.ts"),
|
|
2652
|
+
"@fragments-sdk/viewer/docs-data": join(viewerLibRoot, "shared/docs-data/index.ts"),
|
|
2631
2653
|
// Resolve @fragments-sdk/webmcp subpaths to monorepo source or installed package
|
|
2632
2654
|
"@fragments-sdk/webmcp/react": isWebMCPSource ? join(webmcpLibRoot, "react/index.ts") : join(webmcpLibRoot, "dist/react/index.js"),
|
|
2633
2655
|
"@fragments-sdk/webmcp/fragments": isWebMCPSource ? join(webmcpLibRoot, "fragments/index.ts") : join(webmcpLibRoot, "dist/fragments/index.js"),
|
|
@@ -2666,7 +2688,7 @@ function findNodeModules(startDir) {
|
|
|
2666
2688
|
let current = startDir;
|
|
2667
2689
|
while (current !== dirname2(current)) {
|
|
2668
2690
|
const nodeModulesPath = join(current, "node_modules");
|
|
2669
|
-
if (
|
|
2691
|
+
if (existsSync2(join(nodeModulesPath, "react"))) {
|
|
2670
2692
|
return nodeModulesPath;
|
|
2671
2693
|
}
|
|
2672
2694
|
current = dirname2(current);
|
|
@@ -2682,7 +2704,7 @@ function findViteConfig(projectRoot) {
|
|
|
2682
2704
|
];
|
|
2683
2705
|
for (const file of configFiles) {
|
|
2684
2706
|
const path = join(projectRoot, file);
|
|
2685
|
-
if (
|
|
2707
|
+
if (existsSync2(path)) {
|
|
2686
2708
|
return path;
|
|
2687
2709
|
}
|
|
2688
2710
|
}
|
|
@@ -2705,4 +2727,4 @@ export {
|
|
|
2705
2727
|
createDevServer,
|
|
2706
2728
|
fragmentsPlugin
|
|
2707
2729
|
};
|
|
2708
|
-
//# sourceMappingURL=viewer-
|
|
2730
|
+
//# sourceMappingURL=viewer-DLLJIMCK.js.map
|