@terpjs/eslint-boundaries 0.24.0 → 0.25.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/package.json +2 -2
- package/src/layouts.js +4 -3
- package/src/spec.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@terpjs/eslint-boundaries",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Terp frontend boundary rules (as data) + the ESLint adapter: no cross-module imports, no package internals, design-token-only styling (no style/className/module stylesheets), token-styled components for raw HTML tags, router-only in-app links, generated-client-only, and browser XSS/navigation sink bans. Strict-only (no modes); governed opt-outs via terp-allow markers + the escape-hatch budget ratchet (terp-boundaries-budget).",
|
|
6
6
|
"main": "./src/index.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"typescript-eslint": "^8.69.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@terpjs/spec": "0.
|
|
28
|
+
"@terpjs/spec": "0.36.0",
|
|
29
29
|
"eslint": "^10.10.0",
|
|
30
30
|
"vitest": "^5.0.0"
|
|
31
31
|
},
|
package/src/layouts.js
CHANGED
|
@@ -43,8 +43,8 @@ export const LAYOUT_CONTRACTS = {
|
|
|
43
43
|
"sections and no Field at the top level, so the body is always a container rather " +
|
|
44
44
|
"than a loose run of controls; a settings body is Card sections and holds no " +
|
|
45
45
|
"collection; and a split " +
|
|
46
|
-
"body is two SplitPanes and nothing else. A
|
|
47
|
-
"the plain Page, which
|
|
46
|
+
"body is two SplitPanes and nothing else. A screen that needs no contract " +
|
|
47
|
+
"composes the plain Page, which this contract deliberately leaves unconstrained.",
|
|
48
48
|
slots: {
|
|
49
49
|
HubPage: {
|
|
50
50
|
components: { HubCard: "hubcard" },
|
|
@@ -127,7 +127,8 @@ export function slotViolationMessage(contractId, slotOwner, found) {
|
|
|
127
127
|
return (
|
|
128
128
|
`Layout contract "${contractId}": the ${slotOwner} body slot accepts only ` +
|
|
129
129
|
`${allowed.join(" / ")}; found ${found}. Compose the body from those react-core ` +
|
|
130
|
-
"components (recipe: terp guide layouts), move
|
|
130
|
+
"components (recipe: terp guide layouts), move content that needs no contract to a " +
|
|
131
|
+
"plain Page, " +
|
|
131
132
|
"or opt out on this line with a justified // terp-allow-layout-contract: <reason> " +
|
|
132
133
|
"marker (counted by the escape-hatch budget)."
|
|
133
134
|
);
|
package/src/spec.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* NOT by this package's own suite, which certification runs against candidate spec releases
|
|
17
17
|
* whose version is allowed to be newer).
|
|
18
18
|
*/
|
|
19
|
-
export const SPEC_VERSION = "0.
|
|
19
|
+
export const SPEC_VERSION = "0.36.0";
|
|
20
20
|
|
|
21
21
|
export const BOUNDARY_SPEC = {
|
|
22
22
|
/** Every app-authored TypeScript source file whose user-facing copy must be cataloged. */
|