@zuplo/openapi-tools 6.65.8 → 6.66.2

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 (75) hide show
  1. package/dist/constants.d.ts +13 -0
  2. package/dist/constants.d.ts.map +1 -0
  3. package/dist/constants.js +25 -0
  4. package/dist/constants.js.map +1 -0
  5. package/dist/file-format.d.ts +59 -0
  6. package/dist/file-format.d.ts.map +1 -0
  7. package/dist/file-format.js +142 -0
  8. package/dist/file-format.js.map +1 -0
  9. package/dist/file-format.spec.d.ts +2 -0
  10. package/dist/file-format.spec.d.ts.map +1 -0
  11. package/dist/file-format.spec.js +289 -0
  12. package/dist/file-format.spec.js.map +1 -0
  13. package/dist/index.d.ts +10 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +10 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/interfaces.d.ts +32 -5
  18. package/dist/interfaces.d.ts.map +1 -1
  19. package/dist/interfaces.js +0 -1
  20. package/dist/interfaces.js.map +1 -1
  21. package/dist/merge-fixtures.spec.d.ts +2 -0
  22. package/dist/merge-fixtures.spec.d.ts.map +1 -0
  23. package/dist/merge-fixtures.spec.js +181 -0
  24. package/dist/merge-fixtures.spec.js.map +1 -0
  25. package/dist/{openapi-utils.d.ts → merge.d.ts} +2 -22
  26. package/dist/merge.d.ts.map +1 -0
  27. package/dist/{openapi-utils.js → merge.js} +6 -186
  28. package/dist/merge.js.map +1 -0
  29. package/dist/merge.spec.d.ts +2 -0
  30. package/dist/merge.spec.d.ts.map +1 -0
  31. package/dist/merge.spec.js +399 -0
  32. package/dist/merge.spec.js.map +1 -0
  33. package/dist/operation-utils.d.ts +29 -0
  34. package/dist/operation-utils.d.ts.map +1 -0
  35. package/dist/operation-utils.js +123 -0
  36. package/dist/operation-utils.js.map +1 -0
  37. package/dist/overlay.d.ts +78 -0
  38. package/dist/overlay.d.ts.map +1 -0
  39. package/dist/overlay.js +477 -0
  40. package/dist/overlay.js.map +1 -0
  41. package/dist/overlay.spec.d.ts +2 -0
  42. package/dist/overlay.spec.d.ts.map +1 -0
  43. package/dist/overlay.spec.js +697 -0
  44. package/dist/overlay.spec.js.map +1 -0
  45. package/dist/parsing.d.ts +17 -0
  46. package/dist/parsing.d.ts.map +1 -0
  47. package/dist/parsing.js +32 -0
  48. package/dist/parsing.js.map +1 -0
  49. package/dist/path-transform.d.ts +11 -0
  50. package/dist/path-transform.d.ts.map +1 -0
  51. package/dist/path-transform.js +51 -0
  52. package/dist/path-transform.js.map +1 -0
  53. package/dist/path-transform.spec.d.ts +2 -0
  54. package/dist/path-transform.spec.d.ts.map +1 -0
  55. package/dist/path-transform.spec.js +269 -0
  56. package/dist/path-transform.spec.js.map +1 -0
  57. package/dist/url-utils.d.ts +14 -0
  58. package/dist/url-utils.d.ts.map +1 -0
  59. package/dist/url-utils.js +40 -0
  60. package/dist/url-utils.js.map +1 -0
  61. package/dist/url-utils.spec.d.ts +2 -0
  62. package/dist/url-utils.spec.d.ts.map +1 -0
  63. package/dist/url-utils.spec.js +93 -0
  64. package/dist/url-utils.spec.js.map +1 -0
  65. package/dist/validation.d.ts +210 -0
  66. package/dist/validation.d.ts.map +1 -0
  67. package/dist/validation.js +119 -0
  68. package/dist/validation.js.map +1 -0
  69. package/package.json +9 -10
  70. package/dist/index.spec.d.ts +0 -2
  71. package/dist/index.spec.d.ts.map +0 -1
  72. package/dist/index.spec.js +0 -526
  73. package/dist/index.spec.js.map +0 -1
  74. package/dist/openapi-utils.d.ts.map +0 -1
  75. package/dist/openapi-utils.js.map +0 -1
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Common constants for OpenAPI operations
3
+ */
4
+ /**
5
+ * Supported OpenAPI file extensions
6
+ */
7
+ export declare const OPEN_API_FILE_TYPES: readonly string[];
8
+ /**
9
+ * Standard HTTP methods as defined in OpenAPI specification
10
+ */
11
+ export declare const HTTP_METHODS: readonly ["get", "put", "post", "delete", "options", "head", "patch", "trace"];
12
+ export type HttpMethod = (typeof HTTP_METHODS)[number];
13
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAIvC,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY,gFASf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Common constants for OpenAPI operations
3
+ */
4
+ /**
5
+ * Supported OpenAPI file extensions
6
+ */
7
+ export const OPEN_API_FILE_TYPES = [
8
+ ".json",
9
+ ".yml",
10
+ ".yaml",
11
+ ];
12
+ /**
13
+ * Standard HTTP methods as defined in OpenAPI specification
14
+ */
15
+ export const HTTP_METHODS = [
16
+ "get",
17
+ "put",
18
+ "post",
19
+ "delete",
20
+ "options",
21
+ "head",
22
+ "patch",
23
+ "trace",
24
+ ];
25
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,OAAO;IACP,MAAM;IACN,OAAO;CACC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,SAAS;IACT,MAAM;IACN,OAAO;IACP,OAAO;CACC,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * File format utilities for OpenAPI documents
3
+ * Supports JSON and YAML formats with automatic detection
4
+ */
5
+ export type FileFormat = "json" | "yaml";
6
+ /**
7
+ * Detect file format from extension
8
+ * Returns null if extension is unknown or missing
9
+ */
10
+ export declare function detectFormatFromExtension(filePath: string): FileFormat | null;
11
+ /**
12
+ * Detect format from content by trying to parse as both JSON and YAML
13
+ * Tries JSON first as it's faster to validate
14
+ */
15
+ export declare function detectFormatFromContent(content: string): FileFormat;
16
+ /**
17
+ * Parse content with a known format
18
+ */
19
+ export declare function parseContent(content: string, format: FileFormat): any;
20
+ /**
21
+ * Parse content with flexible format detection
22
+ * If format is provided, uses that. Otherwise attempts to detect from content.
23
+ */
24
+ export declare function parseFlexible(content: string, knownFormat?: FileFormat): {
25
+ document: any;
26
+ detectedFormat: FileFormat;
27
+ };
28
+ /**
29
+ * Serialize document to string based on format
30
+ */
31
+ export declare function serializeContent(document: any, format: FileFormat): string;
32
+ /**
33
+ * Parse file content with automatic format detection from extension
34
+ * Falls back to trying both formats if extension is unknown
35
+ */
36
+ export declare function parseFile(content: string, filePath: string): {
37
+ document: any;
38
+ detectedFormat: FileFormat;
39
+ };
40
+ /**
41
+ * Result of converting a document between formats
42
+ */
43
+ export interface ConversionResult {
44
+ content: string;
45
+ format: FileFormat;
46
+ }
47
+ /**
48
+ * Convert document from one format to another
49
+ * @param content The input content as a string
50
+ * @param inputFormat The format of the input content
51
+ * @param outputFormat The desired output format
52
+ * @returns The converted content
53
+ */
54
+ export declare function convertDocument(content: string, inputFormat: FileFormat, outputFormat: FileFormat): ConversionResult;
55
+ /**
56
+ * Generate output file path by replacing the extension
57
+ */
58
+ export declare function generateOutputPath(inputPath: string, outputFormat: FileFormat): string;
59
+ //# sourceMappingURL=file-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-format.d.ts","sourceRoot":"","sources":["../src/file-format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAS7E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAcnE;AAED;;GAEG;AAEH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,GAAG,CAKrE;AAED;;;GAGG;AAEH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,UAAU,GAEvB;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,cAAc,EAAE,UAAU,CAAA;CAAE,CAuB/C;AAED;;GAEG;AAEH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAK1E;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GAEf;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,cAAc,EAAE,UAAU,CAAA;CAAE,CAa/C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,UAAU,EACvB,YAAY,EAAE,UAAU,GACvB,gBAAgB,CAWlB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,UAAU,GACvB,MAAM,CAYR"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * File format utilities for OpenAPI documents
3
+ * Supports JSON and YAML formats with automatic detection
4
+ */
5
+ import yaml from "js-yaml";
6
+ /**
7
+ * Detect file format from extension
8
+ * Returns null if extension is unknown or missing
9
+ */
10
+ export function detectFormatFromExtension(filePath) {
11
+ const ext = filePath.toLowerCase();
12
+ if (ext.endsWith(".json")) {
13
+ return "json";
14
+ }
15
+ if (ext.endsWith(".yaml") || ext.endsWith(".yml")) {
16
+ return "yaml";
17
+ }
18
+ return null;
19
+ }
20
+ /**
21
+ * Detect format from content by trying to parse as both JSON and YAML
22
+ * Tries JSON first as it's faster to validate
23
+ */
24
+ export function detectFormatFromContent(content) {
25
+ // Try JSON first
26
+ try {
27
+ JSON.parse(content);
28
+ return "json";
29
+ }
30
+ catch {
31
+ // Try YAML
32
+ try {
33
+ yaml.load(content);
34
+ return "yaml";
35
+ }
36
+ catch {
37
+ throw new Error("Failed to parse content as either JSON or YAML");
38
+ }
39
+ }
40
+ }
41
+ /**
42
+ * Parse content with a known format
43
+ */
44
+ // biome-ignore lint/suspicious/noExplicitAny: Generic document parsing
45
+ export function parseContent(content, format) {
46
+ if (format === "json") {
47
+ return JSON.parse(content);
48
+ }
49
+ return yaml.load(content);
50
+ }
51
+ /**
52
+ * Parse content with flexible format detection
53
+ * If format is provided, uses that. Otherwise attempts to detect from content.
54
+ */
55
+ export function parseFlexible(content, knownFormat
56
+ // biome-ignore lint/suspicious/noExplicitAny: Generic document parsing
57
+ ) {
58
+ if (knownFormat) {
59
+ return {
60
+ document: parseContent(content, knownFormat),
61
+ detectedFormat: knownFormat,
62
+ };
63
+ }
64
+ // Try JSON first (faster)
65
+ try {
66
+ const document = JSON.parse(content);
67
+ return { document, detectedFormat: "json" };
68
+ }
69
+ catch {
70
+ // Try YAML
71
+ try {
72
+ const document = yaml.load(content);
73
+ return { document, detectedFormat: "yaml" };
74
+ }
75
+ catch (err) {
76
+ throw new Error("Failed to parse content as either JSON or YAML", {
77
+ cause: err,
78
+ });
79
+ }
80
+ }
81
+ }
82
+ /**
83
+ * Serialize document to string based on format
84
+ */
85
+ // biome-ignore lint/suspicious/noExplicitAny: Generic document serialization
86
+ export function serializeContent(document, format) {
87
+ if (format === "json") {
88
+ return `${JSON.stringify(document, null, 2)}\n`;
89
+ }
90
+ return yaml.dump(document, { lineWidth: -1, noRefs: false });
91
+ }
92
+ /**
93
+ * Parse file content with automatic format detection from extension
94
+ * Falls back to trying both formats if extension is unknown
95
+ */
96
+ export function parseFile(content, filePath
97
+ // biome-ignore lint/suspicious/noExplicitAny: Generic document parsing
98
+ ) {
99
+ const formatFromExt = detectFormatFromExtension(filePath);
100
+ if (formatFromExt) {
101
+ // Use the format indicated by extension
102
+ return {
103
+ document: parseContent(content, formatFromExt),
104
+ detectedFormat: formatFromExt,
105
+ };
106
+ }
107
+ // No known extension, try both formats
108
+ return parseFlexible(content);
109
+ }
110
+ /**
111
+ * Convert document from one format to another
112
+ * @param content The input content as a string
113
+ * @param inputFormat The format of the input content
114
+ * @param outputFormat The desired output format
115
+ * @returns The converted content
116
+ */
117
+ export function convertDocument(content, inputFormat, outputFormat) {
118
+ // Parse the input
119
+ const document = parseContent(content, inputFormat);
120
+ // Serialize to output format
121
+ const outputContent = serializeContent(document, outputFormat);
122
+ return {
123
+ content: outputContent,
124
+ format: outputFormat,
125
+ };
126
+ }
127
+ /**
128
+ * Generate output file path by replacing the extension
129
+ */
130
+ export function generateOutputPath(inputPath, outputFormat) {
131
+ // Find the last dot in the path
132
+ const lastDotIndex = inputPath.lastIndexOf(".");
133
+ if (lastDotIndex === -1) {
134
+ // No extension, just append
135
+ return `${inputPath}.${outputFormat === "yaml" ? "yaml" : "json"}`;
136
+ }
137
+ // Replace extension
138
+ const basePath = inputPath.substring(0, lastDotIndex);
139
+ const newExtension = outputFormat === "yaml" ? "yaml" : "json";
140
+ return `${basePath}.${newExtension}`;
141
+ }
142
+ //# sourceMappingURL=file-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-format.js","sourceRoot":"","sources":["../src/file-format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=file-format.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-format.spec.d.ts","sourceRoot":"","sources":["../src/file-format.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,289 @@
1
+ import assert from "node:assert";
2
+ import { describe, it } from "node:test";
3
+ import { convertDocument, detectFormatFromContent, detectFormatFromExtension, generateOutputPath, parseContent, serializeContent, } from "./file-format.js";
4
+ describe("File Format Utilities", () => {
5
+ describe("detectFormatFromExtension", () => {
6
+ it("should detect JSON format from .json extension", () => {
7
+ assert.strictEqual(detectFormatFromExtension("api.json"), "json");
8
+ assert.strictEqual(detectFormatFromExtension("/path/to/openapi.json"), "json");
9
+ assert.strictEqual(detectFormatFromExtension("FILE.JSON"), "json");
10
+ });
11
+ it("should detect YAML format from .yaml extension", () => {
12
+ assert.strictEqual(detectFormatFromExtension("api.yaml"), "yaml");
13
+ assert.strictEqual(detectFormatFromExtension("/path/to/openapi.yaml"), "yaml");
14
+ assert.strictEqual(detectFormatFromExtension("FILE.YAML"), "yaml");
15
+ });
16
+ it("should detect YAML format from .yml extension", () => {
17
+ assert.strictEqual(detectFormatFromExtension("api.yml"), "yaml");
18
+ assert.strictEqual(detectFormatFromExtension("/path/to/openapi.yml"), "yaml");
19
+ assert.strictEqual(detectFormatFromExtension("FILE.YML"), "yaml");
20
+ });
21
+ it("should return null for unknown extensions", () => {
22
+ assert.strictEqual(detectFormatFromExtension("api.txt"), null);
23
+ assert.strictEqual(detectFormatFromExtension("api"), null);
24
+ assert.strictEqual(detectFormatFromExtension("api.xml"), null);
25
+ });
26
+ });
27
+ describe("detectFormatFromContent", () => {
28
+ it("should detect JSON content", () => {
29
+ const content = '{"openapi": "3.1.0"}';
30
+ assert.strictEqual(detectFormatFromContent(content), "json");
31
+ });
32
+ it("should detect YAML content", () => {
33
+ const content = "openapi: 3.1.0\ninfo:\n title: Test";
34
+ assert.strictEqual(detectFormatFromContent(content), "yaml");
35
+ });
36
+ it("should throw error for invalid content", () => {
37
+ const content = "not valid json or yaml: : :";
38
+ assert.throws(() => detectFormatFromContent(content), /Failed to parse content/);
39
+ });
40
+ });
41
+ describe("parseContent", () => {
42
+ it("should parse JSON content", () => {
43
+ const content = '{"openapi": "3.1.0", "info": {"title": "Test"}}';
44
+ const result = parseContent(content, "json");
45
+ assert.deepStrictEqual(result, {
46
+ openapi: "3.1.0",
47
+ info: { title: "Test" },
48
+ });
49
+ });
50
+ it("should parse YAML content", () => {
51
+ const content = `openapi: 3.1.0
52
+ info:
53
+ title: Test
54
+ version: 1.0.0`;
55
+ const result = parseContent(content, "yaml");
56
+ assert.deepStrictEqual(result, {
57
+ openapi: "3.1.0",
58
+ info: { title: "Test", version: "1.0.0" },
59
+ });
60
+ });
61
+ it("should throw error for invalid JSON", () => {
62
+ const content = "{invalid json}";
63
+ assert.throws(() => parseContent(content, "json"), {
64
+ name: "SyntaxError",
65
+ });
66
+ });
67
+ it("should throw error for invalid YAML", () => {
68
+ const content = ":\ninvalid: : yaml";
69
+ assert.throws(() => parseContent(content, "yaml"));
70
+ });
71
+ it("should handle arrays", () => {
72
+ const jsonContent = "[1, 2, 3]";
73
+ const yamlContent = "- 1\n- 2\n- 3";
74
+ assert.deepStrictEqual(parseContent(jsonContent, "json"), [1, 2, 3]);
75
+ assert.deepStrictEqual(parseContent(yamlContent, "yaml"), [1, 2, 3]);
76
+ });
77
+ it("should handle nested structures", () => {
78
+ const content = {
79
+ openapi: "3.1.0",
80
+ paths: {
81
+ "/users": {
82
+ get: {
83
+ summary: "Get users",
84
+ parameters: [{ name: "limit", in: "query" }],
85
+ },
86
+ },
87
+ },
88
+ };
89
+ const jsonContent = JSON.stringify(content);
90
+ const result = parseContent(jsonContent, "json");
91
+ assert.deepStrictEqual(result, content);
92
+ });
93
+ });
94
+ describe("serializeContent", () => {
95
+ const testDocument = {
96
+ openapi: "3.1.0",
97
+ info: {
98
+ title: "Test API",
99
+ version: "1.0.0",
100
+ },
101
+ };
102
+ it("should serialize to JSON with proper formatting", () => {
103
+ const result = serializeContent(testDocument, "json");
104
+ assert.strictEqual(typeof result, "string");
105
+ assert.strictEqual(result.includes('"openapi": "3.1.0"'), true);
106
+ assert.strictEqual(result.includes('"title": "Test API"'), true);
107
+ assert.strictEqual(result.endsWith("\n"), true);
108
+ // Verify it's valid JSON
109
+ const parsed = JSON.parse(result);
110
+ assert.deepStrictEqual(parsed, testDocument);
111
+ });
112
+ it("should serialize to YAML with proper formatting", () => {
113
+ const result = serializeContent(testDocument, "yaml");
114
+ assert.strictEqual(typeof result, "string");
115
+ assert.strictEqual(result.includes("openapi: 3.1.0"), true);
116
+ assert.strictEqual(result.includes("title: Test API"), true);
117
+ assert.strictEqual(result.includes("version: 1.0.0"), true);
118
+ });
119
+ it("should handle arrays in JSON", () => {
120
+ const doc = { items: [1, 2, 3] };
121
+ const result = serializeContent(doc, "json");
122
+ assert.strictEqual(result.includes('"items": [\n'), true);
123
+ const parsed = JSON.parse(result);
124
+ assert.deepStrictEqual(parsed, doc);
125
+ });
126
+ it("should handle arrays in YAML", () => {
127
+ const doc = { items: [1, 2, 3] };
128
+ const result = serializeContent(doc, "yaml");
129
+ assert.strictEqual(result.includes("items:"), true);
130
+ assert.strictEqual(result.includes("- 1"), true);
131
+ });
132
+ it("should handle special characters in YAML", () => {
133
+ const doc = {
134
+ description: 'This has a colon: and quotes "test"',
135
+ };
136
+ const result = serializeContent(doc, "yaml");
137
+ assert.strictEqual(typeof result, "string");
138
+ // Should be properly escaped
139
+ assert.strictEqual(result.includes("description:"), true);
140
+ });
141
+ it("should handle null values", () => {
142
+ const doc = { value: null };
143
+ const jsonResult = serializeContent(doc, "json");
144
+ const yamlResult = serializeContent(doc, "yaml");
145
+ assert.strictEqual(jsonResult.includes('"value": null'), true);
146
+ assert.strictEqual(yamlResult.includes("value:"), true);
147
+ });
148
+ });
149
+ describe("convertDocument", () => {
150
+ const testDocument = {
151
+ openapi: "3.1.0",
152
+ info: {
153
+ title: "Test API",
154
+ version: "1.0.0",
155
+ },
156
+ paths: {},
157
+ };
158
+ it("should convert from JSON to YAML", () => {
159
+ const jsonContent = JSON.stringify(testDocument);
160
+ const result = convertDocument(jsonContent, "json", "yaml");
161
+ assert.strictEqual(result.format, "yaml");
162
+ assert.strictEqual(typeof result.content, "string");
163
+ assert.strictEqual(result.content.includes("openapi: 3.1.0"), true);
164
+ assert.strictEqual(result.content.includes("title: Test API"), true);
165
+ });
166
+ it("should convert from YAML to JSON", () => {
167
+ const yamlContent = `openapi: 3.1.0
168
+ info:
169
+ title: Test API
170
+ version: 1.0.0
171
+ paths: {}`;
172
+ const result = convertDocument(yamlContent, "yaml", "json");
173
+ assert.strictEqual(result.format, "json");
174
+ assert.strictEqual(typeof result.content, "string");
175
+ const parsed = JSON.parse(result.content);
176
+ assert.strictEqual(parsed.openapi, "3.1.0");
177
+ assert.strictEqual(parsed.info.title, "Test API");
178
+ });
179
+ it("should preserve data through JSON to YAML to JSON conversion", () => {
180
+ const originalJson = JSON.stringify(testDocument);
181
+ // JSON -> YAML
182
+ const yamlResult = convertDocument(originalJson, "json", "yaml");
183
+ // YAML -> JSON
184
+ const jsonResult = convertDocument(yamlResult.content, "yaml", "json");
185
+ const finalDocument = JSON.parse(jsonResult.content);
186
+ assert.deepStrictEqual(finalDocument, testDocument);
187
+ });
188
+ it("should preserve data through YAML to JSON to YAML conversion", () => {
189
+ const originalYaml = `openapi: 3.1.0
190
+ info:
191
+ title: Test API
192
+ version: 1.0.0
193
+ paths: {}`;
194
+ // Parse original to compare
195
+ const originalDoc = parseContent(originalYaml, "yaml");
196
+ // YAML -> JSON
197
+ const jsonResult = convertDocument(originalYaml, "yaml", "json");
198
+ // JSON -> YAML
199
+ const yamlResult = convertDocument(jsonResult.content, "json", "yaml");
200
+ const finalDocument = parseContent(yamlResult.content, "yaml");
201
+ assert.deepStrictEqual(finalDocument, originalDoc);
202
+ });
203
+ it("should handle complex nested structures", () => {
204
+ const complexDoc = {
205
+ openapi: "3.1.0",
206
+ paths: {
207
+ "/users/{id}": {
208
+ get: {
209
+ parameters: [
210
+ { name: "id", in: "path", required: true },
211
+ { name: "fields", in: "query", required: false },
212
+ ],
213
+ responses: {
214
+ "200": {
215
+ description: "Success",
216
+ content: {
217
+ "application/json": {
218
+ schema: {
219
+ type: "object",
220
+ properties: {
221
+ id: { type: "string" },
222
+ name: { type: "string" },
223
+ },
224
+ },
225
+ },
226
+ },
227
+ },
228
+ },
229
+ },
230
+ },
231
+ },
232
+ };
233
+ const jsonContent = JSON.stringify(complexDoc);
234
+ const yamlResult = convertDocument(jsonContent, "json", "yaml");
235
+ const backToJson = convertDocument(yamlResult.content, "yaml", "json");
236
+ const finalDoc = JSON.parse(backToJson.content);
237
+ assert.deepStrictEqual(finalDoc, complexDoc);
238
+ });
239
+ it("should handle empty objects and arrays", () => {
240
+ const doc = {
241
+ empty_object: {},
242
+ empty_array: [],
243
+ nested: {
244
+ also_empty: {},
245
+ },
246
+ };
247
+ const jsonContent = JSON.stringify(doc);
248
+ const yamlResult = convertDocument(jsonContent, "json", "yaml");
249
+ const backToJson = convertDocument(yamlResult.content, "yaml", "json");
250
+ const finalDoc = JSON.parse(backToJson.content);
251
+ assert.deepStrictEqual(finalDoc, doc);
252
+ });
253
+ });
254
+ describe("generateOutputPath", () => {
255
+ it("should replace .json with .yaml", () => {
256
+ assert.strictEqual(generateOutputPath("api.json", "yaml"), "api.yaml");
257
+ });
258
+ it("should replace .yaml with .json", () => {
259
+ assert.strictEqual(generateOutputPath("api.yaml", "json"), "api.json");
260
+ });
261
+ it("should replace .yml with .json", () => {
262
+ assert.strictEqual(generateOutputPath("api.yml", "json"), "api.json");
263
+ });
264
+ it("should handle paths with directories", () => {
265
+ assert.strictEqual(generateOutputPath("/path/to/api.json", "yaml"), "/path/to/api.yaml");
266
+ assert.strictEqual(generateOutputPath("/path/to/api.yaml", "json"), "/path/to/api.json");
267
+ });
268
+ it("should handle relative paths", () => {
269
+ assert.strictEqual(generateOutputPath("./docs/api.json", "yaml"), "./docs/api.yaml");
270
+ assert.strictEqual(generateOutputPath("../specs/api.yaml", "json"), "../specs/api.json");
271
+ });
272
+ it("should handle files with multiple dots in name", () => {
273
+ assert.strictEqual(generateOutputPath("api.v1.0.json", "yaml"), "api.v1.0.yaml");
274
+ assert.strictEqual(generateOutputPath("my.api.spec.yaml", "json"), "my.api.spec.json");
275
+ });
276
+ it("should append extension if file has no extension", () => {
277
+ assert.strictEqual(generateOutputPath("api", "json"), "api.json");
278
+ assert.strictEqual(generateOutputPath("openapi", "yaml"), "openapi.yaml");
279
+ });
280
+ it("should handle Windows-style paths", () => {
281
+ assert.strictEqual(generateOutputPath("C:\\Users\\docs\\api.json", "yaml"), "C:\\Users\\docs\\api.yaml");
282
+ });
283
+ it("should always use .yaml extension (not .yml) for yaml output", () => {
284
+ assert.strictEqual(generateOutputPath("api.yml", "yaml"), "api.yaml");
285
+ assert.strictEqual(generateOutputPath("api.json", "yaml"), "api.yaml");
286
+ });
287
+ });
288
+ });
289
+ //# sourceMappingURL=file-format.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-format.spec.js","sourceRoot":"","sources":["../src/file-format.spec.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,11 @@
1
- export * from "./openapi-utils.js";
1
+ export * from "./constants.js";
2
+ export * from "./file-format.js";
3
+ export * from "./interfaces.js";
4
+ export * from "./merge.js";
5
+ export * from "./operation-utils.js";
6
+ export * from "./overlay.js";
7
+ export * from "./parsing.js";
8
+ export * from "./path-transform.js";
9
+ export * from "./url-utils.js";
10
+ export * from "./validation.js";
2
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,11 @@
1
- export * from "./openapi-utils.js";
1
+ export * from "./constants.js";
2
+ export * from "./file-format.js";
3
+ export * from "./interfaces.js";
4
+ export * from "./merge.js";
5
+ export * from "./operation-utils.js";
6
+ export * from "./overlay.js";
7
+ export * from "./parsing.js";
8
+ export * from "./path-transform.js";
9
+ export * from "./url-utils.js";
10
+ export * from "./validation.js";
2
11
  //# 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,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}