diff --git a/packages/cli/package.json b/packages/cli/package.json index b8dfc77aa6..254b2fba65 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -124,7 +124,7 @@ "express": "4.18.3", "express-async-errors": "3.1.1", "express-handlebars": "7.1.2", - "express-openapi-validator": "4.13.8", + "express-openapi-validator": "5.1.6", "express-prom-bundle": "6.6.0", "express-rate-limit": "7.2.0", "fast-glob": "3.2.12", diff --git a/packages/cli/src/PublicApi/index.ts b/packages/cli/src/PublicApi/index.ts index 7c455513d6..104f92bd18 100644 --- a/packages/cli/src/PublicApi/index.ts +++ b/packages/cli/src/PublicApi/index.ts @@ -65,20 +65,17 @@ async function createApiRouter( operationHandlers: handlersDirectory, validateRequests: true, validateApiSpec: true, - formats: [ - { - name: 'email', + formats: { + email: { type: 'string', validate: (email: string) => validator.isEmail(email), }, - { - name: 'identifier', + identifier: { type: 'string', validate: (identifier: string) => validator.isUUID(identifier) || validator.isEmail(identifier), }, - { - name: 'jsonString', + jsonString: { validate: (data: string) => { try { JSON.parse(data); @@ -88,7 +85,7 @@ async function createApiRouter( } }, }, - ], + }, validateSecurity: { handlers: { ApiKeyAuth: async ( diff --git a/packages/cli/src/PublicApi/v1/handlers/workflows/spec/schemas/workflow.yml b/packages/cli/src/PublicApi/v1/handlers/workflows/spec/schemas/workflow.yml index 5d40d2d92c..317e1543e8 100644 --- a/packages/cli/src/PublicApi/v1/handlers/workflows/spec/schemas/workflow.yml +++ b/packages/cli/src/PublicApi/v1/handlers/workflows/spec/schemas/workflow.yml @@ -35,7 +35,6 @@ properties: $ref: './workflowSettings.yml' staticData: example: { lastId: 1 } - nullable: true anyOf: - type: string format: 'jsonString' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8d89e85d4c..ea7c0eba73 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -529,8 +529,8 @@ importers: specifier: 7.1.2 version: 7.1.2 express-openapi-validator: - specifier: 4.13.8 - version: 4.13.8 + specifier: 5.1.6 + version: 5.1.6 express-prom-bundle: specifier: 6.6.0 version: 6.6.0(prom-client@13.2.0) @@ -1667,8 +1667,8 @@ packages: - supports-color dev: false - /@apidevtools/json-schema-ref-parser@9.0.9: - resolution: {integrity: sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==} + /@apidevtools/json-schema-ref-parser@9.1.2: + resolution: {integrity: sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==} dependencies: '@jsdevtools/ono': 7.1.3 '@types/json-schema': 7.0.15 @@ -10903,6 +10903,28 @@ packages: clean-stack: 2.2.0 indent-string: 4.0.0 + /ajv-draft-04@1.0.0(ajv@8.12.0): + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.12.0 + dev: false + + /ajv-formats@2.1.1(ajv@8.12.0): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.12.0 + dev: false + /ajv-keywords@3.5.2(ajv@6.12.6): resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: @@ -10918,6 +10940,7 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 + dev: true /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} @@ -14779,17 +14802,18 @@ packages: handlebars: 4.7.8 dev: false - /express-openapi-validator@4.13.8: - resolution: {integrity: sha512-89/sdkq+BKBuIyykaMl/vR9grFc3WFUPTjFo0THHbu+5g+q8rA7fKeoMfz+h84yOQIBcztmJ5ZJdk5uhEls31A==} + /express-openapi-validator@5.1.6: + resolution: {integrity: sha512-CF24Pef5uThjdsCbjo1UP2mYx2YCkQl1HFoikCFFafFpZBCZ0YErD/RbqlcnKbKM9tMwXZsjAuuO84b2hmdF4g==} dependencies: + '@apidevtools/json-schema-ref-parser': 9.1.2 '@types/multer': 1.4.7 - ajv: 6.12.6 - content-type: 1.0.4 - json-schema-ref-parser: 9.0.9 + ajv: 8.12.0 + ajv-draft-04: 1.0.0(ajv@8.12.0) + ajv-formats: 2.1.1(ajv@8.12.0) + content-type: 1.0.5 + json-schema-traverse: 1.0.0 lodash.clonedeep: 4.5.0 lodash.get: 4.4.2 - lodash.uniq: 4.5.0 - lodash.zipobject: 4.1.3 media-typer: 1.1.0 multer: 1.4.5-lts.1 ono: 7.1.3 @@ -17903,14 +17927,6 @@ packages: foreach: 2.0.6 dev: true - /json-schema-ref-parser@9.0.9: - resolution: {integrity: sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==} - engines: {node: '>=10'} - deprecated: Please switch to @apidevtools/json-schema-ref-parser - dependencies: - '@apidevtools/json-schema-ref-parser': 9.0.9 - dev: false - /json-schema-to-zod@2.0.14: resolution: {integrity: sha512-Pp9wg1/AcMw5KA1RA7t6ybUTIes1yX0vp8PeE48cPnddHb+ZZWbAKPaFXVf4Pif4XSbo9u9i/hIzBcS1UHK/TA==} hasBin: true @@ -17918,6 +17934,7 @@ packages: /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -18950,10 +18967,7 @@ packages: /lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - - /lodash.zipobject@4.1.3: - resolution: {integrity: sha512-A9SzX4hMKWS25MyalwcOnNoplyHbkNVsjidhTp8ru0Sj23wY9GWBKS8gAIGDSAqeWjIjvE4KBEl24XXAs+v4wQ==} - dev: false + dev: true /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}