@react-native-community/cli-config 14.0.0-alpha.5 → 14.0.0-alpha.6

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.
@@ -2,6 +2,10 @@ import { Config } from '@react-native-community/cli-types';
2
2
  declare const _default: {
3
3
  name: string;
4
4
  description: string;
5
+ options: {
6
+ name: string;
7
+ description: string;
8
+ }[];
5
9
  func: (_argv: string[], ctx: Config) => Promise<void>;
6
10
  };
7
11
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAmB,MAAM,mCAAmC,CAAC;;;;kBAuBrD,MAAM,EAAE,OAAO,MAAM;;AAH3C,wBAME"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAmB,MAAM,mCAAmC,CAAC;;;;;;;;kBA6BrD,MAAM,EAAE,OAAO,MAAM;;AAT3C,wBAYE"}
@@ -21,6 +21,10 @@ function filterConfig(config) {
21
21
  var _default = {
22
22
  name: 'config',
23
23
  description: 'Print CLI configuration',
24
+ options: [{
25
+ name: '--platform <platform>',
26
+ description: 'Output configuration for a specific platform'
27
+ }],
24
28
  func: async (_argv, ctx) => {
25
29
  console.log(JSON.stringify(filterConfig(ctx), null, 2));
26
30
  }
@@ -1 +1 @@
1
- {"version":3,"names":["isValidRNDependency","config","Object","keys","platforms","filter","key","Boolean","length","filterConfig","filtered","dependencies","forEach","item","name","description","func","_argv","ctx","console","log","JSON","stringify"],"sources":["../../src/commands/config.ts"],"sourcesContent":["import {Config, DependencyConfig} from '@react-native-community/cli-types';\n\nfunction isValidRNDependency(config: DependencyConfig) {\n return (\n Object.keys(config.platforms).filter((key) =>\n Boolean(config.platforms[key]),\n ).length !== 0\n );\n}\n\nfunction filterConfig(config: Config) {\n const filtered = {...config};\n Object.keys(filtered.dependencies).forEach((item) => {\n if (!isValidRNDependency(filtered.dependencies[item])) {\n delete filtered.dependencies[item];\n }\n });\n return filtered;\n}\n\nexport default {\n name: 'config',\n description: 'Print CLI configuration',\n func: async (_argv: string[], ctx: Config) => {\n console.log(JSON.stringify(filterConfig(ctx), null, 2));\n },\n};\n"],"mappings":";;;;;;AAEA,SAASA,mBAAmB,CAACC,MAAwB,EAAE;EACrD,OACEC,MAAM,CAACC,IAAI,CAACF,MAAM,CAACG,SAAS,CAAC,CAACC,MAAM,CAAEC,GAAG,IACvCC,OAAO,CAACN,MAAM,CAACG,SAAS,CAACE,GAAG,CAAC,CAAC,CAC/B,CAACE,MAAM,KAAK,CAAC;AAElB;AAEA,SAASC,YAAY,CAACR,MAAc,EAAE;EACpC,MAAMS,QAAQ,GAAG;IAAC,GAAGT;EAAM,CAAC;EAC5BC,MAAM,CAACC,IAAI,CAACO,QAAQ,CAACC,YAAY,CAAC,CAACC,OAAO,CAAEC,IAAI,IAAK;IACnD,IAAI,CAACb,mBAAmB,CAACU,QAAQ,CAACC,YAAY,CAACE,IAAI,CAAC,CAAC,EAAE;MACrD,OAAOH,QAAQ,CAACC,YAAY,CAACE,IAAI,CAAC;IACpC;EACF,CAAC,CAAC;EACF,OAAOH,QAAQ;AACjB;AAAC,eAEc;EACbI,IAAI,EAAE,QAAQ;EACdC,WAAW,EAAE,yBAAyB;EACtCC,IAAI,EAAE,OAAOC,KAAe,EAAEC,GAAW,KAAK;IAC5CC,OAAO,CAACC,GAAG,CAACC,IAAI,CAACC,SAAS,CAACb,YAAY,CAACS,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;EACzD;AACF,CAAC;AAAA"}
1
+ {"version":3,"names":["isValidRNDependency","config","Object","keys","platforms","filter","key","Boolean","length","filterConfig","filtered","dependencies","forEach","item","name","description","options","func","_argv","ctx","console","log","JSON","stringify"],"sources":["../../src/commands/config.ts"],"sourcesContent":["import {Config, DependencyConfig} from '@react-native-community/cli-types';\n\nfunction isValidRNDependency(config: DependencyConfig) {\n return (\n Object.keys(config.platforms).filter((key) =>\n Boolean(config.platforms[key]),\n ).length !== 0\n );\n}\n\nfunction filterConfig(config: Config) {\n const filtered = {...config};\n Object.keys(filtered.dependencies).forEach((item) => {\n if (!isValidRNDependency(filtered.dependencies[item])) {\n delete filtered.dependencies[item];\n }\n });\n return filtered;\n}\n\nexport default {\n name: 'config',\n description: 'Print CLI configuration',\n options: [\n {\n name: '--platform <platform>',\n description: 'Output configuration for a specific platform',\n },\n ],\n func: async (_argv: string[], ctx: Config) => {\n console.log(JSON.stringify(filterConfig(ctx), null, 2));\n },\n};\n"],"mappings":";;;;;;AAEA,SAASA,mBAAmB,CAACC,MAAwB,EAAE;EACrD,OACEC,MAAM,CAACC,IAAI,CAACF,MAAM,CAACG,SAAS,CAAC,CAACC,MAAM,CAAEC,GAAG,IACvCC,OAAO,CAACN,MAAM,CAACG,SAAS,CAACE,GAAG,CAAC,CAAC,CAC/B,CAACE,MAAM,KAAK,CAAC;AAElB;AAEA,SAASC,YAAY,CAACR,MAAc,EAAE;EACpC,MAAMS,QAAQ,GAAG;IAAC,GAAGT;EAAM,CAAC;EAC5BC,MAAM,CAACC,IAAI,CAACO,QAAQ,CAACC,YAAY,CAAC,CAACC,OAAO,CAAEC,IAAI,IAAK;IACnD,IAAI,CAACb,mBAAmB,CAACU,QAAQ,CAACC,YAAY,CAACE,IAAI,CAAC,CAAC,EAAE;MACrD,OAAOH,QAAQ,CAACC,YAAY,CAACE,IAAI,CAAC;IACpC;EACF,CAAC,CAAC;EACF,OAAOH,QAAQ;AACjB;AAAC,eAEc;EACbI,IAAI,EAAE,QAAQ;EACdC,WAAW,EAAE,yBAAyB;EACtCC,OAAO,EAAE,CACP;IACEF,IAAI,EAAE,uBAAuB;IAC7BC,WAAW,EAAE;EACf,CAAC,CACF;EACDE,IAAI,EAAE,OAAOC,KAAe,EAAEC,GAAW,KAAK;IAC5CC,OAAO,CAACC,GAAG,CAACC,IAAI,CAACC,SAAS,CAACd,YAAY,CAACU,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;EACzD;AACF,CAAC;AAAA"}
package/build/index.d.ts CHANGED
@@ -2,6 +2,10 @@ export { default } from './loadConfig';
2
2
  export declare const commands: {
3
3
  name: string;
4
4
  description: string;
5
+ options: {
6
+ name: string;
7
+ description: string;
8
+ }[];
5
9
  func: (_argv: string[], ctx: import("@react-native-community/cli-types").Config) => Promise<void>;
6
10
  }[];
7
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAErC,eAAO,MAAM,QAAQ;;;;GAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAErC,eAAO,MAAM,QAAQ;;;;;;;;GAAW,CAAC"}
@@ -2,6 +2,9 @@ import { Config } from '@react-native-community/cli-types';
2
2
  /**
3
3
  * Loads CLI configuration
4
4
  */
5
- declare function loadConfig(projectRoot?: string): Config;
5
+ declare function loadConfig({ projectRoot, selectedPlatform, }: {
6
+ projectRoot?: string;
7
+ selectedPlatform?: string;
8
+ }): Config;
6
9
  export default loadConfig;
7
10
  //# sourceMappingURL=loadConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../src/loadConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,MAAM,EAEP,MAAM,mCAAmC,CAAC;AA6E3C;;GAEG;AACH,iBAAS,UAAU,CAAC,WAAW,GAAE,MAA0B,GAAG,MAAM,CAqFnE;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../src/loadConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,MAAM,EAEP,MAAM,mCAAmC,CAAC;AA4E3C;;GAEG;AACH,iBAAS,UAAU,CAAC,EAClB,WAA+B,EAC/B,gBAAgB,GACjB,EAAE;IACD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAoFT;AAED,eAAe,UAAU,CAAC"}
@@ -24,7 +24,7 @@ var _readConfigFromDisk = require("./readConfigFromDisk");
24
24
  var _assign = _interopRequireDefault(require("./assign"));
25
25
  var _merge = _interopRequireDefault(require("./merge"));
26
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
- function getDependencyConfig(root, dependencyName, finalConfig, config, userConfig, isPlatform) {
27
+ function getDependencyConfig(root, dependencyName, finalConfig, config, userConfig) {
28
28
  return (0, _merge.default)({
29
29
  root,
30
30
  name: dependencyName,
@@ -32,7 +32,7 @@ function getDependencyConfig(root, dependencyName, finalConfig, config, userConf
32
32
  const platformConfig = finalConfig.platforms[platform];
33
33
  dependency[platform] =
34
34
  // Linking platforms is not supported
35
- isPlatform || !platformConfig ? null : platformConfig.dependencyConfig(root, config.dependency.platforms[platform]);
35
+ Object.keys(config.platforms).length > 0 || !platformConfig ? null : platformConfig.dependencyConfig(root, config.dependency.platforms[platform]);
36
36
  return dependency;
37
37
  }, {})
38
38
  }, userConfig.dependencies[dependencyName] || {});
@@ -67,7 +67,10 @@ const removeDuplicateCommands = commands => {
67
67
  /**
68
68
  * Loads CLI configuration
69
69
  */
70
- function loadConfig(projectRoot = (0, _cliTools().findProjectRoot)()) {
70
+ function loadConfig({
71
+ projectRoot = (0, _cliTools().findProjectRoot)(),
72
+ selectedPlatform
73
+ }) {
71
74
  let lazyProject;
72
75
  const userConfig = (0, _readConfigFromDisk.readConfigFromDisk)(projectRoot);
73
76
  const initialConfig = {
@@ -102,17 +105,18 @@ function loadConfig(projectRoot = (0, _cliTools().findProjectRoot)()) {
102
105
  try {
103
106
  let root = localDependencyRoot || (0, _cliTools().resolveNodeModuleDir)(projectRoot, dependencyName);
104
107
  let config = (0, _readConfigFromDisk.readDependencyConfigFromDisk)(root, dependencyName);
105
- const isPlatform = Object.keys(config.platforms).length > 0;
106
108
  return (0, _assign.default)({}, acc, {
107
109
  dependencies: (0, _assign.default)({}, acc.dependencies, {
108
110
  get [dependencyName]() {
109
- return getDependencyConfig(root, dependencyName, finalConfig, config, userConfig, isPlatform);
111
+ return getDependencyConfig(root, dependencyName, finalConfig, config, userConfig);
110
112
  }
111
113
  }),
112
114
  commands: removeDuplicateCommands([...config.commands, ...acc.commands]),
113
115
  platforms: {
114
116
  ...acc.platforms,
115
- ...config.platforms
117
+ ...(selectedPlatform && config.platforms[selectedPlatform] ? {
118
+ [selectedPlatform]: config.platforms[selectedPlatform]
119
+ } : config.platforms)
116
120
  },
117
121
  healthChecks: [...acc.healthChecks, ...config.healthChecks]
118
122
  });
@@ -1 +1 @@
1
- {"version":3,"names":["getDependencyConfig","root","dependencyName","finalConfig","config","userConfig","isPlatform","merge","name","platforms","Object","keys","reduce","dependency","platform","platformConfig","dependencyConfig","dependencies","getReactNativeVersion","reactNativePath","semver","version","current","major","minor","e","UnknownProjectError","removeDuplicateCommands","commands","uniqueCommandsMap","Map","forEach","command","set","Array","from","values","loadConfig","projectRoot","findProjectRoot","lazyProject","readConfigFromDisk","initialConfig","path","resolve","resolveReactNativePath","reactNativeVersion","healthChecks","assets","project","projectConfig","Set","findDependencies","acc","localDependencyRoot","resolveNodeModuleDir","readDependencyConfigFromDisk","length","assign"],"sources":["../src/loadConfig.ts"],"sourcesContent":["import path from 'path';\nimport {\n UserDependencyConfig,\n ProjectConfig,\n DependencyConfig,\n UserConfig,\n Config,\n Command,\n} from '@react-native-community/cli-types';\nimport {\n findProjectRoot,\n version,\n resolveNodeModuleDir,\n UnknownProjectError,\n} from '@react-native-community/cli-tools';\nimport findDependencies from './findDependencies';\nimport resolveReactNativePath from './resolveReactNativePath';\nimport {\n readConfigFromDisk,\n readDependencyConfigFromDisk,\n} from './readConfigFromDisk';\nimport assign from './assign';\nimport merge from './merge';\n\nfunction getDependencyConfig(\n root: string,\n dependencyName: string,\n finalConfig: Config,\n config: UserDependencyConfig,\n userConfig: UserConfig,\n isPlatform: boolean,\n): DependencyConfig {\n return merge(\n {\n root,\n name: dependencyName,\n platforms: Object.keys(finalConfig.platforms).reduce(\n (dependency, platform) => {\n const platformConfig = finalConfig.platforms[platform];\n dependency[platform] =\n // Linking platforms is not supported\n isPlatform || !platformConfig\n ? null\n : platformConfig.dependencyConfig(\n root,\n config.dependency.platforms[platform],\n );\n return dependency;\n },\n {} as Config['platforms'],\n ),\n },\n userConfig.dependencies[dependencyName] || {},\n ) as DependencyConfig;\n}\n\n// Try our best to figure out what version of React Native we're running. This is\n// currently being used to get our deeplinks working, so it's only worried with\n// the major and minor version.\nfunction getReactNativeVersion(reactNativePath: string) {\n try {\n let semver = version.current(reactNativePath);\n if (semver) {\n // Retain only these version, since they correspond with our documentation.\n return `${semver.major}.${semver.minor}`;\n }\n } catch (e) {\n // If we don't seem to be in a well formed project, give up quietly.\n if (!(e instanceof UnknownProjectError)) {\n throw e;\n }\n }\n return 'unknown';\n}\n\nconst removeDuplicateCommands = <T extends boolean>(commands: Command<T>[]) => {\n const uniqueCommandsMap = new Map();\n\n commands.forEach((command) => {\n uniqueCommandsMap.set(command.name, command);\n });\n\n return Array.from(uniqueCommandsMap.values());\n};\n\n/**\n * Loads CLI configuration\n */\nfunction loadConfig(projectRoot: string = findProjectRoot()): Config {\n let lazyProject: ProjectConfig;\n const userConfig = readConfigFromDisk(projectRoot);\n\n const initialConfig: Config = {\n root: projectRoot,\n get reactNativePath() {\n return userConfig.reactNativePath\n ? path.resolve(projectRoot, userConfig.reactNativePath)\n : resolveReactNativePath(projectRoot);\n },\n get reactNativeVersion() {\n return getReactNativeVersion(initialConfig.reactNativePath);\n },\n dependencies: userConfig.dependencies,\n commands: userConfig.commands,\n healthChecks: userConfig.healthChecks || [],\n platforms: userConfig.platforms,\n assets: userConfig.assets,\n get project() {\n if (lazyProject) {\n return lazyProject;\n }\n\n lazyProject = {};\n for (const platform in finalConfig.platforms) {\n const platformConfig = finalConfig.platforms[platform];\n if (platformConfig) {\n lazyProject[platform] = platformConfig.projectConfig(\n projectRoot,\n userConfig.project[platform] || {},\n );\n }\n }\n\n return lazyProject;\n },\n };\n\n const finalConfig = Array.from(\n new Set([\n ...Object.keys(userConfig.dependencies),\n ...findDependencies(projectRoot),\n ]),\n ).reduce((acc: Config, dependencyName) => {\n const localDependencyRoot =\n userConfig.dependencies[dependencyName] &&\n userConfig.dependencies[dependencyName].root;\n try {\n let root =\n localDependencyRoot ||\n resolveNodeModuleDir(projectRoot, dependencyName);\n let config = readDependencyConfigFromDisk(root, dependencyName);\n\n const isPlatform = Object.keys(config.platforms).length > 0;\n\n return assign({}, acc, {\n dependencies: assign({}, acc.dependencies, {\n get [dependencyName](): DependencyConfig {\n return getDependencyConfig(\n root,\n dependencyName,\n finalConfig,\n config,\n userConfig,\n isPlatform,\n );\n },\n }),\n commands: removeDuplicateCommands([\n ...config.commands,\n ...acc.commands,\n ]),\n platforms: {\n ...acc.platforms,\n ...config.platforms,\n },\n healthChecks: [...acc.healthChecks, ...config.healthChecks],\n }) as Config;\n } catch {\n return acc;\n }\n }, initialConfig);\n\n return finalConfig;\n}\n\nexport default loadConfig;\n"],"mappings":"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"}
1
+ {"version":3,"names":["getDependencyConfig","root","dependencyName","finalConfig","config","userConfig","merge","name","platforms","Object","keys","reduce","dependency","platform","platformConfig","length","dependencyConfig","dependencies","getReactNativeVersion","reactNativePath","semver","version","current","major","minor","e","UnknownProjectError","removeDuplicateCommands","commands","uniqueCommandsMap","Map","forEach","command","set","Array","from","values","loadConfig","projectRoot","findProjectRoot","selectedPlatform","lazyProject","readConfigFromDisk","initialConfig","path","resolve","resolveReactNativePath","reactNativeVersion","healthChecks","assets","project","projectConfig","Set","findDependencies","acc","localDependencyRoot","resolveNodeModuleDir","readDependencyConfigFromDisk","assign"],"sources":["../src/loadConfig.ts"],"sourcesContent":["import path from 'path';\nimport {\n UserDependencyConfig,\n ProjectConfig,\n DependencyConfig,\n UserConfig,\n Config,\n Command,\n} from '@react-native-community/cli-types';\nimport {\n findProjectRoot,\n version,\n resolveNodeModuleDir,\n UnknownProjectError,\n} from '@react-native-community/cli-tools';\nimport findDependencies from './findDependencies';\nimport resolveReactNativePath from './resolveReactNativePath';\nimport {\n readConfigFromDisk,\n readDependencyConfigFromDisk,\n} from './readConfigFromDisk';\nimport assign from './assign';\nimport merge from './merge';\n\nfunction getDependencyConfig(\n root: string,\n dependencyName: string,\n finalConfig: Config,\n config: UserDependencyConfig,\n userConfig: UserConfig,\n): DependencyConfig {\n return merge(\n {\n root,\n name: dependencyName,\n platforms: Object.keys(finalConfig.platforms).reduce(\n (dependency, platform) => {\n const platformConfig = finalConfig.platforms[platform];\n dependency[platform] =\n // Linking platforms is not supported\n Object.keys(config.platforms).length > 0 || !platformConfig\n ? null\n : platformConfig.dependencyConfig(\n root,\n config.dependency.platforms[platform],\n );\n return dependency;\n },\n {} as Config['platforms'],\n ),\n },\n userConfig.dependencies[dependencyName] || {},\n ) as DependencyConfig;\n}\n\n// Try our best to figure out what version of React Native we're running. This is\n// currently being used to get our deeplinks working, so it's only worried with\n// the major and minor version.\nfunction getReactNativeVersion(reactNativePath: string) {\n try {\n let semver = version.current(reactNativePath);\n if (semver) {\n // Retain only these version, since they correspond with our documentation.\n return `${semver.major}.${semver.minor}`;\n }\n } catch (e) {\n // If we don't seem to be in a well formed project, give up quietly.\n if (!(e instanceof UnknownProjectError)) {\n throw e;\n }\n }\n return 'unknown';\n}\n\nconst removeDuplicateCommands = <T extends boolean>(commands: Command<T>[]) => {\n const uniqueCommandsMap = new Map();\n\n commands.forEach((command) => {\n uniqueCommandsMap.set(command.name, command);\n });\n\n return Array.from(uniqueCommandsMap.values());\n};\n\n/**\n * Loads CLI configuration\n */\nfunction loadConfig({\n projectRoot = findProjectRoot(),\n selectedPlatform,\n}: {\n projectRoot?: string;\n selectedPlatform?: string;\n}): Config {\n let lazyProject: ProjectConfig;\n const userConfig = readConfigFromDisk(projectRoot);\n\n const initialConfig: Config = {\n root: projectRoot,\n get reactNativePath() {\n return userConfig.reactNativePath\n ? path.resolve(projectRoot, userConfig.reactNativePath)\n : resolveReactNativePath(projectRoot);\n },\n get reactNativeVersion() {\n return getReactNativeVersion(initialConfig.reactNativePath);\n },\n dependencies: userConfig.dependencies,\n commands: userConfig.commands,\n healthChecks: userConfig.healthChecks || [],\n platforms: userConfig.platforms,\n assets: userConfig.assets,\n get project() {\n if (lazyProject) {\n return lazyProject;\n }\n\n lazyProject = {};\n for (const platform in finalConfig.platforms) {\n const platformConfig = finalConfig.platforms[platform];\n if (platformConfig) {\n lazyProject[platform] = platformConfig.projectConfig(\n projectRoot,\n userConfig.project[platform] || {},\n );\n }\n }\n\n return lazyProject;\n },\n };\n\n const finalConfig = Array.from(\n new Set([\n ...Object.keys(userConfig.dependencies),\n ...findDependencies(projectRoot),\n ]),\n ).reduce((acc: Config, dependencyName) => {\n const localDependencyRoot =\n userConfig.dependencies[dependencyName] &&\n userConfig.dependencies[dependencyName].root;\n try {\n let root =\n localDependencyRoot ||\n resolveNodeModuleDir(projectRoot, dependencyName);\n let config = readDependencyConfigFromDisk(root, dependencyName);\n\n return assign({}, acc, {\n dependencies: assign({}, acc.dependencies, {\n get [dependencyName](): DependencyConfig {\n return getDependencyConfig(\n root,\n dependencyName,\n finalConfig,\n config,\n userConfig,\n );\n },\n }),\n commands: removeDuplicateCommands([\n ...config.commands,\n ...acc.commands,\n ]),\n platforms: {\n ...acc.platforms,\n ...(selectedPlatform && config.platforms[selectedPlatform]\n ? {[selectedPlatform]: config.platforms[selectedPlatform]}\n : config.platforms),\n },\n healthChecks: [...acc.healthChecks, ...config.healthChecks],\n }) as Config;\n } catch {\n return acc;\n }\n }, initialConfig);\n\n return finalConfig;\n}\n\nexport default loadConfig;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-native-community/cli-config",
3
- "version": "14.0.0-alpha.5",
3
+ "version": "14.0.0-alpha.6",
4
4
  "license": "MIT",
5
5
  "main": "build/index.js",
6
6
  "publishConfig": {
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "types": "build/index.d.ts",
10
10
  "dependencies": {
11
- "@react-native-community/cli-tools": "14.0.0-alpha.5",
11
+ "@react-native-community/cli-tools": "14.0.0-alpha.6",
12
12
  "chalk": "^4.1.2",
13
13
  "cosmiconfig": "^9.0.0",
14
14
  "deepmerge": "^4.3.0",
@@ -21,7 +21,7 @@
21
21
  "!*.map"
22
22
  ],
23
23
  "devDependencies": {
24
- "@react-native-community/cli-types": "14.0.0-alpha.5",
24
+ "@react-native-community/cli-types": "14.0.0-alpha.6",
25
25
  "@types/cosmiconfig": "^5.0.3"
26
26
  },
27
27
  "homepage": "https://github.com/react-native-community/cli/tree/main/packages/cli-config",
@@ -30,5 +30,5 @@
30
30
  "url": "https://github.com/react-native-community/cli.git",
31
31
  "directory": "packages/cli-config"
32
32
  },
33
- "gitHead": "0bcdb73b48fd9c8755b5031326fc0f93bbe69789"
33
+ "gitHead": "3e225892eedc9335ad7dc8c64a4014939d2838a5"
34
34
  }