@barefootjs/hono 0.34.0 → 0.35.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/hono-adapter.d.ts.map +1 -1
- package/dist/adapter/index.js +2 -2
- package/dist/client-shim.d.ts +1 -0
- package/dist/client-shim.d.ts.map +1 -1
- package/dist/client-shim.js +4 -0
- package/dist/index.js +2 -2
- package/dist/utils.d.ts +16 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +6 -0
- package/dist/vite.js +11 -3
- package/package.json +2 -2
- package/src/adapter/hono-adapter.ts +5 -3
- package/src/client-shim.ts +10 -0
- package/src/utils.ts +20 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hono-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/hono-adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hono-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/hono-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter/index.js
CHANGED
|
@@ -94,7 +94,7 @@ export default ${this.componentName}` : "";
|
|
|
94
94
|
generateImports(ir, componentCode) {
|
|
95
95
|
const lines = [];
|
|
96
96
|
const utilImports = [];
|
|
97
|
-
for (const util of ["bfComment", "bfText", "bfTextEnd", "serializeHydrationProps"]) {
|
|
97
|
+
for (const util of ["bfComment", "escapeCommentKey", "bfText", "bfTextEnd", "serializeHydrationProps"]) {
|
|
98
98
|
if (new RegExp(`\\b${util}\\b`).test(componentCode)) {
|
|
99
99
|
utilImports.push(util);
|
|
100
100
|
}
|
|
@@ -465,7 +465,7 @@ export default ${this.componentName}` : "";
|
|
|
465
465
|
if (loop.bodyIsMultiRoot) {
|
|
466
466
|
safeChildren = `<>{bfComment('loop-i')}${children}</>`;
|
|
467
467
|
} else if (loop.bodyIsItemConditional && loop.key) {
|
|
468
|
-
safeChildren = `<>{bfComment('loop-i:' +
|
|
468
|
+
safeChildren = `<>{bfComment('loop-i:' + escapeCommentKey(${loop.key}))}${children}</>`;
|
|
469
469
|
}
|
|
470
470
|
let chainedArray = applyHonoLoopChain(loop);
|
|
471
471
|
const iterMethod = loop.method ?? "map";
|
package/dist/client-shim.d.ts
CHANGED
|
@@ -57,4 +57,5 @@ export declare function createPortal(_children: unknown, _container?: unknown, _
|
|
|
57
57
|
export declare function isSSRPortal(_element: unknown): boolean;
|
|
58
58
|
export declare function findSiblingSlot(_el: unknown, _slotSelector: string): null;
|
|
59
59
|
export declare function cleanupPortalPlaceholder(_portalId: string): void;
|
|
60
|
+
export declare function trackPosition(_update: () => void): () => void;
|
|
60
61
|
//# sourceMappingURL=client-shim.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-shim.d.ts","sourceRoot":"","sources":["../src/client-shim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,MAAM,EACN,MAAM,EAMN,kBAAkB,EAIlB,SAAS,EAGT,UAAU,GACX,MAAM,oBAAoB,CAAA;AAE3B,YAAY,EACV,OAAO,EACP,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,UAAU,EACV,MAAM,EACN,cAAc,EACd,aAAa,EACb,UAAU,EACV,WAAW,EACX,eAAe,GAChB,MAAM,oBAAoB,CAAA;AAQ3B;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAO/E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAKlD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAErE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EACjB,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,OAAO,GAChB,OAAO,CAGT;AAYD,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,KAAK,CAEnD;AACD,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,KAAK,CAEjD;AACD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EACrC,OAAO,EAAE,MAAM,CAAC,EAChB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,GAClC,KAAK,CAEP;AACD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,IAAI,GAAG,KAAK,CAEnD;AACD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,IAAI,GAAG,KAAK,CAE7D;AACD,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAEpE;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,CAE7C;AACD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,CAE/C;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEzC;AACD,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEvC;AAMD,wBAAgB,YAAY,CAC1B,SAAS,EAAE,OAAO,EAClB,UAAU,CAAC,EAAE,OAAO,EACpB,QAAQ,CAAC,EAAE,OAAO,GACjB,KAAK,CAEP;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAEtD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAEzE;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEhE"}
|
|
1
|
+
{"version":3,"file":"client-shim.d.ts","sourceRoot":"","sources":["../src/client-shim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,MAAM,EACN,MAAM,EAMN,kBAAkB,EAIlB,SAAS,EAGT,UAAU,GACX,MAAM,oBAAoB,CAAA;AAE3B,YAAY,EACV,OAAO,EACP,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,UAAU,EACV,MAAM,EACN,cAAc,EACd,aAAa,EACb,UAAU,EACV,WAAW,EACX,eAAe,GAChB,MAAM,oBAAoB,CAAA;AAQ3B;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAO/E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAKlD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAErE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EACjB,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,OAAO,GAChB,OAAO,CAGT;AAYD,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,KAAK,CAEnD;AACD,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,KAAK,CAEjD;AACD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EACrC,OAAO,EAAE,MAAM,CAAC,EAChB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,GAClC,KAAK,CAEP;AACD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,IAAI,GAAG,KAAK,CAEnD;AACD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,IAAI,GAAG,KAAK,CAE7D;AACD,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAEpE;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,CAE7C;AACD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,CAE/C;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEzC;AACD,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEvC;AAMD,wBAAgB,YAAY,CAC1B,SAAS,EAAE,OAAO,EAClB,UAAU,CAAC,EAAE,OAAO,EACpB,QAAQ,CAAC,EAAE,OAAO,GACjB,KAAK,CAEP;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAEtD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAEzE;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEhE;AAMD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAI7D"}
|
package/dist/client-shim.js
CHANGED
|
@@ -70,10 +70,14 @@ function findSiblingSlot(_el, _slotSelector) {
|
|
|
70
70
|
return null;
|
|
71
71
|
}
|
|
72
72
|
function cleanupPortalPlaceholder(_portalId) {}
|
|
73
|
+
function trackPosition(_update) {
|
|
74
|
+
return () => {};
|
|
75
|
+
}
|
|
73
76
|
export {
|
|
74
77
|
useContext,
|
|
75
78
|
unwrap,
|
|
76
79
|
untrack,
|
|
80
|
+
trackPosition,
|
|
77
81
|
splitProps,
|
|
78
82
|
queryHref,
|
|
79
83
|
provideContextSSR,
|
package/dist/index.js
CHANGED
|
@@ -94,7 +94,7 @@ export default ${this.componentName}` : "";
|
|
|
94
94
|
generateImports(ir, componentCode) {
|
|
95
95
|
const lines = [];
|
|
96
96
|
const utilImports = [];
|
|
97
|
-
for (const util of ["bfComment", "bfText", "bfTextEnd", "serializeHydrationProps"]) {
|
|
97
|
+
for (const util of ["bfComment", "escapeCommentKey", "bfText", "bfTextEnd", "serializeHydrationProps"]) {
|
|
98
98
|
if (new RegExp(`\\b${util}\\b`).test(componentCode)) {
|
|
99
99
|
utilImports.push(util);
|
|
100
100
|
}
|
|
@@ -465,7 +465,7 @@ export default ${this.componentName}` : "";
|
|
|
465
465
|
if (loop.bodyIsMultiRoot) {
|
|
466
466
|
safeChildren = `<>{bfComment('loop-i')}${children}</>`;
|
|
467
467
|
} else if (loop.bodyIsItemConditional && loop.key) {
|
|
468
|
-
safeChildren = `<>{bfComment('loop-i:' +
|
|
468
|
+
safeChildren = `<>{bfComment('loop-i:' + escapeCommentKey(${loop.key}))}${children}</>`;
|
|
469
469
|
}
|
|
470
470
|
let chainedArray = applyHonoLoopChain(loop);
|
|
471
471
|
const iterMethod = loop.method ?? "map";
|
package/dist/utils.d.ts
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
* Same signature as Go template bfComment function.
|
|
4
4
|
*/
|
|
5
5
|
export declare function bfComment(key: string): import("hono/utils/html").HtmlEscapedString;
|
|
6
|
+
/**
|
|
7
|
+
* Neutralize a value for splicing into `bfComment`'s HTML comment content
|
|
8
|
+
* (#2795 follow-up). `comment`/`bfComment` itself is `<!--bf-${text}-->`
|
|
9
|
+
* with no escaping — fine for every OTHER caller (`cond-start:s0`,
|
|
10
|
+
* `loop:l0`, ...), whose text is entirely compiler-generated marker IDs,
|
|
11
|
+
* but the whole-item-conditional loop's `loop-i:<key>` anchor
|
|
12
|
+
* (`hono-adapter.ts`'s `bodyIsItemConditional` branch) carries a
|
|
13
|
+
* user-controlled key. Standard HTML escaping doesn't help inside a
|
|
14
|
+
* comment — only the literal sequence `-->` terminates it early, and
|
|
15
|
+
* `&`/`<`/`>`/`"`/`'` are not special there. The key's exact text doesn't
|
|
16
|
+
* need to round-trip (the client's `mapArrayAnchored` matches items
|
|
17
|
+
* positionally and by its own JS-computed key, never by re-parsing the
|
|
18
|
+
* anchor `Comment.nodeValue`), so replacing every `-` with the
|
|
19
|
+
* visually-similar U+2010 is sufficient and needs no decoding.
|
|
20
|
+
*/
|
|
21
|
+
export declare function escapeCommentKey(value: unknown): string;
|
|
6
22
|
/**
|
|
7
23
|
* Output opening comment marker for reactive text expressions.
|
|
8
24
|
* Renders <!--bf:slotId-->
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,+CAEpC;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,+CAEpC;AAED;;;GAGG;AACH,wBAAgB,SAAS,gDAExB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAsCjH"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,+CAEpC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGvD;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,+CAEpC;AAED;;;GAGG;AACH,wBAAgB,SAAS,gDAExB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAsCjH"}
|
package/dist/utils.js
CHANGED
|
@@ -3,6 +3,11 @@ import { raw } from "hono/html";
|
|
|
3
3
|
function bfComment(key) {
|
|
4
4
|
return raw(`<!--bf-${key}-->`);
|
|
5
5
|
}
|
|
6
|
+
function escapeCommentKey(value) {
|
|
7
|
+
if (value == null)
|
|
8
|
+
return "";
|
|
9
|
+
return String(value).replace(/-/g, "‐");
|
|
10
|
+
}
|
|
6
11
|
function bfText(slotId) {
|
|
7
12
|
return raw(`<!--bf:${slotId}-->`);
|
|
8
13
|
}
|
|
@@ -25,6 +30,7 @@ function serializeHydrationProps(props, componentName) {
|
|
|
25
30
|
}
|
|
26
31
|
export {
|
|
27
32
|
serializeHydrationProps,
|
|
33
|
+
escapeCommentKey,
|
|
28
34
|
bfTextEnd,
|
|
29
35
|
bfText,
|
|
30
36
|
bfComment
|
package/dist/vite.js
CHANGED
|
@@ -370,6 +370,12 @@ class BindingScope {
|
|
|
370
370
|
}
|
|
371
371
|
}
|
|
372
372
|
|
|
373
|
+
// ../jsx/src/ir-to-client-js/safe-html.ts
|
|
374
|
+
function safeHtml(expr) {
|
|
375
|
+
return expr;
|
|
376
|
+
}
|
|
377
|
+
var EMPTY_MARKUP = safeHtml("''");
|
|
378
|
+
|
|
373
379
|
// ../jsx/src/ir-to-client-js/html-template.ts
|
|
374
380
|
var VOID_ELEMENTS = new Set([
|
|
375
381
|
"area",
|
|
@@ -656,6 +662,7 @@ var CLIENT_EXPORTS = new Set([
|
|
|
656
662
|
"isSSRPortal",
|
|
657
663
|
"findSiblingSlot",
|
|
658
664
|
"cleanupPortalPlaceholder",
|
|
665
|
+
"trackPosition",
|
|
659
666
|
"createSearchParams",
|
|
660
667
|
"queryHref",
|
|
661
668
|
"formatDate",
|
|
@@ -716,7 +723,8 @@ var BROWSER_ONLY_CLIENT_APIS = new Set([
|
|
|
716
723
|
"createPortal",
|
|
717
724
|
"isSSRPortal",
|
|
718
725
|
"findSiblingSlot",
|
|
719
|
-
"cleanupPortalPlaceholder"
|
|
726
|
+
"cleanupPortalPlaceholder",
|
|
727
|
+
"trackPosition"
|
|
720
728
|
]);
|
|
721
729
|
var REACTIVE_PRIMITIVES = new Set([
|
|
722
730
|
"createSignal",
|
|
@@ -2498,7 +2506,7 @@ export default ${this.componentName}` : "";
|
|
|
2498
2506
|
generateImports(ir, componentCode) {
|
|
2499
2507
|
const lines = [];
|
|
2500
2508
|
const utilImports = [];
|
|
2501
|
-
for (const util of ["bfComment", "bfText", "bfTextEnd", "serializeHydrationProps"]) {
|
|
2509
|
+
for (const util of ["bfComment", "escapeCommentKey", "bfText", "bfTextEnd", "serializeHydrationProps"]) {
|
|
2502
2510
|
if (new RegExp(`\\b${util}\\b`).test(componentCode)) {
|
|
2503
2511
|
utilImports.push(util);
|
|
2504
2512
|
}
|
|
@@ -2869,7 +2877,7 @@ export default ${this.componentName}` : "";
|
|
|
2869
2877
|
if (loop.bodyIsMultiRoot) {
|
|
2870
2878
|
safeChildren = `<>{bfComment('loop-i')}${children}</>`;
|
|
2871
2879
|
} else if (loop.bodyIsItemConditional && loop.key) {
|
|
2872
|
-
safeChildren = `<>{bfComment('loop-i:' +
|
|
2880
|
+
safeChildren = `<>{bfComment('loop-i:' + escapeCommentKey(${loop.key}))}${children}</>`;
|
|
2873
2881
|
}
|
|
2874
2882
|
let chainedArray = applyHonoLoopChain(loop);
|
|
2875
2883
|
const iterMethod = loop.method ?? "map";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@barefootjs/hono",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.0",
|
|
4
4
|
"description": "Hono integration for BarefootJS",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
},
|
|
123
123
|
"devDependencies": {
|
|
124
124
|
"@barefootjs/adapter-tests": "0.1.0",
|
|
125
|
-
"@barefootjs/vite": "0.
|
|
125
|
+
"@barefootjs/vite": "0.35.0",
|
|
126
126
|
"@types/jsdom": "^27.0.0",
|
|
127
127
|
"hono": "^4.6.0",
|
|
128
128
|
"jsdom": "^27.3.0",
|
|
@@ -271,7 +271,7 @@ export class HonoAdapter extends JsxAdapter implements IRNodeEmitter<HonoRenderC
|
|
|
271
271
|
// Only import bfComment/bfText/bfTextEnd/serializeHydrationProps utilities
|
|
272
272
|
// that are actually used
|
|
273
273
|
const utilImports: string[] = []
|
|
274
|
-
for (const util of ['bfComment', 'bfText', 'bfTextEnd', 'serializeHydrationProps']) {
|
|
274
|
+
for (const util of ['bfComment', 'escapeCommentKey', 'bfText', 'bfTextEnd', 'serializeHydrationProps']) {
|
|
275
275
|
if (new RegExp(`\\b${util}\\b`).test(componentCode)) {
|
|
276
276
|
utilImports.push(util)
|
|
277
277
|
}
|
|
@@ -1035,8 +1035,10 @@ export class HonoAdapter extends JsxAdapter implements IRNodeEmitter<HonoRenderC
|
|
|
1035
1035
|
// renders nothing), carrying the key so the client's
|
|
1036
1036
|
// `mapArrayAnchored` can hydrate every SSR-rendered item by its anchor.
|
|
1037
1037
|
// `bfComment(k)` emits `<!--bf-${k}-->`, so the `loop-i:` argument
|
|
1038
|
-
// yields `<!--bf-loop-i:KEY-->`.
|
|
1039
|
-
|
|
1038
|
+
// yields `<!--bf-loop-i:KEY-->`. `escapeCommentKey` (#2795 follow-up)
|
|
1039
|
+
// neutralizes `-` so a key can't spell `-->` and close the comment
|
|
1040
|
+
// early — see its docstring in `utils.ts`.
|
|
1041
|
+
safeChildren = `<>{bfComment('loop-i:' + escapeCommentKey(${loop.key}))}${children}</>`
|
|
1040
1042
|
}
|
|
1041
1043
|
// Apply chained `.sort()` / `.filter()` extracted to
|
|
1042
1044
|
// `loop.sortComparator` / `loop.filterPredicate` (#1448 Tier B).
|
package/src/client-shim.ts
CHANGED
|
@@ -183,3 +183,13 @@ export function findSiblingSlot(_el: unknown, _slotSelector: string): null {
|
|
|
183
183
|
export function cleanupPortalPlaceholder(_portalId: string): void {
|
|
184
184
|
// no-op
|
|
185
185
|
}
|
|
186
|
+
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
// Floating-element positioning — geometry exists only in the browser
|
|
189
|
+
// ---------------------------------------------------------------------------
|
|
190
|
+
|
|
191
|
+
export function trackPosition(_update: () => void): () => void {
|
|
192
|
+
return () => {
|
|
193
|
+
// no-op
|
|
194
|
+
}
|
|
195
|
+
}
|
package/src/utils.ts
CHANGED
|
@@ -8,6 +8,26 @@ export function bfComment(key: string) {
|
|
|
8
8
|
return raw(`<!--bf-${key}-->`)
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Neutralize a value for splicing into `bfComment`'s HTML comment content
|
|
13
|
+
* (#2795 follow-up). `comment`/`bfComment` itself is `<!--bf-${text}-->`
|
|
14
|
+
* with no escaping — fine for every OTHER caller (`cond-start:s0`,
|
|
15
|
+
* `loop:l0`, ...), whose text is entirely compiler-generated marker IDs,
|
|
16
|
+
* but the whole-item-conditional loop's `loop-i:<key>` anchor
|
|
17
|
+
* (`hono-adapter.ts`'s `bodyIsItemConditional` branch) carries a
|
|
18
|
+
* user-controlled key. Standard HTML escaping doesn't help inside a
|
|
19
|
+
* comment — only the literal sequence `-->` terminates it early, and
|
|
20
|
+
* `&`/`<`/`>`/`"`/`'` are not special there. The key's exact text doesn't
|
|
21
|
+
* need to round-trip (the client's `mapArrayAnchored` matches items
|
|
22
|
+
* positionally and by its own JS-computed key, never by re-parsing the
|
|
23
|
+
* anchor `Comment.nodeValue`), so replacing every `-` with the
|
|
24
|
+
* visually-similar U+2010 is sufficient and needs no decoding.
|
|
25
|
+
*/
|
|
26
|
+
export function escapeCommentKey(value: unknown): string {
|
|
27
|
+
if (value == null) return ''
|
|
28
|
+
return String(value).replace(/-/g, '‐')
|
|
29
|
+
}
|
|
30
|
+
|
|
11
31
|
/**
|
|
12
32
|
* Output opening comment marker for reactive text expressions.
|
|
13
33
|
* Renders <!--bf:slotId-->
|