next-intl 3.16.0 → 3.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/development/navigation/react-client/createLocalizedPathnamesNavigation.js +3 -3
  2. package/dist/development/react-server/getTranslator.js +0 -2
  3. package/dist/development/server/react-server/getConfig.js +5 -1
  4. package/dist/development/server/react-server/getTranslations.js +0 -2
  5. package/dist/esm/navigation/react-client/createLocalizedPathnamesNavigation.js +1 -1
  6. package/dist/esm/react-server/getTranslator.js +1 -1
  7. package/dist/esm/server/react-server/getConfig.js +1 -1
  8. package/dist/esm/server/react-server/getTranslations.js +1 -1
  9. package/dist/production/navigation/react-client/createLocalizedPathnamesNavigation.js +1 -1
  10. package/dist/production/react-server/getTranslator.js +1 -1
  11. package/dist/production/server/react-server/getConfig.js +1 -1
  12. package/dist/production/server/react-server/getTranslations.js +1 -1
  13. package/dist/types/src/navigation/react-client/ClientLink.d.ts +1 -1
  14. package/dist/types/src/navigation/react-client/createLocalizedPathnamesNavigation.d.ts +31 -32
  15. package/dist/types/src/navigation/react-client/createSharedPathnamesNavigation.d.ts +22 -23
  16. package/dist/types/src/navigation/react-client/redirects.d.ts +8 -8
  17. package/dist/types/src/navigation/react-server/createLocalizedPathnamesNavigation.d.ts +25 -26
  18. package/dist/types/src/navigation/react-server/createSharedPathnamesNavigation.d.ts +1 -1
  19. package/dist/types/src/navigation/react-server/redirects.d.ts +8 -8
  20. package/dist/types/src/navigation/shared/utils.d.ts +0 -2
  21. package/dist/types/src/server/react-client/index.d.ts +2 -2
  22. package/dist/types/src/server/react-server/getConfig.d.ts +2 -1
  23. package/dist/types/src/shared/utils.d.ts +0 -1
  24. package/package.json +8 -8
  25. package/dist/development/shared/messageFormatCache.js +0 -12
  26. package/dist/esm/shared/messageFormatCache.js +0 -1
  27. package/dist/production/shared/messageFormatCache.js +0 -1
  28. package/dist/types/src/shared/messageFormatCache.d.ts +0 -3
@@ -83,7 +83,7 @@ function createLocalizedPathnamesNavigation(input) {
83
83
  function useRouter() {
84
84
  const baseRouter = useBaseRouter.default(config$1.localePrefix);
85
85
  const defaultLocale = useTypedLocale();
86
- return {
86
+ return React.useMemo(() => ({
87
87
  ...baseRouter,
88
88
  push(href) {
89
89
  var _args$;
@@ -118,14 +118,14 @@ function createLocalizedPathnamesNavigation(input) {
118
118
  });
119
119
  return baseRouter.prefetch(resolvedHref, ...args);
120
120
  }
121
- };
121
+ }), [baseRouter, defaultLocale]);
122
122
  }
123
123
  function usePathname() {
124
124
  const pathname = useBasePathname.default(config$1.localePrefix);
125
125
  const locale = useTypedLocale();
126
126
 
127
127
  // @ts-expect-error -- Mirror the behavior from Next.js, where `null` is returned when `usePathname` is used outside of Next, but the types indicate that a string is always returned.
128
- return pathname ? utils.getRoute(locale, pathname, config$1.pathnames) : pathname;
128
+ return React.useMemo(() => pathname ? utils.getRoute(locale, pathname, config$1.pathnames) : pathname, [locale, pathname]);
129
129
  }
130
130
  function getPathname(_ref2) {
131
131
  let {
@@ -4,12 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var core = require('use-intl/core');
7
- var messageFormatCache = require('../shared/messageFormatCache.js');
8
7
 
9
8
  function getTranslatorImpl(config, namespace) {
10
9
  return core.createTranslator({
11
10
  ...config,
12
- messageFormatCache: messageFormatCache.getMessageFormatCache(),
13
11
  namespace
14
12
  });
15
13
  }
@@ -50,9 +50,13 @@ async function receiveRuntimeConfigImpl(getConfig, localeOverride) {
50
50
  };
51
51
  }
52
52
  const receiveRuntimeConfig = React.cache(receiveRuntimeConfigImpl);
53
+ const getFormatters = React.cache(core._createFormatters);
53
54
  async function getConfigImpl(localeOverride) {
54
55
  const runtimeConfig = await receiveRuntimeConfig(getRuntimeConfig__default.default, localeOverride);
55
- return core.initializeConfig(runtimeConfig);
56
+ return {
57
+ ...core.initializeConfig(runtimeConfig),
58
+ _formatters: getFormatters()
59
+ };
56
60
  }
57
61
  const getConfig = React.cache(getConfigImpl);
58
62
 
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var core = require('use-intl/core');
7
- var messageFormatCache = require('../../shared/messageFormatCache.js');
8
7
  var getConfig = require('./getConfig.js');
9
8
 
10
9
  // Maintainer note: `getTranslations` has two different call signatures.
@@ -28,7 +27,6 @@ async function getTranslations(namespaceOrOpts) {
28
27
  const config = await getConfig.default(locale);
29
28
  return core.createTranslator({
30
29
  ...config,
31
- messageFormatCache: messageFormatCache.getMessageFormatCache(),
32
30
  namespace,
33
31
  messages: config.messages
34
32
  });
@@ -1 +1 @@
1
- import{extends as e}from"../../_virtual/_rollupPluginBabelHelpers.js";import r,{forwardRef as o}from"react";import t from"../../react-client/useLocale.js";import{receiveLocalizedNavigationRoutingConfig as n}from"../shared/config.js";import{getRoute as a,compileLocalizedPathname as l,normalizeNameOrNameWithParams as c}from"../shared/utils.js";import i from"./ClientLink.js";import{clientRedirect as s,clientPermanentRedirect as f}from"./redirects.js";import u from"./useBasePathname.js";import m from"./useBaseRouter.js";function h(h){const p=n(h);function d(){const e=t();if(!p.locales.includes(e))throw new Error('Unknown locale encountered: "'.concat(e,'". Make sure to validate the locale in `i18n.ts`.'));return e}function v(o,t){let{href:n,locale:a,...c}=o;const s=d(),f=a||s;return r.createElement(i,e({ref:t,href:l({locale:f,pathname:n,params:"object"==typeof n?n.params:void 0,pathnames:p.pathnames}),locale:a,localePrefix:p.localePrefix},c))}const P=o(v);function x(e){let{href:r,locale:o}=e;return l({...c(r),locale:o,pathnames:p.pathnames})}return P.displayName="Link",{Link:P,redirect:function(e){const r=x({href:e,locale:d()});for(var o=arguments.length,t=new Array(o>1?o-1:0),n=1;n<o;n++)t[n-1]=arguments[n];return s({pathname:r,localePrefix:p.localePrefix},...t)},permanentRedirect:function(e){const r=x({href:e,locale:d()});for(var o=arguments.length,t=new Array(o>1?o-1:0),n=1;n<o;n++)t[n-1]=arguments[n];return f({pathname:r,localePrefix:p.localePrefix},...t)},usePathname:function(){const e=u(p.localePrefix),r=d();return e?a(r,e,p.pathnames):e},useRouter:function(){const e=m(p.localePrefix),r=d();return{...e,push(o){for(var t,n=arguments.length,a=new Array(n>1?n-1:0),l=1;l<n;l++)a[l-1]=arguments[l];const c=x({href:o,locale:(null===(t=a[0])||void 0===t?void 0:t.locale)||r});return e.push(c,...a)},replace(o){for(var t,n=arguments.length,a=new Array(n>1?n-1:0),l=1;l<n;l++)a[l-1]=arguments[l];const c=x({href:o,locale:(null===(t=a[0])||void 0===t?void 0:t.locale)||r});return e.replace(c,...a)},prefetch(o){for(var t,n=arguments.length,a=new Array(n>1?n-1:0),l=1;l<n;l++)a[l-1]=arguments[l];const c=x({href:o,locale:(null===(t=a[0])||void 0===t?void 0:t.locale)||r});return e.prefetch(c,...a)}}},getPathname:x}}export{h as default};
1
+ import{extends as e}from"../../_virtual/_rollupPluginBabelHelpers.js";import r,{forwardRef as o,useMemo as t}from"react";import n from"../../react-client/useLocale.js";import{receiveLocalizedNavigationRoutingConfig as a}from"../shared/config.js";import{getRoute as l,compileLocalizedPathname as c,normalizeNameOrNameWithParams as i}from"../shared/utils.js";import s from"./ClientLink.js";import{clientRedirect as f,clientPermanentRedirect as u}from"./redirects.js";import m from"./useBasePathname.js";import h from"./useBaseRouter.js";function p(p){const d=a(p);function v(){const e=n();if(!d.locales.includes(e))throw new Error('Unknown locale encountered: "'.concat(e,'". Make sure to validate the locale in `i18n.ts`.'));return e}function P(o,t){let{href:n,locale:a,...l}=o;const i=v(),f=a||i;return r.createElement(s,e({ref:t,href:c({locale:f,pathname:n,params:"object"==typeof n?n.params:void 0,pathnames:d.pathnames}),locale:a,localePrefix:d.localePrefix},l))}const x=o(P);function j(e){let{href:r,locale:o}=e;return c({...i(r),locale:o,pathnames:d.pathnames})}return x.displayName="Link",{Link:x,redirect:function(e){const r=j({href:e,locale:v()});for(var o=arguments.length,t=new Array(o>1?o-1:0),n=1;n<o;n++)t[n-1]=arguments[n];return f({pathname:r,localePrefix:d.localePrefix},...t)},permanentRedirect:function(e){const r=j({href:e,locale:v()});for(var o=arguments.length,t=new Array(o>1?o-1:0),n=1;n<o;n++)t[n-1]=arguments[n];return u({pathname:r,localePrefix:d.localePrefix},...t)},usePathname:function(){const e=m(d.localePrefix),r=v();return t((()=>e?l(r,e,d.pathnames):e),[r,e])},useRouter:function(){const e=h(d.localePrefix),r=v();return t((()=>({...e,push(o){for(var t,n=arguments.length,a=new Array(n>1?n-1:0),l=1;l<n;l++)a[l-1]=arguments[l];const c=j({href:o,locale:(null===(t=a[0])||void 0===t?void 0:t.locale)||r});return e.push(c,...a)},replace(o){for(var t,n=arguments.length,a=new Array(n>1?n-1:0),l=1;l<n;l++)a[l-1]=arguments[l];const c=j({href:o,locale:(null===(t=a[0])||void 0===t?void 0:t.locale)||r});return e.replace(c,...a)},prefetch(o){for(var t,n=arguments.length,a=new Array(n>1?n-1:0),l=1;l<n;l++)a[l-1]=arguments[l];const c=j({href:o,locale:(null===(t=a[0])||void 0===t?void 0:t.locale)||r});return e.prefetch(c,...a)}})),[e,r])},getPathname:j}}export{p as default};
@@ -1 +1 @@
1
- import{cache as e}from"react";import{createTranslator as r}from"use-intl/core";import{getMessageFormatCache as a}from"../shared/messageFormatCache.js";var m=e((function(e,m){return r({...e,messageFormatCache:a(),namespace:m})}));export{m as default};
1
+ import{cache as r}from"react";import{createTranslator as e}from"use-intl/core";var t=r((function(r,t){return e({...r,namespace:t})}));export{t as default};
@@ -1 +1 @@
1
- import{cache as t}from"react";import{initializeConfig as e}from"use-intl/core";import{getRequestLocale as o}from"./RequestLocale.js";import n from"next-intl/config";const r=t((function(){return new Date}));const a=t((function(){return Intl.DateTimeFormat().resolvedOptions().timeZone}));const s=t((async function(t,e){let n=!1;const s={get locale(){return n=!0,e||o()}};let i=t(s);return i instanceof Promise&&(i=await i),i.locale&&n&&console.error("\nYou've read the `locale` param that was passed to `getRequestConfig` but have also returned one from the function. This is likely an error, please ensure that you're consistently using a setup with or without i18n routing: https://next-intl-docs.vercel.app/docs/getting-started/app-router\n"),{...i,locale:i.locale||s.locale,now:i.now||r(),timeZone:i.timeZone||a()}}));const i=t((async function(t){const o=await s(n,t);return e(o)}));export{i as default};
1
+ import{cache as t}from"react";import{_createFormatters as e,initializeConfig as o}from"use-intl/core";import{getRequestLocale as n}from"./RequestLocale.js";import r from"next-intl/config";const a=t((function(){return new Date}));const s=t((function(){return Intl.DateTimeFormat().resolvedOptions().timeZone}));const i=t((async function(t,e){let o=!1;const r={get locale(){return o=!0,e||n()}};let i=t(r);return i instanceof Promise&&(i=await i),i.locale&&o&&console.error("\nYou've read the `locale` param that was passed to `getRequestConfig` but have also returned one from the function. This is likely an error, please ensure that you're consistently using a setup with or without i18n routing: https://next-intl-docs.vercel.app/docs/getting-started/app-router\n"),{...i,locale:i.locale||r.locale,now:i.now||a(),timeZone:i.timeZone||s()}})),c=t(e);const l=t((async function(t){const e=await i(r,t);return{...o(e),_formatters:c()}}));export{l as default};
@@ -1 +1 @@
1
- import{cache as e}from"react";import{createTranslator as a}from"use-intl/core";import{getMessageFormatCache as s}from"../../shared/messageFormatCache.js";import r from"./getConfig.js";var t=e((async function(e){let t,o;"string"==typeof e?t=e:e&&(o=e.locale,t=e.namespace);const m=await r(o);return a({...m,messageFormatCache:s(),namespace:t,messages:m.messages})}));export{t as default};
1
+ import{cache as e}from"react";import{createTranslator as t}from"use-intl/core";import a from"./getConfig.js";var s=e((async function(e){let s,o;"string"==typeof e?s=e:e&&(o=e.locale,s=e.namespace);const r=await a(o);return t({...r,namespace:s,messages:r.messages})}));export{s as default};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_rollupPluginBabelHelpers.js"),r=require("react"),a=require("../../react-client/useLocale.js"),t=require("../shared/config.js"),l=require("../shared/utils.js"),n=require("./ClientLink.js"),o=require("./redirects.js"),c=require("./useBasePathname.js"),i=require("./useBaseRouter.js");function u(e){return e&&e.__esModule?e:{default:e}}var s=u(r);exports.default=function(u){const f=t.receiveLocalizedNavigationRoutingConfig(u);function h(){const e=a.default();if(!f.locales.includes(e))throw new Error(void 0);return e}function d(r,a){let{href:t,locale:o,...c}=r;const i=h(),u=o||i;return s.default.createElement(n.default,e.extends({ref:a,href:l.compileLocalizedPathname({locale:u,pathname:t,params:"object"==typeof t?t.params:void 0,pathnames:f.pathnames}),locale:o,localePrefix:f.localePrefix},c))}const p=r.forwardRef(d);function m(e){let{href:r,locale:a}=e;return l.compileLocalizedPathname({...l.normalizeNameOrNameWithParams(r),locale:a,pathnames:f.pathnames})}return p.displayName="Link",{Link:p,redirect:function(e){const r=m({href:e,locale:h()});for(var a=arguments.length,t=new Array(a>1?a-1:0),l=1;l<a;l++)t[l-1]=arguments[l];return o.clientRedirect({pathname:r,localePrefix:f.localePrefix},...t)},permanentRedirect:function(e){const r=m({href:e,locale:h()});for(var a=arguments.length,t=new Array(a>1?a-1:0),l=1;l<a;l++)t[l-1]=arguments[l];return o.clientPermanentRedirect({pathname:r,localePrefix:f.localePrefix},...t)},usePathname:function(){const e=c.default(f.localePrefix),r=h();return e?l.getRoute(r,e,f.pathnames):e},useRouter:function(){const e=i.default(f.localePrefix),r=h();return{...e,push(a){for(var t,l=arguments.length,n=new Array(l>1?l-1:0),o=1;o<l;o++)n[o-1]=arguments[o];const c=m({href:a,locale:(null===(t=n[0])||void 0===t?void 0:t.locale)||r});return e.push(c,...n)},replace(a){for(var t,l=arguments.length,n=new Array(l>1?l-1:0),o=1;o<l;o++)n[o-1]=arguments[o];const c=m({href:a,locale:(null===(t=n[0])||void 0===t?void 0:t.locale)||r});return e.replace(c,...n)},prefetch(a){for(var t,l=arguments.length,n=new Array(l>1?l-1:0),o=1;o<l;o++)n[o-1]=arguments[o];const c=m({href:a,locale:(null===(t=n[0])||void 0===t?void 0:t.locale)||r});return e.prefetch(c,...n)}}},getPathname:m}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_rollupPluginBabelHelpers.js"),r=require("react"),a=require("../../react-client/useLocale.js"),t=require("../shared/config.js"),l=require("../shared/utils.js"),n=require("./ClientLink.js"),o=require("./redirects.js"),c=require("./useBasePathname.js"),i=require("./useBaseRouter.js");function u(e){return e&&e.__esModule?e:{default:e}}var s=u(r);exports.default=function(u){const f=t.receiveLocalizedNavigationRoutingConfig(u);function h(){const e=a.default();if(!f.locales.includes(e))throw new Error(void 0);return e}function d(r,a){let{href:t,locale:o,...c}=r;const i=h(),u=o||i;return s.default.createElement(n.default,e.extends({ref:a,href:l.compileLocalizedPathname({locale:u,pathname:t,params:"object"==typeof t?t.params:void 0,pathnames:f.pathnames}),locale:o,localePrefix:f.localePrefix},c))}const m=r.forwardRef(d);function p(e){let{href:r,locale:a}=e;return l.compileLocalizedPathname({...l.normalizeNameOrNameWithParams(r),locale:a,pathnames:f.pathnames})}return m.displayName="Link",{Link:m,redirect:function(e){const r=p({href:e,locale:h()});for(var a=arguments.length,t=new Array(a>1?a-1:0),l=1;l<a;l++)t[l-1]=arguments[l];return o.clientRedirect({pathname:r,localePrefix:f.localePrefix},...t)},permanentRedirect:function(e){const r=p({href:e,locale:h()});for(var a=arguments.length,t=new Array(a>1?a-1:0),l=1;l<a;l++)t[l-1]=arguments[l];return o.clientPermanentRedirect({pathname:r,localePrefix:f.localePrefix},...t)},usePathname:function(){const e=c.default(f.localePrefix),a=h();return r.useMemo((()=>e?l.getRoute(a,e,f.pathnames):e),[a,e])},useRouter:function(){const e=i.default(f.localePrefix),a=h();return r.useMemo((()=>({...e,push(r){for(var t,l=arguments.length,n=new Array(l>1?l-1:0),o=1;o<l;o++)n[o-1]=arguments[o];const c=p({href:r,locale:(null===(t=n[0])||void 0===t?void 0:t.locale)||a});return e.push(c,...n)},replace(r){for(var t,l=arguments.length,n=new Array(l>1?l-1:0),o=1;o<l;o++)n[o-1]=arguments[o];const c=p({href:r,locale:(null===(t=n[0])||void 0===t?void 0:t.locale)||a});return e.replace(c,...n)},prefetch(r){for(var t,l=arguments.length,n=new Array(l>1?l-1:0),o=1;o<l;o++)n[o-1]=arguments[o];const c=p({href:r,locale:(null===(t=n[0])||void 0===t?void 0:t.locale)||a});return e.prefetch(c,...n)}})),[e,a])},getPathname:p}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("use-intl/core"),a=require("../shared/messageFormatCache.js");var t=e.cache((function(e,t){return r.createTranslator({...e,messageFormatCache:a.getMessageFormatCache(),namespace:t})}));exports.default=t;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("use-intl/core");var t=e.cache((function(e,t){return r.createTranslator({...e,namespace:t})}));exports.default=t;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("use-intl/core"),n=require("./RequestLocale.js");function o(e){return e&&e.__esModule?e:{default:e}}var r=o(require("next-intl/config"));const a=e.cache((function(){return new Date}));const c=e.cache((function(){return Intl.DateTimeFormat().resolvedOptions().timeZone}));const i=e.cache((async function(e,t){let o=!1;const r={get locale(){return o=!0,t||n.getRequestLocale()}};let i=e(r);return i instanceof Promise&&(i=await i),i.locale&&o&&console.error("\nYou've read the `locale` param that was passed to `getRequestConfig` but have also returned one from the function. This is likely an error, please ensure that you're consistently using a setup with or without i18n routing: https://next-intl-docs.vercel.app/docs/getting-started/app-router\n"),{...i,locale:i.locale||r.locale,now:i.now||a(),timeZone:i.timeZone||c()}}));const s=e.cache((async function(e){const n=await i(r.default,e);return t.initializeConfig(n)}));exports.default=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("use-intl/core"),n=require("./RequestLocale.js");function o(e){return e&&e.__esModule?e:{default:e}}var r=o(require("next-intl/config"));const a=e.cache((function(){return new Date}));const c=e.cache((function(){return Intl.DateTimeFormat().resolvedOptions().timeZone}));const s=e.cache((async function(e,t){let o=!1;const r={get locale(){return o=!0,t||n.getRequestLocale()}};let s=e(r);return s instanceof Promise&&(s=await s),s.locale&&o&&console.error("\nYou've read the `locale` param that was passed to `getRequestConfig` but have also returned one from the function. This is likely an error, please ensure that you're consistently using a setup with or without i18n routing: https://next-intl-docs.vercel.app/docs/getting-started/app-router\n"),{...s,locale:s.locale||r.locale,now:s.now||a(),timeZone:s.timeZone||c()}})),i=e.cache(t._createFormatters);const u=e.cache((async function(e){const n=await s(r.default,e);return{...t.initializeConfig(n),_formatters:i()}}));exports.default=u;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),a=require("use-intl/core"),r=require("../../shared/messageFormatCache.js"),s=require("./getConfig.js");var t=e.cache((async function(e){let t,c;"string"==typeof e?t=e:e&&(c=e.locale,t=e.namespace);const o=await s.default(c);return a.createTranslator({...o,messageFormatCache:r.getMessageFormatCache(),namespace:t,messages:o.messages})}));exports.default=t;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("use-intl/core"),a=require("./getConfig.js");var t=e.cache((async function(e){let t,s;"string"==typeof e?t=e:e&&(s=e.locale,t=e.namespace);const c=await a.default(s);return r.createTranslator({...c,namespace:t,messages:c.messages})}));exports.default=t;
@@ -26,6 +26,6 @@ type Props<AppLocales extends Locales> = Omit<ComponentProps<typeof BaseLink>, '
26
26
  * page to be overwritten before the user even decides to change the locale.
27
27
  */
28
28
  declare const ClientLinkWithRef: <AppLocales extends Locales>(props: Props<AppLocales> & {
29
- ref?: Props<AppLocales>['ref'];
29
+ ref?: Props<AppLocales>["ref"];
30
30
  }) => ReactElement;
31
31
  export default ClientLinkWithRef;
@@ -1,36 +1,35 @@
1
- /// <reference types="node" />
2
1
  import React, { ComponentProps, ReactElement } from 'react';
3
2
  import { Locales, Pathnames } from '../../routing/types';
4
3
  import { LocalizedNavigationRoutingConfigInput } from '../shared/config';
5
4
  import { HrefOrHrefWithParams } from '../shared/utils';
6
5
  import ClientLink from './ClientLink';
7
6
  export default function createLocalizedPathnamesNavigation<AppLocales extends Locales, AppPathnames extends Pathnames<AppLocales>>(input: LocalizedNavigationRoutingConfigInput<AppLocales, AppPathnames>): {
8
- Link: <Pathname extends keyof AppPathnames>(props: Omit<Omit<Omit<Omit<Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof {
7
+ Link: <Pathname extends keyof AppPathnames>(props: (Omit<Omit<Omit<Omit<Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof {
9
8
  href: string | import("url").UrlObject;
10
- as?: (string | import("url").UrlObject) | undefined;
11
- replace?: boolean | undefined;
12
- scroll?: boolean | undefined;
13
- shallow?: boolean | undefined;
14
- passHref?: boolean | undefined;
15
- prefetch?: boolean | undefined;
16
- locale?: string | false | undefined;
17
- legacyBehavior?: boolean | undefined;
18
- onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
19
- onTouchStart?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
20
- onClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
9
+ as?: string | import("url").UrlObject;
10
+ replace?: boolean;
11
+ scroll?: boolean;
12
+ shallow?: boolean;
13
+ passHref?: boolean;
14
+ prefetch?: boolean;
15
+ locale?: string | false;
16
+ legacyBehavior?: boolean;
17
+ onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement>;
18
+ onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>;
19
+ onClick?: React.MouseEventHandler<HTMLAnchorElement>;
21
20
  }> & {
22
21
  href: string | import("url").UrlObject;
23
- as?: (string | import("url").UrlObject) | undefined;
24
- replace?: boolean | undefined;
25
- scroll?: boolean | undefined;
26
- shallow?: boolean | undefined;
27
- passHref?: boolean | undefined;
28
- prefetch?: boolean | undefined;
29
- locale?: string | false | undefined;
30
- legacyBehavior?: boolean | undefined;
31
- onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
32
- onTouchStart?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
33
- onClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
22
+ as?: string | import("url").UrlObject;
23
+ replace?: boolean;
24
+ scroll?: boolean;
25
+ shallow?: boolean;
26
+ passHref?: boolean;
27
+ prefetch?: boolean;
28
+ locale?: string | false;
29
+ legacyBehavior?: boolean;
30
+ onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement>;
31
+ onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>;
32
+ onClick?: React.MouseEventHandler<HTMLAnchorElement>;
34
33
  } & {
35
34
  children?: React.ReactNode;
36
35
  } & React.RefAttributes<HTMLAnchorElement>, "locale"> & {
@@ -52,21 +51,21 @@ export default function createLocalizedPathnamesNavigation<AppLocales extends Lo
52
51
  } & Omit<import("url").UrlObject, "pathname"> : Pathname | ({
53
52
  pathname: Pathname;
54
53
  } & Omit<import("url").UrlObject, "pathname">);
55
- locale?: AppLocales[number] | undefined;
56
- } & {
57
- ref?: ComponentProps<typeof ClientLink>['ref'];
54
+ locale?: AppLocales[number];
55
+ }) & {
56
+ ref?: ComponentProps<typeof ClientLink>["ref"];
58
57
  }) => ReactElement;
59
- redirect: <Pathname_1 extends keyof AppPathnames>(href: HrefOrHrefWithParams<Pathname_1>, type?: import("next/navigation").RedirectType | undefined) => never;
60
- permanentRedirect: <Pathname_2 extends keyof AppPathnames>(href: HrefOrHrefWithParams<Pathname_2>, type?: import("next/navigation").RedirectType | undefined) => never;
58
+ redirect: <Pathname extends keyof AppPathnames>(href: HrefOrHrefWithParams<Pathname>, type?: import("next/navigation").RedirectType | undefined) => never;
59
+ permanentRedirect: <Pathname extends keyof AppPathnames>(href: HrefOrHrefWithParams<Pathname>, type?: import("next/navigation").RedirectType | undefined) => never;
61
60
  usePathname: () => keyof AppPathnames;
62
61
  useRouter: () => {
63
- push<Pathname_3 extends keyof AppPathnames>(href: HrefOrHrefWithParams<Pathname_3>, options?: (import("next/dist/shared/lib/app-router-context.shared-runtime").NavigateOptions & {
62
+ push<Pathname extends keyof AppPathnames>(href: HrefOrHrefWithParams<Pathname>, options?: (import("next/dist/shared/lib/app-router-context.shared-runtime").NavigateOptions & {
64
63
  locale?: AppLocales[number] | undefined;
65
64
  }) | undefined): void;
66
- replace<Pathname_4 extends keyof AppPathnames>(href: HrefOrHrefWithParams<Pathname_4>, options?: (import("next/dist/shared/lib/app-router-context.shared-runtime").NavigateOptions & {
65
+ replace<Pathname extends keyof AppPathnames>(href: HrefOrHrefWithParams<Pathname>, options?: (import("next/dist/shared/lib/app-router-context.shared-runtime").NavigateOptions & {
67
66
  locale?: AppLocales[number] | undefined;
68
67
  }) | undefined): void;
69
- prefetch<Pathname_5 extends keyof AppPathnames>(href: HrefOrHrefWithParams<Pathname_5>, options?: (import("next/dist/shared/lib/app-router-context.shared-runtime").PrefetchOptions & {
68
+ prefetch<Pathname extends keyof AppPathnames>(href: HrefOrHrefWithParams<Pathname>, options?: (import("next/dist/shared/lib/app-router-context.shared-runtime").PrefetchOptions & {
70
69
  locale?: AppLocales[number] | undefined;
71
70
  }) | undefined): void;
72
71
  back(): void;
@@ -1,34 +1,33 @@
1
- /// <reference types="node" />
2
1
  import React, { ReactElement } from 'react';
3
2
  import { Locales } from '../../routing/types';
4
3
  import { SharedNavigationRoutingConfigInput } from '../shared/config';
5
4
  export default function createSharedPathnamesNavigation<const AppLocales extends Locales>(input?: SharedNavigationRoutingConfigInput<AppLocales>): {
6
5
  Link: (props: Omit<Omit<Omit<Omit<Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof {
7
6
  href: string | import("url").UrlObject;
8
- as?: (string | import("url").UrlObject) | undefined;
9
- replace?: boolean | undefined;
10
- scroll?: boolean | undefined;
11
- shallow?: boolean | undefined;
12
- passHref?: boolean | undefined;
13
- prefetch?: boolean | undefined;
14
- locale?: string | false | undefined;
15
- legacyBehavior?: boolean | undefined;
16
- onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
17
- onTouchStart?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
18
- onClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
7
+ as?: string | import("url").UrlObject;
8
+ replace?: boolean;
9
+ scroll?: boolean;
10
+ shallow?: boolean;
11
+ passHref?: boolean;
12
+ prefetch?: boolean;
13
+ locale?: string | false;
14
+ legacyBehavior?: boolean;
15
+ onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement>;
16
+ onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>;
17
+ onClick?: React.MouseEventHandler<HTMLAnchorElement>;
19
18
  }> & {
20
19
  href: string | import("url").UrlObject;
21
- as?: (string | import("url").UrlObject) | undefined;
22
- replace?: boolean | undefined;
23
- scroll?: boolean | undefined;
24
- shallow?: boolean | undefined;
25
- passHref?: boolean | undefined;
26
- prefetch?: boolean | undefined;
27
- locale?: string | false | undefined;
28
- legacyBehavior?: boolean | undefined;
29
- onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
30
- onTouchStart?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
31
- onClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
20
+ as?: string | import("url").UrlObject;
21
+ replace?: boolean;
22
+ scroll?: boolean;
23
+ shallow?: boolean;
24
+ passHref?: boolean;
25
+ prefetch?: boolean;
26
+ locale?: string | false;
27
+ legacyBehavior?: boolean;
28
+ onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement>;
29
+ onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>;
30
+ onClick?: React.MouseEventHandler<HTMLAnchorElement>;
32
31
  } & {
33
32
  children?: React.ReactNode;
34
33
  } & React.RefAttributes<HTMLAnchorElement>, "locale"> & {
@@ -1,10 +1,10 @@
1
- export declare const clientRedirect: (params: Omit<{
1
+ export declare const clientRedirect: (params: Omit<Parameters<(<AppLocales extends import("../../routing/types").Locales>(params: {
2
2
  pathname: string;
3
- locale: string;
4
- localePrefix: import("../../routing/types").LocalePrefixConfigVerbose<import("../../routing/types").Locales>;
5
- }, "locale">, type?: import("next/navigation").RedirectType | undefined) => never;
6
- export declare const clientPermanentRedirect: (params: Omit<{
3
+ locale: import("../../routing/types").Locales[number];
4
+ localePrefix: import("../../routing/types").LocalePrefixConfigVerbose<AppLocales>;
5
+ }, type?: import("next/navigation").RedirectType | undefined) => never)>[0], "locale">, type?: import("next/navigation").RedirectType | undefined) => never;
6
+ export declare const clientPermanentRedirect: (params: Omit<Parameters<(<AppLocales extends import("../../routing/types").Locales>(params: {
7
7
  pathname: string;
8
- locale: string;
9
- localePrefix: import("../../routing/types").LocalePrefixConfigVerbose<import("../../routing/types").Locales>;
10
- }, "locale">, type?: import("next/navigation").RedirectType | undefined) => never;
8
+ locale: import("../../routing/types").Locales[number];
9
+ localePrefix: import("../../routing/types").LocalePrefixConfigVerbose<AppLocales>;
10
+ }, type?: import("next/navigation").RedirectType | undefined) => never)>[0], "locale">, type?: import("next/navigation").RedirectType | undefined) => never;
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import React from 'react';
3
2
  import { Locales, Pathnames } from '../../routing/types';
4
3
  import { LocalizedNavigationRoutingConfigInput } from '../shared/config';
@@ -6,30 +5,30 @@ import { HrefOrHrefWithParams } from '../shared/utils';
6
5
  export default function createLocalizedPathnamesNavigation<AppLocales extends Locales, AppPathnames extends Pathnames<AppLocales>>(input: LocalizedNavigationRoutingConfigInput<AppLocales, AppPathnames>): {
7
6
  Link: <Pathname extends keyof AppPathnames>({ href, locale, ...rest }: Omit<Omit<Omit<Omit<Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof {
8
7
  href: string | import("url").UrlObject;
9
- as?: (string | import("url").UrlObject) | undefined;
10
- replace?: boolean | undefined;
11
- scroll?: boolean | undefined;
12
- shallow?: boolean | undefined;
13
- passHref?: boolean | undefined;
14
- prefetch?: boolean | undefined;
15
- locale?: string | false | undefined;
16
- legacyBehavior?: boolean | undefined;
17
- onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
18
- onTouchStart?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
19
- onClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
8
+ as?: string | import("url").UrlObject;
9
+ replace?: boolean;
10
+ scroll?: boolean;
11
+ shallow?: boolean;
12
+ passHref?: boolean;
13
+ prefetch?: boolean;
14
+ locale?: string | false;
15
+ legacyBehavior?: boolean;
16
+ onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement>;
17
+ onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>;
18
+ onClick?: React.MouseEventHandler<HTMLAnchorElement>;
20
19
  }> & {
21
20
  href: string | import("url").UrlObject;
22
- as?: (string | import("url").UrlObject) | undefined;
23
- replace?: boolean | undefined;
24
- scroll?: boolean | undefined;
25
- shallow?: boolean | undefined;
26
- passHref?: boolean | undefined;
27
- prefetch?: boolean | undefined;
28
- locale?: string | false | undefined;
29
- legacyBehavior?: boolean | undefined;
30
- onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
31
- onTouchStart?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
32
- onClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
21
+ as?: string | import("url").UrlObject;
22
+ replace?: boolean;
23
+ scroll?: boolean;
24
+ shallow?: boolean;
25
+ passHref?: boolean;
26
+ prefetch?: boolean;
27
+ locale?: string | false;
28
+ legacyBehavior?: boolean;
29
+ onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement>;
30
+ onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>;
31
+ onClick?: React.MouseEventHandler<HTMLAnchorElement>;
33
32
  } & {
34
33
  children?: React.ReactNode;
35
34
  } & React.RefAttributes<HTMLAnchorElement>, "locale"> & {
@@ -49,10 +48,10 @@ export default function createLocalizedPathnamesNavigation<AppLocales extends Lo
49
48
  } & Omit<import("url").UrlObject, "pathname"> : Pathname | ({
50
49
  pathname: Pathname;
51
50
  } & Omit<import("url").UrlObject, "pathname">);
52
- locale?: AppLocales[number] | undefined;
51
+ locale?: AppLocales[number];
53
52
  }) => React.JSX.Element;
54
- redirect: <Pathname_1 extends keyof AppPathnames>(href: HrefOrHrefWithParams<Pathname_1>, type?: import("next/navigation").RedirectType | undefined) => never;
55
- permanentRedirect: <Pathname_2 extends keyof AppPathnames>(href: HrefOrHrefWithParams<Pathname_2>, type?: import("next/navigation").RedirectType | undefined) => never;
53
+ redirect: <Pathname extends keyof AppPathnames>(href: HrefOrHrefWithParams<Pathname>, type?: import("next/navigation").RedirectType | undefined) => never;
54
+ permanentRedirect: <Pathname extends keyof AppPathnames>(href: HrefOrHrefWithParams<Pathname>, type?: import("next/navigation").RedirectType | undefined) => never;
56
55
  getPathname: ({ href, locale }: {
57
56
  locale: AppLocales[number];
58
57
  href: HrefOrHrefWithParams<keyof AppPathnames>;
@@ -3,7 +3,7 @@ import { Locales } from '../../routing/types';
3
3
  import { SharedNavigationRoutingConfigInput } from '../shared/config';
4
4
  import ServerLink from './ServerLink';
5
5
  export default function createSharedPathnamesNavigation<AppLocales extends Locales>(input?: SharedNavigationRoutingConfigInput<AppLocales>): {
6
- Link: (props: Omit<ComponentProps<typeof ServerLink<AppLocales>>, 'localePrefix' | 'locales'>) => React.JSX.Element;
6
+ Link: (props: Omit<ComponentProps<typeof ServerLink<AppLocales>>, "localePrefix" | "locales">) => React.JSX.Element;
7
7
  redirect: (pathname: string, type?: import("next/navigation").RedirectType | undefined) => never;
8
8
  permanentRedirect: (pathname: string, type?: import("next/navigation").RedirectType | undefined) => never;
9
9
  usePathname: () => never;
@@ -1,10 +1,10 @@
1
- export declare const serverRedirect: (params: Omit<{
1
+ export declare const serverRedirect: (params: Omit<Parameters<(<AppLocales extends import("../../routing/types").Locales>(params: {
2
2
  pathname: string;
3
- locale: string;
4
- localePrefix: import("../../routing/types").LocalePrefixConfigVerbose<import("../../routing/types").Locales>;
5
- }, "locale">, type?: import("next/navigation").RedirectType | undefined) => never;
6
- export declare const serverPermanentRedirect: (params: Omit<{
3
+ locale: import("../../routing/types").Locales[number];
4
+ localePrefix: import("../../routing/types").LocalePrefixConfigVerbose<AppLocales>;
5
+ }, type?: import("next/navigation").RedirectType | undefined) => never)>[0], "locale">, type?: import("next/navigation").RedirectType | undefined) => never;
6
+ export declare const serverPermanentRedirect: (params: Omit<Parameters<(<AppLocales extends import("../../routing/types").Locales>(params: {
7
7
  pathname: string;
8
- locale: string;
9
- localePrefix: import("../../routing/types").LocalePrefixConfigVerbose<import("../../routing/types").Locales>;
10
- }, "locale">, type?: import("next/navigation").RedirectType | undefined) => never;
8
+ locale: import("../../routing/types").Locales[number];
9
+ localePrefix: import("../../routing/types").LocalePrefixConfigVerbose<AppLocales>;
10
+ }, type?: import("next/navigation").RedirectType | undefined) => never)>[0], "locale">, type?: import("next/navigation").RedirectType | undefined) => never;
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  import type { ParsedUrlQueryInput } from 'node:querystring';
4
2
  import type { UrlObject } from 'url';
5
3
  import { Locales, Pathnames } from '../../routing/types';
@@ -1,9 +1,9 @@
1
- import type { getRequestConfig as getRequestConfig_type, getFormatter as getFormatter_type, getNow as getNow_type, getTimeZone as getTimeZone_type, getMessages as getMessages_type, unstable_setRequestLocale as unstable_setRequestLocale_type } from '../react-server';
1
+ import type { getRequestConfig as getRequestConfig_type, getFormatter as getFormatter_type, getNow as getNow_type, getTimeZone as getTimeZone_type, getMessages as getMessages_type, getLocale as getLocale_type, unstable_setRequestLocale as unstable_setRequestLocale_type } from '../react-server';
2
2
  export declare function getRequestConfig(...args: Parameters<typeof getRequestConfig_type>): ReturnType<typeof getRequestConfig_type>;
3
3
  export declare const getFormatter: typeof getFormatter_type;
4
4
  export declare const getNow: typeof getNow_type;
5
5
  export declare const getTimeZone: typeof getTimeZone_type;
6
6
  export declare const getMessages: typeof getMessages_type;
7
- export declare const getLocale: () => Promise<string>;
7
+ export declare const getLocale: typeof getLocale_type;
8
8
  export declare const getTranslations: () => never;
9
9
  export declare const unstable_setRequestLocale: typeof unstable_setRequestLocale_type;
@@ -1,9 +1,10 @@
1
- import { IntlConfig } from 'use-intl/core';
1
+ import { IntlConfig, _createFormatters } from 'use-intl/core';
2
2
  declare function getConfigImpl(localeOverride?: string): Promise<IntlConfig & {
3
3
  getMessageFallback: NonNullable<IntlConfig['getMessageFallback']>;
4
4
  now: NonNullable<IntlConfig['now']>;
5
5
  onError: NonNullable<IntlConfig['onError']>;
6
6
  timeZone: NonNullable<IntlConfig['timeZone']>;
7
+ _formatters: ReturnType<typeof _createFormatters>;
7
8
  }>;
8
9
  declare const getConfig: typeof getConfigImpl;
9
10
  export default getConfig;
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { UrlObject } from 'url';
3
2
  import NextLink from 'next/link';
4
3
  import { ComponentProps } from 'react';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next-intl",
3
- "version": "3.16.0",
3
+ "version": "3.17.1",
4
4
  "sideEffects": false,
5
5
  "author": "Jan Amann <jan@amann.work>",
6
6
  "funding": [
@@ -87,7 +87,7 @@
87
87
  "dependencies": {
88
88
  "@formatjs/intl-localematcher": "^0.2.32",
89
89
  "negotiator": "^0.6.3",
90
- "use-intl": "^3.16.0"
90
+ "use-intl": "^3.17.1"
91
91
  },
92
92
  "peerDependencies": {
93
93
  "next": "^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0",
@@ -96,19 +96,19 @@
96
96
  "size-limit": [
97
97
  {
98
98
  "path": "dist/production/index.react-client.js",
99
- "limit": "15.785 KB"
99
+ "limit": "16.055 KB"
100
100
  },
101
101
  {
102
102
  "path": "dist/production/index.react-server.js",
103
- "limit": "16.66 KB"
103
+ "limit": "16.875 KB"
104
104
  },
105
105
  {
106
106
  "path": "dist/production/navigation.react-client.js",
107
- "limit": "3.465 KB"
107
+ "limit": "3.475 KB"
108
108
  },
109
109
  {
110
110
  "path": "dist/production/navigation.react-server.js",
111
- "limit": "18.075 KB"
111
+ "limit": "18.325 KB"
112
112
  },
113
113
  {
114
114
  "path": "dist/production/server.react-client.js",
@@ -116,7 +116,7 @@
116
116
  },
117
117
  {
118
118
  "path": "dist/production/server.react-server.js",
119
- "limit": "15.84 KB"
119
+ "limit": "16.025 KB"
120
120
  },
121
121
  {
122
122
  "path": "dist/production/middleware.js",
@@ -127,5 +127,5 @@
127
127
  "limit": "0 KB"
128
128
  }
129
129
  ],
130
- "gitHead": "44a87a4ff07e779df8ac929c0edcf22fb398f576"
130
+ "gitHead": "1635c438061d18f89c0b6818213892051e19fa65"
131
131
  }
@@ -1,12 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
-
7
- function getMessageFormatCacheImpl() {
8
- return new Map();
9
- }
10
- const getMessageFormatCache = React.cache(getMessageFormatCacheImpl);
11
-
12
- exports.getMessageFormatCache = getMessageFormatCache;
@@ -1 +0,0 @@
1
- import{cache as r}from"react";const t=r((function(){return new Map}));export{t as getMessageFormatCache};
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("react").cache((function(){return new Map}));exports.getMessageFormatCache=e;
@@ -1,3 +0,0 @@
1
- declare function getMessageFormatCacheImpl(): Map<any, any>;
2
- export declare const getMessageFormatCache: typeof getMessageFormatCacheImpl;
3
- export {};