@bleedingdev/modern-js-plugin-i18n 3.2.0-ultramodern.102 → 3.2.0-ultramodern.103

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 (40) hide show
  1. package/dist/cjs/cli/index.js +10 -5
  2. package/dist/cjs/runtime/I18nLink.js +17 -10
  3. package/dist/cjs/runtime/context.js +9 -5
  4. package/dist/cjs/runtime/hooks.js +9 -5
  5. package/dist/cjs/runtime/i18n/backend/config.js +9 -5
  6. package/dist/cjs/runtime/i18n/backend/defaults.js +14 -9
  7. package/dist/cjs/runtime/i18n/backend/defaults.node.js +14 -9
  8. package/dist/cjs/runtime/i18n/backend/index.js +9 -5
  9. package/dist/cjs/runtime/i18n/backend/middleware.common.js +9 -5
  10. package/dist/cjs/runtime/i18n/backend/middleware.js +9 -5
  11. package/dist/cjs/runtime/i18n/backend/middleware.node.js +9 -5
  12. package/dist/cjs/runtime/i18n/backend/sdk-backend.js +9 -5
  13. package/dist/cjs/runtime/i18n/backend/sdk-event.js +16 -11
  14. package/dist/cjs/runtime/i18n/detection/config.js +9 -5
  15. package/dist/cjs/runtime/i18n/detection/index.js +9 -5
  16. package/dist/cjs/runtime/i18n/detection/middleware.js +9 -5
  17. package/dist/cjs/runtime/i18n/detection/middleware.node.js +9 -5
  18. package/dist/cjs/runtime/i18n/index.js +9 -5
  19. package/dist/cjs/runtime/i18n/instance.js +17 -13
  20. package/dist/cjs/runtime/i18n/react-i18next.js +12 -8
  21. package/dist/cjs/runtime/i18n/utils.js +9 -5
  22. package/dist/cjs/runtime/index.js +9 -5
  23. package/dist/cjs/runtime/routerAdapter.js +9 -5
  24. package/dist/cjs/runtime/utils.js +9 -5
  25. package/dist/cjs/server/index.js +9 -5
  26. package/dist/cjs/shared/deepMerge.js +12 -8
  27. package/dist/cjs/shared/detection.js +9 -5
  28. package/dist/cjs/shared/localisedUrls.js +16 -12
  29. package/dist/cjs/shared/utils.js +15 -11
  30. package/dist/esm/cli/index.mjs +1 -0
  31. package/dist/esm/runtime/I18nLink.mjs +8 -5
  32. package/dist/esm-node/cli/index.mjs +1 -0
  33. package/dist/esm-node/runtime/I18nLink.mjs +8 -5
  34. package/dist/types/cli/index.d.ts +1 -0
  35. package/dist/types/runtime/types.d.ts +1 -1
  36. package/package.json +11 -11
  37. package/src/cli/index.ts +1 -0
  38. package/src/runtime/I18nLink.tsx +3 -1
  39. package/src/runtime/types.ts +1 -1
  40. package/tests/routerAdapter.test.tsx +75 -5
@@ -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
  (()=>{
@@ -43,6 +47,7 @@ const external_path_namespaceObject = require("path");
43
47
  var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
44
48
  const localisedUrls_js_namespaceObject = require("../shared/localisedUrls.js");
45
49
  const utils_js_namespaceObject = require("../shared/utils.js");
50
+ require("../runtime/types.js");
46
51
  function hasJsonFiles(dirPath) {
47
52
  try {
48
53
  if (!external_fs_default().existsSync(dirPath) || !external_fs_default().statSync(dirPath).isDirectory()) return false;
@@ -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
  (()=>{
@@ -37,11 +41,14 @@ const I18nLink = ({ to, children, ...props })=>{
37
41
  const currentLang = language;
38
42
  const localizedTo = (0, external_utils_js_namespaceObject.buildLocalizedUrl)(to, currentLang, supportedLanguages, localisedUrls);
39
43
  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.");
40
- if (!hasRouter || !Link) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("a", {
41
- href: localizedTo,
42
- ...props,
43
- children: children
44
- });
44
+ if (!hasRouter || !Link) {
45
+ const { prefetch: _prefetch, preload: _preload, ...anchorProps } = props;
46
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("a", {
47
+ href: localizedTo,
48
+ ...anchorProps,
49
+ children: children
50
+ });
51
+ }
45
52
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Link, {
46
53
  to: localizedTo,
47
54
  ...props,
@@ -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
  (()=>{
@@ -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,10 +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
- DEFAULT_I18NEXT_BACKEND_OPTIONS: ()=>DEFAULT_I18NEXT_BACKEND_OPTIONS,
28
- convertBackendOptions: ()=>convertBackendOptions
29
- });
30
30
  const DEFAULT_I18NEXT_BACKEND_OPTIONS = {
31
31
  loadPath: '/locales/{{lng}}/{{ns}}.json',
32
32
  addPath: '/locales/{{lng}}/{{ns}}.json'
@@ -45,6 +45,11 @@ function convertBackendOptions(options) {
45
45
  if (converted.addPath) converted.addPath = convertPath(converted.addPath);
46
46
  return converted;
47
47
  }
48
+ __webpack_require__.d(__webpack_exports__, {
49
+ convertBackendOptions: ()=>convertBackendOptions
50
+ }, {
51
+ DEFAULT_I18NEXT_BACKEND_OPTIONS: DEFAULT_I18NEXT_BACKEND_OPTIONS
52
+ });
48
53
  exports.DEFAULT_I18NEXT_BACKEND_OPTIONS = __webpack_exports__.DEFAULT_I18NEXT_BACKEND_OPTIONS;
49
54
  exports.convertBackendOptions = __webpack_exports__.convertBackendOptions;
50
55
  for(var __rspack_i in __webpack_exports__)if (-1 === [
@@ -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,10 +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
- DEFAULT_I18NEXT_BACKEND_OPTIONS: ()=>DEFAULT_I18NEXT_BACKEND_OPTIONS,
28
- convertBackendOptions: ()=>convertBackendOptions
29
- });
30
30
  const DEFAULT_I18NEXT_BACKEND_OPTIONS = {
31
31
  loadPath: './config/public/locales/{{lng}}/{{ns}}.json',
32
32
  addPath: './config/public/locales/{{lng}}/{{ns}}.json'
@@ -45,6 +45,11 @@ function convertBackendOptions(options) {
45
45
  if (converted.addPath) converted.addPath = convertPath(converted.addPath);
46
46
  return converted;
47
47
  }
48
+ __webpack_require__.d(__webpack_exports__, {
49
+ convertBackendOptions: ()=>convertBackendOptions
50
+ }, {
51
+ DEFAULT_I18NEXT_BACKEND_OPTIONS: DEFAULT_I18NEXT_BACKEND_OPTIONS
52
+ });
48
53
  exports.DEFAULT_I18NEXT_BACKEND_OPTIONS = __webpack_exports__.DEFAULT_I18NEXT_BACKEND_OPTIONS;
49
54
  exports.convertBackendOptions = __webpack_exports__.convertBackendOptions;
50
55
  for(var __rspack_i in __webpack_exports__)if (-1 === [
@@ -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
  (()=>{
@@ -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
  (()=>{
@@ -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
  (()=>{
@@ -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
  (()=>{
@@ -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
  (()=>{
@@ -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"
@@ -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,13 +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
- applyLocalisedUrlsToRoutes: ()=>applyLocalisedUrlsToRoutes,
28
- normalisePathPattern: ()=>normalisePathPattern,
29
- resolveLocalisedPath: ()=>resolveLocalisedPath,
30
- resolveLocalisedUrlsConfig: ()=>resolveLocalisedUrlsConfig,
31
- validateLocalisedUrls: ()=>validateLocalisedUrls
32
- });
33
30
  const LOCALE_PARAM_NAMES = new Set([
34
31
  'lang',
35
32
  'locale',
@@ -220,6 +217,13 @@ const resolveLocalisedPath = (pathname, targetLanguage, languages, localisedUrls
220
217
  }
221
218
  return normalizedPathname;
222
219
  };
220
+ __webpack_require__.d(__webpack_exports__, {}, {
221
+ applyLocalisedUrlsToRoutes: applyLocalisedUrlsToRoutes,
222
+ normalisePathPattern: normalisePathPattern,
223
+ resolveLocalisedPath: resolveLocalisedPath,
224
+ resolveLocalisedUrlsConfig: resolveLocalisedUrlsConfig,
225
+ validateLocalisedUrls: validateLocalisedUrls
226
+ });
223
227
  exports.applyLocalisedUrlsToRoutes = __webpack_exports__.applyLocalisedUrlsToRoutes;
224
228
  exports.normalisePathPattern = __webpack_exports__.normalisePathPattern;
225
229
  exports.resolveLocalisedPath = __webpack_exports__.resolveLocalisedPath;
@@ -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
- getBackendOptions: ()=>getBackendOptions,
28
- getEntryConfig: ()=>getEntryConfig,
29
- getLocaleDetectionOptions: ()=>getLocaleDetectionOptions,
30
- removeEntryConfigKey: ()=>removeEntryConfigKey
31
- });
32
30
  function getEntryConfig(entryName, config, entryKey) {
33
31
  const entryConfigMap = config[entryKey];
34
32
  return entryConfigMap?.[entryName];
@@ -63,6 +61,12 @@ function getBackendOptions(entryName, backend) {
63
61
  if ('backendOptionsByEntry' in fullConfig) return removeEntryConfigKey(fullConfig, 'backendOptionsByEntry');
64
62
  return backend;
65
63
  }
64
+ __webpack_require__.d(__webpack_exports__, {
65
+ getBackendOptions: ()=>getBackendOptions,
66
+ getEntryConfig: ()=>getEntryConfig,
67
+ getLocaleDetectionOptions: ()=>getLocaleDetectionOptions,
68
+ removeEntryConfigKey: ()=>removeEntryConfigKey
69
+ });
66
70
  exports.getBackendOptions = __webpack_exports__.getBackendOptions;
67
71
  exports.getEntryConfig = __webpack_exports__.getEntryConfig;
68
72
  exports.getLocaleDetectionOptions = __webpack_exports__.getLocaleDetectionOptions;
@@ -3,6 +3,7 @@ import fs from "fs";
3
3
  import path from "path";
4
4
  import { applyLocalisedUrlsToRoutes, resolveLocalisedUrlsConfig } from "../shared/localisedUrls.mjs";
5
5
  import { getBackendOptions, getLocaleDetectionOptions } from "../shared/utils.mjs";
6
+ import "../runtime/types.mjs";
6
7
  function hasJsonFiles(dirPath) {
7
8
  try {
8
9
  if (!fs.existsSync(dirPath) || !fs.statSync(dirPath).isDirectory()) return false;
@@ -8,11 +8,14 @@ const I18nLink = ({ to, children, ...props })=>{
8
8
  const currentLang = language;
9
9
  const localizedTo = buildLocalizedUrl(to, currentLang, supportedLanguages, localisedUrls);
10
10
  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.");
11
- if (!hasRouter || !Link) return /*#__PURE__*/ jsx("a", {
12
- href: localizedTo,
13
- ...props,
14
- children: children
15
- });
11
+ if (!hasRouter || !Link) {
12
+ const { prefetch: _prefetch, preload: _preload, ...anchorProps } = props;
13
+ return /*#__PURE__*/ jsx("a", {
14
+ href: localizedTo,
15
+ ...anchorProps,
16
+ children: children
17
+ });
18
+ }
16
19
  return /*#__PURE__*/ jsx(Link, {
17
20
  to: localizedTo,
18
21
  ...props,
@@ -4,6 +4,7 @@ import fs from "fs";
4
4
  import path from "path";
5
5
  import { applyLocalisedUrlsToRoutes, resolveLocalisedUrlsConfig } from "../shared/localisedUrls.mjs";
6
6
  import { getBackendOptions, getLocaleDetectionOptions } from "../shared/utils.mjs";
7
+ import "../runtime/types.mjs";
7
8
  function hasJsonFiles(dirPath) {
8
9
  try {
9
10
  if (!fs.existsSync(dirPath) || !fs.statSync(dirPath).isDirectory()) return false;
@@ -9,11 +9,14 @@ const I18nLink = ({ to, children, ...props })=>{
9
9
  const currentLang = language;
10
10
  const localizedTo = buildLocalizedUrl(to, currentLang, supportedLanguages, localisedUrls);
11
11
  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.");
12
- if (!hasRouter || !Link) return /*#__PURE__*/ jsx("a", {
13
- href: localizedTo,
14
- ...props,
15
- children: children
16
- });
12
+ if (!hasRouter || !Link) {
13
+ const { prefetch: _prefetch, preload: _preload, ...anchorProps } = props;
14
+ return /*#__PURE__*/ jsx("a", {
15
+ href: localizedTo,
16
+ ...anchorProps,
17
+ children: children
18
+ });
19
+ }
17
20
  return /*#__PURE__*/ jsx(Link, {
18
21
  to: localizedTo,
19
22
  ...props,
@@ -1,6 +1,7 @@
1
1
  import type { AppTools, CliPlugin } from '@modern-js/app-tools';
2
2
  import type { Entrypoint } from '@modern-js/types';
3
3
  import type { BackendOptions, LocaleDetectionOptions } from '../shared/type';
4
+ import '../runtime/types';
4
5
  export type TransformRuntimeConfigFn = (extendedConfig: Record<string, any>, entrypoint: Entrypoint) => Record<string, any>;
5
6
  export interface I18nPluginOptions {
6
7
  localeDetection?: LocaleDetectionOptions;
@@ -8,7 +8,7 @@ declare module '@modern-js/runtime' {
8
8
  initOptions?: I18nInitOptions;
9
9
  };
10
10
  }
11
- interface TInternalRuntimeContext {
11
+ interface TRuntimeContext {
12
12
  i18nInstance?: I18nInstance;
13
13
  changeLanguage?: (lang: string) => Promise<void>;
14
14
  }
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "modern",
18
18
  "modern.js"
19
19
  ],
20
- "version": "3.2.0-ultramodern.102",
20
+ "version": "3.2.0-ultramodern.103",
21
21
  "engines": {
22
22
  "node": ">=20"
23
23
  },
@@ -88,15 +88,15 @@
88
88
  "i18next-http-backend": "^4.0.0",
89
89
  "i18next-http-middleware": "^3.9.7",
90
90
  "react-i18next": "17.0.8",
91
- "@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.2.0-ultramodern.102",
92
- "@modern-js/runtime-utils": "npm:@bleedingdev/modern-js-runtime-utils@3.2.0-ultramodern.102",
93
- "@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.2.0-ultramodern.102",
94
- "@modern-js/types": "npm:@bleedingdev/modern-js-types@3.2.0-ultramodern.102",
95
- "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.2.0-ultramodern.102",
96
- "@modern-js/server-runtime": "npm:@bleedingdev/modern-js-server-runtime@3.2.0-ultramodern.102"
91
+ "@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.2.0-ultramodern.103",
92
+ "@modern-js/types": "npm:@bleedingdev/modern-js-types@3.2.0-ultramodern.103",
93
+ "@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.2.0-ultramodern.103",
94
+ "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.2.0-ultramodern.103",
95
+ "@modern-js/runtime-utils": "npm:@bleedingdev/modern-js-runtime-utils@3.2.0-ultramodern.103",
96
+ "@modern-js/server-runtime": "npm:@bleedingdev/modern-js-server-runtime@3.2.0-ultramodern.103"
97
97
  },
98
98
  "peerDependencies": {
99
- "@modern-js/runtime": "3.2.0-ultramodern.102",
99
+ "@modern-js/runtime": "3.2.0-ultramodern.103",
100
100
  "i18next": ">=25.7.4",
101
101
  "react": "^19.2.6",
102
102
  "react-dom": "^19.2.6"
@@ -116,8 +116,8 @@
116
116
  "react": "^19.2.6",
117
117
  "react-dom": "^19.2.6",
118
118
  "ts-jest": "^29.4.11",
119
- "@modern-js/app-tools": "npm:@bleedingdev/modern-js-app-tools@3.2.0-ultramodern.102",
120
- "@modern-js/runtime": "npm:@bleedingdev/modern-js-runtime@3.2.0-ultramodern.102"
119
+ "@modern-js/runtime": "npm:@bleedingdev/modern-js-runtime@3.2.0-ultramodern.103",
120
+ "@modern-js/app-tools": "npm:@bleedingdev/modern-js-app-tools@3.2.0-ultramodern.103"
121
121
  },
122
122
  "sideEffects": false,
123
123
  "publishConfig": {
@@ -126,7 +126,7 @@
126
126
  },
127
127
  "scripts": {
128
128
  "dev": "rslib build --watch",
129
- "build": "rslib build",
129
+ "build": "rslib build && pnpm -w tsgo:dts \"$PWD\"",
130
130
  "test": "rstest --passWithNoTests"
131
131
  }
132
132
  }
package/src/cli/index.ts CHANGED
@@ -13,6 +13,7 @@ import {
13
13
  } from '../shared/localisedUrls';
14
14
  import type { BackendOptions, LocaleDetectionOptions } from '../shared/type';
15
15
  import { getBackendOptions, getLocaleDetectionOptions } from '../shared/utils';
16
+ import '../runtime/types';
16
17
 
17
18
  export type TransformRuntimeConfigFn = (
18
19
  extendedConfig: Record<string, any>,
@@ -53,8 +53,10 @@ export const I18nLink: React.FC<I18nLinkProps> = ({
53
53
  }
54
54
 
55
55
  if (!hasRouter || !Link) {
56
+ const { prefetch: _prefetch, preload: _preload, ...anchorProps } = props;
57
+
56
58
  return (
57
- <a href={localizedTo} {...props}>
59
+ <a href={localizedTo} {...anchorProps}>
58
60
  {children}
59
61
  </a>
60
62
  );
@@ -10,7 +10,7 @@ declare module '@modern-js/runtime' {
10
10
  };
11
11
  }
12
12
 
13
- interface TInternalRuntimeContext {
13
+ interface TRuntimeContext {
14
14
  i18nInstance?: I18nInstance;
15
15
  changeLanguage?: (lang: string) => Promise<void>;
16
16
  }
@@ -28,11 +28,18 @@ const requestContext = {
28
28
  response: {},
29
29
  };
30
30
 
31
- const TanstackLink = ({ to, children, ...props }: any) => (
32
- <a href={to} data-router-link="tanstack" {...props}>
33
- {children}
34
- </a>
35
- );
31
+ const capturedTanstackLinkProps: any[] = [];
32
+
33
+ const TanstackLink = ({ to, children, ...props }: any) => {
34
+ capturedTanstackLinkProps.push({ to, ...props });
35
+ const { prefetch: _prefetch, preload: _preload, ...anchorProps } = props;
36
+
37
+ return (
38
+ <a href={to} data-router-link="tanstack" {...anchorProps}>
39
+ {children}
40
+ </a>
41
+ );
42
+ };
36
43
 
37
44
  function createI18nInstance(language = 'en'): I18nInstance {
38
45
  return {
@@ -236,6 +243,7 @@ describe('i18n router adapter', () => {
236
243
  afterEach(() => {
237
244
  cleanup(rendered);
238
245
  rendered = undefined;
246
+ capturedTanstackLinkProps.length = 0;
239
247
  window.history.replaceState(null, '', '/');
240
248
  });
241
249
 
@@ -265,6 +273,68 @@ describe('i18n router adapter', () => {
265
273
  expect(link?.getAttribute('data-router-link')).toBe('tanstack');
266
274
  });
267
275
 
276
+ test('forwards warmup props through I18nLink with a localized string target', async () => {
277
+ const router = createTanstackRouter('/cs/podminky-pouzivani', 'cs');
278
+ rendered = await renderWithRuntime(
279
+ <ModernI18nProvider
280
+ value={{
281
+ language: 'cs',
282
+ i18nInstance: createI18nInstance('cs'),
283
+ languages: ['en', 'cs'],
284
+ localePathRedirect: true,
285
+ localisedUrls,
286
+ }}
287
+ >
288
+ <I18nLink
289
+ to="/terms-of-service"
290
+ data-testid="terms-link"
291
+ prefetch="viewport"
292
+ preload="intent"
293
+ >
294
+ Terms
295
+ </I18nLink>
296
+ </ModernI18nProvider>,
297
+ createTanstackRuntimeContext(router),
298
+ );
299
+
300
+ const linkProps = capturedTanstackLinkProps.at(-1);
301
+ expect(linkProps).toMatchObject({
302
+ to: '/cs/podminky-pouzivani',
303
+ prefetch: 'viewport',
304
+ preload: 'intent',
305
+ });
306
+ });
307
+
308
+ test('does not leak warmup props to fallback anchors', async () => {
309
+ rendered = await renderI18nRoot(
310
+ <ModernI18nProvider
311
+ value={{
312
+ language: 'cs',
313
+ i18nInstance: createI18nInstance('cs'),
314
+ languages: ['en', 'cs'],
315
+ localePathRedirect: true,
316
+ localisedUrls,
317
+ }}
318
+ >
319
+ <I18nLink
320
+ to="/terms-of-service"
321
+ data-testid="terms-link"
322
+ prefetch="none"
323
+ preload={false}
324
+ >
325
+ Terms
326
+ </I18nLink>
327
+ </ModernI18nProvider>,
328
+ );
329
+
330
+ const link = rendered.container.querySelector<HTMLAnchorElement>(
331
+ '[data-testid="terms-link"]',
332
+ );
333
+ expect(link?.getAttribute('href')).toBe('/cs/podminky-pouzivani');
334
+ expect(link?.hasAttribute('prefetch')).toBe(false);
335
+ expect(link?.hasAttribute('preload')).toBe(false);
336
+ });
337
+
268
338
  test('uses TanStack-shaped replacement when changeLanguage updates the URL', async () => {
269
339
  window.history.replaceState(
270
340
  null,