@shapeshift-labs/frontier-lang-compiler 0.2.183 → 0.2.184
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.
|
@@ -16,9 +16,9 @@ function htmlCssProjectMergeMissingEvidenceRoutes(route, signals) {
|
|
|
16
16
|
[signals.htmlIdentityEvidence]: route('prove-html-identity-evidence', 'layout-markup-identity', 'supply-stable-element-identity-and-structural-addressability-evidence'),
|
|
17
17
|
[signals.cssSelectorTargetEvidence]: route('prove-css-selector-target-evidence', 'layout-style-targets', 'supply-selector-target-graph-and-rebase-evidence'),
|
|
18
18
|
[signals.htmlStructuralMerge]: route('admit-html-structural-merge', 'layout-markup-graph', 'attach-source-bound-html-runtime-proof-or-fix-duplicate-identity'),
|
|
19
|
-
[signals.cssCascadeMerge]: route('admit-css-cascade-merge', 'layout-style-graph', 'supply-css-
|
|
19
|
+
[signals.cssCascadeMerge]: route('admit-css-cascade-merge', 'layout-style-graph', 'supply-source-bound-css-scoped-cascade-proof'),
|
|
20
20
|
[signals.cssDependencyGraphEvidence]: route('prove-css-dependency-graph', 'layout-style-graph', 'supply-css-custom-property-animation-font-and-asset-dependency-graph'),
|
|
21
|
-
[signals.htmlCssBrowserRuntimeProof]: route('prove-html-css-browser-runtime', 'browser-proof', 'attach-browser-runtime-proof-bundle')
|
|
21
|
+
[signals.htmlCssBrowserRuntimeProof]: route('prove-html-css-browser-runtime', 'browser-proof', 'attach-source-bound-html-css-browser-runtime-proof-bundle')
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -42,9 +42,9 @@ function htmlCssProjectMergeMissingEvidenceItems(summary, signals, missingEviden
|
|
|
42
42
|
if (summary.htmlFiles && summary.htmlIdentityEvidenceFiles !== summary.htmlFiles) items.push(missingEvidenceItem({ code: signals.htmlIdentityEvidence, scope: 'layout-markup-identity', kind: 'html-identity-evidence', proofLevel: 'html-identity-evidence', action: 'review', summary: `HTML project merge has structural identity evidence for ${summary.htmlIdentityEvidenceFiles}/${summary.htmlFiles} file(s) with ${summary.htmlDuplicateIdentityEvidenceFiles ?? 0} duplicate identity evidence file(s); require parser-backed structural spans, unique explicit identity keys, and stable explicit/path identity accounting before structural admission.` }));
|
|
43
43
|
if (summary.cssFiles && (summary.cssSelectorTargetEvidenceFiles !== summary.cssFiles || summary.cssSelectorTargetConflictFiles)) items.push(missingEvidenceItem({ code: signals.cssSelectorTargetEvidence, scope: 'layout-style-targets', kind: 'css-selector-target-evidence', proofLevel: 'css-selector-target-evidence', action: 'review', summary: `CSS project merge has selector-target evidence for ${summary.cssSelectorTargetEvidenceFiles}/${summary.cssFiles} file(s) with ${summary.cssSelectorTargetConflictFiles} selector target conflict(s); require selector target graph and proven rebase before target-moving merges.` }));
|
|
44
44
|
if (summary.htmlBlockedFiles) items.push(missingEvidenceItem({ code: signals.htmlStructuralMerge, scope: 'layout-markup-graph', kind: 'html-structural-merge-proof', proofLevel: 'html-structural-merge', action: 'review', summary: `HTML project merge has ${summary.htmlBlockedFiles} blocked file(s); for runtime-boundary changes attach htmlRuntimeBoundaryProofsByPath[sourcePath] with exact base/worker/head/output binding, and for duplicate identity keys make explicit HTML identities unique before admission.`, suggestedInput: { htmlRuntimeBoundaryProofsByPath: true, htmlUniqueExplicitIdentityKeys: true } }));
|
|
45
|
-
if (summary.cssBlockedFiles) items.push(missingEvidenceItem({ code: signals.cssCascadeMerge, scope: 'layout-style-graph', kind: 'css-cascade-merge-proof', proofLevel: 'css-cascade-merge', action: 'review', summary: `CSS project merge has ${summary.cssBlockedFiles} blocked file(s), including ${summary.cssDuplicateCascadeKeyBlockedFiles ?? 0} duplicate cascade-key blocker(s), ${summary.cssShorthandExpansionBlockedFiles ?? 0} shorthand expansion blocker(s), and ${summary.cssScopedCascadeBlockedFiles} scoped cascade proof block(s); supply parser/cascade/scope evidence, require deterministic shorthand expansion evidence for changed box shorthands, require ordered cascade occurrence evidence for duplicate same-property declarations, require
|
|
45
|
+
if (summary.cssBlockedFiles) items.push(missingEvidenceItem({ code: signals.cssCascadeMerge, scope: 'layout-style-graph', kind: 'css-cascade-merge-proof', proofLevel: 'css-cascade-merge', action: 'review', summary: `CSS project merge has ${summary.cssBlockedFiles} blocked file(s), including ${summary.cssDuplicateCascadeKeyBlockedFiles ?? 0} duplicate cascade-key blocker(s), ${summary.cssShorthandExpansionBlockedFiles ?? 0} shorthand expansion blocker(s), and ${summary.cssScopedCascadeBlockedFiles} scoped cascade proof block(s); supply parser/cascade/scope evidence, require deterministic shorthand expansion evidence for changed box shorthands, require ordered cascade occurrence evidence for duplicate same-property declarations, require source-bound scoped cascade proofs with exact base/worker/head/output hashes for changed declarations under @media/@supports/@container/@layer/@scope or nested scopes, and keep browser claims false until runtime proof passes.` }));
|
|
46
46
|
if (summary.cssDependencySurfaceFiles && (summary.cssDependencyGraphEvidenceFiles !== summary.cssDependencySurfaceFiles || summary.cssDependencyGraphMissingProofFiles || summary.cssDependencyGraphBlockedFiles)) items.push(missingEvidenceItem({ code: signals.cssDependencyGraphEvidence, scope: 'layout-style-graph', kind: 'css-dependency-graph-evidence', proofLevel: 'css-dependency-graph', action: 'review', summary: `CSS project merge has dependency graph evidence for ${summary.cssDependencyGraphEvidenceFiles}/${summary.cssDependencySurfaceFiles} dependency-surface file(s), ${summary.cssDependencyGraphMissingProofFiles} missing dependency graph proof(s), and ${summary.cssDependencyGraphBlockedFiles} dependency blocker(s); require custom property, var() fallback, @keyframes/animation-name, @font-face, and url() asset graph evidence before cascade/browser equivalence claims.`, suggestedInput: { cssDependencyGraphEvidence: true } }));
|
|
47
|
-
if (summary.htmlCssMergedFiles && !summary.htmlCssBrowserRuntimeProofs) items.push(missingEvidenceItem({ code: signals.htmlCssBrowserRuntimeProof, scope: 'browser-proof', kind: 'browser-runtime-proof', proofLevel: 'browser-runtime-proof', action: 'review', summary: 'HTML/CSS structural source merge was available, but browser DOM/cascade/layout/runtime proof was not attached; keep browser equivalence claims false.', suggestedInput: { browserRuntimeProof: true } }));
|
|
47
|
+
if (summary.htmlCssMergedFiles && !summary.htmlCssBrowserRuntimeProofs) items.push(missingEvidenceItem({ code: signals.htmlCssBrowserRuntimeProof, scope: 'browser-proof', kind: 'browser-runtime-proof', proofLevel: 'browser-runtime-proof', action: 'review', summary: 'HTML/CSS structural source merge was available, but browser DOM/cascade/layout/runtime proof was not attached; attach htmlRuntimeBoundaryProofsByPath for HTML runtime boundaries or cssCascadeRuntimeProofs for CSS runtime at-rules such as @keyframes, @property, and @page, and keep browser equivalence claims false until proof passes.', suggestedInput: { browserRuntimeProof: true } }));
|
|
48
48
|
return items;
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -100,7 +100,7 @@ function hasCssScopedCascadeScope(file) {
|
|
|
100
100
|
return cssScopedRuleCount(file) > 0 || hasCssScopedCascadeProofReason(file) || file?.result?.parserEvidence?.scopedCascadeGraphHashPresent === false;
|
|
101
101
|
}
|
|
102
102
|
function hasCssScopedCascadeEvidence(file) {
|
|
103
|
-
return hasCssScopedCascadeScope(file) && !hasCssScopedCascadeMissingProof(file) && file
|
|
103
|
+
return hasCssScopedCascadeScope(file) && !hasCssScopedCascadeMissingProof(file) && hasCssScopedCascadeProof(file);
|
|
104
104
|
}
|
|
105
105
|
function hasCssScopedCascadeMissingProof(file) {
|
|
106
106
|
return hasCssScopedCascadeProofReason(file);
|
|
@@ -108,6 +108,10 @@ function hasCssScopedCascadeMissingProof(file) {
|
|
|
108
108
|
function hasCssScopedCascadeProofReason(file) {
|
|
109
109
|
return (file?.result?.conflicts ?? file?.conflicts ?? []).some((conflict) => ScopedCascadeMissingProofReasonCodes.has(conflict?.details?.reasonCode));
|
|
110
110
|
}
|
|
111
|
+
function hasCssScopedCascadeProof(file) {
|
|
112
|
+
return [...(file?.result?.scopedCascadeProofs ?? []), ...(file?.result?.admission?.cssScopedCascadeProofs ?? file?.admission?.cssScopedCascadeProofs ?? [])]
|
|
113
|
+
.some((proof) => proof?.status === 'passed' && ScopedCascadeMissingProofReasonCodes.has(proof.reasonCode));
|
|
114
|
+
}
|
|
111
115
|
function cssScopedRuleCount(file) {
|
|
112
116
|
const sides = Object.values(file?.result?.selectorTargetEvidence?.sides ?? {});
|
|
113
117
|
return sides.reduce((count, side) => Math.max(count, side?.scopedRuleCount ?? 0), 0);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapeshift-labs/frontier-lang-compiler",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.184",
|
|
4
4
|
"description": "Compiler facade for Frontier Lang source documents and language projection adapters.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@shapeshift-labs/frontier-lang-c": "0.2.9",
|
|
65
65
|
"@shapeshift-labs/frontier-lang-checker": "0.3.8",
|
|
66
|
-
"@shapeshift-labs/frontier-lang-css": "^0.1.
|
|
66
|
+
"@shapeshift-labs/frontier-lang-css": "^0.1.22",
|
|
67
67
|
"@shapeshift-labs/frontier-lang-html": "^0.1.14",
|
|
68
68
|
"@shapeshift-labs/frontier-lang-javascript": "0.2.9",
|
|
69
69
|
"@shapeshift-labs/frontier-lang-kernel": "0.3.12",
|