@bleedingdev/modern-js-plugin-i18n 3.2.0-ultramodern.98 → 3.4.0-ultramodern.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 (98) hide show
  1. package/README.md +221 -11
  2. package/dist/cjs/cli/index.js +17 -64
  3. package/dist/cjs/cli/locales.js +132 -0
  4. package/dist/cjs/runtime/I18nLink.js +17 -20
  5. package/dist/cjs/runtime/Link.js +264 -0
  6. package/dist/cjs/runtime/canonicalRoutes.js +18 -0
  7. package/dist/cjs/runtime/context.js +9 -5
  8. package/dist/cjs/runtime/hooks.js +9 -5
  9. package/dist/cjs/runtime/i18n/backend/config.js +9 -5
  10. package/dist/cjs/runtime/i18n/backend/defaults.js +20 -11
  11. package/dist/cjs/runtime/i18n/backend/defaults.node.js +79 -10
  12. package/dist/cjs/runtime/i18n/backend/index.js +9 -5
  13. package/dist/cjs/runtime/i18n/backend/middleware.common.js +9 -5
  14. package/dist/cjs/runtime/i18n/backend/middleware.js +9 -5
  15. package/dist/cjs/runtime/i18n/backend/middleware.node.js +9 -5
  16. package/dist/cjs/runtime/i18n/backend/sdk-backend.js +9 -5
  17. package/dist/cjs/runtime/i18n/backend/sdk-event.js +16 -11
  18. package/dist/cjs/runtime/i18n/detection/config.js +9 -5
  19. package/dist/cjs/runtime/i18n/detection/index.js +9 -5
  20. package/dist/cjs/runtime/i18n/detection/middleware.js +9 -5
  21. package/dist/cjs/runtime/i18n/detection/middleware.node.js +9 -5
  22. package/dist/cjs/runtime/i18n/index.js +9 -5
  23. package/dist/cjs/runtime/i18n/instance.js +17 -13
  24. package/dist/cjs/runtime/i18n/react-i18next.js +12 -8
  25. package/dist/cjs/runtime/i18n/utils.js +9 -5
  26. package/dist/cjs/runtime/index.js +32 -5
  27. package/dist/cjs/runtime/localizedPaths.js +102 -0
  28. package/dist/cjs/runtime/routerAdapter.js +11 -7
  29. package/dist/cjs/runtime/utils.js +31 -17
  30. package/dist/cjs/server/index.js +10 -14
  31. package/dist/cjs/shared/deepMerge.js +12 -8
  32. package/dist/cjs/shared/detection.js +9 -5
  33. package/dist/cjs/shared/localisedUrls.js +148 -34
  34. package/dist/cjs/shared/utils.js +15 -11
  35. package/dist/esm/cli/index.mjs +8 -48
  36. package/dist/esm/cli/locales.mjs +80 -0
  37. package/dist/esm/runtime/I18nLink.mjs +7 -14
  38. package/dist/esm/runtime/Link.mjs +221 -0
  39. package/dist/esm/runtime/canonicalRoutes.mjs +0 -0
  40. package/dist/esm/runtime/i18n/backend/defaults.mjs +6 -2
  41. package/dist/esm/runtime/i18n/backend/defaults.node.mjs +56 -5
  42. package/dist/esm/runtime/index.mjs +4 -2
  43. package/dist/esm/runtime/localizedPaths.mjs +55 -0
  44. package/dist/esm/runtime/routerAdapter.mjs +3 -3
  45. package/dist/esm/runtime/utils.mjs +19 -12
  46. package/dist/esm/server/index.mjs +2 -10
  47. package/dist/esm/shared/localisedUrls.mjs +115 -23
  48. package/dist/esm-node/cli/index.mjs +8 -48
  49. package/dist/esm-node/cli/locales.mjs +81 -0
  50. package/dist/esm-node/runtime/I18nLink.mjs +7 -14
  51. package/dist/esm-node/runtime/Link.mjs +222 -0
  52. package/dist/esm-node/runtime/canonicalRoutes.mjs +1 -0
  53. package/dist/esm-node/runtime/i18n/backend/defaults.mjs +6 -2
  54. package/dist/esm-node/runtime/i18n/backend/defaults.node.mjs +56 -5
  55. package/dist/esm-node/runtime/index.mjs +4 -2
  56. package/dist/esm-node/runtime/localizedPaths.mjs +56 -0
  57. package/dist/esm-node/runtime/routerAdapter.mjs +3 -3
  58. package/dist/esm-node/runtime/utils.mjs +19 -12
  59. package/dist/esm-node/server/index.mjs +2 -10
  60. package/dist/esm-node/shared/localisedUrls.mjs +115 -23
  61. package/dist/types/cli/index.d.ts +1 -0
  62. package/dist/types/cli/locales.d.ts +17 -0
  63. package/dist/types/runtime/I18nLink.d.ts +4 -13
  64. package/dist/types/runtime/Link.d.ts +66 -0
  65. package/dist/types/runtime/canonicalRoutes.d.ts +60 -0
  66. package/dist/types/runtime/i18n/backend/defaults.d.ts +10 -7
  67. package/dist/types/runtime/i18n/backend/defaults.node.d.ts +13 -4
  68. package/dist/types/runtime/index.d.ts +5 -1
  69. package/dist/types/runtime/localizedPaths.d.ts +39 -0
  70. package/dist/types/runtime/types.d.ts +1 -1
  71. package/dist/types/runtime/utils.d.ts +13 -4
  72. package/dist/types/shared/localisedUrls.d.ts +23 -0
  73. package/dist/types/shared/type.d.ts +27 -5
  74. package/package.json +28 -25
  75. package/rstest.config.mts +7 -2
  76. package/src/cli/index.ts +25 -98
  77. package/src/cli/locales.ts +186 -0
  78. package/src/runtime/I18nLink.tsx +13 -44
  79. package/src/runtime/Link.tsx +430 -0
  80. package/src/runtime/canonicalRoutes.ts +93 -0
  81. package/src/runtime/i18n/backend/defaults.node.ts +112 -7
  82. package/src/runtime/i18n/backend/defaults.ts +20 -18
  83. package/src/runtime/index.tsx +24 -2
  84. package/src/runtime/localizedPaths.ts +107 -0
  85. package/src/runtime/routerAdapter.tsx +4 -5
  86. package/src/runtime/types.ts +1 -1
  87. package/src/runtime/utils.ts +33 -26
  88. package/src/server/index.ts +7 -17
  89. package/src/shared/localisedUrls.ts +256 -26
  90. package/src/shared/type.ts +27 -5
  91. package/tests/backendDefaults.test.ts +51 -0
  92. package/tests/i18nUtils.test.ts +10 -3
  93. package/tests/link.test.tsx +525 -0
  94. package/tests/linkTypes.test.ts +28 -0
  95. package/tests/localisedUrls.test.ts +224 -0
  96. package/tests/routerAdapter.test.tsx +86 -12
  97. package/tests/type-fixture/linkTypes.fixture.tsx +51 -0
  98. package/tests/type-fixture/tsconfig.json +15 -0
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -23,12 +27,6 @@ var __webpack_require__ = {};
23
27
  })();
24
28
  var __webpack_exports__ = {};
25
29
  __webpack_require__.r(__webpack_exports__);
26
- __webpack_require__.d(__webpack_exports__, {
27
- I18N_SDK_RESOURCES_LOADED_EVENT: ()=>I18N_SDK_RESOURCES_LOADED_EVENT,
28
- createI18nSdkBackendId: ()=>createI18nSdkBackendId,
29
- getI18nSdkBackendId: ()=>getI18nSdkBackendId,
30
- setI18nSdkBackendId: ()=>setI18nSdkBackendId
31
- });
32
30
  const I18N_SDK_RESOURCES_LOADED_EVENT = 'i18n-sdk-resources-loaded';
33
31
  const I18N_SDK_BACKEND_ID_KEY = '__modern_i18n_sdk_backend_id__';
34
32
  let sdkBackendInstanceCount = 0;
@@ -49,6 +47,13 @@ function getI18nSdkBackendId(target) {
49
47
  if (!target || 'object' != typeof target) return;
50
48
  return target[I18N_SDK_BACKEND_ID_KEY];
51
49
  }
50
+ __webpack_require__.d(__webpack_exports__, {
51
+ createI18nSdkBackendId: ()=>createI18nSdkBackendId,
52
+ getI18nSdkBackendId: ()=>getI18nSdkBackendId,
53
+ setI18nSdkBackendId: ()=>setI18nSdkBackendId
54
+ }, {
55
+ I18N_SDK_RESOURCES_LOADED_EVENT: I18N_SDK_RESOURCES_LOADED_EVENT
56
+ });
52
57
  exports.I18N_SDK_RESOURCES_LOADED_EVENT = __webpack_exports__.I18N_SDK_RESOURCES_LOADED_EVENT;
53
58
  exports.createI18nSdkBackendId = __webpack_exports__.createI18nSdkBackendId;
54
59
  exports.getI18nSdkBackendId = __webpack_exports__.getI18nSdkBackendId;
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
10
10
  };
11
11
  })();
12
12
  (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
17
- });
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
18
22
  };
19
23
  })();
20
24
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -23,14 +27,6 @@ var __webpack_require__ = {};
23
27
  })();
24
28
  var __webpack_exports__ = {};
25
29
  __webpack_require__.r(__webpack_exports__);
26
- __webpack_require__.d(__webpack_exports__, {
27
- getActualI18nextInstance: ()=>getActualI18nextInstance,
28
- getI18nInstance: ()=>getI18nInstance,
29
- getI18nWrapperI18nextInstance: ()=>getI18nWrapperI18nextInstance,
30
- getI18nextInstanceForProvider: ()=>getI18nextInstanceForProvider,
31
- isI18nInstance: ()=>isI18nInstance,
32
- isI18nWrapperInstance: ()=>isI18nWrapperInstance
33
- });
34
30
  function isI18nWrapperInstance(obj) {
35
31
  if (!obj || 'object' != typeof obj) return false;
36
32
  if (!obj.i18nInstance || 'object' != typeof obj.i18nInstance) return false;
@@ -89,6 +85,14 @@ async function getI18nInstance(userInstance) {
89
85
  if (i18nextInstance) return i18nextInstance;
90
86
  throw new Error('No i18n instance found');
91
87
  }
88
+ __webpack_require__.d(__webpack_exports__, {
89
+ getActualI18nextInstance: ()=>getActualI18nextInstance,
90
+ getI18nInstance: ()=>getI18nInstance,
91
+ getI18nWrapperI18nextInstance: ()=>getI18nWrapperI18nextInstance,
92
+ getI18nextInstanceForProvider: ()=>getI18nextInstanceForProvider,
93
+ isI18nInstance: ()=>isI18nInstance,
94
+ isI18nWrapperInstance: ()=>isI18nWrapperInstance
95
+ });
92
96
  exports.getActualI18nextInstance = __webpack_exports__.getActualI18nextInstance;
93
97
  exports.getI18nInstance = __webpack_exports__.getI18nInstance;
94
98
  exports.getI18nWrapperI18nextInstance = __webpack_exports__.getI18nWrapperI18nextInstance;
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -23,9 +27,6 @@ var __webpack_require__ = {};
23
27
  })();
24
28
  var __webpack_exports__ = {};
25
29
  __webpack_require__.r(__webpack_exports__);
26
- __webpack_require__.d(__webpack_exports__, {
27
- getReactI18nextIntegration: ()=>getReactI18nextIntegration
28
- });
29
30
  async function tryImportReactI18next() {
30
31
  try {
31
32
  return await import("react-i18next");
@@ -40,6 +41,9 @@ async function getReactI18nextIntegration() {
40
41
  initReactI18next: reactI18nextModule?.initReactI18next ?? null
41
42
  };
42
43
  }
44
+ __webpack_require__.d(__webpack_exports__, {
45
+ getReactI18nextIntegration: ()=>getReactI18nextIntegration
46
+ });
43
47
  exports.getReactI18nextIntegration = __webpack_exports__.getReactI18nextIntegration;
44
48
  for(var __rspack_i in __webpack_exports__)if (-1 === [
45
49
  "getReactI18nextIntegration"
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -25,8 +29,15 @@ var __webpack_exports__ = {};
25
29
  __webpack_require__.r(__webpack_exports__);
26
30
  __webpack_require__.d(__webpack_exports__, {
27
31
  I18nLink: ()=>external_I18nLink_js_namespaceObject.I18nLink,
32
+ Link: ()=>external_Link_js_namespaceObject.Link,
33
+ buildLocalizedUrl: ()=>external_utils_js_namespaceObject.buildLocalizedUrl,
34
+ canonicalPath: ()=>external_localizedPaths_js_namespaceObject.canonicalPath,
28
35
  default: ()=>runtime,
29
36
  i18nPlugin: ()=>i18nPlugin,
37
+ localizePath: ()=>external_localizedPaths_js_namespaceObject.localizePath,
38
+ splitUrlTarget: ()=>external_utils_js_namespaceObject.splitUrlTarget,
39
+ useLocalizedLocation: ()=>external_localizedPaths_js_namespaceObject.useLocalizedLocation,
40
+ useLocalizedPaths: ()=>external_localizedPaths_js_namespaceObject.useLocalizedPaths,
30
41
  useModernI18n: ()=>external_context_js_namespaceObject.useModernI18n
31
42
  });
32
43
  const jsx_runtime_namespaceObject = require("react/jsx-runtime");
@@ -46,6 +57,8 @@ const utils_js_namespaceObject = require("./i18n/utils.js");
46
57
  const external_utils_js_namespaceObject = require("./utils.js");
47
58
  require("./types.js");
48
59
  const external_I18nLink_js_namespaceObject = require("./I18nLink.js");
60
+ const external_Link_js_namespaceObject = require("./Link.js");
61
+ const external_localizedPaths_js_namespaceObject = require("./localizedPaths.js");
49
62
  const i18nPlugin = (options)=>({
50
63
  name: '@modern-js/plugin-i18n',
51
64
  setup: (api)=>{
@@ -168,13 +181,27 @@ const i18nPlugin = (options)=>({
168
181
  });
169
182
  const runtime = i18nPlugin;
170
183
  exports.I18nLink = __webpack_exports__.I18nLink;
184
+ exports.Link = __webpack_exports__.Link;
185
+ exports.buildLocalizedUrl = __webpack_exports__.buildLocalizedUrl;
186
+ exports.canonicalPath = __webpack_exports__.canonicalPath;
171
187
  exports["default"] = __webpack_exports__["default"];
172
188
  exports.i18nPlugin = __webpack_exports__.i18nPlugin;
189
+ exports.localizePath = __webpack_exports__.localizePath;
190
+ exports.splitUrlTarget = __webpack_exports__.splitUrlTarget;
191
+ exports.useLocalizedLocation = __webpack_exports__.useLocalizedLocation;
192
+ exports.useLocalizedPaths = __webpack_exports__.useLocalizedPaths;
173
193
  exports.useModernI18n = __webpack_exports__.useModernI18n;
174
194
  for(var __rspack_i in __webpack_exports__)if (-1 === [
175
195
  "I18nLink",
196
+ "Link",
197
+ "buildLocalizedUrl",
198
+ "canonicalPath",
176
199
  "default",
177
200
  "i18nPlugin",
201
+ "localizePath",
202
+ "splitUrlTarget",
203
+ "useLocalizedLocation",
204
+ "useLocalizedPaths",
178
205
  "useModernI18n"
179
206
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
180
207
  Object.defineProperty(exports, '__esModule', {
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ canonicalPath: ()=>canonicalPath,
32
+ localizePath: ()=>localizePath,
33
+ useLocalizedLocation: ()=>useLocalizedLocation,
34
+ useLocalizedPaths: ()=>useLocalizedPaths
35
+ });
36
+ const external_react_namespaceObject = require("react");
37
+ const localisedUrls_js_namespaceObject = require("../shared/localisedUrls.js");
38
+ const external_context_js_namespaceObject = require("./context.js");
39
+ const external_routerAdapter_js_namespaceObject = require("./routerAdapter.js");
40
+ const external_utils_js_namespaceObject = require("./utils.js");
41
+ const localizePath = (pathname, language, config)=>(0, external_utils_js_namespaceObject.buildLocalizedUrl)(pathname, language, config.languages, config.localisedUrls);
42
+ const canonicalPath = (target, config)=>{
43
+ const { pathname, search, hash } = (0, external_utils_js_namespaceObject.splitUrlTarget)(target);
44
+ const resolvedPath = (0, localisedUrls_js_namespaceObject.canonicalTargetPathname)(pathname, config.languages, config.localisedUrls);
45
+ return `${resolvedPath}${search}${hash}`;
46
+ };
47
+ const useLocalizedPaths = ()=>{
48
+ const { supportedLanguages, localisedUrls } = (0, external_context_js_namespaceObject.useModernI18n)();
49
+ return (0, external_react_namespaceObject.useMemo)(()=>{
50
+ const config = {
51
+ languages: supportedLanguages,
52
+ localisedUrls
53
+ };
54
+ return {
55
+ localizePath: (pathname, language)=>localizePath(pathname, language, config),
56
+ canonicalPath: (pathname)=>canonicalPath(pathname, config)
57
+ };
58
+ }, [
59
+ supportedLanguages,
60
+ localisedUrls
61
+ ]);
62
+ };
63
+ const useLocalizedLocation = ()=>{
64
+ const { language, supportedLanguages, localisedUrls } = (0, external_context_js_namespaceObject.useModernI18n)();
65
+ const { location } = (0, external_routerAdapter_js_namespaceObject.useI18nRouterAdapter)();
66
+ const pathname = location?.pathname ?? '/';
67
+ const search = location?.search ?? '';
68
+ const hash = location?.hash ?? '';
69
+ return (0, external_react_namespaceObject.useMemo)(()=>{
70
+ const config = {
71
+ languages: supportedLanguages,
72
+ localisedUrls
73
+ };
74
+ const alternates = {};
75
+ for (const supportedLanguage of supportedLanguages)alternates[supportedLanguage] = `${localizePath(pathname, supportedLanguage, config)}${search}${hash}`;
76
+ return {
77
+ language,
78
+ canonical: canonicalPath(pathname, config),
79
+ alternates
80
+ };
81
+ }, [
82
+ language,
83
+ supportedLanguages,
84
+ localisedUrls,
85
+ pathname,
86
+ search,
87
+ hash
88
+ ]);
89
+ };
90
+ exports.canonicalPath = __webpack_exports__.canonicalPath;
91
+ exports.localizePath = __webpack_exports__.localizePath;
92
+ exports.useLocalizedLocation = __webpack_exports__.useLocalizedLocation;
93
+ exports.useLocalizedPaths = __webpack_exports__.useLocalizedPaths;
94
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
95
+ "canonicalPath",
96
+ "localizePath",
97
+ "useLocalizedLocation",
98
+ "useLocalizedPaths"
99
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
100
+ Object.defineProperty(exports, '__esModule', {
101
+ value: true
102
+ });
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -53,7 +57,7 @@ const getWindowLocation = ()=>{
53
57
  };
54
58
  };
55
59
  const getRouterFramework = (runtimeContext, internalContext, inReactRouter)=>{
56
- const framework = internalContext.routerFramework || internalContext.routerRuntime?.framework || runtimeContext.routerFramework;
60
+ const framework = (0, context_namespaceObject.getRouterRuntimeState)(internalContext)?.framework || (0, context_namespaceObject.getRouterRuntimeState)(runtimeContext)?.framework;
57
61
  if (framework) return framework;
58
62
  if (internalContext.router?.useRouter || runtimeContext.router?.useRouter) return 'tanstack';
59
63
  if (internalContext.router?.useLocation || internalContext.router?.useHref || runtimeContext.router?.useLocation || runtimeContext.router?.useHref) return 'react-router';
@@ -61,7 +65,7 @@ const getRouterFramework = (runtimeContext, internalContext, inReactRouter)=>{
61
65
  };
62
66
  const getRouterInstance = (internalContext, contextRouter)=>{
63
67
  if (contextRouter) return contextRouter;
64
- const router = internalContext.routerInstance || internalContext.routerRuntime?.instance;
68
+ const router = (0, context_namespaceObject.getRouterRuntimeState)(internalContext)?.instance;
65
69
  if (!router || 'object' != typeof router) return null;
66
70
  return router;
67
71
  };
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -29,7 +33,8 @@ __webpack_require__.d(__webpack_exports__, {
29
33
  getEntryPath: ()=>getEntryPath,
30
34
  getLanguageFromPath: ()=>getLanguageFromPath,
31
35
  getPathname: ()=>getPathname,
32
- shouldIgnoreRedirect: ()=>shouldIgnoreRedirect
36
+ shouldIgnoreRedirect: ()=>shouldIgnoreRedirect,
37
+ splitUrlTarget: ()=>splitUrlTarget
33
38
  });
34
39
  const runtime_namespaceObject = require("@modern-js/runtime");
35
40
  const context_namespaceObject = require("@modern-js/runtime/context");
@@ -49,16 +54,23 @@ const getLanguageFromPath = (pathname, languages, fallbackLanguage)=>{
49
54
  if (languages.includes(firstSegment)) return firstSegment;
50
55
  return fallbackLanguage;
51
56
  };
52
- const buildLocalizedUrl = (pathname, language, languages, localisedUrls)=>{
53
- const segments = pathname.split('/').filter(Boolean);
54
- const localisedUrlsConfig = (0, localisedUrls_js_namespaceObject.resolveLocalisedUrlsConfig)(localisedUrls);
55
- const pathWithoutLanguage = segments.length > 0 && languages.includes(segments[0]) ? `/${segments.slice(1).join('/')}` : pathname;
56
- const resolvedPath = localisedUrlsConfig.enabled ? (0, localisedUrls_js_namespaceObject.resolveLocalisedPath)(pathWithoutLanguage, language, languages, localisedUrlsConfig.map) : pathWithoutLanguage;
57
- const resolvedSegments = resolvedPath.split('/').filter(Boolean);
58
- return `/${[
59
- language,
60
- ...resolvedSegments
61
- ].join('/')}`;
57
+ const splitUrlTarget = (target)=>{
58
+ const hashIndex = target.indexOf('#');
59
+ const hash = hashIndex >= 0 ? target.slice(hashIndex) : '';
60
+ const beforeHash = hashIndex >= 0 ? target.slice(0, hashIndex) : target;
61
+ const searchIndex = beforeHash.indexOf('?');
62
+ const search = searchIndex >= 0 ? beforeHash.slice(searchIndex) : '';
63
+ const pathname = searchIndex >= 0 ? beforeHash.slice(0, searchIndex) : beforeHash;
64
+ return {
65
+ pathname,
66
+ search,
67
+ hash
68
+ };
69
+ };
70
+ const buildLocalizedUrl = (target, language, languages, localisedUrls)=>{
71
+ const { pathname, search, hash } = splitUrlTarget(target);
72
+ const localizedPathname = (0, localisedUrls_js_namespaceObject.localiseTargetPathname)(pathname, language, languages, localisedUrls);
73
+ return `${localizedPathname}${search}${hash}`;
62
74
  };
63
75
  const detectLanguageFromPath = (pathname, languages, localePathRedirect)=>{
64
76
  if (!localePathRedirect) return {
@@ -92,13 +104,15 @@ exports.getEntryPath = __webpack_exports__.getEntryPath;
92
104
  exports.getLanguageFromPath = __webpack_exports__.getLanguageFromPath;
93
105
  exports.getPathname = __webpack_exports__.getPathname;
94
106
  exports.shouldIgnoreRedirect = __webpack_exports__.shouldIgnoreRedirect;
107
+ exports.splitUrlTarget = __webpack_exports__.splitUrlTarget;
95
108
  for(var __rspack_i in __webpack_exports__)if (-1 === [
96
109
  "buildLocalizedUrl",
97
110
  "detectLanguageFromPath",
98
111
  "getEntryPath",
99
112
  "getLanguageFromPath",
100
113
  "getPathname",
101
- "shouldIgnoreRedirect"
114
+ "shouldIgnoreRedirect",
115
+ "splitUrlTarget"
102
116
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
103
117
  Object.defineProperty(exports, '__esModule', {
104
118
  value: true
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -158,15 +162,7 @@ const buildLocalizedUrl = (req, urlPath, language, languages, localisedUrls)=>{
158
162
  const pathname = url.pathname;
159
163
  const basePath = urlPath.replace('/*', '');
160
164
  const remainingPath = pathname.startsWith(basePath) ? pathname.slice(basePath.length) : pathname;
161
- const segments = remainingPath.split('/').filter(Boolean);
162
- const localisedUrlsConfig = (0, localisedUrls_js_namespaceObject.resolveLocalisedUrlsConfig)(localisedUrls);
163
- const pathWithoutLanguage = segments.length > 0 && languages.includes(segments[0]) ? `/${segments.slice(1).join('/')}` : remainingPath;
164
- const resolvedPath = localisedUrlsConfig.enabled ? (0, localisedUrls_js_namespaceObject.resolveLocalisedPath)(pathWithoutLanguage, language, languages, localisedUrlsConfig.map) : pathWithoutLanguage;
165
- const resolvedSegments = resolvedPath.split('/').filter(Boolean);
166
- const newPathname = `/${[
167
- language,
168
- ...resolvedSegments
169
- ].join('/')}`;
165
+ const newPathname = (0, localisedUrls_js_namespaceObject.localiseTargetPathname)(remainingPath, language, languages, localisedUrls);
170
166
  const suffix = `${url.search}${url.hash}`;
171
167
  const localizedUrl = '/' === basePath ? newPathname + suffix : basePath + newPathname + suffix;
172
168
  return localizedUrl;
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -23,9 +27,6 @@ var __webpack_require__ = {};
23
27
  })();
24
28
  var __webpack_exports__ = {};
25
29
  __webpack_require__.r(__webpack_exports__);
26
- __webpack_require__.d(__webpack_exports__, {
27
- deepMerge: ()=>deepMerge
28
- });
29
30
  function isPlainObject(value) {
30
31
  return null !== value && 'object' == typeof value && !Array.isArray(value) && !(value instanceof Date);
31
32
  }
@@ -45,6 +46,9 @@ function deepMerge(defaultOptions, userOptions) {
45
46
  }
46
47
  return merged;
47
48
  }
49
+ __webpack_require__.d(__webpack_exports__, {
50
+ deepMerge: ()=>deepMerge
51
+ });
48
52
  exports.deepMerge = __webpack_exports__.deepMerge;
49
53
  for(var __rspack_i in __webpack_exports__)if (-1 === [
50
54
  "deepMerge"