openxiangda-devkit-core 2.0.0-alpha.49 → 2.0.0-alpha.51
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/application-services.d.ts +9 -6
- package/dist/application-services.d.ts.map +1 -1
- package/dist/application-services.js +75 -72
- package/dist/application-services.js.map +1 -1
- package/dist/compiler/bundle.d.ts.map +1 -1
- package/dist/compiler/bundle.js +29 -12
- package/dist/compiler/bundle.js.map +1 -1
- package/dist/control-plane-client.d.ts +84 -11
- package/dist/control-plane-client.d.ts.map +1 -1
- package/dist/control-plane-client.js +28 -24
- package/dist/control-plane-client.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/toolchain-capsule.d.ts +44 -0
- package/dist/toolchain-capsule.d.ts.map +1 -0
- package/dist/toolchain-capsule.js +167 -0
- package/dist/toolchain-capsule.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type DeploymentEnvironment, type DeploymentRun, type DevkitResult, type Diagnostic, type WorkspaceIdentity } from "openxiangda-contracts";
|
|
2
2
|
import { type CompiledAppPackage } from "./compiler/index.js";
|
|
3
3
|
import { OpenXiangdaControlPlaneClient, type CreateApplicationSecretInput, type CreateNativeRoleMembershipInput, type CreateOAuthClientInput, type ControlPlaneClientOptions, type NativeRelationshipGrantFilter, type RotateApplicationSecretInput, type UpdateApplicationSecretInput, type UpdateNativeRoleMembershipInput, type UpdateOAuthClientInput } from "./control-plane-client.js";
|
|
4
|
+
import { type ToolchainCapsule } from "./toolchain-capsule.js";
|
|
4
5
|
export interface GenerateOptions {
|
|
5
6
|
root?: string;
|
|
6
7
|
check?: boolean;
|
|
@@ -28,6 +29,7 @@ export declare class OpenXiangdaApplicationServices {
|
|
|
28
29
|
private readonly options;
|
|
29
30
|
constructor(options?: {
|
|
30
31
|
toolchainVersion?: string;
|
|
32
|
+
toolchainCapsule?: ToolchainCapsule;
|
|
31
33
|
client?: OpenXiangdaControlPlaneClient;
|
|
32
34
|
clientOptions?: ControlPlaneClientOptions;
|
|
33
35
|
});
|
|
@@ -52,7 +54,7 @@ export declare class OpenXiangdaApplicationServices {
|
|
|
52
54
|
};
|
|
53
55
|
}>>;
|
|
54
56
|
platformCapabilities(root?: string): Promise<DevkitResult<import("openxiangda-contracts").PlatformCapabilities>>;
|
|
55
|
-
provisionApplication(root?: string): Promise<DevkitResult<import("openxiangda-contracts").ProvisionedApplication>>;
|
|
57
|
+
provisionApplication(root?: string): Promise<DevkitResult<undefined> | DevkitResult<import("openxiangda-contracts").ProvisionedApplication>>;
|
|
56
58
|
oauthClients(root?: string): Promise<DevkitResult<{
|
|
57
59
|
items: import("openxiangda-contracts").OAuthClient[];
|
|
58
60
|
total: number;
|
|
@@ -207,7 +209,7 @@ export declare class OpenXiangdaApplicationServices {
|
|
|
207
209
|
}[];
|
|
208
210
|
path: string;
|
|
209
211
|
}>>;
|
|
210
|
-
generate(input?: GenerateOptions): Promise<DevkitResult<{
|
|
212
|
+
generate(input?: GenerateOptions): Promise<DevkitResult<undefined> | DevkitResult<{
|
|
211
213
|
output: string;
|
|
212
214
|
changed: boolean;
|
|
213
215
|
contractDigest: string;
|
|
@@ -227,7 +229,7 @@ export declare class OpenXiangdaApplicationServices {
|
|
|
227
229
|
name: string;
|
|
228
230
|
}[];
|
|
229
231
|
}>>;
|
|
230
|
-
test(root?: string): Promise<DevkitResult<{
|
|
232
|
+
test(root?: string): Promise<DevkitResult<undefined> | DevkitResult<{
|
|
231
233
|
ok: boolean;
|
|
232
234
|
exitCode: number;
|
|
233
235
|
output: string;
|
|
@@ -263,7 +265,7 @@ export declare class OpenXiangdaApplicationServices {
|
|
|
263
265
|
deploymentPlan(input: {
|
|
264
266
|
root?: string;
|
|
265
267
|
environment: "preproduction";
|
|
266
|
-
}): Promise<DevkitResult<{
|
|
268
|
+
}): Promise<DevkitResult<undefined> | DevkitResult<{
|
|
267
269
|
environment: "preproduction";
|
|
268
270
|
appCode: string;
|
|
269
271
|
sealed: boolean;
|
|
@@ -274,7 +276,7 @@ export declare class OpenXiangdaApplicationServices {
|
|
|
274
276
|
configDigest: string;
|
|
275
277
|
contractDigest: string;
|
|
276
278
|
}>>;
|
|
277
|
-
deploy(input: DeployOptions): Promise<DevkitResult<
|
|
279
|
+
deploy(input: DeployOptions): Promise<DevkitResult<undefined> | DevkitResult<SealedApplication> | DevkitResult<DeploymentRun> | {
|
|
278
280
|
operation: string;
|
|
279
281
|
ok: boolean;
|
|
280
282
|
workspace: WorkspaceIdentity;
|
|
@@ -353,12 +355,13 @@ export declare class OpenXiangdaApplicationServices {
|
|
|
353
355
|
}): Promise<DevkitResult<undefined> | DevkitResult<import("./connected-development.js").ConnectedDevelopmentResult>>;
|
|
354
356
|
private workspace;
|
|
355
357
|
private client;
|
|
356
|
-
private nativeManagementRequest;
|
|
357
358
|
private get toolchainVersion();
|
|
359
|
+
private get toolchainCapsule();
|
|
358
360
|
private runPackageScript;
|
|
359
361
|
private repositoryIdentity;
|
|
360
362
|
private directoryBundle;
|
|
361
363
|
private versionTrainDiagnostics;
|
|
364
|
+
private toolchainDiagnostics;
|
|
362
365
|
private diagnostic;
|
|
363
366
|
private connectedDevelopmentFailure;
|
|
364
367
|
private ok;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-services.d.ts","sourceRoot":"","sources":["../src/application-services.ts"],"names":[],"mappings":"AAUA,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAOL,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,6BAA6B,EAE7B,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC5B,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"application-services.d.ts","sourceRoot":"","sources":["../src/application-services.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import { backendImageBuildTarget, publishBackendImage, } from "./backend-image-b
|
|
|
10
10
|
import { OPENXIANGDA_TOOLCHAIN_VERSION } from "./version.js";
|
|
11
11
|
import { git, loadWorkspace, } from "./workspace-loader.js";
|
|
12
12
|
import { validateNestInjectionContract } from "./nest-injection-contract.js";
|
|
13
|
+
import { collectWorkspaceToolchainDependencies, defaultDevkitCoreToolchainCapsule, ToolchainCapsuleScanLimitError, toolchainCapsuleDiagnostic, } from "./toolchain-capsule.js";
|
|
13
14
|
export class OpenXiangdaApplicationServices {
|
|
14
15
|
options;
|
|
15
16
|
constructor(options = {}) {
|
|
@@ -49,6 +50,10 @@ export class OpenXiangdaApplicationServices {
|
|
|
49
50
|
}
|
|
50
51
|
async provisionApplication(root) {
|
|
51
52
|
const workspace = await this.workspace(root);
|
|
53
|
+
const capsuleDiagnostics = this.toolchainDiagnostics(workspace);
|
|
54
|
+
if (capsuleDiagnostics.length > 0) {
|
|
55
|
+
return this.result("app.provision", workspace.context.workspace, undefined, capsuleDiagnostics);
|
|
56
|
+
}
|
|
52
57
|
const application = await (await this.client(workspace.root)).provisionApplication({
|
|
53
58
|
appCode: workspace.config.app.code,
|
|
54
59
|
name: workspace.config.app.name,
|
|
@@ -185,78 +190,77 @@ export class OpenXiangdaApplicationServices {
|
|
|
185
190
|
const workspace = await this.workspace(root);
|
|
186
191
|
const environment = this.deploymentEnvironment(environmentKey);
|
|
187
192
|
const client = await this.client(workspace.root);
|
|
188
|
-
const
|
|
189
|
-
const data = await client.nativeRoleMemberships(workspace.config.app.code, { ...input, environmentKey: environment }, request);
|
|
193
|
+
const data = await client.nativeRoleMemberships(workspace.config.app.code, { ...input, environmentKey: environment });
|
|
190
194
|
return this.ok("authz.membership.list", workspace.context.workspace, data);
|
|
191
195
|
}
|
|
192
196
|
async createNativeRoleMembership(root, input) {
|
|
193
197
|
const workspace = await this.workspace(root);
|
|
194
198
|
const environment = this.deploymentEnvironment(input.environmentKey);
|
|
195
199
|
const client = await this.client(workspace.root);
|
|
196
|
-
const data = await client.createNativeRoleMembership(workspace.config.app.code, { ...input, environmentKey: environment }
|
|
200
|
+
const data = await client.createNativeRoleMembership(workspace.config.app.code, { ...input, environmentKey: environment });
|
|
197
201
|
return this.ok("authz.membership.create", workspace.context.workspace, data);
|
|
198
202
|
}
|
|
199
203
|
async updateNativeRoleMembership(root, membershipId, input) {
|
|
200
204
|
const workspace = await this.workspace(root);
|
|
201
205
|
const environment = this.deploymentEnvironment(input.environmentKey);
|
|
202
206
|
const client = await this.client(workspace.root);
|
|
203
|
-
const data = await client.updateNativeRoleMembership(workspace.config.app.code, membershipId, { ...input, environmentKey: environment }
|
|
207
|
+
const data = await client.updateNativeRoleMembership(workspace.config.app.code, membershipId, { ...input, environmentKey: environment });
|
|
204
208
|
return this.ok("authz.membership.update", workspace.context.workspace, data);
|
|
205
209
|
}
|
|
206
210
|
async revokeNativeRoleMembership(root, membershipId, input) {
|
|
207
211
|
const workspace = await this.workspace(root);
|
|
208
212
|
const environment = this.deploymentEnvironment(input.environmentKey);
|
|
209
213
|
const client = await this.client(workspace.root);
|
|
210
|
-
const data = await client.revokeNativeRoleMembership(workspace.config.app.code, membershipId, { ...input, environmentKey: environment }
|
|
214
|
+
const data = await client.revokeNativeRoleMembership(workspace.config.app.code, membershipId, { ...input, environmentKey: environment });
|
|
211
215
|
return this.ok("authz.membership.revoke", workspace.context.workspace, data);
|
|
212
216
|
}
|
|
213
217
|
async nativeSuperAdmins(root, environmentKey, input = {}) {
|
|
214
218
|
const workspace = await this.workspace(root);
|
|
215
219
|
const environment = this.deploymentEnvironment(environmentKey);
|
|
216
220
|
const client = await this.client(workspace.root);
|
|
217
|
-
const data = await client.nativeSuperAdmins(workspace.config.app.code, input,
|
|
221
|
+
const data = await client.nativeSuperAdmins(workspace.config.app.code, { ...input, environmentKey: environment });
|
|
218
222
|
return this.ok("authz.super-admin.list", workspace.context.workspace, data);
|
|
219
223
|
}
|
|
220
224
|
async grantNativeSuperAdmin(root, environmentKey, input) {
|
|
221
225
|
const workspace = await this.workspace(root);
|
|
222
226
|
const environment = this.deploymentEnvironment(environmentKey);
|
|
223
227
|
const client = await this.client(workspace.root);
|
|
224
|
-
const data = await client.grantNativeSuperAdmin(workspace.config.app.code, input,
|
|
228
|
+
const data = await client.grantNativeSuperAdmin(workspace.config.app.code, { ...input, environmentKey: environment });
|
|
225
229
|
return this.ok("authz.super-admin.grant", workspace.context.workspace, data);
|
|
226
230
|
}
|
|
227
231
|
async revokeNativeSuperAdmin(root, environmentKey, grantId, input) {
|
|
228
232
|
const workspace = await this.workspace(root);
|
|
229
233
|
const environment = this.deploymentEnvironment(environmentKey);
|
|
230
234
|
const client = await this.client(workspace.root);
|
|
231
|
-
const data = await client.revokeNativeSuperAdmin(workspace.config.app.code, grantId, input,
|
|
235
|
+
const data = await client.revokeNativeSuperAdmin(workspace.config.app.code, grantId, { ...input, environmentKey: environment });
|
|
232
236
|
return this.ok("authz.super-admin.revoke", workspace.context.workspace, data);
|
|
233
237
|
}
|
|
234
238
|
async nativeRelationshipGrants(root, environmentKey, input = {}) {
|
|
235
239
|
const workspace = await this.workspace(root);
|
|
236
240
|
const environment = this.deploymentEnvironment(environmentKey);
|
|
237
241
|
const client = await this.client(workspace.root);
|
|
238
|
-
const data = await client.nativeRelationshipGrants(workspace.config.app.code, { ...input, environmentKey: environment }
|
|
242
|
+
const data = await client.nativeRelationshipGrants(workspace.config.app.code, { ...input, environmentKey: environment });
|
|
239
243
|
return this.ok("authz.relationship.list", workspace.context.workspace, data);
|
|
240
244
|
}
|
|
241
245
|
async createNativeRelationshipGrant(root, input) {
|
|
242
246
|
const workspace = await this.workspace(root);
|
|
243
247
|
const environment = this.deploymentEnvironment(input.environmentKey);
|
|
244
248
|
const client = await this.client(workspace.root);
|
|
245
|
-
const data = await client.createNativeRelationshipGrant(workspace.config.app.code, { ...input, environmentKey: environment }
|
|
249
|
+
const data = await client.createNativeRelationshipGrant(workspace.config.app.code, { ...input, environmentKey: environment });
|
|
246
250
|
return this.ok("authz.relationship.create", workspace.context.workspace, data);
|
|
247
251
|
}
|
|
248
252
|
async updateNativeRelationshipGrant(root, grantId, input) {
|
|
249
253
|
const workspace = await this.workspace(root);
|
|
250
254
|
const environment = this.deploymentEnvironment(input.environmentKey);
|
|
251
255
|
const client = await this.client(workspace.root);
|
|
252
|
-
const data = await client.updateNativeRelationshipGrant(workspace.config.app.code, grantId, { ...input, environmentKey: environment }
|
|
256
|
+
const data = await client.updateNativeRelationshipGrant(workspace.config.app.code, grantId, { ...input, environmentKey: environment });
|
|
253
257
|
return this.ok("authz.relationship.update", workspace.context.workspace, data);
|
|
254
258
|
}
|
|
255
259
|
async revokeNativeRelationshipGrant(root, grantId, input) {
|
|
256
260
|
const workspace = await this.workspace(root);
|
|
257
261
|
const environment = this.deploymentEnvironment(input.environmentKey);
|
|
258
262
|
const client = await this.client(workspace.root);
|
|
259
|
-
const data = await client.revokeNativeRelationshipGrant(workspace.config.app.code, grantId, { ...input, environmentKey: environment }
|
|
263
|
+
const data = await client.revokeNativeRelationshipGrant(workspace.config.app.code, grantId, { ...input, environmentKey: environment });
|
|
260
264
|
return this.ok("authz.relationship.revoke", workspace.context.workspace, data);
|
|
261
265
|
}
|
|
262
266
|
async eventSubscriptions(root) {
|
|
@@ -325,6 +329,10 @@ export class OpenXiangdaApplicationServices {
|
|
|
325
329
|
}
|
|
326
330
|
async generate(input = {}) {
|
|
327
331
|
const workspace = await this.workspace(input.root);
|
|
332
|
+
const capsuleDiagnostics = this.toolchainDiagnostics(workspace);
|
|
333
|
+
if (capsuleDiagnostics.length > 0) {
|
|
334
|
+
return this.result("generate", workspace.context.workspace, undefined, capsuleDiagnostics);
|
|
335
|
+
}
|
|
328
336
|
const sources = compileApplicationSources(workspace.config, this.toolchainVersion);
|
|
329
337
|
const output = join(workspace.root, "packages/contracts/src/generated.ts");
|
|
330
338
|
const current = existsSync(output) ? readFileSync(output, "utf8") : "";
|
|
@@ -359,8 +367,14 @@ export class OpenXiangdaApplicationServices {
|
|
|
359
367
|
...this.versionTrainDiagnostics(workspace),
|
|
360
368
|
...validateNestInjectionContract(workspace.root),
|
|
361
369
|
];
|
|
370
|
+
if (diagnostics.some(item => item.severity === "error")) {
|
|
371
|
+
return this.result("check", workspace.context.workspace, { generated: undefined, stages: [] }, diagnostics);
|
|
372
|
+
}
|
|
362
373
|
const generated = await this.generate({ root: workspace.root });
|
|
363
374
|
diagnostics.push(...generated.diagnostics);
|
|
375
|
+
if (!generated.ok) {
|
|
376
|
+
return this.result("check", workspace.context.workspace, { generated: generated.data, stages: [] }, diagnostics, generated.nextActions);
|
|
377
|
+
}
|
|
364
378
|
const stages = ["check", "test", "build"].map(name => ({
|
|
365
379
|
name,
|
|
366
380
|
...this.runPackageScript(workspace.root, name),
|
|
@@ -373,13 +387,17 @@ export class OpenXiangdaApplicationServices {
|
|
|
373
387
|
}
|
|
374
388
|
async test(root) {
|
|
375
389
|
const workspace = await this.workspace(root);
|
|
390
|
+
const diagnostics = this.toolchainDiagnostics(workspace);
|
|
391
|
+
if (diagnostics.length > 0) {
|
|
392
|
+
return this.result("test", workspace.context.workspace, undefined, diagnostics);
|
|
393
|
+
}
|
|
376
394
|
const command = this.runPackageScript(workspace.root, "test");
|
|
377
|
-
const
|
|
395
|
+
const commandDiagnostics = command.ok
|
|
378
396
|
? []
|
|
379
397
|
: [
|
|
380
398
|
this.diagnostic("WORKSPACE_TEST_FAILED", "工作区测试失败", "package.json#scripts.test", "修复失败测试后重试", { output: command.output }),
|
|
381
399
|
];
|
|
382
|
-
return this.result("test", workspace.context.workspace, command,
|
|
400
|
+
return this.result("test", workspace.context.workspace, command, commandDiagnostics);
|
|
383
401
|
}
|
|
384
402
|
async build(input = {}) {
|
|
385
403
|
const sealed = await this.buildSealed(input);
|
|
@@ -409,8 +427,14 @@ export class OpenXiangdaApplicationServices {
|
|
|
409
427
|
}
|
|
410
428
|
async buildSealed(input = {}) {
|
|
411
429
|
const workspace = await this.workspace(input.root);
|
|
412
|
-
const diagnostics =
|
|
413
|
-
|
|
430
|
+
const diagnostics = this.toolchainDiagnostics(workspace);
|
|
431
|
+
if (diagnostics.length > 0) {
|
|
432
|
+
return this.result("build", workspace.context.workspace, undefined, diagnostics);
|
|
433
|
+
}
|
|
434
|
+
const generated = await this.generate({ root: workspace.root });
|
|
435
|
+
if (!generated.ok) {
|
|
436
|
+
return this.result("build", workspace.context.workspace, undefined, generated.diagnostics, generated.nextActions);
|
|
437
|
+
}
|
|
414
438
|
if (!input.skipWorkspaceBuild) {
|
|
415
439
|
const command = this.runPackageScript(workspace.root, "build");
|
|
416
440
|
if (!command.ok) {
|
|
@@ -525,6 +549,10 @@ export class OpenXiangdaApplicationServices {
|
|
|
525
549
|
}
|
|
526
550
|
async deploymentPlan(input) {
|
|
527
551
|
const workspace = await this.workspace(input.root);
|
|
552
|
+
const diagnostics = this.toolchainDiagnostics(workspace);
|
|
553
|
+
if (diagnostics.length > 0) {
|
|
554
|
+
return this.result("deployment.plan", workspace.context.workspace, undefined, diagnostics);
|
|
555
|
+
}
|
|
528
556
|
const sources = compileApplicationSources(workspace.config, this.toolchainVersion);
|
|
529
557
|
return this.ok("deployment.plan", workspace.context.workspace, {
|
|
530
558
|
environment: input.environment,
|
|
@@ -540,6 +568,10 @@ export class OpenXiangdaApplicationServices {
|
|
|
540
568
|
}
|
|
541
569
|
async deploy(input) {
|
|
542
570
|
const workspace = await this.workspace(input.root);
|
|
571
|
+
const capsuleDiagnostics = this.toolchainDiagnostics(workspace);
|
|
572
|
+
if (capsuleDiagnostics.length > 0) {
|
|
573
|
+
return this.result("deploy", workspace.context.workspace, undefined, capsuleDiagnostics);
|
|
574
|
+
}
|
|
543
575
|
if (String(input.environment) !== "preproduction") {
|
|
544
576
|
return this.result("deploy", workspace.context.workspace, undefined, [
|
|
545
577
|
this.diagnostic("DEPLOY_PREPRODUCTION_ONLY", "Native 2.0 只允许直接部署到预发环境", String(input.environment), "使用 openxiangda deploy;生产环境必须显式复用成功的测试 DeploymentRun"),
|
|
@@ -651,6 +683,10 @@ export class OpenXiangdaApplicationServices {
|
|
|
651
683
|
}
|
|
652
684
|
async deployProduction(root, deploymentId) {
|
|
653
685
|
const workspace = await this.workspace(root);
|
|
686
|
+
const capsuleDiagnostics = this.toolchainDiagnostics(workspace);
|
|
687
|
+
if (capsuleDiagnostics.length > 0) {
|
|
688
|
+
return this.result("deploy", workspace.context.workspace, undefined, capsuleDiagnostics);
|
|
689
|
+
}
|
|
654
690
|
const environment = "production";
|
|
655
691
|
const client = await this.client(workspace.root);
|
|
656
692
|
const source = await client.deployment(workspace.config.app.code, deploymentId);
|
|
@@ -763,6 +799,10 @@ export class OpenXiangdaApplicationServices {
|
|
|
763
799
|
}
|
|
764
800
|
async dev(root, input = {}) {
|
|
765
801
|
const workspace = await this.workspace(root);
|
|
802
|
+
const capsuleDiagnostics = this.toolchainDiagnostics(workspace);
|
|
803
|
+
if (capsuleDiagnostics.length > 0) {
|
|
804
|
+
return this.result("dev", workspace.context.workspace, undefined, capsuleDiagnostics);
|
|
805
|
+
}
|
|
766
806
|
const injectionDiagnostics = validateNestInjectionContract(workspace.root);
|
|
767
807
|
if (injectionDiagnostics.length) {
|
|
768
808
|
return this.result("dev", workspace.context.workspace, undefined, injectionDiagnostics);
|
|
@@ -895,30 +935,12 @@ export class OpenXiangdaApplicationServices {
|
|
|
895
935
|
tokenProvider: session,
|
|
896
936
|
});
|
|
897
937
|
}
|
|
898
|
-
async nativeManagementRequest(client, appCode, environmentKey) {
|
|
899
|
-
const context = await client.roleSessionContext(appCode, environmentKey);
|
|
900
|
-
if (context.currentRoleSubject?.subjectKind === "super_admin" &&
|
|
901
|
-
context.roleSession) {
|
|
902
|
-
return { roleSessionId: context.roleSession.id };
|
|
903
|
-
}
|
|
904
|
-
const superAdmin = context.roleSubjectPage.items.find((item) => item.subjectKind === "super_admin");
|
|
905
|
-
if (superAdmin) {
|
|
906
|
-
const selected = await client.switchRoleSessionContext(appCode, {
|
|
907
|
-
targetRoleSubjectKey: superAdmin.subjectKey,
|
|
908
|
-
expectedRoleSessionId: context.roleSession?.id || null,
|
|
909
|
-
environmentKey,
|
|
910
|
-
});
|
|
911
|
-
if (selected.roleSession) {
|
|
912
|
-
return { roleSessionId: selected.roleSession.id };
|
|
913
|
-
}
|
|
914
|
-
}
|
|
915
|
-
if (context.roleSession)
|
|
916
|
-
return { roleSessionId: context.roleSession.id };
|
|
917
|
-
throw new Error("OPENXIANGDA_NATIVE_AUTHZ_MANAGEMENT_ROLE_REQUIRED");
|
|
918
|
-
}
|
|
919
938
|
get toolchainVersion() {
|
|
920
939
|
return this.options.toolchainVersion || OPENXIANGDA_TOOLCHAIN_VERSION;
|
|
921
940
|
}
|
|
941
|
+
get toolchainCapsule() {
|
|
942
|
+
return this.options.toolchainCapsule || defaultDevkitCoreToolchainCapsule();
|
|
943
|
+
}
|
|
922
944
|
runPackageScript(root, script) {
|
|
923
945
|
const result = spawnSync("pnpm", ["run", script], {
|
|
924
946
|
cwd: root,
|
|
@@ -979,42 +1001,17 @@ export class OpenXiangdaApplicationServices {
|
|
|
979
1001
|
return canonicalJson({ schemaVersion: 2, files });
|
|
980
1002
|
}
|
|
981
1003
|
versionTrainDiagnostics(workspace) {
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
visit(path);
|
|
992
|
-
else if (entry.isFile() && entry.name === "package.json")
|
|
993
|
-
packageFiles.push(path);
|
|
994
|
-
}
|
|
995
|
-
};
|
|
996
|
-
visit(workspace.root);
|
|
997
|
-
for (const packageFile of packageFiles) {
|
|
998
|
-
const packageJson = JSON.parse(readFileSync(packageFile, "utf8"));
|
|
999
|
-
for (const section of [
|
|
1000
|
-
"dependencies",
|
|
1001
|
-
"devDependencies",
|
|
1002
|
-
"peerDependencies",
|
|
1003
|
-
]) {
|
|
1004
|
-
const sectionDependencies = packageJson[section];
|
|
1005
|
-
if (!sectionDependencies || typeof sectionDependencies !== "object")
|
|
1006
|
-
continue;
|
|
1007
|
-
for (const [name, version] of Object.entries(sectionDependencies)) {
|
|
1008
|
-
if (!name.startsWith("openxiangda-"))
|
|
1009
|
-
continue;
|
|
1010
|
-
dependencies.push({
|
|
1011
|
-
name,
|
|
1012
|
-
specifier: String(version),
|
|
1013
|
-
packageFile: relative(workspace.root, packageFile).replaceAll("\\", "/"),
|
|
1014
|
-
section,
|
|
1015
|
-
});
|
|
1016
|
-
}
|
|
1004
|
+
let dependencies;
|
|
1005
|
+
try {
|
|
1006
|
+
dependencies = collectWorkspaceToolchainDependencies(workspace.root);
|
|
1007
|
+
}
|
|
1008
|
+
catch (error) {
|
|
1009
|
+
if (error instanceof ToolchainCapsuleScanLimitError) {
|
|
1010
|
+
return [
|
|
1011
|
+
this.diagnostic(error.code, "工作区 package.json 扫描超过安全资源上限", "package.json", "减少工作区中纳入检查的 package.json 数量或文件大小后重试", { message: error.message }),
|
|
1012
|
+
];
|
|
1017
1013
|
}
|
|
1014
|
+
throw error;
|
|
1018
1015
|
}
|
|
1019
1016
|
const parsed = dependencies.map(dependency => {
|
|
1020
1017
|
const version = dependency.specifier.replace(/^workspace:/, "");
|
|
@@ -1035,8 +1032,14 @@ export class OpenXiangdaApplicationServices {
|
|
|
1035
1032
|
if (incompatible.length > 0) {
|
|
1036
1033
|
diagnostics.push(this.diagnostic("TOOLCHAIN_RELEASE_TRAIN_INCOMPATIBLE", "应用包含不属于 OpenXiangda 2.x 发布列车的依赖", "package.json", "使用兼容的 OpenXiangda 2.x 精确版本;包版本可以独立递增,不要求字符串相同", { dependencies: incompatible }));
|
|
1037
1034
|
}
|
|
1035
|
+
const capsuleDiagnostic = toolchainCapsuleDiagnostic(dependencies, this.toolchainCapsule);
|
|
1036
|
+
if (capsuleDiagnostic)
|
|
1037
|
+
diagnostics.push(capsuleDiagnostic);
|
|
1038
1038
|
return diagnostics;
|
|
1039
1039
|
}
|
|
1040
|
+
toolchainDiagnostics(workspace) {
|
|
1041
|
+
return this.versionTrainDiagnostics(workspace);
|
|
1042
|
+
}
|
|
1040
1043
|
diagnostic(code, message, path, remediation, details) {
|
|
1041
1044
|
return {
|
|
1042
1045
|
schemaVersion: SCHEMA_VERSIONS.diagnostic,
|