Lines 68-108javascript
68 return [[`${vbriefDir}: expected vbrief directory does not exist`], []];
70 const [errors, warnings] = validateAllMigration(vbriefDir);
71 return [[...errors], [...warnings]];
73/** Move the emitted ``vbrief/`` tree to ``vbrief.invalid/`` on failure. */
74export function isolateInvalidOutput(projectRoot, vbriefDir) {
75 if (!existsSync(vbriefDir)) {
78 let target = join(projectRoot, "vbrief.invalid");
80 while (existsSync(target)) {
82 target = join(projectRoot, `vbrief.invalid.${idx}`);
84 renameSync(vbriefDir, target);
87/** Run validation + isolation as the migrator's terminal gate (#498). */
88export function finalizeMigration(projectRoot, vbriefDir, actions, options = {}) {
89 const stderrWriter = options.stderrWriter ?? ((chunk) => process.stderr.write(chunk));
90 const isolateFn = options.isolateInvalid ?? isolateInvalidOutput;
LowWeak Crypto
Package source references weak cryptographic algorithms.
dist/vbrief-validation/validation.jsView on unpkg · L88 91 const [errors, warnings] = validateMigrationOutput(vbriefDir);
92 if (errors.length === 0) {
93 for (const w of warnings) {
94 stderrWriter(`WARNING: ${w}\n`);
96 return [true, actions];
98 stderrWriter(`ERROR: Migration produced invalid output (${errors.length} file-level error(s)):\n`);
99 for (const err of errors) {
100 stderrWriter(` ${err}\n`);
102 const invalidDir = isolateFn(projectRoot, vbriefDir);
103 const failureActions = [...actions];
104 failureActions.push(`FAIL migration produced ${errors.length} schema validation error(s)`);
105 for (const err of errors) {
106 failureActions.push(` ${err}`);
108 if (invalidDir !== null) {