@fragments-sdk/cli 0.7.4 → 0.7.6
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/LICENSE +1 -4
- package/dist/bin.js +33 -14
- package/dist/bin.js.map +1 -1
- package/dist/{chunk-NEJ2FBTN.js → chunk-CR3XHBGM.js} +2 -2
- package/dist/{chunk-S56I5FST.js → chunk-EFQ7SIBX.js} +582 -107
- package/dist/chunk-EFQ7SIBX.js.map +1 -0
- package/dist/{chunk-UXLGIGSX.js → chunk-GIC3I2KZ.js} +2 -2
- package/dist/{chunk-R6IZZSE7.js → chunk-JZNATKQA.js} +9 -3
- package/dist/chunk-JZNATKQA.js.map +1 -0
- package/dist/{chunk-P33AKQJW.js → chunk-SFWZ4K7C.js} +8 -2
- package/dist/{chunk-P33AKQJW.js.map → chunk-SFWZ4K7C.js.map} +1 -1
- package/dist/{core-3NMNCLFW.js → core-T7BDYEGO.js} +3 -3
- package/dist/{generate-23VLX7QN.js → generate-C2DKFCFJ.js} +4 -4
- package/dist/index.d.ts +28 -2
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/dist/{init-VYVYMVHH.js → init-O3FCHEPN.js} +22 -6
- package/dist/init-O3FCHEPN.js.map +1 -0
- package/dist/mcp-bin.js +3 -3
- package/dist/{scan-FZR6YVI5.js → scan-IYTZDUKG.js} +5 -5
- package/dist/{service-CFFBHW4X.js → service-VA6XKADO.js} +3 -3
- package/dist/{static-viewer-VA2JXSCX.js → static-viewer-5N42MBDR.js} +3 -3
- package/dist/{test-VTD7R6G2.js → test-OMMDWL2W.js} +3 -3
- package/dist/{tokens-7JA5CPDL.js → tokens-6VJAHFIG.js} +4 -4
- package/dist/{viewer-WXTDDQGK.js → viewer-IVP5XC7U.js} +22 -14
- package/dist/viewer-IVP5XC7U.js.map +1 -0
- package/package.json +4 -2
- package/src/bin.ts +4 -0
- package/src/commands/add.ts +6 -0
- package/src/commands/init.ts +18 -2
- package/src/commands/validate.ts +24 -2
- package/src/core/config.ts +6 -0
- package/src/core/index.ts +1 -0
- package/src/core/schema.ts +6 -0
- package/src/core/types.ts +21 -0
- package/src/index.ts +2 -1
- package/src/service/snippet-validation.test.ts +209 -0
- package/src/service/snippet-validation.ts +635 -0
- package/src/validators.ts +53 -5
- package/src/viewer/__tests__/viewer-integration.test.ts +8 -0
- package/src/viewer/components/CodePanel.naming.test.tsx +60 -0
- package/src/viewer/components/CodePanel.tsx +76 -468
- package/src/viewer/components/Layout.tsx +1 -1
- package/src/viewer/utils/a11y-fixes.ts +24 -9
- package/src/viewer/vite-plugin.ts +9 -1
- package/dist/chunk-R6IZZSE7.js.map +0 -1
- package/dist/chunk-S56I5FST.js.map +0 -1
- package/dist/init-VYVYMVHH.js.map +0 -1
- package/dist/viewer-WXTDDQGK.js.map +0 -1
- /package/dist/{chunk-NEJ2FBTN.js.map → chunk-CR3XHBGM.js.map} +0 -0
- /package/dist/{chunk-UXLGIGSX.js.map → chunk-GIC3I2KZ.js.map} +0 -0
- /package/dist/{core-3NMNCLFW.js.map → core-T7BDYEGO.js.map} +0 -0
- /package/dist/{generate-23VLX7QN.js.map → generate-C2DKFCFJ.js.map} +0 -0
- /package/dist/{scan-FZR6YVI5.js.map → scan-IYTZDUKG.js.map} +0 -0
- /package/dist/{service-CFFBHW4X.js.map → service-VA6XKADO.js.map} +0 -0
- /package/dist/{static-viewer-VA2JXSCX.js.map → static-viewer-5N42MBDR.js.map} +0 -0
- /package/dist/{test-VTD7R6G2.js.map → test-OMMDWL2W.js.map} +0 -0
- /package/dist/{tokens-7JA5CPDL.js.map → tokens-6VJAHFIG.js.map} +0 -0
package/dist/mcp-bin.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { createRequire as __banner_createRequire } from 'module'; const require = __banner_createRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
generateContext
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-GIC3I2KZ.js";
|
|
6
|
+
import "./chunk-SFWZ4K7C.js";
|
|
7
7
|
import {
|
|
8
8
|
BRAND,
|
|
9
9
|
DEFAULTS
|
|
@@ -60,7 +60,7 @@ var _service = null;
|
|
|
60
60
|
async function getService() {
|
|
61
61
|
if (!_service) {
|
|
62
62
|
try {
|
|
63
|
-
_service = await import("./service-
|
|
63
|
+
_service = await import("./service-VA6XKADO.js");
|
|
64
64
|
} catch {
|
|
65
65
|
throw new Error(
|
|
66
66
|
"Visual tools require playwright. Install it with: npm install playwright"
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { createRequire as __banner_createRequire } from 'module'; const require = __banner_createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
scan
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-CR3XHBGM.js";
|
|
5
|
+
import "./chunk-JZNATKQA.js";
|
|
6
6
|
import "./chunk-AWYCDRPG.js";
|
|
7
7
|
import "./chunk-YMPGYEWK.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-GIC3I2KZ.js";
|
|
9
|
+
import "./chunk-SFWZ4K7C.js";
|
|
10
10
|
import "./chunk-EKLMXTWU.js";
|
|
11
11
|
import "./chunk-Z7EY4VHE.js";
|
|
12
12
|
export {
|
|
13
13
|
scan
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=scan-
|
|
15
|
+
//# sourceMappingURL=scan-IYTZDUKG.js.map
|
|
@@ -98,8 +98,8 @@ import {
|
|
|
98
98
|
sleep,
|
|
99
99
|
summarizePatternsForPrompt
|
|
100
100
|
} from "./chunk-YMPGYEWK.js";
|
|
101
|
-
import "./chunk-
|
|
102
|
-
import "./chunk-
|
|
101
|
+
import "./chunk-GIC3I2KZ.js";
|
|
102
|
+
import "./chunk-SFWZ4K7C.js";
|
|
103
103
|
import {
|
|
104
104
|
BRAND,
|
|
105
105
|
DEFAULTS
|
|
@@ -207,4 +207,4 @@ export {
|
|
|
207
207
|
sleep,
|
|
208
208
|
summarizePatternsForPrompt
|
|
209
209
|
};
|
|
210
|
-
//# sourceMappingURL=service-
|
|
210
|
+
//# sourceMappingURL=service-VA6XKADO.js.map
|
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
generateStaticViewer,
|
|
4
4
|
generateViewerFromJson
|
|
5
5
|
} from "./chunk-TOIE7VXF.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-GIC3I2KZ.js";
|
|
7
|
+
import "./chunk-SFWZ4K7C.js";
|
|
8
8
|
import "./chunk-EKLMXTWU.js";
|
|
9
9
|
import "./chunk-Z7EY4VHE.js";
|
|
10
10
|
export {
|
|
11
11
|
generateStaticViewer,
|
|
12
12
|
generateViewerFromJson
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=static-viewer-
|
|
14
|
+
//# sourceMappingURL=static-viewer-5N42MBDR.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createRequire as __banner_createRequire } from 'module'; const require = __banner_createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
parseFragmentFile
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-JZNATKQA.js";
|
|
5
5
|
import {
|
|
6
6
|
discoverFragmentFiles
|
|
7
7
|
} from "./chunk-AWYCDRPG.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-SFWZ4K7C.js";
|
|
9
9
|
import "./chunk-EKLMXTWU.js";
|
|
10
10
|
import "./chunk-Z7EY4VHE.js";
|
|
11
11
|
|
|
@@ -1072,4 +1072,4 @@ export {
|
|
|
1072
1072
|
listTests,
|
|
1073
1073
|
runTestCommand
|
|
1074
1074
|
};
|
|
1075
|
-
//# sourceMappingURL=test-
|
|
1075
|
+
//# sourceMappingURL=test-OMMDWL2W.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createRequire as __banner_createRequire } from 'module'; const require = __banner_createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
loadConfig
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-JZNATKQA.js";
|
|
5
5
|
import "./chunk-AWYCDRPG.js";
|
|
6
6
|
import {
|
|
7
7
|
parseTokenFiles
|
|
8
8
|
} from "./chunk-YMPGYEWK.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-GIC3I2KZ.js";
|
|
10
|
+
import "./chunk-SFWZ4K7C.js";
|
|
11
11
|
import {
|
|
12
12
|
BRAND
|
|
13
13
|
} from "./chunk-EKLMXTWU.js";
|
|
@@ -173,4 +173,4 @@ export {
|
|
|
173
173
|
tokens_default as default,
|
|
174
174
|
tokens
|
|
175
175
|
};
|
|
176
|
-
//# sourceMappingURL=tokens-
|
|
176
|
+
//# sourceMappingURL=tokens-6VJAHFIG.js.map
|
|
@@ -4,15 +4,15 @@ import {
|
|
|
4
4
|
findStorybookDir,
|
|
5
5
|
generatePreviewModule,
|
|
6
6
|
loadConfig
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-JZNATKQA.js";
|
|
8
8
|
import {
|
|
9
9
|
discoverFragmentFiles,
|
|
10
10
|
discoverInstalledFragments
|
|
11
11
|
} from "./chunk-AWYCDRPG.js";
|
|
12
12
|
import {
|
|
13
13
|
generateContext
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-GIC3I2KZ.js";
|
|
15
|
+
import "./chunk-SFWZ4K7C.js";
|
|
16
16
|
import {
|
|
17
17
|
BRAND
|
|
18
18
|
} from "./chunk-EKLMXTWU.js";
|
|
@@ -360,7 +360,7 @@ var sharedRenderPool = null;
|
|
|
360
360
|
var browserPoolModule = null;
|
|
361
361
|
async function getSharedRenderPool() {
|
|
362
362
|
if (!browserPoolModule) {
|
|
363
|
-
browserPoolModule = await import("./service-
|
|
363
|
+
browserPoolModule = await import("./service-VA6XKADO.js");
|
|
364
364
|
}
|
|
365
365
|
if (!sharedRenderPool) {
|
|
366
366
|
sharedRenderPool = new browserPoolModule.BrowserPool({
|
|
@@ -603,7 +603,7 @@ function fragmentsPlugin(options) {
|
|
|
603
603
|
const address = _server.httpServer?.address();
|
|
604
604
|
const port = typeof address === "object" && address ? address.port : 6006;
|
|
605
605
|
const renderViewport = viewport || { width: 800, height: 600 };
|
|
606
|
-
const { FigmaClient, bufferToBase64Url } = await import("./service-
|
|
606
|
+
const { FigmaClient, bufferToBase64Url } = await import("./service-VA6XKADO.js");
|
|
607
607
|
const figmaClient = new FigmaClient({
|
|
608
608
|
accessToken: figmaToken
|
|
609
609
|
});
|
|
@@ -694,7 +694,7 @@ function fragmentsPlugin(options) {
|
|
|
694
694
|
);
|
|
695
695
|
return;
|
|
696
696
|
}
|
|
697
|
-
const { FigmaClient } = await import("./service-
|
|
697
|
+
const { FigmaClient } = await import("./service-VA6XKADO.js");
|
|
698
698
|
const figmaClient = new FigmaClient({ accessToken: figmaToken });
|
|
699
699
|
const { fileKey, nodeId } = figmaClient.parseUrl(figmaUrl);
|
|
700
700
|
const figmaDesignProps = await figmaClient.getNodeProperties(
|
|
@@ -735,7 +735,7 @@ function fragmentsPlugin(options) {
|
|
|
735
735
|
}));
|
|
736
736
|
return;
|
|
737
737
|
}
|
|
738
|
-
const { getSharedTokenRegistry } = await import("./service-
|
|
738
|
+
const { getSharedTokenRegistry } = await import("./service-VA6XKADO.js");
|
|
739
739
|
const registry = getSharedTokenRegistry();
|
|
740
740
|
if (!registry.isInitialized()) {
|
|
741
741
|
await registry.initialize(config.tokens, projectRoot);
|
|
@@ -795,7 +795,7 @@ function fragmentsPlugin(options) {
|
|
|
795
795
|
}));
|
|
796
796
|
return;
|
|
797
797
|
}
|
|
798
|
-
const { getSharedTokenRegistry } = await import("./service-
|
|
798
|
+
const { getSharedTokenRegistry } = await import("./service-VA6XKADO.js");
|
|
799
799
|
const registry = getSharedTokenRegistry();
|
|
800
800
|
if (!registry.isInitialized()) {
|
|
801
801
|
await registry.initialize(config.tokens, projectRoot);
|
|
@@ -857,7 +857,7 @@ function fragmentsPlugin(options) {
|
|
|
857
857
|
res.end(JSON.stringify({ error: "Could not resolve fragment file path" }));
|
|
858
858
|
return;
|
|
859
859
|
}
|
|
860
|
-
const { getSharedTokenRegistry } = await import("./service-
|
|
860
|
+
const { getSharedTokenRegistry } = await import("./service-VA6XKADO.js");
|
|
861
861
|
const registry = getSharedTokenRegistry();
|
|
862
862
|
if (!registry.isInitialized()) {
|
|
863
863
|
await registry.initialize(config.tokens, projectRoot);
|
|
@@ -983,7 +983,7 @@ function fragmentsPlugin(options) {
|
|
|
983
983
|
}
|
|
984
984
|
const { writeFile, mkdir } = await import("fs/promises");
|
|
985
985
|
const { join: join2 } = await import("path");
|
|
986
|
-
const { BRAND: BRAND2 } = await import("./core-
|
|
986
|
+
const { BRAND: BRAND2 } = await import("./core-T7BDYEGO.js");
|
|
987
987
|
const fragmentsDir = join2(projectRoot, BRAND2.dataDir, BRAND2.componentsDir);
|
|
988
988
|
await mkdir(fragmentsDir, { recursive: true });
|
|
989
989
|
const fragmentPath = join2(
|
|
@@ -1056,7 +1056,7 @@ function fragmentsPlugin(options) {
|
|
|
1056
1056
|
const {
|
|
1057
1057
|
getSharedTokenRegistry,
|
|
1058
1058
|
generateTokenPatches
|
|
1059
|
-
} = await import("./service-
|
|
1059
|
+
} = await import("./service-VA6XKADO.js");
|
|
1060
1060
|
const registry = getSharedTokenRegistry();
|
|
1061
1061
|
if (!registry.isInitialized()) {
|
|
1062
1062
|
await registry.initialize(config.tokens, projectRoot);
|
|
@@ -1475,7 +1475,15 @@ function mergeMetadata(fragment, metadataModule) {
|
|
|
1475
1475
|
if (metadata.variants && fragment.variants) {
|
|
1476
1476
|
for (const metaVariant of metadata.variants) {
|
|
1477
1477
|
const fragmentVariant = fragment.variants.find(v => v.name === metaVariant.name);
|
|
1478
|
-
if (
|
|
1478
|
+
if (!fragmentVariant) continue;
|
|
1479
|
+
|
|
1480
|
+
// Use authored code snippets from fragment metadata when story variants
|
|
1481
|
+
// don't define their own code.
|
|
1482
|
+
if (metaVariant.code && !fragmentVariant.code) {
|
|
1483
|
+
fragmentVariant.code = metaVariant.code;
|
|
1484
|
+
}
|
|
1485
|
+
|
|
1486
|
+
if (metaVariant.figma && !fragmentVariant.figma) {
|
|
1479
1487
|
fragmentVariant.figma = metaVariant.figma;
|
|
1480
1488
|
}
|
|
1481
1489
|
}
|
|
@@ -1943,7 +1951,7 @@ async function loadFullFragmentForCompare(_server, _fragmentFiles, componentName
|
|
|
1943
1951
|
}
|
|
1944
1952
|
}
|
|
1945
1953
|
async function compareImages(image1Base64, image2Base64, threshold) {
|
|
1946
|
-
const { DiffEngine, base64UrlToBuffer, bufferToBase64Url } = await import("./service-
|
|
1954
|
+
const { DiffEngine, base64UrlToBuffer, bufferToBase64Url } = await import("./service-VA6XKADO.js");
|
|
1947
1955
|
const { PNG } = await import("pngjs");
|
|
1948
1956
|
const buffer1 = base64UrlToBuffer(image1Base64);
|
|
1949
1957
|
const buffer2 = base64UrlToBuffer(image2Base64);
|
|
@@ -2196,4 +2204,4 @@ export {
|
|
|
2196
2204
|
createDevServer,
|
|
2197
2205
|
fragmentsPlugin
|
|
2198
2206
|
};
|
|
2199
|
-
//# sourceMappingURL=viewer-
|
|
2207
|
+
//# sourceMappingURL=viewer-IVP5XC7U.js.map
|