@syncline-design/cli 0.1.0-sandbox.55 → 0.1.0-sandbox.56
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/bin.js +1 -1
- package/index.js +1 -1
- package/package.json +1 -1
- package/{run-u9YYwPUp.js → run-DDURgn3g.js} +508 -495
|
@@ -6,7 +6,7 @@ import { spawn as g } from "node:child_process";
|
|
|
6
6
|
import { createRequire as _ } from "node:module";
|
|
7
7
|
import { createInterface as v } from "node:readline";
|
|
8
8
|
//#region src/build-info.ts
|
|
9
|
-
var y = "https://sandbox.syncline.design", b = "0.1.0-sandbox.
|
|
9
|
+
var y = "https://sandbox.syncline.design", b = "0.1.0-sandbox.56";
|
|
10
10
|
//#endregion
|
|
11
11
|
//#region ../../node_modules/zod/v4/core/util.js
|
|
12
12
|
function x(e) {
|
|
@@ -14689,7 +14689,6 @@ export default config;
|
|
|
14689
14689
|
//#endregion
|
|
14690
14690
|
//#region ../core/src/stories/facts.ts
|
|
14691
14691
|
var gC = {
|
|
14692
|
-
input: "textbox",
|
|
14693
14692
|
progress: "progressbar",
|
|
14694
14693
|
select: "combobox",
|
|
14695
14694
|
checkbox: "checkbox",
|
|
@@ -14706,6 +14705,14 @@ var gC = {
|
|
|
14706
14705
|
calendarday: "button",
|
|
14707
14706
|
datepicker: "combobox"
|
|
14708
14707
|
}, _C = {
|
|
14708
|
+
text: "textbox",
|
|
14709
|
+
email: "textbox",
|
|
14710
|
+
tel: "textbox",
|
|
14711
|
+
url: "textbox",
|
|
14712
|
+
search: "searchbox",
|
|
14713
|
+
number: "spinbutton",
|
|
14714
|
+
password: void 0
|
|
14715
|
+
}, vC = {
|
|
14709
14716
|
button: "button",
|
|
14710
14717
|
a: "link",
|
|
14711
14718
|
input: "textbox",
|
|
@@ -14723,7 +14730,7 @@ var gC = {
|
|
|
14723
14730
|
h4: "heading",
|
|
14724
14731
|
h5: "heading",
|
|
14725
14732
|
h6: "heading"
|
|
14726
|
-
},
|
|
14733
|
+
}, yC = /* @__PURE__ */ new Set([
|
|
14727
14734
|
"button",
|
|
14728
14735
|
"link",
|
|
14729
14736
|
"tab",
|
|
@@ -14732,32 +14739,38 @@ var gC = {
|
|
|
14732
14739
|
"radio",
|
|
14733
14740
|
"switch"
|
|
14734
14741
|
]);
|
|
14735
|
-
function
|
|
14736
|
-
for (let n of e) n.kind === "text" && n.content.kind === "prop" && t.push(n.content.prop), n.kind === "container" &&
|
|
14742
|
+
function bC(e, t = []) {
|
|
14743
|
+
for (let n of e) n.kind === "text" && n.content.kind === "prop" && t.push(n.content.prop), n.kind === "container" && bC(n.children, t);
|
|
14737
14744
|
return t;
|
|
14738
14745
|
}
|
|
14739
|
-
function
|
|
14740
|
-
let
|
|
14741
|
-
|
|
14746
|
+
function xC(e, t) {
|
|
14747
|
+
let n = e.archetype;
|
|
14748
|
+
if (n?.kind === "input") return n.multiline ? "textbox" : _C[n.type];
|
|
14749
|
+
let r = e.ariaAttributes?.role;
|
|
14750
|
+
return n && gC[n.kind] || (typeof r == "string" && r !== "" ? r : void 0) || (t ? vC[t] : void 0);
|
|
14751
|
+
}
|
|
14752
|
+
function SC(e) {
|
|
14753
|
+
let t = xC(e, vx(e).rootTag), n = [...new Set(bC(e.elementTree))], r = new Map(e.propsInterface.map((e) => [e.name, e.defaultValue])), i = n.flatMap((e) => {
|
|
14754
|
+
let t = r.get(e);
|
|
14742
14755
|
return typeof t == "string" && t.trim() !== "" ? [{
|
|
14743
14756
|
prop: e,
|
|
14744
14757
|
value: t
|
|
14745
14758
|
}] : [];
|
|
14746
|
-
}),
|
|
14747
|
-
id: `t${
|
|
14759
|
+
}), a = [], o = (e) => a.push({
|
|
14760
|
+
id: `t${a.length + 1}`,
|
|
14748
14761
|
...e
|
|
14749
14762
|
});
|
|
14750
|
-
if (
|
|
14751
|
-
let e =
|
|
14752
|
-
|
|
14753
|
-
role:
|
|
14763
|
+
if (t) {
|
|
14764
|
+
let e = yC.has(t) && i.length === 1 ? i[0] : void 0;
|
|
14765
|
+
o({
|
|
14766
|
+
role: t,
|
|
14754
14767
|
...e && {
|
|
14755
14768
|
name: e.value,
|
|
14756
14769
|
prop: e.prop
|
|
14757
14770
|
}
|
|
14758
14771
|
});
|
|
14759
14772
|
}
|
|
14760
|
-
for (let { prop: e, value: t } of
|
|
14773
|
+
for (let { prop: e, value: t } of i) a.some((e) => e.name === t) || o({
|
|
14761
14774
|
name: t,
|
|
14762
14775
|
prop: e
|
|
14763
14776
|
});
|
|
@@ -14773,13 +14786,13 @@ function bC(e) {
|
|
|
14773
14786
|
...t && t.length <= 20 && { options: t }
|
|
14774
14787
|
};
|
|
14775
14788
|
}),
|
|
14776
|
-
targets:
|
|
14789
|
+
targets: a,
|
|
14777
14790
|
existingStories: ["Default", ...sS(e)]
|
|
14778
14791
|
};
|
|
14779
14792
|
}
|
|
14780
14793
|
//#endregion
|
|
14781
14794
|
//#region ../core/src/pipeline/phases.ts
|
|
14782
|
-
function
|
|
14795
|
+
function CC(e, t = {}) {
|
|
14783
14796
|
let { descriptors: n, diagnostics: r } = Ap(e, t);
|
|
14784
14797
|
return {
|
|
14785
14798
|
descriptors: n,
|
|
@@ -14790,12 +14803,12 @@ function xC(e, t = {}) {
|
|
|
14790
14803
|
}))
|
|
14791
14804
|
};
|
|
14792
14805
|
}
|
|
14793
|
-
function
|
|
14806
|
+
function wC(e) {
|
|
14794
14807
|
let t = /* @__PURE__ */ new Map();
|
|
14795
14808
|
for (let n of e.components) n.enrichment && t.set(n.id, n.enrichment);
|
|
14796
14809
|
return t;
|
|
14797
14810
|
}
|
|
14798
|
-
function
|
|
14811
|
+
function TC(e, t = /* @__PURE__ */ new Map()) {
|
|
14799
14812
|
let n = Hg(e, t), r = [], i = [];
|
|
14800
14813
|
for (let a of e) {
|
|
14801
14814
|
let e = U_(a, t.get(a.id), { propTypeIndex: n });
|
|
@@ -14811,7 +14824,7 @@ function CC(e, t = /* @__PURE__ */ new Map()) {
|
|
|
14811
14824
|
diagnostics: i
|
|
14812
14825
|
};
|
|
14813
14826
|
}
|
|
14814
|
-
function
|
|
14827
|
+
function EC(e) {
|
|
14815
14828
|
let t = [], n = [];
|
|
14816
14829
|
for (let r of e) {
|
|
14817
14830
|
let e = Bv(r);
|
|
@@ -14830,14 +14843,14 @@ function wC(e) {
|
|
|
14830
14843
|
diagnostics: n
|
|
14831
14844
|
};
|
|
14832
14845
|
}
|
|
14833
|
-
function
|
|
14846
|
+
function DC(e, t, n) {
|
|
14834
14847
|
for (let r of e) n.put({
|
|
14835
14848
|
path: q(t.paths.assetsRoot, r.path),
|
|
14836
14849
|
contents: r.contents,
|
|
14837
14850
|
policy: "overwrite"
|
|
14838
14851
|
});
|
|
14839
14852
|
}
|
|
14840
|
-
async function
|
|
14853
|
+
async function OC(e, t, n, r, i = /* @__PURE__ */ new Map()) {
|
|
14841
14854
|
let a = [], o = new Map(t.map((e) => [e.componentName, e.declarations])), s = {
|
|
14842
14855
|
...lS[n.stories.target],
|
|
14843
14856
|
...n.stories.typesPackage && { storybookTypesPackage: n.stories.typesPackage }
|
|
@@ -14888,7 +14901,7 @@ async function EC(e, t, n, r, i = /* @__PURE__ */ new Map()) {
|
|
|
14888
14901
|
contents: e.contents,
|
|
14889
14902
|
policy: "overwrite"
|
|
14890
14903
|
});
|
|
14891
|
-
let o = i.get(t.componentName), u = o ? Hl(
|
|
14904
|
+
let o = i.get(t.componentName), u = o ? Hl(SC(t), o) : void 0;
|
|
14892
14905
|
for (let e of u?.dropped ?? []) a.push({
|
|
14893
14906
|
phase: "assemble",
|
|
14894
14907
|
scope: t.componentName,
|
|
@@ -14916,7 +14929,7 @@ async function EC(e, t, n, r, i = /* @__PURE__ */ new Map()) {
|
|
|
14916
14929
|
}
|
|
14917
14930
|
return a;
|
|
14918
14931
|
}
|
|
14919
|
-
function
|
|
14932
|
+
function kC(e, t, n, r, i) {
|
|
14920
14933
|
let a = [], o = (e, t) => a.push({
|
|
14921
14934
|
phase: "theme",
|
|
14922
14935
|
...t && { scope: t },
|
|
@@ -15011,7 +15024,7 @@ function DC(e, t, n, r, i) {
|
|
|
15011
15024
|
}),
|
|
15012
15025
|
policy: "create-only"
|
|
15013
15026
|
});
|
|
15014
|
-
let m = ju(
|
|
15027
|
+
let m = ju(NC(e, t, i), (e) => Nm(f, e));
|
|
15015
15028
|
for (let e of m.notes) o(e);
|
|
15016
15029
|
m.css && n.put({
|
|
15017
15030
|
path: q(f, "fonts.css"),
|
|
@@ -15037,12 +15050,12 @@ function DC(e, t, n, r, i) {
|
|
|
15037
15050
|
policy: "overwrite"
|
|
15038
15051
|
}), a;
|
|
15039
15052
|
}
|
|
15040
|
-
function
|
|
15053
|
+
function AC(e, t, n, r) {
|
|
15041
15054
|
let i = [], { files: a, diagnostics: o } = eb(e, {
|
|
15042
15055
|
libraryName: t.libraryName,
|
|
15043
15056
|
groups: t.docs.groups,
|
|
15044
15057
|
includeHidden: t.docs.includeHidden,
|
|
15045
|
-
fonts:
|
|
15058
|
+
fonts: NC(e, t, r)
|
|
15046
15059
|
});
|
|
15047
15060
|
for (let e of o) i.push({
|
|
15048
15061
|
phase: "docs",
|
|
@@ -15067,7 +15080,7 @@ function OC(e, t, n, r) {
|
|
|
15067
15080
|
}
|
|
15068
15081
|
return i;
|
|
15069
15082
|
}
|
|
15070
|
-
function
|
|
15083
|
+
function jC(e, t, n, r) {
|
|
15071
15084
|
let i = [], { agent: a } = n, o = a.dir, s = q(o, "components.json"), c = q(o, "tokens.json"), l = (e) => `${JSON.stringify(e, null, 2)}\n`, u = aC(t, {
|
|
15072
15085
|
libraryName: n.libraryName,
|
|
15073
15086
|
packageName: a.packageName,
|
|
@@ -15142,14 +15155,14 @@ function kC(e, t, n, r) {
|
|
|
15142
15155
|
message: `${a.entry} is hand-written — left untouched. Export the components from it so consumers can import them by name.`
|
|
15143
15156
|
}), i;
|
|
15144
15157
|
}
|
|
15145
|
-
function
|
|
15146
|
-
let { specs: n } =
|
|
15147
|
-
return n.map(
|
|
15158
|
+
function MC(e, t = /* @__PURE__ */ new Map()) {
|
|
15159
|
+
let { specs: n } = TC(e, t);
|
|
15160
|
+
return n.map(SC);
|
|
15148
15161
|
}
|
|
15149
|
-
function
|
|
15162
|
+
function NC(e, t, n) {
|
|
15150
15163
|
return t.fonts.enabled ? Am(Dm(e), n, t.fonts.files) : [];
|
|
15151
15164
|
}
|
|
15152
|
-
function
|
|
15165
|
+
function PC(e, t, n) {
|
|
15153
15166
|
if (!t.fonts.enabled) return [];
|
|
15154
15167
|
let r = Dm(e), i = Am(r, n, t.fonts.files), a = [], o = (e, t) => a.push({
|
|
15155
15168
|
phase: "fonts",
|
|
@@ -15166,25 +15179,25 @@ function MC(e, t, n) {
|
|
|
15166
15179
|
}
|
|
15167
15180
|
//#endregion
|
|
15168
15181
|
//#region ../core/src/pipeline/run.ts
|
|
15169
|
-
async function
|
|
15182
|
+
async function FC(e, t = {}) {
|
|
15170
15183
|
let n = Du.parse(t), r = new Rm(e.existing), i = [];
|
|
15171
|
-
|
|
15172
|
-
let a = Wp(e.design, e.annotations), o = a.design, s =
|
|
15184
|
+
DC(e.assets ?? [], n, r);
|
|
15185
|
+
let a = Wp(e.design, e.annotations), o = a.design, s = CC(o, {
|
|
15173
15186
|
iconPages: a.iconPages,
|
|
15174
15187
|
fontCategories: Tu(e.fonts)
|
|
15175
|
-
}), c =
|
|
15188
|
+
}), c = TC(s.descriptors, e.enrichment), l = EC(c.specs);
|
|
15176
15189
|
return i.push(...a.diagnostics.map((e) => ({
|
|
15177
15190
|
phase: "normalize",
|
|
15178
15191
|
scope: e.scope,
|
|
15179
15192
|
message: e.message
|
|
15180
|
-
})), ...s.diagnostics, ...c.diagnostics, ...l.diagnostics), i.push(...
|
|
15193
|
+
})), ...s.diagnostics, ...c.diagnostics, ...l.diagnostics), i.push(...PC(o, n, e.fonts)), i.push(...kC(o, n, r, e.brandImageDataUri ?? Im(e.assets ?? [], n), e.fonts)), n.docs.enabled && i.push(...AC(o, n, r, e.fonts)), i.push(...await OC(c.specs, l.styles, n, r, e.storyEnrichment)), n.agent.enabled && i.push(...jC(o, c.specs, n, r)), {
|
|
15181
15194
|
files: r.toArray(),
|
|
15182
15195
|
diagnostics: i
|
|
15183
15196
|
};
|
|
15184
15197
|
}
|
|
15185
15198
|
//#endregion
|
|
15186
15199
|
//#region src/config.ts
|
|
15187
|
-
var
|
|
15200
|
+
var IC = Du.extend({
|
|
15188
15201
|
inputs: V({
|
|
15189
15202
|
design: I().default(`${Ic}/design.json`),
|
|
15190
15203
|
enriched: I().default(`${Ic}/design.enriched.json`),
|
|
@@ -15213,28 +15226,28 @@ var PC = Du.extend({
|
|
|
15213
15226
|
path: ["sendSource"],
|
|
15214
15227
|
message: "merge.llm sends the source of conflicting components to the bridge; set merge.sendSource to true to confirm"
|
|
15215
15228
|
}).prefault({})
|
|
15216
|
-
}),
|
|
15217
|
-
function
|
|
15229
|
+
}), LC = "syncline.config.json";
|
|
15230
|
+
function RC(e) {
|
|
15218
15231
|
return e.issues.map((e) => ` ${e.path.join(".") || "(root)"}: ${e.message}`).join("\n");
|
|
15219
15232
|
}
|
|
15220
15233
|
//#endregion
|
|
15221
15234
|
//#region src/enrich/bridge-client.ts
|
|
15222
|
-
var
|
|
15235
|
+
var zC = class extends Error {
|
|
15223
15236
|
constructor(e, t, n) {
|
|
15224
15237
|
super(n), this.status = e, this.code = t, this.name = "BridgeError";
|
|
15225
15238
|
}
|
|
15226
|
-
},
|
|
15227
|
-
function
|
|
15239
|
+
}, BC = 3, VC = 500, HC = 75e3;
|
|
15240
|
+
function UC(e) {
|
|
15228
15241
|
let [t, ...n] = e.issues ?? [];
|
|
15229
15242
|
return t ? `${e.message} ${t.path}: ${t.message}${n.length ? ` (+${n.length} more)` : ""}` : e.message;
|
|
15230
15243
|
}
|
|
15231
|
-
var
|
|
15232
|
-
function
|
|
15233
|
-
let t = e.fetch ?? fetch, n = e.sleep ??
|
|
15244
|
+
var WC = (e) => new Promise((t) => setTimeout(t, e));
|
|
15245
|
+
function GC(e) {
|
|
15246
|
+
let t = e.fetch ?? fetch, n = e.sleep ?? WC, r = e.maxAttempts ?? BC, i = e.baseUrl.replace(/\/$/, ""), a = (e) => `/previews/${e}`;
|
|
15234
15247
|
async function o(a, o, s = {}) {
|
|
15235
15248
|
let c;
|
|
15236
15249
|
for (let l = 0; l < r; l++) {
|
|
15237
|
-
l > 0 && await n(
|
|
15250
|
+
l > 0 && await n(VC * 2 ** (l - 1));
|
|
15238
15251
|
let r;
|
|
15239
15252
|
try {
|
|
15240
15253
|
r = await t(`${i}/api${a}`, {
|
|
@@ -15243,18 +15256,18 @@ function UC(e) {
|
|
|
15243
15256
|
...s.body ? { "content-type": "application/json" } : {},
|
|
15244
15257
|
authorization: `Bearer ${e.token}`
|
|
15245
15258
|
},
|
|
15246
|
-
signal: AbortSignal.timeout(
|
|
15259
|
+
signal: AbortSignal.timeout(HC)
|
|
15247
15260
|
});
|
|
15248
15261
|
} catch (e) {
|
|
15249
|
-
c = new
|
|
15262
|
+
c = new zC(0, "network", `Could not reach the bridge: ${e instanceof Error ? e.message : e}`);
|
|
15250
15263
|
continue;
|
|
15251
15264
|
}
|
|
15252
15265
|
if (r.ok) {
|
|
15253
15266
|
let e = o.safeParse(await r.json().catch(() => null));
|
|
15254
15267
|
if (e.success) return e.data;
|
|
15255
|
-
throw new
|
|
15268
|
+
throw new zC(r.status, "invalid_response", `The bridge answered with something this CLI does not understand; update ${Nc}`);
|
|
15256
15269
|
}
|
|
15257
|
-
let u = Pc.safeParse(await r.json().catch(() => null)), d = new
|
|
15270
|
+
let u = Pc.safeParse(await r.json().catch(() => null)), d = new zC(r.status, u.success ? u.data.error.code : `http_${r.status}`, u.success ? UC(u.data.error) : `HTTP ${r.status}`);
|
|
15258
15271
|
if (r.status < 500) throw d;
|
|
15259
15272
|
c = d;
|
|
15260
15273
|
}
|
|
@@ -15296,7 +15309,7 @@ function UC(e) {
|
|
|
15296
15309
|
}
|
|
15297
15310
|
//#endregion
|
|
15298
15311
|
//#region src/enrich/token.ts
|
|
15299
|
-
async function
|
|
15312
|
+
async function KC(e) {
|
|
15300
15313
|
let t = e.env ?? process.env, n = t.SYNCLINE_TOKEN;
|
|
15301
15314
|
if (n) return {
|
|
15302
15315
|
ok: !0,
|
|
@@ -15332,7 +15345,7 @@ async function WC(e) {
|
|
|
15332
15345
|
}
|
|
15333
15346
|
//#endregion
|
|
15334
15347
|
//#region src/ci/preview-access.ts
|
|
15335
|
-
async function
|
|
15348
|
+
async function qC(t) {
|
|
15336
15349
|
let { io: n } = t, r = t.env ?? process.env, i = (t) => {
|
|
15337
15350
|
let i = `enabled=${t.enabled}\n`, a = r.GITHUB_OUTPUT;
|
|
15338
15351
|
return a ? e(a, i) : n.out(i), t.reason ? n.err(`Preview skipped: ${t.reason}.\n`) : t.enabled || n.err("Preview skipped: it is not part of this account’s plan.\n"), t;
|
|
@@ -15341,14 +15354,14 @@ async function GC(t) {
|
|
|
15341
15354
|
reason: e
|
|
15342
15355
|
});
|
|
15343
15356
|
if (!t.bridgeUrl) return a("no bridge configured (set enrich.bridgeUrl or SYNCLINE_URL)");
|
|
15344
|
-
let o = t.bridgeUrl.replace(/\/$/, ""), s = await
|
|
15357
|
+
let o = t.bridgeUrl.replace(/\/$/, ""), s = await KC({
|
|
15345
15358
|
audience: t.audience ?? o,
|
|
15346
15359
|
env: r,
|
|
15347
15360
|
fetch: t.fetch
|
|
15348
15361
|
});
|
|
15349
15362
|
if (s.ok === !1) return a(s.reason);
|
|
15350
15363
|
try {
|
|
15351
|
-
let { enabled: e } = await
|
|
15364
|
+
let { enabled: e } = await GC({
|
|
15352
15365
|
baseUrl: o,
|
|
15353
15366
|
token: s.token,
|
|
15354
15367
|
fetch: t.fetch,
|
|
@@ -15361,20 +15374,20 @@ async function GC(t) {
|
|
|
15361
15374
|
}
|
|
15362
15375
|
//#endregion
|
|
15363
15376
|
//#region src/ci/push-token.ts
|
|
15364
|
-
async function
|
|
15377
|
+
async function JC(t) {
|
|
15365
15378
|
let { io: n } = t, r = t.env ?? process.env, i = (e) => (n.err(`Push token unavailable: ${e}. The job pushes with its own token instead.\n`), {
|
|
15366
15379
|
status: "unavailable",
|
|
15367
15380
|
reason: e
|
|
15368
15381
|
});
|
|
15369
15382
|
if (!t.bridgeUrl) return i("no bridge configured (set enrich.bridgeUrl or SYNCLINE_URL)");
|
|
15370
|
-
let a = t.bridgeUrl.replace(/\/$/, ""), o = await
|
|
15383
|
+
let a = t.bridgeUrl.replace(/\/$/, ""), o = await KC({
|
|
15371
15384
|
audience: t.audience ?? a,
|
|
15372
15385
|
env: r,
|
|
15373
15386
|
fetch: t.fetch
|
|
15374
15387
|
});
|
|
15375
15388
|
if (o.ok === !1) return i(o.reason);
|
|
15376
15389
|
try {
|
|
15377
|
-
let i = await
|
|
15390
|
+
let i = await GC({
|
|
15378
15391
|
baseUrl: a,
|
|
15379
15392
|
token: o.token,
|
|
15380
15393
|
fetch: t.fetch,
|
|
@@ -15389,22 +15402,22 @@ async function KC(t) {
|
|
|
15389
15402
|
email: i.committer.email
|
|
15390
15403
|
};
|
|
15391
15404
|
} catch (e) {
|
|
15392
|
-
return i(e instanceof
|
|
15405
|
+
return i(e instanceof zC || e instanceof Error ? e.message : String(e));
|
|
15393
15406
|
}
|
|
15394
15407
|
}
|
|
15395
15408
|
//#endregion
|
|
15396
15409
|
//#region src/ci/report-failure.ts
|
|
15397
|
-
var
|
|
15398
|
-
function
|
|
15410
|
+
var YC = 15, XC = /\u001b\[[0-9;]*[A-Za-z]|\u001b\]8;;[^\u0007]*\u0007/g, ZC = 600, QC = (e) => e.length > ZC ? `${e.slice(0, ZC)}…` : e, $C = (e) => QC(e).replace(XC, "").replace(/^[\s│■▲●◇]*/, "").trimEnd();
|
|
15411
|
+
function ew(e, t = {}) {
|
|
15399
15412
|
let n = e.replace(/\bgh[pousr]_[A-Za-z0-9]{20,}\b/g, "[token]").replace(/\bgithub_pat_[A-Za-z0-9_]{20,}\b/g, "[token]").replace(/x-access-token:[^@\s]+/g, "x-access-token:[token]").replace(/\b(Bearer|Basic)\s+[A-Za-z0-9._~+/=-]{8,}/gi, "$1 [token]").replace(/\beyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]*/g, "[jwt]").replace(/(https?:\/\/[^\s"'<>?#]+)\?[^\s"'<>#]*/g, "$1?…");
|
|
15400
15413
|
for (let [e, r] of Object.entries(t)) !r || r.length < 8 || /(TOKEN|SECRET|KEY|PASSWORD|CREDENTIAL)/i.test(e) && (n = n.split(r).join("[secret]"));
|
|
15401
15414
|
return n;
|
|
15402
15415
|
}
|
|
15403
|
-
function
|
|
15404
|
-
let n =
|
|
15416
|
+
function tw(e, t) {
|
|
15417
|
+
let n = ew(e.replace(XC, "").split(/\r?\n/).slice(-200).map(QC).join("\n"), t);
|
|
15405
15418
|
return n.length > tu.log ? n.slice(n.length - tu.log) : n;
|
|
15406
15419
|
}
|
|
15407
|
-
var
|
|
15420
|
+
var nw = [
|
|
15408
15421
|
/does not parse/i,
|
|
15409
15422
|
/Could not resolve/i,
|
|
15410
15423
|
/\bMissing\b/,
|
|
@@ -15412,9 +15425,9 @@ var ew = [
|
|
|
15412
15425
|
/\berror\b/i,
|
|
15413
15426
|
/\bfailed\b/i
|
|
15414
15427
|
];
|
|
15415
|
-
function
|
|
15416
|
-
let t = e.split(/\r?\n/).map(
|
|
15417
|
-
for (let e of
|
|
15428
|
+
function rw(e) {
|
|
15429
|
+
let t = e.split(/\r?\n/).map($C).filter(Boolean);
|
|
15430
|
+
for (let e of nw) {
|
|
15418
15431
|
let n = t.findIndex((t) => e.test(t));
|
|
15419
15432
|
if (n === -1) continue;
|
|
15420
15433
|
let r = t[n];
|
|
@@ -15422,60 +15435,60 @@ function tw(e) {
|
|
|
15422
15435
|
}
|
|
15423
15436
|
return (t[t.length - 1] ?? "The step failed").slice(0, tu.summary);
|
|
15424
15437
|
}
|
|
15425
|
-
var
|
|
15426
|
-
function
|
|
15427
|
-
let a = e.split(/\r?\n/).map(
|
|
15438
|
+
var iw = /((?:\.\/)?(?:[\w@.+-]+\/)+[\w@.+-]+\.(?:tsx?|jsx?|mdx?|json))(?!\/)/, aw = /\((\d+):\d+\)/;
|
|
15439
|
+
function ow(e, n, r = (e) => t(e) ? i(e, "utf8") : null) {
|
|
15440
|
+
let a = e.split(/\r?\n/).map($C);
|
|
15428
15441
|
for (let e = 0; e < a.length; e++) {
|
|
15429
|
-
let t =
|
|
15442
|
+
let t = iw.exec(a[e]);
|
|
15430
15443
|
if (!t || t[1].includes("node_modules")) continue;
|
|
15431
15444
|
let i = t[1].replace(/^\.\//, ""), o = f(n), s = f(o, i);
|
|
15432
15445
|
if (!s.startsWith(`${o}/`)) continue;
|
|
15433
15446
|
let c = r(s);
|
|
15434
15447
|
if (c === null) continue;
|
|
15435
|
-
let l = a.slice(e, e + 4).join("\n"), u = Number(
|
|
15448
|
+
let l = a.slice(e, e + 4).join("\n"), u = Number(aw.exec(l)?.[1] ?? 1), d = c.split("\n"), p = Math.max(1, u - YC);
|
|
15436
15449
|
return {
|
|
15437
15450
|
path: i,
|
|
15438
15451
|
startLine: p,
|
|
15439
|
-
text: d.slice(p - 1, u +
|
|
15452
|
+
text: d.slice(p - 1, u + YC).map((e, t) => `${p + t}: ${e}`).join("\n").slice(0, tu.excerpt)
|
|
15440
15453
|
};
|
|
15441
15454
|
}
|
|
15442
15455
|
}
|
|
15443
|
-
function
|
|
15456
|
+
function sw(e) {
|
|
15444
15457
|
let { GITHUB_SERVER_URL: t, GITHUB_REPOSITORY: n, GITHUB_RUN_ID: r } = e;
|
|
15445
15458
|
return t && n && r ? `${t}/${n}/actions/runs/${r}` : void 0;
|
|
15446
15459
|
}
|
|
15447
|
-
function
|
|
15448
|
-
let t = e.env ?? process.env, n =
|
|
15460
|
+
function cw(e) {
|
|
15461
|
+
let t = e.env ?? process.env, n = ow(e.log, e.cwd, e.read), r = sw(t);
|
|
15449
15462
|
return {
|
|
15450
15463
|
step: e.step,
|
|
15451
|
-
summary:
|
|
15452
|
-
log:
|
|
15464
|
+
summary: ew(rw(e.log), t) || "The step failed",
|
|
15465
|
+
log: tw(e.log, t),
|
|
15453
15466
|
...n && { excerpt: {
|
|
15454
15467
|
...n,
|
|
15455
|
-
text:
|
|
15468
|
+
text: ew(n.text, t)
|
|
15456
15469
|
} },
|
|
15457
15470
|
cliVersion: b,
|
|
15458
15471
|
...r && { runUrl: r }
|
|
15459
15472
|
};
|
|
15460
15473
|
}
|
|
15461
|
-
async function
|
|
15474
|
+
async function lw(e) {
|
|
15462
15475
|
let { io: n } = e, r = e.env ?? process.env, a = (e) => (n.err(`Failure not reported: ${e}.\n`), { reported: !1 });
|
|
15463
15476
|
if (!e.bridgeUrl) return a("no bridge configured (set enrich.bridgeUrl or SYNCLINE_URL)");
|
|
15464
15477
|
let o = e.bridgeUrl.replace(/\/$/, ""), s = f(e.cwd, e.logPath);
|
|
15465
15478
|
if (!t(s)) return a(`no log at ${e.logPath}`);
|
|
15466
|
-
let c = await
|
|
15479
|
+
let c = await KC({
|
|
15467
15480
|
audience: e.audience ?? o,
|
|
15468
15481
|
env: r,
|
|
15469
15482
|
fetch: e.fetch
|
|
15470
15483
|
});
|
|
15471
15484
|
if (c.ok === !1) return a(c.reason);
|
|
15472
15485
|
try {
|
|
15473
|
-
let t =
|
|
15486
|
+
let t = cw({
|
|
15474
15487
|
step: e.step,
|
|
15475
15488
|
log: i(s, "utf8"),
|
|
15476
15489
|
cwd: e.cwd,
|
|
15477
15490
|
env: r
|
|
15478
|
-
}), a = await
|
|
15491
|
+
}), a = await GC({
|
|
15479
15492
|
baseUrl: o,
|
|
15480
15493
|
token: c.token,
|
|
15481
15494
|
fetch: e.fetch,
|
|
@@ -15486,17 +15499,17 @@ async function sw(e) {
|
|
|
15486
15499
|
issueUrl: a.issueUrl
|
|
15487
15500
|
};
|
|
15488
15501
|
} catch (e) {
|
|
15489
|
-
return a(e instanceof
|
|
15502
|
+
return a(e instanceof zC || e instanceof Error ? e.message : String(e));
|
|
15490
15503
|
}
|
|
15491
15504
|
}
|
|
15492
15505
|
//#endregion
|
|
15493
15506
|
//#region src/enrich/bridge-url.ts
|
|
15494
|
-
function
|
|
15507
|
+
function uw({ env: e, configured: t, baked: n }) {
|
|
15495
15508
|
return e.SYNCLINE_URL || t || n || void 0;
|
|
15496
15509
|
}
|
|
15497
15510
|
//#endregion
|
|
15498
15511
|
//#region src/commands/ci.ts
|
|
15499
|
-
var
|
|
15512
|
+
var dw = `Usage: syncline ci <push-token|report-failure|preview-access> [options]
|
|
15500
15513
|
|
|
15501
15514
|
For the workflow a Figma sync adds to your repository. Asks the bridge for a
|
|
15502
15515
|
short-lived token that lets the job push the generated files to the sync's pull
|
|
@@ -15519,16 +15532,16 @@ build only when it is true. It never fails the run: anything but a clear yes
|
|
|
15519
15532
|
Options:
|
|
15520
15533
|
--step <name> report-failure: the step that failed
|
|
15521
15534
|
--log <file> report-failure: the step's captured output
|
|
15522
|
-
--config <file> Config file (default: ${
|
|
15535
|
+
--config <file> Config file (default: ${LC})
|
|
15523
15536
|
--cwd <dir> Project root (default: the current directory)
|
|
15524
15537
|
-h, --help Show this help
|
|
15525
15538
|
`;
|
|
15526
|
-
function
|
|
15539
|
+
function fw(e) {
|
|
15527
15540
|
let t = { help: !1 };
|
|
15528
15541
|
for (let n = 0; n < e.length; n++) {
|
|
15529
15542
|
let r = (t) => {
|
|
15530
15543
|
let r = e[++n];
|
|
15531
|
-
if (r === void 0 || r.startsWith("-")) throw Error(`${t} needs a value\n\n${
|
|
15544
|
+
if (r === void 0 || r.startsWith("-")) throw Error(`${t} needs a value\n\n${dw}`);
|
|
15532
15545
|
return r;
|
|
15533
15546
|
};
|
|
15534
15547
|
switch (e[n]) {
|
|
@@ -15549,36 +15562,36 @@ function uw(e) {
|
|
|
15549
15562
|
t.help = !0;
|
|
15550
15563
|
break;
|
|
15551
15564
|
default:
|
|
15552
|
-
if (e[n].startsWith("-")) throw Error(`Unknown option: ${e[n]}\n\n${
|
|
15553
|
-
if (t.action !== void 0) throw Error(`Unexpected argument: ${e[n]}\n\n${
|
|
15565
|
+
if (e[n].startsWith("-")) throw Error(`Unknown option: ${e[n]}\n\n${dw}`);
|
|
15566
|
+
if (t.action !== void 0) throw Error(`Unexpected argument: ${e[n]}\n\n${dw}`);
|
|
15554
15567
|
t.action = e[n];
|
|
15555
15568
|
}
|
|
15556
15569
|
}
|
|
15557
15570
|
return t;
|
|
15558
15571
|
}
|
|
15559
|
-
var
|
|
15572
|
+
var pw = {
|
|
15560
15573
|
name: "ci",
|
|
15561
15574
|
summary: "Helpers for the generation workflow (push token, failure report, preview access)",
|
|
15562
15575
|
async run({ args: e, io: n }) {
|
|
15563
|
-
let r =
|
|
15564
|
-
if (r.help || r.action === void 0) return n.out(
|
|
15565
|
-
if (r.action !== "push-token" && r.action !== "report-failure" && r.action !== "preview-access") return n.err(`Unknown ci command: ${r.action}\n\n${
|
|
15576
|
+
let r = fw(e);
|
|
15577
|
+
if (r.help || r.action === void 0) return n.out(dw), +!r.help;
|
|
15578
|
+
if (r.action !== "push-token" && r.action !== "report-failure" && r.action !== "preview-access") return n.err(`Unknown ci command: ${r.action}\n\n${dw}`), 1;
|
|
15566
15579
|
let a = f(r.cwd ?? process.cwd()), o = f(a, r.config ?? "syncline.config.json"), s = {};
|
|
15567
15580
|
if (t(o)) try {
|
|
15568
15581
|
s = JSON.parse(i(o, "utf-8"));
|
|
15569
15582
|
} catch (e) {
|
|
15570
15583
|
return n.err(`${o} is not valid JSON: ${e instanceof Error ? e.message : e}\n`), 1;
|
|
15571
15584
|
}
|
|
15572
|
-
let c =
|
|
15573
|
-
if (!c.success) return n.err(`Invalid config ${o}:\n${
|
|
15574
|
-
let l =
|
|
15585
|
+
let c = IC.safeParse(s);
|
|
15586
|
+
if (!c.success) return n.err(`Invalid config ${o}:\n${RC(c.error)}\n`), 1;
|
|
15587
|
+
let l = uw({
|
|
15575
15588
|
env: process.env,
|
|
15576
15589
|
configured: c.data.enrich.bridgeUrl,
|
|
15577
15590
|
baked: y
|
|
15578
15591
|
});
|
|
15579
15592
|
if (r.action === "report-failure") {
|
|
15580
15593
|
let e = eu.safeParse(r.step);
|
|
15581
|
-
return !e.success || !r.log ? (n.err(`report-failure needs --step and --log\n\n${
|
|
15594
|
+
return !e.success || !r.log ? (n.err(`report-failure needs --step and --log\n\n${dw}`), 1) : (await lw({
|
|
15582
15595
|
step: e.data,
|
|
15583
15596
|
logPath: r.log,
|
|
15584
15597
|
cwd: a,
|
|
@@ -15587,11 +15600,11 @@ var dw = {
|
|
|
15587
15600
|
io: n
|
|
15588
15601
|
}), 0);
|
|
15589
15602
|
}
|
|
15590
|
-
return r.action === "preview-access" ? (await
|
|
15603
|
+
return r.action === "preview-access" ? (await qC({
|
|
15591
15604
|
bridgeUrl: l,
|
|
15592
15605
|
audience: c.data.enrich.audience,
|
|
15593
15606
|
io: n
|
|
15594
|
-
}), 0) : (await
|
|
15607
|
+
}), 0) : (await JC({
|
|
15595
15608
|
bridgeUrl: l,
|
|
15596
15609
|
audience: c.data.enrich.audience,
|
|
15597
15610
|
io: n
|
|
@@ -15600,7 +15613,7 @@ var dw = {
|
|
|
15600
15613
|
};
|
|
15601
15614
|
//#endregion
|
|
15602
15615
|
//#region ../core/src/node/fs.ts
|
|
15603
|
-
function
|
|
15616
|
+
function mw(e) {
|
|
15604
15617
|
return {
|
|
15605
15618
|
read(n) {
|
|
15606
15619
|
let r = d(e, n);
|
|
@@ -15609,7 +15622,7 @@ function fw(e) {
|
|
|
15609
15622
|
exists: (n) => t(d(e, n))
|
|
15610
15623
|
};
|
|
15611
15624
|
}
|
|
15612
|
-
function
|
|
15625
|
+
function hw(e, n) {
|
|
15613
15626
|
let a = {
|
|
15614
15627
|
written: [],
|
|
15615
15628
|
kept: [],
|
|
@@ -15629,20 +15642,20 @@ function pw(e, n) {
|
|
|
15629
15642
|
}
|
|
15630
15643
|
return a;
|
|
15631
15644
|
}
|
|
15632
|
-
var
|
|
15645
|
+
var gw = 1e5, _w = {
|
|
15633
15646
|
".svg": "image/svg+xml",
|
|
15634
15647
|
".png": "image/png",
|
|
15635
15648
|
".jpg": "image/jpeg",
|
|
15636
15649
|
".jpeg": "image/jpeg",
|
|
15637
15650
|
".webp": "image/webp"
|
|
15638
15651
|
};
|
|
15639
|
-
function
|
|
15640
|
-
let n =
|
|
15652
|
+
function vw(e) {
|
|
15653
|
+
let n = _w[u(e).toLowerCase()];
|
|
15641
15654
|
if (!n || !t(e)) return;
|
|
15642
15655
|
let r = i(e);
|
|
15643
|
-
if (!(r.length >
|
|
15656
|
+
if (!(r.length > gw)) return `data:${n};base64,${r.toString("base64")}`;
|
|
15644
15657
|
}
|
|
15645
|
-
function
|
|
15658
|
+
function yw(e) {
|
|
15646
15659
|
if (!t(e)) return {
|
|
15647
15660
|
ok: !0,
|
|
15648
15661
|
overlay: void 0
|
|
@@ -15656,13 +15669,13 @@ function _w(e) {
|
|
|
15656
15669
|
overlay: n.overlay
|
|
15657
15670
|
};
|
|
15658
15671
|
}
|
|
15659
|
-
function
|
|
15672
|
+
function bw(e) {
|
|
15660
15673
|
let { root: n } = e, r = ll.safeParse(JSON.parse(i(d(n, e.designPath), "utf-8")));
|
|
15661
15674
|
if (!r.success) return {
|
|
15662
15675
|
ok: !1,
|
|
15663
15676
|
error: `design.json failed validation: ${JSON.stringify(r.error.format())}`
|
|
15664
15677
|
};
|
|
15665
|
-
let a = e.enrichedPath ? d(n, e.enrichedPath) : void 0, o = a && t(a) ?
|
|
15678
|
+
let a = e.enrichedPath ? d(n, e.enrichedPath) : void 0, o = a && t(a) ? wC(JSON.parse(i(a, "utf-8"))) : void 0, s = [], c = e.assetsPath ? d(n, e.assetsPath) : void 0;
|
|
15666
15679
|
if (c && t(c)) {
|
|
15667
15680
|
let t = JSON.parse(i(c, "utf-8"));
|
|
15668
15681
|
if (!Array.isArray(t)) return {
|
|
@@ -15673,7 +15686,7 @@ function vw(e) {
|
|
|
15673
15686
|
}
|
|
15674
15687
|
let l;
|
|
15675
15688
|
if (e.annotationsPath) {
|
|
15676
|
-
let t =
|
|
15689
|
+
let t = yw(d(n, e.annotationsPath));
|
|
15677
15690
|
if (t.ok === !1) return {
|
|
15678
15691
|
ok: !1,
|
|
15679
15692
|
error: t.error
|
|
@@ -15687,13 +15700,13 @@ function vw(e) {
|
|
|
15687
15700
|
enrichment: o,
|
|
15688
15701
|
assets: s,
|
|
15689
15702
|
annotations: l,
|
|
15690
|
-
brandImageDataUri: e.brandImage ?
|
|
15703
|
+
brandImageDataUri: e.brandImage ? vw(d(n, e.brandImage)) : void 0
|
|
15691
15704
|
}
|
|
15692
15705
|
};
|
|
15693
15706
|
}
|
|
15694
15707
|
//#endregion
|
|
15695
15708
|
//#region src/fonts/lookup.ts
|
|
15696
|
-
var
|
|
15709
|
+
var xw = "https://api.fontsource.org/v1/fonts", Sw = 1e4, Cw = V({
|
|
15697
15710
|
id: I(),
|
|
15698
15711
|
family: I(),
|
|
15699
15712
|
weights: B(R().int()).optional(),
|
|
@@ -15701,15 +15714,15 @@ var yw = "https://api.fontsource.org/v1/fonts", bw = 1e4, xw = V({
|
|
|
15701
15714
|
variable: z().optional(),
|
|
15702
15715
|
category: I().optional()
|
|
15703
15716
|
});
|
|
15704
|
-
function
|
|
15717
|
+
function ww(e) {
|
|
15705
15718
|
return e.normalize("NFKD").replace(/[̀-ͯ]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
15706
15719
|
}
|
|
15707
|
-
async function
|
|
15708
|
-
let n =
|
|
15720
|
+
async function Tw(e, t = fetch) {
|
|
15721
|
+
let n = ww(e);
|
|
15709
15722
|
if (!n) return { status: "missing" };
|
|
15710
15723
|
try {
|
|
15711
|
-
let r = await t(`${
|
|
15712
|
-
signal: AbortSignal.timeout(
|
|
15724
|
+
let r = await t(`${xw}/${n}`, {
|
|
15725
|
+
signal: AbortSignal.timeout(Sw),
|
|
15713
15726
|
headers: { accept: "application/json" }
|
|
15714
15727
|
});
|
|
15715
15728
|
if (r.status === 404) return { status: "missing" };
|
|
@@ -15717,7 +15730,7 @@ async function Cw(e, t = fetch) {
|
|
|
15717
15730
|
status: "error",
|
|
15718
15731
|
message: `HTTP ${r.status}`
|
|
15719
15732
|
};
|
|
15720
|
-
let i =
|
|
15733
|
+
let i = Cw.safeParse(await r.json());
|
|
15721
15734
|
if (!i.success) return {
|
|
15722
15735
|
status: "error",
|
|
15723
15736
|
message: "unexpected response"
|
|
@@ -15746,8 +15759,8 @@ async function Cw(e, t = fetch) {
|
|
|
15746
15759
|
}
|
|
15747
15760
|
//#endregion
|
|
15748
15761
|
//#region src/fonts/step.ts
|
|
15749
|
-
var
|
|
15750
|
-
function
|
|
15762
|
+
var Ew = 4;
|
|
15763
|
+
function Dw(e) {
|
|
15751
15764
|
try {
|
|
15752
15765
|
let t = Cu.safeParse(JSON.parse(i(e, "utf-8")));
|
|
15753
15766
|
return t.success ? {
|
|
@@ -15758,19 +15771,19 @@ function Tw(e) {
|
|
|
15758
15771
|
return;
|
|
15759
15772
|
}
|
|
15760
15773
|
}
|
|
15761
|
-
var
|
|
15774
|
+
var Ow = (e) => `${JSON.stringify({
|
|
15762
15775
|
version: 1,
|
|
15763
15776
|
fonts: e.fonts,
|
|
15764
15777
|
unresolved: e.unresolved
|
|
15765
15778
|
}, null, 2)}\n`;
|
|
15766
|
-
async function
|
|
15779
|
+
async function kw({ design: e, config: n, cachePath: a, lookup: o, io: s, fetch: u }) {
|
|
15767
15780
|
if (!n.fonts.enabled) return;
|
|
15768
15781
|
let d = Dm(e).map((e) => e.family);
|
|
15769
15782
|
if (d.length === 0) return;
|
|
15770
|
-
let f =
|
|
15771
|
-
await Promise.all(Array.from({ length: Math.min(
|
|
15783
|
+
let f = Dw(a), p = new Map((f?.fonts ?? []).map((e) => [e.family, e])), m = new Set(f?.unresolved ?? []), h = new Set(Object.keys(n.fonts.files)), g = d.filter((e) => !h.has(e) && !km(e)), _ = o ? g.filter((e) => !p.has(e) && !m.has(e)) : [], v = [], y = 0;
|
|
15784
|
+
await Promise.all(Array.from({ length: Math.min(Ew, _.length) }, async () => {
|
|
15772
15785
|
for (; y < _.length;) {
|
|
15773
|
-
let e = _[y++], t = await
|
|
15786
|
+
let e = _[y++], t = await Tw(e, u);
|
|
15774
15787
|
t.status === "found" ? p.set(e, t.font) : t.status === "missing" ? m.add(e) : v.push(`${e} (${t.message})`);
|
|
15775
15788
|
}
|
|
15776
15789
|
}));
|
|
@@ -15779,14 +15792,14 @@ async function Dw({ design: e, config: n, cachePath: a, lookup: o, io: s, fetch:
|
|
|
15779
15792
|
unresolved: g.filter((e) => !p.has(e) && m.has(e)).sort((e, t) => e.localeCompare(t))
|
|
15780
15793
|
};
|
|
15781
15794
|
if (o && _.length > 0 && s.out(`Fonts: looked up ${_.length - v.length} of ${_.length} new famil${_.length === 1 ? "y" : "ies"} on Fontsource.\n`), v.length > 0 && s.err(`Fonts: could not reach Fontsource for ${v.join(", ")}; they stay unresolved for now and are retried next run.\n`), o) {
|
|
15782
|
-
let e =
|
|
15795
|
+
let e = Ow(b);
|
|
15783
15796
|
(t(a) ? i(a, "utf-8") : null) !== e && (b.fonts.length || b.unresolved.length) && (r(l(a), { recursive: !0 }), c(a, e));
|
|
15784
15797
|
}
|
|
15785
15798
|
return b.fonts.length || b.unresolved.length ? b : void 0;
|
|
15786
15799
|
}
|
|
15787
15800
|
//#endregion
|
|
15788
15801
|
//#region src/load-config.ts
|
|
15789
|
-
function
|
|
15802
|
+
function Aw(e, n) {
|
|
15790
15803
|
let r = f(e, n ?? "syncline.config.json"), a = {};
|
|
15791
15804
|
if (t(r)) try {
|
|
15792
15805
|
a = JSON.parse(i(r, "utf-8"));
|
|
@@ -15800,18 +15813,18 @@ function Ow(e, n) {
|
|
|
15800
15813
|
ok: !1,
|
|
15801
15814
|
error: `Config file not found: ${r}`
|
|
15802
15815
|
};
|
|
15803
|
-
let o =
|
|
15816
|
+
let o = IC.safeParse(a);
|
|
15804
15817
|
return o.success ? {
|
|
15805
15818
|
ok: !0,
|
|
15806
15819
|
config: o.data
|
|
15807
15820
|
} : {
|
|
15808
15821
|
ok: !1,
|
|
15809
|
-
error: `Invalid config ${r}:\n${
|
|
15822
|
+
error: `Invalid config ${r}:\n${RC(o.error)}`
|
|
15810
15823
|
};
|
|
15811
15824
|
}
|
|
15812
15825
|
//#endregion
|
|
15813
15826
|
//#region src/commands/fonts.ts
|
|
15814
|
-
var
|
|
15827
|
+
var jw = `Usage: syncline fonts [options]
|
|
15815
15828
|
|
|
15816
15829
|
Looks up where each font the design uses can be loaded from (Fontsource, the
|
|
15817
15830
|
Google Fonts as npm packages) and records it in .syncline/fonts.resolved.json, so
|
|
@@ -15819,23 +15832,23 @@ Google Fonts as npm packages) and records it in .syncline/fonts.resolved.json, s
|
|
|
15819
15832
|
are listed; map your own files for them in \`fonts.files\` in the config.
|
|
15820
15833
|
|
|
15821
15834
|
Options:
|
|
15822
|
-
--config <file> Config file (default: ${
|
|
15835
|
+
--config <file> Config file (default: ${LC})
|
|
15823
15836
|
--cwd <dir> Project root (default: the current directory)
|
|
15824
15837
|
-h, --help Show this help
|
|
15825
|
-
`,
|
|
15838
|
+
`, Mw = {
|
|
15826
15839
|
name: "fonts",
|
|
15827
15840
|
summary: "Look up where the design’s fonts can be loaded from",
|
|
15828
15841
|
async run({ args: e, io: t }) {
|
|
15829
15842
|
let n = process.cwd(), r;
|
|
15830
15843
|
for (let i = 0; i < e.length; i++) {
|
|
15831
|
-
if (e[i] === "-h" || e[i] === "--help") return t.out(
|
|
15844
|
+
if (e[i] === "-h" || e[i] === "--help") return t.out(jw), 0;
|
|
15832
15845
|
if (e[i] === "--cwd" && e[i + 1]) n = f(e[++i]);
|
|
15833
15846
|
else if (e[i] === "--config" && e[i + 1]) r = e[++i];
|
|
15834
|
-
else return t.err(`Unknown option: ${e[i]}\n\n${
|
|
15847
|
+
else return t.err(`Unknown option: ${e[i]}\n\n${jw}`), 1;
|
|
15835
15848
|
}
|
|
15836
|
-
let i =
|
|
15849
|
+
let i = Aw(n, r);
|
|
15837
15850
|
if (i.ok === !1) return t.err(`${i.error}\n`), 1;
|
|
15838
|
-
let { config: a } = i, o =
|
|
15851
|
+
let { config: a } = i, o = bw({
|
|
15839
15852
|
root: n,
|
|
15840
15853
|
designPath: a.inputs.design,
|
|
15841
15854
|
enrichedPath: a.inputs.enriched,
|
|
@@ -15843,7 +15856,7 @@ Options:
|
|
|
15843
15856
|
annotationsPath: a.inputs.annotations
|
|
15844
15857
|
});
|
|
15845
15858
|
if (o.ok === !1) return t.err(`${o.error}\n`), 1;
|
|
15846
|
-
let s = o.input.design, c = await
|
|
15859
|
+
let s = o.input.design, c = await kw({
|
|
15847
15860
|
design: s,
|
|
15848
15861
|
config: a,
|
|
15849
15862
|
cachePath: d(n, a.inputs.fonts),
|
|
@@ -15861,19 +15874,19 @@ Options:
|
|
|
15861
15874
|
for (let e of l) t.out(` ${e.usage.family} (${e.usage.weights.join(", ")}): ${u[e.source]}\n`);
|
|
15862
15875
|
return 0;
|
|
15863
15876
|
}
|
|
15864
|
-
},
|
|
15865
|
-
function
|
|
15877
|
+
}, Nw = 3, Pw = 2;
|
|
15878
|
+
function Fw(e, t) {
|
|
15866
15879
|
return h("sha256").update(JSON.stringify([t, e])).digest("hex");
|
|
15867
15880
|
}
|
|
15868
|
-
var
|
|
15869
|
-
async function
|
|
15881
|
+
var Iw = (e, t) => Array.from({ length: Math.ceil(e.length / t) }, (n, r) => e.slice(r * t, (r + 1) * t));
|
|
15882
|
+
async function Lw(e, t, n) {
|
|
15870
15883
|
let r = 0;
|
|
15871
15884
|
await Promise.all(Array.from({ length: Math.min(t, e.length) }, async () => {
|
|
15872
15885
|
for (; r < e.length;) await n(e[r++]);
|
|
15873
15886
|
}));
|
|
15874
15887
|
}
|
|
15875
|
-
function
|
|
15876
|
-
return e instanceof
|
|
15888
|
+
function Rw(e) {
|
|
15889
|
+
return e instanceof zC ? {
|
|
15877
15890
|
status: "skipped",
|
|
15878
15891
|
reason: e.status === 401 ? "the bridge did not accept the credentials" : e.message
|
|
15879
15892
|
} : {
|
|
@@ -15881,7 +15894,7 @@ function Iw(e) {
|
|
|
15881
15894
|
reason: e instanceof Error ? e.message : String(e)
|
|
15882
15895
|
};
|
|
15883
15896
|
}
|
|
15884
|
-
async function
|
|
15897
|
+
async function zw(e, t, n = {}) {
|
|
15885
15898
|
let { facts: r, local: i, elementPaths: a, fieldPaths: o, diagnostics: s } = Cm(n.factsDesign ?? e, n.normalize), c = s.map((e) => `enrichment: ${e}`), l;
|
|
15886
15899
|
try {
|
|
15887
15900
|
let e = await t.version();
|
|
@@ -15891,15 +15904,15 @@ async function Lw(e, t, n = {}) {
|
|
|
15891
15904
|
};
|
|
15892
15905
|
l = e.promptVersion;
|
|
15893
15906
|
} catch (e) {
|
|
15894
|
-
return
|
|
15907
|
+
return Rw(e);
|
|
15895
15908
|
}
|
|
15896
|
-
let u = new Map(r.map((e) => [e.id,
|
|
15909
|
+
let u = new Map(r.map((e) => [e.id, Fw(e, l)])), d = new Map((n.previous?.components ?? []).flatMap((e) => e.enrichment && e.enrichmentHash ? [[e.id, e]] : [])), f = (e) => {
|
|
15897
15910
|
let t = d.get(e);
|
|
15898
15911
|
if (t) return t.enrichmentHash === u.get(e) ? t.enrichment : void 0;
|
|
15899
15912
|
}, p = /* @__PURE__ */ new Map(), m = r.filter((e) => !f(e.id)), h = m.length, g;
|
|
15900
|
-
for (let e = 0; e <
|
|
15913
|
+
for (let e = 0; e < Pw && m.length > 0 && !g; e++) {
|
|
15901
15914
|
let e = [];
|
|
15902
|
-
await
|
|
15915
|
+
await Lw(Iw(m, 10), n.concurrency ?? Nw, async (n) => {
|
|
15903
15916
|
if (g) {
|
|
15904
15917
|
e.push(...n);
|
|
15905
15918
|
return;
|
|
@@ -15911,7 +15924,7 @@ async function Lw(e, t, n = {}) {
|
|
|
15911
15924
|
components: n
|
|
15912
15925
|
})).results;
|
|
15913
15926
|
} catch (t) {
|
|
15914
|
-
t instanceof
|
|
15927
|
+
t instanceof zC && (t.code === "rate_limited" || t.code === "forbidden" || t.status === 401) ? g = t.message : c.push(`enrichment: a batch of ${n.length} failed (${t.message})`), e.push(...n);
|
|
15915
15928
|
return;
|
|
15916
15929
|
}
|
|
15917
15930
|
let i = new Map(r.map((e) => [e.id, e]));
|
|
@@ -15955,14 +15968,14 @@ async function Lw(e, t, n = {}) {
|
|
|
15955
15968
|
}
|
|
15956
15969
|
//#endregion
|
|
15957
15970
|
//#region src/enrich/client.ts
|
|
15958
|
-
function
|
|
15971
|
+
function Bw(e) {
|
|
15959
15972
|
return async () => {
|
|
15960
15973
|
if (!e.bridgeUrl) return {
|
|
15961
15974
|
ok: !1,
|
|
15962
15975
|
reason: "no bridge configured (set enrich.bridgeUrl or SYNCLINE_URL)",
|
|
15963
15976
|
quiet: !0
|
|
15964
15977
|
};
|
|
15965
|
-
let t = e.bridgeUrl.replace(/\/$/, ""), n = await
|
|
15978
|
+
let t = e.bridgeUrl.replace(/\/$/, ""), n = await KC({
|
|
15966
15979
|
audience: e.audience ?? t,
|
|
15967
15980
|
env: e.env,
|
|
15968
15981
|
fetch: e.fetch
|
|
@@ -15972,7 +15985,7 @@ function Rw(e) {
|
|
|
15972
15985
|
reason: n.reason
|
|
15973
15986
|
} : {
|
|
15974
15987
|
ok: !0,
|
|
15975
|
-
client:
|
|
15988
|
+
client: GC({
|
|
15976
15989
|
baseUrl: t,
|
|
15977
15990
|
token: n.token,
|
|
15978
15991
|
fetch: e.fetch,
|
|
@@ -15983,21 +15996,21 @@ function Rw(e) {
|
|
|
15983
15996
|
}
|
|
15984
15997
|
//#endregion
|
|
15985
15998
|
//#region src/enrich/step.ts
|
|
15986
|
-
function
|
|
15999
|
+
function Vw(e) {
|
|
15987
16000
|
try {
|
|
15988
16001
|
return JSON.parse(i(e, "utf-8"));
|
|
15989
16002
|
} catch {
|
|
15990
16003
|
return;
|
|
15991
16004
|
}
|
|
15992
16005
|
}
|
|
15993
|
-
function
|
|
16006
|
+
function Hw(e, n) {
|
|
15994
16007
|
return t(e) ? n ? `${e} failed validation: ${JSON.stringify(n.format())}` : `${e} is not valid JSON` : `${e} does not exist`;
|
|
15995
16008
|
}
|
|
15996
|
-
async function
|
|
15997
|
-
let { io: n } = e, r =
|
|
16009
|
+
async function Uw(e) {
|
|
16010
|
+
let { io: n } = e, r = Vw(e.designPath), a = ll.safeParse(r);
|
|
15998
16011
|
if (!a.success) return {
|
|
15999
16012
|
status: "no-design",
|
|
16000
|
-
reason:
|
|
16013
|
+
reason: Hw(e.designPath, r === void 0 ? void 0 : a.error)
|
|
16001
16014
|
};
|
|
16002
16015
|
let o = (r, i = !1) => {
|
|
16003
16016
|
let a = `Enrichment skipped: ${r}. Generating without it${t(e.enrichedPath) ? " (keeping the enrichments from an earlier run)" : ""}.\n`;
|
|
@@ -16005,10 +16018,10 @@ async function Vw(e) {
|
|
|
16005
16018
|
status: "skipped",
|
|
16006
16019
|
reason: r
|
|
16007
16020
|
};
|
|
16008
|
-
}, s = await (e.provider ??
|
|
16021
|
+
}, s = await (e.provider ?? Bw(e))();
|
|
16009
16022
|
if (s.ok === !1) return o(s.reason, s.quiet);
|
|
16010
|
-
let l = e.annotationsPath ?
|
|
16011
|
-
previous:
|
|
16023
|
+
let l = e.annotationsPath ? yw(e.annotationsPath) : void 0, u = l?.ok === !0 && l.overlay ? Wp(a.data, l.overlay) : void 0, d = await zw(a.data, s.client, {
|
|
16024
|
+
previous: Vw(e.enrichedPath),
|
|
16012
16025
|
...u && {
|
|
16013
16026
|
factsDesign: u.design,
|
|
16014
16027
|
normalize: { iconPages: u.iconPages }
|
|
@@ -16026,7 +16039,7 @@ async function Vw(e) {
|
|
|
16026
16039
|
}
|
|
16027
16040
|
//#endregion
|
|
16028
16041
|
//#region src/dependencies.ts
|
|
16029
|
-
var
|
|
16042
|
+
var Ww = (e, t, n) => new Promise((r) => {
|
|
16030
16043
|
let i = g(e, t, {
|
|
16031
16044
|
cwd: n,
|
|
16032
16045
|
shell: process.platform === "win32"
|
|
@@ -16039,7 +16052,7 @@ var Hw = (e, t, n) => new Promise((r) => {
|
|
|
16039
16052
|
output: a
|
|
16040
16053
|
}));
|
|
16041
16054
|
});
|
|
16042
|
-
function
|
|
16055
|
+
function Gw(e) {
|
|
16043
16056
|
let n = [], r = f(e);
|
|
16044
16057
|
for (;;) {
|
|
16045
16058
|
if (n.push(r), t(d(r, ".git"))) return n;
|
|
@@ -16048,7 +16061,7 @@ function Uw(e) {
|
|
|
16048
16061
|
r = e;
|
|
16049
16062
|
}
|
|
16050
16063
|
}
|
|
16051
|
-
function
|
|
16064
|
+
function Kw(e) {
|
|
16052
16065
|
try {
|
|
16053
16066
|
let t = JSON.parse(i(d(e, "package.json"), "utf8"));
|
|
16054
16067
|
return t && typeof t == "object" ? t : null;
|
|
@@ -16056,10 +16069,10 @@ function Ww(e) {
|
|
|
16056
16069
|
return null;
|
|
16057
16070
|
}
|
|
16058
16071
|
}
|
|
16059
|
-
function
|
|
16072
|
+
function qw(e) {
|
|
16060
16073
|
let t = /* @__PURE__ */ new Set();
|
|
16061
|
-
for (let n of
|
|
16062
|
-
let e =
|
|
16074
|
+
for (let n of Gw(e)) {
|
|
16075
|
+
let e = Kw(n);
|
|
16063
16076
|
if (e) for (let n of [
|
|
16064
16077
|
"dependencies",
|
|
16065
16078
|
"devDependencies",
|
|
@@ -16072,22 +16085,22 @@ function Gw(e) {
|
|
|
16072
16085
|
}
|
|
16073
16086
|
return t;
|
|
16074
16087
|
}
|
|
16075
|
-
function
|
|
16076
|
-
let n =
|
|
16088
|
+
function Jw(e, t) {
|
|
16089
|
+
let n = qw(e);
|
|
16077
16090
|
return t.filter((e) => !n.has(e.name));
|
|
16078
16091
|
}
|
|
16079
|
-
function
|
|
16080
|
-
for (let n of
|
|
16092
|
+
function Yw(e) {
|
|
16093
|
+
for (let n of Gw(e)) {
|
|
16081
16094
|
if (t(d(n, "yarn.lock"))) return "yarn";
|
|
16082
16095
|
if (t(d(n, "pnpm-lock.yaml"))) return "pnpm";
|
|
16083
16096
|
if (t(d(n, "package-lock.json"))) return "npm";
|
|
16084
16097
|
}
|
|
16085
16098
|
return "npm";
|
|
16086
16099
|
}
|
|
16087
|
-
function
|
|
16088
|
-
for (let n of
|
|
16100
|
+
function Xw(e) {
|
|
16101
|
+
for (let n of Gw(e)) {
|
|
16089
16102
|
if (t(d(n, ".yarnrc.yml"))) return !0;
|
|
16090
|
-
let e =
|
|
16103
|
+
let e = Kw(n)?.packageManager;
|
|
16091
16104
|
if (typeof e == "string" && /^yarn@([2-9]|\d{2,})/.test(e)) return !0;
|
|
16092
16105
|
try {
|
|
16093
16106
|
if (/^__metadata:/m.test(i(d(n, "yarn.lock"), "utf8"))) return !0;
|
|
@@ -16095,7 +16108,7 @@ function Jw(e) {
|
|
|
16095
16108
|
}
|
|
16096
16109
|
return !1;
|
|
16097
16110
|
}
|
|
16098
|
-
var
|
|
16111
|
+
var Zw = (e, t) => e === "npm" ? [
|
|
16099
16112
|
"install",
|
|
16100
16113
|
"--save-dev",
|
|
16101
16114
|
"--no-audit",
|
|
@@ -16105,9 +16118,9 @@ var Yw = (e, t) => e === "npm" ? [
|
|
|
16105
16118
|
"add",
|
|
16106
16119
|
"-D",
|
|
16107
16120
|
...t
|
|
16108
|
-
],
|
|
16109
|
-
async function
|
|
16110
|
-
let s =
|
|
16121
|
+
], Qw = "--legacy-peer-deps", $w = (e) => e.toLowerCase().replace(/[^a-z0-9._-]+/g, "-").replace(/^[-._]+|[-._]+$/g, "") || "design-system";
|
|
16122
|
+
async function eT({ cwd: e, required: n, install: r, libraryName: i, io: a, run: o = Ww }) {
|
|
16123
|
+
let s = Jw(e, n);
|
|
16111
16124
|
if (s.length === 0) return;
|
|
16112
16125
|
let l = s.map((e) => e.name).join(", ");
|
|
16113
16126
|
if (!r) {
|
|
@@ -16115,13 +16128,13 @@ async function Qw({ cwd: e, required: n, install: r, libraryName: i, io: a, run:
|
|
|
16115
16128
|
`);
|
|
16116
16129
|
return;
|
|
16117
16130
|
}
|
|
16118
|
-
|
|
16119
|
-
name:
|
|
16131
|
+
Gw(e).some((e) => Kw(e)) || (c(d(e, "package.json"), `${JSON.stringify({
|
|
16132
|
+
name: $w(i),
|
|
16120
16133
|
version: "0.0.0",
|
|
16121
16134
|
private: !0
|
|
16122
|
-
}, null, 2)}\n`),
|
|
16123
|
-
let u =
|
|
16124
|
-
if (p === "yarn" &&
|
|
16135
|
+
}, null, 2)}\n`), Gw(e).some((e) => t(d(e, ".gitignore"))) || c(d(e, ".gitignore"), "node_modules\nstorybook-static\n"));
|
|
16136
|
+
let u = Gw(e).find((e) => Kw(e) !== null) ?? f(e), p = Yw(e);
|
|
16137
|
+
if (p === "yarn" && Xw(e)) {
|
|
16125
16138
|
let e = await o("yarn", ["--version"], u);
|
|
16126
16139
|
if (e.code !== 0 || /^1\./.test(e.output.trim())) {
|
|
16127
16140
|
a.err(`Could not install ${l}: this repository uses Yarn Berry but "yarn" resolves to Yarn 1. Add "packageManager": "yarn@<version>" to package.json and run "corepack enable", then add the packages yourself.
|
|
@@ -16130,12 +16143,12 @@ async function Qw({ cwd: e, required: n, install: r, libraryName: i, io: a, run:
|
|
|
16130
16143
|
}
|
|
16131
16144
|
}
|
|
16132
16145
|
a.out(`Installing ${l} with ${p}…\n`);
|
|
16133
|
-
let m =
|
|
16134
|
-
h.code !== 0 && p === "npm" && (a.out(`npm could not resolve the dependency tree; trying again with ${
|
|
16146
|
+
let m = Zw(p, s.map((e) => `${e.name}@${e.range}`)), h = await o(p, m, u);
|
|
16147
|
+
h.code !== 0 && p === "npm" && (a.out(`npm could not resolve the dependency tree; trying again with ${Qw}…\n`), h = await o(p, [...m, Qw], u)), h.code !== 0 && a.err(`Could not install ${l} (${p} exited with ${h.code}). Add them yourself.\n${h.output.trim().split("\n").slice(-10).join("\n")}\n`);
|
|
16135
16148
|
}
|
|
16136
16149
|
//#endregion
|
|
16137
16150
|
//#region src/format.ts
|
|
16138
|
-
var
|
|
16151
|
+
var tT = /* @__PURE__ */ new Set([
|
|
16139
16152
|
".ts",
|
|
16140
16153
|
".tsx",
|
|
16141
16154
|
".mts",
|
|
@@ -16148,9 +16161,9 @@ var $w = /* @__PURE__ */ new Set([
|
|
|
16148
16161
|
".mdx",
|
|
16149
16162
|
".css"
|
|
16150
16163
|
]);
|
|
16151
|
-
async function
|
|
16164
|
+
async function nT(e, t, n) {
|
|
16152
16165
|
return Promise.all(t.map(async (t) => {
|
|
16153
|
-
if (
|
|
16166
|
+
if (!tT.has(u(t.path).toLowerCase())) return t;
|
|
16154
16167
|
let r = d(e, t.path);
|
|
16155
16168
|
try {
|
|
16156
16169
|
let e = await m(r) ?? {};
|
|
@@ -16166,7 +16179,7 @@ async function eT(e, t, n) {
|
|
|
16166
16179
|
}
|
|
16167
16180
|
}));
|
|
16168
16181
|
}
|
|
16169
|
-
async function
|
|
16182
|
+
async function rT(e, t, n) {
|
|
16170
16183
|
let r = d(e, t), i = await m(r) ?? {};
|
|
16171
16184
|
return p(n, {
|
|
16172
16185
|
...i,
|
|
@@ -16175,7 +16188,7 @@ async function tT(e, t, n) {
|
|
|
16175
16188
|
}
|
|
16176
16189
|
//#endregion
|
|
16177
16190
|
//#region ../core/src/merge/component-files.ts
|
|
16178
|
-
function
|
|
16191
|
+
function iT(e, t) {
|
|
16179
16192
|
if (e.policy !== "overwrite") return !1;
|
|
16180
16193
|
let n = jm(e.path);
|
|
16181
16194
|
if (jm(n) !== t.replace(/\/+$/, "")) return !1;
|
|
@@ -16184,7 +16197,7 @@ function nT(e, t) {
|
|
|
16184
16197
|
}
|
|
16185
16198
|
//#endregion
|
|
16186
16199
|
//#region ../../node_modules/node-diff3/dist/diff3.mjs
|
|
16187
|
-
function
|
|
16200
|
+
function aT(e, t) {
|
|
16188
16201
|
let n = Object.create(null);
|
|
16189
16202
|
for (let e = 0; e < t.length; e++) {
|
|
16190
16203
|
let r = t[e];
|
|
@@ -16213,8 +16226,8 @@ function rT(e, t) {
|
|
|
16213
16226
|
}
|
|
16214
16227
|
return r[r.length - 1];
|
|
16215
16228
|
}
|
|
16216
|
-
function
|
|
16217
|
-
let n =
|
|
16229
|
+
function oT(e, t) {
|
|
16230
|
+
let n = aT(e, t), r = [], i = e.length, a = t.length;
|
|
16218
16231
|
for (let o = n; o !== null; o = o.chain) {
|
|
16219
16232
|
let n = i - o.buffer1index - 1, s = a - o.buffer2index - 1;
|
|
16220
16233
|
i = o.buffer1index, a = o.buffer2index, (n || s) && r.push({
|
|
@@ -16226,7 +16239,7 @@ function iT(e, t) {
|
|
|
16226
16239
|
}
|
|
16227
16240
|
return r.reverse(), r;
|
|
16228
16241
|
}
|
|
16229
|
-
function
|
|
16242
|
+
function sT(e, t, n) {
|
|
16230
16243
|
let r = [];
|
|
16231
16244
|
function i(e, t) {
|
|
16232
16245
|
r.push({
|
|
@@ -16237,7 +16250,7 @@ function aT(e, t, n) {
|
|
|
16237
16250
|
abLength: e.buffer2[1]
|
|
16238
16251
|
});
|
|
16239
16252
|
}
|
|
16240
|
-
|
|
16253
|
+
oT(t, e).forEach((e) => i(e, "a")), oT(t, n).forEach((e) => i(e, "b")), r.sort((e, t) => e.oStart - t.oStart);
|
|
16241
16254
|
let a = [], o = 0;
|
|
16242
16255
|
function s(e) {
|
|
16243
16256
|
e > o && (a.push({
|
|
@@ -16304,12 +16317,12 @@ function aT(e, t, n) {
|
|
|
16304
16317
|
}
|
|
16305
16318
|
return s(t.length), a;
|
|
16306
16319
|
}
|
|
16307
|
-
function
|
|
16320
|
+
function cT(e, t, n, r) {
|
|
16308
16321
|
r = Object.assign({
|
|
16309
16322
|
excludeFalseConflicts: !0,
|
|
16310
16323
|
stringSeparator: /\s+/
|
|
16311
16324
|
}, r), typeof e == "string" && (e = e.split(r.stringSeparator)), typeof t == "string" && (t = t.split(r.stringSeparator)), typeof n == "string" && (n = n.split(r.stringSeparator));
|
|
16312
|
-
let i = [], a =
|
|
16325
|
+
let i = [], a = sT(e, t, n), o = [];
|
|
16313
16326
|
function s() {
|
|
16314
16327
|
o.length && i.push({ ok: o }), o = [];
|
|
16315
16328
|
}
|
|
@@ -16329,13 +16342,13 @@ function oT(e, t, n, r) {
|
|
|
16329
16342
|
} }));
|
|
16330
16343
|
}), s(), i;
|
|
16331
16344
|
}
|
|
16332
|
-
function
|
|
16345
|
+
function lT(e, t, n, r) {
|
|
16333
16346
|
r = Object.assign({
|
|
16334
16347
|
excludeFalseConflicts: !0,
|
|
16335
16348
|
stringSeparator: /\s+/,
|
|
16336
16349
|
label: {}
|
|
16337
16350
|
}, r);
|
|
16338
|
-
let i = "<<<<<<<" + (r.label.a ? ` ${r.label.a}` : ""), a = ">>>>>>>" + (r.label.b ? ` ${r.label.b}` : ""), o =
|
|
16351
|
+
let i = "<<<<<<<" + (r.label.a ? ` ${r.label.a}` : ""), a = ">>>>>>>" + (r.label.b ? ` ${r.label.b}` : ""), o = cT(e, t, n, r), s = !1, c = [];
|
|
16339
16352
|
return o.forEach((e) => {
|
|
16340
16353
|
e.ok ? c = c.concat(e.ok) : e.conflict && (s = !0, c = c.concat([i], e.conflict.a, ["======="], e.conflict.b, [a]));
|
|
16341
16354
|
}), {
|
|
@@ -16345,10 +16358,10 @@ function sT(e, t, n, r) {
|
|
|
16345
16358
|
}
|
|
16346
16359
|
//#endregion
|
|
16347
16360
|
//#region ../core/src/merge/merge-file.ts
|
|
16348
|
-
function
|
|
16361
|
+
function uT({ base: e, current: t, generated: n }) {
|
|
16349
16362
|
if (t === null || e === null || t === n || t === e) return { kind: "take-generated" };
|
|
16350
16363
|
if (n === e) return { kind: "keep-current" };
|
|
16351
|
-
let r =
|
|
16364
|
+
let r = lT(t.split("\n"), e.split("\n"), n.split("\n"), { excludeFalseConflicts: !0 });
|
|
16352
16365
|
return r.conflict ? { kind: "conflict" } : {
|
|
16353
16366
|
kind: "merged",
|
|
16354
16367
|
contents: r.result.join("\n")
|
|
@@ -16356,19 +16369,19 @@ function cT({ base: e, current: t, generated: n }) {
|
|
|
16356
16369
|
}
|
|
16357
16370
|
//#endregion
|
|
16358
16371
|
//#region ../core/src/merge/verify.ts
|
|
16359
|
-
var
|
|
16360
|
-
function
|
|
16361
|
-
return [...e.matchAll(
|
|
16372
|
+
var dT = /^(?:<{7}|={7}|>{7})(?:\s|$)/m, fT = /\bexport\s+(?:declare\s+)?(?:async\s+)?(?:function|const|let|class|interface|type|enum)\s+([A-Za-z_$][\w$]*)/g;
|
|
16373
|
+
function pT(e) {
|
|
16374
|
+
return [...e.matchAll(fT)].map((e) => e[1]);
|
|
16362
16375
|
}
|
|
16363
|
-
function
|
|
16364
|
-
if (
|
|
16365
|
-
let n = new Set(
|
|
16376
|
+
function mT(e, t) {
|
|
16377
|
+
if (dT.test(t)) return "it contains conflict markers";
|
|
16378
|
+
let n = new Set(pT(t)), r = pT(e).filter((e) => !n.has(e));
|
|
16366
16379
|
return r.length > 0 ? `it no longer exports ${r.join(", ")}` : null;
|
|
16367
16380
|
}
|
|
16368
16381
|
//#endregion
|
|
16369
16382
|
//#region src/merge/apply.ts
|
|
16370
|
-
var
|
|
16371
|
-
async function
|
|
16383
|
+
var hT = (e, t) => `${e.replace(/\/+$/, "")}/${t}.base`;
|
|
16384
|
+
async function gT(e) {
|
|
16372
16385
|
let { cwd: t, existing: n, componentsDir: r, baseDir: i } = e, a = new Set(e.accept ?? []), o = {
|
|
16373
16386
|
files: [],
|
|
16374
16387
|
bases: [],
|
|
@@ -16376,14 +16389,14 @@ async function mT(e) {
|
|
|
16376
16389
|
resolved: [],
|
|
16377
16390
|
conflicts: []
|
|
16378
16391
|
}, s = [], c = (e, t) => o.bases.push({
|
|
16379
|
-
path:
|
|
16392
|
+
path: hT(i, e),
|
|
16380
16393
|
contents: t,
|
|
16381
16394
|
policy: "overwrite"
|
|
16382
16395
|
});
|
|
16383
16396
|
for (let l of e.files) {
|
|
16384
16397
|
let e = o.files.push(l) - 1;
|
|
16385
|
-
if (!
|
|
16386
|
-
let u = n.read(l.path), d = n.read(
|
|
16398
|
+
if (!iT(l, r)) continue;
|
|
16399
|
+
let u = n.read(l.path), d = n.read(hT(i, l.path));
|
|
16387
16400
|
if (a.has(l.path) && u !== null) {
|
|
16388
16401
|
o.files[e] = {
|
|
16389
16402
|
...l,
|
|
@@ -16391,7 +16404,7 @@ async function mT(e) {
|
|
|
16391
16404
|
}, c(l.path, l.contents);
|
|
16392
16405
|
continue;
|
|
16393
16406
|
}
|
|
16394
|
-
let f =
|
|
16407
|
+
let f = uT({
|
|
16395
16408
|
base: d,
|
|
16396
16409
|
current: u,
|
|
16397
16410
|
generated: l.contents
|
|
@@ -16407,7 +16420,7 @@ async function mT(e) {
|
|
|
16407
16420
|
};
|
|
16408
16421
|
break;
|
|
16409
16422
|
case "merged": {
|
|
16410
|
-
let n = await
|
|
16423
|
+
let n = await _T(t, l, f.contents);
|
|
16411
16424
|
n.ok === !1 ? (o.files[e] = {
|
|
16412
16425
|
...l,
|
|
16413
16426
|
contents: u
|
|
@@ -16437,11 +16450,11 @@ async function mT(e) {
|
|
|
16437
16450
|
});
|
|
16438
16451
|
}
|
|
16439
16452
|
}
|
|
16440
|
-
return e.resolver && s.length > 0 && await
|
|
16453
|
+
return e.resolver && s.length > 0 && await vT(e, o, s), o;
|
|
16441
16454
|
}
|
|
16442
|
-
async function
|
|
16455
|
+
async function _T(e, t, n) {
|
|
16443
16456
|
try {
|
|
16444
|
-
let r = await
|
|
16457
|
+
let r = await rT(e, t.path, n), i = mT(t.contents, r);
|
|
16445
16458
|
return i ? {
|
|
16446
16459
|
ok: !1,
|
|
16447
16460
|
reason: `the merge was rejected: ${i}`
|
|
@@ -16456,7 +16469,7 @@ async function hT(e, t, n) {
|
|
|
16456
16469
|
};
|
|
16457
16470
|
}
|
|
16458
16471
|
}
|
|
16459
|
-
async function
|
|
16472
|
+
async function vT(e, t, n) {
|
|
16460
16473
|
let r = (e, n) => {
|
|
16461
16474
|
let r = t.conflicts.find((t) => t.path === e);
|
|
16462
16475
|
r && (r.reason = n);
|
|
@@ -16480,7 +16493,7 @@ async function gT(e, t, n) {
|
|
|
16480
16493
|
r(i.path, "the merge model could not resolve it");
|
|
16481
16494
|
continue;
|
|
16482
16495
|
}
|
|
16483
|
-
let s = await
|
|
16496
|
+
let s = await _T(e.cwd, {
|
|
16484
16497
|
path: i.path,
|
|
16485
16498
|
contents: i.generated,
|
|
16486
16499
|
policy: "overwrite"
|
|
@@ -16493,7 +16506,7 @@ async function gT(e, t, n) {
|
|
|
16493
16506
|
...t.files[n],
|
|
16494
16507
|
contents: s.contents
|
|
16495
16508
|
}, t.conflicts = t.conflicts.filter((e) => e.path !== i.path), t.resolved.push(i.path), t.bases.push({
|
|
16496
|
-
path:
|
|
16509
|
+
path: hT(e.baseDir, i.path),
|
|
16497
16510
|
contents: i.generated,
|
|
16498
16511
|
policy: "overwrite"
|
|
16499
16512
|
});
|
|
@@ -16502,8 +16515,8 @@ async function gT(e, t, n) {
|
|
|
16502
16515
|
}
|
|
16503
16516
|
//#endregion
|
|
16504
16517
|
//#region src/merge/resolver.ts
|
|
16505
|
-
function
|
|
16506
|
-
let { io: t } = e, n = e.provider ??
|
|
16518
|
+
function yT(e) {
|
|
16519
|
+
let { io: t } = e, n = e.provider ?? Bw(e), r, i;
|
|
16507
16520
|
return async (e) => {
|
|
16508
16521
|
if (r) return null;
|
|
16509
16522
|
let a = (e) => (r = e, t.err(`Merge skipped: ${e}. Conflicts stay as you left them.\n`), null);
|
|
@@ -16518,17 +16531,17 @@ function _T(e) {
|
|
|
16518
16531
|
files: e
|
|
16519
16532
|
})).results;
|
|
16520
16533
|
} catch (e) {
|
|
16521
|
-
return a(e instanceof
|
|
16534
|
+
return a(e instanceof zC ? e.message : "the service call failed");
|
|
16522
16535
|
}
|
|
16523
16536
|
};
|
|
16524
16537
|
}
|
|
16525
16538
|
//#endregion
|
|
16526
16539
|
//#region src/stories/enrich-stories.ts
|
|
16527
|
-
var
|
|
16528
|
-
function
|
|
16540
|
+
var bT = 3, xT = 2;
|
|
16541
|
+
function ST(e, t) {
|
|
16529
16542
|
return h("sha256").update(JSON.stringify([t, e])).digest("hex");
|
|
16530
16543
|
}
|
|
16531
|
-
async function
|
|
16544
|
+
async function CT(e, t, n = {}) {
|
|
16532
16545
|
let r;
|
|
16533
16546
|
try {
|
|
16534
16547
|
let e = await t.storiesVersion();
|
|
@@ -16540,18 +16553,18 @@ async function xT(e, t, n = {}) {
|
|
|
16540
16553
|
} catch (e) {
|
|
16541
16554
|
return {
|
|
16542
16555
|
status: "skipped",
|
|
16543
|
-
reason: e instanceof
|
|
16556
|
+
reason: e instanceof zC && e.status === 401 ? "the bridge did not accept the credentials" : e instanceof Error ? e.message : String(e)
|
|
16544
16557
|
};
|
|
16545
16558
|
}
|
|
16546
|
-
let i = new Map(e.map((e) => [e.id,
|
|
16559
|
+
let i = new Map(e.map((e) => [e.id, ST(e, r)])), a = n.previous?.promptVersion === r ? n.previous.entries : {}, o = {}, s = /* @__PURE__ */ new Map();
|
|
16547
16560
|
for (let t of e) {
|
|
16548
16561
|
let e = a[t.id];
|
|
16549
16562
|
e && e.hash === i.get(t.id) && (o[t.id] = e, s.set(t.id, e.enrichment));
|
|
16550
16563
|
}
|
|
16551
16564
|
let c = s.size, l = [], u = e.filter((e) => !s.has(e.id)), d;
|
|
16552
|
-
for (let e = 0; e <
|
|
16565
|
+
for (let e = 0; e < xT && u.length > 0 && !d; e++) {
|
|
16553
16566
|
let e = [];
|
|
16554
|
-
await
|
|
16567
|
+
await Lw(Iw(u, 10), n.concurrency ?? bT, async (n) => {
|
|
16555
16568
|
if (d) {
|
|
16556
16569
|
e.push(...n);
|
|
16557
16570
|
return;
|
|
@@ -16563,7 +16576,7 @@ async function xT(e, t, n = {}) {
|
|
|
16563
16576
|
components: n
|
|
16564
16577
|
})).results;
|
|
16565
16578
|
} catch (t) {
|
|
16566
|
-
t instanceof
|
|
16579
|
+
t instanceof zC && (t.code === "rate_limited" || t.code === "forbidden" || t.status === 401) ? d = t.message : l.push(`stories: a batch of ${n.length} failed (${t.message})`), e.push(...n);
|
|
16567
16580
|
return;
|
|
16568
16581
|
}
|
|
16569
16582
|
let a = new Map(r.map((e) => [e.id, e]));
|
|
@@ -16599,10 +16612,10 @@ async function xT(e, t, n = {}) {
|
|
|
16599
16612
|
}
|
|
16600
16613
|
//#endregion
|
|
16601
16614
|
//#region src/stories/step.ts
|
|
16602
|
-
function
|
|
16615
|
+
function wT(e, t) {
|
|
16603
16616
|
return new Map(Object.entries(e.entries).filter(([, e]) => !t || e.verified === !0).map(([e, t]) => [e, t.enrichment]));
|
|
16604
16617
|
}
|
|
16605
|
-
function
|
|
16618
|
+
function TT(e) {
|
|
16606
16619
|
try {
|
|
16607
16620
|
let t = JSON.parse(i(e, "utf-8"));
|
|
16608
16621
|
return t && typeof t.entries == "object" ? t : void 0;
|
|
@@ -16610,46 +16623,46 @@ function CT(e) {
|
|
|
16610
16623
|
return;
|
|
16611
16624
|
}
|
|
16612
16625
|
}
|
|
16613
|
-
async function
|
|
16626
|
+
async function ET(e) {
|
|
16614
16627
|
let { io: n, config: r, input: a } = e, o = (e, t = !1) => {
|
|
16615
16628
|
let r = `Story enrichment skipped: ${e}.\n`;
|
|
16616
16629
|
t ? n.out(r) : n.err(r);
|
|
16617
16630
|
};
|
|
16618
16631
|
try {
|
|
16619
16632
|
if (!r.stories.enabled) return;
|
|
16620
|
-
let s = Wp(a.design, a.annotations), { descriptors: l } =
|
|
16633
|
+
let s = Wp(a.design, a.annotations), { descriptors: l } = CC(s.design, { iconPages: s.iconPages }), u = lS[r.stories.target].fileExtension, d = MC(l, a.enrichment).filter((e) => {
|
|
16621
16634
|
if (r.stories.overwrite) return !0;
|
|
16622
16635
|
let t = G(e.name), n = q(r.paths.components, `${t}/${t}.stories.${u}`);
|
|
16623
16636
|
return !(a.existing?.exists(n) ?? !1);
|
|
16624
|
-
}), f = await (e.provider ??
|
|
16637
|
+
}), f = await (e.provider ?? Bw(e))();
|
|
16625
16638
|
if (f.ok === !1) return o(f.reason, f.quiet);
|
|
16626
|
-
let p = await
|
|
16639
|
+
let p = await CT(d, f.client, { previous: TT(e.cachePath) });
|
|
16627
16640
|
if (p.status === "skipped") return o(p.reason);
|
|
16628
16641
|
for (let e of p.warnings) n.err(`warning: ${e}\n`);
|
|
16629
16642
|
let m = JSON.stringify(p.cache, null, 2);
|
|
16630
16643
|
t(e.cachePath) && i(e.cachePath, "utf-8") === m || c(e.cachePath, m);
|
|
16631
16644
|
let { total: h, cached: g, fresh: _, failed: v } = p.stats;
|
|
16632
|
-
return n.out(`Story enrichment: ${h} component(s): ${_} proposed, ${g} cached${v > 0 ? `, ${v} without a proposal` : ""}.\n`),
|
|
16645
|
+
return n.out(`Story enrichment: ${h} component(s): ${_} proposed, ${g} cached${v > 0 ? `, ${v} without a proposal` : ""}.\n`), wT(p.cache, e.verifiedOnly ?? !1);
|
|
16633
16646
|
} catch (e) {
|
|
16634
16647
|
return o(e instanceof Error ? e.message : String(e));
|
|
16635
16648
|
}
|
|
16636
16649
|
}
|
|
16637
|
-
function
|
|
16638
|
-
let n =
|
|
16650
|
+
function DT(e, t = {}) {
|
|
16651
|
+
let n = TT(e);
|
|
16639
16652
|
if (!n) return;
|
|
16640
|
-
let r =
|
|
16653
|
+
let r = wT(n, t.verifiedOnly ?? !1);
|
|
16641
16654
|
return r.size > 0 ? r : void 0;
|
|
16642
16655
|
}
|
|
16643
16656
|
//#endregion
|
|
16644
16657
|
//#region src/stories/verify.ts
|
|
16645
|
-
var
|
|
16646
|
-
function
|
|
16658
|
+
var OT = ".syncline-verify", kT = 6e5;
|
|
16659
|
+
function AT(e, t = () => !0) {
|
|
16647
16660
|
return Object.entries(e.entries).flatMap(([e, n]) => t(n, e) ? n.enrichment.stories.flatMap((t) => {
|
|
16648
16661
|
let n = Bl(t.name);
|
|
16649
16662
|
return n ? [`${G(e)}/${n}`] : [];
|
|
16650
16663
|
}) : []);
|
|
16651
16664
|
}
|
|
16652
|
-
function
|
|
16665
|
+
function jT(e, t, n) {
|
|
16653
16666
|
let r = 0, i = 0, a = Object.fromEntries(Object.entries(e.entries).map(([e, a]) => {
|
|
16654
16667
|
if (!n(a, e)) return [e, a];
|
|
16655
16668
|
let o = [], s = [...a.rejected ?? []];
|
|
@@ -16679,7 +16692,7 @@ function kT(e, t, n) {
|
|
|
16679
16692
|
rejected: i
|
|
16680
16693
|
};
|
|
16681
16694
|
}
|
|
16682
|
-
var
|
|
16695
|
+
var MT = "\x1B", NT = (e) => e.replace(RegExp(`${MT}\\[[0-9;]*m`, "g"), ""), PT = "// @vitest-environment jsdom\nimport { readFileSync, writeFileSync } from 'node:fs';\nimport { composeStories, setProjectAnnotations } from '@storybook/react';\nimport { afterAll, it } from 'vitest';\n\nconst wanted = new Set<string>(\n JSON.parse(readFileSync(process.env['CLI_VERIFY_IN'] as string, 'utf8'))\n);\nconst results: Record<string, { ok: boolean; message?: string }> = {};\nconst previews = import.meta.glob('../.storybook/preview.{ts,tsx,js,jsx}', {\n eager: true,\n}) as Record<string, { default?: unknown }>;\nconst preview = Object.values(previews)[0]?.default;\nif (preview) setProjectAnnotations([preview as never]);\n\nconst modules = import.meta.glob('../**/*.stories.{ts,tsx,js,jsx}', {\n eager: true,\n}) as Record<string, object>;\n\nfor (const [path, mod] of Object.entries(modules)) {\n if (path.includes('node_modules')) continue;\n const folder = path.split('/').at(-2) as string;\n const composed = composeStories(mod as never) as Record<string, any>;\n for (const [name, story] of Object.entries(composed)) {\n const key = folder + '/' + name;\n if (!wanted.has(key)) continue;\n it(key, async () => {\n try {\n await story.run();\n results[key] = { ok: true };\n } catch (error) {\n results[key] = {\n ok: false,\n message: String((error as Error)?.message ?? error).slice(0, 400),\n };\n }\n }, 20000);\n }\n}\nafterAll(() =>\n writeFileSync(process.env['CLI_VERIFY_OUT'] as string, JSON.stringify(results))\n);\n", FT = (e) => `import { defineConfig, mergeConfig } from 'vite';
|
|
16683
16696
|
${e ? `import base from '${e}';` : "const base = {};"}
|
|
16684
16697
|
|
|
16685
16698
|
export default defineConfig((env) =>
|
|
@@ -16688,7 +16701,7 @@ export default defineConfig((env) =>
|
|
|
16688
16701
|
{
|
|
16689
16702
|
root: new URL('..', import.meta.url).pathname,
|
|
16690
16703
|
test: {
|
|
16691
|
-
include: ['${
|
|
16704
|
+
include: ['${OT}/*.verify.tsx'],
|
|
16692
16705
|
globals: true,
|
|
16693
16706
|
watch: false,
|
|
16694
16707
|
reporters: ['default'],
|
|
@@ -16697,7 +16710,7 @@ export default defineConfig((env) =>
|
|
|
16697
16710
|
}
|
|
16698
16711
|
)
|
|
16699
16712
|
);
|
|
16700
|
-
`,
|
|
16713
|
+
`, IT = async (e, n) => {
|
|
16701
16714
|
let a = [
|
|
16702
16715
|
"mts",
|
|
16703
16716
|
"ts",
|
|
@@ -16713,9 +16726,9 @@ export default defineConfig((env) =>
|
|
|
16713
16726
|
reason: "vitest is not installed (and jsdom, which the stories run in)"
|
|
16714
16727
|
};
|
|
16715
16728
|
}
|
|
16716
|
-
let l = d(e,
|
|
16729
|
+
let l = d(e, OT), u = d(l, "keys.json"), f = d(l, "results.json");
|
|
16717
16730
|
try {
|
|
16718
|
-
r(l, { recursive: !0 }), c(u, JSON.stringify(n)), c(d(l, "run.verify.tsx"),
|
|
16731
|
+
r(l, { recursive: !0 }), c(u, JSON.stringify(n)), c(d(l, "run.verify.tsx"), PT), c(d(l, "vitest.config.mts"), FT(a && `../${a}`));
|
|
16719
16732
|
let o = [];
|
|
16720
16733
|
if (await new Promise((t) => {
|
|
16721
16734
|
let n = g(process.execPath, [
|
|
@@ -16735,14 +16748,14 @@ export default defineConfig((env) =>
|
|
|
16735
16748
|
"pipe",
|
|
16736
16749
|
"pipe"
|
|
16737
16750
|
]
|
|
16738
|
-
}), r = setTimeout(() => n.kill(),
|
|
16751
|
+
}), r = setTimeout(() => n.kill(), kT);
|
|
16739
16752
|
n.stdout.on("data", (e) => o.push(String(e))), n.stderr.on("data", (e) => o.push(String(e))), n.on("close", () => {
|
|
16740
16753
|
clearTimeout(r), t();
|
|
16741
16754
|
}), n.on("error", () => {
|
|
16742
16755
|
clearTimeout(r), t();
|
|
16743
16756
|
});
|
|
16744
16757
|
}), !t(f)) {
|
|
16745
|
-
let e =
|
|
16758
|
+
let e = NT(o.join("")).split("\n").find((e) => /error|cannot|failed/i.test(e));
|
|
16746
16759
|
return {
|
|
16747
16760
|
ok: !1,
|
|
16748
16761
|
reason: `the stories could not be run${e ? ` (${e.trim().slice(0, 160)})` : ""}`
|
|
@@ -16761,10 +16774,10 @@ export default defineConfig((env) =>
|
|
|
16761
16774
|
};
|
|
16762
16775
|
//#endregion
|
|
16763
16776
|
//#region src/stories/verify-step.ts
|
|
16764
|
-
async function
|
|
16765
|
-
let { cwd: n, config: r, io: i, cachePath: a, generate: s } = e, l =
|
|
16777
|
+
async function LT(e) {
|
|
16778
|
+
let { cwd: n, config: r, io: i, cachePath: a, generate: s } = e, l = TT(a);
|
|
16766
16779
|
if (!l) return;
|
|
16767
|
-
let u = lS[r.stories.target].fileExtension, f = (e) => d(n, r.paths.components, G(e), `${G(e)}.stories.${u}`), p = new Map(Object.keys(l.entries).map((e) => [e, t(f(e))])), m = (e, t) => e.verified !== !0 && e.enrichment.stories.length > 0 && (r.stories.overwrite || p.get(t) === !1), h =
|
|
16780
|
+
let u = lS[r.stories.target].fileExtension, f = (e) => d(n, r.paths.components, G(e), `${G(e)}.stories.${u}`), p = new Map(Object.keys(l.entries).map((e) => [e, t(f(e))])), m = (e, t) => e.verified !== !0 && e.enrichment.stories.length > 0 && (r.stories.overwrite || p.get(t) === !1), h = AT(l, m);
|
|
16768
16781
|
if (h.length === 0) return;
|
|
16769
16782
|
let g = () => {
|
|
16770
16783
|
if (!r.stories.overwrite) for (let [e, t] of Object.entries(l.entries)) m(t, e) && o(f(e), { force: !0 });
|
|
@@ -16783,7 +16796,7 @@ async function FT(e) {
|
|
|
16783
16796
|
storiesUnverified: !0,
|
|
16784
16797
|
skipDependencies: !0
|
|
16785
16798
|
}, _) !== 0) return g(), v("the library could not be generated");
|
|
16786
|
-
let t = await (e.verifyRunner ??
|
|
16799
|
+
let t = await (e.verifyRunner ?? IT)(n, h);
|
|
16787
16800
|
if (t.ok === !1) return g(), await s({
|
|
16788
16801
|
cwd: n,
|
|
16789
16802
|
config: r,
|
|
@@ -16791,7 +16804,7 @@ async function FT(e) {
|
|
|
16791
16804
|
noEnrich: !0,
|
|
16792
16805
|
skipDependencies: !0
|
|
16793
16806
|
}, _), v(t.reason);
|
|
16794
|
-
let o =
|
|
16807
|
+
let o = jT(l, t.results, m);
|
|
16795
16808
|
return c(a, JSON.stringify(o.cache, null, 2)), i.out(`Story verification: ${o.passed} passed, ${o.rejected} rejected (they failed when run).\n`), g(), await s({
|
|
16796
16809
|
cwd: n,
|
|
16797
16810
|
config: r,
|
|
@@ -16808,14 +16821,14 @@ async function FT(e) {
|
|
|
16808
16821
|
}
|
|
16809
16822
|
//#endregion
|
|
16810
16823
|
//#region src/generate.ts
|
|
16811
|
-
async function
|
|
16824
|
+
async function RT({ cwd: e, config: t, check: n, verbose: r = !1, noEnrich: i = !1, ci: a = !1, accept: o, storiesUnverified: s = !1, skipDependencies: c = !1, verifyRunner: l, enrich: u, provider: f, runner: p }, m) {
|
|
16812
16825
|
if (!n && !i) {
|
|
16813
16826
|
let n = u?.env ?? process.env;
|
|
16814
|
-
await
|
|
16827
|
+
await Uw({
|
|
16815
16828
|
designPath: d(e, t.inputs.design),
|
|
16816
16829
|
enrichedPath: d(e, t.inputs.enriched),
|
|
16817
16830
|
annotationsPath: d(e, t.inputs.annotations),
|
|
16818
|
-
bridgeUrl:
|
|
16831
|
+
bridgeUrl: uw({
|
|
16819
16832
|
env: n,
|
|
16820
16833
|
configured: t.enrich.bridgeUrl,
|
|
16821
16834
|
baked: y
|
|
@@ -16828,7 +16841,7 @@ async function IT({ cwd: e, config: t, check: n, verbose: r = !1, noEnrich: i =
|
|
|
16828
16841
|
sleep: u?.sleep
|
|
16829
16842
|
});
|
|
16830
16843
|
}
|
|
16831
|
-
let h =
|
|
16844
|
+
let h = bw({
|
|
16832
16845
|
root: e,
|
|
16833
16846
|
designPath: t.inputs.design,
|
|
16834
16847
|
enrichedPath: t.inputs.enriched,
|
|
@@ -16837,7 +16850,7 @@ async function IT({ cwd: e, config: t, check: n, verbose: r = !1, noEnrich: i =
|
|
|
16837
16850
|
brandImage: t.theme.brand?.image
|
|
16838
16851
|
});
|
|
16839
16852
|
if (h.ok === !1) return m.err(`${h.error}\n`), 1;
|
|
16840
|
-
let g =
|
|
16853
|
+
let g = mw(e), _ = await kw({
|
|
16841
16854
|
design: h.input.design,
|
|
16842
16855
|
config: t,
|
|
16843
16856
|
cachePath: d(e, t.inputs.fonts),
|
|
@@ -16845,9 +16858,9 @@ async function IT({ cwd: e, config: t, check: n, verbose: r = !1, noEnrich: i =
|
|
|
16845
16858
|
io: m,
|
|
16846
16859
|
fetch: u?.fetch
|
|
16847
16860
|
});
|
|
16848
|
-
!n && !c && await
|
|
16861
|
+
!n && !c && await eT({
|
|
16849
16862
|
cwd: e,
|
|
16850
|
-
required: Ru(t,
|
|
16863
|
+
required: Ru(t, NC(h.input.design, t, _)),
|
|
16851
16864
|
install: t.dependencies.install,
|
|
16852
16865
|
libraryName: t.libraryName,
|
|
16853
16866
|
io: m,
|
|
@@ -16858,7 +16871,7 @@ async function IT({ cwd: e, config: t, check: n, verbose: r = !1, noEnrich: i =
|
|
|
16858
16871
|
let r = d(e, t.inputs.stories), a = t.enrichStories.verify && !s;
|
|
16859
16872
|
if (!n && !i) {
|
|
16860
16873
|
let n = u?.env ?? process.env;
|
|
16861
|
-
v = await
|
|
16874
|
+
v = await ET({
|
|
16862
16875
|
input: {
|
|
16863
16876
|
...h.input,
|
|
16864
16877
|
existing: g
|
|
@@ -16866,7 +16879,7 @@ async function IT({ cwd: e, config: t, check: n, verbose: r = !1, noEnrich: i =
|
|
|
16866
16879
|
config: t,
|
|
16867
16880
|
cachePath: r,
|
|
16868
16881
|
verifiedOnly: a,
|
|
16869
|
-
bridgeUrl:
|
|
16882
|
+
bridgeUrl: uw({
|
|
16870
16883
|
env: n,
|
|
16871
16884
|
configured: t.enrich.bridgeUrl,
|
|
16872
16885
|
baked: y
|
|
@@ -16877,25 +16890,25 @@ async function IT({ cwd: e, config: t, check: n, verbose: r = !1, noEnrich: i =
|
|
|
16877
16890
|
env: n,
|
|
16878
16891
|
fetch: u?.fetch,
|
|
16879
16892
|
sleep: u?.sleep
|
|
16880
|
-
}), v && t.enrichStories.verify && (await
|
|
16893
|
+
}), v && t.enrichStories.verify && (await LT({
|
|
16881
16894
|
cwd: e,
|
|
16882
16895
|
config: t,
|
|
16883
16896
|
cachePath: r,
|
|
16884
16897
|
io: m,
|
|
16885
16898
|
verifyRunner: l,
|
|
16886
|
-
generate:
|
|
16887
|
-
}), v =
|
|
16899
|
+
generate: RT
|
|
16900
|
+
}), v = DT(r, { verifiedOnly: a }));
|
|
16888
16901
|
}
|
|
16889
|
-
v ??=
|
|
16902
|
+
v ??= DT(r, { verifiedOnly: a });
|
|
16890
16903
|
}
|
|
16891
|
-
let b = await
|
|
16904
|
+
let b = await FC({
|
|
16892
16905
|
...h.input,
|
|
16893
16906
|
existing: g,
|
|
16894
16907
|
storyEnrichment: v,
|
|
16895
16908
|
fonts: _
|
|
16896
16909
|
}, t);
|
|
16897
|
-
|
|
16898
|
-
let x = [], S = await
|
|
16910
|
+
HT(b.diagnostics, r, m);
|
|
16911
|
+
let x = [], S = await nT(e, b.files, (e, t) => x.push({
|
|
16899
16912
|
path: e,
|
|
16900
16913
|
message: t
|
|
16901
16914
|
}));
|
|
@@ -16906,15 +16919,15 @@ async function IT({ cwd: e, config: t, check: n, verbose: r = !1, noEnrich: i =
|
|
|
16906
16919
|
let C = S, w = [], T;
|
|
16907
16920
|
if (t.merge.enabled) {
|
|
16908
16921
|
let r = u?.env ?? process.env;
|
|
16909
|
-
T = await
|
|
16922
|
+
T = await gT({
|
|
16910
16923
|
cwd: e,
|
|
16911
16924
|
files: S,
|
|
16912
16925
|
existing: g,
|
|
16913
16926
|
componentsDir: t.paths.components,
|
|
16914
16927
|
baseDir: t.merge.baseDir,
|
|
16915
16928
|
accept: o,
|
|
16916
|
-
resolver: !n && !i && t.merge.llm && t.merge.sendSource ?
|
|
16917
|
-
bridgeUrl:
|
|
16929
|
+
resolver: !n && !i && t.merge.llm && t.merge.sendSource ? yT({
|
|
16930
|
+
bridgeUrl: uw({
|
|
16918
16931
|
env: r,
|
|
16919
16932
|
configured: t.enrich.bridgeUrl,
|
|
16920
16933
|
baked: y
|
|
@@ -16934,20 +16947,20 @@ async function IT({ cwd: e, config: t, check: n, verbose: r = !1, noEnrich: i =
|
|
|
16934
16947
|
let t = g.read(e.path);
|
|
16935
16948
|
return t === null || e.policy === "overwrite" && t !== e.contents;
|
|
16936
16949
|
}), t = T?.conflicts ?? [];
|
|
16937
|
-
return t.length > 0 && m.err(
|
|
16950
|
+
return t.length > 0 && m.err(BT(t, !0)), e.length === 0 && t.length === 0 ? (m.out(`Up to date (${C.length} file(s) checked).\n`), 0) : (e.length === 0 || m.err(`${e.length} generated file(s) are out of date:\n${e.slice(0, 20).map((e) => ` ${e.path}`).join("\n")}${e.length > 20 ? `\n …and ${e.length - 20} more` : ""}\nRun \`syncline generate\` and commit the result.
|
|
16938
16951
|
`), 1);
|
|
16939
16952
|
}
|
|
16940
|
-
let E =
|
|
16941
|
-
return m.out(`Generated ${C.length} file(s): ${E.written.length -
|
|
16953
|
+
let E = hw(e, [...C, ...w]);
|
|
16954
|
+
return m.out(`Generated ${C.length} file(s): ${E.written.length - zT(E.written, w)} written, ${E.unchanged.length} unchanged, ${E.kept.length} kept (hand-editable).\n`), T && VT(T, m), 0;
|
|
16942
16955
|
}
|
|
16943
|
-
var
|
|
16944
|
-
function
|
|
16956
|
+
var zT = (e, t) => t.filter((t) => e.includes(t.path)).length;
|
|
16957
|
+
function BT(e, t) {
|
|
16945
16958
|
return `${e.length} component(s) have hand edits that could not be merged${t ? " (and are out of date)" : " (left as you wrote them)"}:\n` + e.map((e) => ` ${e.path}: ${e.reason}`).join("\n") + "\nResolve each by hand, then run `syncline generate --accept <path>` to record it.\n";
|
|
16946
16959
|
}
|
|
16947
|
-
function
|
|
16948
|
-
e.merged.length > 0 && t.out(`Merged your edits into ${e.merged.length} component(s).\n`), e.resolved.length > 0 && t.out(`Resolved ${e.resolved.length} conflict(s) with the merge service.\n`), e.conflicts.length > 0 && t.err(
|
|
16960
|
+
function VT(e, t) {
|
|
16961
|
+
e.merged.length > 0 && t.out(`Merged your edits into ${e.merged.length} component(s).\n`), e.resolved.length > 0 && t.out(`Resolved ${e.resolved.length} conflict(s) with the merge service.\n`), e.conflicts.length > 0 && t.err(BT(e.conflicts, !1));
|
|
16949
16962
|
}
|
|
16950
|
-
function
|
|
16963
|
+
function HT(e, t, n) {
|
|
16951
16964
|
if (e.length === 0) return;
|
|
16952
16965
|
if (t) {
|
|
16953
16966
|
for (let t of e) n.err(`warning [${t.phase}]${t.scope ? ` ${t.scope}` : ""}: ${t.message}\n`);
|
|
@@ -16959,12 +16972,12 @@ function BT(e, t, n) {
|
|
|
16959
16972
|
}
|
|
16960
16973
|
//#endregion
|
|
16961
16974
|
//#region src/commands/generate.ts
|
|
16962
|
-
var
|
|
16975
|
+
var UT = `Usage: syncline generate [options]
|
|
16963
16976
|
|
|
16964
16977
|
Generates the component library from the Figma export under .syncline/.
|
|
16965
16978
|
|
|
16966
16979
|
Options:
|
|
16967
|
-
--config <file> Config file (default: ${
|
|
16980
|
+
--config <file> Config file (default: ${LC}; every setting has a default)
|
|
16968
16981
|
--cwd <dir> Project root (default: the current directory)
|
|
16969
16982
|
--check Write nothing; exit 1 if the generated files are out of date
|
|
16970
16983
|
--verbose List every warning instead of a per-phase count
|
|
@@ -16976,7 +16989,7 @@ Options:
|
|
|
16976
16989
|
the proposed play() stories (replaces hand edits to those files)
|
|
16977
16990
|
-h, --help Show this help
|
|
16978
16991
|
`;
|
|
16979
|
-
function
|
|
16992
|
+
function WT(e) {
|
|
16980
16993
|
let t = {
|
|
16981
16994
|
check: !1,
|
|
16982
16995
|
verbose: !1,
|
|
@@ -17021,19 +17034,19 @@ function HT(e) {
|
|
|
17021
17034
|
case "--help":
|
|
17022
17035
|
t.help = !0;
|
|
17023
17036
|
break;
|
|
17024
|
-
default: throw Error(`Unknown option: ${e[n]}\n\n${
|
|
17037
|
+
default: throw Error(`Unknown option: ${e[n]}\n\n${UT}`);
|
|
17025
17038
|
}
|
|
17026
17039
|
}
|
|
17027
17040
|
return t;
|
|
17028
17041
|
}
|
|
17029
|
-
var
|
|
17042
|
+
var GT = {
|
|
17030
17043
|
name: "generate",
|
|
17031
17044
|
summary: "Generate the component library from .syncline/design.json",
|
|
17032
17045
|
async run({ args: e, io: t }) {
|
|
17033
|
-
let n =
|
|
17034
|
-
if (n.help) return t.out(
|
|
17035
|
-
let r = f(n.cwd ?? process.cwd()), i =
|
|
17036
|
-
return i.ok === !1 ? (t.err(`${i.error}\n`), 1) :
|
|
17046
|
+
let n = WT(e);
|
|
17047
|
+
if (n.help) return t.out(UT), 0;
|
|
17048
|
+
let r = f(n.cwd ?? process.cwd()), i = Aw(r, n.config);
|
|
17049
|
+
return i.ok === !1 ? (t.err(`${i.error}\n`), 1) : RT({
|
|
17037
17050
|
cwd: r,
|
|
17038
17051
|
config: n.overwriteStories ? {
|
|
17039
17052
|
...i.config,
|
|
@@ -17049,14 +17062,14 @@ var UT = {
|
|
|
17049
17062
|
accept: n.accept
|
|
17050
17063
|
}, t);
|
|
17051
17064
|
}
|
|
17052
|
-
},
|
|
17065
|
+
}, KT = 8, qT = 40, JT = (e) => ({ text: JSON.stringify(e, null, 2) }), YT = (e) => ({
|
|
17053
17066
|
text: e,
|
|
17054
17067
|
isError: !0
|
|
17055
17068
|
});
|
|
17056
|
-
function
|
|
17069
|
+
function XT(e) {
|
|
17057
17070
|
return typeof e == "string" && e.trim() ? e.trim() : void 0;
|
|
17058
17071
|
}
|
|
17059
|
-
function
|
|
17072
|
+
function ZT(e) {
|
|
17060
17073
|
return {
|
|
17061
17074
|
name: e.name,
|
|
17062
17075
|
...e.group && { group: e.group },
|
|
@@ -17064,7 +17077,7 @@ function YT(e) {
|
|
|
17064
17077
|
...e.archetype && { widget: e.archetype.kind }
|
|
17065
17078
|
};
|
|
17066
17079
|
}
|
|
17067
|
-
function
|
|
17080
|
+
function QT(e, t, n) {
|
|
17068
17081
|
let r = e.toLowerCase().split(/\s+/).filter(Boolean), i = t.toLowerCase(), a = n.filter(Boolean).join(" ").toLowerCase(), o = 0;
|
|
17069
17082
|
for (let e of r) if (i === e) o += 10;
|
|
17070
17083
|
else if (i.includes(e)) o += 5;
|
|
@@ -17072,7 +17085,7 @@ function XT(e, t, n) {
|
|
|
17072
17085
|
else return 0;
|
|
17073
17086
|
return o;
|
|
17074
17087
|
}
|
|
17075
|
-
var
|
|
17088
|
+
var $T = [
|
|
17076
17089
|
{
|
|
17077
17090
|
name: "list_components",
|
|
17078
17091
|
description: "List the library’s components (name, group, one-line description), optionally one group. Start here when you do not know what exists.",
|
|
@@ -17084,10 +17097,10 @@ var ZT = [
|
|
|
17084
17097
|
} }
|
|
17085
17098
|
},
|
|
17086
17099
|
call({ manifest: e }, t) {
|
|
17087
|
-
let n =
|
|
17088
|
-
return
|
|
17100
|
+
let n = XT(t.group)?.toLowerCase(), r = e.components.filter((e) => !n || e.group?.toLowerCase() === n);
|
|
17101
|
+
return JT({
|
|
17089
17102
|
groups: [...new Set(e.components.map((e) => e.group ?? "Components"))],
|
|
17090
|
-
components: r.map(
|
|
17103
|
+
components: r.map(ZT)
|
|
17091
17104
|
});
|
|
17092
17105
|
}
|
|
17093
17106
|
},
|
|
@@ -17100,21 +17113,21 @@ var ZT = [
|
|
|
17100
17113
|
required: ["query"]
|
|
17101
17114
|
},
|
|
17102
17115
|
call({ manifest: e }, t) {
|
|
17103
|
-
let n =
|
|
17104
|
-
if (!n) return
|
|
17116
|
+
let n = XT(t.query);
|
|
17117
|
+
if (!n) return YT("query is required");
|
|
17105
17118
|
let r = e.components.map((e) => ({
|
|
17106
17119
|
component: e,
|
|
17107
|
-
score:
|
|
17120
|
+
score: QT(n, e.name, [
|
|
17108
17121
|
e.description,
|
|
17109
17122
|
e.group,
|
|
17110
17123
|
e.archetype?.kind,
|
|
17111
17124
|
e.archetype?.summary,
|
|
17112
17125
|
...e.props.map((e) => e.name)
|
|
17113
17126
|
])
|
|
17114
|
-
})).filter((e) => e.score > 0).sort((e, t) => t.score - e.score || e.component.name.localeCompare(t.component.name)).slice(0,
|
|
17115
|
-
return
|
|
17127
|
+
})).filter((e) => e.score > 0).sort((e, t) => t.score - e.score || e.component.name.localeCompare(t.component.name)).slice(0, KT);
|
|
17128
|
+
return JT({
|
|
17116
17129
|
query: n,
|
|
17117
|
-
matches: r.map((e) =>
|
|
17130
|
+
matches: r.map((e) => ZT(e.component)),
|
|
17118
17131
|
hint: r.length ? "Call get_component for the full contract of one of these." : "No match: try list_components, or build it from existing components and tokens."
|
|
17119
17132
|
});
|
|
17120
17133
|
}
|
|
@@ -17128,15 +17141,15 @@ var ZT = [
|
|
|
17128
17141
|
required: ["name"]
|
|
17129
17142
|
},
|
|
17130
17143
|
call({ manifest: e }, t) {
|
|
17131
|
-
let n =
|
|
17132
|
-
if (!n) return
|
|
17144
|
+
let n = XT(t.name);
|
|
17145
|
+
if (!n) return YT("name is required");
|
|
17133
17146
|
let r = e.components.find((e) => e.name.toLowerCase() === n.toLowerCase());
|
|
17134
17147
|
if (!r) {
|
|
17135
17148
|
let t = e.components.filter((e) => e.name.toLowerCase().includes(n.toLowerCase())).map((e) => e.name).slice(0, 5);
|
|
17136
|
-
return
|
|
17149
|
+
return YT(`No component named "${n}".${t.length ? ` Did you mean: ${t.join(", ")}?` : " Use search_components."}`);
|
|
17137
17150
|
}
|
|
17138
17151
|
let i = Object.fromEntries(r.props.flatMap((t) => t.enum ? [[t.enum, e.enums[t.enum]]] : []));
|
|
17139
|
-
return
|
|
17152
|
+
return JT({
|
|
17140
17153
|
import: `import { ${r.name} } from '${e.library.package ?? "<package>"}'`,
|
|
17141
17154
|
component: r,
|
|
17142
17155
|
enums: i,
|
|
@@ -17168,28 +17181,28 @@ var ZT = [
|
|
|
17168
17181
|
}
|
|
17169
17182
|
},
|
|
17170
17183
|
call({ tokens: e }, t) {
|
|
17171
|
-
let n =
|
|
17184
|
+
let n = XT(t.query), r = XT(t.kind), i = e.tokens.filter((e) => !r || e.kind === r).map((e) => ({
|
|
17172
17185
|
token: e,
|
|
17173
|
-
score: n ?
|
|
17186
|
+
score: n ? QT(n, e.name, [
|
|
17174
17187
|
e.description,
|
|
17175
17188
|
e.collection,
|
|
17176
17189
|
e.kind
|
|
17177
17190
|
]) : 1
|
|
17178
17191
|
})).filter((e) => e.score > 0).sort((e, t) => t.score - e.score || e.token.name.localeCompare(t.token.name));
|
|
17179
|
-
return
|
|
17192
|
+
return JT({
|
|
17180
17193
|
total: i.length,
|
|
17181
17194
|
modes: e.modes,
|
|
17182
|
-
tokens: i.slice(0,
|
|
17183
|
-
...i.length >
|
|
17195
|
+
tokens: i.slice(0, qT).map((e) => e.token),
|
|
17196
|
+
...i.length > qT && { hint: `Showing ${qT} of ${i.length}; narrow with query or kind.` }
|
|
17184
17197
|
});
|
|
17185
17198
|
}
|
|
17186
17199
|
}
|
|
17187
|
-
],
|
|
17200
|
+
], eE = "2025-06-18", tE = "Design-system lookup. Before writing UI, call search_components or list_components; use get_component for exact props and a compiling example; use search_tokens for colours, spacing and type instead of raw values. Read each component’s `archetype.notCovered` before assuming a feature.", nE = {
|
|
17188
17201
|
parse: -32700,
|
|
17189
17202
|
method: -32601,
|
|
17190
17203
|
params: -32602
|
|
17191
17204
|
};
|
|
17192
|
-
function
|
|
17205
|
+
function rE(e) {
|
|
17193
17206
|
let t = (e, t) => JSON.stringify({
|
|
17194
17207
|
jsonrpc: "2.0",
|
|
17195
17208
|
id: e,
|
|
@@ -17207,29 +17220,29 @@ function tE(e) {
|
|
|
17207
17220
|
try {
|
|
17208
17221
|
i = JSON.parse(r);
|
|
17209
17222
|
} catch {
|
|
17210
|
-
return n(null,
|
|
17223
|
+
return n(null, nE.parse, "Parse error");
|
|
17211
17224
|
}
|
|
17212
|
-
if (typeof i != "object" || !i) return n(null,
|
|
17225
|
+
if (typeof i != "object" || !i) return n(null, nE.parse, "Parse error");
|
|
17213
17226
|
let { id: a, method: o, params: s = {} } = i, c = a === void 0;
|
|
17214
17227
|
switch (o) {
|
|
17215
17228
|
case "initialize": return t(a, {
|
|
17216
|
-
protocolVersion: typeof s.protocolVersion == "string" ? s.protocolVersion :
|
|
17229
|
+
protocolVersion: typeof s.protocolVersion == "string" ? s.protocolVersion : eE,
|
|
17217
17230
|
capabilities: { tools: {} },
|
|
17218
17231
|
serverInfo: {
|
|
17219
17232
|
name: "syncline",
|
|
17220
17233
|
version: b
|
|
17221
17234
|
},
|
|
17222
|
-
instructions:
|
|
17235
|
+
instructions: tE
|
|
17223
17236
|
});
|
|
17224
17237
|
case "ping": return t(a, {});
|
|
17225
|
-
case "tools/list": return t(a, { tools:
|
|
17238
|
+
case "tools/list": return t(a, { tools: $T.map(({ name: e, description: t, inputSchema: n }) => ({
|
|
17226
17239
|
name: e,
|
|
17227
17240
|
description: t,
|
|
17228
17241
|
inputSchema: n
|
|
17229
17242
|
})) });
|
|
17230
17243
|
case "tools/call": {
|
|
17231
|
-
let r =
|
|
17232
|
-
if (!r) return n(a,
|
|
17244
|
+
let r = $T.find((e) => e.name === s.name);
|
|
17245
|
+
if (!r) return n(a, nE.params, `Unknown tool: ${String(s.name)}`);
|
|
17233
17246
|
let i = typeof s.arguments == "object" && s.arguments !== null ? s.arguments : {};
|
|
17234
17247
|
try {
|
|
17235
17248
|
let n = r.call(e, i);
|
|
@@ -17250,13 +17263,13 @@ function tE(e) {
|
|
|
17250
17263
|
});
|
|
17251
17264
|
}
|
|
17252
17265
|
}
|
|
17253
|
-
default: return c ? null : n(a,
|
|
17266
|
+
default: return c ? null : n(a, nE.method, `Method not found: ${String(o)}`);
|
|
17254
17267
|
}
|
|
17255
17268
|
} };
|
|
17256
17269
|
}
|
|
17257
17270
|
//#endregion
|
|
17258
17271
|
//#region src/commands/mcp.ts
|
|
17259
|
-
var
|
|
17272
|
+
var iE = `Usage: syncline mcp [options]
|
|
17260
17273
|
|
|
17261
17274
|
Serves the design system to an AI agent over MCP (stdio): search and read
|
|
17262
17275
|
components, search tokens. Reads what \`syncline generate\` wrote when \`agent.enabled\`
|
|
@@ -17265,27 +17278,27 @@ is set (agent/components.json, agent/tokens.json). Register it with your agent:
|
|
|
17265
17278
|
claude mcp add design-system -- npx @syncline-design/cli mcp
|
|
17266
17279
|
|
|
17267
17280
|
Options:
|
|
17268
|
-
--config <file> Config file (default: ${
|
|
17281
|
+
--config <file> Config file (default: ${LC})
|
|
17269
17282
|
--cwd <dir> Project root (default: the current directory)
|
|
17270
17283
|
-h, --help Show this help
|
|
17271
|
-
`,
|
|
17284
|
+
`, aE = {
|
|
17272
17285
|
name: "mcp",
|
|
17273
17286
|
summary: "Serve the design system to an AI agent (MCP, stdio)",
|
|
17274
17287
|
async run({ args: e, io: n }) {
|
|
17275
17288
|
let r = process.cwd(), a;
|
|
17276
17289
|
for (let t = 0; t < e.length; t++) {
|
|
17277
|
-
if (e[t] === "-h" || e[t] === "--help") return n.out(
|
|
17290
|
+
if (e[t] === "-h" || e[t] === "--help") return n.out(iE), 0;
|
|
17278
17291
|
if (e[t] === "--cwd" && e[t + 1]) r = f(e[++t]);
|
|
17279
17292
|
else if (e[t] === "--config" && e[t + 1]) a = e[++t];
|
|
17280
|
-
else return n.err(`Unknown option: ${e[t]}\n\n${
|
|
17293
|
+
else return n.err(`Unknown option: ${e[t]}\n\n${iE}`), 1;
|
|
17281
17294
|
}
|
|
17282
|
-
let o =
|
|
17295
|
+
let o = Aw(r, a);
|
|
17283
17296
|
if (o.ok === !1) return n.err(`${o.error}\n`), 1;
|
|
17284
17297
|
let s = d(r, o.config.agent.dir), c = d(s, "components.json"), l = d(s, "tokens.json");
|
|
17285
|
-
if (!t(c) || !t(l)) return n.err(`No agent files in ${s}. Set "agent": { "enabled": true } in ${
|
|
17298
|
+
if (!t(c) || !t(l)) return n.err(`No agent files in ${s}. Set "agent": { "enabled": true } in ${LC} and run \`syncline generate\`.\n`), 1;
|
|
17286
17299
|
let u;
|
|
17287
17300
|
try {
|
|
17288
|
-
u =
|
|
17301
|
+
u = rE({
|
|
17289
17302
|
manifest: JSON.parse(i(c, "utf-8")),
|
|
17290
17303
|
tokens: JSON.parse(i(l, "utf-8"))
|
|
17291
17304
|
});
|
|
@@ -17299,7 +17312,7 @@ Options:
|
|
|
17299
17312
|
t !== null && n.out(`${t}\n`);
|
|
17300
17313
|
}), await new Promise((e) => p.on("close", e)), 0;
|
|
17301
17314
|
}
|
|
17302
|
-
},
|
|
17315
|
+
}, oE = Uint8Array, sE = Uint16Array, cE = Int32Array, lE = new oE([
|
|
17303
17316
|
0,
|
|
17304
17317
|
0,
|
|
17305
17318
|
0,
|
|
@@ -17332,7 +17345,7 @@ Options:
|
|
|
17332
17345
|
0,
|
|
17333
17346
|
0,
|
|
17334
17347
|
0
|
|
17335
|
-
]),
|
|
17348
|
+
]), uE = new oE([
|
|
17336
17349
|
0,
|
|
17337
17350
|
0,
|
|
17338
17351
|
0,
|
|
@@ -17365,7 +17378,7 @@ Options:
|
|
|
17365
17378
|
13,
|
|
17366
17379
|
0,
|
|
17367
17380
|
0
|
|
17368
|
-
]),
|
|
17381
|
+
]), dE = new oE([
|
|
17369
17382
|
16,
|
|
17370
17383
|
17,
|
|
17371
17384
|
18,
|
|
@@ -17385,42 +17398,42 @@ Options:
|
|
|
17385
17398
|
14,
|
|
17386
17399
|
1,
|
|
17387
17400
|
15
|
|
17388
|
-
]),
|
|
17389
|
-
for (var n = new
|
|
17390
|
-
for (var i = new
|
|
17401
|
+
]), fE = function(e, t) {
|
|
17402
|
+
for (var n = new sE(31), r = 0; r < 31; ++r) n[r] = t += 1 << e[r - 1];
|
|
17403
|
+
for (var i = new cE(n[30]), r = 1; r < 30; ++r) for (var a = n[r]; a < n[r + 1]; ++a) i[a] = a - n[r] << 5 | r;
|
|
17391
17404
|
return {
|
|
17392
17405
|
b: n,
|
|
17393
17406
|
r: i
|
|
17394
17407
|
};
|
|
17395
|
-
},
|
|
17396
|
-
|
|
17397
|
-
var
|
|
17398
|
-
|
|
17399
|
-
for (var
|
|
17400
|
-
var
|
|
17401
|
-
|
|
17402
|
-
}
|
|
17403
|
-
for (var
|
|
17404
|
-
for (var r = e.length, i = 0, a = new
|
|
17405
|
-
var o = new
|
|
17408
|
+
}, pE = fE(lE, 2), mE = pE.b, hE = pE.r;
|
|
17409
|
+
mE[28] = 258, hE[258] = 28;
|
|
17410
|
+
var gE = fE(uE, 0);
|
|
17411
|
+
gE.b;
|
|
17412
|
+
for (var _E = gE.r, vE = new sE(32768), $ = 0; $ < 32768; ++$) {
|
|
17413
|
+
var yE = ($ & 43690) >> 1 | ($ & 21845) << 1;
|
|
17414
|
+
yE = (yE & 52428) >> 2 | (yE & 13107) << 2, yE = (yE & 61680) >> 4 | (yE & 3855) << 4, vE[$] = ((yE & 65280) >> 8 | (yE & 255) << 8) >> 1;
|
|
17415
|
+
}
|
|
17416
|
+
for (var bE = (function(e, t, n) {
|
|
17417
|
+
for (var r = e.length, i = 0, a = new sE(t); i < r; ++i) e[i] && ++a[e[i] - 1];
|
|
17418
|
+
var o = new sE(t);
|
|
17406
17419
|
for (i = 1; i < t; ++i) o[i] = o[i - 1] + a[i - 1] << 1;
|
|
17407
17420
|
var s;
|
|
17408
17421
|
if (n) {
|
|
17409
|
-
s = new
|
|
17422
|
+
s = new sE(1 << t);
|
|
17410
17423
|
var c = 15 - t;
|
|
17411
|
-
for (i = 0; i < r; ++i) if (e[i]) for (var l = i << 4 | e[i], u = t - e[i], d = o[e[i] - 1]++ << u, f = d | (1 << u) - 1; d <= f; ++d) s[
|
|
17412
|
-
} else for (s = new
|
|
17424
|
+
for (i = 0; i < r; ++i) if (e[i]) for (var l = i << 4 | e[i], u = t - e[i], d = o[e[i] - 1]++ << u, f = d | (1 << u) - 1; d <= f; ++d) s[vE[d] >> c] = l;
|
|
17425
|
+
} else for (s = new sE(r), i = 0; i < r; ++i) e[i] && (s[i] = vE[o[e[i] - 1]++] >> 15 - e[i]);
|
|
17413
17426
|
return s;
|
|
17414
|
-
}),
|
|
17415
|
-
for (var $ = 144; $ < 256; ++$)
|
|
17416
|
-
for (var $ = 256; $ < 280; ++$)
|
|
17417
|
-
for (var $ = 280; $ < 288; ++$)
|
|
17418
|
-
for (var
|
|
17419
|
-
var
|
|
17427
|
+
}), xE = new oE(288), $ = 0; $ < 144; ++$) xE[$] = 8;
|
|
17428
|
+
for (var $ = 144; $ < 256; ++$) xE[$] = 9;
|
|
17429
|
+
for (var $ = 256; $ < 280; ++$) xE[$] = 7;
|
|
17430
|
+
for (var $ = 280; $ < 288; ++$) xE[$] = 8;
|
|
17431
|
+
for (var SE = new oE(32), $ = 0; $ < 32; ++$) SE[$] = 5;
|
|
17432
|
+
var CE = /*#__PURE__*/ bE(xE, 9, 0), wE = /*#__PURE__*/ bE(SE, 5, 0), TE = function(e) {
|
|
17420
17433
|
return (e + 7) / 8 | 0;
|
|
17421
|
-
},
|
|
17422
|
-
return (t == null || t < 0) && (t = 0), (n == null || n > e.length) && (n = e.length), new
|
|
17423
|
-
},
|
|
17434
|
+
}, EE = function(e, t, n) {
|
|
17435
|
+
return (t == null || t < 0) && (t = 0), (n == null || n > e.length) && (n = e.length), new oE(e.subarray(t, n));
|
|
17436
|
+
}, DE = [
|
|
17424
17437
|
"unexpected EOF",
|
|
17425
17438
|
"invalid block type",
|
|
17426
17439
|
"invalid length/literal",
|
|
@@ -17435,30 +17448,30 @@ var xE = /*#__PURE__*/ vE(yE, 9, 0), SE = /*#__PURE__*/ vE(bE, 5, 0), CE = funct
|
|
|
17435
17448
|
"filename too long",
|
|
17436
17449
|
"stream finishing",
|
|
17437
17450
|
"invalid zip data"
|
|
17438
|
-
],
|
|
17439
|
-
var r = Error(t ||
|
|
17440
|
-
if (r.code = e, Error.captureStackTrace && Error.captureStackTrace(r,
|
|
17451
|
+
], OE = function(e, t, n) {
|
|
17452
|
+
var r = Error(t || DE[e]);
|
|
17453
|
+
if (r.code = e, Error.captureStackTrace && Error.captureStackTrace(r, OE), !n) throw r;
|
|
17441
17454
|
return r;
|
|
17442
|
-
},
|
|
17455
|
+
}, kE = function(e, t, n) {
|
|
17443
17456
|
n <<= t & 7;
|
|
17444
17457
|
var r = t / 8 | 0;
|
|
17445
17458
|
e[r] |= n, e[r + 1] |= n >> 8;
|
|
17446
|
-
},
|
|
17459
|
+
}, AE = function(e, t, n) {
|
|
17447
17460
|
n <<= t & 7;
|
|
17448
17461
|
var r = t / 8 | 0;
|
|
17449
17462
|
e[r] |= n, e[r + 1] |= n >> 8, e[r + 2] |= n >> 16;
|
|
17450
|
-
},
|
|
17463
|
+
}, jE = function(e, t) {
|
|
17451
17464
|
for (var n = [], r = 0; r < e.length; ++r) e[r] && n.push({
|
|
17452
17465
|
s: r,
|
|
17453
17466
|
f: e[r]
|
|
17454
17467
|
});
|
|
17455
17468
|
var i = n.length, a = n.slice();
|
|
17456
17469
|
if (!i) return {
|
|
17457
|
-
t:
|
|
17470
|
+
t: RE,
|
|
17458
17471
|
l: 0
|
|
17459
17472
|
};
|
|
17460
17473
|
if (i == 1) {
|
|
17461
|
-
var o = new
|
|
17474
|
+
var o = new oE(n[0].s + 1);
|
|
17462
17475
|
return o[n[0].s] = 1, {
|
|
17463
17476
|
t: o,
|
|
17464
17477
|
l: 1
|
|
@@ -17483,7 +17496,7 @@ var xE = /*#__PURE__*/ vE(yE, 9, 0), SE = /*#__PURE__*/ vE(bE, 5, 0), CE = funct
|
|
|
17483
17496
|
r: c
|
|
17484
17497
|
};
|
|
17485
17498
|
for (var f = a[0].s, r = 1; r < i; ++r) a[r].s > f && (f = a[r].s);
|
|
17486
|
-
var p = new
|
|
17499
|
+
var p = new sE(f + 1), m = ME(n[u - 1], p, 0);
|
|
17487
17500
|
if (m > t) {
|
|
17488
17501
|
var r = 0, h = 0, g = m - t, _ = 1 << g;
|
|
17489
17502
|
for (a.sort(function(e, t) {
|
|
@@ -17504,14 +17517,14 @@ var xE = /*#__PURE__*/ vE(yE, 9, 0), SE = /*#__PURE__*/ vE(bE, 5, 0), CE = funct
|
|
|
17504
17517
|
m = t;
|
|
17505
17518
|
}
|
|
17506
17519
|
return {
|
|
17507
|
-
t: new
|
|
17520
|
+
t: new oE(p),
|
|
17508
17521
|
l: m
|
|
17509
17522
|
};
|
|
17510
|
-
},
|
|
17511
|
-
return e.s == -1 ? Math.max(
|
|
17512
|
-
},
|
|
17523
|
+
}, ME = function(e, t, n) {
|
|
17524
|
+
return e.s == -1 ? Math.max(ME(e.l, t, n + 1), ME(e.r, t, n + 1)) : t[e.s] = n;
|
|
17525
|
+
}, NE = function(e) {
|
|
17513
17526
|
for (var t = e.length; t && !e[--t];);
|
|
17514
|
-
for (var n = new
|
|
17527
|
+
for (var n = new sE(++t), r = 0, i = e[0], a = 1, o = function(e) {
|
|
17515
17528
|
n[r++] = e;
|
|
17516
17529
|
}, s = 1; s <= t; ++s) if (e[s] == i && s != t) ++a;
|
|
17517
17530
|
else {
|
|
@@ -17529,44 +17542,44 @@ var xE = /*#__PURE__*/ vE(yE, 9, 0), SE = /*#__PURE__*/ vE(bE, 5, 0), CE = funct
|
|
|
17529
17542
|
c: n.subarray(0, r),
|
|
17530
17543
|
n: t
|
|
17531
17544
|
};
|
|
17532
|
-
},
|
|
17545
|
+
}, PE = function(e, t) {
|
|
17533
17546
|
for (var n = 0, r = 0; r < t.length; ++r) n += e[r] * t[r];
|
|
17534
17547
|
return n;
|
|
17535
|
-
},
|
|
17536
|
-
var r = n.length, i =
|
|
17548
|
+
}, FE = function(e, t, n) {
|
|
17549
|
+
var r = n.length, i = TE(t + 2);
|
|
17537
17550
|
e[i] = r & 255, e[i + 1] = r >> 8, e[i + 2] = e[i] ^ 255, e[i + 3] = e[i + 1] ^ 255;
|
|
17538
17551
|
for (var a = 0; a < r; ++a) e[i + a + 4] = n[a];
|
|
17539
17552
|
return (i + 4 + r) * 8;
|
|
17540
|
-
},
|
|
17541
|
-
|
|
17542
|
-
for (var d =
|
|
17553
|
+
}, IE = function(e, t, n, r, i, a, o, s, c, l, u) {
|
|
17554
|
+
kE(t, u++, n), ++i[256];
|
|
17555
|
+
for (var d = jE(i, 15), f = d.t, p = d.l, m = jE(a, 15), h = m.t, g = m.l, _ = NE(f), v = _.c, y = _.n, b = NE(h), x = b.c, S = b.n, C = new sE(19), w = 0; w < v.length; ++w) ++C[v[w] & 31];
|
|
17543
17556
|
for (var w = 0; w < x.length; ++w) ++C[x[w] & 31];
|
|
17544
|
-
for (var T =
|
|
17545
|
-
var ne = l + 5 << 3, re =
|
|
17546
|
-
if (c >= 0 && ne <= re && ne <= D) return
|
|
17557
|
+
for (var T = jE(C, 7), E = T.t, ee = T.l, te = 19; te > 4 && !E[dE[te - 1]]; --te);
|
|
17558
|
+
var ne = l + 5 << 3, re = PE(i, xE) + PE(a, SE) + o, D = PE(i, f) + PE(a, h) + o + 14 + 3 * te + PE(C, E) + 2 * C[16] + 3 * C[17] + 7 * C[18];
|
|
17559
|
+
if (c >= 0 && ne <= re && ne <= D) return FE(t, u, e.subarray(c, c + l));
|
|
17547
17560
|
var ie, O, ae, oe;
|
|
17548
|
-
if (
|
|
17549
|
-
ie =
|
|
17550
|
-
var se =
|
|
17551
|
-
|
|
17552
|
-
for (var w = 0; w < te; ++w)
|
|
17561
|
+
if (kE(t, u, 1 + (D < re)), u += 2, D < re) {
|
|
17562
|
+
ie = bE(f, p, 0), O = f, ae = bE(h, g, 0), oe = h;
|
|
17563
|
+
var se = bE(E, ee, 0);
|
|
17564
|
+
kE(t, u, y - 257), kE(t, u + 5, S - 1), kE(t, u + 10, te - 4), u += 14;
|
|
17565
|
+
for (var w = 0; w < te; ++w) kE(t, u + 3 * w, E[dE[w]]);
|
|
17553
17566
|
u += 3 * te;
|
|
17554
17567
|
for (var ce = [v, x], le = 0; le < 2; ++le) for (var ue = ce[le], w = 0; w < ue.length; ++w) {
|
|
17555
17568
|
var de = ue[w] & 31;
|
|
17556
|
-
|
|
17569
|
+
kE(t, u, se[de]), u += E[de], de > 15 && (kE(t, u, ue[w] >> 5 & 127), u += ue[w] >> 12);
|
|
17557
17570
|
}
|
|
17558
|
-
} else ie =
|
|
17571
|
+
} else ie = CE, O = xE, ae = wE, oe = SE;
|
|
17559
17572
|
for (var w = 0; w < s; ++w) {
|
|
17560
17573
|
var fe = r[w];
|
|
17561
17574
|
if (fe > 255) {
|
|
17562
17575
|
var de = fe >> 18 & 31;
|
|
17563
|
-
|
|
17576
|
+
AE(t, u, ie[de + 257]), u += O[de + 257], de > 7 && (kE(t, u, fe >> 23 & 31), u += lE[de]);
|
|
17564
17577
|
var pe = fe & 31;
|
|
17565
|
-
|
|
17566
|
-
} else
|
|
17578
|
+
AE(t, u, ae[pe]), u += oe[pe], pe > 3 && (AE(t, u, fe >> 5 & 8191), u += uE[pe]);
|
|
17579
|
+
} else AE(t, u, ie[fe]), u += O[fe];
|
|
17567
17580
|
}
|
|
17568
|
-
return
|
|
17569
|
-
},
|
|
17581
|
+
return AE(t, u, ie[256]), u + O[256];
|
|
17582
|
+
}, LE = /*#__PURE__*/ new cE([
|
|
17570
17583
|
65540,
|
|
17571
17584
|
131080,
|
|
17572
17585
|
131088,
|
|
@@ -17576,18 +17589,18 @@ var xE = /*#__PURE__*/ vE(yE, 9, 0), SE = /*#__PURE__*/ vE(bE, 5, 0), CE = funct
|
|
|
17576
17589
|
1048832,
|
|
17577
17590
|
2114560,
|
|
17578
17591
|
2117632
|
|
17579
|
-
]),
|
|
17580
|
-
var o = a.z || e.length, s = new
|
|
17592
|
+
]), RE = /*#__PURE__*/ new oE(0), zE = function(e, t, n, r, i, a) {
|
|
17593
|
+
var o = a.z || e.length, s = new oE(r + o + 5 * (1 + Math.ceil(o / 7e3)) + i), c = s.subarray(r, s.length - i), l = a.l, u = (a.r || 0) & 7;
|
|
17581
17594
|
if (t) {
|
|
17582
17595
|
u && (c[0] = a.r >> 3);
|
|
17583
|
-
for (var d =
|
|
17596
|
+
for (var d = LE[t - 1], f = d >> 13, p = d & 8191, m = (1 << n) - 1, h = a.p || new sE(32768), g = a.h || new sE(m + 1), _ = Math.ceil(n / 3), v = 2 * _, y = function(t) {
|
|
17584
17597
|
return (e[t] ^ e[t + 1] << _ ^ e[t + 2] << v) & m;
|
|
17585
|
-
}, b = new
|
|
17598
|
+
}, b = new cE(25e3), x = new sE(288), S = new sE(32), C = 0, w = 0, T = a.i || 0, E = 0, ee = a.w || 0, te = 0; T + 2 < o; ++T) {
|
|
17586
17599
|
var ne = y(T), re = T & 32767, D = g[ne];
|
|
17587
17600
|
if (h[re] = D, g[ne] = re, ee <= T) {
|
|
17588
17601
|
var ie = o - T;
|
|
17589
17602
|
if ((C > 7e3 || E > 24576) && (ie > 423 || !l)) {
|
|
17590
|
-
u =
|
|
17603
|
+
u = IE(e, c, 0, b, x, S, w, E, te, T - te, u), E = C = w = 0, te = T;
|
|
17591
17604
|
for (var O = 0; O < 286; ++O) x[O] = 0;
|
|
17592
17605
|
for (var O = 0; O < 30; ++O) S[O] = 0;
|
|
17593
17606
|
}
|
|
@@ -17606,112 +17619,112 @@ var xE = /*#__PURE__*/ vE(yE, 9, 0), SE = /*#__PURE__*/ vE(bE, 5, 0), CE = funct
|
|
|
17606
17619
|
re = D, D = h[re], ce += re - D & 32767;
|
|
17607
17620
|
}
|
|
17608
17621
|
if (oe) {
|
|
17609
|
-
b[E++] = 268435456 |
|
|
17610
|
-
var _e =
|
|
17611
|
-
w +=
|
|
17622
|
+
b[E++] = 268435456 | hE[ae] << 18 | _E[oe];
|
|
17623
|
+
var _e = hE[ae] & 31, ve = _E[oe] & 31;
|
|
17624
|
+
w += lE[_e] + uE[ve], ++x[257 + _e], ++S[ve], ee = T + ae, ++C;
|
|
17612
17625
|
} else b[E++] = e[T], ++x[e[T]];
|
|
17613
17626
|
}
|
|
17614
17627
|
}
|
|
17615
17628
|
for (T = Math.max(T, ee); T < o; ++T) b[E++] = e[T], ++x[e[T]];
|
|
17616
|
-
u =
|
|
17629
|
+
u = IE(e, c, l, b, x, S, w, E, te, T - te, u), l || (a.r = u & 7 | c[u / 8 | 0] << 3, u -= 7, a.h = g, a.p = h, a.i = T, a.w = ee);
|
|
17617
17630
|
} else {
|
|
17618
17631
|
for (var T = a.w || 0; T < o + l; T += 65535) {
|
|
17619
17632
|
var ye = T + 65535;
|
|
17620
|
-
ye >= o && (c[u / 8 | 0] = l, ye = o), u =
|
|
17633
|
+
ye >= o && (c[u / 8 | 0] = l, ye = o), u = FE(c, u + 1, e.subarray(T, ye));
|
|
17621
17634
|
}
|
|
17622
17635
|
a.i = o;
|
|
17623
17636
|
}
|
|
17624
|
-
return
|
|
17625
|
-
},
|
|
17637
|
+
return EE(s, 0, r + TE(u) + i);
|
|
17638
|
+
}, BE = /*#__PURE__*/ (function() {
|
|
17626
17639
|
for (var e = /* @__PURE__ */ new Int32Array(256), t = 0; t < 256; ++t) {
|
|
17627
17640
|
for (var n = t, r = 9; --r;) n = (n & 1 && -306674912) ^ n >>> 1;
|
|
17628
17641
|
e[t] = n;
|
|
17629
17642
|
}
|
|
17630
17643
|
return e;
|
|
17631
|
-
})(),
|
|
17644
|
+
})(), VE = function() {
|
|
17632
17645
|
var e = -1;
|
|
17633
17646
|
return {
|
|
17634
17647
|
p: function(t) {
|
|
17635
|
-
for (var n = e, r = 0; r < t.length; ++r) n =
|
|
17648
|
+
for (var n = e, r = 0; r < t.length; ++r) n = BE[n & 255 ^ t[r]] ^ n >>> 8;
|
|
17636
17649
|
e = n;
|
|
17637
17650
|
},
|
|
17638
17651
|
d: function() {
|
|
17639
17652
|
return ~e;
|
|
17640
17653
|
}
|
|
17641
17654
|
};
|
|
17642
|
-
},
|
|
17655
|
+
}, HE = function(e, t, n, r, i) {
|
|
17643
17656
|
if (!i && (i = { l: 1 }, t.dictionary)) {
|
|
17644
|
-
var a = t.dictionary.subarray(-32768), o = new
|
|
17657
|
+
var a = t.dictionary.subarray(-32768), o = new oE(a.length + e.length);
|
|
17645
17658
|
o.set(a), o.set(e, a.length), e = o, i.w = a.length;
|
|
17646
17659
|
}
|
|
17647
|
-
return
|
|
17648
|
-
},
|
|
17660
|
+
return zE(e, t.level == null ? 6 : t.level, t.mem == null ? i.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(e.length))) * 1.5) : 20 : 12 + t.mem, n, r, i);
|
|
17661
|
+
}, UE = function(e, t) {
|
|
17649
17662
|
var n = {};
|
|
17650
17663
|
for (var r in e) n[r] = e[r];
|
|
17651
17664
|
for (var r in t) n[r] = t[r];
|
|
17652
17665
|
return n;
|
|
17653
|
-
},
|
|
17666
|
+
}, WE = function(e, t, n) {
|
|
17654
17667
|
for (; n; ++t) e[t] = n, n >>>= 8;
|
|
17655
17668
|
};
|
|
17656
|
-
function
|
|
17657
|
-
return
|
|
17669
|
+
function GE(e, t) {
|
|
17670
|
+
return HE(e, t || {}, 0, 0);
|
|
17658
17671
|
}
|
|
17659
|
-
var
|
|
17672
|
+
var KE = function(e, t, n, r) {
|
|
17660
17673
|
for (var i in e) {
|
|
17661
17674
|
var a = e[i], o = t + i, s = r;
|
|
17662
|
-
Array.isArray(a) && (s =
|
|
17675
|
+
Array.isArray(a) && (s = UE(r, a[1]), a = a[0]), ArrayBuffer.isView(a) ? n[o] = [a, s] : (n[o += "/"] = [new oE(0), s], KE(a, o, n, r));
|
|
17663
17676
|
}
|
|
17664
|
-
},
|
|
17677
|
+
}, qE = typeof TextEncoder < "u" && /*#__PURE__*/ new TextEncoder(), JE = typeof TextDecoder < "u" && /*#__PURE__*/ new TextDecoder();
|
|
17665
17678
|
try {
|
|
17666
|
-
|
|
17679
|
+
JE.decode(RE, { stream: !0 });
|
|
17667
17680
|
} catch {}
|
|
17668
|
-
function
|
|
17681
|
+
function YE(e, t) {
|
|
17669
17682
|
if (t) {
|
|
17670
|
-
for (var n = new
|
|
17683
|
+
for (var n = new oE(e.length), r = 0; r < e.length; ++r) n[r] = e.charCodeAt(r);
|
|
17671
17684
|
return n;
|
|
17672
17685
|
}
|
|
17673
|
-
if (
|
|
17674
|
-
for (var i = e.length, a = new
|
|
17686
|
+
if (qE) return qE.encode(e);
|
|
17687
|
+
for (var i = e.length, a = new oE(e.length + (e.length >> 1)), o = 0, s = function(e) {
|
|
17675
17688
|
a[o++] = e;
|
|
17676
17689
|
}, r = 0; r < i; ++r) {
|
|
17677
17690
|
if (o + 5 > a.length) {
|
|
17678
|
-
var c = new
|
|
17691
|
+
var c = new oE(o + 8 + (i - r << 1));
|
|
17679
17692
|
c.set(a), a = c;
|
|
17680
17693
|
}
|
|
17681
17694
|
var l = e.charCodeAt(r);
|
|
17682
17695
|
l < 128 || t ? s(l) : l < 2048 ? (s(192 | l >> 6), s(128 | l & 63)) : l > 55295 && l < 57344 ? (l = 65536 + (l & 1047552) | e.charCodeAt(++r) & 1023, s(240 | l >> 18), s(128 | l >> 12 & 63), s(128 | l >> 6 & 63), s(128 | l & 63)) : (s(224 | l >> 12), s(128 | l >> 6 & 63), s(128 | l & 63));
|
|
17683
17696
|
}
|
|
17684
|
-
return
|
|
17697
|
+
return EE(a, 0, o);
|
|
17685
17698
|
}
|
|
17686
|
-
var
|
|
17699
|
+
var XE = function(e) {
|
|
17687
17700
|
var t = 0;
|
|
17688
17701
|
if (e) for (var n in e) {
|
|
17689
17702
|
var r = e[n].length;
|
|
17690
|
-
r > 65535 &&
|
|
17703
|
+
r > 65535 && OE(9), t += r + 4;
|
|
17691
17704
|
}
|
|
17692
17705
|
return t;
|
|
17693
|
-
},
|
|
17694
|
-
var c = r.length, l = n.extra, u = s && s.length, d =
|
|
17695
|
-
|
|
17706
|
+
}, ZE = function(e, t, n, r, i, a, o, s) {
|
|
17707
|
+
var c = r.length, l = n.extra, u = s && s.length, d = XE(l);
|
|
17708
|
+
WE(e, t, o == null ? 67324752 : 33639248), t += 4, o != null && (e[t++] = 20, e[t++] = n.os), e[t] = 20, t += 2, e[t++] = n.flag << 1 | (a < 0 && 8), e[t++] = i && 8, e[t++] = n.compression & 255, e[t++] = n.compression >> 8;
|
|
17696
17709
|
var f = new Date(n.mtime == null ? Date.now() : n.mtime), p = f.getFullYear() - 1980;
|
|
17697
|
-
if ((p < 0 || p > 119) &&
|
|
17710
|
+
if ((p < 0 || p > 119) && OE(10), WE(e, t, p << 25 | f.getMonth() + 1 << 21 | f.getDate() << 16 | f.getHours() << 11 | f.getMinutes() << 5 | f.getSeconds() >> 1), t += 4, a != -1 && (WE(e, t, n.crc), WE(e, t + 4, a < 0 ? -a - 2 : a), WE(e, t + 8, n.size)), WE(e, t + 12, c), WE(e, t + 14, d), t += 16, o != null && (WE(e, t, u), WE(e, t + 6, n.attrs), WE(e, t + 10, o), t += 14), e.set(r, t), t += c, d) for (var m in l) {
|
|
17698
17711
|
var h = l[m], g = h.length;
|
|
17699
|
-
|
|
17712
|
+
WE(e, t, +m), WE(e, t + 2, g), e.set(h, t + 4), t += 4 + g;
|
|
17700
17713
|
}
|
|
17701
17714
|
return u && (e.set(s, t), t += u), t;
|
|
17702
|
-
},
|
|
17703
|
-
|
|
17715
|
+
}, QE = function(e, t, n, r, i) {
|
|
17716
|
+
WE(e, t, 101010256), WE(e, t + 8, n), WE(e, t + 10, n), WE(e, t + 12, r), WE(e, t + 16, i);
|
|
17704
17717
|
};
|
|
17705
|
-
function
|
|
17718
|
+
function $E(e, t) {
|
|
17706
17719
|
t ||= {};
|
|
17707
17720
|
var n = {}, r = [];
|
|
17708
|
-
|
|
17721
|
+
KE(e, "", n, t);
|
|
17709
17722
|
var i = 0, a = 0;
|
|
17710
17723
|
for (var o in n) {
|
|
17711
|
-
var s = n[o], c = s[0], l = s[1], u = l.level == 0 ? 0 : 8, d =
|
|
17712
|
-
f > 65535 &&
|
|
17713
|
-
var _ = u ?
|
|
17714
|
-
y.p(c), r.push(
|
|
17724
|
+
var s = n[o], c = s[0], l = s[1], u = l.level == 0 ? 0 : 8, d = YE(o), f = d.length, p = l.comment, m = p && YE(p), h = m && m.length, g = XE(l.extra);
|
|
17725
|
+
f > 65535 && OE(11);
|
|
17726
|
+
var _ = u ? GE(c, l) : c, v = _.length, y = VE();
|
|
17727
|
+
y.p(c), r.push(UE(l, {
|
|
17715
17728
|
size: c.length,
|
|
17716
17729
|
crc: y.d(),
|
|
17717
17730
|
c: _,
|
|
@@ -17722,17 +17735,17 @@ function ZE(e, t) {
|
|
|
17722
17735
|
compression: u
|
|
17723
17736
|
})), i += 30 + f + g + v, a += 76 + 2 * (f + g) + (h || 0) + v;
|
|
17724
17737
|
}
|
|
17725
|
-
for (var b = new
|
|
17738
|
+
for (var b = new oE(a + 22), x = i, S = a - i, C = 0; C < r.length; ++C) {
|
|
17726
17739
|
var d = r[C];
|
|
17727
|
-
|
|
17728
|
-
var w = 30 + d.f.length +
|
|
17729
|
-
b.set(d.c, d.o + w),
|
|
17740
|
+
ZE(b, d.o, d, d.f, d.u, d.c.length);
|
|
17741
|
+
var w = 30 + d.f.length + XE(d.extra);
|
|
17742
|
+
b.set(d.c, d.o + w), ZE(b, i, d, d.f, d.u, d.c.length, d.o, d.m), i += 16 + w + (d.m ? d.m.length : 0);
|
|
17730
17743
|
}
|
|
17731
|
-
return
|
|
17744
|
+
return QE(b, i, r.length, S, x), b;
|
|
17732
17745
|
}
|
|
17733
17746
|
//#endregion
|
|
17734
17747
|
//#region src/preview/archive.ts
|
|
17735
|
-
var
|
|
17748
|
+
var eD = /* @__PURE__ */ new Set([
|
|
17736
17749
|
"png",
|
|
17737
17750
|
"jpg",
|
|
17738
17751
|
"jpeg",
|
|
@@ -17743,32 +17756,32 @@ var QE = /* @__PURE__ */ new Set([
|
|
|
17743
17756
|
"woff2",
|
|
17744
17757
|
"mp4",
|
|
17745
17758
|
"webm"
|
|
17746
|
-
]),
|
|
17747
|
-
function
|
|
17759
|
+
]), tD = Date.UTC(2e3, 0, 1);
|
|
17760
|
+
function nD(e) {
|
|
17748
17761
|
let t = [...e].sort((e, t) => e.path < t.path ? -1 : +(e.path > t.path)), n = {}, r = h("sha256");
|
|
17749
17762
|
for (let e of t) {
|
|
17750
17763
|
let t = i(e.absolutePath), a = e.path.slice(e.path.lastIndexOf(".") + 1);
|
|
17751
17764
|
n[e.path] = [new Uint8Array(t), {
|
|
17752
|
-
level:
|
|
17753
|
-
mtime:
|
|
17765
|
+
level: eD.has(a.toLowerCase()) ? 0 : 6,
|
|
17766
|
+
mtime: tD
|
|
17754
17767
|
}], r.update(`${e.path}\0${h("sha256").update(t).digest("hex")}\n`);
|
|
17755
17768
|
}
|
|
17756
17769
|
return {
|
|
17757
|
-
zip:
|
|
17770
|
+
zip: $E(n),
|
|
17758
17771
|
contentHash: r.digest("hex")
|
|
17759
17772
|
};
|
|
17760
17773
|
}
|
|
17761
17774
|
//#endregion
|
|
17762
17775
|
//#region src/preview/collect.ts
|
|
17763
|
-
var
|
|
17764
|
-
function
|
|
17776
|
+
var rD = du;
|
|
17777
|
+
function iD(e) {
|
|
17765
17778
|
let t = [], r = [], i = (e, o) => {
|
|
17766
17779
|
for (let s of a(e, { withFileTypes: !0 })) {
|
|
17767
17780
|
let a = d(e, s.name), c = o ? `${o}/${s.name}` : s.name, l = n(a);
|
|
17768
17781
|
l.isSymbolicLink() || (l.isDirectory() ? i(a, c) : l.isFile() && (pu(c) ? t.push({
|
|
17769
17782
|
path: c,
|
|
17770
17783
|
size: l.size,
|
|
17771
|
-
contentType:
|
|
17784
|
+
contentType: rD(c),
|
|
17772
17785
|
absolutePath: a
|
|
17773
17786
|
}) : r.push(c)));
|
|
17774
17787
|
}
|
|
@@ -17809,9 +17822,9 @@ function nD(e) {
|
|
|
17809
17822
|
}
|
|
17810
17823
|
//#endregion
|
|
17811
17824
|
//#region src/preview/publish.ts
|
|
17812
|
-
var
|
|
17813
|
-
async function
|
|
17814
|
-
let { io: t } = e, n = e.fetch ?? fetch, r = e.sleep ??
|
|
17825
|
+
var aD = 3, oD = 500, sD = (e) => new Promise((t) => setTimeout(t, e));
|
|
17826
|
+
async function cD(e) {
|
|
17827
|
+
let { io: t } = e, n = e.fetch ?? fetch, r = e.sleep ?? sD, i = iD(e.dir);
|
|
17815
17828
|
if (i.ok === !1) return {
|
|
17816
17829
|
status: "invalid-build",
|
|
17817
17830
|
reason: i.reason
|
|
@@ -17824,20 +17837,20 @@ async function oD(e) {
|
|
|
17824
17837
|
};
|
|
17825
17838
|
};
|
|
17826
17839
|
if (!e.bridgeUrl) return a("no bridge configured (set enrich.bridgeUrl or SYNCLINE_URL)", !0);
|
|
17827
|
-
let o = e.bridgeUrl.replace(/\/$/, ""), s = await
|
|
17840
|
+
let o = e.bridgeUrl.replace(/\/$/, ""), s = await KC({
|
|
17828
17841
|
audience: e.audience ?? o,
|
|
17829
17842
|
env: e.env,
|
|
17830
17843
|
fetch: e.fetch
|
|
17831
17844
|
});
|
|
17832
17845
|
if (s.ok === !1) return a(s.reason);
|
|
17833
|
-
let c =
|
|
17846
|
+
let c = GC({
|
|
17834
17847
|
baseUrl: o,
|
|
17835
17848
|
token: s.token,
|
|
17836
17849
|
fetch: e.fetch,
|
|
17837
17850
|
sleep: e.sleep
|
|
17838
17851
|
});
|
|
17839
17852
|
try {
|
|
17840
|
-
let { zip: e, contentHash: o } =
|
|
17853
|
+
let { zip: e, contentHash: o } = nD(i.files);
|
|
17841
17854
|
if (e.length > lu.maxArchiveBytes) return {
|
|
17842
17855
|
status: "invalid-build",
|
|
17843
17856
|
reason: `the archive is ${Math.ceil(e.length / 1024 / 1024)} MB; the limit is ${lu.maxArchiveBytes / 1024 / 1024} MB`
|
|
@@ -17854,7 +17867,7 @@ async function oD(e) {
|
|
|
17854
17867
|
}
|
|
17855
17868
|
});
|
|
17856
17869
|
for (let t of s) {
|
|
17857
|
-
let i = await
|
|
17870
|
+
let i = await lD(n, r, t.url, t.headers, e);
|
|
17858
17871
|
if (i) return a(`the archive could not be uploaded (${i})`);
|
|
17859
17872
|
}
|
|
17860
17873
|
let { storybookUrl: l } = await c.completePreview({ contentHash: o });
|
|
@@ -17864,13 +17877,13 @@ async function oD(e) {
|
|
|
17864
17877
|
files: i.files.length
|
|
17865
17878
|
};
|
|
17866
17879
|
} catch (e) {
|
|
17867
|
-
return e instanceof
|
|
17880
|
+
return e instanceof zC ? a(e.message) : a(e instanceof Error ? e.message : String(e));
|
|
17868
17881
|
}
|
|
17869
17882
|
}
|
|
17870
|
-
async function
|
|
17883
|
+
async function lD(e, t, n, r, i) {
|
|
17871
17884
|
let a = "unknown error";
|
|
17872
|
-
for (let o = 0; o <
|
|
17873
|
-
o > 0 && await t(
|
|
17885
|
+
for (let o = 0; o < aD; o++) {
|
|
17886
|
+
o > 0 && await t(oD * 2 ** (o - 1));
|
|
17874
17887
|
try {
|
|
17875
17888
|
let t = await e(n, {
|
|
17876
17889
|
method: "PUT",
|
|
@@ -17888,7 +17901,7 @@ async function sD(e, t, n, r, i) {
|
|
|
17888
17901
|
}
|
|
17889
17902
|
//#endregion
|
|
17890
17903
|
//#region src/commands/preview.ts
|
|
17891
|
-
var
|
|
17904
|
+
var uD = `Usage: syncline preview publish [options]
|
|
17892
17905
|
|
|
17893
17906
|
Uploads a built Storybook to the bridge, which hosts it until the pull request
|
|
17894
17907
|
closes and shows the link next to the sync in the Figma plugin (paid feature).
|
|
@@ -17897,16 +17910,16 @@ can't be published is reported and skipped; it never fails the run.
|
|
|
17897
17910
|
|
|
17898
17911
|
Options:
|
|
17899
17912
|
--dir <dir> The static build (default: storybook-static)
|
|
17900
|
-
--config <file> Config file (default: ${
|
|
17913
|
+
--config <file> Config file (default: ${LC})
|
|
17901
17914
|
--cwd <dir> Project root (default: the current directory)
|
|
17902
17915
|
-h, --help Show this help
|
|
17903
17916
|
`;
|
|
17904
|
-
function
|
|
17917
|
+
function dD(e) {
|
|
17905
17918
|
let t = { help: !1 };
|
|
17906
17919
|
for (let n = 0; n < e.length; n++) {
|
|
17907
17920
|
let r = (t) => {
|
|
17908
17921
|
let r = e[++n];
|
|
17909
|
-
if (r === void 0 || r.startsWith("-")) throw Error(`${t} needs a value\n\n${
|
|
17922
|
+
if (r === void 0 || r.startsWith("-")) throw Error(`${t} needs a value\n\n${uD}`);
|
|
17910
17923
|
return r;
|
|
17911
17924
|
};
|
|
17912
17925
|
switch (e[n]) {
|
|
@@ -17924,8 +17937,8 @@ function lD(e) {
|
|
|
17924
17937
|
t.help = !0;
|
|
17925
17938
|
break;
|
|
17926
17939
|
default:
|
|
17927
|
-
if (e[n].startsWith("-")) throw Error(`Unknown option: ${e[n]}\n\n${
|
|
17928
|
-
if (t.action !== void 0) throw Error(`Unexpected argument: ${e[n]}\n\n${
|
|
17940
|
+
if (e[n].startsWith("-")) throw Error(`Unknown option: ${e[n]}\n\n${uD}`);
|
|
17941
|
+
if (t.action !== void 0) throw Error(`Unexpected argument: ${e[n]}\n\n${uD}`);
|
|
17929
17942
|
t.action = e[n];
|
|
17930
17943
|
}
|
|
17931
17944
|
}
|
|
@@ -17933,47 +17946,47 @@ function lD(e) {
|
|
|
17933
17946
|
}
|
|
17934
17947
|
//#endregion
|
|
17935
17948
|
//#region src/commands/index.ts
|
|
17936
|
-
var
|
|
17937
|
-
|
|
17938
|
-
|
|
17949
|
+
var fD = [
|
|
17950
|
+
GT,
|
|
17951
|
+
Mw,
|
|
17939
17952
|
{
|
|
17940
17953
|
name: "preview",
|
|
17941
17954
|
summary: "Publish a built Storybook as a pull request preview (paid)",
|
|
17942
17955
|
async run({ args: n, io: r }) {
|
|
17943
|
-
let a =
|
|
17944
|
-
if (a.help || a.action === void 0) return r.out(
|
|
17945
|
-
if (a.action !== "publish") return r.err(`Unknown preview command: ${a.action}\n\n${
|
|
17956
|
+
let a = dD(n);
|
|
17957
|
+
if (a.help || a.action === void 0) return r.out(uD), +!a.help;
|
|
17958
|
+
if (a.action !== "publish") return r.err(`Unknown preview command: ${a.action}\n\n${uD}`), 1;
|
|
17946
17959
|
let o = f(a.cwd ?? process.cwd()), s = f(o, a.config ?? "syncline.config.json"), c = {};
|
|
17947
17960
|
if (t(s)) try {
|
|
17948
17961
|
c = JSON.parse(i(s, "utf-8"));
|
|
17949
17962
|
} catch (e) {
|
|
17950
17963
|
return r.err(`${s} is not valid JSON: ${e instanceof Error ? e.message : e}\n`), 1;
|
|
17951
17964
|
}
|
|
17952
|
-
let l =
|
|
17953
|
-
if (!l.success) return r.err(`Invalid config ${s}:\n${
|
|
17965
|
+
let l = IC.safeParse(c);
|
|
17966
|
+
if (!l.success) return r.err(`Invalid config ${s}:\n${RC(l.error)}\n`), 1;
|
|
17954
17967
|
let u = {
|
|
17955
|
-
bridgeUrl:
|
|
17968
|
+
bridgeUrl: uw({
|
|
17956
17969
|
env: process.env,
|
|
17957
17970
|
configured: l.data.enrich.bridgeUrl,
|
|
17958
17971
|
baked: y
|
|
17959
17972
|
}),
|
|
17960
17973
|
audience: l.data.enrich.audience,
|
|
17961
17974
|
io: r
|
|
17962
|
-
}, d = await
|
|
17975
|
+
}, d = await cD({
|
|
17963
17976
|
dir: f(o, a.dir ?? "storybook-static"),
|
|
17964
17977
|
...u
|
|
17965
17978
|
});
|
|
17966
17979
|
return d.status === "published" && process.env.GITHUB_OUTPUT && e(process.env.GITHUB_OUTPUT, `url=${d.url}\n`), d.status === "invalid-build" ? (r.err(`Preview: ${d.reason}\n`), 1) : 0;
|
|
17967
17980
|
}
|
|
17968
17981
|
},
|
|
17969
|
-
|
|
17970
|
-
|
|
17971
|
-
],
|
|
17972
|
-
function
|
|
17982
|
+
pw,
|
|
17983
|
+
aE
|
|
17984
|
+
], pD = "syncline";
|
|
17985
|
+
function mD(e) {
|
|
17973
17986
|
return [
|
|
17974
|
-
`${
|
|
17987
|
+
`${pD} v${b}`,
|
|
17975
17988
|
"",
|
|
17976
|
-
`Usage: ${
|
|
17989
|
+
`Usage: ${pD} <command> [options]`,
|
|
17977
17990
|
"",
|
|
17978
17991
|
"Commands:",
|
|
17979
17992
|
...e.length ? e.map((e) => ` ${e.name.padEnd(14)}${e.summary}`) : [" (none yet)"],
|
|
@@ -17984,12 +17997,12 @@ function fD(e) {
|
|
|
17984
17997
|
""
|
|
17985
17998
|
].join("\n");
|
|
17986
17999
|
}
|
|
17987
|
-
async function
|
|
18000
|
+
async function hD(e, t, n = fD) {
|
|
17988
18001
|
let [r, ...i] = e;
|
|
17989
|
-
if (r === void 0 || r === "-h" || r === "--help") return t.out(
|
|
18002
|
+
if (r === void 0 || r === "-h" || r === "--help") return t.out(mD(n)), 0;
|
|
17990
18003
|
if (r === "-v" || r === "--version") return t.out(`${b}\n`), 0;
|
|
17991
18004
|
let a = n.find((e) => e.name === r);
|
|
17992
|
-
if (!a) return t.err(`Unknown command: ${r}\n\n${
|
|
18005
|
+
if (!a) return t.err(`Unknown command: ${r}\n\n${mD(n)}`), 1;
|
|
17993
18006
|
try {
|
|
17994
18007
|
return await a.run({
|
|
17995
18008
|
args: i,
|
|
@@ -18000,4 +18013,4 @@ async function pD(e, t, n = uD) {
|
|
|
18000
18013
|
}
|
|
18001
18014
|
}
|
|
18002
18015
|
//#endregion
|
|
18003
|
-
export { y as A,
|
|
18016
|
+
export { y as A, uw as C, IC as D, GC as E, LC as O, bw as S, zC as T, Bw as _, LT as a, Aw as b, IT as c, ET as d, wT as f, Uw as g, nT as h, RT as i, b as k, DT as l, ST as m, mD as n, jT as o, CT as p, hD as r, AT as s, pD as t, TT as u, zw as v, KC as w, mw as x, Fw as y };
|