@barefootjs/test 0.33.1 → 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.
- package/dist/index.js +280 -42
- 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
|
|
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;
|
|
@@ -195439,6 +195492,33 @@ function unwrapHoistedFragment(node) {
|
|
|
195439
195492
|
return node;
|
|
195440
195493
|
return { ...only, needsScope: true };
|
|
195441
195494
|
}
|
|
195495
|
+
function markDataKeyCarrier(children) {
|
|
195496
|
+
for (let i2 = 0;i2 < children.length; i2++) {
|
|
195497
|
+
const marked = markCarrierIn(children[i2]);
|
|
195498
|
+
if (!marked)
|
|
195499
|
+
continue;
|
|
195500
|
+
const out = children.slice();
|
|
195501
|
+
out[i2] = marked;
|
|
195502
|
+
return out;
|
|
195503
|
+
}
|
|
195504
|
+
return children;
|
|
195505
|
+
}
|
|
195506
|
+
function markCarrierIn(node) {
|
|
195507
|
+
if (node.type === "element") {
|
|
195508
|
+
if (node.keyAttr)
|
|
195509
|
+
return null;
|
|
195510
|
+
return { ...node, keyAttr: { name: BF_KEY } };
|
|
195511
|
+
}
|
|
195512
|
+
if (node.type === "conditional") {
|
|
195513
|
+
const cond = node;
|
|
195514
|
+
const whenTrue = markCarrierIn(cond.whenTrue);
|
|
195515
|
+
const whenFalse = markCarrierIn(cond.whenFalse);
|
|
195516
|
+
if (!whenTrue && !whenFalse)
|
|
195517
|
+
return null;
|
|
195518
|
+
return { ...cond, whenTrue: whenTrue ?? cond.whenTrue, whenFalse: whenFalse ?? cond.whenFalse };
|
|
195519
|
+
}
|
|
195520
|
+
return null;
|
|
195521
|
+
}
|
|
195442
195522
|
function transformFragment(node, ctx) {
|
|
195443
195523
|
const isFragmentRoot = ctx.isRoot;
|
|
195444
195524
|
const isTransparent = isFragmentRoot && isTransparentFragment(node, ctx);
|
|
@@ -195449,7 +195529,7 @@ function transformFragment(node, ctx) {
|
|
|
195449
195529
|
const needsScopeComment = isFragmentRoot && !isTransparent || undefined;
|
|
195450
195530
|
return {
|
|
195451
195531
|
type: "fragment",
|
|
195452
|
-
children,
|
|
195532
|
+
children: needsScopeComment ? markDataKeyCarrier(children) : children,
|
|
195453
195533
|
transparent: isTransparent || undefined,
|
|
195454
195534
|
needsScopeComment,
|
|
195455
195535
|
loc: getSourceLocation(node, ctx.sourceFile, ctx.filePath)
|
|
@@ -195502,7 +195582,7 @@ function transformExpressionInner(expr, ctx, node, isClientOnly) {
|
|
|
195502
195582
|
if (isRenderNothingLiteral(expr, ctx)) {
|
|
195503
195583
|
return null;
|
|
195504
195584
|
}
|
|
195505
|
-
checkBareSignalOrMemoIdentifier(expr, ctx);
|
|
195585
|
+
checkBareSignalOrMemoIdentifier(expr, ctx, { descendNested: true });
|
|
195506
195586
|
if (import_typescript13.default.isIdentifier(expr)) {
|
|
195507
195587
|
const jsxNode = ctx.analyzer.jsxConstants.get(expr.text);
|
|
195508
195588
|
if (jsxNode) {
|
|
@@ -196619,6 +196699,16 @@ function tagLoopItemRootComponents(nodes) {
|
|
|
196619
196699
|
}
|
|
196620
196700
|
}
|
|
196621
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
|
+
}
|
|
196622
196712
|
function loopBodyItemConditional(children) {
|
|
196623
196713
|
const real = children.filter((c) => !(c.type === "text" && typeof c.value === "string" && !c.value.trim()));
|
|
196624
196714
|
if (real.length !== 1)
|
|
@@ -197001,6 +197091,14 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
|
|
|
197001
197091
|
const itemConditional = children.length > 0 ? loopBodyItemConditional(children) : null;
|
|
197002
197092
|
const bodyIsItemConditional = itemConditional !== null;
|
|
197003
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
|
+
}
|
|
197004
197102
|
const declaredNameSet = preamble && preamble.declaredNames.length > 0 ? new Set(preamble.declaredNames) : undefined;
|
|
197005
197103
|
if (key && declaredNameSet) {
|
|
197006
197104
|
const keyRefs = extractFreeIdentifiersFromText(key);
|
|
@@ -197691,7 +197789,7 @@ function getAttributeValue(attr, ctx) {
|
|
|
197691
197789
|
ctx.analyzer.errors.push(createError(ErrorCodes.STAGE_AWAIT_IN_TEMPLATE, getSourceLocation(expr, ctx.sourceFile, ctx.filePath)));
|
|
197692
197790
|
return AttrValueOf.expression("undefined");
|
|
197693
197791
|
}
|
|
197694
|
-
checkBareSignalOrMemoIdentifier(expr, ctx);
|
|
197792
|
+
checkBareSignalOrMemoIdentifier(expr, ctx, { descendNested: isRenderedElementAttribute(attr, ctx) });
|
|
197695
197793
|
if (attr.name.getText(ctx.sourceFile) === "style" && import_typescript13.default.isObjectLiteralExpression(expr)) {
|
|
197696
197794
|
const cssString = tryStaticStyleObjectToCss(expr);
|
|
197697
197795
|
if (cssString !== null) {
|
|
@@ -198199,34 +198297,142 @@ function processComponentProps(attributes, ctx) {
|
|
|
198199
198297
|
}
|
|
198200
198298
|
return props;
|
|
198201
198299
|
}
|
|
198202
|
-
function
|
|
198203
|
-
|
|
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)
|
|
198204
198311
|
return;
|
|
198205
|
-
const
|
|
198206
|
-
|
|
198207
|
-
|
|
198208
|
-
|
|
198209
|
-
|
|
198210
|
-
|
|
198211
|
-
|
|
198212
|
-
|
|
198213
|
-
|
|
198214
|
-
|
|
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);
|
|
198215
198341
|
return;
|
|
198216
198342
|
}
|
|
198217
|
-
|
|
198218
|
-
|
|
198219
|
-
|
|
198220
|
-
|
|
198221
|
-
|
|
198222
|
-
|
|
198223
|
-
|
|
198224
|
-
|
|
198225
|
-
|
|
198226
|
-
|
|
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);
|
|
198227
198391
|
return;
|
|
198228
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();
|
|
198423
|
+
return;
|
|
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);
|
|
198229
198434
|
}
|
|
198435
|
+
visit2(expr);
|
|
198230
198436
|
}
|
|
198231
198437
|
function isArrayExprDirectPropRef(arrayExpr, ctx) {
|
|
198232
198438
|
const propNames = new Set(ctx.patterns.props.map((p) => p.name));
|
|
@@ -198325,6 +198531,31 @@ function isPropsReference(expr, ctx, visited) {
|
|
|
198325
198531
|
}
|
|
198326
198532
|
return false;
|
|
198327
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
|
+
}
|
|
198328
198559
|
function hasReactiveAttributes(attrs, ctx) {
|
|
198329
198560
|
for (const attr of attrs) {
|
|
198330
198561
|
if (attr.name === "key")
|
|
@@ -198545,6 +198776,10 @@ function buildIfStatementChain(analyzer, ctx, opts) {
|
|
|
198545
198776
|
return alternate;
|
|
198546
198777
|
}
|
|
198547
198778
|
|
|
198779
|
+
// ../jsx/src/ir-to-client-js/prop-handling.ts
|
|
198780
|
+
var _localConstantValuesCache = new WeakMap;
|
|
198781
|
+
var _restSpreadNamesCache = new WeakMap;
|
|
198782
|
+
|
|
198548
198783
|
// ../jsx/src/ir-to-client-js/control-flow/stringify/template-parse.ts
|
|
198549
198784
|
var SVG_ROOT_TAGS = new Set([
|
|
198550
198785
|
"svg",
|
|
@@ -198666,11 +198901,14 @@ var KEYWORDS_AND_GLOBALS = new Set([
|
|
|
198666
198901
|
// ../jsx/src/ir-to-client-js/walk-prop-accesses.ts
|
|
198667
198902
|
var import_typescript14 = __toESM(require_typescript(), 1);
|
|
198668
198903
|
|
|
198904
|
+
// ../jsx/src/ir-to-client-js/imports.ts
|
|
198905
|
+
var import_typescript16 = __toESM(require_typescript(), 1);
|
|
198906
|
+
|
|
198669
198907
|
// ../jsx/src/value-references.ts
|
|
198670
198908
|
var import_typescript15 = __toESM(require_typescript(), 1);
|
|
198671
198909
|
|
|
198672
198910
|
// ../jsx/src/relocate.ts
|
|
198673
|
-
var
|
|
198911
|
+
var import_typescript17 = __toESM(require_typescript(), 1);
|
|
198674
198912
|
|
|
198675
198913
|
// ../jsx/src/lowering-registry.ts
|
|
198676
198914
|
var plugins = [];
|
|
@@ -198849,10 +199087,10 @@ function formatDateLocalNames(metadata) {
|
|
|
198849
199087
|
}
|
|
198850
199088
|
|
|
198851
199089
|
// ../jsx/src/ir-to-client-js/prune-unused-prop-extractions.ts
|
|
198852
|
-
var
|
|
199090
|
+
var import_typescript18 = __toESM(require_typescript(), 1);
|
|
198853
199091
|
|
|
198854
199092
|
// ../jsx/src/ir-to-client-js/control-flow/plan/lazy-preamble.ts
|
|
198855
|
-
var
|
|
199093
|
+
var import_typescript19 = __toESM(require_typescript(), 1);
|
|
198856
199094
|
var NO_PREAMBLE = {
|
|
198857
199095
|
lazySafe: true,
|
|
198858
199096
|
facts: { declaredNames: new Set, freeNames: new Set }
|
|
@@ -198902,7 +199140,7 @@ var INERT_BINDING_GLOBALS = new Set([
|
|
|
198902
199140
|
]);
|
|
198903
199141
|
|
|
198904
199142
|
// ../jsx/src/ir-to-client-js/emit-reactive.ts
|
|
198905
|
-
var
|
|
199143
|
+
var import_typescript20 = __toESM(require_typescript(), 1);
|
|
198906
199144
|
|
|
198907
199145
|
// ../jsx/src/ir-to-client-js/control-flow/stringify/event-delegation.ts
|
|
198908
199146
|
var NON_BUBBLING_EVENTS = new Set([
|
|
@@ -198917,7 +199155,7 @@ var NON_BUBBLING_EVENTS = new Set([
|
|
|
198917
199155
|
]);
|
|
198918
199156
|
|
|
198919
199157
|
// ../jsx/src/ir-to-client-js/rewrite-props-object.ts
|
|
198920
|
-
var
|
|
199158
|
+
var import_typescript21 = __toESM(require_typescript(), 1);
|
|
198921
199159
|
|
|
198922
199160
|
// ../jsx/src/ir-to-client-js/source-map.ts
|
|
198923
199161
|
var BASE64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
@@ -199008,21 +199246,21 @@ class SourceMapGenerator {
|
|
|
199008
199246
|
}
|
|
199009
199247
|
|
|
199010
199248
|
// ../jsx/src/preprocess-inline-jsx-callbacks.ts
|
|
199011
|
-
var
|
|
199249
|
+
var import_typescript22 = __toESM(require_typescript(), 1);
|
|
199012
199250
|
|
|
199013
199251
|
// ../jsx/src/ssr-defaults.ts
|
|
199014
|
-
var
|
|
199252
|
+
var import_typescript23 = __toESM(require_typescript(), 1);
|
|
199015
199253
|
var UNRESOLVED = Symbol("unresolved");
|
|
199016
199254
|
var NO_RETURN = Symbol("no-return");
|
|
199017
199255
|
|
|
199018
199256
|
// ../jsx/src/augment-inherited-props.ts
|
|
199019
|
-
var
|
|
199257
|
+
var import_typescript24 = __toESM(require_typescript(), 1);
|
|
199020
199258
|
|
|
199021
199259
|
// ../jsx/src/rich-type-refusal.ts
|
|
199022
199260
|
var EMPTY_BINDINGS2 = new Map;
|
|
199023
199261
|
// ../jsx/src/shared-program.ts
|
|
199024
199262
|
init_path();
|
|
199025
|
-
var
|
|
199263
|
+
var import_typescript26 = __toESM(require_typescript(), 1);
|
|
199026
199264
|
// ../jsx/src/adapters/interface.ts
|
|
199027
199265
|
class BaseAdapter {
|
|
199028
199266
|
renderChildren(children) {
|
|
@@ -199304,7 +199542,7 @@ class JsxAdapter extends BaseAdapter {
|
|
|
199304
199542
|
}
|
|
199305
199543
|
|
|
199306
199544
|
// ../jsx/src/adapters/template-imports.ts
|
|
199307
|
-
var
|
|
199545
|
+
var import_typescript27 = __toESM(require_typescript(), 1);
|
|
199308
199546
|
var CLIENT_PACKAGE_SOURCES = new Set([
|
|
199309
199547
|
"@barefootjs/client",
|
|
199310
199548
|
"@barefootjs/client/runtime"
|
|
@@ -199697,9 +199935,9 @@ function registerBuiltinLoweringPlugins() {
|
|
|
199697
199935
|
registerLoweringPlugin(plugin);
|
|
199698
199936
|
}
|
|
199699
199937
|
// ../jsx/src/combine-client-js.ts
|
|
199700
|
-
var import_typescript27 = __toESM(require_typescript(), 1);
|
|
199701
|
-
// ../jsx/src/debug.ts
|
|
199702
199938
|
var import_typescript28 = __toESM(require_typescript(), 1);
|
|
199939
|
+
// ../jsx/src/debug.ts
|
|
199940
|
+
var import_typescript29 = __toESM(require_typescript(), 1);
|
|
199703
199941
|
function escapeForIdBoundary(name) {
|
|
199704
199942
|
return name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
199705
199943
|
}
|
|
@@ -199791,7 +200029,7 @@ function resolveSetters(handler, setterToSignal, fnSetters) {
|
|
|
199791
200029
|
return refs;
|
|
199792
200030
|
}
|
|
199793
200031
|
// ../jsx/src/profiler.ts
|
|
199794
|
-
var
|
|
200032
|
+
var import_typescript30 = __toESM(require_typescript(), 1);
|
|
199795
200033
|
|
|
199796
200034
|
// ../jsx/src/index.ts
|
|
199797
200035
|
registerBuiltinLoweringPlugins();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@barefootjs/test",
|
|
3
|
-
"version": "0.33.
|
|
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.
|
|
42
|
+
"@barefootjs/jsx": "0.33.3"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"typescript": "^5.0.0"
|