diff --git a/.github/workflows/json-compability.yml b/.github/workflows/json-compability.yml new file mode 100644 index 000000000..df8719872 --- /dev/null +++ b/.github/workflows/json-compability.yml @@ -0,0 +1,20 @@ +name: Compatability Check + +on: + pull_request: + +jobs: + compatible: + name: Is change compatible + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-node@v4 + - name: Run script + run: | + cd compatibility-check + npm ci + npm run check diff --git a/compatibility-check/.gitignore b/compatibility-check/.gitignore new file mode 100644 index 000000000..3c3629e64 --- /dev/null +++ b/compatibility-check/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/compatibility-check/json-schema-diff.js b/compatibility-check/json-schema-diff.js new file mode 100644 index 000000000..9f711685e --- /dev/null +++ b/compatibility-check/json-schema-diff.js @@ -0,0 +1,61 @@ +const jsonSchemaDiff = require('json-schema-diff') +const exec = require('@actions/exec'); +const core = require('@actions/core'); +const {readFileSync} = require('node:fs'); + + + + + +async function run() { + + let stdout = ''; + const options = { + listeners: { + stdout: (data) => { + stdout += data.toString(); + }, + stderr: (data) => { + core.error(data.toString()); + } + } + }; + + await exec.exec('git diff --name-only remotes/origin/main..HEAD', [], options); + + const pattern = new RegExp('file-formats/[a-z]{4}/[a-z]+-v[0-9]+\.json$', 'i'); + const lines = stdout.split("\n"); + + const changedSchema = lines.filter(line => pattern.test(line)); + + + for (const schema of changedSchema) { + + const dataNew = readFileSync(`../${schema}`, 'utf8'); + const schemaNew = JSON.parse(dataNew); + + try { + await exec.exec(`git checkout remotes/origin/main -- `, [schema], { cwd: `../`} ); + } catch (error) { + core.info(`File ${schema} is not known to main branch.`); + continue; + } + + const dataOld = readFileSync(`../${schema}`, 'utf8'); + const schemaOld = JSON.parse(dataOld); + + delete schemaOld['$schema']; + delete schemaNew['$schema']; + + const result = await jsonSchemaDiff.diffSchemas( {sourceSchema: schemaOld, destinationSchema: schemaNew}); + if (result.removalsFound) { + core.setFailed('Something was removed'); + } + + if (result.additionsFound) { + core.setFailed('Something was added'); + }; + } +} + +run(); diff --git a/compatibility-check/package-lock.json b/compatibility-check/package-lock.json new file mode 100644 index 000000000..34ea72267 --- /dev/null +++ b/compatibility-check/package-lock.json @@ -0,0 +1,284 @@ +{ + "name": "json-schema-compatible", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "json-schema-compatible", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@actions/core": "^1.10.1", + "@actions/exec": "^1.1.1", + "json-schema-diff": "^0.18.1" + } + }, + "node_modules/@actions/core": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", + "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", + "dependencies": { + "@actions/http-client": "^2.0.1", + "uuid": "^8.3.2" + } + }, + "node_modules/@actions/exec": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", + "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", + "dependencies": { + "@actions/io": "^1.0.1" + } + }, + "node_modules/@actions/http-client": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz", + "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", + "dependencies": { + "tunnel": "^0.0.6", + "undici": "^5.25.4" + } + }, + "node_modules/@actions/io": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz", + "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==" + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", + "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.6", + "call-me-maybe": "^1.0.1", + "js-yaml": "^4.1.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv/node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==" + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "engines": { + "node": ">=14" + } + }, + "node_modules/convict": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/convict/-/convict-6.2.4.tgz", + "integrity": "sha512-qN60BAwdMVdofckX7AlohVJ2x9UvjTNoKVXCL2LxFk1l7757EJqf1nySdMkPQer0bt8kQ5lQiyZ9/2NvrFBuwQ==", + "dependencies": { + "lodash.clonedeep": "^4.5.0", + "yargs-parser": "^20.2.7" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/extsprintf": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-diff": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/json-schema-diff/-/json-schema-diff-0.18.1.tgz", + "integrity": "sha512-lLP/kbwXN85yKWwBGtraxVrJnK/v31D7UZIkSg68BrO+Qeai+aeW1u9b5H1h9uF/Uzzsa8PeaQPTYRaUcdAgWQ==", + "dependencies": { + "ajv": "^8.10.0", + "commander": "^10.0.1", + "convict": "^6.2.3", + "json-schema-ref-parser": "^9.0.6", + "json-schema-spec-types": "^0.1.2", + "lodash": "^4.17.21", + "verror": "^1.10.1" + }, + "bin": { + "json-schema-diff": "bin/json-schema-diff" + }, + "engines": { + "node": ">=v10.24.1" + } + }, + "node_modules/json-schema-ref-parser": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", + "integrity": "sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==", + "deprecated": "Please switch to @apidevtools/json-schema-ref-parser", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "9.0.9" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/json-schema-spec-types": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/json-schema-spec-types/-/json-schema-spec-types-0.1.2.tgz", + "integrity": "sha512-MDl8fA8ONckmQOm2+eXKJaFJNvxk7eGin+XFofNjS3q3PRKSoEvgMVb0ehOpCAYkUiLoMiqdU7obV7AmzAmyLw==" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/undici": { + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + } + } +} diff --git a/compatibility-check/package.json b/compatibility-check/package.json new file mode 100644 index 000000000..e79182f88 --- /dev/null +++ b/compatibility-check/package.json @@ -0,0 +1,16 @@ +{ + "name": "json-schema-compatible", + "version": "1.0.0", + "description": "checks for incompatible changes in JSON Schema", + "main": "json-schema-diff.js", + "scripts": { + "check": "node json-schema-diff" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@actions/core": "^1.10.1", + "@actions/exec": "^1.1.1", + "json-schema-diff": "^0.18.1" + } +} diff --git a/file-formats/aobj/aobj-v1.json b/file-formats/aobj/aobj-v1.json index f88d434a3..a42e93c5d 100644 --- a/file-formats/aobj/aobj-v1.json +++ b/file-formats/aobj/aobj-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/apic/apic-v1.json b/file-formats/apic/apic-v1.json index 496bcee7d..9d22799cd 100644 --- a/file-formats/apic/apic-v1.json +++ b/file-formats/apic/apic-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/aplo/aplo-v1.json b/file-formats/aplo/aplo-v1.json index 674635f44..627dbba89 100644 --- a/file-formats/aplo/aplo-v1.json +++ b/file-formats/aplo/aplo-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/bgqc/bgqc-v1.json b/file-formats/bgqc/bgqc-v1.json index e448f8487..cce028ac6 100644 --- a/file-formats/bgqc/bgqc-v1.json +++ b/file-formats/bgqc/bgqc-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/cdbo/cdbo-v1.json b/file-formats/cdbo/cdbo-v1.json index 43dc8fca3..5ed26917b 100644 --- a/file-formats/cdbo/cdbo-v1.json +++ b/file-formats/cdbo/cdbo-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/cfdf/cfdf-v1.json b/file-formats/cfdf/cfdf-v1.json index 1b71f033b..250dc981e 100644 --- a/file-formats/cfdf/cfdf-v1.json +++ b/file-formats/cfdf/cfdf-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 } }, "additionalProperties": false, @@ -291,9 +289,7 @@ "title": "Translation Language", "description": "Translation language", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "fieldLabel": { "title": "Field Label", @@ -356,9 +352,7 @@ "title": "Language", "description": "Language", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "code": { "title": "Code", diff --git a/file-formats/cfdf/cfdf-v2.json b/file-formats/cfdf/cfdf-v2.json index 207ff2ee0..bea3471cb 100644 --- a/file-formats/cfdf/cfdf-v2.json +++ b/file-formats/cfdf/cfdf-v2.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 } }, "additionalProperties": false, @@ -292,9 +290,7 @@ "title": "Translation Language", "description": "Translation language", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "componentKind": { "title": "Component Kind", @@ -404,9 +400,7 @@ "title": "Language", "description": "Language", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "code": { "title": "Code", diff --git a/file-formats/chdo/chdo-v1.json b/file-formats/chdo/chdo-v1.json index 5e118c7b3..0874ec9a7 100644 --- a/file-formats/chdo/chdo-v1.json +++ b/file-formats/chdo/chdo-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/chkc/chkc-v1.json b/file-formats/chkc/chkc-v1.json index d4428d414..e5e1b10f8 100644 --- a/file-formats/chkc/chkc-v1.json +++ b/file-formats/chkc/chkc-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/chko/chko-v1.json b/file-formats/chko/chko-v1.json index e913f0569..f63b206fb 100644 --- a/file-formats/chko/chko-v1.json +++ b/file-formats/chko/chko-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/chkv/chkv-v1.json b/file-formats/chkv/chkv-v1.json index 510294574..ef3e0818d 100644 --- a/file-formats/chkv/chkv-v1.json +++ b/file-formats/chkv/chkv-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/clas/clas-v1.json b/file-formats/clas/clas-v1.json index 96ee2690d..5598de779 100644 --- a/file-formats/clas/clas-v1.json +++ b/file-formats/clas/clas-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/cota/cota-v1.json b/file-formats/cota/cota-v1.json index cb5f04800..5c49e9c4d 100644 --- a/file-formats/cota/cota-v1.json +++ b/file-formats/cota/cota-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/csnm/csnm-v1.json b/file-formats/csnm/csnm-v1.json index 9a7454e7d..6afb9f098 100644 --- a/file-formats/csnm/csnm-v1.json +++ b/file-formats/csnm/csnm-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/ddls/ddls-v1.json b/file-formats/ddls/ddls-v1.json index fdfb2864d..857067bc5 100644 --- a/file-formats/ddls/ddls-v1.json +++ b/file-formats/ddls/ddls-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/ddlx/ddlx-v1.json b/file-formats/ddlx/ddlx-v1.json index e9eb7872d..18a80b721 100644 --- a/file-formats/ddlx/ddlx-v1.json +++ b/file-formats/ddlx/ddlx-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/dmon/dmon-v1.json b/file-formats/dmon/dmon-v1.json index 24aaec109..4acb8ee57 100644 --- a/file-formats/dmon/dmon-v1.json +++ b/file-formats/dmon/dmon-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/dobj/dobj-v1.json b/file-formats/dobj/dobj-v1.json index 00913cfe9..da924b326 100644 --- a/file-formats/dobj/dobj-v1.json +++ b/file-formats/dobj/dobj-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/doma/doma-v1.json b/file-formats/doma/doma-v1.json index 964bb9dd8..53b8ab941 100644 --- a/file-formats/doma/doma-v1.json +++ b/file-formats/doma/doma-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/drty/drty-v1.json b/file-formats/drty/drty-v1.json index f7409fc79..f62433a2e 100644 --- a/file-formats/drty/drty-v1.json +++ b/file-formats/drty/drty-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/dsfi/dsfi-v1.json b/file-formats/dsfi/dsfi-v1.json index 69b80fa9e..09cca386b 100644 --- a/file-formats/dsfi/dsfi-v1.json +++ b/file-formats/dsfi/dsfi-v1.json @@ -26,9 +26,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/dtdc/dtdc-v1.json b/file-formats/dtdc/dtdc-v1.json index bd2486934..049685452 100644 --- a/file-formats/dtdc/dtdc-v1.json +++ b/file-formats/dtdc/dtdc-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/dteb/dteb-v1.json b/file-formats/dteb/dteb-v1.json index 194c5a098..e8b4d742f 100644 --- a/file-formats/dteb/dteb-v1.json +++ b/file-formats/dteb/dteb-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/eeec/eeec-v1.json b/file-formats/eeec/eeec-v1.json index fb2ff1b7b..056569ab6 100644 --- a/file-formats/eeec/eeec-v1.json +++ b/file-formats/eeec/eeec-v1.json @@ -26,9 +26,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/enho/enho-v1.json b/file-formats/enho/enho-v1.json index c6f21c04a..06aa9b878 100644 --- a/file-formats/enho/enho-v1.json +++ b/file-formats/enho/enho-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/enhs/enhs-v1.json b/file-formats/enhs/enhs-v1.json index 5c1d2fdb1..361fc3c14 100644 --- a/file-formats/enhs/enhs-v1.json +++ b/file-formats/enhs/enhs-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/evtb/evtb-v1.json b/file-formats/evtb/evtb-v1.json index fbb1b7a4b..3bfc7d3ab 100644 --- a/file-formats/evtb/evtb-v1.json +++ b/file-formats/evtb/evtb-v1.json @@ -26,9 +26,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/fugr/fugr-v1.json b/file-formats/fugr/fugr-v1.json index 00e5caec4..7cf2099b3 100644 --- a/file-formats/fugr/fugr-v1.json +++ b/file-formats/fugr/fugr-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/gsmp/gsmp-v1.json b/file-formats/gsmp/gsmp-v1.json index efa8eac39..33233d61a 100644 --- a/file-formats/gsmp/gsmp-v1.json +++ b/file-formats/gsmp/gsmp-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/ilmb/ilmb-v1.json b/file-formats/ilmb/ilmb-v1.json index eb029e45f..abc38e2a5 100644 --- a/file-formats/ilmb/ilmb-v1.json +++ b/file-formats/ilmb/ilmb-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/intf/intf-v1.json b/file-formats/intf/intf-v1.json index c292a4712..d30f5291d 100644 --- a/file-formats/intf/intf-v1.json +++ b/file-formats/intf/intf-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/nont/nont-v1.json b/file-formats/nont/nont-v1.json index 5552f1bc0..fade438bf 100644 --- a/file-formats/nont/nont-v1.json +++ b/file-formats/nont/nont-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/nrob/nrob-v1.json b/file-formats/nrob/nrob-v1.json index f065eece7..bd0a4410a 100644 --- a/file-formats/nrob/nrob-v1.json +++ b/file-formats/nrob/nrob-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/ntta/ntta-v1.json b/file-formats/ntta/ntta-v1.json index ab1ff70d4..61bf9ef48 100644 --- a/file-formats/ntta/ntta-v1.json +++ b/file-formats/ntta/ntta-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/ntty/ntty-v1.json b/file-formats/ntty/ntty-v1.json index acc766ecf..02393b455 100644 --- a/file-formats/ntty/ntty-v1.json +++ b/file-formats/ntty/ntty-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/ront/ront-v1.json b/file-formats/ront/ront-v1.json index cab96ef70..e35a5c51b 100644 --- a/file-formats/ront/ront-v1.json +++ b/file-formats/ront/ront-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/sajc/sajc-v1.json b/file-formats/sajc/sajc-v1.json index e89689e85..1b9d6cb5d 100644 --- a/file-formats/sajc/sajc-v1.json +++ b/file-formats/sajc/sajc-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the application job catalog entry", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/sajt/sajt-v1.json b/file-formats/sajt/sajt-v1.json index 80a7c9910..3cfdeb4da 100644 --- a/file-formats/sajt/sajt-v1.json +++ b/file-formats/sajt/sajt-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the application job template", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/scp1/scp1-v1.json b/file-formats/scp1/scp1-v1.json index f105a0705..1048b0a55 100644 --- a/file-formats/scp1/scp1-v1.json +++ b/file-formats/scp1/scp1-v1.json @@ -26,9 +26,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", @@ -313,9 +311,7 @@ "title": "Language", "description": "Language in which the data record is translated", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "fieldName": { "title": "Field Name", diff --git a/file-formats/siad/siad-v1.json b/file-formats/siad/siad-v1.json index 7bdab4a74..8ab147b28 100644 --- a/file-formats/siad/siad-v1.json +++ b/file-formats/siad/siad-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/sito/sito-v1.json b/file-formats/sito/sito-v1.json index 5423bb1ed..1de525112 100644 --- a/file-formats/sito/sito-v1.json +++ b/file-formats/sito/sito-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/smbc/smbc-v1.json b/file-formats/smbc/smbc-v1.json index 41ebbfd8c..fede5e84a 100644 --- a/file-formats/smbc/smbc-v1.json +++ b/file-formats/smbc/smbc-v1.json @@ -25,9 +25,7 @@ "title": "Original Language", "description": "Original language of the development object. Attributes Name and Description must be maintained in this language", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/sprv/sprv-v1.json b/file-formats/sprv/sprv-v1.json index 30e3407dc..9d07d6917 100644 --- a/file-formats/sprv/sprv-v1.json +++ b/file-formats/sprv/sprv-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/srvb/srvb-v1.json b/file-formats/srvb/srvb-v1.json index d2317239d..9ba87e629 100644 --- a/file-formats/srvb/srvb-v1.json +++ b/file-formats/srvb/srvb-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/srvc/srvc-v1.json b/file-formats/srvc/srvc-v1.json index e94410aeb..7f15e68c3 100644 --- a/file-formats/srvc/srvc-v1.json +++ b/file-formats/srvc/srvc-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/susi/susi-v1.json b/file-formats/susi/susi-v1.json index 346f9c6cf..3ad142940 100644 --- a/file-formats/susi/susi-v1.json +++ b/file-formats/susi/susi-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/swcr/swcr-v1.json b/file-formats/swcr/swcr-v1.json index db160adeb..26c9797be 100644 --- a/file-formats/swcr/swcr-v1.json +++ b/file-formats/swcr/swcr-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/uipg/uipg-v1.json b/file-formats/uipg/uipg-v1.json index 7b2f59c36..5623dc8f6 100644 --- a/file-formats/uipg/uipg-v1.json +++ b/file-formats/uipg/uipg-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/file-formats/uist/uist-v1.json b/file-formats/uist/uist-v1.json index 99beaca4e..b03e11f7b 100644 --- a/file-formats/uist/uist-v1.json +++ b/file-formats/uist/uist-v1.json @@ -27,9 +27,7 @@ "title": "Original Language", "description": "Original language of the ABAP object", "type": "string", - "minLength": 2, - "maxLength": 2, - "pattern": "^[a-z]+$" + "minLength": 2 }, "abapLanguageVersion": { "title": "ABAP Language Version", diff --git a/generate/package-lock.json b/generate/package-lock.json index 6784fa45a..132be7b3d 100644 --- a/generate/package-lock.json +++ b/generate/package-lock.json @@ -189,9 +189,9 @@ "integrity": "sha512-+QMN8NU5KJxofT+lEaSLYdhh+Pdq7ZYS6X5bSbpmD+4SKFf+qBmr+coKT07LZ+keUNh1sf3Nz9dQwD8WNI2i/Q==" }, "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -231,9 +231,9 @@ } }, "node_modules/undici": { - "version": "5.28.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", - "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==", + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", "dependencies": { "@fastify/busboy": "^2.0.0" },