Skip to content

Commit b1b63ba

Browse files
committed
feat(reference): add support for OpenAPI 3.0.4
Refs #4612
1 parent 1d0b4a5 commit b1b63ba

File tree

214 files changed

+688
-677
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

214 files changed

+688
-677
lines changed
+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"recursive": true,
33
"spec": "test/**/*.mjs",
4-
"file": ["test/mocha-bootstrap.mjs"]
4+
"file": ["test/mocha-bootstrap.mjs"],
5+
"ignore": ["test/perf/**/*.mjs"]
56
}

packages/apidom-reference/README.md

+14-4
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ Supported media types are:
132132
#### [openapi-json-3-0](https://github.com/swagger-api/apidom/tree/main/packages/apidom-reference/src/parse/parsers/openapi-json-3-0)
133133

134134
Wraps [@swagger-api/apidom-parser-adapter-openapi-json-3-0](https://github.com/swagger-api/apidom/tree/main/packages/apidom-parser-adapter-openapi-json-3-0) package
135-
and is uniquely identified by `openapi-json-3-1` name.
135+
and is uniquely identified by `openapi-json-3-0` name.
136136

137137
Supported media types are:
138138

@@ -146,6 +146,8 @@ Supported media types are:
146146
'application/vnd.oai.openapi+json;version=3.0.2',
147147
'application/vnd.oai.openapi;version=3.0.3',
148148
'application/vnd.oai.openapi+json;version=3.0.3',
149+
'application/vnd.oai.openapi;version=3.0.4',
150+
'application/vnd.oai.openapi+json;version=3.0.4',
149151
]
150152
```
151153

@@ -166,7 +168,7 @@ Supported media types are:
166168
#### [openapi-yaml-3-0](https://github.com/swagger-api/apidom/tree/main/packages/apidom-reference/src/parse/parsers/openapi-yaml-3-0)
167169

168170
Wraps [@swagger-api/apidom-parser-adapter-openapi-yaml-3-0](https://github.com/swagger-api/apidom/tree/main/packages/apidom-parser-adapter-openapi-yaml-3-0) package
169-
and is uniquely identified by `openapi-yaml-3-1` name.
171+
and is uniquely identified by `openapi-yaml-3-0` name.
170172

171173
Supported media types are:
172174

@@ -180,6 +182,8 @@ Supported media types are:
180182
'application/vnd.oai.openapi+yaml;version=3.0.2',
181183
'application/vnd.oai.openapi;version=3.0.3',
182184
'application/vnd.oai.openapi+yaml;version=3.0.3',
185+
'application/vnd.oai.openapi;version=3.0.4',
186+
'application/vnd.oai.openapi+yaml;version=3.0.4',
183187
]
184188
```
185189

@@ -1187,7 +1191,7 @@ Supported media types:
11871191

11881192
##### [openapi-3-0](https://github.com/swagger-api/apidom/tree/main/packages/apidom-reference/src/resolve/strategies/openapi-3-0)
11891193

1190-
External resolution strategy for understanding and resolving external dependencies of [OpenApi 3.0.x](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md) definitions.
1194+
External resolution strategy for understanding and resolving external dependencies of [OpenApi 3.0.x](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md) definitions.
11911195

11921196
Supported media types:
11931197

@@ -1205,6 +1209,9 @@ Supported media types:
12051209
'application/vnd.oai.openapi;version=3.0.3',
12061210
'application/vnd.oai.openapi+json;version=3.0.3',
12071211
'application/vnd.oai.openapi+yaml;version=3.0.3',
1212+
'application/vnd.oai.openapi;version=3.0.4',
1213+
'application/vnd.oai.openapi+json;version=3.0.4',
1214+
'application/vnd.oai.openapi+yaml;version=3.0.4',
12081215
]
12091216
```
12101217

@@ -1555,7 +1562,7 @@ Supported media types:
15551562

15561563
##### [openapi-3-0](https://github.com/swagger-api/apidom/tree/main/packages/apidom-reference/src/dereference/strategies/openapi-3-0)
15571564

1558-
Dereference strategy for dereferencing [OpenApi 3.0.x](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md) definitions.
1565+
Dereference strategy for dereferencing [OpenApi 3.0.x](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md) definitions.
15591566

15601567
Supported media types:
15611568

@@ -1573,6 +1580,9 @@ Supported media types:
15731580
'application/vnd.oai.openapi;version=3.0.3',
15741581
'application/vnd.oai.openapi+json;version=3.0.3',
15751582
'application/vnd.oai.openapi+yaml;version=3.0.3',
1583+
'application/vnd.oai.openapi;version=3.0.4',
1584+
'application/vnd.oai.openapi+json;version=3.0.4',
1585+
'application/vnd.oai.openapi+yaml;version=3.0.4',
15761586
]
15771587
```
15781588

packages/apidom-reference/test/dereference/strategies/openapi-2/path-item-object/fixtures/direct-self-circular/root.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"openapi": "3.0.3",
2+
"openapi": "2.0",
33
"paths": {
44
"/path1": {
55
"$ref": "#/paths/~1path1"

packages/apidom-reference/test/dereference/strategies/openapi-3-0/callback-object/fixtures/components-callbacks/dereferenced.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"openapi": "3.0.3",
3+
"openapi": "3.0.4",
44
"components": {
55
"callbacks": {
66
"callback1": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/callback-object/fixtures/components-callbacks/root.json packages/apidom-reference/test/dereference/strategies/openapi-3-0/callback-object/fixtures/components-callbacks/entry.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"openapi": "3.0.3",
2+
"openapi": "3.0.4",
33
"components": {
44
"callbacks": {
55
"callback1": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/callback-object/fixtures/operation-object/dereferenced.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"openapi": "3.0.3",
3+
"openapi": "3.0.4",
44
"paths": {
55
"/path": {
66
"get": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/callback-object/fixtures/operation-object/root.json packages/apidom-reference/test/dereference/strategies/openapi-3-0/callback-object/fixtures/operation-object/entry.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"openapi": "3.0.3",
2+
"openapi": "3.0.4",
33
"paths": {
44
"/path": {
55
"get": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/callback-object/index.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@ import { loadJsonFile } from '../../../../helpers.ts';
88
import { dereference } from '../../../../../src/index.ts';
99

1010
const __dirname = path.dirname(fileURLToPath(import.meta.url));
11-
const rootFixturePath = path.join(__dirname, 'fixtures');
11+
const entryFixturePath = path.join(__dirname, 'fixtures');
1212

1313
describe('dereference', function () {
1414
context('strategies', function () {
1515
context('openapi-3-0', function () {
1616
context('Callback Object', function () {
1717
context('given in components/callbacks field', function () {
18-
const fixturePath = path.join(rootFixturePath, 'components-callbacks');
18+
const fixturePath = path.join(entryFixturePath, 'components-callbacks');
1919

2020
specify('should dereference', async function () {
21-
const rootFilePath = path.join(fixturePath, 'root.json');
22-
const actual = await dereference(rootFilePath, {
21+
const entryFilePath = path.join(fixturePath, 'entry.json');
22+
const actual = await dereference(entryFilePath, {
2323
parse: { mediaType: mediaTypes.latest('json') },
2424
});
2525
const expected = loadJsonFile(path.join(fixturePath, 'dereferenced.json'));
@@ -29,11 +29,11 @@ describe('dereference', function () {
2929
});
3030

3131
context('given in Operation Object', function () {
32-
const fixturePath = path.join(rootFixturePath, 'operation-object');
32+
const fixturePath = path.join(entryFixturePath, 'operation-object');
3333

3434
specify('should dereference', async function () {
35-
const rootFilePath = path.join(fixturePath, 'root.json');
36-
const actual = await dereference(rootFilePath, {
35+
const entryFilePath = path.join(fixturePath, 'entry.json');
36+
const actual = await dereference(entryFilePath, {
3737
parse: { mediaType: mediaTypes.latest('json') },
3838
});
3939
const expected = loadJsonFile(path.join(fixturePath, 'dereferenced.json'));

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/dereference-apidom.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ describe('dereference', function () {
1919
context('openapi-3-0', function () {
2020
context('Example Object', function () {
2121
context('given single ExampleElement passed to dereferenceApiDOM', function () {
22-
const fixturePath = path.join(__dirname, 'fixtures', 'external-value-json', 'root.json');
22+
const fixturePath = path.join(__dirname, 'fixtures', 'external-value-json', 'entry.json');
2323

2424
specify('should dereference', async function () {
2525
const parseResult = await parse(fixturePath, {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/components-examples/dereferenced.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"openapi": "3.0.3",
3+
"openapi": "3.0.4",
44
"components": {
55
"examples": {
66
"example1": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/components-examples/root.json packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/components-examples/entry.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"openapi": "3.0.3",
2+
"openapi": "3.0.4",
33
"components": {
44
"examples": {
55
"example1": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/external-value-binary/dereferenced.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"openapi": "3.0.3",
3+
"openapi": "3.0.4",
44
"components": {
55
"examples": {
66
"example1": {

packages/apidom-reference/test/resolve/strategies/openapi-3-0/example-object/fixtures/external-value-binary/root.json packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/external-value-binary/entry.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"openapi": "3.0.3",
2+
"openapi": "3.0.4",
33
"components": {
44
"examples": {
55
"example1": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/external-value-ignore-external/dereferenced.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"openapi": "3.0.3",
3+
"openapi": "3.0.4",
44
"components": {
55
"examples": {
66
"example1": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/external-value-json/root.json packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/external-value-ignore-external/entry.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"openapi": "3.0.3",
2+
"openapi": "3.0.4",
33
"components": {
44
"examples": {
55
"example1": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/external-value-json/dereferenced.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"openapi": "3.0.3",
3+
"openapi": "3.0.4",
44
"components": {
55
"examples": {
66
"example1": {
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"openapi": "3.0.3",
2+
"openapi": "3.0.4",
33
"components": {
44
"examples": {
55
"example1": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/external-value-pointer/dereferenced.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"openapi": "3.0.3",
3+
"openapi": "3.0.4",
44
"components": {
55
"examples": {
66
"example1": {

packages/apidom-reference/test/resolve/strategies/openapi-3-0/example-object/fixtures/external-value-pointer/root.json packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/external-value-pointer/entry.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"openapi": "3.0.3",
2+
"openapi": "3.0.4",
33
"components": {
44
"examples": {
55
"example1": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/external-value-text/dereferenced.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"openapi": "3.0.3",
3+
"openapi": "3.0.4",
44
"components": {
55
"examples": {
66
"example1": {

packages/apidom-reference/test/resolve/strategies/openapi-3-0/example-object/fixtures/external-value-text/root.json packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/external-value-text/entry.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"openapi": "3.0.3",
2+
"openapi": "3.0.4",
33
"components": {
44
"examples": {
55
"example1": {
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"openapi": "3.0.3",
2+
"openapi": "3.0.4",
33
"components": {
44
"examples": {
55
"example1": {
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"openapi": "3.0.3",
2+
"openapi": "3.0.4",
33
"components": {
44
"examples": {
55
"example1": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/external-value-yaml/dereferenced.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"openapi": "3.0.3",
3+
"openapi": "3.0.4",
44
"components": {
55
"examples": {
66
"example1": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/external-value-yaml/root.json packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/external-value-yaml/entry.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"openapi": "3.0.3",
2+
"openapi": "3.0.4",
33
"components": {
44
"examples": {
55
"example1": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/media-type-object/dereferenced.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"openapi": "3.0.3",
3+
"openapi": "3.0.4",
44
"paths": {
55
"/path": {
66
"get": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/media-type-object/root.json packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/media-type-object/entry.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"openapi": "3.0.3",
2+
"openapi": "3.0.4",
33
"paths": {
44
"/path": {
55
"get": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/parameter-object/dereferenced.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"openapi": "3.0.3",
3+
"openapi": "3.0.4",
44
"components": {
55
"parameters": {
66
"param1": {

packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/parameter-object/root.json packages/apidom-reference/test/dereference/strategies/openapi-3-0/example-object/fixtures/parameter-object/entry.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"openapi": "3.0.3",
2+
"openapi": "3.0.4",
33
"components": {
44
"parameters": {
55
"param1": {

0 commit comments

Comments
 (0)