@callstack/brownfield-cli 5.1.1 → 5.2.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @callstack/brownfield-cli
2
2
 
3
+ ## 5.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#467](https://github.com/callstack/react-native-brownfield/pull/467) [`31c3939`](https://github.com/callstack/react-native-brownfield/commit/31c39399aad0efb098876d35a4fbbe80835d5dba) Thanks [@hurali97](https://github.com/hurali97)! - add expo sdk 58
8
+
3
9
  ## 5.1.1
4
10
 
5
11
  ## 5.1.0
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/brownfield/utils/project.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,UAAU,EACX,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAKjE,OAAO,EAEL,KAAK,aAAa,IAAI,iBAAiB,EACxC,MAAM,cAAc,CAAC;AAiCtB;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,4BAYxD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,EAC9C,aAAa,EACb,UAAU,EAAE,EAAE,GAAG,EAAE,EACnB,WAAW,GACZ,EAAE;IACD,8CAA8C;IAC9C,aAAa,EAAE,aAAa,CAAC;IAE7B,8BAA8B;IAC9B,UAAU,EAAE,iBAAiB,CAAC;IAE9B,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB,QAuBA;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,SAAS,KAAK,GAAG,SAAS,EAC/D,QAAQ,EAAE,QAAQ,GACjB;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;CACzC,CAeA;AAED,wBAAgB,aAAa,CAAC,EAC5B,WAAW,EACX,QAAQ,GACT,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;CAC7B,GAAG,UAAU,CAuBb;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,eAAe,EACrB,aAAa,EAAE,oBAAoB;;;EAQpC"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/brownfield/utils/project.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,UAAU,EACX,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAKjE,OAAO,EAEL,KAAK,aAAa,IAAI,iBAAiB,EACxC,MAAM,cAAc,CAAC;AAiCtB;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,4BAkBxD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,EAC9C,aAAa,EACb,UAAU,EAAE,EAAE,GAAG,EAAE,EACnB,WAAW,GACZ,EAAE;IACD,8CAA8C;IAC9C,aAAa,EAAE,aAAa,CAAC;IAE7B,8BAA8B;IAC9B,UAAU,EAAE,iBAAiB,CAAC;IAE9B,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB,QAuBA;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,SAAS,KAAK,GAAG,SAAS,EAC/D,QAAQ,EAAE,QAAQ,GACjB;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;CACzC,CAeA;AAED,wBAAgB,aAAa,CAAC,EAC5B,WAAW,EACX,QAAQ,GACT,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;CAC7B,GAAG,UAAU,CAuBb;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,eAAe,EACrB,aAAa,EAAE,oBAAoB;;;EAQpC"}
@@ -29,7 +29,13 @@ function projectDependsOnExpo(projectRoot) {
29
29
  export function getExpoConfigIfIsExpo(projectRoot) {
30
30
  const hasAppConfig = hasExpoAppConfig(projectRoot);
31
31
  try {
32
- return getConfig(projectRoot, { skipSDKVersionRequirement: true });
32
+ return getConfig(projectRoot, {
33
+ skipSDKVersionRequirement: true,
34
+ // Only app.json/app.config metadata is needed here. Evaluating plugins
35
+ // can fail for packages that are listed as plugins but are not loadable
36
+ // as Node modules (for example expo-image on Expo SDK 58).
37
+ skipPlugins: true,
38
+ });
33
39
  }
34
40
  catch (error) {
35
41
  if (hasAppConfig) {
@@ -32,7 +32,7 @@ export type ResolvedBrownfieldPluginAndroidConfig = {
32
32
  moduleName: string;
33
33
  packageName: string;
34
34
  minSdkVersion: number;
35
- targetSdkVersion: number;
35
+ targetSdkVersion?: number;
36
36
  compileSdkVersion: number;
37
37
  groupId: string;
38
38
  artifactId: string;
@@ -56,6 +56,7 @@ export type ResolvedBrownfieldPluginConfig = {
56
56
  android: ResolvedBrownfieldPluginAndroidConfig | null;
57
57
  };
58
58
  type BrownfieldExpoConfig = {
59
+ sdkVersion?: string;
59
60
  ios?: {
60
61
  bundleIdentifier?: string;
61
62
  };
@@ -1 +1 @@
1
- {"version":3,"file":"expoPluginConfig.d.ts","sourceRoot":"","sources":["../src/expoPluginConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expoPluginConfig.d.ts","sourceRoot":"","sources":["../src/expoPluginConfig.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
1
  export { loadBrownfieldConfig } from './config.js';
2
+ const EXPO_SDK_COMPILE_SDK_37_FROM_MAJOR = 58;
3
+ function getDefaultCompileSdkVersion(sdkVersion) {
4
+ const expoMajor = sdkVersion ? parseInt(sdkVersion.split('.')[0], 10) : -1;
5
+ return expoMajor >= EXPO_SDK_COMPILE_SDK_37_FROM_MAJOR ? 37 : 35;
6
+ }
2
7
  const CONFIG_FILE_PLUGIN_OVERLAP_ERROR = 'Brownfield configuration is defined in both a brownfield config file and app.json plugin options. ' +
3
8
  'Use only one source: either brownfield.config.js, brownfield.config.json, package.json#brownfield, or the plugin options in app.json.';
4
9
  /**
@@ -92,8 +97,8 @@ export function resolveBrownfieldPluginConfig(pluginProps, fileConfig, expoConfi
92
97
  moduleName: androidModuleName,
93
98
  packageName: effectiveProps.android?.packageName ?? androidPackage,
94
99
  minSdkVersion: effectiveProps.android?.minSdkVersion ?? 24,
95
- targetSdkVersion: effectiveProps.android?.targetSdkVersion ?? 35,
96
- compileSdkVersion: effectiveProps.android?.compileSdkVersion ?? 35,
100
+ compileSdkVersion: effectiveProps.android?.compileSdkVersion ??
101
+ getDefaultCompileSdkVersion(expoConfig.sdkVersion),
97
102
  groupId: effectiveProps.android?.groupId ?? androidPackage,
98
103
  artifactId: effectiveProps.android?.artifactId ?? androidModuleName,
99
104
  version: effectiveProps.android?.version ?? '0.0.1-SNAPSHOT',
@@ -102,6 +107,9 @@ export function resolveBrownfieldPluginConfig(pluginProps, fileConfig, expoConfi
102
107
  extraProguardRules,
103
108
  useLocalMaven: effectiveProps.android?.useLocalMaven ?? false,
104
109
  missingDimensionStrategies: effectiveProps.android?.missingDimensionStrategies ?? [],
110
+ ...(effectiveProps.android?.targetSdkVersion != null
111
+ ? { targetSdkVersion: effectiveProps.android.targetSdkVersion }
112
+ : {}),
105
113
  }
106
114
  : null,
107
115
  };
package/dist/types.d.ts CHANGED
@@ -53,10 +53,12 @@ export type BrownfieldExpoAndroidConfig = {
53
53
  minSdkVersion?: number;
54
54
  /**
55
55
  * Target SDK version for the Android library.
56
+ * Used on Expo SDK versions below 58; ignored on 58 and later.
56
57
  */
57
58
  targetSdkVersion?: number;
58
59
  /**
59
60
  * Compile SDK version for the Android library.
61
+ * Defaults to 37 on Expo SDK 58 and later, otherwise 35.
60
62
  */
61
63
  compileSdkVersion?: number;
62
64
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@callstack/brownfield-cli",
3
- "version": "5.1.1",
3
+ "version": "5.2.0",
4
4
  "license": "MIT",
5
5
  "author": "Artur Morys-Magiera <artus9033@gmail.com>",
6
6
  "bin": {
package/schema.json CHANGED
@@ -54,7 +54,7 @@
54
54
  "type": "string"
55
55
  },
56
56
  "compileSdkVersion": {
57
- "description": "Compile SDK version for the Android library.",
57
+ "description": "Compile SDK version for the Android library. Defaults to 37 on Expo SDK 58 and later, otherwise 35.",
58
58
  "type": "number"
59
59
  },
60
60
  "extraProguardRules": {
@@ -88,7 +88,7 @@
88
88
  "type": "string"
89
89
  },
90
90
  "targetSdkVersion": {
91
- "description": "Target SDK version for the Android library.",
91
+ "description": "Target SDK version for the Android library. Used on Expo SDK versions below 58; ignored on 58 and later.",
92
92
  "type": "number"
93
93
  },
94
94
  "useLocalGradlePlugin": {
@@ -55,7 +55,13 @@ export function getExpoConfigIfIsExpo(projectRoot: string) {
55
55
  const hasAppConfig = hasExpoAppConfig(projectRoot);
56
56
 
57
57
  try {
58
- return getConfig(projectRoot, { skipSDKVersionRequirement: true });
58
+ return getConfig(projectRoot, {
59
+ skipSDKVersionRequirement: true,
60
+ // Only app.json/app.config metadata is needed here. Evaluating plugins
61
+ // can fail for packages that are listed as plugins but are not loadable
62
+ // as Node modules (for example expo-image on Expo SDK 58).
63
+ skipPlugins: true,
64
+ });
59
65
  } catch (error) {
60
66
  if (hasAppConfig) {
61
67
  throw error;
@@ -35,7 +35,7 @@ export type ResolvedBrownfieldPluginAndroidConfig = {
35
35
  moduleName: string;
36
36
  packageName: string;
37
37
  minSdkVersion: number;
38
- targetSdkVersion: number;
38
+ targetSdkVersion?: number;
39
39
  compileSdkVersion: number;
40
40
  groupId: string;
41
41
  artifactId: string;
@@ -62,6 +62,7 @@ export type ResolvedBrownfieldPluginConfig = {
62
62
  };
63
63
 
64
64
  type BrownfieldExpoConfig = {
65
+ sdkVersion?: string;
65
66
  ios?: {
66
67
  bundleIdentifier?: string;
67
68
  };
@@ -70,6 +71,13 @@ type BrownfieldExpoConfig = {
70
71
  };
71
72
  };
72
73
 
74
+ const EXPO_SDK_COMPILE_SDK_37_FROM_MAJOR = 58;
75
+
76
+ function getDefaultCompileSdkVersion(sdkVersion: string | undefined): number {
77
+ const expoMajor = sdkVersion ? parseInt(sdkVersion.split('.')[0], 10) : -1;
78
+ return expoMajor >= EXPO_SDK_COMPILE_SDK_37_FROM_MAJOR ? 37 : 35;
79
+ }
80
+
73
81
  const CONFIG_FILE_PLUGIN_OVERLAP_ERROR =
74
82
  'Brownfield configuration is defined in both a brownfield config file and app.json plugin options. ' +
75
83
  'Use only one source: either brownfield.config.js, brownfield.config.json, package.json#brownfield, or the plugin options in app.json.';
@@ -193,8 +201,9 @@ export function resolveBrownfieldPluginConfig(
193
201
  moduleName: androidModuleName,
194
202
  packageName: effectiveProps.android?.packageName ?? androidPackage,
195
203
  minSdkVersion: effectiveProps.android?.minSdkVersion ?? 24,
196
- targetSdkVersion: effectiveProps.android?.targetSdkVersion ?? 35,
197
- compileSdkVersion: effectiveProps.android?.compileSdkVersion ?? 35,
204
+ compileSdkVersion:
205
+ effectiveProps.android?.compileSdkVersion ??
206
+ getDefaultCompileSdkVersion(expoConfig.sdkVersion),
198
207
  groupId: effectiveProps.android?.groupId ?? androidPackage,
199
208
  artifactId: effectiveProps.android?.artifactId ?? androidModuleName,
200
209
  version: effectiveProps.android?.version ?? '0.0.1-SNAPSHOT',
@@ -205,6 +214,9 @@ export function resolveBrownfieldPluginConfig(
205
214
  useLocalMaven: effectiveProps.android?.useLocalMaven ?? false,
206
215
  missingDimensionStrategies:
207
216
  effectiveProps.android?.missingDimensionStrategies ?? [],
217
+ ...(effectiveProps.android?.targetSdkVersion != null
218
+ ? { targetSdkVersion: effectiveProps.android.targetSdkVersion }
219
+ : {}),
208
220
  }
209
221
  : null,
210
222
  };
package/src/types.ts CHANGED
@@ -73,11 +73,13 @@ export type BrownfieldExpoAndroidConfig = {
73
73
 
74
74
  /**
75
75
  * Target SDK version for the Android library.
76
+ * Used on Expo SDK versions below 58; ignored on 58 and later.
76
77
  */
77
78
  targetSdkVersion?: number;
78
79
 
79
80
  /**
80
81
  * Compile SDK version for the Android library.
82
+ * Defaults to 37 on Expo SDK 58 and later, otherwise 35.
81
83
  */
82
84
  compileSdkVersion?: number;
83
85