next-intlayer 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/client/index.cjs +48 -0
  3. package/dist/cjs/client/index.cjs.map +1 -0
  4. package/dist/cjs/client/index.d.ts +10 -0
  5. package/dist/cjs/client/useLocale.cjs +68 -0
  6. package/dist/cjs/client/useLocale.cjs.map +1 -0
  7. package/dist/cjs/client/useLocale.d.ts +12 -0
  8. package/dist/cjs/generateStaticParams.cjs +36 -0
  9. package/dist/cjs/generateStaticParams.cjs.map +1 -0
  10. package/dist/cjs/generateStaticParams.d.ts +7 -0
  11. package/dist/cjs/index.cjs +51 -0
  12. package/dist/cjs/index.cjs.map +1 -0
  13. package/dist/cjs/index.d.ts +15 -0
  14. package/dist/cjs/middleware/index.cjs +35 -0
  15. package/dist/cjs/middleware/index.cjs.map +1 -0
  16. package/dist/cjs/middleware/index.d.ts +2 -0
  17. package/dist/cjs/middleware/intlayerMiddleware.cjs +230 -0
  18. package/dist/cjs/middleware/intlayerMiddleware.cjs.map +1 -0
  19. package/dist/cjs/middleware/intlayerMiddleware.d.ts +5 -0
  20. package/dist/cjs/middleware/localeDetector.cjs +73 -0
  21. package/dist/cjs/middleware/localeDetector.cjs.map +1 -0
  22. package/dist/cjs/middleware/localeDetector.d.ts +6 -0
  23. package/dist/cjs/server/index.cjs +47 -0
  24. package/dist/cjs/server/index.cjs.map +1 -0
  25. package/dist/cjs/server/index.d.ts +10 -0
  26. package/dist/cjs/server/withIntlayer.cjs +76 -0
  27. package/dist/cjs/server/withIntlayer.cjs.map +1 -0
  28. package/dist/cjs/server/withIntlayer.d.ts +9 -0
  29. package/dist/cjs/types/NextPage.cjs +21 -0
  30. package/dist/cjs/types/NextPage.cjs.map +1 -0
  31. package/dist/cjs/types/NextPage.d.ts +13 -0
  32. package/dist/cjs/types/index.cjs +21 -0
  33. package/dist/cjs/types/index.cjs.map +1 -0
  34. package/dist/cjs/types/index.d.ts +4 -0
  35. package/dist/esm/client/index.d.mts +10 -0
  36. package/dist/esm/client/index.mjs +19 -0
  37. package/dist/esm/client/index.mjs.map +1 -0
  38. package/dist/esm/client/useLocale.d.mts +12 -0
  39. package/dist/esm/client/useLocale.mjs +37 -0
  40. package/dist/esm/client/useLocale.mjs.map +1 -0
  41. package/dist/esm/generateStaticParams.d.mts +7 -0
  42. package/dist/esm/generateStaticParams.mjs +5 -0
  43. package/dist/esm/generateStaticParams.mjs.map +1 -0
  44. package/dist/esm/index.d.mts +15 -0
  45. package/dist/esm/index.mjs +21 -0
  46. package/dist/esm/index.mjs.map +1 -0
  47. package/dist/esm/middleware/index.d.mts +2 -0
  48. package/dist/esm/middleware/index.mjs +2 -0
  49. package/dist/esm/middleware/index.mjs.map +1 -0
  50. package/dist/esm/middleware/intlayerMiddleware.d.mts +5 -0
  51. package/dist/esm/middleware/intlayerMiddleware.mjs +193 -0
  52. package/dist/esm/middleware/intlayerMiddleware.mjs.map +1 -0
  53. package/dist/esm/middleware/localeDetector.d.mts +6 -0
  54. package/dist/esm/middleware/localeDetector.mjs +20 -0
  55. package/dist/esm/middleware/localeDetector.mjs.map +1 -0
  56. package/dist/esm/server/index.d.mts +10 -0
  57. package/dist/esm/server/index.mjs +19 -0
  58. package/dist/esm/server/index.mjs.map +1 -0
  59. package/dist/esm/server/withIntlayer.d.mts +9 -0
  60. package/dist/esm/server/withIntlayer.mjs +40 -0
  61. package/dist/esm/server/withIntlayer.mjs.map +1 -0
  62. package/dist/esm/types/NextPage.d.mts +13 -0
  63. package/dist/esm/types/NextPage.mjs +1 -0
  64. package/dist/esm/types/NextPage.mjs.map +1 -0
  65. package/dist/esm/types/index.d.mts +4 -0
  66. package/dist/esm/types/index.mjs +1 -0
  67. package/dist/esm/types/index.mjs.map +1 -0
  68. package/package.json +105 -0
  69. package/src/client/index.ts +9 -0
  70. package/src/client/useLocale.ts +46 -0
  71. package/src/generateStaticParams.ts +5 -0
  72. package/src/index.ts +11 -0
  73. package/src/middleware/index.ts +1 -0
  74. package/src/middleware/intlayerMiddleware.ts +215 -0
  75. package/src/middleware/localeDetector.ts +28 -0
  76. package/src/server/index.ts +9 -0
  77. package/src/server/withIntlayer.ts +61 -0
  78. package/src/types/NextPage.ts +10 -0
  79. package/src/types/index.ts +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/middleware/localeDetector.ts"],"sourcesContent":["import { match } from '@formatjs/intl-localematcher';\nimport type { Locales } from '@intlayer/config';\nimport { getConfiguration } from '@intlayer/config/client';\nimport Negotiator from 'negotiator';\nimport type { NextRequest } from 'next/server.js';\n\nconst { locales, defaultLocale } = getConfiguration().internationalization;\n\nexport const localeDetector = (request: NextRequest): Locales => {\n const negotiatorHeaders: Record<string, string> = {};\n\n request.headers.forEach((value, key) => (negotiatorHeaders[key] = value));\n\n const languages = new Negotiator({ headers: negotiatorHeaders }).languages();\n\n // match can only use specifically formatted locales\n // https://stackoverflow.com/questions/76447732/nextjs-13-i18n-incorrect-locale-information-provided\n try {\n return match(languages, locales, defaultLocale) as Locales;\n } catch (e) {\n console.warn(\n `No valid locales in accept-language header: ${languages.join(', ')}`\n );\n console.warn(`Reverting to using defaultLocale: ${defaultLocale}`);\n\n return defaultLocale;\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAAsB;AAEtB,oBAAiC;AACjC,wBAAuB;AAGvB,MAAM,EAAE,SAAS,cAAc,QAAI,gCAAiB,EAAE;AAE/C,MAAM,iBAAiB,CAAC,YAAkC;AAC/D,QAAM,oBAA4C,CAAC;AAEnD,UAAQ,QAAQ,QAAQ,CAAC,OAAO,QAAS,kBAAkB,GAAG,IAAI,KAAM;AAExE,QAAM,YAAY,IAAI,kBAAAA,QAAW,EAAE,SAAS,kBAAkB,CAAC,EAAE,UAAU;AAI3E,MAAI;AACF,eAAO,iCAAM,WAAW,SAAS,aAAa;AAAA,EAChD,SAAS,GAAG;AACV,YAAQ;AAAA,MACN,+CAA+C,UAAU,KAAK,IAAI,CAAC;AAAA,IACrE;AACA,YAAQ,KAAK,qCAAqC,aAAa,EAAE;AAEjE,WAAO;AAAA,EACT;AACF;","names":["Negotiator"]}
@@ -0,0 +1,6 @@
1
+ import { Locales } from "@intlayer/config";
2
+ import { NextRequest } from "next/server.js";
3
+
4
+ declare const localeDetector: (request: NextRequest) => Locales;
5
+
6
+ export { localeDetector };
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if ((from && typeof from === "object") || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
17
+ });
18
+ }
19
+ return to;
20
+ };
21
+ var __toCommonJS = (mod) =>
22
+ __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
+ var server_exports = {};
24
+ __export(server_exports, {
25
+ LocaleServerContext: () => import_server.LocaleServerContext,
26
+ LocaleServerContextProvider: () => import_server.LocaleServerContextProvider,
27
+ getLocaleContent: () => import_server.getLocaleContent,
28
+ locale: () => import_server.locale,
29
+ useIntlayer: () => import_server.useIntlayer,
30
+ useTraduction: () => import_server.useTraduction,
31
+ withIntlayer: () => import_withIntlayer.withIntlayer,
32
+ });
33
+ module.exports = __toCommonJS(server_exports);
34
+ var import_server = require("react-intlayer/server");
35
+ var import_withIntlayer = require("./withIntlayer.cjs");
36
+ // Annotate the CommonJS export names for ESM import in node:
37
+ 0 &&
38
+ (module.exports = {
39
+ LocaleServerContext,
40
+ LocaleServerContextProvider,
41
+ getLocaleContent,
42
+ locale,
43
+ useIntlayer,
44
+ useTraduction,
45
+ withIntlayer,
46
+ });
47
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/server/index.ts"],"sourcesContent":["export {\n getLocaleContent,\n useTraduction,\n LocaleServerContext,\n LocaleServerContextProvider,\n locale,\n useIntlayer,\n} from 'react-intlayer/server';\nexport { withIntlayer } from './withIntlayer';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAOO;AACP,0BAA6B;","names":[]}
@@ -0,0 +1,10 @@
1
+ export {
2
+ LocaleServerContext,
3
+ LocaleServerContextProvider,
4
+ getLocaleContent,
5
+ locale,
6
+ useIntlayer,
7
+ useTraduction,
8
+ } from "react-intlayer/server";
9
+ export { withIntlayer } from "./withIntlayer.js";
10
+ import "next";
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if ((from && typeof from === "object") || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
17
+ });
18
+ }
19
+ return to;
20
+ };
21
+ var __toCommonJS = (mod) =>
22
+ __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
+ var withIntlayer_exports = {};
24
+ __export(withIntlayer_exports, {
25
+ withIntlayer: () => withIntlayer,
26
+ });
27
+ module.exports = __toCommonJS(withIntlayer_exports);
28
+ var import_path = require("path");
29
+ var import_config = require("@intlayer/config");
30
+ const intlayerConfig = (0, import_config.getConfiguration)({
31
+ verbose: true,
32
+ });
33
+ const env = (0, import_config.formatEnvVariable)("NEXT_PUBLIC_INTLAYER_");
34
+ const { mainDir, baseDir } = intlayerConfig.content;
35
+ const mergeEnvVariable = (nextEnv = {}) => Object.assign({}, nextEnv, env);
36
+ const mergeStats = (nextStats = {}) =>
37
+ Object.assign({}, nextStats, {
38
+ warnings: false,
39
+ });
40
+ const withIntlayer =
41
+ (_pluginOptions = {}) =>
42
+ (nextConfig = {}) => {
43
+ if (typeof nextConfig !== "object") nextConfig = {};
44
+ return Object.assign({}, nextConfig, {
45
+ env: mergeEnvVariable(nextConfig.env),
46
+ stats: mergeStats(nextConfig.stats),
47
+ webpack: (config) => {
48
+ const dictionariesPath = (0, import_path.join)(
49
+ mainDir,
50
+ "dictionaries.cjs"
51
+ );
52
+ const relativeDictionariesPath = (0, import_path.relative)(
53
+ baseDir,
54
+ dictionariesPath
55
+ );
56
+ config.externals.push({
57
+ esbuild: "esbuild",
58
+ module: "module",
59
+ fs: "fs",
60
+ });
61
+ config.resolve.alias["@intlayer/dictionaries-entry"] = (0,
62
+ import_path.resolve)(relativeDictionariesPath);
63
+ config.module.rules.push({
64
+ test: /\.node$/,
65
+ loader: "node-loader",
66
+ });
67
+ return config;
68
+ },
69
+ });
70
+ };
71
+ // Annotate the CommonJS export names for ESM import in node:
72
+ 0 &&
73
+ (module.exports = {
74
+ withIntlayer,
75
+ });
76
+ //# sourceMappingURL=withIntlayer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/server/withIntlayer.ts"],"sourcesContent":["import { resolve, relative, join } from 'path';\nimport { getConfiguration, formatEnvVariable } from '@intlayer/config';\nimport type { NextConfig } from 'next';\nimport type { NextJsWebpackConfig } from 'next/dist/server/config-shared';\n\ntype PluginOptions = {\n // TODO: add options\n};\n\nconst intlayerConfig = getConfiguration({\n verbose: true,\n});\n\n// Set all configuration values as environment variables\nconst env = formatEnvVariable('NEXT_PUBLIC_INTLAYER_');\nconst { mainDir, baseDir } = intlayerConfig.content;\n\nconst mergeEnvVariable = (\n nextEnv: Record<string, unknown> | undefined = {}\n): Record<string, string> => Object.assign({}, nextEnv, env);\n\nconst mergeStats = (\n nextStats: Record<string, unknown> | undefined = {}\n): Record<string, unknown> =>\n Object.assign({}, nextStats, {\n warnings: false,\n });\n\nexport const withIntlayer =\n (_pluginOptions: PluginOptions = {}) =>\n (nextConfig: Partial<NextConfig> = {}): Partial<NextConfig> => {\n if (typeof nextConfig !== 'object') nextConfig = {};\n\n return Object.assign({}, nextConfig, {\n env: mergeEnvVariable(nextConfig.env),\n\n stats: mergeStats(nextConfig.stats),\n\n webpack: (config: Parameters<NextJsWebpackConfig>['0']) => {\n const dictionariesPath = join(mainDir, 'dictionaries.cjs');\n const relativeDictionariesPath = relative(baseDir, dictionariesPath);\n\n config.externals.push({\n esbuild: 'esbuild',\n module: 'module',\n fs: 'fs',\n });\n\n config.resolve.alias['@intlayer/dictionaries-entry'] = resolve(\n relativeDictionariesPath\n );\n\n config.module.rules.push({\n test: /\\.node$/,\n loader: 'node-loader',\n });\n\n return config;\n },\n });\n };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAwC;AACxC,oBAAoD;AAQpD,MAAM,qBAAiB,gCAAiB;AAAA,EACtC,SAAS;AACX,CAAC;AAGD,MAAM,UAAM,iCAAkB,uBAAuB;AACrD,MAAM,EAAE,SAAS,QAAQ,IAAI,eAAe;AAE5C,MAAM,mBAAmB,CACvB,UAA+C,CAAC,MACrB,OAAO,OAAO,CAAC,GAAG,SAAS,GAAG;AAE3D,MAAM,aAAa,CACjB,YAAiD,CAAC,MAElD,OAAO,OAAO,CAAC,GAAG,WAAW;AAAA,EAC3B,UAAU;AACZ,CAAC;AAEI,MAAM,eACX,CAAC,iBAAgC,CAAC,MAClC,CAAC,aAAkC,CAAC,MAA2B;AAC7D,MAAI,OAAO,eAAe;AAAU,iBAAa,CAAC;AAElD,SAAO,OAAO,OAAO,CAAC,GAAG,YAAY;AAAA,IACnC,KAAK,iBAAiB,WAAW,GAAG;AAAA,IAEpC,OAAO,WAAW,WAAW,KAAK;AAAA,IAElC,SAAS,CAAC,WAAiD;AACzD,YAAM,uBAAmB,kBAAK,SAAS,kBAAkB;AACzD,YAAM,+BAA2B,sBAAS,SAAS,gBAAgB;AAEnE,aAAO,UAAU,KAAK;AAAA,QACpB,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,IAAI;AAAA,MACN,CAAC;AAED,aAAO,QAAQ,MAAM,8BAA8B,QAAI;AAAA,QACrD;AAAA,MACF;AAEA,aAAO,OAAO,MAAM,KAAK;AAAA,QACvB,MAAM;AAAA,QACN,QAAQ;AAAA,MACV,CAAC;AAED,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,9 @@
1
+ import "react-intlayer/server";
2
+ import { NextConfig } from "next";
3
+
4
+ type PluginOptions = {};
5
+ declare const withIntlayer: (
6
+ _pluginOptions?: PluginOptions
7
+ ) => (nextConfig?: Partial<NextConfig>) => Partial<NextConfig>;
8
+
9
+ export { withIntlayer };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if ((from && typeof from === "object") || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, {
11
+ get: () => from[key],
12
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
13
+ });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) =>
18
+ __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var NextPage_exports = {};
20
+ module.exports = __toCommonJS(NextPage_exports);
21
+ //# sourceMappingURL=NextPage.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/types/NextPage.ts"],"sourcesContent":["import type { Locales } from 'intlayer';\nimport type { NextPage } from 'next';\nimport type { PropsWithChildren } from 'react';\n\nexport type LocalParams = {\n params: { locale: Locales };\n};\n\nexport type NextPageIntlayer = NextPage<LocalParams>;\nexport type NextLayoutIntlayer = NextPage<PropsWithChildren<LocalParams>>;\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1,13 @@
1
+ import { Locales } from "intlayer";
2
+ import { NextPage } from "next";
3
+ import { PropsWithChildren } from "react";
4
+
5
+ type LocalParams = {
6
+ params: {
7
+ locale: Locales;
8
+ };
9
+ };
10
+ type NextPageIntlayer = NextPage<LocalParams>;
11
+ type NextLayoutIntlayer = NextPage<PropsWithChildren<LocalParams>>;
12
+
13
+ export type { LocalParams, NextLayoutIntlayer, NextPageIntlayer };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if ((from && typeof from === "object") || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, {
11
+ get: () => from[key],
12
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
13
+ });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) =>
18
+ __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var types_exports = {};
20
+ module.exports = __toCommonJS(types_exports);
21
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/types/index.ts"],"sourcesContent":["export type { LocalParams, NextPageIntlayer } from './NextPage';\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1,4 @@
1
+ export { LocalParams, NextPageIntlayer } from "./NextPage.js";
2
+ import "intlayer";
3
+ import "next";
4
+ import "react";
@@ -0,0 +1,10 @@
1
+ export {
2
+ LocaleClientContext,
3
+ LocaleClientContextProvider,
4
+ getTranslation,
5
+ useIntlayer,
6
+ useLocaleCookie,
7
+ useTraduction,
8
+ } from "react-intlayer";
9
+ export { useLocale } from "./useLocale.mjs";
10
+ import "intlayer";
@@ -0,0 +1,19 @@
1
+ import {
2
+ getTranslation,
3
+ LocaleClientContextProvider,
4
+ LocaleClientContext,
5
+ useIntlayer,
6
+ useTraduction,
7
+ useLocaleCookie,
8
+ } from "react-intlayer";
9
+ import { useLocale } from "./useLocale.mjs";
10
+ export {
11
+ LocaleClientContext,
12
+ LocaleClientContextProvider,
13
+ getTranslation,
14
+ useIntlayer,
15
+ useLocale,
16
+ useLocaleCookie,
17
+ useTraduction,
18
+ };
19
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/index.ts"],"sourcesContent":["export {\n getTranslation,\n LocaleClientContextProvider,\n LocaleClientContext,\n useIntlayer,\n useTraduction,\n useLocaleCookie,\n} from 'react-intlayer';\nexport { useLocale } from './useLocale';\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,iBAAiB;","names":[]}
@@ -0,0 +1,12 @@
1
+ import "react-intlayer";
2
+ import { Locales } from "intlayer";
3
+
4
+ declare const useLocale: () => {
5
+ setLocale: (locale: Locales) => void;
6
+ locale: Locales;
7
+ defaultLocale: Locales;
8
+ availableLocales: Locales[];
9
+ localeList: Locales[];
10
+ };
11
+
12
+ export { useLocale };
@@ -0,0 +1,37 @@
1
+ import { intlayerMiddlewareConfiguration } from "@intlayer/config/client";
2
+ import { usePathname, useRouter } from "next/navigation.js";
3
+ import { useLocale as useReactLocale, useLocaleCookie } from "react-intlayer";
4
+ const { prefixDefault } = intlayerMiddlewareConfiguration;
5
+ const useLocale = () => {
6
+ const { setLocaleCookie } = useLocaleCookie();
7
+ const reactLocaleHook = useReactLocale();
8
+ const router = useRouter();
9
+ const pathname = usePathname();
10
+ const {
11
+ defaultLocale,
12
+ availableLocales,
13
+ locale: currentLocale,
14
+ } = reactLocaleHook;
15
+ const setLocale = (locale) => {
16
+ if (currentLocale === locale) return;
17
+ if (!availableLocales.includes(locale)) {
18
+ console.error(`Locale ${locale} is not available`);
19
+ return;
20
+ }
21
+ setLocaleCookie(locale);
22
+ const pathWithoutLocale =
23
+ !prefixDefault && currentLocale === defaultLocale
24
+ ? pathname
25
+ : pathname.slice(`/${currentLocale}`.length) || "/";
26
+ if (!prefixDefault && locale === defaultLocale) {
27
+ return router.push(pathWithoutLocale);
28
+ }
29
+ return router.push(`/${locale}${pathWithoutLocale}`);
30
+ };
31
+ return {
32
+ ...reactLocaleHook,
33
+ setLocale,
34
+ };
35
+ };
36
+ export { useLocale };
37
+ //# sourceMappingURL=useLocale.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/useLocale.ts"],"sourcesContent":["import { intlayerMiddlewareConfiguration } from '@intlayer/config/client';\nimport type { Locales } from 'intlayer';\nimport { usePathname, useRouter } from 'next/navigation.js';\nimport { useLocale as useReactLocale, useLocaleCookie } from 'react-intlayer';\n\nconst { prefixDefault } = intlayerMiddlewareConfiguration;\n\nexport const useLocale = () => {\n const { setLocaleCookie } = useLocaleCookie();\n const reactLocaleHook = useReactLocale();\n const router = useRouter();\n const pathname = usePathname();\n\n const {\n defaultLocale,\n availableLocales,\n locale: currentLocale,\n } = reactLocaleHook;\n\n const setLocale = (locale: Locales) => {\n if (currentLocale === locale) return;\n\n if (!availableLocales.includes(locale)) {\n console.error(`Locale ${locale} is not available`);\n return;\n }\n\n setLocaleCookie(locale);\n\n const pathWithoutLocale =\n !prefixDefault && currentLocale === defaultLocale\n ? pathname\n : pathname.slice(`/${currentLocale}`.length) || '/';\n\n if (!prefixDefault && locale === defaultLocale) {\n return router.push(pathWithoutLocale);\n }\n\n return router.push(`/${locale}${pathWithoutLocale}`);\n };\n\n return {\n ...reactLocaleHook,\n setLocale,\n };\n};\n"],"mappings":"AAAA,SAAS,uCAAuC;AAEhD,SAAS,aAAa,iBAAiB;AACvC,SAAS,aAAa,gBAAgB,uBAAuB;AAE7D,MAAM,EAAE,cAAc,IAAI;AAEnB,MAAM,YAAY,MAAM;AAC7B,QAAM,EAAE,gBAAgB,IAAI,gBAAgB;AAC5C,QAAM,kBAAkB,eAAe;AACvC,QAAM,SAAS,UAAU;AACzB,QAAM,WAAW,YAAY;AAE7B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,EACV,IAAI;AAEJ,QAAM,YAAY,CAAC,WAAoB;AACrC,QAAI,kBAAkB;AAAQ;AAE9B,QAAI,CAAC,iBAAiB,SAAS,MAAM,GAAG;AACtC,cAAQ,MAAM,UAAU,MAAM,mBAAmB;AACjD;AAAA,IACF;AAEA,oBAAgB,MAAM;AAEtB,UAAM,oBACJ,CAAC,iBAAiB,kBAAkB,gBAChC,WACA,SAAS,MAAM,IAAI,aAAa,GAAG,MAAM,KAAK;AAEpD,QAAI,CAAC,iBAAiB,WAAW,eAAe;AAC9C,aAAO,OAAO,KAAK,iBAAiB;AAAA,IACtC;AAEA,WAAO,OAAO,KAAK,IAAI,MAAM,GAAG,iBAAiB,EAAE;AAAA,EACrD;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,7 @@
1
+ import * as _intlayer_config_client from "@intlayer/config/client";
2
+
3
+ declare const generateStaticParams: () => {
4
+ locale: _intlayer_config_client.Locales;
5
+ }[];
6
+
7
+ export { generateStaticParams };
@@ -0,0 +1,5 @@
1
+ import { intlayerIntlConfiguration } from "@intlayer/config/client";
2
+ const { locales } = intlayerIntlConfiguration;
3
+ const generateStaticParams = () => locales.map((locale) => ({ locale }));
4
+ export { generateStaticParams };
5
+ //# sourceMappingURL=generateStaticParams.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/generateStaticParams.ts"],"sourcesContent":["import { intlayerIntlConfiguration } from '@intlayer/config/client';\n\nconst { locales } = intlayerIntlConfiguration;\n\nexport const generateStaticParams = () => locales.map((locale) => ({ locale }));\n"],"mappings":"AAAA,SAAS,iCAAiC;AAE1C,MAAM,EAAE,QAAQ,IAAI;AAEb,MAAM,uBAAuB,MAAM,QAAQ,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE;","names":[]}
@@ -0,0 +1,15 @@
1
+ export {
2
+ LocaleClientContext,
3
+ LocaleClientContextProvider,
4
+ getTranslation,
5
+ useIntlayer,
6
+ useLocaleCookie,
7
+ useTraduction,
8
+ } from "react-intlayer";
9
+ export { generateStaticParams } from "./generateStaticParams.mjs";
10
+ export { LocalParams, NextPageIntlayer } from "./types/NextPage.mjs";
11
+ export { useLocale } from "./client/useLocale.mjs";
12
+ import "@intlayer/config/client";
13
+ import "intlayer";
14
+ import "next";
15
+ import "react";
@@ -0,0 +1,21 @@
1
+ import {
2
+ getTranslation,
3
+ LocaleClientContextProvider,
4
+ LocaleClientContext,
5
+ useIntlayer,
6
+ useTraduction,
7
+ useLocaleCookie,
8
+ } from "react-intlayer";
9
+ import { generateStaticParams } from "./generateStaticParams.mjs";
10
+ import { useLocale } from "./client/useLocale.mjs";
11
+ export {
12
+ LocaleClientContext,
13
+ LocaleClientContextProvider,
14
+ generateStaticParams,
15
+ getTranslation,
16
+ useIntlayer,
17
+ useLocale,
18
+ useLocaleCookie,
19
+ useTraduction,
20
+ };
21
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export {\n getTranslation,\n LocaleClientContextProvider,\n LocaleClientContext,\n useIntlayer,\n useTraduction,\n useLocaleCookie,\n} from 'react-intlayer';\nexport { generateStaticParams } from './generateStaticParams';\nexport type { LocalParams, NextPageIntlayer } from './types/index';\nexport { useLocale } from './client/useLocale';\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,4BAA4B;AAErC,SAAS,iBAAiB;","names":[]}
@@ -0,0 +1,2 @@
1
+ export { intlayerMiddleware } from "./intlayerMiddleware.mjs";
2
+ import "next/server";
@@ -0,0 +1,2 @@
1
+ export * from "./intlayerMiddleware.mjs";
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/middleware/index.ts"],"sourcesContent":["export * from './intlayerMiddleware';\n"],"mappings":"AAAA,cAAc;","names":[]}
@@ -0,0 +1,5 @@
1
+ import { NextRequest, NextResponse } from "next/server";
2
+
3
+ declare const intlayerMiddleware: (request: NextRequest) => NextResponse;
4
+
5
+ export { intlayerMiddleware };
@@ -0,0 +1,193 @@
1
+ import { intlayerConfiguration } from "@intlayer/config/client";
2
+ import { NextResponse } from "next/server";
3
+ import { localeDetector } from "./localeDetector.mjs";
4
+ const { internationalization, middleware } = intlayerConfiguration;
5
+ const { locales, defaultLocale } = internationalization;
6
+ const {
7
+ headerName,
8
+ cookieName,
9
+ prefixDefault,
10
+ basePath,
11
+ serverSetCookie,
12
+ noPrefix,
13
+ } = middleware;
14
+ const intlayerMiddleware = (request) => {
15
+ const pathname = request.nextUrl.pathname;
16
+ const cookieLocale = getCookieLocale(request);
17
+ const basePathTrailingSlash = basePath.endsWith("/");
18
+ if (noPrefix) {
19
+ return handleNoPrefix(
20
+ request,
21
+ cookieLocale,
22
+ pathname,
23
+ basePathTrailingSlash
24
+ );
25
+ }
26
+ const pathLocale = getPathLocale(pathname);
27
+ return handlePrefix(
28
+ request,
29
+ cookieLocale,
30
+ pathLocale,
31
+ pathname,
32
+ basePathTrailingSlash
33
+ );
34
+ };
35
+ const getCookieLocale = (request) => {
36
+ if (!cookieName) return void 0;
37
+ const cookieValue = request.cookies.get(cookieName)?.value;
38
+ if (cookieValue && locales.includes(cookieValue)) {
39
+ return cookieValue;
40
+ }
41
+ };
42
+ const handleNoPrefix = (
43
+ request,
44
+ cookieLocale,
45
+ pathname,
46
+ basePathTrailingSlash
47
+ ) => {
48
+ const locale = cookieLocale ?? defaultLocale;
49
+ const newPath = constructPath(
50
+ locale,
51
+ pathname,
52
+ basePath,
53
+ basePathTrailingSlash
54
+ );
55
+ return rewriteUrl(request, newPath, locale);
56
+ };
57
+ const getPathLocale = (pathname) =>
58
+ locales.find(
59
+ (locale) => pathname.startsWith(`/${locale}/`) || pathname === `/${locale}`
60
+ );
61
+ const handlePrefix = (
62
+ request,
63
+ cookieLocale,
64
+ pathLocale,
65
+ pathname,
66
+ basePathTrailingSlash
67
+ ) => {
68
+ if (!pathLocale) {
69
+ return handleMissingPathLocale(
70
+ request,
71
+ cookieLocale,
72
+ pathname,
73
+ basePathTrailingSlash
74
+ );
75
+ }
76
+ return handleExistingPathLocale(
77
+ request,
78
+ cookieLocale,
79
+ pathLocale,
80
+ pathname,
81
+ basePathTrailingSlash
82
+ );
83
+ };
84
+ const handleMissingPathLocale = (
85
+ request,
86
+ cookieLocale,
87
+ pathname,
88
+ basePathTrailingSlash
89
+ ) => {
90
+ let locale = cookieLocale ?? localeDetector?.(request) ?? defaultLocale;
91
+ if (!locales.includes(locale)) {
92
+ console.warn(
93
+ "The localeDetector callback must return a locale included in your locales array. Reverting to using defaultLocale."
94
+ );
95
+ locale = defaultLocale;
96
+ }
97
+ const newPath = constructPath(
98
+ locale,
99
+ pathname,
100
+ basePath,
101
+ basePathTrailingSlash
102
+ );
103
+ return prefixDefault || locale !== defaultLocale
104
+ ? redirectUrl(request, newPath)
105
+ : rewriteUrl(request, newPath, locale);
106
+ };
107
+ const handleExistingPathLocale = (
108
+ request,
109
+ cookieLocale,
110
+ pathLocale,
111
+ pathname,
112
+ basePathTrailingSlash
113
+ ) => {
114
+ if (
115
+ cookieLocale &&
116
+ cookieLocale !== pathLocale &&
117
+ serverSetCookie !== "always"
118
+ ) {
119
+ const newPath = handleCookieLocaleMismatch(
120
+ request,
121
+ pathname,
122
+ pathLocale,
123
+ cookieLocale,
124
+ basePath,
125
+ basePathTrailingSlash
126
+ );
127
+ return redirectUrl(request, newPath);
128
+ }
129
+ return handleDefaultLocaleRedirect(
130
+ request,
131
+ pathLocale,
132
+ pathname,
133
+ basePathTrailingSlash
134
+ );
135
+ };
136
+ const handleCookieLocaleMismatch = (
137
+ request,
138
+ pathname,
139
+ pathLocale,
140
+ cookieLocale,
141
+ basePath2,
142
+ basePathTrailingSlash
143
+ ) => {
144
+ const newPath = pathname.replace(`/${pathLocale}`, `/${cookieLocale}`);
145
+ return constructPath(
146
+ cookieLocale,
147
+ newPath,
148
+ basePath2,
149
+ basePathTrailingSlash,
150
+ request.nextUrl.search
151
+ );
152
+ };
153
+ const handleDefaultLocaleRedirect = (
154
+ request,
155
+ pathLocale,
156
+ pathname,
157
+ basePathTrailingSlash
158
+ ) => {
159
+ if (!prefixDefault && pathLocale === defaultLocale) {
160
+ let pathWithoutLocale = pathname.slice(`/${pathLocale}`.length) || "/";
161
+ if (basePathTrailingSlash) {
162
+ pathWithoutLocale = pathWithoutLocale.slice(1);
163
+ }
164
+ if (request.nextUrl.search) {
165
+ pathWithoutLocale += request.nextUrl.search;
166
+ }
167
+ return rewriteUrl(request, `${basePath}${pathWithoutLocale}`, pathLocale);
168
+ }
169
+ return rewriteUrl(request, pathname, pathLocale);
170
+ };
171
+ const constructPath = (
172
+ locale,
173
+ path,
174
+ basePath2,
175
+ basePathTrailingSlash,
176
+ search
177
+ ) => {
178
+ let newPath = `${locale}${path}`;
179
+ newPath = `${basePath2}${basePathTrailingSlash ? "" : "/"}${newPath}`;
180
+ if (search) {
181
+ newPath += search;
182
+ }
183
+ return newPath;
184
+ };
185
+ const rewriteUrl = (request, newPath, locale) => {
186
+ const response = NextResponse.rewrite(new URL(newPath, request.url));
187
+ response.headers.set(headerName, locale);
188
+ return response;
189
+ };
190
+ const redirectUrl = (request, newPath) =>
191
+ NextResponse.redirect(new URL(newPath, request.url));
192
+ export { intlayerMiddleware };
193
+ //# sourceMappingURL=intlayerMiddleware.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/middleware/intlayerMiddleware.ts"],"sourcesContent":["import { type Locales, intlayerConfiguration } from '@intlayer/config/client';\nimport { type NextRequest, NextResponse } from 'next/server';\nimport { localeDetector } from './localeDetector';\n\nconst { internationalization, middleware } = intlayerConfiguration;\nconst { locales, defaultLocale } = internationalization;\nconst {\n headerName,\n cookieName,\n prefixDefault,\n basePath,\n serverSetCookie,\n noPrefix,\n} = middleware;\n\nexport const intlayerMiddleware = (request: NextRequest): NextResponse => {\n const pathname = request.nextUrl.pathname;\n const cookieLocale = getCookieLocale(request);\n const basePathTrailingSlash = basePath.endsWith('/');\n\n if (noPrefix) {\n return handleNoPrefix(\n request,\n cookieLocale,\n pathname,\n basePathTrailingSlash\n );\n }\n\n const pathLocale = getPathLocale(pathname);\n return handlePrefix(\n request,\n cookieLocale,\n pathLocale,\n pathname,\n basePathTrailingSlash\n );\n};\n\nconst getCookieLocale = (request: NextRequest): Locales | undefined => {\n if (!cookieName) return undefined;\n const cookieValue = request.cookies.get(cookieName)?.value as Locales;\n if (cookieValue && locales.includes(cookieValue)) {\n return cookieValue;\n }\n};\n\nconst handleNoPrefix = (\n request: NextRequest,\n cookieLocale: Locales | undefined,\n pathname: string,\n basePathTrailingSlash: boolean\n): NextResponse => {\n const locale = cookieLocale ?? defaultLocale;\n const newPath = constructPath(\n locale,\n pathname,\n basePath,\n basePathTrailingSlash\n );\n return rewriteUrl(request, newPath, locale);\n};\n\nconst getPathLocale = (pathname: string): Locales | undefined =>\n locales.find(\n (locale) => pathname.startsWith(`/${locale}/`) || pathname === `/${locale}`\n );\n\nconst handlePrefix = (\n request: NextRequest,\n cookieLocale: Locales | undefined,\n pathLocale: Locales | undefined,\n pathname: string,\n basePathTrailingSlash: boolean\n): NextResponse => {\n if (!pathLocale) {\n return handleMissingPathLocale(\n request,\n cookieLocale,\n pathname,\n basePathTrailingSlash\n );\n }\n return handleExistingPathLocale(\n request,\n cookieLocale,\n pathLocale,\n pathname,\n basePathTrailingSlash\n );\n};\n\nconst handleMissingPathLocale = (\n request: NextRequest,\n cookieLocale: Locales | undefined,\n pathname: string,\n basePathTrailingSlash: boolean\n): NextResponse => {\n let locale = cookieLocale ?? localeDetector?.(request) ?? defaultLocale;\n if (!locales.includes(locale)) {\n console.warn(\n 'The localeDetector callback must return a locale included in your locales array. Reverting to using defaultLocale.'\n );\n locale = defaultLocale;\n }\n const newPath = constructPath(\n locale,\n pathname,\n basePath,\n basePathTrailingSlash\n );\n return prefixDefault || locale !== defaultLocale\n ? redirectUrl(request, newPath)\n : rewriteUrl(request, newPath, locale);\n};\n\nconst handleExistingPathLocale = (\n request: NextRequest,\n cookieLocale: Locales | undefined,\n pathLocale: Locales,\n pathname: string,\n basePathTrailingSlash: boolean\n): NextResponse => {\n if (\n cookieLocale &&\n cookieLocale !== pathLocale &&\n serverSetCookie !== 'always'\n ) {\n const newPath = handleCookieLocaleMismatch(\n request,\n pathname,\n pathLocale,\n cookieLocale,\n basePath,\n basePathTrailingSlash\n );\n return redirectUrl(request, newPath);\n }\n\n return handleDefaultLocaleRedirect(\n request,\n pathLocale,\n pathname,\n basePathTrailingSlash\n );\n};\n\nconst handleCookieLocaleMismatch = (\n request: NextRequest,\n\n pathname: string,\n pathLocale: Locales,\n cookieLocale: Locales,\n basePath: string,\n basePathTrailingSlash: boolean\n): string => {\n const newPath = pathname.replace(`/${pathLocale}`, `/${cookieLocale}`);\n return constructPath(\n cookieLocale,\n newPath,\n basePath,\n basePathTrailingSlash,\n request.nextUrl.search\n );\n};\n\nconst handleDefaultLocaleRedirect = (\n request: NextRequest,\n pathLocale: Locales,\n pathname: string,\n basePathTrailingSlash: boolean\n): NextResponse => {\n if (!prefixDefault && pathLocale === defaultLocale) {\n let pathWithoutLocale = pathname.slice(`/${pathLocale}`.length) || '/';\n\n if (basePathTrailingSlash) {\n pathWithoutLocale = pathWithoutLocale.slice(1);\n }\n\n if (request.nextUrl.search) {\n pathWithoutLocale += request.nextUrl.search;\n }\n\n return rewriteUrl(request, `${basePath}${pathWithoutLocale}`, pathLocale);\n }\n return rewriteUrl(request, pathname, pathLocale);\n};\n\nconst constructPath = (\n locale: Locales,\n path: string,\n basePath: string,\n basePathTrailingSlash: boolean,\n search?: string\n): string => {\n let newPath = `${locale}${path}`;\n newPath = `${basePath}${basePathTrailingSlash ? '' : '/'}${newPath}`;\n if (search) {\n newPath += search;\n }\n return newPath;\n};\n\nconst rewriteUrl = (\n request: NextRequest,\n newPath: string,\n locale: Locales\n): NextResponse => {\n const response = NextResponse.rewrite(new URL(newPath, request.url));\n response.headers.set(headerName, locale);\n return response;\n};\n\nconst redirectUrl = (request: NextRequest, newPath: string): NextResponse =>\n NextResponse.redirect(new URL(newPath, request.url));\n"],"mappings":"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","names":["basePath"]}
@@ -0,0 +1,6 @@
1
+ import { Locales } from "@intlayer/config";
2
+ import { NextRequest } from "next/server.js";
3
+
4
+ declare const localeDetector: (request: NextRequest) => Locales;
5
+
6
+ export { localeDetector };