@vue/compiler-sfc 3.2.43 → 3.2.45

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.
@@ -4428,7 +4428,27 @@ function compileScript(sfc, options) {
4428
4428
  allBindings[key] = true;
4429
4429
  }
4430
4430
  }
4431
- returned = `{ ${Object.keys(allBindings).join(', ')} }`;
4431
+ returned = `{ `;
4432
+ for (const key in allBindings) {
4433
+ if (allBindings[key] === true &&
4434
+ userImports[key].source !== 'vue' &&
4435
+ !userImports[key].source.endsWith('.vue')) {
4436
+ // generate getter for import bindings
4437
+ // skip vue imports since we know they will never change
4438
+ returned += `get ${key}() { return ${key} }, `;
4439
+ }
4440
+ else if (bindingMetadata[key] === "setup-let" /* BindingTypes.SETUP_LET */) {
4441
+ // local let binding, also add setter
4442
+ const setArg = key === 'v' ? `_v` : `v`;
4443
+ returned +=
4444
+ `get ${key}() { return ${key} }, ` +
4445
+ `set ${key}(${setArg}) { ${key} = ${setArg} }, `;
4446
+ }
4447
+ else {
4448
+ returned += `${key}, `;
4449
+ }
4450
+ }
4451
+ returned = returned.replace(/, $/, '') + ` }`;
4432
4452
  }
4433
4453
  else {
4434
4454
  // inline mode
@@ -518,15 +518,16 @@ const errorMessages = {
518
518
  [41 /* ErrorCodes.X_V_MODEL_NO_EXPRESSION */]: `v-model is missing expression.`,
519
519
  [42 /* ErrorCodes.X_V_MODEL_MALFORMED_EXPRESSION */]: `v-model value must be a valid JavaScript member expression.`,
520
520
  [43 /* ErrorCodes.X_V_MODEL_ON_SCOPE_VARIABLE */]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,
521
- [44 /* ErrorCodes.X_INVALID_EXPRESSION */]: `Error parsing JavaScript expression: `,
522
- [45 /* ErrorCodes.X_KEEP_ALIVE_INVALID_CHILDREN */]: `<KeepAlive> expects exactly one child component.`,
521
+ [44 /* ErrorCodes.X_V_MODEL_ON_PROPS */]: `v-model cannot be used on a prop, because local prop bindings are not writable.\nUse a v-bind binding combined with a v-on listener that emits update:x event instead.`,
522
+ [45 /* ErrorCodes.X_INVALID_EXPRESSION */]: `Error parsing JavaScript expression: `,
523
+ [46 /* ErrorCodes.X_KEEP_ALIVE_INVALID_CHILDREN */]: `<KeepAlive> expects exactly one child component.`,
523
524
  // generic errors
524
- [46 /* ErrorCodes.X_PREFIX_ID_NOT_SUPPORTED */]: `"prefixIdentifiers" option is not supported in this build of compiler.`,
525
- [47 /* ErrorCodes.X_MODULE_MODE_NOT_SUPPORTED */]: `ES module mode is not supported in this build of compiler.`,
526
- [48 /* ErrorCodes.X_CACHE_HANDLER_NOT_SUPPORTED */]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`,
527
- [49 /* ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED */]: `"scopeId" option is only supported in module mode.`,
525
+ [47 /* ErrorCodes.X_PREFIX_ID_NOT_SUPPORTED */]: `"prefixIdentifiers" option is not supported in this build of compiler.`,
526
+ [48 /* ErrorCodes.X_MODULE_MODE_NOT_SUPPORTED */]: `ES module mode is not supported in this build of compiler.`,
527
+ [49 /* ErrorCodes.X_CACHE_HANDLER_NOT_SUPPORTED */]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`,
528
+ [50 /* ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED */]: `"scopeId" option is only supported in module mode.`,
528
529
  // just to fulfill types
529
- [50 /* ErrorCodes.__EXTEND_POINT__ */]: ``
530
+ [51 /* ErrorCodes.__EXTEND_POINT__ */]: ``
530
531
  };
531
532
 
532
533
  const FRAGMENT = Symbol(`Fragment` );
@@ -22421,7 +22422,7 @@ asRawStatements = false, localVars = Object.create(context.identifiers)) {
22421
22422
  }).program;
22422
22423
  }
22423
22424
  catch (e) {
22424
- context.onError(createCompilerError(44 /* ErrorCodes.X_INVALID_EXPRESSION */, node.loc, undefined, e.message));
22425
+ context.onError(createCompilerError(45 /* ErrorCodes.X_INVALID_EXPRESSION */, node.loc, undefined, e.message));
22425
22426
  return node;
22426
22427
  }
22427
22428
  const ids = [];
@@ -23314,7 +23315,7 @@ const transformElement = (node, context) => {
23314
23315
  // 2. Force keep-alive to always be updated, since it uses raw children.
23315
23316
  patchFlag |= 1024 /* PatchFlags.DYNAMIC_SLOTS */;
23316
23317
  if (node.children.length > 1) {
23317
- context.onError(createCompilerError(45 /* ErrorCodes.X_KEEP_ALIVE_INVALID_CHILDREN */, {
23318
+ context.onError(createCompilerError(46 /* ErrorCodes.X_KEEP_ALIVE_INVALID_CHILDREN */, {
23318
23319
  start: node.children[0].loc.start,
23319
23320
  end: node.children[node.children.length - 1].loc.end,
23320
23321
  source: ''
@@ -24256,9 +24257,16 @@ const transformModel = (dir, node, context) => {
24256
24257
  // im SFC <script setup> inline mode, the exp may have been transformed into
24257
24258
  // _unref(exp)
24258
24259
  const bindingType = context.bindingMetadata[rawExp];
24260
+ // check props
24261
+ if (bindingType === "props" /* BindingTypes.PROPS */ ||
24262
+ bindingType === "props-aliased" /* BindingTypes.PROPS_ALIASED */) {
24263
+ context.onError(createCompilerError(44 /* ErrorCodes.X_V_MODEL_ON_PROPS */, exp.loc));
24264
+ return createTransformProps();
24265
+ }
24259
24266
  const maybeRef = context.inline &&
24260
- bindingType &&
24261
- bindingType !== "setup-const" /* BindingTypes.SETUP_CONST */;
24267
+ (bindingType === "setup-let" /* BindingTypes.SETUP_LET */ ||
24268
+ bindingType === "setup-ref" /* BindingTypes.SETUP_REF */ ||
24269
+ bindingType === "setup-maybe-ref" /* BindingTypes.SETUP_MAYBE_REF */);
24262
24270
  if (!expString.trim() ||
24263
24271
  (!isMemberExpression(expString, context) && !maybeRef)) {
24264
24272
  context.onError(createCompilerError(42 /* ErrorCodes.X_V_MODEL_MALFORMED_EXPRESSION */, exp.loc));
@@ -24397,10 +24405,10 @@ function baseCompile(template, options = {}) {
24397
24405
  const isModuleMode = options.mode === 'module';
24398
24406
  const prefixIdentifiers = (options.prefixIdentifiers === true || isModuleMode);
24399
24407
  if (!prefixIdentifiers && options.cacheHandlers) {
24400
- onError(createCompilerError(48 /* ErrorCodes.X_CACHE_HANDLER_NOT_SUPPORTED */));
24408
+ onError(createCompilerError(49 /* ErrorCodes.X_CACHE_HANDLER_NOT_SUPPORTED */));
24401
24409
  }
24402
24410
  if (options.scopeId && !isModuleMode) {
24403
- onError(createCompilerError(49 /* ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED */));
24411
+ onError(createCompilerError(50 /* ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED */));
24404
24412
  }
24405
24413
  const ast = isString(template) ? baseParse(template, options) : template;
24406
24414
  const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(prefixIdentifiers);
@@ -26904,26 +26912,26 @@ function createDOMCompilerError(code, loc) {
26904
26912
  return createCompilerError(code, loc, DOMErrorMessages );
26905
26913
  }
26906
26914
  const DOMErrorMessages = {
26907
- [50 /* DOMErrorCodes.X_V_HTML_NO_EXPRESSION */]: `v-html is missing expression.`,
26908
- [51 /* DOMErrorCodes.X_V_HTML_WITH_CHILDREN */]: `v-html will override element children.`,
26909
- [52 /* DOMErrorCodes.X_V_TEXT_NO_EXPRESSION */]: `v-text is missing expression.`,
26910
- [53 /* DOMErrorCodes.X_V_TEXT_WITH_CHILDREN */]: `v-text will override element children.`,
26911
- [54 /* DOMErrorCodes.X_V_MODEL_ON_INVALID_ELEMENT */]: `v-model can only be used on <input>, <textarea> and <select> elements.`,
26912
- [55 /* DOMErrorCodes.X_V_MODEL_ARG_ON_ELEMENT */]: `v-model argument is not supported on plain elements.`,
26913
- [56 /* DOMErrorCodes.X_V_MODEL_ON_FILE_INPUT_ELEMENT */]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`,
26914
- [57 /* DOMErrorCodes.X_V_MODEL_UNNECESSARY_VALUE */]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`,
26915
- [58 /* DOMErrorCodes.X_V_SHOW_NO_EXPRESSION */]: `v-show is missing expression.`,
26916
- [59 /* DOMErrorCodes.X_TRANSITION_INVALID_CHILDREN */]: `<Transition> expects exactly one child element or component.`,
26917
- [60 /* DOMErrorCodes.X_IGNORED_SIDE_EFFECT_TAG */]: `Tags with side effect (<script> and <style>) are ignored in client component templates.`
26915
+ [51 /* DOMErrorCodes.X_V_HTML_NO_EXPRESSION */]: `v-html is missing expression.`,
26916
+ [52 /* DOMErrorCodes.X_V_HTML_WITH_CHILDREN */]: `v-html will override element children.`,
26917
+ [53 /* DOMErrorCodes.X_V_TEXT_NO_EXPRESSION */]: `v-text is missing expression.`,
26918
+ [54 /* DOMErrorCodes.X_V_TEXT_WITH_CHILDREN */]: `v-text will override element children.`,
26919
+ [55 /* DOMErrorCodes.X_V_MODEL_ON_INVALID_ELEMENT */]: `v-model can only be used on <input>, <textarea> and <select> elements.`,
26920
+ [56 /* DOMErrorCodes.X_V_MODEL_ARG_ON_ELEMENT */]: `v-model argument is not supported on plain elements.`,
26921
+ [57 /* DOMErrorCodes.X_V_MODEL_ON_FILE_INPUT_ELEMENT */]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`,
26922
+ [58 /* DOMErrorCodes.X_V_MODEL_UNNECESSARY_VALUE */]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`,
26923
+ [59 /* DOMErrorCodes.X_V_SHOW_NO_EXPRESSION */]: `v-show is missing expression.`,
26924
+ [60 /* DOMErrorCodes.X_TRANSITION_INVALID_CHILDREN */]: `<Transition> expects exactly one child element or component.`,
26925
+ [61 /* DOMErrorCodes.X_IGNORED_SIDE_EFFECT_TAG */]: `Tags with side effect (<script> and <style>) are ignored in client component templates.`
26918
26926
  };
26919
26927
 
26920
26928
  const transformVHtml = (dir, node, context) => {
26921
26929
  const { exp, loc } = dir;
26922
26930
  if (!exp) {
26923
- context.onError(createDOMCompilerError(50 /* DOMErrorCodes.X_V_HTML_NO_EXPRESSION */, loc));
26931
+ context.onError(createDOMCompilerError(51 /* DOMErrorCodes.X_V_HTML_NO_EXPRESSION */, loc));
26924
26932
  }
26925
26933
  if (node.children.length) {
26926
- context.onError(createDOMCompilerError(51 /* DOMErrorCodes.X_V_HTML_WITH_CHILDREN */, loc));
26934
+ context.onError(createDOMCompilerError(52 /* DOMErrorCodes.X_V_HTML_WITH_CHILDREN */, loc));
26927
26935
  node.children.length = 0;
26928
26936
  }
26929
26937
  return {
@@ -26936,10 +26944,10 @@ const transformVHtml = (dir, node, context) => {
26936
26944
  const transformVText = (dir, node, context) => {
26937
26945
  const { exp, loc } = dir;
26938
26946
  if (!exp) {
26939
- context.onError(createDOMCompilerError(52 /* DOMErrorCodes.X_V_TEXT_NO_EXPRESSION */, loc));
26947
+ context.onError(createDOMCompilerError(53 /* DOMErrorCodes.X_V_TEXT_NO_EXPRESSION */, loc));
26940
26948
  }
26941
26949
  if (node.children.length) {
26942
- context.onError(createDOMCompilerError(53 /* DOMErrorCodes.X_V_TEXT_WITH_CHILDREN */, loc));
26950
+ context.onError(createDOMCompilerError(54 /* DOMErrorCodes.X_V_TEXT_WITH_CHILDREN */, loc));
26943
26951
  node.children.length = 0;
26944
26952
  }
26945
26953
  return {
@@ -26960,12 +26968,12 @@ const transformModel$1 = (dir, node, context) => {
26960
26968
  return baseResult;
26961
26969
  }
26962
26970
  if (dir.arg) {
26963
- context.onError(createDOMCompilerError(55 /* DOMErrorCodes.X_V_MODEL_ARG_ON_ELEMENT */, dir.arg.loc));
26971
+ context.onError(createDOMCompilerError(56 /* DOMErrorCodes.X_V_MODEL_ARG_ON_ELEMENT */, dir.arg.loc));
26964
26972
  }
26965
26973
  function checkDuplicatedValue() {
26966
26974
  const value = findProp(node, 'value');
26967
26975
  if (value) {
26968
- context.onError(createDOMCompilerError(57 /* DOMErrorCodes.X_V_MODEL_UNNECESSARY_VALUE */, value.loc));
26976
+ context.onError(createDOMCompilerError(58 /* DOMErrorCodes.X_V_MODEL_UNNECESSARY_VALUE */, value.loc));
26969
26977
  }
26970
26978
  }
26971
26979
  const { tag } = node;
@@ -26993,7 +27001,7 @@ const transformModel$1 = (dir, node, context) => {
26993
27001
  break;
26994
27002
  case 'file':
26995
27003
  isInvalidType = true;
26996
- context.onError(createDOMCompilerError(56 /* DOMErrorCodes.X_V_MODEL_ON_FILE_INPUT_ELEMENT */, dir.loc));
27004
+ context.onError(createDOMCompilerError(57 /* DOMErrorCodes.X_V_MODEL_ON_FILE_INPUT_ELEMENT */, dir.loc));
26997
27005
  break;
26998
27006
  default:
26999
27007
  // text type
@@ -27027,7 +27035,7 @@ const transformModel$1 = (dir, node, context) => {
27027
27035
  }
27028
27036
  }
27029
27037
  else {
27030
- context.onError(createDOMCompilerError(54 /* DOMErrorCodes.X_V_MODEL_ON_INVALID_ELEMENT */, dir.loc));
27038
+ context.onError(createDOMCompilerError(55 /* DOMErrorCodes.X_V_MODEL_ON_INVALID_ELEMENT */, dir.loc));
27031
27039
  }
27032
27040
  // native vmodel doesn't need the `modelValue` props since they are also
27033
27041
  // passed to the runtime as `binding.value`. removing it reduces code size.
@@ -27147,7 +27155,7 @@ const transformOn$1 = (dir, node, context) => {
27147
27155
  const transformShow = (dir, node, context) => {
27148
27156
  const { exp, loc } = dir;
27149
27157
  if (!exp) {
27150
- context.onError(createDOMCompilerError(58 /* DOMErrorCodes.X_V_SHOW_NO_EXPRESSION */, loc));
27158
+ context.onError(createDOMCompilerError(59 /* DOMErrorCodes.X_V_SHOW_NO_EXPRESSION */, loc));
27151
27159
  }
27152
27160
  return {
27153
27161
  props: [],
@@ -27166,7 +27174,7 @@ const transformTransition = (node, context) => {
27166
27174
  }
27167
27175
  // warn multiple transition children
27168
27176
  if (hasMultipleChildren(node)) {
27169
- context.onError(createDOMCompilerError(59 /* DOMErrorCodes.X_TRANSITION_INVALID_CHILDREN */, {
27177
+ context.onError(createDOMCompilerError(60 /* DOMErrorCodes.X_TRANSITION_INVALID_CHILDREN */, {
27170
27178
  start: node.children[0].loc.start,
27171
27179
  end: node.children[node.children.length - 1].loc.end,
27172
27180
  source: ''
@@ -27501,7 +27509,7 @@ const ignoreSideEffectTags = (node, context) => {
27501
27509
  if (node.type === 1 /* NodeTypes.ELEMENT */ &&
27502
27510
  node.tagType === 0 /* ElementTypes.ELEMENT */ &&
27503
27511
  (node.tag === 'script' || node.tag === 'style')) {
27504
- context.onError(createDOMCompilerError(60 /* DOMErrorCodes.X_IGNORED_SIDE_EFFECT_TAG */, node.loc));
27512
+ context.onError(createDOMCompilerError(61 /* DOMErrorCodes.X_IGNORED_SIDE_EFFECT_TAG */, node.loc));
27505
27513
  context.removeNode();
27506
27514
  }
27507
27515
  };
@@ -33608,16 +33616,16 @@ function createSSRCompilerError(code, loc) {
33608
33616
  return createCompilerError(code, loc, SSRErrorMessages);
33609
33617
  }
33610
33618
  const SSRErrorMessages = {
33611
- [61 /* SSRErrorCodes.X_SSR_UNSAFE_ATTR_NAME */]: `Unsafe attribute name for SSR.`,
33612
- [62 /* SSRErrorCodes.X_SSR_NO_TELEPORT_TARGET */]: `Missing the 'to' prop on teleport element.`,
33613
- [63 /* SSRErrorCodes.X_SSR_INVALID_AST_NODE */]: `Invalid AST node during SSR transform.`
33619
+ [62 /* SSRErrorCodes.X_SSR_UNSAFE_ATTR_NAME */]: `Unsafe attribute name for SSR.`,
33620
+ [63 /* SSRErrorCodes.X_SSR_NO_TELEPORT_TARGET */]: `Missing the 'to' prop on teleport element.`,
33621
+ [64 /* SSRErrorCodes.X_SSR_INVALID_AST_NODE */]: `Invalid AST node during SSR transform.`
33614
33622
  };
33615
33623
 
33616
33624
  // Note: this is a 2nd-pass codegen transform.
33617
33625
  function ssrProcessTeleport(node, context) {
33618
33626
  const targetProp = findProp(node, 'to');
33619
33627
  if (!targetProp) {
33620
- context.onError(createSSRCompilerError(62 /* SSRErrorCodes.X_SSR_NO_TELEPORT_TARGET */, node.loc));
33628
+ context.onError(createSSRCompilerError(63 /* SSRErrorCodes.X_SSR_NO_TELEPORT_TARGET */, node.loc));
33621
33629
  return;
33622
33630
  }
33623
33631
  let target;
@@ -33629,7 +33637,7 @@ function ssrProcessTeleport(node, context) {
33629
33637
  target = targetProp.exp;
33630
33638
  }
33631
33639
  if (!target) {
33632
- context.onError(createSSRCompilerError(62 /* SSRErrorCodes.X_SSR_NO_TELEPORT_TARGET */, targetProp.loc));
33640
+ context.onError(createSSRCompilerError(63 /* SSRErrorCodes.X_SSR_NO_TELEPORT_TARGET */, targetProp.loc));
33633
33641
  return;
33634
33642
  }
33635
33643
  const disabledProp = findProp(node, 'disabled', false, true /* allow empty */);
@@ -33838,7 +33846,7 @@ const ssrTransformElement = (node, context) => {
33838
33846
  ]));
33839
33847
  }
33840
33848
  else {
33841
- context.onError(createSSRCompilerError(61 /* SSRErrorCodes.X_SSR_UNSAFE_ATTR_NAME */, key.loc));
33849
+ context.onError(createSSRCompilerError(62 /* SSRErrorCodes.X_SSR_UNSAFE_ATTR_NAME */, key.loc));
33842
33850
  }
33843
33851
  }
33844
33852
  }
@@ -34364,7 +34372,7 @@ function processChildren(parent, context, asFragment = false, disableNestedFragm
34364
34372
  // TODO
34365
34373
  break;
34366
34374
  default:
34367
- context.onError(createSSRCompilerError(63 /* SSRErrorCodes.X_SSR_INVALID_AST_NODE */, child.loc));
34375
+ context.onError(createSSRCompilerError(64 /* SSRErrorCodes.X_SSR_INVALID_AST_NODE */, child.loc));
34368
34376
  // make sure we exhaust all possible types
34369
34377
  const exhaustiveCheck = child;
34370
34378
  return exhaustiveCheck;
@@ -34396,7 +34404,7 @@ function processChildren(parent, context, asFragment = false, disableNestedFragm
34396
34404
  // `transformText` is not used during SSR compile.
34397
34405
  break;
34398
34406
  default:
34399
- context.onError(createSSRCompilerError(63 /* SSRErrorCodes.X_SSR_INVALID_AST_NODE */, child.loc));
34407
+ context.onError(createSSRCompilerError(64 /* SSRErrorCodes.X_SSR_INVALID_AST_NODE */, child.loc));
34400
34408
  // make sure we exhaust all possible types
34401
34409
  const exhaustiveCheck = child;
34402
34410
  return exhaustiveCheck;
@@ -34417,7 +34425,7 @@ const ssrTransformModel = (dir, node, context) => {
34417
34425
  function checkDuplicatedValue() {
34418
34426
  const value = findProp(node, 'value');
34419
34427
  if (value) {
34420
- context.onError(createDOMCompilerError(57 /* DOMErrorCodes.X_V_MODEL_UNNECESSARY_VALUE */, value.loc));
34428
+ context.onError(createDOMCompilerError(58 /* DOMErrorCodes.X_V_MODEL_UNNECESSARY_VALUE */, value.loc));
34421
34429
  }
34422
34430
  }
34423
34431
  if (node.tagType === 0 /* ElementTypes.ELEMENT */) {
@@ -34474,7 +34482,7 @@ const ssrTransformModel = (dir, node, context) => {
34474
34482
  }
34475
34483
  break;
34476
34484
  case 'file':
34477
- context.onError(createDOMCompilerError(56 /* DOMErrorCodes.X_V_MODEL_ON_FILE_INPUT_ELEMENT */, dir.loc));
34485
+ context.onError(createDOMCompilerError(57 /* DOMErrorCodes.X_V_MODEL_ON_FILE_INPUT_ELEMENT */, dir.loc));
34478
34486
  break;
34479
34487
  default:
34480
34488
  checkDuplicatedValue();
@@ -34496,7 +34504,7 @@ const ssrTransformModel = (dir, node, context) => {
34496
34504
  }
34497
34505
  else if (node.tag === 'select') ;
34498
34506
  else {
34499
- context.onError(createDOMCompilerError(54 /* DOMErrorCodes.X_V_MODEL_ON_INVALID_ELEMENT */, dir.loc));
34507
+ context.onError(createDOMCompilerError(55 /* DOMErrorCodes.X_V_MODEL_ON_INVALID_ELEMENT */, dir.loc));
34500
34508
  }
34501
34509
  return res;
34502
34510
  }
@@ -34516,7 +34524,7 @@ function findValueBinding(node) {
34516
34524
 
34517
34525
  const ssrTransformShow = (dir, node, context) => {
34518
34526
  if (!dir.exp) {
34519
- context.onError(createDOMCompilerError(58 /* DOMErrorCodes.X_V_SHOW_NO_EXPRESSION */));
34527
+ context.onError(createDOMCompilerError(59 /* DOMErrorCodes.X_V_SHOW_NO_EXPRESSION */));
34520
34528
  }
34521
34529
  return {
34522
34530
  props: [
@@ -36533,7 +36541,27 @@ function compileScript(sfc, options) {
36533
36541
  allBindings[key] = true;
36534
36542
  }
36535
36543
  }
36536
- returned = `{ ${Object.keys(allBindings).join(', ')} }`;
36544
+ returned = `{ `;
36545
+ for (const key in allBindings) {
36546
+ if (allBindings[key] === true &&
36547
+ userImports[key].source !== 'vue' &&
36548
+ !userImports[key].source.endsWith('.vue')) {
36549
+ // generate getter for import bindings
36550
+ // skip vue imports since we know they will never change
36551
+ returned += `get ${key}() { return ${key} }, `;
36552
+ }
36553
+ else if (bindingMetadata[key] === "setup-let" /* BindingTypes.SETUP_LET */) {
36554
+ // local let binding, also add setter
36555
+ const setArg = key === 'v' ? `_v` : `v`;
36556
+ returned +=
36557
+ `get ${key}() { return ${key} }, ` +
36558
+ `set ${key}(${setArg}) { ${key} = ${setArg} }, `;
36559
+ }
36560
+ else {
36561
+ returned += `${key}, `;
36562
+ }
36563
+ }
36564
+ returned = returned.replace(/, $/, '') + ` }`;
36537
36565
  }
36538
36566
  else {
36539
36567
  // inline mode
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue/compiler-sfc",
3
- "version": "3.2.43",
3
+ "version": "3.2.45",
4
4
  "description": "@vue/compiler-sfc",
5
5
  "main": "dist/compiler-sfc.cjs.js",
6
6
  "module": "dist/compiler-sfc.esm-browser.js",
@@ -33,11 +33,11 @@
33
33
  "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-sfc#readme",
34
34
  "dependencies": {
35
35
  "@babel/parser": "^7.16.4",
36
- "@vue/compiler-core": "3.2.43",
37
- "@vue/compiler-dom": "3.2.43",
38
- "@vue/compiler-ssr": "3.2.43",
39
- "@vue/reactivity-transform": "3.2.43",
40
- "@vue/shared": "3.2.43",
36
+ "@vue/compiler-core": "3.2.45",
37
+ "@vue/compiler-dom": "3.2.45",
38
+ "@vue/compiler-ssr": "3.2.45",
39
+ "@vue/reactivity-transform": "3.2.45",
40
+ "@vue/shared": "3.2.45",
41
41
  "estree-walker": "^2.0.2",
42
42
  "magic-string": "^0.25.7",
43
43
  "source-map": "^0.6.1",