@barefootjs/go-template 0.33.3 → 0.33.4

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.
@@ -1354,6 +1354,24 @@ export declare class GoTemplateAdapter extends BaseAdapter implements ParsedExpr
1354
1354
  * value.
1355
1355
  */
1356
1356
  private queueDynamicChildrenDefine;
1357
+ /**
1358
+ * #2703/B2: extend `queueDynamicChildrenDefine`'s companion-define delivery
1359
+ * from the reserved `children` slot to NAMED jsx-children props (any
1360
+ * JSX-valued prop other than `children`, e.g. `header={<strong>Title</strong>}`).
1361
+ * A named prop whose value can't be baked into a static Go string by
1362
+ * `emitStaticChildInstances`'s bake chain (`extractTextChildren` /
1363
+ * `extractHtmlChildren` / `extractScopedHtmlChildren`, all null) is queued
1364
+ * here instead, the same way; the caller composes the result into
1365
+ * `bf_with_props` + `bf_tmpl` at the STATIC (non-loop) call site — the one
1366
+ * shape `emitStaticChildInstances` bakes for at all (a component nested in
1367
+ * a loop row never reaches `collectStaticChildInstances`).
1368
+ *
1369
+ * Returns the flat `"FieldName" (bf_tmpl "name" .) ...` argument list ready
1370
+ * to splice into `bf_with_props`, or null when no named prop needs it —
1371
+ * batches every prop that needs dynamic delivery into ONE `bf_with_props`
1372
+ * call rather than nesting one per prop.
1373
+ */
1374
+ private queueDynamicPropDefine;
1357
1375
  /**
1358
1376
  * Queue a companion define for a loop body component's JSX children. Like
1359
1377
  * `queueDynamicChildrenDefine` but temporarily exits the `inLoop` context so
@@ -1 +1 @@
1
- {"version":3,"file":"go-template-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/go-template-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"go-template-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/go-template-adapter.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAIpE,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,SAAS,EACT,MAAM,EACN,YAAY,EACZ,aAAa,EACb,MAAM,EAEN,WAAW,EACX,UAAU,EACV,MAAM,EAMN,aAAa,EAEb,UAAU,EACV,qBAAqB,EAGrB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,EACV,OAAO,EAEP,yBAAyB,EAG1B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EAEtB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EAiChB,MAAM,iBAAiB,CAAA;AA8BxB,OAAO,KAAK,EACV,WAAW,EAOX,wBAAwB,EACzB,MAAM,gBAAgB,CAAA;AAwBvB,YAAY,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAqD9D,qBAAa,iBAAkB,SAAQ,WAAY,YAAW,iBAAiB,EAAE,aAAa,CAAC,WAAW,CAAC;IACzG,IAAI,SAAgB;IACpB,SAAS,SAAU;IAInB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAA0B;IAMhE,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,qBAAqB,CAAQ;IAErC;;;;;;;;;OASG;IACH,kBAAkB,EAAE,yBAAyB,CAG1C;IAEH;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAGtC;IAEH,OAAO,CAAC,OAAO,CAAoC;IAEnD,kIAAkI;IAClI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAE3C;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAWvB;IAED,wHAAwH;IACxH,IAAI,MAAM,IAAI,aAAa,EAAE,CAE5B;IAED,OAAO,CAAC,MAAM,CAAiB;IAC/B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,yBAAyB,CAAiD;IAClF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,OAAO,CAAC,KAAK,CAAmC;IAChD;;;;OAIG;IACH,OAAO,CAAC,mBAAmB,CAAgB;IAC3C;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,eAAe,CAAiC;IACxD;;;;;oEAKgE;IAChE,OAAO,CAAC,gBAAgB,CAAiC;IACzD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB,CAAoE;IAChG;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,mBAAmB,CAA8C;IACzE;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB,CAAQ;IAEpC;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB,CAA8C;IAE1E,8FAA8F;IAC9F,OAAO,CAAC,qBAAqB,CAA4C;IAGzE,YAAY,OAAO,GAAE,wBAA6B,EAOjD;IAED;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAgFzB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,aAAa,CAuEzE;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,gCAAgC;IA+ExC;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IA4CnC;;;;;;OAMG;IACH;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,qBAAqB,CAA2D;IAExF;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,mBAAmB,CAA8C;IAEzE;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB,CAAsC;IAE/D;;;;;;;;;;OAUG;IACH,OAAO,CAAC,YAAY,CAAiC;IAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,OAAO,CAAC,sBAAsB;IAwC9B,2BAA2B,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,IAAI,CAsCnE;IAED,iFAAiF;IACjF,OAAO,CAAC,gBAAgB;IAIxB;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAS5B,qFAAqF;IACrF,OAAO,CAAC,qBAAqB;IAa7B,mFAAmF;IACnF,OAAO,CAAC,wBAAwB;IAehC,sJAAsJ;IACtJ,OAAO,CAAC,4BAA4B;IAIpC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,0BAA0B;IAIlC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,4BAA4B;IAIpC;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAIhC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,YAAY;IAMpB,aAAa,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAiD5C;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,uBAAuB;IAqE/B,4GAA4G;IAC5G,OAAO,CAAC,kBAAkB;IAgB1B;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,eAAe;IAgBvB;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IA6DlC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAc1B,yEAAyE;IACzE,OAAO,CAAC,oBAAoB;IAI5B,+FAA+F;IAC/F,OAAO,CAAC,iBAAiB;IAOzB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAwBxB,iDAAiD;IACjD,OAAO,CAAC,mBAAmB;IA8F3B,OAAO,CAAC,mBAAmB;IAwB3B;;;;OAIG;IACH,OAAO,CAAC,6BAA6B;IA6BrC,2FAA2F;IAC3F,OAAO,CAAC,4BAA4B;IAMpC,wEAAwE;IACxE,OAAO,CAAC,mBAAmB;IAI3B,0EAA0E;IAC1E,OAAO,CAAC,sBAAsB;IAiC9B;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAuB/B,qFAAqF;IACrF,OAAO,CAAC,yBAAyB;IAWjC,yCAAyC;IACzC,OAAO,CAAC,wBAAwB;IAqVhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsDG;IACH,OAAO,CAAC,mBAAmB;IA8E3B,OAAO,CAAC,wBAAwB;IAiNhC,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,sBAAsB;IAsG9B,OAAO,CAAC,uBAAuB;IAwE/B,OAAO,CAAC,oBAAoB;IAuB5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuDG;IACH,OAAO,CAAC,oBAAoB;IAgF5B,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,0BAA0B;IAuClC,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,qBAAqB;IAiD7B,OAAO,CAAC,mBAAmB;IAyG3B,OAAO,CAAC,kBAAkB;IA0H1B,wDAAwD;IACxD,OAAO,CAAC,SAAS;IAIjB;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IASnC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,mBAAmB;IAQ3B;;;;;;;;OAQG;IACH;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,oBAAoB,CAAQ;IAEpC,OAAO,CAAC,yBAAyB;IA6BjC,OAAO,CAAC,oCAAoC;IA2H5C;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB;IA6B7B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,0BAA0B;IAoBlC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,2BAA2B;IAwCnC;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IAqD7B,OAAO,CAAC,uBAAuB;IA4H/B,0EAA0E;IAC1E,OAAO,CAAC,aAAa;IA6ErB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAoG/B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,mBAAmB;IAsB3B,sDAAsD;IACtD,OAAO,CAAC,6BAA6B;IAsCrC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,0BAA0B;IA4ClC;;;;;;;OAOG;IACH,OAAO,CAAC,+BAA+B;IAsCvC;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,CAElD;IAMD,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAEtF;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI7B;IAED,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAEzC;IAED,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAE9F;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAEhF;IAED,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAEzF;IAED,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAExF;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7B;IAED,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAE7F;IAED,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAExF;IAED,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAElF;IAED,aAAa,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CA2DxC;IAED;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IA+ChC,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAqE3C;IAED;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAoB9B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAQnC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAQxB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqC/B;IAED;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IA0BjC;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IA4CpB;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAKpB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAShC;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAIjF;IAED,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CA0CpF;IAED,MAAM,CACJ,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC9B,MAAM,CAwHR;IAED,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAiB1F;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CA2C/F;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,SAAS;IAYjB;;+BAE2B;IAC3B,OAAO,CAAC,kBAAkB;IAI1B,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAK/E;IAED,OAAO,CACL,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,EACtB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC9B,MAAM,CAoBR;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,kBAAkB;IAuC1B,WAAW,CACT,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC/B,MAAM,CAER;IAED,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAe9E;IAED,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAKnF;IAED,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIzB;IAED,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAe5E;IAED,aAAa,CAAC,UAAU,EAAE,qBAAqB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAoDvG;IAED,gEAAgE;IAChE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAEvC;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAezB,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,EAC7C,QAAQ,EAAE,UAAU,EAAE,EACtB,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC9B,MAAM,CAmER;IAED,WAAW,CACT,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,UAAU,EAAE,EAClB,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC9B,MAAM,CAqLR;IAED,UAAU,CACR,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,SAAS,GAAG;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,EACvC,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC9B,MAAM,CAkBR;IAED,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGhD;IAED;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;;;;;;OAOG;IACH,OAAO,CAAC,wBAAwB;IA8BhC;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB;IA+B7B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAuD7B;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IAgC/B;;;;;;;OAOG;IACH,OAAO,CAAC,4BAA4B;IAsBpC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA2B9B;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAIhC;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAerB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,oBAAoB;IA2J5B;;;;;;;;OAQG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAmB/B,qDAAqD;IACrD,OAAO,CAAC,qBAAqB;IA4I7B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;IACH,OAAO,CAAC,yBAAyB;IAkIjC;;;;;;;;OAQG;IACH,OAAO,CAAC,+BAA+B;IA+CvC,oDAAoD;IACpD,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,iBAAiB;IAqCzB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CA0D7C;IAED;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,mBAAmB;IAkQ3B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,0BAA0B;IAwBlC;0EACsE;IACtE,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IA2B/B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiU/B;IAED;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,+BAA+B;IA6CvC;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IActB;;;;;;;;OAQG;IACH,OAAO,CAAC,0BAA0B;IAkBlC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,sBAAsB;IAiD9B;;;;;;;;OAQG;IACH,OAAO,CAAC,2BAA2B;IAmBnC,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE;QAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAqGtF;IAED;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,UAAU;IAMT,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAM1C;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAoKlC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,gBAAgB;IAiCxB;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IAqDlC;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,0BAA0B;IAyClC,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAKjD;IAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvC;IAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvC;IAED,OAAO,CAAC,kBAAkB;CAmB3B;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAA"}
@@ -6543,7 +6543,7 @@ ${goFields.join(`
6543
6543
  }
6544
6544
  loopItemMarker(loop) {
6545
6545
  if (loop.bodyIsMultiRoot)
6546
- return `{{bfComment "bf-loop-i"}}`;
6546
+ return `{{bfComment "loop-i"}}`;
6547
6547
  if (loop.bodyIsItemConditional && loop.key) {
6548
6548
  return `{{bfComment (printf "loop-i:%v" ${this.convertExpressionToGo(loop.key)})}}`;
6549
6549
  }
@@ -6568,6 +6568,40 @@ ${goFields.join(`
6568
6568
  }
6569
6569
  return name;
6570
6570
  }
6571
+ queueDynamicPropDefine(comp) {
6572
+ const args = [];
6573
+ const childShape = this.childComponentShapes.get(comp.name);
6574
+ for (const prop of comp.props) {
6575
+ if (prop.value.kind !== "jsx-children" || prop.name === "children")
6576
+ continue;
6577
+ const children = prop.value.children;
6578
+ if (this.extractTextChildren(children) !== null)
6579
+ continue;
6580
+ if (this.extractHtmlChildren(children) !== null)
6581
+ continue;
6582
+ if (this.extractScopedHtmlChildren(children) !== null)
6583
+ continue;
6584
+ if (childShape?.restBagField && !childShape.paramNames.has(prop.name)) {
6585
+ this.state.errors.push({
6586
+ code: "BF101",
6587
+ severity: "error",
6588
+ message: `JSX-valued prop '${prop.name}' on <${comp.name}> is dynamic and routes into the child's rest-bag prop ('${childShape.restBagField}') rather than a declared field — there is no named Go struct field for 'bf_with_props' to target`,
6589
+ loc: prop.loc
6590
+ });
6591
+ continue;
6592
+ }
6593
+ const name = `${this.state.componentName}__prop_${prop.name}_${comp.slotId}`;
6594
+ if (!this.state.pendingChildrenDefines.some((d) => d.name === name)) {
6595
+ this.state.pendingChildrenDefines.push({
6596
+ name,
6597
+ content: this.renderChildren(children)
6598
+ });
6599
+ }
6600
+ const fieldName = this.childPropFieldNames.get(comp.name)?.get(prop.name) ?? capitalizeFieldName(prop.name);
6601
+ args.push(`${JSON.stringify(fieldName)} (bf_tmpl ${JSON.stringify(name)} .)`);
6602
+ }
6603
+ return args.length > 0 ? args.join(" ") : null;
6604
+ }
6571
6605
  queueLoopBodyChildrenDefine(comp) {
6572
6606
  const effectiveChildren = comp.children.length > 0 ? comp.children : resolveJsxChildrenProp(comp.props);
6573
6607
  if (effectiveChildren.length === 0)
@@ -6615,7 +6649,9 @@ ${goFields.join(`
6615
6649
  } else if (comp.slotId) {
6616
6650
  const suffix = slotIdToFieldSuffix(comp.slotId);
6617
6651
  const childrenDefine = this.queueDynamicChildrenDefine(comp);
6618
- templateCall = childrenDefine ? `{{template "${comp.name}" (bf_with_children .${comp.name}${suffix} (bf_tmpl "${childrenDefine}" .))}}` : `{{template "${comp.name}" .${comp.name}${suffix}}}`;
6652
+ const propArgs = this.queueDynamicPropDefine(comp);
6653
+ const base = propArgs ? `(bf_with_props .${comp.name}${suffix} ${propArgs})` : `.${comp.name}${suffix}`;
6654
+ templateCall = childrenDefine ? `{{template "${comp.name}" (bf_with_children ${base} (bf_tmpl "${childrenDefine}" .))}}` : `{{template "${comp.name}" ${base}}}`;
6619
6655
  } else {
6620
6656
  templateCall = `{{template "${comp.name}" .${comp.name}}}`;
6621
6657
  }
@@ -1 +1 @@
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,eAkD7B,CAAA"}
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,eAmE7B,CAAA"}
package/dist/index.js CHANGED
@@ -6543,7 +6543,7 @@ ${goFields.join(`
6543
6543
  }
6544
6544
  loopItemMarker(loop) {
6545
6545
  if (loop.bodyIsMultiRoot)
6546
- return `{{bfComment "bf-loop-i"}}`;
6546
+ return `{{bfComment "loop-i"}}`;
6547
6547
  if (loop.bodyIsItemConditional && loop.key) {
6548
6548
  return `{{bfComment (printf "loop-i:%v" ${this.convertExpressionToGo(loop.key)})}}`;
6549
6549
  }
@@ -6568,6 +6568,40 @@ ${goFields.join(`
6568
6568
  }
6569
6569
  return name;
6570
6570
  }
6571
+ queueDynamicPropDefine(comp) {
6572
+ const args = [];
6573
+ const childShape = this.childComponentShapes.get(comp.name);
6574
+ for (const prop of comp.props) {
6575
+ if (prop.value.kind !== "jsx-children" || prop.name === "children")
6576
+ continue;
6577
+ const children = prop.value.children;
6578
+ if (this.extractTextChildren(children) !== null)
6579
+ continue;
6580
+ if (this.extractHtmlChildren(children) !== null)
6581
+ continue;
6582
+ if (this.extractScopedHtmlChildren(children) !== null)
6583
+ continue;
6584
+ if (childShape?.restBagField && !childShape.paramNames.has(prop.name)) {
6585
+ this.state.errors.push({
6586
+ code: "BF101",
6587
+ severity: "error",
6588
+ message: `JSX-valued prop '${prop.name}' on <${comp.name}> is dynamic and routes into the child's rest-bag prop ('${childShape.restBagField}') rather than a declared field — there is no named Go struct field for 'bf_with_props' to target`,
6589
+ loc: prop.loc
6590
+ });
6591
+ continue;
6592
+ }
6593
+ const name = `${this.state.componentName}__prop_${prop.name}_${comp.slotId}`;
6594
+ if (!this.state.pendingChildrenDefines.some((d) => d.name === name)) {
6595
+ this.state.pendingChildrenDefines.push({
6596
+ name,
6597
+ content: this.renderChildren(children)
6598
+ });
6599
+ }
6600
+ const fieldName = this.childPropFieldNames.get(comp.name)?.get(prop.name) ?? capitalizeFieldName(prop.name);
6601
+ args.push(`${JSON.stringify(fieldName)} (bf_tmpl ${JSON.stringify(name)} .)`);
6602
+ }
6603
+ return args.length > 0 ? args.join(" ") : null;
6604
+ }
6571
6605
  queueLoopBodyChildrenDefine(comp) {
6572
6606
  const effectiveChildren = comp.children.length > 0 ? comp.children : resolveJsxChildrenProp(comp.props);
6573
6607
  if (effectiveChildren.length === 0)
@@ -6615,7 +6649,9 @@ ${goFields.join(`
6615
6649
  } else if (comp.slotId) {
6616
6650
  const suffix = slotIdToFieldSuffix(comp.slotId);
6617
6651
  const childrenDefine = this.queueDynamicChildrenDefine(comp);
6618
- templateCall = childrenDefine ? `{{template "${comp.name}" (bf_with_children .${comp.name}${suffix} (bf_tmpl "${childrenDefine}" .))}}` : `{{template "${comp.name}" .${comp.name}${suffix}}}`;
6652
+ const propArgs = this.queueDynamicPropDefine(comp);
6653
+ const base = propArgs ? `(bf_with_props .${comp.name}${suffix} ${propArgs})` : `.${comp.name}${suffix}`;
6654
+ templateCall = childrenDefine ? `{{template "${comp.name}" (bf_with_children ${base} (bf_tmpl "${childrenDefine}" .))}}` : `{{template "${comp.name}" ${base}}}`;
6619
6655
  } else {
6620
6656
  templateCall = `{{template "${comp.name}" .${comp.name}}}`;
6621
6657
  }
@@ -6876,14 +6912,20 @@ var conformancePins = {
6876
6912
  "date-method-uncatalogued": [{ code: "BF021", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2356" }],
6877
6913
  "rich-prop-client-read": [{ code: "BF049", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2648" }],
6878
6914
  "jsx-element-prop-ternary": [{ code: "BF021", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2667" }],
6879
- "jsx-element-prop-array": [{ code: "BF021", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2667" }]
6915
+ "jsx-element-prop-array": [{ code: "BF021", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2667" }],
6916
+ "jsx-element-prop-rest-bag-dynamic": [{
6917
+ code: "BF101",
6918
+ severity: "error",
6919
+ issue: "https://github.com/piconic-ai/barefootjs/issues/2805",
6920
+ unescapable: { issue: "https://github.com/piconic-ai/barefootjs/issues/2805" }
6921
+ }]
6880
6922
  };
6881
6923
  // src/render-divergences.ts
6882
6924
  var renderDivergences = {
6883
- "jsx-element-prop-fragment-conditional": 'Go-specific half of the fragment-wrapped-conditional prop shape, tracked as https://github.com/piconic-ai/barefootjs/issues/2703 (distinct from #2702, the cross-adapter hydrate-time bug). #2702 is a hydrate-time-only bug (SSR is correct on every adapter, confirmed for Go by direct `adapter.generate()` inspection of the raw template TEXT, which does contain `{{if .Cond}}<a bf-c="^s0">x</a>{{else}}...{{end}}`-shaped markup). But the REAL Go render of this exact fixture (`go-template-adapter.test.ts`, real `go run`) produces an EMPTY `<header>` — `<header bf="s1"><!--bf:s0--><!--/--></header>` instead of the reference `<a>x</a>` — i.e. the `header` prop\'s jsx-children payload never reaches the child (`Card`) component\'s slot construction (`.CardSlot1`) at all for this NAMED-prop shape, even though the same conditional-in-fragment payload renders correctly when passed via `children` instead (`jsx-element-prop-children-escape`). Root cause not yet isolated to a specific emitter function — only the reproducible symptom is pinned here. Every other adapter (Hono, ERB, Jinja, Mojolicious, MiniJinja, Twig, Xslate, Blade) renders this fixture correctly; verified by running each adapter\'s own JSX Conformance Tests for this fixture id.',
6884
6925
  "children-passthrough-renamed": "A `children` prop destructured under a different name (`const { children: kids } = props`) does not reach the SSR template on Go, tracked as https://github.com/piconic-ai/barefootjs/issues/2788. The same fixture also fails on Mojolicious, where the mechanism IS isolated: the `.html.ep` interpolates the LOCAL alias (`$kids`) while the stash defines only the caller-facing `children`, so the Perl render dies inside `Mojo::Template::process`. Go's own failure mode has NOT been read — `go` is not reachable from the local test process (the conformance case prints \"go command not found\" and skips), so this entry is declared from the CI failure on #2787 alone, not from a local reproduction. Whoever graduates this should read Go's actual output first rather than assume it shares Mojo's mechanism. Same alias family as `aliased-destructured-prop` (`{ n: count }`), whose Go half graduated in #2525 — worth checking whether the reserved `children` slot bypasses that fix or never had it. `children-passthrough-renamed` asserts the CORRECT (Hono-generated) output, so deleting this entry is the graduation.",
6885
6926
  "signal-object-spread-init": "PRE-EXISTING, unrelated to the #2696 Step 2 spread work this fixture pins: a `derived`-classified signal/memo whose value is an OBJECT literal has no live-template-expression lowering on Go — unlike the other six template-stash backends (e.g. minijinja emits `{% set merged = dict(base, done=true) %}`), Go always bakes an object-typed signal/memo field into Go SOURCE at `NewXxxProps` constructor time (`convertInitialValue`/`parsedLiteralToGo`), and that baker is STATIC-only (identifier/call/member operands defer, `parsed-literal-to-go.ts`'s own docstring) — it cannot reference a live prop at all. Reproduced identically with the spread REMOVED (`createSignal({ id: base.id, done: true })`), confirming the gap predates and is independent of spread: the signal seeds `nil` and every field read (`.Merged.ID`/`.Merged.Done`) reads the Go zero value regardless of `initialTodos`. Graduate by teaching the baker to emit prop-referencing Go expressions (https://github.com/piconic-ai/barefootjs/issues/2700).",
6886
- "textarea-row-breakout": "A signal seeded from a bare identifier referencing a MODULE-LEVEL const (`const PAYLOAD = '...'; createSignal(PAYLOAD)`) bakes to `nil` in the generated `New<Component>Props` constructor instead of the const's literal value: `convertInitialValue` (`value-lowering.ts`) only resolves a direct prop reference or a literal expression for a bare identifier, and the analyzer types this signal `{ kind: 'unknown' }`, so every typed branch falls through to the final `nil` fallback. `resolveModuleStringConst` exists on the adapter for exactly this resolution (used by `template-interp.ts` for live template expressions) but isn't wired into this signal-baking path. Unrelated to what this fixture exists to cover (#2765's loop-row textarea-escaping fix, verified correct here) — every other adapter renders the fixture's controlled `<textarea>` correctly. Tracked at https://github.com/piconic-ai/barefootjs/issues/2794; graduate by wiring `resolveModuleStringConst` into `convertInitialValue`'s bare-identifier case."
6927
+ "textarea-row-breakout": "A signal seeded from a bare identifier referencing a MODULE-LEVEL const (`const PAYLOAD = '...'; createSignal(PAYLOAD)`) bakes to `nil` in the generated `New<Component>Props` constructor instead of the const's literal value: `convertInitialValue` (`value-lowering.ts`) only resolves a direct prop reference or a literal expression for a bare identifier, and the analyzer types this signal `{ kind: 'unknown' }`, so every typed branch falls through to the final `nil` fallback. `resolveModuleStringConst` exists on the adapter for exactly this resolution (used by `template-interp.ts` for live template expressions) but isn't wired into this signal-baking path. Unrelated to what this fixture exists to cover (#2765's loop-row textarea-escaping fix, verified correct here) — every other adapter renders the fixture's controlled `<textarea>` correctly. Tracked at https://github.com/piconic-ai/barefootjs/issues/2794; graduate by wiring `resolveModuleStringConst` into `convertInitialValue`'s bare-identifier case.",
6928
+ "nested-loop-ref-const": "A signal-backed object array whose elements have a NESTED array-of-objects field (`children: [{...}]`, producing this fixture's depth-2 `.map()`) bakes to `nil` in `New<Component>Props`, leaving the whole `{{range .Items}}` body empty on real Go — `synthesizeStructFromSignal` (`go-template-adapter.ts`) only synthesizes a struct when EVERY property value is a scalar literal (`scalarParsedGoType`), so a `children` array property aborts synthesis for the entire signal; `parsedLiteralToGo` then has no named struct to bake an object-literal element against and falls through to `nil`. Reproduced identically with #2750's fix reverted, confirming this predates and is independent of #2750 (which only touches client-JS reachability, never SSR baking) — every other adapter (confirmed: Hono) renders the nested loop correctly. Tracked at https://github.com/piconic-ai/barefootjs/issues/2800; graduate by teaching `synthesizeStructFromSignal` to recursively synthesize a nested struct for an array-valued property instead of bailing to `null`."
6887
6929
  };
6888
6930
  export {
6889
6931
  renderDivergences,
@@ -13,6 +13,16 @@
13
13
  * the same way it already seeded a signal-backed dynamic one: the adapter's
14
14
  * own `emission` was never the bug, only this harness's route-handler
15
15
  * stand-in was missing the prop-derived case.)
16
+ *
17
+ * (#2703's `jsx-element-prop-fragment-conditional` divergence graduated by
18
+ * reclassification, not a lowering fix: the underlying gap — a named
19
+ * jsx-children prop whose value can't be baked into a static Go string
20
+ * silently got no field at all, no diagnostic — is now a loud `BF101`
21
+ * refusal (see `conformance-pins.ts`) instead of a silent wrong render.
22
+ * "Compiles clean but renders divergent" no longer describes this fixture on
23
+ * Go, so it moved off this table. Dynamic delivery for named jsx-children
24
+ * props (the actual capability gap) is tracked separately at
25
+ * https://github.com/piconic-ai/barefootjs/issues/2703.)
16
26
  */
17
27
  import type { RenderDivergences } from '@barefootjs/jsx';
18
28
  export declare const renderDivergences: RenderDivergences;
@@ -1 +1 @@
1
- {"version":3,"file":"render-divergences.d.ts","sourceRoot":"","sources":["../src/render-divergences.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAExD,eAAO,MAAM,iBAAiB,EAAE,iBAS/B,CAAA"}
1
+ {"version":3,"file":"render-divergences.d.ts","sourceRoot":"","sources":["../src/render-divergences.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAExD,eAAO,MAAM,iBAAiB,EAAE,iBAS/B,CAAA"}
package/dist/vite.js CHANGED
@@ -11717,7 +11717,7 @@ ${goFields.join(`
11717
11717
  }
11718
11718
  loopItemMarker(loop) {
11719
11719
  if (loop.bodyIsMultiRoot)
11720
- return `{{bfComment "bf-loop-i"}}`;
11720
+ return `{{bfComment "loop-i"}}`;
11721
11721
  if (loop.bodyIsItemConditional && loop.key) {
11722
11722
  return `{{bfComment (printf "loop-i:%v" ${this.convertExpressionToGo(loop.key)})}}`;
11723
11723
  }
@@ -11742,6 +11742,40 @@ ${goFields.join(`
11742
11742
  }
11743
11743
  return name;
11744
11744
  }
11745
+ queueDynamicPropDefine(comp) {
11746
+ const args = [];
11747
+ const childShape = this.childComponentShapes.get(comp.name);
11748
+ for (const prop of comp.props) {
11749
+ if (prop.value.kind !== "jsx-children" || prop.name === "children")
11750
+ continue;
11751
+ const children = prop.value.children;
11752
+ if (this.extractTextChildren(children) !== null)
11753
+ continue;
11754
+ if (this.extractHtmlChildren(children) !== null)
11755
+ continue;
11756
+ if (this.extractScopedHtmlChildren(children) !== null)
11757
+ continue;
11758
+ if (childShape?.restBagField && !childShape.paramNames.has(prop.name)) {
11759
+ this.state.errors.push({
11760
+ code: "BF101",
11761
+ severity: "error",
11762
+ message: `JSX-valued prop '${prop.name}' on <${comp.name}> is dynamic and routes into the child's rest-bag prop ('${childShape.restBagField}') rather than a declared field — there is no named Go struct field for 'bf_with_props' to target`,
11763
+ loc: prop.loc
11764
+ });
11765
+ continue;
11766
+ }
11767
+ const name = `${this.state.componentName}__prop_${prop.name}_${comp.slotId}`;
11768
+ if (!this.state.pendingChildrenDefines.some((d) => d.name === name)) {
11769
+ this.state.pendingChildrenDefines.push({
11770
+ name,
11771
+ content: this.renderChildren(children)
11772
+ });
11773
+ }
11774
+ const fieldName = this.childPropFieldNames.get(comp.name)?.get(prop.name) ?? capitalizeFieldName(prop.name);
11775
+ args.push(`${JSON.stringify(fieldName)} (bf_tmpl ${JSON.stringify(name)} .)`);
11776
+ }
11777
+ return args.length > 0 ? args.join(" ") : null;
11778
+ }
11745
11779
  queueLoopBodyChildrenDefine(comp) {
11746
11780
  const effectiveChildren = comp.children.length > 0 ? comp.children : resolveJsxChildrenProp(comp.props);
11747
11781
  if (effectiveChildren.length === 0)
@@ -11789,7 +11823,9 @@ ${goFields.join(`
11789
11823
  } else if (comp.slotId) {
11790
11824
  const suffix = slotIdToFieldSuffix(comp.slotId);
11791
11825
  const childrenDefine = this.queueDynamicChildrenDefine(comp);
11792
- templateCall = childrenDefine ? `{{template "${comp.name}" (bf_with_children .${comp.name}${suffix} (bf_tmpl "${childrenDefine}" .))}}` : `{{template "${comp.name}" .${comp.name}${suffix}}}`;
11826
+ const propArgs = this.queueDynamicPropDefine(comp);
11827
+ const base = propArgs ? `(bf_with_props .${comp.name}${suffix} ${propArgs})` : `.${comp.name}${suffix}`;
11828
+ templateCall = childrenDefine ? `{{template "${comp.name}" (bf_with_children ${base} (bf_tmpl "${childrenDefine}" .))}}` : `{{template "${comp.name}" ${base}}}`;
11793
11829
  } else {
11794
11830
  templateCall = `{{template "${comp.name}" .${comp.name}}}`;
11795
11831
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barefootjs/go-template",
3
- "version": "0.33.3",
3
+ "version": "0.33.4",
4
4
  "description": "Go html/template adapter for BarefootJS - generates Go template files from IR",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -49,7 +49,7 @@
49
49
  "directory": "packages/adapter-go-template"
50
50
  },
51
51
  "dependencies": {
52
- "@barefootjs/shared": "0.33.3"
52
+ "@barefootjs/shared": "0.33.4"
53
53
  },
54
54
  "peerDependencies": {
55
55
  "@barefootjs/jsx": ">=0.2.0",
@@ -67,9 +67,9 @@
67
67
  },
68
68
  "devDependencies": {
69
69
  "@barefootjs/adapter-tests": "0.1.0",
70
- "@barefootjs/client": "0.33.3",
71
- "@barefootjs/jsx": "0.33.3",
72
- "@barefootjs/vite": "0.33.3",
70
+ "@barefootjs/client": "0.33.4",
71
+ "@barefootjs/jsx": "0.33.4",
72
+ "@barefootjs/vite": "0.33.4",
73
73
  "vite": "^6.0.0"
74
74
  }
75
75
  }
@@ -118,12 +118,15 @@ runAdapterConformanceTests({
118
118
  'todo-app',
119
119
  // (#1897) data-table no longer skipped — loop body children + wrapper
120
120
  // struct + block-body memo baking render correctly on Go.
121
- // Real-render divergence (see `render-divergences.ts` for the full
122
- // description): Go's real SSR output drops the `header` prop's
123
- // content entirely for this shape, so its rendered template has no
124
- // `^s0` marker for the IR's conditional to match against. Paired
125
- // with the `renderDivergences` entry, not an independent gap.
126
- 'jsx-element-prop-fragment-conditional',
121
+ // `jsx-element-prop-fragment-conditional` (#2703) no longer skipped
122
+ // renders correctly since named jsx-children props got the same
123
+ // `bf_with_props`/`bf_tmpl` dynamic-delivery route reserved `children`
124
+ // already had.
125
+ // #2805: this shape refuses with BF101 at compile time (see
126
+ // `conformance-pins.ts`) — `expectedDiagnostics` covers the diagnostic
127
+ // contract, and marker comparison can't apply to a fixture that
128
+ // produces no complete template.
129
+ 'jsx-element-prop-rest-bag-dynamic',
127
130
  ]),
128
131
  skipDataPoints: new Set<string>([
129
132
  // #2743: html/template's URL-context autoescape percent-encodes the
@@ -2342,6 +2342,20 @@ export class GoTemplateAdapter extends BaseAdapter implements ParsedExprEmitter,
2342
2342
  this.state.usesHtmlTemplate = true
2343
2343
  emitChildField(prop.name, `template.HTML(${scopedHtml})`)
2344
2344
  }
2345
+ // Else: none of the three bake attempts produced a static
2346
+ // Go string — the value contains a template action that
2347
+ // survived (#2746) or is otherwise genuinely dynamic
2348
+ // (#2703). No field is emitted here; `queueDynamicPropDefine`
2349
+ // (called from `renderComponent`'s static-call-site branch)
2350
+ // detects the SAME unbakeable shape and delivers it at
2351
+ // template-execution time via `bf_with_props` + `bf_tmpl`,
2352
+ // mirroring how the reserved `children` field's null case
2353
+ // just above is filled in by `bf_with_children`. A
2354
+ // component nested in a loop row never reaches this
2355
+ // function (`collectStaticChildInstancesRecursive` only
2356
+ // collects `!inLoop` components), so there is no dynamic
2357
+ // named-prop delivery for that shape yet — out of scope
2358
+ // here, tracked separately if it turns up.
2345
2359
  }
2346
2360
  }
2347
2361
  }
@@ -7305,7 +7319,10 @@ export class GoTemplateAdapter extends BaseAdapter implements ParsedExprEmitter,
7305
7319
  * `mapArrayAnchored` can hydrate items that render no element.
7306
7320
  */
7307
7321
  private loopItemMarker(loop: { bodyIsMultiRoot?: boolean; bodyIsItemConditional?: boolean; key?: string | null }): string {
7308
- if (loop.bodyIsMultiRoot) return `{{bfComment "bf-loop-i"}}`
7322
+ // `bfComment` prepends `bf-`, so the argument is `"loop-i"`, not
7323
+ // `"bf-loop-i"` (which would double the prefix to `<!--bf-bf-loop-i-->`
7324
+ // — the same latent bug #2763's fixture caught on the Hono adapter).
7325
+ if (loop.bodyIsMultiRoot) return `{{bfComment "loop-i"}}`
7309
7326
  if (loop.bodyIsItemConditional && loop.key) {
7310
7327
  // `bfComment` prepends `bf-`, so `printf "loop-i:%v"` yields
7311
7328
  // `<!--bf-loop-i:KEY-->`. The key expression resolves against the current
@@ -7342,6 +7359,72 @@ export class GoTemplateAdapter extends BaseAdapter implements ParsedExprEmitter,
7342
7359
  return name
7343
7360
  }
7344
7361
 
7362
+ /**
7363
+ * #2703/B2: extend `queueDynamicChildrenDefine`'s companion-define delivery
7364
+ * from the reserved `children` slot to NAMED jsx-children props (any
7365
+ * JSX-valued prop other than `children`, e.g. `header={<strong>Title</strong>}`).
7366
+ * A named prop whose value can't be baked into a static Go string by
7367
+ * `emitStaticChildInstances`'s bake chain (`extractTextChildren` /
7368
+ * `extractHtmlChildren` / `extractScopedHtmlChildren`, all null) is queued
7369
+ * here instead, the same way; the caller composes the result into
7370
+ * `bf_with_props` + `bf_tmpl` at the STATIC (non-loop) call site — the one
7371
+ * shape `emitStaticChildInstances` bakes for at all (a component nested in
7372
+ * a loop row never reaches `collectStaticChildInstances`).
7373
+ *
7374
+ * Returns the flat `"FieldName" (bf_tmpl "name" .) ...` argument list ready
7375
+ * to splice into `bf_with_props`, or null when no named prop needs it —
7376
+ * batches every prop that needs dynamic delivery into ONE `bf_with_props`
7377
+ * call rather than nesting one per prop.
7378
+ */
7379
+ private queueDynamicPropDefine(comp: IRComponent): string | null {
7380
+ const args: string[] = []
7381
+ const childShape = this.childComponentShapes.get(comp.name)
7382
+ for (const prop of comp.props) {
7383
+ if (prop.value.kind !== 'jsx-children' || prop.name === 'children') continue
7384
+ const children = prop.value.children
7385
+ if (this.extractTextChildren(children) !== null) continue
7386
+ if (this.extractHtmlChildren(children) !== null) continue
7387
+ if (this.extractScopedHtmlChildren(children) !== null) continue
7388
+ // A prop routed into the child's rest bag (no declared param —
7389
+ // `loopRowChildPropOverrides`'s identical guard, above) has no named
7390
+ // Go field for `bf_with_props`/`WithProps` to target at all; `WithProps`
7391
+ // silently no-ops on an unmatched field name. Refuse loudly instead of
7392
+ // delivering the value against a field name that can never land —
7393
+ // this shape had no dynamic-delivery route before this method existed
7394
+ // either (the blanket BF101 this method's caller replaced was
7395
+ // unconditional for any unbakeable named prop), so this keeps it loud
7396
+ // rather than trading that refusal for a silent dropped render.
7397
+ if (childShape?.restBagField && !childShape.paramNames.has(prop.name)) {
7398
+ this.state.errors.push({
7399
+ code: 'BF101',
7400
+ severity: 'error',
7401
+ message: `JSX-valued prop '${prop.name}' on <${comp.name}> is dynamic and routes into the child's rest-bag prop ('${childShape.restBagField}') rather than a declared field — there is no named Go struct field for 'bf_with_props' to target`,
7402
+ loc: prop.loc,
7403
+ })
7404
+ continue
7405
+ }
7406
+ const name = `${this.state.componentName}__prop_${prop.name}_${comp.slotId}`
7407
+ if (!this.state.pendingChildrenDefines.some(d => d.name === name)) {
7408
+ this.state.pendingChildrenDefines.push({
7409
+ name,
7410
+ content: this.renderChildren(children),
7411
+ })
7412
+ }
7413
+ // `bf_with_props`/`WithProps` patches the child's Props struct, keyed
7414
+ // by the child's own LOCAL destructured field name — not necessarily
7415
+ // the caller's JSX attribute name (`function Card({ header: h })`
7416
+ // reads `h`, whose field is `H`, not `Header`). `WithProps` silently
7417
+ // no-ops on an unmatched field name, so skipping this lookup would
7418
+ // turn an aliased prop's dynamic delivery into a silent dropped
7419
+ // render. `childPropFieldNames` resolves this exact hazard for the
7420
+ // sibling `bf_with_props` call site (`loopRowChildPropOverrides`,
7421
+ // below) — mirrored here.
7422
+ const fieldName = this.childPropFieldNames.get(comp.name)?.get(prop.name) ?? capitalizeFieldName(prop.name)
7423
+ args.push(`${JSON.stringify(fieldName)} (bf_tmpl ${JSON.stringify(name)} .)`)
7424
+ }
7425
+ return args.length > 0 ? args.join(' ') : null
7426
+ }
7427
+
7345
7428
  /**
7346
7429
  * Queue a companion define for a loop body component's JSX children. Like
7347
7430
  * `queueDynamicChildrenDefine` but temporarily exits the `inLoop` context so
@@ -7447,9 +7530,19 @@ export class GoTemplateAdapter extends BaseAdapter implements ParsedExprEmitter,
7447
7530
  // Static children with slotId: unique field name based on slotId.
7448
7531
  const suffix = slotIdToFieldSuffix(comp.slotId)
7449
7532
  const childrenDefine = this.queueDynamicChildrenDefine(comp)
7533
+ // #2703/B2: a NAMED jsx-children prop (any JSX-valued prop other than
7534
+ // `children`) that couldn't be baked into the constructor gets the
7535
+ // same treatment `children` already has — delivered at the call site
7536
+ // via a companion define. Props helper stays INNER, same ordering
7537
+ // rule as the loop-nested branch above: `bf_with_children` applies
7538
+ // last, on the props-patched value.
7539
+ const propArgs = this.queueDynamicPropDefine(comp)
7540
+ const base = propArgs
7541
+ ? `(bf_with_props .${comp.name}${suffix} ${propArgs})`
7542
+ : `.${comp.name}${suffix}`
7450
7543
  templateCall = childrenDefine
7451
- ? `{{template "${comp.name}" (bf_with_children .${comp.name}${suffix} (bf_tmpl "${childrenDefine}" .))}}`
7452
- : `{{template "${comp.name}" .${comp.name}${suffix}}}`
7544
+ ? `{{template "${comp.name}" (bf_with_children ${base} (bf_tmpl "${childrenDefine}" .))}}`
7545
+ : `{{template "${comp.name}" ${base}}}`
7453
7546
  } else {
7454
7547
  // Static children without slotId: fall back to .ComponentName.
7455
7548
  templateCall = `{{template "${comp.name}" .${comp.name}}}`
@@ -59,4 +59,21 @@ export const conformancePins: ConformancePins = {
59
59
  // `rich-prop-client-read` above.
60
60
  'jsx-element-prop-ternary': [{ code: 'BF021', severity: 'error', issue: 'https://github.com/piconic-ai/barefootjs/issues/2667' }],
61
61
  'jsx-element-prop-array': [{ code: 'BF021', severity: 'error', issue: 'https://github.com/piconic-ai/barefootjs/issues/2667' }],
62
+ // `jsx-element-prop-fragment-conditional` (#2703) is NOT pinned here — it
63
+ // renders correctly since `queueDynamicPropDefine` (go-template-adapter.ts)
64
+ // extended the reserved `children` slot's `bf_with_children`/`bf_tmpl`
65
+ // dynamic-delivery route to named jsx-children props.
66
+ // #2805: a named jsx-children prop routed into the child's rest bag (no
67
+ // declared param — only reachable via the child's `...rest` spread) has
68
+ // no named Go struct field for `bf_with_props`/`WithProps` to target at
69
+ // all. `queueDynamicPropDefine` refuses loudly with BF101 rather than
70
+ // silently no-op through `WithProps`'s unmatched-field passthrough.
71
+ // `unescapable`: the capability gap (a rest-bag delivery route) is #2805
72
+ // itself, not authored yet, so no `/* @client */` escape twin exists.
73
+ 'jsx-element-prop-rest-bag-dynamic': [{
74
+ code: 'BF101',
75
+ severity: 'error',
76
+ issue: 'https://github.com/piconic-ai/barefootjs/issues/2805',
77
+ unescapable: { issue: 'https://github.com/piconic-ai/barefootjs/issues/2805' },
78
+ }],
62
79
  }
@@ -13,17 +13,27 @@
13
13
  * the same way it already seeded a signal-backed dynamic one: the adapter's
14
14
  * own `emission` was never the bug, only this harness's route-handler
15
15
  * stand-in was missing the prop-derived case.)
16
+ *
17
+ * (#2703's `jsx-element-prop-fragment-conditional` divergence graduated by
18
+ * reclassification, not a lowering fix: the underlying gap — a named
19
+ * jsx-children prop whose value can't be baked into a static Go string
20
+ * silently got no field at all, no diagnostic — is now a loud `BF101`
21
+ * refusal (see `conformance-pins.ts`) instead of a silent wrong render.
22
+ * "Compiles clean but renders divergent" no longer describes this fixture on
23
+ * Go, so it moved off this table. Dynamic delivery for named jsx-children
24
+ * props (the actual capability gap) is tracked separately at
25
+ * https://github.com/piconic-ai/barefootjs/issues/2703.)
16
26
  */
17
27
 
18
28
  import type { RenderDivergences } from '@barefootjs/jsx'
19
29
 
20
30
  export const renderDivergences: RenderDivergences = {
21
- 'jsx-element-prop-fragment-conditional':
22
- 'Go-specific half of the fragment-wrapped-conditional prop shape, tracked as https://github.com/piconic-ai/barefootjs/issues/2703 (distinct from #2702, the cross-adapter hydrate-time bug). #2702 is a hydrate-time-only bug (SSR is correct on every adapter, confirmed for Go by direct `adapter.generate()` inspection of the raw template TEXT, which does contain `{{if .Cond}}<a bf-c="^s0">x</a>{{else}}...{{end}}`-shaped markup). But the REAL Go render of this exact fixture (`go-template-adapter.test.ts`, real `go run`) produces an EMPTY `<header>` — `<header bf="s1"><!--bf:s0--><!--/--></header>` instead of the reference `<a>x</a>` — i.e. the `header` prop\'s jsx-children payload never reaches the child (`Card`) component\'s slot construction (`.CardSlot1`) at all for this NAMED-prop shape, even though the same conditional-in-fragment payload renders correctly when passed via `children` instead (`jsx-element-prop-children-escape`). Root cause not yet isolated to a specific emitter function — only the reproducible symptom is pinned here. Every other adapter (Hono, ERB, Jinja, Mojolicious, MiniJinja, Twig, Xslate, Blade) renders this fixture correctly; verified by running each adapter\'s own JSX Conformance Tests for this fixture id.',
23
31
  'children-passthrough-renamed':
24
32
  'A `children` prop destructured under a different name (`const { children: kids } = props`) does not reach the SSR template on Go, tracked as https://github.com/piconic-ai/barefootjs/issues/2788. The same fixture also fails on Mojolicious, where the mechanism IS isolated: the `.html.ep` interpolates the LOCAL alias (`$kids`) while the stash defines only the caller-facing `children`, so the Perl render dies inside `Mojo::Template::process`. Go\'s own failure mode has NOT been read — `go` is not reachable from the local test process (the conformance case prints "go command not found" and skips), so this entry is declared from the CI failure on #2787 alone, not from a local reproduction. Whoever graduates this should read Go\'s actual output first rather than assume it shares Mojo\'s mechanism. Same alias family as `aliased-destructured-prop` (`{ n: count }`), whose Go half graduated in #2525 — worth checking whether the reserved `children` slot bypasses that fix or never had it. `children-passthrough-renamed` asserts the CORRECT (Hono-generated) output, so deleting this entry is the graduation.',
25
33
  'signal-object-spread-init':
26
34
  'PRE-EXISTING, unrelated to the #2696 Step 2 spread work this fixture pins: a `derived`-classified signal/memo whose value is an OBJECT literal has no live-template-expression lowering on Go — unlike the other six template-stash backends (e.g. minijinja emits `{% set merged = dict(base, done=true) %}`), Go always bakes an object-typed signal/memo field into Go SOURCE at `NewXxxProps` constructor time (`convertInitialValue`/`parsedLiteralToGo`), and that baker is STATIC-only (identifier/call/member operands defer, `parsed-literal-to-go.ts`\'s own docstring) — it cannot reference a live prop at all. Reproduced identically with the spread REMOVED (`createSignal({ id: base.id, done: true })`), confirming the gap predates and is independent of spread: the signal seeds `nil` and every field read (`.Merged.ID`/`.Merged.Done`) reads the Go zero value regardless of `initialTodos`. Graduate by teaching the baker to emit prop-referencing Go expressions (https://github.com/piconic-ai/barefootjs/issues/2700).',
27
35
  'textarea-row-breakout':
28
36
  'A signal seeded from a bare identifier referencing a MODULE-LEVEL const (`const PAYLOAD = \'...\'; createSignal(PAYLOAD)`) bakes to `nil` in the generated `New<Component>Props` constructor instead of the const\'s literal value: `convertInitialValue` (`value-lowering.ts`) only resolves a direct prop reference or a literal expression for a bare identifier, and the analyzer types this signal `{ kind: \'unknown\' }`, so every typed branch falls through to the final `nil` fallback. `resolveModuleStringConst` exists on the adapter for exactly this resolution (used by `template-interp.ts` for live template expressions) but isn\'t wired into this signal-baking path. Unrelated to what this fixture exists to cover (#2765\'s loop-row textarea-escaping fix, verified correct here) — every other adapter renders the fixture\'s controlled `<textarea>` correctly. Tracked at https://github.com/piconic-ai/barefootjs/issues/2794; graduate by wiring `resolveModuleStringConst` into `convertInitialValue`\'s bare-identifier case.',
37
+ 'nested-loop-ref-const':
38
+ 'A signal-backed object array whose elements have a NESTED array-of-objects field (`children: [{...}]`, producing this fixture\'s depth-2 `.map()`) bakes to `nil` in `New<Component>Props`, leaving the whole `{{range .Items}}` body empty on real Go — `synthesizeStructFromSignal` (`go-template-adapter.ts`) only synthesizes a struct when EVERY property value is a scalar literal (`scalarParsedGoType`), so a `children` array property aborts synthesis for the entire signal; `parsedLiteralToGo` then has no named struct to bake an object-literal element against and falls through to `nil`. Reproduced identically with #2750\'s fix reverted, confirming this predates and is independent of #2750 (which only touches client-JS reachability, never SSR baking) — every other adapter (confirmed: Hono) renders the nested loop correctly. Tracked at https://github.com/piconic-ai/barefootjs/issues/2800; graduate by teaching `synthesizeStructFromSignal` to recursively synthesize a nested struct for an array-valued property instead of bailing to `null`.',
29
39
  }