@amartus/oas-utils 0.5.2 → 0.7.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.
Files changed (49) hide show
  1. package/README.md +50 -9
  2. package/dist/cli.js +19 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.d.ts +2 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +2 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/lib/allOfToOneOfInterface.d.ts +36 -0
  9. package/dist/lib/allOfToOneOfInterface.d.ts.map +1 -0
  10. package/dist/lib/allOfToOneOfInterface.js +5 -0
  11. package/dist/lib/allOfToOneOfInterface.js.map +1 -0
  12. package/dist/lib/allOfToOneOfJsonPath.d.ts +60 -0
  13. package/dist/lib/allOfToOneOfJsonPath.d.ts.map +1 -0
  14. package/dist/lib/allOfToOneOfJsonPath.js +539 -0
  15. package/dist/lib/allOfToOneOfJsonPath.js.map +1 -0
  16. package/dist/lib/cleanupDiscriminatorMappings.d.ts +14 -2
  17. package/dist/lib/cleanupDiscriminatorMappings.d.ts.map +1 -1
  18. package/dist/lib/cleanupDiscriminatorMappings.js +30 -5
  19. package/dist/lib/cleanupDiscriminatorMappings.js.map +1 -1
  20. package/dist/lib/cliActions.d.ts +15 -0
  21. package/dist/lib/cliActions.d.ts.map +1 -1
  22. package/dist/lib/cliActions.js +32 -2
  23. package/dist/lib/cliActions.js.map +1 -1
  24. package/dist/lib/optimizeAllOfComposition.d.ts.map +1 -1
  25. package/dist/lib/optimizeAllOfComposition.js +1 -9
  26. package/dist/lib/optimizeAllOfComposition.js.map +1 -1
  27. package/dist/lib/removeSingleComposition.d.ts +24 -0
  28. package/dist/lib/removeSingleComposition.d.ts.map +1 -0
  29. package/dist/lib/removeSingleComposition.js +121 -0
  30. package/dist/lib/removeSingleComposition.js.map +1 -0
  31. package/dist/redocly/allof-to-oneof-decorator.js +1 -1
  32. package/dist/redocly/allof-to-oneof-decorator.js.map +1 -1
  33. package/dist/redocly/cleanup-discriminator-decorator.d.ts +2 -1
  34. package/dist/redocly/cleanup-discriminator-decorator.d.ts.map +1 -1
  35. package/dist/redocly/cleanup-discriminator-decorator.js +5 -2
  36. package/dist/redocly/cleanup-discriminator-decorator.js.map +1 -1
  37. package/dist/redocly/plugin.d.ts +3 -0
  38. package/dist/redocly/plugin.d.ts.map +1 -1
  39. package/dist/redocly/plugin.js +3 -0
  40. package/dist/redocly/plugin.js.map +1 -1
  41. package/dist/redocly/remove-single-composition-decorator.d.ts +6 -0
  42. package/dist/redocly/remove-single-composition-decorator.d.ts.map +1 -0
  43. package/dist/redocly/remove-single-composition-decorator.js +14 -0
  44. package/dist/redocly/remove-single-composition-decorator.js.map +1 -0
  45. package/package.json +1 -1
  46. package/dist/lib/allOfToOneOf.d.ts +0 -23
  47. package/dist/lib/allOfToOneOf.d.ts.map +0 -1
  48. package/dist/lib/allOfToOneOf.js +0 -413
  49. package/dist/lib/allOfToOneOf.js.map +0 -1
@@ -7,30 +7,53 @@ import { updateDiscriminatorMappings } from "./schemaTransformUtils.js";
7
7
  * 1. Iterates through all schemas looking for discriminator definitions
8
8
  * 2. For each discriminator mapping entry, checks if the referenced schema exists
9
9
  * 3. Removes mapping entries that reference undefined schemas
10
- * 4. Returns count of cleaned mappings for reporting
10
+ * 4. Optionally removes entire discriminators from schemas matching specified patterns
11
+ * 5. Returns count of cleaned mappings for reporting
11
12
  *
12
13
  * @param doc - OpenAPI document to clean
14
+ * @param options - Configuration options for discriminator cleanup
13
15
  * @returns Object with cleanup statistics
14
16
  */
15
- export function cleanupDiscriminatorMappings(doc) {
17
+ export function cleanupDiscriminatorMappings(doc, options) {
16
18
  if (!doc || typeof doc !== "object") {
17
- return { schemasChecked: 0, mappingsRemoved: 0, details: [] };
19
+ return { schemasChecked: 0, mappingsRemoved: 0, discriminatorsRemoved: 0, details: [], removedDiscriminators: [] };
18
20
  }
19
21
  const schemas = doc.components?.schemas;
20
22
  if (!schemas || typeof schemas !== "object") {
21
- return { schemasChecked: 0, mappingsRemoved: 0, details: [] };
23
+ return { schemasChecked: 0, mappingsRemoved: 0, discriminatorsRemoved: 0, details: [], removedDiscriminators: [] };
22
24
  }
25
+ // Helper function to match schema name against glob-style patterns
26
+ const matchesPattern = (schemaName, patterns) => {
27
+ return patterns.some(pattern => {
28
+ const regexPattern = pattern
29
+ .replace(/[.+?^${}()|[\]\\]/g, '\\$&') // Escape special regex chars
30
+ .replace(/\*/g, '.*'); // Convert * to .*
31
+ const regex = new RegExp(`^${regexPattern}$`);
32
+ return regex.test(schemaName);
33
+ });
34
+ };
23
35
  // Collect all existing schema names for validation
24
36
  const existingSchemas = new Set(Object.keys(schemas));
25
37
  let totalMappingsRemoved = 0;
26
38
  let schemasChecked = 0;
39
+ let discriminatorsRemoved = 0;
27
40
  const details = [];
41
+ const removedDiscriminators = [];
28
42
  // Iterate through all schemas
29
43
  for (const [schemaName, schema] of Object.entries(schemas)) {
30
44
  if (!schema || typeof schema !== "object")
31
45
  continue;
32
- // Check if schema has discriminator with mapping
46
+ // Check if schema has discriminator
33
47
  if (schema.discriminator && typeof schema.discriminator === "object") {
48
+ // Check if discriminator should be removed based on patterns
49
+ if (options?.removeDiscriminatorPatterns &&
50
+ options.removeDiscriminatorPatterns.length > 0 &&
51
+ matchesPattern(schemaName, options.removeDiscriminatorPatterns)) {
52
+ delete schema.discriminator;
53
+ discriminatorsRemoved++;
54
+ removedDiscriminators.push(schemaName);
55
+ continue; // Skip to next schema since discriminator is removed
56
+ }
34
57
  const discriminator = schema.discriminator;
35
58
  if (discriminator.mapping && typeof discriminator.mapping === "object") {
36
59
  schemasChecked++;
@@ -58,7 +81,9 @@ export function cleanupDiscriminatorMappings(doc) {
58
81
  return {
59
82
  schemasChecked,
60
83
  mappingsRemoved: totalMappingsRemoved,
84
+ discriminatorsRemoved,
61
85
  details,
86
+ removedDiscriminators,
62
87
  };
63
88
  }
64
89
  //# sourceMappingURL=cleanupDiscriminatorMappings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanupDiscriminatorMappings.js","sourceRoot":"","sources":["../../src/lib/cleanupDiscriminatorMappings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,4BAA4B,CAAC,GAAQ;IAKnD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAChE,CAAC;IAED,MAAM,OAAO,GAAoC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC;IACzE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAChE,CAAC;IAED,mDAAmD;IACnD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE9D,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,OAAO,GAAiD,EAAE,CAAC;IAEjE,8BAA8B;IAC9B,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,SAAS;QAEpD,iDAAiD;QACjD,IAAI,MAAM,CAAC,aAAa,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;YACrE,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;YAE3C,IAAI,aAAa,CAAC,OAAO,IAAI,OAAO,aAAa,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACvE,cAAc,EAAE,CAAC;gBACjB,MAAM,eAAe,GAAa,EAAE,CAAC;gBAErC,6DAA6D;gBAC7D,MAAM,OAAO,GAAG,2BAA2B,CAAC,MAAM,EAAE,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE;oBAC/E,MAAM,oBAAoB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;oBAC5C,yDAAyD;oBACzD,MAAM,UAAU,GAAG,CAAC,oBAAoB,IAAI,eAAe,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;oBACtF,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5B,CAAC;oBACD,OAAO,UAAU,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,oBAAoB,IAAI,OAAO,CAAC;gBAEhC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE,eAAe;qBACzB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,cAAc;QACd,eAAe,EAAE,oBAAoB;QACrC,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cleanupDiscriminatorMappings.js","sourceRoot":"","sources":["../../src/lib/cleanupDiscriminatorMappings.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ export declare function runAllOfToOneOf(opts: {
31
31
  output?: string;
32
32
  addDiscriminatorConst?: boolean;
33
33
  ignoreSingleSpecialization?: boolean;
34
+ mergeNestedOneof?: boolean;
34
35
  }, format: (doc: any, target?: string) => string, reader: () => Promise<string>): Promise<void>;
35
36
  /**
36
37
  * Seals object schemas to prevent additional properties.
@@ -53,9 +54,23 @@ export declare function runSealSchema(opts: {
53
54
  */
54
55
  export declare function runCleanupDiscriminators(opts: {
55
56
  output?: string;
57
+ removePatterns?: string[];
56
58
  }, format: (doc: any, target?: string) => string, reader: () => Promise<string>): Promise<void>;
57
59
  export declare function runRemoveDangling(opts: {
58
60
  output?: string;
59
61
  aggressive?: boolean;
60
62
  }, format: (doc: any, target?: string) => string, reader: () => Promise<string>): Promise<void>;
63
+ /**
64
+ * Removes single-composition schemas (schemas whose only content is a single
65
+ * allOf/anyOf/oneOf with one $ref) and rewires all references to point directly
66
+ * to the target schema.
67
+ *
68
+ * @param opts - Options including output path
69
+ * @param format - Function to format output
70
+ * @param reader - Function to read input
71
+ */
72
+ export declare function runRemoveSingleComposition(opts: {
73
+ output?: string;
74
+ aggressive?: boolean;
75
+ }, format: (doc: any, target?: string) => string, reader: () => Promise<string>): Promise<void>;
61
76
  //# sourceMappingURL=cliActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cliActions.d.ts","sourceRoot":"","sources":["../../src/lib/cliActions.ts"],"names":[],"mappings":"AA0EA,wBAAsB,eAAe,CACnC,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,EACD,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,EAC7C,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,iBAiB9B;AAQD,wBAAsB,cAAc,CAClC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACvF,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,EAC7C,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,iBAsC9B;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACzB,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,EAC7C,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,iBAO9B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAAC,0BAA0B,CAAC,EAAE,OAAO,CAAA;CAAE,EAChG,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,EAC7C,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,iBAwB9B;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,EAC/E,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,EAC7C,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,iBAY9B;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACzB,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,EAC7C,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,iBAuB9B;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,EAC/C,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,EAC7C,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,iBAa9B"}
1
+ {"version":3,"file":"cliActions.d.ts","sourceRoot":"","sources":["../../src/lib/cliActions.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,11 @@ import YAML from "yaml";
4
4
  import { optimizeAllOfComposition } from "./optimizeAllOfComposition.js";
5
5
  import { removeUnusedSchemas } from "./removeUnusedSchemas.js";
6
6
  import { removeFromOneOfByName, removeFromOneOfGlobally, } from "./removeFromOneOfByName.js";
7
- import { allOfToOneOf } from "./allOfToOneOf.js";
7
+ import { allOfToOneOf } from "./allOfToOneOfJsonPath.js";
8
8
  import { sealSchema } from "./sealSchema.js";
9
9
  import { cleanupDiscriminatorMappings } from "./cleanupDiscriminatorMappings.js";
10
10
  import { removeDanglingRefs } from "./removeDanglingRefs.js";
11
+ import { removeSingleComposition } from "./removeSingleComposition.js";
11
12
  function parseYamlOrJson(data) {
12
13
  // Accept pre-parsed objects (useful in tests)
13
14
  if (data && typeof data === "object")
@@ -151,6 +152,8 @@ export async function runAllOfToOneOf(opts, format, reader) {
151
152
  const topts = {
152
153
  addDiscriminatorConst: opts.addDiscriminatorConst !== false,
153
154
  ignoreSingleSpecialization: Boolean(opts.ignoreSingleSpecialization),
155
+ mergeNestedOneOf: Boolean(opts.mergeNestedOneof),
156
+ onWarning: (msg) => console.warn(`[WARN] ${msg}`),
154
157
  };
155
158
  allOfToOneOf(doc, topts);
156
159
  const afterSchemas = Object.keys(doc.components.schemas);
@@ -190,7 +193,12 @@ export async function runCleanupDiscriminators(opts, format, reader) {
190
193
  const doc = parseYamlOrJson(await reader());
191
194
  if (!validateComponentSchemas(doc))
192
195
  return;
193
- const result = cleanupDiscriminatorMappings(doc);
196
+ const result = cleanupDiscriminatorMappings(doc, {
197
+ removeDiscriminatorPatterns: opts.removePatterns
198
+ });
199
+ if (result.discriminatorsRemoved > 0) {
200
+ console.error(`[CLEANUP-DISCRIMINATORS] Removed ${result.discriminatorsRemoved} discriminator(s) entirely from schemas: [${result.removedDiscriminators.join(", ")}]`);
201
+ }
194
202
  if (result.schemasChecked > 0) {
195
203
  console.error(`[CLEANUP-DISCRIMINATORS] Checked ${result.schemasChecked} schema(s) with discriminators.`);
196
204
  if (result.mappingsRemoved > 0) {
@@ -219,4 +227,26 @@ export async function runRemoveDangling(opts, format, reader) {
219
227
  }
220
228
  await writeOutput(doc, opts.output, format);
221
229
  }
230
+ /**
231
+ * Removes single-composition schemas (schemas whose only content is a single
232
+ * allOf/anyOf/oneOf with one $ref) and rewires all references to point directly
233
+ * to the target schema.
234
+ *
235
+ * @param opts - Options including output path
236
+ * @param format - Function to format output
237
+ * @param reader - Function to read input
238
+ */
239
+ export async function runRemoveSingleComposition(opts, format, reader) {
240
+ const doc = parseYamlOrJson(await reader());
241
+ if (!validateComponentSchemas(doc))
242
+ return;
243
+ const result = removeSingleComposition(doc, { aggressive: Boolean(opts.aggressive) });
244
+ if (result.schemasRemoved > 0) {
245
+ console.error(`[REMOVE-SINGLE-COMPOSITION] Removed ${result.schemasRemoved} single-composition schema(s): ${result.removed.join(", ")}`);
246
+ }
247
+ else {
248
+ console.error("[INFO] No single-composition schemas found.");
249
+ }
250
+ await writeOutput(doc, opts.output, format);
251
+ }
222
252
  //# sourceMappingURL=cliActions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cliActions.js","sourceRoot":"","sources":["../../src/lib/cliActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAiB,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,YAAY,EAAuB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAqB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,SAAS,eAAe,CAAC,IAAS;IAChC,8CAA8C;IAC9C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAC9E,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,GAAQ,EACR,MAA0B,EAC1B,MAA6C;IAE7C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAgB,EAAE,KAAe;IACzD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAAC,GAAQ;IACxC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACvF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,KAAU;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAKC,EACD,MAA6C,EAC7C,MAA6B;IAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAElD,MAAM,KAAK,GAAkB;QAC3B,IAAI;QACJ,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QACpC,aAAa;KACd,CAAC;IAEF,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IAClE,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IACjE,gBAAgB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC9C,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,GAAQ;IACjC,MAAM,IAAI,GAAG,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,OAAO,CAAC,IAAI,EAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAuF,EACvF,MAA6C,EAC7C,MAA6B;IAE7B,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;IAE5C,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC;QAAE,OAAO;IAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAE5F,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9D,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,2BAA2B,IAAI,oBAAoB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;gBAClF,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,6BAA6B,IAAI,4BAA4B,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,4CAA4C,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACjD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,6BAA6B,IAAI,2BAA2B,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,UAAU,KAAK,qBAAqB,CAAC,CAAC;gBAC1F,KAAK,IAAI,KAAK,CAAC;YACjB,CAAC;QACH,CAAC;QACD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAyB,EACzB,MAA6C,EAC7C,MAA6B;IAE7B,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;IAE5C,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAE9B,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAgG,EAChG,MAA6C,EAC7C,MAA6B;IAE7B,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;IAE5C,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC;QAAE,OAAO;IAE3C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAwB;QACjC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,KAAK,KAAK;QAC3D,0BAA0B,EAAE,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC;KACrE,CAAC;IAEF,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAEzB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,+CAA+C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAA+E,EAC/E,MAA6C,EAC7C,MAA6B;IAE7B,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAsB;QAC/B,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,KAAK,KAAK;QACjE,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC;IAEF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAEtC,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAyB,EACzB,MAA6C,EAC7C,MAA6B;IAE7B,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;IAE5C,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC;QAAE,OAAO;IAE3C,MAAM,MAAM,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;IAEjD,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,oCAAoC,MAAM,CAAC,cAAc,iCAAiC,CAAC,CAAC;QAC1G,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,oCAAoC,MAAM,CAAC,eAAe,cAAc,CAAC,CAAC;YACxF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,wBAAwB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAA+C,EAC/C,MAA6C,EAC7C,MAA6B;IAE7B,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAEjF,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,6BAA6B,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACjF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"cliActions.js","sourceRoot":"","sources":["../../src/lib/cliActions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"optimizeAllOfComposition.d.ts","sourceRoot":"","sources":["../../src/lib/optimizeAllOfComposition.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAqGtD"}
1
+ {"version":3,"file":"optimizeAllOfComposition.d.ts","sourceRoot":"","sources":["../../src/lib/optimizeAllOfComposition.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAqGtD"}
@@ -1,13 +1,5 @@
1
1
  import { refToName } from "./oasUtils.js";
2
- // Dynamically require JSONPath for optional, per-schema value queries
3
- let JSONPath = undefined;
4
- try {
5
- // eslint-disable-next-line @typescript-eslint/no-var-requires
6
- JSONPath = require("jsonpath-plus").JSONPath;
7
- }
8
- catch (e) {
9
- JSONPath = undefined;
10
- }
2
+ import { JSONPath } from "jsonpath-plus";
11
3
  /**
12
4
  * Optimize allOf composition globally across an OpenAPI document.
13
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"optimizeAllOfComposition.js","sourceRoot":"","sources":["../../src/lib/optimizeAllOfComposition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"optimizeAllOfComposition.js","sourceRoot":"","sources":["../../src/lib/optimizeAllOfComposition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export interface RemoveSingleCompositionOptions {
2
+ /**
3
+ * When true, also removes single-composition schemas that have additional
4
+ * keywords (e.g. `description`, `discriminator`) alongside the composition keyword,
5
+ * unless one of the extra keywords is `properties`.
6
+ *
7
+ * @default false
8
+ */
9
+ aggressive?: boolean;
10
+ }
11
+ /**
12
+ * Remove single-composition schemas from an OpenAPI document.
13
+ *
14
+ * A single-composition schema is one whose only content is a single composition keyword
15
+ * (allOf, anyOf, or oneOf) with exactly one $ref entry. Such schemas add indirection
16
+ * without semantic value and can be replaced by their target reference.
17
+ *
18
+ * Mutates the document in place and returns removal statistics.
19
+ */
20
+ export declare function removeSingleComposition(doc: any, options?: RemoveSingleCompositionOptions): {
21
+ schemasRemoved: number;
22
+ removed: string[];
23
+ };
24
+ //# sourceMappingURL=removeSingleComposition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeSingleComposition.d.ts","sourceRoot":"","sources":["../../src/lib/removeSingleComposition.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,8BAA8B;IAC7C;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAuDD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,8BAA8B,GAAG;IAC3F,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAyDA"}
@@ -0,0 +1,121 @@
1
+ import { refToName } from './oasUtils.js';
2
+ import { traverseAndTransform } from './schemaTransformUtils.js';
3
+ const COMPOSITION_KEYWORDS = ['allOf', 'anyOf', 'oneOf'];
4
+ /** Keywords that prevent removal even in aggressive mode */
5
+ const PRESERVE_KEYWORDS = ['properties'];
6
+ /**
7
+ * Checks if a schema is a single-composition wrapper: a schema whose only content
8
+ * is one composition keyword (allOf/anyOf/oneOf) containing exactly one $ref entry.
9
+ *
10
+ * In aggressive mode, schemas with extra keywords (like `description` or `discriminator`)
11
+ * are also considered removable, unless one of the extra keywords is `properties`.
12
+ *
13
+ * @returns The target $ref string, or undefined if not a single-composition schema
14
+ */
15
+ function getSingleCompositionTarget(schema, aggressive = false) {
16
+ if (!schema || typeof schema !== 'object' || Array.isArray(schema))
17
+ return undefined;
18
+ const keys = Object.keys(schema);
19
+ if (keys.length === 0)
20
+ return undefined;
21
+ const keyword = keys.find(k => COMPOSITION_KEYWORDS.includes(k));
22
+ if (!keyword)
23
+ return undefined;
24
+ const otherKeys = keys.filter(k => k !== keyword);
25
+ if (otherKeys.length > 0) {
26
+ if (!aggressive)
27
+ return undefined;
28
+ if (otherKeys.some(k => PRESERVE_KEYWORDS.includes(k)))
29
+ return undefined;
30
+ }
31
+ const arr = schema[keyword];
32
+ if (!Array.isArray(arr) || arr.length !== 1)
33
+ return undefined;
34
+ const item = arr[0];
35
+ if (item && typeof item === 'object' && typeof item.$ref === 'string') {
36
+ return item.$ref;
37
+ }
38
+ return undefined;
39
+ }
40
+ /**
41
+ * Resolves transitive chains in the replacement map.
42
+ * If Foo→Bar and Bar→Baz, resolves Foo→Baz.
43
+ */
44
+ function resolveTransitiveChains(replacements) {
45
+ for (const [from, to] of replacements) {
46
+ let resolved = to;
47
+ const visited = new Set([from]);
48
+ while (replacements.has(resolved) && !visited.has(resolved)) {
49
+ visited.add(resolved);
50
+ resolved = replacements.get(resolved);
51
+ }
52
+ if (resolved !== to) {
53
+ replacements.set(from, resolved);
54
+ }
55
+ }
56
+ }
57
+ /**
58
+ * Remove single-composition schemas from an OpenAPI document.
59
+ *
60
+ * A single-composition schema is one whose only content is a single composition keyword
61
+ * (allOf, anyOf, or oneOf) with exactly one $ref entry. Such schemas add indirection
62
+ * without semantic value and can be replaced by their target reference.
63
+ *
64
+ * Mutates the document in place and returns removal statistics.
65
+ */
66
+ export function removeSingleComposition(doc, options) {
67
+ if (!doc || typeof doc !== 'object')
68
+ return { schemasRemoved: 0, removed: [] };
69
+ const aggressive = Boolean(options?.aggressive);
70
+ const schemas = doc.components?.schemas;
71
+ if (!schemas || typeof schemas !== 'object')
72
+ return { schemasRemoved: 0, removed: [] };
73
+ // Step 1: Identify single-composition schemas and build replacement map
74
+ const replacements = new Map(); // full ref → full ref
75
+ for (const [name, schema] of Object.entries(schemas)) {
76
+ const targetRef = getSingleCompositionTarget(schema, aggressive);
77
+ if (targetRef) {
78
+ const fromRef = `#/components/schemas/${name}`;
79
+ replacements.set(fromRef, targetRef);
80
+ }
81
+ }
82
+ if (replacements.size === 0)
83
+ return { schemasRemoved: 0, removed: [] };
84
+ // Step 2: Resolve transitive chains
85
+ resolveTransitiveChains(replacements);
86
+ // Step 3: Replace all $ref occurrences throughout the document
87
+ traverseAndTransform(doc, (node) => {
88
+ if (node && typeof node === 'object' && typeof node.$ref === 'string') {
89
+ const replacement = replacements.get(node.$ref);
90
+ if (replacement) {
91
+ node.$ref = replacement;
92
+ return true;
93
+ }
94
+ }
95
+ return false;
96
+ });
97
+ // Step 4: Update discriminator mappings
98
+ for (const schema of Object.values(schemas)) {
99
+ if (!schema || typeof schema !== 'object')
100
+ continue;
101
+ const mapping = schema.discriminator?.mapping;
102
+ if (!mapping || typeof mapping !== 'object')
103
+ continue;
104
+ for (const [key, ref] of Object.entries(mapping)) {
105
+ if (typeof ref === 'string' && replacements.has(ref)) {
106
+ mapping[key] = replacements.get(ref);
107
+ }
108
+ }
109
+ }
110
+ // Step 5: Delete the removed schemas
111
+ const removed = [];
112
+ for (const fromRef of replacements.keys()) {
113
+ const name = refToName(fromRef);
114
+ if (name && schemas[name]) {
115
+ delete schemas[name];
116
+ removed.push(name);
117
+ }
118
+ }
119
+ return { schemasRemoved: removed.length, removed };
120
+ }
121
+ //# sourceMappingURL=removeSingleComposition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeSingleComposition.js","sourceRoot":"","sources":["../../src/lib/removeSingleComposition.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { allOfToOneOf } from "../lib/allOfToOneOf.js";
1
+ import { allOfToOneOf } from "../lib/allOfToOneOfJsonPath.js";
2
2
  export default function AllOfToOneOfDecorator(opts) {
3
3
  return {
4
4
  Root: {
@@ -1 +1 @@
1
- {"version":3,"file":"allof-to-oneof-decorator.js","sourceRoot":"","sources":["../../src/redocly/allof-to-oneof-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,IAAS;IACrD,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,CAAC,MAAW;gBACf,YAAY,CAAC,MAAM,EAAE;oBACnB,qBAAqB,EAAE,IAAI,EAAE,qBAAqB,KAAK,KAAK;oBAC5D,0BAA0B,EAAE,IAAI,EAAE,0BAA0B,IAAI,KAAK;iBACtE,CAAC,CAAC;YACL,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"allof-to-oneof-decorator.js","sourceRoot":"","sources":["../../src/redocly/allof-to-oneof-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,IAAS;IACrD,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,CAAC,MAAW;gBACf,YAAY,CAAC,MAAM,EAAE;oBACnB,qBAAqB,EAAE,IAAI,EAAE,qBAAqB,KAAK,KAAK;oBAC5D,0BAA0B,EAAE,IAAI,EAAE,0BAA0B,IAAI,KAAK;iBACtE,CAAC,CAAC;YACL,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,5 @@
1
- export default function CleanupDiscriminatorsDecorator(opts: any): {
1
+ import { CleanupDiscriminatorOptions } from "../lib/cleanupDiscriminatorMappings.js";
2
+ export default function CleanupDiscriminatorsDecorator(opts?: CleanupDiscriminatorOptions): {
2
3
  Root: {
3
4
  leave(target: any): void;
4
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup-discriminator-decorator.d.ts","sourceRoot":"","sources":["../../src/redocly/cleanup-discriminator-decorator.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,8BAA8B,CAAC,IAAI,EAAE,GAAG;;sBAG5C,GAAG;;EAWtB"}
1
+ {"version":3,"file":"cleanup-discriminator-decorator.d.ts","sourceRoot":"","sources":["../../src/redocly/cleanup-discriminator-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAEnH,MAAM,CAAC,OAAO,UAAU,8BAA8B,CAAC,IAAI,GAAE,2BAAgC;;sBAGzE,GAAG;;EActB"}
@@ -1,9 +1,12 @@
1
1
  import { cleanupDiscriminatorMappings } from "../lib/cleanupDiscriminatorMappings.js";
2
- export default function CleanupDiscriminatorsDecorator(opts) {
2
+ export default function CleanupDiscriminatorsDecorator(opts = {}) {
3
3
  return {
4
4
  Root: {
5
5
  leave(target) {
6
- const result = cleanupDiscriminatorMappings(target);
6
+ const result = cleanupDiscriminatorMappings(target, opts);
7
+ if (result.discriminatorsRemoved > 0) {
8
+ console.log(`[CLEANUP-DISCRIMINATORS] Removed ${result.discriminatorsRemoved} discriminator(s) entirely from schemas: [${result.removedDiscriminators.join(", ")}]`);
9
+ }
7
10
  if (result.mappingsRemoved > 0) {
8
11
  console.log(`[CLEANUP-DISCRIMINATORS] Removed ${result.mappingsRemoved} mapping(s).`);
9
12
  for (const detail of result.details) {
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup-discriminator-decorator.js","sourceRoot":"","sources":["../../src/redocly/cleanup-discriminator-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAEtF,MAAM,CAAC,OAAO,UAAU,8BAA8B,CAAC,IAAS;IAC9D,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,CAAC,MAAW;gBACf,MAAM,MAAM,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;gBACpD,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;oBAC/B,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,CAAC,eAAe,cAAc,CAAC,CAAC;oBACtF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACpC,OAAO,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,MAAM,wBAAwB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACvH,CAAC;gBACH,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cleanup-discriminator-decorator.js","sourceRoot":"","sources":["../../src/redocly/cleanup-discriminator-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAA+B,MAAM,wCAAwC,CAAC;AAEnH,MAAM,CAAC,OAAO,UAAU,8BAA8B,CAAC,OAAoC,EAAE;IAC3F,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,CAAC,MAAW;gBACf,MAAM,MAAM,GAAG,4BAA4B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC1D,IAAI,MAAM,CAAC,qBAAqB,GAAG,CAAC,EAAE,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,CAAC,qBAAqB,6CAA6C,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvK,CAAC;gBACD,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;oBAC/B,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,CAAC,eAAe,cAAc,CAAC,CAAC;oBACtF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACpC,OAAO,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,MAAM,wBAAwB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACvH,CAAC;gBACH,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -5,6 +5,7 @@ import AllOfToOneOfDecorator from "./allof-to-oneof-decorator.js";
5
5
  import SealSchemaDecorator from "./seal-schema-decorator.js";
6
6
  import CleanupDiscriminatorsDecorator from "./cleanup-discriminator-decorator.js";
7
7
  import RemoveDanglingDecorator from "./remove-dangling-decorator.js";
8
+ import RemoveSingleCompositionDecorator from "./remove-single-composition-decorator.js";
8
9
  export default function oasRemoveUnusedPlugin(): {
9
10
  id: string;
10
11
  decorators: {
@@ -16,6 +17,7 @@ export default function oasRemoveUnusedPlugin(): {
16
17
  "seal-schema": typeof SealSchemaDecorator;
17
18
  "cleanup-discriminators": typeof CleanupDiscriminatorsDecorator;
18
19
  "remove-dangling-refs": typeof RemoveDanglingDecorator;
20
+ "remove-single-composition": typeof RemoveSingleCompositionDecorator;
19
21
  "remove-unused-schemas": typeof RemoveUnusedDecorator;
20
22
  "remove-from-oneof": typeof RemoveFromOneOfDecorator;
21
23
  };
@@ -27,6 +29,7 @@ export default function oasRemoveUnusedPlugin(): {
27
29
  "seal-schema": typeof SealSchemaDecorator;
28
30
  "cleanup-discriminators": typeof CleanupDiscriminatorsDecorator;
29
31
  "remove-dangling-refs": typeof RemoveDanglingDecorator;
32
+ "remove-single-composition": typeof RemoveSingleCompositionDecorator;
30
33
  "remove-unused-schemas": typeof RemoveUnusedDecorator;
31
34
  "remove-from-oneof": typeof RemoveFromOneOfDecorator;
32
35
  };
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/redocly/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,8BAA8B,CAAC;AACjE,OAAO,wBAAwB,MAAM,kCAAkC,CAAC;AACxE,OAAO,sBAAsB,MAAM,+BAA+B,CAAC;AACnE,OAAO,qBAAqB,MAAM,+BAA+B,CAAC;AAClE,OAAO,mBAAmB,MAAM,4BAA4B,CAAC;AAC7D,OAAO,8BAA8B,MAAM,sCAAsC,CAAC;AAClF,OAAO,uBAAuB,MAAM,gCAAgC,CAAC;AAErE,MAAM,CAAC,OAAO,UAAU,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;EAgC5C"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/redocly/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,8BAA8B,CAAC;AACjE,OAAO,wBAAwB,MAAM,kCAAkC,CAAC;AACxE,OAAO,sBAAsB,MAAM,+BAA+B,CAAC;AACnE,OAAO,qBAAqB,MAAM,+BAA+B,CAAC;AAClE,OAAO,mBAAmB,MAAM,4BAA4B,CAAC;AAC7D,OAAO,8BAA8B,MAAM,sCAAsC,CAAC;AAClF,OAAO,uBAAuB,MAAM,gCAAgC,CAAC;AACrE,OAAO,gCAAgC,MAAM,0CAA0C,CAAC;AAExF,MAAM,CAAC,OAAO,UAAU,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC5C"}
@@ -5,6 +5,7 @@ import AllOfToOneOfDecorator from "./allof-to-oneof-decorator.js";
5
5
  import SealSchemaDecorator from "./seal-schema-decorator.js";
6
6
  import CleanupDiscriminatorsDecorator from "./cleanup-discriminator-decorator.js";
7
7
  import RemoveDanglingDecorator from "./remove-dangling-decorator.js";
8
+ import RemoveSingleCompositionDecorator from "./remove-single-composition-decorator.js";
8
9
  export default function oasRemoveUnusedPlugin() {
9
10
  return {
10
11
  id: "oas-utils",
@@ -18,6 +19,7 @@ export default function oasRemoveUnusedPlugin() {
18
19
  "seal-schema": SealSchemaDecorator,
19
20
  "cleanup-discriminators": CleanupDiscriminatorsDecorator,
20
21
  "remove-dangling-refs": RemoveDanglingDecorator,
22
+ "remove-single-composition": RemoveSingleCompositionDecorator,
21
23
  // Back-compat aliases
22
24
  "remove-unused-schemas": RemoveUnusedDecorator,
23
25
  "remove-from-oneof": RemoveFromOneOfDecorator,
@@ -31,6 +33,7 @@ export default function oasRemoveUnusedPlugin() {
31
33
  "seal-schema": SealSchemaDecorator,
32
34
  "cleanup-discriminators": CleanupDiscriminatorsDecorator,
33
35
  "remove-dangling-refs": RemoveDanglingDecorator,
36
+ "remove-single-composition": RemoveSingleCompositionDecorator,
34
37
  // Back-compat aliases
35
38
  "remove-unused-schemas": RemoveUnusedDecorator,
36
39
  "remove-from-oneof": RemoveFromOneOfDecorator,
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/redocly/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,8BAA8B,CAAC;AACjE,OAAO,wBAAwB,MAAM,kCAAkC,CAAC;AACxE,OAAO,sBAAsB,MAAM,+BAA+B,CAAC;AACnE,OAAO,qBAAqB,MAAM,+BAA+B,CAAC;AAClE,OAAO,mBAAmB,MAAM,4BAA4B,CAAC;AAC7D,OAAO,8BAA8B,MAAM,sCAAsC,CAAC;AAClF,OAAO,uBAAuB,MAAM,gCAAgC,CAAC;AAErE,MAAM,CAAC,OAAO,UAAU,qBAAqB;IAC3C,OAAO;QACP,EAAE,EAAE,WAAW;QACb,UAAU,EAAE;YACV,IAAI,EAAE;gBACR,iDAAiD;gBACjD,eAAe,EAAE,qBAAqB;gBACtC,cAAc,EAAE,wBAAwB;gBACxC,gBAAgB,EAAE,sBAAsB;gBACxC,gBAAgB,EAAE,qBAAqB;gBACvC,aAAa,EAAE,mBAAmB;gBAClC,wBAAwB,EAAE,8BAA8B;gBACxD,sBAAsB,EAAE,uBAAuB;gBAC/C,sBAAsB;gBACtB,uBAAuB,EAAE,qBAAqB;gBAC9C,mBAAmB,EAAE,wBAAwB;aAC1C;YACD,IAAI,EAAE;gBACR,kBAAkB;gBAClB,eAAe,EAAE,qBAAqB;gBACtC,cAAc,EAAE,wBAAwB;gBACxC,gBAAgB,EAAE,sBAAsB;gBACxC,gBAAgB,EAAE,qBAAqB;gBACvC,aAAa,EAAE,mBAAmB;gBAClC,wBAAwB,EAAE,8BAA8B;gBACxD,sBAAsB,EAAE,uBAAuB;gBAC/C,sBAAsB;gBACtB,uBAAuB,EAAE,qBAAqB;gBAC9C,mBAAmB,EAAE,wBAAwB;aAC1C;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/redocly/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,8BAA8B,CAAC;AACjE,OAAO,wBAAwB,MAAM,kCAAkC,CAAC;AACxE,OAAO,sBAAsB,MAAM,+BAA+B,CAAC;AACnE,OAAO,qBAAqB,MAAM,+BAA+B,CAAC;AAClE,OAAO,mBAAmB,MAAM,4BAA4B,CAAC;AAC7D,OAAO,8BAA8B,MAAM,sCAAsC,CAAC;AAClF,OAAO,uBAAuB,MAAM,gCAAgC,CAAC;AACrE,OAAO,gCAAgC,MAAM,0CAA0C,CAAC;AAExF,MAAM,CAAC,OAAO,UAAU,qBAAqB;IAC3C,OAAO;QACP,EAAE,EAAE,WAAW;QACb,UAAU,EAAE;YACV,IAAI,EAAE;gBACR,iDAAiD;gBACjD,eAAe,EAAE,qBAAqB;gBACtC,cAAc,EAAE,wBAAwB;gBACxC,gBAAgB,EAAE,sBAAsB;gBACxC,gBAAgB,EAAE,qBAAqB;gBACvC,aAAa,EAAE,mBAAmB;gBAClC,wBAAwB,EAAE,8BAA8B;gBACxD,sBAAsB,EAAE,uBAAuB;gBAC/C,2BAA2B,EAAE,gCAAgC;gBAC7D,sBAAsB;gBACtB,uBAAuB,EAAE,qBAAqB;gBAC9C,mBAAmB,EAAE,wBAAwB;aAC1C;YACD,IAAI,EAAE;gBACR,kBAAkB;gBAClB,eAAe,EAAE,qBAAqB;gBACtC,cAAc,EAAE,wBAAwB;gBACxC,gBAAgB,EAAE,sBAAsB;gBACxC,gBAAgB,EAAE,qBAAqB;gBACvC,aAAa,EAAE,mBAAmB;gBAClC,wBAAwB,EAAE,8BAA8B;gBACxD,sBAAsB,EAAE,uBAAuB;gBAC/C,2BAA2B,EAAE,gCAAgC;gBAC7D,sBAAsB;gBACtB,uBAAuB,EAAE,qBAAqB;gBAC9C,mBAAmB,EAAE,wBAAwB;aAC1C;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export default function RemoveSingleCompositionDecorator(opts: any): {
2
+ Root: {
3
+ leave(target: any): void;
4
+ };
5
+ };
6
+ //# sourceMappingURL=remove-single-composition-decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-single-composition-decorator.d.ts","sourceRoot":"","sources":["../../src/redocly/remove-single-composition-decorator.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,gCAAgC,CAAC,IAAI,EAAE,GAAG;;sBAG9C,GAAG;;EAQtB"}
@@ -0,0 +1,14 @@
1
+ import { removeSingleComposition } from '../lib/removeSingleComposition.js';
2
+ export default function RemoveSingleCompositionDecorator(opts) {
3
+ return {
4
+ Root: {
5
+ leave(target) {
6
+ const result = removeSingleComposition(target, { aggressive: Boolean(opts?.aggressive) });
7
+ if (result.schemasRemoved > 0) {
8
+ console.log(`[REMOVE-SINGLE-COMPOSITION] Removed ${result.schemasRemoved} single-composition schema(s): ${result.removed.join(", ")}`);
9
+ }
10
+ },
11
+ },
12
+ };
13
+ }
14
+ //# sourceMappingURL=remove-single-composition-decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-single-composition-decorator.js","sourceRoot":"","sources":["../../src/redocly/remove-single-composition-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,MAAM,CAAC,OAAO,UAAU,gCAAgC,CAAC,IAAS;IAChE,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,CAAC,MAAW;gBACf,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC1F,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,uCAAuC,MAAM,CAAC,cAAc,kCAAkC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzI,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amartus/oas-utils",
3
- "version": "0.5.2",
3
+ "version": "0.7.0",
4
4
  "description": "Utilities for working with OpenAPI (OAS) documents.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,23 +0,0 @@
1
- export interface AllOfToOneOfOptions {
2
- /** If true, add const property with discriminator value to specialization schemas (default: true) */
3
- addDiscriminatorConst?: boolean;
4
- /** If true, skip oneOf transformation if only one specialization is found (default: false) */
5
- ignoreSingleSpecialization?: boolean;
6
- /** If true, merge nested oneOf schemas by inlining references to schemas that only contain oneOf (default: false) */
7
- mergeNestedOneOf?: boolean;
8
- }
9
- /**
10
- * Convert allOf + discriminator patterns to oneOf + discriminator.
11
- *
12
- * This operation:
13
- * 1. Finds base schemas with discriminators
14
- * 2. Identifies concrete schemas that extend the base via allOf
15
- * 3. For each concrete schema, adds a const property matching the discriminator value
16
- * 4. Creates a new oneOf wrapper schema containing all concrete schemas
17
- * 5. Replaces all references to the base schema with the wrapper schema (where polymorphism is used)
18
- *
19
- * @param doc - OpenAPI document to transform
20
- * @param opts - Optional configuration
21
- */
22
- export declare function allOfToOneOf(doc: any, opts?: AllOfToOneOfOptions): any;
23
- //# sourceMappingURL=allOfToOneOf.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"allOfToOneOf.d.ts","sourceRoot":"","sources":["../../src/lib/allOfToOneOf.ts"],"names":[],"mappings":"AAqDA,MAAM,WAAW,mBAAmB;IAClC,qGAAqG;IACrG,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,8FAA8F;IAC9F,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,qHAAqH;IACrH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,mBAAwB,GAAG,GAAG,CA2J1E"}