@bridge-ds/core 0.20.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audit/index.js +275 -52
- package/dist/audit/index.js.map +1 -1
- package/dist/audit/missing-pieces.d.ts +4 -0
- package/dist/component-spec.d.ts +13 -0
- package/dist/exploration-done-github.d.ts +50 -0
- package/dist/exploration-resume.d.ts +136 -0
- package/dist/explorations-github.d.ts +75 -3
- package/dist/explorations.d.ts +137 -8
- package/dist/figma-fix-loop.d.ts +1 -1
- package/dist/figma-fixes.d.ts +14 -2
- package/dist/github-client.d.ts +17 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1708 -1283
- package/dist/index.js.map +1 -1
- package/dist/measured-only.d.ts +13 -1
- package/dist/node/index.js +11 -11
- package/dist/previews-github.d.ts +13 -0
- package/dist/previews.d.ts +8 -1
- package/dist/{prod-branch-CJZwMfVD.js → prod-branch-C7tphFAA.js} +255 -192
- package/dist/prod-branch-C7tphFAA.js.map +1 -0
- package/dist/prod-branch-github.d.ts +54 -4
- package/dist/prod-branch.d.ts +42 -1
- package/dist/products.d.ts +17 -0
- package/dist/{repo-source-CshjjC7x.js → repo-source-CEBBBtm1.js} +2165 -1998
- package/dist/repo-source-CEBBBtm1.js.map +1 -0
- package/dist/{report-CE-jHAuw.js → report-B7wNAnSu.js} +38 -38
- package/dist/{report-CE-jHAuw.js.map → report-B7wNAnSu.js.map} +1 -1
- package/dist/review-gate.d.ts +1 -1
- package/dist/try-in-product.d.ts +4 -1
- package/package.json +1 -1
- package/dist/prod-branch-CJZwMfVD.js.map +0 -1
- package/dist/repo-source-CshjjC7x.js.map +0 -1
|
@@ -613,7 +613,7 @@ function previewComment(input) {
|
|
|
613
613
|
const sha7 = input.sha.slice(0, 7);
|
|
614
614
|
const lines = [PREVIEW_COMMENT_MARKER, input.exploration ? "## Try this exploration in your product" : "## Try this DS branch in your product", ""];
|
|
615
615
|
lines.push(`Snapshot of \`${sha7}\` on \`${input.branch}\`. Install it in a product branch that deploys to staging; production keeps the released version.`, "");
|
|
616
|
-
if (input.exploration) lines.push("This is an exploration: it is never merged as is. Use it for a prototype, a user test, a demo or an A/B idea, then
|
|
616
|
+
if (input.exploration) lines.push("This is an exploration: it is never merged as is. Use it for a prototype, a user test, a demo or an A/B idea, then say it is done exploring: developers take it from there, and it stays open so this preview keeps working.", "");
|
|
617
617
|
if (input.packages.length) {
|
|
618
618
|
lines.push("```sh", installCommand(input.packages.map((p) => input.exploration ? `${p.name}@${p.url}` : p.url)), "```", "");
|
|
619
619
|
lines.push("| Package | Install this package only |", "| --- | --- |");
|
|
@@ -717,7 +717,7 @@ const STATE_OF = {
|
|
|
717
717
|
deployed: "ready",
|
|
718
718
|
ready: "ready",
|
|
719
719
|
ignored: "ready",
|
|
720
|
-
// Vercel skipped the build
|
|
720
|
+
// Vercel skipped the build: nothing to wait for. BranchPreview.skipped says the branch has no build of its own.
|
|
721
721
|
pending: "building",
|
|
722
722
|
queued: "building",
|
|
723
723
|
in_progress: "building",
|
|
@@ -729,13 +729,15 @@ const STATE_OF = {
|
|
|
729
729
|
canceled: "failed"
|
|
730
730
|
};
|
|
731
731
|
const stateOf = (s) => STATE_OF[(s ?? "").toLowerCase()] ?? "unknown";
|
|
732
|
+
const IGNORED_BUILD = /ignored build step/i;
|
|
732
733
|
const isInspectorUrl = (u) => /^https:\/\/(?:www\.)?vercel\.com\//i.test(u);
|
|
733
734
|
function resolveBranchPreviews(apps, ctx, sources = {}) {
|
|
734
735
|
const seen = /* @__PURE__ */ new Map();
|
|
735
736
|
const at = (app) => seen.get(app) ?? (seen.set(app, {}), seen.get(app));
|
|
736
|
-
const offer = (app, url, urlSource, state, stateRank) => {
|
|
737
|
+
const offer = (app, url, urlSource, state, stateRank, skipped) => {
|
|
737
738
|
if (!app) return;
|
|
738
739
|
const s = at(app);
|
|
740
|
+
if (skipped !== void 0 && (s.skipRank === void 0 || stateRank < s.skipRank)) Object.assign(s, { skipped, skipRank: stateRank });
|
|
739
741
|
if (url && !s.url) Object.assign(s, { url, urlSource });
|
|
740
742
|
if (state !== "unknown" && (s.stateRank === void 0 || stateRank < s.stateRank)) Object.assign(s, { state, stateRank });
|
|
741
743
|
};
|
|
@@ -746,7 +748,7 @@ function resolveBranchPreviews(apps, ctx, sources = {}) {
|
|
|
746
748
|
const project = projectOfLabel(st.context);
|
|
747
749
|
if (!project) continue;
|
|
748
750
|
const url = httpsUrl(st.target_url);
|
|
749
|
-
offer(appForProject(project, apps), url && !isInspectorUrl(url) ? url : null, "status", stateOf(st.state), 0);
|
|
751
|
+
offer(appForProject(project, apps), url && !isInspectorUrl(url) ? url : null, "status", stateOf(st.state), 0, IGNORED_BUILD.test(st.description ?? ""));
|
|
750
752
|
}
|
|
751
753
|
for (const d of sources.deployments ?? []) {
|
|
752
754
|
const project = projectOfLabel(d.environment);
|
|
@@ -758,18 +760,18 @@ function resolveBranchPreviews(apps, ctx, sources = {}) {
|
|
|
758
760
|
const state = stateOf(d.state);
|
|
759
761
|
if (state !== "unknown" && (s.stateRank === void 0 || 1 < s.stateRank)) Object.assign(s, { state, stateRank: 1 });
|
|
760
762
|
}
|
|
761
|
-
for (const p of parseVercelComment(findVercelComment(sources.comments ?? [])?.body) ?? []) offer(appForProject(p.name, apps), p.previewUrl, "vercel-comment", stateOf(p.status), 2);
|
|
763
|
+
for (const p of parseVercelComment(findVercelComment(sources.comments ?? [])?.body) ?? []) offer(appForProject(p.name, apps), p.previewUrl, "vercel-comment", stateOf(p.status), 2, p.status ? p.status.toUpperCase() === "IGNORED" : void 0);
|
|
762
764
|
const out = [];
|
|
763
765
|
for (const app of Object.keys(PREVIEW_APP_LABELS)) {
|
|
764
766
|
if (!apps[app]) continue;
|
|
765
767
|
const s = seen.get(app) ?? {};
|
|
766
768
|
const url = s.url ?? previewUrl(apps[app], ctx);
|
|
767
769
|
const source = s.url ? s.urlSource : url ? "template" : null;
|
|
768
|
-
out.push({ app, label: PREVIEW_APP_LABELS[app], url, state: s.state ?? "unknown", source });
|
|
770
|
+
out.push({ app, label: PREVIEW_APP_LABELS[app], url, state: s.state ?? "unknown", source, ...s.skipped ? { skipped: true } : {} });
|
|
769
771
|
}
|
|
770
772
|
return out;
|
|
771
773
|
}
|
|
772
|
-
const previewLinksOf = (previews) => previews.filter((p) => !!p.url).map((p) => ({ app: p.app, label: p.label, url: p.url }));
|
|
774
|
+
const previewLinksOf = (previews) => previews.filter((p) => !!p.url && !p.skipped).map((p) => ({ app: p.app, label: p.label, url: p.url }));
|
|
773
775
|
const previewsSettled = (previews) => previews.every((p) => p.state === "failed" || !!p.url && p.state === "ready");
|
|
774
776
|
const LOGIN = /^[A-Za-z0-9](?:[A-Za-z0-9]|-(?=[A-Za-z0-9])){0,38}$/;
|
|
775
777
|
const SLUG = /^[A-Za-z0-9][A-Za-z0-9._-]{0,99}$/;
|
|
@@ -1165,6 +1167,27 @@ function productForPlace(products, place) {
|
|
|
1165
1167
|
}
|
|
1166
1168
|
return { product: defaultProduct(products), how: "default" };
|
|
1167
1169
|
}
|
|
1170
|
+
function productRepoOf(p, designSystemRepo) {
|
|
1171
|
+
const repo = p?.repo?.trim();
|
|
1172
|
+
if (!repo || !REPO.test(repo)) return null;
|
|
1173
|
+
return repo.toLowerCase() === (designSystemRepo ?? "").trim().toLowerCase() ? null : repo;
|
|
1174
|
+
}
|
|
1175
|
+
function productRepos(products, designSystemRepo) {
|
|
1176
|
+
const seen = /* @__PURE__ */ new Set();
|
|
1177
|
+
const out = [];
|
|
1178
|
+
for (const p of products) {
|
|
1179
|
+
const repo = productRepoOf(p, designSystemRepo);
|
|
1180
|
+
if (!repo || seen.has(repo.toLowerCase())) continue;
|
|
1181
|
+
seen.add(repo.toLowerCase());
|
|
1182
|
+
out.push({ product: p, repo });
|
|
1183
|
+
}
|
|
1184
|
+
return out;
|
|
1185
|
+
}
|
|
1186
|
+
function productOfRepo(products, repo, designSystemRepo) {
|
|
1187
|
+
const r = (repo ?? "").trim().toLowerCase();
|
|
1188
|
+
if (!r) return void 0;
|
|
1189
|
+
return productRepos(products, designSystemRepo).find((x) => x.repo.toLowerCase() === r)?.product;
|
|
1190
|
+
}
|
|
1168
1191
|
const KEY = /^[a-z0-9][a-z0-9-]*$/;
|
|
1169
1192
|
const REPO = /^[\w.-]+\/[\w.-]+$/;
|
|
1170
1193
|
const FIELDS = ["key", "name", "repo", "path", "preview", "framework", "default"];
|
|
@@ -2693,6 +2716,7 @@ ${body}
|
|
|
2693
2716
|
|
|
2694
2717
|
${footer}`;
|
|
2695
2718
|
}
|
|
2719
|
+
const pieceValueField = (v) => `${v.property ?? v.category}${v.part ? ` (${v.part})` : ""}`;
|
|
2696
2720
|
const PIECES_MARK = "bridge-pieces";
|
|
2697
2721
|
const NEEDED_MARK = "bridge-needed-by";
|
|
2698
2722
|
const SECTION = "### Missing from the library";
|
|
@@ -2718,7 +2742,7 @@ function piecesSection(r) {
|
|
|
2718
2742
|
const link = (p) => r.links.find((l) => l.piece === p.id);
|
|
2719
2743
|
const lines = r.pieces.length ? r.pieces.map((p) => {
|
|
2720
2744
|
const l = link(p);
|
|
2721
|
-
return `- **${p.title}**: ${p.summary}${l ? ` ${cap(KIND_WORD[l.kind])}: #${l.number}.` : " No library branch yet."}`;
|
|
2745
|
+
return `- **${p.title}**: ${p.summary}${l ? ` ${cap(KIND_WORD[l.kind])}: ${l.repo ?? ""}#${l.number}.` : " No library branch yet."}`;
|
|
2722
2746
|
}) : ["- Nothing: every value and component comes from the library."];
|
|
2723
2747
|
return [SECTION, "", `Checked ${r.checkedAt.slice(0, 10)}${r.headSha ? ` on ${r.headSha.slice(0, 7)}` : ""} by Bridge.`, "", ...lines, "", hiddenJson(PIECES_MARK, r)].join("\n");
|
|
2724
2748
|
}
|
|
@@ -2744,10 +2768,12 @@ function mergePiecesRecord(prev, next) {
|
|
|
2744
2768
|
function withLink(r, l) {
|
|
2745
2769
|
return { ...r, links: [...r.links.filter((x) => x.piece !== l.piece), l] };
|
|
2746
2770
|
}
|
|
2771
|
+
const prRef = (b) => `${b.repo ? b.repo : ""}#${b.pr}`;
|
|
2747
2772
|
function neededBySection(n) {
|
|
2748
2773
|
const who = n.author ? ` for @${n.author}` : "";
|
|
2749
|
-
const
|
|
2750
|
-
|
|
2774
|
+
const detail = [n.nearestToken ? `\`${n.nearestToken}\`` : "", n.nearestValue ?? ""].filter(Boolean).join(", ");
|
|
2775
|
+
const near = n.nearest ? ` The closest the library has today is ${n.nearest}${detail ? ` (${detail})` : ""}.` : "";
|
|
2776
|
+
return [`**Needed by:** [${n.title}](${n.url}) (${prRef(n)}) in ${n.productName}${who}.${near}`, "", hiddenJson(NEEDED_MARK, n)].join("\n");
|
|
2751
2777
|
}
|
|
2752
2778
|
function parseNeededBy(body) {
|
|
2753
2779
|
const n = readHidden(NEEDED_MARK, body);
|
|
@@ -2766,7 +2792,8 @@ function withNeededBy(body, n) {
|
|
|
2766
2792
|
${b}` : ""}`;
|
|
2767
2793
|
}
|
|
2768
2794
|
const cap = (s) => s ? s.charAt(0).toUpperCase() + s.slice(1) : s;
|
|
2769
|
-
const
|
|
2795
|
+
const withoutNear = (summary) => summary.replace(/\s*(?:It looks a lot like|The closest in the library is) .*?\.(?=\s|$)/, "").trim();
|
|
2796
|
+
const forLine = (b) => `${b.productName} needs it for "${b.title.replace(/"/g, "'")}" (${prRef(b)})`;
|
|
2770
2797
|
function libraryBranchPlan(piece, branch, opts = {}) {
|
|
2771
2798
|
const neededBy = {
|
|
2772
2799
|
pr: branch.pr,
|
|
@@ -2778,9 +2805,10 @@ function libraryBranchPlan(piece, branch, opts = {}) {
|
|
|
2778
2805
|
...branch.author ? { author: branch.author } : {},
|
|
2779
2806
|
piece: piece.id,
|
|
2780
2807
|
pieceTitle: piece.title,
|
|
2781
|
-
...piece.nearest ? { nearest: piece.nearest.label, nearestToken: piece.nearest.token } : {}
|
|
2808
|
+
...piece.nearest ? { nearest: piece.nearest.label, nearestToken: piece.nearest.token, nearestValue: piece.nearest.value } : {},
|
|
2809
|
+
...branch.repo ? { repo: branch.repo } : {}
|
|
2782
2810
|
};
|
|
2783
|
-
const
|
|
2811
|
+
const said = `${forLine(branch)}: ${withoutNear(piece.summary)}`;
|
|
2784
2812
|
if (piece.kind === "token" && piece.token) {
|
|
2785
2813
|
const t = piece.token;
|
|
2786
2814
|
const files = t.files.length ? t.files : [void 0];
|
|
@@ -2792,34 +2820,39 @@ function libraryBranchPlan(piece, branch, opts = {}) {
|
|
|
2792
2820
|
description: `${cap(piece.name)}: ${forLine(branch)}.${files.length > 1 ? " Same value in every theme: review it in each." : ""}`,
|
|
2793
2821
|
...file ? { file } : {}
|
|
2794
2822
|
}));
|
|
2795
|
-
return { kind: "token-change", title: `Add ${t.path}`, summary:
|
|
2823
|
+
return { kind: "token-change", title: `Add ${t.path}`, summary: said, edits, neededBy };
|
|
2796
2824
|
}
|
|
2797
2825
|
if (piece.kind === "variant" && piece.component && opts.mode === "suggest") {
|
|
2798
2826
|
const request2 = {
|
|
2799
2827
|
component: piece.component,
|
|
2800
2828
|
kind: "new-variant",
|
|
2801
2829
|
title: piece.title,
|
|
2802
|
-
summary:
|
|
2803
|
-
changes: piece.values.slice(0, 6).map((v) => ({ field: v
|
|
2830
|
+
summary: said,
|
|
2831
|
+
changes: piece.values.slice(0, 6).map((v) => ({ field: pieceValueField(v), after: v.value })),
|
|
2804
2832
|
source: opts.source ?? "mcp",
|
|
2805
2833
|
...opts.requestedBy ? { requestedBy: opts.requestedBy } : {}
|
|
2806
2834
|
};
|
|
2807
2835
|
return { kind: "request", title: piece.title, request: request2, neededBy };
|
|
2808
2836
|
}
|
|
2809
2837
|
if (piece.kind === "variant" && piece.component) {
|
|
2810
|
-
const values = piece.values.map((v) => `${v
|
|
2838
|
+
const values = piece.values.map((v) => `${pieceValueField(v)} ${v.value}`).join(", ");
|
|
2839
|
+
const r = piece.restyle;
|
|
2840
|
+
const what = r?.state ? `a look when ${r.state}` : `${/^[aeiou]/i.test(piece.name) ? "an" : "a"} ${piece.name} ${piece.aspect ?? "style"}`;
|
|
2811
2841
|
const exploration = {
|
|
2812
2842
|
name: piece.title,
|
|
2813
|
-
purpose: `${forLine(branch)}: ${
|
|
2843
|
+
purpose: `${forLine(branch)}: ${what} on ${piece.component} (${values}).`,
|
|
2814
2844
|
useCase: "terminal",
|
|
2815
2845
|
experimental: [piece.title],
|
|
2816
2846
|
source: opts.source === "figma" ? "figma" : opts.source ?? "mcp"
|
|
2817
2847
|
};
|
|
2818
|
-
const brief = [
|
|
2848
|
+
const brief = (r ? [
|
|
2849
|
+
`Add ${what} to ${piece.component} in the library, on this exploration branch.`,
|
|
2850
|
+
`The product branch restyles ${piece.component} from outside with tokens (\`${r.selector}\`: ${values}). Build it into the component (its own state style or a prop, on component tokens), add it to the docs and examples, and keep every existing ${piece.component} unchanged.`
|
|
2851
|
+
] : [
|
|
2819
2852
|
`Add the ${piece.name} ${piece.aspect ?? "style"} to ${piece.component} in the library, on this exploration branch.`,
|
|
2820
2853
|
`The product branch writes it by hand: ${values}. Express it with tokens (a component or semantic token per value), add it to the component's props, docs and examples, and keep every existing ${piece.component} unchanged.`,
|
|
2821
2854
|
piece.nearest ? `Say in the pull request why ${piece.nearest.label} is not enough, or recommend it instead.` : ""
|
|
2822
|
-
].filter(Boolean).join(" ");
|
|
2855
|
+
]).filter(Boolean).join(" ");
|
|
2823
2856
|
return { kind: "exploration", title: piece.title, exploration, neededBy, brief };
|
|
2824
2857
|
}
|
|
2825
2858
|
const name = piece.component ?? cap(piece.name);
|
|
@@ -2827,13 +2860,38 @@ function libraryBranchPlan(piece, branch, opts = {}) {
|
|
|
2827
2860
|
component: name,
|
|
2828
2861
|
kind: "new-component",
|
|
2829
2862
|
title: `Add ${name}`,
|
|
2830
|
-
summary:
|
|
2831
|
-
changes: piece.values.slice(0, 6).map((v) => ({ field: v
|
|
2863
|
+
summary: said,
|
|
2864
|
+
changes: piece.values.slice(0, 6).map((v) => ({ field: pieceValueField(v), after: v.value })),
|
|
2832
2865
|
source: opts.source ?? "mcp",
|
|
2833
2866
|
...opts.requestedBy ? { requestedBy: opts.requestedBy } : {}
|
|
2834
2867
|
};
|
|
2835
2868
|
return { kind: "request", title: `New component: ${name}`, request, neededBy };
|
|
2836
2869
|
}
|
|
2870
|
+
function pieceRequest(piece, branch, opts = {}) {
|
|
2871
|
+
const plan = libraryBranchPlan(piece, branch, { ...opts.source ? { source: opts.source } : {}, ...opts.requestedBy ? { requestedBy: opts.requestedBy } : {}, mode: "suggest" });
|
|
2872
|
+
const own = `${forLine(branch)}: ${withoutNear(piece.summary)}`;
|
|
2873
|
+
const context = opts.previewUrl ? ` See it in context in the exploration's preview: ${opts.previewUrl}` : ` See it in context in the exploration: ${branch.url}`;
|
|
2874
|
+
const base = {
|
|
2875
|
+
source: opts.source ?? "mcp",
|
|
2876
|
+
...opts.requestedBy ? { requestedBy: opts.requestedBy } : {},
|
|
2877
|
+
changes: piece.values.slice(0, 6).map((v) => ({ field: pieceValueField(v), after: v.value }))
|
|
2878
|
+
};
|
|
2879
|
+
let request;
|
|
2880
|
+
if (plan.kind === "request") request = { ...plan.request, summary: `${own}${context}` };
|
|
2881
|
+
else if (piece.kind === "token" && piece.token) {
|
|
2882
|
+
request = {
|
|
2883
|
+
...base,
|
|
2884
|
+
component: "Tokens",
|
|
2885
|
+
kind: "other",
|
|
2886
|
+
title: `Add ${piece.token.path}`,
|
|
2887
|
+
summary: `${own} Proposed: ${piece.token.path} = ${piece.token.value}, beside the closest token.${context}`,
|
|
2888
|
+
changes: [{ field: piece.token.path, after: piece.token.value }]
|
|
2889
|
+
};
|
|
2890
|
+
} else {
|
|
2891
|
+
request = { ...base, component: piece.component ?? cap(piece.name), kind: piece.component ? "new-variant" : "new-component", title: piece.title, summary: `${own}${context}` };
|
|
2892
|
+
}
|
|
2893
|
+
return { request, neededBy: plan.neededBy };
|
|
2894
|
+
}
|
|
2837
2895
|
const STATUS_LABEL = {
|
|
2838
2896
|
draft: "Draft",
|
|
2839
2897
|
"in-review": "In review",
|
|
@@ -2888,7 +2946,7 @@ function linkStatus(x) {
|
|
|
2888
2946
|
}
|
|
2889
2947
|
if (x.state === "merged") return make("shipped");
|
|
2890
2948
|
if (x.state !== "open") return make("closed");
|
|
2891
|
-
if ((x.labels ?? []).includes("exploration")) return make("exploring");
|
|
2949
|
+
if ((x.labels ?? []).includes("exploration") || x.draft && (x.labels ?? []).includes("ready-for-devs")) return make("exploring");
|
|
2892
2950
|
if (x.draft) return make("draft");
|
|
2893
2951
|
const latest = /* @__PURE__ */ new Map();
|
|
2894
2952
|
for (const r of x.reviews ?? []) if (r.user && r.state !== "COMMENTED") latest.set(r.user, r.state);
|
|
@@ -2946,7 +3004,7 @@ function nearestQuestion(n, opts = {}) {
|
|
|
2946
3004
|
}
|
|
2947
3005
|
function suggestNearestComment(n) {
|
|
2948
3006
|
if (!n.nearest) return null;
|
|
2949
|
-
return `Let's not add it to the library: ${n.nearest}${n.nearestToken ? ` (\`${n.nearestToken}\`)` : ""} covers it. Use it on ${n.title} (
|
|
3007
|
+
return `Let's not add it to the library: ${n.nearest}${n.nearestToken ? ` (\`${n.nearestToken}\`)` : ""} covers it. Use it on ${n.title} (${prRef(n)}) instead, then close this branch.`;
|
|
2950
3008
|
}
|
|
2951
3009
|
function pieceId(parts) {
|
|
2952
3010
|
return slugify(parts.filter(Boolean).join(" "), 48);
|
|
@@ -2968,7 +3026,7 @@ function proposedTokenPath(nearest, name, category) {
|
|
|
2968
3026
|
return [...parts.slice(0, -1), slug].join(".");
|
|
2969
3027
|
}
|
|
2970
3028
|
export {
|
|
2971
|
-
|
|
3029
|
+
productRepos as $,
|
|
2972
3030
|
formatValue as A,
|
|
2973
3031
|
resolve as B,
|
|
2974
3032
|
moveToken as C,
|
|
@@ -2995,175 +3053,180 @@ export {
|
|
|
2995
3053
|
previewLinks as X,
|
|
2996
3054
|
findPreviewComment as Y,
|
|
2997
3055
|
previewsSettled as Z,
|
|
2998
|
-
|
|
3056
|
+
previewUrl as _,
|
|
2999
3057
|
proposedTokenPath as a,
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
3004
|
-
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
|
|
3048
|
-
|
|
3049
|
-
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3058
|
+
changedModes as a$,
|
|
3059
|
+
linkStatus as a0,
|
|
3060
|
+
libraryPreviewState as a1,
|
|
3061
|
+
parsePiecesRecord as a2,
|
|
3062
|
+
libraryBranchPlan as a3,
|
|
3063
|
+
NEEDED_BY_LABEL as a4,
|
|
3064
|
+
withNeededBy as a5,
|
|
3065
|
+
withLink as a6,
|
|
3066
|
+
withPiecesRecord as a7,
|
|
3067
|
+
productBranchSentence as a8,
|
|
3068
|
+
productOfBranch as a9,
|
|
3069
|
+
JsonParseError as aA,
|
|
3070
|
+
LINK_STATUS_TONE as aB,
|
|
3071
|
+
OWNER_GROUPS as aC,
|
|
3072
|
+
PREVIEW_APP_LABELS as aD,
|
|
3073
|
+
PREVIEW_COMMENT_MARKER as aE,
|
|
3074
|
+
PREVIEW_PLACEHOLDERS as aF,
|
|
3075
|
+
PRIMITIVE_MODE as aG,
|
|
3076
|
+
PRODUCT_LABEL_PREFIX as aH,
|
|
3077
|
+
RIGHTS as aI,
|
|
3078
|
+
RIGHT_LABEL as aJ,
|
|
3079
|
+
RISK_TIER as aK,
|
|
3080
|
+
TEAM_NAME_MAX as aL,
|
|
3081
|
+
TIER_ORDER as aM,
|
|
3082
|
+
TeamDirectory as aN,
|
|
3083
|
+
VISUAL_CHECKS_DOCS as aO,
|
|
3084
|
+
VISUAL_CHECK_LABEL as aP,
|
|
3085
|
+
VISUAL_WORKFLOW_FILES as aQ,
|
|
3086
|
+
affectedContrast as aR,
|
|
3087
|
+
aliasOf as aS,
|
|
3088
|
+
appForProject as aT,
|
|
3089
|
+
appUrl as aU,
|
|
3090
|
+
approverEntries as aV,
|
|
3091
|
+
approverLists as aW,
|
|
3092
|
+
branchName as aX,
|
|
3093
|
+
branchSlug as aY,
|
|
3094
|
+
canShip as aZ,
|
|
3095
|
+
changeKind as a_,
|
|
3096
|
+
pieceRequest as aa,
|
|
3097
|
+
mergePiecesRecord as ab,
|
|
3098
|
+
defaultProduct as ac,
|
|
3099
|
+
productOfRepo as ad,
|
|
3100
|
+
baseBranchOf as ae,
|
|
3101
|
+
DEFAULT_TOKEN_PATHS as af,
|
|
3102
|
+
layoutOptions as ag,
|
|
3103
|
+
buildTokenSet as ah,
|
|
3104
|
+
readPreviewComment as ai,
|
|
3105
|
+
slugify as aj,
|
|
3106
|
+
defineConfig as ak,
|
|
3107
|
+
globToRegExp as al,
|
|
3108
|
+
ConfigError as am,
|
|
3109
|
+
DEFAULT_CHANGES_MODE as an,
|
|
3110
|
+
DEFAULT_OVERRIDE as ao,
|
|
3111
|
+
DEFAULT_PRODUCTS as ap,
|
|
3112
|
+
isGuardrail as aq,
|
|
3113
|
+
AAA_MIN as ar,
|
|
3114
|
+
AA_MIN as as,
|
|
3115
|
+
CHANGES_MODES as at,
|
|
3116
|
+
CONTRAST_CELL_MAX as au,
|
|
3117
|
+
CONTRAST_CHECKS_FILE as av,
|
|
3118
|
+
DEFAULT_GOVERNANCE as aw,
|
|
3119
|
+
DEFAULT_RIGHTS as ax,
|
|
3120
|
+
DEFAULT_VISUAL_IMPACT as ay,
|
|
3121
|
+
DTCG_TYPES as az,
|
|
3064
3122
|
modesOf as b,
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3123
|
+
previewLinksOf as b$,
|
|
3124
|
+
changesMode as b0,
|
|
3125
|
+
clearRawDeep as b1,
|
|
3126
|
+
colorToCss as b2,
|
|
3127
|
+
colorsEqual as b3,
|
|
3128
|
+
comboKey as b4,
|
|
3129
|
+
commitMessage as b5,
|
|
3130
|
+
compactJson as b6,
|
|
3131
|
+
composePrBody as b7,
|
|
3132
|
+
composite as b8,
|
|
3133
|
+
contextFor as b9,
|
|
3134
|
+
indexByPath as bA,
|
|
3135
|
+
inheritedTypeAt as bB,
|
|
3136
|
+
installCommand as bC,
|
|
3137
|
+
installCommandFromPreviewComment as bD,
|
|
3138
|
+
isTeamEntry as bE,
|
|
3139
|
+
isTokenFile as bF,
|
|
3140
|
+
isVercelComment as bG,
|
|
3141
|
+
kindForMin as bH,
|
|
3142
|
+
layeredParityIssues as bI,
|
|
3143
|
+
libraryIsPublic as bJ,
|
|
3144
|
+
luminance as bK,
|
|
3145
|
+
nearestQuestion as bL,
|
|
3146
|
+
neededBySection as bM,
|
|
3147
|
+
nodesEqual as bN,
|
|
3148
|
+
normalizeRights as bO,
|
|
3149
|
+
overrideKey as bP,
|
|
3150
|
+
ownerEntryProblems as bQ,
|
|
3151
|
+
pairKey as bR,
|
|
3152
|
+
parseDimension as bS,
|
|
3153
|
+
parseJson as bT,
|
|
3154
|
+
parseNeededBy as bU,
|
|
3155
|
+
parseOwnerEntry as bV,
|
|
3156
|
+
parseVercelComment as bW,
|
|
3157
|
+
pieceValueField as bX,
|
|
3158
|
+
piecesSection as bY,
|
|
3159
|
+
plainEqual as bZ,
|
|
3160
|
+
previewComment as b_,
|
|
3161
|
+
contrastLevel as ba,
|
|
3162
|
+
contrastPair as bb,
|
|
3163
|
+
contrastRatio as bc,
|
|
3164
|
+
defaultContext as bd,
|
|
3165
|
+
defaultTitle as be,
|
|
3166
|
+
detectLayout as bf,
|
|
3167
|
+
entriesFor as bg,
|
|
3168
|
+
entryLabel as bh,
|
|
3169
|
+
expandEntries as bi,
|
|
3170
|
+
expandOwners as bj,
|
|
3171
|
+
fieldChanges as bk,
|
|
3172
|
+
figmaPushNextLine as bl,
|
|
3173
|
+
figmaPushTierLabel as bm,
|
|
3174
|
+
findProduct as bn,
|
|
3175
|
+
findToken as bo,
|
|
3176
|
+
findVercelComment as bp,
|
|
3177
|
+
flattenLayerFile as bq,
|
|
3178
|
+
formatNumber as br,
|
|
3179
|
+
formatOwnerEntry as bs,
|
|
3180
|
+
fromPlain as bt,
|
|
3181
|
+
getChild as bu,
|
|
3182
|
+
getEntry as bv,
|
|
3183
|
+
groupsPhrase as bw,
|
|
3184
|
+
hasVisualWorkflow as bx,
|
|
3185
|
+
hexToRgba as by,
|
|
3186
|
+
holdersOf as bz,
|
|
3129
3187
|
TIER_AXIS as c,
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
3157
|
-
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3188
|
+
productForPlace as c0,
|
|
3189
|
+
productLabel as c1,
|
|
3190
|
+
productMarks as c2,
|
|
3191
|
+
productProblems as c3,
|
|
3192
|
+
productRepoOf as c4,
|
|
3193
|
+
productsOf as c5,
|
|
3194
|
+
projectOfLabel as c6,
|
|
3195
|
+
protectedBranchesOf as c7,
|
|
3196
|
+
renderedColor as c8,
|
|
3197
|
+
rgbaToDtcg as c9,
|
|
3198
|
+
valueIn as cA,
|
|
3199
|
+
valueToCss as cB,
|
|
3200
|
+
visualImpactProblems as cC,
|
|
3201
|
+
visualOffer as cD,
|
|
3202
|
+
whoCanShipSentence as cE,
|
|
3203
|
+
whyItExists as cF,
|
|
3204
|
+
rightsProblems as ca,
|
|
3205
|
+
sameProducts as cb,
|
|
3206
|
+
sameToken as cc,
|
|
3207
|
+
serializeJson as cd,
|
|
3208
|
+
shipPolicy as ce,
|
|
3209
|
+
snapshotUrl as cf,
|
|
3210
|
+
soloApprover as cg,
|
|
3211
|
+
soloOwnerOf as ch,
|
|
3212
|
+
soloOwnerSentence as ci,
|
|
3213
|
+
storybookUrl as cj,
|
|
3214
|
+
suggestNearestComment as ck,
|
|
3215
|
+
summarizeTokenChange as cl,
|
|
3216
|
+
tarballAssetName as cm,
|
|
3217
|
+
tarballUrl as cn,
|
|
3218
|
+
teamKey as co,
|
|
3219
|
+
teamKeyOf as cp,
|
|
3220
|
+
teamName as cq,
|
|
3221
|
+
teamUnreadableMessage as cr,
|
|
3222
|
+
teamsIn as cs,
|
|
3223
|
+
toAlias as ct,
|
|
3224
|
+
toMap as cu,
|
|
3225
|
+
toPlain as cv,
|
|
3226
|
+
tokenBump as cw,
|
|
3227
|
+
tokenNode as cx,
|
|
3228
|
+
unreadableShipTeams as cy,
|
|
3229
|
+
unreadableTeams as cz,
|
|
3167
3230
|
collectRefs as d,
|
|
3168
3231
|
evaluatePairs as e,
|
|
3169
3232
|
findReferenceProblems as f,
|
|
@@ -3188,4 +3251,4 @@ export {
|
|
|
3188
3251
|
parseColor as y,
|
|
3189
3252
|
rgbaToHex as z
|
|
3190
3253
|
};
|
|
3191
|
-
//# sourceMappingURL=prod-branch-
|
|
3254
|
+
//# sourceMappingURL=prod-branch-C7tphFAA.js.map
|