ws-spec-kit 0.1.0-beta.4 → 0.1.0-beta.6
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/adapters/skills/install.js +20 -4
- package/dist/adapters/skills/install.js.map +1 -1
- package/dist/application/decide.js +11 -2
- package/dist/application/decide.js.map +1 -1
- package/dist/application/inspect.js +2 -0
- package/dist/application/inspect.js.map +1 -1
- package/dist/application/testing-config.d.ts +12 -0
- package/dist/application/testing-config.js +85 -0
- package/dist/application/testing-config.js.map +1 -0
- package/dist/cli/commands/core.js +16 -1
- package/dist/cli/commands/core.js.map +1 -1
- package/dist/cli/commands/public-contract.js +7 -2
- package/dist/cli/commands/public-contract.js.map +1 -1
- package/dist/engine/approvals.d.ts +2 -0
- package/dist/engine/approvals.js +36 -8
- package/dist/engine/approvals.js.map +1 -1
- package/dist/engine/tdd/red-gate.js +45 -12
- package/dist/engine/tdd/red-gate.js.map +1 -1
- package/dist/engine/tdd/runner-digest.d.ts +1 -0
- package/dist/engine/tdd/runner-digest.js +64 -0
- package/dist/engine/tdd/runner-digest.js.map +1 -0
- package/dist/engine/tdd/types.d.ts +1 -1
- package/dist/engine/tdd/vitest-reporter.d.ts +1 -0
- package/dist/engine/tdd/vitest-reporter.js +50 -0
- package/dist/engine/tdd/vitest-reporter.js.map +1 -0
- package/dist/engine/verification.d.ts +1 -1
- package/dist/engine/verification.js +5 -3
- package/dist/engine/verification.js.map +1 -1
- package/dist/protocol/application.d.ts +7 -0
- package/dist/protocol/public-contract.d.ts +9 -6
- package/dist/protocol/public-contract.js +8 -5
- package/dist/protocol/public-contract.js.map +1 -1
- package/dist/schemas/definitions.js +8 -1
- package/dist/schemas/definitions.js.map +1 -1
- package/dist/storage/control-plane.d.ts +4 -0
- package/dist/storage/control-plane.js.map +1 -1
- package/dist/storage/repository.d.ts +1 -1
- package/dist/storage/repository.js +13 -2
- package/dist/storage/repository.js.map +1 -1
- package/dist/storage/testing-config-migration.d.ts +8 -0
- package/dist/storage/testing-config-migration.js +19 -0
- package/dist/storage/testing-config-migration.js.map +1 -0
- package/dist/storage/testing-config.d.ts +1 -0
- package/dist/storage/testing-config.js +76 -0
- package/dist/storage/testing-config.js.map +1 -0
- package/package.json +3 -2
- package/schemas/builtin-application-decision-input-v2.schema.json +18 -0
- package/schemas/builtin-application-project-config-snapshot-v1.schema.json +4 -1
- package/schemas/builtin-application-project-config-v1.schema.json +4 -1
package/dist/engine/approvals.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import * as canonicalizeModule from "canonicalize";
|
|
4
|
-
import { computeWorkspaceTreeDigest, sha256 } from "../domain/digests.js";
|
|
4
|
+
import { computeWorkspaceSnapshot, computeWorkspaceTreeDigest, sha256 } from "../domain/digests.js";
|
|
5
5
|
import { verifyArtifact } from "../domain/artifacts.js";
|
|
6
6
|
import { transitionStage, transitionWorkItem } from "../domain/states.js";
|
|
7
7
|
import { readControlPlane, resolveWorkItemContext } from "../storage/control-plane.js";
|
|
@@ -99,6 +99,17 @@ export function approvalBindingDigest(input) {
|
|
|
99
99
|
throw new ApprovalError("WSSPEC_APPROVAL_DIGEST_INVALID", "审批 Artifact 引用无法规范化。");
|
|
100
100
|
return sha256(binding);
|
|
101
101
|
}
|
|
102
|
+
// Protocol drafts are mutable transport inputs, not approved workspace content.
|
|
103
|
+
// Historical requests keep their original digest algorithm until re-requested.
|
|
104
|
+
async function approvalWorkspaceDigest(cwd, workItemId, version) {
|
|
105
|
+
if (version === undefined)
|
|
106
|
+
return computeWorkspaceTreeDigest(cwd);
|
|
107
|
+
if (version !== 2)
|
|
108
|
+
throw new ApprovalError("WSSPEC_APPROVAL_DIGEST_INVALID", "不支持此审批工作区摘要版本。");
|
|
109
|
+
const draftPrefix = `.wsspec/work-items/${workItemId}/drafts/`;
|
|
110
|
+
const entries = (await computeWorkspaceSnapshot(cwd)).filter((entry) => !entry.path.startsWith(draftPrefix));
|
|
111
|
+
return sha256(`${JSON.stringify({ version: 1, entries })}\n`);
|
|
112
|
+
}
|
|
102
113
|
export async function prepareArtifactApproval(input) {
|
|
103
114
|
const context = await resolveWorkItemContext(input.cwd, input.workItemId);
|
|
104
115
|
const worktree = context.executionWorktree;
|
|
@@ -141,7 +152,8 @@ export async function prepareArtifactApproval(input) {
|
|
|
141
152
|
contentHash,
|
|
142
153
|
artifacts: sortedArtifacts,
|
|
143
154
|
...(artifactDiff === "" ? {} : { artifactDiff }),
|
|
144
|
-
workspaceTreeDigest: await
|
|
155
|
+
workspaceTreeDigest: await approvalWorkspaceDigest(worktree, input.workItemId, 2),
|
|
156
|
+
workspaceDigestVersion: 2,
|
|
145
157
|
requestedBy: input.actor ?? "engine",
|
|
146
158
|
status: "pending",
|
|
147
159
|
createdAt: (input.now ?? new Date()).toISOString(),
|
|
@@ -190,6 +202,7 @@ function assertPendingApproval(current, request, expectedDigest) {
|
|
|
190
202
|
|| pending.attemptId !== request.attemptId
|
|
191
203
|
|| pending.contentHash !== request.contentHash
|
|
192
204
|
|| pending.workspaceTreeDigest !== request.workspaceTreeDigest
|
|
205
|
+
|| pending.workspaceDigestVersion !== request.workspaceDigestVersion
|
|
193
206
|
|| pending.requestedBy !== request.requestedBy
|
|
194
207
|
|| JSON.stringify(pending.artifacts) !== JSON.stringify(request.artifacts)) {
|
|
195
208
|
throw new ApprovalError("WSSPEC_APPROVAL_NOT_PENDING", "审批请求不存在、已经处理或绑定已变化。");
|
|
@@ -248,7 +261,7 @@ async function expireArtifactApproval(input) {
|
|
|
248
261
|
operationInput: { requestId: input.request.requestId, workspaceTreeDigest: input.request.workspaceTreeDigest },
|
|
249
262
|
mutate: async (current) => {
|
|
250
263
|
const pending = assertPendingApproval(current, input.request);
|
|
251
|
-
if (await
|
|
264
|
+
if (await approvalWorkspaceDigest(input.worktree, input.workItemId, pending.workspaceDigestVersion) === pending.workspaceTreeDigest) {
|
|
252
265
|
throw new ApprovalError("WSSPEC_APPROVAL_NOT_EXPIRED", "审批绑定的工作区当前未变化,请重试决定。");
|
|
253
266
|
}
|
|
254
267
|
const expired = { ...pending, status: "expired", decidedAt: new Date().toISOString() };
|
|
@@ -257,6 +270,19 @@ async function expireArtifactApproval(input) {
|
|
|
257
270
|
});
|
|
258
271
|
}
|
|
259
272
|
export async function decideArtifactApproval(input) {
|
|
273
|
+
let confirmation;
|
|
274
|
+
if (input.confirmation !== undefined) {
|
|
275
|
+
if (input.decision !== "approve" || input.confirmation?.source !== "conversation"
|
|
276
|
+
|| typeof input.confirmation.userMessage !== "string" || !input.actor?.trim() || !input.expectedDigest) {
|
|
277
|
+
throw new ApprovalError("WSSPEC_APPROVAL_CONFIRMATION_INVALID", "对话确认只适用于步骤批准,且必须绑定用户原话、actor 和当前审批摘要。");
|
|
278
|
+
}
|
|
279
|
+
try {
|
|
280
|
+
confirmation = { source: "conversation", userMessage: normalizeApprovalFeedback(input.confirmation.userMessage) };
|
|
281
|
+
}
|
|
282
|
+
catch {
|
|
283
|
+
throw new ApprovalError("WSSPEC_APPROVAL_CONFIRMATION_INVALID", "用户确认内容为空、过长、编码异常或包含凭据样式内容。");
|
|
284
|
+
}
|
|
285
|
+
}
|
|
260
286
|
const rawFeedback = input.feedback ?? (input.terminal.isTTY === true ? input.reason : undefined);
|
|
261
287
|
const feedback = rawFeedback === undefined ? undefined : normalizeApprovalFeedback(rawFeedback);
|
|
262
288
|
if (input.decision === "approve" && (feedback !== undefined || input.rejectionToken !== undefined)) {
|
|
@@ -265,8 +291,8 @@ export async function decideArtifactApproval(input) {
|
|
|
265
291
|
if (input.terminal.isTTY === true && input.rejectionToken !== undefined) {
|
|
266
292
|
throw new ApprovalError("WSSPEC_APPROVAL_FEEDBACK_NOT_ALLOWED", "TTY 拒绝决定不能携带拒绝确认凭据。");
|
|
267
293
|
}
|
|
268
|
-
if (input.terminal.isTTY !== true && !(input.decision === "reject" && feedback !== undefined && input.rejectionToken !== undefined)) {
|
|
269
|
-
throw new ApprovalError("WSSPEC_INTERACTIVE_TTY_REQUIRED", "
|
|
294
|
+
if (input.terminal.isTTY !== true && confirmation === undefined && !(input.decision === "reject" && feedback !== undefined && input.rejectionToken !== undefined)) {
|
|
295
|
+
throw new ApprovalError("WSSPEC_INTERACTIVE_TTY_REQUIRED", "普通步骤批准可携带 confirmation 记录用户对当前版本的明确同意;未提供确认的批准或无反馈拒绝需要交互式 TTY。");
|
|
270
296
|
}
|
|
271
297
|
const tokenHash = input.rejectionToken === undefined ? undefined : sha256(input.rejectionToken);
|
|
272
298
|
const projection = await readControlPlane(input.cwd, input.workItemId);
|
|
@@ -276,11 +302,11 @@ export async function decideArtifactApproval(input) {
|
|
|
276
302
|
return await mutateControlPlane({
|
|
277
303
|
cwd: input.cwd, workItemId: input.workItemId, eventType: "approval.decided", idempotencyKey: `approval-decision:${input.requestId}`,
|
|
278
304
|
...(request === undefined ? {} : { stageId: request.stageId, attemptId: request.attemptId }),
|
|
279
|
-
actor: input.actor ?? "interactive-user", operationInput: { requestId: input.requestId, decision: input.decision, feedback: feedback ?? null, tokenHash: tokenHash ?? null, expectedDigest: input.expectedDigest ?? null },
|
|
305
|
+
actor: input.actor ?? "interactive-user", operationInput: { requestId: input.requestId, decision: input.decision, feedback: feedback ?? null, tokenHash: tokenHash ?? null, expectedDigest: input.expectedDigest ?? null, ...(confirmation === undefined ? {} : { confirmation, actor: input.actor }) },
|
|
280
306
|
mutate: async (current) => {
|
|
281
307
|
const pending = assertPendingApproval(current, request, input.expectedDigest);
|
|
282
308
|
let evidence = current.evidence;
|
|
283
|
-
if (input.terminal.isTTY !== true) {
|
|
309
|
+
if (input.terminal.isTTY !== true && confirmation === undefined) {
|
|
284
310
|
const key = rejectionConfirmationEvidenceKey(tokenHash);
|
|
285
311
|
const confirmation = current.evidence[key];
|
|
286
312
|
if (confirmation === undefined)
|
|
@@ -293,7 +319,7 @@ export async function decideArtifactApproval(input) {
|
|
|
293
319
|
}
|
|
294
320
|
evidence = { ...current.evidence, [key]: { ...confirmation, consumedAt: new Date().toISOString() } };
|
|
295
321
|
}
|
|
296
|
-
if (await
|
|
322
|
+
if (await approvalWorkspaceDigest(worktree, input.workItemId, pending.workspaceDigestVersion) !== pending.workspaceTreeDigest) {
|
|
297
323
|
throw new ApprovalError("WSSPEC_APPROVAL_EXPIRED", "审批绑定的工作区已经变化,请重新请求审批。");
|
|
298
324
|
}
|
|
299
325
|
await verifyApprovalArtifacts(input.cwd, input.workItemId, pending);
|
|
@@ -302,6 +328,8 @@ export async function decideArtifactApproval(input) {
|
|
|
302
328
|
...pending,
|
|
303
329
|
status,
|
|
304
330
|
decidedBy: input.actor ?? "interactive-user",
|
|
331
|
+
decisionSource: confirmation !== undefined ? "agent_transcribed" : input.terminal.isTTY === true ? "terminal" : "terminal_token",
|
|
332
|
+
...(confirmation === undefined ? {} : { confirmation }),
|
|
305
333
|
decidedAt: new Date().toISOString(),
|
|
306
334
|
...(feedback === undefined ? {} : { feedback }),
|
|
307
335
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/engine/approvals.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/engine/approvals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { runnerInstallationDigest } from "./runner-digest.js";
|
|
2
|
+
import { vitestReporterSource } from "./vitest-reporter.js";
|
|
1
3
|
import { spawn } from "node:child_process";
|
|
2
4
|
import { constants } from "node:fs";
|
|
3
5
|
import { access, lstat, mkdtemp, readFile, readdir, realpath, rm, writeFile } from "node:fs/promises";
|
|
@@ -273,19 +275,43 @@ function gateConfiguration(gate) {
|
|
|
273
275
|
return { commandId: gate.commandId, argv: [...gate.argv], cwd: gate.cwd, timeoutMs: gate.timeoutMs, inheritEnv: [...gate.inheritEnv], env: gate.env, testPathRules: [...gate.testPathRules], testAssetPaths: [...gate.testAssetPaths], testAssetRoots: [...gate.testAssetRoots], productPaths: [...gate.productPaths], reporter: gate.reporter };
|
|
274
276
|
}
|
|
275
277
|
async function resolveGate(gate, worktree) {
|
|
276
|
-
if (gate.argv.length === 0 || gate.argv.some((part) => typeof part !== "string") || gate.timeoutMs < 1 || gate.reporter.type
|
|
278
|
+
if (gate.argv.length === 0 || gate.argv.some((part) => typeof part !== "string") || gate.timeoutMs < 1 || !["node-test", "vitest"].includes(gate.reporter.type) || gate.reporter.version !== 1) {
|
|
277
279
|
throw new VerificationError("WSSPEC_TDD_GATE_CONFIGURATION_INVALID", `Test Gate ${gate.commandId} 配置无效。`);
|
|
278
280
|
}
|
|
279
281
|
assertRules(gate.testPathRules);
|
|
280
282
|
const environment = effectiveEnvironment(gate);
|
|
281
283
|
const executable = await resolveExecutable(gate.argv[0], environment, worktree);
|
|
282
284
|
const executableDigest = sha256(await readFile(executable));
|
|
283
|
-
if (executableDigest !== sha256(await readFile(process.execPath))
|
|
284
|
-
throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "
|
|
285
|
+
if (executableDigest !== sha256(await readFile(process.execPath))) {
|
|
286
|
+
throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "trusted TDD 必须使用当前 Node。");
|
|
287
|
+
}
|
|
288
|
+
let runner;
|
|
289
|
+
if (gate.reporter.type === "vitest") {
|
|
290
|
+
if (gate.argv[2] !== "run" || gate.argv.some(part => /^--(?:reporter|outputFile|watch|mergeReports|passWithNoTests|update)/u.test(part))) {
|
|
291
|
+
throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "Vitest 必须以 node <vitest.mjs> run 执行,报告由引擎注入。");
|
|
292
|
+
}
|
|
293
|
+
try {
|
|
294
|
+
const runnerPath = await realpath(path.resolve(worktree, gate.argv[1]));
|
|
295
|
+
const metadata = JSON.parse(await readFile(path.join(path.dirname(runnerPath), "package.json"), "utf8"));
|
|
296
|
+
const version = /^(3|4)\.(\d+)\.(\d+)(?:\+[^ ]+)?$/u.exec(metadata.version ?? "");
|
|
297
|
+
const supported = version !== null && (version[1] === "4" || Number(version[2]) > 2 || (Number(version[2]) === 2 && Number(version[3]) >= 4));
|
|
298
|
+
if (path.basename(runnerPath) !== "vitest.mjs" || metadata.name !== "vitest" || !supported) {
|
|
299
|
+
throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "仅支持项目安装的 Vitest 3.2.4+(3.x)或 4.x 入口。");
|
|
300
|
+
}
|
|
301
|
+
runner = { path: runnerPath, digest: await runnerInstallationDigest(runnerPath) };
|
|
302
|
+
}
|
|
303
|
+
catch (error) {
|
|
304
|
+
if (error instanceof VerificationError)
|
|
305
|
+
throw error;
|
|
306
|
+
throw new VerificationError("WSSPEC_TDD_GATE_EXECUTION_FAILED", "无法读取项目 Vitest 安装,请安装依赖并核对 Test Gate 的 runner 路径。");
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
else if (!gate.argv.slice(1).includes("--test") || gate.argv.some(part => part.startsWith("--test-reporter"))) {
|
|
310
|
+
throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "node:test 必须由引擎注入 reporter。");
|
|
285
311
|
}
|
|
286
312
|
const environmentDigest = sha256(`${JSON.stringify(Object.entries(environment).sort(([left], [right]) => left.localeCompare(right)))}\n`);
|
|
287
|
-
const commandDigest = sha256(`${JSON.stringify({ version: 4, gate: gateConfiguration(gate), executablePathDigest: sha256(executable), executableDigest, environmentDigest, reporterDigest: sha256(nodeTestReporterSource) })}\n`);
|
|
288
|
-
return { executable, executableDigest, environment, commandDigest };
|
|
313
|
+
const commandDigest = sha256(`${JSON.stringify({ version: 4, gate: gateConfiguration(gate), executablePathDigest: sha256(executable), executableDigest, environmentDigest, reporterDigest: sha256(gate.reporter.type === "vitest" ? vitestReporterSource : nodeTestReporterSource), ...(runner === undefined ? {} : { runner }) })}\n`);
|
|
314
|
+
return { executable, executableDigest, environment, commandDigest, ...(runner === undefined ? {} : { runner }) };
|
|
289
315
|
}
|
|
290
316
|
function boundedAppend(current, chunk) {
|
|
291
317
|
const combined = Buffer.concat([Buffer.from(current), Buffer.from(chunk)]);
|
|
@@ -298,15 +324,17 @@ async function runFixedGate(gate, resolved, worktree) {
|
|
|
298
324
|
const reportRoot = await mkdtemp(path.join(os.tmpdir(), "wsspec-tdd-report-"));
|
|
299
325
|
const reporterPath = path.join(reportRoot, "reporter.mjs");
|
|
300
326
|
const resultPath = path.join(reportRoot, "result.json");
|
|
301
|
-
await writeFile(reporterPath, nodeTestReporterSource, { encoding: "utf8", mode: 0o600, flag: "wx" });
|
|
327
|
+
await writeFile(reporterPath, gate.reporter.type === "vitest" ? vitestReporterSource : nodeTestReporterSource, { encoding: "utf8", mode: 0o600, flag: "wx" });
|
|
302
328
|
await writeFile(resultPath, "", { encoding: "utf8", mode: 0o600, flag: "wx" });
|
|
303
329
|
const initialResultStat = await lstat(resultPath);
|
|
304
|
-
const argv =
|
|
330
|
+
const argv = gate.reporter.type === "vitest"
|
|
331
|
+
? [resolved.runner.path, ...gate.argv.slice(2), "--reporter", reporterPath]
|
|
332
|
+
: [`--test-reporter=${pathToFileURL(reporterPath).href}`, `--test-reporter-destination=${resultPath}`, ...gate.argv.slice(1)];
|
|
305
333
|
let output = "";
|
|
306
334
|
try {
|
|
307
335
|
const child = spawn(resolved.executable, argv, {
|
|
308
336
|
cwd: worktree,
|
|
309
|
-
env: resolved.environment,
|
|
337
|
+
env: { ...resolved.environment, ...(gate.reporter.type === "vitest" ? { WSPECKIT_VITEST_REPORT: resultPath } : {}) },
|
|
310
338
|
shell: false,
|
|
311
339
|
detached: process.platform !== "win32",
|
|
312
340
|
stdio: ["ignore", "pipe", "pipe"],
|
|
@@ -353,6 +381,8 @@ async function runFixedGate(gate, resolved, worktree) {
|
|
|
353
381
|
}
|
|
354
382
|
if (sha256(await readFile(resolved.executable)) !== resolved.executableDigest)
|
|
355
383
|
throw new VerificationError("WSSPEC_TDD_EVIDENCE_INVALIDATED", "Test Gate 可执行文件在运行期间发生变化。 ");
|
|
384
|
+
if (resolved.runner !== undefined && await runnerInstallationDigest(resolved.runner.path) !== resolved.runner.digest)
|
|
385
|
+
throw new VerificationError("WSSPEC_TDD_EVIDENCE_INVALIDATED", "Vitest runner 在执行中变化。");
|
|
356
386
|
return { ...result, output, ...(report === undefined ? {} : { report }) };
|
|
357
387
|
}
|
|
358
388
|
finally {
|
|
@@ -384,11 +414,14 @@ function sanitizedOutput(output, secrets) {
|
|
|
384
414
|
sanitized = sanitized.replaceAll(secret, "[REDACTED]");
|
|
385
415
|
return sanitized.replace(/((?:authorization|token|password|secret|api[_-]?key)\s*[:=]\s*)([^\s]+)/giu, "$1[REDACTED]").replace(/Bearer\s+[^\s]+/giu, "Bearer [REDACTED]");
|
|
386
416
|
}
|
|
387
|
-
function parseNodeTestReport(value) {
|
|
417
|
+
function parseNodeTestReport(value, adapter) {
|
|
388
418
|
if (value === undefined || Buffer.byteLength(value) > reportLimit)
|
|
389
419
|
throw new VerificationError("WSSPEC_TDD_REPORT_INVALID", "node:test reporter 未产生受限结构化结果。 ");
|
|
390
420
|
try {
|
|
391
|
-
|
|
421
|
+
const report = JSON.parse(value);
|
|
422
|
+
if (report.adapter !== adapter)
|
|
423
|
+
throw new Error("reporter mismatch");
|
|
424
|
+
return validate("builtin.tdd-node-test-report.v1", { ...report, adapter: "node-test" });
|
|
392
425
|
}
|
|
393
426
|
catch {
|
|
394
427
|
throw new VerificationError("WSSPEC_TDD_REPORT_INVALID", "node:test reporter 结果不符合严格 Schema。 ");
|
|
@@ -460,7 +493,7 @@ export async function executeTrustedTestGate(input) {
|
|
|
460
493
|
throw new VerificationError("WSSPEC_TDD_RED_TIMEOUT", "Test Gate 超时,不能形成可信 Evidence。 ");
|
|
461
494
|
if (result.signal !== null || result.exitCode === null)
|
|
462
495
|
throw new VerificationError("WSSPEC_TDD_RED_INFRASTRUCTURE_FAILURE", "Test Gate 被 signal 终止,不能形成可信 Evidence。 ");
|
|
463
|
-
const report = parseNodeTestReport(result.report);
|
|
496
|
+
const report = parseNodeTestReport(result.report, input.gate.reporter.type);
|
|
464
497
|
const [outputWorkspaceDigest, outputManifest, assetManifest] = await Promise.all([
|
|
465
498
|
computeWorkspaceTreeDigest(input.worktree),
|
|
466
499
|
testFileManifest(input.worktree, input.testPaths, input.gate.testPathRules),
|
|
@@ -492,7 +525,7 @@ export async function executeTrustedTestGate(input) {
|
|
|
492
525
|
throw new VerificationError("WSSPEC_TDD_GREEN_NOT_OBSERVED", "同一 Test Gate 未形成结构化零失败 Green 结果。 ");
|
|
493
526
|
}
|
|
494
527
|
const failures = input.phase === "red" ? assertionFailures.map(({ name }) => sanitizedOutput(name, secrets)).slice(0, 100) : [];
|
|
495
|
-
const summary = sanitizedOutput(input.phase === "red" ? failures.join("\n") :
|
|
528
|
+
const summary = sanitizedOutput(input.phase === "red" ? failures.join("\n") : `${input.gate.reporter.type} passed ${report.summary.passed}/${report.summary.tests}`, secrets).slice(0, summaryLimit);
|
|
496
529
|
const unsigned = {
|
|
497
530
|
level: "trusted",
|
|
498
531
|
phase: input.phase,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"red-gate.js","sourceRoot":"","sources":["../../../src/engine/tdd/red-gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtG,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,kBAAkB,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AACnI,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EACL,aAAa,IAAI,sBAAsB,GAOxC,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAA4D,CAAC;AAErG,MAAM,YAAY,GAAG,KAAK,CAAC;AAC3B,MAAM,YAAY,GAAG,YAAY,GAAG,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;AAChC,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAC;AAEvC,MAAM,sBAAsB,GAAG;IAC7B,+BAA+B;IAC/B,2CAA2C;IAC3C,gCAAgC;IAChC,yCAAyC;IACzC,mCAAmC;IACnC,2FAA2F;IAC3F,GAAG;IACH,0BAA0B;IAC1B,sBAAsB;IACtB,wBAAwB;IACxB,0HAA0H;IAC1H,kBAAkB;IAClB,GAAG;IACH,wBAAwB;IACxB,gCAAgC;IAChC,iEAAiE;IACjE,iEAAiE;IACjE,uEAAuE;IACvE,gGAAgG;IAChG,gIAAgI;IAChI,iHAAiH;IACjH,2HAA2H;IAC3H,mBAAmB;IACnB,GAAG;IACH,mDAAmD;IACnD,wBAAwB;IACxB,yBAAyB;IACzB,sCAAsC;IACtC,gBAAgB;IAChB,uCAAuC;IACvC,6DAA6D;IAC7D,yDAAyD;IACzD,mDAAmD;IACnD,+FAA+F;IAC/F,gJAAgJ;IAChJ,OAAO;IACP,6FAA6F;IAC7F,0BAA0B;IAC1B,mDAAmD;IACnD,2DAA2D;IAC3D,8MAA8M;IAC9M,OAAO;IACP,yFAAyF;IACzF,+CAA+C;IAC/C,qRAAqR;IACrR,OAAO;IACP,KAAK;IACL,4JAA4J;IAC5J,2IAA2I;IAC3I,GAAG;IACH,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AA0Bb,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClD,IAAI,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACjJ,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,UAAU,QAAQ,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,QAAiC,EAAE;IAC9E,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;mBACvC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;mBAClC,0CAA0C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,sCAAsC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpF,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1G,OAAO,oCAAoC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzG,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,KAA8B;IACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM;WACzD,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,sBAA4C,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACzF,MAAM,IAAI,iBAAiB,CAAC,uCAAuC,EAAE,0BAA0B,CAAC,CAAC;IACnG,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,SAA4B,EAAE,KAA8B;IACnH,WAAW,CAAC,KAAK,CAAC,CAAC;IACnB,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/G,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,iBAAiB,QAAQ,EAAE,CAAC,CAAC;IAC7H,CAAC;IACD,OAAO,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,wBAAwB,CAAC,CAAC;AACjE,CAAC;AAID,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvG,SAAS,qBAAqB,CAAC,OAAe;IAC5C,OAAO,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAClE,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,eAAe,GAAG,YAAY,CAAC,EAAE,CAAC;QACjF,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAE,CAAC,EAAE,CAAC;YACxE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QAC7D,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,YAAY,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAChG,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAA2B;IAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC/F,MAAM,IAAI,iBAAiB,CAAC,uCAAuC,EAAE,kCAAkC,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpH,CAAC;AAED,SAAS,UAAU,CAAC,QAAgB,EAAE,IAAY;IAChD,OAAO,IAAI,KAAK,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAAgB,EAAE,KAAmB;IAC1E,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACnF,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAClG,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAgC,EAAE,KAAmB;IACzF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,QAAgB,EAAE,KAAmB;IAChF,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAChE,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,iBAAiB,CAAC,uCAAuC,EAAE,+DAA+D,CAAC,CAAC;IACxI,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY;SAC5D,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;SAC9G,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,IAAI,GAAG,KAAK,EAAE,iBAAyB,EAAiB,EAAE;QAC9D,MAAM,kBAAkB,GAAG,iBAAiB,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACjI,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YAAC,QAAQ,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAAC,CAAC;QACnD,OAAO,KAAK,EAAE,CAAC;YACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO;YAC/D,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,0BAA0B,iBAAiB,EAAE,CAAC,CAAC;QAC7G,CAAC;QACD,IAAI,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YACzD,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,iDAAiD,iBAAiB,EAAE,CAAC,CAAC;QACpI,CAAC;QACD,IAAI,iBAAyB,CAAC;QAC9B,IAAI,CAAC;YAAC,iBAAiB,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAAC,CAAC;QAC/D,MAAM,CAAC;YAAC,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,0BAA0B,iBAAiB,EAAE,CAAC,CAAC;QAAC,CAAC;QACrH,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAC1E,IAAI,iBAAiB,KAAK,kBAAkB;eACvC,CAAC,iBAAiB,KAAK,GAAG,IAAI,CAAC,iBAAiB,KAAK,EAAE,IAAI,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3I,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,sCAAsC,iBAAiB,EAAE,CAAC,CAAC;QACzH,CAAC;QACD,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YAAC,OAAO,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QAC5E,OAAO,KAAK,EAAE,CAAC;YACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO;YAC/D,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,0BAA0B,iBAAiB,EAAE,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,iBAAiB,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAS;YACjE,MAAM,QAAQ,GAAG,iBAAiB,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,iBAAiB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC/F,IAAI,KAAK,CAAC,cAAc,EAAE;gBAAE,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,iCAAiC,QAAQ,EAAE,CAAC,CAAC;YACrI,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAAE,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,6BAA6B,QAAQ,EAAE,CAAC,CAAC;YAC1H,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,UAAU,CAAC,IAAI,GAAG,cAAc;gBAAE,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,aAAa,cAAc,OAAO,CAAC,CAAC;QACxI,CAAC;IACH,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5G,IAAI,SAAiB,CAAC;QACtB,IAAI,CAAC;YAAC,SAAS,GAAG,MAAM,4BAA4B,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAAC,CAAC;QAChF,MAAM,CAAC;YAAC,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,sCAAsC,QAAQ,EAAE,CAAC,CAAC;QAAC,CAAC;QACxH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1C,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;QACjC,IAAI,UAAU,GAAG,kBAAkB;YAAE,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,aAAa,kBAAkB,MAAM,CAAC,CAAC;QACxI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,6CAA6C,CAAC,CAAC;IAC1I,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7H,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAmB;IAC/C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACtG,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAU,CAAC,CAAC,CAAC,CAAC;IACpG,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,SAAiB;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxF,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAE,KAA+B,CAAC,IAAI,IAAI,EAAE,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5G,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,WAA6C,EAAE,QAAgB;IAC/G,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAChF,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAClH,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnH,KAAK,MAAM,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACxE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;gBACvF,IAAI,SAAS,KAAK,SAAS;oBAAE,OAAO,SAAS,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,iBAAiB,CAAC,kCAAkC,EAAE,sBAAsB,OAAO,EAAE,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAmB;IAC5C,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACnV,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAmB,EAAE,QAAgB;IAC9D,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC5K,MAAM,IAAI,iBAAiB,CAAC,uCAAuC,EAAE,aAAa,IAAI,CAAC,SAAS,QAAQ,CAAC,CAAC;IAC5G,CAAC;IACD,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAChC,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACjF,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5D,IAAI,gBAAgB,KAAK,MAAM,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;QAC5K,MAAM,IAAI,iBAAiB,CAAC,iCAAiC,EAAE,yDAAyD,CAAC,CAAC;IAC5H,CAAC;IACD,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1I,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,oBAAoB,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAClO,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,KAAsB;IAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAI,QAAQ,CAAC,UAAU,IAAI,YAAY;QAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,YAAY,GAAG,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChG,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAmB,EAAE,QAAsB,EAAE,QAAgB;IACvF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC/E,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,SAAS,CAAC,YAAY,EAAE,sBAAsB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrG,MAAM,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,MAAM,iBAAiB,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,CAAC,mBAAmB,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,+BAA+B,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzI,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE;YAC7C,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,QAAQ,CAAC,WAAW;YACzB,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;YACtC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,IAAI,MAAM,GAA0B,IAAI,CAAC;QACzC,MAAM,SAAS,GAAG,CAAC,YAA4B,EAAQ,EAAE;YACvD,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC5D,IAAI,CAAC;oBAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAAC,CAAC;YACrF,CAAC;;gBAAM,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAA2C,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7F,MAAM,MAAM,GAAG,GAAS,EAAE,GAAG,IAAI,MAAM,IAAI,eAAe;gBAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACvG,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,QAAQ,GAAG,IAAI,CAAC;gBAChB,eAAe,GAAG,KAAK,CAAC;gBACxB,SAAS,CAAC,SAAS,CAAC,CAAC;gBACrB,UAAU,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACrF,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACnB,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvI,CAAC,CAAC,CAAC;QACH,IAAI,MAA0B,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,eAAe,CAAC,cAAc,EAAE,IAAI,eAAe,CAAC,GAAG,KAAK,iBAAiB,CAAC,GAAG,IAAI,eAAe,CAAC,GAAG,KAAK,iBAAiB,CAAC,GAAG,IAAI,eAAe,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC;gBAC1M,MAAM,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,qCAAqC,CAAC,CAAC;YAClG,CAAC;YACD,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,QAAQ,CAAC,gBAAgB;YAAE,MAAM,IAAI,iBAAiB,CAAC,iCAAiC,EAAE,4BAA4B,CAAC,CAAC;QAC5K,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,KAAwB,EAAE,YAAoB;IAC1F,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/C,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACpH,IAAI,SAAiB,CAAC;QACtB,IAAI,CAAC;YAAC,SAAS,GAAG,MAAM,4BAA4B,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAAC,CAAC;QAChF,OAAO,KAAK,EAAE,CAAC;YACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,iBAAiB,CAAC,iCAAiC,EAAE,WAAW,QAAQ,EAAE,CAAC,CAAC;YAC9I,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,YAAY,CAAC,CAAC;IAClG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACjF,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,OAA0B;IACjE,IAAI,SAAS,GAAG,MAAM,CAAC;IACvB,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QAAE,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACxI,OAAO,SAAS,CAAC,OAAO,CAAC,4EAA4E,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;AAC5K,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAyB;IACpD,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,WAAW;QAAE,MAAM,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,iCAAiC,CAAC,CAAC;IAC/J,IAAI,CAAC;QAAC,OAAO,QAAQ,CAAiB,iCAAiC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAAC,CAAC;IAC9F,MAAM,CAAC;QAAC,MAAM,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,qCAAqC,CAAC,CAAC;IAAC,CAAC;AAC5G,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAsB,EAAE,QAAgB,EAAE,SAA4B;IAClG,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACtE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACtG,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACrI,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,SAAS,CAAC;QAAC,CAAC;IAC/B,CAAC,CAAC,CAAC,CAAC;IACJ,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAiD,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;AAC3G,CAAC;AAED,SAAS,UAAU,CAAC,QAA6C;IAC/D,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,iBAAiB,CAAC,iCAAiC,EAAE,qBAAqB,CAAC,CAAC;IACjH,OAAO,YAAY,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,QAAQ,CAAkB,iCAAiC,EAAE,KAAK,CAAC,CAAC;QACrF,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC;QACvD,IAAI,QAAQ,KAAK,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;eAC3F,CAAC,QAAQ,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;eAC9F,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,SAAS,CAAC,MAAM;eACvD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;eACjF,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM;eACtD,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;eACzG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5H,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,CAAC;QAAC,OAAO,QAAQ,CAAmB,+BAA+B,EAAE,KAAK,CAAC,CAAC;IAAC,CAAC;IAClF,MAAM,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAA4N;IACvQ,MAAM,sBAAsB,GAAG,MAAM,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChF,IAAI,sBAAsB,KAAK,KAAK,CAAC,eAAe;QAAE,MAAM,IAAI,iBAAiB,CAAC,iCAAiC,EAAE,sCAAsC,CAAC,CAAC;IAC7J,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,KAAK,CAAC,qBAAqB,KAAK,SAAS,IAAI,KAAK,CAAC,qBAAqB,KAAK,QAAQ,CAAC,aAAa;QAAE,MAAM,IAAI,iBAAiB,CAAC,iCAAiC,EAAE,kCAAkC,CAAC,CAAC;IAC5M,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACnG,MAAM,oBAAoB,GAAG,MAAM,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC/F,IAAI,KAAK,YAAY,iBAAiB;YAAE,MAAM,KAAK,CAAC;QACpD,MAAM,IAAI,iBAAiB,CAAC,kCAAkC,EAAE,kBAAmB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAChH,CAAC,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,QAAQ;QAAE,MAAM,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,gCAAgC,CAAC,CAAC;IAC7G,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI;QAAE,MAAM,IAAI,iBAAiB,CAAC,uCAAuC,EAAE,yCAAyC,CAAC,CAAC;IACxK,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,qBAAqB,EAAE,cAAc,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/E,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC1C,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;QAC3E,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC;KACnD,CAAC,CAAC;IACH,IAAI,qBAAqB,KAAK,sBAAsB,IAAI,cAAc,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,KAAK,oBAAoB,CAAC,MAAM;QAAE,MAAM,IAAI,iBAAiB,CAAC,iCAAiC,EAAE,qCAAqC,CAAC,CAAC;IACjQ,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC/F,MAAM,IAAI,iBAAiB,CAAC,uCAAuC,EAAE,8CAA8C,CAAC,CAAC;IACvH,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACxH,MAAM,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,oDAAoD,CAAC,CAAC;IACjH,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC;QAAE,MAAM,IAAI,iBAAiB,CAAC,+BAA+B,EAAE,uCAAuC,CAAC,CAAC;IACjK,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,OAAO,CAAC;QAAE,MAAM,IAAI,iBAAiB,CAAC,uCAAuC,EAAE,2CAA2C,CAAC,CAAC;IACrM,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3H,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC;IAC9H,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAClG,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACrF,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO;YAAE,MAAM,IAAI,iBAAiB,CAAC,6BAA6B,EAAE,sBAAsB,CAAC,CAAC;QACxI,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,0CAA0C,CAAC,CAAC;IAC1K,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACzH,MAAM,IAAI,iBAAiB,CAAC,+BAA+B,EAAE,mCAAmC,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChI,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IACnL,MAAM,QAAQ,GAAwC;QACpD,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;QAC/B,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,QAAQ;QACrB,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC;QAC/D,SAAS,EAAE,QAAQ,CAAC,KAAK;QACzB,eAAe,EAAE,QAAQ,CAAC,MAAM;QAChC,aAAa,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;QAC5C,UAAU,EAAE,aAAa,CAAC,KAAK;QAC/B,gBAAgB,EAAE,aAAa,CAAC,MAAM;QACtC,cAAc,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;QAC9C,cAAc,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;QAC9C,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QAC1C,eAAe,EAAE,qBAAqB;QACtC,OAAO;KACR,CAAC;IACF,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAuB;IAC7D,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,cAAc;QAAE,MAAM,IAAI,iBAAiB,CAAC,yBAAyB,EAAE,2CAA2C,CAAC,CAAC;IAC1Q,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5H,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACrH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAAE,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,yBAAyB,CAAC,CAAC;IAC5P,OAAO,sBAAsB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACzQ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAmB,EAAE,QAAgB;IAChF,OAAO,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;AAC3D,CAAC"}
|
|
1
|
+
{"version":3,"file":"red-gate.js","sourceRoot":"","sources":["../../../src/engine/tdd/red-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function runnerInstallationDigest(entry: string): Promise<string>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
import { lstat, readFile, readdir, realpath } from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { sha256 } from "../../domain/digests.js";
|
|
5
|
+
import { VerificationError } from "./types.js";
|
|
6
|
+
// Node resolves package directories before applying exports conditions. Read manifests
|
|
7
|
+
// directly so packages that hide package.json in exports are still included.
|
|
8
|
+
async function resolvePackage(from, name) {
|
|
9
|
+
if (!/^(?:@[a-z0-9._-]+\/)?[a-z0-9._-]+$/iu.test(name) || name === "." || name === "..") {
|
|
10
|
+
throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "测试工具包含无效依赖名称。");
|
|
11
|
+
}
|
|
12
|
+
const search = createRequire(path.join(from, "package.json")).resolve.paths(name) ?? [];
|
|
13
|
+
for (const directory of search) {
|
|
14
|
+
try {
|
|
15
|
+
return path.dirname(await realpath(path.join(directory, name, "package.json")));
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
if (error.code !== "ENOENT")
|
|
19
|
+
throw error;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
export async function runnerInstallationDigest(entry) {
|
|
25
|
+
const packages = new Map();
|
|
26
|
+
async function visit(root) {
|
|
27
|
+
if (packages.has(root))
|
|
28
|
+
return;
|
|
29
|
+
if (packages.size >= 512)
|
|
30
|
+
throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "测试工具依赖数量超出限制。");
|
|
31
|
+
const record = { files: [], dependencies: [] };
|
|
32
|
+
packages.set(root, record);
|
|
33
|
+
async function walk(directory) {
|
|
34
|
+
for (const name of (await readdir(directory)).sort()) {
|
|
35
|
+
if (name === "node_modules")
|
|
36
|
+
continue;
|
|
37
|
+
const file = path.join(directory, name);
|
|
38
|
+
const info = await lstat(file);
|
|
39
|
+
if (info.isDirectory())
|
|
40
|
+
await walk(file);
|
|
41
|
+
else if (info.isFile())
|
|
42
|
+
record.files.push([path.relative(root, file), sha256(await readFile(file))]);
|
|
43
|
+
else
|
|
44
|
+
throw new VerificationError("WSSPEC_TDD_REPORTER_UNSUPPORTED", "测试工具依赖包含非普通运行文件。");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
await walk(root);
|
|
48
|
+
const metadata = JSON.parse(await readFile(path.join(root, "package.json"), "utf8"));
|
|
49
|
+
const names = [...new Set([...Object.keys(metadata.dependencies ?? {}), ...Object.keys(metadata.optionalDependencies ?? {}), ...Object.keys(metadata.peerDependencies ?? {})])].sort();
|
|
50
|
+
for (const name of names) {
|
|
51
|
+
const dependency = await resolvePackage(root, name);
|
|
52
|
+
// Missing optional/peer dependencies are bound too: installing one changes the digest.
|
|
53
|
+
record.dependencies.push([name, dependency ?? null]);
|
|
54
|
+
if (dependency !== undefined)
|
|
55
|
+
await visit(dependency);
|
|
56
|
+
else if (metadata.dependencies?.[name] !== undefined && metadata.optionalDependencies?.[name] === undefined) {
|
|
57
|
+
throw new VerificationError("WSSPEC_TDD_GATE_EXECUTION_FAILED", "测试工具的必需依赖未安装。");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
await visit(path.dirname(await realpath(entry)));
|
|
62
|
+
return sha256(JSON.stringify([...packages].sort(([left], [right]) => left.localeCompare(right))));
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=runner-digest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner-digest.js","sourceRoot":"","sources":["../../../src/engine/tdd/runner-digest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const vitestReporterSource: string;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Engine-owned reporter for the public Vitest 3.2.4+/4 reporter API.
|
|
2
|
+
export const vitestReporterSource = String.raw `
|
|
3
|
+
import { writeFileSync } from 'node:fs';
|
|
4
|
+
function kind(error) {
|
|
5
|
+
const name = String(error?.name || error?.nameStr || '');
|
|
6
|
+
const message = String(error?.message || '');
|
|
7
|
+
if (name === 'AssertionError' || error?.code === 'ERR_ASSERTION') return 'assertion';
|
|
8
|
+
if (name === 'SyntaxError' || /Unexpected token|Parse failure|Transform failed|Expected .* but found/u.test(message)) return 'syntax';
|
|
9
|
+
if (/Cannot find|Failed to resolve|Cannot resolve|MODULE_NOT_FOUND/u.test(message)) return 'dependency';
|
|
10
|
+
return 'other';
|
|
11
|
+
}
|
|
12
|
+
export default class Reporter {
|
|
13
|
+
pendingHooks = new Map();
|
|
14
|
+
onHookStart({ entity, name }) {
|
|
15
|
+
const pending = this.pendingHooks.get(entity.id) || new Set();
|
|
16
|
+
pending.add(name); this.pendingHooks.set(entity.id, pending);
|
|
17
|
+
}
|
|
18
|
+
onHookEnd({ entity, name }) { this.pendingHooks.get(entity.id)?.delete(name); }
|
|
19
|
+
onTestRunEnd(modules, unhandled, reason) {
|
|
20
|
+
const failures = [];
|
|
21
|
+
let failureTotal = 0;
|
|
22
|
+
const summary = { success: reason === 'passed', tests: 0, passed: 0, failed: 0, cancelled: 0, skipped: 0, todo: 0 };
|
|
23
|
+
const fail = (name, file, errors, allowAssertion) => {
|
|
24
|
+
failureTotal++; summary.failed++;
|
|
25
|
+
const kinds = errors.map(kind);
|
|
26
|
+
const type = kinds.includes('syntax') ? 'syntax' : kinds.includes('dependency') ? 'dependency'
|
|
27
|
+
: allowAssertion && kinds.length > 0 && kinds.every(k => k === 'assertion') ? 'assertion' : 'other';
|
|
28
|
+
if (failures.length < 100) failures.push({name: String(name || 'unnamed test').slice(0,512), file: String(file || 'unhandled'), kind: type});
|
|
29
|
+
};
|
|
30
|
+
for (const module of modules) {
|
|
31
|
+
const suites = [module, ...module.children.allSuites()];
|
|
32
|
+
for (const suite of suites) {
|
|
33
|
+
const errors = suite.errors();
|
|
34
|
+
if (errors.length) fail(suite.fullName || module.moduleId, module.moduleId, errors, false);
|
|
35
|
+
}
|
|
36
|
+
for (const test of module.children.allTests()) {
|
|
37
|
+
const result = test.result();
|
|
38
|
+
if (result.state === 'passed') { summary.tests++; summary.passed++; }
|
|
39
|
+
else if (result.state === 'failed') { summary.tests++; fail(test.fullName, module.moduleId, result.errors || [], !this.pendingHooks.get(test.id)?.size); }
|
|
40
|
+
else if (result.state === 'skipped') summary.skipped++;
|
|
41
|
+
else { summary.cancelled++; summary.success = false; }
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
for (const error of unhandled) fail('unhandled error', 'unhandled', [error], false);
|
|
45
|
+
summary.success = summary.success && failureTotal === 0 && summary.cancelled === 0;
|
|
46
|
+
writeFileSync(process.env.WSPECKIT_VITEST_REPORT, JSON.stringify({version:1, adapter:'vitest', summary, failureTotal, truncated: failureTotal > failures.length, failures}));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
`;
|
|
50
|
+
//# sourceMappingURL=vitest-reporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitest-reporter.js","sourceRoot":"","sources":["../../../src/engine/tdd/vitest-reporter.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+C7C,CAAC"}
|