@highstate/backend 0.6.2 → 0.7.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/dist/index.d.ts +6 -3
- package/dist/index.mjs +38 -10
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
@@ -56,9 +56,9 @@ declare class LocalPulumiHost {
|
|
56
56
|
private lock;
|
57
57
|
private constructor();
|
58
58
|
getCurrentUser(): Promise<WhoAmIResult | null>;
|
59
|
-
runInline<T>(projectId: string, pulumiProjectName: string, pulumiStackName: string, program: () => Promise<void> | Promise<Record<string, unknown>>, fn: (stack: Stack) => Promise<T>): Promise<T>;
|
60
|
-
runEmpty<T>(projectId: string, pulumiProjectName: string, pulumiStackName: string, fn: (stack: Stack) => Promise<T>): Promise<T>;
|
61
|
-
runLocal<T>(projectId: string, pulumiProjectName: string, pulumiStackName: string, programPathResolver: () => Promise<string> | string, fn: (stack: Stack) => Promise<T>, stackConfig?: ConfigMap): Promise<T>;
|
59
|
+
runInline<T>(projectId: string, pulumiProjectName: string, pulumiStackName: string, program: () => Promise<void> | Promise<Record<string, unknown>>, fn: (stack: Stack) => Promise<T>, envVars?: Record<string, string>): Promise<T>;
|
60
|
+
runEmpty<T>(projectId: string, pulumiProjectName: string, pulumiStackName: string, fn: (stack: Stack) => Promise<T>, envVars?: Record<string, string>): Promise<T>;
|
61
|
+
runLocal<T>(projectId: string, pulumiProjectName: string, pulumiStackName: string, programPathResolver: () => Promise<string> | string, fn: (stack: Stack) => Promise<T>, stackConfig?: ConfigMap, envVars?: Record<string, string>): Promise<T>;
|
62
62
|
private sharedPassword;
|
63
63
|
private passwords;
|
64
64
|
hasPassword(projectId: string): boolean;
|
@@ -137,6 +137,7 @@ declare const configSchema: z.ZodObject<{
|
|
137
137
|
HIGHSTATE_BACKEND_RUNNER_LOCAL_SKIP_STATE_CHECK: z.ZodDefault<z.ZodBoolean>;
|
138
138
|
HIGHSTATE_BACKEND_RUNNER_LOCAL_PRINT_OUTPUT: z.ZodDefault<z.ZodBoolean>;
|
139
139
|
HIGHSTATE_BACKEND_RUNNER_LOCAL_SOURCE_BASE_PATH: z.ZodOptional<z.ZodString>;
|
140
|
+
HIGHSTATE_BACKEND_RUNNER_LOCAL_CACHE_DIR: z.ZodOptional<z.ZodString>;
|
140
141
|
HIGHSTATE_BACKEND_RUNNER_TYPE: z.ZodDefault<z.ZodEnum<["local"]>>;
|
141
142
|
HIGHSTATE_BACKEND_STATE_LOCAL_DIR: z.ZodOptional<z.ZodString>;
|
142
143
|
HIGHSTATE_BACKEND_STATE_TYPE: z.ZodDefault<z.ZodEnum<["local"]>>;
|
@@ -167,6 +168,7 @@ declare const configSchema: z.ZodObject<{
|
|
167
168
|
HIGHSTATE_BACKEND_PROJECT_PROJECTS_DIR?: string | undefined;
|
168
169
|
HIGHSTATE_BACKEND_STATE_LOCAL_DIR?: string | undefined;
|
169
170
|
HIGHSTATE_BACKEND_RUNNER_LOCAL_SOURCE_BASE_PATH?: string | undefined;
|
171
|
+
HIGHSTATE_BACKEND_RUNNER_LOCAL_CACHE_DIR?: string | undefined;
|
170
172
|
HIGHSTATE_BACKEND_TERMINAL_DOCKER_HOST?: string | undefined;
|
171
173
|
HIGHSTATE_BACKEND_WORKSPACE_LOCAL_DIR?: string | undefined;
|
172
174
|
}, {
|
@@ -183,6 +185,7 @@ declare const configSchema: z.ZodObject<{
|
|
183
185
|
HIGHSTATE_BACKEND_RUNNER_LOCAL_SKIP_STATE_CHECK?: boolean | undefined;
|
184
186
|
HIGHSTATE_BACKEND_RUNNER_LOCAL_PRINT_OUTPUT?: boolean | undefined;
|
185
187
|
HIGHSTATE_BACKEND_RUNNER_LOCAL_SOURCE_BASE_PATH?: string | undefined;
|
188
|
+
HIGHSTATE_BACKEND_RUNNER_LOCAL_CACHE_DIR?: string | undefined;
|
186
189
|
HIGHSTATE_BACKEND_RUNNER_TYPE?: "local" | undefined;
|
187
190
|
HIGHSTATE_BACKEND_TERMINAL_DOCKER_BINARY?: string | undefined;
|
188
191
|
HIGHSTATE_BACKEND_TERMINAL_DOCKER_HOST?: string | undefined;
|
package/dist/index.mjs
CHANGED
@@ -79,7 +79,7 @@ class LocalPulumiHost {
|
|
79
79
|
return null;
|
80
80
|
}
|
81
81
|
}
|
82
|
-
async runInline(projectId, pulumiProjectName, pulumiStackName, program, fn) {
|
82
|
+
async runInline(projectId, pulumiProjectName, pulumiStackName, program, fn, envVars) {
|
83
83
|
return await this.lock.acquire(`${pulumiProjectName}.${pulumiStackName}`, async () => {
|
84
84
|
const { LocalWorkspace } = await import('@pulumi/pulumi/automation/index.js');
|
85
85
|
const stack = await LocalWorkspace.createOrSelectStack(
|
@@ -95,7 +95,8 @@ class LocalPulumiHost {
|
|
95
95
|
},
|
96
96
|
envVars: {
|
97
97
|
PULUMI_CONFIG_PASSPHRASE: this.getPassword(projectId),
|
98
|
-
PULUMI_K8S_AWAIT_ALL: "true"
|
98
|
+
PULUMI_K8S_AWAIT_ALL: "true",
|
99
|
+
...envVars
|
99
100
|
}
|
100
101
|
}
|
101
102
|
);
|
@@ -112,12 +113,19 @@ class LocalPulumiHost {
|
|
112
113
|
}
|
113
114
|
});
|
114
115
|
}
|
115
|
-
async runEmpty(projectId, pulumiProjectName, pulumiStackName, fn) {
|
116
|
-
return await this.runInline(
|
117
|
-
|
116
|
+
async runEmpty(projectId, pulumiProjectName, pulumiStackName, fn, envVars) {
|
117
|
+
return await this.runInline(
|
118
|
+
projectId,
|
119
|
+
pulumiProjectName,
|
120
|
+
pulumiStackName,
|
121
|
+
async () => {
|
122
|
+
},
|
123
|
+
fn,
|
124
|
+
envVars
|
125
|
+
);
|
118
126
|
}
|
119
127
|
// TODO: extract args to options object
|
120
|
-
async runLocal(projectId, pulumiProjectName, pulumiStackName, programPathResolver, fn, stackConfig) {
|
128
|
+
async runLocal(projectId, pulumiProjectName, pulumiStackName, programPathResolver, fn, stackConfig, envVars) {
|
121
129
|
return await this.lock.acquire(`${pulumiProjectName}.${pulumiStackName}`, async () => {
|
122
130
|
const { LocalWorkspace } = await import('@pulumi/pulumi/automation/index.js');
|
123
131
|
const stack = await LocalWorkspace.createOrSelectStack(
|
@@ -137,7 +145,8 @@ class LocalPulumiHost {
|
|
137
145
|
} : void 0,
|
138
146
|
envVars: {
|
139
147
|
PULUMI_CONFIG_PASSPHRASE: this.getPassword(projectId),
|
140
|
-
PULUMI_K8S_AWAIT_ALL: "true"
|
148
|
+
PULUMI_K8S_AWAIT_ALL: "true",
|
149
|
+
...envVars
|
141
150
|
}
|
142
151
|
}
|
143
152
|
);
|
@@ -1206,14 +1215,16 @@ const localRunnerBackendConfig = z.object({
|
|
1206
1215
|
HIGHSTATE_BACKEND_RUNNER_LOCAL_SKIP_SOURCE_CHECK: z.boolean({ coerce: true }).default(false),
|
1207
1216
|
HIGHSTATE_BACKEND_RUNNER_LOCAL_SKIP_STATE_CHECK: z.boolean({ coerce: true }).default(false),
|
1208
1217
|
HIGHSTATE_BACKEND_RUNNER_LOCAL_PRINT_OUTPUT: z.boolean({ coerce: true }).default(true),
|
1209
|
-
HIGHSTATE_BACKEND_RUNNER_LOCAL_SOURCE_BASE_PATH: z.string().optional()
|
1218
|
+
HIGHSTATE_BACKEND_RUNNER_LOCAL_SOURCE_BASE_PATH: z.string().optional(),
|
1219
|
+
HIGHSTATE_BACKEND_RUNNER_LOCAL_CACHE_DIR: z.string().optional()
|
1210
1220
|
});
|
1211
1221
|
class LocalRunnerBackend {
|
1212
|
-
constructor(skipSourceCheck, skipStateCheck, printOutput, sourceBasePath, pulumiProjectHost) {
|
1222
|
+
constructor(skipSourceCheck, skipStateCheck, printOutput, sourceBasePath, cacheDir, pulumiProjectHost) {
|
1213
1223
|
this.skipSourceCheck = skipSourceCheck;
|
1214
1224
|
this.skipStateCheck = skipStateCheck;
|
1215
1225
|
this.printOutput = printOutput;
|
1216
1226
|
this.sourceBasePath = sourceBasePath;
|
1227
|
+
this.cacheDir = cacheDir;
|
1217
1228
|
this.pulumiProjectHost = pulumiProjectHost;
|
1218
1229
|
}
|
1219
1230
|
events = new EventEmitter();
|
@@ -1398,7 +1409,10 @@ class LocalRunnerBackend {
|
|
1398
1409
|
}
|
1399
1410
|
);
|
1400
1411
|
},
|
1401
|
-
configMap
|
1412
|
+
configMap,
|
1413
|
+
{
|
1414
|
+
HIGHSTATE_CACHE_DIR: this.cacheDir
|
1415
|
+
}
|
1402
1416
|
);
|
1403
1417
|
} catch (error) {
|
1404
1418
|
this.updateState({
|
@@ -1468,6 +1482,9 @@ class LocalRunnerBackend {
|
|
1468
1482
|
},
|
1469
1483
|
(error) => this.pulumiProjectHost.tryUnlockStack(stack, error)
|
1470
1484
|
);
|
1485
|
+
},
|
1486
|
+
{
|
1487
|
+
PULUMI_K8S_DELETE_UNREACHABLE: "true"
|
1471
1488
|
}
|
1472
1489
|
);
|
1473
1490
|
} catch (error) {
|
@@ -1657,11 +1674,22 @@ class LocalRunnerBackend {
|
|
1657
1674
|
const [projectPath] = await resolveMainLocalProject();
|
1658
1675
|
sourceBasePath = resolve$1(projectPath, "units");
|
1659
1676
|
}
|
1677
|
+
let cacheDir = config.HIGHSTATE_BACKEND_RUNNER_LOCAL_CACHE_DIR;
|
1678
|
+
if (!cacheDir) {
|
1679
|
+
const homeDir = process.env.HOME ?? process.env.USERPROFILE;
|
1680
|
+
if (!homeDir) {
|
1681
|
+
throw new Error(
|
1682
|
+
"Failed to determine the home directory, please set HIGHSTATE_BACKEND_RUNNER_LOCAL_CACHE_DIR"
|
1683
|
+
);
|
1684
|
+
}
|
1685
|
+
cacheDir = resolve$1(homeDir, ".cache", "highstate");
|
1686
|
+
}
|
1660
1687
|
return new LocalRunnerBackend(
|
1661
1688
|
config.HIGHSTATE_BACKEND_RUNNER_LOCAL_SKIP_SOURCE_CHECK,
|
1662
1689
|
config.HIGHSTATE_BACKEND_RUNNER_LOCAL_SKIP_STATE_CHECK,
|
1663
1690
|
config.HIGHSTATE_BACKEND_RUNNER_LOCAL_PRINT_OUTPUT,
|
1664
1691
|
sourceBasePath,
|
1692
|
+
cacheDir,
|
1665
1693
|
pulumiProjectHost
|
1666
1694
|
);
|
1667
1695
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@highstate/backend",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.7.0",
|
4
4
|
"type": "module",
|
5
5
|
"module": "dist/index.mjs",
|
6
6
|
"types": "dist/index.d.ts",
|
@@ -27,7 +27,7 @@
|
|
27
27
|
"build": "pkgroll --tsconfig=tsconfig.build.json"
|
28
28
|
},
|
29
29
|
"dependencies": {
|
30
|
-
"@highstate/contract": "^0.
|
30
|
+
"@highstate/contract": "^0.7.0",
|
31
31
|
"@types/node": "^22.10.1",
|
32
32
|
"ajv": "^8.17.1",
|
33
33
|
"better-lock": "^3.2.0",
|
@@ -65,5 +65,5 @@
|
|
65
65
|
"rollup": "^4.28.1",
|
66
66
|
"typescript": "^5.7.2"
|
67
67
|
},
|
68
|
-
"gitHead": "
|
68
|
+
"gitHead": "2f5227f7b88cf38946e490fc4cdb96127bd8b174"
|
69
69
|
}
|