openapi-merge-cli
Advanced tools
Comparing version 1.2.0 to 1.3.0
@@ -5,234 +5,616 @@ { | ||
"definitions": { | ||
"ConfigurationInputFromFile": { | ||
"DescriptionMergeBehaviour": { | ||
"additionalProperties": false, | ||
"description": "A single Configuration input from a File.", | ||
"properties": { | ||
"description": { | ||
"additionalProperties": false, | ||
"description": "This configuration setting lets you configure how the info.description from this OpenAPI file will be merged\ninto the final resulting OpenAPI file", | ||
"properties": { | ||
"append": { | ||
"default": false, | ||
"description": "Wether or not the description for this OpenAPI file will be merged into the description of the final file.", | ||
"title": "append", | ||
"type": "boolean" | ||
"append": { | ||
"default": false, | ||
"description": "Wether or not the description for this OpenAPI file will be merged into the description of the final file.", | ||
"title": "append", | ||
"type": "boolean" | ||
}, | ||
"title": { | ||
"$ref": "#/definitions/DescriptionTitle", | ||
"description": "You may optionally include a Markdown Title to demarcate this particular section of the merged description files.", | ||
"examples": [ | ||
{ | ||
"value": "Title 1" | ||
}, | ||
"title": { | ||
"additionalProperties": false, | ||
"description": "You may optionally include a Markdown Title to demarcate this particular section of the merged description files.", | ||
"properties": { | ||
"headingLevel": { | ||
"default": 1, | ||
"description": "What heading level this heading will be at: from h1 through to h6. The default value is 1 and will create h1 elements\nin Markdown format.", | ||
"maximum": 6, | ||
"minimum": 1, | ||
"title": "headingLevel", | ||
"type": "number" | ||
}, | ||
"value": { | ||
"description": "The value of the included title.", | ||
"minLength": 1, | ||
"title": "value", | ||
"type": "string" | ||
} | ||
}, | ||
"required": [ | ||
"value" | ||
], | ||
"title": "title", | ||
"type": "object" | ||
{ | ||
"headingLevel": 2, | ||
"value": "Title Level 2" | ||
}, | ||
{ | ||
"headingLevel": 6, | ||
"value": "Inperceptible title" | ||
} | ||
}, | ||
"required": [ | ||
"append" | ||
], | ||
"title": "description", | ||
"type": "object" | ||
"title": "title" | ||
} | ||
}, | ||
"required": [ | ||
"append" | ||
], | ||
"title": "DescriptionMergeBehaviour", | ||
"type": "object" | ||
}, | ||
"DescriptionTitle": { | ||
"additionalProperties": false, | ||
"properties": { | ||
"headingLevel": { | ||
"default": 1, | ||
"description": "What heading level this heading will be at: from h1 through to h6. The default value is 1 and will create h1 elements\nin Markdown format.", | ||
"maximum": 6, | ||
"minimum": 1, | ||
"title": "headingLevel", | ||
"type": "number" | ||
}, | ||
"disputePrefix": { | ||
"description": "The prefix that will be used in the event of a conflict of two definition names.", | ||
"value": { | ||
"description": "The value of the included title.", | ||
"minLength": 1, | ||
"title": "disputePrefix", | ||
"title": "value", | ||
"type": "string" | ||
} | ||
}, | ||
"required": [ | ||
"value" | ||
], | ||
"title": "DescriptionTitle", | ||
"type": "object" | ||
}, | ||
"Dispute": { | ||
"anyOf": [ | ||
{ | ||
"$ref": "#/definitions/DisputePrefix" | ||
}, | ||
"inputFile": { | ||
"description": "The path to the input OpenAPI Schema that will be merged.", | ||
{ | ||
"$ref": "#/definitions/DisputeSuffix" | ||
} | ||
], | ||
"title": "Dispute" | ||
}, | ||
"DisputePrefix": { | ||
"additionalProperties": false, | ||
"description": "A dispute with a configurable prefix.", | ||
"properties": { | ||
"alwaysApply": { | ||
"default": false, | ||
"description": "If this is set to true, then this prefix will always be applied to every Schema, even if there is no dispute\nfor that particular schema. This may prevent the deduplication of common schemas from different OpenApi files.", | ||
"title": "alwaysApply", | ||
"type": "boolean" | ||
}, | ||
"prefix": { | ||
"description": "The prefix to use when a schema is in dispute.", | ||
"minLength": 1, | ||
"title": "inputFile", | ||
"title": "prefix", | ||
"type": "string" | ||
} | ||
}, | ||
"required": [ | ||
"prefix" | ||
], | ||
"title": "DisputePrefix", | ||
"type": "object" | ||
}, | ||
"DisputeSuffix": { | ||
"additionalProperties": false, | ||
"description": "A dispute with a configurable suffix.", | ||
"properties": { | ||
"alwaysApply": { | ||
"default": false, | ||
"description": "If this is set to true, then this prefix will always be applied to every Schema, even if there is no dispute\nfor that particular schema. This may prevent the deduplication of common schemas from different OpenApi files.", | ||
"title": "alwaysApply", | ||
"type": "boolean" | ||
}, | ||
"operationSelection": { | ||
"additionalProperties": false, | ||
"description": "Choose which OpenAPI Operations should be included from this input.", | ||
"properties": { | ||
"excludeTags": { | ||
"description": "Any Operation that has any one of these tags will be excluded from the final result. If a single Operation contains\nan includeTag and an excludeTag then it will be excluded; exclusion takes precedence.", | ||
"items": { | ||
"type": "string" | ||
}, | ||
"title": "excludeTags", | ||
"type": "array" | ||
}, | ||
"includeTags": { | ||
"description": "Only Operatinos that have these tags will be taken from this OpenAPI file. If a single Operation contains\nan includeTag and an excludeTag then it will be excluded; exclusion takes precedence.", | ||
"items": { | ||
"type": "string" | ||
}, | ||
"title": "includeTags", | ||
"type": "array" | ||
} | ||
}, | ||
"title": "operationSelection", | ||
"type": "object" | ||
}, | ||
"pathModification": { | ||
"additionalProperties": false, | ||
"description": "For this input, you can perform these modifications to its paths elements.", | ||
"properties": { | ||
"prepend": { | ||
"description": "Append these characters to the start of the paths for this input. Will run after stripStart.", | ||
"minLength": 1, | ||
"title": "prepend", | ||
"type": "string" | ||
}, | ||
"stripStart": { | ||
"description": "If a path starts with these characters, then stip them from the beginning of the path. Will run before prepend.", | ||
"minLength": 1, | ||
"title": "stripStart", | ||
"type": "string" | ||
} | ||
}, | ||
"title": "pathModification", | ||
"type": "object" | ||
"suffix": { | ||
"description": "The suffix to use when a schema is in dispute.", | ||
"minLength": 1, | ||
"title": "suffix", | ||
"type": "string" | ||
} | ||
}, | ||
"required": [ | ||
"inputFile" | ||
"suffix" | ||
], | ||
"title": "ConfigurationInputFromFile", | ||
"title": "DisputeSuffix", | ||
"type": "object" | ||
}, | ||
"ConfigurationInputFromUrl": { | ||
"OperationSelection": { | ||
"additionalProperties": false, | ||
"description": "A single Configuration input from a URL", | ||
"properties": { | ||
"description": { | ||
"additionalProperties": false, | ||
"description": "This configuration setting lets you configure how the info.description from this OpenAPI file will be merged\ninto the final resulting OpenAPI file", | ||
"properties": { | ||
"append": { | ||
"default": false, | ||
"description": "Wether or not the description for this OpenAPI file will be merged into the description of the final file.", | ||
"title": "append", | ||
"type": "boolean" | ||
}, | ||
"title": { | ||
"additionalProperties": false, | ||
"description": "You may optionally include a Markdown Title to demarcate this particular section of the merged description files.", | ||
"properties": { | ||
"headingLevel": { | ||
"default": 1, | ||
"description": "What heading level this heading will be at: from h1 through to h6. The default value is 1 and will create h1 elements\nin Markdown format.", | ||
"maximum": 6, | ||
"minimum": 1, | ||
"title": "headingLevel", | ||
"type": "number" | ||
}, | ||
"value": { | ||
"description": "The value of the included title.", | ||
"minLength": 1, | ||
"title": "value", | ||
"type": "string" | ||
} | ||
}, | ||
"required": [ | ||
"value" | ||
], | ||
"title": "title", | ||
"type": "object" | ||
} | ||
"excludeTags": { | ||
"description": "Any Operation that has any one of these tags will be excluded from the final result. If a single Operation contains\nan includeTag and an excludeTag then it will be excluded; exclusion takes precedence.", | ||
"items": { | ||
"type": "string" | ||
}, | ||
"required": [ | ||
"append" | ||
], | ||
"title": "description", | ||
"type": "object" | ||
"title": "excludeTags", | ||
"type": "array" | ||
}, | ||
"disputePrefix": { | ||
"description": "The prefix that will be used in the event of a conflict of two definition names.", | ||
"includeTags": { | ||
"description": "Only Operatinos that have these tags will be taken from this OpenAPI file. If a single Operation contains\nan includeTag and an excludeTag then it will be excluded; exclusion takes precedence.", | ||
"items": { | ||
"type": "string" | ||
}, | ||
"title": "includeTags", | ||
"type": "array" | ||
} | ||
}, | ||
"title": "OperationSelection", | ||
"type": "object" | ||
}, | ||
"PathModification": { | ||
"additionalProperties": false, | ||
"properties": { | ||
"prepend": { | ||
"description": "Append these characters to the start of the paths for this input. Will run after stripStart.", | ||
"minLength": 1, | ||
"title": "disputePrefix", | ||
"title": "prepend", | ||
"type": "string" | ||
}, | ||
"inputURL": { | ||
"description": "The input url that we should load our configuration file from.", | ||
"format": "uri", | ||
"pattern": "^https?://", | ||
"title": "inputURL", | ||
"stripStart": { | ||
"description": "If a path starts with these characters, then stip them from the beginning of the path. Will run before prepend.", | ||
"minLength": 1, | ||
"title": "stripStart", | ||
"type": "string" | ||
}, | ||
"operationSelection": { | ||
"additionalProperties": false, | ||
"description": "Choose which OpenAPI Operations should be included from this input.", | ||
"properties": { | ||
"excludeTags": { | ||
"description": "Any Operation that has any one of these tags will be excluded from the final result. If a single Operation contains\nan includeTag and an excludeTag then it will be excluded; exclusion takes precedence.", | ||
"items": { | ||
"type": "string" | ||
}, | ||
"title": "excludeTags", | ||
"type": "array" | ||
}, | ||
"includeTags": { | ||
"description": "Only Operatinos that have these tags will be taken from this OpenAPI file. If a single Operation contains\nan includeTag and an excludeTag then it will be excluded; exclusion takes precedence.", | ||
"items": { | ||
"type": "string" | ||
}, | ||
"title": "includeTags", | ||
"type": "array" | ||
} | ||
}, | ||
"title": "operationSelection", | ||
"type": "object" | ||
}, | ||
"pathModification": { | ||
"additionalProperties": false, | ||
"description": "For this input, you can perform these modifications to its paths elements.", | ||
"properties": { | ||
"prepend": { | ||
"description": "Append these characters to the start of the paths for this input. Will run after stripStart.", | ||
"minLength": 1, | ||
"title": "prepend", | ||
"type": "string" | ||
}, | ||
"stripStart": { | ||
"description": "If a path starts with these characters, then stip them from the beginning of the path. Will run before prepend.", | ||
"minLength": 1, | ||
"title": "stripStart", | ||
"type": "string" | ||
} | ||
}, | ||
"title": "pathModification", | ||
"type": "object" | ||
} | ||
}, | ||
"required": [ | ||
"inputURL" | ||
], | ||
"title": "ConfigurationInputFromUrl", | ||
"title": "PathModification", | ||
"type": "object" | ||
} | ||
}, | ||
"description": "The Configuration file for the OpenAPI Merge CLI Tool.", | ||
"properties": { | ||
"inputs": { | ||
"description": "The input items for the merge algorithm. You must provide at least one.", | ||
"examples": [ | ||
[ | ||
{ | ||
"inputFile": "./swagger.json" | ||
}, | ||
{ | ||
"inputURL": "https://developer.atlassian.com/cloud/jira/platform/swagger-v3.v3.json" | ||
} | ||
], | ||
[ | ||
{ | ||
"inputFile": "./swagger.json" | ||
}, | ||
{ | ||
"inputURL": "https://developer.atlassian.com/cloud/jira/platform/swagger-v3.v3.json" | ||
}, | ||
{ | ||
"description": { | ||
"append": true, | ||
"title": { | ||
"headingLevel": 1, | ||
"value": "My Swagger Description" | ||
} | ||
}, | ||
"dispute": { | ||
"alwaysApply": true, | ||
"suffix": "Model" | ||
}, | ||
"inputFile": "./swagger.json", | ||
"operationSelection": { | ||
"excludeTags": [ | ||
"private" | ||
], | ||
"includeTags": [ | ||
"public" | ||
] | ||
}, | ||
"pathModification": { | ||
"prepend": "/jira", | ||
"stripStart": "/rest" | ||
} | ||
} | ||
] | ||
], | ||
"items": { | ||
"anyOf": [ | ||
{ | ||
"$ref": "#/definitions/ConfigurationInputFromFile" | ||
"additionalProperties": false, | ||
"properties": { | ||
"description": { | ||
"$ref": "#/definitions/DescriptionMergeBehaviour", | ||
"description": "This configuration setting lets you configure how the info.description from this OpenAPI file will be merged\ninto the final resulting OpenAPI file", | ||
"examples": [ | ||
{ | ||
"append": true | ||
}, | ||
{ | ||
"append": true, | ||
"title": { | ||
"value": "Title 1" | ||
} | ||
}, | ||
{ | ||
"append": true, | ||
"title": { | ||
"headingLevel": 2, | ||
"value": "Title Level 2" | ||
} | ||
}, | ||
{ | ||
"append": true, | ||
"title": { | ||
"headingLevel": 6, | ||
"value": "Inperceptible title" | ||
} | ||
} | ||
], | ||
"title": "description" | ||
}, | ||
"disputePrefix": { | ||
"description": "The prefix that will be used in the event of a conflict of two definition names.", | ||
"minLength": 1, | ||
"title": "disputePrefix", | ||
"type": "string" | ||
}, | ||
"inputFile": { | ||
"description": "The path to the input OpenAPI Schema that will be merged.", | ||
"minLength": 1, | ||
"title": "inputFile", | ||
"type": "string" | ||
}, | ||
"operationSelection": { | ||
"$ref": "#/definitions/OperationSelection", | ||
"description": "Choose which OpenAPI Operations should be included from this input.", | ||
"examples": [ | ||
{ | ||
"includeTags": [ | ||
"include-this-tag-only" | ||
] | ||
}, | ||
{ | ||
"excludeTags": [ | ||
"exclude-these-tags" | ||
] | ||
}, | ||
{ | ||
"excludeTags": [ | ||
"filter-out-with-this-tag" | ||
], | ||
"includeTags": [ | ||
"select-this-first" | ||
] | ||
} | ||
], | ||
"title": "operationSelection" | ||
}, | ||
"pathModification": { | ||
"$ref": "#/definitions/PathModification", | ||
"description": "For this input, you can perform these modifications to its paths elements.", | ||
"examples": [ | ||
{ | ||
"stripStart": "Model" | ||
}, | ||
{ | ||
"prepend": "Model" | ||
}, | ||
{ | ||
"prepend": "Object", | ||
"stripStart": "Jira" | ||
} | ||
], | ||
"title": "pathModification" | ||
} | ||
}, | ||
"required": [ | ||
"inputFile" | ||
], | ||
"type": "object" | ||
}, | ||
{ | ||
"$ref": "#/definitions/ConfigurationInputFromUrl" | ||
"additionalProperties": false, | ||
"properties": { | ||
"description": { | ||
"$ref": "#/definitions/DescriptionMergeBehaviour", | ||
"description": "This configuration setting lets you configure how the info.description from this OpenAPI file will be merged\ninto the final resulting OpenAPI file", | ||
"examples": [ | ||
{ | ||
"append": true | ||
}, | ||
{ | ||
"append": true, | ||
"title": { | ||
"value": "Title 1" | ||
} | ||
}, | ||
{ | ||
"append": true, | ||
"title": { | ||
"headingLevel": 2, | ||
"value": "Title Level 2" | ||
} | ||
}, | ||
{ | ||
"append": true, | ||
"title": { | ||
"headingLevel": 6, | ||
"value": "Inperceptible title" | ||
} | ||
} | ||
], | ||
"title": "description" | ||
}, | ||
"disputePrefix": { | ||
"description": "The prefix that will be used in the event of a conflict of two definition names.", | ||
"minLength": 1, | ||
"title": "disputePrefix", | ||
"type": "string" | ||
}, | ||
"inputURL": { | ||
"description": "The input url that we should load our configuration file from.", | ||
"format": "uri", | ||
"pattern": "^https?://", | ||
"title": "inputURL", | ||
"type": "string" | ||
}, | ||
"operationSelection": { | ||
"$ref": "#/definitions/OperationSelection", | ||
"description": "Choose which OpenAPI Operations should be included from this input.", | ||
"examples": [ | ||
{ | ||
"includeTags": [ | ||
"include-this-tag-only" | ||
] | ||
}, | ||
{ | ||
"excludeTags": [ | ||
"exclude-these-tags" | ||
] | ||
}, | ||
{ | ||
"excludeTags": [ | ||
"filter-out-with-this-tag" | ||
], | ||
"includeTags": [ | ||
"select-this-first" | ||
] | ||
} | ||
], | ||
"title": "operationSelection" | ||
}, | ||
"pathModification": { | ||
"$ref": "#/definitions/PathModification", | ||
"description": "For this input, you can perform these modifications to its paths elements.", | ||
"examples": [ | ||
{ | ||
"stripStart": "Model" | ||
}, | ||
{ | ||
"prepend": "Model" | ||
}, | ||
{ | ||
"prepend": "Object", | ||
"stripStart": "Jira" | ||
} | ||
], | ||
"title": "pathModification" | ||
} | ||
}, | ||
"required": [ | ||
"inputURL" | ||
], | ||
"type": "object" | ||
}, | ||
{ | ||
"additionalProperties": false, | ||
"properties": { | ||
"description": { | ||
"$ref": "#/definitions/DescriptionMergeBehaviour", | ||
"description": "This configuration setting lets you configure how the info.description from this OpenAPI file will be merged\ninto the final resulting OpenAPI file", | ||
"examples": [ | ||
{ | ||
"append": true | ||
}, | ||
{ | ||
"append": true, | ||
"title": { | ||
"value": "Title 1" | ||
} | ||
}, | ||
{ | ||
"append": true, | ||
"title": { | ||
"headingLevel": 2, | ||
"value": "Title Level 2" | ||
} | ||
}, | ||
{ | ||
"append": true, | ||
"title": { | ||
"headingLevel": 6, | ||
"value": "Inperceptible title" | ||
} | ||
} | ||
], | ||
"title": "description" | ||
}, | ||
"dispute": { | ||
"$ref": "#/definitions/Dispute", | ||
"description": "The dispute algorithm that should be used for this input.", | ||
"examples": [ | ||
{ | ||
"prefix": "SomePrefix" | ||
}, | ||
{ | ||
"alwaysApply": true, | ||
"prefix": "SomePrefix" | ||
}, | ||
{ | ||
"suffix": "Some suffix" | ||
}, | ||
{ | ||
"alwaysApply": true, | ||
"suffix": "Some suffix" | ||
} | ||
], | ||
"title": "dispute" | ||
}, | ||
"inputFile": { | ||
"description": "The path to the input OpenAPI Schema that will be merged.", | ||
"minLength": 1, | ||
"title": "inputFile", | ||
"type": "string" | ||
}, | ||
"operationSelection": { | ||
"$ref": "#/definitions/OperationSelection", | ||
"description": "Choose which OpenAPI Operations should be included from this input.", | ||
"examples": [ | ||
{ | ||
"includeTags": [ | ||
"include-this-tag-only" | ||
] | ||
}, | ||
{ | ||
"excludeTags": [ | ||
"exclude-these-tags" | ||
] | ||
}, | ||
{ | ||
"excludeTags": [ | ||
"filter-out-with-this-tag" | ||
], | ||
"includeTags": [ | ||
"select-this-first" | ||
] | ||
} | ||
], | ||
"title": "operationSelection" | ||
}, | ||
"pathModification": { | ||
"$ref": "#/definitions/PathModification", | ||
"description": "For this input, you can perform these modifications to its paths elements.", | ||
"examples": [ | ||
{ | ||
"stripStart": "Model" | ||
}, | ||
{ | ||
"prepend": "Model" | ||
}, | ||
{ | ||
"prepend": "Object", | ||
"stripStart": "Jira" | ||
} | ||
], | ||
"title": "pathModification" | ||
} | ||
}, | ||
"required": [ | ||
"inputFile" | ||
], | ||
"type": "object" | ||
}, | ||
{ | ||
"additionalProperties": false, | ||
"properties": { | ||
"description": { | ||
"$ref": "#/definitions/DescriptionMergeBehaviour", | ||
"description": "This configuration setting lets you configure how the info.description from this OpenAPI file will be merged\ninto the final resulting OpenAPI file", | ||
"examples": [ | ||
{ | ||
"append": true | ||
}, | ||
{ | ||
"append": true, | ||
"title": { | ||
"value": "Title 1" | ||
} | ||
}, | ||
{ | ||
"append": true, | ||
"title": { | ||
"headingLevel": 2, | ||
"value": "Title Level 2" | ||
} | ||
}, | ||
{ | ||
"append": true, | ||
"title": { | ||
"headingLevel": 6, | ||
"value": "Inperceptible title" | ||
} | ||
} | ||
], | ||
"title": "description" | ||
}, | ||
"dispute": { | ||
"$ref": "#/definitions/Dispute", | ||
"description": "The dispute algorithm that should be used for this input.", | ||
"examples": [ | ||
{ | ||
"prefix": "SomePrefix" | ||
}, | ||
{ | ||
"alwaysApply": true, | ||
"prefix": "SomePrefix" | ||
}, | ||
{ | ||
"suffix": "Some suffix" | ||
}, | ||
{ | ||
"alwaysApply": true, | ||
"suffix": "Some suffix" | ||
} | ||
], | ||
"title": "dispute" | ||
}, | ||
"inputURL": { | ||
"description": "The input url that we should load our configuration file from.", | ||
"format": "uri", | ||
"pattern": "^https?://", | ||
"title": "inputURL", | ||
"type": "string" | ||
}, | ||
"operationSelection": { | ||
"$ref": "#/definitions/OperationSelection", | ||
"description": "Choose which OpenAPI Operations should be included from this input.", | ||
"examples": [ | ||
{ | ||
"includeTags": [ | ||
"include-this-tag-only" | ||
] | ||
}, | ||
{ | ||
"excludeTags": [ | ||
"exclude-these-tags" | ||
] | ||
}, | ||
{ | ||
"excludeTags": [ | ||
"filter-out-with-this-tag" | ||
], | ||
"includeTags": [ | ||
"select-this-first" | ||
] | ||
} | ||
], | ||
"title": "operationSelection" | ||
}, | ||
"pathModification": { | ||
"$ref": "#/definitions/PathModification", | ||
"description": "For this input, you can perform these modifications to its paths elements.", | ||
"examples": [ | ||
{ | ||
"stripStart": "Model" | ||
}, | ||
{ | ||
"prepend": "Model" | ||
}, | ||
{ | ||
"prepend": "Object", | ||
"stripStart": "Jira" | ||
} | ||
], | ||
"title": "pathModification" | ||
} | ||
}, | ||
"required": [ | ||
"inputURL" | ||
], | ||
"type": "object" | ||
} | ||
] | ||
], | ||
"description": "The multiple types of configuration inputs that are supported." | ||
}, | ||
@@ -255,4 +637,4 @@ "minItems": 1, | ||
"type": "object", | ||
"title": "Configuration", | ||
"description": "The Configuration file for the OpenAPI Merge CLI Tool." | ||
"$id": "https://github.com/robertmassaioli/openapi-merge/blob/main/packages/openapi-merge-cli/src/data.ts", | ||
"title": "Configuration" | ||
} |
@@ -36,2 +36,4 @@ export declare type OperationSelection = { | ||
* You may optionally include a Markdown Title to demarcate this particular section of the merged description files. | ||
* | ||
* @examples require("./examples-for-schema.ts").DescriptionTitleExamples | ||
*/ | ||
@@ -57,14 +59,59 @@ title?: DescriptionTitle; | ||
}; | ||
/** | ||
* The common configuration properties of an Input. | ||
*/ | ||
export interface ConfigurationInputBase { | ||
export declare type DisputeV1 = { | ||
/** | ||
* The prefix that will be used in the event of a conflict of two definition names. | ||
* | ||
* @deprecated | ||
* @minLength 1 | ||
*/ | ||
disputePrefix?: string; | ||
}; | ||
export interface DisputeBase { | ||
/** | ||
* If this is set to true, then this prefix will always be applied to every Schema, even if there is no dispute | ||
* for that particular schema. This may prevent the deduplication of common schemas from different OpenApi files. | ||
* | ||
* @default false | ||
*/ | ||
alwaysApply?: boolean; | ||
} | ||
/** | ||
* A dispute with a configurable prefix. | ||
*/ | ||
export interface DisputePrefix extends DisputeBase { | ||
/** | ||
* The prefix to use when a schema is in dispute. | ||
* | ||
* @minLength 1 | ||
*/ | ||
prefix: string; | ||
} | ||
/** | ||
* A dispute with a configurable suffix. | ||
*/ | ||
export interface DisputeSuffix extends DisputeBase { | ||
/** | ||
* The suffix to use when a schema is in dispute. | ||
* | ||
* @minLength 1 | ||
*/ | ||
suffix: string; | ||
} | ||
export declare type Dispute = DisputePrefix | DisputeSuffix; | ||
export declare type DisputeV2 = { | ||
/** | ||
* The dispute algorithm that should be used for this input. | ||
* | ||
* @examples require("./examples-for-schema.ts").DisputeExamples | ||
*/ | ||
dispute?: Dispute; | ||
}; | ||
/** | ||
* The common configuration properties of an Input. | ||
*/ | ||
export interface ConfigurationInputBase { | ||
/** | ||
* For this input, you can perform these modifications to its paths elements. | ||
* | ||
* @examples @examples require("./examples-for-schema.ts").PathModificationExamples | ||
*/ | ||
@@ -74,2 +121,4 @@ pathModification?: PathModification; | ||
* Choose which OpenAPI Operations should be included from this input. | ||
* | ||
* @examples require("./examples-for-schema.ts").OperationSelectionExamples | ||
*/ | ||
@@ -80,2 +129,4 @@ operationSelection?: OperationSelection; | ||
* into the final resulting OpenAPI file | ||
* | ||
* @examples require('./examples-for-schema.ts').DescriptionMergeBehaviourExamples | ||
*/ | ||
@@ -108,5 +159,16 @@ description?: DescriptionMergeBehaviour; | ||
/** | ||
* This only exists to support the original form of `disputePrefix`. | ||
* | ||
* @deprecated | ||
*/ | ||
export declare type ConfigurationInputV1 = (ConfigurationInputFromFile | ConfigurationInputFromUrl) & DisputeV1; | ||
/** | ||
* When a new major version is released this will become the default way of doing things and the types can simplify | ||
* dramatically. | ||
*/ | ||
export declare type ConfigurationInputV2 = (ConfigurationInputFromFile | ConfigurationInputFromUrl) & DisputeV2; | ||
/** | ||
* The multiple types of configuration inputs that are supported. | ||
*/ | ||
export declare type ConfigurationInput = ConfigurationInputFromFile | ConfigurationInputFromUrl; | ||
export declare type ConfigurationInput = ConfigurationInputV1 | ConfigurationInputV2; | ||
export declare function isConfigurationInputFromFile(input: ConfigurationInput): input is ConfigurationInputFromFile; | ||
@@ -121,2 +183,3 @@ /** | ||
* @minItems 1 | ||
* @examples require('./examples-for-schema.ts').ConfigurationInputExamples | ||
*/ | ||
@@ -123,0 +186,0 @@ inputs: ConfigurationInput[]; |
@@ -10,4 +10,5 @@ "use strict"; | ||
const schema = JSON.parse(fs_1.default.readFileSync(inputFile).toString()); | ||
schema.$id = "https://github.com/robertmassaioli/openapi-merge/blob/main/packages/openapi-merge-cli/src/data.ts"; | ||
schema.title = "Configuration"; | ||
schema.description = "The Configuration file for the OpenAPI Merge CLI Tool."; | ||
fs_1.default.writeFileSync(inputFile, JSON.stringify(schema, null, 2)); |
@@ -73,5 +73,4 @@ "use strict"; | ||
const oas = yield loadOasForInput(basePath, input, inputIndex, logger); | ||
return { | ||
const output = { | ||
oas, | ||
disputePrefix: input.disputePrefix, | ||
pathModification: input.pathModification, | ||
@@ -81,2 +80,9 @@ operationSelection: input.operationSelection, | ||
}; | ||
if ('dispute' in input) { | ||
return Object.assign(Object.assign({}, output), { dispute: input.dispute }); | ||
} | ||
else if ('disputePrefix' in input) { | ||
return Object.assign(Object.assign({}, output), { disputePrefix: input.disputePrefix }); | ||
} | ||
return output; | ||
} | ||
@@ -83,0 +89,0 @@ catch (e) { |
{ | ||
"name": "openapi-merge-cli", | ||
"version": "1.2.0", | ||
"version": "1.3.0", | ||
"description": "A cli tool for the openapi-merge library.", | ||
@@ -27,3 +27,3 @@ "keywords": [ | ||
"devDependencies": { | ||
"@adobe/jsonschema2md": "^4.1.3", | ||
"@adobe/jsonschema2md": "^6", | ||
"@types/isomorphic-fetch": "^0.0.35", | ||
@@ -37,3 +37,3 @@ "@types/js-yaml": "^3.12.5", | ||
"typescript": "^3.8.3", | ||
"typescript-json-schema": "^0.42.0" | ||
"typescript-json-schema": "^0.50.1" | ||
}, | ||
@@ -52,3 +52,3 @@ "dependencies": { | ||
"prepublishOnly": "npm run gen-schema && tsc --project .", | ||
"gen-schema": "typescript-json-schema src/data.ts Configuration --titles --refs --noExtraProps --required --strictNullChecks -o src/configuration.schema.json && ts-node --project tsconfig.json ./src/fix-schema.ts", | ||
"gen-schema": "typescript-json-schema src/data.ts Configuration --titles --refs --aliasRefs --noExtraProps --required --strictNullChecks --tsNodeRegister -o src/configuration.schema.json && ts-node --project tsconfig.json ./src/fix-schema.ts", | ||
"start": "ts-node --project ./tsconfig.json ./src/cli.ts", | ||
@@ -55,0 +55,0 @@ "lint": "yarn eslint src --ext .js,.jsx,.ts,.tsx --fix --format=visualstudio", |
@@ -36,3 +36,5 @@ # openapi-merge-cli | ||
"inputFile": "./confluence.swagger.yaml", | ||
"disputePrefix": "Confluence", | ||
"dispute": { | ||
"prefix": "Confluence" | ||
}, | ||
"pathModification": { | ||
@@ -53,3 +55,3 @@ "prepend": "/confluence" | ||
* `inputFile` or `inputURL`: the relative path (or URL), from the `openapi-merge.json`, to the OpenAPI schema file for that input (in JSON or Yaml format). | ||
* `disputePrefix`: if two inputs both define a component with the same name then, in order to prevent incorrect overlaps, we will attempt to use the dispute prefix to come up with a unique name for that component. | ||
* `dispute`: if two inputs both define a component with the same name then, in order to prevent incorrect overlaps, we will attempt to use the dispute prefix or suffix to come up with a unique name for that component. Please [read the documentation for more details on the format](https://github.com/robertmassaioli/openapi-merge/wiki/configuration-definitions-dispute). | ||
* `pathModification.stripStart`: When copying over the `paths` from your OpenAPI specification for this input, it will strip this string from the start of the path if it is found. | ||
@@ -56,0 +58,0 @@ * `pathModification.prepend`: When copying over the `paths` from your OpenAPI specification for this input, it will prepend this string to the start of the path if it is found. `prepend` will always run after `stripStart` so that it is deterministic. |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
62805
24
1242
80