@@ -44880,7 +44880,7 @@ var require_dist2 = __commonJS({
4488044880 }
4488144881});
4488244882
44883- // node_modules/.pnpm/@contractual+governance@0.1.0-dev.5 /node_modules/@contractual/governance/dist/runner.js
44883+ // node_modules/.pnpm/@contractual+governance@0.1.0-dev.7 /node_modules/@contractual/governance/dist/runner.js
4488444884var runner_exports = {};
4488544885__export(runner_exports, {
4488644886 executeCustomCommand: () => executeCustomCommand,
@@ -45118,7 +45118,7 @@ function parseLineDiffOutput(output) {
4511845118 return { contract: "", changes, summary, suggestedBump };
4511945119}
4512045120var init_runner = __esm({
45121- "node_modules/.pnpm/@contractual+governance@0.1.0-dev.5 /node_modules/@contractual/governance/dist/runner.js"() {
45121+ "node_modules/.pnpm/@contractual+governance@0.1.0-dev.7 /node_modules/@contractual/governance/dist/runner.js"() {
4512245122 __name(isExecError, "isExecError");
4512345123 __name(executeCustomCommand, "executeCustomCommand");
4512445124 __name(parseCustomLintOutput, "parseCustomLintOutput");
@@ -79271,15 +79271,15 @@ var core6 = __toESM(require_core());
7927179271var core2 = __toESM(require_core());
7927279272var github = __toESM(require_github());
7927379273
79274- // node_modules/.pnpm/@contractual+cli@0.1.0-dev.5_ @types+node@20.19.39/node_modules/@contractual/cli/dist/config/loader.js
79274+ // node_modules/.pnpm/@contractual+cli@0.1.0-dev.7_ @types+node@20.19.39/node_modules/@contractual/cli/dist/config/loader.js
7927579275var import_yaml = __toESM(require_dist(), 1);
7927679276var import_fast_glob = __toESM(require_out4(), 1);
7927779277
79278- // node_modules/.pnpm/@contractual+cli@0.1.0-dev.5_ @types+node@20.19.39/node_modules/@contractual/cli/dist/config/validator.js
79278+ // node_modules/.pnpm/@contractual+cli@0.1.0-dev.7_ @types+node@20.19.39/node_modules/@contractual/cli/dist/config/validator.js
7927979279var import_ajv = __toESM(require_ajv(), 1);
7928079280var import_ajv_formats = __toESM(require_dist2(), 1);
7928179281
79282- // node_modules/.pnpm/@contractual+cli@0.1.0-dev.5_ @types+node@20.19.39/node_modules/@contractual/cli/dist/config/schema.json
79282+ // node_modules/.pnpm/@contractual+cli@0.1.0-dev.7_ @types+node@20.19.39/node_modules/@contractual/cli/dist/config/schema.json
7928379283var schema_default = {
7928479284 $schema: "http://json-schema.org/draft-07/schema#",
7928579285 $id: "https://contractual.dev/schemas/config.json",
@@ -79407,7 +79407,7 @@ var schema_default = {
7940779407 additionalProperties: false
7940879408};
7940979409
79410- // node_modules/.pnpm/@contractual+cli@0.1.0-dev.5_ @types+node@20.19.39/node_modules/@contractual/cli/dist/config/validator.js
79410+ // node_modules/.pnpm/@contractual+cli@0.1.0-dev.7_ @types+node@20.19.39/node_modules/@contractual/cli/dist/config/validator.js
7941179411var AjvConstructor = import_ajv.default.default ?? import_ajv.default;
7941279412var addFormatsFunc = import_ajv_formats.default.default ?? import_ajv_formats.default;
7941379413function validateConfig(config) {
@@ -79430,7 +79430,7 @@ function formatValidationErrors(errors) {
7943079430}
7943179431__name(formatValidationErrors, "formatValidationErrors");
7943279432
79433- // node_modules/.pnpm/@contractual+cli@0.1.0-dev.5_ @types+node@20.19.39/node_modules/@contractual/cli/dist/config/loader.js
79433+ // node_modules/.pnpm/@contractual+cli@0.1.0-dev.7_ @types+node@20.19.39/node_modules/@contractual/cli/dist/config/loader.js
7943479434var CONFIG_FILENAMES = ["contractual.yaml", "contractual.yml"];
7943579435var ConfigError = class extends Error {
7943679436 static {
@@ -79531,7 +79531,7 @@ function loadConfig(startDir) {
7953179531}
7953279532__name(loadConfig, "loadConfig");
7953379533
79534- // node_modules/.pnpm/@contractual+governance@0.1.0-dev.5 /node_modules/@contractual/governance/dist/registry.js
79534+ // node_modules/.pnpm/@contractual+governance@0.1.0-dev.7 /node_modules/@contractual/governance/dist/registry.js
7953579535var linters = /* @__PURE__ */ new Map();
7953679536var differs = /* @__PURE__ */ new Map();
7953779537function registerLinter(type, linter) {
@@ -79638,7 +79638,7 @@ function createCustomDiffer(commandTemplate) {
7963879638}
7963979639__name(createCustomDiffer, "createCustomDiffer");
7964079640
79641- // node_modules/.pnpm/@contractual+governance@0.1.0-dev.5 /node_modules/@contractual/governance/dist/linters/openapi-redocly.js
79641+ // node_modules/.pnpm/@contractual+governance@0.1.0-dev.7 /node_modules/@contractual/governance/dist/linters/openapi-redocly.js
7964279642async function lintOpenAPI(specPath) {
7964379643 let lint;
7964479644 let loadConfig2;
@@ -79689,11 +79689,11 @@ async function lintOpenAPI(specPath) {
7968979689}
7969079690__name(lintOpenAPI, "lintOpenAPI");
7969179691
79692- // node_modules/.pnpm/@contractual+governance@0.1.0-dev.5 /node_modules/@contractual/governance/dist/linters/json-schema-ajv.js
79692+ // node_modules/.pnpm/@contractual+governance@0.1.0-dev.7 /node_modules/@contractual/governance/dist/linters/json-schema-ajv.js
7969379693var import_ajv2 = __toESM(require_ajv(), 1);
7969479694var import_ajv_formats2 = __toESM(require_dist2(), 1);
7969579695
79696- // node_modules/.pnpm/@contractual+differs.core@0.1.0-dev.5 /node_modules/@contractual/differs.core/dist/types.js
79696+ // node_modules/.pnpm/@contractual+differs.core@0.1.0-dev.7 /node_modules/@contractual/differs.core/dist/types.js
7969779697var CONSTRAINT_DIRECTION = {
7969879698 minimum: "min",
7969979699 maximum: "max",
@@ -79792,7 +79792,7 @@ function joinPath(basePath, ...segments) {
7979279792}
7979379793__name(joinPath, "joinPath");
7979479794
79795- // node_modules/.pnpm/@contractual+differs.core@0.1.0-dev.5 /node_modules/@contractual/differs.core/dist/walker.js
79795+ // node_modules/.pnpm/@contractual+differs.core@0.1.0-dev.7 /node_modules/@contractual/differs.core/dist/walker.js
7979679796function walk(oldSchema, newSchema, basePath = "") {
7979779797 return walkInternal(oldSchema, newSchema, basePath, 0);
7979879798}
@@ -80783,7 +80783,7 @@ function matchCompositionOptions(oldOptions, newOptions) {
8078380783}
8078480784__name(matchCompositionOptions, "matchCompositionOptions");
8078580785
80786- // node_modules/.pnpm/@contractual+differs.core@0.1.0-dev.5 /node_modules/@contractual/differs.core/dist/classifiers.js
80786+ // node_modules/.pnpm/@contractual+differs.core@0.1.0-dev.7 /node_modules/@contractual/differs.core/dist/classifiers.js
8078780787var BREAKING_CHANGES = /* @__PURE__ */ new Set([
8078880788 "property-removed",
8078980789 "required-added",
@@ -80958,7 +80958,7 @@ function isObject(value) {
8095880958}
8095980959__name(isObject, "isObject");
8096080960
80961- // node_modules/.pnpm/@contractual+differs.core@0.1.0-dev.5 /node_modules/@contractual/differs.core/dist/ref-resolver.js
80961+ // node_modules/.pnpm/@contractual+differs.core@0.1.0-dev.7 /node_modules/@contractual/differs.core/dist/ref-resolver.js
8096280962function resolveRefs(schema) {
8096380963 const context3 = {
8096480964 root: schema,
@@ -81115,7 +81115,7 @@ function isObject2(value) {
8111581115}
8111681116__name(isObject2, "isObject");
8111781117
81118- // node_modules/.pnpm/@contractual+differs.core@0.1.0-dev.5 /node_modules/@contractual/differs.core/dist/format.js
81118+ // node_modules/.pnpm/@contractual+differs.core@0.1.0-dev.7 /node_modules/@contractual/differs.core/dist/format.js
8111981119function formatChangeMessage(change) {
8112081120 const pathDisplay = decodeJsonPointer(change.path || "/");
8112181121 switch (change.type) {
@@ -81214,14 +81214,42 @@ function formatChangeMessage(change) {
8121481214 return `Security changed at ${pathDisplay}`;
8121581215 case "server-changed":
8121681216 return `Server changed at ${pathDisplay}`;
81217+ // Composition changes
81218+ case "anyof-option-added":
81219+ return `anyOf option added at ${pathDisplay}`;
81220+ case "anyof-option-removed":
81221+ return `anyOf option removed at ${pathDisplay}`;
81222+ case "oneof-option-added":
81223+ return `oneOf option added at ${pathDisplay}`;
81224+ case "oneof-option-removed":
81225+ return `oneOf option removed at ${pathDisplay}`;
81226+ case "allof-member-added":
81227+ return `allOf member added at ${pathDisplay}`;
81228+ case "allof-member-removed":
81229+ return `allOf member removed at ${pathDisplay}`;
81230+ case "not-schema-changed":
81231+ return `not schema changed at ${pathDisplay}`;
81232+ case "if-then-else-changed":
81233+ return `Conditional schema (if/then/else) changed at ${pathDisplay}`;
8121781234 case "unknown-change":
8121881235 default:
8121981236 return `Unknown change at ${pathDisplay}`;
8122081237 }
8122181238}
8122281239__name(formatChangeMessage, "formatChangeMessage");
8122381240function decodeJsonPointer(path4) {
81224- return path4.replace(/~1/g, "/").replace(/~0/g, "~");
81241+ if (!path4.startsWith("/"))
81242+ return path4;
81243+ const segments = path4.split("/");
81244+ const decoded = segments.map((seg, i) => {
81245+ if (i === 0)
81246+ return seg;
81247+ const value = seg.replace(/~1/g, "/").replace(/~0/g, "~");
81248+ if (value.includes("/"))
81249+ return `[${value}]`;
81250+ return value;
81251+ });
81252+ return decoded.join("/");
8122581253}
8122681254__name(decodeJsonPointer, "decodeJsonPointer");
8122781255function formatValue(value) {
@@ -81270,7 +81298,7 @@ function extractConstraintName(path4) {
8127081298}
8127181299__name(extractConstraintName, "extractConstraintName");
8127281300
81273- // node_modules/.pnpm/@contractual+differs.core@0.1.0-dev.5 /node_modules/@contractual/differs.core/dist/assemble.js
81301+ // node_modules/.pnpm/@contractual+differs.core@0.1.0-dev.7 /node_modules/@contractual/differs.core/dist/assemble.js
8127481302function assembleResult(rawChanges, resolvedNewSchema, options) {
8127581303 const classifyChange = options?.classifyFn ?? defaultClassify;
8127681304 const changes = rawChanges.map((raw) => ({
@@ -81339,7 +81367,7 @@ function diffJsonSchemaObjects(oldSchema, newSchema) {
8133981367}
8134081368__name(diffJsonSchemaObjects, "diffJsonSchemaObjects");
8134181369
81342- // node_modules/.pnpm/@contractual+governance@0.1.0-dev.5 /node_modules/@contractual/governance/dist/linters/json-schema-rules.js
81370+ // node_modules/.pnpm/@contractual+governance@0.1.0-dev.7 /node_modules/@contractual/governance/dist/linters/json-schema-rules.js
8134381371var TYPE_SPECIFIC_KEYWORDS = {
8134481372 string: ["minLength", "maxLength", "pattern", "format"],
8134581373 number: ["minimum", "maximum", "exclusiveMinimum", "exclusiveMaximum", "multipleOf"],
@@ -82027,7 +82055,7 @@ function walkSchema(schema, path4, root, visitor) {
8202782055}
8202882056__name(walkSchema, "walkSchema");
8202982057
82030- // node_modules/.pnpm/@contractual+governance@0.1.0-dev.5 /node_modules/@contractual/governance/dist/linters/json-schema-ajv.js
82058+ // node_modules/.pnpm/@contractual+governance@0.1.0-dev.7 /node_modules/@contractual/governance/dist/linters/json-schema-ajv.js
8203182059var AjvConstructor2 = import_ajv2.default.default ?? import_ajv2.default;
8203282060var addFormatsFunc2 = import_ajv_formats2.default.default ?? import_ajv_formats2.default;
8203382061async function lintJsonSchema(specPath, options = {}) {
@@ -82098,7 +82126,7 @@ async function lintJsonSchema(specPath, options = {}) {
8209882126}
8209982127__name(lintJsonSchema, "lintJsonSchema");
8210082128
82101- // node_modules/.pnpm/@contractual+differs.openapi@0.1.0-dev.5 /node_modules/@contractual/differs.openapi/dist/resolver.js
82129+ // node_modules/.pnpm/@contractual+differs.openapi@0.1.0-dev.7 /node_modules/@contractual/differs.openapi/dist/resolver.js
8210282130async function resolveOpenApiSpec(specPath) {
8210382131 let bundle;
8210482132 let loadConfig2;
@@ -82117,7 +82145,7 @@ async function resolveOpenApiSpec(specPath) {
8211782145}
8211882146__name(resolveOpenApiSpec, "resolveOpenApiSpec");
8211982147
82120- // node_modules/.pnpm/@contractual+differs.openapi@0.1.0-dev.5 /node_modules/@contractual/differs.openapi/dist/structural.js
82148+ // node_modules/.pnpm/@contractual+differs.openapi@0.1.0-dev.7 /node_modules/@contractual/differs.openapi/dist/structural.js
8212182149var HTTP_METHODS = ["get", "put", "post", "delete", "patch", "options", "head", "trace"];
8212282150function diffStructural(oldSpec, newSpec) {
8212382151 const changes = [];
@@ -82337,7 +82365,7 @@ function diffResponses(oldOp, newOp, basePath) {
8233782365}
8233882366__name(diffResponses, "diffResponses");
8233982367
82340- // node_modules/.pnpm/@contractual+differs.openapi@0.1.0-dev.5 /node_modules/@contractual/differs.openapi/dist/differ.js
82368+ // node_modules/.pnpm/@contractual+differs.openapi@0.1.0-dev.7 /node_modules/@contractual/differs.openapi/dist/differ.js
8234182369async function diffOpenApi(oldSpecPath, newSpecPath) {
8234282370 const oldSpec = await resolveOpenApiSpec(oldSpecPath);
8234382371 const newSpec = await resolveOpenApiSpec(newSpecPath);
@@ -82350,7 +82378,7 @@ function diffOpenApiObjects(oldSpec, newSpec) {
8235082378}
8235182379__name(diffOpenApiObjects, "diffOpenApiObjects");
8235282380
82353- // node_modules/.pnpm/@contractual+governance@0.1.0-dev.5 /node_modules/@contractual/governance/dist/index.js
82381+ // node_modules/.pnpm/@contractual+governance@0.1.0-dev.7 /node_modules/@contractual/governance/dist/index.js
8235482382init_runner();
8235582383function registerAllEngines() {
8235682384 registerLinter("openapi", lintOpenAPI);
@@ -82361,7 +82389,7 @@ function registerAllEngines() {
8236182389__name(registerAllEngines, "registerAllEngines");
8236282390registerAllEngines();
8236382391
82364- // node_modules/.pnpm/@contractual+cli@0.1.0-dev.5_ @types+node@20.19.39/node_modules/@contractual/cli/dist/utils/files.js
82392+ // node_modules/.pnpm/@contractual+cli@0.1.0-dev.7_ @types+node@20.19.39/node_modules/@contractual/cli/dist/utils/files.js
8236582393__toESM(require_dist(), 1);
8236682394
8236782395// node_modules/.pnpm/@contractual+changesets@0.1.0-dev.5/node_modules/@contractual/changesets/dist/changesets/naming.js
@@ -82949,7 +82977,7 @@ function updateSpecVersion(specPath, newVersion, contractType) {
8294982977}
8295082978__name(updateSpecVersion, "updateSpecVersion");
8295182979
82952- // node_modules/.pnpm/@contractual+cli@0.1.0-dev.5_ @types+node@20.19.39/node_modules/@contractual/cli/dist/utils/files.js
82980+ // node_modules/.pnpm/@contractual+cli@0.1.0-dev.7_ @types+node@20.19.39/node_modules/@contractual/cli/dist/utils/files.js
8295382981var CONTRACTUAL_DIR = ".contractual";
8295482982function findContractualDir(startDir = process.cwd()) {
8295582983 let currentDir = path.resolve(startDir);
@@ -82984,7 +83012,7 @@ function getSnapshotPath(contractName, contractualDir) {
8298483012}
8298583013__name(getSnapshotPath, "getSnapshotPath");
8298683014
82987- // node_modules/.pnpm/@contractual+cli@0.1.0-dev.5_ @types+node@20.19.39/node_modules/@contractual/cli/dist/core/diff.js
83015+ // node_modules/.pnpm/@contractual+cli@0.1.0-dev.7_ @types+node@20.19.39/node_modules/@contractual/cli/dist/core/diff.js
8298883016async function diffContracts(config, options = {}) {
8298983017 const contractualDir = findContractualDir(config.configDir);
8299083018 if (!contractualDir) {
0 commit comments