@mostajs/orm-adapter 0.3.0 → 0.5.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 CHANGED
@@ -2,6 +2,72 @@
2
2
 
3
3
  All notable changes to `@mostajs/orm-adapter` will be documented in this file.
4
4
 
5
+ ## [0.5.0] — 2026-04-12
6
+
7
+ ### Added
8
+
9
+ - **YAML input for OpenApiAdapter** : native support for YAML-formatted OpenAPI specs via `js-yaml`
10
+ - Auto-detected in `canParse` when string matches `^\s*openapi:` or `^\s*swagger:`
11
+ - No need to pre-parse with external library anymore
12
+ - Fixture `petstore-3.1.yaml` added for regression
13
+ - **E2E tests on real-world specs** (`test-e2e-real.ts`) :
14
+ - YAML OpenAPI round-trip
15
+ - Realistic SaaS Prisma schema (cal.com/dub style) with 8 entities, implicit M-N, nested relations, enums, BigInt, Json, composite unique constraints
16
+ - Swagger Petstore v3 (real spec from swagger.io) — 6 entities extracted with < 10 warnings
17
+ - Cross-format registry dispatch (auto-detection Prisma + YAML + JSON)
18
+ - Cross-format equivalence (entities pass through Native without alteration)
19
+
20
+ ### Test coverage
21
+
22
+ 238 tests across 5 suites (all passing) :
23
+ - 31 native
24
+ - 55 prisma
25
+ - 60 jsonschema
26
+ - 50 openapi
27
+ - **42 e2e-real** (new)
28
+
29
+ ### Dependencies
30
+
31
+ - Added `js-yaml ^4.1.1` (for YAML parsing in OpenApiAdapter)
32
+ - Added `@types/js-yaml ^4.0.9` (dev)
33
+
34
+ ## [0.4.0] — 2026-04-12
35
+
36
+ ### Added
37
+
38
+ - **OpenApiAdapter** : converts OpenAPI 2.0/3.0/3.1 specs to `EntitySchema[]`
39
+ - OpenAPI 3.1 : full JSON Schema 2020-12 semantics
40
+ - OpenAPI 3.0.x : auto-normalized to 3.1 shape before conversion
41
+ - `nullable: true` → `type: [T, "null"]`
42
+ - `example: X` → `examples: [X]`
43
+ - `exclusiveMinimum: true` + `minimum: X` → `exclusiveMinimum: X`
44
+ - Swagger 2.0 detected with PREVIEW_FEATURE warning
45
+ - Extracts all `components/schemas` as entities
46
+ - Delegates to JsonSchemaAdapter for the schema conversion pipeline
47
+ - **x-mostajs-relation preservation** : re-attaches extensions on $ref-bearing properties (dereference strips siblings)
48
+ - **Title injection** : auto-adds `title: <key>` to each schema for relation detection
49
+ - **Input forms** : object, JSON string (YAML requires pre-parsing)
50
+ - Uses `@readme/openapi-parser` for validation + dereferencing
51
+ - **Utils** : `openapi-normalize` (3.0 → 3.1 transformations)
52
+ - **JsonSchemaAdapter.schemasToEntities()** : public method to convert a named schema map without root-detection heuristic
53
+ - 50 new unit tests on 3 fixtures :
54
+ - `petstore-3.1.json` (3 entities, relations, discriminator, x-mostajs-*)
55
+ - `petstore-3.0.json` (legacy with all normalizations)
56
+ - `discriminator.json` (oneOf polymorphism)
57
+
58
+ ### Changed
59
+
60
+ - `createDefaultRegistry()` now includes OpenApiAdapter (4 adapters total)
61
+ - `JsonSchemaAdapter.toEntitySchema()` : uses `structuredClone` instead of JSON.parse/stringify to handle circular refs from OpenAPI's dereferenced tree
62
+
63
+ ### Total test coverage
64
+
65
+ 196 tests across 4 adapters :
66
+ - 31 native
67
+ - 55 prisma
68
+ - 60 jsonschema
69
+ - 50 openapi
70
+
5
71
  ## [0.3.0] — 2026-04-12
6
72
 
7
73
  ### Added
package/README.md CHANGED
@@ -147,9 +147,29 @@ 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 with 3.0 normalization)
150
+ - **v0.4.0** — OpenApiAdapter (3.1 + 3.0 normalization + Swagger 2.0 detect)
151
+ - **v0.5.0** — YAML input + E2E tests on real specs (238 tests passing) ✅
151
152
  - **v1.0.0** — Production-ready, all 4 adapters with reverse conversion
152
153
 
154
+ ## OpenApiAdapter example
155
+
156
+ ```ts
157
+ import { OpenApiAdapter } from '@mostajs/orm-adapter';
158
+ import { readFileSync } from 'fs';
159
+
160
+ const spec = JSON.parse(readFileSync('./openapi.json', 'utf8'));
161
+ const adapter = new OpenApiAdapter();
162
+ const entities = await adapter.toEntitySchema(spec);
163
+
164
+ // Extracts every components/schemas entry as an EntitySchema.
165
+ // Auto-handles:
166
+ // - OpenAPI 3.0 → 3.1 normalization (nullable, exclusiveMin, examples)
167
+ // - $ref resolution (internal)
168
+ // - allOf flattening (inheritance)
169
+ // - discriminator → EntitySchema.discriminator
170
+ // - x-mostajs-relation on $ref-bearing properties (preserved across dereference)
171
+ ```
172
+
153
173
  ## PrismaAdapter example
154
174
 
155
175
  ```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;AAmBzF;;;;;;;;;;;;;;;;;;;;;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,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"}
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
- // We clone to avoid mutating caller's input.
66
- resolved = await $RefParser.dereference(JSON.parse(JSON.stringify(raw)));
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":"AAAA,wBAAwB;AACxB,uEAAuE;AACvE,gDAAgD;AAChD,wCAAwC;AACxC,6BAA6B;AAE7B,OAAO,UAAU,MAAM,qCAAqC,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAA4C,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAIL,WAAW,EACX,cAAc,EACd,WAAW,EACX,UAAU,GACX,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAOnF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IAC3C,IAAI,GAAG,YAAY,CAAC;IACpB,MAAM,GAAG,iBAAiB,CAAC;IAC3B,OAAO,GAAG,OAAO,CAAC;IAE3B,QAAQ,CAAC,KAAsB;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAElD,oCAAoC;QACpC,IAAI,OAAQ,GAAkB,CAAC,OAAO,KAAK,QAAQ;YAC/C,kBAAkB,CAAC,IAAI,CAAE,GAAkB,CAAC,OAAQ,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4DAA4D;QAC5D,MAAM,CAAC,GAAG,GAAiB,CAAC;QAC5B,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,qEAAqE;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAsB,EAAE,IAAqB;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,IAAI,kBAAkB,CAAC,oDAAoD,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,QAAoB,CAAC;QACzB,IAAI,CAAC;YACH,uDAAuD;YACvD,6CAA6C;YAC7C,QAAQ,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAe,CAAC;QACzF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,kBAAkB,CAC1B,sCAAsC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAClF,EAAE,KAAK,EAAE,CAAC,EAAE,CACb,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACd,IAAI,EAAE,WAAW,CAAC,eAAe;gBACjC,OAAO,EAAE,gBAAgB,KAAK,qEAAqE;aACpG,CAAC,CAAC;QACL,CAAC;QAED,kEAAkE;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAExD,yBAAyB;QACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC,CAAE,sBAAsB;QACvD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAEpF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,+DAA+D;IAC/D,oBAAoB;IACpB,+DAA+D;IAEvD,eAAe,CAAC,IAAgB,EAAE,IAAgC;QACxE,MAAM,GAAG,GAAsB,EAAE,CAAC;QAElC,2DAA2D;QAC3D,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEvD,IAAI,YAAY,IAAI,CAAC,mBAAmB,IAAI,QAAQ,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,8CAA8C;QAC9C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAClC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBACd,IAAI,EAAE,WAAW,CAAC,gBAAgB;oBAClC,OAAO,EAAE,UAAU,GAAG,mDAAmD;iBAC1E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACzF,CAAC;IAEO,UAAU,CAAC,EAAsB;QACvC,IAAI,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;IACpD,CAAC;IAED,+DAA+D;IAC/D,2BAA2B;IAC3B,+DAA+D;IAEvD,aAAa,CACnB,SAA0B,EAC1B,aAAgC,EAChC,IAAiB,EACjB,IAAgC;QAEhC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACd,IAAI,EAAE,WAAW,CAAC,gBAAgB;gBAClC,OAAO,EAAE,wCAAwC,IAAI,GAAG;gBACxD,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEf,4BAA4B;QAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAE7E,oCAAoC;QACpC,MAAM,UAAU,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE/D,MAAM,MAAM,GAAiB;YAC3B,IAAI;YACJ,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,KAAK;SAC3C,CAAC;QAEF,IAAI,UAAU,CAAC,UAAU;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QACpD,IAAI,UAAU,CAAC,aAAa;YAAE,MAAM,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;QAC9E,IAAI,UAAU,CAAC,kBAAkB;YAAE,MAAM,CAAC,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAC;QAE7F,sEAAsE;QACtE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC;gBAAE,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,YAAY,CAAC;QAC/C,CAAC;QAED,qBAAqB;QACrB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;YACxE,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACtF,CAAC;QAED,oDAAoD;QACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAA8B,EAAE,CAAC;gBAC7C,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM;oBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC9C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,MAAM,CAAC,UAAU;YAClB,WAAW,IAAI,MAAM,CAAC,MAAM,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACjE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,+DAA+D;IAC/D,+BAA+B;IAC/B,+DAA+D;IAEvD,eAAe,CACrB,GAAW,EACX,UAAsB,EACtB,MAAoB,EACpB,QAAiB,EACjB,WAAwB,EACxB,IAAgC;QAEhC,6CAA6C;QAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAC9C,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,2EAA2E;QAC3E,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,QAAQ,IAAI,UAAU,CAAC,KAAK;YACxD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG;gBACtB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;gBACzC,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBAC7C,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC;aACjC,CAAC;YACF,OAAO;QACT,CAAC;QAED,iCAAiC;QACjC,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,GAAG,UAAU,CAAC,KAA+B,CAAC;YACxD,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK;gBACpD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG;oBACtB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnC,IAAI,EAAE,aAAa;iBACpB,CAAC;gBACF,OAAO;YACT,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5E,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,IAAsB,EAAE,QAAiB;QACnE,MAAM,OAAO,GAAmD;YAC9D,SAAS,EAAM,aAAa;YAC5B,MAAM,EAAS,YAAY;YAC3B,OAAO,EAAQ,aAAa;YAC5B,aAAa,EAAE,cAAc;SAC9B,CAAC;QACF,MAAM,GAAG,GAAgB;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;SACzB,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;QACnD,IAAI,IAAI,CAAC,QAAQ;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvC,IAAI,IAAI,CAAC,UAAU;YAAE,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACtD,IAAI,IAAI,CAAC,QAAQ;YAAE,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzD,IAAI,IAAI,CAAC,OAAO;YAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7C,IAAI,IAAI,CAAC,QAAQ;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,UAAU,CAChB,GAAW,EACX,MAAkB,EAClB,QAAiB,EACjB,UAAkB,EAClB,IAAgC;QAEhC,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACd,IAAI,EAAE,WAAW,CAAC,mBAAmB;gBACrC,OAAO,EAAE,wBAAwB,GAAG,yBAAyB;gBAC7D,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,GAAG;aACX,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,EAAE,GAAa;YACnB,IAAI;YACJ,QAAQ,EAAE,QAAQ,IAAI,CAAC,QAAQ;SAChC,CAAC;QAEF,0BAA0B;QAC1B,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9E,IAAI,KAAK;gBAAE,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;QAChC,CAAC;QAED,OAAO;QACP,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YACxB,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;QAED,UAAU;QACV,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACtC,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,CAAC;QAED,uBAAuB;QACvB,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI;YAAE,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;QAElD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,GAAW,EACX,MAAkB,EAClB,MAAoB;QAEpB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;QAE5C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;gBAClB,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE;gBACxB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;aACxB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,YAAY;IACZ,+DAA+D;IAEvD,YAAY,CAAC,KAAc;QACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"jsonschema.adapter.js","sourceRoot":"","sources":["../../src/adapters/jsonschema.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
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
+ * Supports:
49
+ * - plain JS object (no parsing)
50
+ * - JSON string (starts with `{`)
51
+ * - YAML string (common OpenAPI format)
52
+ *
53
+ * @readme/openapi-parser treats strings as file paths (not content),
54
+ * so we parse strings ourselves here.
55
+ */
56
+ private resolveInput;
57
+ /**
58
+ * Ensure each schema in components.schemas has `title: <key>`.
59
+ * After dereference, inlined schemas need a title for JsonSchemaAdapter's
60
+ * relation detection (which matches property schema titles against entity names).
61
+ */
62
+ private injectSchemaTitles;
63
+ /** Parse JSON string if necessary — used for canParse detection only */
64
+ private tryParseAny;
65
+ }
66
+ //# 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":"AASA,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;IAkBnC,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;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY;IA6BpB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAU1B,wEAAwE;IACxE,OAAO,CAAC,WAAW;CAWpB"}
@@ -0,0 +1,241 @@
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 yaml from 'js-yaml';
9
+ import { AbstractAdapter } from '../core/abstract.adapter.js';
10
+ import { WarningCode } from '../core/types.js';
11
+ import { InvalidSchemaError } from '../core/errors.js';
12
+ import { JsonSchemaAdapter } from './jsonschema.adapter.js';
13
+ import { normalizeComponentsSchemas, isOpenApi30 } from '../utils/openapi-normalize.js';
14
+ /**
15
+ * OpenApiAdapter — converts OpenAPI specs to EntitySchema[].
16
+ *
17
+ * Supported (MVP v0.4.0) :
18
+ * - OpenAPI 3.0.x (auto-normalized to 3.1 shape before conversion)
19
+ * - OpenAPI 3.1.x (JSON Schema 2020-12 compliant)
20
+ * - Extracts all `components/schemas` as entities
21
+ * - All features of JsonSchemaAdapter (allOf, discriminator, $ref, x-mostajs-*, etc.)
22
+ * - 3.0→3.1 normalizations :
23
+ * - `nullable: true` → `type: [T, "null"]`
24
+ * - `example: X` → `examples: [X]`
25
+ * - `exclusiveMinimum: true` → `exclusiveMinimum: <number>`
26
+ * - Input : object, JSON string, YAML string, or file path (via @readme/openapi-parser)
27
+ *
28
+ * Not supported yet (v0.5+) :
29
+ * - paths → CRUD endpoint deduction (opt-in flag planned)
30
+ * - Inline schemas inside `paths` (only `components/schemas` become entities)
31
+ * - Webhooks (detected, parsed, but not mapped to entities)
32
+ * - `pathItems` components (parsed, not used for entities)
33
+ * - File upload body (kept as string with warning)
34
+ */
35
+ export class OpenApiAdapter extends AbstractAdapter {
36
+ name = 'openapi';
37
+ vendor = 'openapis.org';
38
+ version = '0.4.0';
39
+ /** Internal JsonSchemaAdapter used to convert normalized schemas */
40
+ jsonSchemaAdapter = new JsonSchemaAdapter();
41
+ canParse(input) {
42
+ const obj = this.tryParseAny(input);
43
+ if (!obj || typeof obj !== 'object')
44
+ return false;
45
+ const doc = obj;
46
+ // Strongest indicator : `openapi: "3.x.y"` field
47
+ if (typeof doc.openapi === 'string' && /^3\./.test(doc.openapi))
48
+ return true;
49
+ // Swagger 2.0 shape (not yet supported but let us detect and warn)
50
+ if (obj.swagger === '2.0')
51
+ return true;
52
+ // YAML heuristic on raw string input
53
+ if (typeof input === 'string' && /^\s*openapi\s*:\s*['"]?3\./m.test(input))
54
+ return true;
55
+ if (typeof input === 'string' && /^\s*swagger\s*:\s*['"]?2\.0/m.test(input))
56
+ return true;
57
+ return false;
58
+ }
59
+ async toEntitySchema(input, opts) {
60
+ // 1. Normalize input to object (parse JSON string if needed).
61
+ // @readme/openapi-parser treats strings as file paths — we want inline parsing.
62
+ const specInput = this.resolveInput(input);
63
+ // 2. Pre-annotate components.schemas with title = key, so dereference propagates names.
64
+ this.injectSchemaTitles(specInput);
65
+ // 3. Pre-extract x-mostajs-relation from $ref-bearing properties before dereference.
66
+ // json-schema-ref-parser strips siblings when resolving $ref.
67
+ const relationOverrides = this.extractRelationOverrides(specInput);
68
+ // 4. Parse + dereference via @readme/openapi-parser
69
+ let spec;
70
+ try {
71
+ // We validate first for diagnostics, but don't fail on warnings
72
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
+ const report = await validate(this.cloneForParser(specInput));
74
+ if (!report.valid) {
75
+ this.warn(opts, {
76
+ code: WarningCode.FALLBACK_APPLIED,
77
+ message: `OpenAPI spec has validation issues; proceeding anyway`,
78
+ });
79
+ }
80
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
81
+ spec = (await dereference(this.cloneForParser(specInput)));
82
+ }
83
+ catch (e) {
84
+ throw new InvalidSchemaError(`Failed to parse OpenAPI spec: ${e instanceof Error ? e.message : String(e)}`, { cause: e });
85
+ }
86
+ // 4b. Re-attach x-mostajs-relation overrides on each property
87
+ this.reattachRelationOverrides(spec, relationOverrides);
88
+ // 2. Warn if Swagger 2.0 (not fully supported)
89
+ if (spec.swagger === '2.0') {
90
+ this.warn(opts, {
91
+ code: WarningCode.PREVIEW_FEATURE,
92
+ message: `Swagger 2.0 input — conversion may be incomplete. Consider migrating to OpenAPI 3.1.`,
93
+ });
94
+ }
95
+ const version = spec.openapi;
96
+ if (isOpenApi30(version)) {
97
+ // Handled by normalize below — just informational
98
+ }
99
+ // 3. Extract components.schemas
100
+ const rawSchemas = spec.components?.schemas;
101
+ if (!rawSchemas || Object.keys(rawSchemas).length === 0) {
102
+ this.warn(opts, {
103
+ code: WarningCode.MISSING_METADATA,
104
+ message: `OpenAPI spec has no components.schemas — no entities extracted`,
105
+ });
106
+ return [];
107
+ }
108
+ // 4. Normalize 3.0 → 3.1 if needed
109
+ const normalized = normalizeComponentsSchemas(spec.components, version, w => this.warn(opts, w));
110
+ if (!normalized)
111
+ return [];
112
+ // 5. Ensure each schema has a title so inline detection works post-dereference
113
+ const titled = {};
114
+ for (const [name, schema] of Object.entries(normalized)) {
115
+ titled[name] = schema.title ? schema : { ...schema, title: name };
116
+ }
117
+ // 6. Delegate to JsonSchemaAdapter
118
+ return this.jsonSchemaAdapter.schemasToEntities(titled, opts);
119
+ }
120
+ /**
121
+ * Walk the ORIGINAL (pre-dereference) spec and record all x-mostajs-relation
122
+ * extensions on properties that also have a $ref. These siblings are stripped
123
+ * during dereference, so we capture them here and re-attach after.
124
+ */
125
+ extractRelationOverrides(doc) {
126
+ const map = new Map(); // schemaName -> propName -> xRel
127
+ const schemas = doc.components?.schemas;
128
+ if (!schemas)
129
+ return map;
130
+ for (const [schemaName, schema] of Object.entries(schemas)) {
131
+ if (!schema?.properties)
132
+ continue;
133
+ const propMap = new Map();
134
+ for (const [propName, prop] of Object.entries(schema.properties)) {
135
+ const p = prop;
136
+ if (p['x-mostajs-relation']) {
137
+ propMap.set(propName, p['x-mostajs-relation']);
138
+ }
139
+ }
140
+ if (propMap.size > 0)
141
+ map.set(schemaName, propMap);
142
+ }
143
+ return map;
144
+ }
145
+ /**
146
+ * After dereference, re-attach the x-mostajs-relation extensions we extracted.
147
+ * The property schema becomes `{ ...inlinedRef, 'x-mostajs-relation': saved }`.
148
+ */
149
+ reattachRelationOverrides(doc, overrides) {
150
+ const schemas = doc.components?.schemas;
151
+ if (!schemas)
152
+ return;
153
+ for (const [schemaName, propMap] of overrides) {
154
+ const schema = schemas[schemaName];
155
+ if (!schema?.properties)
156
+ continue;
157
+ for (const [propName, xRel] of propMap) {
158
+ const prop = schema.properties[propName];
159
+ if (prop && typeof prop === 'object') {
160
+ prop['x-mostajs-relation'] = xRel;
161
+ }
162
+ }
163
+ }
164
+ }
165
+ // ============================================================
166
+ // Utilities
167
+ // ============================================================
168
+ /** Clone input for the parser (must not mutate caller's input) */
169
+ cloneForParser(input) {
170
+ return typeof structuredClone === 'function'
171
+ ? structuredClone(input)
172
+ : JSON.parse(JSON.stringify(input));
173
+ }
174
+ /**
175
+ * Normalize input to object form.
176
+ * Supports:
177
+ * - plain JS object (no parsing)
178
+ * - JSON string (starts with `{`)
179
+ * - YAML string (common OpenAPI format)
180
+ *
181
+ * @readme/openapi-parser treats strings as file paths (not content),
182
+ * so we parse strings ourselves here.
183
+ */
184
+ resolveInput(input) {
185
+ if (typeof input !== 'string')
186
+ return input;
187
+ const trimmed = input.trim();
188
+ // JSON
189
+ if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
190
+ try {
191
+ return JSON.parse(trimmed);
192
+ }
193
+ catch (e) {
194
+ throw new InvalidSchemaError(`Invalid JSON input: ${e instanceof Error ? e.message : String(e)}`);
195
+ }
196
+ }
197
+ // YAML
198
+ try {
199
+ const parsed = yaml.load(trimmed, { schema: yaml.JSON_SCHEMA });
200
+ if (parsed && typeof parsed === 'object') {
201
+ return parsed;
202
+ }
203
+ throw new InvalidSchemaError('YAML parsed to non-object value');
204
+ }
205
+ catch (e) {
206
+ throw new InvalidSchemaError(`Invalid YAML/JSON input: ${e instanceof Error ? e.message : String(e)}`);
207
+ }
208
+ }
209
+ /**
210
+ * Ensure each schema in components.schemas has `title: <key>`.
211
+ * After dereference, inlined schemas need a title for JsonSchemaAdapter's
212
+ * relation detection (which matches property schema titles against entity names).
213
+ */
214
+ injectSchemaTitles(doc) {
215
+ const schemas = doc.components?.schemas;
216
+ if (!schemas)
217
+ return;
218
+ for (const [name, schema] of Object.entries(schemas)) {
219
+ if (schema && typeof schema === 'object' && !schema.title) {
220
+ schema.title = name;
221
+ }
222
+ }
223
+ }
224
+ /** Parse JSON string if necessary — used for canParse detection only */
225
+ tryParseAny(input) {
226
+ if (typeof input !== 'string')
227
+ return input;
228
+ const trimmed = input.trim();
229
+ if (trimmed.startsWith('{')) {
230
+ try {
231
+ return JSON.parse(trimmed);
232
+ }
233
+ catch { /* fall through */ }
234
+ }
235
+ if (/^\s*openapi\s*:\s*['"]?3\./m.test(trimmed)) {
236
+ return { openapi: '3.0.0' }; // placeholder to pass canParse
237
+ }
238
+ return null;
239
+ }
240
+ }
241
+ //# 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';
@@ -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;AAGrE,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;AAKrD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAOvD"}
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
- // TODO: register OpenApiAdapter when ready
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;AAErE,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;AAErE;;;;;;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,2CAA2C;IAC3C,OAAO,QAAQ,CAAC;AAClB,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.0",
3
+ "version": "0.5.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",
@@ -71,15 +71,17 @@
71
71
  "@mostajs/orm": "^1.9.0"
72
72
  },
73
73
  "dependencies": {
74
- "@mrleebo/prisma-ast": "^0.12.0",
75
74
  "@apidevtools/json-schema-ref-parser": "^11.0.0",
75
+ "@mrleebo/prisma-ast": "^0.12.0",
76
+ "@readme/openapi-parser": "^6.0.1",
76
77
  "ajv": "^8.12.0",
77
78
  "ajv-formats": "^3.0.1",
78
- "@readme/openapi-parser": "^6.0.1",
79
+ "js-yaml": "^4.1.1",
79
80
  "openapi-types": "^12.1.3"
80
81
  },
81
82
  "devDependencies": {
82
83
  "@mostajs/orm": "^1.9.0",
84
+ "@types/js-yaml": "^4.0.9",
83
85
  "@types/node": "^20.0.0",
84
86
  "tsx": "^4.0.0",
85
87
  "typescript": "^5.3.0"