rn-env-setup 1.1.0 → 1.3.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ankit Dhawan
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # rn-env-setup
2
2
 
3
- > One command to configure Android product flavors, iOS xcconfig + schemes, and JS env files for multi-environment React Native CI.
4
-
5
- ---
3
+ Set up and manage multiple React Native environments (like `dev`, `staging`, `prod`) from one config file.
6
4
 
7
5
  ## Install
8
6
 
@@ -12,36 +10,23 @@ npm install -g rn-env-setup
12
10
  npx rn-env-setup init
13
11
  ```
14
12
 
15
- ---
16
-
17
13
  ## Quick Start
18
14
 
19
- ### Option A — Interactive (no config file needed)
20
-
21
- ```bash
22
- cd your-rn-project
23
- npx rn-env-setup init # prompts for all details, saves rn-env.yaml
24
- npx rn-env-setup generate # applies everything
25
- ```
26
-
27
- ### Option B — Config file (CI-friendly)
28
-
29
- 1. Create `rn-env.yaml` in your project root (see example below).
30
- 2. Run:
31
-
32
15
  ```bash
33
- npx rn-env-setup validate # check for errors first
34
- npx rn-env-setup generate # apply
16
+ cd your-react-native-app
17
+ npx rn-env-setup init
18
+ npx rn-env-setup validate
19
+ npx rn-env-setup generate
35
20
  ```
36
21
 
37
- ---
22
+ This creates native environment setup for Android + iOS and generates helpful scripts in your app `package.json`.
38
23
 
39
- ## Config File (`rn-env.yaml`)
24
+ ## Minimal `rn-env.yaml`
40
25
 
41
26
  ```yaml
42
27
  appName: MyApp
43
28
  packageName: com.myapp
44
- jsEnvStrategy: react-native-config # react-native-config | dotenv | custom | none
29
+ jsEnvStrategy: react-native-config
45
30
  generateJsEnv: true
46
31
  generateCiSnippets: false
47
32
  enableRollback: true
@@ -51,9 +36,7 @@ environments:
51
36
  appName: MyApp Dev
52
37
  bundleId: com.myapp.dev
53
38
  apiUrl: https://dev.api.example.com
54
- logo: ./assets/icons/dev.png
55
39
  variables:
56
- ENABLE_LOGS: true
57
40
  FEATURE_NEW_UI: true
58
41
 
59
42
  - name: staging
@@ -67,204 +50,142 @@ environments:
67
50
  apiUrl: https://api.example.com
68
51
  ```
69
52
 
70
- ---
71
-
72
53
  ## CLI Commands
73
54
 
74
- | Command | Description |
75
- |---|---|
76
- | `rn-env-setup init` | Interactive setup, saves `rn-env.yaml` |
77
- | `rn-env-setup generate` | Apply config to Android + iOS + JS layer |
78
- | `rn-env-setup generate --dry-run` | Preview changes without writing files |
79
- | `rn-env-setup generate --android-only` | Skip iOS generation |
80
- | `rn-env-setup generate --ios-only` | Skip Android generation |
81
- | `rn-env-setup generate --config path/to/rn-env.yaml` | Use a specific config file |
82
- | `rn-env-setup validate` | Validate config without generating |
83
- | `rn-env-setup rollback` | Restore original files from backups |
84
-
85
- ---
86
-
87
- ## What Gets Generated
55
+ - `rn-env-setup init`: Interactive setup and creates `rn-env.yaml`
56
+ - `rn-env-setup validate`: Validates config only
57
+ - `rn-env-setup generate`: Applies Android + iOS + JS env generation
58
+ - `rn-env-setup generate --dry-run`: Preview changes only
59
+ - `rn-env-setup generate --android-only`: Skip iOS generation
60
+ - `rn-env-setup generate --ios-only`: Skip Android generation
61
+ - `rn-env-setup generate --config path/to/rn-env.yaml`: Use a custom config path
62
+ - `rn-env-setup rollback`: Restores backed-up files
88
63
 
89
- ### Android
64
+ ## Common Scripts Generated In Your App
90
65
 
91
- - **`android/app/build.gradle`** `flavorDimensions` + `productFlavors` block injected or updated. Includes:
92
- - `applicationId` per flavor
93
- - `resValue "string", "app_name"` per flavor
94
- - `buildConfigField "String", "API_URL"` per flavor
95
- - All custom `variables` as `buildConfigField` entries
66
+ After `generate`, your app `package.json` gets scripts like:
96
67
 
97
- - **`android/app/src/{env}/res/values/strings.xml`** — App name override per flavor
98
-
99
- - **`android/app/src/{env}/res/mipmap-*/ic_launcher.png`** — App icon copied from `logo` path
100
-
101
- **Build commands output:**
102
- ```bash
103
- react-native run-android --variant=devDebug
104
- react-native run-android --variant=stagingRelease
105
- cd android && ./gradlew assembleProdRelease
106
- ```
68
+ - `env:android:run:dev`
69
+ - `env:android:apk:dev:debug`
70
+ - `env:android:apk:dev:release`
71
+ - `env:android:aab:dev:release`
72
+ - `env:ios:run:dev`
107
73
 
108
- ### iOS
74
+ (And equivalent scripts for each environment name.)
109
75
 
110
- - **`ios/Configs/MyApp-Dev.xcconfig`** — Per-environment xcconfig with:
111
- - `PRODUCT_BUNDLE_IDENTIFIER`
112
- - `PRODUCT_NAME`
113
- - `API_URL`
114
- - All custom variables
76
+ ## FAQ
115
77
 
116
- - **`ios/MyApp.xcodeproj/xcshareddata/xcschemes/MyApp-Dev.xcscheme`** Shared scheme per environment
78
+ ### 1) How do I edit environments and regenerate?
117
79
 
118
- - **`project.pbxproj`** Build configurations added and wired to xcconfig files
80
+ 1. Update `rn-env.yaml`:
81
+ - add/remove environments
82
+ - change `bundleId`, `apiUrl`, `variables`, app names
83
+ 2. Run:
119
84
 
120
- **Build commands output:**
121
85
  ```bash
122
- react-native run-ios --scheme MyApp-Dev
123
- react-native run-ios --scheme MyApp-Staging
124
- xcodebuild -scheme MyApp-Prod -configuration Prod archive
86
+ npx rn-env-setup validate
87
+ npx rn-env-setup generate
125
88
  ```
126
89
 
127
- ### JS Layer
128
-
129
- **`react-native-config` strategy** → generates `.env.dev`, `.env.staging`, `.env.prod` + `src/env.d.ts`
90
+ Use this first if you want to preview:
130
91
 
131
92
  ```bash
132
- # Usage
133
- ENVFILE=.env.dev react-native run-android
134
- ENVFILE=.env.staging react-native run-ios
93
+ npx rn-env-setup generate --dry-run
135
94
  ```
136
95
 
137
- **`custom` strategy** generates `src/env.ts` with all environments baked in as a typed module:
96
+ ### 2) How do I add Firebase `google-services.json` for each environment?
138
97
 
139
- ```typescript
140
- import Config from './env';
98
+ Use Android flavor-specific files:
141
99
 
142
- console.log(Config.API_URL); // https://dev.api.example.com
143
- console.log(Config.ENABLE_LOGS); // true
144
- ```
100
+ - `android/app/src/dev/google-services.json`
101
+ - `android/app/src/staging/google-services.json`
102
+ - `android/app/src/prod/google-services.json`
145
103
 
146
- ---
104
+ You can also keep a default fallback at:
147
105
 
148
- ## CI/CD Integration
106
+ - `android/app/google-services.json`
149
107
 
150
- Set `generateCiSnippets: true` in your config to generate:
151
- - `.github/workflows/rn-multi-env.yml` — GitHub Actions workflow with one job per environment per platform
152
- - `bitrise-rn-env.yml` — Bitrise workflow snippets
108
+ Make sure your Android Firebase Gradle setup is already present in your RN app (`com.google.gms.google-services` plugin + classpath).
153
109
 
154
- ### Using in CI (no interactive prompts)
110
+ If you also use iOS Firebase, keep environment-specific `GoogleService-Info.plist` files and select/copy the right one per scheme/build step.
155
111
 
156
- ```yaml
157
- # .github/workflows/build.yml
158
- - name: Generate env config
159
- run: npx rn-env-setup generate --config rn-env.yaml
160
- ```
112
+ ### 3) How do I run the app for an environment?
161
113
 
162
- The tool is fully non-interactive when a config file exists — safe for all CI environments.
114
+ Use generated scripts:
163
115
 
164
- ---
165
-
166
- ## Idempotency
167
-
168
- `rn-env-setup generate` is safe to run multiple times:
169
-
170
- - **`build.gradle`**: The injected block is wrapped in marker comments. Re-running replaces only the marked block, leaving all other Gradle configuration untouched.
171
- - **Xcconfig files**: Overwritten on each run (content is deterministic).
172
- - **Scheme files**: Skipped if already exist (add `--force` to overwrite).
173
- - **Source set directories**: Created with `ensureDir` — no-op if present.
174
- - **Backups**: Only created once per file — won't overwrite an existing backup.
116
+ ```bash
117
+ npm run env:android:run:dev
118
+ npm run env:ios:run:dev
119
+ ```
175
120
 
176
- ---
121
+ Replace `dev` with `staging` or `prod`.
177
122
 
178
- ## Rollback
123
+ ### 4) How do I build APK, AAB, and IPA for different environments?
179
124
 
180
- If generation fails or produces unexpected results:
125
+ Android:
181
126
 
182
127
  ```bash
183
- npx rn-env-setup rollback
128
+ npm run env:android:apk:dev:debug
129
+ npm run env:android:apk:dev:release
130
+ npm run env:android:aab:dev:release
184
131
  ```
185
132
 
186
- This restores `.rn-env-backup` copies of `build.gradle` and `project.pbxproj`.
133
+ iOS archive (IPA flow):
187
134
 
188
- ---
135
+ ```bash
136
+ cd ios
137
+ xcodebuild -workspace MyApp.xcworkspace -scheme MyApp-Dev -configuration Dev -archivePath build/MyApp-Dev.xcarchive archive
138
+ ```
189
139
 
190
- ## Architecture
140
+ Then export IPA using your `ExportOptions.plist`:
191
141
 
142
+ ```bash
143
+ xcodebuild -exportArchive -archivePath build/MyApp-Dev.xcarchive -exportPath build -exportOptionsPlist ExportOptions.plist
192
144
  ```
193
- src/
194
- ├── cli.ts # commander entry point: init, generate, validate, rollback
195
- ├── index.ts # package entrypoint exports for programmatic usage
196
-
197
- ├── android/
198
- │ ├── android-generator.ts # Orchestrates Android: gradle + source sets + icons
199
- │ └── gradle-parser.ts # Safe bracket-balanced build.gradle manipulation
200
-
201
- ├── ios/
202
- │ ├── ios-generator.ts # Orchestrates iOS: xcconfig + schemes + pbxproj
203
- │ └── xcode-patcher.ts # pbxproj manipulation via `xcode` npm package
204
-
205
- ├── generators/
206
- │ ├── js-env-generator.ts # .env files / typed env.ts for JS layer
207
- │ └── ci-generator.ts # GitHub Actions + Bitrise CI snippets
208
-
209
- ├── types/
210
- │ ├── index.ts # ProjectConfig, EnvironmentConfig, GenerationResult types
211
- │ └── xcode.d.ts # Local declaration shim for xcode package
212
-
213
- └── utils/
214
- ├── config-loader.ts # YAML/JSON loader + inquirer interactive prompts
215
- ├── file-utils.ts # backup, rollback, logDry, normalizeEnvName, findFirst
216
- └── validator.ts # Pre-flight validation: duplicates, paths, bundle IDs
217
- ```
218
145
 
219
- ---
146
+ ### 5) How do I use environment variables or base URL in code?
147
+
148
+ Each environment gets `apiUrl` and optional `variables` from `rn-env.yaml`.
220
149
 
221
- ## Gradle Modification Strategy
150
+ If `jsEnvStrategy: react-native-config`:
222
151
 
223
- The tool uses **marker-comment-based block replacement** — not regex on the whole file:
152
+ ```ts
153
+ import Config from 'react-native-config';
224
154
 
225
- 1. On first run: locates the `android { }` block using bracket counting, appends the `productFlavors` block before the closing brace.
226
- 2. On subsequent runs: finds `// ── rn-env-setup: auto-generated` and `// ── end rn-env-setup` markers and replaces only what's between them.
155
+ const baseUrl = Config.API_URL;
156
+ const featureFlag = Config.FEATURE_NEW_UI;
157
+ ```
227
158
 
228
- This means your other Gradle configuration (signing, dependencies, build types) is **never touched**.
159
+ If `jsEnvStrategy: custom`, use generated `src/env.ts`:
229
160
 
230
- ---
161
+ ```ts
162
+ import Config from './src/env';
231
163
 
232
- ## Edge Cases Handled
164
+ const baseUrl = Config.API_URL;
165
+ ```
233
166
 
234
- | Case | Handling |
235
- |---|---|
236
- | Duplicate environment names | Validation error before generation |
237
- | Duplicate bundle IDs | Validation error before generation |
238
- | Missing logo file | Warning, generation continues |
239
- | Existing productFlavors (not ours) | Warning, replaced by ours |
240
- | No `.xcodeproj` found | iOS generation skipped with warning |
241
- | Generation fails mid-way | Rollback restores all backed-up files |
242
- | Config file not found | Clear error: run `init` first |
167
+ ### 6) How do I write test cases for different environments?
243
168
 
244
- ---
169
+ Use environment-specific test runs.
245
170
 
246
- ## Roadmap / Plugin System
171
+ Jest example (API URL assertions):
247
172
 
248
- Future versions will support a plugin API for custom generators:
173
+ ```ts
174
+ const envs = ['dev', 'staging', 'prod'];
249
175
 
250
- ```typescript
251
- // rn-env-plugin-firebase.ts (planned)
252
- export const plugin: RnEnvPlugin = {
253
- name: 'firebase',
254
- onGenerate: async (ctx, env) => {
255
- // Copy google-services.json per flavor
256
- },
257
- };
176
+ envs.forEach((env) => {
177
+ test(`API URL exists for ${env}`, () => {
178
+ process.env.ENV = env;
179
+ // load env config and assert URL/flags
180
+ });
181
+ });
258
182
  ```
259
183
 
260
- Planned features:
261
- - `--full-targets` flag for full iOS target duplication
262
- - White-label / multi-brand support (overlapping environments)
263
- - OTA / EAS Update channel injection
264
- - Fastlane lane generation
265
- - Firebase multi-app configuration
184
+ Recommended strategy:
266
185
 
267
- ---
186
+ - Unit tests: validate env config mapping and feature flags
187
+ - Integration tests: mock API client per environment base URL
188
+ - E2E tests: run per environment build/scheme in CI matrix
268
189
 
269
190
  ## License
270
191
 
package/dist/cli.js CHANGED
@@ -10,6 +10,7 @@ import { generateAndroid } from './android/android-generator.js';
10
10
  import { generateIos } from './ios/ios-generator.js';
11
11
  import { generateJsEnv } from './generators/js-env-generator.js';
12
12
  import { generateCiSnippets } from './generators/ci-generator.js';
13
+ import { generatePackageScripts } from './generators/package-scripts-generator.js';
13
14
  import { rollbackAll, printCommandSummary } from './utils/file-utils.js';
14
15
  const VERSION = '1.0.0';
15
16
  const program = new Command();
@@ -141,6 +142,18 @@ program
141
142
  console.error(chalk.red(e instanceof Error ? e.message : String(e)));
142
143
  }
143
144
  }
145
+ // ── Package scripts (run/build/health) ───────────────────────────────────
146
+ {
147
+ const spinner = ora('Generating package.json scripts...').start();
148
+ try {
149
+ const result = await generatePackageScripts(ctx);
150
+ handleResult(result, spinner, 'Package scripts');
151
+ }
152
+ catch (e) {
153
+ spinner.fail(chalk.red('package.json scripts generation failed'));
154
+ console.error(chalk.red(e instanceof Error ? e.message : String(e)));
155
+ }
156
+ }
144
157
  // ── CI snippets ───────────────────────────────────────────────────────────
145
158
  if (config.generateCiSnippets) {
146
159
  const spinner = ora('Generating CI snippets...').start();
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { GeneratorContext, GenerationResult } from '../types/index.js';
2
+ export declare function generatePackageScripts(ctx: GeneratorContext): Promise<GenerationResult>;
3
+ //# sourceMappingURL=package-scripts-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-scripts-generator.d.ts","sourceRoot":"","sources":["../../src/generators/package-scripts-generator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAMvE,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgE7F"}
@@ -0,0 +1,133 @@
1
+ // src/generators/package-scripts-generator.ts
2
+ // Updates the target RN app package.json with environment run/build scripts
3
+ // and generates a Gradle variant health-check helper.
4
+ import fs from 'fs-extra';
5
+ import path from 'path';
6
+ import chalk from 'chalk';
7
+ import { logDry, normalizeEnvName } from '../utils/file-utils.js';
8
+ const PACKAGE_JSON_PATH = 'package.json';
9
+ const GRADLE_HEALTH_SCRIPT_PATH = 'scripts/gradle-health-check.cjs';
10
+ export async function generatePackageScripts(ctx) {
11
+ const result = {
12
+ success: false,
13
+ filesModified: [],
14
+ filesCreated: [],
15
+ commands: [],
16
+ warnings: [],
17
+ errors: [],
18
+ };
19
+ const packageJsonPath = path.join(ctx.projectRoot, PACKAGE_JSON_PATH);
20
+ if (!fs.existsSync(packageJsonPath)) {
21
+ result.warnings.push(`Skipping package scripts: ${PACKAGE_JSON_PATH} not found.`);
22
+ result.success = true;
23
+ return result;
24
+ }
25
+ let pkg;
26
+ try {
27
+ pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
28
+ }
29
+ catch (e) {
30
+ result.errors.push(`Failed to parse ${PACKAGE_JSON_PATH}: ${e instanceof Error ? e.message : String(e)}`);
31
+ return result;
32
+ }
33
+ const currentScripts = pkg.scripts ?? {};
34
+ const generatedScripts = buildGeneratedScripts(ctx);
35
+ const nextScripts = { ...currentScripts, ...generatedScripts };
36
+ const scriptsChanged = JSON.stringify(currentScripts) !== JSON.stringify(nextScripts);
37
+ if (scriptsChanged) {
38
+ if (ctx.dryRun) {
39
+ logDry(`Would modify: ${PACKAGE_JSON_PATH}`);
40
+ for (const [name, command] of Object.entries(generatedScripts)) {
41
+ logDry(` script: ${name} = ${command}`);
42
+ }
43
+ }
44
+ else {
45
+ pkg.scripts = nextScripts;
46
+ fs.writeFileSync(packageJsonPath, JSON.stringify(pkg, null, 2) + '\n', 'utf-8');
47
+ result.filesModified.push(PACKAGE_JSON_PATH);
48
+ console.log(chalk.green(` ✔ Updated scripts in ${PACKAGE_JSON_PATH}`));
49
+ }
50
+ }
51
+ const gradleHealthScript = buildGradleHealthScript(ctx);
52
+ const gradleHealthPath = path.join(ctx.projectRoot, GRADLE_HEALTH_SCRIPT_PATH);
53
+ const relHealthPath = GRADLE_HEALTH_SCRIPT_PATH;
54
+ const healthScriptExisted = fs.existsSync(gradleHealthPath);
55
+ if (ctx.dryRun) {
56
+ logDry(`Would create/update: ${relHealthPath}`);
57
+ }
58
+ else {
59
+ await fs.ensureDir(path.dirname(gradleHealthPath));
60
+ fs.writeFileSync(gradleHealthPath, gradleHealthScript, 'utf-8');
61
+ if (!healthScriptExisted) {
62
+ result.filesCreated.push(relHealthPath);
63
+ }
64
+ else {
65
+ result.filesModified.push(relHealthPath);
66
+ }
67
+ console.log(chalk.green(` ✔ Wrote ${relHealthPath}`));
68
+ }
69
+ result.success = true;
70
+ return result;
71
+ }
72
+ function buildGeneratedScripts(ctx) {
73
+ const scripts = {};
74
+ const appName = ctx.config.appName;
75
+ const needsEnvFile = ctx.config.jsEnvStrategy === 'react-native-config' || ctx.config.jsEnvStrategy === 'dotenv';
76
+ for (const env of ctx.config.environments) {
77
+ const envKey = normalizeEnvName(env.name);
78
+ const envCap = capitalize(envKey);
79
+ const envPrefix = needsEnvFile ? `ENVFILE=.env.${envKey} ` : '';
80
+ scripts[`env:android:run:${envKey}`] = `${envPrefix}react-native run-android --variant=${envKey}Debug`;
81
+ scripts[`env:android:apk:${envKey}:debug`] = `cd android && ./gradlew assemble${envCap}Debug`;
82
+ scripts[`env:android:apk:${envKey}:release`] = `cd android && ./gradlew assemble${envCap}Release`;
83
+ scripts[`env:android:aab:${envKey}:release`] = `cd android && ./gradlew bundle${envCap}Release`;
84
+ scripts[`env:ios:run:${envKey}`] = `${envPrefix}react-native run-ios --scheme ${appName}-${envCap}`;
85
+ }
86
+ scripts['env:health:gradle'] = `node ${GRADLE_HEALTH_SCRIPT_PATH}`;
87
+ return scripts;
88
+ }
89
+ function buildGradleHealthScript(ctx) {
90
+ const envKeys = ctx.config.environments.map((env) => normalizeEnvName(env.name));
91
+ const envCaps = envKeys.map((env) => capitalize(env));
92
+ return `#!/usr/bin/env node
93
+ // Auto-generated by rn-env-setup. Verifies Gradle flavor variants/tasks exist.
94
+
95
+ const { execSync } = require('node:child_process');
96
+
97
+ const FLAVORS = ${JSON.stringify(envCaps, null, 2)};
98
+ const EXPECTED_TASKS = FLAVORS.flatMap((flavor) => [
99
+ \`assemble\${flavor}Debug\`,
100
+ \`assemble\${flavor}Release\`,
101
+ \`bundle\${flavor}Release\`,
102
+ ]);
103
+
104
+ function runGradleTasks() {
105
+ try {
106
+ return execSync('./gradlew tasks --all', { cwd: 'android', stdio: 'pipe', encoding: 'utf-8' });
107
+ } catch (error) {
108
+ const stderr = error && typeof error === 'object' ? error.stderr : '';
109
+ const message = String(stderr || error);
110
+ console.error('Gradle health check failed to execute ./gradlew tasks --all');
111
+ console.error(message);
112
+ process.exit(1);
113
+ }
114
+ }
115
+
116
+ const tasksOutput = runGradleTasks();
117
+ const missing = EXPECTED_TASKS.filter((task) => !new RegExp(\`\\\\b\${task}\\\\b\`).test(tasksOutput));
118
+
119
+ if (missing.length > 0) {
120
+ console.error('Gradle health check failed. Missing expected flavor/variant tasks:');
121
+ for (const task of missing) {
122
+ console.error(\` - \${task}\`);
123
+ }
124
+ process.exit(1);
125
+ }
126
+
127
+ console.log('Gradle health check passed. All expected flavor/variant tasks are present.');
128
+ `;
129
+ }
130
+ function capitalize(s) {
131
+ return s.charAt(0).toUpperCase() + s.slice(1);
132
+ }
133
+ //# sourceMappingURL=package-scripts-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-scripts-generator.js","sourceRoot":"","sources":["../../src/generators/package-scripts-generator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './ios/ios-generator.js';
5
5
  export * from './ios/xcode-patcher.js';
6
6
  export * from './generators/js-env-generator.js';
7
7
  export * from './generators/ci-generator.js';
8
+ export * from './generators/package-scripts-generator.js';
8
9
  export * from './utils/file-utils.js';
9
10
  export * from './utils/validator.js';
10
11
  export * from './utils/config-loader.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ export * from './ios/ios-generator.js';
5
5
  export * from './ios/xcode-patcher.js';
6
6
  export * from './generators/js-env-generator.js';
7
7
  export * from './generators/ci-generator.js';
8
+ export * from './generators/package-scripts-generator.js';
8
9
  export * from './utils/file-utils.js';
9
10
  export * from './utils/validator.js';
10
11
  export * from './utils/config-loader.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC"}
package/package.json CHANGED
@@ -1,10 +1,18 @@
1
1
  {
2
2
  "name": "rn-env-setup",
3
- "version": "1.1.0",
4
- "description": "CLI to automate Android product flavors and iOS targets/schemes for React Native multi-environment CI",
3
+ "version": "1.3.0",
4
+ "description": "CLI to automate Android product flavors, iOS schemes/xcconfig, and JS env generation for React Native multi-environment apps",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
+ "homepage": "https://github.com/ad-dhawan/rn-env-setup#readme",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/ad-dhawan/rn-env-setup.git"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/ad-dhawan/rn-env-setup/issues"
15
+ },
8
16
  "bin": {
9
17
  "rn-env-setup": "dist/cli.js"
10
18
  },
@@ -16,7 +24,7 @@
16
24
  "prepublishOnly": "npm run build"
17
25
  },
18
26
  "keywords": ["react-native", "flavors", "iOS", "Android", "CI", "multi-env"],
19
- "author": "",
27
+ "author": "Ankit Dhawan",
20
28
  "license": "MIT",
21
29
  "dependencies": {
22
30
  "chalk": "^5.3.0",
@@ -46,5 +54,8 @@
46
54
  "files": [
47
55
  "dist/",
48
56
  "README.md"
49
- ]
57
+ ],
58
+ "publishConfig": {
59
+ "access": "public"
60
+ }
50
61
  }