@barefootjs/client 0.31.4 → 0.31.5

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.
Files changed (2) hide show
  1. package/dist/csr-adapter.js +68 -22
  2. package/package.json +2 -2
@@ -168754,7 +168754,7 @@ Additional information: BADCLIENT: Bad error code, ${badCode} not found in range
168754
168754
  });
168755
168755
 
168756
168756
  // ../jsx/src/compiler.ts
168757
- var import_typescript23 = __toESM(require_typescript(), 1);
168757
+ var import_typescript24 = __toESM(require_typescript(), 1);
168758
168758
 
168759
168759
  // ../jsx/src/analyzer.ts
168760
168760
  var import_typescript9 = __toESM(require_typescript(), 1);
@@ -169427,7 +169427,7 @@ var REACTIVE_PRIMITIVES = new Set([
169427
169427
  ]);
169428
169428
 
169429
169429
  // ../jsx/src/jsx-to-ir.ts
169430
- var import_typescript12 = __toESM(require_typescript(), 1);
169430
+ var import_typescript13 = __toESM(require_typescript(), 1);
169431
169431
 
169432
169432
  // ../jsx/src/types.ts
169433
169433
  var SCOPE_FORBIDDEN = {
@@ -169463,6 +169463,7 @@ var REACTIVE_BINDING_KINDS = new Set([
169463
169463
  ]);
169464
169464
 
169465
169465
  // ../jsx/src/module-exports.ts
169466
+ var import_typescript10 = __toESM(require_typescript(), 1);
169466
169467
  function formatParamWithType(p) {
169467
169468
  const rest = p.isRest ? "..." : "";
169468
169469
  const optional = p.optional ? "?" : "";
@@ -169493,12 +169494,55 @@ function findReachableNames(primaryRefs, declarations) {
169493
169494
  }
169494
169495
  return reachable;
169495
169496
  }
169497
+ function findAssignedNames(bodyText, candidates) {
169498
+ const assigned = new Set;
169499
+ if (candidates.size === 0)
169500
+ return assigned;
169501
+ const sf = import_typescript10.default.createSourceFile("bf-assignment-scan.tsx", bodyText, import_typescript10.default.ScriptTarget.Latest, false, import_typescript10.default.ScriptKind.TSX);
169502
+ const record = (target) => {
169503
+ if (import_typescript10.default.isIdentifier(target) && candidates.has(target.text)) {
169504
+ assigned.add(target.text);
169505
+ }
169506
+ };
169507
+ const visit = (node) => {
169508
+ if (import_typescript10.default.isBinaryExpression(node) && isAssignmentOperator(node.operatorToken.kind)) {
169509
+ record(node.left);
169510
+ } else if ((import_typescript10.default.isPrefixUnaryExpression(node) || import_typescript10.default.isPostfixUnaryExpression(node)) && (node.operator === import_typescript10.default.SyntaxKind.PlusPlusToken || node.operator === import_typescript10.default.SyntaxKind.MinusMinusToken)) {
169511
+ record(node.operand);
169512
+ }
169513
+ import_typescript10.default.forEachChild(node, visit);
169514
+ };
169515
+ import_typescript10.default.forEachChild(sf, visit);
169516
+ return assigned;
169517
+ }
169518
+ function closeOverWritersOfMutableBindings(primaryRefs, declarations, mutableNames) {
169519
+ let reachable = findReachableNames(primaryRefs, declarations);
169520
+ if (mutableNames.size === 0)
169521
+ return reachable;
169522
+ let seedText = primaryRefs;
169523
+ for (let round = 0;round <= declarations.length; round++) {
169524
+ const survivingMutables = new Set([...reachable].filter((name) => mutableNames.has(name)));
169525
+ if (survivingMutables.size === 0)
169526
+ return reachable;
169527
+ const added = declarations.filter((d) => !reachable.has(d.name)).filter((d) => findAssignedNames(d.body, survivingMutables).size > 0).map((d) => d.name);
169528
+ if (added.length === 0)
169529
+ return reachable;
169530
+ seedText += `
169531
+ ` + added.join(`
169532
+ `);
169533
+ reachable = findReachableNames(seedText, declarations);
169534
+ }
169535
+ return reachable;
169536
+ }
169537
+ function isAssignmentOperator(kind) {
169538
+ return kind >= import_typescript10.default.SyntaxKind.FirstAssignment && kind <= import_typescript10.default.SyntaxKind.LastAssignment;
169539
+ }
169496
169540
 
169497
169541
  // ../jsx/src/reactivity-checker.ts
169498
- var import_typescript10 = __toESM(require_typescript(), 1);
169542
+ var import_typescript11 = __toESM(require_typescript(), 1);
169499
169543
 
169500
169544
  // ../jsx/src/free-refs.ts
169501
- var import_typescript11 = __toESM(require_typescript(), 1);
169545
+ var import_typescript12 = __toESM(require_typescript(), 1);
169502
169546
  var _bindingMapCache = new WeakMap;
169503
169547
 
169504
169548
  // ../jsx/src/to-locale-date-lowering.ts
@@ -169912,13 +169956,13 @@ var KEYWORDS_AND_GLOBALS = new Set([
169912
169956
  ]);
169913
169957
 
169914
169958
  // ../jsx/src/ir-to-client-js/walk-prop-accesses.ts
169915
- var import_typescript13 = __toESM(require_typescript(), 1);
169959
+ var import_typescript14 = __toESM(require_typescript(), 1);
169916
169960
 
169917
169961
  // ../jsx/src/value-references.ts
169918
- var import_typescript14 = __toESM(require_typescript(), 1);
169962
+ var import_typescript15 = __toESM(require_typescript(), 1);
169919
169963
 
169920
169964
  // ../jsx/src/relocate.ts
169921
- var import_typescript15 = __toESM(require_typescript(), 1);
169965
+ var import_typescript16 = __toESM(require_typescript(), 1);
169922
169966
 
169923
169967
  // ../jsx/src/lowering-registry.ts
169924
169968
  var plugins = [];
@@ -170097,10 +170141,10 @@ function formatDateLocalNames(metadata) {
170097
170141
  }
170098
170142
 
170099
170143
  // ../jsx/src/ir-to-client-js/prune-unused-prop-extractions.ts
170100
- var import_typescript16 = __toESM(require_typescript(), 1);
170144
+ var import_typescript17 = __toESM(require_typescript(), 1);
170101
170145
 
170102
170146
  // ../jsx/src/ir-to-client-js/control-flow/plan/lazy-preamble.ts
170103
- var import_typescript17 = __toESM(require_typescript(), 1);
170147
+ var import_typescript18 = __toESM(require_typescript(), 1);
170104
170148
  var NO_PREAMBLE = {
170105
170149
  lazySafe: true,
170106
170150
  facts: { declaredNames: new Set, freeNames: new Set }
@@ -170150,7 +170194,7 @@ var INERT_BINDING_GLOBALS = new Set([
170150
170194
  ]);
170151
170195
 
170152
170196
  // ../jsx/src/ir-to-client-js/emit-reactive.ts
170153
- var import_typescript18 = __toESM(require_typescript(), 1);
170197
+ var import_typescript19 = __toESM(require_typescript(), 1);
170154
170198
 
170155
170199
  // ../jsx/src/ir-to-client-js/control-flow/stringify/event-delegation.ts
170156
170200
  var NON_BUBBLING_EVENTS = new Set([
@@ -170165,7 +170209,7 @@ var NON_BUBBLING_EVENTS = new Set([
170165
170209
  ]);
170166
170210
 
170167
170211
  // ../jsx/src/ir-to-client-js/rewrite-props-object.ts
170168
- var import_typescript19 = __toESM(require_typescript(), 1);
170212
+ var import_typescript20 = __toESM(require_typescript(), 1);
170169
170213
 
170170
170214
  // ../jsx/src/ir-to-client-js/source-map.ts
170171
170215
  var BASE64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
@@ -170256,20 +170300,20 @@ class SourceMapGenerator {
170256
170300
  }
170257
170301
 
170258
170302
  // ../jsx/src/preprocess-inline-jsx-callbacks.ts
170259
- var import_typescript20 = __toESM(require_typescript(), 1);
170303
+ var import_typescript21 = __toESM(require_typescript(), 1);
170260
170304
 
170261
170305
  // ../jsx/src/ssr-defaults.ts
170262
- var import_typescript21 = __toESM(require_typescript(), 1);
170306
+ var import_typescript22 = __toESM(require_typescript(), 1);
170263
170307
  var UNRESOLVED = Symbol("unresolved");
170264
170308
  var NO_RETURN = Symbol("no-return");
170265
170309
 
170266
170310
  // ../jsx/src/augment-inherited-props.ts
170267
- var import_typescript22 = __toESM(require_typescript(), 1);
170311
+ var import_typescript23 = __toESM(require_typescript(), 1);
170268
170312
 
170269
170313
  // ../jsx/src/rich-type-refusal.ts
170270
170314
  var EMPTY_BINDINGS2 = new Map;
170271
170315
  // ../jsx/src/shared-program.ts
170272
- var import_typescript24 = __toESM(require_typescript(), 1);
170316
+ var import_typescript25 = __toESM(require_typescript(), 1);
170273
170317
  // ../jsx/src/adapters/interface.ts
170274
170318
  class BaseAdapter {
170275
170319
  renderChildren(children) {
@@ -170322,7 +170366,7 @@ class JsxAdapter extends BaseAdapter {
170322
170366
  ...localFunctions.map((f) => ({ name: f.name, body: f.body })),
170323
170367
  ...localConstants.map((c) => ({ name: c.name, body: c.value }))
170324
170368
  ];
170325
- const reachable = findReachableNames(primaryRefText, declarations);
170369
+ const reachable = closeOverWritersOfMutableBindings(primaryRefText, declarations, new Set(ir.metadata.localConstants.filter((c) => (c.declarationKind ?? "const") !== "const").map((c) => c.name)));
170326
170370
  const reachableBodies = [...reachable].map((name) => {
170327
170371
  const func = localFunctions.find((f) => f.name === name);
170328
170372
  if (func)
@@ -170354,7 +170398,8 @@ class JsxAdapter extends BaseAdapter {
170354
170398
  if (signal.setter) {
170355
170399
  const setterUsed = identifierPattern(signal.setter).test(setterRefText);
170356
170400
  if (setterUsed) {
170357
- lines.push(` const ${signal.setter} = (..._args: any[]) => {}`);
170401
+ const setterType = preserveTypes && signal.type.kind !== "unknown" ? `(valueOrFn: ${signal.type.raw} | ((prev: ${signal.type.raw}) => ${signal.type.raw})) => void` : null;
170402
+ lines.push(setterType ? ` const ${signal.setter}: ${setterType} = () => {}` : ` const ${signal.setter} = (..._args: any[]) => {}`);
170358
170403
  }
170359
170404
  }
170360
170405
  }
@@ -170550,7 +170595,7 @@ class JsxAdapter extends BaseAdapter {
170550
170595
  }
170551
170596
 
170552
170597
  // ../jsx/src/adapters/template-imports.ts
170553
- var import_typescript25 = __toESM(require_typescript(), 1);
170598
+ var import_typescript26 = __toESM(require_typescript(), 1);
170554
170599
  var CLIENT_PACKAGE_SOURCES = new Set([
170555
170600
  "@barefootjs/client",
170556
170601
  "@barefootjs/client/runtime"
@@ -170689,7 +170734,8 @@ export default ${this.componentName}` : "";
170689
170734
  const noArgDefault = hasRequiredProps ? "" : ` = {} as ${propsTypeExpr}`;
170690
170735
  const lines = [];
170691
170736
  const exportPrefix = ir.metadata.isExported === false ? "" : "export ";
170692
- lines.push(`${exportPrefix}function ${name}(${fullPropsDestructure}${typeAnnotation}${noArgDefault}) {`);
170737
+ const typeParameters = ir.metadata.typeParameters ?? "";
170738
+ lines.push(`${exportPrefix}function ${name}${typeParameters}(${fullPropsDestructure}${typeAnnotation}${noArgDefault}) {`);
170693
170739
  if (hasClientInteractivity) {
170694
170740
  lines.push(` const __scopeId = (/_s\\d/.test(__bfScope || '') ? __bfScope : null) || __instanceId || \`${name}_\${Math.random().toString(36).slice(2, 8)}\``);
170695
170741
  } else {
@@ -170940,11 +170986,11 @@ function registerBuiltinLoweringPlugins() {
170940
170986
  registerLoweringPlugin(plugin);
170941
170987
  }
170942
170988
  // ../jsx/src/combine-client-js.ts
170943
- var import_typescript26 = __toESM(require_typescript(), 1);
170944
- // ../jsx/src/debug.ts
170945
170989
  var import_typescript27 = __toESM(require_typescript(), 1);
170946
- // ../jsx/src/profiler.ts
170990
+ // ../jsx/src/debug.ts
170947
170991
  var import_typescript28 = __toESM(require_typescript(), 1);
170992
+ // ../jsx/src/profiler.ts
170993
+ var import_typescript29 = __toESM(require_typescript(), 1);
170948
170994
 
170949
170995
  // ../jsx/src/index.ts
170950
170996
  registerBuiltinLoweringPlugins();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barefootjs/client",
3
- "version": "0.31.4",
3
+ "version": "0.31.5",
4
4
  "description": "BarefootJS client package: reactive primitives (SSR-safe) plus browser runtime under the `/runtime` subpath (compiler target)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -55,7 +55,7 @@
55
55
  "directory": "packages/client"
56
56
  },
57
57
  "dependencies": {
58
- "@barefootjs/shared": "0.31.4"
58
+ "@barefootjs/shared": "0.31.5"
59
59
  },
60
60
  "peerDependencies": {
61
61
  "@barefootjs/jsx": ">=0.2.0"