@barefootjs/xslate 0.35.0 → 0.35.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"emitters.d.ts","sourceRoot":"","sources":["../../../src/adapter/expr/emitters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAGpB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EACd,KAAK,YAAY,EAMlB,MAAM,iBAAiB,CAAA;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAiC3D;;;;;;;;;;GAUG;AACH,qBAAa,mBAAoB,YAAW,iBAAiB;IAS3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAIrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAA4C;IAE3E,YACE,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,YAAY,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAqB,EAClD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,EAM3D;IAED,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK/B;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAKjF;IAED,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAS5H;IAED,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAK1F;IAED,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAMpF;IAED,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAQ/E;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,CAqB/F;IAED,OAAO,CAAC,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAM5G;IAED,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,EAC9C,SAAS,EAAE,UAAU,EAAE,EACvB,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC9B,MAAM,CAWR;IAED,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAE5E;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,CAER;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,CAER;IAED,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAEtF;IAED,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAE9C;IAED,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAElD;IAED,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1B;IAED,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;IAED,aAAa,CAAC,WAAW,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAM1G;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAsB,YAAW,iBAAiB;IAG7D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmB;IAEvC,YAAY,GAAG,EAAE,iBAAiB,EAEjC;IAED;;;;;;;;OAQG;IACH,IAAI,QAAQ,IAAI,eAAe,CAkB9B;IAED,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa/B;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAKjF;IAED,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAoB5H;IAED,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAI1F;IAED,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CA+BpF;IAED,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAK/E;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,CAuB/F;IAED,OAAO,CAAC,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAM5G;IAED,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,CA0ER;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IA0C9B,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAE5E;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,CAER;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,CAER;IAED,WAAW,CACT,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC9B,MAAM,CAER;IAED,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAoB9E;IAED,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAKlD;IAED,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG1B;IAED,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;IAED,aAAa,CAAC,UAAU,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAoBxG;CACF"}
1
+ {"version":3,"file":"emitters.d.ts","sourceRoot":"","sources":["../../../src/adapter/expr/emitters.ts"],"names":[],"mappings":"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"}
@@ -187651,6 +187651,11 @@ var PREDICATE_METHODS = new Set([
187651
187651
  "every",
187652
187652
  "some"
187653
187653
  ]);
187654
+ function flattenPropsMember(object, property) {
187655
+ if (object.kind === "identifier" && object.name === "props")
187656
+ return `$${property}`;
187657
+ return null;
187658
+ }
187654
187659
 
187655
187660
  class XslateFilterEmitter {
187656
187661
  param;
@@ -187681,6 +187686,9 @@ class XslateFilterEmitter {
187681
187686
  return String(value);
187682
187687
  }
187683
187688
  member(object, property, _computed, _optional, emit) {
187689
+ const flat = flattenPropsMember(object, property);
187690
+ if (flat !== null)
187691
+ return flat;
187684
187692
  if (property === "length") {
187685
187693
  return `$bf.length(${emit(object)})`;
187686
187694
  }
@@ -187808,9 +187816,9 @@ class XslateTopLevelEmitter {
187808
187816
  return String(value);
187809
187817
  }
187810
187818
  member(object, property, _computed, _optional, emit) {
187811
- if (object.kind === "identifier" && object.name === "props") {
187812
- return `$${property}`;
187813
- }
187819
+ const flat = flattenPropsMember(object, property);
187820
+ if (flat !== null)
187821
+ return flat;
187814
187822
  if (object.kind === "identifier") {
187815
187823
  const staticValue = this.ctx._resolveStaticRecordLiteral(object.name, property);
187816
187824
  if (staticValue !== null)
@@ -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,eAiE7B,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,eAuE7B,CAAA"}
package/dist/index.js CHANGED
@@ -187651,6 +187651,11 @@ var PREDICATE_METHODS = new Set([
187651
187651
  "every",
187652
187652
  "some"
187653
187653
  ]);
187654
+ function flattenPropsMember(object, property) {
187655
+ if (object.kind === "identifier" && object.name === "props")
187656
+ return `$${property}`;
187657
+ return null;
187658
+ }
187654
187659
 
187655
187660
  class XslateFilterEmitter {
187656
187661
  param;
@@ -187681,6 +187686,9 @@ class XslateFilterEmitter {
187681
187686
  return String(value);
187682
187687
  }
187683
187688
  member(object, property, _computed, _optional, emit) {
187689
+ const flat = flattenPropsMember(object, property);
187690
+ if (flat !== null)
187691
+ return flat;
187684
187692
  if (property === "length") {
187685
187693
  return `$bf.length(${emit(object)})`;
187686
187694
  }
@@ -187808,9 +187816,9 @@ class XslateTopLevelEmitter {
187808
187816
  return String(value);
187809
187817
  }
187810
187818
  member(object, property, _computed, _optional, emit) {
187811
- if (object.kind === "identifier" && object.name === "props") {
187812
- return `$${property}`;
187813
- }
187819
+ const flat = flattenPropsMember(object, property);
187820
+ if (flat !== null)
187821
+ return flat;
187814
187822
  if (object.kind === "identifier") {
187815
187823
  const staticValue = this.ctx._resolveStaticRecordLiteral(object.name, property);
187816
187824
  if (staticValue !== null)
@@ -189172,9 +189180,9 @@ var conformancePins = {
189172
189180
  "filter-nested-find-predicate": [{ code: "BF101", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2320" }],
189173
189181
  "date-method-uncatalogued": [{ code: "BF021", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2356" }],
189174
189182
  "rich-prop-client-read": [{ code: "BF049", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2648" }],
189175
- "jsx-element-prop-ternary": [{ code: "BF021", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2667" }],
189176
- "jsx-element-prop-array": [{ code: "BF021", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2667" }],
189177
- "namespace-import-primitive": [{ code: "BF013", severity: "error", issue: "https://github.com/piconic-ai/barefootjs/issues/2771" }]
189183
+ "jsx-element-prop-ternary": [{ code: "BF021", severity: "error" }],
189184
+ "jsx-element-prop-array": [{ code: "BF021", severity: "error" }],
189185
+ "namespace-import-primitive": [{ code: "BF013", severity: "error" }]
189178
189186
  };
189179
189187
  // src/render-divergences.ts
189180
189188
  var renderDivergences = {};
package/dist/vite.js CHANGED
@@ -8,7 +8,7 @@ import { devModuleUrl, loadManifest, resolveDevOrigin, resolveScriptAssets, toPo
8
8
  import ts25 from "typescript";
9
9
 
10
10
  // ../jsx/src/analyzer.ts
11
- import ts10 from "typescript";
11
+ import ts11 from "typescript";
12
12
 
13
13
  // ../jsx/src/expression-parser.ts
14
14
  import ts from "typescript";
@@ -2337,14 +2337,17 @@ function freshCounters() {
2337
2337
  }
2338
2338
 
2339
2339
  // ../jsx/src/analyzer-context.ts
2340
- import ts9 from "typescript";
2340
+ import ts10 from "typescript";
2341
2341
 
2342
2342
  // ../jsx/src/strip-types.ts
2343
2343
  import ts8 from "typescript";
2344
2344
 
2345
+ // ../jsx/src/reactivity-checker.ts
2346
+ import ts9 from "typescript";
2347
+
2345
2348
  // ../jsx/src/analyzer-context.ts
2346
- var _typePrinter = ts9.createPrinter({ removeComments: true, omitTrailingSemicolon: true });
2347
- var _blankTypeSourceFile = ts9.createSourceFile("__bf_types__.ts", "", ts9.ScriptTarget.Latest);
2349
+ var _typePrinter = ts10.createPrinter({ removeComments: true, omitTrailingSemicolon: true });
2350
+ var _blankTypeSourceFile = ts10.createSourceFile("__bf_types__.ts", "", ts10.ScriptTarget.Latest);
2348
2351
 
2349
2352
  // ../jsx/src/errors.ts
2350
2353
  var ErrorCodes = {
@@ -2577,46 +2580,46 @@ function extractFreeIdentifiersFromNode(node) {
2577
2580
  const ids = new Set;
2578
2581
  const boundNames = new Set;
2579
2582
  function addBindingNames(name, out) {
2580
- if (ts10.isIdentifier(name))
2583
+ if (ts11.isIdentifier(name))
2581
2584
  out.push(name.text);
2582
- else if (ts10.isObjectBindingPattern(name))
2585
+ else if (ts11.isObjectBindingPattern(name))
2583
2586
  name.elements.forEach((e) => addBindingNames(e.name, out));
2584
- else if (ts10.isArrayBindingPattern(name))
2587
+ else if (ts11.isArrayBindingPattern(name))
2585
2588
  name.elements.forEach((e) => {
2586
- if (!ts10.isOmittedExpression(e))
2589
+ if (!ts11.isOmittedExpression(e))
2587
2590
  addBindingNames(e.name, out);
2588
2591
  });
2589
2592
  }
2590
2593
  function visit(n) {
2591
- if (ts10.isTypeNode(n))
2594
+ if (ts11.isTypeNode(n))
2592
2595
  return;
2593
- if (ts10.isIdentifier(n)) {
2596
+ if (ts11.isIdentifier(n)) {
2594
2597
  const parent = n.parent;
2595
- if (parent && ts10.isPropertyAccessExpression(parent) && parent.name === n)
2598
+ if (parent && ts11.isPropertyAccessExpression(parent) && parent.name === n)
2596
2599
  return;
2597
- if (parent && ts10.isPropertyAssignment(parent) && parent.name === n)
2600
+ if (parent && ts11.isPropertyAssignment(parent) && parent.name === n)
2598
2601
  return;
2599
- if (parent && ts10.isParameter(parent) && parent.name === n)
2602
+ if (parent && ts11.isParameter(parent) && parent.name === n)
2600
2603
  return;
2601
- if (parent && ts10.isVariableDeclaration(parent) && parent.name === n)
2604
+ if (parent && ts11.isVariableDeclaration(parent) && parent.name === n)
2602
2605
  return;
2603
2606
  if (boundNames.has(n.text))
2604
2607
  return;
2605
2608
  ids.add(n.text);
2606
2609
  return;
2607
2610
  }
2608
- if (ts10.isArrowFunction(n)) {
2611
+ if (ts11.isArrowFunction(n)) {
2609
2612
  const params = [];
2610
2613
  for (const p of n.parameters)
2611
2614
  addBindingNames(p.name, params);
2612
2615
  for (const name of params)
2613
2616
  boundNames.add(name);
2614
- ts10.forEachChild(n, visit);
2617
+ ts11.forEachChild(n, visit);
2615
2618
  for (const name of params)
2616
2619
  boundNames.delete(name);
2617
2620
  return;
2618
2621
  }
2619
- ts10.forEachChild(n, visit);
2622
+ ts11.forEachChild(n, visit);
2620
2623
  }
2621
2624
  visit(node);
2622
2625
  return ids;
@@ -2690,7 +2693,7 @@ function preambleAnalysisTemplateText(p) {
2690
2693
  }
2691
2694
 
2692
2695
  // ../jsx/src/module-exports.ts
2693
- import ts11 from "typescript";
2696
+ import ts12 from "typescript";
2694
2697
  function formatParamWithType(p) {
2695
2698
  const rest = p.isRest ? "..." : "";
2696
2699
  const optional = p.optional ? "?" : "";
@@ -2725,21 +2728,21 @@ function findAssignedNames(bodyText, candidates) {
2725
2728
  const assigned = new Set;
2726
2729
  if (candidates.size === 0)
2727
2730
  return assigned;
2728
- const sf = ts11.createSourceFile("bf-assignment-scan.tsx", bodyText, ts11.ScriptTarget.Latest, false, ts11.ScriptKind.TSX);
2731
+ const sf = ts12.createSourceFile("bf-assignment-scan.tsx", bodyText, ts12.ScriptTarget.Latest, false, ts12.ScriptKind.TSX);
2729
2732
  const record = (target) => {
2730
- if (ts11.isIdentifier(target) && candidates.has(target.text)) {
2733
+ if (ts12.isIdentifier(target) && candidates.has(target.text)) {
2731
2734
  assigned.add(target.text);
2732
2735
  }
2733
2736
  };
2734
2737
  const visit = (node) => {
2735
- if (ts11.isBinaryExpression(node) && isAssignmentOperator(node.operatorToken.kind)) {
2738
+ if (ts12.isBinaryExpression(node) && isAssignmentOperator(node.operatorToken.kind)) {
2736
2739
  record(node.left);
2737
- } else if ((ts11.isPrefixUnaryExpression(node) || ts11.isPostfixUnaryExpression(node)) && (node.operator === ts11.SyntaxKind.PlusPlusToken || node.operator === ts11.SyntaxKind.MinusMinusToken)) {
2740
+ } else if ((ts12.isPrefixUnaryExpression(node) || ts12.isPostfixUnaryExpression(node)) && (node.operator === ts12.SyntaxKind.PlusPlusToken || node.operator === ts12.SyntaxKind.MinusMinusToken)) {
2738
2741
  record(node.operand);
2739
2742
  }
2740
- ts11.forEachChild(node, visit);
2743
+ ts12.forEachChild(node, visit);
2741
2744
  };
2742
- ts11.forEachChild(sf, visit);
2745
+ ts12.forEachChild(sf, visit);
2743
2746
  return assigned;
2744
2747
  }
2745
2748
  function closeOverWritersOfMutableBindings(primaryRefs, declarations, mutableNames) {
@@ -2762,12 +2765,9 @@ function closeOverWritersOfMutableBindings(primaryRefs, declarations, mutableNam
2762
2765
  return reachable;
2763
2766
  }
2764
2767
  function isAssignmentOperator(kind) {
2765
- return kind >= ts11.SyntaxKind.FirstAssignment && kind <= ts11.SyntaxKind.LastAssignment;
2768
+ return kind >= ts12.SyntaxKind.FirstAssignment && kind <= ts12.SyntaxKind.LastAssignment;
2766
2769
  }
2767
2770
 
2768
- // ../jsx/src/reactivity-checker.ts
2769
- import ts12 from "typescript";
2770
-
2771
2771
  // ../jsx/src/free-refs.ts
2772
2772
  import ts13 from "typescript";
2773
2773
  var _bindingMapCache = new WeakMap;
@@ -5629,6 +5629,11 @@ var PREDICATE_METHODS = new Set([
5629
5629
  "every",
5630
5630
  "some"
5631
5631
  ]);
5632
+ function flattenPropsMember(object, property) {
5633
+ if (object.kind === "identifier" && object.name === "props")
5634
+ return `$${property}`;
5635
+ return null;
5636
+ }
5632
5637
 
5633
5638
  class XslateFilterEmitter {
5634
5639
  param;
@@ -5659,6 +5664,9 @@ class XslateFilterEmitter {
5659
5664
  return String(value);
5660
5665
  }
5661
5666
  member(object, property, _computed, _optional, emit) {
5667
+ const flat = flattenPropsMember(object, property);
5668
+ if (flat !== null)
5669
+ return flat;
5662
5670
  if (property === "length") {
5663
5671
  return `$bf.length(${emit(object)})`;
5664
5672
  }
@@ -5786,9 +5794,9 @@ class XslateTopLevelEmitter {
5786
5794
  return String(value);
5787
5795
  }
5788
5796
  member(object, property, _computed, _optional, emit) {
5789
- if (object.kind === "identifier" && object.name === "props") {
5790
- return `$${property}`;
5791
- }
5797
+ const flat = flattenPropsMember(object, property);
5798
+ if (flat !== null)
5799
+ return flat;
5792
5800
  if (object.kind === "identifier") {
5793
5801
  const staticValue = this.ctx._resolveStaticRecordLiteral(object.name, property);
5794
5802
  if (staticValue !== null)
@@ -1,5 +1,5 @@
1
1
  package BarefootJS::Backend::Xslate;
2
- our $VERSION = "0.34.0";
2
+ our $VERSION = "0.35.1";
3
3
  use strict;
4
4
  use warnings;
5
5
  use utf8;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barefootjs/xslate",
3
- "version": "0.35.0",
3
+ "version": "0.35.2",
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,7 +55,7 @@
55
55
  "directory": "packages/adapter-xslate"
56
56
  },
57
57
  "dependencies": {
58
- "@barefootjs/shared": "0.35.0"
58
+ "@barefootjs/shared": "0.35.2"
59
59
  },
60
60
  "peerDependencies": {
61
61
  "@barefootjs/jsx": ">=0.2.0",
@@ -72,9 +72,9 @@
72
72
  },
73
73
  "devDependencies": {
74
74
  "@barefootjs/adapter-tests": "0.1.0",
75
- "@barefootjs/jsx": "0.35.0",
76
- "@barefootjs/vite": "0.35.0",
77
- "@barefootjs/client": "0.35.0",
75
+ "@barefootjs/jsx": "0.35.2",
76
+ "@barefootjs/vite": "0.35.2",
77
+ "@barefootjs/client": "0.35.2",
78
78
  "typescript": "^5.0.0",
79
79
  "vite": "^6.0.0"
80
80
  }
@@ -64,6 +64,21 @@ const PREDICATE_METHODS = new Set<HigherOrderMethod>([
64
64
  'filter', 'find', 'findIndex', 'findLast', 'findLastIndex', 'every', 'some',
65
65
  ])
66
66
 
67
+ /**
68
+ * `props.x` on a bare-props-form component flattens to the bare `$x` the
69
+ * SSR caller binds each prop to (props arrive as individual top-level vars,
70
+ * not a `$props` hashref). Single door for BOTH `member()` emitters below
71
+ * (#2886) — `XslateFilterEmitter` lacked this decision entirely (#2879's
72
+ * cross-adapter follow-up), silently reaching `$props.x`, and `$props` is
73
+ * nil at runtime (silent — every row is kept instead of filtered). Returns
74
+ * null for any other receiver so callers fall through to their generic
75
+ * member lowering — `props.a.b` flattens only the inner hop.
76
+ */
77
+ function flattenPropsMember(object: ParsedExpr, property: string): string | null {
78
+ if (object.kind === 'identifier' && object.name === 'props') return `$${property}`
79
+ return null
80
+ }
81
+
67
82
  /**
68
83
  * Lowering for the predicate body of a filter / every / some / find, plus the
69
84
  * same shape used by `renderBlockBodyCondition` for complex block-body
@@ -119,6 +134,8 @@ export class XslateFilterEmitter implements ParsedExprEmitter {
119
134
  }
120
135
 
121
136
  member(object: ParsedExpr, property: string, _computed: boolean, _optional: boolean, emit: (e: ParsedExpr) => string): string {
137
+ const flat = flattenPropsMember(object, property)
138
+ if (flat !== null) return flat
122
139
  // `.length` — route through `$bf.length` (handles both array element
123
140
  // count and string char count, JS-compatibly). Kolon's builtin `.size()`
124
141
  // is array-only and faults on a string.
@@ -323,11 +340,8 @@ export class XslateTopLevelEmitter implements ParsedExprEmitter {
323
340
  }
324
341
 
325
342
  member(object: ParsedExpr, property: string, _computed: boolean, _optional: boolean, emit: (e: ParsedExpr) => string): string {
326
- // `props.x` flattens to the bare `$x` the SSR caller binds each prop to
327
- // (props arrive as individual top-level vars, not a `$props` hashref).
328
- if (object.kind === 'identifier' && object.name === 'props') {
329
- return `$${property}`
330
- }
343
+ const flat = flattenPropsMember(object, property)
344
+ if (flat !== null) return flat
331
345
  // Static property access on a module object-literal const
332
346
  // (`variantClasses.ghost`, #1897) resolves at compile time — the
333
347
  // generic dot lowering below would reference a Kolon var that
@@ -60,18 +60,24 @@ export const conformancePins: ConformancePins = {
60
60
  // above is refused.
61
61
  'date-method-uncatalogued': [{ code: 'BF021', severity: 'error', issue: 'https://github.com/piconic-ai/barefootjs/issues/2356' }],
62
62
  'rich-prop-client-read': [{ code: 'BF049', severity: 'error', issue: 'https://github.com/piconic-ai/barefootjs/issues/2648' }],
63
- // #2667: a ternary/array LITERALLY WRAPPING JSX at a non-children prop
63
+ // A ternary or array literal LITERALLY WRAPPING JSX at a non-children prop
64
64
  // position (e.g. `header={cond ? <a/> : <b/>}`) is refused ahead of
65
65
  // `adapter.generate()` in the shared jsx-to-ir.ts phase, so it is pinned
66
66
  // identically on every adapter (including Hono) — same reasoning as
67
- // `rich-prop-client-read` above.
68
- 'jsx-element-prop-ternary': [{ code: 'BF021', severity: 'error', issue: 'https://github.com/piconic-ai/barefootjs/issues/2667' }],
69
- 'jsx-element-prop-array': [{ code: 'BF021', severity: 'error', issue: 'https://github.com/piconic-ai/barefootjs/issues/2667' }],
70
- // #2771: a reactive primitive invoked through a namespace import
67
+ // `rich-prop-client-read` above. This is the permanent, intended behavior
68
+ // (formerly tracked as #2667, closed): the issue's own acceptance criteria
69
+ // treated a loud refusal as fully resolving the silent-divergence bug, so
70
+ // no open issue tracks further work here.
71
+ 'jsx-element-prop-ternary': [{ code: 'BF021', severity: 'error' }],
72
+ 'jsx-element-prop-array': [{ code: 'BF021', severity: 'error' }],
73
+ // A reactive primitive invoked through a namespace import
71
74
  // (`import * as bf from '@barefootjs/client'`, `bf.createSignal(...)`)
72
75
  // that the analyzer's checker-less fast path cannot recognize refuses
73
76
  // loudly (BF013) instead of silently dropping the declaration — fired
74
77
  // in the shared analyzer pass ahead of any adapter's `adapter.generate()`,
75
- // so all nine adapters (including Hono) pin this identically.
76
- 'namespace-import-primitive': [{ code: 'BF013', severity: 'error', issue: 'https://github.com/piconic-ai/barefootjs/issues/2771' }],
78
+ // so all nine adapters (including Hono) pin this identically. A compile
79
+ // that supplies a shared `ts.Program` (e.g. via `@barefootjs/vite`)
80
+ // resolves the primitive normally and never reaches this refusal (formerly
81
+ // tracked as #2771, closed) — no open issue tracks further work.
82
+ 'namespace-import-primitive': [{ code: 'BF013', severity: 'error' }],
77
83
  }