🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

vue-i18n-routing

Package Overview
Dependencies
Maintainers
1
Versions
239
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vue-i18n-routing - npm Package Compare versions

Comparing version

to
0.0.0-5c20650

6

dist/vue-i18n-routing.cjs.js

@@ -1,5 +0,5 @@

"use strict";var fe=Object.defineProperty,de=Object.defineProperties;var he=Object.getOwnPropertyDescriptors;var D=Object.getOwnPropertySymbols;var G=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable;var B=(e,t,a)=>t in e?fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,T=(e,t)=>{for(var a in t||(t={}))G.call(t,a)&&B(e,a,t[a]);if(D)for(var a of D(t))H.call(t,a)&&B(e,a,t[a]);return e},N=(e,t)=>de(e,he(t));var W=(e,t)=>{var a={};for(var o in e)G.call(e,o)&&t.indexOf(o)<0&&(a[o]=e[o]);if(e!=null&&D)for(var o of D(e))t.indexOf(o)<0&&H.call(e,o)&&(a[o]=e[o]);return a};Object.defineProperty(exports,"__esModule",{value:!0});exports[Symbol.toStringTag]="Module";var _=require("vue-demi"),S=require("@intlify/vue-router-bridge"),J=require("@intlify/vue-i18n-bridge");function _e(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var me=_e(S);/*!
* shared v9.2.0-beta.30
"use strict";var Se=Object.defineProperty,Ee=Object.defineProperties;var Pe=Object.getOwnPropertyDescriptors;var j=Object.getOwnPropertySymbols;var ae=Object.prototype.hasOwnProperty,le=Object.prototype.propertyIsEnumerable;var oe=(e,t,o)=>t in e?Se(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,v=(e,t)=>{for(var o in t||(t={}))ae.call(t,o)&&oe(e,o,t[o]);if(j)for(var o of j(t))le.call(t,o)&&oe(e,o,t[o]);return e},X=(e,t)=>Ee(e,Pe(t));var ne=(e,t)=>{var o={};for(var a in e)ae.call(e,a)&&t.indexOf(a)<0&&(o[a]=e[a]);if(e!=null&&j)for(var a of j(e))t.indexOf(a)<0&&le.call(e,a)&&(o[a]=e[a]);return o};Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var h=require("vue-demi"),L=require("@intlify/vue-router-bridge"),O=require("@intlify/vue-i18n-bridge");function ye(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var Ne=ye(L);/*!
* shared v9.2.0-beta.34
* (c) 2022 kazuya kawaguchi
* Released under the MIT License.
*/const K=Object.assign,Re=Array.isArray,ge=e=>typeof e=="function",F=e=>typeof e=="string",Le=e=>typeof e=="boolean",Ee=e=>typeof e=="symbol",pe=e=>e!==null&&typeof e=="object",ve=/\/$|\/\?/;function C(e="",t=!1){return t?ve.test(e):e.endsWith("/")}function Se(e="",t=!1){if(!t)return(C(e)?e.slice(0,-1):e)||"/";if(!C(e,!0))return e||"/";const[a,...o]=e.split("?");return(a.slice(0,-1)||"/")+(o.length?`?${o.join("?")}`:"")}function Ae(e="",t=!1){if(!t)return e.endsWith("/")?e:e+"/";if(C(e,!0))return e||"/";const[a,...o]=e.split("?");return a+"/"+(o.length?`?${o.join("?")}`:"")}const Ie=typeof window!="undefined";function Te(e,t){typeof console!="undefined"&&(console.warn("[vue-i18n-routing] "+e),t&&console.warn(t.stack))}function Z(e){e=e||[];const t=[];for(const a of e)F(a)?t.push({code:a}):t.push(a);return t}function j(e,t){return _.isRef(e.locale)&&t==="composition"}function ee(e){return"global"in e&&"mode"in e}function x(e){return ee(e)?j(e.global,e.mode)?e.global.locale.value:e.global.locale:e.locale.value}function te(e,t){ee(e)?j(e.global,e.mode)?e.global.locale.value=t:e.global.locale=t:_.isRef(e.locale)&&(e.locale.value=t)}function Fe(e,t,a){return e.replace(/\/+$/,"")+(t?"/":"")||(a?"":"/")}function Q(e){return S.isVueRouter4,_.isRef(e)?e.value:e}function ae(e){return F(e)?e:Ee(e)?e.toString():"(null)"}function Y(e,t,{defaultLocale:a,strategy:o,routesNameSeparator:l,defaultLocaleRouteNameSuffix:n}){let r=ae(e)+(o==="no_prefix"?"":l+t);return t===a&&o==="prefix_and_default"&&(r+=l+n),r}function oe(e,t){return ge(e)?e(t):e}const y={PREFIX:"prefix",PREFIX_EXCEPT_DEFAULT:"prefix_except_default",PREFIX_AND_DEFAULT:"prefix_and_default",NO_PREFIX:"no_prefix"},$="",U=y.PREFIX_EXCEPT_DEFAULT,ne=!1,O="___",M="default",Pe="ltr",le="",ye=new Set([y.PREFIX_AND_DEFAULT,y.PREFIX_EXCEPT_DEFAULT]);function b(e=S.useRoute(),{router:t=S.useRouter(),routesNameSeparator:a=O}={}){const o=a||t.__routesNameSeparator,l=_.unref(e);return l.name?ae(l.name).split(o)[0]:null}function re(e,t,a){const o=q(e,t,a);return o==null?"":_.isVue3?o.redirectedFrom||o.fullPath:o.route.redirectedFrom||o.route.fullPath}function ce(e,t,a){const o=q(e,t,a);return o==null?void 0:_.isVue3?o:o.route}function De(e,t,a){const o=q(e,t,a);return o==null?void 0:_.isVue3?o:o.location}function q(e,t,{router:a=S.useRouter(),i18n:o=J.useI18n(),defaultLocale:l=$,defaultLocaleRouteNameSuffix:n=M,routesNameSeparator:r=O,strategy:s=U,trailingSlash:u=!1}={}){const i=a.__defaultLocaleRouteNameSuffix||n,f=a.__defaultLocale||l,c=a.__routesNameSeparator||r,m=a.__strategy||s,R=t||x(o);let L=e;F(e)&&(L[0]==="/"?L={path:e}:L={name:e});let h=K({},L);if(h.path&&!h.name){const d=a.resolve(h),g=_.isVue3?d:d.route,A=b(g);F(A)?h={name:Y(A,R,{defaultLocale:f,strategy:m,routesNameSeparator:c,defaultLocaleRouteNameSuffix:i}),params:g.params,query:g.query,hash:g.hash}:(!(R===l&&ye.has(m))&&m!==y.NO_PREFIX&&(h.path=`/${R}${h.path}`),h.path=u?Ae(h.path,!0):Se(h.path,!0))}else{h.name=Y(h.name,R,{defaultLocale:f,strategy:m,routesNameSeparator:c,defaultLocaleRouteNameSuffix:i});const{params:d}=h;d&&d["0"]===void 0&&d.pathMatch&&(d["0"]=d.pathMatch)}const E=a.resolve(h);return(_.isVue3?E.name:E.route.name)?E:a.resolve(e)}function V(e,t){const a=t&&t.route||S.useRoute(),o=b(a,t);if(!o)return"";const i=!_.isVue3&&_.isRef(a)?a.value:a,{params:l}=i,n=W(i,["params"]),r={},s=K({},n,{name:o,params:N(T(T({},l),r),{0:l.pathMatch})});return re(s,e,t)}function Ne({addDirAttribute:e=!1,addSeoAttributes:t=!1,strategy:a=U,defaultLocale:o=$,route:l=S.useRoute(),router:n=S.useRouter(),i18n:r=J.useI18n()}={}){const s=n,u=o||s.__defaultLocale,i=a||s.__strategy,f=_.ref({htmlAttrs:{},link:[],meta:[]});function c(){f.value={htmlAttrs:{},link:[],meta:[]}}function m(R){if(r.locales==null||r.__baseUrl==null)return;const L=x(r),h=Z(r.locales.value).find(g=>g.code===L)||{code:L},E=h.iso,d=h.dir||n.__defaultDirection;if(e&&(f.value.htmlAttrs.dir=d),t&&L&&r.locales){E&&(f.value.htmlAttrs.lang=E);const g=r.locales.value;xe(g,r.__baseUrl,f.value.link,{defaultLocale:u,strategy:i,route:l,router:n,i18n:r}),$e(r.__baseUrl,f.value.link,t,{route:R,router:n,i18n:r}),Ue(h,E,f.value.meta),Oe(g,E,f.value.meta)}}if(Ie)if(_.isVue3){const R=_.watchEffect(()=>{c(),m(Q(s.currentRoute))});_.onUnmounted(()=>R())}else{const R=s.afterEach((L,h)=>{c(),m(L)});_.onUnmounted(()=>R()),m(l)}else m(Q(s.currentRoute));return f}function xe(e,t,a,o){if(o.strategy===y.NO_PREFIX)return;const l=new Map;for(const n of e){const r=n.iso;if(!r){Te("Locale ISO code is required to generate alternate link");continue}const[s,u]=r.split("-");s&&u&&(n.isCatchallLocale||!l.has(s))&&l.set(s,n),l.set(r,n)}for(const[n,r]of l.entries()){const s=V(r.code,o);s&&a.push({hid:`i18n-alt-${n}`,rel:"alternate",href:X(s,t),hreflang:n})}if(o.defaultLocale){const n=V(o.defaultLocale,o);n&&a.push({hid:"i18n-xd",rel:"alternate",href:X(n,t),hreflang:"x-default"})}}function $e(e,t,a,o){const{route:l}=o,n=ce(N(T({},l),{name:b(l,o)}),void 0,o);if(n){let r=X(n.path,e);const s=!Le(a)&&a.canonicalQueries||[];if(s.length){const u=n.query,i=new URLSearchParams;for(const c of s)if(c in u){const m=u[c];Re(m)?m.forEach(R=>i.append(c,R||"")):i.append(c,m||"")}const f=i.toString();f&&(r=`${r}?${f}`)}t.push({hid:"i18n-can",rel:"canonical",href:r})}}function Ue(e,t,a){!(e&&t)||a.push({hid:"i18n-og",property:"og:locale",content:se(t)})}function Oe(e,t,a){const o=e.filter(l=>{const n=l.iso;return n&&n!==t});if(o.length){const l=o.map(n=>({hid:`i18n-og-alt-${n.iso}`,property:"og:locale:alternate",content:se(n.iso)}));a.push(...l)}}function se(e){return(e||"").replace(/-/g,"_")}function X(e,t){return e.match(/^https?:\/\//)?e:t+e}function ue(e,{defaultLocale:t=$,strategy:a=U,trailingSlash:o=ne,routesNameSeparator:l=O,defaultLocaleRouteNameSuffix:n=M,includeUprefixedFallback:r=!1,optionsResolver:s=void 0,locales:u=[]}={}){if(a==="no_prefix")return e;const i=u.map(c=>F(c)?c:c.code);function f(c,m,R=!1,L=!1){if(c.redirect&&(!c.component||!c.file))return[c];let h=null;return s!=null&&(h=s(c,m),h==null)?[c]:m.reduce((d,g)=>{const{name:A}=c;let{path:p}=c;const v=T({},c);A&&(v.name=`${A}${l}${g}`),c.children&&(v.children=c.children.reduce((I,w)=>[...I,...f(w,[g],!0,L)],[]));const P=g===t;if(P&&a==="prefix_and_default")if(R)R&&L&&A&&(v.name+=`${l}${n}`);else{const I=N(T({},v),{path:p});if(A&&(I.name=`${v.name}${l}${n}`),c.children){I.children=[];for(const w of c.children)I.children=I.children.concat(f(w,[g],!0,!0))}d.push(I)}const z=R&&!p.startsWith("/"),k=!z&&!(P&&a==="prefix_except_default");return k&&(p=`/${g}${p}`),p&&(p=Fe(p,o,z)),k&&P&&a==="prefix"&&r&&d.push(T({},c)),v.path=p,d.push(v),d},[])}return e.reduce((c,m)=>[...c,...f(m,i||[])],[])}function be(e,{locales:t=[],localeCodes:a=[],baseUrl:o=le}={}){if(!j(e.global,e.mode))throw new Error("TODO:");const l=_.ref(t),n=_.ref(a);e.global.locales=_.computed(()=>l.value),e.global.localeCodes=_.computed(()=>n.value),e.global.__baseUrl=oe(o,{})}function we(e,t={}){const{version:a,defaultLocale:o,locales:l,strategy:n,trailingSlash:r,routesNameSeparator:s,defaultLocaleRouteNameSuffix:u,defaultDirection:i,baseUrl:f,routes:c,routeOptionsResolver:m}=Xe(t),R=Z(l),L=R.map(g=>g.code),h=ie(L,s,u);be(e,{locales:R,baseUrl:f,localeCodes:L});const E=ue(c,{locales:l,defaultLocale:o,strategy:n,trailingSlash:r,routesNameSeparator:s,defaultLocaleRouteNameSuffix:u,optionsResolver:m});t.routes=E;const d=Ce(t,a);return d.__defaultLocale=o,d.__localeCodes=L,d.__strategy=n,d.__trailingSlash=r,d.__routesNameSeparator=s,d.__defaultLocaleRouteNameSuffix=u,d.__defaultDirection=i,d.beforeEach((g,A,p)=>{const v=x(e),P=h(g)||v||o||"";v!==P&&te(e,P),p()}),d}function Ce(e,t){if(_.isVue3&&t===4)return S.createRouter(e);if(_.isVue2&&t===3)return new me.default(e);throw new Error("TODO:")}function Ve(e){return new RegExp(`^/(${e.join("|")})(?:/|$)`,"i")}function ie(e,t,a){const o=`(${e.join("|")})`,l=`(?:${t}${a})?`,n=new RegExp(`${t}${o}${l}$`,"i"),r=Ve(e);return u=>{if(pe(u)){if(u.name){const f=(F(u.name)?u.name:u.name.toString()).match(n);if(f&&f.length>1)return f[1]}else if(u.path){const i=u.path.match(r);if(i&&i.length>1)return i[1]}}else if(F(u)){const i=u.match(r);if(i&&i.length>1)return i[1]}return""}}function Xe(e){var t,a,o,l,n,r,s,u,i,f;return e.version=(t=e.version)!=null?t:4,e.defaultLocale=(a=e.defaultLocale)!=null?a:$,e.strategy=(o=e.strategy)!=null?o:U,e.trailingSlash=(l=e.trailingSlash)!=null?l:ne,e.routesNameSeparator=(n=e.routesNameSeparator)!=null?n:O,e.defaultLocaleRouteNameSuffix=(r=e.defaultLocaleRouteNameSuffix)!=null?r:M,e.locales=(s=e.locales)!=null?s:[],e.defaultDirection=(u=e.defaultDirection)!=null?u:Pe,e.baseUrl=(i=e.baseUrl)!=null?i:le,e.routes=(f=e.routes)!=null?f:[],e}const je="0.0.0";exports.VERSION=je;exports.createLocaleFromRouteGetter=ie;exports.createRouter=we;exports.getLocale=x;exports.getRouteBaseName=b;exports.localeLocation=De;exports.localePath=re;exports.localeRoute=ce;exports.localizeRoutes=ue;exports.resolveBaseUrl=oe;exports.setLocale=te;exports.switchLocalePath=V;exports.useI18nHead=Ne;
*/const se=Object.assign,xe=Array.isArray,ve=e=>typeof e=="function",A=e=>typeof e=="string",Ie=e=>typeof e=="symbol",ue=e=>e!==null&&typeof e=="object",Ae=/\/$|\/\?/;function Q(e="",t=!1){return t?Ae.test(e):e.endsWith("/")}function we(e="",t=!1){if(!t)return(Q(e)?e.slice(0,-1):e)||"/";if(!Q(e,!0))return e||"/";const[o,...a]=e.split("?");return(o.slice(0,-1)||"/")+(a.length?`?${a.join("?")}`:"")}function Ce(e="",t=!1){if(!t)return e.endsWith("/")?e:e+"/";if(Q(e,!0))return e||"/";const[o,...a]=e.split("?");return o+"/"+(a.length?`?${a.join("?")}`:"")}const De=typeof window!="undefined";function Fe(e,t){typeof console!="undefined"&&(console.warn("[vue-i18n-routing] "+e),t&&console.warn(t.stack))}function ie(e){e=e||[];const t=[];for(const o of e)A(o)?t.push({code:o}):t.push(o);return t}function M(e){return e!=null&&"global"in e&&"mode"in e}function k(e){return e!=null&&!("__composer"in e)&&h.isRef(e.locale)}function V(e){return e!=null&&"__composer"in e}function J(e){return e!=null&&!("__composer"in e)&&!h.isRef(e.locale)}function D(e){return e!=null&&("__VUE_I18N_BRIDGE__"in e||"_sync"in e)}function fe(e){return M(e)?k(e.global)?e.global:e.global.__composer:V(e)?e.__composer:e}function z(e){const t=M(e)?e.global:e;return k(t)?h.isVue2&&D(e)?e.locale:t.locale.value:(J(t)||V(t)||D(t),t.locale)}function Te(e){const t=M(e)?e.global:e;return k(t)?h.isVue2&&D(e)?e.locales:t.locales.value:(J(t)||V(t)||D(t),t.locales)}function he(e,t){const o=M(e)?e.global:e;if(k(o))h.isVue2&&D(e)?e.locale=t:o.locale.value=t;else if(J(o)||V(o)||D(o))o.locale=t;else throw new Error("TODO:")}function be(e,t,o){return e.replace(/\/+$/,"")+(t?"/":"")||(o?"":"/")}function re(e){return L.isVueRouter4,h.isRef(e)?e.value:e}function de(e){return A(e)?e:Ie(e)?e.toString():"(null)"}function ce(e,t,{defaultLocale:o,strategy:a,routesNameSeparator:l,defaultLocaleRouteNameSuffix:n}){let r=de(e)+(a==="no_prefix"?"":l+t);return t===o&&a==="prefix_and_default"&&(r+=l+n),r}function _e(e,t){return ve(e)?e(t):e}function Ue(e,t){const o=[];for(const[a,l]of t.entries()){const n=e.find(r=>r.iso.toLowerCase()===l.toLowerCase());if(n){o.push({code:n.code,score:1-a/t.length});break}}for(const[a,l]of t.entries()){const n=l.split("-")[0].toLowerCase(),r=e.find(c=>c.iso.split("-")[0].toLowerCase()===n);if(r){o.push({code:r.code,score:.999-a/t.length});break}}return o}const $e=Ue;function Oe(e,t){return e.score===t.score?t.code.length-e.code.length:t.score-e.score}const Ve=Oe;function Be(e,t,{matcher:o=$e,comparer:a=Ve}={}){const l=[];for(const r of e){const{code:c}=r,s=r.iso||c;l.push({code:c,iso:s})}const n=o(l,t);return n.length>1&&n.sort(a),n.length?n[0].code:""}const U={PREFIX:"prefix",PREFIX_EXCEPT_DEFAULT:"prefix_except_default",PREFIX_AND_DEFAULT:"prefix_and_default",NO_PREFIX:"no_prefix"},y="",N=U.PREFIX_EXCEPT_DEFAULT,me=!1,P="___",w="default",je="ltr",Le="",Xe=new Set([U.PREFIX_AND_DEFAULT,U.PREFIX_EXCEPT_DEFAULT]);function F(e){const o=this.router.__routesNameSeparator||this.__routesNameSeparator||P,a=e!=null?h.isRef(e)?h.unref(e):e:this.route;return a.name?de(a.name).split(o)[0]:void 0}function q(e,t){const o=B.call(this,e,t);return o==null?"":h.isVue3?o.redirectedFrom||o.fullPath:o.route.redirectedFrom||o.route.fullPath}function H(e,t){const o=B.call(this,e,t);return o==null?void 0:h.isVue3?o:o.route}function K(e,t){const o=B.call(this,e,t);return o==null?void 0:h.isVue3?o:o.location}function B(e,t){const o=this.router,a=this.i18n,l=t||z(a),n=this.__defaultLocale||y,r=o.__defaultLocale||n,c=o.__defaultLocaleRouteNameSuffix||this.__defaultLocaleRouteNameSuffix||w,s=o.__routesNameSeparator||this.__routesNameSeparator||P,u=o.__strategy||this.__strategy||N,f=o.__trailingSlash||this.__trailingSlash||!1;let i=e;A(e)&&(i[0]==="/"?i={path:e}:i={name:e});let d=se({},i);if(d.path&&!d.name){const _=o.resolve(d),E=h.isVue3?_:_.route,T=F.call(this,E);A(T)?d={name:ce(T,l,{defaultLocale:r,strategy:u,routesNameSeparator:s,defaultLocaleRouteNameSuffix:c}),params:E.params,query:E.query,hash:E.hash}:(!(l===n&&Xe.has(u))&&u!==U.NO_PREFIX&&(d.path=`/${l}${d.path}`),d.path=f?Ce(d.path,!0):we(d.path,!0))}else{d.name=ce(d.name,l,{defaultLocale:r,strategy:u,routesNameSeparator:s,defaultLocaleRouteNameSuffix:c});const{params:_}=d;_&&_["0"]===void 0&&_.pathMatch&&(_["0"]=_.pathMatch)}const R=o.resolve(d);return(h.isVue3?R.name:R.route.name)?R:o.resolve(e)}function $(e){const t=this.route,o=F.call(this,t);if(!o)return"";const s=!h.isVue3&&h.isRef(t)?t.value:t,{params:a}=s,l=ne(s,["params"]),n={},r=se({},l,{name:o,params:X(v(v({},a),n),{0:a.pathMatch})});return q.call(this,r,e)}function Z({addDirAttribute:e=!1,addSeoAttributes:t=!1}={}){const o=this.router,a=this.i18n,l={htmlAttrs:{},link:[],meta:[]};if(a.locales==null||a.__baseUrl==null)return l;const n=z(a),r=Te(a),c=ie(r).find(f=>f.code===n)||{code:n},s=c.iso,u=c.dir||o.__defaultDirection;return e&&(l.htmlAttrs.dir=u),t&&n&&a.locales&&(s&&(l.htmlAttrs.lang=s),Me.call(this,r,a.__baseUrl,l.link),ke.call(this,a.__baseUrl,l.link,t),ze(c,s,l.meta),qe(r,s,l.meta)),l}function Me(e,t,o){const a=this.router,l=a.__defaultLocale||this.__defaultLocale;if((a.__strategy||this.__strategy)===U.NO_PREFIX)return;const r=new Map;for(const c of e){const s=c.iso;if(!s){Fe("Locale ISO code is required to generate alternate link");continue}const[u,f]=s.split("-");u&&f&&(c.isCatchallLocale||!r.has(u))&&r.set(u,c),r.set(s,c)}for(const[c,s]of r.entries()){const u=$.call(this,s.code);u&&o.push({hid:`i18n-alt-${c}`,rel:"alternate",href:Y(u,t),hreflang:c})}if(l){const c=$.call(this,l);c&&o.push({hid:"i18n-xd",rel:"alternate",href:Y(c,t),hreflang:"x-default"})}}function ke(e,t,o){const a=this.route,l=H.call(this,X(v({},a),{name:F.call(this,a)}));if(l){let n=Y(l.path,e);const r=ue(o)&&o.canonicalQueries||[];if(r.length){const c=l.query,s=new URLSearchParams;for(const f of r)if(f in c){const i=c[f];xe(i)?i.forEach(d=>s.append(f,d||"")):s.append(f,i||"")}const u=s.toString();u&&(n=`${n}?${u}`)}t.push({hid:"i18n-can",rel:"canonical",href:n})}}function ze(e,t,o){!(e&&t)||o.push({hid:"i18n-og",property:"og:locale",content:Re(t)})}function qe(e,t,o){const a=e.filter(l=>{const n=l.iso;return n&&n!==t});if(a.length){const l=a.map(n=>({hid:`i18n-og-alt-${n.iso}`,property:"og:locale:alternate",content:Re(n.iso)}));o.push(...l)}}function Re(e){return(e||"").replace(/-/g,"_")}function Y(e,t){return e.match(/^https?:\/\//)?e:t+e}function G(e,t){const{router:o,route:a,i18n:l,defaultLocale:n,strategy:r,defaultLocaleRouteNameSuffix:c,trailingSlash:s,routesNameSeparator:u}=e;return function(...f){return Reflect.apply(t,{router:o,route:a,i18n:l,__defaultLocale:n,__strategy:r,__defaultLocaleRouteNameSuffix:c,__trailingSlash:s,__routesNameSeparator:u},f)}}function He(e=L.useRoute(),{router:t=L.useRouter(),routesNameSeparator:o=P}={}){const a={router:t,route:e,__routesNameSeparator:o};return F.call(a,e)}function Ge({router:e=L.useRouter(),route:t=L.useRoute(),i18n:o=O.useI18n(),defaultLocale:a=y,defaultLocaleRouteNameSuffix:l=w,routesNameSeparator:n=P,strategy:r=N,trailingSlash:c=!1}={}){return G({router:e,route:t,i18n:o,defaultLocale:a,defaultLocaleRouteNameSuffix:l,routesNameSeparator:n,strategy:r,trailingSlash:c},q)}function We({router:e=L.useRouter(),route:t=L.useRoute(),i18n:o=O.useI18n(),defaultLocale:a=y,defaultLocaleRouteNameSuffix:l=w,routesNameSeparator:n=P,strategy:r=N,trailingSlash:c=!1}={}){return G({router:e,route:t,i18n:o,defaultLocale:a,defaultLocaleRouteNameSuffix:l,routesNameSeparator:n,strategy:r,trailingSlash:c},H)}function Qe({router:e=L.useRouter(),route:t=L.useRoute(),i18n:o=O.useI18n(),defaultLocale:a=y,defaultLocaleRouteNameSuffix:l=w,routesNameSeparator:n=P,strategy:r=N,trailingSlash:c=!1}={}){return G({router:e,route:t,i18n:o,defaultLocale:a,defaultLocaleRouteNameSuffix:l,routesNameSeparator:n,strategy:r,trailingSlash:c},K)}function Ye({router:e=L.useRouter(),route:t=L.useRoute(),i18n:o=O.useI18n(),defaultLocale:a=y,defaultLocaleRouteNameSuffix:l=w,routesNameSeparator:n=P,strategy:r=N,trailingSlash:c=!1}={}){return G({router:e,route:t,i18n:o,defaultLocale:a,defaultLocaleRouteNameSuffix:l,routesNameSeparator:n,strategy:r,trailingSlash:c},$)}function Je({addDirAttribute:e=!1,addSeoAttributes:t=!1,strategy:o=N,defaultLocale:a=y,route:l=L.useRoute(),router:n=L.useRouter(),i18n:r=O.useI18n()}={}){const c=n,s=h.ref({htmlAttrs:{},link:[],meta:[]});function u(){s.value={htmlAttrs:{},link:[],meta:[]}}function f(i){s.value=Reflect.apply(Z,{router:n,route:i,i18n:r,__defaultLocale:a,__strategy:o},[{addDirAttribute:e,addSeoAttributes:t}])}if(De)if(h.isVue3){const i=h.watchEffect(()=>{u(),f(re(c.currentRoute))});h.onUnmounted(()=>i())}else{const i=c.afterEach((d,R)=>{u(),f(d)});h.onUnmounted(()=>i()),f(l)}else f(re(c.currentRoute));return s}function pe(e,{defaultLocale:t=y,strategy:o=N,trailingSlash:a=me,routesNameSeparator:l=P,defaultLocaleRouteNameSuffix:n=w,includeUprefixedFallback:r=!1,optionsResolver:c=void 0,locales:s=[]}={}){if(o==="no_prefix")return e;const u=s.map(i=>A(i)?i:i.code);function f(i,d,R=!1,_=!1){if(i.redirect&&(!i.component||!i.file))return[i];let E=null;return c!=null&&(E=c(i,d),E==null)?[i]:d.reduce((m,p)=>{const{name:b}=i;let{path:g}=i;const S=v({},i);b&&(S.name=`${b}${l}${p}`),i.children&&(S.children=i.children.reduce((x,W)=>[...x,...f(W,[p],!0,_)],[]));const C=p===t;if(C&&o==="prefix_and_default")if(R)R&&_&&b&&(S.name+=`${l}${n}`);else{const x=X(v({},S),{path:g});if(b&&(x.name=`${S.name}${l}${n}`),i.children){x.children=[];for(const W of i.children)x.children=x.children.concat(f(W,[p],!0,!0))}m.push(x)}const ee=R&&!g.startsWith("/"),te=!ee&&!(C&&o==="prefix_except_default");return te&&(g=`/${p}${g}`),g&&(g=be(g,a,ee)),te&&C&&o==="prefix"&&r&&m.push(v({},i)),S.path=g,m.push(S),m},[])}return e.reduce((i,d)=>[...i,...f(d,u||[])],[])}function I(e){return function(){return Reflect.apply(e,{getRouteBaseName:this.getRouteBaseName,localePath:this.localePath,localeRoute:this.localeRoute,localeLocation:this.localeLocation,resolveRoute:this.resolveRoute,switchLocalePath:this.switchLocalePath,localeHead:this.localeHead,i18n:this.$i18n,route:this.$route,router:this.$router},arguments)}}function Ke(e,{locales:t=[],localeCodes:o=[],baseUrl:a=Le}={}){const l=e.install;e.install=(n,...r)=>{Reflect.apply(l,e,[n,...r]);const c=fe(e);Ze(c,{locales:t,localeCodes:o,baseUrl:a}),V(e.global)&&tt(e.global);const s=n,u=e.mode==="composition"?h.isVue3?s.config.globalProperties.$i18n:e:h.isVue2?e:null;u&&et(u,c),n.mixin({methods:{resolveRoute:I(B),localePath:I(q),localeRoute:I(H),localeLocation:I(K),switchLocalePath:I($),getRouteBaseName:I(F),localeHead:I(Z)}})}}function Ze(e,t){const{locales:o,localeCodes:a,baseUrl:l}=t,n=h.ref(o),r=h.ref(a);e.locales=h.computed(()=>n.value),e.localeCodes=h.computed(()=>r.value),e.__baseUrl=_e(l,{})}function et(e,t){Object.defineProperty(e,"locales",{get(){return t.locales.value}}),Object.defineProperty(e,"localeCodes",{get(){return t.localeCodes.value}}),Object.defineProperty(e,"__baseUrl",{get(){return t.__baseUrl}})}function tt(e){const t=fe(e);Object.defineProperty(e,"locales",{get(){return t.locales.value}}),Object.defineProperty(e,"localeCodes",{get(){return t.localeCodes.value}}),Object.defineProperty(e,"__baseUrl",{get(){return t.__baseUrl}})}function ot(e,t={}){const{version:o,defaultLocale:a,locales:l,strategy:n,trailingSlash:r,routesNameSeparator:c,defaultLocaleRouteNameSuffix:s,defaultDirection:u,baseUrl:f,routes:i,routeOptionsResolver:d}=nt(t),R=ie(l),_=R.map(p=>p.code),E=ge(_,c,s);Ke(e,{locales:R,baseUrl:f,localeCodes:_});const T=pe(i,{locales:l,defaultLocale:a,strategy:n,trailingSlash:r,routesNameSeparator:c,defaultLocaleRouteNameSuffix:s,optionsResolver:d});t.routes=T;const m=at(t,o);return m.__defaultLocale=a,m.__localeCodes=_,m.__strategy=n,m.__trailingSlash=r,m.__routesNameSeparator=c,m.__defaultLocaleRouteNameSuffix=s,m.__defaultDirection=u,m.beforeEach((p,b,g)=>{const S=z(e),C=E(p)||S||a||"";S!==C&&he(e,C),g()}),m}function at(e,t){if(h.isVue3&&t===4)return L.createRouter(e);if(h.isVue2&&t===3)return new Ne.default(e);throw new Error("TODO:")}function lt(e){return new RegExp(`^/(${e.join("|")})(?:/|$)`,"i")}function ge(e,t,o){const a=`(${e.join("|")})`,l=`(?:${t}${o})?`,n=new RegExp(`${t}${a}${l}$`,"i"),r=lt(e);return s=>{if(ue(s)){if(s.name){const f=(A(s.name)?s.name:s.name.toString()).match(n);if(f&&f.length>1)return f[1]}else if(s.path){const u=s.path.match(r);if(u&&u.length>1)return u[1]}}else if(A(s)){const u=s.match(r);if(u&&u.length>1)return u[1]}return""}}function nt(e){var t,o,a,l,n,r,c,s,u,f;return e.version=(t=e.version)!=null?t:4,e.defaultLocale=(o=e.defaultLocale)!=null?o:y,e.strategy=(a=e.strategy)!=null?a:N,e.trailingSlash=(l=e.trailingSlash)!=null?l:me,e.routesNameSeparator=(n=e.routesNameSeparator)!=null?n:P,e.defaultLocaleRouteNameSuffix=(r=e.defaultLocaleRouteNameSuffix)!=null?r:w,e.locales=(c=e.locales)!=null?c:[],e.defaultDirection=(s=e.defaultDirection)!=null?s:je,e.baseUrl=(u=e.baseUrl)!=null?u:Le,e.routes=(f=e.routes)!=null?f:[],e}const rt="0.0.0";exports.VERSION=rt;exports.createLocaleFromRouteGetter=ge;exports.createRouter=ot;exports.findBrowserLocale=Be;exports.getLocale=z;exports.getRouteBaseName=F;exports.localeHead=Z;exports.localeLocation=K;exports.localePath=q;exports.localeRoute=H;exports.localizeRoutes=pe;exports.resolveBaseUrl=_e;exports.resolveRoute=B;exports.setLocale=he;exports.switchLocalePath=$;exports.useLocaleHead=Je;exports.useLocaleLocation=Qe;exports.useLocalePath=Ge;exports.useLocaleRoute=We;exports.useRouteBaseName=He;exports.useSwitchLocalePath=Ye;

@@ -16,6 +16,40 @@ import { Composer } from '@intlify/vue-i18n-bridge';

import { useRouter } from '@intlify/vue-router-bridge';
import type { VueI18n } from '@intlify/vue-i18n-bridge';
import type { VueRouter } from '@intlify/vue-router-bridge';
export declare type BaseUrlResolveHandler = (context: unknown) => string;
export declare type BaseUrlResolveHandler<Context = unknown> = (context: Context) => string;
/**
* The browser locale info
*
* @remarks
* This type is used by {@link FindBrowserLocaleOptions#sorter | sorter} in {@link findBrowserLocale} function
*/
export declare type BrowserLocale = {
/**
* The locale code, such as BCP 47 (e.g `en-US`), or `ja`
*/
code: string;
/**
* The score number
*
* @remarks
* The score number that is used by `sorter` of {@link FindBrowserLocaleOptions}
*/
score: number;
};
/**
* The browser locale matcher
*
* @remarks
* This matcher is used by {@link findBrowserLocale} function
*
* @param locales - The target {@link LocaleObject | locale} list
* @param browserLocales - The locale code list that is used in browser
*
* @returns The matched {@link BrowserLocale | locale info}
*/
export declare type BrowserLocaleMatcher = (locales: TargetLocale[], browserLocales: string[]) => BrowserLocale[];
export declare type ComposableOptions = {

@@ -44,3 +78,3 @@ route?: ReturnType<typeof useRoute>;

* @param i18n - A Vue I18n instance, see [Vue I18n API docs](https://vue-i18n.intlify.dev/api/general.html#i18n)
* @param options - An options, see {@link VueI18nRoutingOptions}
* @param options - An options, see {@link I18nRoutingOptions}
*

@@ -58,3 +92,3 @@ * @returns A Vue Router instance

*/
export declare function createRouter<Options extends VueI18nRoutingOptions = VueI18nRoutingOptions>(i18n: I18n, options?: Options): Options['version'] extends 4 ? Router : VueRouter;
export declare function createRouter<Options extends I18nRoutingOptions = I18nRoutingOptions>(i18n: I18n, options?: Options): Options['version'] extends 4 ? Router : VueRouter;

@@ -67,2 +101,21 @@ /**

/**
* Find the browser locale
*
* @param locales - The target {@link LocaleObject | locale} list
* @param browserLocales - The locale code list that is used in browser
* @param options - The options for {@link findBrowserLocale} function
*
* @returns The matched the locale code
*/
export declare function findBrowserLocale(locales: LocaleObject[], browserLocales: string[], { matcher, comparer }?: FindBrowserLocaleOptions): string | '';
/**
* The options for {@link findBrowserLocale} function
*/
export declare type FindBrowserLocaleOptions = {
matcher?: BrowserLocaleMatcher;
comparer?: (a: BrowserLocale, b: BrowserLocale) => number;
};
/**
* Get a locale

@@ -74,13 +127,10 @@ *

*/
export declare function getLocale(i18n: I18n | Composer): Locale;
export declare function getLocale(i18n: I18n | Composer | VueI18n): Locale;
export declare function getRouteBaseName(this: RoutingProxy, givenRoute?: Route_2 | RouteLocationNormalizedLoaded): string | undefined;
/**
* Get route base name
*
* @param givenRoute - A route object, if not provided, the route is returned with `useRoute` will be used
* @param options - An options, see about details {@link I18nRoutingOptions}
*
* @returns The route base name, if route name is not defined, return null
* Options for vue-i18n-routing common
*/
export declare function getRouteBaseName(givenRoute?: Route_2 | RouteLocationNormalizedLoaded, { router, routesNameSeparator }?: I18nRoutingOptions): string | null;
export declare type I18nCommonRoutingOptions = Pick<I18nRoutingOptions, 'defaultLocale' | 'strategy' | 'defaultLocaleRouteNameSuffix' | 'trailingSlash' | 'locales' | 'routesNameSeparator'> & ComposableOptions;

@@ -97,3 +147,3 @@ /**

/**
* Options for {@link useI18nHead} function
* Options for {@link localeHead} function
*/

@@ -116,17 +166,123 @@ export declare interface I18nHeadOptions {

/**
* Options for vue-i18n-routing common
* Route config for vue-i18n-routing
*/
export declare type I18nRoutingOptions = Pick<VueI18nRoutingOptions, 'defaultLocale' | 'strategy' | 'defaultLocaleRouteNameSuffix' | 'trailingSlash' | 'locales' | 'routesNameSeparator'> & ComposableOptions;
export declare type I18nRoute = Route & RouteLegacy & {
redirect?: string;
};
/**
* Resolve locale location
* Options to initialize a VueRouter instance
*
* @remarks
* This options is extended from Vue Router `RouterOptioins`, so you can specify those options.
*/
export declare type I18nRoutingOptions<BaseUrl extends BaseUrlResolveHandler = BaseUrlResolveHandler> = {
/**
* Vue Router version
*
* @remarks
* You can choice between vue-router v3 and v4.
*
* If you specify `3`, this function return Vue Router v3 instance, else specify `4`, this function return Vue Router v4 instance.
*
* @defaultValue 4
*/
version?: 3 | 4;
/**
* The app's default locale
*
* @remarks
* When using `prefix_except_default` strategy, URLs for locale specified here won't have a prefix.
*
* It's recommended to set this to some locale regardless of chosen strategy, as it will be used as a fallback locale when navigating to a non-existent route
*
* @defaultValue '' (emputy string)
*/
defaultLocale?: string;
/**
* List of locales supported by your app
*
* @remarks
* Can either be an array of string codes (e.g. `['en', 'fr']`) or an array of {@link LocaleObject} for more complex configurations
*
* @defaultValue []
*/
locales?: string[] | LocaleObject[];
/**
* Routes strategy
*
* @remarks
* Can be set to one of the following:
*
* - `no_prefix`: routes won't have a locale prefix
* - `prefix_except_default`: locale prefix added for every locale except default
* - `prefix`: locale prefix added for every locale
* - `prefix_and_default`: locale prefix added for every locale and default
*
* @defaultValue 'prefix_except_default'
*/
strategy?: Strategies;
/**
* Whether to use trailing slash
*
* @defaultValue false
*/
trailingSlash?: boolean;
/**
* Internal separator used for generated route names for each locale. You shouldn't need to change this
*
* @defaultValue '___'
*/
routesNameSeparator?: string;
/**
* Internal suffix added to generated route names for default locale
*
* @remarks
* if strategy is prefix_and_default. You shouldn't need to change this.
*
* @defaultValue 'default'
*/
defaultLocaleRouteNameSuffix?: string;
/**
* Default direction direction
*
* @defaultValue 'ltr'
*/
defaultDirection?: Directions;
/**
* The fallback base URL to use as a prefix for alternate URLs in hreflang tags.
*
* @remarks
* By default VueRouter's base URL will be used and only if that is not available, fallback URL will be used.
*
* Can also be a function (will be passed a Nuxt Context as a parameter) that returns a string.
*
* Useful to make base URL dynamic based on request headers.
*
* @defaultValue ''
*/
baseUrl?: string | BaseUrl;
/**
* Route options resolver
*
* @defaultValue undefined
*/
routeOptionsResolver?: RouteOptionsResolver;
} & RouterOptions;
export declare function localeHead(this: RoutingProxy, { addDirAttribute, addSeoAttributes }?: I18nHeadOptions): I18nHeadMetaInfo;
export declare function localeLocation(this: RoutingProxy, route: RawLocation | RouteLocationRaw, locale?: Locale): Location | RouteLocation | undefined;
/**
* Resolve locale location function
*
* @param route - A route location. The path or name of the route or an object for more complex routes
* @param locale - A locale code, if not specified, uses the current locale
* @param options - An options, see about details {@link I18nRoutingOptions}
*
* @returns Returns the location object for a given route, the location object is resolved by vue-router rather than just a full route path.
*
* @see {@link useLocaleLocation}
*/
export declare function localeLocation(route: RawLocation | RouteLocationRaw, locale?: Locale, // TODO: locale should be more type inference (completion)
options?: I18nRoutingOptions): Location | RouteLocation | undefined;
export declare type LocaleLocationFunction = (route: RawLocation | RouteLocationRaw, locale?: Locale) => Location | RouteLocation | undefined;

@@ -146,25 +302,29 @@ /**

export declare function localePath(this: RoutingProxy, route: RawLocation | RouteLocationRaw, locale?: Locale): string;
/**
* Resolve locale path
* Resolve locale path function
*
* @param route - A route location. The path or name of the route or an object for more complex routes
* @param locale - A locale code, if not specified, uses the current locale
* @param options - An options, see about details {@link I18nRoutingOptions}
*
* @returns Returns the localized URL for a given route
*
* @see {@link useLocalePath}
*/
export declare function localePath(route: RawLocation | RouteLocationRaw, locale?: Locale, // TODO: locale should be more type inference (completion)
options?: I18nRoutingOptions): string;
export declare type LocalePathFunction = (route: RawLocation | RouteLocation, locale?: Locale) => string;
export declare function localeRoute(this: RoutingProxy, route: RawLocation | RouteLocationRaw, locale?: Locale): Route_2 | ReturnType<Router['resolve']> | undefined;
/**
* Resolve locale route
* Resolve route fucntion
*
* @param route - A route location. The path or name of the route or an object for more complex routes
* @param locale - A locale code, if not specified, uses the current locale
* @param options - An options, see about details {@link I18nRoutingOptions}
*
* @returns Returns the route object for a given route, the route object is resolved by vue-router rather than just a full route path.
*
* @see {@link useLocaleRoute}
*/
export declare function localeRoute(route: RawLocation | RouteLocationRaw, locale?: Locale, // TODO: locale should be more type inference (completion)
options?: I18nRoutingOptions): Route_2 | ReturnType<Router['resolve']> | undefined;
export declare type LocaleRouteFunction = (route: RawLocation | RouteLocationRaw, locale?: Locale) => Route_2 | ReturnType<Router['resolve']> | undefined;

@@ -181,6 +341,6 @@ /**

*/
export declare function localizeRoutes(routes: VueI18nRoute[], { defaultLocale, strategy, trailingSlash, routesNameSeparator, defaultLocaleRouteNameSuffix, includeUprefixedFallback, optionsResolver, locales }?: Pick<VueI18nRoutingOptions, 'defaultLocale' | 'strategy' | 'locales' | 'routesNameSeparator' | 'trailingSlash' | 'defaultLocaleRouteNameSuffix'> & {
export declare function localizeRoutes(routes: I18nRoute[], { defaultLocale, strategy, trailingSlash, routesNameSeparator, defaultLocaleRouteNameSuffix, includeUprefixedFallback, optionsResolver, locales }?: Pick<I18nRoutingOptions, 'defaultLocale' | 'strategy' | 'locales' | 'routesNameSeparator' | 'trailingSlash' | 'defaultLocaleRouteNameSuffix'> & {
includeUprefixedFallback?: boolean;
optionsResolver?: RouteOptionsResolver;
}): VueI18nRoute[];
}): I18nRoute[];

@@ -197,4 +357,6 @@ export declare type MetaAttrs = Record<string, any>;

*/
export declare function resolveBaseUrl(baseUrl: string | BaseUrlResolveHandler, context: unknown): string;
export declare function resolveBaseUrl<Context = unknown>(baseUrl: string | BaseUrlResolveHandler<Context>, context: Context): string;
export declare function resolveRoute(this: RoutingProxy, route: any, locale?: Locale): any;
/**

@@ -225,5 +387,26 @@ * Route config for vue-router v4

*/
export declare type RouteOptionsResolver = (route: VueI18nRoute, allowedLocaleCodes: string[]) => ComputedRouteOptions | null;
export declare type RouteOptionsResolver = (route: I18nRoute, allowedLocaleCodes: string[]) => ComputedRouteOptions | null;
/**
* Routing Proxy
*/
export declare type RoutingProxy = {
i18n: any;
getRouteBaseName: any;
localePath: any;
localeRoute: any;
localeLocation: any;
resolveRoute: any;
switchLocalePath: any;
localeHead: any;
route: Route_2 | RouteLocationNormalizedLoaded;
router: Router | VueRouter;
__defaultLocale: string;
__strategy: Strategies;
__defaultLocaleRouteNameSuffix: string;
__trailingSlash: boolean;
__routesNameSeparator: string;
};
/**
* SEO Attribute options

@@ -260,137 +443,87 @@ */

export declare function switchLocalePath(this: RoutingProxy, locale: Locale): string;
/**
* Switch locale path
* Swtich locale path function
*
* @param locale - A locale code, if not specified, uses the current locale
* @param options - An options, see about details {@link I18nRoutingOptions}
*
* @returns Returns a link to the current route in another language
*
* @see {@link useSwitchLocalePath}
*/
export declare function switchLocalePath(locale: Locale, options?: I18nRoutingOptions): string;
export declare type SwitchLocalePathFunction = (locale?: Locale) => string;
/**
* The target locale info
*
* @remarks
* This type is used by {@link BrowserLocaleMatcher} first argument
*/
export declare type TargetLocale = Required<Pick<LocaleObject, 'code' | 'iso'>>;
declare type UnionToIntersection<T> = (T extends any ? (k: T) => void : never) extends (k: infer U) => void ? U : never;
/**
* Generate SEO head meta information
* Use localize head meta
*
* @param options - An options, see about details {@link I18nHeadOptions}
* @param options - An options, see about details {@link I18nHeadOptions}, {@link ComposableOptions}, {@link I18nCommonRoutingOptions}
*
* @returns Genereated SEO head meta information
*/
export declare function useI18nHead({ addDirAttribute, addSeoAttributes, strategy, defaultLocale, route, router, i18n }?: Pick<I18nRoutingOptions, 'strategy' | 'defaultLocale'> & ComposableOptions & I18nHeadOptions): Ref<I18nHeadMetaInfo>;
export declare function useLocaleHead({ addDirAttribute, addSeoAttributes, strategy, defaultLocale, route, router, i18n }?: Pick<I18nCommonRoutingOptions, 'strategy' | 'defaultLocale'> & ComposableOptions & I18nHeadOptions): Ref<I18nHeadMetaInfo>;
/**
* Vue I18n Routing Version
* Use resolve locale location
*
* @remarks
* Semver format. Same format as the package.json `version` field.
* @param options - An options, see about details {@link I18nRoutingOptions}
*
* @returns Returns a {@link LocaleLocationFunction}
*/
export declare const VERSION: string;
export declare function useLocaleLocation({ router, route, i18n, defaultLocale, defaultLocaleRouteNameSuffix, routesNameSeparator, strategy, trailingSlash }?: I18nCommonRoutingOptions): LocaleLocationFunction;
/**
* Route config for vue-i18n-routing
* Use resolve locale path
*
* @param options - An options, see about details {@link I18nRoutingOptions}
*
* @returns Returns a {@link LocalePathFunction}
*/
export declare type VueI18nRoute = Route & RouteLegacy & {
redirect?: string;
};
export declare function useLocalePath({ router, route, i18n, defaultLocale, defaultLocaleRouteNameSuffix, routesNameSeparator, strategy, trailingSlash }?: I18nCommonRoutingOptions): LocalePathFunction;
/**
* Options to initialize a VueRouter instance
* Use resolve locale route
*
* @param options - An options, see about details {@link I18nRoutingOptions}
*
* @returns Returns a {@link LocaleRouteFunction}
*/
export declare function useLocaleRoute({ router, route, i18n, defaultLocale, defaultLocaleRouteNameSuffix, routesNameSeparator, strategy, trailingSlash }?: I18nCommonRoutingOptions): LocaleRouteFunction;
/**
* Use route base name
*
* @param givenRoute - A route object, if not provided, the route is returned with `useRoute` will be used
* @param options - An options, see about details {@link I18nRoutingOptions}
*
* @returns The route base name, if route name is not defined, return null
*/
export declare function useRouteBaseName(givenRoute?: Route_2 | RouteLocationNormalizedLoaded, { router, routesNameSeparator }?: I18nCommonRoutingOptions): string | undefined;
/**
* Use swtich locale path
*
* @param options - An options, see about details {@link I18nRoutingOptions}
*
* @returns Returns a {@link SwitchLocalePathFunction}
*/
export declare function useSwitchLocalePath({ router, route, i18n, defaultLocale, defaultLocaleRouteNameSuffix, routesNameSeparator, strategy, trailingSlash }?: I18nCommonRoutingOptions): SwitchLocalePathFunction;
/**
* Vue I18n Routing Version
*
* @remarks
* This options is extended from Vue Router `RouterOptioins`, so you can specify those options.
* Semver format. Same format as the package.json `version` field.
*/
export declare type VueI18nRoutingOptions<BaseUrl extends BaseUrlResolveHandler = BaseUrlResolveHandler> = {
/**
* Vue Router version
*
* @remarks
* You can choice between vue-router v3 and v4.
*
* If you specify `3`, this function return Vue Router v3 instance, else specify `4`, this function return Vue Router v4 instance.
*
* @defaultValue 4
*/
version?: 3 | 4;
/**
* The app's default locale
*
* @remarks
* When using `prefix_except_default` strategy, URLs for locale specified here won't have a prefix.
*
* It's recommended to set this to some locale regardless of chosen strategy, as it will be used as a fallback locale when navigating to a non-existent route
*
* @defaultValue '' (emputy string)
*/
defaultLocale?: string;
/**
* List of locales supported by your app
*
* @remarks
* Can either be an array of string codes (e.g. `['en', 'fr']`) or an array of {@link LocaleObject} for more complex configurations
*
* @defaultValue []
*/
locales?: string[] | LocaleObject[];
/**
* Routes strategy
*
* @remarks
* Can be set to one of the following:
*
* - `no_prefix`: routes won't have a locale prefix
* - `prefix_except_default`: locale prefix added for every locale except default
* - `prefix`: locale prefix added for every locale
* - `prefix_and_default`: locale prefix added for every locale and default
*
* @defaultValue 'prefix_except_default'
*/
strategy?: Strategies;
/**
* Whether to use trailing slash
*
* @defaultValue false
*/
trailingSlash?: boolean;
/**
* Internal separator used for generated route names for each locale. You shouldn't need to change this
*
* @defaultValue '___'
*/
routesNameSeparator?: string;
/**
* Internal suffix added to generated route names for default locale
*
* @remarks
* if strategy is prefix_and_default. You shouldn't need to change this.
*
* @defaultValue 'default'
*/
defaultLocaleRouteNameSuffix?: string;
/**
* Default direction direction
*
* @defaultValue 'ltr'
*/
defaultDirection?: Directions;
/**
* The fallback base URL to use as a prefix for alternate URLs in hreflang tags.
*
* @remarks
* By default VueRouter's base URL will be used and only if that is not available, fallback URL will be used.
*
* Can also be a function (will be passed a Nuxt Context as a parameter) that returns a string.
*
* Useful to make base URL dynamic based on request headers.
*
* @defaultValue ''
*/
baseUrl?: string | BaseUrl;
/**
* Route options resolver
*
* @defaultValue undefined
*/
routeOptionsResolver?: RouteOptionsResolver;
} & RouterOptions;
export declare const VERSION: string;

@@ -400,3 +533,25 @@ export { }

declare module 'vue-i18n' {
// declare module 'vue-i18n' {
// export interface ComposerCustom {
// /**
// * List of locales
// *
// * @defaultValue `undefined`
// */
// locales?: ComputedRef<string[] | LocaleObject[]>
// /**
// * List of locale codes
// *
// * @defaultValue `undefined`
// */
// localeCodes?: ComputedRef<string[]>
// __baseUrl?: string
// }
// }
declare module 'vue-i18n-bridge' {
export interface VueI18n {
locales: string[] | LocaleObject[]
localeCodes: string[]
__baseUrl: string
}
export interface ComposerCustom {

@@ -418,3 +573,10 @@ /**

}
declare module 'vue-i18n-bridge' {
declare module '@intlify/vue-i18n-bridge' {
export interface VueI18n {
locales: string[] | LocaleObject[]
localeCodes: string[]
__baseUrl: string
}
export interface ComposerCustom {

@@ -424,13 +586,13 @@ /**

*
* @defaultValue `undefined`
* @defaultValue `[]`
*/
locales?: ComputedRef<string[] | LocaleObject[]>
locales: ComputedRef<string[] | LocaleObject[]>
/**
* List of locale codes
*
* @defaultValue `undefined`
* @defaultValue `[]`
*/
localeCodes?: ComputedRef<string[]>
__baseUrl?: string
localeCodes: ComputedRef<string[]>
__baseUrl: string
}
}

@@ -32,7 +32,7 @@ var __defProp = Object.defineProperty;

};
import { isRef, unref, isVue3, ref, watchEffect, onUnmounted, computed, isVue2 } from "vue-demi";
import { isRef, isVue2, unref, isVue3, ref, watchEffect, onUnmounted, computed } from "vue-demi";
import VueRouter3, { isVueRouter4, useRoute, useRouter, createRouter as createRouter$1 } from "@intlify/vue-router-bridge";
import { useI18n } from "@intlify/vue-i18n-bridge";
/*!
* shared v9.2.0-beta.30
* shared v9.2.0-beta.34
* (c) 2022 kazuya kawaguchi

@@ -45,3 +45,2 @@ * Released under the MIT License.

const isString = (val) => typeof val === "string";
const isBoolean = (val) => typeof val === "boolean";
const isSymbol = (val) => typeof val === "symbol";

@@ -97,20 +96,40 @@ const isObject = (val) => val !== null && typeof val === "object";

}
function isComposer(target, mode) {
return isRef(target.locale) && mode === "composition";
}
function isI18nInstance(i18n) {
return "global" in i18n && "mode" in i18n;
return i18n != null && "global" in i18n && "mode" in i18n;
}
function isComposer(target) {
return target != null && !("__composer" in target) && isRef(target.locale);
}
function isVueI18n(target) {
return target != null && "__composer" in target;
}
function isExportedGlobalComposer(target) {
return target != null && !("__composer" in target) && !isRef(target.locale);
}
function isLegacyVueI18n(target) {
return target != null && ("__VUE_I18N_BRIDGE__" in target || "_sync" in target);
}
function getComposer(i18n) {
return isI18nInstance(i18n) ? isComposer(i18n.global) ? i18n.global : i18n.global.__composer : isVueI18n(i18n) ? i18n.__composer : i18n;
}
function getLocale(i18n) {
return isI18nInstance(i18n) ? isComposer(i18n.global, i18n.mode) ? i18n.global.locale.value : i18n.global.locale : i18n.locale.value;
const target = isI18nInstance(i18n) ? i18n.global : i18n;
return isComposer(target) ? isVue2 && isLegacyVueI18n(i18n) ? i18n.locale : target.locale.value : isExportedGlobalComposer(target) || isVueI18n(target) || isLegacyVueI18n(target) ? target.locale : target.locale;
}
function getLocales(i18n) {
const target = isI18nInstance(i18n) ? i18n.global : i18n;
return isComposer(target) ? isVue2 && isLegacyVueI18n(i18n) ? i18n.locales : target.locales.value : isExportedGlobalComposer(target) || isVueI18n(target) || isLegacyVueI18n(target) ? target.locales : target.locales;
}
function setLocale(i18n, locale) {
if (isI18nInstance(i18n)) {
if (isComposer(i18n.global, i18n.mode)) {
i18n.global.locale.value = locale;
const target = isI18nInstance(i18n) ? i18n.global : i18n;
if (isComposer(target)) {
if (isVue2 && isLegacyVueI18n(i18n)) {
i18n.locale = locale;
} else {
i18n.global.locale = locale;
target.locale.value = locale;
}
} else if (isRef(i18n.locale)) {
i18n.locale.value = locale;
} else if (isExportedGlobalComposer(target) || isVueI18n(target) || isLegacyVueI18n(target)) {
target.locale = locale;
} else {
throw new Error("TODO:");
}

@@ -145,2 +164,42 @@ }

}
function matchBrowserLocale(locales, browserLocales) {
const matchedLocales = [];
for (const [index, browserCode] of browserLocales.entries()) {
const matchedLocale = locales.find((l) => l.iso.toLowerCase() === browserCode.toLowerCase());
if (matchedLocale) {
matchedLocales.push({ code: matchedLocale.code, score: 1 - index / browserLocales.length });
break;
}
}
for (const [index, browserCode] of browserLocales.entries()) {
const languageCode = browserCode.split("-")[0].toLowerCase();
const matchedLocale = locales.find((l) => l.iso.split("-")[0].toLowerCase() === languageCode);
if (matchedLocale) {
matchedLocales.push({ code: matchedLocale.code, score: 0.999 - index / browserLocales.length });
break;
}
}
return matchedLocales;
}
const DefaultBrowserLocaleMatcher = matchBrowserLocale;
function compareBrowserLocale(a, b) {
if (a.score === b.score) {
return b.code.length - a.code.length;
}
return b.score - a.score;
}
const DefaultBrowerLocaleComparer = compareBrowserLocale;
function findBrowserLocale(locales, browserLocales, { matcher = DefaultBrowserLocaleMatcher, comparer = DefaultBrowerLocaleComparer } = {}) {
const normalizedLocales = [];
for (const l of locales) {
const { code } = l;
const iso = l.iso || code;
normalizedLocales.push({ code, iso });
}
const matchedLocales = matcher(normalizedLocales, browserLocales);
if (matchedLocales.length > 1) {
matchedLocales.sort(comparer);
}
return matchedLocales.length ? matchedLocales[0].code : "";
}
const STRATEGIES = {

@@ -160,37 +219,34 @@ PREFIX: "prefix",

const RESOLVED_PREFIXED = /* @__PURE__ */ new Set([STRATEGIES.PREFIX_AND_DEFAULT, STRATEGIES.PREFIX_EXCEPT_DEFAULT]);
function getRouteBaseName(givenRoute = useRoute(), { router = useRouter(), routesNameSeparator = DEFAULT_ROUTES_NAME_SEPARATOR } = {}) {
const _routesNameSeparator = routesNameSeparator || router.__routesNameSeparator;
const _route = unref(givenRoute);
if (!_route.name) {
return null;
function getRouteBaseName(givenRoute) {
const router = this.router;
const routesNameSeparator = router.__routesNameSeparator || this.__routesNameSeparator || DEFAULT_ROUTES_NAME_SEPARATOR;
const route = givenRoute != null ? isRef(givenRoute) ? unref(givenRoute) : givenRoute : this.route;
if (!route.name) {
return;
}
const name = getRouteName(_route.name);
return name.split(_routesNameSeparator)[0];
const name = getRouteName(route.name);
return name.split(routesNameSeparator)[0];
}
function localePath(route, locale, options) {
const localizedRoute = resolveRoute(route, locale, options);
function localePath(route, locale) {
const localizedRoute = resolveRoute.call(this, route, locale);
return localizedRoute == null ? "" : isVue3 ? localizedRoute.redirectedFrom || localizedRoute.fullPath : localizedRoute.route.redirectedFrom || localizedRoute.route.fullPath;
}
function localeRoute(route, locale, options) {
const resolved = resolveRoute(route, locale, options);
function localeRoute(route, locale) {
const resolved = resolveRoute.call(this, route, locale);
return resolved == null ? void 0 : isVue3 ? resolved : resolved.route;
}
function localeLocation(route, locale, options) {
const resolved = resolveRoute(route, locale, options);
function localeLocation(route, locale) {
const resolved = resolveRoute.call(this, route, locale);
return resolved == null ? void 0 : isVue3 ? resolved : resolved.location;
}
function resolveRoute(route, locale, {
router = useRouter(),
i18n = useI18n(),
defaultLocale = DEFAULT_LOCALE,
defaultLocaleRouteNameSuffix = DEFAULT_LOCALE_ROUTE_NAME_SUFFIX,
routesNameSeparator = DEFAULT_ROUTES_NAME_SEPARATOR,
strategy = DEFAULT_STRATEGY,
trailingSlash = false
} = {}) {
const _defaultLocaleRouteNameSuffix = router.__defaultLocaleRouteNameSuffix || defaultLocaleRouteNameSuffix;
function resolveRoute(route, locale) {
const router = this.router;
const i18n = this.i18n;
const _locale = locale || getLocale(i18n);
const defaultLocale = this.__defaultLocale || DEFAULT_LOCALE;
const _defaultLocale = router.__defaultLocale || defaultLocale;
const _routesNameSeparator = router.__routesNameSeparator || routesNameSeparator;
const _strategy = router.__strategy || strategy;
const _locale = locale || getLocale(i18n);
const _defaultLocaleRouteNameSuffix = router.__defaultLocaleRouteNameSuffix || this.__defaultLocaleRouteNameSuffix || DEFAULT_LOCALE_ROUTE_NAME_SUFFIX;
const _routesNameSeparator = router.__routesNameSeparator || this.__routesNameSeparator || DEFAULT_ROUTES_NAME_SEPARATOR;
const _strategy = router.__strategy || this.__strategy || DEFAULT_STRATEGY;
const trailingSlash = router.__trailingSlash || this.__trailingSlash || false;
let _route = route;

@@ -208,3 +264,3 @@ if (isString(route)) {

const resolvedRoute2 = isVue3 ? _resolvedRoute : _resolvedRoute.route;
const resolvedRouteName = getRouteBaseName(resolvedRoute2);
const resolvedRouteName = getRouteBaseName.call(this, resolvedRoute2);
if (isString(resolvedRouteName)) {

@@ -248,5 +304,5 @@ localizedRoute = {

}
function switchLocalePath(locale, options) {
const route = options && options.route || useRoute();
const name = getRouteBaseName(route, options);
function switchLocalePath(locale) {
const route = this.route;
const name = getRouteBaseName.call(this, route);
if (!name) {

@@ -263,81 +319,42 @@ return "";

});
const path = localePath(baseRoute, locale, options);
const path = localePath.call(this, baseRoute, locale);
return path;
}
function useI18nHead({
addDirAttribute = false,
addSeoAttributes = false,
strategy = DEFAULT_STRATEGY,
defaultLocale = DEFAULT_LOCALE,
route = useRoute(),
router = useRouter(),
i18n = useI18n()
} = {}) {
const _router = router;
const _defaultLocale = defaultLocale || _router.__defaultLocale;
const _strategy = strategy || _router.__strategy;
const metaObject = ref({
function localeHead({ addDirAttribute = false, addSeoAttributes = false } = {}) {
const router = this.router;
const i18n = this.i18n;
const metaObject = {
htmlAttrs: {},
link: [],
meta: []
});
function cleanMeta() {
metaObject.value = {
htmlAttrs: {},
link: [],
meta: []
};
};
if (i18n.locales == null || i18n.__baseUrl == null) {
return metaObject;
}
function updateMeta(_route) {
if (i18n.locales == null || i18n.__baseUrl == null) {
return;
}
const locale = getLocale(i18n);
const currentLocale = getNormalizedLocales(i18n.locales.value).find((l) => l.code === locale) || {
code: locale
};
const currentLocaleIso = currentLocale.iso;
const currentLocaleDir = currentLocale.dir || router.__defaultDirection;
if (addDirAttribute) {
metaObject.value.htmlAttrs.dir = currentLocaleDir;
}
if (addSeoAttributes && locale && i18n.locales) {
if (currentLocaleIso) {
metaObject.value.htmlAttrs.lang = currentLocaleIso;
}
const locales = i18n.locales.value;
addHreflangLinks(locales, i18n.__baseUrl, metaObject.value.link, {
defaultLocale: _defaultLocale,
strategy: _strategy,
route,
router,
i18n
});
addCanonicalLinks(i18n.__baseUrl, metaObject.value.link, addSeoAttributes, { route: _route, router, i18n });
addCurrentOgLocale(currentLocale, currentLocaleIso, metaObject.value.meta);
addAlternateOgLocales(locales, currentLocaleIso, metaObject.value.meta);
}
const locale = getLocale(i18n);
const locales = getLocales(i18n);
const currentLocale = getNormalizedLocales(locales).find((l) => l.code === locale) || {
code: locale
};
const currentLocaleIso = currentLocale.iso;
const currentLocaleDir = currentLocale.dir || router.__defaultDirection;
if (addDirAttribute) {
metaObject.htmlAttrs.dir = currentLocaleDir;
}
if (inBrowser) {
if (isVue3) {
const stop = watchEffect(() => {
cleanMeta();
updateMeta(toRawRoute(_router.currentRoute));
});
onUnmounted(() => stop());
} else {
const handler = _router.afterEach((to, from) => {
cleanMeta();
updateMeta(to);
});
onUnmounted(() => handler());
updateMeta(route);
if (addSeoAttributes && locale && i18n.locales) {
if (currentLocaleIso) {
metaObject.htmlAttrs.lang = currentLocaleIso;
}
} else {
updateMeta(toRawRoute(_router.currentRoute));
addHreflangLinks.call(this, locales, i18n.__baseUrl, metaObject.link);
addCanonicalLinks.call(this, i18n.__baseUrl, metaObject.link, addSeoAttributes);
addCurrentOgLocale(currentLocale, currentLocaleIso, metaObject.meta);
addAlternateOgLocales(locales, currentLocaleIso, metaObject.meta);
}
return metaObject;
}
function addHreflangLinks(locales, baseUrl, link, options) {
if (options.strategy === STRATEGIES.NO_PREFIX) {
function addHreflangLinks(locales, baseUrl, link) {
const router = this.router;
const defaultLocale = router.__defaultLocale || this.__defaultLocale;
const strategy = router.__strategy || this.__strategy;
if (strategy === STRATEGIES.NO_PREFIX) {
return;

@@ -359,3 +376,3 @@ }

for (const [iso, mapLocale] of localeMap.entries()) {
const localePath2 = switchLocalePath(mapLocale.code, options);
const localePath2 = switchLocalePath.call(this, mapLocale.code);
if (localePath2) {

@@ -370,4 +387,4 @@ link.push({

}
if (options.defaultLocale) {
const localePath2 = switchLocalePath(options.defaultLocale, options);
if (defaultLocale) {
const localePath2 = switchLocalePath.call(this, defaultLocale);
if (localePath2) {

@@ -383,10 +400,10 @@ link.push({

}
function addCanonicalLinks(baseUrl, link, seoAttributesOptions, options) {
const { route } = options;
const currentRoute = localeRoute(__spreadProps(__spreadValues({}, route), {
name: getRouteBaseName(route, options)
}), void 0, options);
function addCanonicalLinks(baseUrl, link, seoAttributesOptions) {
const route = this.route;
const currentRoute = localeRoute.call(this, __spreadProps(__spreadValues({}, route), {
name: getRouteBaseName.call(this, route)
}));
if (currentRoute) {
let href = toAbsoluteUrl(currentRoute.path, baseUrl);
const canonicalQueries = !isBoolean(seoAttributesOptions) && seoAttributesOptions.canonicalQueries || [];
const canonicalQueries = isObject(seoAttributesOptions) && seoAttributesOptions.canonicalQueries || [];
if (canonicalQueries.length) {

@@ -451,2 +468,160 @@ const currentRouteQueryParams = currentRoute.query;

}
function proxyForComposable(options, target) {
const {
router,
route,
i18n,
defaultLocale: __defaultLocale,
strategy: __strategy,
defaultLocaleRouteNameSuffix: __defaultLocaleRouteNameSuffix,
trailingSlash: __trailingSlash,
routesNameSeparator: __routesNameSeparator
} = options;
return function(...args) {
return Reflect.apply(target, {
router,
route,
i18n,
__defaultLocale,
__strategy,
__defaultLocaleRouteNameSuffix,
__trailingSlash,
__routesNameSeparator
}, args);
};
}
function useRouteBaseName(givenRoute = useRoute(), { router = useRouter(), routesNameSeparator = DEFAULT_ROUTES_NAME_SEPARATOR } = {}) {
const proxy = {
router,
route: givenRoute,
__routesNameSeparator: routesNameSeparator
};
return getRouteBaseName.call(proxy, givenRoute);
}
function useLocalePath({
router = useRouter(),
route = useRoute(),
i18n = useI18n(),
defaultLocale = DEFAULT_LOCALE,
defaultLocaleRouteNameSuffix = DEFAULT_LOCALE_ROUTE_NAME_SUFFIX,
routesNameSeparator = DEFAULT_ROUTES_NAME_SEPARATOR,
strategy = DEFAULT_STRATEGY,
trailingSlash = false
} = {}) {
return proxyForComposable({ router, route, i18n, defaultLocale, defaultLocaleRouteNameSuffix, routesNameSeparator, strategy, trailingSlash }, localePath);
}
function useLocaleRoute({
router = useRouter(),
route = useRoute(),
i18n = useI18n(),
defaultLocale = DEFAULT_LOCALE,
defaultLocaleRouteNameSuffix = DEFAULT_LOCALE_ROUTE_NAME_SUFFIX,
routesNameSeparator = DEFAULT_ROUTES_NAME_SEPARATOR,
strategy = DEFAULT_STRATEGY,
trailingSlash = false
} = {}) {
return proxyForComposable({
router,
route,
i18n,
defaultLocale,
defaultLocaleRouteNameSuffix,
routesNameSeparator,
strategy,
trailingSlash
}, localeRoute);
}
function useLocaleLocation({
router = useRouter(),
route = useRoute(),
i18n = useI18n(),
defaultLocale = DEFAULT_LOCALE,
defaultLocaleRouteNameSuffix = DEFAULT_LOCALE_ROUTE_NAME_SUFFIX,
routesNameSeparator = DEFAULT_ROUTES_NAME_SEPARATOR,
strategy = DEFAULT_STRATEGY,
trailingSlash = false
} = {}) {
return proxyForComposable({
router,
route,
i18n,
defaultLocale,
defaultLocaleRouteNameSuffix,
routesNameSeparator,
strategy,
trailingSlash
}, localeLocation);
}
function useSwitchLocalePath({
router = useRouter(),
route = useRoute(),
i18n = useI18n(),
defaultLocale = DEFAULT_LOCALE,
defaultLocaleRouteNameSuffix = DEFAULT_LOCALE_ROUTE_NAME_SUFFIX,
routesNameSeparator = DEFAULT_ROUTES_NAME_SEPARATOR,
strategy = DEFAULT_STRATEGY,
trailingSlash = false
} = {}) {
return proxyForComposable({
router,
route,
i18n,
defaultLocale,
defaultLocaleRouteNameSuffix,
routesNameSeparator,
strategy,
trailingSlash
}, switchLocalePath);
}
function useLocaleHead({
addDirAttribute = false,
addSeoAttributes = false,
strategy = DEFAULT_STRATEGY,
defaultLocale = DEFAULT_LOCALE,
route = useRoute(),
router = useRouter(),
i18n = useI18n()
} = {}) {
const _router = router;
const metaObject = ref({
htmlAttrs: {},
link: [],
meta: []
});
function cleanMeta() {
metaObject.value = {
htmlAttrs: {},
link: [],
meta: []
};
}
function updateMeta(_route) {
metaObject.value = Reflect.apply(localeHead, {
router,
route: _route,
i18n,
__defaultLocale: defaultLocale,
__strategy: strategy
}, [{ addDirAttribute, addSeoAttributes }]);
}
if (inBrowser) {
if (isVue3) {
const stop = watchEffect(() => {
cleanMeta();
updateMeta(toRawRoute(_router.currentRoute));
});
onUnmounted(() => stop());
} else {
const handler = _router.afterEach((to, from) => {
cleanMeta();
updateMeta(to);
});
onUnmounted(() => handler());
updateMeta(route);
}
} else {
updateMeta(toRawRoute(_router.currentRoute));
}
return metaObject;
}
function localizeRoutes(routes, {

@@ -524,12 +699,88 @@ defaultLocale = DEFAULT_LOCALE,

}
function proxyVueInstance(target) {
return function() {
return Reflect.apply(target, {
getRouteBaseName: this.getRouteBaseName,
localePath: this.localePath,
localeRoute: this.localeRoute,
localeLocation: this.localeLocation,
resolveRoute: this.resolveRoute,
switchLocalePath: this.switchLocalePath,
localeHead: this.localeHead,
i18n: this.$i18n,
route: this.$route,
router: this.$router
}, arguments);
};
}
function extendI18n(i18n, { locales = [], localeCodes = [], baseUrl = DEFAULT_BASE_URL } = {}) {
if (!isComposer(i18n.global, i18n.mode)) {
throw new Error("TODO:");
}
const orgInstall = i18n.install;
i18n.install = (vue, ...options) => {
Reflect.apply(orgInstall, i18n, [vue, ...options]);
const composer = getComposer(i18n);
extendComposer(composer, { locales, localeCodes, baseUrl });
if (isVueI18n(i18n.global)) {
extendVueI18n(i18n.global);
}
const app = vue;
const exported = i18n.mode === "composition" ? isVue3 ? app.config.globalProperties.$i18n : i18n : isVue2 ? i18n : null;
if (exported) {
extendExportedGlobal(exported, composer);
}
vue.mixin({
methods: {
resolveRoute: proxyVueInstance(resolveRoute),
localePath: proxyVueInstance(localePath),
localeRoute: proxyVueInstance(localeRoute),
localeLocation: proxyVueInstance(localeLocation),
switchLocalePath: proxyVueInstance(switchLocalePath),
getRouteBaseName: proxyVueInstance(getRouteBaseName),
localeHead: proxyVueInstance(localeHead)
}
});
};
}
function extendComposer(composer, options) {
const { locales, localeCodes, baseUrl } = options;
const _locales = ref(locales);
const _localeCodes = ref(localeCodes);
i18n.global.locales = computed(() => _locales.value);
i18n.global.localeCodes = computed(() => _localeCodes.value);
i18n.global.__baseUrl = resolveBaseUrl(baseUrl, {});
composer.locales = computed(() => _locales.value);
composer.localeCodes = computed(() => _localeCodes.value);
composer.__baseUrl = resolveBaseUrl(baseUrl, {});
}
function extendExportedGlobal(exported, global) {
Object.defineProperty(exported, "locales", {
get() {
return global.locales.value;
}
});
Object.defineProperty(exported, "localeCodes", {
get() {
return global.localeCodes.value;
}
});
Object.defineProperty(exported, "__baseUrl", {
get() {
return global.__baseUrl;
}
});
}
function extendVueI18n(vueI18n) {
const composer = getComposer(vueI18n);
Object.defineProperty(vueI18n, "locales", {
get() {
return composer.locales.value;
}
});
Object.defineProperty(vueI18n, "localeCodes", {
get() {
return composer.localeCodes.value;
}
});
Object.defineProperty(vueI18n, "__baseUrl", {
get() {
return composer.__baseUrl;
}
});
}
function createRouter(i18n, options = {}) {

@@ -637,2 +888,2 @@ const {

const VERSION = "0.0.0";
export { VERSION, createLocaleFromRouteGetter, createRouter, getLocale, getRouteBaseName, localeLocation, localePath, localeRoute, localizeRoutes, resolveBaseUrl, setLocale, switchLocalePath, useI18nHead };
export { VERSION, createLocaleFromRouteGetter, createRouter, findBrowserLocale, getLocale, getRouteBaseName, localeHead, localeLocation, localePath, localeRoute, localizeRoutes, resolveBaseUrl, resolveRoute, setLocale, switchLocalePath, useLocaleHead, useLocaleLocation, useLocalePath, useLocaleRoute, useRouteBaseName, useSwitchLocalePath };

@@ -1,5 +0,5 @@

var je=Object.defineProperty,Me=Object.defineProperties;var ze=Object.getOwnPropertyDescriptors;var x=Object.getOwnPropertySymbols;var ue=Object.prototype.hasOwnProperty,fe=Object.prototype.propertyIsEnumerable;var se=(s,c,g)=>c in s?je(s,c,{enumerable:!0,configurable:!0,writable:!0,value:g}):s[c]=g,y=(s,c)=>{for(var g in c||(c={}))ue.call(c,g)&&se(s,g,c[g]);if(x)for(var g of x(c))fe.call(c,g)&&se(s,g,c[g]);return s},X=(s,c)=>Me(s,ze(c));var ie=(s,c)=>{var g={};for(var p in s)ue.call(s,p)&&c.indexOf(p)<0&&(g[p]=s[p]);if(s!=null&&x)for(var p of x(s))c.indexOf(p)<0&&fe.call(s,p)&&(g[p]=s[p]);return g};var VueI18nRouting=function(s,c,g,p){"use strict";function de(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var he=de(g);/*!
* shared v9.2.0-beta.30
var nt=Object.defineProperty,ct=Object.defineProperties;var rt=Object.getOwnPropertyDescriptors;var W=Object.getOwnPropertySymbols;var Re=Object.prototype.hasOwnProperty,pe=Object.prototype.propertyIsEnumerable;var ge=(i,u,d)=>u in i?nt(i,u,{enumerable:!0,configurable:!0,writable:!0,value:d}):i[u]=d,U=(i,u)=>{for(var d in u||(u={}))Re.call(u,d)&&ge(i,d,u[d]);if(W)for(var d of W(u))pe.call(u,d)&&ge(i,d,u[d]);return i},Q=(i,u)=>ct(i,rt(u));var Se=(i,u)=>{var d={};for(var m in i)Re.call(i,m)&&u.indexOf(m)<0&&(d[m]=i[m]);if(i!=null&&W)for(var m of W(i))u.indexOf(m)<0&&pe.call(i,m)&&(d[m]=i[m]);return d};var VueI18nRouting=function(i,u,d,m){"use strict";function Ee(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var Pe=Ee(d);/*!
* shared v9.2.0-beta.34
* (c) 2022 kazuya kawaguchi
* Released under the MIT License.
*/const B=Object.assign,_e=Array.isArray,ge=e=>typeof e=="function",P=e=>typeof e=="string",Le=e=>typeof e=="boolean",Re=e=>typeof e=="symbol",me=e=>e!==null&&typeof e=="object",Ee=/\/$|\/\?/;function V(e="",t=!1){return t?Ee.test(e):e.endsWith("/")}function Se(e="",t=!1){if(!t)return(V(e)?e.slice(0,-1):e)||"/";if(!V(e,!0))return e||"/";const[a,...n]=e.split("?");return(a.slice(0,-1)||"/")+(n.length?`?${n.join("?")}`:"")}function pe(e="",t=!1){if(!t)return e.endsWith("/")?e:e+"/";if(V(e,!0))return e||"/";const[a,...n]=e.split("?");return a+"/"+(n.length?`?${n.join("?")}`:"")}const Ae=typeof window!="undefined";function Ie(e,t){typeof console!="undefined"&&(console.warn("[vue-i18n-routing] "+e),t&&console.warn(t.stack))}function G(e){e=e||[];const t=[];for(const a of e)P(a)?t.push({code:a}):t.push(a);return t}function j(e,t){return c.isRef(e.locale)&&t==="composition"}function H(e){return"global"in e&&"mode"in e}function O(e){return H(e)?j(e.global,e.mode)?e.global.locale.value:e.global.locale:e.locale.value}function W(e,t){H(e)?j(e.global,e.mode)?e.global.locale.value=t:e.global.locale=t:c.isRef(e.locale)&&(e.locale.value=t)}function Te(e,t,a){return e.replace(/\/+$/,"")+(t?"/":"")||(a?"":"/")}function Q(e){return g.isVueRouter4,c.isRef(e)?e.value:e}function Y(e){return P(e)?e:Re(e)?e.toString():"(null)"}function J(e,t,{defaultLocale:a,strategy:n,routesNameSeparator:o,defaultLocaleRouteNameSuffix:l}){let r=Y(e)+(n==="no_prefix"?"":o+t);return t===a&&n==="prefix_and_default"&&(r+=o+l),r}function K(e,t){return ge(e)?e(t):e}const U={PREFIX:"prefix",PREFIX_EXCEPT_DEFAULT:"prefix_except_default",PREFIX_AND_DEFAULT:"prefix_and_default",NO_PREFIX:"no_prefix"},w="",b=U.PREFIX_EXCEPT_DEFAULT,Z=!1,v="___",M="default",Fe="ltr",ee="",Pe=new Set([U.PREFIX_AND_DEFAULT,U.PREFIX_EXCEPT_DEFAULT]);function C(e=g.useRoute(),{router:t=g.useRouter(),routesNameSeparator:a=v}={}){const n=a||t.__routesNameSeparator,o=c.unref(e);return o.name?Y(o.name).split(n)[0]:null}function te(e,t,a){const n=z(e,t,a);return n==null?"":c.isVue3?n.redirectedFrom||n.fullPath:n.route.redirectedFrom||n.route.fullPath}function ae(e,t,a){const n=z(e,t,a);return n==null?void 0:c.isVue3?n:n.route}function Ne(e,t,a){const n=z(e,t,a);return n==null?void 0:c.isVue3?n:n.location}function z(e,t,{router:a=g.useRouter(),i18n:n=p.useI18n(),defaultLocale:o=w,defaultLocaleRouteNameSuffix:l=M,routesNameSeparator:r=v,strategy:f=b,trailingSlash:i=!1}={}){const d=a.__defaultLocaleRouteNameSuffix||l,h=a.__defaultLocale||o,u=a.__routesNameSeparator||r,R=a.__strategy||f,m=t||O(n);let S=e;P(e)&&(S[0]==="/"?S={path:e}:S={name:e});let L=B({},S);if(L.path&&!L.name){const _=a.resolve(L),E=c.isVue3?_:_.route,F=C(E);P(F)?L={name:J(F,m,{defaultLocale:h,strategy:R,routesNameSeparator:u,defaultLocaleRouteNameSuffix:d}),params:E.params,query:E.query,hash:E.hash}:(!(m===o&&Pe.has(R))&&R!==U.NO_PREFIX&&(L.path=`/${m}${L.path}`),L.path=i?pe(L.path,!0):Se(L.path,!0))}else{L.name=J(L.name,m,{defaultLocale:h,strategy:R,routesNameSeparator:u,defaultLocaleRouteNameSuffix:d});const{params:_}=L;_&&_["0"]===void 0&&_.pathMatch&&(_["0"]=_.pathMatch)}const A=a.resolve(L);return(c.isVue3?A.name:A.route.name)?A:a.resolve(e)}function D(e,t){const a=t&&t.route||g.useRoute(),n=C(a,t);if(!n)return"";const d=!c.isVue3&&c.isRef(a)?a.value:a,{params:o}=d,l=ie(d,["params"]),r={},f=B({},l,{name:n,params:X(y(y({},o),r),{0:o.pathMatch})});return te(f,e,t)}function ye({addDirAttribute:e=!1,addSeoAttributes:t=!1,strategy:a=b,defaultLocale:n=w,route:o=g.useRoute(),router:l=g.useRouter(),i18n:r=p.useI18n()}={}){const f=l,i=n||f.__defaultLocale,d=a||f.__strategy,h=c.ref({htmlAttrs:{},link:[],meta:[]});function u(){h.value={htmlAttrs:{},link:[],meta:[]}}function R(m){if(r.locales==null||r.__baseUrl==null)return;const S=O(r),L=G(r.locales.value).find(E=>E.code===S)||{code:S},A=L.iso,_=L.dir||l.__defaultDirection;if(e&&(h.value.htmlAttrs.dir=_),t&&S&&r.locales){A&&(h.value.htmlAttrs.lang=A);const E=r.locales.value;$e(E,r.__baseUrl,h.value.link,{defaultLocale:i,strategy:d,route:o,router:l,i18n:r}),Ue(r.__baseUrl,h.value.link,t,{route:m,router:l,i18n:r}),Oe(L,A,h.value.meta),we(E,A,h.value.meta)}}if(Ae)if(c.isVue3){const m=c.watchEffect(()=>{u(),R(Q(f.currentRoute))});c.onUnmounted(()=>m())}else{const m=f.afterEach((S,L)=>{u(),R(S)});c.onUnmounted(()=>m()),R(o)}else R(Q(f.currentRoute));return h}function $e(e,t,a,n){if(n.strategy===U.NO_PREFIX)return;const o=new Map;for(const l of e){const r=l.iso;if(!r){Ie("Locale ISO code is required to generate alternate link");continue}const[f,i]=r.split("-");f&&i&&(l.isCatchallLocale||!o.has(f))&&o.set(f,l),o.set(r,l)}for(const[l,r]of o.entries()){const f=D(r.code,n);f&&a.push({hid:`i18n-alt-${l}`,rel:"alternate",href:k(f,t),hreflang:l})}if(n.defaultLocale){const l=D(n.defaultLocale,n);l&&a.push({hid:"i18n-xd",rel:"alternate",href:k(l,t),hreflang:"x-default"})}}function Ue(e,t,a,n){const{route:o}=n,l=ae(X(y({},o),{name:C(o,n)}),void 0,n);if(l){let r=k(l.path,e);const f=!Le(a)&&a.canonicalQueries||[];if(f.length){const i=l.query,d=new URLSearchParams;for(const u of f)if(u in i){const R=i[u];_e(R)?R.forEach(m=>d.append(u,m||"")):d.append(u,R||"")}const h=d.toString();h&&(r=`${r}?${h}`)}t.push({hid:"i18n-can",rel:"canonical",href:r})}}function Oe(e,t,a){!(e&&t)||a.push({hid:"i18n-og",property:"og:locale",content:ne(t)})}function we(e,t,a){const n=e.filter(o=>{const l=o.iso;return l&&l!==t});if(n.length){const o=n.map(l=>({hid:`i18n-og-alt-${l.iso}`,property:"og:locale:alternate",content:ne(l.iso)}));a.push(...o)}}function ne(e){return(e||"").replace(/-/g,"_")}function k(e,t){return e.match(/^https?:\/\//)?e:t+e}function le(e,{defaultLocale:t=w,strategy:a=b,trailingSlash:n=Z,routesNameSeparator:o=v,defaultLocaleRouteNameSuffix:l=M,includeUprefixedFallback:r=!1,optionsResolver:f=void 0,locales:i=[]}={}){if(a==="no_prefix")return e;const d=i.map(u=>P(u)?u:u.code);function h(u,R,m=!1,S=!1){if(u.redirect&&(!u.component||!u.file))return[u];let L=null;return f!=null&&(L=f(u,R),L==null)?[u]:R.reduce((_,E)=>{const{name:F}=u;let{path:I}=u;const T=y({},u);F&&(T.name=`${F}${o}${E}`),u.children&&(T.children=u.children.reduce((N,q)=>[...N,...h(q,[E],!0,S)],[]));const $=E===t;if($&&a==="prefix_and_default")if(m)m&&S&&F&&(T.name+=`${o}${l}`);else{const N=X(y({},T),{path:I});if(F&&(N.name=`${T.name}${o}${l}`),u.children){N.children=[];for(const q of u.children)N.children=N.children.concat(h(q,[E],!0,!0))}_.push(N)}const ce=m&&!I.startsWith("/"),re=!ce&&!($&&a==="prefix_except_default");return re&&(I=`/${E}${I}`),I&&(I=Te(I,n,ce)),re&&$&&a==="prefix"&&r&&_.push(y({},u)),T.path=I,_.push(T),_},[])}return e.reduce((u,R)=>[...u,...h(R,d||[])],[])}function be(e,{locales:t=[],localeCodes:a=[],baseUrl:n=ee}={}){if(!j(e.global,e.mode))throw new Error("TODO:");const o=c.ref(t),l=c.ref(a);e.global.locales=c.computed(()=>o.value),e.global.localeCodes=c.computed(()=>l.value),e.global.__baseUrl=K(n,{})}function ve(e,t={}){const{version:a,defaultLocale:n,locales:o,strategy:l,trailingSlash:r,routesNameSeparator:f,defaultLocaleRouteNameSuffix:i,defaultDirection:d,baseUrl:h,routes:u,routeOptionsResolver:R}=Xe(t),m=G(o),S=m.map(E=>E.code),L=oe(S,f,i);be(e,{locales:m,baseUrl:h,localeCodes:S});const A=le(u,{locales:o,defaultLocale:n,strategy:l,trailingSlash:r,routesNameSeparator:f,defaultLocaleRouteNameSuffix:i,optionsResolver:R});t.routes=A;const _=Ce(t,a);return _.__defaultLocale=n,_.__localeCodes=S,_.__strategy=l,_.__trailingSlash=r,_.__routesNameSeparator=f,_.__defaultLocaleRouteNameSuffix=i,_.__defaultDirection=d,_.beforeEach((E,F,I)=>{const T=O(e),$=L(E)||T||n||"";T!==$&&W(e,$),I()}),_}function Ce(e,t){if(c.isVue3&&t===4)return g.createRouter(e);if(c.isVue2&&t===3)return new he.default(e);throw new Error("TODO:")}function xe(e){return new RegExp(`^/(${e.join("|")})(?:/|$)`,"i")}function oe(e,t,a){const n=`(${e.join("|")})`,o=`(?:${t}${a})?`,l=new RegExp(`${t}${n}${o}$`,"i"),r=xe(e);return i=>{if(me(i)){if(i.name){const h=(P(i.name)?i.name:i.name.toString()).match(l);if(h&&h.length>1)return h[1]}else if(i.path){const d=i.path.match(r);if(d&&d.length>1)return d[1]}}else if(P(i)){const d=i.match(r);if(d&&d.length>1)return d[1]}return""}}function Xe(e){var t,a,n,o,l,r,f,i,d,h;return e.version=(t=e.version)!=null?t:4,e.defaultLocale=(a=e.defaultLocale)!=null?a:w,e.strategy=(n=e.strategy)!=null?n:b,e.trailingSlash=(o=e.trailingSlash)!=null?o:Z,e.routesNameSeparator=(l=e.routesNameSeparator)!=null?l:v,e.defaultLocaleRouteNameSuffix=(r=e.defaultLocaleRouteNameSuffix)!=null?r:M,e.locales=(f=e.locales)!=null?f:[],e.defaultDirection=(i=e.defaultDirection)!=null?i:Fe,e.baseUrl=(d=e.baseUrl)!=null?d:ee,e.routes=(h=e.routes)!=null?h:[],e}const Ve="0.0.0";return s.VERSION=Ve,s.createLocaleFromRouteGetter=oe,s.createRouter=ve,s.getLocale=O,s.getRouteBaseName=C,s.localeLocation=Ne,s.localePath=te,s.localeRoute=ae,s.localizeRoutes=le,s.resolveBaseUrl=K,s.setLocale=W,s.switchLocalePath=D,s.useI18nHead=ye,Object.defineProperty(s,"__esModule",{value:!0}),s[Symbol.toStringTag]="Module",s}({},VueDemi,VueRouter,VueI18n);
*/const te=Object.assign,ye=Array.isArray,Ne=e=>typeof e=="function",w=e=>typeof e=="string",Ae=e=>typeof e=="symbol",oe=e=>e!==null&&typeof e=="object",Ie=/\/$|\/\?/;function v(e="",t=!1){return t?Ie.test(e):e.endsWith("/")}function we(e="",t=!1){if(!t)return(v(e)?e.slice(0,-1):e)||"/";if(!v(e,!0))return e||"/";const[o,...a]=e.split("?");return(o.slice(0,-1)||"/")+(a.length?`?${a.join("?")}`:"")}function Ce(e="",t=!1){if(!t)return e.endsWith("/")?e:e+"/";if(v(e,!0))return e||"/";const[o,...a]=e.split("?");return o+"/"+(a.length?`?${a.join("?")}`:"")}const Fe=typeof window!="undefined";function Te(e,t){typeof console!="undefined"&&(console.warn("[vue-i18n-routing] "+e),t&&console.warn(t.stack))}function ae(e){e=e||[];const t=[];for(const o of e)w(o)?t.push({code:o}):t.push(o);return t}function k(e){return e!=null&&"global"in e&&"mode"in e}function z(e){return e!=null&&!("__composer"in e)&&u.isRef(e.locale)}function x(e){return e!=null&&"__composer"in e}function Y(e){return e!=null&&!("__composer"in e)&&!u.isRef(e.locale)}function $(e){return e!=null&&("__VUE_I18N_BRIDGE__"in e||"_sync"in e)}function le(e){return k(e)?z(e.global)?e.global:e.global.__composer:x(e)?e.__composer:e}function H(e){const t=k(e)?e.global:e;return z(t)?u.isVue2&&$(e)?e.locale:t.locale.value:(Y(t)||x(t)||$(t),t.locale)}function Ue(e){const t=k(e)?e.global:e;return z(t)?u.isVue2&&$(e)?e.locales:t.locales.value:(Y(t)||x(t)||$(t),t.locales)}function ne(e,t){const o=k(e)?e.global:e;if(z(o))u.isVue2&&$(e)?e.locale=t:o.locale.value=t;else if(Y(o)||x(o)||$(o))o.locale=t;else throw new Error("TODO:")}function $e(e,t,o){return e.replace(/\/+$/,"")+(t?"/":"")||(o?"":"/")}function ce(e){return d.isVueRouter4,u.isRef(e)?e.value:e}function re(e){return w(e)?e:Ae(e)?e.toString():"(null)"}function se(e,t,{defaultLocale:o,strategy:a,routesNameSeparator:l,defaultLocaleRouteNameSuffix:n}){let c=re(e)+(a==="no_prefix"?"":l+t);return t===o&&a==="prefix_and_default"&&(c+=l+n),c}function ue(e,t){return Ne(e)?e(t):e}function be(e,t){const o=[];for(const[a,l]of t.entries()){const n=e.find(c=>c.iso.toLowerCase()===l.toLowerCase());if(n){o.push({code:n.code,score:1-a/t.length});break}}for(const[a,l]of t.entries()){const n=l.split("-")[0].toLowerCase(),c=e.find(r=>r.iso.split("-")[0].toLowerCase()===n);if(c){o.push({code:c.code,score:.999-a/t.length});break}}return o}const Oe=be;function xe(e,t){return e.score===t.score?t.code.length-e.code.length:t.score-e.score}const je=xe;function Ve(e,t,{matcher:o=Oe,comparer:a=je}={}){const l=[];for(const c of e){const{code:r}=c,s=c.iso||r;l.push({code:r,iso:s})}const n=o(l,t);return n.length>1&&n.sort(a),n.length?n[0].code:""}const j={PREFIX:"prefix",PREFIX_EXCEPT_DEFAULT:"prefix_except_default",PREFIX_AND_DEFAULT:"prefix_and_default",NO_PREFIX:"no_prefix"},A="",I=j.PREFIX_EXCEPT_DEFAULT,ie=!1,y="___",C="default",Be="ltr",fe="",Xe=new Set([j.PREFIX_AND_DEFAULT,j.PREFIX_EXCEPT_DEFAULT]);function b(e){const o=this.router.__routesNameSeparator||this.__routesNameSeparator||y,a=e!=null?u.isRef(e)?u.unref(e):e:this.route;return a.name?re(a.name).split(o)[0]:void 0}function G(e,t){const o=V.call(this,e,t);return o==null?"":u.isVue3?o.redirectedFrom||o.fullPath:o.route.redirectedFrom||o.route.fullPath}function q(e,t){const o=V.call(this,e,t);return o==null?void 0:u.isVue3?o:o.route}function J(e,t){const o=V.call(this,e,t);return o==null?void 0:u.isVue3?o:o.location}function V(e,t){const o=this.router,a=this.i18n,l=t||H(a),n=this.__defaultLocale||A,c=o.__defaultLocale||n,r=o.__defaultLocaleRouteNameSuffix||this.__defaultLocaleRouteNameSuffix||C,s=o.__routesNameSeparator||this.__routesNameSeparator||y,f=o.__strategy||this.__strategy||I,_=o.__trailingSlash||this.__trailingSlash||!1;let h=e;w(e)&&(h[0]==="/"?h={path:e}:h={name:e});let L=te({},h);if(L.path&&!L.name){const g=o.resolve(L),N=u.isVue3?g:g.route,X=b.call(this,N);w(X)?L={name:se(X,l,{defaultLocale:c,strategy:f,routesNameSeparator:s,defaultLocaleRouteNameSuffix:r}),params:N.params,query:N.query,hash:N.hash}:(!(l===n&&Xe.has(f))&&f!==j.NO_PREFIX&&(L.path=`/${l}${L.path}`),L.path=_?Ce(L.path,!0):we(L.path,!0))}else{L.name=se(L.name,l,{defaultLocale:c,strategy:f,routesNameSeparator:s,defaultLocaleRouteNameSuffix:r});const{params:g}=L;g&&g["0"]===void 0&&g.pathMatch&&(g["0"]=g.pathMatch)}const p=o.resolve(L);return(u.isVue3?p.name:p.route.name)?p:o.resolve(e)}function B(e){const t=this.route,o=b.call(this,t);if(!o)return"";const s=!u.isVue3&&u.isRef(t)?t.value:t,{params:a}=s,l=Se(s,["params"]),n={},c=te({},l,{name:o,params:Q(U(U({},a),n),{0:a.pathMatch})});return G.call(this,c,e)}function K({addDirAttribute:e=!1,addSeoAttributes:t=!1}={}){const o=this.router,a=this.i18n,l={htmlAttrs:{},link:[],meta:[]};if(a.locales==null||a.__baseUrl==null)return l;const n=H(a),c=Ue(a),r=ae(c).find(_=>_.code===n)||{code:n},s=r.iso,f=r.dir||o.__defaultDirection;return e&&(l.htmlAttrs.dir=f),t&&n&&a.locales&&(s&&(l.htmlAttrs.lang=s),Me.call(this,c,a.__baseUrl,l.link),ke.call(this,a.__baseUrl,l.link,t),ze(r,s,l.meta),He(c,s,l.meta)),l}function Me(e,t,o){const a=this.router,l=a.__defaultLocale||this.__defaultLocale;if((a.__strategy||this.__strategy)===j.NO_PREFIX)return;const c=new Map;for(const r of e){const s=r.iso;if(!s){Te("Locale ISO code is required to generate alternate link");continue}const[f,_]=s.split("-");f&&_&&(r.isCatchallLocale||!c.has(f))&&c.set(f,r),c.set(s,r)}for(const[r,s]of c.entries()){const f=B.call(this,s.code);f&&o.push({hid:`i18n-alt-${r}`,rel:"alternate",href:Z(f,t),hreflang:r})}if(l){const r=B.call(this,l);r&&o.push({hid:"i18n-xd",rel:"alternate",href:Z(r,t),hreflang:"x-default"})}}function ke(e,t,o){const a=this.route,l=q.call(this,Q(U({},a),{name:b.call(this,a)}));if(l){let n=Z(l.path,e);const c=oe(o)&&o.canonicalQueries||[];if(c.length){const r=l.query,s=new URLSearchParams;for(const _ of c)if(_ in r){const h=r[_];ye(h)?h.forEach(L=>s.append(_,L||"")):s.append(_,h||"")}const f=s.toString();f&&(n=`${n}?${f}`)}t.push({hid:"i18n-can",rel:"canonical",href:n})}}function ze(e,t,o){!(e&&t)||o.push({hid:"i18n-og",property:"og:locale",content:he(t)})}function He(e,t,o){const a=e.filter(l=>{const n=l.iso;return n&&n!==t});if(a.length){const l=a.map(n=>({hid:`i18n-og-alt-${n.iso}`,property:"og:locale:alternate",content:he(n.iso)}));o.push(...l)}}function he(e){return(e||"").replace(/-/g,"_")}function Z(e,t){return e.match(/^https?:\/\//)?e:t+e}function D(e,t){const{router:o,route:a,i18n:l,defaultLocale:n,strategy:c,defaultLocaleRouteNameSuffix:r,trailingSlash:s,routesNameSeparator:f}=e;return function(..._){return Reflect.apply(t,{router:o,route:a,i18n:l,__defaultLocale:n,__strategy:c,__defaultLocaleRouteNameSuffix:r,__trailingSlash:s,__routesNameSeparator:f},_)}}function Ge(e=d.useRoute(),{router:t=d.useRouter(),routesNameSeparator:o=y}={}){const a={router:t,route:e,__routesNameSeparator:o};return b.call(a,e)}function qe({router:e=d.useRouter(),route:t=d.useRoute(),i18n:o=m.useI18n(),defaultLocale:a=A,defaultLocaleRouteNameSuffix:l=C,routesNameSeparator:n=y,strategy:c=I,trailingSlash:r=!1}={}){return D({router:e,route:t,i18n:o,defaultLocale:a,defaultLocaleRouteNameSuffix:l,routesNameSeparator:n,strategy:c,trailingSlash:r},G)}function De({router:e=d.useRouter(),route:t=d.useRoute(),i18n:o=m.useI18n(),defaultLocale:a=A,defaultLocaleRouteNameSuffix:l=C,routesNameSeparator:n=y,strategy:c=I,trailingSlash:r=!1}={}){return D({router:e,route:t,i18n:o,defaultLocale:a,defaultLocaleRouteNameSuffix:l,routesNameSeparator:n,strategy:c,trailingSlash:r},q)}function We({router:e=d.useRouter(),route:t=d.useRoute(),i18n:o=m.useI18n(),defaultLocale:a=A,defaultLocaleRouteNameSuffix:l=C,routesNameSeparator:n=y,strategy:c=I,trailingSlash:r=!1}={}){return D({router:e,route:t,i18n:o,defaultLocale:a,defaultLocaleRouteNameSuffix:l,routesNameSeparator:n,strategy:c,trailingSlash:r},J)}function Qe({router:e=d.useRouter(),route:t=d.useRoute(),i18n:o=m.useI18n(),defaultLocale:a=A,defaultLocaleRouteNameSuffix:l=C,routesNameSeparator:n=y,strategy:c=I,trailingSlash:r=!1}={}){return D({router:e,route:t,i18n:o,defaultLocale:a,defaultLocaleRouteNameSuffix:l,routesNameSeparator:n,strategy:c,trailingSlash:r},B)}function ve({addDirAttribute:e=!1,addSeoAttributes:t=!1,strategy:o=I,defaultLocale:a=A,route:l=d.useRoute(),router:n=d.useRouter(),i18n:c=m.useI18n()}={}){const r=n,s=u.ref({htmlAttrs:{},link:[],meta:[]});function f(){s.value={htmlAttrs:{},link:[],meta:[]}}function _(h){s.value=Reflect.apply(K,{router:n,route:h,i18n:c,__defaultLocale:a,__strategy:o},[{addDirAttribute:e,addSeoAttributes:t}])}if(Fe)if(u.isVue3){const h=u.watchEffect(()=>{f(),_(ce(r.currentRoute))});u.onUnmounted(()=>h())}else{const h=r.afterEach((L,p)=>{f(),_(L)});u.onUnmounted(()=>h()),_(l)}else _(ce(r.currentRoute));return s}function de(e,{defaultLocale:t=A,strategy:o=I,trailingSlash:a=ie,routesNameSeparator:l=y,defaultLocaleRouteNameSuffix:n=C,includeUprefixedFallback:c=!1,optionsResolver:r=void 0,locales:s=[]}={}){if(o==="no_prefix")return e;const f=s.map(h=>w(h)?h:h.code);function _(h,L,p=!1,g=!1){if(h.redirect&&(!h.component||!h.file))return[h];let N=null;return r!=null&&(N=r(h,L),N==null)?[h]:L.reduce((R,S)=>{const{name:M}=h;let{path:E}=h;const P=U({},h);M&&(P.name=`${M}${l}${S}`),h.children&&(P.children=h.children.reduce((T,ee)=>[...T,..._(ee,[S],!0,g)],[]));const O=S===t;if(O&&o==="prefix_and_default")if(p)p&&g&&M&&(P.name+=`${l}${n}`);else{const T=Q(U({},P),{path:E});if(M&&(T.name=`${P.name}${l}${n}`),h.children){T.children=[];for(const ee of h.children)T.children=T.children.concat(_(ee,[S],!0,!0))}R.push(T)}const Le=p&&!E.startsWith("/"),me=!Le&&!(O&&o==="prefix_except_default");return me&&(E=`/${S}${E}`),E&&(E=$e(E,a,Le)),me&&O&&o==="prefix"&&c&&R.push(U({},h)),P.path=E,R.push(P),R},[])}return e.reduce((h,L)=>[...h,..._(L,f||[])],[])}function F(e){return function(){return Reflect.apply(e,{getRouteBaseName:this.getRouteBaseName,localePath:this.localePath,localeRoute:this.localeRoute,localeLocation:this.localeLocation,resolveRoute:this.resolveRoute,switchLocalePath:this.switchLocalePath,localeHead:this.localeHead,i18n:this.$i18n,route:this.$route,router:this.$router},arguments)}}function Ye(e,{locales:t=[],localeCodes:o=[],baseUrl:a=fe}={}){const l=e.install;e.install=(n,...c)=>{Reflect.apply(l,e,[n,...c]);const r=le(e);Je(r,{locales:t,localeCodes:o,baseUrl:a}),x(e.global)&&Ze(e.global);const s=n,f=e.mode==="composition"?u.isVue3?s.config.globalProperties.$i18n:e:u.isVue2?e:null;f&&Ke(f,r),n.mixin({methods:{resolveRoute:F(V),localePath:F(G),localeRoute:F(q),localeLocation:F(J),switchLocalePath:F(B),getRouteBaseName:F(b),localeHead:F(K)}})}}function Je(e,t){const{locales:o,localeCodes:a,baseUrl:l}=t,n=u.ref(o),c=u.ref(a);e.locales=u.computed(()=>n.value),e.localeCodes=u.computed(()=>c.value),e.__baseUrl=ue(l,{})}function Ke(e,t){Object.defineProperty(e,"locales",{get(){return t.locales.value}}),Object.defineProperty(e,"localeCodes",{get(){return t.localeCodes.value}}),Object.defineProperty(e,"__baseUrl",{get(){return t.__baseUrl}})}function Ze(e){const t=le(e);Object.defineProperty(e,"locales",{get(){return t.locales.value}}),Object.defineProperty(e,"localeCodes",{get(){return t.localeCodes.value}}),Object.defineProperty(e,"__baseUrl",{get(){return t.__baseUrl}})}function et(e,t={}){const{version:o,defaultLocale:a,locales:l,strategy:n,trailingSlash:c,routesNameSeparator:r,defaultLocaleRouteNameSuffix:s,defaultDirection:f,baseUrl:_,routes:h,routeOptionsResolver:L}=at(t),p=ae(l),g=p.map(S=>S.code),N=_e(g,r,s);Ye(e,{locales:p,baseUrl:_,localeCodes:g});const X=de(h,{locales:l,defaultLocale:a,strategy:n,trailingSlash:c,routesNameSeparator:r,defaultLocaleRouteNameSuffix:s,optionsResolver:L});t.routes=X;const R=tt(t,o);return R.__defaultLocale=a,R.__localeCodes=g,R.__strategy=n,R.__trailingSlash=c,R.__routesNameSeparator=r,R.__defaultLocaleRouteNameSuffix=s,R.__defaultDirection=f,R.beforeEach((S,M,E)=>{const P=H(e),O=N(S)||P||a||"";P!==O&&ne(e,O),E()}),R}function tt(e,t){if(u.isVue3&&t===4)return d.createRouter(e);if(u.isVue2&&t===3)return new Pe.default(e);throw new Error("TODO:")}function ot(e){return new RegExp(`^/(${e.join("|")})(?:/|$)`,"i")}function _e(e,t,o){const a=`(${e.join("|")})`,l=`(?:${t}${o})?`,n=new RegExp(`${t}${a}${l}$`,"i"),c=ot(e);return s=>{if(oe(s)){if(s.name){const _=(w(s.name)?s.name:s.name.toString()).match(n);if(_&&_.length>1)return _[1]}else if(s.path){const f=s.path.match(c);if(f&&f.length>1)return f[1]}}else if(w(s)){const f=s.match(c);if(f&&f.length>1)return f[1]}return""}}function at(e){var t,o,a,l,n,c,r,s,f,_;return e.version=(t=e.version)!=null?t:4,e.defaultLocale=(o=e.defaultLocale)!=null?o:A,e.strategy=(a=e.strategy)!=null?a:I,e.trailingSlash=(l=e.trailingSlash)!=null?l:ie,e.routesNameSeparator=(n=e.routesNameSeparator)!=null?n:y,e.defaultLocaleRouteNameSuffix=(c=e.defaultLocaleRouteNameSuffix)!=null?c:C,e.locales=(r=e.locales)!=null?r:[],e.defaultDirection=(s=e.defaultDirection)!=null?s:Be,e.baseUrl=(f=e.baseUrl)!=null?f:fe,e.routes=(_=e.routes)!=null?_:[],e}const lt="0.0.0";return i.VERSION=lt,i.createLocaleFromRouteGetter=_e,i.createRouter=et,i.findBrowserLocale=Ve,i.getLocale=H,i.getRouteBaseName=b,i.localeHead=K,i.localeLocation=J,i.localePath=G,i.localeRoute=q,i.localizeRoutes=de,i.resolveBaseUrl=ue,i.resolveRoute=V,i.setLocale=ne,i.switchLocalePath=B,i.useLocaleHead=ve,i.useLocaleLocation=We,i.useLocalePath=qe,i.useLocaleRoute=De,i.useRouteBaseName=Ge,i.useSwitchLocalePath=Qe,Object.defineProperties(i,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),i}({},VueDemi,VueRouter,VueI18n);
{
"name": "vue-i18n-routing",
"description": "The i18n routing with using vue-i18n",
"version": "0.0.0-5735bda",
"version": "0.0.0-5c20650",
"dependencies": {

@@ -23,3 +23,3 @@ "@intlify/shared": "beta",

"vue-i18n": "npm:vue-i18n@next",
"vue-i18n-bridge": "beta",
"vue-i18n-bridge": "next",
"vue-i18n-legacy": "npm:vue-i18n@8",

@@ -34,4 +34,4 @@ "vue-router": "^4.0.12",

"vue": "^2.6.14 || ^3.2.0",
"vue-i18n": "^8.26.1 || ^9.2.0-beta.30",
"vue-i18n-bridge": "^9.2.0-beta.30",
"vue-i18n": "^8.26.1 || ^9.2.0-beta.34",
"vue-i18n-bridge": "^9.2.0-beta.34",
"vue-router": "^3.5.3 || ^4.0.0"

@@ -38,0 +38,0 @@ },