@barefootjs/xslate 0.19.1 → 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/adapter/index.js +1 -1
- package/dist/adapter/xslate-adapter.d.ts.map +1 -1
- package/dist/build.js +1 -1
- package/dist/conformance-pins.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/lib/BarefootJS/Backend/Xslate.pm +1 -1
- package/package.json +3 -3
- package/src/__tests__/xslate-adapter.test.ts +32 -14
- package/src/adapter/xslate-adapter.ts +4 -1
- package/src/conformance-pins.ts +6 -0
- package/src/test-render.ts +9 -0
package/dist/adapter/index.js
CHANGED
|
@@ -188777,7 +188777,7 @@ ${alternate}
|
|
|
188777
188777
|
renderFragment(fragment) {
|
|
188778
188778
|
const children = this.renderChildren(fragment.children);
|
|
188779
188779
|
if (fragment.needsScopeComment) {
|
|
188780
|
-
return `<: $bf.scope_comment() | mark_raw :>${children}
|
|
188780
|
+
return `<: $bf.scope_comment() | mark_raw :>${children}<: $bf.scope_comment_end() | mark_raw :>`;
|
|
188781
188781
|
}
|
|
188782
188782
|
return children;
|
|
188783
188783
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xslate-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/xslate-adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"xslate-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/xslate-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/build.js
CHANGED
|
@@ -188777,7 +188777,7 @@ ${alternate}
|
|
|
188777
188777
|
renderFragment(fragment) {
|
|
188778
188778
|
const children = this.renderChildren(fragment.children);
|
|
188779
188779
|
if (fragment.needsScopeComment) {
|
|
188780
|
-
return `<: $bf.scope_comment() | mark_raw :>${children}
|
|
188780
|
+
return `<: $bf.scope_comment() | mark_raw :>${children}<: $bf.scope_comment_end() | mark_raw :>`;
|
|
188781
188781
|
}
|
|
188782
188782
|
return children;
|
|
188783
188783
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformance-pins.d.ts","sourceRoot":"","sources":["../src/conformance-pins.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,eAAO,MAAM,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"conformance-pins.d.ts","sourceRoot":"","sources":["../src/conformance-pins.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,eAAO,MAAM,eAAe,EAAE,eA+G7B,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -188777,7 +188777,7 @@ ${alternate}
|
|
|
188777
188777
|
renderFragment(fragment) {
|
|
188778
188778
|
const children = this.renderChildren(fragment.children);
|
|
188779
188779
|
if (fragment.needsScopeComment) {
|
|
188780
|
-
return `<: $bf.scope_comment() | mark_raw :>${children}
|
|
188780
|
+
return `<: $bf.scope_comment() | mark_raw :>${children}<: $bf.scope_comment_end() | mark_raw :>`;
|
|
188781
188781
|
}
|
|
188782
188782
|
return children;
|
|
188783
188783
|
}
|
|
@@ -189143,7 +189143,8 @@ var conformancePins = {
|
|
|
189143
189143
|
"filter-nested-find-predicate": [
|
|
189144
189144
|
{ code: "BF101", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2038" }
|
|
189145
189145
|
],
|
|
189146
|
-
"dangerous-inner-html-dynamic": [{ code: "BF101", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2215" }]
|
|
189146
|
+
"dangerous-inner-html-dynamic": [{ code: "BF101", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2215" }],
|
|
189147
|
+
"date-method-uncatalogued": [{ code: "BF021", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2274" }]
|
|
189147
189148
|
};
|
|
189148
189149
|
// src/render-divergences.ts
|
|
189149
189150
|
var renderDivergences = {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@barefootjs/xslate",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"description": "Text::Xslate (Kolon) adapter for BarefootJS — compiles IR to .tx templates and ships the Xslate rendering backend; runs under any PSGI/Plack app",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -55,14 +55,14 @@
|
|
|
55
55
|
"directory": "packages/adapter-xslate"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@barefootjs/shared": "0.
|
|
58
|
+
"@barefootjs/shared": "0.21.0"
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
61
|
"@barefootjs/jsx": ">=0.2.0"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@barefootjs/adapter-tests": "0.1.0",
|
|
65
|
-
"@barefootjs/jsx": "0.
|
|
65
|
+
"@barefootjs/jsx": "0.21.0",
|
|
66
66
|
"typescript": "^5.0.0"
|
|
67
67
|
}
|
|
68
68
|
}
|
|
@@ -63,20 +63,7 @@ runAdapterConformanceTests({
|
|
|
63
63
|
// #1467 Phase 2e: same `/* @client */` keyed-map elision (data-table).
|
|
64
64
|
'data-table',
|
|
65
65
|
]),
|
|
66
|
-
skipDataPoints: new Set<string>(
|
|
67
|
-
// #2260 — controlled boolean props: the SSR seed evaluates only the
|
|
68
|
-
// static fallback of `props.X ?? internal()` chains.
|
|
69
|
-
'toggle:gen:pressed:true',
|
|
70
|
-
'switch:gen:checked:true',
|
|
71
|
-
'checkbox:gen:checked:true',
|
|
72
|
-
// #2261 — invalid dynamic CSS value kept (escaped) where the oracle
|
|
73
|
-
// drops the property.
|
|
74
|
-
'style-object-dynamic:gen:color:markup',
|
|
75
|
-
// #2262 — dynamic `.flat` depth 0/negative violates the documented
|
|
76
|
-
// shallow-copy contract (shared with the Mojo Perl runtime).
|
|
77
|
-
'array-flat-dynamic-depth:gen:depth:zero',
|
|
78
|
-
'array-flat-dynamic-depth:gen:depth:negative',
|
|
79
|
-
]),
|
|
66
|
+
skipDataPoints: new Set<string>(),
|
|
80
67
|
onRenderError: (err, id) => {
|
|
81
68
|
if (err instanceof XslateNotAvailableError) {
|
|
82
69
|
console.log(`Skipping [${id}]: ${err.message}`)
|
|
@@ -108,6 +95,37 @@ function compileAndGenerate(source: string) {
|
|
|
108
95
|
// Xslate-Specific Tests
|
|
109
96
|
// =============================================================================
|
|
110
97
|
|
|
98
|
+
describe('XslateAdapter - fragment scope comment begin/end pairing (#2289)', () => {
|
|
99
|
+
// A fragment-rooted component's scope comment needs a paired END marker
|
|
100
|
+
// immediately after its last top-level node — without it, client-side
|
|
101
|
+
// queries from the fragment scope leak onto later siblings owned by the
|
|
102
|
+
// parent. `wrapWithScopeComment`'s Hono shape is the reference; this
|
|
103
|
+
// pins the Kolon `renderFragment` mirror.
|
|
104
|
+
test('emits scope_comment before and scope_comment_end after the fragment children', () => {
|
|
105
|
+
const { template } = compileAndGenerate(`
|
|
106
|
+
export function FragmentDemo() {
|
|
107
|
+
return <><span>A</span><span>B</span></>
|
|
108
|
+
}
|
|
109
|
+
`)
|
|
110
|
+
expect(template).toContain('$bf.scope_comment() | mark_raw')
|
|
111
|
+
expect(template).toContain('$bf.scope_comment_end() | mark_raw')
|
|
112
|
+
expect(template.indexOf('scope_comment()')).toBeLessThan(template.indexOf('scope_comment_end()'))
|
|
113
|
+
// The end marker directly follows the fragment's rendered children —
|
|
114
|
+
// no other node interposes between the last child and the end marker.
|
|
115
|
+
const endIdx = template.indexOf('scope_comment_end()')
|
|
116
|
+
expect(template.slice(endIdx - 40, endIdx)).toContain('<span>B</span>')
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
test('does not emit the end marker for a non-fragment (single-root) component', () => {
|
|
120
|
+
const { template } = compileAndGenerate(`
|
|
121
|
+
export function Single() {
|
|
122
|
+
return <div>A</div>
|
|
123
|
+
}
|
|
124
|
+
`)
|
|
125
|
+
expect(template).not.toContain('scope_comment')
|
|
126
|
+
})
|
|
127
|
+
})
|
|
128
|
+
|
|
111
129
|
describe('XslateAdapter - SSR context propagation (#1297)', () => {
|
|
112
130
|
// `<Ctx.Provider value>` brackets its children with inline provide/revoke
|
|
113
131
|
// calls (both return '' so the `<: … :>` discards them); descendant
|
|
@@ -1179,7 +1179,10 @@ export class XslateAdapter extends BaseAdapter implements IRNodeEmitter<XslateRe
|
|
|
1179
1179
|
private renderFragment(fragment: IRFragment): string {
|
|
1180
1180
|
const children = this.renderChildren(fragment.children)
|
|
1181
1181
|
if (fragment.needsScopeComment) {
|
|
1182
|
-
|
|
1182
|
+
// End marker bounds the scope's sibling range — without it, queries
|
|
1183
|
+
// from the fragment scope leak onto later siblings owned by the
|
|
1184
|
+
// parent (#2289).
|
|
1185
|
+
return `<: $bf.scope_comment() | mark_raw :>${children}<: $bf.scope_comment_end() | mark_raw :>`
|
|
1183
1186
|
}
|
|
1184
1187
|
return children
|
|
1185
1188
|
}
|
package/src/conformance-pins.ts
CHANGED
|
@@ -113,4 +113,10 @@ export const conformancePins: ConformancePins = {
|
|
|
113
113
|
// A dynamic/signal-derived value still refuses with BF101 — see the
|
|
114
114
|
// `dangerous-inner-html-dynamic` fixture/pin below (tracked: #2215).
|
|
115
115
|
'dangerous-inner-html-dynamic': [{ code: 'BF101', severity: 'error', issue: 'https://github.com/piconic-ai/barefootjs/issues/2215' }],
|
|
116
|
+
// #2273: a method call on a prop typed as a built-in host rich type
|
|
117
|
+
// (Date, Map, …) has no catalogued lowering in any adapter — this is a
|
|
118
|
+
// compiler-level refusal (`checkRichTypeMethodCalls`, wired ahead of
|
|
119
|
+
// `adapter.generate()`), not an adapter-specific gap, so it is pinned
|
|
120
|
+
// identically across every adapter package including Hono.
|
|
121
|
+
'date-method-uncatalogued': [{ code: 'BF021', severity: 'error', issue: 'https://github.com/piconic-ai/barefootjs/issues/2274' }],
|
|
116
122
|
}
|
package/src/test-render.ts
CHANGED
|
@@ -566,6 +566,15 @@ function toPerlLiteral(value: unknown): string {
|
|
|
566
566
|
// JS booleans → JSON::PP sentinels so `spread_attrs` can detect them
|
|
567
567
|
// via `ref()` and apply boolean-attr semantics.
|
|
568
568
|
if (typeof value === 'boolean') return value ? 'JSON::PP::true' : 'JSON::PP::false'
|
|
569
|
+
if (value instanceof Date) {
|
|
570
|
+
// A Date prop crosses the language boundary as its ISO-8601 string —
|
|
571
|
+
// the shared `date()` runtime helper (#2274/#2288) accepts an ISO
|
|
572
|
+
// string as well as a native Perl date type. MUST come before the
|
|
573
|
+
// generic `value && typeof value === 'object'` branch below, which
|
|
574
|
+
// would otherwise `Object.entries()` a Date's (non-enumerable)
|
|
575
|
+
// internals into an empty hashref literal, silently erasing the value.
|
|
576
|
+
return perlSingleQuote(value.toISOString())
|
|
577
|
+
}
|
|
569
578
|
if (Array.isArray(value)) {
|
|
570
579
|
return `[${value.map(toPerlLiteral).join(', ')}]`
|
|
571
580
|
}
|