@speclynx/apidom-parser-adapter-openapi-json-3-1 4.0.1 → 4.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.0.3](https://github.com/speclynx/apidom/compare/v4.0.2...v4.0.3) (2026-03-11)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **release:** fix v4.0.2 failed release ([b4dc1c4](https://github.com/speclynx/apidom/commit/b4dc1c48e8d9b2986a70e49b5554eb0a166d7528))
11
+
12
+ ## [4.0.2](https://github.com/speclynx/apidom/compare/v4.0.1...v4.0.2) (2026-03-11)
13
+
14
+ **Note:** Version bump only for package @speclynx/apidom-parser-adapter-openapi-json-3-1
15
+
6
16
  ## [4.0.1](https://github.com/speclynx/apidom/compare/v4.0.0...v4.0.1) (2026-03-11)
7
17
 
8
18
  **Note:** Version bump only for package @speclynx/apidom-parser-adapter-openapi-json-3-1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@speclynx/apidom-parser-adapter-openapi-json-3-1",
3
- "version": "4.0.1",
3
+ "version": "4.0.3",
4
4
  "description": "Parser adapter for parsing JSON documents into OpenAPI 3.1.x namespace.",
5
5
  "keywords": [
6
6
  "apidom",
@@ -62,16 +62,15 @@
62
62
  "license": "Apache-2.0",
63
63
  "dependencies": {
64
64
  "@babel/runtime-corejs3": "^7.28.4",
65
- "@speclynx/apidom-core": "4.0.1",
66
- "@speclynx/apidom-datamodel": "4.0.1",
67
- "@speclynx/apidom-ns-openapi-3-1": "4.0.1",
68
- "@speclynx/apidom-parser-adapter-json": "4.0.1",
65
+ "@speclynx/apidom-core": "4.0.3",
66
+ "@speclynx/apidom-datamodel": "4.0.3",
67
+ "@speclynx/apidom-ns-openapi-3-1": "4.0.3",
68
+ "@speclynx/apidom-parser-adapter-json": "4.0.3",
69
69
  "ramda": "~0.32.0",
70
70
  "ramda-adjunct": "^6.0.0"
71
71
  },
72
72
  "files": [
73
- "src/**/*.mjs",
74
- "src/**/*.cjs",
73
+ "src/",
75
74
  "dist/",
76
75
  "types/apidom-parser-adapter-openapi-json-3-1.d.ts",
77
76
  "LICENSES",
@@ -79,5 +78,5 @@
79
78
  "README.md",
80
79
  "CHANGELOG.md"
81
80
  ],
82
- "gitHead": "223132a9b00081ca04842efc2736a491f7876f44"
81
+ "gitHead": "6ccfa09c02232516215e7de3ead276641957e626"
83
82
  }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
5
+ exports.__esModule = true;
6
+ exports.parse = exports.namespace = exports.mediaTypes = exports.detectionRegExp = exports.detect = void 0;
7
+ var _ramda = require("ramda");
8
+ var _ramdaAdjunct = require("ramda-adjunct");
9
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
10
+ var _apidomParserAdapterJson = require("@speclynx/apidom-parser-adapter-json");
11
+ var _apidomNsOpenapi = _interopRequireWildcard(require("@speclynx/apidom-ns-openapi-3-1"));
12
+ var _mediaTypes = _interopRequireDefault(require("./media-types.cjs"));
13
+ exports.mediaTypes = _mediaTypes.default;
14
+ /**
15
+ * @public
16
+ */
17
+ const detectionRegExp = exports.detectionRegExp = /"openapi"\s*:\s*"(?<version_json>3\.1\.(?:[1-9]\d*|0))"/;
18
+
19
+ /**
20
+ * @public
21
+ */
22
+ const detect = async (source, options = {}) => detectionRegExp.test(source) && (await (0, _apidomParserAdapterJson.detect)(source, options));
23
+
24
+ /**
25
+ * @public
26
+ */
27
+ exports.detect = detect;
28
+ /**
29
+ * @public
30
+ */
31
+ const parse = async (source, options = {}) => {
32
+ const refractorOpts = (0, _ramda.propOr)({}, 'refractorOpts', options);
33
+ const parserOpts = (0, _ramda.omit)(['refractorOpts'], options);
34
+ const parseResultElement = await (0, _apidomParserAdapterJson.parse)(source, parserOpts);
35
+ const {
36
+ result
37
+ } = parseResultElement;
38
+ if ((0, _ramdaAdjunct.isNotUndefined)(result)) {
39
+ const openApiElement = (0, _apidomNsOpenapi.refractOpenApi3_1)(result, {
40
+ consume: true,
41
+ ...refractorOpts
42
+ });
43
+ openApiElement.classes.push('result');
44
+ parseResultElement.replaceResult(openApiElement);
45
+ }
46
+ return parseResultElement;
47
+ };
48
+
49
+ /**
50
+ * @public
51
+ */
52
+ exports.parse = parse;
53
+ const namespace = exports.namespace = new _apidomDatamodel.Namespace().use(_apidomNsOpenapi.default);
@@ -0,0 +1,45 @@
1
+ import { propOr, omit } from 'ramda';
2
+ import { isNotUndefined } from 'ramda-adjunct';
3
+ import { Namespace } from '@speclynx/apidom-datamodel';
4
+ import { parse as parseJSON, detect as detectJSON } from '@speclynx/apidom-parser-adapter-json';
5
+ import openApiNamespace, { refractOpenApi3_1 } from '@speclynx/apidom-ns-openapi-3-1';
6
+ export { default as mediaTypes } from "./media-types.mjs";
7
+ /**
8
+ * @public
9
+ */
10
+ export const detectionRegExp = /"openapi"\s*:\s*"(?<version_json>3\.1\.(?:[1-9]\d*|0))"/;
11
+
12
+ /**
13
+ * @public
14
+ */
15
+ export const detect = async (source, options = {}) => detectionRegExp.test(source) && (await detectJSON(source, options));
16
+
17
+ /**
18
+ * @public
19
+ */
20
+
21
+ /**
22
+ * @public
23
+ */
24
+ export const parse = async (source, options = {}) => {
25
+ const refractorOpts = propOr({}, 'refractorOpts', options);
26
+ const parserOpts = omit(['refractorOpts'], options);
27
+ const parseResultElement = await parseJSON(source, parserOpts);
28
+ const {
29
+ result
30
+ } = parseResultElement;
31
+ if (isNotUndefined(result)) {
32
+ const openApiElement = refractOpenApi3_1(result, {
33
+ consume: true,
34
+ ...refractorOpts
35
+ });
36
+ openApiElement.classes.push('result');
37
+ parseResultElement.replaceResult(openApiElement);
38
+ }
39
+ return parseResultElement;
40
+ };
41
+
42
+ /**
43
+ * @public
44
+ */
45
+ export const namespace = new Namespace().use(openApiNamespace);
package/src/adapter.ts ADDED
@@ -0,0 +1,58 @@
1
+ import { propOr, omit } from 'ramda';
2
+ import { isNotUndefined } from 'ramda-adjunct';
3
+ import { ParseResultElement, Namespace } from '@speclynx/apidom-datamodel';
4
+ import {
5
+ parse as parseJSON,
6
+ detect as detectJSON,
7
+ type ParseDetectOptions,
8
+ type ParseOptions as ParseOptionsJSON,
9
+ } from '@speclynx/apidom-parser-adapter-json';
10
+ import openApiNamespace, { refractOpenApi3_1 } from '@speclynx/apidom-ns-openapi-3-1';
11
+
12
+ export { default as mediaTypes } from './media-types.ts';
13
+
14
+ /**
15
+ * @public
16
+ */
17
+ export const detectionRegExp = /"openapi"\s*:\s*"(?<version_json>3\.1\.(?:[1-9]\d*|0))"/;
18
+
19
+ /**
20
+ * @public
21
+ */
22
+ export const detect: typeof detectJSON = async (
23
+ source: string,
24
+ options: ParseDetectOptions = {},
25
+ ): Promise<boolean> => detectionRegExp.test(source) && (await detectJSON(source, options));
26
+
27
+ /**
28
+ * @public
29
+ */
30
+ export interface ParseOptions extends ParseOptionsJSON {
31
+ refractorOpts?: Record<string, unknown>;
32
+ }
33
+
34
+ /**
35
+ * @public
36
+ */
37
+ export const parse: typeof parseJSON = async (
38
+ source: string,
39
+ options: ParseOptions = {},
40
+ ): Promise<ParseResultElement> => {
41
+ const refractorOpts: Record<string, unknown> = propOr({}, 'refractorOpts', options);
42
+ const parserOpts = omit(['refractorOpts'], options);
43
+ const parseResultElement = await parseJSON(source, parserOpts);
44
+ const { result } = parseResultElement;
45
+
46
+ if (isNotUndefined(result)) {
47
+ const openApiElement = refractOpenApi3_1(result, { consume: true, ...refractorOpts });
48
+ openApiElement.classes.push('result');
49
+ parseResultElement.replaceResult(openApiElement);
50
+ }
51
+
52
+ return parseResultElement;
53
+ };
54
+
55
+ /**
56
+ * @public
57
+ */
58
+ export const namespace = new Namespace().use(openApiNamespace);
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-3-1");
6
+ /**
7
+ * @public
8
+ */
9
+ const jsonMediaTypes = new _apidomNsOpenapi.OpenAPIMediaTypes(..._apidomNsOpenapi.mediaTypes.filterByFormat('generic'), ..._apidomNsOpenapi.mediaTypes.filterByFormat('json'));
10
+ var _default = exports.default = jsonMediaTypes;
@@ -0,0 +1,7 @@
1
+ import { mediaTypes, OpenAPIMediaTypes } from '@speclynx/apidom-ns-openapi-3-1';
2
+
3
+ /**
4
+ * @public
5
+ */
6
+ const jsonMediaTypes = new OpenAPIMediaTypes(...mediaTypes.filterByFormat('generic'), ...mediaTypes.filterByFormat('json'));
7
+ export default jsonMediaTypes;
@@ -0,0 +1,11 @@
1
+ import { mediaTypes, OpenAPIMediaTypes } from '@speclynx/apidom-ns-openapi-3-1';
2
+
3
+ /**
4
+ * @public
5
+ */
6
+ const jsonMediaTypes = new OpenAPIMediaTypes(
7
+ ...mediaTypes.filterByFormat('generic'),
8
+ ...mediaTypes.filterByFormat('json'),
9
+ );
10
+
11
+ export default jsonMediaTypes;