react-native-intlayer 6.1.4 → 6.1.6-canary.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.
@@ -31,47 +31,56 @@ __export(configMetroIntlayer_exports, {
31
31
  configMetroIntlayer: () => configMetroIntlayer
32
32
  });
33
33
  module.exports = __toCommonJS(configMetroIntlayer_exports);
34
+ var import_chokidar = require("@intlayer/chokidar");
34
35
  var import_config = require("@intlayer/config");
35
- var import_path = require("path");
36
+ var import_metro_config = require("expo/metro-config");
36
37
  var import_metro_resolver = require("metro-resolver");
38
+ var import_path = require("path");
37
39
  var import_exclusionList = require('./exclusionList.cjs');
38
- var import_chokidar = require("@intlayer/chokidar");
39
40
  const configMetroIntlayer = async (baseConfig) => {
41
+ let resolvedBaseConfig;
40
42
  const intlayerConfig = (0, import_config.getConfiguration)();
43
+ if (baseConfig) {
44
+ resolvedBaseConfig = baseConfig;
45
+ } else {
46
+ resolvedBaseConfig = (0, import_metro_config.getDefaultConfig)(intlayerConfig.content.baseDir);
47
+ }
41
48
  await (0, import_chokidar.prepareIntlayer)(intlayerConfig);
42
- const { mainDir, configDir } = intlayerConfig.content;
43
- const dictionariesPath = (0, import_path.join)(mainDir, "dictionaries.cjs");
44
- const configurationPath = (0, import_path.join)(configDir, "configuration.json");
49
+ const alias = (0, import_config.getAlias)({
50
+ configuration: intlayerConfig,
51
+ formatter: (value) => (0, import_path.resolve)(value)
52
+ // get absolute path
53
+ });
45
54
  const config = {
46
55
  ...baseConfig,
47
56
  resolver: {
48
- ...baseConfig.resolver,
49
- resolveRequest: (context, moduleName, platform) => {
50
- if (moduleName === "@intlayer/dictionaries-entry") {
57
+ ...resolvedBaseConfig.resolver,
58
+ resolveRequest: (context, moduleName, ...args) => {
59
+ if (Object.keys(alias).includes(moduleName)) {
51
60
  return {
52
- filePath: require.resolve(dictionariesPath),
61
+ filePath: alias[moduleName],
53
62
  type: "sourceFile"
54
63
  };
55
- } else if (moduleName === "@intlayer/config/built") {
56
- return {
57
- filePath: require.resolve(configurationPath),
58
- type: "sourceFile"
59
- };
60
- } else if (moduleName === "@intlayer/config/client") {
64
+ }
65
+ if (moduleName === "@intlayer/config/client") {
61
66
  return {
62
67
  filePath: require.resolve("@intlayer/config/client"),
63
68
  type: "sourceFile"
64
69
  };
65
- } else if (moduleName.startsWith("@intlayer/core/file")) {
70
+ }
71
+ if (moduleName.startsWith("@intlayer/core/file")) {
66
72
  return {
67
73
  filePath: require.resolve(moduleName.replace("/file", "/file/browser")),
68
74
  type: "sourceFile"
69
75
  };
70
76
  }
71
- return (0, import_metro_resolver.resolve)(context, moduleName, platform);
77
+ if (typeof context.resolveRequest === "function") {
78
+ return context.resolveRequest(context, moduleName, ...args);
79
+ }
80
+ return (0, import_metro_resolver.resolve)(context, moduleName, ...args);
72
81
  },
73
82
  blockList: (0, import_exclusionList.exclusionList)([
74
- ...[baseConfig.resolver?.blockList ?? []].flat(),
83
+ ...[resolvedBaseConfig.resolver?.blockList ?? []].flat(),
75
84
  // the following instruction should be replaced intlayerConfig.content.watchedFilesPattern
76
85
  // but using watchedFilesPattern does not exclude the files properly for now
77
86
  /.*\.content\.(?:ts|tsx|js|jsx|cjs|cjx|mjs|mjx|json)$/
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/configMetroIntlayer.ts"],"sourcesContent":["import { getDefaultConfig } from 'expo/metro-config';\nimport { getConfiguration } from '@intlayer/config';\nimport { join } from 'path';\nimport { resolve } from 'metro-resolver';\nimport { exclusionList } from './exclusionList';\nimport { prepareIntlayer } from '@intlayer/chokidar';\n\ntype MetroConfig = ReturnType<typeof getDefaultConfig>;\n\n/**\n * // metro.config.js\n * const { getDefaultConfig } = require(\"expo/metro-config\");\n * const { configMetroIntlayer } = require(\"react-native-intlayer/metro\");\n *\n * module.exports = (async () => {\n * const defaultConfig = getDefaultConfig(__dirname);\n *\n * return await configMetroIntlayer(defaultConfig);\n * })();\n * ```\n */\nexport const configMetroIntlayer = async (\n baseConfig: MetroConfig\n): Promise<MetroConfig> => {\n const intlayerConfig = getConfiguration();\n\n await prepareIntlayer(intlayerConfig);\n\n const { mainDir, configDir } = intlayerConfig.content;\n\n const dictionariesPath = join(mainDir, 'dictionaries.cjs');\n const configurationPath = join(configDir, 'configuration.json');\n\n const config = {\n ...baseConfig,\n\n resolver: {\n ...baseConfig.resolver,\n resolveRequest: (context, moduleName, platform) => {\n if (moduleName === '@intlayer/dictionaries-entry') {\n return {\n filePath: require.resolve(dictionariesPath),\n type: 'sourceFile',\n };\n } else if (moduleName === '@intlayer/config/built') {\n return {\n filePath: require.resolve(configurationPath),\n type: 'sourceFile',\n };\n } else if (moduleName === '@intlayer/config/client') {\n return {\n filePath: require.resolve('@intlayer/config/client'),\n type: 'sourceFile',\n };\n } else if (moduleName.startsWith('@intlayer/core/file')) {\n // Force React Native to use the correct transpiled version\n return {\n filePath: require.resolve(\n moduleName.replace('/file', '/file/browser')\n ),\n type: 'sourceFile',\n };\n }\n\n // Prevent infinite recursion\n return resolve(context, moduleName, platform);\n },\n blockList: exclusionList([\n ...[baseConfig.resolver?.blockList ?? []].flat(),\n // the following instruction should be replaced intlayerConfig.content.watchedFilesPattern\n // but using watchedFilesPattern does not exclude the files properly for now\n /.*\\.content\\.(?:ts|tsx|js|jsx|cjs|cjx|mjs|mjx|json)$/,\n ]),\n },\n } satisfies MetroConfig;\n\n return config;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAAiC;AACjC,kBAAqB;AACrB,4BAAwB;AACxB,2BAA8B;AAC9B,sBAAgC;AAgBzB,MAAM,sBAAsB,OACjC,eACyB;AACzB,QAAM,qBAAiB,gCAAiB;AAExC,YAAM,iCAAgB,cAAc;AAEpC,QAAM,EAAE,SAAS,UAAU,IAAI,eAAe;AAE9C,QAAM,uBAAmB,kBAAK,SAAS,kBAAkB;AACzD,QAAM,wBAAoB,kBAAK,WAAW,oBAAoB;AAE9D,QAAM,SAAS;AAAA,IACb,GAAG;AAAA,IAEH,UAAU;AAAA,MACR,GAAG,WAAW;AAAA,MACd,gBAAgB,CAAC,SAAS,YAAY,aAAa;AACjD,YAAI,eAAe,gCAAgC;AACjD,iBAAO;AAAA,YACL,UAAU,QAAQ,QAAQ,gBAAgB;AAAA,YAC1C,MAAM;AAAA,UACR;AAAA,QACF,WAAW,eAAe,0BAA0B;AAClD,iBAAO;AAAA,YACL,UAAU,QAAQ,QAAQ,iBAAiB;AAAA,YAC3C,MAAM;AAAA,UACR;AAAA,QACF,WAAW,eAAe,2BAA2B;AACnD,iBAAO;AAAA,YACL,UAAU,gBAAgB,yBAAyB;AAAA,YACnD,MAAM;AAAA,UACR;AAAA,QACF,WAAW,WAAW,WAAW,qBAAqB,GAAG;AAEvD,iBAAO;AAAA,YACL,UAAU,QAAQ,QAChB,WAAW,QAAQ,SAAS,eAAe,CAC7C;AAAA,YACA,MAAM;AAAA,UACR;AAAA,QACF;AAGA,mBAAO,+BAAQ,SAAS,YAAY,QAAQ;AAAA,MAC9C;AAAA,MACA,eAAW,oCAAc;AAAA,QACvB,GAAG,CAAC,WAAW,UAAU,aAAa,CAAC,CAAC,EAAE,KAAK;AAAA;AAAA;AAAA,QAG/C;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../src/configMetroIntlayer.ts"],"sourcesContent":["import { prepareIntlayer } from '@intlayer/chokidar';\nimport { getAlias, getConfiguration } from '@intlayer/config';\nimport { getDefaultConfig } from 'expo/metro-config';\nimport { resolve } from 'metro-resolver';\nimport { resolve as pathResolve } from 'path';\nimport { exclusionList } from './exclusionList';\n\ntype MetroConfig = ReturnType<typeof getDefaultConfig>;\n\n/**\n * // metro.config.js\n * const { getDefaultConfig } = require(\"expo/metro-config\");\n * const { configMetroIntlayer } = require(\"react-native-intlayer/metro\");\n *\n * module.exports = (async () => {\n * const defaultConfig = getDefaultConfig(__dirname);\n *\n * return await configMetroIntlayer(defaultConfig);\n * })();\n * ```\n */\nexport const configMetroIntlayer = async (\n baseConfig?: MetroConfig\n): Promise<MetroConfig> => {\n let resolvedBaseConfig: MetroConfig;\n const intlayerConfig = getConfiguration();\n\n if (baseConfig) {\n resolvedBaseConfig = baseConfig;\n } else {\n resolvedBaseConfig = getDefaultConfig(intlayerConfig.content.baseDir);\n }\n\n await prepareIntlayer(intlayerConfig);\n\n const alias = getAlias({\n configuration: intlayerConfig,\n formatter: (value: string) => pathResolve(value), // get absolute path\n });\n\n const config = {\n ...baseConfig,\n\n resolver: {\n ...resolvedBaseConfig.resolver,\n resolveRequest: (context, moduleName, ...args) => {\n if (Object.keys(alias).includes(moduleName)) {\n return {\n filePath: alias[moduleName as keyof typeof alias],\n type: 'sourceFile',\n };\n }\n\n // Because metro does not resolve subodules, we need to resolve the path manually\n if (moduleName === '@intlayer/config/client') {\n return {\n filePath: require.resolve('@intlayer/config/client'),\n type: 'sourceFile',\n };\n }\n\n // Because metro does not resolve subodules, we need to resolve the path manually\n if (moduleName.startsWith('@intlayer/core/file')) {\n // Force React Native to use the correct transpiled version\n return {\n filePath: require.resolve(\n moduleName.replace('/file', '/file/browser')\n ),\n type: 'sourceFile',\n };\n }\n\n // Delegate to the default resolver to prevent infinite recursion\n if (typeof (context as any).resolveRequest === 'function') {\n return (context as any).resolveRequest(context, moduleName, ...args);\n }\n\n // Fallback to metro-resolver when no default resolver is present\n return resolve(context as any, moduleName, ...args);\n },\n blockList: exclusionList([\n ...[resolvedBaseConfig.resolver?.blockList ?? []].flat(),\n // the following instruction should be replaced intlayerConfig.content.watchedFilesPattern\n // but using watchedFilesPattern does not exclude the files properly for now\n /.*\\.content\\.(?:ts|tsx|js|jsx|cjs|cjx|mjs|mjx|json)$/,\n ]),\n },\n } satisfies MetroConfig;\n\n return config;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAgC;AAChC,oBAA2C;AAC3C,0BAAiC;AACjC,4BAAwB;AACxB,kBAAuC;AACvC,2BAA8B;AAgBvB,MAAM,sBAAsB,OACjC,eACyB;AACzB,MAAI;AACJ,QAAM,qBAAiB,gCAAiB;AAExC,MAAI,YAAY;AACd,yBAAqB;AAAA,EACvB,OAAO;AACL,6BAAqB,sCAAiB,eAAe,QAAQ,OAAO;AAAA,EACtE;AAEA,YAAM,iCAAgB,cAAc;AAEpC,QAAM,YAAQ,wBAAS;AAAA,IACrB,eAAe;AAAA,IACf,WAAW,CAAC,cAAkB,YAAAA,SAAY,KAAK;AAAA;AAAA,EACjD,CAAC;AAED,QAAM,SAAS;AAAA,IACb,GAAG;AAAA,IAEH,UAAU;AAAA,MACR,GAAG,mBAAmB;AAAA,MACtB,gBAAgB,CAAC,SAAS,eAAe,SAAS;AAChD,YAAI,OAAO,KAAK,KAAK,EAAE,SAAS,UAAU,GAAG;AAC3C,iBAAO;AAAA,YACL,UAAU,MAAM,UAAgC;AAAA,YAChD,MAAM;AAAA,UACR;AAAA,QACF;AAGA,YAAI,eAAe,2BAA2B;AAC5C,iBAAO;AAAA,YACL,UAAU,gBAAgB,yBAAyB;AAAA,YACnD,MAAM;AAAA,UACR;AAAA,QACF;AAGA,YAAI,WAAW,WAAW,qBAAqB,GAAG;AAEhD,iBAAO;AAAA,YACL,UAAU,QAAQ,QAChB,WAAW,QAAQ,SAAS,eAAe,CAC7C;AAAA,YACA,MAAM;AAAA,UACR;AAAA,QACF;AAGA,YAAI,OAAQ,QAAgB,mBAAmB,YAAY;AACzD,iBAAQ,QAAgB,eAAe,SAAS,YAAY,GAAG,IAAI;AAAA,QACrE;AAGA,mBAAO,+BAAQ,SAAgB,YAAY,GAAG,IAAI;AAAA,MACpD;AAAA,MACA,eAAW,oCAAc;AAAA,QACvB,GAAG,CAAC,mBAAmB,UAAU,aAAa,CAAC,CAAC,EAAE,KAAK;AAAA;AAAA;AAAA,QAGvD;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;","names":["pathResolve"]}
@@ -1,44 +1,53 @@
1
- import { getConfiguration } from "@intlayer/config";
2
- import { join } from "path";
1
+ import { prepareIntlayer } from "@intlayer/chokidar";
2
+ import { getAlias, getConfiguration } from "@intlayer/config";
3
+ import { getDefaultConfig } from "expo/metro-config";
3
4
  import { resolve } from "metro-resolver";
5
+ import { resolve as pathResolve } from "path";
4
6
  import { exclusionList } from "./exclusionList.mjs";
5
- import { prepareIntlayer } from "@intlayer/chokidar";
6
7
  const configMetroIntlayer = async (baseConfig) => {
8
+ let resolvedBaseConfig;
7
9
  const intlayerConfig = getConfiguration();
10
+ if (baseConfig) {
11
+ resolvedBaseConfig = baseConfig;
12
+ } else {
13
+ resolvedBaseConfig = getDefaultConfig(intlayerConfig.content.baseDir);
14
+ }
8
15
  await prepareIntlayer(intlayerConfig);
9
- const { mainDir, configDir } = intlayerConfig.content;
10
- const dictionariesPath = join(mainDir, "dictionaries.cjs");
11
- const configurationPath = join(configDir, "configuration.json");
16
+ const alias = getAlias({
17
+ configuration: intlayerConfig,
18
+ formatter: (value) => pathResolve(value)
19
+ // get absolute path
20
+ });
12
21
  const config = {
13
22
  ...baseConfig,
14
23
  resolver: {
15
- ...baseConfig.resolver,
16
- resolveRequest: (context, moduleName, platform) => {
17
- if (moduleName === "@intlayer/dictionaries-entry") {
18
- return {
19
- filePath: require.resolve(dictionariesPath),
20
- type: "sourceFile"
21
- };
22
- } else if (moduleName === "@intlayer/config/built") {
24
+ ...resolvedBaseConfig.resolver,
25
+ resolveRequest: (context, moduleName, ...args) => {
26
+ if (Object.keys(alias).includes(moduleName)) {
23
27
  return {
24
- filePath: require.resolve(configurationPath),
28
+ filePath: alias[moduleName],
25
29
  type: "sourceFile"
26
30
  };
27
- } else if (moduleName === "@intlayer/config/client") {
31
+ }
32
+ if (moduleName === "@intlayer/config/client") {
28
33
  return {
29
34
  filePath: require.resolve("@intlayer/config/client"),
30
35
  type: "sourceFile"
31
36
  };
32
- } else if (moduleName.startsWith("@intlayer/core/file")) {
37
+ }
38
+ if (moduleName.startsWith("@intlayer/core/file")) {
33
39
  return {
34
40
  filePath: require.resolve(moduleName.replace("/file", "/file/browser")),
35
41
  type: "sourceFile"
36
42
  };
37
43
  }
38
- return resolve(context, moduleName, platform);
44
+ if (typeof context.resolveRequest === "function") {
45
+ return context.resolveRequest(context, moduleName, ...args);
46
+ }
47
+ return resolve(context, moduleName, ...args);
39
48
  },
40
49
  blockList: exclusionList([
41
- ...[baseConfig.resolver?.blockList ?? []].flat(),
50
+ ...[resolvedBaseConfig.resolver?.blockList ?? []].flat(),
42
51
  // the following instruction should be replaced intlayerConfig.content.watchedFilesPattern
43
52
  // but using watchedFilesPattern does not exclude the files properly for now
44
53
  /.*\.content\.(?:ts|tsx|js|jsx|cjs|cjx|mjs|mjx|json)$/
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/configMetroIntlayer.ts"],"sourcesContent":["import { getDefaultConfig } from 'expo/metro-config';\nimport { getConfiguration } from '@intlayer/config';\nimport { join } from 'path';\nimport { resolve } from 'metro-resolver';\nimport { exclusionList } from './exclusionList';\nimport { prepareIntlayer } from '@intlayer/chokidar';\n\ntype MetroConfig = ReturnType<typeof getDefaultConfig>;\n\n/**\n * // metro.config.js\n * const { getDefaultConfig } = require(\"expo/metro-config\");\n * const { configMetroIntlayer } = require(\"react-native-intlayer/metro\");\n *\n * module.exports = (async () => {\n * const defaultConfig = getDefaultConfig(__dirname);\n *\n * return await configMetroIntlayer(defaultConfig);\n * })();\n * ```\n */\nexport const configMetroIntlayer = async (\n baseConfig: MetroConfig\n): Promise<MetroConfig> => {\n const intlayerConfig = getConfiguration();\n\n await prepareIntlayer(intlayerConfig);\n\n const { mainDir, configDir } = intlayerConfig.content;\n\n const dictionariesPath = join(mainDir, 'dictionaries.cjs');\n const configurationPath = join(configDir, 'configuration.json');\n\n const config = {\n ...baseConfig,\n\n resolver: {\n ...baseConfig.resolver,\n resolveRequest: (context, moduleName, platform) => {\n if (moduleName === '@intlayer/dictionaries-entry') {\n return {\n filePath: require.resolve(dictionariesPath),\n type: 'sourceFile',\n };\n } else if (moduleName === '@intlayer/config/built') {\n return {\n filePath: require.resolve(configurationPath),\n type: 'sourceFile',\n };\n } else if (moduleName === '@intlayer/config/client') {\n return {\n filePath: require.resolve('@intlayer/config/client'),\n type: 'sourceFile',\n };\n } else if (moduleName.startsWith('@intlayer/core/file')) {\n // Force React Native to use the correct transpiled version\n return {\n filePath: require.resolve(\n moduleName.replace('/file', '/file/browser')\n ),\n type: 'sourceFile',\n };\n }\n\n // Prevent infinite recursion\n return resolve(context, moduleName, platform);\n },\n blockList: exclusionList([\n ...[baseConfig.resolver?.blockList ?? []].flat(),\n // the following instruction should be replaced intlayerConfig.content.watchedFilesPattern\n // but using watchedFilesPattern does not exclude the files properly for now\n /.*\\.content\\.(?:ts|tsx|js|jsx|cjs|cjx|mjs|mjx|json)$/,\n ]),\n },\n } satisfies MetroConfig;\n\n return config;\n};\n"],"mappings":"AACA,SAAS,wBAAwB;AACjC,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAgBzB,MAAM,sBAAsB,OACjC,eACyB;AACzB,QAAM,iBAAiB,iBAAiB;AAExC,QAAM,gBAAgB,cAAc;AAEpC,QAAM,EAAE,SAAS,UAAU,IAAI,eAAe;AAE9C,QAAM,mBAAmB,KAAK,SAAS,kBAAkB;AACzD,QAAM,oBAAoB,KAAK,WAAW,oBAAoB;AAE9D,QAAM,SAAS;AAAA,IACb,GAAG;AAAA,IAEH,UAAU;AAAA,MACR,GAAG,WAAW;AAAA,MACd,gBAAgB,CAAC,SAAS,YAAY,aAAa;AACjD,YAAI,eAAe,gCAAgC;AACjD,iBAAO;AAAA,YACL,UAAU,QAAQ,QAAQ,gBAAgB;AAAA,YAC1C,MAAM;AAAA,UACR;AAAA,QACF,WAAW,eAAe,0BAA0B;AAClD,iBAAO;AAAA,YACL,UAAU,QAAQ,QAAQ,iBAAiB;AAAA,YAC3C,MAAM;AAAA,UACR;AAAA,QACF,WAAW,eAAe,2BAA2B;AACnD,iBAAO;AAAA,YACL,UAAU,gBAAgB,yBAAyB;AAAA,YACnD,MAAM;AAAA,UACR;AAAA,QACF,WAAW,WAAW,WAAW,qBAAqB,GAAG;AAEvD,iBAAO;AAAA,YACL,UAAU,QAAQ,QAChB,WAAW,QAAQ,SAAS,eAAe,CAC7C;AAAA,YACA,MAAM;AAAA,UACR;AAAA,QACF;AAGA,eAAO,QAAQ,SAAS,YAAY,QAAQ;AAAA,MAC9C;AAAA,MACA,WAAW,cAAc;AAAA,QACvB,GAAG,CAAC,WAAW,UAAU,aAAa,CAAC,CAAC,EAAE,KAAK;AAAA;AAAA;AAAA,QAG/C;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../src/configMetroIntlayer.ts"],"sourcesContent":["import { prepareIntlayer } from '@intlayer/chokidar';\nimport { getAlias, getConfiguration } from '@intlayer/config';\nimport { getDefaultConfig } from 'expo/metro-config';\nimport { resolve } from 'metro-resolver';\nimport { resolve as pathResolve } from 'path';\nimport { exclusionList } from './exclusionList';\n\ntype MetroConfig = ReturnType<typeof getDefaultConfig>;\n\n/**\n * // metro.config.js\n * const { getDefaultConfig } = require(\"expo/metro-config\");\n * const { configMetroIntlayer } = require(\"react-native-intlayer/metro\");\n *\n * module.exports = (async () => {\n * const defaultConfig = getDefaultConfig(__dirname);\n *\n * return await configMetroIntlayer(defaultConfig);\n * })();\n * ```\n */\nexport const configMetroIntlayer = async (\n baseConfig?: MetroConfig\n): Promise<MetroConfig> => {\n let resolvedBaseConfig: MetroConfig;\n const intlayerConfig = getConfiguration();\n\n if (baseConfig) {\n resolvedBaseConfig = baseConfig;\n } else {\n resolvedBaseConfig = getDefaultConfig(intlayerConfig.content.baseDir);\n }\n\n await prepareIntlayer(intlayerConfig);\n\n const alias = getAlias({\n configuration: intlayerConfig,\n formatter: (value: string) => pathResolve(value), // get absolute path\n });\n\n const config = {\n ...baseConfig,\n\n resolver: {\n ...resolvedBaseConfig.resolver,\n resolveRequest: (context, moduleName, ...args) => {\n if (Object.keys(alias).includes(moduleName)) {\n return {\n filePath: alias[moduleName as keyof typeof alias],\n type: 'sourceFile',\n };\n }\n\n // Because metro does not resolve subodules, we need to resolve the path manually\n if (moduleName === '@intlayer/config/client') {\n return {\n filePath: require.resolve('@intlayer/config/client'),\n type: 'sourceFile',\n };\n }\n\n // Because metro does not resolve subodules, we need to resolve the path manually\n if (moduleName.startsWith('@intlayer/core/file')) {\n // Force React Native to use the correct transpiled version\n return {\n filePath: require.resolve(\n moduleName.replace('/file', '/file/browser')\n ),\n type: 'sourceFile',\n };\n }\n\n // Delegate to the default resolver to prevent infinite recursion\n if (typeof (context as any).resolveRequest === 'function') {\n return (context as any).resolveRequest(context, moduleName, ...args);\n }\n\n // Fallback to metro-resolver when no default resolver is present\n return resolve(context as any, moduleName, ...args);\n },\n blockList: exclusionList([\n ...[resolvedBaseConfig.resolver?.blockList ?? []].flat(),\n // the following instruction should be replaced intlayerConfig.content.watchedFilesPattern\n // but using watchedFilesPattern does not exclude the files properly for now\n /.*\\.content\\.(?:ts|tsx|js|jsx|cjs|cjx|mjs|mjx|json)$/,\n ]),\n },\n } satisfies MetroConfig;\n\n return config;\n};\n"],"mappings":"AAAA,SAAS,uBAAuB;AAChC,SAAS,UAAU,wBAAwB;AAC3C,SAAS,wBAAwB;AACjC,SAAS,eAAe;AACxB,SAAS,WAAW,mBAAmB;AACvC,SAAS,qBAAqB;AAgBvB,MAAM,sBAAsB,OACjC,eACyB;AACzB,MAAI;AACJ,QAAM,iBAAiB,iBAAiB;AAExC,MAAI,YAAY;AACd,yBAAqB;AAAA,EACvB,OAAO;AACL,yBAAqB,iBAAiB,eAAe,QAAQ,OAAO;AAAA,EACtE;AAEA,QAAM,gBAAgB,cAAc;AAEpC,QAAM,QAAQ,SAAS;AAAA,IACrB,eAAe;AAAA,IACf,WAAW,CAAC,UAAkB,YAAY,KAAK;AAAA;AAAA,EACjD,CAAC;AAED,QAAM,SAAS;AAAA,IACb,GAAG;AAAA,IAEH,UAAU;AAAA,MACR,GAAG,mBAAmB;AAAA,MACtB,gBAAgB,CAAC,SAAS,eAAe,SAAS;AAChD,YAAI,OAAO,KAAK,KAAK,EAAE,SAAS,UAAU,GAAG;AAC3C,iBAAO;AAAA,YACL,UAAU,MAAM,UAAgC;AAAA,YAChD,MAAM;AAAA,UACR;AAAA,QACF;AAGA,YAAI,eAAe,2BAA2B;AAC5C,iBAAO;AAAA,YACL,UAAU,gBAAgB,yBAAyB;AAAA,YACnD,MAAM;AAAA,UACR;AAAA,QACF;AAGA,YAAI,WAAW,WAAW,qBAAqB,GAAG;AAEhD,iBAAO;AAAA,YACL,UAAU,QAAQ,QAChB,WAAW,QAAQ,SAAS,eAAe,CAC7C;AAAA,YACA,MAAM;AAAA,UACR;AAAA,QACF;AAGA,YAAI,OAAQ,QAAgB,mBAAmB,YAAY;AACzD,iBAAQ,QAAgB,eAAe,SAAS,YAAY,GAAG,IAAI;AAAA,QACrE;AAGA,eAAO,QAAQ,SAAgB,YAAY,GAAG,IAAI;AAAA,MACpD;AAAA,MACA,WAAW,cAAc;AAAA,QACvB,GAAG,CAAC,mBAAmB,UAAU,aAAa,CAAC,CAAC,EAAE,KAAK;AAAA;AAAA;AAAA,QAGvD;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
@@ -12,6 +12,6 @@ type MetroConfig = ReturnType<typeof getDefaultConfig>;
12
12
  * })();
13
13
  * ```
14
14
  */
15
- export declare const configMetroIntlayer: (baseConfig: MetroConfig) => Promise<MetroConfig>;
15
+ export declare const configMetroIntlayer: (baseConfig?: MetroConfig) => Promise<MetroConfig>;
16
16
  export {};
17
17
  //# sourceMappingURL=configMetroIntlayer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configMetroIntlayer.d.ts","sourceRoot":"","sources":["../../src/configMetroIntlayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAOrD,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAC9B,YAAY,WAAW,KACtB,OAAO,CAAC,WAAW,CAsDrB,CAAC"}
1
+ {"version":3,"file":"configMetroIntlayer.d.ts","sourceRoot":"","sources":["../../src/configMetroIntlayer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAKrD,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAC9B,aAAa,WAAW,KACvB,OAAO,CAAC,WAAW,CAmErB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-intlayer",
3
- "version": "6.1.4",
3
+ "version": "6.1.6-canary.0",
4
4
  "private": false,
5
5
  "description": "A React Native plugin for seamless internationalization (i18n), providing locale detection, redirection, and environment-based configuration",
6
6
  "keywords": [
@@ -69,16 +69,16 @@
69
69
  "./package.json"
70
70
  ],
71
71
  "dependencies": {
72
- "@intlayer/chokidar": "6.1.4",
73
- "@intlayer/config": "6.1.4",
74
- "@intlayer/core": "6.1.4"
72
+ "@intlayer/config": "6.1.6-canary.0",
73
+ "@intlayer/core": "6.1.6-canary.0",
74
+ "@intlayer/chokidar": "6.1.6-canary.0"
75
75
  },
76
76
  "devDependencies": {
77
77
  "@types/node": "^24.5.2",
78
78
  "@typescript-eslint/parser": "^8.44.1",
79
79
  "concurrently": "^9.2.1",
80
80
  "eslint": "^9.36.0",
81
- "expo": "^52.0.37",
81
+ "expo": "^54.0.12",
82
82
  "metro-resolver": "^0.82.0",
83
83
  "prettier": "^3.6.2",
84
84
  "rimraf": "^6.0.1",
@@ -87,16 +87,16 @@
87
87
  "typescript": "^5.9.2",
88
88
  "vitest": "^3.2.4",
89
89
  "@utils/eslint-config": "1.0.4",
90
+ "@utils/ts-config": "1.0.4",
90
91
  "@utils/ts-config-types": "1.0.4",
91
- "@utils/tsup-config": "1.0.4",
92
- "@utils/ts-config": "1.0.4"
92
+ "@utils/tsup-config": "1.0.4"
93
93
  },
94
94
  "peerDependencies": {
95
- "expo": "^52.0.37",
96
- "metro-resolver": "^0.82.0",
97
- "@intlayer/chokidar": "6.1.4",
98
- "@intlayer/core": "6.1.4",
99
- "@intlayer/config": "6.1.4"
95
+ "expo": ">=52",
96
+ "metro-resolver": ">=0.80",
97
+ "@intlayer/chokidar": "6.1.6-canary.0",
98
+ "@intlayer/config": "6.1.6-canary.0",
99
+ "@intlayer/core": "6.1.6-canary.0"
100
100
  },
101
101
  "engines": {
102
102
  "node": ">=14.18"