@mono-labs/cli 0.0.238 → 0.0.243
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/bin/mono.js +1 -1
- package/dist/index.js +32 -51
- package/dist/lib/app.js +52 -0
- package/dist/lib/commands/build-process/boot.js +12 -0
- package/dist/lib/commands/build-process/cliFactory.js +145 -0
- package/dist/lib/commands/build-process/dataLayer.js +56 -0
- package/dist/lib/commands/build-process/index.js +11 -0
- package/dist/lib/commands/build-process/readEnv.js +34 -0
- package/dist/lib/commands/build-process/runMonoCommand.js +84 -0
- package/dist/lib/commands/build-process/runners/processManager.js +45 -0
- package/dist/lib/commands/build-process/runners/runBackground.js +46 -0
- package/dist/lib/commands/build-process/runners/runForeground.js +52 -0
- package/dist/lib/commands/build-process/test.js +32 -0
- package/dist/lib/commands/build-process/testflag.js +4 -0
- package/dist/lib/commands/build-process/validators.js +17 -0
- package/dist/lib/commands/loadFromRoot.js +53 -0
- package/dist/lib/commands/prune/index.js +10 -0
- package/dist/lib/commands/prune/prune.js +49 -0
- package/dist/lib/config.js +6 -0
- package/dist/lib/filterUnwantedEnvVars.js +88 -0
- package/dist/lib/generateNewEnvList.js +17 -0
- package/dist/lib/index.js +49 -0
- package/dist/src/cdk/cdk.js +6 -0
- package/dist/src/cdk/index.js +17 -0
- package/dist/{expo.js → src/expo.js} +18 -34
- package/dist/src/index.js +56 -0
- package/dist/src/merge-env.js +25 -0
- package/dist/{project → src/project}/build-mono-readme.js +11 -20
- package/dist/{project → src/project}/generate-readme.js +6 -13
- package/dist/{project → src/project}/index.js +4 -12
- package/dist/{stack.js → src/stack.js} +2 -2
- package/dist/src/tools.js +38 -0
- package/dist/types/index.d.ts +50 -9
- package/dist/types/lib/app.d.ts +3 -0
- package/dist/types/lib/commands/build-process/boot.d.ts +8 -0
- package/dist/types/lib/commands/build-process/cliFactory.d.ts +32 -0
- package/dist/types/lib/commands/build-process/dataLayer.d.ts +7 -0
- package/dist/types/lib/commands/build-process/readEnv.d.ts +1 -0
- package/dist/types/lib/commands/build-process/runMonoCommand.d.ts +10 -0
- package/dist/types/lib/commands/build-process/runners/processManager.d.ts +5 -0
- package/dist/types/lib/commands/build-process/runners/runBackground.d.ts +2 -0
- package/dist/types/lib/commands/build-process/runners/runForeground.d.ts +6 -0
- package/dist/types/lib/commands/build-process/test.d.ts +1 -0
- package/dist/types/lib/commands/build-process/testflag.d.ts +1 -0
- package/dist/types/lib/commands/build-process/validators.d.ts +1 -0
- package/dist/types/lib/commands/loadFromRoot.d.ts +7 -0
- package/dist/types/lib/commands/prune/prune.d.ts +1 -0
- package/dist/types/lib/config.d.ts +2 -0
- package/dist/types/lib/filterUnwantedEnvVars.d.ts +2 -0
- package/dist/types/lib/generateNewEnvList.d.ts +1 -0
- package/dist/types/lib/index.d.ts +2 -0
- package/dist/types/src/cdk/cdk.d.ts +1 -0
- package/dist/types/src/cdk/index.d.ts +1 -0
- package/dist/types/src/expo.d.ts +4 -0
- package/dist/types/src/index.d.ts +15 -0
- package/dist/types/src/project/build-mono-readme.d.ts +1 -0
- package/dist/types/src/project/generate-readme.d.ts +1 -0
- package/dist/types/{project → src/project}/index.d.ts +1 -1
- package/dist/types/src/project/merge-env.d.ts +1 -0
- package/dist/types/src/tools.d.ts +3 -0
- package/lib/app.ts +58 -0
- package/lib/commands/build-process/boot.ts +21 -0
- package/lib/commands/build-process/cliFactory.ts +219 -0
- package/lib/commands/build-process/dataLayer.ts +61 -0
- package/lib/commands/build-process/index.ts +14 -0
- package/lib/commands/build-process/readEnv.ts +37 -0
- package/lib/commands/build-process/runMonoCommand.ts +97 -0
- package/lib/commands/build-process/runners/processManager.ts +42 -0
- package/lib/commands/build-process/runners/runBackground.ts +56 -0
- package/lib/commands/build-process/runners/runForeground.ts +59 -0
- package/lib/commands/build-process/test.ts +42 -0
- package/lib/commands/build-process/testflag.ts +1 -0
- package/lib/commands/build-process/validators.ts +16 -0
- package/lib/commands/loadFromRoot.ts +51 -0
- package/lib/commands/prune/index.ts +9 -0
- package/lib/commands/prune/prune.ts +50 -0
- package/lib/filterUnwantedEnvVars.ts +95 -0
- package/lib/generateNewEnvList.ts +17 -0
- package/lib/index.ts +59 -0
- package/package.json +100 -84
- package/src/cdk/cdk.ts +1 -0
- package/src/cdk/index.ts +1 -0
- package/src/expo-files/filterUnwantedEnvVars.ts +141 -144
- package/src/expo.ts +116 -0
- package/src/index.ts +39 -42
- package/src/merge-env.ts +24 -0
- package/src/project/build-mono-readme.ts +460 -514
- package/src/project/generate-readme.ts +259 -284
- package/src/project/index.ts +134 -144
- package/src/stack.ts +54 -55
- package/src/tools.ts +39 -0
- package/dist/cdk/index.js +0 -55
- package/dist/project/merge-env.js +0 -31
- package/dist/tools.js +0 -35
- package/dist/types/cdk/index.d.ts +0 -2
- package/dist/types/expo.d.ts +0 -3
- package/dist/types/merge-env.d.ts +0 -1
- package/dist/types/tools.d.ts +0 -1
- package/lib/app.js +0 -49
- package/lib/commands/build-process/boot.js +0 -15
- package/lib/commands/build-process/cliFactory.js +0 -163
- package/lib/commands/build-process/dataLayer.js +0 -59
- package/lib/commands/build-process/index.js +0 -13
- package/lib/commands/build-process/readEnv.js +0 -37
- package/lib/commands/build-process/runMonoCommand.js +0 -102
- package/lib/commands/build-process/runners/processManager.js +0 -38
- package/lib/commands/build-process/runners/runBackground.js +0 -60
- package/lib/commands/build-process/runners/runForeground.js +0 -60
- package/lib/commands/build-process/test.js +0 -50
- package/lib/commands/build-process/testflag.js +0 -1
- package/lib/commands/build-process/validators.js +0 -17
- package/lib/commands/generate/generateSeed.js +0 -223
- package/lib/commands/generate/index.js +0 -30
- package/lib/commands/loadFromRoot.js +0 -55
- package/lib/commands/prune/index.js +0 -12
- package/lib/commands/prune/prune.js +0 -50
- package/lib/commands/seed/import.js +0 -30
- package/lib/commands/seed/index.js +0 -12
- package/lib/commands/submit/index.js +0 -38
- package/lib/commands/update/eas.js +0 -39
- package/lib/commands/update/index.js +0 -87
- package/lib/filterUnwantedEnvVars.js +0 -123
- package/lib/generateNewEnvList.js +0 -14
- package/lib/index.js +0 -58
- package/src/cdk/cdk.d.ts +0 -7
- package/src/cdk/index.js +0 -59
- package/src/expo.d.ts +0 -11
- package/src/expo.js +0 -133
- package/src/merge-env.js +0 -32
- package/src/tools.d.ts +0 -4
- package/src/tools.js +0 -36
- package/types.d.ts +0 -83
- /package/dist/{expo-files → src/expo-files}/filterUnwantedEnvVars.js +0 -0
- /package/dist/{loadFromRoot.js → src/loadFromRoot.js} +0 -0
- /package/dist/{project → src/project}/build-readme.js +0 -0
- /package/dist/{project → src/project}/generate-docs.js +0 -0
- /package/dist/{merge-env.js → src/project/merge-env.js} +0 -0
- /package/dist/types/{project/build-mono-readme.d.ts → lib/commands/build-process/index.d.ts} +0 -0
- /package/dist/types/{project/generate-readme.d.ts → lib/commands/prune/index.d.ts} +0 -0
- /package/dist/types/{expo-files → src/expo-files}/filterUnwantedEnvVars.d.ts +0 -0
- /package/dist/types/{loadFromRoot.d.ts → src/loadFromRoot.d.ts} +0 -0
- /package/dist/types/{project → src}/merge-env.d.ts +0 -0
- /package/dist/types/{project → src/project}/build-readme.d.ts +0 -0
- /package/dist/types/{project → src/project}/generate-docs.d.ts +0 -0
- /package/dist/types/{stack.d.ts → src/stack.d.ts} +0 -0
- /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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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
|
-
|
|
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
|
-
|
|
139
|
-
Array.isArray(config.envMap) ? config.envMap : [];
|
|
136
|
+
const envPrefixes: string[] = Array.isArray(config.envMap) ? config.envMap : []
|
|
140
137
|
|
|
141
|
-
|
|
138
|
+
const result: Record<string, string> = { ...processEnv }
|
|
142
139
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
140
|
+
for (const [key, value] of Object.entries(processEnv)) {
|
|
141
|
+
// Only clone MONO_ variables
|
|
142
|
+
if (!key.startsWith('MONO_')) continue
|
|
146
143
|
|
|
147
|
-
|
|
148
|
-
|
|
144
|
+
// Skip secrets
|
|
145
|
+
if (key.includes('SECRET')) continue
|
|
149
146
|
|
|
150
|
-
|
|
147
|
+
const suffix = key.slice('MONO_'.length)
|
|
151
148
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
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.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.ts
CHANGED
|
@@ -1,76 +1,73 @@
|
|
|
1
1
|
// Main entry point for @mono-labs/cli package
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} from './expo-files/filterUnwantedEnvVars
|
|
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
|
-
|
|
19
|
-
|
|
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
|
-
|
|
25
|
-
|
|
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
|
-
|
|
29
|
+
return key ? dataLayer[key] : dataLayer
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
export function hasData(key: string): boolean {
|
|
33
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
69
|
+
generateNewEnvList,
|
|
70
|
+
replaceTokens,
|
|
71
|
+
filterUnwantedEnvVars,
|
|
72
|
+
filterUnwantedEnvVarsEAS,
|
|
73
|
+
}
|
package/src/merge-env.ts
ADDED
|
@@ -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
|
+
}
|