@barefootjs/test 0.18.3 → 0.18.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/index.js +226 -24
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -187301,7 +187301,6 @@ var UNSUPPORTED_METHODS = new Set([
187301
187301
  "some",
187302
187302
  "forEach",
187303
187303
  "flatMap",
187304
- "replaceAll",
187305
187304
  "charAt",
187306
187305
  "charCodeAt",
187307
187306
  "codePointAt",
@@ -187477,6 +187476,9 @@ function convertNode(node, raw) {
187477
187476
  if (callee.property === "trim") {
187478
187477
  return { kind: "array-method", method: "trim", object: callee.object, args };
187479
187478
  }
187479
+ if (callee.property === "trimStart" || callee.property === "trimEnd") {
187480
+ return { kind: "array-method", method: callee.property, object: callee.object, args };
187481
+ }
187480
187482
  if (callee.property === "toFixed") {
187481
187483
  return { kind: "array-method", method: "toFixed", object: callee.object, args };
187482
187484
  }
@@ -187502,24 +187504,25 @@ function convertNode(node, raw) {
187502
187504
  }
187503
187505
  return { kind: "array-method", method: callee.property, object: callee.object, args };
187504
187506
  }
187505
- if (callee.property === "replace") {
187507
+ if (callee.property === "replace" || callee.property === "replaceAll") {
187508
+ const method = callee.property;
187506
187509
  if (args.length < 2) {
187507
187510
  return {
187508
187511
  kind: "unsupported",
187509
187512
  raw,
187510
- reason: `\`.replace(${args.length === 0 ? "" : "pattern"})\` needs both a pattern and a replacement — JS coerces the missing argument to the string "undefined", a degenerate result. Pass both arguments, or pre-compute the value before the template.`
187513
+ reason: `\`.${method}(${args.length === 0 ? "" : "pattern"})\` needs both a pattern and a replacement — JS coerces the missing argument to the string "undefined", a degenerate result. Pass both arguments, or pre-compute the value before the template.`
187511
187514
  };
187512
187515
  }
187513
187516
  const patternNode = node.arguments[0];
187514
187517
  if (patternNode && import_typescript.default.isRegularExpressionLiteral(patternNode)) {
187515
- return { kind: "array-method", method: "replace", object: callee.object, args };
187518
+ return { kind: "array-method", method, object: callee.object, args };
187516
187519
  }
187517
187520
  const badArg = args[0].kind === "unsupported" || args[0].kind === "object-literal" ? args[0] : args[1].kind === "unsupported" || args[1].kind === "object-literal" ? args[1] : undefined;
187518
187521
  if (badArg) {
187519
187522
  const reason = badArg.kind === "unsupported" ? badArg.reason : "Unsupported syntax: ObjectLiteralExpression";
187520
187523
  return { kind: "unsupported", raw, reason };
187521
187524
  }
187522
- return { kind: "array-method", method: "replace", object: callee.object, args };
187525
+ return { kind: "array-method", method, object: callee.object, args };
187523
187526
  }
187524
187527
  if (callee.property === "repeat") {
187525
187528
  return { kind: "array-method", method: "repeat", object: callee.object, args };
@@ -187554,7 +187557,7 @@ function convertNode(node, raw) {
187554
187557
  if (import_typescript.default.isPropertyAccessExpression(node)) {
187555
187558
  const object = convertNode(node.expression, raw);
187556
187559
  const property = node.name.text;
187557
- return { kind: "member", object, property, computed: false };
187560
+ return { kind: "member", object, property, computed: false, optional: !!node.questionDotToken };
187558
187561
  }
187559
187562
  if (import_typescript.default.isElementAccessExpression(node)) {
187560
187563
  const object = convertNode(node.expression, raw);
@@ -187563,10 +187566,10 @@ function convertNode(node, raw) {
187563
187566
  return { kind: "unsupported", raw, reason: "Element access with no index expression" };
187564
187567
  }
187565
187568
  if (import_typescript.default.isNumericLiteral(argNode)) {
187566
- return { kind: "member", object, property: argNode.text, computed: true };
187569
+ return { kind: "member", object, property: argNode.text, computed: true, optional: !!node.questionDotToken };
187567
187570
  }
187568
187571
  if (import_typescript.default.isStringLiteral(argNode)) {
187569
- return { kind: "member", object, property: argNode.text, computed: true };
187572
+ return { kind: "member", object, property: argNode.text, computed: true, optional: !!node.questionDotToken };
187570
187573
  }
187571
187574
  const index = convertNode(argNode, raw);
187572
187575
  if (index.kind === "unsupported" || index.kind === "object-literal")
@@ -188117,7 +188120,7 @@ function substituteDestructuredFields(expr, fieldMap, syntheticParam, restName)
188117
188120
  return e;
188118
188121
  let node = { kind: "identifier", name: syntheticParam };
188119
188122
  for (const segment of entry.path) {
188120
- node = { kind: "member", object: node, property: segment, computed: false };
188123
+ node = { kind: "member", object: node, property: segment, computed: false, optional: false };
188121
188124
  }
188122
188125
  if (entry.defaultExpr) {
188123
188126
  return { kind: "logical", op: "??", left: node, right: entry.defaultExpr };
@@ -188132,10 +188135,11 @@ function substituteDestructuredFields(expr, fieldMap, syntheticParam, restName)
188132
188135
  kind: "member",
188133
188136
  object: { kind: "identifier", name: syntheticParam },
188134
188137
  property: e.property,
188135
- computed: false
188138
+ computed: false,
188139
+ optional: e.optional
188136
188140
  };
188137
188141
  }
188138
- return { kind: "member", object: walk(e.object), property: e.property, computed: e.computed };
188142
+ return { kind: "member", object: walk(e.object), property: e.property, computed: e.computed, optional: e.optional };
188139
188143
  case "index-access":
188140
188144
  return { kind: "index-access", object: walk(e.object), index: walk(e.index) };
188141
188145
  case "binary":
@@ -188247,10 +188251,10 @@ function checkSupport(expr) {
188247
188251
  return { supported: true, level: "L2" };
188248
188252
  }
188249
188253
  case "array-method": {
188250
- if (expr.method === "replace" && expr.args[0]?.kind === "regex") {
188254
+ if ((expr.method === "replace" || expr.method === "replaceAll") && expr.args[0]?.kind === "regex") {
188251
188255
  return {
188252
188256
  supported: false,
188253
- reason: "String.prototype.replace supports only a string pattern + string replacement (the regex form is deferred); use a string pattern or wrap the expression in /* @client */"
188257
+ reason: `String.prototype.${expr.method} supports only a string pattern + string replacement (the regex form is deferred); use a string pattern or wrap the expression in /* @client */`
188254
188258
  };
188255
188259
  }
188256
188260
  const objSupport = checkSupport(expr.object);
@@ -188596,7 +188600,7 @@ function inlineBinding(expr, name, value) {
188596
188600
  case "call":
188597
188601
  return { kind: "call", callee: walk(e.callee, enclosing), args: e.args.map((a) => walk(a, enclosing)) };
188598
188602
  case "member":
188599
- return { kind: "member", object: walk(e.object, enclosing), property: e.property, computed: e.computed };
188603
+ return { kind: "member", object: walk(e.object, enclosing), property: e.property, computed: e.computed, optional: e.optional };
188600
188604
  case "index-access":
188601
188605
  return { kind: "index-access", object: walk(e.object, enclosing), index: walk(e.index, enclosing) };
188602
188606
  case "binary":
@@ -188929,6 +188933,93 @@ var BOOLEAN_ATTRS = new Set([
188929
188933
  "novalidate",
188930
188934
  "formnovalidate"
188931
188935
  ]);
188936
+ var SVG_CAMEL_TO_KEBAB = {
188937
+ strokeWidth: "stroke-width",
188938
+ strokeLinecap: "stroke-linecap",
188939
+ strokeLinejoin: "stroke-linejoin",
188940
+ strokeDasharray: "stroke-dasharray",
188941
+ strokeDashoffset: "stroke-dashoffset",
188942
+ strokeMiterlimit: "stroke-miterlimit",
188943
+ strokeOpacity: "stroke-opacity",
188944
+ fillOpacity: "fill-opacity",
188945
+ fillRule: "fill-rule",
188946
+ stopColor: "stop-color",
188947
+ stopOpacity: "stop-opacity",
188948
+ textAnchor: "text-anchor",
188949
+ dominantBaseline: "dominant-baseline",
188950
+ alignmentBaseline: "alignment-baseline",
188951
+ fontFamily: "font-family",
188952
+ fontSize: "font-size",
188953
+ fontWeight: "font-weight",
188954
+ fontStyle: "font-style",
188955
+ letterSpacing: "letter-spacing",
188956
+ wordSpacing: "word-spacing",
188957
+ pointerEvents: "pointer-events",
188958
+ vectorEffect: "vector-effect",
188959
+ colorInterpolation: "color-interpolation",
188960
+ clipPath: "clip-path",
188961
+ clipRule: "clip-rule",
188962
+ markerStart: "marker-start",
188963
+ markerMid: "marker-mid",
188964
+ markerEnd: "marker-end"
188965
+ };
188966
+ var HTML_CAMEL_ALIASES = {
188967
+ acceptCharset: "accept-charset",
188968
+ accessKey: "accesskey",
188969
+ allowFullScreen: "allowfullscreen",
188970
+ autoCapitalize: "autocapitalize",
188971
+ autoComplete: "autocomplete",
188972
+ autoCorrect: "autocorrect",
188973
+ autoFocus: "autofocus",
188974
+ autoPlay: "autoplay",
188975
+ cellPadding: "cellpadding",
188976
+ cellSpacing: "cellspacing",
188977
+ charSet: "charset",
188978
+ colSpan: "colspan",
188979
+ contentEditable: "contenteditable",
188980
+ controlsList: "controlslist",
188981
+ crossOrigin: "crossorigin",
188982
+ dateTime: "datetime",
188983
+ dirName: "dirname",
188984
+ encType: "enctype",
188985
+ enterKeyHint: "enterkeyhint",
188986
+ fetchPriority: "fetchpriority",
188987
+ formAction: "formaction",
188988
+ formEncType: "formenctype",
188989
+ formMethod: "formmethod",
188990
+ formNoValidate: "formnovalidate",
188991
+ formTarget: "formtarget",
188992
+ frameBorder: "frameborder",
188993
+ hrefLang: "hreflang",
188994
+ httpEquiv: "http-equiv",
188995
+ imageSizes: "imagesizes",
188996
+ imageSrcSet: "imagesrcset",
188997
+ inputMode: "inputmode",
188998
+ itemID: "itemid",
188999
+ itemProp: "itemprop",
189000
+ itemRef: "itemref",
189001
+ itemScope: "itemscope",
189002
+ itemType: "itemtype",
189003
+ marginHeight: "marginheight",
189004
+ marginWidth: "marginwidth",
189005
+ maxLength: "maxlength",
189006
+ minLength: "minlength",
189007
+ noModule: "nomodule",
189008
+ noValidate: "novalidate",
189009
+ playsInline: "playsinline",
189010
+ popoverTarget: "popovertarget",
189011
+ popoverTargetAction: "popovertargetaction",
189012
+ radioGroup: "radiogroup",
189013
+ readOnly: "readonly",
189014
+ referrerPolicy: "referrerpolicy",
189015
+ rowSpan: "rowspan",
189016
+ spellCheck: "spellcheck",
189017
+ srcDoc: "srcdoc",
189018
+ srcLang: "srclang",
189019
+ srcSet: "srcset",
189020
+ tabIndex: "tabindex",
189021
+ useMap: "usemap"
189022
+ };
188932
189023
  var SVG_XML_CAMEL_ATTRS = new Set([
188933
189024
  "allowReorder",
188934
189025
  "attributeName",
@@ -188995,6 +189086,86 @@ var SVG_XML_CAMEL_ATTRS = new Set([
188995
189086
  "yChannelSelector",
188996
189087
  "zoomAndPan"
188997
189088
  ]);
189089
+ function toHTMLAttrName(key) {
189090
+ if (key === "className")
189091
+ return "class";
189092
+ if (key === "htmlFor")
189093
+ return "for";
189094
+ const htmlAlias = HTML_CAMEL_ALIASES[key];
189095
+ if (htmlAlias !== undefined)
189096
+ return htmlAlias;
189097
+ const svgKebab = SVG_CAMEL_TO_KEBAB[key];
189098
+ if (svgKebab !== undefined)
189099
+ return svgKebab;
189100
+ return key;
189101
+ }
189102
+ // ../shared/src/html-entities.ts
189103
+ var NAMED_ENTITIES = {
189104
+ amp: "&",
189105
+ lt: "<",
189106
+ gt: ">",
189107
+ quot: '"',
189108
+ apos: "'",
189109
+ nbsp: " ",
189110
+ copy: "©",
189111
+ reg: "®",
189112
+ trade: "™",
189113
+ deg: "°",
189114
+ plusmn: "±",
189115
+ times: "×",
189116
+ divide: "÷",
189117
+ middot: "·",
189118
+ bull: "•",
189119
+ hellip: "…",
189120
+ ndash: "–",
189121
+ mdash: "—",
189122
+ lsquo: "‘",
189123
+ rsquo: "’",
189124
+ ldquo: "“",
189125
+ rdquo: "”",
189126
+ laquo: "«",
189127
+ raquo: "»",
189128
+ sect: "§",
189129
+ para: "¶",
189130
+ dagger: "†",
189131
+ Dagger: "‡",
189132
+ euro: "€",
189133
+ pound: "£",
189134
+ yen: "¥",
189135
+ cent: "¢",
189136
+ sup1: "¹",
189137
+ sup2: "²",
189138
+ sup3: "³",
189139
+ frac12: "½",
189140
+ frac14: "¼",
189141
+ frac34: "¾",
189142
+ larr: "←",
189143
+ uarr: "↑",
189144
+ rarr: "→",
189145
+ darr: "↓",
189146
+ harr: "↔",
189147
+ minus: "−",
189148
+ infin: "∞",
189149
+ ne: "≠",
189150
+ le: "≤",
189151
+ ge: "≥"
189152
+ };
189153
+ function decodeEntities(text) {
189154
+ return text.replace(/&(#[xX]?[0-9a-fA-F]+|[a-zA-Z][a-zA-Z0-9]*);/g, (match, body) => {
189155
+ if (body[0] === "#") {
189156
+ const isHex = body[1] === "x" || body[1] === "X";
189157
+ const digits = body.slice(isHex ? 2 : 1);
189158
+ if (!isHex && !/^[0-9]+$/.test(digits))
189159
+ return match;
189160
+ const code2 = parseInt(digits, isHex ? 16 : 10);
189161
+ if (!Number.isFinite(code2) || code2 > 1114111 || code2 >= 55296 && code2 <= 57343) {
189162
+ return match;
189163
+ }
189164
+ return String.fromCodePoint(code2);
189165
+ }
189166
+ return NAMED_ENTITIES[body] ?? match;
189167
+ });
189168
+ }
188998
189169
  // ../jsx/src/ir-to-client-js/utils.ts
188999
189170
  var PROPS_PARAM = "_p";
189000
189171
  // ../jsx/src/ir-to-client-js/component-scope.ts
@@ -192601,6 +192772,7 @@ function createTransformContext(analyzer) {
192601
192772
  isRoot: true,
192602
192773
  insideComponentChildren: false,
192603
192774
  loopParams: new Set,
192775
+ loopDepth: 0,
192604
192776
  patterns: {
192605
192777
  signals: analyzer.signals.map((s) => ({
192606
192778
  getter: s.getter,
@@ -193254,7 +193426,7 @@ function transformText(node, ctx) {
193254
193426
  }
193255
193427
  return {
193256
193428
  type: "text",
193257
- value: text,
193429
+ value: decodeEntities(text),
193258
193430
  loc: getSourceLocation(node, ctx.sourceFile, ctx.filePath)
193259
193431
  };
193260
193432
  }
@@ -193810,6 +193982,22 @@ function isIteratorShapeCall(node) {
193810
193982
  return null;
193811
193983
  return { array: node.expression.expression, shape: name };
193812
193984
  }
193985
+ function isObjectIteratorCall(node) {
193986
+ if (!import_typescript11.default.isCallExpression(node))
193987
+ return null;
193988
+ if (!import_typescript11.default.isPropertyAccessExpression(node.expression))
193989
+ return null;
193990
+ if (!import_typescript11.default.isIdentifier(node.expression.expression))
193991
+ return null;
193992
+ if (node.expression.expression.text !== "Object")
193993
+ return null;
193994
+ if (node.arguments.length !== 1)
193995
+ return null;
193996
+ const name = node.expression.name.text;
193997
+ if (name !== "entries" && name !== "keys" && name !== "values")
193998
+ return null;
193999
+ return { object: node.arguments[0], shape: name };
194000
+ }
193813
194001
  function extractSortComparator(callback, _method, ctx) {
193814
194002
  const outerRaw = ctx.getJS(callback);
193815
194003
  const unsupported = () => ({
@@ -194228,6 +194416,7 @@ function extractItemConditionalKey(cond) {
194228
194416
  }
194229
194417
  function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
194230
194418
  const isNested = ctx.loopParams.size > 0;
194419
+ const depth = ctx.loopDepth;
194231
194420
  const propAccess = node.expression;
194232
194421
  const mapSource = propAccess.expression;
194233
194422
  let array = "";
@@ -194240,6 +194429,7 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
194240
194429
  let templateMapPreamble;
194241
194430
  let typedMapPreamble;
194242
194431
  let iterationShape;
194432
+ let objectIteration;
194243
194433
  const setArray = (node2) => {
194244
194434
  array = ctx.getJS(node2);
194245
194435
  templateArray = rewriteBarePropRefs2(array, node2, ctx);
@@ -194254,6 +194444,12 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
194254
194444
  } else if (iteratorInfo.shape === "keys") {
194255
194445
  iterationShape = "keys";
194256
194446
  }
194447
+ } else {
194448
+ const objectIteratorInfo = isObjectIteratorCall(mapSource);
194449
+ if (objectIteratorInfo) {
194450
+ chainSource = objectIteratorInfo.object;
194451
+ objectIteration = objectIteratorInfo.shape;
194452
+ }
194257
194453
  }
194258
194454
  const filterInfo = isFilterCall(chainSource);
194259
194455
  const sortInfo = isSortCall(chainSource);
@@ -194351,7 +194547,8 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
194351
194547
  if (firstParam.type) {
194352
194548
  paramType = firstParam.type.getText(ctx.sourceFile);
194353
194549
  }
194354
- if (iterationShape === "entries" && import_typescript11.default.isArrayBindingPattern(firstParam.name)) {
194550
+ const isEntriesShape = iterationShape === "entries" || objectIteration === "entries";
194551
+ if (isEntriesShape && import_typescript11.default.isArrayBindingPattern(firstParam.name)) {
194355
194552
  const elements = firstParam.name.elements.filter((el) => !import_typescript11.default.isOmittedExpression(el));
194356
194553
  if (elements.length === 2 && import_typescript11.default.isBindingElement(elements[0]) && import_typescript11.default.isIdentifier(elements[0].name) && import_typescript11.default.isBindingElement(elements[1]) && import_typescript11.default.isIdentifier(elements[1].name)) {
194357
194554
  index = elements[0].name.text;
@@ -194373,7 +194570,7 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
194373
194570
  }
194374
194571
  }
194375
194572
  }
194376
- if (callback.parameters.length > 1 && iterationShape !== "entries") {
194573
+ if (callback.parameters.length > 1 && iterationShape !== "entries" && objectIteration !== "entries") {
194377
194574
  const secondParam = callback.parameters[1];
194378
194575
  index = secondParam.name.getText(ctx.sourceFile);
194379
194576
  if (secondParam.type) {
@@ -194388,6 +194585,7 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
194388
194585
  }
194389
194586
  if (index)
194390
194587
  ctx.loopParams.add(index);
194588
+ ctx.loopDepth++;
194391
194589
  const tryTransformRenderableBody = (expr) => {
194392
194590
  if (!import_typescript11.default.isBinaryExpression(expr))
194393
194591
  return;
@@ -194484,6 +194682,7 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
194484
194682
  }
194485
194683
  if (index)
194486
194684
  ctx.loopParams.delete(index);
194685
+ ctx.loopDepth--;
194487
194686
  }
194488
194687
  if (children.length === 0 && !flatMapCallback) {
194489
194688
  return null;
@@ -194512,7 +194711,7 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
194512
194711
  const callsReactive = exprCallsReactiveGetters(arrayExpr, ctx);
194513
194712
  const hasCalls = exprHasFunctionCalls(arrayExpr);
194514
194713
  const isDirectPropArray = method !== "flatMap" && isArrayExprDirectPropRef(arrayExpr, ctx);
194515
- const isStaticArray = !isSignalOrMemoArray(array, ctx) && !isDirectPropArray && !hasCalls;
194714
+ const isStaticArray = !isSignalOrMemoArray(array, ctx) && !isDirectPropArray && !hasCalls && !objectIteration;
194516
194715
  const nestedComponents = collectNestedComponents(children).filter((c) => c.name !== childComponent?.name);
194517
194716
  return {
194518
194717
  type: "loop",
@@ -194539,6 +194738,8 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
194539
194738
  sortComparator,
194540
194739
  chainOrder,
194541
194740
  iterationShape,
194741
+ objectIteration,
194742
+ depth,
194542
194743
  clientOnly: isClientOnly || undefined,
194543
194744
  mapPreamble,
194544
194745
  templateMapPreamble,
@@ -194729,27 +194930,28 @@ function processAttributes(attributes, ctx) {
194729
194930
  }
194730
194931
  if (!import_typescript11.default.isJsxAttribute(attr))
194731
194932
  continue;
194732
- const name = attr.name.getText(ctx.sourceFile);
194733
- if (name === "ref") {
194933
+ const rawName = attr.name.getText(ctx.sourceFile);
194934
+ if (rawName === "ref") {
194734
194935
  if (attr.initializer && import_typescript11.default.isJsxExpression(attr.initializer) && attr.initializer.expression) {
194735
194936
  reportJsxBranchLocalInCallback(attr.initializer.expression, ctx);
194736
194937
  ref = ctx.getJS(attr.initializer.expression);
194737
194938
  }
194738
194939
  continue;
194739
194940
  }
194740
- if (/^on[A-Z]/.test(name)) {
194941
+ if (/^on[A-Z]/.test(rawName)) {
194741
194942
  if (attr.initializer && import_typescript11.default.isJsxExpression(attr.initializer) && attr.initializer.expression) {
194742
- const eventName = name.slice(2).toLowerCase();
194943
+ const eventName = rawName.slice(2).toLowerCase();
194743
194944
  reportJsxBranchLocalInCallback(attr.initializer.expression, ctx);
194744
194945
  events.push({
194745
194946
  name: eventName,
194746
- originalAttr: name,
194947
+ originalAttr: rawName,
194747
194948
  handler: ctx.getJS(attr.initializer.expression),
194748
194949
  loc: getSourceLocation(attr, ctx.sourceFile, ctx.filePath)
194749
194950
  });
194750
194951
  }
194751
194952
  continue;
194752
194953
  }
194954
+ const name = toHTMLAttrName(rawName);
194753
194955
  let value = getAttributeValue(attr, ctx);
194754
194956
  let clientOnly;
194755
194957
  if (attr.initializer && import_typescript11.default.isJsxExpression(attr.initializer) && attr.initializer.expression) {
@@ -194780,7 +194982,7 @@ function getAttributeValue(attr, ctx) {
194780
194982
  return AttrValueOf.booleanAttr();
194781
194983
  }
194782
194984
  if (import_typescript11.default.isStringLiteral(attr.initializer)) {
194783
- return AttrValueOf.literal(attr.initializer.text);
194985
+ return AttrValueOf.literal(decodeEntities(attr.initializer.text));
194784
194986
  }
194785
194987
  if (import_typescript11.default.isJsxExpression(attr.initializer) && attr.initializer.expression) {
194786
194988
  let expr = attr.initializer.expression;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barefootjs/test",
3
- "version": "0.18.3",
3
+ "version": "0.18.5",
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.18.3"
42
+ "@barefootjs/jsx": "0.18.5"
43
43
  },
44
44
  "devDependencies": {
45
45
  "typescript": "^5.0.0"