Socket
Socket
Sign inDemoInstall

@fastify/swagger

Package Overview
Dependencies
45
Maintainers
20
Versions
35
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 6.1.0 to 6.1.1

.vscode/settings.json

2

lib/spec/openapi/utils.js

@@ -237,3 +237,3 @@ 'use strict'

const arr = plainJsonObjectToOpenapi3(container, resolved, sharedSchemas, securityIgnores)
const arr = plainJsonObjectToOpenapi3(container, resolved, { ...sharedSchemas, ...ref.definitions().definitions }, securityIgnores)
arr.forEach(swaggerSchema => parameters.push(swaggerSchema))

@@ -240,0 +240,0 @@ }

@@ -186,4 +186,7 @@ 'use strict'

// $ref is in the format: #/definitions/<resolved definition>/<optional fragment>
const localRef = jsonSchema.$ref.split('/')[2]
return resolveLocalRef(externalSchemas[localRef], externalSchemas)
const refSplit = jsonSchema.$ref.split('/')
const localRef = refSplit[2]
if (externalSchemas[localRef]) return resolveLocalRef(externalSchemas[localRef], externalSchemas)
// $ref is in the format: #/components/schemas/<resolved definition>
return resolveLocalRef(externalSchemas[refSplit[3]], externalSchemas)
}

@@ -190,0 +193,0 @@

{
"name": "@fastify/swagger",
"version": "6.1.0",
"version": "6.1.1",
"description": "Serve Swagger/OpenAPI documentation for Fastify, supporting dynamic generation",

@@ -44,2 +44,3 @@ "main": "index.js",

"devDependencies": {
"@apidevtools/swagger-parser": "^10.1.0",
"@types/node": "^17.0.0",

@@ -56,3 +57,2 @@ "fastify": "^3.7.0",

"standard": "^17.0.0",
"swagger-parser": "^10.0.2",
"swagger-ui-dist": "4.6.2",

@@ -59,0 +59,0 @@ "tap": "^16.0.0",

@@ -9,3 +9,3 @@ 'use strict'

const yaml = require('js-yaml')
const Swagger = require('swagger-parser')
const Swagger = require('@apidevtools/swagger-parser')

@@ -12,0 +12,0 @@ const resolve = require('path').resolve

@@ -6,3 +6,3 @@ 'use strict'

const Fastify = require('fastify')
const Swagger = require('swagger-parser')
const Swagger = require('@apidevtools/swagger-parser')
const yaml = require('js-yaml')

@@ -9,0 +9,0 @@ const fastifySwagger = require('../index')

@@ -5,3 +5,3 @@ 'use strict'

const Fastify = require('fastify')
const Swagger = require('swagger-parser')
const Swagger = require('@apidevtools/swagger-parser')
const yaml = require('js-yaml')

@@ -8,0 +8,0 @@ const fastifySwagger = require('../../../index')

@@ -5,3 +5,3 @@ 'use strict'

const Fastify = require('fastify')
const Swagger = require('swagger-parser')
const Swagger = require('@apidevtools/swagger-parser')
const fastifySwagger = require('../../../index')

@@ -196,1 +196,47 @@

})
test('support $ref schema in allOf in querystring', async (t) => {
const fastify = Fastify()
await fastify.register(fastifySwagger, { openapi: {} })
fastify.register(async (instance) => {
instance.addSchema({ $id: 'schemaA', type: 'object', properties: { field1: { type: 'integer' } } })
instance.get('/url1', { schema: { query: { type: 'object', allOf: [{ $ref: 'schemaA#' }, { type: 'object', properties: { field3: { type: 'boolean' } } }] }, response: { 200: { type: 'object' } } } }, async () => ({ result: 'OK' }))
})
await fastify.ready()
const openapiObject = fastify.swagger()
t.equal(typeof openapiObject, 'object')
const schemas = openapiObject.components.schemas
t.match(Object.keys(schemas), ['def-0'])
await Swagger.validate(openapiObject)
const responseAfterSwagger = await fastify.inject({ method: 'GET', url: '/url1', query: { field1: 10, field3: false } })
t.equal(responseAfterSwagger.statusCode, 200)
})
test('support $ref schema in allOf in headers', async (t) => {
const fastify = Fastify()
await fastify.register(fastifySwagger, { openapi: {} })
fastify.register(async (instance) => {
instance.addSchema({ $id: 'headerA', type: 'object', properties: { 'x-header-1': { type: 'string' } } })
instance.get('/url1', { schema: { headers: { allOf: [{ $ref: 'headerA#' }, { type: 'object', properties: { 'x-header-2': { type: 'string' } } }] }, response: { 200: { type: 'object' } } } }, async () => ({ result: 'OK' }))
})
await fastify.ready()
const openapiObject = fastify.swagger()
t.equal(typeof openapiObject, 'object')
const schemas = openapiObject.components.schemas
t.match(Object.keys(schemas), ['def-0'])
await Swagger.validate(openapiObject)
const responseAfterSwagger = await fastify.inject({ method: 'GET', url: '/url1', headers: { 'x-header-1': 'test', 'x-header-2': 'test' } })
t.equal(responseAfterSwagger.statusCode, 200)
})

@@ -5,3 +5,3 @@ 'use strict'

const Fastify = require('fastify')
const Swagger = require('swagger-parser')
const Swagger = require('@apidevtools/swagger-parser')
const yaml = require('js-yaml')

@@ -8,0 +8,0 @@ const fastifySwagger = require('../../../index')

@@ -5,3 +5,3 @@ 'use strict'

const Fastify = require('fastify')
const Swagger = require('swagger-parser')
const Swagger = require('@apidevtools/swagger-parser')
const fastifySwagger = require('../../../index')

@@ -46,2 +46,44 @@ const S = require('fluent-json-schema')

test('support - oneOf, anyOf, allOf in headers', async (t) => {
t.plan(2)
const fastify = Fastify()
await fastify.register(fastifySwagger, openapiOption)
const schema = {
schema: {
headers: {
allOf: [
{
type: 'object',
properties: {
foo: { type: 'string' }
}
}
]
}
}
}
fastify.get('/', schema, () => {})
await fastify.ready()
const openapiObject = fastify.swagger()
const api = await Swagger.validate(openapiObject)
const definedPath = api.paths['/'].get
t.ok(definedPath)
t.same(definedPath.parameters, [
{
required: false,
in: 'header',
name: 'foo',
description: undefined,
schema: {
type: 'string'
}
}
])
})
test('support 2xx response', async t => {

@@ -48,0 +90,0 @@ const opt = {

@@ -5,3 +5,3 @@ 'use strict'

const Fastify = require('fastify')
const Swagger = require('swagger-parser')
const Swagger = require('@apidevtools/swagger-parser')
const yaml = require('js-yaml')

@@ -8,0 +8,0 @@ const fastifySwagger = require('../../../index')

@@ -5,3 +5,3 @@ 'use strict'

const Fastify = require('fastify')
const Swagger = require('swagger-parser')
const Swagger = require('@apidevtools/swagger-parser')
const fastifySwagger = require('../../../index')

@@ -8,0 +8,0 @@

@@ -5,3 +5,3 @@ 'use strict'

const Fastify = require('fastify')
const Swagger = require('swagger-parser')
const Swagger = require('@apidevtools/swagger-parser')
const yaml = require('js-yaml')

@@ -8,0 +8,0 @@ const fastifySwagger = require('../../../index')

@@ -5,3 +5,3 @@ 'use strict'

const Fastify = require('fastify')
const Swagger = require('swagger-parser')
const Swagger = require('@apidevtools/swagger-parser')
const fastifySwagger = require('../../../index')

@@ -8,0 +8,0 @@ const S = require('fluent-json-schema')

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc