@modern-js/plugin-i18n 3.0.0-alpha.1 → 3.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 (93) hide show
  1. package/dist/cjs/cli/{index.cjs → index.js} +4 -4
  2. package/dist/cjs/runtime/{I18nLink.cjs → I18nLink.js} +4 -4
  3. package/dist/cjs/runtime/{context.cjs → context.js} +14 -10
  4. package/dist/cjs/runtime/{hooks.cjs → hooks.js} +10 -10
  5. package/dist/cjs/runtime/i18n/backend/{config.cjs → config.js} +2 -2
  6. package/dist/cjs/runtime/i18n/backend/{index.cjs → index.js} +12 -12
  7. package/dist/cjs/runtime/i18n/backend/{middleware.common.cjs → middleware.common.js} +7 -7
  8. package/dist/cjs/runtime/i18n/backend/{middleware.cjs → middleware.js} +2 -2
  9. package/dist/cjs/runtime/i18n/backend/{middleware.node.cjs → middleware.node.js} +2 -2
  10. package/dist/cjs/runtime/i18n/detection/{config.cjs → config.js} +2 -2
  11. package/dist/cjs/runtime/i18n/detection/{index.cjs → index.js} +10 -10
  12. package/dist/cjs/runtime/i18n/detection/{middleware.cjs → middleware.js} +5 -5
  13. package/dist/cjs/runtime/i18n/{index.cjs → index.js} +5 -5
  14. package/dist/cjs/runtime/i18n/{instance.cjs → instance.js} +1 -1
  15. package/dist/cjs/runtime/i18n/{utils.cjs → utils.js} +15 -15
  16. package/dist/cjs/runtime/{index.cjs → index.js} +35 -35
  17. package/dist/cjs/runtime/{utils.cjs → utils.js} +4 -2
  18. package/dist/cjs/server/{index.cjs → index.js} +28 -7
  19. package/dist/cjs/shared/{detection.cjs → detection.js} +5 -5
  20. package/dist/{esm-node/cli/index.js → esm/cli/index.mjs} +1 -1
  21. package/dist/esm/runtime/{I18nLink.js → I18nLink.mjs} +2 -2
  22. package/dist/{esm-node/runtime/context.js → esm/runtime/context.mjs} +6 -2
  23. package/dist/{esm-node/runtime/hooks.js → esm/runtime/hooks.mjs} +2 -2
  24. package/dist/{esm-node/runtime/i18n/backend/config.js → esm/runtime/i18n/backend/config.mjs} +1 -1
  25. package/dist/{esm-node/runtime/i18n/backend/index.js → esm/runtime/i18n/backend/index.mjs} +2 -2
  26. package/dist/esm/runtime/i18n/backend/{middleware.common.js → middleware.common.mjs} +2 -2
  27. package/dist/esm/runtime/i18n/backend/{middleware.js → middleware.mjs} +1 -1
  28. package/dist/{esm-node/runtime/i18n/backend/middleware.node.js → esm/runtime/i18n/backend/middleware.node.mjs} +1 -1
  29. package/dist/{esm-node/runtime/i18n/detection/config.js → esm/runtime/i18n/detection/config.mjs} +1 -1
  30. package/dist/esm/runtime/i18n/detection/{index.js → index.mjs} +4 -4
  31. package/dist/{esm-node/runtime/i18n/detection/middleware.js → esm/runtime/i18n/detection/middleware.mjs} +1 -1
  32. package/dist/esm/runtime/i18n/index.mjs +3 -0
  33. package/dist/{esm-node/runtime/i18n/instance.js → esm/runtime/i18n/instance.mjs} +1 -1
  34. package/dist/{esm-node/runtime/i18n/utils.js → esm/runtime/i18n/utils.mjs} +5 -5
  35. package/dist/esm/runtime/{index.js → index.mjs} +15 -15
  36. package/dist/{esm-node/runtime/utils.js → esm/runtime/utils.mjs} +4 -2
  37. package/dist/{esm-node/server/index.js → esm/server/index.mjs} +23 -2
  38. package/dist/{esm-node/shared/detection.js → esm/shared/detection.mjs} +1 -1
  39. package/dist/{esm/cli/index.js → esm-node/cli/index.mjs} +2 -1
  40. package/dist/esm-node/runtime/{I18nLink.js → I18nLink.mjs} +3 -2
  41. package/dist/{esm/runtime/context.js → esm-node/runtime/context.mjs} +7 -2
  42. package/dist/{esm/runtime/hooks.js → esm-node/runtime/hooks.mjs} +3 -2
  43. package/dist/{esm/runtime/i18n/backend/config.js → esm-node/runtime/i18n/backend/config.mjs} +2 -1
  44. package/dist/{esm/runtime/i18n/backend/defaults.js → esm-node/runtime/i18n/backend/defaults.mjs} +1 -0
  45. package/dist/{esm/runtime/i18n/backend/defaults.node.js → esm-node/runtime/i18n/backend/defaults.node.mjs} +1 -0
  46. package/dist/{esm/runtime/i18n/backend/index.js → esm-node/runtime/i18n/backend/index.mjs} +3 -2
  47. package/dist/esm-node/runtime/i18n/backend/{middleware.common.js → middleware.common.mjs} +3 -2
  48. package/dist/esm-node/runtime/i18n/backend/{middleware.js → middleware.mjs} +2 -1
  49. package/dist/{esm/runtime/i18n/backend/middleware.node.js → esm-node/runtime/i18n/backend/middleware.node.mjs} +2 -1
  50. package/dist/{esm/runtime/i18n/backend/sdk-backend.js → esm-node/runtime/i18n/backend/sdk-backend.mjs} +1 -0
  51. package/dist/{esm/runtime/i18n/detection/config.js → esm-node/runtime/i18n/detection/config.mjs} +2 -1
  52. package/dist/esm-node/runtime/i18n/detection/{index.js → index.mjs} +5 -4
  53. package/dist/{esm/runtime/i18n/detection/middleware.js → esm-node/runtime/i18n/detection/middleware.mjs} +2 -1
  54. package/dist/{esm/runtime/i18n/detection/middleware.node.js → esm-node/runtime/i18n/detection/middleware.node.mjs} +1 -0
  55. package/dist/esm-node/runtime/i18n/index.mjs +4 -0
  56. package/dist/{esm/runtime/i18n/instance.js → esm-node/runtime/i18n/instance.mjs} +2 -1
  57. package/dist/{esm/runtime/i18n/utils.js → esm-node/runtime/i18n/utils.mjs} +6 -5
  58. package/dist/esm-node/runtime/{index.js → index.mjs} +16 -15
  59. package/dist/esm-node/runtime/types.mjs +1 -0
  60. package/dist/{esm/runtime/utils.js → esm-node/runtime/utils.mjs} +5 -2
  61. package/dist/{esm/server/index.js → esm-node/server/index.mjs} +24 -2
  62. package/dist/{esm/shared/deepMerge.js → esm-node/shared/deepMerge.mjs} +1 -0
  63. package/dist/{esm/shared/detection.js → esm-node/shared/detection.mjs} +2 -1
  64. package/dist/esm-node/shared/type.mjs +1 -0
  65. package/dist/{esm/shared/utils.js → esm-node/shared/utils.mjs} +1 -0
  66. package/dist/types/runtime/i18n/instance.d.ts +2 -2
  67. package/package.json +41 -41
  68. package/src/runtime/context.tsx +25 -0
  69. package/src/runtime/i18n/detection/config.ts +1 -1
  70. package/src/runtime/i18n/instance.ts +3 -3
  71. package/src/runtime/index.tsx +5 -3
  72. package/src/runtime/utils.ts +14 -2
  73. package/src/server/index.ts +34 -0
  74. package/dist/esm/runtime/i18n/index.js +0 -3
  75. package/dist/esm/runtime/types.js +0 -0
  76. package/dist/esm/shared/type.js +0 -0
  77. package/dist/esm-node/runtime/i18n/index.js +0 -3
  78. /package/dist/cjs/runtime/i18n/backend/{defaults.cjs → defaults.js} +0 -0
  79. /package/dist/cjs/runtime/i18n/backend/{defaults.node.cjs → defaults.node.js} +0 -0
  80. /package/dist/cjs/runtime/i18n/backend/{sdk-backend.cjs → sdk-backend.js} +0 -0
  81. /package/dist/cjs/runtime/i18n/detection/{middleware.node.cjs → middleware.node.js} +0 -0
  82. /package/dist/cjs/runtime/{types.cjs → types.js} +0 -0
  83. /package/dist/cjs/shared/{deepMerge.cjs → deepMerge.js} +0 -0
  84. /package/dist/cjs/shared/{type.cjs → type.js} +0 -0
  85. /package/dist/cjs/shared/{utils.cjs → utils.js} +0 -0
  86. /package/dist/{esm-node/runtime/i18n/backend/defaults.js → esm/runtime/i18n/backend/defaults.mjs} +0 -0
  87. /package/dist/{esm-node/runtime/i18n/backend/defaults.node.js → esm/runtime/i18n/backend/defaults.node.mjs} +0 -0
  88. /package/dist/{esm-node/runtime/i18n/backend/sdk-backend.js → esm/runtime/i18n/backend/sdk-backend.mjs} +0 -0
  89. /package/dist/{esm-node/runtime/i18n/detection/middleware.node.js → esm/runtime/i18n/detection/middleware.node.mjs} +0 -0
  90. /package/dist/{esm-node/runtime/types.js → esm/runtime/types.mjs} +0 -0
  91. /package/dist/{esm-node/shared/deepMerge.js → esm/shared/deepMerge.mjs} +0 -0
  92. /package/dist/{esm-node/shared/type.js → esm/shared/type.mjs} +0 -0
  93. /package/dist/{esm-node/shared/utils.js → esm/shared/utils.mjs} +0 -0
@@ -41,7 +41,7 @@ var external_fs_default = /*#__PURE__*/ __webpack_require__.n(external_fs_namesp
41
41
  const external_path_namespaceObject = require("path");
42
42
  var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
43
43
  const server_core_namespaceObject = require("@modern-js/server-core");
44
- const utils_cjs_namespaceObject = require("../shared/utils.cjs");
44
+ const utils_js_namespaceObject = require("../shared/utils.js");
45
45
  function hasJsonFiles(dirPath) {
46
46
  try {
47
47
  if (!external_fs_default().existsSync(dirPath) || !external_fs_default().statSync(dirPath).isDirectory()) return false;
@@ -77,12 +77,12 @@ const i18nPlugin = (options = {})=>({
77
77
  setup: (api)=>{
78
78
  const { localeDetection, backend, transformRuntimeConfig, customPlugin, ...restOptions } = options;
79
79
  api._internalRuntimePlugins(({ entrypoint, plugins })=>{
80
- const localeDetectionOptions = localeDetection ? (0, utils_cjs_namespaceObject.getLocaleDetectionOptions)(entrypoint.entryName, localeDetection) : void 0;
80
+ const localeDetectionOptions = localeDetection ? (0, utils_js_namespaceObject.getLocaleDetectionOptions)(entrypoint.entryName, localeDetection) : void 0;
81
81
  let backendOptions;
82
82
  const { appDirectory } = api.getAppContext();
83
83
  const normalizedConfig = api.getNormalizedConfig();
84
84
  if (backend) {
85
- const entryBackendOptions = (0, utils_cjs_namespaceObject.getBackendOptions)(entrypoint.entryName, backend);
85
+ const entryBackendOptions = (0, utils_js_namespaceObject.getBackendOptions)(entrypoint.entryName, backend);
86
86
  if (entryBackendOptions?.enabled === false) backendOptions = entryBackendOptions;
87
87
  else if (entryBackendOptions?.loadPath || entryBackendOptions?.addPath) backendOptions = {
88
88
  ...entryBackendOptions,
@@ -97,7 +97,7 @@ const i18nPlugin = (options = {})=>({
97
97
  } else backendOptions = entryBackendOptions;
98
98
  } else {
99
99
  const hasLocales = detectLocalesDirectory(appDirectory, normalizedConfig);
100
- if (hasLocales) backendOptions = (0, utils_cjs_namespaceObject.getBackendOptions)(entrypoint.entryName, {
100
+ if (hasLocales) backendOptions = (0, utils_js_namespaceObject.getBackendOptions)(entrypoint.entryName, {
101
101
  enabled: true
102
102
  });
103
103
  }
@@ -29,8 +29,8 @@ __webpack_require__.d(__webpack_exports__, {
29
29
  });
30
30
  const jsx_runtime_namespaceObject = require("react/jsx-runtime");
31
31
  const router_namespaceObject = require("@modern-js/runtime/router");
32
- const external_context_cjs_namespaceObject = require("./context.cjs");
33
- const external_utils_cjs_namespaceObject = require("./utils.cjs");
32
+ const external_context_js_namespaceObject = require("./context.js");
33
+ const external_utils_js_namespaceObject = require("./utils.js");
34
34
  const useRouterHooks = ()=>{
35
35
  const inRouter = (0, router_namespaceObject.useInRouterContext)();
36
36
  return {
@@ -41,9 +41,9 @@ const useRouterHooks = ()=>{
41
41
  };
42
42
  const I18nLink = ({ to, children, ...props })=>{
43
43
  const { Link, params, hasRouter } = useRouterHooks();
44
- const { language, supportedLanguages } = (0, external_context_cjs_namespaceObject.useModernI18n)();
44
+ const { language, supportedLanguages } = (0, external_context_js_namespaceObject.useModernI18n)();
45
45
  const currentLang = language;
46
- const localizedTo = (0, external_utils_cjs_namespaceObject.buildLocalizedUrl)(to, currentLang, supportedLanguages);
46
+ const localizedTo = (0, external_utils_js_namespaceObject.buildLocalizedUrl)(to, currentLang, supportedLanguages);
47
47
  if ('development' === process.env.NODE_ENV && hasRouter && !params.lang) console.warn("I18nLink is being used outside of a :lang dynamic route context. This may cause unexpected behavior. Please ensure I18nLink is used within a route that has a :lang parameter.");
48
48
  if (!hasRouter || !Link) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("a", {
49
49
  href: localizedTo,
@@ -30,8 +30,8 @@ __webpack_require__.d(__webpack_exports__, {
30
30
  const jsx_runtime_namespaceObject = require("react/jsx-runtime");
31
31
  const runtime_namespaceObject = require("@modern-js/runtime");
32
32
  const external_react_namespaceObject = require("react");
33
- const index_cjs_namespaceObject = require("./i18n/detection/index.cjs");
34
- const external_utils_cjs_namespaceObject = require("./utils.cjs");
33
+ const index_js_namespaceObject = require("./i18n/detection/index.js");
34
+ const external_utils_js_namespaceObject = require("./utils.js");
35
35
  const ModernI18nContext = /*#__PURE__*/ (0, external_react_namespaceObject.createContext)(null);
36
36
  const ModernI18nProvider = ({ children, value })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ModernI18nContext.Provider, {
37
37
  value: value,
@@ -41,7 +41,7 @@ const useModernI18n = ()=>{
41
41
  const context = (0, external_react_namespaceObject.useContext)(ModernI18nContext);
42
42
  if (!context) throw new Error('useModernI18n must be used within a ModernI18nProvider');
43
43
  const { language: contextLanguage, i18nInstance, languages, localePathRedirect, ignoreRedirectRoutes, updateLanguage } = context;
44
- const { navigate, location, hasRouter } = (0, external_utils_cjs_namespaceObject.useRouterHooks)();
44
+ const { navigate, location, hasRouter } = (0, external_utils_js_namespaceObject.useRouterHooks)();
45
45
  const currentLanguage = contextLanguage;
46
46
  const changeLanguage = (0, external_react_namespaceObject.useCallback)(async (newLang)=>{
47
47
  try {
@@ -50,14 +50,16 @@ const useModernI18n = ()=>{
50
50
  await i18nInstance?.changeLanguage?.(newLang);
51
51
  if ((0, runtime_namespaceObject.isBrowser)()) {
52
52
  const detectionOptions = i18nInstance.options?.detection;
53
- (0, index_cjs_namespaceObject.cacheUserLanguage)(i18nInstance, newLang, detectionOptions);
53
+ (0, index_js_namespaceObject.cacheUserLanguage)(i18nInstance, newLang, detectionOptions);
54
54
  }
55
55
  if (localePathRedirect && (0, runtime_namespaceObject.isBrowser)() && hasRouter && navigate && location) {
56
56
  const currentPath = location.pathname;
57
- const entryPath = (0, external_utils_cjs_namespaceObject.getEntryPath)();
57
+ const entryPath = (0, external_utils_js_namespaceObject.getEntryPath)();
58
58
  const relativePath = currentPath.replace(entryPath, '');
59
- if (!(0, external_utils_cjs_namespaceObject.shouldIgnoreRedirect)(relativePath, languages || [], ignoreRedirectRoutes)) {
60
- const newPath = (0, external_utils_cjs_namespaceObject.buildLocalizedUrl)(relativePath, newLang, languages || []);
59
+ const pathLanguage = (0, external_utils_js_namespaceObject.detectLanguageFromPath)(currentPath, languages || [], localePathRedirect);
60
+ if (pathLanguage.detected && pathLanguage.language === newLang) return;
61
+ if (!(0, external_utils_js_namespaceObject.shouldIgnoreRedirect)(relativePath, languages || [], ignoreRedirectRoutes)) {
62
+ const newPath = (0, external_utils_js_namespaceObject.buildLocalizedUrl)(relativePath, newLang, languages || []);
61
63
  const newUrl = entryPath + newPath + location.search + location.hash;
62
64
  await navigate(newUrl, {
63
65
  replace: true
@@ -65,10 +67,12 @@ const useModernI18n = ()=>{
65
67
  }
66
68
  } else if (localePathRedirect && (0, runtime_namespaceObject.isBrowser)() && !hasRouter) {
67
69
  const currentPath = window.location.pathname;
68
- const entryPath = (0, external_utils_cjs_namespaceObject.getEntryPath)();
70
+ const entryPath = (0, external_utils_js_namespaceObject.getEntryPath)();
69
71
  const relativePath = currentPath.replace(entryPath, '');
70
- if (!(0, external_utils_cjs_namespaceObject.shouldIgnoreRedirect)(relativePath, languages || [], ignoreRedirectRoutes)) {
71
- const newPath = (0, external_utils_cjs_namespaceObject.buildLocalizedUrl)(relativePath, newLang, languages || []);
72
+ const pathLanguage = (0, external_utils_js_namespaceObject.detectLanguageFromPath)(currentPath, languages || [], localePathRedirect);
73
+ if (pathLanguage.detected && pathLanguage.language === newLang) return;
74
+ if (!(0, external_utils_js_namespaceObject.shouldIgnoreRedirect)(relativePath, languages || [], ignoreRedirectRoutes)) {
75
+ const newPath = (0, external_utils_js_namespaceObject.buildLocalizedUrl)(relativePath, newLang, languages || []);
72
76
  const newUrl = entryPath + newPath + window.location.search + window.location.hash;
73
77
  window.history.pushState(null, '', newUrl);
74
78
  }
@@ -31,8 +31,8 @@ __webpack_require__.d(__webpack_exports__, {
31
31
  });
32
32
  const runtime_namespaceObject = require("@modern-js/runtime");
33
33
  const external_react_namespaceObject = require("react");
34
- const index_cjs_namespaceObject = require("./i18n/detection/index.cjs");
35
- const external_utils_cjs_namespaceObject = require("./utils.cjs");
34
+ const index_js_namespaceObject = require("./i18n/detection/index.js");
35
+ const external_utils_js_namespaceObject = require("./utils.js");
36
36
  function createMinimalI18nInstance(language) {
37
37
  const minimalInstance = {
38
38
  language,
@@ -100,7 +100,7 @@ function useSdkResourcesLoader(i18nInstance, setForceUpdate) {
100
100
  }
101
101
  function useClientSideRedirect(i18nInstance, localePathRedirect, languages, fallbackLanguage, ignoreRedirectRoutes) {
102
102
  const hasRedirectedRef = (0, external_react_namespaceObject.useRef)(false);
103
- const { navigate, location, hasRouter } = (0, external_utils_cjs_namespaceObject.useRouterHooks)();
103
+ const { navigate, location, hasRouter } = (0, external_utils_js_namespaceObject.useRouterHooks)();
104
104
  (0, external_react_namespaceObject.useEffect)(()=>{
105
105
  if ('browser' !== process.env.MODERN_TARGET) return;
106
106
  if (!localePathRedirect || !i18nInstance) return;
@@ -113,13 +113,13 @@ function useClientSideRedirect(i18nInstance, localePathRedirect, languages, fall
113
113
  const currentPathname = hasRouter && location ? location.pathname : window.location.pathname;
114
114
  const currentSearch = hasRouter && location ? location.search : window.location.search;
115
115
  const currentHash = hasRouter && location ? location.hash : window.location.hash;
116
- const entryPath = (0, external_utils_cjs_namespaceObject.getEntryPath)();
116
+ const entryPath = (0, external_utils_js_namespaceObject.getEntryPath)();
117
117
  const relativePath = currentPathname.replace(entryPath, '');
118
- if ((0, external_utils_cjs_namespaceObject.shouldIgnoreRedirect)(relativePath, languages, ignoreRedirectRoutes)) return;
119
- const pathDetection = (0, external_utils_cjs_namespaceObject.detectLanguageFromPath)(currentPathname, languages, localePathRedirect);
118
+ if ((0, external_utils_js_namespaceObject.shouldIgnoreRedirect)(relativePath, languages, ignoreRedirectRoutes)) return;
119
+ const pathDetection = (0, external_utils_js_namespaceObject.detectLanguageFromPath)(currentPathname, languages, localePathRedirect);
120
120
  if (pathDetection.detected) return;
121
121
  const targetLanguage = i18nInstance.language || fallbackLanguage || languages[0] || 'en';
122
- const newPath = (0, external_utils_cjs_namespaceObject.buildLocalizedUrl)(relativePath, targetLanguage, languages);
122
+ const newPath = (0, external_utils_js_namespaceObject.buildLocalizedUrl)(relativePath, targetLanguage, languages);
123
123
  const newUrl = entryPath + newPath + currentSearch + currentHash;
124
124
  if (newUrl !== currentPathname + currentSearch + currentHash) {
125
125
  hasRedirectedRef.current = true;
@@ -143,8 +143,8 @@ function useLanguageSync(i18nInstance, localePathRedirect, languages, runtimeCon
143
143
  (0, external_react_namespaceObject.useEffect)(()=>{
144
144
  if (!i18nInstance) return;
145
145
  if (localePathRedirect) {
146
- const currentPathname = (0, external_utils_cjs_namespaceObject.getPathname)(runtimeContextRef.current);
147
- const pathDetection = (0, external_utils_cjs_namespaceObject.detectLanguageFromPath)(currentPathname, languages, localePathRedirect);
146
+ const currentPathname = (0, external_utils_js_namespaceObject.getPathname)(runtimeContextRef.current);
147
+ const pathDetection = (0, external_utils_js_namespaceObject.detectLanguageFromPath)(currentPathname, languages, localePathRedirect);
148
148
  if (pathDetection.detected && pathDetection.language) {
149
149
  const currentLang = pathDetection.language;
150
150
  if (currentLang !== prevLangRef.current) {
@@ -154,7 +154,7 @@ function useLanguageSync(i18nInstance, localePathRedirect, languages, runtimeCon
154
154
  i18nInstance.changeLanguage?.(currentLang);
155
155
  if ((0, runtime_namespaceObject.isBrowser)()) {
156
156
  const detectionOptions = i18nInstance.options?.detection;
157
- (0, index_cjs_namespaceObject.cacheUserLanguage)(i18nInstance, currentLang, detectionOptions);
157
+ (0, index_js_namespaceObject.cacheUserLanguage)(i18nInstance, currentLang, detectionOptions);
158
158
  }
159
159
  }
160
160
  }
@@ -26,9 +26,9 @@ __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
27
  mergeBackendOptions: ()=>mergeBackendOptions
28
28
  });
29
- const deepMerge_cjs_namespaceObject = require("../../../shared/deepMerge.cjs");
29
+ const deepMerge_js_namespaceObject = require("../../../shared/deepMerge.js");
30
30
  function mergeBackendOptions(defaultOptions, cliOptions = {}, userOptions) {
31
- return (0, deepMerge_cjs_namespaceObject.deepMerge)((0, deepMerge_cjs_namespaceObject.deepMerge)(defaultOptions, cliOptions), userOptions ?? {});
31
+ return (0, deepMerge_js_namespaceObject.deepMerge)((0, deepMerge_js_namespaceObject.deepMerge)(defaultOptions, cliOptions), userOptions ?? {});
32
32
  }
33
33
  exports.mergeBackendOptions = __webpack_exports__.mergeBackendOptions;
34
34
  for(var __rspack_i in __webpack_exports__)if (-1 === [
@@ -26,8 +26,8 @@ __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
27
  mergeBackendOptions: ()=>mergeBackendOptions
28
28
  });
29
- const external_config_cjs_namespaceObject = require("./config.cjs");
30
- const external_defaults_cjs_namespaceObject = require("./defaults.cjs");
29
+ const external_config_js_namespaceObject = require("./config.js");
30
+ const external_defaults_js_namespaceObject = require("./defaults.js");
31
31
  function hasSdkFunction(backend, userInitOptions) {
32
32
  return 'function' == typeof userInitOptions?.backend?.sdk || !!backend?.enabled && !!backend?.sdk && 'function' == typeof backend.sdk;
33
33
  }
@@ -42,27 +42,27 @@ function hasLoadPath(backend, userInitOptions) {
42
42
  }
43
43
  function ensureDefaultLoadPath(merged, backend, isExplicitLoadPath = false) {
44
44
  if (backend?.enabled && !isExplicitLoadPath && !merged.loadPath) {
45
- merged.loadPath = external_defaults_cjs_namespaceObject.DEFAULT_I18NEXT_BACKEND_OPTIONS.loadPath;
46
- merged.addPath = external_defaults_cjs_namespaceObject.DEFAULT_I18NEXT_BACKEND_OPTIONS.addPath;
45
+ merged.loadPath = external_defaults_js_namespaceObject.DEFAULT_I18NEXT_BACKEND_OPTIONS.loadPath;
46
+ merged.addPath = external_defaults_js_namespaceObject.DEFAULT_I18NEXT_BACKEND_OPTIONS.addPath;
47
47
  }
48
48
  }
49
49
  function getFinalLoadPath(mergedOptions, backend, userInitOptions) {
50
- return mergedOptions?.loadPath || userInitOptions?.backend?.loadPath || (backend?.enabled ? external_defaults_cjs_namespaceObject.DEFAULT_I18NEXT_BACKEND_OPTIONS.loadPath : void 0);
50
+ return mergedOptions?.loadPath || userInitOptions?.backend?.loadPath || (backend?.enabled ? external_defaults_js_namespaceObject.DEFAULT_I18NEXT_BACKEND_OPTIONS.loadPath : void 0);
51
51
  }
52
52
  function getFinalSdk(mergedOptions, backend, userInitOptions) {
53
53
  return mergedOptions?.sdk || userInitOptions?.backend?.sdk || (backend?.sdk && 'function' == typeof backend.sdk ? backend.sdk : void 0);
54
54
  }
55
55
  function buildChainedBackendConfig(backend, userInitOptions) {
56
- const merged = (0, external_config_cjs_namespaceObject.mergeBackendOptions)(external_defaults_cjs_namespaceObject.DEFAULT_I18NEXT_BACKEND_OPTIONS, backend, userInitOptions?.backend);
56
+ const merged = (0, external_config_js_namespaceObject.mergeBackendOptions)(external_defaults_js_namespaceObject.DEFAULT_I18NEXT_BACKEND_OPTIONS, backend, userInitOptions?.backend);
57
57
  const { isExplicit } = hasLoadPath(backend, userInitOptions);
58
58
  ensureDefaultLoadPath(merged, backend, isExplicit);
59
- const mergedOptions = (0, external_defaults_cjs_namespaceObject.convertBackendOptions)(merged);
59
+ const mergedOptions = (0, external_defaults_js_namespaceObject.convertBackendOptions)(merged);
60
60
  const finalLoadPath = getFinalLoadPath(mergedOptions, backend, userInitOptions);
61
61
  const finalSdk = getFinalSdk(mergedOptions, backend, userInitOptions);
62
62
  const chainedBackendOptions = [
63
63
  {
64
64
  loadPath: finalLoadPath,
65
- addPath: mergedOptions?.addPath || external_defaults_cjs_namespaceObject.DEFAULT_I18NEXT_BACKEND_OPTIONS.addPath
65
+ addPath: mergedOptions?.addPath || external_defaults_js_namespaceObject.DEFAULT_I18NEXT_BACKEND_OPTIONS.addPath
66
66
  },
67
67
  {
68
68
  sdk: finalSdk
@@ -80,17 +80,17 @@ function buildChainedBackendConfig(backend, userInitOptions) {
80
80
  };
81
81
  }
82
82
  function buildSdkOnlyBackendConfig(backend, userInitOptions) {
83
- const merged = (0, external_config_cjs_namespaceObject.mergeBackendOptions)({}, backend, userInitOptions?.backend);
84
- return (0, external_defaults_cjs_namespaceObject.convertBackendOptions)(merged) || {};
83
+ const merged = (0, external_config_js_namespaceObject.mergeBackendOptions)({}, backend, userInitOptions?.backend);
84
+ return (0, external_defaults_js_namespaceObject.convertBackendOptions)(merged) || {};
85
85
  }
86
86
  function buildHttpFsBackendConfig(backend, userInitOptions) {
87
87
  if (!backend?.enabled && !userInitOptions?.backend) return;
88
- const mergedBackend = backend?.enabled ? (0, external_config_cjs_namespaceObject.mergeBackendOptions)(external_defaults_cjs_namespaceObject.DEFAULT_I18NEXT_BACKEND_OPTIONS, backend, userInitOptions?.backend) : userInitOptions?.backend;
88
+ const mergedBackend = backend?.enabled ? (0, external_config_js_namespaceObject.mergeBackendOptions)(external_defaults_js_namespaceObject.DEFAULT_I18NEXT_BACKEND_OPTIONS, backend, userInitOptions?.backend) : userInitOptions?.backend;
89
89
  if (mergedBackend) {
90
90
  const { isExplicit } = hasLoadPath(backend, userInitOptions);
91
91
  ensureDefaultLoadPath(mergedBackend, backend, isExplicit);
92
92
  }
93
- return (0, external_defaults_cjs_namespaceObject.convertBackendOptions)(mergedBackend) || {};
93
+ return (0, external_defaults_js_namespaceObject.convertBackendOptions)(mergedBackend) || {};
94
94
  }
95
95
  const mergeBackendOptions = (backend, userInitOptions)=>{
96
96
  const sdkFunction = hasSdkFunction(backend, userInitOptions);
@@ -37,8 +37,8 @@ __webpack_require__.d(__webpack_exports__, {
37
37
  });
38
38
  const external_i18next_chained_backend_namespaceObject = require("i18next-chained-backend");
39
39
  var external_i18next_chained_backend_default = /*#__PURE__*/ __webpack_require__.n(external_i18next_chained_backend_namespaceObject);
40
- const external_instance_cjs_namespaceObject = require("../instance.cjs");
41
- const external_sdk_backend_cjs_namespaceObject = require("./sdk-backend.cjs");
40
+ const external_instance_js_namespaceObject = require("../instance.js");
41
+ const external_sdk_backend_js_namespaceObject = require("./sdk-backend.js");
42
42
  function checkBackendConfig(backend) {
43
43
  const hasSdk = backend?.sdk && 'function' == typeof backend.sdk;
44
44
  const hasLoadPath = !!backend?.loadPath;
@@ -54,7 +54,7 @@ function buildChainedBackendConfig(backend, BackendWithSave) {
54
54
  if (backend._chainedBackendConfig) return {
55
55
  backends: [
56
56
  BackendWithSave,
57
- external_sdk_backend_cjs_namespaceObject.SdkBackend
57
+ external_sdk_backend_js_namespaceObject.SdkBackend
58
58
  ],
59
59
  backendOptions: backend._chainedBackendConfig.backendOptions,
60
60
  cacheHitMode
@@ -62,7 +62,7 @@ function buildChainedBackendConfig(backend, BackendWithSave) {
62
62
  return {
63
63
  backends: [
64
64
  BackendWithSave,
65
- external_sdk_backend_cjs_namespaceObject.SdkBackend
65
+ external_sdk_backend_js_namespaceObject.SdkBackend
66
66
  ],
67
67
  backendOptions: [
68
68
  {
@@ -78,7 +78,7 @@ function buildChainedBackendConfig(backend, BackendWithSave) {
78
78
  }
79
79
  function setupChainedBackend(i18nInstance, backend, BackendWithSave) {
80
80
  i18nInstance.use(external_i18next_chained_backend_default());
81
- const actualInstance = (0, external_instance_cjs_namespaceObject.getActualI18nextInstance)(i18nInstance);
81
+ const actualInstance = (0, external_instance_js_namespaceObject.getActualI18nextInstance)(i18nInstance);
82
82
  if (actualInstance?.options) actualInstance.options.backend = buildChainedBackendConfig(backend, BackendWithSave);
83
83
  if (i18nInstance.options) i18nInstance.options.backend = buildChainedBackendConfig(backend, BackendWithSave);
84
84
  }
@@ -90,8 +90,8 @@ function useI18nextBackendCommon(i18nInstance, BackendWithSave, BackendBase, bac
90
90
  if (!backend) return i18nInstance.use(BackendBase);
91
91
  const { hasSdk, hasLoadPath, useChained } = checkBackendConfig(backend);
92
92
  if (useChained || hasLoadPath && hasSdk) return void setupChainedBackend(i18nInstance, backend, BackendWithSave);
93
- if (hasSdk) return i18nInstance.use(external_sdk_backend_cjs_namespaceObject.SdkBackend);
94
- const actualInstance = (0, external_instance_cjs_namespaceObject.getActualI18nextInstance)(i18nInstance);
93
+ if (hasSdk) return i18nInstance.use(external_sdk_backend_js_namespaceObject.SdkBackend);
94
+ const actualInstance = (0, external_instance_js_namespaceObject.getActualI18nextInstance)(i18nInstance);
95
95
  if (actualInstance?.options) actualInstance.options.backend = cleanBackendConfig(backend);
96
96
  if (i18nInstance.options) i18nInstance.options.backend = cleanBackendConfig(backend);
97
97
  return i18nInstance.use(BackendBase);
@@ -38,11 +38,11 @@ __webpack_require__.d(__webpack_exports__, {
38
38
  });
39
39
  const external_i18next_http_backend_namespaceObject = require("i18next-http-backend");
40
40
  var external_i18next_http_backend_default = /*#__PURE__*/ __webpack_require__.n(external_i18next_http_backend_namespaceObject);
41
- const external_middleware_common_cjs_namespaceObject = require("./middleware.common.cjs");
41
+ const external_middleware_common_js_namespaceObject = require("./middleware.common.js");
42
42
  class HttpBackendWithSave extends external_i18next_http_backend_default() {
43
43
  save(_language, _namespace, _data) {}
44
44
  }
45
- const useI18nextBackend = (i18nInstance, backend)=>(0, external_middleware_common_cjs_namespaceObject.useI18nextBackendCommon)(i18nInstance, HttpBackendWithSave, external_i18next_http_backend_default(), backend);
45
+ const useI18nextBackend = (i18nInstance, backend)=>(0, external_middleware_common_js_namespaceObject.useI18nextBackendCommon)(i18nInstance, HttpBackendWithSave, external_i18next_http_backend_default(), backend);
46
46
  exports.HttpBackendWithSave = __webpack_exports__.HttpBackendWithSave;
47
47
  exports.useI18nextBackend = __webpack_exports__.useI18nextBackend;
48
48
  for(var __rspack_i in __webpack_exports__)if (-1 === [
@@ -39,12 +39,12 @@ __webpack_require__.d(__webpack_exports__, {
39
39
  });
40
40
  const external_i18next_fs_backend_namespaceObject = require("i18next-fs-backend");
41
41
  var external_i18next_fs_backend_default = /*#__PURE__*/ __webpack_require__.n(external_i18next_fs_backend_namespaceObject);
42
- const external_middleware_common_cjs_namespaceObject = require("./middleware.common.cjs");
42
+ const external_middleware_common_js_namespaceObject = require("./middleware.common.js");
43
43
  class FsBackendWithSave extends external_i18next_fs_backend_default() {
44
44
  save(_language, _namespace, _data) {}
45
45
  }
46
46
  const HttpBackendWithSave = FsBackendWithSave;
47
- const useI18nextBackend = (i18nInstance, backend)=>(0, external_middleware_common_cjs_namespaceObject.useI18nextBackendCommon)(i18nInstance, FsBackendWithSave, external_i18next_fs_backend_default(), backend);
47
+ const useI18nextBackend = (i18nInstance, backend)=>(0, external_middleware_common_js_namespaceObject.useI18nextBackendCommon)(i18nInstance, FsBackendWithSave, external_i18next_fs_backend_default(), backend);
48
48
  exports.FsBackendWithSave = __webpack_exports__.FsBackendWithSave;
49
49
  exports.HttpBackendWithSave = __webpack_exports__.HttpBackendWithSave;
50
50
  exports.useI18nextBackend = __webpack_exports__.useI18nextBackend;
@@ -27,7 +27,7 @@ __webpack_require__.d(__webpack_exports__, {
27
27
  mergeDetectionOptions: ()=>mergeDetectionOptions,
28
28
  DEFAULT_I18NEXT_DETECTION_OPTIONS: ()=>DEFAULT_I18NEXT_DETECTION_OPTIONS
29
29
  });
30
- const deepMerge_cjs_namespaceObject = require("../../../shared/deepMerge.cjs");
30
+ const deepMerge_js_namespaceObject = require("../../../shared/deepMerge.js");
31
31
  const DEFAULT_I18NEXT_DETECTION_OPTIONS = {
32
32
  caches: [
33
33
  'cookie',
@@ -50,7 +50,7 @@ const DEFAULT_I18NEXT_DETECTION_OPTIONS = {
50
50
  lookupHeader: 'accept-language'
51
51
  };
52
52
  function mergeDetectionOptions(cliOptions, userOptions, defaultOptions = DEFAULT_I18NEXT_DETECTION_OPTIONS) {
53
- return (0, deepMerge_cjs_namespaceObject.deepMerge)((0, deepMerge_cjs_namespaceObject.deepMerge)(defaultOptions, cliOptions ?? {}), userOptions ?? {});
53
+ return (0, deepMerge_js_namespaceObject.deepMerge)((0, deepMerge_js_namespaceObject.deepMerge)(defaultOptions, cliOptions ?? {}), userOptions ?? {});
54
54
  }
55
55
  exports.DEFAULT_I18NEXT_DETECTION_OPTIONS = __webpack_exports__.DEFAULT_I18NEXT_DETECTION_OPTIONS;
56
56
  exports.mergeDetectionOptions = __webpack_exports__.mergeDetectionOptions;
@@ -29,13 +29,13 @@ __webpack_require__.d(__webpack_exports__, {
29
29
  mergeDetectionOptions: ()=>mergeDetectionOptions,
30
30
  getLanguageFromSSRData: ()=>getLanguageFromSSRData,
31
31
  detectLanguageWithPriority: ()=>detectLanguageWithPriority,
32
- cacheUserLanguage: ()=>external_middleware_cjs_namespaceObject.cacheUserLanguage
32
+ cacheUserLanguage: ()=>external_middleware_js_namespaceObject.cacheUserLanguage
33
33
  });
34
34
  const runtime_namespaceObject = require("@modern-js/runtime");
35
- const external_utils_cjs_namespaceObject = require("../../utils.cjs");
36
- const external_instance_cjs_namespaceObject = require("../instance.cjs");
37
- const external_config_cjs_namespaceObject = require("./config.cjs");
38
- const external_middleware_cjs_namespaceObject = require("./middleware.cjs");
35
+ const external_utils_js_namespaceObject = require("../../utils.js");
36
+ const external_instance_js_namespaceObject = require("../instance.js");
37
+ const external_config_js_namespaceObject = require("./config.js");
38
+ const external_middleware_js_namespaceObject = require("./middleware.js");
39
39
  const detectorInstanceCache = new WeakMap();
40
40
  const DETECTOR_SAFE_OPTION_KEYS = [
41
41
  'lowerCaseLng',
@@ -146,7 +146,7 @@ const detectLanguageFromPathPriority = (pathname, languages, localePathRedirect)
146
146
  if (!languages || 0 === languages.length) return;
147
147
  if (!pathname || '' === pathname.trim()) return;
148
148
  try {
149
- const pathDetection = (0, external_utils_cjs_namespaceObject.detectLanguageFromPath)(pathname, languages, localePathRedirect);
149
+ const pathDetection = (0, external_utils_js_namespaceObject.detectLanguageFromPath)(pathname, languages, localePathRedirect);
150
150
  if (true === pathDetection.detected && pathDetection.language) return pathDetection.language;
151
151
  } catch (error) {}
152
152
  };
@@ -207,7 +207,7 @@ const initializeI18nForDetector = async (i18nInstance, options)=>{
207
207
  useSuspense: false
208
208
  }
209
209
  };
210
- (0, external_middleware_cjs_namespaceObject.useI18nextLanguageDetector)(instance);
210
+ (0, external_middleware_js_namespaceObject.useI18nextLanguageDetector)(instance);
211
211
  if (instance.isInitialized) {
212
212
  if (isTemporary) await instance.init(initOptions);
213
213
  } else await instance.init(initOptions);
@@ -223,7 +223,7 @@ const detectLanguageFromI18nextDetector = async (i18nInstance, options)=>{
223
223
  try {
224
224
  const request = options.ssrContext?.request;
225
225
  if (!(0, runtime_namespaceObject.isBrowser)() && !request) return;
226
- const detectorLang = (0, external_middleware_cjs_namespaceObject.detectLanguage)(detectorInstance, request, mergedDetection);
226
+ const detectorLang = (0, external_middleware_js_namespaceObject.detectLanguage)(detectorInstance, request, mergedDetection);
227
227
  if (detectorLang) {
228
228
  const supportedLang = getSupportedLanguage(detectorLang, options.languages);
229
229
  if (supportedLang) return supportedLang;
@@ -249,7 +249,7 @@ const detectLanguageWithPriority = async (i18nInstance, options)=>{
249
249
  let detectedLanguage;
250
250
  detectedLanguage = detectLanguageFromSSR(languages);
251
251
  if (!detectedLanguage) detectedLanguage = detectLanguageFromPathPriority(pathname, languages, localePathRedirect);
252
- if (!detectedLanguage && i18nextDetector) detectedLanguage = (0, external_instance_cjs_namespaceObject.isI18nWrapperInstance)(i18nInstance) ? (0, external_middleware_cjs_namespaceObject.readLanguageFromStorage)(mergeDetectionOptions(i18nextDetector, detection, localePathRedirect, userInitOptions)) : await detectLanguageFromI18nextDetector(i18nInstance, {
252
+ if (!detectedLanguage && i18nextDetector) detectedLanguage = (0, external_instance_js_namespaceObject.isI18nWrapperInstance)(i18nInstance) ? (0, external_middleware_js_namespaceObject.readLanguageFromStorage)(mergeDetectionOptions(i18nextDetector, detection, localePathRedirect, userInitOptions)) : await detectLanguageFromI18nextDetector(i18nInstance, {
253
253
  languages,
254
254
  fallbackLanguage,
255
255
  localePathRedirect,
@@ -285,7 +285,7 @@ const buildInitOptions = (params)=>{
285
285
  };
286
286
  const mergeDetectionOptions = (i18nextDetector, detection, localePathRedirect, userInitOptions)=>{
287
287
  let mergedDetection;
288
- mergedDetection = i18nextDetector ? (0, external_config_cjs_namespaceObject.mergeDetectionOptions)(detection, userInitOptions?.detection) : userInitOptions?.detection || {};
288
+ mergedDetection = i18nextDetector ? (0, external_config_js_namespaceObject.mergeDetectionOptions)(detection, userInitOptions?.detection) : userInitOptions?.detection || {};
289
289
  if (!mergedDetection || 'object' != typeof mergedDetection) mergedDetection = {};
290
290
  if (localePathRedirect && mergedDetection.order) mergedDetection.order = mergedDetection.order.filter((item)=>'path' !== item);
291
291
  return mergedDetection;
@@ -41,11 +41,11 @@ __webpack_require__.d(__webpack_exports__, {
41
41
  const runtime_namespaceObject = require("@modern-js/runtime");
42
42
  const external_i18next_browser_languagedetector_namespaceObject = require("i18next-browser-languagedetector");
43
43
  var external_i18next_browser_languagedetector_default = /*#__PURE__*/ __webpack_require__.n(external_i18next_browser_languagedetector_namespaceObject);
44
- const external_instance_cjs_namespaceObject = require("../instance.cjs");
44
+ const external_instance_js_namespaceObject = require("../instance.js");
45
45
  const useI18nextLanguageDetector = (i18nInstance)=>{
46
46
  if (!i18nInstance.isInitialized) {
47
- if ((0, external_instance_cjs_namespaceObject.isI18nWrapperInstance)(i18nInstance)) {
48
- const actualInstance = (0, external_instance_cjs_namespaceObject.getActualI18nextInstance)(i18nInstance);
47
+ if ((0, external_instance_js_namespaceObject.isI18nWrapperInstance)(i18nInstance)) {
48
+ const actualInstance = (0, external_instance_js_namespaceObject.getActualI18nextInstance)(i18nInstance);
49
49
  if (actualInstance && !actualInstance.isInitialized) actualInstance.use(external_i18next_browser_languagedetector_default());
50
50
  }
51
51
  return i18nInstance.use(external_i18next_browser_languagedetector_default());
@@ -111,7 +111,7 @@ const readLanguageFromStorage = (detectionOptions)=>{
111
111
  };
112
112
  const detectLanguage = (i18nInstance, _request, detectionOptions)=>{
113
113
  try {
114
- const actualInstance = (0, external_instance_cjs_namespaceObject.isI18nWrapperInstance)(i18nInstance) ? (0, external_instance_cjs_namespaceObject.getActualI18nextInstance)(i18nInstance) : i18nInstance;
114
+ const actualInstance = (0, external_instance_js_namespaceObject.isI18nWrapperInstance)(i18nInstance) ? (0, external_instance_js_namespaceObject.getActualI18nextInstance)(i18nInstance) : i18nInstance;
115
115
  const isInitialized = i18nInstance.isInitialized || actualInstance?.isInitialized;
116
116
  const detector = actualInstance?.services?.languageDetector || i18nInstance.services?.languageDetector;
117
117
  if (detector && 'function' == typeof detector.detect) {
@@ -143,7 +143,7 @@ const detectLanguage = (i18nInstance, _request, detectionOptions)=>{
143
143
  const cacheUserLanguage = (i18nInstance, language, detectionOptions)=>{
144
144
  if ("u" < typeof window) return;
145
145
  try {
146
- const actualInstance = (0, external_instance_cjs_namespaceObject.isI18nWrapperInstance)(i18nInstance) ? (0, external_instance_cjs_namespaceObject.getActualI18nextInstance)(i18nInstance) : i18nInstance;
146
+ const actualInstance = (0, external_instance_js_namespaceObject.isI18nWrapperInstance)(i18nInstance) ? (0, external_instance_js_namespaceObject.getActualI18nextInstance)(i18nInstance) : i18nInstance;
147
147
  const detector = actualInstance?.services?.languageDetector || i18nInstance.services?.languageDetector;
148
148
  if (detector && 'function' == typeof detector.cacheUserLanguage) try {
149
149
  detector.cacheUserLanguage(language);
@@ -24,12 +24,12 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
- getI18nInstance: ()=>external_instance_cjs_namespaceObject.getI18nInstance,
28
- isI18nInstance: ()=>external_instance_cjs_namespaceObject.isI18nInstance,
29
- assertI18nInstance: ()=>external_utils_cjs_namespaceObject.assertI18nInstance
27
+ getI18nInstance: ()=>external_instance_js_namespaceObject.getI18nInstance,
28
+ isI18nInstance: ()=>external_instance_js_namespaceObject.isI18nInstance,
29
+ assertI18nInstance: ()=>external_utils_js_namespaceObject.assertI18nInstance
30
30
  });
31
- const external_instance_cjs_namespaceObject = require("./instance.cjs");
32
- const external_utils_cjs_namespaceObject = require("./utils.cjs");
31
+ const external_instance_js_namespaceObject = require("./instance.js");
32
+ const external_utils_js_namespaceObject = require("./utils.js");
33
33
  exports.assertI18nInstance = __webpack_exports__.assertI18nInstance;
34
34
  exports.getI18nInstance = __webpack_exports__.getI18nInstance;
35
35
  exports.isI18nInstance = __webpack_exports__.isI18nInstance;
@@ -68,7 +68,7 @@ async function createI18nextInstance() {
68
68
  try {
69
69
  const i18next = await tryImportI18next();
70
70
  if (!i18next) return null;
71
- return i18next.createInstance({
71
+ return i18next.createInstance?.({
72
72
  initImmediate: false
73
73
  });
74
74
  } catch (error) {
@@ -32,13 +32,13 @@ __webpack_require__.d(__webpack_exports__, {
32
32
  ensureLanguageMatch: ()=>ensureLanguageMatch
33
33
  });
34
34
  const runtime_namespaceObject = require("@modern-js/runtime");
35
- const index_cjs_namespaceObject = require("./backend/index.cjs");
36
- const middleware_cjs_namespaceObject = require("./backend/middleware.cjs");
37
- const sdk_backend_cjs_namespaceObject = require("./backend/sdk-backend.cjs");
38
- const external_detection_index_cjs_namespaceObject = require("./detection/index.cjs");
39
- const external_instance_cjs_namespaceObject = require("./instance.cjs");
35
+ const index_js_namespaceObject = require("./backend/index.js");
36
+ const middleware_js_namespaceObject = require("./backend/middleware.js");
37
+ const sdk_backend_js_namespaceObject = require("./backend/sdk-backend.js");
38
+ const external_detection_index_js_namespaceObject = require("./detection/index.js");
39
+ const external_instance_js_namespaceObject = require("./instance.js");
40
40
  function assertI18nInstance(obj) {
41
- if (!(0, external_instance_cjs_namespaceObject.isI18nInstance)(obj)) throw new Error('Object does not implement I18nInstance interface');
41
+ if (!(0, external_instance_js_namespaceObject.isI18nInstance)(obj)) throw new Error('Object does not implement I18nInstance interface');
42
42
  }
43
43
  const buildInitOptions = async (finalLanguage, fallbackLanguage, languages, mergedDetection, mergedBackend, userInitOptions, useSuspense, i18nInstance)=>{
44
44
  const defaultUseSuspense = void 0 !== useSuspense ? useSuspense : (0, runtime_namespaceObject.isBrowser)() ? userInitOptions?.react?.useSuspense ?? true : false;
@@ -71,8 +71,8 @@ const buildInitOptions = async (finalLanguage, fallbackLanguage, languages, merg
71
71
  HttpBackend = i18nInstance.options.backend.backends[0];
72
72
  SdkBackendClass = i18nInstance.options.backend.backends[1];
73
73
  } else {
74
- HttpBackend = middleware_cjs_namespaceObject.HttpBackendWithSave;
75
- SdkBackendClass = sdk_backend_cjs_namespaceObject.SdkBackend;
74
+ HttpBackend = middleware_js_namespaceObject.HttpBackendWithSave;
75
+ SdkBackendClass = sdk_backend_js_namespaceObject.SdkBackend;
76
76
  }
77
77
  initOptions.backend = {
78
78
  backends: [
@@ -101,18 +101,18 @@ const changeI18nLanguage = async (i18nInstance, newLang, options)=>{
101
101
  await i18nInstance.changeLanguage?.(newLang);
102
102
  if ((0, runtime_namespaceObject.isBrowser)()) {
103
103
  const detectionOptions = options?.detectionOptions || i18nInstance.options?.detection;
104
- (0, external_detection_index_cjs_namespaceObject.cacheUserLanguage)(i18nInstance, newLang, detectionOptions);
104
+ (0, external_detection_index_js_namespaceObject.cacheUserLanguage)(i18nInstance, newLang, detectionOptions);
105
105
  }
106
106
  };
107
107
  const initializeI18nInstance = async (i18nInstance, finalLanguage, fallbackLanguage, languages, mergedDetection, mergedBackend, userInitOptions, useSuspense)=>{
108
108
  if (!i18nInstance.isInitialized) {
109
109
  const initOptions = await buildInitOptions(finalLanguage, fallbackLanguage, languages, mergedDetection, mergedBackend, userInitOptions, useSuspense, i18nInstance);
110
- const actualInstance = (0, external_instance_cjs_namespaceObject.getActualI18nextInstance)(i18nInstance);
110
+ const actualInstance = (0, external_instance_js_namespaceObject.getActualI18nextInstance)(i18nInstance);
111
111
  const savedBackendConfig = actualInstance?.options?.backend || i18nInstance.options?.backend;
112
112
  const isChainedBackendFromSaved = savedBackendConfig?.backends && Array.isArray(savedBackendConfig.backends);
113
113
  await i18nInstance.init(initOptions);
114
114
  if (mergedBackend) {
115
- if ((0, external_instance_cjs_namespaceObject.isI18nWrapperInstance)(i18nInstance) && actualInstance?.options) {
115
+ if ((0, external_instance_js_namespaceObject.isI18nWrapperInstance)(i18nInstance) && actualInstance?.options) {
116
116
  if (isChainedBackendFromSaved && initOptions.backend) actualInstance.options.backend = {
117
117
  ...initOptions.backend,
118
118
  backends: savedBackendConfig.backends
@@ -138,7 +138,7 @@ const initializeI18nInstance = async (i18nInstance, finalLanguage, fallbackLangu
138
138
  const ns = Array.isArray(defaultNS) ? defaultNS[0] : defaultNS;
139
139
  let retries = 20;
140
140
  while(retries > 0){
141
- const actualInstance = (0, external_instance_cjs_namespaceObject.getActualI18nextInstance)(i18nInstance);
141
+ const actualInstance = (0, external_instance_js_namespaceObject.getActualI18nextInstance)(i18nInstance);
142
142
  const store = actualInstance.store;
143
143
  if (store?.data?.[finalLanguage]?.[ns]) break;
144
144
  await new Promise((resolve)=>setTimeout(resolve, 100));
@@ -151,17 +151,17 @@ function hasOptions(instance) {
151
151
  return void 0 !== instance.options && null !== instance.options;
152
152
  }
153
153
  const setupClonedInstance = async (i18nInstance, finalLanguage, fallbackLanguage, languages, backendEnabled, backend, i18nextDetector, detection, localePathRedirect, userInitOptions)=>{
154
- const mergedBackend = (0, index_cjs_namespaceObject.mergeBackendOptions)(backend, userInitOptions);
154
+ const mergedBackend = (0, index_js_namespaceObject.mergeBackendOptions)(backend, userInitOptions);
155
155
  const hasSdkConfig = 'function' == typeof userInitOptions?.backend?.sdk || mergedBackend?.sdk && 'function' == typeof mergedBackend.sdk;
156
156
  if (backendEnabled || hasSdkConfig) {
157
- (0, middleware_cjs_namespaceObject.useI18nextBackend)(i18nInstance, mergedBackend);
157
+ (0, middleware_js_namespaceObject.useI18nextBackend)(i18nInstance, mergedBackend);
158
158
  if (mergedBackend && hasOptions(i18nInstance)) i18nInstance.options.backend = {
159
159
  ...i18nInstance.options.backend,
160
160
  ...mergedBackend
161
161
  };
162
162
  if (i18nInstance.isInitialized) await ensureLanguageMatch(i18nInstance, finalLanguage);
163
163
  else {
164
- const mergedDetection = (0, external_detection_index_cjs_namespaceObject.mergeDetectionOptions)(i18nextDetector, detection, localePathRedirect, userInitOptions);
164
+ const mergedDetection = (0, external_detection_index_js_namespaceObject.mergeDetectionOptions)(i18nextDetector, detection, localePathRedirect, userInitOptions);
165
165
  await initializeI18nInstance(i18nInstance, finalLanguage, fallbackLanguage, languages, mergedDetection, mergedBackend, userInitOptions, false);
166
166
  }
167
167
  } else await ensureLanguageMatch(i18nInstance, finalLanguage);