@mostajs/orm-adapter 0.3.0 → 0.4.0
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 +37 -0
- package/README.md +20 -1
- package/dist/adapters/jsonschema.adapter.d.ts +7 -0
- package/dist/adapters/jsonschema.adapter.d.ts.map +1 -1
- package/dist/adapters/jsonschema.adapter.js +19 -2
- package/dist/adapters/jsonschema.adapter.js.map +1 -1
- package/dist/adapters/openapi.adapter.d.ts +61 -0
- package/dist/adapters/openapi.adapter.d.ts.map +1 -0
- package/dist/adapters/openapi.adapter.js +220 -0
- package/dist/adapters/openapi.adapter.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/openapi-normalize.d.ts +24 -0
- package/dist/utils/openapi-normalize.d.ts.map +1 -0
- package/dist/utils/openapi-normalize.js +118 -0
- package/dist/utils/openapi-normalize.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@mostajs/orm-adapter` will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.4.0] — 2026-04-12
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **OpenApiAdapter** : converts OpenAPI 2.0/3.0/3.1 specs to `EntitySchema[]`
|
|
10
|
+
- OpenAPI 3.1 : full JSON Schema 2020-12 semantics
|
|
11
|
+
- OpenAPI 3.0.x : auto-normalized to 3.1 shape before conversion
|
|
12
|
+
- `nullable: true` → `type: [T, "null"]`
|
|
13
|
+
- `example: X` → `examples: [X]`
|
|
14
|
+
- `exclusiveMinimum: true` + `minimum: X` → `exclusiveMinimum: X`
|
|
15
|
+
- Swagger 2.0 detected with PREVIEW_FEATURE warning
|
|
16
|
+
- Extracts all `components/schemas` as entities
|
|
17
|
+
- Delegates to JsonSchemaAdapter for the schema conversion pipeline
|
|
18
|
+
- **x-mostajs-relation preservation** : re-attaches extensions on $ref-bearing properties (dereference strips siblings)
|
|
19
|
+
- **Title injection** : auto-adds `title: <key>` to each schema for relation detection
|
|
20
|
+
- **Input forms** : object, JSON string (YAML requires pre-parsing)
|
|
21
|
+
- Uses `@readme/openapi-parser` for validation + dereferencing
|
|
22
|
+
- **Utils** : `openapi-normalize` (3.0 → 3.1 transformations)
|
|
23
|
+
- **JsonSchemaAdapter.schemasToEntities()** : public method to convert a named schema map without root-detection heuristic
|
|
24
|
+
- 50 new unit tests on 3 fixtures :
|
|
25
|
+
- `petstore-3.1.json` (3 entities, relations, discriminator, x-mostajs-*)
|
|
26
|
+
- `petstore-3.0.json` (legacy with all normalizations)
|
|
27
|
+
- `discriminator.json` (oneOf polymorphism)
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
- `createDefaultRegistry()` now includes OpenApiAdapter (4 adapters total)
|
|
32
|
+
- `JsonSchemaAdapter.toEntitySchema()` : uses `structuredClone` instead of JSON.parse/stringify to handle circular refs from OpenAPI's dereferenced tree
|
|
33
|
+
|
|
34
|
+
### Total test coverage
|
|
35
|
+
|
|
36
|
+
196 tests across 4 adapters :
|
|
37
|
+
- 31 native
|
|
38
|
+
- 55 prisma
|
|
39
|
+
- 60 jsonschema
|
|
40
|
+
- 50 openapi
|
|
41
|
+
|
|
5
42
|
## [0.3.0] — 2026-04-12
|
|
6
43
|
|
|
7
44
|
### Added
|
package/README.md
CHANGED
|
@@ -147,9 +147,28 @@ export class MyCustomAdapter extends AbstractAdapter {
|
|
|
147
147
|
- **v0.1.0** — NativeAdapter + core (AbstractAdapter, Registry) ✅
|
|
148
148
|
- **v0.2.0** — PrismaAdapter (scalars, relations, enums, implicit M-N) ✅
|
|
149
149
|
- **v0.3.0** — JsonSchemaAdapter (Draft 2020-12 + Draft-07 + allOf + x-mostajs-*) ✅
|
|
150
|
-
- **v0.4.0** — OpenApiAdapter (3.1
|
|
150
|
+
- **v0.4.0** — OpenApiAdapter (3.1 + 3.0 normalization + Swagger 2.0 detect) ✅
|
|
151
151
|
- **v1.0.0** — Production-ready, all 4 adapters with reverse conversion
|
|
152
152
|
|
|
153
|
+
## OpenApiAdapter example
|
|
154
|
+
|
|
155
|
+
```ts
|
|
156
|
+
import { OpenApiAdapter } from '@mostajs/orm-adapter';
|
|
157
|
+
import { readFileSync } from 'fs';
|
|
158
|
+
|
|
159
|
+
const spec = JSON.parse(readFileSync('./openapi.json', 'utf8'));
|
|
160
|
+
const adapter = new OpenApiAdapter();
|
|
161
|
+
const entities = await adapter.toEntitySchema(spec);
|
|
162
|
+
|
|
163
|
+
// Extracts every components/schemas entry as an EntitySchema.
|
|
164
|
+
// Auto-handles:
|
|
165
|
+
// - OpenAPI 3.0 → 3.1 normalization (nullable, exclusiveMin, examples)
|
|
166
|
+
// - $ref resolution (internal)
|
|
167
|
+
// - allOf flattening (inheritance)
|
|
168
|
+
// - discriminator → EntitySchema.discriminator
|
|
169
|
+
// - x-mostajs-relation on $ref-bearing properties (preserved across dereference)
|
|
170
|
+
```
|
|
171
|
+
|
|
153
172
|
## PrismaAdapter example
|
|
154
173
|
|
|
155
174
|
```ts
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { EntitySchema } from '@mostajs/orm';
|
|
2
2
|
import { AbstractAdapter } from '../core/abstract.adapter.js';
|
|
3
3
|
import { type AdapterOptions } from '../core/types.js';
|
|
4
|
+
import { type JsonSchema } from '../utils/jsonschema-types.js';
|
|
4
5
|
/**
|
|
5
6
|
* JsonSchemaAdapter — converts JSON Schema to EntitySchema[].
|
|
6
7
|
*
|
|
@@ -29,6 +30,12 @@ export declare class JsonSchemaAdapter extends AbstractAdapter {
|
|
|
29
30
|
readonly version = "0.3.0";
|
|
30
31
|
canParse(input: string | object): boolean;
|
|
31
32
|
toEntitySchema(input: string | object, opts?: AdapterOptions): Promise<EntitySchema[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Convert a named map of schemas directly to EntitySchema[].
|
|
35
|
+
* Used by OpenApiAdapter when it has already extracted components.schemas.
|
|
36
|
+
* Skips the "root entity" detection heuristic.
|
|
37
|
+
*/
|
|
38
|
+
schemasToEntities(schemas: Record<string, JsonSchema>, opts?: AdapterOptions): Promise<EntitySchema[]>;
|
|
32
39
|
private collectEntities;
|
|
33
40
|
private nameFromId;
|
|
34
41
|
private convertEntity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonschema.adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/jsonschema.adapter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAA4D,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAe,KAAK,cAAc,EAAuB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"jsonschema.adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/jsonschema.adapter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAA4D,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAe,KAAK,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AAEzF,OAAO,EACL,KAAK,UAAU,EAOhB,MAAM,8BAA8B,CAAC;AAStC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,MAAM,qBAAqB;IACpC,QAAQ,CAAC,OAAO,WAAW;IAE3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAoBnC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAwC5F;;;;OAIG;IACG,iBAAiB,CACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACnC,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,YAAY,EAAE,CAAC;IAa1B,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,aAAa;IAwErB,OAAO,CAAC,eAAe;IAgDvB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,UAAU;IAgDlB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,YAAY;CAQrB"}
|
|
@@ -62,8 +62,12 @@ export class JsonSchemaAdapter extends AbstractAdapter {
|
|
|
62
62
|
let resolved;
|
|
63
63
|
try {
|
|
64
64
|
// Dereference : resolves all $ref into inline schemas.
|
|
65
|
-
//
|
|
66
|
-
|
|
65
|
+
// structuredClone handles circular references (unlike JSON.parse/stringify)
|
|
66
|
+
// which matter when this adapter is called from OpenApiAdapter on already-dereferenced specs.
|
|
67
|
+
const cloned = typeof structuredClone === 'function'
|
|
68
|
+
? structuredClone(raw)
|
|
69
|
+
: JSON.parse(JSON.stringify(raw));
|
|
70
|
+
resolved = await $RefParser.dereference(cloned);
|
|
67
71
|
}
|
|
68
72
|
catch (e) {
|
|
69
73
|
throw new InvalidSchemaError(`Failed to dereference JSON Schema: ${e instanceof Error ? e.message : String(e)}`, { cause: e });
|
|
@@ -82,6 +86,19 @@ export class JsonSchemaAdapter extends AbstractAdapter {
|
|
|
82
86
|
const entities = candidates.map(c => this.convertEntity(c, candidates, seen, opts));
|
|
83
87
|
return entities;
|
|
84
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Convert a named map of schemas directly to EntitySchema[].
|
|
91
|
+
* Used by OpenApiAdapter when it has already extracted components.schemas.
|
|
92
|
+
* Skips the "root entity" detection heuristic.
|
|
93
|
+
*/
|
|
94
|
+
async schemasToEntities(schemas, opts) {
|
|
95
|
+
const candidates = Object.entries(schemas).map(([name, schema]) => ({
|
|
96
|
+
name: this.pascalCase(name),
|
|
97
|
+
schema,
|
|
98
|
+
}));
|
|
99
|
+
const seen = new Set();
|
|
100
|
+
return candidates.map(c => this.convertEntity(c, candidates, seen, opts));
|
|
101
|
+
}
|
|
85
102
|
// ============================================================
|
|
86
103
|
// Entity collection
|
|
87
104
|
// ============================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonschema.adapter.js","sourceRoot":"","sources":["../../src/adapters/jsonschema.adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jsonschema.adapter.js","sourceRoot":"","sources":["../../src/adapters/jsonschema.adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { EntitySchema } from '@mostajs/orm';
|
|
2
|
+
import { AbstractAdapter } from '../core/abstract.adapter.js';
|
|
3
|
+
import { type AdapterOptions } from '../core/types.js';
|
|
4
|
+
/**
|
|
5
|
+
* OpenApiAdapter — converts OpenAPI specs to EntitySchema[].
|
|
6
|
+
*
|
|
7
|
+
* Supported (MVP v0.4.0) :
|
|
8
|
+
* - OpenAPI 3.0.x (auto-normalized to 3.1 shape before conversion)
|
|
9
|
+
* - OpenAPI 3.1.x (JSON Schema 2020-12 compliant)
|
|
10
|
+
* - Extracts all `components/schemas` as entities
|
|
11
|
+
* - All features of JsonSchemaAdapter (allOf, discriminator, $ref, x-mostajs-*, etc.)
|
|
12
|
+
* - 3.0→3.1 normalizations :
|
|
13
|
+
* - `nullable: true` → `type: [T, "null"]`
|
|
14
|
+
* - `example: X` → `examples: [X]`
|
|
15
|
+
* - `exclusiveMinimum: true` → `exclusiveMinimum: <number>`
|
|
16
|
+
* - Input : object, JSON string, YAML string, or file path (via @readme/openapi-parser)
|
|
17
|
+
*
|
|
18
|
+
* Not supported yet (v0.5+) :
|
|
19
|
+
* - paths → CRUD endpoint deduction (opt-in flag planned)
|
|
20
|
+
* - Inline schemas inside `paths` (only `components/schemas` become entities)
|
|
21
|
+
* - Webhooks (detected, parsed, but not mapped to entities)
|
|
22
|
+
* - `pathItems` components (parsed, not used for entities)
|
|
23
|
+
* - File upload body (kept as string with warning)
|
|
24
|
+
*/
|
|
25
|
+
export declare class OpenApiAdapter extends AbstractAdapter {
|
|
26
|
+
readonly name = "openapi";
|
|
27
|
+
readonly vendor = "openapis.org";
|
|
28
|
+
readonly version = "0.4.0";
|
|
29
|
+
/** Internal JsonSchemaAdapter used to convert normalized schemas */
|
|
30
|
+
private readonly jsonSchemaAdapter;
|
|
31
|
+
canParse(input: string | object): boolean;
|
|
32
|
+
toEntitySchema(input: string | object, opts?: AdapterOptions): Promise<EntitySchema[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Walk the ORIGINAL (pre-dereference) spec and record all x-mostajs-relation
|
|
35
|
+
* extensions on properties that also have a $ref. These siblings are stripped
|
|
36
|
+
* during dereference, so we capture them here and re-attach after.
|
|
37
|
+
*/
|
|
38
|
+
private extractRelationOverrides;
|
|
39
|
+
/**
|
|
40
|
+
* After dereference, re-attach the x-mostajs-relation extensions we extracted.
|
|
41
|
+
* The property schema becomes `{ ...inlinedRef, 'x-mostajs-relation': saved }`.
|
|
42
|
+
*/
|
|
43
|
+
private reattachRelationOverrides;
|
|
44
|
+
/** Clone input for the parser (must not mutate caller's input) */
|
|
45
|
+
private cloneForParser;
|
|
46
|
+
/**
|
|
47
|
+
* Normalize input to object form.
|
|
48
|
+
* @readme/openapi-parser treats strings as file paths (not content),
|
|
49
|
+
* so we JSON.parse strings ourselves here.
|
|
50
|
+
*/
|
|
51
|
+
private resolveInput;
|
|
52
|
+
/**
|
|
53
|
+
* Ensure each schema in components.schemas has `title: <key>`.
|
|
54
|
+
* After dereference, inlined schemas need a title for JsonSchemaAdapter's
|
|
55
|
+
* relation detection (which matches property schema titles against entity names).
|
|
56
|
+
*/
|
|
57
|
+
private injectSchemaTitles;
|
|
58
|
+
/** Parse JSON string if necessary — used for canParse detection only */
|
|
59
|
+
private tryParseAny;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=openapi.adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi.adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/openapi.adapter.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAe,KAAK,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AAkBzF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACjD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,MAAM,kBAAkB;IACjC,QAAQ,CAAC,OAAO,WAAW;IAE3B,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAE7D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAcnC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA8E5F;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAqBhC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAuBjC,kEAAkE;IAClE,OAAO,CAAC,cAAc;IAMtB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAkBpB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAU1B,wEAAwE;IACxE,OAAO,CAAC,WAAW;CAWpB"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
// openapi.adapter.ts
|
|
2
|
+
// Converts OpenAPI 3.0 / 3.1 specifications to EntitySchema[].
|
|
3
|
+
// Extracts components/schemas and feeds them through the JsonSchema pipeline.
|
|
4
|
+
// Parser : @readme/openapi-parser (supports 2.0, 3.0, 3.1 complet).
|
|
5
|
+
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
6
|
+
// License: AGPL-3.0-or-later
|
|
7
|
+
import { dereference, validate } from '@readme/openapi-parser';
|
|
8
|
+
import { AbstractAdapter } from '../core/abstract.adapter.js';
|
|
9
|
+
import { WarningCode } from '../core/types.js';
|
|
10
|
+
import { InvalidSchemaError } from '../core/errors.js';
|
|
11
|
+
import { JsonSchemaAdapter } from './jsonschema.adapter.js';
|
|
12
|
+
import { normalizeComponentsSchemas, isOpenApi30 } from '../utils/openapi-normalize.js';
|
|
13
|
+
/**
|
|
14
|
+
* OpenApiAdapter — converts OpenAPI specs to EntitySchema[].
|
|
15
|
+
*
|
|
16
|
+
* Supported (MVP v0.4.0) :
|
|
17
|
+
* - OpenAPI 3.0.x (auto-normalized to 3.1 shape before conversion)
|
|
18
|
+
* - OpenAPI 3.1.x (JSON Schema 2020-12 compliant)
|
|
19
|
+
* - Extracts all `components/schemas` as entities
|
|
20
|
+
* - All features of JsonSchemaAdapter (allOf, discriminator, $ref, x-mostajs-*, etc.)
|
|
21
|
+
* - 3.0→3.1 normalizations :
|
|
22
|
+
* - `nullable: true` → `type: [T, "null"]`
|
|
23
|
+
* - `example: X` → `examples: [X]`
|
|
24
|
+
* - `exclusiveMinimum: true` → `exclusiveMinimum: <number>`
|
|
25
|
+
* - Input : object, JSON string, YAML string, or file path (via @readme/openapi-parser)
|
|
26
|
+
*
|
|
27
|
+
* Not supported yet (v0.5+) :
|
|
28
|
+
* - paths → CRUD endpoint deduction (opt-in flag planned)
|
|
29
|
+
* - Inline schemas inside `paths` (only `components/schemas` become entities)
|
|
30
|
+
* - Webhooks (detected, parsed, but not mapped to entities)
|
|
31
|
+
* - `pathItems` components (parsed, not used for entities)
|
|
32
|
+
* - File upload body (kept as string with warning)
|
|
33
|
+
*/
|
|
34
|
+
export class OpenApiAdapter extends AbstractAdapter {
|
|
35
|
+
name = 'openapi';
|
|
36
|
+
vendor = 'openapis.org';
|
|
37
|
+
version = '0.4.0';
|
|
38
|
+
/** Internal JsonSchemaAdapter used to convert normalized schemas */
|
|
39
|
+
jsonSchemaAdapter = new JsonSchemaAdapter();
|
|
40
|
+
canParse(input) {
|
|
41
|
+
const obj = this.tryParseAny(input);
|
|
42
|
+
if (!obj || typeof obj !== 'object')
|
|
43
|
+
return false;
|
|
44
|
+
const doc = obj;
|
|
45
|
+
// Strongest indicator : `openapi: "3.x.y"` field
|
|
46
|
+
if (typeof doc.openapi === 'string' && /^3\./.test(doc.openapi))
|
|
47
|
+
return true;
|
|
48
|
+
// Swagger 2.0 shape (not yet supported but let us detect and warn)
|
|
49
|
+
if (obj.swagger === '2.0')
|
|
50
|
+
return true;
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
async toEntitySchema(input, opts) {
|
|
54
|
+
// 1. Normalize input to object (parse JSON string if needed).
|
|
55
|
+
// @readme/openapi-parser treats strings as file paths — we want inline parsing.
|
|
56
|
+
const specInput = this.resolveInput(input);
|
|
57
|
+
// 2. Pre-annotate components.schemas with title = key, so dereference propagates names.
|
|
58
|
+
this.injectSchemaTitles(specInput);
|
|
59
|
+
// 3. Pre-extract x-mostajs-relation from $ref-bearing properties before dereference.
|
|
60
|
+
// json-schema-ref-parser strips siblings when resolving $ref.
|
|
61
|
+
const relationOverrides = this.extractRelationOverrides(specInput);
|
|
62
|
+
// 4. Parse + dereference via @readme/openapi-parser
|
|
63
|
+
let spec;
|
|
64
|
+
try {
|
|
65
|
+
// We validate first for diagnostics, but don't fail on warnings
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
|
+
const report = await validate(this.cloneForParser(specInput));
|
|
68
|
+
if (!report.valid) {
|
|
69
|
+
this.warn(opts, {
|
|
70
|
+
code: WarningCode.FALLBACK_APPLIED,
|
|
71
|
+
message: `OpenAPI spec has validation issues; proceeding anyway`,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
75
|
+
spec = (await dereference(this.cloneForParser(specInput)));
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
throw new InvalidSchemaError(`Failed to parse OpenAPI spec: ${e instanceof Error ? e.message : String(e)}`, { cause: e });
|
|
79
|
+
}
|
|
80
|
+
// 4b. Re-attach x-mostajs-relation overrides on each property
|
|
81
|
+
this.reattachRelationOverrides(spec, relationOverrides);
|
|
82
|
+
// 2. Warn if Swagger 2.0 (not fully supported)
|
|
83
|
+
if (spec.swagger === '2.0') {
|
|
84
|
+
this.warn(opts, {
|
|
85
|
+
code: WarningCode.PREVIEW_FEATURE,
|
|
86
|
+
message: `Swagger 2.0 input — conversion may be incomplete. Consider migrating to OpenAPI 3.1.`,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
const version = spec.openapi;
|
|
90
|
+
if (isOpenApi30(version)) {
|
|
91
|
+
// Handled by normalize below — just informational
|
|
92
|
+
}
|
|
93
|
+
// 3. Extract components.schemas
|
|
94
|
+
const rawSchemas = spec.components?.schemas;
|
|
95
|
+
if (!rawSchemas || Object.keys(rawSchemas).length === 0) {
|
|
96
|
+
this.warn(opts, {
|
|
97
|
+
code: WarningCode.MISSING_METADATA,
|
|
98
|
+
message: `OpenAPI spec has no components.schemas — no entities extracted`,
|
|
99
|
+
});
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
// 4. Normalize 3.0 → 3.1 if needed
|
|
103
|
+
const normalized = normalizeComponentsSchemas(spec.components, version, w => this.warn(opts, w));
|
|
104
|
+
if (!normalized)
|
|
105
|
+
return [];
|
|
106
|
+
// 5. Ensure each schema has a title so inline detection works post-dereference
|
|
107
|
+
const titled = {};
|
|
108
|
+
for (const [name, schema] of Object.entries(normalized)) {
|
|
109
|
+
titled[name] = schema.title ? schema : { ...schema, title: name };
|
|
110
|
+
}
|
|
111
|
+
// 6. Delegate to JsonSchemaAdapter
|
|
112
|
+
return this.jsonSchemaAdapter.schemasToEntities(titled, opts);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Walk the ORIGINAL (pre-dereference) spec and record all x-mostajs-relation
|
|
116
|
+
* extensions on properties that also have a $ref. These siblings are stripped
|
|
117
|
+
* during dereference, so we capture them here and re-attach after.
|
|
118
|
+
*/
|
|
119
|
+
extractRelationOverrides(doc) {
|
|
120
|
+
const map = new Map(); // schemaName -> propName -> xRel
|
|
121
|
+
const schemas = doc.components?.schemas;
|
|
122
|
+
if (!schemas)
|
|
123
|
+
return map;
|
|
124
|
+
for (const [schemaName, schema] of Object.entries(schemas)) {
|
|
125
|
+
if (!schema?.properties)
|
|
126
|
+
continue;
|
|
127
|
+
const propMap = new Map();
|
|
128
|
+
for (const [propName, prop] of Object.entries(schema.properties)) {
|
|
129
|
+
const p = prop;
|
|
130
|
+
if (p['x-mostajs-relation']) {
|
|
131
|
+
propMap.set(propName, p['x-mostajs-relation']);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (propMap.size > 0)
|
|
135
|
+
map.set(schemaName, propMap);
|
|
136
|
+
}
|
|
137
|
+
return map;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* After dereference, re-attach the x-mostajs-relation extensions we extracted.
|
|
141
|
+
* The property schema becomes `{ ...inlinedRef, 'x-mostajs-relation': saved }`.
|
|
142
|
+
*/
|
|
143
|
+
reattachRelationOverrides(doc, overrides) {
|
|
144
|
+
const schemas = doc.components?.schemas;
|
|
145
|
+
if (!schemas)
|
|
146
|
+
return;
|
|
147
|
+
for (const [schemaName, propMap] of overrides) {
|
|
148
|
+
const schema = schemas[schemaName];
|
|
149
|
+
if (!schema?.properties)
|
|
150
|
+
continue;
|
|
151
|
+
for (const [propName, xRel] of propMap) {
|
|
152
|
+
const prop = schema.properties[propName];
|
|
153
|
+
if (prop && typeof prop === 'object') {
|
|
154
|
+
prop['x-mostajs-relation'] = xRel;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// ============================================================
|
|
160
|
+
// Utilities
|
|
161
|
+
// ============================================================
|
|
162
|
+
/** Clone input for the parser (must not mutate caller's input) */
|
|
163
|
+
cloneForParser(input) {
|
|
164
|
+
return typeof structuredClone === 'function'
|
|
165
|
+
? structuredClone(input)
|
|
166
|
+
: JSON.parse(JSON.stringify(input));
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Normalize input to object form.
|
|
170
|
+
* @readme/openapi-parser treats strings as file paths (not content),
|
|
171
|
+
* so we JSON.parse strings ourselves here.
|
|
172
|
+
*/
|
|
173
|
+
resolveInput(input) {
|
|
174
|
+
if (typeof input !== 'string')
|
|
175
|
+
return input;
|
|
176
|
+
const trimmed = input.trim();
|
|
177
|
+
if (trimmed.startsWith('{')) {
|
|
178
|
+
try {
|
|
179
|
+
return JSON.parse(trimmed);
|
|
180
|
+
}
|
|
181
|
+
catch (e) {
|
|
182
|
+
throw new InvalidSchemaError(`Invalid JSON input: ${e instanceof Error ? e.message : String(e)}`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// YAML parsing not implemented yet — recommend pre-parsing
|
|
186
|
+
throw new InvalidSchemaError('OpenApiAdapter accepts objects or JSON strings. For YAML, pre-parse with js-yaml.');
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Ensure each schema in components.schemas has `title: <key>`.
|
|
190
|
+
* After dereference, inlined schemas need a title for JsonSchemaAdapter's
|
|
191
|
+
* relation detection (which matches property schema titles against entity names).
|
|
192
|
+
*/
|
|
193
|
+
injectSchemaTitles(doc) {
|
|
194
|
+
const schemas = doc.components?.schemas;
|
|
195
|
+
if (!schemas)
|
|
196
|
+
return;
|
|
197
|
+
for (const [name, schema] of Object.entries(schemas)) {
|
|
198
|
+
if (schema && typeof schema === 'object' && !schema.title) {
|
|
199
|
+
schema.title = name;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/** Parse JSON string if necessary — used for canParse detection only */
|
|
204
|
+
tryParseAny(input) {
|
|
205
|
+
if (typeof input !== 'string')
|
|
206
|
+
return input;
|
|
207
|
+
const trimmed = input.trim();
|
|
208
|
+
if (trimmed.startsWith('{')) {
|
|
209
|
+
try {
|
|
210
|
+
return JSON.parse(trimmed);
|
|
211
|
+
}
|
|
212
|
+
catch { /* fall through */ }
|
|
213
|
+
}
|
|
214
|
+
if (/^\s*openapi\s*:\s*['"]?3\./m.test(trimmed)) {
|
|
215
|
+
return { openapi: '3.0.0' }; // placeholder to pass canParse
|
|
216
|
+
}
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=openapi.adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi.adapter.js","sourceRoot":"","sources":["../../src/adapters/openapi.adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export { AdapterError, NoAdapterFoundError, InvalidSchemaError, StrictWarningErr
|
|
|
6
6
|
export { NativeAdapter } from './adapters/native.adapter.js';
|
|
7
7
|
export { PrismaAdapter } from './adapters/prisma.adapter.js';
|
|
8
8
|
export { JsonSchemaAdapter } from './adapters/jsonschema.adapter.js';
|
|
9
|
+
export { OpenApiAdapter } from './adapters/openapi.adapter.js';
|
|
9
10
|
export { DefaultSentinel } from './utils/prisma-default-mapper.js';
|
|
10
11
|
export type { JsonSchema, JsonSchemaType, XMostajsEntity, XMostajsRelation, DraftVersion, } from './utils/jsonschema-types.js';
|
|
11
12
|
import { AdapterRegistry } from './core/registry.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,YAAY,EACV,QAAQ,EACR,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,YAAY,EACV,QAAQ,EACR,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,YAAY,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAOvD"}
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export { AdapterError, NoAdapterFoundError, InvalidSchemaError, StrictWarningErr
|
|
|
10
10
|
export { NativeAdapter } from './adapters/native.adapter.js';
|
|
11
11
|
export { PrismaAdapter } from './adapters/prisma.adapter.js';
|
|
12
12
|
export { JsonSchemaAdapter } from './adapters/jsonschema.adapter.js';
|
|
13
|
+
export { OpenApiAdapter } from './adapters/openapi.adapter.js';
|
|
13
14
|
// --- Default-value sentinels (Prisma @default semantics) ---
|
|
14
15
|
export { DefaultSentinel } from './utils/prisma-default-mapper.js';
|
|
15
16
|
// --- Convenience factory ---
|
|
@@ -17,6 +18,7 @@ import { AdapterRegistry } from './core/registry.js';
|
|
|
17
18
|
import { NativeAdapter } from './adapters/native.adapter.js';
|
|
18
19
|
import { PrismaAdapter } from './adapters/prisma.adapter.js';
|
|
19
20
|
import { JsonSchemaAdapter } from './adapters/jsonschema.adapter.js';
|
|
21
|
+
import { OpenApiAdapter } from './adapters/openapi.adapter.js';
|
|
20
22
|
/**
|
|
21
23
|
* Create a registry with all standard adapters pre-registered.
|
|
22
24
|
* Detection order (first registered = last priority) :
|
|
@@ -29,7 +31,7 @@ export function createDefaultRegistry() {
|
|
|
29
31
|
registry.register(new NativeAdapter());
|
|
30
32
|
registry.register(new PrismaAdapter());
|
|
31
33
|
registry.register(new JsonSchemaAdapter());
|
|
32
|
-
|
|
34
|
+
registry.register(new OpenApiAdapter());
|
|
33
35
|
return registry;
|
|
34
36
|
}
|
|
35
37
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,+CAA+C;AAC/C,wCAAwC;AACxC,6BAA6B;AAW7B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,4BAA4B;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,+CAA+C;AAC/C,wCAAwC;AACxC,6BAA6B;AAW7B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,4BAA4B;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,8DAA8D;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAWnE,8BAA8B;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { JsonSchema } from './jsonschema-types.js';
|
|
2
|
+
import { type AdapterWarning } from '../core/types.js';
|
|
3
|
+
/** Detect if a spec is OpenAPI 3.0.x (not 3.1) */
|
|
4
|
+
export declare function isOpenApi30(version: string | undefined): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Normalize a Schema Object to 3.1 shape (in-place safe — operates on a cloned tree).
|
|
7
|
+
* Recursively walks through properties, items, $defs, allOf/oneOf/anyOf.
|
|
8
|
+
*
|
|
9
|
+
* Transformations applied:
|
|
10
|
+
* - nullable: true → type: [T, "null"]
|
|
11
|
+
* - example: X → examples: [X] (deprecated in 3.1)
|
|
12
|
+
* - exclusiveMinimum: true (3.0 boolean) → exclusiveMinimum: minimum (3.1 number)
|
|
13
|
+
* - exclusiveMaximum: true (3.0 boolean) → exclusiveMaximum: maximum (3.1 number)
|
|
14
|
+
* - Drop format: binary + enforce blob (kept as-is but flagged)
|
|
15
|
+
*/
|
|
16
|
+
export declare function normalizeSchema30to31(schema: JsonSchema, emitWarning: (w: AdapterWarning) => void, path?: string): JsonSchema;
|
|
17
|
+
/**
|
|
18
|
+
* Normalize ALL schemas in components.schemas.
|
|
19
|
+
* Only runs if the spec is OpenAPI 3.0.x.
|
|
20
|
+
*/
|
|
21
|
+
export declare function normalizeComponentsSchemas(components: {
|
|
22
|
+
schemas?: Record<string, JsonSchema>;
|
|
23
|
+
} | undefined, version: string | undefined, emitWarning: (w: AdapterWarning) => void): Record<string, JsonSchema> | undefined;
|
|
24
|
+
//# sourceMappingURL=openapi-normalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi-normalize.d.ts","sourceRoot":"","sources":["../../src/utils/openapi-normalize.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEpE,kDAAkD;AAClD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,EACxC,IAAI,SAAM,GACT,UAAU,CAyFZ;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,GAAG,SAAS,EAChE,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,WAAW,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,GACvC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,SAAS,CAkBxC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
// openapi-normalize.ts
|
|
2
|
+
// Normalizes OpenAPI 3.0.x schemas to OpenAPI 3.1 / JSON Schema 2020-12 shape.
|
|
3
|
+
// Makes it safe to feed OpenAPI schemas into the JsonSchema type mapper.
|
|
4
|
+
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
5
|
+
// License: AGPL-3.0-or-later
|
|
6
|
+
import { WarningCode } from '../core/types.js';
|
|
7
|
+
/** Detect if a spec is OpenAPI 3.0.x (not 3.1) */
|
|
8
|
+
export function isOpenApi30(version) {
|
|
9
|
+
if (!version)
|
|
10
|
+
return false;
|
|
11
|
+
return /^3\.0/.test(version);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Normalize a Schema Object to 3.1 shape (in-place safe — operates on a cloned tree).
|
|
15
|
+
* Recursively walks through properties, items, $defs, allOf/oneOf/anyOf.
|
|
16
|
+
*
|
|
17
|
+
* Transformations applied:
|
|
18
|
+
* - nullable: true → type: [T, "null"]
|
|
19
|
+
* - example: X → examples: [X] (deprecated in 3.1)
|
|
20
|
+
* - exclusiveMinimum: true (3.0 boolean) → exclusiveMinimum: minimum (3.1 number)
|
|
21
|
+
* - exclusiveMaximum: true (3.0 boolean) → exclusiveMaximum: maximum (3.1 number)
|
|
22
|
+
* - Drop format: binary + enforce blob (kept as-is but flagged)
|
|
23
|
+
*/
|
|
24
|
+
export function normalizeSchema30to31(schema, emitWarning, path = '$') {
|
|
25
|
+
if (!schema || typeof schema !== 'object')
|
|
26
|
+
return schema;
|
|
27
|
+
const out = { ...schema };
|
|
28
|
+
// 1. nullable: true → type: [T, "null"]
|
|
29
|
+
if (out.nullable === true) {
|
|
30
|
+
if (typeof out.type === 'string') {
|
|
31
|
+
out.type = [out.type, 'null'];
|
|
32
|
+
}
|
|
33
|
+
else if (Array.isArray(out.type)) {
|
|
34
|
+
if (!out.type.includes('null'))
|
|
35
|
+
out.type = [...out.type, 'null'];
|
|
36
|
+
}
|
|
37
|
+
delete out.nullable;
|
|
38
|
+
}
|
|
39
|
+
// 2. example (singular, deprecated 3.1) → examples
|
|
40
|
+
const schemaAny = out;
|
|
41
|
+
if (schemaAny.example !== undefined && !out.examples) {
|
|
42
|
+
out.examples = [schemaAny.example];
|
|
43
|
+
delete schemaAny.example;
|
|
44
|
+
}
|
|
45
|
+
// 3. exclusiveMinimum/Maximum boolean (3.0) → numeric (3.1)
|
|
46
|
+
if (out.exclusiveMinimum === true && typeof out.minimum === 'number') {
|
|
47
|
+
out.exclusiveMinimum = out.minimum;
|
|
48
|
+
delete out.minimum;
|
|
49
|
+
}
|
|
50
|
+
else if (out.exclusiveMinimum === false) {
|
|
51
|
+
delete out.exclusiveMinimum;
|
|
52
|
+
}
|
|
53
|
+
if (out.exclusiveMaximum === true && typeof out.maximum === 'number') {
|
|
54
|
+
out.exclusiveMaximum = out.maximum;
|
|
55
|
+
delete out.maximum;
|
|
56
|
+
}
|
|
57
|
+
else if (out.exclusiveMaximum === false) {
|
|
58
|
+
delete out.exclusiveMaximum;
|
|
59
|
+
}
|
|
60
|
+
// 4. Recurse into nested schemas
|
|
61
|
+
if (out.properties) {
|
|
62
|
+
out.properties = Object.fromEntries(Object.entries(out.properties).map(([k, v]) => [
|
|
63
|
+
k,
|
|
64
|
+
normalizeSchema30to31(v, emitWarning, `${path}.properties.${k}`),
|
|
65
|
+
]));
|
|
66
|
+
}
|
|
67
|
+
if (out.items) {
|
|
68
|
+
if (Array.isArray(out.items)) {
|
|
69
|
+
out.items = out.items.map((it, i) => normalizeSchema30to31(it, emitWarning, `${path}.items[${i}]`));
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
out.items = normalizeSchema30to31(out.items, emitWarning, `${path}.items`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (out.$defs) {
|
|
76
|
+
out.$defs = Object.fromEntries(Object.entries(out.$defs).map(([k, v]) => [
|
|
77
|
+
k,
|
|
78
|
+
normalizeSchema30to31(v, emitWarning, `${path}.$defs.${k}`),
|
|
79
|
+
]));
|
|
80
|
+
}
|
|
81
|
+
if (out.definitions) {
|
|
82
|
+
out.definitions = Object.fromEntries(Object.entries(out.definitions).map(([k, v]) => [
|
|
83
|
+
k,
|
|
84
|
+
normalizeSchema30to31(v, emitWarning, `${path}.definitions.${k}`),
|
|
85
|
+
]));
|
|
86
|
+
}
|
|
87
|
+
for (const k of ['allOf', 'oneOf', 'anyOf']) {
|
|
88
|
+
const arr = out[k];
|
|
89
|
+
if (Array.isArray(arr)) {
|
|
90
|
+
out[k] = arr.map((s, i) => normalizeSchema30to31(s, emitWarning, `${path}.${k}[${i}]`));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (out.not) {
|
|
94
|
+
out.not = normalizeSchema30to31(out.not, emitWarning, `${path}.not`);
|
|
95
|
+
}
|
|
96
|
+
return out;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Normalize ALL schemas in components.schemas.
|
|
100
|
+
* Only runs if the spec is OpenAPI 3.0.x.
|
|
101
|
+
*/
|
|
102
|
+
export function normalizeComponentsSchemas(components, version, emitWarning) {
|
|
103
|
+
const schemas = components?.schemas;
|
|
104
|
+
if (!schemas)
|
|
105
|
+
return undefined;
|
|
106
|
+
if (!isOpenApi30(version))
|
|
107
|
+
return schemas; // already 3.1+
|
|
108
|
+
// Emit a single info-level warning per spec
|
|
109
|
+
emitWarning({
|
|
110
|
+
code: WarningCode.FALLBACK_APPLIED,
|
|
111
|
+
message: `OpenAPI 3.0 detected — normalizing schemas to 3.1 shape (nullable/exclusiveMin/examples)`,
|
|
112
|
+
});
|
|
113
|
+
return Object.fromEntries(Object.entries(schemas).map(([name, schema]) => [
|
|
114
|
+
name,
|
|
115
|
+
normalizeSchema30to31(schema, emitWarning, `components.schemas.${name}`),
|
|
116
|
+
]));
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=openapi-normalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi-normalize.js","sourceRoot":"","sources":["../../src/utils/openapi-normalize.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mostajs/orm-adapter",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Third-party schema adapters for @mostajs/orm — convert Prisma, JSON Schema, OpenAPI to EntitySchema",
|
|
5
5
|
"author": "Dr Hamid MADANI <drmdh@msn.com>",
|
|
6
6
|
"license": "AGPL-3.0-or-later",
|