@mono-labs/cli 0.0.237 → 0.0.242

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 (179) hide show
  1. package/bin/mono.js +1 -1
  2. package/dist/index.js +32 -51
  3. package/dist/lib/app.js +52 -0
  4. package/dist/lib/commands/build-process/boot.js +12 -0
  5. package/dist/lib/commands/build-process/cliFactory.js +145 -0
  6. package/dist/lib/commands/build-process/dataLayer.js +56 -0
  7. package/dist/lib/commands/build-process/index.js +11 -0
  8. package/dist/lib/commands/build-process/readEnv.js +34 -0
  9. package/dist/lib/commands/build-process/runMonoCommand.js +82 -0
  10. package/dist/lib/commands/build-process/runners/processManager.js +45 -0
  11. package/dist/lib/commands/build-process/runners/runBackground.js +46 -0
  12. package/dist/lib/commands/build-process/runners/runForeground.js +52 -0
  13. package/dist/lib/commands/build-process/test.js +32 -0
  14. package/dist/lib/commands/build-process/testflag.js +4 -0
  15. package/dist/lib/commands/build-process/validators.js +17 -0
  16. package/dist/lib/commands/loadFromRoot.js +53 -0
  17. package/dist/lib/commands/prune/index.js +10 -0
  18. package/dist/lib/commands/prune/prune.js +49 -0
  19. package/dist/lib/config.js +6 -0
  20. package/dist/lib/filterUnwantedEnvVars.js +88 -0
  21. package/dist/lib/generateNewEnvList.js +17 -0
  22. package/dist/lib/index.js +49 -0
  23. package/dist/src/cdk/cdk.js +6 -0
  24. package/dist/src/cdk/index.js +17 -0
  25. package/dist/{expo.js → src/expo.js} +18 -34
  26. package/dist/src/index.js +56 -0
  27. package/dist/src/merge-env.js +25 -0
  28. package/dist/{project → src/project}/build-mono-readme.js +11 -20
  29. package/dist/{project → src/project}/generate-readme.js +6 -13
  30. package/dist/{project → src/project}/index.js +4 -12
  31. package/dist/{stack.js → src/stack.js} +2 -2
  32. package/dist/src/tools.js +39 -0
  33. package/dist/types/index.d.ts +50 -9
  34. package/dist/types/lib/app.d.ts +3 -0
  35. package/dist/types/lib/commands/build-process/boot.d.ts +8 -0
  36. package/dist/types/lib/commands/build-process/cliFactory.d.ts +32 -0
  37. package/dist/types/lib/commands/build-process/dataLayer.d.ts +7 -0
  38. package/dist/types/lib/commands/build-process/readEnv.d.ts +1 -0
  39. package/dist/types/lib/commands/build-process/runMonoCommand.d.ts +10 -0
  40. package/dist/types/lib/commands/build-process/runners/processManager.d.ts +5 -0
  41. package/dist/types/lib/commands/build-process/runners/runBackground.d.ts +2 -0
  42. package/dist/types/lib/commands/build-process/runners/runForeground.d.ts +6 -0
  43. package/dist/types/lib/commands/build-process/test.d.ts +1 -0
  44. package/dist/types/lib/commands/build-process/testflag.d.ts +1 -0
  45. package/dist/types/lib/commands/build-process/validators.d.ts +1 -0
  46. package/dist/types/lib/commands/loadFromRoot.d.ts +7 -0
  47. package/dist/types/lib/commands/prune/prune.d.ts +1 -0
  48. package/dist/types/lib/config.d.ts +2 -0
  49. package/dist/types/lib/filterUnwantedEnvVars.d.ts +2 -0
  50. package/dist/types/lib/generateNewEnvList.d.ts +1 -0
  51. package/dist/types/lib/index.d.ts +2 -0
  52. package/dist/types/src/cdk/cdk.d.ts +1 -0
  53. package/dist/types/src/cdk/index.d.ts +1 -0
  54. package/dist/types/src/expo.d.ts +4 -0
  55. package/dist/types/src/index.d.ts +15 -0
  56. package/dist/types/src/project/build-mono-readme.d.ts +1 -0
  57. package/dist/types/src/project/generate-readme.d.ts +1 -0
  58. package/dist/types/{project → src/project}/index.d.ts +1 -1
  59. package/dist/types/src/project/merge-env.d.ts +1 -0
  60. package/dist/types/src/tools.d.ts +3 -0
  61. package/lib/app.d.ts +3 -0
  62. package/lib/app.ts +58 -0
  63. package/lib/commands/build-process/boot.d.ts +8 -0
  64. package/lib/commands/build-process/boot.ts +21 -0
  65. package/lib/commands/build-process/cliFactory.d.ts +32 -0
  66. package/lib/commands/build-process/cliFactory.ts +219 -0
  67. package/lib/commands/build-process/dataLayer.d.ts +7 -0
  68. package/lib/commands/build-process/dataLayer.ts +61 -0
  69. package/lib/commands/build-process/index.d.ts +1 -0
  70. package/lib/commands/build-process/index.ts +14 -0
  71. package/lib/commands/build-process/readEnv.d.ts +1 -0
  72. package/lib/commands/build-process/readEnv.ts +37 -0
  73. package/lib/commands/build-process/runMonoCommand.d.ts +10 -0
  74. package/lib/commands/build-process/runMonoCommand.ts +96 -0
  75. package/lib/commands/build-process/runners/processManager.d.ts +5 -0
  76. package/lib/commands/build-process/runners/processManager.ts +42 -0
  77. package/lib/commands/build-process/runners/runBackground.d.ts +2 -0
  78. package/lib/commands/build-process/runners/runBackground.ts +56 -0
  79. package/lib/commands/build-process/runners/runForeground.d.ts +6 -0
  80. package/lib/commands/build-process/runners/runForeground.ts +59 -0
  81. package/lib/commands/build-process/test.d.ts +1 -0
  82. package/lib/commands/build-process/test.ts +42 -0
  83. package/lib/commands/build-process/testflag.d.ts +1 -0
  84. package/lib/commands/build-process/testflag.ts +1 -0
  85. package/lib/commands/build-process/validators.d.ts +1 -0
  86. package/lib/commands/build-process/validators.ts +16 -0
  87. package/lib/commands/loadFromRoot.d.ts +7 -0
  88. package/lib/commands/loadFromRoot.ts +51 -0
  89. package/lib/commands/prune/index.d.ts +1 -0
  90. package/lib/commands/prune/index.ts +9 -0
  91. package/lib/commands/prune/prune.d.ts +1 -0
  92. package/lib/commands/prune/prune.ts +50 -0
  93. package/lib/config.d.ts +2 -0
  94. package/lib/filterUnwantedEnvVars.d.ts +2 -0
  95. package/lib/filterUnwantedEnvVars.ts +95 -0
  96. package/lib/generateNewEnvList.d.ts +1 -0
  97. package/lib/generateNewEnvList.ts +17 -0
  98. package/lib/index.d.ts +2 -0
  99. package/lib/index.ts +59 -0
  100. package/package.json +99 -84
  101. package/src/cdk/cdk.d.ts +1 -7
  102. package/src/cdk/cdk.ts +1 -0
  103. package/src/cdk/index.d.ts +1 -0
  104. package/src/cdk/index.ts +1 -0
  105. package/src/expo-files/filterUnwantedEnvVars.d.ts +3 -0
  106. package/src/expo-files/filterUnwantedEnvVars.ts +141 -144
  107. package/src/expo.d.ts +2 -9
  108. package/src/expo.ts +116 -0
  109. package/src/index.d.ts +22 -0
  110. package/src/index.ts +39 -42
  111. package/src/loadFromRoot.d.ts +32 -0
  112. package/src/merge-env.d.ts +1 -0
  113. package/src/merge-env.ts +24 -0
  114. package/src/project/build-mono-readme.d.ts +1 -0
  115. package/src/project/build-mono-readme.ts +460 -514
  116. package/src/project/build-readme.d.ts +2 -0
  117. package/src/project/generate-docs.d.ts +11 -0
  118. package/src/project/generate-readme.d.ts +1 -0
  119. package/src/project/generate-readme.ts +259 -284
  120. package/src/project/index.d.ts +45 -0
  121. package/src/project/index.ts +134 -144
  122. package/src/project/merge-env.d.ts +1 -0
  123. package/src/stack.d.ts +21 -0
  124. package/src/stack.ts +54 -55
  125. package/src/tools.d.ts +3 -4
  126. package/src/tools.ts +48 -0
  127. package/src/types/expo-config.d.ts +49 -0
  128. package/dist/cdk/index.js +0 -55
  129. package/dist/project/merge-env.js +0 -31
  130. package/dist/tools.js +0 -35
  131. package/dist/types/cdk/index.d.ts +0 -2
  132. package/dist/types/expo.d.ts +0 -3
  133. package/dist/types/merge-env.d.ts +0 -1
  134. package/dist/types/tools.d.ts +0 -1
  135. package/lib/app.js +0 -49
  136. package/lib/commands/build-process/boot.js +0 -15
  137. package/lib/commands/build-process/cliFactory.js +0 -161
  138. package/lib/commands/build-process/dataLayer.js +0 -59
  139. package/lib/commands/build-process/index.js +0 -13
  140. package/lib/commands/build-process/readEnv.js +0 -37
  141. package/lib/commands/build-process/runMonoCommand.js +0 -102
  142. package/lib/commands/build-process/runners/processManager.js +0 -38
  143. package/lib/commands/build-process/runners/runBackground.js +0 -60
  144. package/lib/commands/build-process/runners/runForeground.js +0 -60
  145. package/lib/commands/build-process/test.js +0 -50
  146. package/lib/commands/build-process/testflag.js +0 -1
  147. package/lib/commands/build-process/validators.js +0 -17
  148. package/lib/commands/generate/generateSeed.js +0 -223
  149. package/lib/commands/generate/index.js +0 -30
  150. package/lib/commands/loadFromRoot.js +0 -55
  151. package/lib/commands/prune/index.js +0 -12
  152. package/lib/commands/prune/prune.js +0 -50
  153. package/lib/commands/seed/import.js +0 -30
  154. package/lib/commands/seed/index.js +0 -12
  155. package/lib/commands/submit/index.js +0 -38
  156. package/lib/commands/update/eas.js +0 -39
  157. package/lib/commands/update/index.js +0 -87
  158. package/lib/filterUnwantedEnvVars.js +0 -123
  159. package/lib/generateNewEnvList.js +0 -14
  160. package/lib/index.js +0 -58
  161. package/src/cdk/index.js +0 -59
  162. package/src/expo.js +0 -133
  163. package/src/merge-env.js +0 -32
  164. package/src/tools.js +0 -36
  165. package/types.d.ts +0 -83
  166. /package/dist/{expo-files → src/expo-files}/filterUnwantedEnvVars.js +0 -0
  167. /package/dist/{loadFromRoot.js → src/loadFromRoot.js} +0 -0
  168. /package/dist/{project → src/project}/build-readme.js +0 -0
  169. /package/dist/{project → src/project}/generate-docs.js +0 -0
  170. /package/dist/{merge-env.js → src/project/merge-env.js} +0 -0
  171. /package/dist/types/{project/build-mono-readme.d.ts → lib/commands/build-process/index.d.ts} +0 -0
  172. /package/dist/types/{project/generate-readme.d.ts → lib/commands/prune/index.d.ts} +0 -0
  173. /package/dist/types/{expo-files → src/expo-files}/filterUnwantedEnvVars.d.ts +0 -0
  174. /package/dist/types/{loadFromRoot.d.ts → src/loadFromRoot.d.ts} +0 -0
  175. /package/dist/types/{project → src}/merge-env.d.ts +0 -0
  176. /package/dist/types/{project → src/project}/build-readme.d.ts +0 -0
  177. /package/dist/types/{project → src/project}/generate-docs.d.ts +0 -0
  178. /package/dist/types/{stack.d.ts → src/stack.d.ts} +0 -0
  179. /package/lib/{config.js → config.ts} +0 -0
@@ -1,158 +1,155 @@
1
- import { getMonoConfig } from '../loadFromRoot';
1
+ import { getMonoConfig } from '../loadFromRoot'
2
2
 
3
3
  export function filterUnwantedEnvVars(env: Record<string, string>) {
4
- const unwantedPrefixes = [
5
- // 'EFC_',
6
- // 'FPS_',
7
- // 'GIT_',
8
- // 'NVM_',
9
- // 'VSCODE_',
10
- // 'LOGONSERVER',
11
- // 'NUMBER_OF_PROCESSORS',
12
- // 'OS',
13
- // 'COREPACK',
14
- // 'PROCESSOR',
15
- // 'USERDOMAIN',
16
- // 'USERDOMAIN_ROAMINGPROFILE',
17
- // 'USERNAME',
18
- // 'CUDA',
19
- // 'SESSIONNAME',
20
- // 'ZES',
21
- // '3DVPATH',
22
- // 'APP_NAME',
23
- // 'asl.log',
24
- // 'BERRY_BIN_FOLDER',
25
- // 'CHROME_CRASHPAD_PIPE_NAME',
26
- // 'COLORTERM',
27
- // 'COMPUTERNAME',
28
- // 'CUDNN',
29
- // 'EAS_BUILD_PROFILE',
30
- // 'EAS_PROJECT_ID',
31
- // 'EXPO_UNSTABLE_ATLAS',
32
- // 'INIT_CWD',
33
- // 'JAVA_HOME',
34
- // 'LANG',
35
- // 'OneDrive',
36
- // 'ORIGINAL_XDG_CURRENT_DESKTOP',
37
- // 'PROJECT_CWD',
38
- // 'PROMPT',
39
- // 'PWD',
40
- // 'TERM_PROGRAM',
41
- // 'TERM_PROGRAM_VERSION',
42
- // '__PSLockDownPolicy',
43
- 'npm_config_force',
44
- ];
45
- return Object.keys(env).reduce(
46
- (obj, key) => {
47
- if (!unwantedPrefixes.some((prefix) => key.startsWith(prefix))) {
48
- obj[key] = env[key];
49
- }
50
- return obj;
51
- },
52
- {} as Record<string, string>
53
- );
4
+ const unwantedPrefixes = [
5
+ // 'EFC_',
6
+ // 'FPS_',
7
+ // 'GIT_',
8
+ // 'NVM_',
9
+ // 'VSCODE_',
10
+ // 'LOGONSERVER',
11
+ // 'NUMBER_OF_PROCESSORS',
12
+ // 'OS',
13
+ // 'COREPACK',
14
+ // 'PROCESSOR',
15
+ // 'USERDOMAIN',
16
+ // 'USERDOMAIN_ROAMINGPROFILE',
17
+ // 'USERNAME',
18
+ // 'CUDA',
19
+ // 'SESSIONNAME',
20
+ // 'ZES',
21
+ // '3DVPATH',
22
+ // 'APP_NAME',
23
+ // 'asl.log',
24
+ // 'BERRY_BIN_FOLDER',
25
+ // 'CHROME_CRASHPAD_PIPE_NAME',
26
+ // 'COLORTERM',
27
+ // 'COMPUTERNAME',
28
+ // 'CUDNN',
29
+ // 'EAS_BUILD_PROFILE',
30
+ // 'EAS_PROJECT_ID',
31
+ // 'EXPO_UNSTABLE_ATLAS',
32
+ // 'INIT_CWD',
33
+ // 'JAVA_HOME',
34
+ // 'LANG',
35
+ // 'OneDrive',
36
+ // 'ORIGINAL_XDG_CURRENT_DESKTOP',
37
+ // 'PROJECT_CWD',
38
+ // 'PROMPT',
39
+ // 'PWD',
40
+ // 'TERM_PROGRAM',
41
+ // 'TERM_PROGRAM_VERSION',
42
+ // '__PSLockDownPolicy',
43
+ 'npm_config_force',
44
+ ]
45
+ return Object.keys(env).reduce(
46
+ (obj, key) => {
47
+ if (!unwantedPrefixes.some((prefix) => key.startsWith(prefix))) {
48
+ obj[key] = env[key]
49
+ }
50
+ return obj
51
+ },
52
+ {} as Record<string, string>
53
+ )
54
54
  }
55
55
 
56
56
  export function filterUnwantedEnvVarsEAS(env: Record<string, string>) {
57
- const unwantedPrefixes = [
58
- 'ProgramData',
59
- 'ProgramFiles',
60
- 'ProgramFiles(x86)',
61
- 'ProgramW6432',
62
- 'PSModulePath',
63
- 'PUBLIC',
64
- 'TEMP',
65
- 'TMP',
66
- 'EFC_',
67
- 'FPS_',
68
- 'GIT_',
69
- 'NVM_',
70
- 'VSCODE_',
71
- 'windir',
72
- 'Chocolatey',
73
- 'ALLUSERSPROFILE',
74
- 'APPDATA',
75
- 'CommonProgramFiles',
76
- 'CommonProgramW6432',
77
- 'ComSpec',
78
- 'Driver',
79
- 'HOME',
80
- 'npm',
81
- 'HOME',
82
- 'LOCALAPPDATA',
83
- 'LOGONSERVER',
84
- 'NUMBER_OF_PROCESSORS',
85
- 'OS',
86
- 'COREPACK',
87
- 'PROCESSOR',
88
- 'USERDOMAIN',
89
- 'USERDOMAIN_ROAMINGPROFILE',
90
- 'USERNAME',
91
- 'USERPROFILE',
92
- 'CUDA',
93
- 'SESSIONNAME',
94
- 'ZES',
95
- '3DVPATH',
96
- 'APP_NAME',
97
- 'asl.log',
98
- 'BERRY_BIN_FOLDER',
99
- 'CHROME_CRASHPAD_PIPE_NAME',
100
- 'COLORTERM',
101
- 'COMPUTERNAME',
102
- 'CUDNN',
103
- 'EAS_BUILD_PROFILE',
104
- 'EAS_PROJECT_ID',
105
- 'EXPO_UNSTABLE_ATLAS',
106
- 'INIT_CWD',
107
- 'JAVA_HOME',
108
- 'LANG',
109
- 'OneDrive',
110
- 'ORIGINAL_XDG_CURRENT_DESKTOP',
111
- 'PROJECT_CWD',
112
- 'PROMPT',
113
- 'PWD',
114
- 'TERM_PROGRAM',
115
- 'TERM_PROGRAM_VERSION',
116
- '__PSLockDownPolicy',
117
- 'PATH',
118
- 'SystemRoot',
119
- 'SystemDrive',
120
- 'npm_',
121
- ];
122
- return Object.keys(env).reduce(
123
- (obj: Record<string, string>, key) => {
124
- if (!unwantedPrefixes.some((prefix) => key.startsWith(prefix))) {
125
- obj[key] = env[key];
126
- }
127
- return obj;
128
- },
129
- {} as Record<string, string>
130
- );
57
+ const unwantedPrefixes = [
58
+ 'ProgramData',
59
+ 'ProgramFiles',
60
+ 'ProgramFiles(x86)',
61
+ 'ProgramW6432',
62
+ 'PSModulePath',
63
+ 'PUBLIC',
64
+ 'TEMP',
65
+ 'TMP',
66
+ 'EFC_',
67
+ 'FPS_',
68
+ 'GIT_',
69
+ 'NVM_',
70
+ 'VSCODE_',
71
+ 'windir',
72
+ 'Chocolatey',
73
+ 'ALLUSERSPROFILE',
74
+ 'APPDATA',
75
+ 'CommonProgramFiles',
76
+ 'CommonProgramW6432',
77
+ 'ComSpec',
78
+ 'Driver',
79
+ 'HOME',
80
+ 'npm',
81
+ 'HOME',
82
+ 'LOCALAPPDATA',
83
+ 'LOGONSERVER',
84
+ 'NUMBER_OF_PROCESSORS',
85
+ 'OS',
86
+ 'COREPACK',
87
+ 'PROCESSOR',
88
+ 'USERDOMAIN',
89
+ 'USERDOMAIN_ROAMINGPROFILE',
90
+ 'USERNAME',
91
+ 'USERPROFILE',
92
+ 'CUDA',
93
+ 'SESSIONNAME',
94
+ 'ZES',
95
+ '3DVPATH',
96
+ 'APP_NAME',
97
+ 'asl.log',
98
+ 'BERRY_BIN_FOLDER',
99
+ 'CHROME_CRASHPAD_PIPE_NAME',
100
+ 'COLORTERM',
101
+ 'COMPUTERNAME',
102
+ 'CUDNN',
103
+ 'EAS_BUILD_PROFILE',
104
+ 'EAS_PROJECT_ID',
105
+ 'EXPO_UNSTABLE_ATLAS',
106
+ 'INIT_CWD',
107
+ 'JAVA_HOME',
108
+ 'LANG',
109
+ 'OneDrive',
110
+ 'ORIGINAL_XDG_CURRENT_DESKTOP',
111
+ 'PROJECT_CWD',
112
+ 'PROMPT',
113
+ 'PWD',
114
+ 'TERM_PROGRAM',
115
+ 'TERM_PROGRAM_VERSION',
116
+ '__PSLockDownPolicy',
117
+ 'PATH',
118
+ 'SystemRoot',
119
+ 'SystemDrive',
120
+ 'npm_',
121
+ ]
122
+ return Object.keys(env).reduce(
123
+ (obj: Record<string, string>, key) => {
124
+ if (!unwantedPrefixes.some((prefix) => key.startsWith(prefix))) {
125
+ obj[key] = env[key]
126
+ }
127
+ return obj
128
+ },
129
+ {} as Record<string, string>
130
+ )
131
131
  }
132
132
 
133
- export function generateNewEnvList(
134
- processEnv: Record<string, string>
135
- ): Record<string, string> {
136
- const { config } = getMonoConfig();
133
+ export function generateNewEnvList(processEnv: Record<string, string>): Record<string, string> {
134
+ const { config } = getMonoConfig()
137
135
 
138
- const envPrefixes: string[] =
139
- Array.isArray(config.envMap) ? config.envMap : [];
136
+ const envPrefixes: string[] = Array.isArray(config.envMap) ? config.envMap : []
140
137
 
141
- const result: Record<string, string> = { ...processEnv };
138
+ const result: Record<string, string> = { ...processEnv }
142
139
 
143
- for (const [key, value] of Object.entries(processEnv)) {
144
- // Only clone MONO_ variables
145
- if (!key.startsWith('MONO_')) continue;
140
+ for (const [key, value] of Object.entries(processEnv)) {
141
+ // Only clone MONO_ variables
142
+ if (!key.startsWith('MONO_')) continue
146
143
 
147
- // Skip secrets
148
- if (key.includes('SECRET')) continue;
144
+ // Skip secrets
145
+ if (key.includes('SECRET')) continue
149
146
 
150
- const suffix = key.slice('MONO_'.length);
147
+ const suffix = key.slice('MONO_'.length)
151
148
 
152
- for (const prefix of envPrefixes) {
153
- const mappedKey = `${prefix}_${suffix}`;
154
- result[mappedKey] = value;
155
- }
156
- }
157
- return result;
149
+ for (const prefix of envPrefixes) {
150
+ const mappedKey = `${prefix}_${suffix}`
151
+ result[mappedKey] = value
152
+ }
153
+ }
154
+ return result
158
155
  }
package/src/expo.d.ts CHANGED
@@ -1,11 +1,4 @@
1
- // Type definitions for mono-labs CLI
2
1
  import type { AppJSONConfig, ExpoConfig } from 'expo/config';
2
+ export declare function replaceTokens(input: string, tokens: Record<string, string>): string;
3
3
  export declare function setUpConfig(config: AppJSONConfig): ExpoConfig;
4
- export declare function replaceTokens(
5
- input: string,
6
- tokens: Record<string, string>
7
- ): string;
8
-
9
- export declare function filterUnwantedEnvVarsEAS(
10
- envVars: Record<string, string>
11
- ): Record<string, string>;
4
+ export declare function filterUnwantedEnvVarsEAS(envVars: Record<string, string>): Record<string, string>;
package/src/expo.ts ADDED
@@ -0,0 +1,116 @@
1
+ import type { AppJSONConfig, ExpoConfig } from 'expo/config'
2
+
3
+ export function replaceTokens(input: string, tokens: Record<string, string>): string {
4
+ return input.replace(/\$\{([^}]+)\}|\$([A-Z0-9_]+)/g, (_m, k1, k2) => {
5
+ const key = (k1 || k2) as string
6
+ const val = tokens[key]
7
+ return val == null ? '' : String(val)
8
+ })
9
+ }
10
+
11
+ function filterEnvByPrefix(env: NodeJS.ProcessEnv, prefix: string): Record<string, string> {
12
+ const filtered: Record<string, string> = {}
13
+ for (const [key, value] of Object.entries(env)) {
14
+ if (key.startsWith(prefix) && typeof value === 'string') {
15
+ filtered[key] = value
16
+ }
17
+ }
18
+ return filtered
19
+ }
20
+
21
+ export function setUpConfig(config: AppJSONConfig): ExpoConfig {
22
+ const { extra = {}, ...other } = (config.expo ?? {}) as any
23
+
24
+ const router = extra['router'] ? { origin: false, ...extra['router'] } : { origin: false }
25
+
26
+ return {
27
+ ...(config as any),
28
+ expo: {
29
+ ...other,
30
+ extra: {
31
+ ...filterEnvByPrefix(process.env, 'NEXT_PUBLIC_'),
32
+ eas: {
33
+ projectId: process.env.EAS_PROJECT_ID,
34
+ },
35
+ router,
36
+ ...extra,
37
+ },
38
+ },
39
+ } as ExpoConfig
40
+ }
41
+
42
+ export function filterUnwantedEnvVarsEAS(envVars: Record<string, string>): Record<string, string> {
43
+ // Keep in sync with lib/filterUnwantedEnvVars.ts
44
+ const unwantedPrefixes = [
45
+ 'ProgramData',
46
+ 'ProgramFiles',
47
+ 'ProgramFiles(x86)',
48
+ 'ProgramW6432',
49
+ 'PSModulePath',
50
+ 'PUBLIC',
51
+ 'TEMP',
52
+ 'TMP',
53
+ 'EFC_',
54
+ 'FPS_',
55
+ 'GIT_',
56
+ 'NVM_',
57
+ 'VSCODE_',
58
+ 'windir',
59
+ 'Chocolatey',
60
+ 'ALLUSERSPROFILE',
61
+ 'APPDATA',
62
+ 'CommonProgramFiles',
63
+ 'CommonProgramW6432',
64
+ 'ComSpec',
65
+ 'Driver',
66
+ 'HOME',
67
+ 'npm',
68
+ 'LOCALAPPDATA',
69
+ 'LOGONSERVER',
70
+ 'NUMBER_OF_PROCESSORS',
71
+ 'OS',
72
+ 'COREPACK',
73
+ 'PROCESSOR',
74
+ 'USERDOMAIN',
75
+ 'USERDOMAIN_ROAMINGPROFILE',
76
+ 'USERNAME',
77
+ 'USERPROFILE',
78
+ 'CUDA',
79
+ 'SESSIONNAME',
80
+ 'ZES',
81
+ '3DVPATH',
82
+ 'APP_NAME',
83
+ 'asl.log',
84
+ 'BERRY_BIN_FOLDER',
85
+ 'CHROME_CRASHPAD_PIPE_NAME',
86
+ 'COLORTERM',
87
+ 'COMPUTERNAME',
88
+ 'CUDNN',
89
+ 'EAS_BUILD_PROFILE',
90
+ 'EAS_PROJECT_ID',
91
+ 'EXPO_UNSTABLE_ATLAS',
92
+ 'INIT_CWD',
93
+ 'JAVA_HOME',
94
+ 'LANG',
95
+ 'OneDrive',
96
+ 'ORIGINAL_XDG_CURRENT_DESKTOP',
97
+ 'PROJECT_CWD',
98
+ 'PROMPT',
99
+ 'PWD',
100
+ 'TERM_PROGRAM',
101
+ 'TERM_PROGRAM_VERSION',
102
+ '__PSLockDownPolicy',
103
+ 'PATH',
104
+ 'SystemRoot',
105
+ 'SystemDrive',
106
+ 'npm_',
107
+ ]
108
+
109
+ const out: Record<string, string> = {}
110
+ for (const [key, value] of Object.entries(envVars)) {
111
+ if (!unwantedPrefixes.some((prefix) => key.startsWith(prefix))) {
112
+ out[key] = value
113
+ }
114
+ }
115
+ return out
116
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import {
2
+ filterUnwantedEnvVars,
3
+ filterUnwantedEnvVarsEAS,
4
+ generateNewEnvList,
5
+ } from './expo-files/filterUnwantedEnvVars'
6
+ type DataLayer = Record<string, unknown>
7
+ export declare function setData(key: string, value: unknown): void
8
+ export declare function mergeData(obj?: Record<string, unknown>): DataLayer
9
+ export declare function getData(key?: string): unknown
10
+ export declare function hasData(key: string): boolean
11
+ export declare function replaceTokens(
12
+ str: unknown,
13
+ env?: Record<string, string | undefined>
14
+ ): unknown
15
+ export { generateNewEnvList, filterUnwantedEnvVars, filterUnwantedEnvVarsEAS }
16
+ declare const _default: {
17
+ generateNewEnvList: typeof generateNewEnvList
18
+ replaceTokens: typeof replaceTokens
19
+ filterUnwantedEnvVars: typeof filterUnwantedEnvVars
20
+ filterUnwantedEnvVarsEAS: typeof filterUnwantedEnvVarsEAS
21
+ }
22
+ export default _default
package/src/index.ts CHANGED
@@ -1,76 +1,73 @@
1
1
  // Main entry point for @mono-labs/cli package
2
2
 
3
3
  import {
4
- filterUnwantedEnvVars,
5
- filterUnwantedEnvVarsEAS,
6
- generateNewEnvList,
7
- } from './expo-files/filterUnwantedEnvVars.js';
4
+ filterUnwantedEnvVars,
5
+ filterUnwantedEnvVarsEAS,
6
+ generateNewEnvList,
7
+ } from './expo-files/filterUnwantedEnvVars'
8
8
 
9
9
  /* ------------------------------------------------------------------
10
10
  * Internal data layer
11
11
  * ------------------------------------------------------------------ */
12
12
 
13
- type DataLayer = Record<string, unknown>;
13
+ type DataLayer = Record<string, unknown>
14
14
 
15
- const dataLayer: DataLayer = Object.create(null);
15
+ const dataLayer: DataLayer = Object.create(null)
16
16
 
17
17
  export function setData(key: string, value: unknown): void {
18
- if (value !== undefined) {
19
- dataLayer[key] = value;
20
- }
18
+ if (value !== undefined) {
19
+ dataLayer[key] = value
20
+ }
21
21
  }
22
22
 
23
23
  export function mergeData(obj: Record<string, unknown> = {}): DataLayer {
24
- Object.entries(obj).forEach(([k, v]) => setData(k, v));
25
- return dataLayer;
24
+ Object.entries(obj).forEach(([k, v]) => setData(k, v))
25
+ return dataLayer
26
26
  }
27
27
 
28
28
  export function getData(key?: string): unknown {
29
- return key ? dataLayer[key] : dataLayer;
29
+ return key ? dataLayer[key] : dataLayer
30
30
  }
31
31
 
32
32
  export function hasData(key: string): boolean {
33
- return Object.prototype.hasOwnProperty.call(dataLayer, key);
33
+ return Object.prototype.hasOwnProperty.call(dataLayer, key)
34
34
  }
35
35
 
36
36
  /* ------------------------------------------------------------------
37
37
  * Token replacement
38
38
  * ------------------------------------------------------------------ */
39
39
 
40
- export function replaceTokens(
41
- str: unknown,
42
- env?: Record<string, string | undefined>
43
- ): unknown {
44
- if (typeof str !== 'string') return str;
45
-
46
- return str.replace(/\$\{([^}]+)\}|\$([A-Z0-9_]+)/g, (_match, k1, k2) => {
47
- const key = k1 || k2;
48
-
49
- // data layer takes priority
50
- if (hasData(key)) {
51
- const val = getData(key);
52
- return val == null ? '' : String(val);
53
- }
54
-
55
- // environment variables
56
- if (env && Object.prototype.hasOwnProperty.call(env, key)) {
57
- const val = env[key];
58
- return val == null ? '' : String(val);
59
- }
60
-
61
- return '';
62
- });
40
+ export function replaceTokens(str: unknown, env?: Record<string, string | undefined>): unknown {
41
+ if (typeof str !== 'string') return str
42
+
43
+ return str.replace(/\$\{([^}]+)\}|\$([A-Z0-9_]+)/g, (_match, k1, k2) => {
44
+ const key = k1 || k2
45
+
46
+ // data layer takes priority
47
+ if (hasData(key)) {
48
+ const val = getData(key)
49
+ return val == null ? '' : String(val)
50
+ }
51
+
52
+ // environment variables
53
+ if (env && Object.prototype.hasOwnProperty.call(env, key)) {
54
+ const val = env[key]
55
+ return val == null ? '' : String(val)
56
+ }
57
+
58
+ return ''
59
+ })
63
60
  }
64
61
 
65
62
  /* ------------------------------------------------------------------
66
63
  * Exports
67
64
  * ------------------------------------------------------------------ */
68
65
 
69
- export { generateNewEnvList, filterUnwantedEnvVars, filterUnwantedEnvVarsEAS };
66
+ export { generateNewEnvList, filterUnwantedEnvVars, filterUnwantedEnvVarsEAS }
70
67
 
71
68
  export default {
72
- generateNewEnvList,
73
- replaceTokens,
74
- filterUnwantedEnvVars,
75
- filterUnwantedEnvVarsEAS,
76
- };
69
+ generateNewEnvList,
70
+ replaceTokens,
71
+ filterUnwantedEnvVars,
72
+ filterUnwantedEnvVarsEAS,
73
+ }
@@ -0,0 +1,32 @@
1
+ export interface MonoWorkspaceConfig {
2
+ packageMaps: Record<string, string>;
3
+ }
4
+ export interface MonoProjectConfig {
5
+ envMap: string[];
6
+ workspace: MonoWorkspaceConfig;
7
+ prodFlag: string;
8
+ }
9
+ export type MonoFiles = Record<string, unknown>;
10
+ export interface MonoConfig {
11
+ config: MonoProjectConfig;
12
+ files: MonoFiles;
13
+ }
14
+ /**
15
+ * Walk up from cwd until we find a directory containing package.json.
16
+ * This is treated as the project root.
17
+ */
18
+ export declare function findProjectRoot(startDir?: string): string;
19
+ export declare function getRootDirectory(): string;
20
+ export declare function getRootJson(): Record<string, unknown>;
21
+ /**
22
+ * Resolve the .mono directory.
23
+ * Priority:
24
+ * 1. project root/.mono
25
+ * 2. cwd/.mono
26
+ */
27
+ export declare function resolveMonoDirectory(): string | null;
28
+ export declare function getMonoFiles(): string[];
29
+ /**
30
+ * Load and validate mono configuration.
31
+ */
32
+ export declare function getMonoConfig(): MonoConfig;
@@ -0,0 +1 @@
1
+ export declare function loadMergedEnv(): NodeJS.ProcessEnv;
@@ -0,0 +1,24 @@
1
+ import fs from 'node:fs'
2
+ import path from 'node:path'
3
+ import dotenv from 'dotenv'
4
+
5
+ export function loadMergedEnv(): NodeJS.ProcessEnv {
6
+ const ENV_PATH = path.resolve(process.cwd(), '.env')
7
+ const ENV_LOCAL_PATH = path.resolve(process.cwd(), '.env.local')
8
+
9
+ const base = fs.existsSync(ENV_PATH) ? dotenv.parse(fs.readFileSync(ENV_PATH)) : {}
10
+ const local = fs.existsSync(ENV_LOCAL_PATH) ? dotenv.parse(fs.readFileSync(ENV_LOCAL_PATH)) : {}
11
+
12
+ const merged = {
13
+ ...base,
14
+ ...local,
15
+ }
16
+
17
+ for (const [key, value] of Object.entries(merged)) {
18
+ if (process.env[key] === undefined) {
19
+ process.env[key] = value
20
+ }
21
+ }
22
+
23
+ return process.env
24
+ }
@@ -0,0 +1 @@
1
+ export {};