schemashift-cli 0.10.0 → 0.11.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/cli.js +252 -2
- package/dist/index.cjs +20 -0
- package/dist/index.d.cts +5 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +16 -1
- package/package.json +11 -11
package/dist/cli.js
CHANGED
|
@@ -10,12 +10,17 @@ import { existsSync as existsSync4, readFileSync as readFileSync4, statSync, wri
|
|
|
10
10
|
import { dirname as dirname2, join as join3, resolve as resolve2 } from "path";
|
|
11
11
|
import { fileURLToPath } from "url";
|
|
12
12
|
import {
|
|
13
|
+
ApprovalManager,
|
|
13
14
|
BehavioralWarningAnalyzer,
|
|
14
15
|
BundleEstimator,
|
|
15
16
|
CompatibilityAnalyzer,
|
|
16
17
|
DetailedAnalyzer,
|
|
17
18
|
detectFormLibraries,
|
|
18
19
|
GovernanceEngine,
|
|
20
|
+
GovernanceFixer,
|
|
21
|
+
GraphExporter,
|
|
22
|
+
getAllMigrationTemplates,
|
|
23
|
+
getMigrationTemplate,
|
|
19
24
|
IncrementalTracker,
|
|
20
25
|
loadConfig,
|
|
21
26
|
MigrationAuditLog,
|
|
@@ -37391,8 +37396,46 @@ program.command("migrate <path>").description("Migrate schemas from one library
|
|
|
37391
37396
|
"--max-risk-score <score>",
|
|
37392
37397
|
"Exit 1 if any file exceeds risk score (Team+)",
|
|
37393
37398
|
Number.parseInt
|
|
37394
|
-
).option("--incremental", "Enable incremental migration (file-by-file with progress tracking)").option("--resume", "Resume a previously started incremental migration").option("--incremental-status", "Show incremental migration progress").option("--scaffold-tests", "Generate validation tests after migration (Pro+)").option("--audit", "Enable migration audit logging (Team+)").action(async (targetPath, options) => {
|
|
37399
|
+
).option("--incremental", "Enable incremental migration (file-by-file with progress tracking)").option("--resume", "Resume a previously started incremental migration").option("--incremental-status", "Show incremental migration progress").option("--scaffold-tests", "Generate validation tests after migration (Pro+)").option("--audit", "Enable migration audit logging (Team+)").option("--preset <name>", "Use a migration preset template (Individual+)").action(async (targetPath, options) => {
|
|
37395
37400
|
const startTime = Date.now();
|
|
37401
|
+
if (options.preset) {
|
|
37402
|
+
const validation2 = await licenseManager.validate();
|
|
37403
|
+
const features2 = validation2.license?.features || TIER_FEATURES[LicenseTier.FREE];
|
|
37404
|
+
if (!features2.advancedAnalysis) {
|
|
37405
|
+
console.error(pc4.red("Migration presets require Individual tier or higher."));
|
|
37406
|
+
console.log(`Upgrade at: ${pc4.cyan(POLAR_URL)}`);
|
|
37407
|
+
process.exit(1);
|
|
37408
|
+
}
|
|
37409
|
+
const preset = getMigrationTemplate(options.preset);
|
|
37410
|
+
if (!preset) {
|
|
37411
|
+
console.error(pc4.red(`Unknown preset: ${options.preset}`));
|
|
37412
|
+
const names = getAllMigrationTemplates().map((t) => t.name);
|
|
37413
|
+
console.log(`Available presets: ${names.join(", ")}`);
|
|
37414
|
+
process.exit(1);
|
|
37415
|
+
}
|
|
37416
|
+
const step = preset.migrationSteps[0];
|
|
37417
|
+
if (step && !options.from) options.from = step.from;
|
|
37418
|
+
if (step && !options.to) options.to = step.to;
|
|
37419
|
+
console.log(pc4.bold(`
|
|
37420
|
+
Using preset: ${preset.name}`));
|
|
37421
|
+
console.log(pc4.dim(preset.description));
|
|
37422
|
+
if (preset.preChecks.length > 0) {
|
|
37423
|
+
console.log(pc4.bold("\nPre-migration checklist:"));
|
|
37424
|
+
for (const check of preset.preChecks) {
|
|
37425
|
+
console.log(` ${pc4.yellow("\u2022")} ${check.description}`);
|
|
37426
|
+
}
|
|
37427
|
+
}
|
|
37428
|
+
if (preset.packageChanges.length > 0) {
|
|
37429
|
+
console.log(pc4.bold("\nRecommended package changes:"));
|
|
37430
|
+
for (const change of preset.packageChanges) {
|
|
37431
|
+
const verb = change.action === "install" ? "+" : change.action === "remove" ? "-" : "\u2191";
|
|
37432
|
+
console.log(
|
|
37433
|
+
` ${pc4.cyan(verb)} ${change.package}${change.version ? `@${change.version}` : ""}`
|
|
37434
|
+
);
|
|
37435
|
+
}
|
|
37436
|
+
}
|
|
37437
|
+
console.log("");
|
|
37438
|
+
}
|
|
37396
37439
|
if (!options.chain && (!options.from || !options.to)) {
|
|
37397
37440
|
console.error(pc4.red("Either --from and --to, or --chain must be specified."));
|
|
37398
37441
|
console.error(pc4.dim(" Single-step: schemashift migrate <path> -f yup -t zod"));
|
|
@@ -38094,7 +38137,7 @@ Compatibility score: ${pc4.cyan(result.overallScore.toString())}%`);
|
|
|
38094
38137
|
console.log(pc4.green("\nNo compatibility issues detected."));
|
|
38095
38138
|
}
|
|
38096
38139
|
});
|
|
38097
|
-
program.command("governance <path>").description("Run schema governance checks (Team+)").option("--json", "Output as JSON").option("-c, --config <path>", "Path to config file").action(async (targetPath, options) => {
|
|
38140
|
+
program.command("governance <path>").description("Run schema governance checks (Team+)").option("--json", "Output as JSON").option("--fix", "Auto-fix fixable violations").option("--fix-dry-run", "Preview auto-fixes without applying").option("-c, --config <path>", "Path to config file").action(async (targetPath, options) => {
|
|
38098
38141
|
const validation = await licenseManager.validate();
|
|
38099
38142
|
const features = validation.license?.features || TIER_FEATURES[LicenseTier.FREE];
|
|
38100
38143
|
if (!features.governance) {
|
|
@@ -38151,6 +38194,55 @@ program.command("governance <path>").description("Run schema governance checks (
|
|
|
38151
38194
|
console.log(` ${pc4.dim(`${v.filePath}:${v.lineNumber}`)}`);
|
|
38152
38195
|
}
|
|
38153
38196
|
}
|
|
38197
|
+
if ((options.fix || options.fixDryRun) && result.violations.length > 0) {
|
|
38198
|
+
const governanceFixer = new GovernanceFixer();
|
|
38199
|
+
const fixableCount = result.violations.filter((v) => governanceFixer.canFix(v)).length;
|
|
38200
|
+
if (fixableCount === 0) {
|
|
38201
|
+
console.log(pc4.yellow("\nNo auto-fixable violations found."));
|
|
38202
|
+
} else {
|
|
38203
|
+
console.log(
|
|
38204
|
+
pc4.bold(
|
|
38205
|
+
`
|
|
38206
|
+
${options.fixDryRun ? "Fix Preview" : "Auto-fixing"} (${fixableCount} fixable)
|
|
38207
|
+
`
|
|
38208
|
+
)
|
|
38209
|
+
);
|
|
38210
|
+
const byFile = /* @__PURE__ */ new Map();
|
|
38211
|
+
for (const v of result.violations) {
|
|
38212
|
+
const existing = byFile.get(v.filePath) ?? [];
|
|
38213
|
+
existing.push(v);
|
|
38214
|
+
byFile.set(v.filePath, existing);
|
|
38215
|
+
}
|
|
38216
|
+
let totalFixed = 0;
|
|
38217
|
+
for (const [filePath, fileViolations] of byFile) {
|
|
38218
|
+
const sourceCode = readFileSync4(filePath, "utf-8");
|
|
38219
|
+
const summary = governanceFixer.fixAll(fileViolations, sourceCode);
|
|
38220
|
+
if (summary.fixed > 0) {
|
|
38221
|
+
const shortPath = filePath.replace(`${process.cwd()}/`, "");
|
|
38222
|
+
console.log(` ${pc4.cyan(shortPath)}: ${summary.fixed} fix(es)`);
|
|
38223
|
+
for (const r of summary.results) {
|
|
38224
|
+
if (r.success) {
|
|
38225
|
+
console.log(` ${pc4.green("\u2713")} ${r.explanation}`);
|
|
38226
|
+
}
|
|
38227
|
+
}
|
|
38228
|
+
if (!options.fixDryRun && summary.results.length > 0) {
|
|
38229
|
+
const lastSuccess = [...summary.results].reverse().find((r) => r.success);
|
|
38230
|
+
if (lastSuccess?.fixedCode) {
|
|
38231
|
+
writeFileSync4(filePath, lastSuccess.fixedCode);
|
|
38232
|
+
}
|
|
38233
|
+
}
|
|
38234
|
+
totalFixed += summary.fixed;
|
|
38235
|
+
}
|
|
38236
|
+
}
|
|
38237
|
+
if (options.fixDryRun) {
|
|
38238
|
+
console.log(pc4.yellow(`
|
|
38239
|
+
Dry run: ${totalFixed} fix(es) would be applied.`));
|
|
38240
|
+
} else {
|
|
38241
|
+
console.log(pc4.green(`
|
|
38242
|
+
${totalFixed} fix(es) applied.`));
|
|
38243
|
+
}
|
|
38244
|
+
}
|
|
38245
|
+
}
|
|
38154
38246
|
console.log("");
|
|
38155
38247
|
if (result.passed) {
|
|
38156
38248
|
console.log(pc4.green("Governance check passed."));
|
|
@@ -38161,6 +38253,164 @@ program.command("governance <path>").description("Run schema governance checks (
|
|
|
38161
38253
|
}
|
|
38162
38254
|
}
|
|
38163
38255
|
});
|
|
38256
|
+
program.command("presets").description("List available migration presets").option("--json", "Output as JSON").option("--category <category>", "Filter by category").action((options) => {
|
|
38257
|
+
let templates = getAllMigrationTemplates();
|
|
38258
|
+
if (options.category) {
|
|
38259
|
+
templates = templates.filter((t) => t.category === options.category);
|
|
38260
|
+
}
|
|
38261
|
+
if (options.json) {
|
|
38262
|
+
console.log(JSON.stringify(templates, null, 2));
|
|
38263
|
+
return;
|
|
38264
|
+
}
|
|
38265
|
+
console.log(pc4.bold("\nAvailable Migration Presets\n"));
|
|
38266
|
+
for (const t of templates) {
|
|
38267
|
+
console.log(` ${pc4.cyan(t.name)}`);
|
|
38268
|
+
console.log(` ${t.description}`);
|
|
38269
|
+
console.log(` Category: ${t.category} | Effort: ${t.estimatedEffort}`);
|
|
38270
|
+
console.log(` Steps: ${t.migrationSteps.map((s) => `${s.from}\u2192${s.to}`).join(", ")}`);
|
|
38271
|
+
console.log("");
|
|
38272
|
+
}
|
|
38273
|
+
console.log(pc4.dim("Use with: schemashift migrate <path> --preset <name>"));
|
|
38274
|
+
});
|
|
38275
|
+
program.command("graph <path>").description("Visualize schema dependency graph (Pro+)").option("--format <format>", "Output format: dot, mermaid", "mermaid").option("-o, --output <file>", "Write output to file").option("--filter <library>", "Only show files using a specific library").option("--highlight-circular", "Highlight circular dependencies").option("--color", "Color-code nodes by schema library").action(async (targetPath, options) => {
|
|
38276
|
+
const validation = await licenseManager.validate();
|
|
38277
|
+
const features = validation.license?.features || TIER_FEATURES[LicenseTier.FREE];
|
|
38278
|
+
if (!features.crossFileResolution) {
|
|
38279
|
+
console.error(pc4.red("Dependency graph visualization requires Pro tier or higher."));
|
|
38280
|
+
console.log(`Upgrade at: ${pc4.cyan(POLAR_URL)}`);
|
|
38281
|
+
process.exit(1);
|
|
38282
|
+
}
|
|
38283
|
+
const files = await glob2(join3(targetPath, "**/*.{ts,tsx}"), {
|
|
38284
|
+
ignore: ["**/node_modules/**", "**/dist/**"]
|
|
38285
|
+
});
|
|
38286
|
+
if (files.length === 0) {
|
|
38287
|
+
console.log(pc4.yellow("No files found."));
|
|
38288
|
+
process.exit(0);
|
|
38289
|
+
}
|
|
38290
|
+
const analyzer = new SchemaAnalyzer();
|
|
38291
|
+
for (const file of files) {
|
|
38292
|
+
analyzer.addSourceFiles([file]);
|
|
38293
|
+
}
|
|
38294
|
+
const resolvedFiles = files.map((f) => resolve2(f));
|
|
38295
|
+
const depResolver = new SchemaDependencyResolver();
|
|
38296
|
+
const depResult = depResolver.resolve(analyzer.getProject(), resolvedFiles);
|
|
38297
|
+
const analysisResult = analyzer.analyze();
|
|
38298
|
+
const nodeMetadata = /* @__PURE__ */ new Map();
|
|
38299
|
+
for (const file of resolvedFiles) {
|
|
38300
|
+
const schemas = analysisResult.schemas.filter((s) => s.filePath === file);
|
|
38301
|
+
const library = schemas[0]?.library;
|
|
38302
|
+
nodeMetadata.set(file, { library, schemaCount: schemas.length });
|
|
38303
|
+
}
|
|
38304
|
+
const graphExporter = new GraphExporter();
|
|
38305
|
+
const exportOptions = {
|
|
38306
|
+
colorByLibrary: options.color || false,
|
|
38307
|
+
highlightCircular: options.highlightCircular || false,
|
|
38308
|
+
filterLibrary: options.filter,
|
|
38309
|
+
nodeMetadata
|
|
38310
|
+
};
|
|
38311
|
+
let output;
|
|
38312
|
+
if (options.format === "dot") {
|
|
38313
|
+
output = graphExporter.exportDot(depResult, exportOptions);
|
|
38314
|
+
} else {
|
|
38315
|
+
output = graphExporter.exportMermaid(depResult, exportOptions);
|
|
38316
|
+
}
|
|
38317
|
+
if (options.output) {
|
|
38318
|
+
writeFileSync4(options.output, output);
|
|
38319
|
+
console.log(pc4.green(`Graph written to ${options.output}`));
|
|
38320
|
+
} else {
|
|
38321
|
+
console.log(output);
|
|
38322
|
+
}
|
|
38323
|
+
console.log(
|
|
38324
|
+
pc4.dim(`
|
|
38325
|
+
${depResult.sortedFiles.length} files, ${depResult.crossFileRefs} cross-file refs`)
|
|
38326
|
+
);
|
|
38327
|
+
if (depResult.circularWarnings.length > 0) {
|
|
38328
|
+
console.log(pc4.yellow(`${depResult.circularWarnings.length} circular dependency warning(s)`));
|
|
38329
|
+
}
|
|
38330
|
+
});
|
|
38331
|
+
program.command("approvals").description("Manage migration approval workflows (TEAM)").argument("[path]", "Project path", ".").option("--create", "Create a new migration request").option("--approve <id>", "Approve a pending migration request").option("--reject <id>", "Reject a pending migration request").option("--list", "List all migration requests").option("--status <status>", "Filter by status (pending/approved/rejected)").option("-f, --from <lib>", "Source schema library (for --create)").option("-t, --to <lib>", "Target schema library (for --create)").option("--reviewer <name>", "Reviewer name (for --approve/--reject)").option("--reason <reason>", "Reason for decision").option("--json", "Output as JSON").action(
|
|
38332
|
+
async (inputPath, opts) => {
|
|
38333
|
+
const validation = await licenseManager.validate();
|
|
38334
|
+
const features = validation.license?.features || TIER_FEATURES[LicenseTier.FREE];
|
|
38335
|
+
if (!features.governance) {
|
|
38336
|
+
console.log(pc4.red("Approval workflows require a TEAM license."));
|
|
38337
|
+
console.log(`Upgrade at: ${pc4.cyan(POLAR_URL)}`);
|
|
38338
|
+
return;
|
|
38339
|
+
}
|
|
38340
|
+
const projectPath = resolve2(inputPath);
|
|
38341
|
+
const manager = new ApprovalManager(projectPath);
|
|
38342
|
+
if (opts.create) {
|
|
38343
|
+
if (!opts.from || !opts.to) {
|
|
38344
|
+
console.log(pc4.red("--from and --to are required with --create"));
|
|
38345
|
+
return;
|
|
38346
|
+
}
|
|
38347
|
+
const files = await glob2("**/*.{ts,tsx,js,jsx}", {
|
|
38348
|
+
cwd: projectPath,
|
|
38349
|
+
ignore: ["node_modules/**", "dist/**"],
|
|
38350
|
+
absolute: true
|
|
38351
|
+
});
|
|
38352
|
+
const reviewer = opts.reviewer ?? process.env.USER ?? "unknown";
|
|
38353
|
+
const request = manager.createRequest(opts.from, opts.to, files, reviewer);
|
|
38354
|
+
if (opts.json) {
|
|
38355
|
+
console.log(JSON.stringify(request, null, 2));
|
|
38356
|
+
} else {
|
|
38357
|
+
console.log(pc4.green(`Migration request created: ${pc4.bold(request.id)}`));
|
|
38358
|
+
console.log(` From: ${request.from} \u2192 To: ${request.to}`);
|
|
38359
|
+
console.log(` Files: ${request.files.length}`);
|
|
38360
|
+
console.log(` Status: ${pc4.yellow("pending")}`);
|
|
38361
|
+
}
|
|
38362
|
+
} else if (opts.approve) {
|
|
38363
|
+
const reviewer = opts.reviewer ?? process.env.USER ?? "unknown";
|
|
38364
|
+
const request = manager.review({
|
|
38365
|
+
requestId: opts.approve,
|
|
38366
|
+
status: "approved",
|
|
38367
|
+
reviewedBy: reviewer,
|
|
38368
|
+
reason: opts.reason
|
|
38369
|
+
});
|
|
38370
|
+
console.log(pc4.green(`Migration request ${pc4.bold(request.id)} approved by ${reviewer}`));
|
|
38371
|
+
} else if (opts.reject) {
|
|
38372
|
+
const reviewer = opts.reviewer ?? process.env.USER ?? "unknown";
|
|
38373
|
+
const request = manager.review({
|
|
38374
|
+
requestId: opts.reject,
|
|
38375
|
+
status: "rejected",
|
|
38376
|
+
reviewedBy: reviewer,
|
|
38377
|
+
reason: opts.reason
|
|
38378
|
+
});
|
|
38379
|
+
console.log(pc4.red(`Migration request ${pc4.bold(request.id)} rejected by ${reviewer}`));
|
|
38380
|
+
if (opts.reason) {
|
|
38381
|
+
console.log(` Reason: ${opts.reason}`);
|
|
38382
|
+
}
|
|
38383
|
+
} else {
|
|
38384
|
+
const status = opts.status;
|
|
38385
|
+
const requests = manager.listRequests(status);
|
|
38386
|
+
if (opts.json) {
|
|
38387
|
+
console.log(JSON.stringify(requests, null, 2));
|
|
38388
|
+
} else {
|
|
38389
|
+
const summary = manager.getSummary();
|
|
38390
|
+
console.log(pc4.bold(`
|
|
38391
|
+
Migration Approval Requests (${summary.total} total)
|
|
38392
|
+
`));
|
|
38393
|
+
console.log(
|
|
38394
|
+
` ${pc4.yellow(`Pending: ${summary.pending}`)} ${pc4.green(`Approved: ${summary.approved}`)} ${pc4.red(`Rejected: ${summary.rejected}`)}
|
|
38395
|
+
`
|
|
38396
|
+
);
|
|
38397
|
+
for (const req of requests) {
|
|
38398
|
+
const statusColor = req.status === "approved" ? pc4.green : req.status === "rejected" ? pc4.red : pc4.yellow;
|
|
38399
|
+
console.log(` ${pc4.bold(req.id)} [${statusColor(req.status)}]`);
|
|
38400
|
+
console.log(
|
|
38401
|
+
` ${req.from} \u2192 ${req.to} | ${req.files.length} files | by ${req.requestedBy}`
|
|
38402
|
+
);
|
|
38403
|
+
if (req.reviewedBy) {
|
|
38404
|
+
console.log(` Reviewed by ${req.reviewedBy} at ${req.reviewedAt}`);
|
|
38405
|
+
}
|
|
38406
|
+
}
|
|
38407
|
+
if (requests.length === 0) {
|
|
38408
|
+
console.log(pc4.dim(" No migration requests found."));
|
|
38409
|
+
}
|
|
38410
|
+
}
|
|
38411
|
+
}
|
|
38412
|
+
}
|
|
38413
|
+
);
|
|
38164
38414
|
program.command("pricing").description("Show pricing information").action(() => {
|
|
38165
38415
|
console.log(pc4.bold("\nSchemaShift Pricing\n"));
|
|
38166
38416
|
console.log(`${pc4.green("FREE")} - $0`);
|
package/dist/index.cjs
CHANGED
|
@@ -39,14 +39,23 @@ __export(src_exports, {
|
|
|
39
39
|
TIER_FEATURES: () => TIER_FEATURES,
|
|
40
40
|
TransformEngine: () => import_core5.TransformEngine,
|
|
41
41
|
WatchMode: () => WatchMode,
|
|
42
|
+
createArktypeToZodHandler: () => import_zod_arktype.createArktypeToZodHandler,
|
|
43
|
+
createIoTsToEffectHandler: () => import_io_ts_effect.createIoTsToEffectHandler,
|
|
42
44
|
createIoTsToZodHandler: () => import_io_ts_zod.createIoTsToZodHandler,
|
|
43
45
|
createJoiToZodHandler: () => import_joi_zod.createJoiToZodHandler,
|
|
46
|
+
createSuperstructToZodHandler: () => import_zod_superstruct.createSuperstructToZodHandler,
|
|
47
|
+
createValibotToZodHandler: () => import_zod_valibot.createValibotToZodHandler,
|
|
44
48
|
createYupToZodHandler: () => import_yup_zod.createYupToZodHandler,
|
|
49
|
+
createZodToArktypeHandler: () => import_zod_arktype.createZodToArktypeHandler,
|
|
50
|
+
createZodToSuperstructHandler: () => import_zod_superstruct.createZodToSuperstructHandler,
|
|
51
|
+
createZodToValibotHandler: () => import_zod_valibot.createZodToValibotHandler,
|
|
52
|
+
createZodToYupHandler: () => import_yup_zod.createZodToYupHandler,
|
|
45
53
|
createZodV3ToV4Handler: () => import_zod_v3_v4.createZodV3ToV4Handler,
|
|
46
54
|
loadConfig: () => import_core5.loadConfig
|
|
47
55
|
});
|
|
48
56
|
module.exports = __toCommonJS(src_exports);
|
|
49
57
|
var import_core5 = require("@schemashift/core");
|
|
58
|
+
var import_io_ts_effect = require("@schemashift/io-ts-effect");
|
|
50
59
|
var import_io_ts_zod = require("@schemashift/io-ts-zod");
|
|
51
60
|
var import_joi_zod = require("@schemashift/joi-zod");
|
|
52
61
|
|
|
@@ -34198,7 +34207,10 @@ var LicenseManager = class {
|
|
|
34198
34207
|
|
|
34199
34208
|
// src/index.ts
|
|
34200
34209
|
var import_yup_zod = require("@schemashift/yup-zod");
|
|
34210
|
+
var import_zod_arktype = require("@schemashift/zod-arktype");
|
|
34211
|
+
var import_zod_superstruct = require("@schemashift/zod-superstruct");
|
|
34201
34212
|
var import_zod_v3_v4 = require("@schemashift/zod-v3-v4");
|
|
34213
|
+
var import_zod_valibot = require("@schemashift/zod-valibot");
|
|
34202
34214
|
|
|
34203
34215
|
// src/backup.ts
|
|
34204
34216
|
var import_node_fs = require("fs");
|
|
@@ -34782,9 +34794,17 @@ Changed: ${(0, import_node_path2.relative)(process.cwd(), fullPath)}`));
|
|
|
34782
34794
|
TIER_FEATURES,
|
|
34783
34795
|
TransformEngine,
|
|
34784
34796
|
WatchMode,
|
|
34797
|
+
createArktypeToZodHandler,
|
|
34798
|
+
createIoTsToEffectHandler,
|
|
34785
34799
|
createIoTsToZodHandler,
|
|
34786
34800
|
createJoiToZodHandler,
|
|
34801
|
+
createSuperstructToZodHandler,
|
|
34802
|
+
createValibotToZodHandler,
|
|
34787
34803
|
createYupToZodHandler,
|
|
34804
|
+
createZodToArktypeHandler,
|
|
34805
|
+
createZodToSuperstructHandler,
|
|
34806
|
+
createZodToValibotHandler,
|
|
34807
|
+
createZodToYupHandler,
|
|
34788
34808
|
createZodV3ToV4Handler,
|
|
34789
34809
|
loadConfig
|
|
34790
34810
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { TransformResult } from '@schemashift/core';
|
|
2
2
|
export { SchemaAnalyzer, TransformEngine, loadConfig } from '@schemashift/core';
|
|
3
|
+
export { createIoTsToEffectHandler } from '@schemashift/io-ts-effect';
|
|
3
4
|
export { createIoTsToZodHandler } from '@schemashift/io-ts-zod';
|
|
4
5
|
export { createJoiToZodHandler } from '@schemashift/joi-zod';
|
|
5
6
|
export { LicenseManager, LicenseTier, TIER_FEATURES } from '@schemashift/license';
|
|
6
|
-
export { createYupToZodHandler } from '@schemashift/yup-zod';
|
|
7
|
+
export { createYupToZodHandler, createZodToYupHandler } from '@schemashift/yup-zod';
|
|
8
|
+
export { createArktypeToZodHandler, createZodToArktypeHandler } from '@schemashift/zod-arktype';
|
|
9
|
+
export { createSuperstructToZodHandler, createZodToSuperstructHandler } from '@schemashift/zod-superstruct';
|
|
7
10
|
export { createZodV3ToV4Handler } from '@schemashift/zod-v3-v4';
|
|
11
|
+
export { createValibotToZodHandler, createZodToValibotHandler } from '@schemashift/zod-valibot';
|
|
8
12
|
|
|
9
13
|
interface BackupManifest {
|
|
10
14
|
id: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { TransformResult } from '@schemashift/core';
|
|
2
2
|
export { SchemaAnalyzer, TransformEngine, loadConfig } from '@schemashift/core';
|
|
3
|
+
export { createIoTsToEffectHandler } from '@schemashift/io-ts-effect';
|
|
3
4
|
export { createIoTsToZodHandler } from '@schemashift/io-ts-zod';
|
|
4
5
|
export { createJoiToZodHandler } from '@schemashift/joi-zod';
|
|
5
6
|
export { LicenseManager, LicenseTier, TIER_FEATURES } from '@schemashift/license';
|
|
6
|
-
export { createYupToZodHandler } from '@schemashift/yup-zod';
|
|
7
|
+
export { createYupToZodHandler, createZodToYupHandler } from '@schemashift/yup-zod';
|
|
8
|
+
export { createArktypeToZodHandler, createZodToArktypeHandler } from '@schemashift/zod-arktype';
|
|
9
|
+
export { createSuperstructToZodHandler, createZodToSuperstructHandler } from '@schemashift/zod-superstruct';
|
|
7
10
|
export { createZodV3ToV4Handler } from '@schemashift/zod-v3-v4';
|
|
11
|
+
export { createValibotToZodHandler, createZodToValibotHandler } from '@schemashift/zod-valibot';
|
|
8
12
|
|
|
9
13
|
interface BackupManifest {
|
|
10
14
|
id: string;
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ var __export = (target, all) => {
|
|
|
6
6
|
|
|
7
7
|
// src/index.ts
|
|
8
8
|
import { loadConfig, SchemaAnalyzer, TransformEngine } from "@schemashift/core";
|
|
9
|
+
import { createIoTsToEffectHandler } from "@schemashift/io-ts-effect";
|
|
9
10
|
import { createIoTsToZodHandler } from "@schemashift/io-ts-zod";
|
|
10
11
|
import { createJoiToZodHandler } from "@schemashift/joi-zod";
|
|
11
12
|
|
|
@@ -34156,8 +34157,14 @@ var LicenseManager = class {
|
|
|
34156
34157
|
};
|
|
34157
34158
|
|
|
34158
34159
|
// src/index.ts
|
|
34159
|
-
import { createYupToZodHandler } from "@schemashift/yup-zod";
|
|
34160
|
+
import { createYupToZodHandler, createZodToYupHandler } from "@schemashift/yup-zod";
|
|
34161
|
+
import { createArktypeToZodHandler, createZodToArktypeHandler } from "@schemashift/zod-arktype";
|
|
34162
|
+
import {
|
|
34163
|
+
createSuperstructToZodHandler,
|
|
34164
|
+
createZodToSuperstructHandler
|
|
34165
|
+
} from "@schemashift/zod-superstruct";
|
|
34160
34166
|
import { createZodV3ToV4Handler } from "@schemashift/zod-v3-v4";
|
|
34167
|
+
import { createValibotToZodHandler, createZodToValibotHandler } from "@schemashift/zod-valibot";
|
|
34161
34168
|
|
|
34162
34169
|
// src/backup.ts
|
|
34163
34170
|
import {
|
|
@@ -34748,9 +34755,17 @@ export {
|
|
|
34748
34755
|
TIER_FEATURES,
|
|
34749
34756
|
TransformEngine,
|
|
34750
34757
|
WatchMode,
|
|
34758
|
+
createArktypeToZodHandler,
|
|
34759
|
+
createIoTsToEffectHandler,
|
|
34751
34760
|
createIoTsToZodHandler,
|
|
34752
34761
|
createJoiToZodHandler,
|
|
34762
|
+
createSuperstructToZodHandler,
|
|
34763
|
+
createValibotToZodHandler,
|
|
34753
34764
|
createYupToZodHandler,
|
|
34765
|
+
createZodToArktypeHandler,
|
|
34766
|
+
createZodToSuperstructHandler,
|
|
34767
|
+
createZodToValibotHandler,
|
|
34768
|
+
createZodToYupHandler,
|
|
34754
34769
|
createZodV3ToV4Handler,
|
|
34755
34770
|
loadConfig
|
|
34756
34771
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "schemashift-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "TypeScript schema migration CLI - migrate between Zod, Yup, Joi, and more",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -52,15 +52,15 @@
|
|
|
52
52
|
"node": ">=22.0.0"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@schemashift/core": "0.
|
|
56
|
-
"@schemashift/io-ts-effect": "0.
|
|
57
|
-
"@schemashift/io-ts-zod": "0.
|
|
58
|
-
"@schemashift/joi-zod": "0.
|
|
59
|
-
"@schemashift/yup-zod": "0.
|
|
60
|
-
"@schemashift/zod-arktype": "0.
|
|
61
|
-
"@schemashift/zod-superstruct": "0.
|
|
62
|
-
"@schemashift/zod-valibot": "0.
|
|
63
|
-
"@schemashift/zod-v3-v4": "0.
|
|
55
|
+
"@schemashift/core": "0.11.0",
|
|
56
|
+
"@schemashift/io-ts-effect": "0.11.0",
|
|
57
|
+
"@schemashift/io-ts-zod": "0.11.0",
|
|
58
|
+
"@schemashift/joi-zod": "0.11.0",
|
|
59
|
+
"@schemashift/yup-zod": "0.11.0",
|
|
60
|
+
"@schemashift/zod-arktype": "0.11.0",
|
|
61
|
+
"@schemashift/zod-superstruct": "0.11.0",
|
|
62
|
+
"@schemashift/zod-valibot": "0.11.0",
|
|
63
|
+
"@schemashift/zod-v3-v4": "0.11.0",
|
|
64
64
|
"commander": "14.0.2",
|
|
65
65
|
"cosmiconfig": "9.0.0",
|
|
66
66
|
"glob": "13.0.0",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"picocolors": "1.1.1"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"@schemashift/license": "0.
|
|
72
|
+
"@schemashift/license": "0.11.0"
|
|
73
73
|
},
|
|
74
74
|
"publishConfig": {
|
|
75
75
|
"access": "public"
|