@barefootjs/test 0.33.2 → 0.33.3

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/index.js +251 -42
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -187288,7 +187288,7 @@ Additional information: BADCLIENT: Bad error code, ${badCode} not found in range
187288
187288
  });
187289
187289
 
187290
187290
  // ../jsx/src/compiler.ts
187291
- var import_typescript24 = __toESM(require_typescript(), 1);
187291
+ var import_typescript25 = __toESM(require_typescript(), 1);
187292
187292
 
187293
187293
  // ../jsx/src/analyzer.ts
187294
187294
  var import_typescript9 = __toESM(require_typescript(), 1);
@@ -188980,6 +188980,11 @@ function applyReplacement(slice, re, replacement) {
188980
188980
  var BF_SCOPE = "bf-s";
188981
188981
  var BF_SLOT = "bf";
188982
188982
  var BF_COND = "bf-c";
188983
+ var BF_KEY = "data-key";
188984
+ var BF_KEY_PREFIX = "data-key-";
188985
+ function keyAttrName(loopDepth) {
188986
+ return loopDepth > 0 ? `${BF_KEY_PREFIX}${loopDepth}` : BF_KEY;
188987
+ }
188983
188988
  // ../shared/src/dom-prop.ts
188984
188989
  var BOOLEAN_ATTRS = new Set([
188985
188990
  "checked",
@@ -189625,6 +189630,19 @@ function buildPropAliasMap(params) {
189625
189630
  }
189626
189631
  return map;
189627
189632
  }
189633
+ function resolveRestSpreadOriginCore(bindings, constantValues, name) {
189634
+ const visited = new Set;
189635
+ let current = name.trim();
189636
+ while (current !== undefined && !visited.has(current)) {
189637
+ if (bindings.restPropsName && current === bindings.restPropsName)
189638
+ return "rest";
189639
+ if (bindings.propsObjectName && current === bindings.propsObjectName)
189640
+ return "props";
189641
+ visited.add(current);
189642
+ current = constantValues.get(current)?.trim();
189643
+ }
189644
+ return null;
189645
+ }
189628
189646
 
189629
189647
  // ../jsx/src/instrumentation.ts
189630
189648
  var _enabled = false;
@@ -194951,10 +194969,44 @@ function attachParsedExpressions(node, analyzer, bound = EMPTY_BOUND) {
194951
194969
  break;
194952
194970
  }
194953
194971
  }
194972
+ function resolveRootKeyAttr(node) {
194973
+ if (!node)
194974
+ return;
194975
+ switch (node.type) {
194976
+ case "element":
194977
+ if (node.needsScope && !node.keyAttr)
194978
+ node.keyAttr = { name: BF_KEY };
194979
+ for (const c of node.children)
194980
+ resolveRootKeyAttr(c);
194981
+ return;
194982
+ case "fragment":
194983
+ case "component":
194984
+ case "provider":
194985
+ case "loop":
194986
+ for (const c of node.children)
194987
+ resolveRootKeyAttr(c);
194988
+ return;
194989
+ case "async":
194990
+ resolveRootKeyAttr(node.fallback);
194991
+ for (const c of node.children)
194992
+ resolveRootKeyAttr(c);
194993
+ return;
194994
+ case "conditional":
194995
+ resolveRootKeyAttr(node.whenTrue);
194996
+ resolveRootKeyAttr(node.whenFalse);
194997
+ return;
194998
+ case "if-statement":
194999
+ resolveRootKeyAttr(node.consequent);
195000
+ resolveRootKeyAttr(node.alternate);
195001
+ return;
195002
+ }
195003
+ }
194954
195004
  function jsxToIR(analyzer) {
194955
195005
  const root = buildIRRoot(analyzer);
194956
- if (root)
195006
+ if (root) {
194957
195007
  attachParsedExpressions(root, analyzer);
195008
+ resolveRootKeyAttr(root);
195009
+ }
194958
195010
  return root;
194959
195011
  }
194960
195012
  function buildIRRoot(analyzer) {
@@ -195143,6 +195195,7 @@ function lowerFormControlValueSsr(tagName, attrs, children) {
195143
195195
  type: "expression",
195144
195196
  expr,
195145
195197
  templateExpr: `escapeText(${templateExpr ?? expr})`,
195198
+ escapeInClientTemplate: true,
195146
195199
  typeInfo: null,
195147
195200
  reactive: false,
195148
195201
  slotId: null,
@@ -195180,7 +195233,7 @@ function transformHtmlElement(node, ctx, tagName) {
195180
195233
  ctx.isRoot = false;
195181
195234
  const children = transformChildren(node.children, ctx);
195182
195235
  lowerFormControlValueSsr(tagName, attrs, children);
195183
- const needsSlot = events.length > 0 || hasDynamicContent(children) || hasReactiveAttributes(attrs, ctx) || ref !== null;
195236
+ const needsSlot = events.length > 0 || hasDynamicContent(children) || hasReactiveAttributes(attrs, ctx) || ref !== null || forwardsCallerRestProps(attrs, ctx);
195184
195237
  const slotId = needsSlot ? generateSlotId(ctx) : null;
195185
195238
  if (slotId) {
195186
195239
  propagateSlotIdToLoops(children, slotId);
@@ -195213,7 +195266,7 @@ function transformSelfClosingElement(node, ctx) {
195213
195266
  const { attrs, events, ref } = processAttributes(node.attributes, ctx);
195214
195267
  const selfClosingChildren = [];
195215
195268
  lowerFormControlValueSsr(tagName, attrs, selfClosingChildren);
195216
- const needsSlot = events.length > 0 || hasReactiveAttributes(attrs, ctx) || ref !== null;
195269
+ const needsSlot = events.length > 0 || hasReactiveAttributes(attrs, ctx) || ref !== null || forwardsCallerRestProps(attrs, ctx);
195217
195270
  const slotId = needsSlot ? generateSlotId(ctx) : null;
195218
195271
  const needsScope = ctx.isRoot;
195219
195272
  ctx.isRoot = false;
@@ -195452,7 +195505,9 @@ function markDataKeyCarrier(children) {
195452
195505
  }
195453
195506
  function markCarrierIn(node) {
195454
195507
  if (node.type === "element") {
195455
- return { ...node, carriesDataKey: true };
195508
+ if (node.keyAttr)
195509
+ return null;
195510
+ return { ...node, keyAttr: { name: BF_KEY } };
195456
195511
  }
195457
195512
  if (node.type === "conditional") {
195458
195513
  const cond = node;
@@ -195527,7 +195582,7 @@ function transformExpressionInner(expr, ctx, node, isClientOnly) {
195527
195582
  if (isRenderNothingLiteral(expr, ctx)) {
195528
195583
  return null;
195529
195584
  }
195530
- checkBareSignalOrMemoIdentifier(expr, ctx);
195585
+ checkBareSignalOrMemoIdentifier(expr, ctx, { descendNested: true });
195531
195586
  if (import_typescript13.default.isIdentifier(expr)) {
195532
195587
  const jsxNode = ctx.analyzer.jsxConstants.get(expr.text);
195533
195588
  if (jsxNode) {
@@ -196644,6 +196699,16 @@ function tagLoopItemRootComponents(nodes) {
196644
196699
  }
196645
196700
  }
196646
196701
  }
196702
+ function applyLoopKeyAttr(node, name, value) {
196703
+ if (node.type === "element") {
196704
+ node.keyAttr = { name, value };
196705
+ return;
196706
+ }
196707
+ if (node.type === "conditional") {
196708
+ applyLoopKeyAttr(node.whenTrue, name, value);
196709
+ applyLoopKeyAttr(node.whenFalse, name, value);
196710
+ }
196711
+ }
196647
196712
  function loopBodyItemConditional(children) {
196648
196713
  const real = children.filter((c) => !(c.type === "text" && typeof c.value === "string" && !c.value.trim()));
196649
196714
  if (real.length !== 1)
@@ -197026,6 +197091,14 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
197026
197091
  const itemConditional = children.length > 0 ? loopBodyItemConditional(children) : null;
197027
197092
  const bodyIsItemConditional = itemConditional !== null;
197028
197093
  const key = bodyIsItemConditional ? extractItemConditionalKey(itemConditional) : children.length > 0 ? extractLoopKey(children[0]) : null;
197094
+ if (key !== null) {
197095
+ const resolvedKeyAttrName = keyAttrName(depth);
197096
+ if (bodyIsItemConditional) {
197097
+ applyLoopKeyAttr(itemConditional, resolvedKeyAttrName, key);
197098
+ } else if (children.length > 0) {
197099
+ applyLoopKeyAttr(children[0], resolvedKeyAttrName, key);
197100
+ }
197101
+ }
197029
197102
  const declaredNameSet = preamble && preamble.declaredNames.length > 0 ? new Set(preamble.declaredNames) : undefined;
197030
197103
  if (key && declaredNameSet) {
197031
197104
  const keyRefs = extractFreeIdentifiersFromText(key);
@@ -197716,7 +197789,7 @@ function getAttributeValue(attr, ctx) {
197716
197789
  ctx.analyzer.errors.push(createError(ErrorCodes.STAGE_AWAIT_IN_TEMPLATE, getSourceLocation(expr, ctx.sourceFile, ctx.filePath)));
197717
197790
  return AttrValueOf.expression("undefined");
197718
197791
  }
197719
- checkBareSignalOrMemoIdentifier(expr, ctx);
197792
+ checkBareSignalOrMemoIdentifier(expr, ctx, { descendNested: isRenderedElementAttribute(attr, ctx) });
197720
197793
  if (attr.name.getText(ctx.sourceFile) === "style" && import_typescript13.default.isObjectLiteralExpression(expr)) {
197721
197794
  const cssString = tryStaticStyleObjectToCss(expr);
197722
197795
  if (cssString !== null) {
@@ -198224,34 +198297,142 @@ function processComponentProps(attributes, ctx) {
198224
198297
  }
198225
198298
  return props;
198226
198299
  }
198227
- function checkBareSignalOrMemoIdentifier(expr, ctx) {
198228
- if (!import_typescript13.default.isIdentifier(expr))
198300
+ function isRenderedElementAttribute(attr, ctx) {
198301
+ const tagName = attr.parent.parent.tagName.getText(ctx.sourceFile);
198302
+ return !/^[A-Z]/.test(tagName);
198303
+ }
198304
+ function checkBareSignalOrMemoIdentifier(expr, ctx, options) {
198305
+ const reactiveNames = new Map;
198306
+ for (const signal of ctx.analyzer.signals)
198307
+ reactiveNames.set(signal.getter, "signal");
198308
+ for (const memo of ctx.analyzer.memos)
198309
+ reactiveNames.set(memo.name, "memo");
198310
+ if (reactiveNames.size === 0)
198229
198311
  return;
198230
- const name = expr.text;
198231
- for (const signal of ctx.analyzer.signals) {
198232
- if (signal.getter === name) {
198233
- ctx.analyzer.errors.push(createError(ErrorCodes.SIGNAL_GETTER_NOT_CALLED, getSourceLocation(expr, ctx.sourceFile, ctx.filePath), {
198234
- message: `Signal getter '${name}' passed without calling it`,
198235
- suggestion: {
198236
- message: `Signal getters must be called to read the value. Use \`${name}()\` instead of \`${name}\`.`,
198237
- replacement: `${name}()`
198238
- }
198239
- }));
198312
+ const report = (id, name, kind) => {
198313
+ const label = kind === "signal" ? "Signal" : "Memo";
198314
+ ctx.analyzer.errors.push(createError(ErrorCodes.SIGNAL_GETTER_NOT_CALLED, getSourceLocation(id, ctx.sourceFile, ctx.filePath), {
198315
+ message: `${label} getter '${name}' passed without calling it`,
198316
+ suggestion: {
198317
+ message: `${label} getters must be called to read the value. Use \`${name}()\` instead of \`${name}\`.`,
198318
+ replacement: `${name}()`
198319
+ }
198320
+ }));
198321
+ };
198322
+ if (import_typescript13.default.isIdentifier(expr)) {
198323
+ const kind = reactiveNames.get(expr.text);
198324
+ if (kind && !ctx.scope.isBound(expr.text))
198325
+ report(expr, expr.text, kind);
198326
+ return;
198327
+ }
198328
+ if (!options?.descendNested)
198329
+ return;
198330
+ const boundStack = [];
198331
+ const isBound = (name) => {
198332
+ for (let i2 = boundStack.length - 1;i2 >= 0; i2--) {
198333
+ if (boundStack[i2].has(name))
198334
+ return true;
198335
+ }
198336
+ return ctx.scope.isBound(name);
198337
+ };
198338
+ const visitBindingDefaults = (name, bound) => {
198339
+ if (import_typescript13.default.isIdentifier(name)) {
198340
+ bound.add(name.text);
198240
198341
  return;
198241
198342
  }
198242
- }
198243
- for (const memo of ctx.analyzer.memos) {
198244
- if (memo.name === name) {
198245
- ctx.analyzer.errors.push(createError(ErrorCodes.SIGNAL_GETTER_NOT_CALLED, getSourceLocation(expr, ctx.sourceFile, ctx.filePath), {
198246
- message: `Memo getter '${name}' passed without calling it`,
198247
- suggestion: {
198248
- message: `Memo getters must be called to read the value. Use \`${name}()\` instead of \`${name}\`.`,
198249
- replacement: `${name}()`
198250
- }
198251
- }));
198343
+ for (const el of name.elements) {
198344
+ if (import_typescript13.default.isOmittedExpression(el))
198345
+ continue;
198346
+ if (el.initializer)
198347
+ visit2(el.initializer);
198348
+ visitBindingDefaults(el.name, bound);
198349
+ }
198350
+ };
198351
+ const collectBindingNames3 = (name, out) => {
198352
+ if (import_typescript13.default.isIdentifier(name))
198353
+ out.add(name.text);
198354
+ else if (import_typescript13.default.isObjectBindingPattern(name)) {
198355
+ for (const el of name.elements)
198356
+ collectBindingNames3(el.name, out);
198357
+ } else if (import_typescript13.default.isArrayBindingPattern(name)) {
198358
+ for (const el of name.elements) {
198359
+ if (!import_typescript13.default.isOmittedExpression(el))
198360
+ collectBindingNames3(el.name, out);
198361
+ }
198362
+ }
198363
+ };
198364
+ const collectBlockDeclarations = (block, out) => {
198365
+ for (const stmt of block.statements) {
198366
+ if (import_typescript13.default.isVariableStatement(stmt)) {
198367
+ for (const decl of stmt.declarationList.declarations)
198368
+ collectBindingNames3(decl.name, out);
198369
+ } else if (import_typescript13.default.isFunctionDeclaration(stmt) && stmt.name) {
198370
+ out.add(stmt.name.text);
198371
+ }
198372
+ }
198373
+ };
198374
+ function visit2(node) {
198375
+ if (import_typescript13.default.isJsxElement(node) || import_typescript13.default.isJsxSelfClosingElement(node) || import_typescript13.default.isJsxFragment(node)) {
198376
+ return;
198377
+ }
198378
+ if (import_typescript13.default.isTypeNode(node))
198379
+ return;
198380
+ if (import_typescript13.default.isCallExpression(node) && node.arguments.length === 0 && import_typescript13.default.isIdentifier(node.expression)) {
198381
+ return;
198382
+ }
198383
+ if (import_typescript13.default.isPropertyAccessExpression(node)) {
198384
+ visit2(node.expression);
198385
+ return;
198386
+ }
198387
+ if (import_typescript13.default.isPropertyAssignment(node)) {
198388
+ if (import_typescript13.default.isComputedPropertyName(node.name))
198389
+ visit2(node.name.expression);
198390
+ visit2(node.initializer);
198391
+ return;
198392
+ }
198393
+ if (import_typescript13.default.isShorthandPropertyAssignment(node)) {
198394
+ if (import_typescript13.default.isIdentifier(node.name) && !isBound(node.name.text)) {
198395
+ const kind = reactiveNames.get(node.name.text);
198396
+ if (kind)
198397
+ report(node.name, node.name.text, kind);
198398
+ }
198399
+ return;
198400
+ }
198401
+ if (import_typescript13.default.isArrowFunction(node) || import_typescript13.default.isFunctionExpression(node)) {
198402
+ const bound = new Set;
198403
+ boundStack.push(bound);
198404
+ for (const p of node.parameters) {
198405
+ if (p.initializer)
198406
+ visit2(p.initializer);
198407
+ visitBindingDefaults(p.name, bound);
198408
+ }
198409
+ if (node.body && import_typescript13.default.isBlock(node.body))
198410
+ collectBlockDeclarations(node.body, bound);
198411
+ if (node.body)
198412
+ visit2(node.body);
198413
+ boundStack.pop();
198414
+ return;
198415
+ }
198416
+ if (import_typescript13.default.isVariableDeclaration(node)) {
198417
+ if (node.initializer)
198418
+ visit2(node.initializer);
198419
+ const declared = new Set;
198420
+ boundStack.push(declared);
198421
+ visitBindingDefaults(node.name, declared);
198422
+ boundStack.pop();
198252
198423
  return;
198253
198424
  }
198425
+ if (import_typescript13.default.isIdentifier(node)) {
198426
+ if (isBound(node.text))
198427
+ return;
198428
+ const kind = reactiveNames.get(node.text);
198429
+ if (kind)
198430
+ report(node, node.text, kind);
198431
+ return;
198432
+ }
198433
+ import_typescript13.default.forEachChild(node, visit2);
198254
198434
  }
198435
+ visit2(expr);
198255
198436
  }
198256
198437
  function isArrayExprDirectPropRef(arrayExpr, ctx) {
198257
198438
  const propNames = new Set(ctx.patterns.props.map((p) => p.name));
@@ -198350,6 +198531,31 @@ function isPropsReference(expr, ctx, visited) {
198350
198531
  }
198351
198532
  return false;
198352
198533
  }
198534
+ function forwardsCallerRestProps(attrs, ctx) {
198535
+ for (const attr of attrs) {
198536
+ if (attr.value.kind !== "spread")
198537
+ continue;
198538
+ const constants3 = restSpreadConstantValues(ctx);
198539
+ for (const name of new Set([attr.value.expr, attr.value.templateExpr])) {
198540
+ if (!name)
198541
+ continue;
198542
+ if (resolveRestSpreadOriginCore(ctx.analyzer, constants3, name) !== null)
198543
+ return true;
198544
+ }
198545
+ }
198546
+ return false;
198547
+ }
198548
+ function restSpreadConstantValues(ctx) {
198549
+ if (ctx._restSpreadConstantValues)
198550
+ return ctx._restSpreadConstantValues;
198551
+ const byName = new Map;
198552
+ for (const constant of ctx.analyzer.localConstants) {
198553
+ if (!byName.has(constant.name))
198554
+ byName.set(constant.name, constant.value);
198555
+ }
198556
+ ctx._restSpreadConstantValues = byName;
198557
+ return byName;
198558
+ }
198353
198559
  function hasReactiveAttributes(attrs, ctx) {
198354
198560
  for (const attr of attrs) {
198355
198561
  if (attr.name === "key")
@@ -198695,11 +198901,14 @@ var KEYWORDS_AND_GLOBALS = new Set([
198695
198901
  // ../jsx/src/ir-to-client-js/walk-prop-accesses.ts
198696
198902
  var import_typescript14 = __toESM(require_typescript(), 1);
198697
198903
 
198904
+ // ../jsx/src/ir-to-client-js/imports.ts
198905
+ var import_typescript16 = __toESM(require_typescript(), 1);
198906
+
198698
198907
  // ../jsx/src/value-references.ts
198699
198908
  var import_typescript15 = __toESM(require_typescript(), 1);
198700
198909
 
198701
198910
  // ../jsx/src/relocate.ts
198702
- var import_typescript16 = __toESM(require_typescript(), 1);
198911
+ var import_typescript17 = __toESM(require_typescript(), 1);
198703
198912
 
198704
198913
  // ../jsx/src/lowering-registry.ts
198705
198914
  var plugins = [];
@@ -198878,10 +199087,10 @@ function formatDateLocalNames(metadata) {
198878
199087
  }
198879
199088
 
198880
199089
  // ../jsx/src/ir-to-client-js/prune-unused-prop-extractions.ts
198881
- var import_typescript17 = __toESM(require_typescript(), 1);
199090
+ var import_typescript18 = __toESM(require_typescript(), 1);
198882
199091
 
198883
199092
  // ../jsx/src/ir-to-client-js/control-flow/plan/lazy-preamble.ts
198884
- var import_typescript18 = __toESM(require_typescript(), 1);
199093
+ var import_typescript19 = __toESM(require_typescript(), 1);
198885
199094
  var NO_PREAMBLE = {
198886
199095
  lazySafe: true,
198887
199096
  facts: { declaredNames: new Set, freeNames: new Set }
@@ -198931,7 +199140,7 @@ var INERT_BINDING_GLOBALS = new Set([
198931
199140
  ]);
198932
199141
 
198933
199142
  // ../jsx/src/ir-to-client-js/emit-reactive.ts
198934
- var import_typescript19 = __toESM(require_typescript(), 1);
199143
+ var import_typescript20 = __toESM(require_typescript(), 1);
198935
199144
 
198936
199145
  // ../jsx/src/ir-to-client-js/control-flow/stringify/event-delegation.ts
198937
199146
  var NON_BUBBLING_EVENTS = new Set([
@@ -198946,7 +199155,7 @@ var NON_BUBBLING_EVENTS = new Set([
198946
199155
  ]);
198947
199156
 
198948
199157
  // ../jsx/src/ir-to-client-js/rewrite-props-object.ts
198949
- var import_typescript20 = __toESM(require_typescript(), 1);
199158
+ var import_typescript21 = __toESM(require_typescript(), 1);
198950
199159
 
198951
199160
  // ../jsx/src/ir-to-client-js/source-map.ts
198952
199161
  var BASE64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
@@ -199037,21 +199246,21 @@ class SourceMapGenerator {
199037
199246
  }
199038
199247
 
199039
199248
  // ../jsx/src/preprocess-inline-jsx-callbacks.ts
199040
- var import_typescript21 = __toESM(require_typescript(), 1);
199249
+ var import_typescript22 = __toESM(require_typescript(), 1);
199041
199250
 
199042
199251
  // ../jsx/src/ssr-defaults.ts
199043
- var import_typescript22 = __toESM(require_typescript(), 1);
199252
+ var import_typescript23 = __toESM(require_typescript(), 1);
199044
199253
  var UNRESOLVED = Symbol("unresolved");
199045
199254
  var NO_RETURN = Symbol("no-return");
199046
199255
 
199047
199256
  // ../jsx/src/augment-inherited-props.ts
199048
- var import_typescript23 = __toESM(require_typescript(), 1);
199257
+ var import_typescript24 = __toESM(require_typescript(), 1);
199049
199258
 
199050
199259
  // ../jsx/src/rich-type-refusal.ts
199051
199260
  var EMPTY_BINDINGS2 = new Map;
199052
199261
  // ../jsx/src/shared-program.ts
199053
199262
  init_path();
199054
- var import_typescript25 = __toESM(require_typescript(), 1);
199263
+ var import_typescript26 = __toESM(require_typescript(), 1);
199055
199264
  // ../jsx/src/adapters/interface.ts
199056
199265
  class BaseAdapter {
199057
199266
  renderChildren(children) {
@@ -199333,7 +199542,7 @@ class JsxAdapter extends BaseAdapter {
199333
199542
  }
199334
199543
 
199335
199544
  // ../jsx/src/adapters/template-imports.ts
199336
- var import_typescript26 = __toESM(require_typescript(), 1);
199545
+ var import_typescript27 = __toESM(require_typescript(), 1);
199337
199546
  var CLIENT_PACKAGE_SOURCES = new Set([
199338
199547
  "@barefootjs/client",
199339
199548
  "@barefootjs/client/runtime"
@@ -199726,9 +199935,9 @@ function registerBuiltinLoweringPlugins() {
199726
199935
  registerLoweringPlugin(plugin);
199727
199936
  }
199728
199937
  // ../jsx/src/combine-client-js.ts
199729
- var import_typescript27 = __toESM(require_typescript(), 1);
199730
- // ../jsx/src/debug.ts
199731
199938
  var import_typescript28 = __toESM(require_typescript(), 1);
199939
+ // ../jsx/src/debug.ts
199940
+ var import_typescript29 = __toESM(require_typescript(), 1);
199732
199941
  function escapeForIdBoundary(name) {
199733
199942
  return name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
199734
199943
  }
@@ -199820,7 +200029,7 @@ function resolveSetters(handler, setterToSignal, fnSetters) {
199820
200029
  return refs;
199821
200030
  }
199822
200031
  // ../jsx/src/profiler.ts
199823
- var import_typescript29 = __toESM(require_typescript(), 1);
200032
+ var import_typescript30 = __toESM(require_typescript(), 1);
199824
200033
 
199825
200034
  // ../jsx/src/index.ts
199826
200035
  registerBuiltinLoweringPlugins();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barefootjs/test",
3
- "version": "0.33.2",
3
+ "version": "0.33.3",
4
4
  "description": "Test utilities for BarefootJS - IR-based component testing without a browser",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -39,7 +39,7 @@
39
39
  "directory": "packages/test"
40
40
  },
41
41
  "dependencies": {
42
- "@barefootjs/jsx": "0.33.2"
42
+ "@barefootjs/jsx": "0.33.3"
43
43
  },
44
44
  "devDependencies": {
45
45
  "typescript": "^5.0.0"