next-intl 3.2.1 → 3.2.3

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.
@@ -7,16 +7,19 @@ var _useLocale = require('use-intl/_useLocale');
7
7
  var constants = require('../shared/constants.js');
8
8
 
9
9
  function useLocale() {
10
- let locale;
11
-
12
10
  // The types aren't entirely correct here. Outside of Next.js
13
11
  // `useParams` can be called, but the return type is `null`.
14
12
  const params = navigation.useParams();
15
- if (typeof (params === null || params === void 0 ? void 0 : params[constants.LOCALE_SEGMENT_NAME]) === 'string') {
16
- locale = params[constants.LOCALE_SEGMENT_NAME];
17
- } else {
18
- // eslint-disable-next-line react-hooks/rules-of-hooks -- Reading from context conditionally is fine as long as we're in the render phase
13
+ let locale;
14
+ try {
15
+ // eslint-disable-next-line react-hooks/rules-of-hooks -- False positive
19
16
  locale = _useLocale.useLocale();
17
+ } catch (error) {
18
+ if (typeof (params === null || params === void 0 ? void 0 : params[constants.LOCALE_SEGMENT_NAME]) === 'string') {
19
+ locale = params[constants.LOCALE_SEGMENT_NAME];
20
+ } else {
21
+ throw error;
22
+ }
20
23
  }
21
24
  return locale;
22
25
  }
@@ -15,7 +15,9 @@ function notSupported(message) {
15
15
  throw new Error("`".concat(message, "` is not supported in Client Components."));
16
16
  };
17
17
  }
18
- const getRequestConfig = notSupported('getRequestConfig');
18
+ function getRequestConfig() {
19
+ return notSupported('getRequestConfig');
20
+ }
19
21
  const getFormatter = notSupported('getFormatter');
20
22
  const getNow = notSupported('getNow');
21
23
  const getTimeZone = notSupported('getTimeZone');
@@ -1 +1 @@
1
- import{useParams as t}from"next/navigation";import{useLocale as o}from"use-intl/_useLocale";import{LOCALE_SEGMENT_NAME as e}from"../shared/constants.js";function n(){let n;const r=t();return n="string"==typeof(null==r?void 0:r[e])?r[e]:o(),n}export{n as default};
1
+ import{useParams as t}from"next/navigation";import{useLocale as o}from"use-intl/_useLocale";import{LOCALE_SEGMENT_NAME as r}from"../shared/constants.js";function e(){const e=t();let n;try{n=o()}catch(t){if("string"!=typeof(null==e?void 0:e[r]))throw t;n=e[r]}return n}export{e as default};
@@ -1 +1 @@
1
- function e(e){return()=>{throw new Error("`".concat(e,"` is not supported in Client Components."))}}const t=e("getRequestConfig"),o=e("getFormatter"),n=e("getNow"),s=e("getTimeZone"),r=e("getTranslations"),g=e("getMessages"),a=e("getLocale"),i=e("unstable_setRequestLocale");export{o as getFormatter,a as getLocale,g as getMessages,n as getNow,t as getRequestConfig,s as getTimeZone,r as getTranslations,i as unstable_setRequestLocale};
1
+ function e(e){return()=>{throw new Error("`".concat(e,"` is not supported in Client Components."))}}function t(){return e("getRequestConfig")}const n=e("getFormatter"),o=e("getNow"),r=e("getTimeZone"),s=e("getTranslations"),g=e("getMessages"),a=e("getLocale"),i=e("unstable_setRequestLocale");export{n as getFormatter,a as getLocale,g as getMessages,o as getNow,t as getRequestConfig,r as getTimeZone,s as getTranslations,i as unstable_setRequestLocale};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("next/navigation"),t=require("use-intl/_useLocale"),r=require("../shared/constants.js");exports.default=function(){let s;const u=e.useParams();return s="string"==typeof(null==u?void 0:u[r.LOCALE_SEGMENT_NAME])?u[r.LOCALE_SEGMENT_NAME]:t.useLocale(),s};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("next/navigation"),t=require("use-intl/_useLocale"),r=require("../shared/constants.js");exports.default=function(){const s=e.useParams();let u;try{u=t.useLocale()}catch(e){if("string"!=typeof(null==s?void 0:s[r.LOCALE_SEGMENT_NAME]))throw e;u=s[r.LOCALE_SEGMENT_NAME]}return u};
@@ -1 +1 @@
1
- "use strict";function e(e){return()=>{throw new Error("`".concat(e,"` is not supported in Client Components."))}}Object.defineProperty(exports,"__esModule",{value:!0});const t=e("getRequestConfig"),o=e("getFormatter"),s=e("getNow"),r=e("getTimeZone"),n=e("getTranslations"),g=e("getMessages"),a=e("getLocale"),p=e("unstable_setRequestLocale");exports.getFormatter=o,exports.getLocale=a,exports.getMessages=g,exports.getNow=s,exports.getRequestConfig=t,exports.getTimeZone=r,exports.getTranslations=n,exports.unstable_setRequestLocale=p;
1
+ "use strict";function e(e){return()=>{throw new Error("`".concat(e,"` is not supported in Client Components."))}}Object.defineProperty(exports,"__esModule",{value:!0});const t=e("getFormatter"),o=e("getNow"),s=e("getTimeZone"),r=e("getTranslations"),n=e("getMessages"),g=e("getLocale"),a=e("unstable_setRequestLocale");exports.getFormatter=t,exports.getLocale=g,exports.getMessages=n,exports.getNow=o,exports.getRequestConfig=function(){return e("getRequestConfig")},exports.getTimeZone=s,exports.getTranslations=r,exports.unstable_setRequestLocale=a;
@@ -1,15 +1,58 @@
1
- /**
2
- * Allows to import `next-intl/server` in non-RSC environments.
3
- *
4
- * This is mostly relevant for testing, since e.g. a `generateMetadata`
5
- * export from a page might use `next-intl/server`, but the test
6
- * only uses the default export for a page.
7
- */
8
- export declare const getRequestConfig: () => never;
9
- export declare const getFormatter: () => never;
10
- export declare const getNow: () => never;
11
- export declare const getTimeZone: () => never;
12
- export declare const getTranslations: () => never;
13
- export declare const getMessages: () => never;
14
- export declare const getLocale: () => never;
15
- export declare const unstable_setRequestLocale: () => never;
1
+ /// <reference types="react" />
2
+ 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';
3
+ export declare function getRequestConfig(...args: Parameters<typeof getRequestConfig_type>): ReturnType<typeof getRequestConfig_type>;
4
+ export declare const getFormatter: typeof getFormatter_type;
5
+ export declare const getNow: typeof getNow_type;
6
+ export declare const getTimeZone: typeof getTimeZone_type;
7
+ export declare const getTranslations: {
8
+ <NestedKey extends string = never>(namespace?: NestedKey | undefined): Promise<{
9
+ <TargetKey extends import("use-intl/dist/types/src/core/utils/MessageKeys").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
10
+ '!': IntlMessages;
11
+ }, [NestedKey] extends [never] ? "!" : `!.${NestedKey}`>, import("use-intl/dist/types/src/core/utils/NestedKeyOf").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
12
+ '!': IntlMessages;
13
+ }, [NestedKey] extends [never] ? "!" : `!.${NestedKey}`>>>>(key: [TargetKey] extends [never] ? string : TargetKey, values?: import("use-intl/dist/types/src/core/TranslationValues").default | undefined, formats?: Partial<import("use-intl/dist/types/src/core/Formats").default> | undefined): string;
14
+ rich<TargetKey_1 extends import("use-intl/dist/types/src/core/utils/MessageKeys").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
15
+ '!': IntlMessages;
16
+ }, [NestedKey] extends [never] ? "!" : `!.${NestedKey}`>, import("use-intl/dist/types/src/core/utils/NestedKeyOf").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
17
+ '!': IntlMessages;
18
+ }, [NestedKey] extends [never] ? "!" : `!.${NestedKey}`>>>>(key: [TargetKey_1] extends [never] ? string : TargetKey_1, values?: import("use-intl").RichTranslationValues | undefined, formats?: Partial<import("use-intl/dist/types/src/core/Formats").default> | undefined): string | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | import("react").ReactNodeArray;
19
+ markup<TargetKey_2 extends import("use-intl/dist/types/src/core/utils/MessageKeys").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
20
+ '!': IntlMessages;
21
+ }, [NestedKey] extends [never] ? "!" : `!.${NestedKey}`>, import("use-intl/dist/types/src/core/utils/NestedKeyOf").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
22
+ '!': IntlMessages;
23
+ }, [NestedKey] extends [never] ? "!" : `!.${NestedKey}`>>>>(key: [TargetKey_2] extends [never] ? string : TargetKey_2, values?: import("use-intl").MarkupTranslationValues | undefined, formats?: Partial<import("use-intl/dist/types/src/core/Formats").default> | undefined): string;
24
+ raw<TargetKey_3 extends import("use-intl/dist/types/src/core/utils/MessageKeys").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
25
+ '!': IntlMessages;
26
+ }, [NestedKey] extends [never] ? "!" : `!.${NestedKey}`>, import("use-intl/dist/types/src/core/utils/NestedKeyOf").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
27
+ '!': IntlMessages;
28
+ }, [NestedKey] extends [never] ? "!" : `!.${NestedKey}`>>>>(key: [TargetKey_3] extends [never] ? string : TargetKey_3): any;
29
+ }>;
30
+ <NestedKey_1 extends string = never>(opts?: {
31
+ locale: string;
32
+ namespace?: NestedKey_1 | undefined;
33
+ } | undefined): Promise<{
34
+ <TargetKey_4 extends import("use-intl/dist/types/src/core/utils/MessageKeys").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
35
+ '!': IntlMessages;
36
+ }, [NestedKey_1] extends [never] ? "!" : `!.${NestedKey_1}`>, import("use-intl/dist/types/src/core/utils/NestedKeyOf").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
37
+ '!': IntlMessages;
38
+ }, [NestedKey_1] extends [never] ? "!" : `!.${NestedKey_1}`>>>>(key: TargetKey_4, values?: import("use-intl/dist/types/src/core/TranslationValues").default | undefined, formats?: Partial<import("use-intl/dist/types/src/core/Formats").default> | undefined): string;
39
+ rich<TargetKey_5 extends import("use-intl/dist/types/src/core/utils/MessageKeys").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
40
+ '!': IntlMessages;
41
+ }, [NestedKey_1] extends [never] ? "!" : `!.${NestedKey_1}`>, import("use-intl/dist/types/src/core/utils/NestedKeyOf").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
42
+ '!': IntlMessages;
43
+ }, [NestedKey_1] extends [never] ? "!" : `!.${NestedKey_1}`>>>>(key: TargetKey_5, values?: import("use-intl").RichTranslationValues | undefined, formats?: Partial<import("use-intl/dist/types/src/core/Formats").default> | undefined): string | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | import("react").ReactNodeArray;
44
+ markup<TargetKey_6 extends import("use-intl/dist/types/src/core/utils/MessageKeys").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
45
+ '!': IntlMessages;
46
+ }, [NestedKey_1] extends [never] ? "!" : `!.${NestedKey_1}`>, import("use-intl/dist/types/src/core/utils/NestedKeyOf").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
47
+ '!': IntlMessages;
48
+ }, [NestedKey_1] extends [never] ? "!" : `!.${NestedKey_1}`>>>>(key: TargetKey_6, values?: import("use-intl").MarkupTranslationValues | undefined, formats?: Partial<import("use-intl/dist/types/src/core/Formats").default> | undefined): string;
49
+ raw<TargetKey_7 extends import("use-intl/dist/types/src/core/utils/MessageKeys").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
50
+ '!': IntlMessages;
51
+ }, [NestedKey_1] extends [never] ? "!" : `!.${NestedKey_1}`>, import("use-intl/dist/types/src/core/utils/NestedKeyOf").default<import("use-intl/dist/types/src/core/utils/NestedValueOf").default<{
52
+ '!': IntlMessages;
53
+ }, [NestedKey_1] extends [never] ? "!" : `!.${NestedKey_1}`>>>>(key: TargetKey_7): any;
54
+ }>;
55
+ };
56
+ export declare const getMessages: typeof getMessages_type;
57
+ export declare const getLocale: typeof getLocale_type;
58
+ export declare const unstable_setRequestLocale: typeof unstable_setRequestLocale_type;
package/package.json CHANGED
@@ -1,8 +1,14 @@
1
1
  {
2
2
  "name": "next-intl",
3
- "version": "3.2.1",
3
+ "version": "3.2.3",
4
4
  "sideEffects": false,
5
5
  "author": "Jan Amann <jan@amann.work>",
6
+ "funding": [
7
+ {
8
+ "type": "individual",
9
+ "url": "https://github.com/sponsors/amannn"
10
+ }
11
+ ],
6
12
  "description": "A minimal, but complete solution for internationalization in Next.js apps.",
7
13
  "license": "MIT",
8
14
  "homepage": "https://next-intl-docs.vercel.app",
@@ -74,7 +80,7 @@
74
80
  "dependencies": {
75
81
  "@formatjs/intl-localematcher": "^0.2.32",
76
82
  "negotiator": "^0.6.3",
77
- "use-intl": "^3.2.1"
83
+ "use-intl": "^3.2.3"
78
84
  },
79
85
  "peerDependencies": {
80
86
  "next": "^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0",
@@ -85,7 +91,7 @@
85
91
  "@size-limit/preset-big-lib": "^8.2.6",
86
92
  "@testing-library/react": "^13.0.0",
87
93
  "@types/negotiator": "^0.6.1",
88
- "@types/node": "^17.0.23",
94
+ "@types/node": "^20.1.2",
89
95
  "@types/react": "18.2.34",
90
96
  "@types/react-dom": "^18.2.17",
91
97
  "eslint": "^8.54.0",
@@ -99,12 +105,12 @@
99
105
  "rollup-plugin-preserve-directives": "0.2.0",
100
106
  "size-limit": "^8.2.6",
101
107
  "typescript": "^5.2.2",
102
- "vitest": "^0.32.2"
108
+ "vitest": "^1.0.1"
103
109
  },
104
110
  "size-limit": [
105
111
  {
106
112
  "path": "dist/production/index.react-client.js",
107
- "limit": "12.81 KB"
113
+ "limit": "12.82 KB"
108
114
  },
109
115
  {
110
116
  "path": "dist/production/index.react-server.js",
@@ -112,11 +118,11 @@
112
118
  },
113
119
  {
114
120
  "path": "dist/production/navigation.react-client.js",
115
- "limit": "2.62 KB"
121
+ "limit": "2.63 KB"
116
122
  },
117
123
  {
118
124
  "path": "dist/production/navigation.react-server.js",
119
- "limit": "2.8 KB"
125
+ "limit": "2.82 KB"
120
126
  },
121
127
  {
122
128
  "path": "dist/production/server.react-client.js",
@@ -131,5 +137,5 @@
131
137
  "limit": "5.72 KB"
132
138
  }
133
139
  ],
134
- "gitHead": "64b24c2736e37bcb7984e08931d54c12f849b4fd"
140
+ "gitHead": "1782e9a56db0a7ee6e67dd4ea12a5f527439fa5e"
135
141
  }