@amartus/oas-utils 0.3.8 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -2
- package/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/cliActions.d.ts +4 -0
- package/dist/lib/cliActions.d.ts.map +1 -1
- package/dist/lib/cliActions.js +12 -1
- package/dist/lib/cliActions.js.map +1 -1
- package/dist/lib/removeDanglingRefs.d.ts +13 -0
- package/dist/lib/removeDanglingRefs.d.ts.map +1 -0
- package/dist/lib/removeDanglingRefs.js +60 -0
- package/dist/lib/removeDanglingRefs.js.map +1 -0
- package/dist/lib/removeUnusedSchemas.d.ts.map +1 -1
- package/dist/lib/removeUnusedSchemas.js +40 -30
- package/dist/lib/removeUnusedSchemas.js.map +1 -1
- package/dist/lib/sealSchema.d.ts.map +1 -1
- package/dist/lib/sealSchema.js +2 -1
- package/dist/lib/sealSchema.js.map +1 -1
- package/dist/lib/utils.d.ts +11 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +35 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/redocly/plugin.d.ts +3 -0
- package/dist/redocly/plugin.d.ts.map +1 -1
- package/dist/redocly/plugin.js +3 -0
- package/dist/redocly/plugin.js.map +1 -1
- package/dist/redocly/remove-dangling-decorator.d.ts +6 -0
- package/dist/redocly/remove-dangling-decorator.d.ts.map +1 -0
- package/dist/redocly/remove-dangling-decorator.js +14 -0
- package/dist/redocly/remove-dangling-decorator.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# oas-utils
|
|
2
2
|
|
|
3
|
-
Utilities for working with OpenAPI (OAS) documents. Includes tools to remove unused schemas, remove entries from oneOf, optimize allOf composition, convert allOf + discriminator patterns to oneOf + discriminator,
|
|
3
|
+
Utilities for working with OpenAPI (OAS) documents. Includes tools to remove unused schemas, remove entries from oneOf, optimize allOf composition, convert allOf + discriminator patterns to oneOf + discriminator, clean up discriminator mappings, and remove dangling `$ref` targets. Use them as a CLI or as Redocly decorators.
|
|
4
4
|
|
|
5
5
|
## Definition of "unused schema"
|
|
6
6
|
|
|
@@ -202,6 +202,9 @@ decorators:
|
|
|
202
202
|
# Clean up discriminator mappings
|
|
203
203
|
oas-utils/cleanup-discriminators: {}
|
|
204
204
|
|
|
205
|
+
# Remove dangling $ref entries that point to missing component schemas
|
|
206
|
+
oas-utils/remove-dangling-refs: {}
|
|
207
|
+
|
|
205
208
|
# Seal object schemas
|
|
206
209
|
oas-utils/seal-schema:
|
|
207
210
|
useUnevaluatedProperties: true
|
|
@@ -210,13 +213,21 @@ decorators:
|
|
|
210
213
|
|
|
211
214
|
3) Run bundling with Redocly CLI and the decorators will apply the transformations. With `aggressive: true`, unused non-schema components (responses, headers, requestBodies, etc.) are removed as well.
|
|
212
215
|
|
|
216
|
+
The `remove-dangling-refs` decorator mirrors `removeDanglingRefs`, dropping `$ref`s whose targets are missing so bundling ends up free of dangling references.
|
|
217
|
+
|
|
213
218
|
Notes:
|
|
214
219
|
- Preferred plugin id is `oas-utils`. Old aliases `oas-remove-unused/remove-unused-schemas` and `oas-remove-unused/remove-from-oneof` still work.
|
|
215
220
|
|
|
216
221
|
## Programmatic usage
|
|
217
222
|
|
|
218
223
|
```
|
|
219
|
-
import {
|
|
224
|
+
import {
|
|
225
|
+
cleanupDiscriminatorMappings,
|
|
226
|
+
removeDanglingRefs,
|
|
227
|
+
removeUnusedSchemas,
|
|
228
|
+
allOfToOneOf,
|
|
229
|
+
sealSchema,
|
|
230
|
+
} from 'oas-utils';
|
|
220
231
|
|
|
221
232
|
// Remove unused schemas
|
|
222
233
|
removeUnusedSchemas(doc, { keep: ['CommonError'], aggressive: true });
|
|
@@ -230,6 +241,10 @@ console.log(`Removed ${result.mappingsRemoved} invalid mappings from ${result.sc
|
|
|
230
241
|
|
|
231
242
|
// Seal object schemas
|
|
232
243
|
sealSchema(doc, { useUnevaluatedProperties: true, uplift: true });
|
|
244
|
+
|
|
245
|
+
// Remove dangling refs (aggressive mode prunes external URIs too)
|
|
246
|
+
const dangling = removeDanglingRefs(doc, { aggressive: true });
|
|
247
|
+
console.log(`Removed ${dangling.removed} dangling $ref(s)`);
|
|
233
248
|
```
|
|
234
249
|
|
|
235
250
|
## Notes
|
package/dist/cli.js
CHANGED
|
@@ -3,6 +3,7 @@ import fs from "node:fs/promises";
|
|
|
3
3
|
import { Command } from "commander";
|
|
4
4
|
import { runRemoveUnused, runRemoveOneOf, optimizeAllOf, runAllOfToOneOf, runSealSchema, runCleanupDiscriminators } from "./lib/cliActions.js";
|
|
5
5
|
import YAML from "yaml";
|
|
6
|
+
import { dropNulls } from "./lib/utils.js";
|
|
6
7
|
const program = new Command();
|
|
7
8
|
program
|
|
8
9
|
.command("remove-unused")
|
|
@@ -125,6 +126,7 @@ async function reader(input) {
|
|
|
125
126
|
}
|
|
126
127
|
function format(doc, target) {
|
|
127
128
|
const isJson = target?.endsWith(".json");
|
|
128
|
-
|
|
129
|
+
const cleanedDoc = dropNulls(doc) ?? {};
|
|
130
|
+
return isJson ? JSON.stringify(cleanedDoc, null, 2) + "\n" : YAML.stringify(cleanedDoc);
|
|
129
131
|
}
|
|
130
132
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/I,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC"}
|
package/dist/lib/cliActions.d.ts
CHANGED
|
@@ -54,4 +54,8 @@ export declare function runSealSchema(opts: {
|
|
|
54
54
|
export declare function runCleanupDiscriminators(opts: {
|
|
55
55
|
output?: string;
|
|
56
56
|
}, format: (doc: any, target?: string) => string, reader: () => Promise<string>): Promise<void>;
|
|
57
|
+
export declare function runRemoveDangling(opts: {
|
|
58
|
+
output?: string;
|
|
59
|
+
aggressive?: boolean;
|
|
60
|
+
}, format: (doc: any, target?: string) => string, reader: () => Promise<string>): Promise<void>;
|
|
57
61
|
//# sourceMappingURL=cliActions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliActions.d.ts","sourceRoot":"","sources":["../../src/lib/cliActions.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/lib/cliActions.js
CHANGED
|
@@ -7,6 +7,7 @@ import { removeFromOneOfByName, removeFromOneOfGlobally, } from "./removeFromOne
|
|
|
7
7
|
import { allOfToOneOf } from "./allOfToOneOf.js";
|
|
8
8
|
import { sealSchema } from "./sealSchema.js";
|
|
9
9
|
import { cleanupDiscriminatorMappings } from "./cleanupDiscriminatorMappings.js";
|
|
10
|
+
import { removeDanglingRefs } from "./removeDanglingRefs.js";
|
|
10
11
|
function parseYamlOrJson(data) {
|
|
11
12
|
// Accept pre-parsed objects (useful in tests)
|
|
12
13
|
if (data && typeof data === "object")
|
|
@@ -176,7 +177,6 @@ export async function runSealSchema(opts, format, reader) {
|
|
|
176
177
|
uplift: opts.uplift,
|
|
177
178
|
};
|
|
178
179
|
const result = sealSchema(doc, sopts);
|
|
179
|
-
const sealingKeyword = sopts.useUnevaluatedProperties ? "unevaluatedProperties" : "additionalProperties";
|
|
180
180
|
await writeOutput(result, opts.output, format);
|
|
181
181
|
}
|
|
182
182
|
/**
|
|
@@ -208,4 +208,15 @@ export async function runCleanupDiscriminators(opts, format, reader) {
|
|
|
208
208
|
}
|
|
209
209
|
await writeOutput(doc, opts.output, format);
|
|
210
210
|
}
|
|
211
|
+
export async function runRemoveDangling(opts, format, reader) {
|
|
212
|
+
const doc = parseYamlOrJson(await reader());
|
|
213
|
+
const result = removeDanglingRefs(doc, { aggressive: Boolean(opts.aggressive) });
|
|
214
|
+
if (result.removed > 0) {
|
|
215
|
+
console.error(`[REMOVE-DANGLING] Removed ${result.removed} dangling $ref(s).`);
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
console.error(`[INFO] No dangling $ref entries found.`);
|
|
219
|
+
}
|
|
220
|
+
await writeOutput(doc, opts.output, format);
|
|
221
|
+
}
|
|
211
222
|
//# 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;
|
|
1
|
+
{"version":3,"file":"cliActions.js","sourceRoot":"","sources":["../../src/lib/cliActions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface RemoveDanglingOptions {
|
|
2
|
+
/** If true, remove external refs (not just components) */
|
|
3
|
+
aggressive?: boolean;
|
|
4
|
+
keepExternal?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Remove dangling $ref entries that point to non-existent component schemas.
|
|
8
|
+
* Mutates the document and returns number of removed references.
|
|
9
|
+
*/
|
|
10
|
+
export declare function removeDanglingRefs(doc: any, opts?: RemoveDanglingOptions): {
|
|
11
|
+
removed: number;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=removeDanglingRefs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeDanglingRefs.d.ts","sourceRoot":"","sources":["../../src/lib/removeDanglingRefs.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,qBAA0B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAkDlG"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { JSONPath } from 'jsonpath-plus';
|
|
2
|
+
import { refToName } from './oasUtils.js';
|
|
3
|
+
/**
|
|
4
|
+
* Remove dangling $ref entries that point to non-existent component schemas.
|
|
5
|
+
* Mutates the document and returns number of removed references.
|
|
6
|
+
*/
|
|
7
|
+
export function removeDanglingRefs(doc, opts = {}) {
|
|
8
|
+
if (!doc || typeof doc !== 'object')
|
|
9
|
+
return { removed: 0 };
|
|
10
|
+
const refs = JSONPath({ path: '$..$ref', json: doc, resultType: 'all' });
|
|
11
|
+
if (!Array.isArray(refs))
|
|
12
|
+
return { removed: 0 };
|
|
13
|
+
const schemas = doc.components?.schemas ?? {};
|
|
14
|
+
const existing = new Set(Object.keys(schemas));
|
|
15
|
+
let removed = 0;
|
|
16
|
+
// Build set of dangling ref strings. By default only refs that point to component schemas
|
|
17
|
+
// are considered; with aggressive=true we also treat external / non-components refs as dangling.
|
|
18
|
+
const danglingRefs = new Set();
|
|
19
|
+
for (const r of refs ?? []) {
|
|
20
|
+
const name = refToName(r.value);
|
|
21
|
+
if (name) {
|
|
22
|
+
if (!existing.has(name))
|
|
23
|
+
danglingRefs.add(r.value);
|
|
24
|
+
}
|
|
25
|
+
else if (opts.aggressive) {
|
|
26
|
+
// treat non-local refs as dangling in aggressive mode
|
|
27
|
+
danglingRefs.add(r.value);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (danglingRefs.size === 0)
|
|
31
|
+
return { removed: 0 };
|
|
32
|
+
// Recursive traversal to remove nodes whose $ref points to a dangling ref
|
|
33
|
+
const walk = (parent, key, node) => {
|
|
34
|
+
if (!node || typeof node !== 'object')
|
|
35
|
+
return;
|
|
36
|
+
if (typeof node.$ref === 'string' && danglingRefs.has(node.$ref)) {
|
|
37
|
+
if (Array.isArray(parent)) {
|
|
38
|
+
parent.splice(key, 1);
|
|
39
|
+
}
|
|
40
|
+
else if (parent && typeof parent === 'object') {
|
|
41
|
+
delete parent[key];
|
|
42
|
+
}
|
|
43
|
+
removed++;
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (Array.isArray(node)) {
|
|
47
|
+
// iterate backwards when removing
|
|
48
|
+
for (let i = node.length - 1; i >= 0; i--)
|
|
49
|
+
walk(node, i, node[i]);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
for (const k of Object.keys(node))
|
|
53
|
+
walk(node, k, node[k]);
|
|
54
|
+
// If after removals the object becomes empty, caller may choose to prune, but keep for safety
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
walk(undefined, undefined, doc);
|
|
58
|
+
return { removed };
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=removeDanglingRefs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeDanglingRefs.js","sourceRoot":"","sources":["../../src/lib/removeDanglingRefs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeUnusedSchemas.d.ts","sourceRoot":"","sources":["../../src/lib/removeUnusedSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,sFAAsF;IACtF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,aAAkB,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"removeUnusedSchemas.d.ts","sourceRoot":"","sources":["../../src/lib/removeUnusedSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,sFAAsF;IACtF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,aAAkB,GAAG,GAAG,CA2F3E"}
|
|
@@ -61,18 +61,6 @@ export function removeUnusedSchemas(doc, opts = {}) {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
// 2) Follow transitive references among schemas (downward closure via $ref in schema bodies)
|
|
64
|
-
const collectRefsInSchema = (schema, add) => {
|
|
65
|
-
if (!schema || typeof schema !== "object")
|
|
66
|
-
return;
|
|
67
|
-
const refs = JSONPath({ path: "$..$ref", json: schema, resultType: "value" });
|
|
68
|
-
if (!Array.isArray(refs))
|
|
69
|
-
return;
|
|
70
|
-
for (const refStr of refs) {
|
|
71
|
-
const maybe = refToName(refStr);
|
|
72
|
-
if (maybe)
|
|
73
|
-
add(maybe);
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
64
|
while (queue.length) {
|
|
77
65
|
const name = queue.pop();
|
|
78
66
|
const schema = schemas[name];
|
|
@@ -85,8 +73,40 @@ export function removeUnusedSchemas(doc, opts = {}) {
|
|
|
85
73
|
}
|
|
86
74
|
});
|
|
87
75
|
}
|
|
88
|
-
// 3)
|
|
89
|
-
|
|
76
|
+
// 3) Promote schemas via allOf relationships (upward closure via allOf)
|
|
77
|
+
const ignoreParentsSet = new Set((opts.ignoreParents ?? []).map(String));
|
|
78
|
+
const reverseAllOf = buildAllOfReverseMap(schemas);
|
|
79
|
+
while (true) {
|
|
80
|
+
const beforeCount = used.size;
|
|
81
|
+
promoteSchemasViaAllOfOnce(schemas, used, reverseAllOf, ignoreParentsSet);
|
|
82
|
+
if (used.size === beforeCount)
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
// 4) Remove unused schemas unless explicitly kept
|
|
86
|
+
for (const name of Object.keys(schemas)) {
|
|
87
|
+
if (keepSet.has(name))
|
|
88
|
+
continue;
|
|
89
|
+
if (!used.has(name))
|
|
90
|
+
delete schemas[name];
|
|
91
|
+
}
|
|
92
|
+
if (opts.aggressive && doc.components) {
|
|
93
|
+
pruneUnusedComponents(doc, usedComponents);
|
|
94
|
+
}
|
|
95
|
+
return doc;
|
|
96
|
+
}
|
|
97
|
+
function collectRefsInSchema(schema, add) {
|
|
98
|
+
if (!schema || typeof schema !== "object")
|
|
99
|
+
return;
|
|
100
|
+
const refs = JSONPath({ path: "$..$ref", json: schema, resultType: "value" });
|
|
101
|
+
if (!Array.isArray(refs))
|
|
102
|
+
return;
|
|
103
|
+
for (const refStr of refs) {
|
|
104
|
+
const maybe = refToName(refStr);
|
|
105
|
+
if (maybe)
|
|
106
|
+
add(maybe);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function buildAllOfReverseMap(schemas) {
|
|
90
110
|
const reverseAllOf = new Map();
|
|
91
111
|
const collectAllOfRefs = (node, add) => {
|
|
92
112
|
if (!node || typeof node !== "object")
|
|
@@ -114,16 +134,17 @@ export function removeUnusedSchemas(doc, opts = {}) {
|
|
|
114
134
|
reverseAllOf.get(base).add(name);
|
|
115
135
|
});
|
|
116
136
|
}
|
|
117
|
-
|
|
118
|
-
|
|
137
|
+
return reverseAllOf;
|
|
138
|
+
}
|
|
139
|
+
function promoteSchemasViaAllOfOnce(schemas, used, reverseAllOf, ignoreParentsSet) {
|
|
119
140
|
const upQueue = Array.from(used);
|
|
120
141
|
const promoted = new Set();
|
|
121
142
|
while (upQueue.length) {
|
|
122
143
|
const base = upQueue.pop();
|
|
123
144
|
if (!used.has(base))
|
|
124
|
-
continue;
|
|
145
|
+
continue;
|
|
125
146
|
if (ignoreParentsSet.has(base))
|
|
126
|
-
continue;
|
|
147
|
+
continue;
|
|
127
148
|
const parents = reverseAllOf.get(base);
|
|
128
149
|
if (!parents)
|
|
129
150
|
continue;
|
|
@@ -135,7 +156,6 @@ export function removeUnusedSchemas(doc, opts = {}) {
|
|
|
135
156
|
}
|
|
136
157
|
}
|
|
137
158
|
}
|
|
138
|
-
// After promoting via allOf, include their transitive refs as well.
|
|
139
159
|
const queue2 = Array.from(promoted);
|
|
140
160
|
while (queue2.length) {
|
|
141
161
|
const name = queue2.pop();
|
|
@@ -149,17 +169,7 @@ export function removeUnusedSchemas(doc, opts = {}) {
|
|
|
149
169
|
}
|
|
150
170
|
});
|
|
151
171
|
}
|
|
152
|
-
|
|
153
|
-
for (const name of Object.keys(schemas)) {
|
|
154
|
-
if (keepSet.has(name))
|
|
155
|
-
continue;
|
|
156
|
-
if (!used.has(name))
|
|
157
|
-
delete schemas[name];
|
|
158
|
-
}
|
|
159
|
-
if (opts.aggressive && doc.components) {
|
|
160
|
-
pruneUnusedComponents(doc, usedComponents);
|
|
161
|
-
}
|
|
162
|
-
return doc;
|
|
172
|
+
return used;
|
|
163
173
|
}
|
|
164
174
|
function pruneUnusedComponents(doc, usedComponents) {
|
|
165
175
|
const c = doc.components ?? {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeUnusedSchemas.js","sourceRoot":"","sources":["../../src/lib/removeUnusedSchemas.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"removeUnusedSchemas.js","sourceRoot":"","sources":["../../src/lib/removeUnusedSchemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sealSchema.d.ts","sourceRoot":"","sources":["../../src/lib/sealSchema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sealSchema.d.ts","sourceRoot":"","sources":["../../src/lib/sealSchema.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,iBAAiB;IAChC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAaD;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,iBAAsB,GAAG,GAAG,CA2CtE"}
|
package/dist/lib/sealSchema.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// Single clean scaffold file — public API preserved and helpers stubbed.
|
|
2
2
|
import { JSONPath } from "jsonpath-plus";
|
|
3
3
|
import { documentSupportsUnevaluatedProperties, getOpenApiVersion, getJsonSchemaVersion, upgradeToOas31, upgradeJsonSchemaToDraft201909, } from "./oasUtils.js";
|
|
4
|
-
import
|
|
4
|
+
import jsonPatch from 'fast-json-patch';
|
|
5
|
+
const { applyPatch } = jsonPatch;
|
|
5
6
|
const isAllOf = (prop) => {
|
|
6
7
|
return prop.split("/").at(-2) === "allOf";
|
|
7
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sealSchema.js","sourceRoot":"","sources":["../../src/lib/sealSchema.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,qCAAqC,EACrC,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,8BAA8B,GAC/B,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"sealSchema.js","sourceRoot":"","sources":["../../src/lib/sealSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recursively drops `null` values from objects and arrays.
|
|
3
|
+
*
|
|
4
|
+
* - For objects: removes keys whose value is `null`, and recursively cleans nested objects/arrays.
|
|
5
|
+
* - For arrays: removes elements that are `null`, and recursively cleans nested objects/arrays.
|
|
6
|
+
* - Other values are returned as-is.
|
|
7
|
+
*
|
|
8
|
+
* Note: `undefined` values are preserved. Only strict `null` is removed.
|
|
9
|
+
*/
|
|
10
|
+
export declare function dropNulls<T = any>(input: T): T | null;
|
|
11
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAuBrD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recursively drops `null` values from objects and arrays.
|
|
3
|
+
*
|
|
4
|
+
* - For objects: removes keys whose value is `null`, and recursively cleans nested objects/arrays.
|
|
5
|
+
* - For arrays: removes elements that are `null`, and recursively cleans nested objects/arrays.
|
|
6
|
+
* - Other values are returned as-is.
|
|
7
|
+
*
|
|
8
|
+
* Note: `undefined` values are preserved. Only strict `null` is removed.
|
|
9
|
+
*/
|
|
10
|
+
export function dropNulls(input) {
|
|
11
|
+
if (input === null)
|
|
12
|
+
return input;
|
|
13
|
+
if (Array.isArray(input)) {
|
|
14
|
+
if (input.length === 0)
|
|
15
|
+
return input;
|
|
16
|
+
const cleaned = input
|
|
17
|
+
.map(item => dropNulls(item))
|
|
18
|
+
.filter(item => item !== null);
|
|
19
|
+
return cleaned.length === 0 ? null : cleaned;
|
|
20
|
+
}
|
|
21
|
+
if (typeof input === 'object' && input !== null) {
|
|
22
|
+
const out = {};
|
|
23
|
+
for (const [key, value] of Object.entries(input)) {
|
|
24
|
+
if (value === null)
|
|
25
|
+
continue;
|
|
26
|
+
const cleaned = dropNulls(value);
|
|
27
|
+
if (cleaned === null)
|
|
28
|
+
continue;
|
|
29
|
+
out[key] = cleaned;
|
|
30
|
+
}
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
33
|
+
return input;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAU,KAAQ;IAC1C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACrC,MAAM,OAAO,GAAG,KAAK;aACnB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAChC,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAuB,CAAC;IAC9D,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjD,MAAM,GAAG,GAAwB,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAA4B,CAAC,EAAE,CAAC;YACzE,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS;YAC7B,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,OAAO,KAAK,IAAI;gBAAE,SAAS;YAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QACpB,CAAC;QACD,OAAO,GAAQ,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC"}
|
package/dist/redocly/plugin.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import OptimizeAllOfDecorator from "./optimize-allof-decorator.js";
|
|
|
4
4
|
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
|
+
import RemoveDanglingDecorator from "./remove-dangling-decorator.js";
|
|
7
8
|
export default function oasRemoveUnusedPlugin(): {
|
|
8
9
|
id: string;
|
|
9
10
|
decorators: {
|
|
@@ -14,6 +15,7 @@ export default function oasRemoveUnusedPlugin(): {
|
|
|
14
15
|
"allof-to-oneof": typeof AllOfToOneOfDecorator;
|
|
15
16
|
"seal-schema": typeof SealSchemaDecorator;
|
|
16
17
|
"cleanup-discriminators": typeof CleanupDiscriminatorsDecorator;
|
|
18
|
+
"remove-dangling-refs": typeof RemoveDanglingDecorator;
|
|
17
19
|
"remove-unused-schemas": typeof RemoveUnusedDecorator;
|
|
18
20
|
"remove-from-oneof": typeof RemoveFromOneOfDecorator;
|
|
19
21
|
};
|
|
@@ -24,6 +26,7 @@ export default function oasRemoveUnusedPlugin(): {
|
|
|
24
26
|
"allof-to-oneof": typeof AllOfToOneOfDecorator;
|
|
25
27
|
"seal-schema": typeof SealSchemaDecorator;
|
|
26
28
|
"cleanup-discriminators": typeof CleanupDiscriminatorsDecorator;
|
|
29
|
+
"remove-dangling-refs": typeof RemoveDanglingDecorator;
|
|
27
30
|
"remove-unused-schemas": typeof RemoveUnusedDecorator;
|
|
28
31
|
"remove-from-oneof": typeof RemoveFromOneOfDecorator;
|
|
29
32
|
};
|
|
@@ -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;
|
|
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"}
|
package/dist/redocly/plugin.js
CHANGED
|
@@ -4,6 +4,7 @@ import OptimizeAllOfDecorator from "./optimize-allof-decorator.js";
|
|
|
4
4
|
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
|
+
import RemoveDanglingDecorator from "./remove-dangling-decorator.js";
|
|
7
8
|
export default function oasRemoveUnusedPlugin() {
|
|
8
9
|
return {
|
|
9
10
|
id: "oas-utils",
|
|
@@ -16,6 +17,7 @@ export default function oasRemoveUnusedPlugin() {
|
|
|
16
17
|
"allof-to-oneof": AllOfToOneOfDecorator,
|
|
17
18
|
"seal-schema": SealSchemaDecorator,
|
|
18
19
|
"cleanup-discriminators": CleanupDiscriminatorsDecorator,
|
|
20
|
+
"remove-dangling-refs": RemoveDanglingDecorator,
|
|
19
21
|
// Back-compat aliases
|
|
20
22
|
"remove-unused-schemas": RemoveUnusedDecorator,
|
|
21
23
|
"remove-from-oneof": RemoveFromOneOfDecorator,
|
|
@@ -28,6 +30,7 @@ export default function oasRemoveUnusedPlugin() {
|
|
|
28
30
|
"allof-to-oneof": AllOfToOneOfDecorator,
|
|
29
31
|
"seal-schema": SealSchemaDecorator,
|
|
30
32
|
"cleanup-discriminators": CleanupDiscriminatorsDecorator,
|
|
33
|
+
"remove-dangling-refs": RemoveDanglingDecorator,
|
|
31
34
|
// Back-compat aliases
|
|
32
35
|
"remove-unused-schemas": RemoveUnusedDecorator,
|
|
33
36
|
"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;
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-dangling-decorator.d.ts","sourceRoot":"","sources":["../../src/redocly/remove-dangling-decorator.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,IAAI,EAAE,GAAG;;sBAGrC,GAAG;;EAQtB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { removeDanglingRefs } from '../lib/removeDanglingRefs.js';
|
|
2
|
+
export default function RemoveDanglingDecorator(opts) {
|
|
3
|
+
return {
|
|
4
|
+
Root: {
|
|
5
|
+
leave(target) {
|
|
6
|
+
const result = removeDanglingRefs(target);
|
|
7
|
+
if (result.removed > 0) {
|
|
8
|
+
console.log(`[REMOVE-DANGLING] Removed ${result.removed} dangling $ref(s).`);
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=remove-dangling-decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-dangling-decorator.js","sourceRoot":"","sources":["../../src/redocly/remove-dangling-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,IAAS;IACvD,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,CAAC,MAAW;gBACf,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
|