@tanstack/vue-router 1.162.1 → 1.162.4

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.
@@ -31,7 +31,6 @@ export { useBlocker, Block } from './useBlocker.js';
31
31
  export { useNavigate, Navigate } from './useNavigate.js';
32
32
  export { useParams } from './useParams.js';
33
33
  export { useSearch } from './useSearch.js';
34
- export { getRouterContext, } from './routerContext.js';
35
34
  export { useRouteContext } from './useRouteContext.js';
36
35
  export { useRouter } from './useRouter.js';
37
36
  export { useRouterState } from './useRouterState.js';
@@ -19,7 +19,6 @@ import { Block, useBlocker } from "./useBlocker.js";
19
19
  import { Navigate, useNavigate } from "./useNavigate.js";
20
20
  import { useParams } from "./useParams.js";
21
21
  import { useSearch } from "./useSearch.js";
22
- import { getRouterContext } from "./routerContext.js";
23
22
  import { useRouteContext } from "./useRouteContext.js";
24
23
  import { useRouter } from "./useRouter.js";
25
24
  import { useRouterState } from "./useRouterState.js";
@@ -97,7 +96,6 @@ export {
97
96
  functionalUpdate,
98
97
  getInitialRouterState,
99
98
  getRouteApi,
100
- getRouterContext,
101
99
  interpolatePath,
102
100
  isMatch,
103
101
  isNotFound,
@@ -1 +1 @@
1
- {"version":3,"file":"index.dev.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.dev.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/esm/index.js CHANGED
@@ -19,7 +19,6 @@ import { Block, useBlocker } from "./useBlocker.js";
19
19
  import { Navigate, useNavigate } from "./useNavigate.js";
20
20
  import { useParams } from "./useParams.js";
21
21
  import { useSearch } from "./useSearch.js";
22
- import { getRouterContext } from "./routerContext.js";
23
22
  import { useRouteContext } from "./useRouteContext.js";
24
23
  import { useRouter } from "./useRouter.js";
25
24
  import { useRouterState } from "./useRouterState.js";
@@ -97,7 +96,6 @@ export {
97
96
  functionalUpdate,
98
97
  getInitialRouterState,
99
98
  getRouteApi,
100
- getRouterContext,
101
99
  interpolatePath,
102
100
  isMatch,
103
101
  isNotFound,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,16 +1,6 @@
1
1
  import { AnyRouter } from '@tanstack/router-core';
2
2
  import * as Vue from 'vue';
3
- export declare const RouterSymbol: Vue.InjectionKey<AnyRouter>;
4
- declare global {
5
- interface Window {
6
- __TSR_ROUTER_CONTEXT__?: Vue.InjectionKey<AnyRouter>;
7
- }
8
- }
9
- /**
10
- * Gets the router context, handling server-side rendering
11
- * and ensuring a single instance across the application
12
- */
13
- export declare function getRouterContext(): Vue.InjectionKey<AnyRouter>;
3
+ export declare const routerContext: Vue.InjectionKey<AnyRouter>;
14
4
  /**
15
5
  * Provides the router to all child components
16
6
  */
@@ -1,21 +1,10 @@
1
1
  import * as Vue from "vue";
2
- const RouterSymbol = /* @__PURE__ */ Symbol("TanStackRouter");
3
- function getRouterContext() {
4
- if (typeof document === "undefined") {
5
- return RouterSymbol;
6
- }
7
- if (window.__TSR_ROUTER_CONTEXT__) {
8
- return window.__TSR_ROUTER_CONTEXT__;
9
- }
10
- window.__TSR_ROUTER_CONTEXT__ = RouterSymbol;
11
- return RouterSymbol;
12
- }
2
+ const routerContext = /* @__PURE__ */ Symbol("TanStackRouter");
13
3
  function provideRouter(router) {
14
- Vue.provide(getRouterContext(), router);
4
+ Vue.provide(routerContext, router);
15
5
  }
16
6
  export {
17
- RouterSymbol,
18
- getRouterContext,
19
- provideRouter
7
+ provideRouter,
8
+ routerContext
20
9
  };
21
10
  //# sourceMappingURL=routerContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"routerContext.js","sources":["../../src/routerContext.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport type { AnyRouter } from '@tanstack/router-core'\n\n// Create a router context symbol\nexport const RouterSymbol = Symbol(\n 'TanStackRouter',\n) as Vue.InjectionKey<AnyRouter>\n\ndeclare global {\n interface Window {\n __TSR_ROUTER_CONTEXT__?: Vue.InjectionKey<AnyRouter>\n }\n}\n\n/**\n * Gets the router context, handling server-side rendering\n * and ensuring a single instance across the application\n */\nexport function getRouterContext(): Vue.InjectionKey<AnyRouter> {\n if (typeof document === 'undefined') {\n // For SSR, return the symbol directly\n return RouterSymbol\n }\n\n // In the browser, check if we have a cached context\n if (window.__TSR_ROUTER_CONTEXT__) {\n return window.__TSR_ROUTER_CONTEXT__\n }\n\n // Create and cache the context\n window.__TSR_ROUTER_CONTEXT__ = RouterSymbol\n return RouterSymbol\n}\n\n/**\n * Provides the router to all child components\n */\nexport function provideRouter(router: AnyRouter): void {\n Vue.provide(getRouterContext(), router)\n}\n\n/**\n * Injects the router from the component tree\n */\nexport function injectRouter(): AnyRouter {\n const router = Vue.inject<AnyRouter | null>(getRouterContext(), null)\n if (!router) {\n throw new Error(\n 'No TanStack Router found in component tree. Did you forget to add a RouterProvider component?',\n )\n }\n return router\n}\n"],"names":["RouterSymbol","Symbol","getRouterContext","document","window","__TSR_ROUTER_CONTEXT__","provideRouter","router","Vue","provide"],"mappings":";MAIaA,eAAeC,uBAC1B,gBACF;AAYO,SAASC,mBAAgD;AAC9D,MAAI,OAAOC,aAAa,aAAa;AAEnC,WAAOH;AAAAA,EACT;AAGA,MAAII,OAAOC,wBAAwB;AACjC,WAAOD,OAAOC;AAAAA,EAChB;AAGAD,SAAOC,yBAAyBL;AAChC,SAAOA;AACT;AAKO,SAASM,cAAcC,QAAyB;AACrDC,MAAIC,QAAQP,iBAAgB,GAAIK,MAAM;AACxC;"}
1
+ {"version":3,"file":"routerContext.js","sources":["../../src/routerContext.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport type { AnyRouter } from '@tanstack/router-core'\n\nexport const routerContext = Symbol(\n 'TanStackRouter',\n) as Vue.InjectionKey<AnyRouter>\n\n/**\n * Provides the router to all child components\n */\nexport function provideRouter(router: AnyRouter): void {\n Vue.provide(routerContext, router)\n}\n\n/**\n * Injects the router from the component tree\n */\nexport function injectRouter(): AnyRouter {\n const router = Vue.inject<AnyRouter | null>(routerContext, null)\n if (!router) {\n throw new Error(\n 'No TanStack Router found in component tree. Did you forget to add a RouterProvider component?',\n )\n }\n return router\n}\n"],"names":["routerContext","Symbol","provideRouter","router","Vue","provide"],"mappings":";MAGaA,gBAAgBC,uBAC3B,gBACF;AAKO,SAASC,cAAcC,QAAyB;AACrDC,MAAIC,QAAQL,eAAeG,MAAM;AACnC;"}
@@ -1,8 +1,8 @@
1
1
  import * as Vue from "vue";
2
2
  import warning from "tiny-warning";
3
- import { getRouterContext } from "./routerContext.js";
3
+ import { routerContext } from "./routerContext.js";
4
4
  function useRouter(opts) {
5
- const value = Vue.inject(getRouterContext(), null);
5
+ const value = Vue.inject(routerContext, null);
6
6
  warning(!((opts?.warn ?? true) && !value), "useRouter must be used inside a <RouterProvider> component!");
7
7
  return value;
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useRouter.js","sources":["../../src/useRouter.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport warning from 'tiny-warning'\nimport { getRouterContext } from './routerContext'\nimport type { AnyRouter, RegisteredRouter } from '@tanstack/router-core'\n\nexport function useRouter<TRouter extends AnyRouter = RegisteredRouter>(opts?: {\n warn?: boolean\n}): TRouter {\n const value = Vue.inject(getRouterContext() as any, null)\n warning(\n !((opts?.warn ?? true) && !value),\n 'useRouter must be used inside a <RouterProvider> component!',\n )\n return value as any\n}\n"],"names":["useRouter","opts","value","Vue","inject","getRouterContext","warning","warn"],"mappings":";;;AAKO,SAASA,UAAwDC,MAE5D;AACV,QAAMC,QAAQC,IAAIC,OAAOC,iBAAgB,GAAW,IAAI;AACxDC,UACE,GAAGL,MAAMM,QAAQ,SAAS,CAACL,QAC3B,6DACF;AACA,SAAOA;AACT;"}
1
+ {"version":3,"file":"useRouter.js","sources":["../../src/useRouter.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport warning from 'tiny-warning'\nimport { routerContext } from './routerContext'\nimport type { AnyRouter, RegisteredRouter } from '@tanstack/router-core'\n\nexport function useRouter<TRouter extends AnyRouter = RegisteredRouter>(opts?: {\n warn?: boolean\n}): TRouter {\n const value = Vue.inject(routerContext as any, null)\n warning(\n !((opts?.warn ?? true) && !value),\n 'useRouter must be used inside a <RouterProvider> component!',\n )\n return value as any\n}\n"],"names":["useRouter","opts","value","Vue","inject","routerContext","warning","warn"],"mappings":";;;AAKO,SAASA,UAAwDC,MAE5D;AACV,QAAMC,QAAQC,IAAIC,OAAOC,eAAsB,IAAI;AACnDC,UACE,GAAGL,MAAMM,QAAQ,SAAS,CAACL,QAC3B,6DACF;AACA,SAAOA;AACT;"}
@@ -31,7 +31,6 @@ export { useBlocker, Block } from './useBlocker';
31
31
  export { useNavigate, Navigate } from './useNavigate';
32
32
  export { useParams } from './useParams';
33
33
  export { useSearch } from './useSearch';
34
- export { getRouterContext, } from './routerContext';
35
34
  export { useRouteContext } from './useRouteContext';
36
35
  export { useRouter } from './useRouter';
37
36
  export { useRouterState } from './useRouterState';
@@ -22,8 +22,6 @@ export { useBlocker, Block } from './useBlocker';
22
22
  export { useNavigate, Navigate } from './useNavigate';
23
23
  export { useParams } from './useParams';
24
24
  export { useSearch } from './useSearch';
25
- export { getRouterContext, // SSR
26
- } from './routerContext';
27
25
  export { useRouteContext } from './useRouteContext';
28
26
  export { useRouter } from './useRouter';
29
27
  export { useRouterState } from './useRouterState';
@@ -1 +1 @@
1
- {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
@@ -1,16 +1,6 @@
1
1
  import * as Vue from 'vue';
2
2
  import type { AnyRouter } from '@tanstack/router-core';
3
- export declare const RouterSymbol: Vue.InjectionKey<AnyRouter>;
4
- declare global {
5
- interface Window {
6
- __TSR_ROUTER_CONTEXT__?: Vue.InjectionKey<AnyRouter>;
7
- }
8
- }
9
- /**
10
- * Gets the router context, handling server-side rendering
11
- * and ensuring a single instance across the application
12
- */
13
- export declare function getRouterContext(): Vue.InjectionKey<AnyRouter>;
3
+ export declare const routerContext: Vue.InjectionKey<AnyRouter>;
14
4
  /**
15
5
  * Provides the router to all child components
16
6
  */
@@ -1,34 +1,16 @@
1
1
  import * as Vue from 'vue';
2
- // Create a router context symbol
3
- export const RouterSymbol = Symbol('TanStackRouter');
4
- /**
5
- * Gets the router context, handling server-side rendering
6
- * and ensuring a single instance across the application
7
- */
8
- export function getRouterContext() {
9
- if (typeof document === 'undefined') {
10
- // For SSR, return the symbol directly
11
- return RouterSymbol;
12
- }
13
- // In the browser, check if we have a cached context
14
- if (window.__TSR_ROUTER_CONTEXT__) {
15
- return window.__TSR_ROUTER_CONTEXT__;
16
- }
17
- // Create and cache the context
18
- window.__TSR_ROUTER_CONTEXT__ = RouterSymbol;
19
- return RouterSymbol;
20
- }
2
+ export const routerContext = Symbol('TanStackRouter');
21
3
  /**
22
4
  * Provides the router to all child components
23
5
  */
24
6
  export function provideRouter(router) {
25
- Vue.provide(getRouterContext(), router);
7
+ Vue.provide(routerContext, router);
26
8
  }
27
9
  /**
28
10
  * Injects the router from the component tree
29
11
  */
30
12
  export function injectRouter() {
31
- const router = Vue.inject(getRouterContext(), null);
13
+ const router = Vue.inject(routerContext, null);
32
14
  if (!router) {
33
15
  throw new Error('No TanStack Router found in component tree. Did you forget to add a RouterProvider component?');
34
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"routerContext.jsx","sourceRoot":"","sources":["../../src/routerContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAG1B,iCAAiC;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAChC,gBAAgB,CACc,CAAA;AAQhC;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,sCAAsC;QACtC,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,oDAAoD;IACpD,IAAI,MAAM,CAAC,sBAAsB,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,sBAAsB,CAAA;IACtC,CAAC;IAED,+BAA+B;IAC/B,MAAM,CAAC,sBAAsB,GAAG,YAAY,CAAA;IAC5C,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC7C,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAA;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAmB,gBAAgB,EAAE,EAAE,IAAI,CAAC,CAAA;IACrE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"routerContext.jsx","sourceRoot":"","sources":["../../src/routerContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAG1B,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CACjC,gBAAgB,CACc,CAAA;AAEhC;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC7C,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAmB,aAAa,EAAE,IAAI,CAAC,CAAA;IAChE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import * as Vue from 'vue';
2
2
  import warning from 'tiny-warning';
3
- import { getRouterContext } from './routerContext';
3
+ import { routerContext } from './routerContext';
4
4
  export function useRouter(opts) {
5
- const value = Vue.inject(getRouterContext(), null);
5
+ const value = Vue.inject(routerContext, null);
6
6
  warning(!((opts?.warn ?? true) && !value), 'useRouter must be used inside a <RouterProvider> component!');
7
7
  return value;
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useRouter.jsx","sourceRoot":"","sources":["../../src/useRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAGlD,MAAM,UAAU,SAAS,CAA+C,IAEvE;IACC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAS,EAAE,IAAI,CAAC,CAAA;IACzD,OAAO,CACL,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EACjC,6DAA6D,CAC9D,CAAA;IACD,OAAO,KAAY,CAAA;AACrB,CAAC"}
1
+ {"version":3,"file":"useRouter.jsx","sourceRoot":"","sources":["../../src/useRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAG/C,MAAM,UAAU,SAAS,CAA+C,IAEvE;IACC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,aAAoB,EAAE,IAAI,CAAC,CAAA;IACpD,OAAO,CACL,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EACjC,6DAA6D,CAC9D,CAAA;IACD,OAAO,KAAY,CAAA;AACrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/vue-router",
3
- "version": "1.162.1",
3
+ "version": "1.162.4",
4
4
  "description": "Modern and scalable routing for Vue applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -63,8 +63,8 @@
63
63
  "jsesc": "^3.0.2",
64
64
  "tiny-invariant": "^1.3.3",
65
65
  "tiny-warning": "^1.0.3",
66
- "@tanstack/history": "1.161.4",
67
- "@tanstack/router-core": "1.162.1"
66
+ "@tanstack/router-core": "1.162.2",
67
+ "@tanstack/history": "1.161.4"
68
68
  },
69
69
  "devDependencies": {
70
70
  "@testing-library/jest-dom": "^6.6.3",
package/src/index.tsx CHANGED
@@ -298,10 +298,6 @@ export { useNavigate, Navigate } from './useNavigate'
298
298
  export { useParams } from './useParams'
299
299
  export { useSearch } from './useSearch'
300
300
 
301
- export {
302
- getRouterContext, // SSR
303
- } from './routerContext'
304
-
305
301
  export { useRouteContext } from './useRouteContext'
306
302
  export { useRouter } from './useRouter'
307
303
  export { useRouterState } from './useRouterState'
@@ -1,49 +1,22 @@
1
1
  import * as Vue from 'vue'
2
2
  import type { AnyRouter } from '@tanstack/router-core'
3
3
 
4
- // Create a router context symbol
5
- export const RouterSymbol = Symbol(
4
+ export const routerContext = Symbol(
6
5
  'TanStackRouter',
7
6
  ) as Vue.InjectionKey<AnyRouter>
8
7
 
9
- declare global {
10
- interface Window {
11
- __TSR_ROUTER_CONTEXT__?: Vue.InjectionKey<AnyRouter>
12
- }
13
- }
14
-
15
- /**
16
- * Gets the router context, handling server-side rendering
17
- * and ensuring a single instance across the application
18
- */
19
- export function getRouterContext(): Vue.InjectionKey<AnyRouter> {
20
- if (typeof document === 'undefined') {
21
- // For SSR, return the symbol directly
22
- return RouterSymbol
23
- }
24
-
25
- // In the browser, check if we have a cached context
26
- if (window.__TSR_ROUTER_CONTEXT__) {
27
- return window.__TSR_ROUTER_CONTEXT__
28
- }
29
-
30
- // Create and cache the context
31
- window.__TSR_ROUTER_CONTEXT__ = RouterSymbol
32
- return RouterSymbol
33
- }
34
-
35
8
  /**
36
9
  * Provides the router to all child components
37
10
  */
38
11
  export function provideRouter(router: AnyRouter): void {
39
- Vue.provide(getRouterContext(), router)
12
+ Vue.provide(routerContext, router)
40
13
  }
41
14
 
42
15
  /**
43
16
  * Injects the router from the component tree
44
17
  */
45
18
  export function injectRouter(): AnyRouter {
46
- const router = Vue.inject<AnyRouter | null>(getRouterContext(), null)
19
+ const router = Vue.inject<AnyRouter | null>(routerContext, null)
47
20
  if (!router) {
48
21
  throw new Error(
49
22
  'No TanStack Router found in component tree. Did you forget to add a RouterProvider component?',
package/src/useRouter.tsx CHANGED
@@ -1,12 +1,12 @@
1
1
  import * as Vue from 'vue'
2
2
  import warning from 'tiny-warning'
3
- import { getRouterContext } from './routerContext'
3
+ import { routerContext } from './routerContext'
4
4
  import type { AnyRouter, RegisteredRouter } from '@tanstack/router-core'
5
5
 
6
6
  export function useRouter<TRouter extends AnyRouter = RegisteredRouter>(opts?: {
7
7
  warn?: boolean
8
8
  }): TRouter {
9
- const value = Vue.inject(getRouterContext() as any, null)
9
+ const value = Vue.inject(routerContext as any, null)
10
10
  warning(
11
11
  !((opts?.warn ?? true) && !value),
12
12
  'useRouter must be used inside a <RouterProvider> component!',