@barefootjs/jsx 0.31.2 → 0.31.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.
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/jsx-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,MAAM,EACN,cAAc,EACd,eAAe,EAChB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAK1D,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,8BAAsB,UAAW,SAAQ,WAAW;IAClD,SAAS,CAAC,aAAa,EAAE,MAAM,CAAK;IAEpC,yEAAyE;IACzE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAA;IAE9C;;;;;;OAMG;IACH,mBAAmB,EAAE,oBAAoB,CAAa;IAMtD,SAAS,CAAC,sBAAsB,CAC9B,UAAU,EAAE,eAAe,EAAE,GAC5B,MAAM,CAuBR;IAMD;;;;;;;;;;OAUG;IACH,0BAA0B,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA0JnE;IAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAEhF,SAAS,CAAC,2BAA2B,CAAC,EAAE,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAmFlE;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,SAAS,CAAC,+BAA+B,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CA2CjE;IAMD,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ5C;IAMD;;;;;OAKG;IACH,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAE1E;IAED;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,YAAY,CAAA;KAAE,CAAC,GAAG,MAAM,CASvF;IAMD,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEhD;IAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvC;IAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvC;CACF"}
1
+ {"version":3,"file":"jsx-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/jsx-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,MAAM,EACN,cAAc,EACd,eAAe,EAChB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAK1D,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,8BAAsB,UAAW,SAAQ,WAAW;IAClD,SAAS,CAAC,aAAa,EAAE,MAAM,CAAK;IAEpC,yEAAyE;IACzE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAA;IAE9C;;;;;;OAMG;IACH,mBAAmB,EAAE,oBAAoB,CAAa;IAMtD,SAAS,CAAC,sBAAsB,CAC9B,UAAU,EAAE,eAAe,EAAE,GAC5B,MAAM,CAuBR;IAMD;;;;;;;;;;OAUG;IACH,0BAA0B,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAuKnE;IAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAEhF,SAAS,CAAC,2BAA2B,CAAC,EAAE,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAmFlE;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,SAAS,CAAC,+BAA+B,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CA0DjE;IAMD,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ5C;IAMD;;;;;OAKG;IACH,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAE1E;IAED;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,YAAY,CAAA;KAAE,CAAC,GAAG,MAAM,CASvF;IAMD,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEhD;IAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvC;IAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAA;AAG3B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAInE,OAAO,EACL,KAAK,eAAe,EAUrB,MAAM,uBAAuB,CAAA;AAqB9B;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAU/D;AA8BD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf;IAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAA;CAAE,GAAG,IAAI,CA8CpF;AAMD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,EACpB,mBAAmB,CAAC,EAAE,oBAAoB,EAC1C,eAAe,CAAC,EAAE,OAAO,GACxB,eAAe,CAkKjB;AAugBD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAavE;AAuuCD,MAAM,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,qBAAqB,GAAG,EAAE,CAAC,WAAW,CAAA;AAErF;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,KAAK,CAAC;QACd,SAAS,EAAE,EAAE,CAAC,UAAU,CAAA;QACxB,SAAS,EAAE,aAAa,GAAG,IAAI,CAAA;QAC/B;;;;;WAKG;QACH,mBAAmB,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,CAAA;KACtC,CAAC,CAAA;IACF,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAA;IAC9B,kBAAkB,CAAC,EAAE,EAAE,CAAC,UAAU,CAAA;IAClC;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAA;CAClC;AAuBD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,EAAE,CAAC,KAAK,EACd,aAAa,UAAQ,GACpB,sBAAsB,GAAG,IAAI,CA+J/B;AAsGD;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CA6BpE;AA2LD;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAuCzE;AAuDD;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAelE;AA4tCD,eAAO,MAAM,wBAAwB,aAOnC,CAAA;AAqBF;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,MAAM,EAAE,CA0DV;AAcD,eAAO,MAAM,mBAAmB,aAG9B,CAAA;AA25CF;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CA4EvE;AAiID,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAA;AAG3B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAInE,OAAO,EACL,KAAK,eAAe,EAUrB,MAAM,uBAAuB,CAAA;AAqB9B;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAU/D;AA8BD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf;IAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAA;CAAE,GAAG,IAAI,CA8CpF;AAMD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,EACpB,mBAAmB,CAAC,EAAE,oBAAoB,EAC1C,eAAe,CAAC,EAAE,OAAO,GACxB,eAAe,CAkKjB;AAuhBD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAavE;AAuuCD,MAAM,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,qBAAqB,GAAG,EAAE,CAAC,WAAW,CAAA;AAErF;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,KAAK,CAAC;QACd,SAAS,EAAE,EAAE,CAAC,UAAU,CAAA;QACxB,SAAS,EAAE,aAAa,GAAG,IAAI,CAAA;QAC/B;;;;;WAKG;QACH,mBAAmB,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,CAAA;KACtC,CAAC,CAAA;IACF,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAA;IAC9B,kBAAkB,CAAC,EAAE,EAAE,CAAC,UAAU,CAAA;IAClC;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAA;CAClC;AAuBD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,EAAE,CAAC,KAAK,EACd,aAAa,UAAQ,GACpB,sBAAsB,GAAG,IAAI,CA+J/B;AAsGD;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CA6BpE;AA2LD;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAuCzE;AAuDD;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAelE;AA6tCD,eAAO,MAAM,wBAAwB,aAOnC,CAAA;AAqBF;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,MAAM,EAAE,CA0DV;AAcD,eAAO,MAAM,mBAAmB,aAG9B,CAAA;AA25CF;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CA4EvE;AAiID,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA"}
package/dist/index.d.ts CHANGED
@@ -97,6 +97,8 @@ export type { ParsedExpr, ObjectLiteralProperty, ParsedStatement, SortComparator
97
97
  export { buildLoopChainExpr } from './loop-chain.ts';
98
98
  export type { LoopChainInputs } from './loop-chain.ts';
99
99
  export { isLowerableLoopDestructure, isLowerableObjectRestDestructure } from './loop-destructure.ts';
100
+ export { BindingScope } from './scope/binding-scope.ts';
101
+ export type { ScopeBindingSource, ScopeBinding, ScopeFrame, LoopBindingSource } from './scope/binding-scope.ts';
100
102
  export { buildComponentGraph, buildComponentAnalysis, buildGraphFromIR, buildEventSummary, buildLoopSummary, buildWhyUpdate, traceUpdatePath, formatComponentGraph, formatUpdatePath, formatEventSummary, formatLoopSummary, formatWhyUpdate, describeFallback, formatFallbackExplanations, buildComponentSummary, formatComponentSummary, formatSignalTrace, generateStaticTrace, graphToJSON, resolveSetters, buildLocalFunctionSetterMap, makeIdCallRegex, } from './debug.ts';
101
103
  export type { ComponentGraph, ComponentAnalysis, SignalNode, MemoNode, EffectNode, DomBinding, UpdatePath, SignalTrace, EventBinding, SetterRef, FnSetterResolution, EventSummary, LoopInfo, LoopChildBinding, LoopSummary, WhyUpdateResult, WhyUpdateDep, WhyUpdateSource, FallbackExplanation, ComponentSummary } from './debug.ts';
102
104
  export type { WrapReason } from './ir-to-client-js/reactivity.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6008,7 +6008,8 @@ function visit(node, ctx, targetComponentName, namedExports) {
6008
6008
  if (!ctx.componentNode) {
6009
6009
  collectAmbientGlobals(node, ctx);
6010
6010
  }
6011
- if (ts9.isVariableStatement(node) && !ctx.componentNode) {
6011
+ const isDeclareStatement = ts9.isVariableStatement(node) && (node.modifiers?.some((m) => m.kind === ts9.SyntaxKind.DeclareKeyword) ?? false);
6012
+ if (ts9.isVariableStatement(node) && !ctx.componentNode && !isDeclareStatement) {
6012
6013
  const isExported = node.modifiers?.some((m) => m.kind === ts9.SyntaxKind.ExportKeyword) ?? false;
6013
6014
  const isLet = (node.declarationList.flags & ts9.NodeFlags.Let) !== 0;
6014
6015
  const isModuleClientDirective = hasLeadingClientDirectiveOnStatement(node, ctx.sourceFile);
@@ -6021,7 +6022,7 @@ function visit(node, ctx, targetComponentName, namedExports) {
6021
6022
  }
6022
6023
  continue;
6023
6024
  }
6024
- if (ts9.isIdentifier(decl.name) && decl.initializer && !isArrowComponentFunction(decl)) {
6025
+ if (ts9.isIdentifier(decl.name) && (decl.initializer || isLet) && !isArrowComponentFunction(decl)) {
6025
6026
  collectConstant(decl, ctx, true, isLet ? "let" : "const", isExported);
6026
6027
  }
6027
6028
  }
@@ -7592,6 +7593,7 @@ function collectConstant(node, ctx, _isModule, declarationKind = "const", isExpo
7592
7593
  value,
7593
7594
  parsed,
7594
7595
  typedValue: typedValue !== value ? typedValue : undefined,
7596
+ typeAnnotation: node.type ? node.type.getText(ctx.sourceFile) : undefined,
7595
7597
  valueBranches,
7596
7598
  declarationKind,
7597
7599
  isExported,
@@ -10020,6 +10022,85 @@ var toLocaleDatePlugin = {
10020
10022
 
10021
10023
  // src/jsx-to-ir.ts
10022
10024
  import { toHTMLAttrName, decodeEntities } from "@barefootjs/shared";
10025
+
10026
+ // src/scope/binding-scope.ts
10027
+ class BindingScope {
10028
+ frames;
10029
+ static EMPTY = new BindingScope([]);
10030
+ constructor(frames) {
10031
+ this.frames = frames;
10032
+ }
10033
+ enterLoopRow(loop) {
10034
+ const bindings = new Map;
10035
+ if (loop.paramBindings && loop.paramBindings.length > 0) {
10036
+ for (const b of loop.paramBindings)
10037
+ bindings.set(b.name, { source: "destructure" });
10038
+ } else {
10039
+ bindings.set(loop.param, { source: "item" });
10040
+ }
10041
+ if (loop.index != null)
10042
+ bindings.set(loop.index, { source: "index" });
10043
+ for (const name of loop.preamble?.declaredNames ?? [])
10044
+ bindings.set(name, { source: "preamble" });
10045
+ const frame = { kind: "loop-row", bindings };
10046
+ return new BindingScope([frame, ...this.frames]);
10047
+ }
10048
+ enterCallback(params) {
10049
+ const bindings = new Map;
10050
+ for (const name of params)
10051
+ bindings.set(name, { source: "param" });
10052
+ const frame = { kind: "callback", bindings };
10053
+ return new BindingScope([frame, ...this.frames]);
10054
+ }
10055
+ isBound(name) {
10056
+ for (const frame of this.frames) {
10057
+ if (frame.bindings.has(name))
10058
+ return true;
10059
+ }
10060
+ return false;
10061
+ }
10062
+ lookup(name) {
10063
+ for (let depth = 0;depth < this.frames.length; depth++) {
10064
+ const frame = this.frames[depth];
10065
+ const binding = frame.bindings.get(name);
10066
+ if (binding)
10067
+ return { depth, frame, binding };
10068
+ }
10069
+ return null;
10070
+ }
10071
+ boundNames() {
10072
+ if (this.boundNamesCache)
10073
+ return this.boundNamesCache;
10074
+ const names = new Set;
10075
+ for (const frame of this.frames) {
10076
+ for (const name of frame.bindings.keys())
10077
+ names.add(name);
10078
+ }
10079
+ this.boundNamesCache = names;
10080
+ return names;
10081
+ }
10082
+ boundNamesCache;
10083
+ valueBoundNamesCache;
10084
+ valueBoundNames() {
10085
+ if (this.valueBoundNamesCache)
10086
+ return this.valueBoundNamesCache;
10087
+ const names = new Set;
10088
+ for (const frame of this.frames) {
10089
+ for (const [name, binding] of frame.bindings) {
10090
+ if (binding.source === "item" || binding.source === "index" || binding.source === "destructure") {
10091
+ names.add(name);
10092
+ }
10093
+ }
10094
+ }
10095
+ this.valueBoundNamesCache = names;
10096
+ return names;
10097
+ }
10098
+ asShadowPredicate() {
10099
+ return (name) => this.isBound(name);
10100
+ }
10101
+ }
10102
+
10103
+ // src/jsx-to-ir.ts
10023
10104
  var CLIENT_DIRECTIVE_INTERIOR_RE2 = /^\s*@client\s*$/;
10024
10105
  var BLOCK_COMMENT_RE2 = /\/\*([\s\S]*?)\*\//g;
10025
10106
  function hasLeadingClientDirective(expr, sourceFile) {
@@ -10199,8 +10280,9 @@ function rewriteBarePropRefs2(text, expr, ctx) {
10199
10280
  let propNames = getDestructuredPropNames(ctx);
10200
10281
  if (!propNames)
10201
10282
  return dateLowered === text ? undefined : dateLowered;
10202
- if (ctx.loopParams.size > 0) {
10203
- const filtered = new Set([...propNames].filter((n) => !ctx.loopParams.has(n)));
10283
+ const shadowingNames = ctx.scope.boundNames();
10284
+ if (shadowingNames.size > 0) {
10285
+ const filtered = new Set([...propNames].filter((n) => !shadowingNames.has(n)));
10204
10286
  if (filtered.size === 0)
10205
10287
  return dateLowered === text ? undefined : dateLowered;
10206
10288
  propNames = filtered;
@@ -10276,7 +10358,7 @@ function createTransformContext(analyzer) {
10276
10358
  spreadIdCounter: 0,
10277
10359
  isRoot: true,
10278
10360
  insideComponentChildren: false,
10279
- loopParams: new Set,
10361
+ scope: BindingScope.EMPTY,
10280
10362
  loopDepth: 0,
10281
10363
  patterns: {
10282
10364
  signals: analyzer.signals.map((s) => ({
@@ -10353,7 +10435,8 @@ function generateSpreadSlotId(ctx) {
10353
10435
  return `Spread_${ctx.spreadIdCounter++}`;
10354
10436
  }
10355
10437
  function makeBindingEnv(ctx) {
10356
- const loopKey = ctx.loopParams.size === 0 ? "" : Array.from(ctx.loopParams).sort().join("\x00");
10438
+ const boundNames = ctx.scope.valueBoundNames();
10439
+ const loopKey = boundNames.size === 0 ? "" : Array.from(boundNames).sort().join("\x00");
10357
10440
  if (ctx._bindingEnv && ctx._bindingEnvLoopKey === loopKey) {
10358
10441
  return ctx._bindingEnv;
10359
10442
  }
@@ -10368,7 +10451,7 @@ function makeBindingEnv(ctx) {
10368
10451
  localFunctions: a.localFunctions,
10369
10452
  imports: a.imports,
10370
10453
  ambientGlobals: a.ambientGlobals,
10371
- loopParams: new Set(ctx.loopParams),
10454
+ loopParams: boundNames,
10372
10455
  checker: a.checker
10373
10456
  };
10374
10457
  ctx._bindingEnv = env;
@@ -11061,7 +11144,8 @@ function transformExpressionInner(expr, ctx, node, isClientOnly) {
11061
11144
  freeRefs
11062
11145
  };
11063
11146
  const reactive = isReactiveExpression(exprText, ctx, expr) || isReactiveOrigin(origin);
11064
- const refsLoopParam = ctx.loopParams.size > 0 && Array.from(ctx.loopParams).some((p) => new RegExp(`\\b${p}\\b`).test(exprText));
11147
+ const scopeValueNames = ctx.scope.valueBoundNames();
11148
+ const refsLoopParam = scopeValueNames.size > 0 && Array.from(scopeValueNames).some((p) => new RegExp(`\\b${p}\\b`).test(exprText));
11065
11149
  const callsReactive = exprCallsReactiveGetters(expr, ctx);
11066
11150
  const hasCalls = exprHasFunctionCalls(expr);
11067
11151
  const needsSlot = reactive || isClientOnly || refsLoopParam || callsReactive || hasCalls;
@@ -12149,7 +12233,7 @@ function extractItemConditionalKey(cond) {
12149
12233
  return a ?? b;
12150
12234
  }
12151
12235
  function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
12152
- const isNested = ctx.loopParams.size > 0;
12236
+ const isNested = ctx.scope.valueBoundNames().size > 0;
12153
12237
  const diagCountAtEntry = ctx.analyzer.errors.length;
12154
12238
  const depth = ctx.loopDepth;
12155
12239
  const propAccess = node.expression;
@@ -12308,14 +12392,8 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
12308
12392
  indexType = secondParam.type.getText(ctx.sourceFile);
12309
12393
  }
12310
12394
  }
12311
- if (paramBindings) {
12312
- for (const b of paramBindings)
12313
- ctx.loopParams.add(b.name);
12314
- } else {
12315
- ctx.loopParams.add(param);
12316
- }
12317
- if (index)
12318
- ctx.loopParams.add(index);
12395
+ const savedScope = ctx.scope;
12396
+ ctx.scope = ctx.scope.enterLoopRow({ param, index, paramBindings });
12319
12397
  ctx.loopDepth++;
12320
12398
  const tryTransformRenderableBody = (expr) => {
12321
12399
  if (!ts12.isBinaryExpression(expr))
@@ -12376,6 +12454,24 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
12376
12454
  }
12377
12455
  }
12378
12456
  const returnStmt = children.length === 0 ? body.statements.find((s) => ts12.isReturnStatement(s) && s.expression != null) : undefined;
12457
+ let rowScopeBeforePreamble = null;
12458
+ if (returnStmt) {
12459
+ const preambleNames = new Set;
12460
+ for (const stmt of body.statements) {
12461
+ if (stmt === returnStmt)
12462
+ break;
12463
+ collectPreambleDeclaredNames(stmt, preambleNames);
12464
+ }
12465
+ if (preambleNames.size > 0) {
12466
+ rowScopeBeforePreamble = ctx.scope;
12467
+ ctx.scope = savedScope.enterLoopRow({
12468
+ param,
12469
+ index,
12470
+ paramBindings,
12471
+ preamble: { declaredNames: [...preambleNames] }
12472
+ });
12473
+ }
12474
+ }
12379
12475
  if (returnStmt && returnStmt.expression) {
12380
12476
  let returnExpr = returnStmt.expression;
12381
12477
  while (ts12.isParenthesizedExpression(returnExpr)) {
@@ -12445,6 +12541,9 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
12445
12541
  }
12446
12542
  }
12447
12543
  }
12544
+ if (rowScopeBeforePreamble) {
12545
+ ctx.scope = rowScopeBeforePreamble;
12546
+ }
12448
12547
  if (method === "flatMap" && children.length === 0 && !flatMapProjectionCall(body)) {
12449
12548
  flatMapCallback = buildFlatMapCallback(callback, body, ctx);
12450
12549
  }
@@ -12473,14 +12572,7 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
12473
12572
  }
12474
12573
  }));
12475
12574
  }
12476
- if (paramBindings) {
12477
- for (const b of paramBindings)
12478
- ctx.loopParams.delete(b.name);
12479
- } else {
12480
- ctx.loopParams.delete(param);
12481
- }
12482
- if (index)
12483
- ctx.loopParams.delete(index);
12575
+ ctx.scope = savedScope;
12484
12576
  ctx.loopDepth--;
12485
12577
  }
12486
12578
  if (children.length === 0 && !flatMapCallback) {
@@ -13227,7 +13319,7 @@ function parseTemplateLiteral(expr, ctx) {
13227
13319
  }
13228
13320
  function tryResolveTemplateSpanFromConst(expr, ctx) {
13229
13321
  if (ts12.isIdentifier(expr)) {
13230
- if (ctx.loopParams.has(expr.text))
13322
+ if (ctx.scope.isBound(expr.text))
13231
13323
  return null;
13232
13324
  const constInfo = findLocalConst(expr.text, ctx.analyzer);
13233
13325
  if (!constInfo)
@@ -13243,7 +13335,7 @@ function tryResolveTemplateSpanFromConst(expr, ctx) {
13243
13335
  if (ts12.isElementAccessExpression(expr)) {
13244
13336
  if (!ts12.isIdentifier(expr.expression))
13245
13337
  return null;
13246
- if (ctx.loopParams.has(expr.expression.text))
13338
+ if (ctx.scope.isBound(expr.expression.text))
13247
13339
  return null;
13248
13340
  const constInfo = findLocalConst(expr.expression.text, ctx.analyzer);
13249
13341
  if (!constInfo)
@@ -13322,7 +13414,7 @@ function hasDynamicTagBinding(name, sourceFile) {
13322
13414
  return found;
13323
13415
  }
13324
13416
  function tryResolveIdentifierAsTemplateLiteral(ident, ctx) {
13325
- if (ctx.loopParams.has(ident.text))
13417
+ if (ctx.scope.isBound(ident.text))
13326
13418
  return null;
13327
13419
  const constInfo = findLocalConst(ident.text, ctx.analyzer);
13328
13420
  if (!constInfo)
@@ -13671,9 +13763,10 @@ function isSignalOrMemoArray(array, ctx) {
13671
13763
  return false;
13672
13764
  }
13673
13765
  function referencesLoopParam(expr, ctx) {
13674
- if (ctx.loopParams.size === 0)
13766
+ const boundNames = ctx.scope.valueBoundNames();
13767
+ if (boundNames.size === 0)
13675
13768
  return false;
13676
- for (const p of ctx.loopParams) {
13769
+ for (const p of boundNames) {
13677
13770
  if (new RegExp(`\\b${p}\\b`).test(expr))
13678
13771
  return true;
13679
13772
  }
@@ -13753,8 +13846,9 @@ function hasReactiveAttributes(attrs, ctx) {
13753
13846
  if (isSignalOrMemoReference(valueToCheck, ctx) || isPropsReference(valueToCheck, ctx)) {
13754
13847
  return true;
13755
13848
  }
13756
- if (ctx.loopParams.size > 0) {
13757
- for (const p of ctx.loopParams) {
13849
+ const scopeValueNames = ctx.scope.valueBoundNames();
13850
+ if (scopeValueNames.size > 0) {
13851
+ for (const p of scopeValueNames) {
13758
13852
  if (new RegExp(`\\b${p}\\b`).test(valueToCheck))
13759
13853
  return true;
13760
13854
  }
@@ -24563,7 +24657,7 @@ class JsxAdapter extends BaseAdapter {
24563
24657
  continue;
24564
24658
  const keyword = constant.declarationKind ?? "const";
24565
24659
  if (!constant.value) {
24566
- const typeAnnotation = preserveTypes && constant.type ? `: ${constant.type.raw}` : "";
24660
+ const typeAnnotation = preserveTypes && (constant.typeAnnotation ?? constant.type) ? `: ${constant.typeAnnotation ?? constant.type?.raw}` : "";
24567
24661
  lines.push(` ${keyword} ${constant.name}${typeAnnotation}`);
24568
24662
  continue;
24569
24663
  }
@@ -24573,7 +24667,8 @@ class JsxAdapter extends BaseAdapter {
24573
24667
  if (!reachable.has(constant.name))
24574
24668
  continue;
24575
24669
  const constValue = preserveTypes ? constant.typedValue ?? constant.value : constant.value;
24576
- lines.push(` ${keyword} ${constant.name} = ${constValue}`);
24670
+ const letTypeAnnotation = preserveTypes && keyword === "let" && constant.typeAnnotation ? `: ${constant.typeAnnotation}` : "";
24671
+ lines.push(` ${keyword} ${constant.name}${letTypeAnnotation} = ${constValue}`);
24577
24672
  }
24578
24673
  for (const func of localFunctions) {
24579
24674
  if (moduleScopeNames.has(func.name))
@@ -24680,7 +24775,8 @@ class JsxAdapter extends BaseAdapter {
24680
24775
  const keyword = c.declarationKind ?? "const";
24681
24776
  const exportKw = c.isExported ? "export " : "";
24682
24777
  if (!c.value) {
24683
- entries.push({ line: c.loc.start.line, text: `${exportKw}${keyword} ${c.name}` });
24778
+ const typeAnnotation = preserveTypes && (c.typeAnnotation ?? c.type) ? `: ${c.typeAnnotation ?? c.type?.raw}` : "";
24779
+ entries.push({ line: c.loc.start.line, text: `${exportKw}${keyword} ${c.name}${typeAnnotation}` });
24684
24780
  continue;
24685
24781
  }
24686
24782
  const trimmed = c.value.trim();
@@ -24689,7 +24785,8 @@ class JsxAdapter extends BaseAdapter {
24689
24785
  if (c.isExported && /^createContext\b/.test(trimmed))
24690
24786
  continue;
24691
24787
  const value = preserveTypes ? c.typedValue ?? c.value : c.value;
24692
- entries.push({ line: c.loc.start.line, text: `${exportKw}${keyword} ${c.name} = ${value}` });
24788
+ const letTypeAnnotation = preserveTypes && keyword === "let" && c.typeAnnotation ? `: ${c.typeAnnotation}` : "";
24789
+ entries.push({ line: c.loc.start.line, text: `${exportKw}${keyword} ${c.name}${letTypeAnnotation} = ${value}` });
24693
24790
  }
24694
24791
  for (const f of ir.metadata.localFunctions) {
24695
24792
  if (!f.isModule || !moduleNames.has(f.name))
@@ -28570,6 +28667,7 @@ export {
28570
28667
  ErrorCodes,
28571
28668
  ENV_SIGNAL_READERS,
28572
28669
  CALLBACK_METHODS,
28670
+ BindingScope,
28573
28671
  BaseAdapter,
28574
28672
  BUILTIN_LOWERING_PLUGINS,
28575
28673
  BROWSER_ONLY_CLIENT_APIS,
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-to-ir.d.ts","sourceRoot":"","sources":["../src/jsx-to-ir.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,KAAK,MAAM,EA+BZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,KAAK,eAAe,EAA0E,MAAM,uBAAuB,CAAA;AAy5BpI,wBAAgB,OAAO,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAIhE"}
1
+ {"version":3,"file":"jsx-to-ir.d.ts","sourceRoot":"","sources":["../src/jsx-to-ir.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,KAAK,MAAM,EA+BZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,KAAK,eAAe,EAA0E,MAAM,uBAAuB,CAAA;AA+6BpI,wBAAgB,OAAO,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAIhE"}
@@ -14,7 +14,7 @@
14
14
  * stack, so `items.map((title) => title.a)` never turns into the
15
15
  * syntactically invalid `.map((_p.title) => _p.title.a)` when `title`
16
16
  * is also a prop. (Names bound by loop callbacks that ENCLOSE the
17
- * expression are the caller's job — see the `ctx.loopParams` filter in
17
+ * expression are the caller's job — see the `ctx.scope` filter in
18
18
  * `jsx-to-ir.ts`'s `rewriteBarePropRefs` wrapper, #2222.)
19
19
  */
20
20
  import ts from 'typescript';
@@ -0,0 +1,179 @@
1
+ /**
2
+ * `BindingScope`: the one shared, immutable, stack-shaped model of "names
3
+ * bound by a loop callback" (#2482 Stage 0). Six independent ad-hoc
4
+ * mechanisms across the compiler currently answer this same question —
5
+ * `ctx.loopParams` (a mutated `Set<string>` in `jsx-to-ir.ts`),
6
+ * `collectLoopBoundNames` (`adapters/loop-bound-names.ts`),
7
+ * `resolveStaticLoopSource`'s `isNameShadowed` callback
8
+ * (`static-literal.ts`), and others — each reimplementing the same
9
+ * item/index/destructure/preamble-local bookkeeping with its own bugs and
10
+ * its own blind spots. This module is the single door those mechanisms
11
+ * migrate onto in later stages (Stage 0 only ships the service + tests;
12
+ * NO call site is migrated yet).
13
+ *
14
+ * Immutability is the point, not an incidental style choice:
15
+ * `ctx.loopParams` is `.add`/`.delete`-mutated as `jsx-to-ir.ts` walks in
16
+ * and back out of nested loops, so a caller that forgets (or races) a
17
+ * `.delete()` — or that holds a reference to the "current" set across a
18
+ * push/pop it didn't expect — silently observes the WRONG scope. A
19
+ * restore-bug of that shape is impossible by construction here:
20
+ * `enterLoopRow`/`enterCallback` never mutate `this`, they return a NEW
21
+ * `BindingScope` whose parent is untouched, so holding an old reference
22
+ * always sees the scope as it was, and there is no delete step to forget.
23
+ *
24
+ * Filter/sort callback params (`.filter(x => ...)`, `.sort((a, b) => ...)`,
25
+ * a nested arrow) are bound as `'callback'` frames via `enterCallback` —
26
+ * never folded into a `'loop-row'` frame's bindings. They are a distinct
27
+ * scope-introduction shape (an inner function's own parameter list, not a
28
+ * row's item/index/destructure/preamble names) even though both end up
29
+ * "just names you can't resolve against component-level state."
30
+ */
31
+ /**
32
+ * How a name inside a `ScopeFrame` came to be bound — the row shapes
33
+ * (`'item'`/`'index'`/`'destructure'`/`'preamble'`) for `'loop-row'` frames,
34
+ * `'param'` for `'callback'` frames. One shared type because both frame
35
+ * kinds carry the same binding metadata.
36
+ */
37
+ export type ScopeBindingSource = 'item' | 'index' | 'destructure' | 'preamble' | 'param';
38
+ export interface ScopeBinding {
39
+ readonly source: ScopeBindingSource;
40
+ }
41
+ export interface ScopeFrame {
42
+ readonly kind: 'loop-row' | 'callback';
43
+ readonly bindings: ReadonlyMap<string, ScopeBinding>;
44
+ }
45
+ /**
46
+ * Structural pick satisfied by BOTH `IRLoop` (`packages/jsx/src/types.ts`)
47
+ * and the client-JS `LoopCore` family (`packages/jsx/src/ir-to-client-js/types.ts`)
48
+ * without importing either — this module stays dependency-free and cannot
49
+ * form an import cycle with `types.ts` / `ir-to-client-js`.
50
+ */
51
+ export interface LoopBindingSource {
52
+ readonly param: string;
53
+ readonly index?: string | null;
54
+ readonly paramBindings?: readonly {
55
+ readonly name: string;
56
+ }[];
57
+ readonly preamble?: {
58
+ readonly declaredNames: readonly string[];
59
+ } | null;
60
+ }
61
+ /**
62
+ * A stack of `ScopeFrame`s, innermost frame at index 0 of the internal
63
+ * array (i.e. `frames[0]` is what `enterLoopRow`/`enterCallback` most
64
+ * recently pushed). `lookup`'s `depth` counts from `frames[0]`, so depth 0
65
+ * always means "the innermost frame," independent of how many ancestor
66
+ * frames exist.
67
+ */
68
+ export declare class BindingScope {
69
+ private readonly frames;
70
+ static readonly EMPTY: BindingScope;
71
+ private constructor();
72
+ /**
73
+ * Child scope with a new `'loop-row'` frame for one loop's per-item
74
+ * bindings. Parent (`this`) is not mutated; the returned scope is a
75
+ * NEW object with `frames = [newFrame, ...this.frames]`.
76
+ *
77
+ * Binding semantics mirror `jsx-to-ir.ts`'s `ctx.loopParams` add site
78
+ * EXACTLY (verified against lines ~4320-4345 and the matching delete
79
+ * site ~4695-4710 of `packages/jsx/src/jsx-to-ir.ts`):
80
+ *
81
+ * - When `loop.paramBindings` is non-empty (a destructured callback
82
+ * param, e.g. `.map(({ id, name }) => ...)`), each `paramBindings[i].name`
83
+ * is bound with source `'destructure'` and the raw `param` text
84
+ * (which for a destructured callback holds the ORIGINAL pattern
85
+ * source, e.g. `"{ id, name }"`, not a usable identifier) is NOT
86
+ * bound. This matches `jsx-to-ir.ts`:
87
+ * `if (paramBindings) { for (const b of paramBindings) ctx.loopParams.add(b.name) }`
88
+ * — the `else` branch (`ctx.loopParams.add(param)`) is skipped
89
+ * entirely when `paramBindings` is present.
90
+ * - Otherwise (a plain identifier param, e.g. `.map(item => ...)`),
91
+ * `param` itself is bound with source `'item'`.
92
+ * - `index` (the second callback param, e.g. `.map((item, i) => ...)`)
93
+ * is bound with source `'index'` when non-null/non-undefined.
94
+ * - Every name in `preamble.declaredNames` (a `.map()` callback's
95
+ * pre-return `const`/`let`/`function` locals, #2447) is bound with
96
+ * source `'preamble'`.
97
+ *
98
+ * NOTE on a sibling mechanism this method does NOT mirror:
99
+ * `adapters/loop-bound-names.ts`'s `collectLoopBoundNames` adds BOTH
100
+ * `node.param` AND every `paramBindings[i].name` unconditionally
101
+ * (never skipping `param` in the destructured case) — a deliberately
102
+ * coarser, over-inclusive collection used only to subtract names from
103
+ * a flat string-typing Set (safe to over-exclude there). This method
104
+ * follows the precise `jsx-to-ir.ts` `ctx.loopParams` semantics, since
105
+ * that is the mechanism actually doing scope-shadowed name RESOLUTION
106
+ * (the behavior `BindingScope` replaces), not coarse exclusion.
107
+ */
108
+ enterLoopRow(loop: LoopBindingSource): BindingScope;
109
+ /**
110
+ * Child scope with a new `'callback'` frame binding `params` (a filter
111
+ * predicate's `x`, a sort comparator's `(a, b)`, or a nested arrow's
112
+ * parameter list) with source `'param'`. Parent is not mutated.
113
+ */
114
+ enterCallback(params: readonly string[]): BindingScope;
115
+ /** Innermost-first membership check across every frame in the stack. */
116
+ isBound(name: string): boolean;
117
+ /**
118
+ * Resolves `name` against the frame stack innermost-first. `depth 0`
119
+ * means the innermost (most recently entered) frame; `null` when `name`
120
+ * is not bound in any frame.
121
+ */
122
+ lookup(name: string): {
123
+ readonly depth: number;
124
+ readonly frame: ScopeFrame;
125
+ readonly binding: ScopeBinding;
126
+ } | null;
127
+ /**
128
+ * Union of every frame's bound names (every `ScopeBindingSource`), for
129
+ * migration interop with legacy `Set<string>`-shaped consumers (e.g.
130
+ * `collectLoopBoundNames`'s return type) as later stages migrate them
131
+ * onto `BindingScope`.
132
+ *
133
+ * This is the SHADOW-GUARD query — see {@link valueBoundNames} for the
134
+ * other consumer class and why the two must not be conflated.
135
+ */
136
+ boundNames(): ReadonlySet<string>;
137
+ private boundNamesCache;
138
+ private valueBoundNamesCache;
139
+ /**
140
+ * Union of names bound via `'item'`/`'index'`/`'destructure'` sources
141
+ * only — the loop row's own per-item identity — excluding `'preamble'`
142
+ * (a `.map()` callback's pre-return `const`/`let`/`function` locals,
143
+ * #2447) and `'param'` (an `enterCallback` frame's filter/sort/nested-
144
+ * arrow parameters).
145
+ *
146
+ * `BindingScope` has exactly two consumer classes, and conflating them
147
+ * is the #2482 Stage 1a Commit 2 regression this split exists to
148
+ * prevent (a `ctx.scope`-wide preamble merge flipped `tag-cloud` and
149
+ * `preamble-cells` conformance fixtures before this method existed):
150
+ *
151
+ * - SHADOW GUARDS (`tryResolveTemplateSpanFromConst`,
152
+ * `tryResolveIdentifierAsTemplateLiteral`, `rewriteBarePropRefs`
153
+ * in `jsx-to-ir.ts`) ask "is this name resolved to SOMETHING in
154
+ * this scope, so an outer const/prop of the same name must not be
155
+ * substituted here at this transform position" — every source
156
+ * qualifies, including a preamble local shadowing a module const.
157
+ * These call `isBound` / `boundNames()`.
158
+ * - REACTIVITY / SLOT-ID CLASSIFIERS (`referencesLoopParam`,
159
+ * `hasReactiveAttributes`, and the `BindingEnvironment.loopParams`
160
+ * feed built from `makeBindingEnv`, all in `jsx-to-ir.ts`) ask
161
+ * "does this expression read a value that changes per row and so
162
+ * needs its own patchable slot" — a preamble local already gets
163
+ * ITS OWN dedicated slot/region-patch machinery
164
+ * (`preambleRegions` / `markPreambleAttrSlots`, #2447), so folding
165
+ * it into this classification double-counts it. Worse: widening a
166
+ * text child's `reactive` flag this way is read by
167
+ * `hasDynamicContent` to decide whether the loop ROW's own root
168
+ * element needs a slot — an unrelated, narrower decision that must
169
+ * not move just because a preamble local is now scope-visible.
170
+ * These call `valueBoundNames()`.
171
+ */
172
+ valueBoundNames(): ReadonlySet<string>;
173
+ /**
174
+ * Drop-in for `resolveStaticLoopSource`'s `opts.isNameShadowed`
175
+ * (`packages/jsx/src/static-literal.ts:112-128`).
176
+ */
177
+ asShadowPredicate(): (name: string) => boolean;
178
+ }
179
+ //# sourceMappingURL=binding-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-scope.d.ts","sourceRoot":"","sources":["../../src/scope/binding-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,CAAA;AAExF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAA;IACtC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CACrD;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAA;CACzE;AAED;;;;;;GAMG;AACH,qBAAa,YAAY;IAGH,OAAO,CAAC,QAAQ,CAAC,MAAM;IAF3C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAuB;IAE1D,OAAO,eAA+D;IAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,YAAY,CAAC,IAAI,EAAE,iBAAiB,GAAG,YAAY,CAYlD;IAED;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,CAKrD;IAED,wEAAwE;IACxE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAK7B;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;KAAE,GAAG,IAAI,CAOlH;IAED;;;;;;;;OAQG;IACH,UAAU,IAAI,WAAW,CAAC,MAAM,CAAC,CAQhC;IAMD,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,oBAAoB,CAAiC;IAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,eAAe,IAAI,WAAW,CAAC,MAAM,CAAC,CAYrC;IAED;;;OAGG;IACH,iBAAiB,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAE7C;CACF"}
package/dist/types.d.ts CHANGED
@@ -1652,6 +1652,14 @@ export interface ConstantInfo {
1652
1652
  parsed?: ParsedExpr;
1653
1653
  /** Value with TypeScript type annotations preserved, for .tsx output */
1654
1654
  typedValue?: string;
1655
+ /**
1656
+ * The declaration's explicit type annotation, verbatim from source
1657
+ * (`node.type.getText()`), when the author wrote one. Distinct from
1658
+ * `type`, which is also populated by inference from the initializer —
1659
+ * emitters must only print THIS field, never an inferred type, onto a
1660
+ * declaration (#2589).
1661
+ */
1662
+ typeAnnotation?: string;
1655
1663
  valueBranches?: string[];
1656
1664
  declarationKind: 'const' | 'let';
1657
1665
  isExported?: boolean;