91 lines
2.6 KiB
JavaScript
91 lines
2.6 KiB
JavaScript
// match plan@release
|
|
// e.g., free-pro-team@latest, enterprise-server@2.22
|
|
const planPattern = '^[a-z-]+'
|
|
const releasePattern = '[a-z0-9-.]+'
|
|
const delimiter = '@'
|
|
const versionPattern = `${planPattern}${delimiter}${releasePattern}`
|
|
|
|
export default {
|
|
additionalProperties: false,
|
|
properties: {
|
|
version: {
|
|
required: true,
|
|
description: 'the version string',
|
|
type: 'string',
|
|
pattern: versionPattern,
|
|
},
|
|
versionTitle: {
|
|
required: true,
|
|
description: 'the version title',
|
|
type: 'string',
|
|
},
|
|
latestVersion: {
|
|
required: true,
|
|
description: 'the version name that includes the latest release',
|
|
type: 'string',
|
|
pattern: versionPattern,
|
|
},
|
|
currentRelease: {
|
|
required: true,
|
|
description: 'the release substring in the version string',
|
|
type: 'string',
|
|
pattern: releasePattern,
|
|
},
|
|
plan: {
|
|
description: 'the plan substring in the version string',
|
|
type: 'string',
|
|
pattern: planPattern,
|
|
},
|
|
planTitle: {
|
|
required: true,
|
|
description: 'the plan title', // this is the same as the version title, sans numbered release
|
|
type: 'string',
|
|
},
|
|
shortName: {
|
|
required: true,
|
|
description: 'the short name for the version to be used in Liquid conditionals',
|
|
type: 'string',
|
|
},
|
|
releases: {
|
|
required: true,
|
|
description: 'an array of all supported releases for the version',
|
|
type: 'array',
|
|
},
|
|
latestRelease: {
|
|
required: true,
|
|
description: 'the value of the latest release',
|
|
type: 'string',
|
|
pattern: releasePattern,
|
|
},
|
|
hasNumberedReleases: {
|
|
description:
|
|
'boolean indicating whether the plan has numbered releases; if not, the release defalts to "latest"',
|
|
type: 'boolean',
|
|
},
|
|
nonEnterpriseDefault: {
|
|
description: 'boolean indicating whether the plan is the default non-Enterprise version', // helper if the plan name changes
|
|
type: 'boolean',
|
|
},
|
|
openApiBaseName: {
|
|
required: true,
|
|
description: 'base name used to map an openAPI schema name to the current version',
|
|
type: 'string',
|
|
},
|
|
openApiVersionName: {
|
|
required: true,
|
|
description: 'final name used to map an openAPI schema name to the current version',
|
|
type: 'string',
|
|
},
|
|
miscBaseName: {
|
|
required: true,
|
|
description: 'base name used to map GraphQL and webhook schema names to the current version',
|
|
type: 'string',
|
|
},
|
|
miscVersionName: {
|
|
required: true,
|
|
description: 'final name used to map GraphQL and webhook schema names to the current version',
|
|
type: 'string',
|
|
},
|
|
},
|
|
}
|