raviger 5.2.1 → 5.3.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.
@@ -1,3 +1,4 @@
1
+ export type NavigationInitiator = 'push' | 'replace' | 'pop';
1
2
  export interface RavigerLocation {
2
3
  /** The current path; alias of `pathname` */
3
4
  path: string | null;
@@ -12,6 +13,8 @@ export interface RavigerLocation {
12
13
  hostname: string;
13
14
  href: string;
14
15
  origin: string;
16
+ /** How the navigation was initiated: 'push' (history.pushState), 'replace' (history.replaceState), or 'pop' (browser back/forward) */
17
+ initiatedBy?: NavigationInitiator;
15
18
  }
16
19
  export interface RavigerHistory {
17
20
  scrollRestoration: 'auto' | 'manual';
package/dist/main.d.ts CHANGED
@@ -6,6 +6,6 @@ export type { RedirectProps } from './redirect';
6
6
  export { Link, ActiveLink } from './Link';
7
7
  export { navigate, useNavigate, useNavigationPrompt } from './navigate';
8
8
  export { usePath, useHash, useFullPath, useBasePath, useLocationChange, useHistory, } from './location';
9
- export type { LocationChangeSetFn, LocationChangeOptionParams } from './location';
9
+ export type { LocationChangeSetFn, LocationChangeOptionParams, RavigerLocation, NavigationInitiator, } from './location';
10
10
  export { useQueryParams } from './querystring';
11
11
  export type { QueryParam, setQueryParamsOptions } from './querystring';
package/dist/main.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var t=require("react");const e=t.createContext(""),n=t.createContext(null);function RouterProvider({basePath:r="",path:a,children:o}){return t.createElement(e.Provider,{value:r},t.createElement(n.Provider,{value:null!=a?a:null},o))}let r=!0;try{r=void 0===window}catch{}const a=new Set;let o=!1,s=!1,u=[0,0];function shouldCancelNavigation(){return u=[window.scrollX,window.scrollY],o?s:Array.from(a).some((t=>{const e=t();return!!e&&(s=!window.confirm(e),o=!0,setTimeout((()=>{o=!1,s=!1}),0),s)}))}function usePath(e){const r=t.useContext(n),a=useBasePath();e=e||a;const[,o]=t.useState(getFormattedPath(e));return useLocationChange(t.useCallback((({path:t})=>o(t)),[]),{basePath:e,inheritBasePath:!e,onInitial:!0}),r||getFormattedPath(e)}function useBasePath(){return t.useContext(e)}function useFullPath(){const[e,n]=t.useState(getCurrentPath());return useLocationChange(t.useCallback((({path:t})=>n(t)),[]),{inheritBasePath:!1}),e||"/"}function getCurrentPath(){return r?"/":window.location.pathname||"/"}function getCurrentHash(){if(r){const t="/",e=t.indexOf("#");return t.substring(e)}return window.location.hash}function useLocationChange(e,{inheritBasePath:n=!0,basePath:a="",isActive:o,onInitial:s=!1}={}){if(r)return;const u=useBasePath();n&&u&&(a=u);const i=t.useRef(e);t.useLayoutEffect((()=>{i.current=e}));const c=t.useCallback((()=>{(void 0===o||isPredicateActive(o))&&(shouldCancelNavigation()||i.current(getFormattedLocation(a)))}),[o,a]);t.useLayoutEffect((()=>(window.addEventListener("popstate",c),()=>window.removeEventListener("popstate",c))),[c]),function useMountedLayout(e,n,{onInitial:r=!1}={}){const a=t.useRef(r);t.useLayoutEffect((()=>{a.current?e():a.current=!0}),n)}((()=>{(void 0===o||isPredicateActive(o))&&i.current(getFormattedLocation(a))}),[a,o],{onInitial:s})}function getRavigerHistory(){return r?{scrollRestoration:"manual",state:null}:{scrollRestoration:window.history.scrollRestoration,state:window.history.state}}function getFormattedPath(t){const e=getCurrentPath(),n=t&&!function isPathInBase(t,e){return!!(t&&e&&e.toLowerCase().startsWith(t.toLowerCase()))}(t,e);return null===e||n?null:decodeURIComponent(t?e.replace(function basePathMatcher(t){return new RegExp("^"+t,"i")}(t),"")||"/":e)}function getFormattedLocation(t){const e=getFormattedPath(t);return{basePath:t,path:e,pathname:e,fullPath:getCurrentPath(),search:window.location.search,hash:getCurrentHash(),host:window.location.host,hostname:window.location.hostname,href:window.location.href,origin:window.location.origin}}function isPredicateActive(t){return function isFunction(t){return!!t&&"function"==typeof t}(t)?t():t}const i=[null,null];function usePathOptions(t,{basePath:e,matchTrailingSlash:n=!0}){const r=useMatchers(Array.isArray(t)?t:[t]);return[trailingMatch(usePath(e),n),r]}function useMatchers(e){return t.useMemo((()=>e.map(createRouteMatcher)),[(n=e,[...n].sort().join(":"))]);var n}function getMatchParams(t,e){let n=null;const r=e.find((({regex:e})=>(n=t.match(e),!!n)));if(!r||null===n)return i;const a=r.props.reduce(((t,e,r)=>(t[e]=n[r+1],t)),{});return[r,a]}const c=/:[a-zA-Z_]+/g;function createRouteMatcher(t){var e,n;return{path:t,regex:new RegExp(`${"*"===t.substr(0,1)?"":"^"}${(n=t,n.replace(/[-\\^$+?.()|[\]{}]/g,"\\$&")).replace(c,"([^/]+)").replace(/\*/g,"")}${"*"===t.substr(-1)?"":"$"}`,"i"),props:(null!==(e=t.match(c))&&void 0!==e?e:[]).map((t=>t.substr(1)))}}function trailingMatch(t,e){return null===t||e&&t&&"/"===t[t.length-1]&&t.length>1&&(t=t.substring(0,t.length-1)),t}let l="";function navigate(t,e){if("string"!=typeof t)throw new Error('"url" must be a string, was provided a(n) '+typeof t);if(Array.isArray(null==e?void 0:e.query))throw new Error('"query" a serializable object or URLSearchParams');if(shouldCancelNavigation())return;if((null==e?void 0:e.query)&&(t+="?"+new URLSearchParams(e.query).toString()),l=t,function isAbsolute(t){return/^(?:[a-z]+:)?\/\//i.test(t)}(t)&&!function isCurrentOrigin(t){return window.location.origin===new URL(t).origin}(t))return void window.location.assign(t);(null==e?void 0:e.replace)?window.history.replaceState(null==e?void 0:e.state,"",t):window.history.pushState(null==e?void 0:e.state,"",t);const n=new PopStateEvent("popstate");n.__tag="raviger:navigation",dispatchEvent(n)}function useQueryParams(e=parseQuery,n=serializeQuery){const[r,a]=t.useState(getQueryString()),o=t.useCallback(((t,{overwrite:a=!0,replace:o=!1}={})=>{let s=getCurrentPath();t=a?t:{...e(r),...t};const u=n(t).toString();u&&(s+="?"+u),a||(s+=getCurrentHash()),navigate(s,{replace:o})}),[r,e,n]);return useLocationChange(t.useCallback((()=>a(getQueryString())),[])),[e(r),o]}function parseQuery(t){const e=new URLSearchParams(t);return Object.fromEntries(e.entries())}function serializeQuery(t){return new URLSearchParams(Object.entries(t).filter((([,t])=>null!==t))).toString()}function getQueryString(){if(r){const t="/",e=t.indexOf("?");return-1===e?"":t.substring(e+1)}return window.location.search}function useRedirect(e,n,{query:r,replace:a=!0,merge:o=!0,state:s}={}){const u=usePath(),[i]=useQueryParams(),c=getCurrentHash();let l=n;const h=new URLSearchParams({...o?i:{},...r}).toString();h&&(l+="?"+h),o&&c&&c.length&&(l+=c),t.useLayoutEffect((()=>{u===e&&navigate(l,{replace:a,state:s})}),[e,l,a,u,s])}const h=t.forwardRef((function Link({href:e,basePath:n,replace:r,query:a,state:o,...s},u){e=getLinkHref(e,n=useLinkBasePath(n));const{onClick:i,target:c}=s,l=t.useCallback((t=>{try{i&&i(t)}catch(e){throw t.preventDefault(),e}(function shouldTrap(t,e){return!t.defaultPrevented&&0===t.button&&!(e||"_self"===e)&&!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)})(t,c)&&(t.preventDefault(),navigate(t.currentTarget.href,{replace:r,query:a,state:o}))}),[i,c]);return t.createElement("a",{...s,href:e,onClick:l,ref:u})}));const f=t.forwardRef((function ActiveLink({basePath:e,className:n,exactActiveClass:r,activeClass:a,...o},s){e=useLinkBasePath(e);const u=useFullPath();let{href:i}=o;return i=function absolutePathName(t){return t.startsWith("/")?t:new URL(t,document.baseURI).pathname}(getLinkHref(i,e)),r&&u===i&&(n=`${null!=n?n:""} ${r}`.trim()),a&&u.startsWith(i)&&(n=`${null!=n?n:""} ${a}`.trim()),t.createElement(h,{...o,basePath:e,className:n,ref:s})}));function useLinkBasePath(t){const e=useBasePath();return"/"===t?"":t||e}function getLinkHref(t,e=""){return t.startsWith("/")?e+t:t}exports.ActiveLink=f,exports.Link=h,exports.Redirect=function Redirect({to:t,query:e,replace:n=!0,merge:r=!0,state:a}){return useRedirect(usePath(),t,{query:e,replace:n,merge:r,state:a}),null},exports.RouterProvider=RouterProvider,exports.navigate=navigate,exports.useBasePath=useBasePath,exports.useFullPath=useFullPath,exports.useHash=function useHash({stripHash:e=!0}={}){const[n,r]=t.useState(window.location.hash),a=t.useCallback((()=>{const t=window.location.hash;t!==n&&r(t)}),[r,n]);return t.useLayoutEffect((()=>(window.addEventListener("hashchange",a,!1),()=>window.removeEventListener("hashchange",a))),[a]),useLocationChange(a),e?n.substring(1):n},exports.useHistory=function useHistory(){const[e,n]=t.useState(getRavigerHistory());return useLocationChange(t.useCallback((()=>n(getRavigerHistory())),[n])),e},exports.useLocationChange=useLocationChange,exports.useMatch=function useMatch(t,e={}){var n;const[r,a]=usePathOptions(t,e),o=a.find((({regex:t})=>null==r?void 0:r.match(t)));return null!==(n=null==o?void 0:o.path)&&void 0!==n?n:null},exports.useNavigate=function useNavigate(e=""){const n=useBasePath();return t.useCallback(((t,r)=>{const a=e||n;navigate(t.startsWith("/")?a+t:t,r)}),[n,e])},exports.useNavigationPrompt=function useNavigationPrompt(e=!0,n="Are you sure you want to leave this page?"){r||(t.useLayoutEffect((()=>{const onPopStateNavigation=()=>{shouldCancelNavigation()&&function undoNavigation(t){window.history.pushState(null,null,t),setTimeout((()=>{window.scrollTo(...u)}),0)}(l)};return window.addEventListener("popstate",onPopStateNavigation),()=>window.removeEventListener("popstate",onPopStateNavigation)}),[]),t.useLayoutEffect((()=>{const handler=t=>{if(e)return t?function cancelNavigation(t,e){return t.preventDefault(),t.returnValue=e,e}(t,n):n};return function addInterceptor(t){window.addEventListener("beforeunload",t),a.add(t)}(handler),()=>function removeInterceptor(t){window.removeEventListener("beforeunload",t),a.delete(t)}(handler)}),[e,n]))},exports.usePath=usePath,exports.usePathParams=function usePathParams(t,e={}){const n=!Array.isArray(t),[r,a]=usePathOptions(t,e);if(null===r)return n?null:i;const[o,s]=getMatchParams(r,a);return o?n?s:[o.path,s]:n?null:i},exports.useQueryParams=useQueryParams,exports.useRedirect=useRedirect,exports.useRoutes=function useRoutes(e,{basePath:n="",routeProps:r={},overridePathParams:a=!0,matchTrailingSlash:o=!0}={}){const s=usePath(n)&&getFormattedPath(n);!function useRedirectDetection(e,n){const[,r]=t.useState({}),a=t.useCallback((()=>r({})),[]);t.useLayoutEffect((()=>{n!==getFormattedPath(e)&&a()}),[a,e,n])}(n,usePath(n));const u=function useMatchRoute(t,e,{routeProps:n,overridePathParams:r,matchTrailingSlash:a}){e=trailingMatch(e,a);const o=Array.isArray(t)?t:Object.entries(t).reduce(((t,[e,n])=>(t.push({path:e,fn:n}),t)),[]),s=useMatchers(o.map((t=>t.path)));if(null===e)return null;const[u,i]=getMatchParams(e,s);if(!u)return null;const c=o.find((t=>t.path==u.path));return c?c.fn(r?{...i,...n}:{...n,...i}):null}(e,s,{routeProps:r,overridePathParams:a,matchTrailingSlash:o});return u&&null!==s?t.createElement(RouterProvider,{basePath:n,path:s},u):null};
1
+ "use strict";var t=require("react");const e=t.createContext(""),n=t.createContext(null);function RouterProvider({basePath:r="",path:a,children:o}){return t.createElement(e.Provider,{value:r},t.createElement(n.Provider,{value:null!=a?a:null},o))}let r=!0;try{r=void 0===window}catch{}const a=new Set;let o=!1,s=!1,u=[0,0];function shouldCancelNavigation(){return u=[window.scrollX,window.scrollY],o?s:Array.from(a).some((t=>{const e=t();return!!e&&(s=!window.confirm(e),o=!0,setTimeout((()=>{o=!1,s=!1}),0),s)}))}function usePath(e){const r=t.useContext(n),a=useBasePath();e=e||a;const[,o]=t.useState(getFormattedPath(e));return useLocationChange(t.useCallback((({path:t})=>o(t)),[]),{basePath:e,inheritBasePath:!e,onInitial:!0}),r||getFormattedPath(e)}function useBasePath(){return t.useContext(e)}function useFullPath(){const[e,n]=t.useState(getCurrentPath());return useLocationChange(t.useCallback((({path:t})=>n(t)),[]),{inheritBasePath:!1}),e||"/"}function getCurrentPath(){return r?"/":window.location.pathname||"/"}function getCurrentHash(){if(r){const t="/",e=t.indexOf("#");return t.substring(e)}return window.location.hash}function useLocationChange(e,{inheritBasePath:n=!0,basePath:a="",isActive:o,onInitial:s=!1}={}){if(r)return;const u=useBasePath();n&&u&&(a=u);const i=t.useRef(e);t.useLayoutEffect((()=>{i.current=e}));const c=t.useCallback((t=>{if(void 0!==o&&!isPredicateActive(o))return;if(shouldCancelNavigation())return;const e=t.__method,n="push"===e?"push":"replace"===e?"replace":"pop";i.current(getFormattedLocation(a,n))}),[o,a]);t.useLayoutEffect((()=>(window.addEventListener("popstate",c),()=>window.removeEventListener("popstate",c))),[c]),function useMountedLayout(e,n,{onInitial:r=!1}={}){const a=t.useRef(r);t.useLayoutEffect((()=>{a.current?e():a.current=!0}),n)}((()=>{(void 0===o||isPredicateActive(o))&&i.current(getFormattedLocation(a))}),[a,o],{onInitial:s})}function getRavigerHistory(){return r?{scrollRestoration:"manual",state:null}:{scrollRestoration:window.history.scrollRestoration,state:window.history.state}}function getFormattedPath(t){const e=getCurrentPath(),n=t&&!function isPathInBase(t,e){return!!(t&&e&&e.toLowerCase().startsWith(t.toLowerCase()))}(t,e);return null===e||n?null:decodeURIComponent(t?e.replace(function basePathMatcher(t){return new RegExp("^"+t,"i")}(t),"")||"/":e)}function getFormattedLocation(t,e){const n=getFormattedPath(t);return{basePath:t,path:n,pathname:n,fullPath:getCurrentPath(),search:window.location.search,hash:getCurrentHash(),host:window.location.host,hostname:window.location.hostname,href:window.location.href,origin:window.location.origin,initiatedBy:e}}function isPredicateActive(t){return function isFunction(t){return!!t&&"function"==typeof t}(t)?t():t}const i=[null,null];function usePathOptions(t,{basePath:e,matchTrailingSlash:n=!0}){const r=useMatchers(Array.isArray(t)?t:[t]);return[trailingMatch(usePath(e),n),r]}function useMatchers(e){return t.useMemo((()=>e.map(createRouteMatcher)),[(n=e,[...n].sort().join(":"))]);var n}function getMatchParams(t,e){let n=null;const r=e.find((({regex:e})=>(n=t.match(e),!!n)));if(!r||null===n)return i;const a=r.props.reduce(((t,e,r)=>(t[e]=n[r+1],t)),{});return[r,a]}const c=/:[a-zA-Z_]+/g;function createRouteMatcher(t){var e,n;return{path:t,regex:new RegExp(`${"*"===t.substr(0,1)?"":"^"}${(n=t,n.replace(/[-\\^$+?.()|[\]{}]/g,"\\$&")).replace(c,"([^/]+)").replace(/\*/g,"")}${"*"===t.substr(-1)?"":"$"}`,"i"),props:(null!==(e=t.match(c))&&void 0!==e?e:[]).map((t=>t.substr(1)))}}function trailingMatch(t,e){return null===t||e&&t&&"/"===t[t.length-1]&&t.length>1&&(t=t.substring(0,t.length-1)),t}let l="";function navigate(t,e){if("string"!=typeof t)throw new Error('"url" must be a string, was provided a(n) '+typeof t);if(Array.isArray(null==e?void 0:e.query))throw new Error('"query" a serializable object or URLSearchParams');if(shouldCancelNavigation())return;if((null==e?void 0:e.query)&&(t+="?"+new URLSearchParams(e.query).toString()),l=t,function isAbsolute(t){return/^(?:[a-z]+:)?\/\//i.test(t)}(t)&&!function isCurrentOrigin(t){return window.location.origin===new URL(t).origin}(t))return void window.location.assign(t);const n=!!(null==e?void 0:e.replace);n?window.history.replaceState(null==e?void 0:e.state,"",t):window.history.pushState(null==e?void 0:e.state,"",t);const r=new PopStateEvent("popstate");r.__tag="raviger:navigation",r.__method=n?"replace":"push",dispatchEvent(r)}function useQueryParams(e=parseQuery,n=serializeQuery){const[r,a]=t.useState(getQueryString()),o=t.useCallback(((t,{overwrite:a=!0,replace:o=!1}={})=>{let s=getCurrentPath();t=a?t:{...e(r),...t};const u=n(t).toString();u&&(s+="?"+u),a||(s+=getCurrentHash()),navigate(s,{replace:o})}),[r,e,n]);return useLocationChange(t.useCallback((()=>a(getQueryString())),[])),[e(r),o]}function parseQuery(t){const e=new URLSearchParams(t);return Object.fromEntries(e.entries())}function serializeQuery(t){return new URLSearchParams(Object.entries(t).filter((([,t])=>null!==t))).toString()}function getQueryString(){if(r){const t="/",e=t.indexOf("?");return-1===e?"":t.substring(e+1)}return window.location.search}function useRedirect(e,n,{query:r,replace:a=!0,merge:o=!0,state:s}={}){const u=usePath(),[i]=useQueryParams(),c=getCurrentHash();let l=n;const h=new URLSearchParams({...o?i:{},...r}).toString();h&&(l+="?"+h),o&&c&&c.length&&(l+=c),t.useLayoutEffect((()=>{u===e&&navigate(l,{replace:a,state:s})}),[e,l,a,u,s])}const h=t.forwardRef((function Link({href:e,basePath:n,replace:r,query:a,state:o,...s},u){e=getLinkHref(e,n=useLinkBasePath(n));const{onClick:i,target:c}=s,l=t.useCallback((t=>{try{i&&i(t)}catch(e){throw t.preventDefault(),e}(function shouldTrap(t,e){return!t.defaultPrevented&&0===t.button&&!(e||"_self"===e)&&!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)})(t,c)&&(t.preventDefault(),navigate(t.currentTarget.href,{replace:r,query:a,state:o}))}),[i,c]);return t.createElement("a",{...s,href:e,onClick:l,ref:u})}));const f=t.forwardRef((function ActiveLink({basePath:e,className:n,exactActiveClass:r,activeClass:a,...o},s){e=useLinkBasePath(e);const u=useFullPath();let{href:i}=o;return i=function absolutePathName(t){return t.startsWith("/")?t:new URL(t,document.baseURI).pathname}(getLinkHref(i,e)),r&&u===i&&(n=`${null!=n?n:""} ${r}`.trim()),a&&u.startsWith(i)&&(n=`${null!=n?n:""} ${a}`.trim()),t.createElement(h,{...o,basePath:e,className:n,ref:s})}));function useLinkBasePath(t){const e=useBasePath();return"/"===t?"":t||e}function getLinkHref(t,e=""){return t.startsWith("/")?e+t:t}exports.ActiveLink=f,exports.Link=h,exports.Redirect=function Redirect({to:t,query:e,replace:n=!0,merge:r=!0,state:a}){return useRedirect(usePath(),t,{query:e,replace:n,merge:r,state:a}),null},exports.RouterProvider=RouterProvider,exports.navigate=navigate,exports.useBasePath=useBasePath,exports.useFullPath=useFullPath,exports.useHash=function useHash({stripHash:e=!0}={}){const[n,r]=t.useState(window.location.hash),a=t.useCallback((()=>{const t=window.location.hash;t!==n&&r(t)}),[r,n]);return t.useLayoutEffect((()=>(window.addEventListener("hashchange",a,!1),()=>window.removeEventListener("hashchange",a))),[a]),useLocationChange(a),e?n.substring(1):n},exports.useHistory=function useHistory(){const[e,n]=t.useState(getRavigerHistory());return useLocationChange(t.useCallback((()=>n(getRavigerHistory())),[n])),e},exports.useLocationChange=useLocationChange,exports.useMatch=function useMatch(t,e={}){var n;const[r,a]=usePathOptions(t,e),o=a.find((({regex:t})=>null==r?void 0:r.match(t)));return null!==(n=null==o?void 0:o.path)&&void 0!==n?n:null},exports.useNavigate=function useNavigate(e=""){const n=useBasePath();return t.useCallback(((t,r)=>{const a=e||n;navigate(t.startsWith("/")?a+t:t,r)}),[n,e])},exports.useNavigationPrompt=function useNavigationPrompt(e=!0,n="Are you sure you want to leave this page?"){r||(t.useLayoutEffect((()=>{const onPopStateNavigation=()=>{shouldCancelNavigation()&&function undoNavigation(t){window.history.pushState(null,null,t),setTimeout((()=>{window.scrollTo(...u)}),0)}(l)};return window.addEventListener("popstate",onPopStateNavigation),()=>window.removeEventListener("popstate",onPopStateNavigation)}),[]),t.useLayoutEffect((()=>{const handler=t=>{if(e)return t?function cancelNavigation(t,e){return t.preventDefault(),t.returnValue=e,e}(t,n):n};return function addInterceptor(t){window.addEventListener("beforeunload",t),a.add(t)}(handler),()=>function removeInterceptor(t){window.removeEventListener("beforeunload",t),a.delete(t)}(handler)}),[e,n]))},exports.usePath=usePath,exports.usePathParams=function usePathParams(t,e={}){const n=!Array.isArray(t),[r,a]=usePathOptions(t,e);if(null===r)return n?null:i;const[o,s]=getMatchParams(r,a);return o?n?s:[o.path,s]:n?null:i},exports.useQueryParams=useQueryParams,exports.useRedirect=useRedirect,exports.useRoutes=function useRoutes(e,{basePath:n="",routeProps:r={},overridePathParams:a=!0,matchTrailingSlash:o=!0}={}){const s=usePath(n)&&getFormattedPath(n);!function useRedirectDetection(e,n){const[,r]=t.useState({}),a=t.useCallback((()=>r({})),[]);t.useLayoutEffect((()=>{n!==getFormattedPath(e)&&a()}),[a,e,n])}(n,usePath(n));const u=function useMatchRoute(t,e,{routeProps:n,overridePathParams:r,matchTrailingSlash:a}){e=trailingMatch(e,a);const o=Array.isArray(t)?t:Object.entries(t).reduce(((t,[e,n])=>(t.push({path:e,fn:n}),t)),[]),s=useMatchers(o.map((t=>t.path)));if(null===e)return null;const[u,i]=getMatchParams(e,s);if(!u)return null;const c=o.find((t=>t.path==u.path));return c?c.fn(r?{...i,...n}:{...n,...i}):null}(e,s,{routeProps:r,overridePathParams:a,matchTrailingSlash:o});return u&&null!==s?t.createElement(RouterProvider,{basePath:n,path:s},u):null};
2
2
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../src/context.tsx","../src/node.ts","../src/intercept.ts","../src/location.ts","../src/hooks.ts","../src/typeChecks.ts","../src/router.tsx","../src/navigate.ts","../src/querystring.ts","../src/redirect.ts","../src/Link.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["BasePathContext","createContext","PathContext","RouterProvider","basePath","path","children","React","createElement","Provider","value","isNode","undefined","window","interceptors","Set","hasIntercepted","hasUserCancelled","lastScroll","shouldCancelNavigation","scrollX","scrollY","Array","from","some","interceptor","prompt","confirm","setTimeout","usePath","contextPath","useContext","contextBasePath","useBasePath","setPath","useState","getFormattedPath","useLocationChange","useCallback","newPath","inheritBasePath","onInitial","useFullPath","getCurrentPath","location","pathname","getCurrentHash","hashIndex","indexOf","substring","hash","setFn","isActive","routerBasePath","setRef","useRef","useLayoutEffect","current","onPopState","isPredicateActive","getFormattedLocation","addEventListener","removeEventListener","useMountedLayout","fn","deps","hasMounted","getRavigerHistory","scrollRestoration","state","history","baseMissing","isPathInBase","toLowerCase","startsWith","decodeURIComponent","replace","basePathMatcher","RegExp","fullPath","search","host","hostname","href","origin","predicate","isFunction","obj","emptyPathResult","usePathOptions","routeOrRoutes","matchTrailingSlash","matchers","useMatchers","isArray","trailingMatch","routes","useMemo","map","createRouteMatcher","params","sort","join","getMatchParams","routeMatchers","pathParams","routeMatch","find","regex","match","props","reduce","prop","i","pathPartRegex","string","substr","_a","paramName","length","lastPath","navigate","url","options","Error","query","URLSearchParams","toString","isAbsolute","test","isCurrentOrigin","URL","assign","replaceState","pushState","event","PopStateEvent","__tag","dispatchEvent","useQueryParams","parseFn","parseQuery","serializeFn","serializeQuery","querystring","setQuerystring","getQueryString","setQueryParams","overwrite","serialized","q","Object","fromEntries","entries","queryParams","filter","v","ssrPath","queryIndex","useRedirect","predicateUrl","targetUrl","merge","currentPath","currentQuery","targetQuery","RefLink","forwardRef","Link","ref","getLinkHref","useLinkBasePath","onClick","target","handleClick","e","ex","preventDefault","shouldTrap","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","currentTarget","ActiveLinkRef","ActiveLink","className","exactActiveClass","activeClass","absolutePathName","document","baseURI","trim","Redirect","to","useHash","stripHash","setHash","handleHash","newHash","useHistory","setHistory","useMatch","useNavigate","optBasePath","base","useNavigationPrompt","onPopStateNavigation","undoNavigation","scrollTo","handler","cancelNavigation","returnValue","addInterceptor","add","removeInterceptor","delete","usePathParams","isSingle","useRoutes","routeProps","overridePathParams","useRedirectDetection","updateState","forceRender","route","useMatchRoute","mappedRoutes","arr","push","r","pathMatch"],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["../src/context.tsx","../src/node.ts","../src/intercept.ts","../src/location.ts","../src/hooks.ts","../src/typeChecks.ts","../src/router.tsx","../src/navigate.ts","../src/querystring.ts","../src/redirect.ts","../src/Link.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["BasePathContext","createContext","PathContext","RouterProvider","basePath","path","children","React","createElement","Provider","value","isNode","undefined","window","interceptors","Set","hasIntercepted","hasUserCancelled","lastScroll","shouldCancelNavigation","scrollX","scrollY","Array","from","some","interceptor","prompt","confirm","setTimeout","usePath","contextPath","useContext","contextBasePath","useBasePath","setPath","useState","getFormattedPath","useLocationChange","useCallback","newPath","inheritBasePath","onInitial","useFullPath","getCurrentPath","location","pathname","getCurrentHash","hashIndex","indexOf","substring","hash","setFn","isActive","routerBasePath","setRef","useRef","useLayoutEffect","current","onPopState","event","isPredicateActive","method","__method","initiatedBy","getFormattedLocation","addEventListener","removeEventListener","useMountedLayout","fn","deps","hasMounted","getRavigerHistory","scrollRestoration","state","history","baseMissing","isPathInBase","toLowerCase","startsWith","decodeURIComponent","replace","basePathMatcher","RegExp","fullPath","search","host","hostname","href","origin","predicate","isFunction","obj","emptyPathResult","usePathOptions","routeOrRoutes","matchTrailingSlash","matchers","useMatchers","isArray","trailingMatch","routes","useMemo","map","createRouteMatcher","params","sort","join","getMatchParams","routeMatchers","pathParams","routeMatch","find","regex","match","props","reduce","prop","i","pathPartRegex","string","substr","_a","paramName","length","lastPath","navigate","url","options","Error","query","URLSearchParams","toString","isAbsolute","test","isCurrentOrigin","URL","assign","replaceState","pushState","PopStateEvent","__tag","dispatchEvent","useQueryParams","parseFn","parseQuery","serializeFn","serializeQuery","querystring","setQuerystring","getQueryString","setQueryParams","overwrite","serialized","q","Object","fromEntries","entries","queryParams","filter","v","ssrPath","queryIndex","useRedirect","predicateUrl","targetUrl","merge","currentPath","currentQuery","targetQuery","RefLink","forwardRef","Link","ref","getLinkHref","useLinkBasePath","onClick","target","handleClick","e","ex","preventDefault","shouldTrap","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","currentTarget","ActiveLinkRef","ActiveLink","className","exactActiveClass","activeClass","absolutePathName","document","baseURI","trim","Redirect","to","useHash","stripHash","setHash","handleHash","newHash","useHistory","setHistory","useMatch","useNavigate","optBasePath","base","useNavigationPrompt","onPopStateNavigation","undoNavigation","scrollTo","handler","cancelNavigation","returnValue","addInterceptor","add","removeInterceptor","delete","usePathParams","isSingle","useRoutes","routeProps","overridePathParams","useRedirectDetection","updateState","forceRender","route","useMatchRoute","mappedRoutes","arr","push","r","pathMatch"],"mappings":"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"}
package/dist/module.js CHANGED
@@ -1,2 +1,2 @@
1
- import t,{createContext as e,useRef as n,useLayoutEffect as r,useState as a,useCallback as o,useContext as i,useMemo as s,forwardRef as u}from"react";const c=e(""),l=e(null);function RouterProvider({basePath:e="",path:n,children:r}){return t.createElement(c.Provider,{value:e},t.createElement(l.Provider,{value:null!=n?n:null},r))}let h=!0;try{h=void 0===window}catch{}const d=new Set;let g=!1,f=!1,P=[0,0];function shouldCancelNavigation(){return P=[window.scrollX,window.scrollY],g?f:Array.from(d).some((t=>{const e=t();return!!e&&(f=!window.confirm(e),g=!0,setTimeout((()=>{g=!1,f=!1}),0),f)}))}function usePath(t){const e=i(l),n=useBasePath();t=t||n;const[,r]=a(getFormattedPath(t));return useLocationChange(o((({path:t})=>r(t)),[]),{basePath:t,inheritBasePath:!t,onInitial:!0}),e||getFormattedPath(t)}function useBasePath(){return i(c)}function useFullPath(){const[t,e]=a(getCurrentPath());return useLocationChange(o((({path:t})=>e(t)),[]),{inheritBasePath:!1}),t||"/"}function useHash({stripHash:t=!0}={}){const[e,n]=a(window.location.hash),i=o((()=>{const t=window.location.hash;t!==e&&n(t)}),[n,e]);return r((()=>(window.addEventListener("hashchange",i,!1),()=>window.removeEventListener("hashchange",i))),[i]),useLocationChange(i),t?e.substring(1):e}function getCurrentPath(){return h?"/":window.location.pathname||"/"}function getCurrentHash(){if(h){const t="/",e=t.indexOf("#");return t.substring(e)}return window.location.hash}function useLocationChange(t,{inheritBasePath:e=!0,basePath:a="",isActive:i,onInitial:s=!1}={}){if(h)return;const u=useBasePath();e&&u&&(a=u);const c=n(t);r((()=>{c.current=t}));const l=o((()=>{(void 0===i||isPredicateActive(i))&&(shouldCancelNavigation()||c.current(getFormattedLocation(a)))}),[i,a]);r((()=>(window.addEventListener("popstate",l),()=>window.removeEventListener("popstate",l))),[l]),function useMountedLayout(t,e,{onInitial:a=!1}={}){const o=n(a);r((()=>{o.current?t():o.current=!0}),e)}((()=>{(void 0===i||isPredicateActive(i))&&c.current(getFormattedLocation(a))}),[a,i],{onInitial:s})}function useHistory(){const[t,e]=a(getRavigerHistory());return useLocationChange(o((()=>e(getRavigerHistory())),[e])),t}function getRavigerHistory(){return h?{scrollRestoration:"manual",state:null}:{scrollRestoration:window.history.scrollRestoration,state:window.history.state}}function getFormattedPath(t){const e=getCurrentPath(),n=t&&!function isPathInBase(t,e){return!!(t&&e&&e.toLowerCase().startsWith(t.toLowerCase()))}(t,e);return null===e||n?null:decodeURIComponent(t?e.replace(function basePathMatcher(t){return new RegExp("^"+t,"i")}(t),"")||"/":e)}function getFormattedLocation(t){const e=getFormattedPath(t);return{basePath:t,path:e,pathname:e,fullPath:getCurrentPath(),search:window.location.search,hash:getCurrentHash(),host:window.location.host,hostname:window.location.hostname,href:window.location.href,origin:window.location.origin}}function isPredicateActive(t){return function isFunction(t){return!!t&&"function"==typeof t}(t)?t():t}const w=[null,null];function useRoutes(e,{basePath:n="",routeProps:i={},overridePathParams:s=!0,matchTrailingSlash:u=!0}={}){const c=usePath(n)&&getFormattedPath(n);!function useRedirectDetection(t,e){const[,n]=a({}),i=o((()=>n({})),[]);r((()=>{e!==getFormattedPath(t)&&i()}),[i,t,e])}(n,usePath(n));const l=function useMatchRoute(t,e,{routeProps:n,overridePathParams:r,matchTrailingSlash:a}){e=trailingMatch(e,a);const o=Array.isArray(t)?t:Object.entries(t).reduce(((t,[e,n])=>(t.push({path:e,fn:n}),t)),[]),i=useMatchers(o.map((t=>t.path)));if(null===e)return null;const[s,u]=getMatchParams(e,i);if(!s)return null;const c=o.find((t=>t.path==s.path));return c?c.fn(r?{...u,...n}:{...n,...u}):null}(e,c,{routeProps:i,overridePathParams:s,matchTrailingSlash:u});return l&&null!==c?t.createElement(RouterProvider,{basePath:n,path:c},l):null}function usePathParams(t,e={}){const n=!Array.isArray(t),[r,a]=usePathOptions(t,e);if(null===r)return n?null:w;const[o,i]=getMatchParams(r,a);return o?n?i:[o.path,i]:n?null:w}function useMatch(t,e={}){var n;const[r,a]=usePathOptions(t,e),o=a.find((({regex:t})=>null==r?void 0:r.match(t)));return null!==(n=null==o?void 0:o.path)&&void 0!==n?n:null}function usePathOptions(t,{basePath:e,matchTrailingSlash:n=!0}){const r=useMatchers(Array.isArray(t)?t:[t]);return[trailingMatch(usePath(e),n),r]}function useMatchers(t){return s((()=>t.map(createRouteMatcher)),[(e=t,[...e].sort().join(":"))]);var e}function getMatchParams(t,e){let n=null;const r=e.find((({regex:e})=>(n=t.match(e),!!n)));if(!r||null===n)return w;const a=r.props.reduce(((t,e,r)=>(t[e]=n[r+1],t)),{});return[r,a]}const p=/:[a-zA-Z_]+/g;function createRouteMatcher(t){var e,n;return{path:t,regex:new RegExp(`${"*"===t.substr(0,1)?"":"^"}${(n=t,n.replace(/[-\\^$+?.()|[\]{}]/g,"\\$&")).replace(p,"([^/]+)").replace(/\*/g,"")}${"*"===t.substr(-1)?"":"$"}`,"i"),props:(null!==(e=t.match(p))&&void 0!==e?e:[]).map((t=>t.substr(1)))}}function trailingMatch(t,e){return null===t||e&&t&&"/"===t[t.length-1]&&t.length>1&&(t=t.substring(0,t.length-1)),t}let v="";function navigate(t,e){if("string"!=typeof t)throw new Error('"url" must be a string, was provided a(n) '+typeof t);if(Array.isArray(null==e?void 0:e.query))throw new Error('"query" a serializable object or URLSearchParams');if(shouldCancelNavigation())return;if((null==e?void 0:e.query)&&(t+="?"+new URLSearchParams(e.query).toString()),v=t,function isAbsolute(t){return/^(?:[a-z]+:)?\/\//i.test(t)}(t)&&!function isCurrentOrigin(t){return window.location.origin===new URL(t).origin}(t))return void window.location.assign(t);(null==e?void 0:e.replace)?window.history.replaceState(null==e?void 0:e.state,"",t):window.history.pushState(null==e?void 0:e.state,"",t);const n=new PopStateEvent("popstate");n.__tag="raviger:navigation",dispatchEvent(n)}function useNavigationPrompt(t=!0,e="Are you sure you want to leave this page?"){h||(r((()=>{const onPopStateNavigation=()=>{shouldCancelNavigation()&&function undoNavigation(t){window.history.pushState(null,null,t),setTimeout((()=>{window.scrollTo(...P)}),0)}(v)};return window.addEventListener("popstate",onPopStateNavigation),()=>window.removeEventListener("popstate",onPopStateNavigation)}),[]),r((()=>{const handler=n=>{if(t)return n?function cancelNavigation(t,e){return t.preventDefault(),t.returnValue=e,e}(n,e):e};return function addInterceptor(t){window.addEventListener("beforeunload",t),d.add(t)}(handler),()=>function removeInterceptor(t){window.removeEventListener("beforeunload",t),d.delete(t)}(handler)}),[t,e]))}function useNavigate(t=""){const e=useBasePath();return o(((n,r)=>{const a=t||e;navigate(n.startsWith("/")?a+n:n,r)}),[e,t])}function useQueryParams(t=parseQuery,e=serializeQuery){const[n,r]=a(getQueryString()),i=o(((r,{overwrite:a=!0,replace:o=!1}={})=>{let i=getCurrentPath();r=a?r:{...t(n),...r};const s=e(r).toString();s&&(i+="?"+s),a||(i+=getCurrentHash()),navigate(i,{replace:o})}),[n,t,e]);return useLocationChange(o((()=>r(getQueryString())),[])),[t(n),i]}function parseQuery(t){const e=new URLSearchParams(t);return Object.fromEntries(e.entries())}function serializeQuery(t){return new URLSearchParams(Object.entries(t).filter((([,t])=>null!==t))).toString()}function getQueryString(){if(h){const t="/",e=t.indexOf("?");return-1===e?"":t.substring(e+1)}return window.location.search}function Redirect({to:t,query:e,replace:n=!0,merge:r=!0,state:a}){return useRedirect(usePath(),t,{query:e,replace:n,merge:r,state:a}),null}function useRedirect(t,e,{query:n,replace:a=!0,merge:o=!0,state:i}={}){const s=usePath(),[u]=useQueryParams(),c=getCurrentHash();let l=e;const h=new URLSearchParams({...o?u:{},...n}).toString();h&&(l+="?"+h),o&&c&&c.length&&(l+=c),r((()=>{s===t&&navigate(l,{replace:a,state:i})}),[t,l,a,s,i])}const m=u((function Link({href:e,basePath:n,replace:r,query:a,state:i,...s},u){e=getLinkHref(e,n=useLinkBasePath(n));const{onClick:c,target:l}=s,h=o((t=>{try{c&&c(t)}catch(e){throw t.preventDefault(),e}(function shouldTrap(t,e){return!t.defaultPrevented&&0===t.button&&!(e||"_self"===e)&&!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)})(t,l)&&(t.preventDefault(),navigate(t.currentTarget.href,{replace:r,query:a,state:i}))}),[c,l]);return t.createElement("a",{...s,href:e,onClick:h,ref:u})}));const y=u((function ActiveLink({basePath:e,className:n,exactActiveClass:r,activeClass:a,...o},i){e=useLinkBasePath(e);const s=useFullPath();let{href:u}=o;return u=function absolutePathName(t){return t.startsWith("/")?t:new URL(t,document.baseURI).pathname}(getLinkHref(u,e)),r&&s===u&&(n=`${null!=n?n:""} ${r}`.trim()),a&&s.startsWith(u)&&(n=`${null!=n?n:""} ${a}`.trim()),t.createElement(m,{...o,basePath:e,className:n,ref:i})}));function useLinkBasePath(t){const e=useBasePath();return"/"===t?"":t||e}function getLinkHref(t,e=""){return t.startsWith("/")?e+t:t}export{y as ActiveLink,m as Link,Redirect,RouterProvider,navigate,useBasePath,useFullPath,useHash,useHistory,useLocationChange,useMatch,useNavigate,useNavigationPrompt,usePath,usePathParams,useQueryParams,useRedirect,useRoutes};
1
+ import t,{createContext as e,useRef as n,useLayoutEffect as r,useState as a,useCallback as o,useContext as i,useMemo as s,forwardRef as u}from"react";const c=e(""),l=e(null);function RouterProvider({basePath:e="",path:n,children:r}){return t.createElement(c.Provider,{value:e},t.createElement(l.Provider,{value:null!=n?n:null},r))}let h=!0;try{h=void 0===window}catch{}const d=new Set;let g=!1,f=!1,p=[0,0];function shouldCancelNavigation(){return p=[window.scrollX,window.scrollY],g?f:Array.from(d).some((t=>{const e=t();return!!e&&(f=!window.confirm(e),g=!0,setTimeout((()=>{g=!1,f=!1}),0),f)}))}function usePath(t){const e=i(l),n=useBasePath();t=t||n;const[,r]=a(getFormattedPath(t));return useLocationChange(o((({path:t})=>r(t)),[]),{basePath:t,inheritBasePath:!t,onInitial:!0}),e||getFormattedPath(t)}function useBasePath(){return i(c)}function useFullPath(){const[t,e]=a(getCurrentPath());return useLocationChange(o((({path:t})=>e(t)),[]),{inheritBasePath:!1}),t||"/"}function useHash({stripHash:t=!0}={}){const[e,n]=a(window.location.hash),i=o((()=>{const t=window.location.hash;t!==e&&n(t)}),[n,e]);return r((()=>(window.addEventListener("hashchange",i,!1),()=>window.removeEventListener("hashchange",i))),[i]),useLocationChange(i),t?e.substring(1):e}function getCurrentPath(){return h?"/":window.location.pathname||"/"}function getCurrentHash(){if(h){const t="/",e=t.indexOf("#");return t.substring(e)}return window.location.hash}function useLocationChange(t,{inheritBasePath:e=!0,basePath:a="",isActive:i,onInitial:s=!1}={}){if(h)return;const u=useBasePath();e&&u&&(a=u);const c=n(t);r((()=>{c.current=t}));const l=o((t=>{if(void 0!==i&&!isPredicateActive(i))return;if(shouldCancelNavigation())return;const e=t.__method,n="push"===e?"push":"replace"===e?"replace":"pop";c.current(getFormattedLocation(a,n))}),[i,a]);r((()=>(window.addEventListener("popstate",l),()=>window.removeEventListener("popstate",l))),[l]),function useMountedLayout(t,e,{onInitial:a=!1}={}){const o=n(a);r((()=>{o.current?t():o.current=!0}),e)}((()=>{(void 0===i||isPredicateActive(i))&&c.current(getFormattedLocation(a))}),[a,i],{onInitial:s})}function useHistory(){const[t,e]=a(getRavigerHistory());return useLocationChange(o((()=>e(getRavigerHistory())),[e])),t}function getRavigerHistory(){return h?{scrollRestoration:"manual",state:null}:{scrollRestoration:window.history.scrollRestoration,state:window.history.state}}function getFormattedPath(t){const e=getCurrentPath(),n=t&&!function isPathInBase(t,e){return!!(t&&e&&e.toLowerCase().startsWith(t.toLowerCase()))}(t,e);return null===e||n?null:decodeURIComponent(t?e.replace(function basePathMatcher(t){return new RegExp("^"+t,"i")}(t),"")||"/":e)}function getFormattedLocation(t,e){const n=getFormattedPath(t);return{basePath:t,path:n,pathname:n,fullPath:getCurrentPath(),search:window.location.search,hash:getCurrentHash(),host:window.location.host,hostname:window.location.hostname,href:window.location.href,origin:window.location.origin,initiatedBy:e}}function isPredicateActive(t){return function isFunction(t){return!!t&&"function"==typeof t}(t)?t():t}const P=[null,null];function useRoutes(e,{basePath:n="",routeProps:i={},overridePathParams:s=!0,matchTrailingSlash:u=!0}={}){const c=usePath(n)&&getFormattedPath(n);!function useRedirectDetection(t,e){const[,n]=a({}),i=o((()=>n({})),[]);r((()=>{e!==getFormattedPath(t)&&i()}),[i,t,e])}(n,usePath(n));const l=function useMatchRoute(t,e,{routeProps:n,overridePathParams:r,matchTrailingSlash:a}){e=trailingMatch(e,a);const o=Array.isArray(t)?t:Object.entries(t).reduce(((t,[e,n])=>(t.push({path:e,fn:n}),t)),[]),i=useMatchers(o.map((t=>t.path)));if(null===e)return null;const[s,u]=getMatchParams(e,i);if(!s)return null;const c=o.find((t=>t.path==s.path));return c?c.fn(r?{...u,...n}:{...n,...u}):null}(e,c,{routeProps:i,overridePathParams:s,matchTrailingSlash:u});return l&&null!==c?t.createElement(RouterProvider,{basePath:n,path:c},l):null}function usePathParams(t,e={}){const n=!Array.isArray(t),[r,a]=usePathOptions(t,e);if(null===r)return n?null:P;const[o,i]=getMatchParams(r,a);return o?n?i:[o.path,i]:n?null:P}function useMatch(t,e={}){var n;const[r,a]=usePathOptions(t,e),o=a.find((({regex:t})=>null==r?void 0:r.match(t)));return null!==(n=null==o?void 0:o.path)&&void 0!==n?n:null}function usePathOptions(t,{basePath:e,matchTrailingSlash:n=!0}){const r=useMatchers(Array.isArray(t)?t:[t]);return[trailingMatch(usePath(e),n),r]}function useMatchers(t){return s((()=>t.map(createRouteMatcher)),[(e=t,[...e].sort().join(":"))]);var e}function getMatchParams(t,e){let n=null;const r=e.find((({regex:e})=>(n=t.match(e),!!n)));if(!r||null===n)return P;const a=r.props.reduce(((t,e,r)=>(t[e]=n[r+1],t)),{});return[r,a]}const w=/:[a-zA-Z_]+/g;function createRouteMatcher(t){var e,n;return{path:t,regex:new RegExp(`${"*"===t.substr(0,1)?"":"^"}${(n=t,n.replace(/[-\\^$+?.()|[\]{}]/g,"\\$&")).replace(w,"([^/]+)").replace(/\*/g,"")}${"*"===t.substr(-1)?"":"$"}`,"i"),props:(null!==(e=t.match(w))&&void 0!==e?e:[]).map((t=>t.substr(1)))}}function trailingMatch(t,e){return null===t||e&&t&&"/"===t[t.length-1]&&t.length>1&&(t=t.substring(0,t.length-1)),t}let v="";function navigate(t,e){if("string"!=typeof t)throw new Error('"url" must be a string, was provided a(n) '+typeof t);if(Array.isArray(null==e?void 0:e.query))throw new Error('"query" a serializable object or URLSearchParams');if(shouldCancelNavigation())return;if((null==e?void 0:e.query)&&(t+="?"+new URLSearchParams(e.query).toString()),v=t,function isAbsolute(t){return/^(?:[a-z]+:)?\/\//i.test(t)}(t)&&!function isCurrentOrigin(t){return window.location.origin===new URL(t).origin}(t))return void window.location.assign(t);const n=!!(null==e?void 0:e.replace);n?window.history.replaceState(null==e?void 0:e.state,"",t):window.history.pushState(null==e?void 0:e.state,"",t);const r=new PopStateEvent("popstate");r.__tag="raviger:navigation",r.__method=n?"replace":"push",dispatchEvent(r)}function useNavigationPrompt(t=!0,e="Are you sure you want to leave this page?"){h||(r((()=>{const onPopStateNavigation=()=>{shouldCancelNavigation()&&function undoNavigation(t){window.history.pushState(null,null,t),setTimeout((()=>{window.scrollTo(...p)}),0)}(v)};return window.addEventListener("popstate",onPopStateNavigation),()=>window.removeEventListener("popstate",onPopStateNavigation)}),[]),r((()=>{const handler=n=>{if(t)return n?function cancelNavigation(t,e){return t.preventDefault(),t.returnValue=e,e}(n,e):e};return function addInterceptor(t){window.addEventListener("beforeunload",t),d.add(t)}(handler),()=>function removeInterceptor(t){window.removeEventListener("beforeunload",t),d.delete(t)}(handler)}),[t,e]))}function useNavigate(t=""){const e=useBasePath();return o(((n,r)=>{const a=t||e;navigate(n.startsWith("/")?a+n:n,r)}),[e,t])}function useQueryParams(t=parseQuery,e=serializeQuery){const[n,r]=a(getQueryString()),i=o(((r,{overwrite:a=!0,replace:o=!1}={})=>{let i=getCurrentPath();r=a?r:{...t(n),...r};const s=e(r).toString();s&&(i+="?"+s),a||(i+=getCurrentHash()),navigate(i,{replace:o})}),[n,t,e]);return useLocationChange(o((()=>r(getQueryString())),[])),[t(n),i]}function parseQuery(t){const e=new URLSearchParams(t);return Object.fromEntries(e.entries())}function serializeQuery(t){return new URLSearchParams(Object.entries(t).filter((([,t])=>null!==t))).toString()}function getQueryString(){if(h){const t="/",e=t.indexOf("?");return-1===e?"":t.substring(e+1)}return window.location.search}function Redirect({to:t,query:e,replace:n=!0,merge:r=!0,state:a}){return useRedirect(usePath(),t,{query:e,replace:n,merge:r,state:a}),null}function useRedirect(t,e,{query:n,replace:a=!0,merge:o=!0,state:i}={}){const s=usePath(),[u]=useQueryParams(),c=getCurrentHash();let l=e;const h=new URLSearchParams({...o?u:{},...n}).toString();h&&(l+="?"+h),o&&c&&c.length&&(l+=c),r((()=>{s===t&&navigate(l,{replace:a,state:i})}),[t,l,a,s,i])}const m=u((function Link({href:e,basePath:n,replace:r,query:a,state:i,...s},u){e=getLinkHref(e,n=useLinkBasePath(n));const{onClick:c,target:l}=s,h=o((t=>{try{c&&c(t)}catch(e){throw t.preventDefault(),e}(function shouldTrap(t,e){return!t.defaultPrevented&&0===t.button&&!(e||"_self"===e)&&!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)})(t,l)&&(t.preventDefault(),navigate(t.currentTarget.href,{replace:r,query:a,state:i}))}),[c,l]);return t.createElement("a",{...s,href:e,onClick:h,ref:u})}));const y=u((function ActiveLink({basePath:e,className:n,exactActiveClass:r,activeClass:a,...o},i){e=useLinkBasePath(e);const s=useFullPath();let{href:u}=o;return u=function absolutePathName(t){return t.startsWith("/")?t:new URL(t,document.baseURI).pathname}(getLinkHref(u,e)),r&&s===u&&(n=`${null!=n?n:""} ${r}`.trim()),a&&s.startsWith(u)&&(n=`${null!=n?n:""} ${a}`.trim()),t.createElement(m,{...o,basePath:e,className:n,ref:i})}));function useLinkBasePath(t){const e=useBasePath();return"/"===t?"":t||e}function getLinkHref(t,e=""){return t.startsWith("/")?e+t:t}export{y as ActiveLink,m as Link,Redirect,RouterProvider,navigate,useBasePath,useFullPath,useHash,useHistory,useLocationChange,useMatch,useNavigate,useNavigationPrompt,usePath,usePathParams,useQueryParams,useRedirect,useRoutes};
2
2
  //# sourceMappingURL=module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sources":["../src/context.tsx","../src/node.ts","../src/intercept.ts","../src/location.ts","../src/hooks.ts","../src/typeChecks.ts","../src/router.tsx","../src/navigate.ts","../src/querystring.ts","../src/redirect.ts","../src/Link.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["BasePathContext","createContext","PathContext","RouterProvider","basePath","path","children","React","createElement","Provider","value","isNode","undefined","window","interceptors","Set","hasIntercepted","hasUserCancelled","lastScroll","shouldCancelNavigation","scrollX","scrollY","Array","from","some","interceptor","prompt","confirm","setTimeout","usePath","contextPath","useContext","contextBasePath","useBasePath","setPath","useState","getFormattedPath","useLocationChange","useCallback","newPath","inheritBasePath","onInitial","useFullPath","getCurrentPath","useHash","stripHash","hash","setHash","location","handleHash","newHash","useLayoutEffect","addEventListener","removeEventListener","substring","pathname","getCurrentHash","hashIndex","indexOf","setFn","isActive","routerBasePath","setRef","useRef","current","onPopState","isPredicateActive","getFormattedLocation","useMountedLayout","fn","deps","hasMounted","useHistory","history","setHistory","getRavigerHistory","scrollRestoration","state","baseMissing","isPathInBase","toLowerCase","startsWith","decodeURIComponent","replace","basePathMatcher","RegExp","fullPath","search","host","hostname","href","origin","predicate","isFunction","obj","emptyPathResult","useRoutes","routes","routeProps","overridePathParams","matchTrailingSlash","useRedirectDetection","updateState","forceRender","route","useMatchRoute","trailingMatch","mappedRoutes","isArray","Object","entries","reduce","arr","push","matchers","useMatchers","map","r","pathMatch","props","getMatchParams","routeMatch","find","usePathParams","options","isSingle","usePathOptions","useMatch","match","regex","_a","routeOrRoutes","useMemo","createRouteMatcher","params","sort","join","routeMatchers","pathParams","prop","i","pathPartRegex","string","substr","paramName","length","lastPath","navigate","url","Error","query","URLSearchParams","toString","isAbsolute","test","isCurrentOrigin","URL","assign","replaceState","pushState","event","PopStateEvent","__tag","dispatchEvent","useNavigationPrompt","onPopStateNavigation","undoNavigation","scrollTo","handler","e","cancelNavigation","preventDefault","returnValue","addInterceptor","add","removeInterceptor","delete","useNavigate","optBasePath","base","useQueryParams","parseFn","parseQuery","serializeFn","serializeQuery","querystring","setQuerystring","getQueryString","setQueryParams","overwrite","serialized","q","fromEntries","queryParams","filter","v","ssrPath","queryIndex","Redirect","to","merge","useRedirect","predicateUrl","targetUrl","currentPath","currentQuery","targetQuery","RefLink","forwardRef","Link","ref","getLinkHref","useLinkBasePath","onClick","target","handleClick","ex","shouldTrap","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","currentTarget","ActiveLinkRef","ActiveLink","className","exactActiveClass","activeClass","absolutePathName","document","baseURI","trim"],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sources":["../src/context.tsx","../src/node.ts","../src/intercept.ts","../src/location.ts","../src/hooks.ts","../src/typeChecks.ts","../src/router.tsx","../src/navigate.ts","../src/querystring.ts","../src/redirect.ts","../src/Link.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["BasePathContext","createContext","PathContext","RouterProvider","basePath","path","children","React","createElement","Provider","value","isNode","undefined","window","interceptors","Set","hasIntercepted","hasUserCancelled","lastScroll","shouldCancelNavigation","scrollX","scrollY","Array","from","some","interceptor","prompt","confirm","setTimeout","usePath","contextPath","useContext","contextBasePath","useBasePath","setPath","useState","getFormattedPath","useLocationChange","useCallback","newPath","inheritBasePath","onInitial","useFullPath","getCurrentPath","useHash","stripHash","hash","setHash","location","handleHash","newHash","useLayoutEffect","addEventListener","removeEventListener","substring","pathname","getCurrentHash","hashIndex","indexOf","setFn","isActive","routerBasePath","setRef","useRef","current","onPopState","event","isPredicateActive","method","__method","initiatedBy","getFormattedLocation","useMountedLayout","fn","deps","hasMounted","useHistory","history","setHistory","getRavigerHistory","scrollRestoration","state","baseMissing","isPathInBase","toLowerCase","startsWith","decodeURIComponent","replace","basePathMatcher","RegExp","fullPath","search","host","hostname","href","origin","predicate","isFunction","obj","emptyPathResult","useRoutes","routes","routeProps","overridePathParams","matchTrailingSlash","useRedirectDetection","updateState","forceRender","route","useMatchRoute","trailingMatch","mappedRoutes","isArray","Object","entries","reduce","arr","push","matchers","useMatchers","map","r","pathMatch","props","getMatchParams","routeMatch","find","usePathParams","options","isSingle","usePathOptions","useMatch","match","regex","_a","routeOrRoutes","useMemo","createRouteMatcher","params","sort","join","routeMatchers","pathParams","prop","i","pathPartRegex","string","substr","paramName","length","lastPath","navigate","url","Error","query","URLSearchParams","toString","isAbsolute","test","isCurrentOrigin","URL","assign","replaceState","pushState","PopStateEvent","__tag","dispatchEvent","useNavigationPrompt","onPopStateNavigation","undoNavigation","scrollTo","handler","e","cancelNavigation","preventDefault","returnValue","addInterceptor","add","removeInterceptor","delete","useNavigate","optBasePath","base","useQueryParams","parseFn","parseQuery","serializeFn","serializeQuery","querystring","setQuerystring","getQueryString","setQueryParams","overwrite","serialized","q","fromEntries","queryParams","filter","v","ssrPath","queryIndex","Redirect","to","merge","useRedirect","predicateUrl","targetUrl","currentPath","currentQuery","targetQuery","RefLink","forwardRef","Link","ref","getLinkHref","useLinkBasePath","onClick","target","handleClick","ex","shouldTrap","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","currentTarget","ActiveLinkRef","ActiveLink","className","exactActiveClass","activeClass","absolutePathName","document","baseURI","trim"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "raviger",
3
- "version": "5.2.1",
3
+ "version": "5.3.0",
4
4
  "description": "React routing with hooks",
5
5
  "keywords": [
6
6
  "react",
@@ -112,6 +112,5 @@
112
112
  "tslib": "^2.8.1",
113
113
  "typescript": "^5.8.2",
114
114
  "typescript-eslint": "^8.26.1"
115
- },
116
- "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
115
+ }
117
116
  }
package/CHANGELOG.md DELETED
@@ -1,269 +0,0 @@
1
- # Changelog
2
- All notable changes to this project will be documented in this file.
3
-
4
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
-
7
- ## [5.2.0] - 2025-12-10
8
- ### Added
9
- - `<Redirect>` support the `state` param
10
-
11
- ## [5.1.0] - 2025-09-30
12
- ### Added
13
- - `<Link>` props for `NavigateOptions`
14
-
15
- ## [5.0.0] - 2025-06-29
16
- ### Added
17
- - Added support for `useRoutes` to take an array to specify route matching priority
18
- - Support for React 19
19
- ### Changed
20
- - **BREAKING**: changed parameters on `useQueryParams` setter options from `replace, replaceHistory` to `overwrite, replace` to keep consistency with `replace` on other navigation functions.
21
- - Added support for underscore `_` in path part matchers
22
- - Removed support for Node versions older than 20
23
-
24
- ## [4.2.1] - 2025-04-08
25
- ### Added
26
- - `historyReplace` to setQuery option on `useQuery` hook result, to control how history is updated
27
-
28
- ## [4.1.2] - 2022-11-02
29
- ### Fixed
30
- - `useHash` undefined error from missing prop on event
31
-
32
- ## [4.1.0] - 2022-04-24
33
- ### Added
34
- - Support for React 18
35
-
36
- ## [4.0.0] - 2022-03-11
37
- ### Added
38
- - `useHistory`
39
- - `usePath`
40
- ### Changed
41
- - **BREAKING**: `navigate` now has `options` object instead of overloads
42
- - **BREAKING**: `useNavigate` uses updated `navigate` params
43
- - **BREAKING**: `useLocationChange` now invokes the setter with a `RavigerLocation` object instead of the `path` string
44
- ### Fixed
45
- - `usePath` getting an old path if `navigate` was called during the initial render
46
-
47
- ## [3.1.0] - 2022-01-17
48
- ### Added
49
- - `__tag` to the PopState events dispatched by `navigate`
50
-
51
- ## [3.0.0] - 2021-11-02
52
- ### Changed
53
- - **BREAKING**: `usePath` returns `decodeURIComponent`-ed path
54
- - **BREAKING**: `useRoutes`, `useMatch`, and `usePathParams` match paths that have been `decodeURIComponent`-ed (e.g. `/weird (route)` will match a path of `/weird%20(route)`)
55
- - **BREAKING**: type `RouteParams` renamed to `Routes`
56
- - **BREAKING**: `usePathParams` return type now depends on the input params. When a string it returns just the props, when an array it returns `[path, props]`
57
- ### Added
58
- - `RouterProvider`
59
- ### Fixed
60
- - `useRoutes` function-values to use props type `string` (was `any`)
61
-
62
- ## [2.6.0] - 2021-10-15
63
- ### Added
64
- - `useMatch` hook
65
- - `usePathParams` hook
66
-
67
- ## [2.5.5] - 2021-10-03
68
- ### Fixed
69
- - `<Link basePath='/'>` not skipping context `basePath`
70
-
71
- ## [2.5.4] - 2021-08-27
72
- ### Fixed
73
- - terser mangling `location` in querystring methods
74
-
75
- ## [2.5.3] - 2021-08-25
76
- ### Changed
77
- - Updated transpilation to reduce size, remove Babel
78
-
79
- ## [2.5.2] - 2021-08-19
80
- ### Fixed
81
- - `<ActiveLink>` matching in nested contexts
82
- - `<ActiveLink>` matching for relative paths
83
-
84
- ## [2.5.0] - 2021-08-15
85
- ### Changed
86
- - `src/` to typescript
87
- - types are now natively generated from source and provided as declaration files
88
- - Minimum NodeJS version is now 12
89
-
90
- ## [2.4.2] - 2021-07-16
91
- ### Fixed
92
- - `useRoutes` not updating after an internal `<Redirect />` updates the location
93
-
94
- ## [2.4.1] - 2021-06-28
95
- ### Changed
96
- - Rollup build to `keep_fnames` to retain component name checking
97
-
98
- ## [2.4.0] - 2021-06-28
99
- ### Added
100
- - `navigate` support for urls with different origins (external navigation)
101
-
102
- ## [2.3.1] - 2021-06-18
103
- ### Added
104
- - Sourcemaps to published package
105
- ### Changed
106
- - `useNavigationPrompt` now restores scroll position after undoing navigation
107
-
108
- ## [2.3.0] - 2021-06-18
109
- ### Changed
110
- - `useNavigationPrompt` now intercepts browser back/forward button navigation
111
-
112
- ## [2.2.0] - 2021-06-07
113
- ### Changed
114
- - Added support for React@17 in `peerDependencies`
115
-
116
- ## [2.1.0] - 2021-05-02
117
- ### Added
118
- - `options.onInitial` parameter for `useLocationChange` that controls the first render behavior. `default: false`.
119
- ### Fixed
120
- - `useLocationChange` invoking the setter on initial render. This was not intended and was an unannounced change from the v1 behavior, so reverting it is not considered an API change but a bugfix.
121
-
122
- ## [2.0.2] - 2021-03-22
123
- ### Added
124
- - `state` parameter for `navigate`
125
-
126
- ## [2.0.1] - 2021-01-07
127
- ### Removed
128
- - `engine` requirement for 'less than' Node 15
129
-
130
- ## [2.0.0] - 2020-11-17
131
- ### Changed
132
- - **BREAKING**: `useRoutes` and `usePath` will return `null` if `basePath` is provided and missing from path
133
- - **BREAKING**: `useLocationChange` will invoke callback with `null` if `basePath` is provided and missing from path
134
- - **BREAKING**: `useLocationChange` option `inheritBasePath` now accepts any false value (previously required `false` with `===`)
135
- - **BREAKING**: `useRoutes` option `matchTrailingSlash` default to `true` (was `false`)
136
- - **BREAKING**: removed `linkRef` prop from `Link` and `ActiveLink`, replaced with standard React `forwardRef`
137
- - **BREAKING**: `useQueryParams` setter second argument changed from `replace` to options param with `replace` property
138
- - **BREAKING**: `useRedirect` parameters changed to match properties on `Redirect` component
139
- ### Added
140
- - `useFullPath` for getting the full path, ignoring any context-provided `basePath`
141
- - Support for Node 14
142
- - Rollup-plugin-terser for builds
143
- ### Removed
144
- - Support for Node 8
145
-
146
- ## [1.6.0] - 2020-10-22
147
- ### Added
148
- - `useNavigate` hook
149
-
150
- ## [1.5.1] - 2020-10-09
151
- ### Fixed
152
- - `matchTrailingSlash` not matching on the root route `/`
153
-
154
- ## [1.5.0] - 2020-10-09
155
- ### Added
156
- - `query` prop to `<Redirect>`
157
-
158
- ## [1.4.6] - 2020-10-07
159
- ### Fixed
160
- - `useRoutes` path tracking with `usePath` causing improper child invocations
161
-
162
- ## [1.4.5] - 2020-07-31
163
- ### Fixed
164
- - `navigate` handling of `replace` in edge cases for `replaceOrQuery`
165
-
166
- ## [1.4.4] - 2020-06-26
167
- ### Fixed
168
- - `basePath` matches not using case-insensitive like route paths
169
-
170
- ## [1.4.3] - 2020-05-12
171
- ### Fixed
172
- - `useQueryParam` using a `?` when no query is set
173
- - typescript declaration for `useNavigationPrompt`
174
-
175
- ## [1.4.2] - 2020-04-30
176
- ### Fixed
177
- - `useRoutes` error when changing the number of routes
178
-
179
- ## [1.4.1] - 2020-04-28
180
- ### Fixed
181
- - `usePath` sets `inheritBasePath: false` when using provided `basePath`
182
-
183
- ## [1.4.0] - 2020-03-18
184
- ### Added
185
- - `<Redirect>` Component
186
- - `useHash` hook
187
-
188
- ## [1.3.0] - 2020-01-27
189
- ### Added
190
- - `<Link basePath>` prop override.
191
- ### Fixed
192
- - double decoding on `useQueryParams`
193
-
194
- ## [1.2.0] - 2020-01-21
195
- ### Changed
196
- - Internal React-Context setup, reduces wasteful re-renders
197
-
198
- ## [1.1.1] - 2020-01-09
199
- ### Fixed
200
- - `replace: false` on `setQueryParams` replacing `location.hash`
201
-
202
- ## [1.1.0] - 2019-11-21
203
- ### Added
204
- - `linkRef` prop to `<Link>`
205
-
206
- ## [1.0.0] - 2019-11-12
207
- ### Added
208
- - `useLocationChange`: similar to use `usePopState`, but uses different parameters
209
- ### Removed
210
- - `usePopState` hook
211
-
212
- ## [0.5.9] - 2019-10-28
213
- ### Added
214
- - `useNavigationPrompt` for confirming navigation changes
215
-
216
- ## [0.5.8] - 2019-10-14
217
- ### Fixed
218
- - `<Link target="_blank" />` triggering local navigation
219
-
220
- ## [0.5.7] - 2019-09-26
221
- ### Added
222
- - `<ActiveLink />`
223
-
224
- ## [0.5.5] - 2019-09-23
225
- ### Added
226
- - `useRoutes` option `matchTrailingSlash`
227
-
228
- ## [0.5.4] - 2019-09-16
229
- ### Added
230
- - typescript declarations
231
-
232
- ## [0.5.0] - 2019-09-13
233
- ### Changed
234
- - `useRoutes` second parameter from `basePath` to `options`
235
- ### Added
236
- - `useRoutes` option `routeProps`
237
- - `useRoutes` option `overridePathParams`
238
-
239
- ## [0.4.0] - 2019-09-12
240
- ### Added
241
- - `useBasePath` hook to retrieve the basePath
242
-
243
- ## [0.3.11] - 2019-09-09
244
- ### Fixed
245
- - `<Link>` cmd key detection
246
-
247
- ## [0.3.9] - 2019-08-29
248
- ### Added
249
- - `navigate` checks `url` param
250
-
251
- ## [0.3.8] - 2019-08-27
252
- ### Fixed
253
- - `useRedirect` adding null query
254
-
255
- ## [0.3.6] - 2019-08-27
256
- ### Fixed
257
- - Rollup dist output
258
-
259
- ## [0.3.4] - 2019-08-21
260
- ### Added
261
- - `useRedirect` hook
262
-
263
- ## [0.3.3] - 2019-08-21
264
- ### Added
265
- - `navigate(url, queryStringObj)` overload
266
-
267
- ## [0.3.2] - 2019-08-08
268
- ### Added
269
- - rollup output for module and cjs