@barefootjs/rust 0.31.5 → 0.31.7
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/adapter/index.js +2 -1
- package/dist/adapter/minijinja-adapter.d.ts.map +1 -1
- package/dist/conformance-pins.d.ts +6 -8
- package/dist/conformance-pins.d.ts.map +1 -1
- package/dist/index.js +15 -7
- package/dist/render-divergences.d.ts +6 -11
- package/dist/render-divergences.d.ts.map +1 -1
- package/dist/vite.js +6 -1
- package/package.json +5 -5
- package/src/adapter/minijinja-adapter.ts +1 -0
- package/src/conformance-pins.ts +33 -123
- package/src/render-divergences.ts +6 -16
package/dist/adapter/index.js
CHANGED
|
@@ -188638,7 +188638,8 @@ ${whenTrue}
|
|
|
188638
188638
|
message: `Loop array \`${arrayName}\` is a local computed value (\`${arrayConst.value}\`) that the MiniJinja adapter cannot bind as a template variable — only numeric/string-literal locals inline at their use site.`,
|
|
188639
188639
|
loc: loop.loc ?? { file: this.componentName + ".tsx", start: { line: 1, column: 0 }, end: { line: 1, column: 0 } },
|
|
188640
188640
|
suggestion: {
|
|
188641
|
-
message: "Pre-compute the array server-side and pass it as a prop, or mark the loop position as @client-only so it runs in JS on the client."
|
|
188641
|
+
message: "Pre-compute the array server-side and pass it as a prop, or mark the loop position as @client-only so it runs in JS on the client.",
|
|
188642
|
+
escape: [{ kind: "prop-precompute" }, { kind: "client-directive" }]
|
|
188642
188643
|
}
|
|
188643
188644
|
});
|
|
188644
188645
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minijinja-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/minijinja-adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"minijinja-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/minijinja-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Per-fixture build-time contracts for shapes
|
|
3
|
-
* refuses to lower.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* /
|
|
7
|
-
*
|
|
8
|
-
* own conformance test (as `expectedDiagnostics`) and by `bf compat`
|
|
9
|
-
* (issue-URL attribution).
|
|
2
|
+
* Per-fixture build-time contracts for shapes this adapter intentionally
|
|
3
|
+
* refuses to lower. Declared per adapter, not on the shared fixtures, so
|
|
4
|
+
* adding a new adapter never touches a cross-adapter file. Per-fixture
|
|
5
|
+
* rationale lives on each fixture's docstring
|
|
6
|
+
* (`packages/adapter-tests/fixtures/<id>.ts`) and spec/callback-fidelity.md;
|
|
7
|
+
* comments below only mark where this adapter's set diverges from siblings.
|
|
10
8
|
*/
|
|
11
9
|
import type { ConformancePins } from '@barefootjs/jsx';
|
|
12
10
|
export declare const conformancePins: ConformancePins;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformance-pins.d.ts","sourceRoot":"","sources":["../src/conformance-pins.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"conformance-pins.d.ts","sourceRoot":"","sources":["../src/conformance-pins.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,eAAO,MAAM,eAAe,EAAE,eAgD7B,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -188638,7 +188638,8 @@ ${whenTrue}
|
|
|
188638
188638
|
message: `Loop array \`${arrayName}\` is a local computed value (\`${arrayConst.value}\`) that the MiniJinja adapter cannot bind as a template variable — only numeric/string-literal locals inline at their use site.`,
|
|
188639
188639
|
loc: loop.loc ?? { file: this.componentName + ".tsx", start: { line: 1, column: 0 }, end: { line: 1, column: 0 } },
|
|
188640
188640
|
suggestion: {
|
|
188641
|
-
message: "Pre-compute the array server-side and pass it as a prop, or mark the loop position as @client-only so it runs in JS on the client."
|
|
188641
|
+
message: "Pre-compute the array server-side and pass it as a prop, or mark the loop position as @client-only so it runs in JS on the client.",
|
|
188642
|
+
escape: [{ kind: "prop-precompute" }, { kind: "client-directive" }]
|
|
188642
188643
|
}
|
|
188643
188644
|
});
|
|
188644
188645
|
}
|
|
@@ -189226,18 +189227,25 @@ var conformancePins = {
|
|
|
189226
189227
|
"tag-cloud": [{ code: "BF021", severity: "error" }],
|
|
189227
189228
|
"preamble-cells": [{ code: "BF021", severity: "error" }],
|
|
189228
189229
|
"static-array-from-props": [
|
|
189229
|
-
{
|
|
189230
|
+
{
|
|
189231
|
+
code: "BF101",
|
|
189232
|
+
severity: "error",
|
|
189233
|
+
issue: "https://github.com/piconic-ai/barefootjs/issues/2321"
|
|
189234
|
+
}
|
|
189230
189235
|
],
|
|
189231
189236
|
"static-array-from-props-with-component": [
|
|
189232
|
-
{
|
|
189237
|
+
{
|
|
189238
|
+
code: "BF101",
|
|
189239
|
+
severity: "error",
|
|
189240
|
+
issue: "https://github.com/piconic-ai/barefootjs/issues/2321"
|
|
189241
|
+
}
|
|
189233
189242
|
],
|
|
189234
189243
|
"filter-nested-callback-predicate": [
|
|
189235
189244
|
{ code: "BF101", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2320" }
|
|
189236
189245
|
],
|
|
189237
|
-
"filter-nested-find-predicate": [
|
|
189238
|
-
|
|
189239
|
-
]
|
|
189240
|
-
"date-method-uncatalogued": [{ code: "BF021", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2356" }]
|
|
189246
|
+
"filter-nested-find-predicate": [{ code: "BF101", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2320" }],
|
|
189247
|
+
"date-method-uncatalogued": [{ code: "BF021", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2356" }],
|
|
189248
|
+
"rich-prop-client-read": [{ code: "BF049", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2648" }]
|
|
189241
189249
|
};
|
|
189242
189250
|
// src/render-divergences.ts
|
|
189243
189251
|
var renderDivergences = {};
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Fixtures that compile clean on this adapter but render divergent from the
|
|
3
|
+
* Hono reference through the real `bf-render` minijinja binary. The
|
|
4
|
+
* conformance `skipJsx` set and `packages/compat`'s published
|
|
5
|
+
* fixture-divergences both derive from this one object, so the skip list
|
|
6
|
+
* and the declaration can't drift. Keep the file even when the set is
|
|
7
|
+
* empty — the next divergence lands here, not in a re-created file.
|
|
6
8
|
* (`string-concat-plus` is NOT here — minijinja's `+` concatenates
|
|
7
9
|
* strings, unlike Perl/PHP/Twig.)
|
|
8
|
-
*
|
|
9
|
-
* Consumed by this package's conformance test (its `skipJsx` set is
|
|
10
|
-
* derived from these keys, so the skip list and this declaration can't
|
|
11
|
-
* drift) and by `packages/compat`, which publishes the entries in the
|
|
12
|
-
* fixture-divergences section of `ui/compat.lock.json` — surfaced on
|
|
13
|
-
* the docs compatibility-matrix page. Graduating an entry means fixing
|
|
14
|
-
* the adapter (or the shared compiler layer) and deleting the line.
|
|
15
10
|
*/
|
|
16
11
|
import type { RenderDivergences } from '@barefootjs/jsx';
|
|
17
12
|
export declare const renderDivergences: RenderDivergences;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-divergences.d.ts","sourceRoot":"","sources":["../src/render-divergences.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"render-divergences.d.ts","sourceRoot":"","sources":["../src/render-divergences.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAExD,eAAO,MAAM,iBAAiB,EAAE,iBAC/B,CAAA"}
|
package/dist/vite.js
CHANGED
|
@@ -2310,6 +2310,7 @@ var ErrorCodes = {
|
|
|
2310
2310
|
COMPONENT_REQUIRED_PROP_MISSING: "BF046",
|
|
2311
2311
|
JSX_BRANCH_LOCAL_IN_CALLBACK: "BF047",
|
|
2312
2312
|
SIBLING_COMPONENT_NOT_COMPILED: "BF048",
|
|
2313
|
+
RICH_TYPE_PROP_NOT_HYDRATABLE: "BF049",
|
|
2313
2314
|
SHARED_PROGRAM_REQUIRED: "BF050",
|
|
2314
2315
|
WRONG_PACKAGE_IMPORT: "BF051",
|
|
2315
2316
|
BUILTIN_REQUIRES_IMPORT: "BF054",
|
|
@@ -2340,6 +2341,7 @@ var errorMessages = {
|
|
|
2340
2341
|
[ErrorCodes.COMPONENT_REQUIRED_PROP_MISSING]: "Built-in component is missing a required prop.",
|
|
2341
2342
|
[ErrorCodes.JSX_BRANCH_LOCAL_IN_CALLBACK]: "JSX-typed local declared inside an `if`-block cannot be referenced from a callback body (ref / event handler). " + "Render it as a child instead: `<div ref={...}>{local}</div>`.",
|
|
2342
2343
|
[ErrorCodes.SIBLING_COMPONENT_NOT_COMPILED]: "Referenced component did not compile to a template, so this reference would throw " + "`ReferenceError` at render time. Multi-return JSX dispatch (a `switch` or `if`/`else` " + "chain across multiple JSX-returning branches) cannot compile as a component in a " + `'use client' file. Extract it to a separate non-"use client" file (where it is preserved ` + "verbatim, see #932), or rewrite it as a single-return ternary/conditional chain so the " + "component pipeline can compile it.",
|
|
2344
|
+
[ErrorCodes.RICH_TYPE_PROP_NOT_HYDRATABLE]: "Rich-typed prop cannot cross the bf-p hydration boundary as JSON.",
|
|
2343
2345
|
[ErrorCodes.SHARED_PROGRAM_REQUIRED]: "Shared ts.Program required for type-based reactivity classification. This source imports a Reactive<T>-branded library (e.g. @barefootjs/form) whose getters cannot be classified by regex alone. Pass `options.program` (built via `createProgramForCorpus`) so the analyzer can resolve the brand through the TypeChecker.",
|
|
2344
2346
|
[ErrorCodes.WRONG_PACKAGE_IMPORT]: "Import from wrong package.",
|
|
2345
2347
|
[ErrorCodes.BUILTIN_REQUIRES_IMPORT]: "Built-in <Async> / <Region> must be imported from '@barefootjs/client'. " + "The compiler recognises these tags by their import (not by tag name), " + "so an unimported tag with this name is treated as an undeclared component.",
|
|
@@ -2373,6 +2375,8 @@ var HOST_RICH_TYPE_NAMES = new Set([
|
|
|
2373
2375
|
"BigInt",
|
|
2374
2376
|
"Function"
|
|
2375
2377
|
]);
|
|
2378
|
+
var JSON_REVIVABLE_RICH_TYPE_NAMES = new Set(["Date", "URL"]);
|
|
2379
|
+
var JSON_UNSAFE_RICH_TYPE_NAMES = new Set([...HOST_RICH_TYPE_NAMES].filter((n) => !JSON_REVIVABLE_RICH_TYPE_NAMES.has(n)));
|
|
2376
2380
|
function baseTypeName(raw) {
|
|
2377
2381
|
const idx = raw.indexOf("<");
|
|
2378
2382
|
return (idx === -1 ? raw : raw.slice(0, idx)).trim();
|
|
@@ -6376,7 +6380,8 @@ ${whenTrue}
|
|
|
6376
6380
|
message: `Loop array \`${arrayName}\` is a local computed value (\`${arrayConst.value}\`) that the MiniJinja adapter cannot bind as a template variable — only numeric/string-literal locals inline at their use site.`,
|
|
6377
6381
|
loc: loop.loc ?? { file: this.componentName + ".tsx", start: { line: 1, column: 0 }, end: { line: 1, column: 0 } },
|
|
6378
6382
|
suggestion: {
|
|
6379
|
-
message: "Pre-compute the array server-side and pass it as a prop, or mark the loop position as @client-only so it runs in JS on the client."
|
|
6383
|
+
message: "Pre-compute the array server-side and pass it as a prop, or mark the loop position as @client-only so it runs in JS on the client.",
|
|
6384
|
+
escape: [{ kind: "prop-precompute" }, { kind: "client-directive" }]
|
|
6380
6385
|
}
|
|
6381
6386
|
});
|
|
6382
6387
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@barefootjs/rust",
|
|
3
|
-
"version": "0.31.
|
|
3
|
+
"version": "0.31.7",
|
|
4
4
|
"description": "minijinja (Rust) adapter for BarefootJS — compiles IR to .j2 templates and ships a Rust rendering runtime (packages/adapter-rust/runtime/); runs under any Rust web framework (axum, etc.)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"directory": "packages/adapter-rust"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@barefootjs/shared": "0.31.
|
|
57
|
+
"@barefootjs/shared": "0.31.7"
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
60
|
"@barefootjs/jsx": ">=0.2.0",
|
|
@@ -71,9 +71,9 @@
|
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"@barefootjs/adapter-tests": "0.1.0",
|
|
74
|
-
"@barefootjs/jsx": "0.31.
|
|
75
|
-
"@barefootjs/vite": "0.31.
|
|
76
|
-
"@barefootjs/client": "0.31.
|
|
74
|
+
"@barefootjs/jsx": "0.31.7",
|
|
75
|
+
"@barefootjs/vite": "0.31.7",
|
|
76
|
+
"@barefootjs/client": "0.31.7",
|
|
77
77
|
"typescript": "^5.0.0",
|
|
78
78
|
"vite": "^6.0.0"
|
|
79
79
|
}
|
|
@@ -891,6 +891,7 @@ export class MinijinjaAdapter extends BaseAdapter implements IRNodeEmitter<Jinja
|
|
|
891
891
|
suggestion: {
|
|
892
892
|
message:
|
|
893
893
|
'Pre-compute the array server-side and pass it as a prop, or mark the loop position as @client-only so it runs in JS on the client.',
|
|
894
|
+
escape: [{ kind: 'prop-precompute' }, { kind: 'client-directive' }],
|
|
894
895
|
},
|
|
895
896
|
})
|
|
896
897
|
}
|
package/src/conformance-pins.ts
CHANGED
|
@@ -1,150 +1,60 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Per-fixture build-time contracts for shapes
|
|
3
|
-
* refuses to lower.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* /
|
|
7
|
-
*
|
|
8
|
-
* own conformance test (as `expectedDiagnostics`) and by `bf compat`
|
|
9
|
-
* (issue-URL attribution).
|
|
2
|
+
* Per-fixture build-time contracts for shapes this adapter intentionally
|
|
3
|
+
* refuses to lower. Declared per adapter, not on the shared fixtures, so
|
|
4
|
+
* adding a new adapter never touches a cross-adapter file. Per-fixture
|
|
5
|
+
* rationale lives on each fixture's docstring
|
|
6
|
+
* (`packages/adapter-tests/fixtures/<id>.ts`) and spec/callback-fidelity.md;
|
|
7
|
+
* comments below only mark where this adapter's set diverges from siblings.
|
|
10
8
|
*/
|
|
11
9
|
|
|
12
10
|
import type { ConformancePins } from '@barefootjs/jsx'
|
|
13
11
|
|
|
14
12
|
export const conformancePins: ConformancePins = {
|
|
15
|
-
// Off-subset filter predicate (`typeof`) the compiler can't lower; a
|
|
16
|
-
// JS-runtime target runs it, a DSL adapter surfaces BF021 + `/* @client */`.
|
|
17
|
-
// See spec/callback-fidelity.md.
|
|
18
13
|
'filter-typeof-predicate': [{ code: 'BF021', severity: 'error' }],
|
|
19
14
|
'map-array-builder-body': [{ code: 'BF021', severity: 'error' }],
|
|
20
15
|
'map-array-builder-escaping': [{ code: 'BF021', severity: 'error' }],
|
|
21
|
-
// `.fill(value)` mutates the receiver in place — no template lowering
|
|
22
|
-
// on any DSL adapter; a JS-runtime target runs it, a DSL adapter
|
|
23
|
-
// surfaces BF101 + `/* @client */`. See spec/callback-fidelity.md.
|
|
24
16
|
'fill-unsupported': [{ code: 'BF101', severity: 'error' }],
|
|
25
|
-
// Off-subset `.find()` / `.some()` / `.every()` predicate (`typeof`) the
|
|
26
|
-
// compiler can't lower; a JS-runtime target runs it, a DSL adapter
|
|
27
|
-
// surfaces BF101 + `/* @client */`. See spec/callback-fidelity.md.
|
|
28
17
|
'find-typeof-predicate': [{ code: 'BF101', severity: 'error' }],
|
|
29
18
|
'some-typeof-predicate': [{ code: 'BF101', severity: 'error' }],
|
|
30
19
|
'every-typeof-predicate': [{ code: 'BF101', severity: 'error' }],
|
|
31
|
-
// Off-subset `.reduce()` / `.reduceRight()` body / `.flatMap()`
|
|
32
|
-
// projection (`typeof`) the compiler can't lower; a JS-runtime target
|
|
33
|
-
// runs it, a DSL adapter surfaces BF101 + `/* @client */`.
|
|
34
|
-
// See spec/callback-fidelity.md.
|
|
35
20
|
'reduce-typeof-body': [{ code: 'BF101', severity: 'error' }],
|
|
36
21
|
'reduce-right-typeof-body': [{ code: 'BF101', severity: 'error' }],
|
|
37
22
|
'flatmap-typeof-projection': [{ code: 'BF101', severity: 'error' }],
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
//
|
|
41
|
-
// `/* @client */` (pre-gate this emitted an empty loop body — silent
|
|
42
|
-
// divergence). A pure PROJECTION body (`flatMap(it => it.tags.map(...))`,
|
|
43
|
-
// e.g. the `flatmap-expression-body` fixture) is NOT pinned: it lowers to
|
|
44
|
-
// neutral nested-loop IR this adapter templatizes natively.
|
|
45
|
-
// See spec/callback-fidelity.md.
|
|
23
|
+
// A pure PROJECTION flatMap body (`flatmap-expression-body`) is NOT pinned —
|
|
24
|
+
// it lowers to neutral nested-loop IR this adapter templatizes natively;
|
|
25
|
+
// only the statement-carrying body refuses.
|
|
46
26
|
'tag-cloud': [{ code: 'BF021', severity: 'error' }],
|
|
47
|
-
// A keyed `.map()` row body whose preamble builds a JSX leaf from item
|
|
48
|
-
// state (`cells.push(<td>{stateLabel}</td>)`) embedded as `{cells}` — the
|
|
49
|
-
// Stage 3 array-builder carrier, jsRuntime-only: a JS runtime runs it
|
|
50
|
-
// verbatim (and patches the region on same-key updates, #2389), a DSL
|
|
51
|
-
// adapter refuses with BF021 + `/* @client */`. See spec/callback-fidelity.md.
|
|
52
27
|
'preamble-cells': [{ code: 'BF021', severity: 'error' }],
|
|
53
|
-
//
|
|
54
|
-
//
|
|
55
|
-
//
|
|
56
|
-
//
|
|
57
|
-
// fixtures are still skipped on this adapter via `render-divergences.ts`
|
|
58
|
-
// — #2209 — for an unrelated signal-seeding gap.)
|
|
59
|
-
// `static-array-children` no longer pinned (#2208) — `items`'s
|
|
60
|
-
// array-literal initializer is now recognized as fully-static
|
|
61
|
-
// (`resolveStaticLoopSource`) and inlined as a native MiniJinja
|
|
62
|
-
// list/dict literal in the `{% for %}` header, the same way a
|
|
63
|
-
// module-scope const's value is already seeded.
|
|
64
|
-
// The `([emoji, users]) => ...` / `([id, t]) => ...` params in these two
|
|
65
|
-
// fixtures no longer trip BF104 — the destructure itself now lowers
|
|
66
|
-
// cleanly to a native `{% set %}` accessor (#2087 Phase B). But both
|
|
67
|
-
// fixtures' loop array is `entries`, a bare identifier bound to a
|
|
68
|
-
// function-scope local const with a NON-inlineable initializer
|
|
69
|
-
// (`Object.entries(props.x ?? {}).filter(...)`) — a pre-existing,
|
|
70
|
-
// orthogonal limitation this adapter has always had (it only ever
|
|
71
|
-
// INLINES a local const's value at its use site — numeric/string
|
|
72
|
-
// literal, or a static-record-literal lookup — never binds one as a
|
|
73
|
-
// `{% set %}` template local), just never reachable before because the
|
|
74
|
-
// narrower pre-#2087 gate refused the destructure param first. Left
|
|
75
|
-
// unhandled it would silently render an EMPTY list (minijinja's
|
|
76
|
-
// `UndefinedBehavior::Chainable` tolerates iterating an unbound name as
|
|
77
|
-
// zero iterations) instead of failing loudly, so `renderLoop` in
|
|
78
|
-
// `minijinja-adapter.ts` now detects this shape and raises BF101
|
|
79
|
-
// instead — see the "Loop array `<name>` is a local computed value"
|
|
80
|
-
// diagnostic (mirrors adapter-jinja's identical check). Fixing the
|
|
81
|
-
// underlying gap (computed-array-from-props as a loop source) is out of
|
|
82
|
-
// scope for #2087; tracked as a follow-up at
|
|
83
|
-
// https://github.com/piconic-ai/barefootjs/issues/2321.
|
|
28
|
+
// Refused for the COMPUTED loop array (`const entries = Object.entries(...)
|
|
29
|
+
// .filter(...)`), not the destructure param (that lowers, #2087) — loud
|
|
30
|
+
// BF101 instead of minijinja's UndefinedBehavior::Chainable silently
|
|
31
|
+
// iterating zero times.
|
|
84
32
|
'static-array-from-props': [
|
|
85
|
-
{
|
|
33
|
+
{
|
|
34
|
+
code: 'BF101',
|
|
35
|
+
severity: 'error',
|
|
36
|
+
issue: 'https://github.com/piconic-ai/barefootjs/issues/2321',
|
|
37
|
+
},
|
|
86
38
|
],
|
|
87
|
-
//
|
|
88
|
-
// (imported child in the loop body) no longer does now that the
|
|
89
|
-
// conformance harness passes `siblingTemplatesRegistered: true` (#2205).
|
|
39
|
+
// No BF103 pin: the harness registers sibling templates (#2205).
|
|
90
40
|
'static-array-from-props-with-component': [
|
|
91
|
-
{
|
|
41
|
+
{
|
|
42
|
+
code: 'BF101',
|
|
43
|
+
severity: 'error',
|
|
44
|
+
issue: 'https://github.com/piconic-ai/barefootjs/issues/2321',
|
|
45
|
+
},
|
|
92
46
|
],
|
|
93
|
-
//
|
|
94
|
-
//
|
|
95
|
-
//
|
|
96
|
-
// (`minijinjaAccessorFromSegments`), array-rest via the runtime's
|
|
97
|
-
// `bf.slice`, and object-rest (read via member access OR spread onto an
|
|
98
|
-
// intrinsic element) via a TRUE residual dict from the new `bf.omit`
|
|
99
|
-
// runtime helper. No `expectedDiagnostics` pins remain for any of the
|
|
100
|
-
// `rest-destructure-*-in-map` / `destructure-*-in-map` fixtures — see
|
|
101
|
-
// `rest-destructure-object-spread-in-map` for the residual-spread case
|
|
102
|
-
// and `destructure-array-index-in-map` / `destructure-nested-object-in-map`
|
|
103
|
-
// for the no-rest fixed-binding shapes.
|
|
104
|
-
// (button/kbd graduated: the site/ui Button/Kbd `<Slot>` `{...props}` /
|
|
105
|
-
// `{...children.props}` component-spread now lowers via nested
|
|
106
|
-
// `dict(base, **top)` calls — see `minijinja-adapter.ts`'s
|
|
107
|
-
// `renderComponent` — instead of refusing with BF101, so these two no
|
|
108
|
-
// longer need a pin here.)
|
|
109
|
-
// (`tagged-template-classname` graduated by #2092 — the tag resolves
|
|
110
|
-
// through the interleave-tag catalogue and desugars to an untagged
|
|
111
|
-
// template literal, so it lowers like any other className template.)
|
|
112
|
-
// #2038: a filter predicate whose body contains a NESTED callback call
|
|
113
|
-
// (`t => !picked().some(p => …)` / `t => picked().find(p => …)`). Jinja
|
|
114
|
-
// has no inline comprehension-with-nested-callback form usable from the
|
|
115
|
-
// evaluator-JSON `*_eval` payload mechanism (this adapter's ONLY
|
|
116
|
-
// higher-order-callback lowering path — see `minijinja-adapter.ts`'s file
|
|
117
|
-
// header, divergence 3), so the compiler is loud (BF101) instead of
|
|
118
|
-
// lossy, same as xslate. The `/* @client */` twin
|
|
119
|
-
// (`filter-nested-callback-predicate-client`) has no pin here: it must
|
|
120
|
-
// render clean on every adapter, which asserts the suppression contract.
|
|
121
|
-
// Faithful lowering tracked: https://github.com/piconic-ai/barefootjs/issues/2320 (successor to #2038)
|
|
47
|
+
// #2038: no inline comprehension-with-nested-callback form via the
|
|
48
|
+
// evaluator-JSON `*_eval` mechanism (`minijinja-adapter.ts`'s header,
|
|
49
|
+
// divergence 3) — loud BF101 instead of lossy.
|
|
122
50
|
'filter-nested-callback-predicate': [
|
|
123
51
|
{ code: 'BF101', severity: 'error', issue: 'https://github.com/piconic-ai/barefootjs/issues/2320' },
|
|
124
52
|
],
|
|
125
|
-
'filter-nested-find-predicate': [
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
//
|
|
129
|
-
//
|
|
130
|
-
// refuses them), Jinja lowers them to `bf.find_eval` / `find_index_eval`
|
|
131
|
-
// / etc. via the same evaluator-JSON mechanism as `.filter` / `.every` /
|
|
132
|
-
// `.some`, so they render. Only the NESTED-in-a-predicate form above is
|
|
133
|
-
// refused (#2038).
|
|
134
|
-
// `array-map-function-reference` no longer pinned — a bare-identifier
|
|
135
|
-
// `.map(format)` callback now resolves one hop to its declaration
|
|
136
|
-
// (`resolveCallbackMethodFunctionReferences`, #2206), the same mechanism
|
|
137
|
-
// #2090 established for `.sort(fnref)`.
|
|
138
|
-
// `dangerous-inner-html` no longer pinned — a compile-time string-literal
|
|
139
|
-
// `dangerouslySetInnerHTML={{ __html: '...' }}` is spliced directly into
|
|
140
|
-
// the template as trusted raw text (`resolveDangerousInnerHtml`, #2207).
|
|
141
|
-
// A dynamic/signal-derived value now lowers through MiniJinja's `| safe`
|
|
142
|
-
// filter (#2319) — `dangerous-inner-html-dynamic` is no longer pinned and
|
|
143
|
-
// renders to Hono parity, same as the static case.
|
|
144
|
-
// #2273: a method call on a prop typed as a built-in host rich type
|
|
145
|
-
// (Date, Map, …) has no catalogued lowering in any adapter — this is a
|
|
146
|
-
// compiler-level refusal (`checkRichTypeMethodCalls`, wired ahead of
|
|
147
|
-
// `adapter.generate()`), not an adapter-specific gap, so it is pinned
|
|
148
|
-
// identically across every adapter package including Hono.
|
|
53
|
+
'filter-nested-find-predicate': [{ code: 'BF101', severity: 'error', issue: 'https://github.com/piconic-ai/barefootjs/issues/2320' }],
|
|
54
|
+
// Top-level `.find`/`.findIndex`/`.findLast`/`.findLastIndex` are NOT
|
|
55
|
+
// pinned — unlike mojo (which refuses them), minijinja lowers them via the
|
|
56
|
+
// same evaluator-JSON mechanism as `.filter`/`.some`. Only the nested form
|
|
57
|
+
// above is refused.
|
|
149
58
|
'date-method-uncatalogued': [{ code: 'BF021', severity: 'error', issue: 'https://github.com/piconic-ai/barefootjs/issues/2356' }],
|
|
59
|
+
'rich-prop-client-read': [{ code: 'BF049', severity: 'error', issue: 'https://github.com/piconic-ai/barefootjs/issues/2648' }],
|
|
150
60
|
}
|
|
@@ -1,25 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Fixtures that compile clean on this adapter but render divergent from the
|
|
3
|
+
* Hono reference through the real `bf-render` minijinja binary. The
|
|
4
|
+
* conformance `skipJsx` set and `packages/compat`'s published
|
|
5
|
+
* fixture-divergences both derive from this one object, so the skip list
|
|
6
|
+
* and the declaration can't drift. Keep the file even when the set is
|
|
7
|
+
* empty — the next divergence lands here, not in a re-created file.
|
|
6
8
|
* (`string-concat-plus` is NOT here — minijinja's `+` concatenates
|
|
7
9
|
* strings, unlike Perl/PHP/Twig.)
|
|
8
|
-
*
|
|
9
|
-
* Consumed by this package's conformance test (its `skipJsx` set is
|
|
10
|
-
* derived from these keys, so the skip list and this declaration can't
|
|
11
|
-
* drift) and by `packages/compat`, which publishes the entries in the
|
|
12
|
-
* fixture-divergences section of `ui/compat.lock.json` — surfaced on
|
|
13
|
-
* the docs compatibility-matrix page. Graduating an entry means fixing
|
|
14
|
-
* the adapter (or the shared compiler layer) and deleting the line.
|
|
15
10
|
*/
|
|
16
11
|
|
|
17
12
|
import type { RenderDivergences } from '@barefootjs/jsx'
|
|
18
13
|
|
|
19
14
|
export const renderDivergences: RenderDivergences = {
|
|
20
|
-
// `todo-app` / `todo-app-ssr` no longer diverge (#2209) — the shared
|
|
21
|
-
// `evaluateSignalInit` (`@barefootjs/jsx`, sandboxed real-JS evaluation
|
|
22
|
-
// instead of a fixed regex-shape catalogue) now correctly seeds `todos`
|
|
23
|
-
// from `(props.initialTodos ?? []).map(t => ({ ...t, editing: false }))`.
|
|
24
|
-
|
|
25
15
|
}
|