n8n-editor-ui 1.60.1 → 1.61.0

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 (121) hide show
  1. package/dist/assets/@n8n/api-types-1C3yIoBV.js +1 -0
  2. package/dist/assets/@sentry/vue-UFuYeDxK.js +23662 -0
  3. package/dist/assets/@vue-flow/{background-BBsDO5na.js → background-VFdKMN89.js} +2 -2
  4. package/dist/assets/@vue-flow/{controls-3RHEV3L7.js → controls-ByUYVWad.js} +2 -2
  5. package/dist/assets/@vue-flow/{core-CM-Aqnx_.js → core-DgOSPOHv.js} +1 -1
  6. package/dist/assets/@vue-flow/{minimap-CbqX0yYi.js → minimap-CXuyA5pl.js} +2 -2
  7. package/dist/assets/@vue-flow/{node-resizer-CV5M1itj.js → node-resizer-BiyXe9J3.js} +2 -2
  8. package/dist/assets/@vueuse/{core-BZR8MlRU.js → core-DP7mNILw.js} +6 -6
  9. package/dist/assets/{AnnotationTagsDropdown-C6L10zAt.js → AnnotationTagsDropdown-DqvseWwg.js} +3 -3
  10. package/dist/assets/AuthView-BLQKeVDa.js +157 -0
  11. package/dist/assets/{AuthView-CFsZVOHy.css → AuthView-BnHKMYu_.css} +3 -3
  12. package/dist/assets/{CanvasControls-DhP5_ZaG.js → CanvasControls-ColeN4c7.js} +12 -11
  13. package/dist/assets/ChangePasswordView-laaON5B-.js +177 -0
  14. package/dist/assets/{CredentialsView-zPqWzrJZ.js → CredentialsView-RsHO-hid.js} +15 -14
  15. package/dist/assets/{ErrorView-C7_LED8T.js → ErrorView-CVlhihDL.js} +12 -11
  16. package/dist/assets/{ExecutionsFilter-CaMUarba.js → ExecutionsFilter-373wd0v7.js} +4 -4
  17. package/dist/assets/{ExecutionsView-D-faxzDF.js → ExecutionsView-B1Y-qi0D.js} +41 -16
  18. package/dist/assets/{FixedCollectionParameter-BOqBR9JK.js → FixedCollectionParameter-D9g5OebO.js} +12 -11
  19. package/dist/assets/ForgotMyPasswordView-BWtMCTvE.js +127 -0
  20. package/dist/assets/{MainHeader-D5QtvVVm.js → MainHeader-D9Zo0BIA.js} +19 -18
  21. package/dist/assets/{MainSidebar-CVXe55j5.js → MainSidebar-DtqGWmgj.js} +12 -11
  22. package/dist/assets/{NodeCreation-CM9wiEKu.js → NodeCreation-Z5Kx0dXZ.js} +6 -6
  23. package/dist/assets/{NodeCreator-DRzlClIY.js → NodeCreator-Cwd8lDNF.js} +27 -26
  24. package/dist/assets/{NodeViewSwitcher-9b7PTcw5.css → NodeViewSwitcher-Bee93VCg.css} +42 -42
  25. package/dist/assets/{NodeViewSwitcher-BWkrDbac.js → NodeViewSwitcher-DZvKqdTk.js} +147 -71
  26. package/dist/assets/{ProjectCardBadge-BoGz9diL.js → ProjectCardBadge-Dj0cvfM0.js} +2 -2
  27. package/dist/assets/{ProjectSettings-B7iqwGnI.js → ProjectSettings-zPM6vepm.js} +12 -11
  28. package/dist/assets/{ProjectTabs-Cvrg52Pf.js → ProjectTabs-ByCqXofn.js} +3 -3
  29. package/dist/assets/{PushConnectionTracker-DOnROXP4.js → PushConnectionTracker-B4vL4y_R.js} +4 -4
  30. package/dist/assets/{ResourcesListLayout-BF42RJP6.js → ResourcesListLayout-D5Jl-SNJ.js} +4 -4
  31. package/dist/assets/{RunDataAi-BBCJLEbr.js → RunDataAi-50EsjDf6.js} +3 -3
  32. package/dist/assets/RunDataJson-BlxN0xwc.js +219 -0
  33. package/dist/assets/{RunDataJson-DGge2zsB.css → RunDataJson-Dtc8i0I7.css} +12 -10
  34. package/dist/assets/{RunDataJsonActions-r9WehaXR.js → RunDataJsonActions-BnEGvH1N.js} +13 -12
  35. package/dist/assets/{RunDataSearch-DEZgbY-N.js → RunDataSearch-DS3pvMvG.js} +12 -11
  36. package/dist/assets/{RunDataTable-D3OOm7ll.js → RunDataTable-C7ykxdts.js} +17 -16
  37. package/dist/assets/{SamlOnboarding-CkD-eWMm.js → SamlOnboarding-MqtO_Q7o.js} +24 -20
  38. package/dist/assets/{SettingsApiView-D3BTk9vw.js → SettingsApiView-CItYnGov.js} +12 -11
  39. package/dist/assets/{SettingsCommunityNodesView-q-tCQNcW.js → SettingsCommunityNodesView-DZNQSYYy.js} +17 -41
  40. package/dist/assets/{SettingsExternalSecrets-4GeXTRK_.js → SettingsExternalSecrets-BVw27tqX.js} +12 -11
  41. package/dist/assets/{SettingsFakeDoorView-D27PjwUb.js → SettingsFakeDoorView-DwImvIGm.js} +12 -11
  42. package/dist/assets/SettingsLdapView-CCXZA2cJ.js +746 -0
  43. package/dist/assets/{SettingsLogStreamingView-CNoL-zt6.js → SettingsLogStreamingView-CyrM8m6J.js} +12 -11
  44. package/dist/assets/{SettingsPersonalView-FC1RJZD3.js → SettingsPersonalView-MdnL1_ii.js} +12 -11
  45. package/dist/assets/{SettingsSourceControl-_HOgFrui.js → SettingsSourceControl-DCY2PqLz.js} +12 -11
  46. package/dist/assets/{SettingsSso-C-eicXLy.js → SettingsSso-B8p13jLP.js} +12 -11
  47. package/dist/assets/{SettingsUsageAndPlan-PX3ezziV.js → SettingsUsageAndPlan-BN31-STz.js} +17 -33
  48. package/dist/assets/{SettingsUsageAndPlan-9dhwk2eO.css → SettingsUsageAndPlan-ayybRhnz.css} +3 -3
  49. package/dist/assets/{SettingsUsersView-CSHs7EOy.js → SettingsUsersView-BMsD7GNO.js} +12 -11
  50. package/dist/assets/SettingsView-CtXcNiVg.js +276 -0
  51. package/dist/assets/SetupView-BLuVCwIj.js +140 -0
  52. package/dist/assets/{SetupWorkflowCredentialsButton-DDUqVzq4.js → SetupWorkflowCredentialsButton-Div5SUON.js} +11 -10
  53. package/dist/assets/{SetupWorkflowFromTemplateView-BOzz1mg-.js → SetupWorkflowFromTemplateView-DfFXky0J.js} +14 -13
  54. package/dist/assets/{SigninView-CBZFW33H.js → SigninView-BqL0a-cZ.js} +121 -133
  55. package/dist/assets/{SignoutView-CsZY5epQ.js → SignoutView-D01-eFg_.js} +11 -10
  56. package/dist/assets/{SignupView-BMZ58KZV.js → SignupView-UX8-7Wvn.js} +12 -11
  57. package/dist/assets/{TemplateDetails-yCPWrFJ_.js → TemplateDetails-DvrkJ9pc.js} +4 -4
  58. package/dist/assets/{TemplateList-D6SkLaGz.js → TemplateList-Dxye-Lxs.js} +3 -3
  59. package/dist/assets/TemplatesCollectionView-kKvnA0FM.js +240 -0
  60. package/dist/assets/{TemplatesSearchView-Vf3xXYJ5.js → TemplatesSearchView-sUgBNVnh.js} +139 -158
  61. package/dist/assets/{TemplatesView-1ta2NOlv.js → TemplatesView-CCcE6ceG.js} +3 -3
  62. package/dist/assets/TemplatesWorkflowView-CQWB7PN1.js +245 -0
  63. package/dist/assets/{VariablesView-DoD7bryP.js → VariablesView-BFvSr6vu.js} +15 -14
  64. package/dist/assets/{VariablesView-Bj3MOQeD.css → VariablesView-D88cddoZ.css} +18 -18
  65. package/dist/assets/{WorkerView-DBAJ7wby.js → WorkerView-BpwPXZ6o.js} +16 -15
  66. package/dist/assets/{WorkflowActivator-CEAGoTVp.js → WorkflowActivator-C98Z6FLJ.js} +4 -4
  67. package/dist/assets/{WorkflowExecutionsInfoAccordion-Cm1Tl7oM.js → WorkflowExecutionsInfoAccordion-DVXqECJb.js} +3 -3
  68. package/dist/assets/{WorkflowExecutionsLandingPage-DNYtElvS.js → WorkflowExecutionsLandingPage-DXDsNOih.js} +13 -12
  69. package/dist/assets/{WorkflowExecutionsPreview-D6jklpDe.js → WorkflowExecutionsPreview-6-8MfOm9.js} +27 -16
  70. package/dist/assets/{WorkflowExecutionsView-Bfiz_05B.js → WorkflowExecutionsView-D4lW8BoL.js} +16 -15
  71. package/dist/assets/{WorkflowHistory-B6J45Y57.js → WorkflowHistory-Bvx0HbCZ.js} +14 -13
  72. package/dist/assets/{WorkflowOnboardingView-sLbtLj5U.js → WorkflowOnboardingView-otfpn0DB.js} +11 -10
  73. package/dist/assets/{WorkflowPreview-C2PJW2WU.js → WorkflowPreview-DdyMz4mx.js} +3 -3
  74. package/dist/assets/{WorkflowsView-B3hH8n6V.js → WorkflowsView-BUbDrUpG.js} +17 -16
  75. package/dist/assets/{cloud-D5p2bTjc.js → cloud-Cxh_nDLb.js} +11 -10
  76. package/dist/assets/{dateFormatter-BQycHW-g.js → dateFormatter-BFLNShbl.js} +1 -1
  77. package/dist/assets/{dateformat-DYMw-0LU.js → dateformat-DfmxUC-6.js} +1 -1
  78. package/dist/assets/email-providers-DOaL31jY.js +1 -0
  79. package/dist/assets/{fast-json-stable-stringify-dgHKYgJi.js → fast-json-stable-stringify-DDe8InQN.js} +1 -1
  80. package/dist/assets/{file-saver-taM_eo9L.js → file-saver-DU9Y2h5E.js} +1 -1
  81. package/dist/assets/highlight.js-DOaL31jY.js +1 -0
  82. package/dist/assets/{humanize-duration-DLMU-N1g.js → humanize-duration-BS9LxAIm.js} +1 -1
  83. package/dist/assets/{index-DAAQrhEE.js → index-BK9gQqb6.js} +9034 -8999
  84. package/dist/assets/{index-CDdd6K0Q.css → index-CUw3_ZiY.css} +216 -138
  85. package/dist/assets/{jsonpath-B2TgTZLp.js → jsonpath-DbhX-MUF.js} +1 -1
  86. package/dist/assets/{n8n-DS_nZ0wb.js → n8n-DLOq6Kd-.js} +3306 -3377
  87. package/dist/assets/{n8n-CZShcbZx.css → n8n-wnQsH82d.css} +60 -60
  88. package/dist/assets/{pinia-C4PgcsWV.js → pinia-CH9HlKCh.js} +155 -8
  89. package/dist/assets/{prettier-_aQB57xD.js → prettier-DuWRKCwA.js} +1115 -1052
  90. package/dist/assets/{pushConnection.store-CGzscDgD.js → pushConnection.store-0ae9n5RY.js} +3 -3
  91. package/dist/assets/{qrcode.vue-EmD3D6Vb.js → qrcode.vue-BxNS_c3b.js} +1 -1
  92. package/dist/assets/{templateActions-CR50SItO.js → templateActions-DWDf_J_7.js} +1 -1
  93. package/dist/assets/{useBeforeUnload-BtEtqBA0.js → useBeforeUnload-Bu28h_Oh.js} +2 -2
  94. package/dist/assets/{useExecutionDebugging-DdfabEne.js → useExecutionDebugging-Ij7ccVln.js} +2 -2
  95. package/dist/assets/{usePushConnection-Bs4EtQYE.js → usePushConnection-C5cJk_Eh.js} +5 -5
  96. package/dist/assets/{useUserHelpers-5Z9lMhqT.js → useUserHelpers-Dec8q_5J.js} +1 -1
  97. package/dist/assets/{useWorkflowActivate-BvN97i1i.js → useWorkflowActivate-DhxP8t5T.js} +2 -2
  98. package/dist/assets/{v3-infinite-loading-BDSwUlAm.js → v3-infinite-loading-lAZO0HDs.js} +1 -1
  99. package/dist/assets/{vendor-DCtS1fjk.js → vendor-DCeaNtb_.js} +212 -133
  100. package/dist/assets/{vue-agile-Dr5uE4S4.js → vue-agile-B6SWje8b.js} +2 -2
  101. package/dist/assets/{vue-chartjs-ytwxJ63I.js → vue-chartjs-CAJPqBur.js} +1 -1
  102. package/dist/assets/{vue-i18n-DBLN2Rh9.js → vue-i18n-CVQE9o3c.js} +1 -1
  103. package/dist/assets/{vue-json-pretty-DbJSbzQx.js → vue-json-pretty-DyN9p2di.js} +2 -2
  104. package/dist/assets/xss-DOaL31jY.js +1 -0
  105. package/dist/index.html +35 -33
  106. package/index.html +1 -0
  107. package/package.json +1 -1
  108. package/vite.config.mts +3 -3
  109. package/dist/assets/@n8n/api-types-l0sNRNKZ.js +0 -1
  110. package/dist/assets/AuthView-C4BGHvOD.js +0 -170
  111. package/dist/assets/ChangePasswordView-DAER_rhe.js +0 -184
  112. package/dist/assets/ForgotMyPasswordView-DnB1YoK7.js +0 -133
  113. package/dist/assets/RunDataJson-Cxnl7zBS.js +0 -260
  114. package/dist/assets/SettingsLdapView-D1c597gY.js +0 -769
  115. package/dist/assets/SettingsView-B_m4_yr-.js +0 -312
  116. package/dist/assets/SetupView-B_DKgHYt.js +0 -148
  117. package/dist/assets/TemplatesCollectionView-CGWvieer.js +0 -253
  118. package/dist/assets/TemplatesWorkflowView-CxnRbF7x.js +0 -255
  119. package/dist/assets/email-providers-NhjWeVZA.js +0 -1
  120. package/dist/assets/highlight.js-NhjWeVZA.js +0 -1
  121. package/dist/assets/xss-NhjWeVZA.js +0 -1
@@ -1951,7 +1951,7 @@ function nextTick(fn) {
1951
1951
  const p2 = currentFlushPromise || resolvedPromise;
1952
1952
  return fn ? p2.then(this ? fn.bind(this) : fn) : p2;
1953
1953
  }
1954
- function findInsertionIndex(id) {
1954
+ function findInsertionIndex$1(id) {
1955
1955
  let start = flushIndex + 1;
1956
1956
  let end = queue.length;
1957
1957
  while (start < end) {
@@ -1974,7 +1974,7 @@ function queueJob(job) {
1974
1974
  if (job.id == null) {
1975
1975
  queue.push(job);
1976
1976
  } else {
1977
- queue.splice(findInsertionIndex(job.id), 0, job);
1977
+ queue.splice(findInsertionIndex$1(job.id), 0, job);
1978
1978
  }
1979
1979
  queueFlush();
1980
1980
  }
@@ -11521,7 +11521,7 @@ function getDevtoolsGlobalHook() {
11521
11521
  return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;
11522
11522
  }
11523
11523
  function getTarget() {
11524
- return typeof navigator !== "undefined" && typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {};
11524
+ return typeof navigator !== "undefined" && typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : {};
11525
11525
  }
11526
11526
  const isProxyAvailable = typeof Proxy === "function";
11527
11527
  const HOOK_SETUP = "devtools-plugin:setup";
@@ -11536,9 +11536,9 @@ function isPerformanceSupported() {
11536
11536
  if (typeof window !== "undefined" && window.performance) {
11537
11537
  supported = true;
11538
11538
  perf = window.performance;
11539
- } else if (typeof global !== "undefined" && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {
11539
+ } else if (typeof globalThis !== "undefined" && ((_a = globalThis.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {
11540
11540
  supported = true;
11541
- perf = global.perf_hooks.performance;
11541
+ perf = globalThis.perf_hooks.performance;
11542
11542
  } else {
11543
11543
  supported = false;
11544
11544
  }
@@ -11660,16 +11660,17 @@ function setupDevtoolsPlugin(pluginDescriptor, setupFn) {
11660
11660
  setupFn,
11661
11661
  proxy
11662
11662
  });
11663
- if (proxy)
11663
+ if (proxy) {
11664
11664
  setupFn(proxy.proxiedTarget);
11665
+ }
11665
11666
  }
11666
11667
  }
11667
11668
  /*!
11668
- * vue-router v4.2.2
11669
- * (c) 2023 Eduardo San Martin Morote
11669
+ * vue-router v4.4.2
11670
+ * (c) 2024 Eduardo San Martin Morote
11670
11671
  * @license MIT
11671
11672
  */
11672
- const isBrowser = typeof window !== "undefined";
11673
+ const isBrowser = typeof document !== "undefined";
11673
11674
  function isESModule(obj) {
11674
11675
  return obj.__esModule || obj[Symbol.toStringTag] === "Module";
11675
11676
  }
@@ -11689,6 +11690,45 @@ function warn(msg) {
11689
11690
  const args = Array.from(arguments).slice(1);
11690
11691
  console.warn.apply(console, ["[Vue Router warn]: " + msg].concat(args));
11691
11692
  }
11693
+ const HASH_RE = /#/g;
11694
+ const AMPERSAND_RE = /&/g;
11695
+ const SLASH_RE = /\//g;
11696
+ const EQUAL_RE = /=/g;
11697
+ const IM_RE = /\?/g;
11698
+ const PLUS_RE = /\+/g;
11699
+ const ENC_BRACKET_OPEN_RE = /%5B/g;
11700
+ const ENC_BRACKET_CLOSE_RE = /%5D/g;
11701
+ const ENC_CARET_RE = /%5E/g;
11702
+ const ENC_BACKTICK_RE = /%60/g;
11703
+ const ENC_CURLY_OPEN_RE = /%7B/g;
11704
+ const ENC_PIPE_RE = /%7C/g;
11705
+ const ENC_CURLY_CLOSE_RE = /%7D/g;
11706
+ const ENC_SPACE_RE = /%20/g;
11707
+ function commonEncode(text) {
11708
+ return encodeURI("" + text).replace(ENC_PIPE_RE, "|").replace(ENC_BRACKET_OPEN_RE, "[").replace(ENC_BRACKET_CLOSE_RE, "]");
11709
+ }
11710
+ function encodeHash(text) {
11711
+ return commonEncode(text).replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^");
11712
+ }
11713
+ function encodeQueryValue(text) {
11714
+ return commonEncode(text).replace(PLUS_RE, "%2B").replace(ENC_SPACE_RE, "+").replace(HASH_RE, "%23").replace(AMPERSAND_RE, "%26").replace(ENC_BACKTICK_RE, "`").replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^");
11715
+ }
11716
+ function encodeQueryKey(text) {
11717
+ return encodeQueryValue(text).replace(EQUAL_RE, "%3D");
11718
+ }
11719
+ function encodePath(text) {
11720
+ return commonEncode(text).replace(HASH_RE, "%23").replace(IM_RE, "%3F");
11721
+ }
11722
+ function encodeParam(text) {
11723
+ return text == null ? "" : encodePath(text).replace(SLASH_RE, "%2F");
11724
+ }
11725
+ function decode(text) {
11726
+ try {
11727
+ return decodeURIComponent("" + text);
11728
+ } catch (err) {
11729
+ }
11730
+ return "" + text;
11731
+ }
11692
11732
  const TRAILING_SLASH_RE = /\/$/;
11693
11733
  const removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, "");
11694
11734
  function parseURL(parseQuery2, location2, currentLocation = "/") {
@@ -11712,7 +11752,7 @@ function parseURL(parseQuery2, location2, currentLocation = "/") {
11712
11752
  fullPath: path + (searchString && "?") + searchString + hash,
11713
11753
  path,
11714
11754
  query,
11715
- hash
11755
+ hash: decode(hash)
11716
11756
  };
11717
11757
  }
11718
11758
  function stringifyURL(stringifyQuery2, location2) {
@@ -11775,8 +11815,20 @@ function resolveRelativePath(to, from) {
11775
11815
  } else
11776
11816
  break;
11777
11817
  }
11778
- return fromSegments.slice(0, position).join("/") + "/" + toSegments.slice(toPosition - (toPosition === toSegments.length ? 1 : 0)).join("/");
11818
+ return fromSegments.slice(0, position).join("/") + "/" + toSegments.slice(toPosition).join("/");
11779
11819
  }
11820
+ const START_LOCATION_NORMALIZED = {
11821
+ path: "/",
11822
+ // TODO: could we use a symbol in the future?
11823
+ name: void 0,
11824
+ params: {},
11825
+ query: {},
11826
+ hash: "",
11827
+ fullPath: "/",
11828
+ matched: [],
11829
+ meta: {},
11830
+ redirectedFrom: void 0
11831
+ };
11780
11832
  var NavigationType;
11781
11833
  (function(NavigationType2) {
11782
11834
  NavigationType2["pop"] = "pop";
@@ -11817,8 +11869,8 @@ function getElementPosition(el, offset) {
11817
11869
  };
11818
11870
  }
11819
11871
  const computeScrollPosition = () => ({
11820
- left: window.pageXOffset,
11821
- top: window.pageYOffset
11872
+ left: window.scrollX,
11873
+ top: window.scrollY
11822
11874
  });
11823
11875
  function scrollToPosition(position) {
11824
11876
  let scrollToOptions;
@@ -11850,7 +11902,7 @@ function scrollToPosition(position) {
11850
11902
  if ("scrollBehavior" in document.documentElement.style)
11851
11903
  window.scrollTo(scrollToOptions);
11852
11904
  else {
11853
- window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);
11905
+ window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);
11854
11906
  }
11855
11907
  }
11856
11908
  function getScrollKey(path, delta) {
@@ -12017,7 +12069,7 @@ function useHistoryStateNavigation(base) {
12017
12069
 
12018
12070
  history.replaceState(history.state, '', url)
12019
12071
 
12020
- You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);
12072
+ You can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state`);
12021
12073
  }
12022
12074
  changeLocation(currentState.current, currentState, true);
12023
12075
  const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);
@@ -12064,12 +12116,10 @@ function createMemoryHistory(base = "") {
12064
12116
  base = normalizeBase(base);
12065
12117
  function setLocation(location2) {
12066
12118
  position++;
12067
- if (position === queue2.length) {
12068
- queue2.push(location2);
12069
- } else {
12119
+ if (position !== queue2.length) {
12070
12120
  queue2.splice(position);
12071
- queue2.push(location2);
12072
12121
  }
12122
+ queue2.push(location2);
12073
12123
  }
12074
12124
  function triggerListeners(to, from, { direction, delta }) {
12075
12125
  const info = {
@@ -12147,17 +12197,6 @@ function isRouteLocation(route) {
12147
12197
  function isRouteName(name) {
12148
12198
  return typeof name === "string" || typeof name === "symbol";
12149
12199
  }
12150
- const START_LOCATION_NORMALIZED = {
12151
- path: "/",
12152
- name: void 0,
12153
- params: {},
12154
- query: {},
12155
- hash: "",
12156
- fullPath: "/",
12157
- matched: [],
12158
- meta: {},
12159
- redirectedFrom: void 0
12160
- };
12161
12200
  const NavigationFailureSymbol = Symbol(false ? "navigation failure" : "");
12162
12201
  var NavigationFailureType;
12163
12202
  (function(NavigationFailureType2) {
@@ -12218,7 +12257,7 @@ const propertiesToLog = ["params", "query", "hash"];
12218
12257
  function stringifyRoute(to) {
12219
12258
  if (typeof to === "string")
12220
12259
  return to;
12221
- if ("path" in to)
12260
+ if (to.path != null)
12222
12261
  return to.path;
12223
12262
  const location2 = {};
12224
12263
  for (const key of propertiesToLog) {
@@ -12579,7 +12618,7 @@ function createRouterMatcher(routes, globalOptions) {
12579
12618
  normalizedRecord.path = parent.record.path + (path && connectingSlash + path);
12580
12619
  }
12581
12620
  if (false) {
12582
- throw new Error('Catch all routes ("*") must now be defined using a param with a custom regexp.\nSee more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');
12621
+ throw new Error('Catch all routes ("*") must now be defined using a param with a custom regexp.\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.');
12583
12622
  }
12584
12623
  matcher = createRouteRecordMatcher(normalizedRecord, parent, options);
12585
12624
  if (false)
@@ -12596,6 +12635,9 @@ function createRouterMatcher(routes, globalOptions) {
12596
12635
  if (isRootAdd && record.name && !isAliasRecord(matcher))
12597
12636
  removeRoute(record.name);
12598
12637
  }
12638
+ if (isMatchable(matcher)) {
12639
+ insertMatcher(matcher);
12640
+ }
12599
12641
  if (mainNormalizedRecord.children) {
12600
12642
  const children = mainNormalizedRecord.children;
12601
12643
  for (let i = 0; i < children.length; i++) {
@@ -12603,9 +12645,6 @@ function createRouterMatcher(routes, globalOptions) {
12603
12645
  }
12604
12646
  }
12605
12647
  originalRecord = originalRecord || matcher;
12606
- if (matcher.record.components && Object.keys(matcher.record.components).length || matcher.record.name || matcher.record.redirect) {
12607
- insertMatcher(matcher);
12608
- }
12609
12648
  }
12610
12649
  return originalMatcher ? () => {
12611
12650
  removeRoute(originalMatcher);
@@ -12635,12 +12674,8 @@ function createRouterMatcher(routes, globalOptions) {
12635
12674
  return matchers;
12636
12675
  }
12637
12676
  function insertMatcher(matcher) {
12638
- let i = 0;
12639
- while (i < matchers.length && comparePathParserScore(matcher, matchers[i]) >= 0 && // Adding children with empty path should still appear before the parent
12640
- // https://github.com/vuejs/router/issues/1124
12641
- (matcher.record.path !== matchers[i].record.path || !isRecordChildOf(matcher, matchers[i])))
12642
- i++;
12643
- matchers.splice(i, 0, matcher);
12677
+ const index = findInsertionIndex(matcher, matchers);
12678
+ matchers.splice(index, 0, matcher);
12644
12679
  if (matcher.record.name && !isAliasRecord(matcher))
12645
12680
  matcherMap.set(matcher.record.name, matcher);
12646
12681
  }
@@ -12667,18 +12702,18 @@ function createRouterMatcher(routes, globalOptions) {
12667
12702
  paramsFromLocation(
12668
12703
  currentLocation.params,
12669
12704
  // only keep params that exist in the resolved location
12670
- // TODO: only keep optional params coming from a parent record
12671
- matcher.keys.filter((k) => !k.optional).map((k) => k.name)
12705
+ // only keep optional params coming from a parent record
12706
+ matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)
12672
12707
  ),
12673
12708
  // discard any existing params in the current location that do not exist here
12674
12709
  // #1497 this ensures better active/exact matching
12675
12710
  location2.params && paramsFromLocation(location2.params, matcher.keys.map((k) => k.name))
12676
12711
  );
12677
12712
  path = matcher.stringify(params);
12678
- } else if ("path" in location2) {
12713
+ } else if (location2.path != null) {
12679
12714
  path = location2.path;
12680
12715
  if (false) {
12681
- warn(`The Matcher cannot resolve relative paths but received "${path}". Unless you directly called \`matcher.resolve("${path}")\`, this is probably a bug in vue-router. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/router.`);
12716
+ warn(`The Matcher cannot resolve relative paths but received "${path}". Unless you directly called \`matcher.resolve("${path}")\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);
12682
12717
  }
12683
12718
  matcher = matchers.find((m) => m.re.test(path));
12684
12719
  if (matcher) {
@@ -12711,7 +12746,18 @@ function createRouterMatcher(routes, globalOptions) {
12711
12746
  };
12712
12747
  }
12713
12748
  routes.forEach((route) => addRoute(route));
12714
- return { addRoute, resolve: resolve2, removeRoute, getRoutes, getRecordMatcher };
12749
+ function clearRoutes() {
12750
+ matchers.length = 0;
12751
+ matcherMap.clear();
12752
+ }
12753
+ return {
12754
+ addRoute,
12755
+ resolve: resolve2,
12756
+ removeRoute,
12757
+ clearRoutes,
12758
+ getRoutes,
12759
+ getRecordMatcher
12760
+ };
12715
12761
  }
12716
12762
  function paramsFromLocation(params, keys) {
12717
12763
  const newParams = {};
@@ -12745,7 +12791,7 @@ function normalizeRecordProps(record) {
12745
12791
  propsObject.default = props;
12746
12792
  } else {
12747
12793
  for (const name in record.components)
12748
- propsObject[name] = typeof props === "boolean" ? props : props[name];
12794
+ propsObject[name] = typeof props === "object" ? props[name] : props;
12749
12795
  }
12750
12796
  return propsObject;
12751
12797
  }
@@ -12791,47 +12837,38 @@ function checkMissingParamsInAbsolutePath(record, parent) {
12791
12837
  return warn(`Absolute path "${record.record.path}" must have the exact same param named "${key.name}" as its parent "${parent.record.path}".`);
12792
12838
  }
12793
12839
  }
12794
- function isRecordChildOf(record, parent) {
12795
- return parent.children.some((child) => child === record || isRecordChildOf(record, child));
12796
- }
12797
- const HASH_RE = /#/g;
12798
- const AMPERSAND_RE = /&/g;
12799
- const SLASH_RE = /\//g;
12800
- const EQUAL_RE = /=/g;
12801
- const IM_RE = /\?/g;
12802
- const PLUS_RE = /\+/g;
12803
- const ENC_BRACKET_OPEN_RE = /%5B/g;
12804
- const ENC_BRACKET_CLOSE_RE = /%5D/g;
12805
- const ENC_CARET_RE = /%5E/g;
12806
- const ENC_BACKTICK_RE = /%60/g;
12807
- const ENC_CURLY_OPEN_RE = /%7B/g;
12808
- const ENC_PIPE_RE = /%7C/g;
12809
- const ENC_CURLY_CLOSE_RE = /%7D/g;
12810
- const ENC_SPACE_RE = /%20/g;
12811
- function commonEncode(text) {
12812
- return encodeURI("" + text).replace(ENC_PIPE_RE, "|").replace(ENC_BRACKET_OPEN_RE, "[").replace(ENC_BRACKET_CLOSE_RE, "]");
12813
- }
12814
- function encodeHash(text) {
12815
- return commonEncode(text).replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^");
12816
- }
12817
- function encodeQueryValue(text) {
12818
- return commonEncode(text).replace(PLUS_RE, "%2B").replace(ENC_SPACE_RE, "+").replace(HASH_RE, "%23").replace(AMPERSAND_RE, "%26").replace(ENC_BACKTICK_RE, "`").replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^");
12819
- }
12820
- function encodeQueryKey(text) {
12821
- return encodeQueryValue(text).replace(EQUAL_RE, "%3D");
12822
- }
12823
- function encodePath(text) {
12824
- return commonEncode(text).replace(HASH_RE, "%23").replace(IM_RE, "%3F");
12825
- }
12826
- function encodeParam(text) {
12827
- return text == null ? "" : encodePath(text).replace(SLASH_RE, "%2F");
12840
+ function findInsertionIndex(matcher, matchers) {
12841
+ let lower = 0;
12842
+ let upper = matchers.length;
12843
+ while (lower !== upper) {
12844
+ const mid = lower + upper >> 1;
12845
+ const sortOrder = comparePathParserScore(matcher, matchers[mid]);
12846
+ if (sortOrder < 0) {
12847
+ upper = mid;
12848
+ } else {
12849
+ lower = mid + 1;
12850
+ }
12851
+ }
12852
+ const insertionAncestor = getInsertionAncestor(matcher);
12853
+ if (insertionAncestor) {
12854
+ upper = matchers.lastIndexOf(insertionAncestor, upper - 1);
12855
+ if (false) {
12856
+ warn(`Finding ancestor route "${insertionAncestor.record.path}" failed for "${matcher.record.path}"`);
12857
+ }
12858
+ }
12859
+ return upper;
12828
12860
  }
12829
- function decode(text) {
12830
- try {
12831
- return decodeURIComponent("" + text);
12832
- } catch (err) {
12861
+ function getInsertionAncestor(matcher) {
12862
+ let ancestor = matcher;
12863
+ while (ancestor = ancestor.parent) {
12864
+ if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) {
12865
+ return ancestor;
12866
+ }
12833
12867
  }
12834
- return "" + text;
12868
+ return;
12869
+ }
12870
+ function isMatchable({ record }) {
12871
+ return !!(record.name || record.components && Object.keys(record.components).length || record.redirect);
12835
12872
  }
12836
12873
  function parseQuery(search) {
12837
12874
  const query = {};
@@ -12908,7 +12945,7 @@ function useCallbacks() {
12908
12945
  }
12909
12946
  return {
12910
12947
  add: add2,
12911
- list: () => handlers,
12948
+ list: () => handlers.slice(),
12912
12949
  reset
12913
12950
  };
12914
12951
  }
@@ -12953,7 +12990,7 @@ function onBeforeRouteUpdate(updateGuard) {
12953
12990
  }
12954
12991
  registerGuard(activeRecord, "updateGuards", updateGuard);
12955
12992
  }
12956
- function guardToPromiseFn(guard, to, from, record, name) {
12993
+ function guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) {
12957
12994
  const enterCallbackArray = record && // name is defined if record is because of the function overload
12958
12995
  (record.enterCallbacks[name] = record.enterCallbacks[name] || []);
12959
12996
  return () => new Promise((resolve2, reject) => {
@@ -12978,7 +13015,7 @@ function guardToPromiseFn(guard, to, from, record, name) {
12978
13015
  resolve2();
12979
13016
  }
12980
13017
  };
12981
- const guardReturn = guard.call(record && record.instances[name], to, from, false ? canOnlyBeCalledOnce(next, to, from) : next);
13018
+ const guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, false ? canOnlyBeCalledOnce(next, to, from) : next));
12982
13019
  let guardCall = Promise.resolve(guardReturn);
12983
13020
  if (guard.length < 3)
12984
13021
  guardCall = guardCall.then(next);
@@ -13015,7 +13052,7 @@ function canOnlyBeCalledOnce(next, to, from) {
13015
13052
  next.apply(null, arguments);
13016
13053
  };
13017
13054
  }
13018
- function extractComponentsGuards(matched, guardType, to, from) {
13055
+ function extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) {
13019
13056
  const guards = [];
13020
13057
  for (const record of matched) {
13021
13058
  if (false) {
@@ -13042,7 +13079,7 @@ function extractComponentsGuards(matched, guardType, to, from) {
13042
13079
  if (isRouteComponent(rawComponent)) {
13043
13080
  const options = rawComponent.__vccOpts || rawComponent;
13044
13081
  const guard = options[guardType];
13045
- guard && guards.push(guardToPromiseFn(guard, to, from, record, name));
13082
+ guard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));
13046
13083
  } else {
13047
13084
  let componentPromise = rawComponent();
13048
13085
  if (false) {
@@ -13056,7 +13093,7 @@ function extractComponentsGuards(matched, guardType, to, from) {
13056
13093
  record.components[name] = resolvedComponent;
13057
13094
  const options = resolvedComponent.__vccOpts || resolvedComponent;
13058
13095
  const guard = options[guardType];
13059
- return guard && guardToPromiseFn(guard, to, from, record, name)();
13096
+ return guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)();
13060
13097
  }));
13061
13098
  }
13062
13099
  }
@@ -13084,7 +13121,28 @@ function loadRouteLocation(route) {
13084
13121
  function useLink(props) {
13085
13122
  const router = inject(routerKey);
13086
13123
  const currentRoute = inject(routeLocationKey);
13087
- const route = computed(() => router.resolve(unref(props.to)));
13124
+ let hasPrevious = false;
13125
+ let previousTo = null;
13126
+ const route = computed(() => {
13127
+ const to = unref(props.to);
13128
+ if (false) {
13129
+ if (!isRouteLocation(to)) {
13130
+ if (hasPrevious) {
13131
+ warn(`Invalid value for prop "to" in useLink()
13132
+ - to:`, to, `
13133
+ - previous to:`, previousTo, `
13134
+ - props:`, props);
13135
+ } else {
13136
+ warn(`Invalid value for prop "to" in useLink()
13137
+ - to:`, to, `
13138
+ - props:`, props);
13139
+ }
13140
+ }
13141
+ previousTo = to;
13142
+ hasPrevious = true;
13143
+ }
13144
+ return router.resolve(to);
13145
+ });
13088
13146
  const activeRecordIndex = computed(() => {
13089
13147
  const { matched } = route.value;
13090
13148
  const { length } = matched;
@@ -13122,7 +13180,8 @@ function useLink(props) {
13122
13180
  const linkContextDevtools = {
13123
13181
  route: route.value,
13124
13182
  isActive: isActive.value,
13125
- isExactActive: isExactActive.value
13183
+ isExactActive: isExactActive.value,
13184
+ error: null
13126
13185
  };
13127
13186
  instance.__vrl_devtools = instance.__vrl_devtools || [];
13128
13187
  instance.__vrl_devtools.push(linkContextDevtools);
@@ -13130,6 +13189,7 @@ function useLink(props) {
13130
13189
  linkContextDevtools.route = route.value;
13131
13190
  linkContextDevtools.isActive = isActive.value;
13132
13191
  linkContextDevtools.isExactActive = isExactActive.value;
13192
+ linkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : 'Invalid "to" value';
13133
13193
  }, { flush: "post" });
13134
13194
  }
13135
13195
  }
@@ -13395,9 +13455,15 @@ function addDevtools(app, router, matcher) {
13395
13455
  if (isArray(componentInstance.__vrl_devtools)) {
13396
13456
  componentInstance.__devtoolsApi = api;
13397
13457
  componentInstance.__vrl_devtools.forEach((devtoolsData) => {
13458
+ let label = devtoolsData.route.path;
13398
13459
  let backgroundColor = ORANGE_400;
13399
13460
  let tooltip = "";
13400
- if (devtoolsData.isExactActive) {
13461
+ let textColor = 0;
13462
+ if (devtoolsData.error) {
13463
+ label = devtoolsData.error;
13464
+ backgroundColor = RED_100;
13465
+ textColor = RED_700;
13466
+ } else if (devtoolsData.isExactActive) {
13401
13467
  backgroundColor = LIME_500;
13402
13468
  tooltip = "This is exactly active";
13403
13469
  } else if (devtoolsData.isActive) {
@@ -13405,8 +13471,8 @@ function addDevtools(app, router, matcher) {
13405
13471
  tooltip = "This link is active";
13406
13472
  }
13407
13473
  node.tags.push({
13408
- label: devtoolsData.route.path,
13409
- textColor: 0,
13474
+ label,
13475
+ textColor,
13410
13476
  tooltip,
13411
13477
  backgroundColor
13412
13478
  });
@@ -13502,7 +13568,9 @@ function addDevtools(app, router, matcher) {
13502
13568
  if (!activeRoutesPayload)
13503
13569
  return;
13504
13570
  const payload = activeRoutesPayload;
13505
- let routes = matcher.getRoutes().filter((route) => !route.parent);
13571
+ let routes = matcher.getRoutes().filter((route) => !route.parent || // these routes have a parent with no component which will not appear in the view
13572
+ // therefore we still need to include them
13573
+ !route.parent.record.components);
13506
13574
  routes.forEach(resetMatchStateOnRouteRecord);
13507
13575
  if (payload.filter) {
13508
13576
  routes = routes.filter((route) => (
@@ -13612,6 +13680,8 @@ const LIME_500 = 8702998;
13612
13680
  const CYAN_400 = 2282478;
13613
13681
  const ORANGE_400 = 16486972;
13614
13682
  const DARK = 6710886;
13683
+ const RED_100 = 16704226;
13684
+ const RED_700 = 12131356;
13615
13685
  function formatRouteRecordForInspector(route) {
13616
13686
  const tags = [];
13617
13687
  const { record } = route;
@@ -13723,7 +13793,7 @@ function createRouter(options) {
13723
13793
  const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;
13724
13794
  const routerHistory = options.history;
13725
13795
  if (false)
13726
- throw new Error('Provide the "history" option when calling "createRouter()": https://next.router.vuejs.org/api/#history.');
13796
+ throw new Error('Provide the "history" option when calling "createRouter()": https://router.vuejs.org/api/interfaces/RouterOptions.html#history');
13727
13797
  const beforeGuards = useCallbacks();
13728
13798
  const beforeResolveGuards = useCallbacks();
13729
13799
  const afterGuards = useCallbacks();
@@ -13743,6 +13813,9 @@ function createRouter(options) {
13743
13813
  let record;
13744
13814
  if (isRouteName(parentOrRoute)) {
13745
13815
  parent = matcher.getRecordMatcher(parentOrRoute);
13816
+ if (false) {
13817
+ warn(`Parent route "${String(parentOrRoute)}" not found when adding child route`, route);
13818
+ }
13746
13819
  record = route;
13747
13820
  } else {
13748
13821
  record = parentOrRoute;
@@ -13783,8 +13856,13 @@ function createRouter(options) {
13783
13856
  href: href2
13784
13857
  });
13785
13858
  }
13859
+ if (false) {
13860
+ warn(`router.resolve() was passed an invalid location. This will fail in production.
13861
+ - Location:`, rawLocation);
13862
+ return resolve2({});
13863
+ }
13786
13864
  let matcherLocation;
13787
- if ("path" in rawLocation) {
13865
+ if (rawLocation.path != null) {
13788
13866
  if (false) {
13789
13867
  warn(`Path "${rawLocation.path}" was passed with params but they will be ignored. Use a named route alongside params instead.`);
13790
13868
  }
@@ -13818,7 +13896,7 @@ function createRouter(options) {
13818
13896
  if (href.startsWith("//")) {
13819
13897
  warn(`Location "${rawLocation}" resolved to "${href}". A resolved location cannot start with multiple slashes.`);
13820
13898
  } else if (!matchedRoute.matched.length) {
13821
- warn(`No match found for location with path "${"path" in rawLocation ? rawLocation.path : rawLocation}"`);
13899
+ warn(`No match found for location with path "${rawLocation.path != null ? rawLocation.path : rawLocation}"`);
13822
13900
  }
13823
13901
  }
13824
13902
  return assign({
@@ -13878,7 +13956,7 @@ ${JSON.stringify(newTargetLocation, null, 2)}
13878
13956
  query: to.query,
13879
13957
  hash: to.hash,
13880
13958
  // avoid transferring params if the redirect has a path
13881
- params: "path" in newTargetLocation ? {} : to.params
13959
+ params: newTargetLocation.path != null ? {} : to.params
13882
13960
  }, newTargetLocation);
13883
13961
  }
13884
13962
  }
@@ -13994,8 +14072,8 @@ ${JSON.stringify(newTargetLocation, null, 2)}
13994
14072
  return runGuardQueue(guards);
13995
14073
  }).then(() => {
13996
14074
  guards = [];
13997
- for (const record of to.matched) {
13998
- if (record.beforeEnter && !from.matched.includes(record)) {
14075
+ for (const record of enteringRecords) {
14076
+ if (record.beforeEnter) {
13999
14077
  if (isArray(record.beforeEnter)) {
14000
14078
  for (const beforeEnter of record.beforeEnter)
14001
14079
  guards.push(guardToPromiseFn(beforeEnter, to, from));
@@ -14008,7 +14086,7 @@ ${JSON.stringify(newTargetLocation, null, 2)}
14008
14086
  return runGuardQueue(guards);
14009
14087
  }).then(() => {
14010
14088
  to.matched.forEach((record) => record.enterCallbacks = {});
14011
- guards = extractComponentsGuards(enteringRecords, "beforeRouteEnter", to, from);
14089
+ guards = extractComponentsGuards(enteringRecords, "beforeRouteEnter", to, from, runWithContext);
14012
14090
  guards.push(canceledNavigationCheck);
14013
14091
  return runGuardQueue(guards);
14014
14092
  }).then(() => {
@@ -14025,9 +14103,7 @@ ${JSON.stringify(newTargetLocation, null, 2)}
14025
14103
  ) ? err : Promise.reject(err));
14026
14104
  }
14027
14105
  function triggerAfterEach(to, from, failure) {
14028
- for (const guard of afterGuards.list()) {
14029
- runWithContext(() => guard(to, from, failure));
14030
- }
14106
+ afterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));
14031
14107
  }
14032
14108
  function finalizeNavigation(toLocation, from, isPush, replace2, data) {
14033
14109
  const error = checkCanceledNavigation(toLocation, from);
@@ -14126,11 +14202,11 @@ ${JSON.stringify(newTargetLocation, null, 2)}
14126
14202
  });
14127
14203
  }
14128
14204
  let readyHandlers = useCallbacks();
14129
- let errorHandlers = useCallbacks();
14205
+ let errorListeners = useCallbacks();
14130
14206
  let ready;
14131
14207
  function triggerError(error, to, from) {
14132
14208
  markAsReady(error);
14133
- const list = errorHandlers.list();
14209
+ const list = errorListeners.list();
14134
14210
  if (list.length) {
14135
14211
  list.forEach((handler) => handler(error, to, from));
14136
14212
  } else {
@@ -14172,6 +14248,7 @@ ${JSON.stringify(newTargetLocation, null, 2)}
14172
14248
  listening: true,
14173
14249
  addRoute,
14174
14250
  removeRoute,
14251
+ clearRoutes: matcher.clearRoutes,
14175
14252
  hasRoute,
14176
14253
  getRoutes,
14177
14254
  resolve: resolve2,
@@ -14184,7 +14261,7 @@ ${JSON.stringify(newTargetLocation, null, 2)}
14184
14261
  beforeEach: beforeGuards.add,
14185
14262
  beforeResolve: beforeResolveGuards.add,
14186
14263
  afterEach: afterGuards.add,
14187
- onError: errorHandlers.add,
14264
+ onError: errorListeners.add,
14188
14265
  isReady,
14189
14266
  install(app) {
14190
14267
  const router2 = this;
@@ -14206,10 +14283,13 @@ ${JSON.stringify(newTargetLocation, null, 2)}
14206
14283
  }
14207
14284
  const reactiveRoute = {};
14208
14285
  for (const key in START_LOCATION_NORMALIZED) {
14209
- reactiveRoute[key] = computed(() => currentRoute.value[key]);
14286
+ Object.defineProperty(reactiveRoute, key, {
14287
+ get: () => currentRoute.value[key],
14288
+ enumerable: true
14289
+ });
14210
14290
  }
14211
14291
  app.provide(routerKey, router2);
14212
- app.provide(routeLocationKey, reactive(reactiveRoute));
14292
+ app.provide(routeLocationKey, shallowReactive(reactiveRoute));
14213
14293
  app.provide(routerViewLocationKey, currentRoute);
14214
14294
  const unmountApp = app.unmount;
14215
14295
  installedApps.add(app);
@@ -14260,7 +14340,7 @@ function extractChangingRecords(to, from) {
14260
14340
  function useRouter() {
14261
14341
  return inject(routerKey);
14262
14342
  }
14263
- function useRoute() {
14343
+ function useRoute(_name) {
14264
14344
  return inject(routeLocationKey);
14265
14345
  }
14266
14346
  export {
@@ -14292,7 +14372,7 @@ export {
14292
14372
  Teleport as Y,
14293
14373
  renderSlot as Z,
14294
14374
  normalizeClass as _,
14295
- ref as a,
14375
+ readonly as a,
14296
14376
  mergeProps as a0,
14297
14377
  useSlots as a1,
14298
14378
  Transition as a2,
@@ -14312,23 +14392,22 @@ export {
14312
14392
  toValue as aG,
14313
14393
  createPropsRestProxy as aH,
14314
14394
  hasInjectionContext as aI,
14315
- setupDevtoolsPlugin as aJ,
14316
- isProxy as aK,
14317
- vue_runtime_esmBundler as aL,
14318
- useRouter as aM,
14319
- mergeModels as aN,
14320
- useModel as aO,
14321
- defineAsyncComponent as aP,
14322
- isNavigationFailure as aQ,
14323
- Suspense as aR,
14324
- onErrorCaptured as aS,
14325
- KeepAlive as aT,
14326
- createRouter as aU,
14327
- createWebHistory as aV,
14328
- createStaticVNode as aW,
14329
- onActivated as aX,
14330
- onBeforeRouteLeave as aY,
14331
- withMemo as aZ,
14395
+ isProxy as aJ,
14396
+ vue_runtime_esmBundler as aK,
14397
+ useRouter as aL,
14398
+ mergeModels as aM,
14399
+ useModel as aN,
14400
+ defineAsyncComponent as aO,
14401
+ isNavigationFailure as aP,
14402
+ Suspense as aQ,
14403
+ onErrorCaptured as aR,
14404
+ KeepAlive as aS,
14405
+ createRouter as aT,
14406
+ createWebHistory as aU,
14407
+ createStaticVNode as aV,
14408
+ onActivated as aW,
14409
+ onBeforeRouteLeave as aX,
14410
+ withMemo as aY,
14332
14411
  TransitionGroup as aa,
14333
14412
  useAttrs as ab,
14334
14413
  withModifiers as ac,
@@ -14371,7 +14450,7 @@ export {
14371
14450
  onScopeDispose as o,
14372
14451
  provide as p,
14373
14452
  onMounted as q,
14374
- readonly as r,
14453
+ ref as r,
14375
14454
  shallowRef as s,
14376
14455
  toRefs as t,
14377
14456
  unref as u,