@scalar/postman-to-openapi 0.3.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/package.json +3 -3
- package/dist/convert.test.js +0 -187
- package/dist/convert.test.js.map +0 -7
- package/dist/urlHelpers.test.js +0 -17
- package/dist/urlHelpers.test.js.map +0 -7
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"export",
|
|
20
20
|
"scalar"
|
|
21
21
|
],
|
|
22
|
-
"version": "0.3.
|
|
22
|
+
"version": "0.3.3",
|
|
23
23
|
"engines": {
|
|
24
24
|
"node": ">=20"
|
|
25
25
|
},
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
],
|
|
39
39
|
"module": "dist/index.js",
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@scalar/oas-utils": "0.
|
|
41
|
+
"@scalar/oas-utils": "0.4.0",
|
|
42
42
|
"@scalar/openapi-types": "0.3.1"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@scalar/build-tooling": "0.2.
|
|
45
|
+
"@scalar/build-tooling": "0.2.1"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
48
|
"build": "scalar-build-esbuild",
|
package/dist/convert.test.js
DELETED
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
import { beforeAll, describe, expect, it } from "vitest";
|
|
2
|
-
import { convert } from "./convert.js";
|
|
3
|
-
const bucketName = "scalar-test-fixtures";
|
|
4
|
-
const BASE_URL = `https://storage.googleapis.com/${bucketName}`;
|
|
5
|
-
describe("convert", () => {
|
|
6
|
-
const collections = {};
|
|
7
|
-
const expected = {};
|
|
8
|
-
beforeAll(async () => {
|
|
9
|
-
try {
|
|
10
|
-
const allPromises = [
|
|
11
|
-
// Input collections
|
|
12
|
-
...[
|
|
13
|
-
"AuthBasic",
|
|
14
|
-
"AuthBearer",
|
|
15
|
-
"AuthMultiple",
|
|
16
|
-
"AuthRequest",
|
|
17
|
-
"DeleteOperation",
|
|
18
|
-
"EmptyUrl",
|
|
19
|
-
"ExternalDocs",
|
|
20
|
-
"Folders",
|
|
21
|
-
"FormData",
|
|
22
|
-
"FormUrlencoded",
|
|
23
|
-
"GetMethods",
|
|
24
|
-
"Headers",
|
|
25
|
-
"LicenseContact",
|
|
26
|
-
"MultipleServers",
|
|
27
|
-
"NoPath",
|
|
28
|
-
"NoVersion",
|
|
29
|
-
"OperationIds",
|
|
30
|
-
"ParseStatusCode",
|
|
31
|
-
"PathParams",
|
|
32
|
-
"PostmantoOpenAPI",
|
|
33
|
-
"RawBody",
|
|
34
|
-
"Responses",
|
|
35
|
-
"ResponsesEmpty",
|
|
36
|
-
"SimplePost",
|
|
37
|
-
"UrlWithPort",
|
|
38
|
-
"XLogo",
|
|
39
|
-
"NestedServers"
|
|
40
|
-
].map(async (name) => {
|
|
41
|
-
const path = `oas/postman-to-openapi/fixtures/input/${name}.json`;
|
|
42
|
-
const response = await fetch(`${BASE_URL}/${path}`);
|
|
43
|
-
collections[name] = await response.text();
|
|
44
|
-
}),
|
|
45
|
-
// Expected outputs
|
|
46
|
-
...[
|
|
47
|
-
"AuthBasic",
|
|
48
|
-
"AuthBearer",
|
|
49
|
-
"AuthMultiple",
|
|
50
|
-
"AuthRequest",
|
|
51
|
-
"Basic",
|
|
52
|
-
"DeleteOperation",
|
|
53
|
-
"EmptyUrl",
|
|
54
|
-
"ExternalDocs",
|
|
55
|
-
"Folders",
|
|
56
|
-
"FormData",
|
|
57
|
-
"FormUrlencoded",
|
|
58
|
-
"GetMethods",
|
|
59
|
-
"Headers",
|
|
60
|
-
"LicenseContact",
|
|
61
|
-
"MultipleServers",
|
|
62
|
-
"NoPath",
|
|
63
|
-
"NoVersion",
|
|
64
|
-
"OperationIds",
|
|
65
|
-
"ParseStatusCode",
|
|
66
|
-
"PathParams",
|
|
67
|
-
"RawBody",
|
|
68
|
-
"Responses",
|
|
69
|
-
"ResponsesEmpty",
|
|
70
|
-
"SimplePost",
|
|
71
|
-
"UrlWithPort",
|
|
72
|
-
"XLogoVar",
|
|
73
|
-
"NestedServers"
|
|
74
|
-
].map(async (name) => {
|
|
75
|
-
const response = await fetch(`${BASE_URL}/oas/postman-to-openapi/fixtures/output/${name}.json`);
|
|
76
|
-
expected[name] = await response.text();
|
|
77
|
-
})
|
|
78
|
-
];
|
|
79
|
-
await Promise.all(allPromises);
|
|
80
|
-
} catch (error) {
|
|
81
|
-
console.error("Failed to download test files:", error);
|
|
82
|
-
throw error;
|
|
83
|
-
}
|
|
84
|
-
}, 5e3);
|
|
85
|
-
it("transforms basic collection", () => {
|
|
86
|
-
expect(convert(JSON.parse(collections.PostmantoOpenAPI))).toEqual(JSON.parse(expected.Basic));
|
|
87
|
-
});
|
|
88
|
-
it("converts collection with servers", () => {
|
|
89
|
-
expect(convert(JSON.parse(collections.SimplePost))).toEqual(JSON.parse(expected.SimplePost));
|
|
90
|
-
});
|
|
91
|
-
it("uses default version when not specified", () => {
|
|
92
|
-
expect(convert(JSON.parse(collections.NoVersion))).toEqual(JSON.parse(expected.NoVersion));
|
|
93
|
-
});
|
|
94
|
-
it("converts folders to tags", () => {
|
|
95
|
-
expect(convert(JSON.parse(collections.Folders))).toEqual(JSON.parse(expected.Folders));
|
|
96
|
-
});
|
|
97
|
-
it("parses GET methods with query strings", () => {
|
|
98
|
-
expect(convert(JSON.parse(collections.GetMethods))).toEqual(JSON.parse(expected.GetMethods));
|
|
99
|
-
});
|
|
100
|
-
it.skip("parses header parameters", () => {
|
|
101
|
-
expect(convert(JSON.parse(collections.Headers))).toEqual(JSON.parse(expected.Headers));
|
|
102
|
-
});
|
|
103
|
-
it("parses path parameters", () => {
|
|
104
|
-
expect(convert(JSON.parse(collections.PathParams))).toEqual(JSON.parse(expected.PathParams));
|
|
105
|
-
});
|
|
106
|
-
it("parses servers from postman collection host", () => {
|
|
107
|
-
expect(convert(JSON.parse(collections.MultipleServers))).toEqual(
|
|
108
|
-
JSON.parse(expected.MultipleServers)
|
|
109
|
-
);
|
|
110
|
-
});
|
|
111
|
-
it("parses license and contact from variables", () => {
|
|
112
|
-
expect(convert(JSON.parse(collections.LicenseContact))).toEqual(
|
|
113
|
-
JSON.parse(expected.LicenseContact)
|
|
114
|
-
);
|
|
115
|
-
});
|
|
116
|
-
it("parses status codes from tests", () => {
|
|
117
|
-
expect(convert(JSON.parse(collections.ParseStatusCode))).toEqual(
|
|
118
|
-
JSON.parse(expected.ParseStatusCode)
|
|
119
|
-
);
|
|
120
|
-
});
|
|
121
|
-
it("parses operations with domain only (no path)", () => {
|
|
122
|
-
expect(convert(JSON.parse(collections.NoPath))).toEqual(JSON.parse(expected.NoPath));
|
|
123
|
-
});
|
|
124
|
-
it("converts DELETE operations", () => {
|
|
125
|
-
expect(convert(JSON.parse(collections.DeleteOperation))).toEqual(
|
|
126
|
-
JSON.parse(expected.DeleteOperation)
|
|
127
|
-
);
|
|
128
|
-
});
|
|
129
|
-
it("parses global Bearer authorization", () => {
|
|
130
|
-
expect(convert(JSON.parse(collections.AuthBearer))).toEqual(JSON.parse(expected.AuthBearer));
|
|
131
|
-
});
|
|
132
|
-
it("parses global Basic authorization", () => {
|
|
133
|
-
expect(convert(JSON.parse(collections.AuthBasic))).toEqual(JSON.parse(expected.AuthBasic));
|
|
134
|
-
});
|
|
135
|
-
it("parses URLs with ports", () => {
|
|
136
|
-
expect(convert(JSON.parse(collections.UrlWithPort))).toEqual(JSON.parse(expected.UrlWithPort));
|
|
137
|
-
});
|
|
138
|
-
it("parses external docs from variables", () => {
|
|
139
|
-
expect(convert(JSON.parse(collections.ExternalDocs))).toEqual(
|
|
140
|
-
JSON.parse(expected.ExternalDocs)
|
|
141
|
-
);
|
|
142
|
-
});
|
|
143
|
-
it("handles empty URL requests", () => {
|
|
144
|
-
expect(convert(JSON.parse(collections.EmptyUrl))).toEqual(JSON.parse(expected.EmptyUrl));
|
|
145
|
-
});
|
|
146
|
-
it("uses x-logo from variables", () => {
|
|
147
|
-
expect(convert(JSON.parse(collections.XLogo))).toEqual(JSON.parse(expected.XLogoVar));
|
|
148
|
-
});
|
|
149
|
-
it("supports auth at request level", () => {
|
|
150
|
-
expect(convert(JSON.parse(collections.AuthMultiple))).toEqual(
|
|
151
|
-
JSON.parse(expected.AuthMultiple)
|
|
152
|
-
);
|
|
153
|
-
});
|
|
154
|
-
it("handles auth defined only at request level", () => {
|
|
155
|
-
expect(convert(JSON.parse(collections.AuthRequest))).toEqual(JSON.parse(expected.AuthRequest));
|
|
156
|
-
});
|
|
157
|
-
it("parses POST methods with form data", () => {
|
|
158
|
-
expect(convert(JSON.parse(collections.FormData))).toEqual(JSON.parse(expected.FormData));
|
|
159
|
-
});
|
|
160
|
-
it("parses POST methods with urlencoded form data", () => {
|
|
161
|
-
expect(convert(JSON.parse(collections.FormUrlencoded))).toEqual(
|
|
162
|
-
JSON.parse(expected.FormUrlencoded)
|
|
163
|
-
);
|
|
164
|
-
});
|
|
165
|
-
it("parses raw body as JSON with text fallback", () => {
|
|
166
|
-
expect(convert(JSON.parse(collections.RawBody))).toEqual(JSON.parse(expected.RawBody));
|
|
167
|
-
});
|
|
168
|
-
it.skip("handles empty JSON response bodies", () => {
|
|
169
|
-
expect(convert(JSON.parse(collections.ResponsesEmpty))).toEqual(
|
|
170
|
-
JSON.parse(expected.ResponsesEmpty)
|
|
171
|
-
);
|
|
172
|
-
});
|
|
173
|
-
it("includes operationId when brackets selected", () => {
|
|
174
|
-
expect(convert(JSON.parse(collections.OperationIds))).toEqual(
|
|
175
|
-
JSON.parse(expected.OperationIds)
|
|
176
|
-
);
|
|
177
|
-
});
|
|
178
|
-
it.skip("adds responses from postman examples", () => {
|
|
179
|
-
expect(convert(JSON.parse(collections.Responses))).toEqual(JSON.parse(expected.Responses));
|
|
180
|
-
});
|
|
181
|
-
it("parses nested servers", () => {
|
|
182
|
-
expect(convert(JSON.parse(collections.NestedServers))).toEqual(
|
|
183
|
-
JSON.parse(expected.NestedServers)
|
|
184
|
-
);
|
|
185
|
-
});
|
|
186
|
-
});
|
|
187
|
-
//# sourceMappingURL=convert.test.js.map
|
package/dist/convert.test.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/convert.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { beforeAll, describe, expect, it } from 'vitest'\n\nimport { convert } from './convert'\nimport type { PostmanCollection } from './types'\n\nconst bucketName = 'scalar-test-fixtures'\nconst BASE_URL = `https://storage.googleapis.com/${bucketName}`\n\ndescribe('convert', () => {\n // Define all file content variables\n const collections: Record<string, string> = {}\n const expected: Record<string, string> = {}\n\n beforeAll(async () => {\n try {\n // Download all files in parallel\n const allPromises = [\n // Input collections\n ...[\n 'AuthBasic',\n 'AuthBearer',\n 'AuthMultiple',\n 'AuthRequest',\n 'DeleteOperation',\n 'EmptyUrl',\n 'ExternalDocs',\n 'Folders',\n 'FormData',\n 'FormUrlencoded',\n 'GetMethods',\n 'Headers',\n 'LicenseContact',\n 'MultipleServers',\n 'NoPath',\n 'NoVersion',\n 'OperationIds',\n 'ParseStatusCode',\n 'PathParams',\n 'PostmantoOpenAPI',\n 'RawBody',\n 'Responses',\n 'ResponsesEmpty',\n 'SimplePost',\n 'UrlWithPort',\n 'XLogo',\n 'NestedServers',\n ].map(async (name) => {\n const path = `oas/postman-to-openapi/fixtures/input/${name}.json`\n const response = await fetch(`${BASE_URL}/${path}`)\n collections[name] = await response.text()\n }),\n // Expected outputs\n ...[\n 'AuthBasic',\n 'AuthBearer',\n 'AuthMultiple',\n 'AuthRequest',\n 'Basic',\n 'DeleteOperation',\n 'EmptyUrl',\n 'ExternalDocs',\n 'Folders',\n 'FormData',\n 'FormUrlencoded',\n 'GetMethods',\n 'Headers',\n 'LicenseContact',\n 'MultipleServers',\n 'NoPath',\n 'NoVersion',\n 'OperationIds',\n 'ParseStatusCode',\n 'PathParams',\n 'RawBody',\n 'Responses',\n 'ResponsesEmpty',\n 'SimplePost',\n 'UrlWithPort',\n 'XLogoVar',\n 'NestedServers',\n ].map(async (name) => {\n const response = await fetch(`${BASE_URL}/oas/postman-to-openapi/fixtures/output/${name}.json`)\n expected[name] = await response.text()\n }),\n ]\n\n await Promise.all(allPromises)\n } catch (error) {\n console.error('Failed to download test files:', error)\n throw error\n }\n }, 5000)\n\n it('transforms basic collection', () => {\n expect(convert(JSON.parse(collections.PostmantoOpenAPI) as PostmanCollection)).toEqual(JSON.parse(expected.Basic))\n })\n\n it('converts collection with servers', () => {\n expect(convert(JSON.parse(collections.SimplePost) as PostmanCollection)).toEqual(JSON.parse(expected.SimplePost))\n })\n\n it('uses default version when not specified', () => {\n expect(convert(JSON.parse(collections.NoVersion) as PostmanCollection)).toEqual(JSON.parse(expected.NoVersion))\n })\n\n it('converts folders to tags', () => {\n expect(convert(JSON.parse(collections.Folders) as PostmanCollection)).toEqual(JSON.parse(expected.Folders))\n })\n\n it('parses GET methods with query strings', () => {\n expect(convert(JSON.parse(collections.GetMethods) as PostmanCollection)).toEqual(JSON.parse(expected.GetMethods))\n })\n\n it.skip('parses header parameters', () => {\n expect(convert(JSON.parse(collections.Headers) as PostmanCollection)).toEqual(JSON.parse(expected.Headers))\n })\n\n it('parses path parameters', () => {\n expect(convert(JSON.parse(collections.PathParams) as PostmanCollection)).toEqual(JSON.parse(expected.PathParams))\n })\n\n it('parses servers from postman collection host', () => {\n expect(convert(JSON.parse(collections.MultipleServers) as PostmanCollection)).toEqual(\n JSON.parse(expected.MultipleServers),\n )\n })\n\n it('parses license and contact from variables', () => {\n expect(convert(JSON.parse(collections.LicenseContact) as PostmanCollection)).toEqual(\n JSON.parse(expected.LicenseContact),\n )\n })\n\n it('parses status codes from tests', () => {\n expect(convert(JSON.parse(collections.ParseStatusCode) as PostmanCollection)).toEqual(\n JSON.parse(expected.ParseStatusCode),\n )\n })\n\n it('parses operations with domain only (no path)', () => {\n expect(convert(JSON.parse(collections.NoPath) as PostmanCollection)).toEqual(JSON.parse(expected.NoPath))\n })\n\n it('converts DELETE operations', () => {\n expect(convert(JSON.parse(collections.DeleteOperation) as PostmanCollection)).toEqual(\n JSON.parse(expected.DeleteOperation),\n )\n })\n\n it('parses global Bearer authorization', () => {\n expect(convert(JSON.parse(collections.AuthBearer) as PostmanCollection)).toEqual(JSON.parse(expected.AuthBearer))\n })\n\n it('parses global Basic authorization', () => {\n expect(convert(JSON.parse(collections.AuthBasic) as PostmanCollection)).toEqual(JSON.parse(expected.AuthBasic))\n })\n\n it('parses URLs with ports', () => {\n expect(convert(JSON.parse(collections.UrlWithPort) as PostmanCollection)).toEqual(JSON.parse(expected.UrlWithPort))\n })\n\n it('parses external docs from variables', () => {\n expect(convert(JSON.parse(collections.ExternalDocs) as PostmanCollection)).toEqual(\n JSON.parse(expected.ExternalDocs),\n )\n })\n\n it('handles empty URL requests', () => {\n expect(convert(JSON.parse(collections.EmptyUrl) as PostmanCollection)).toEqual(JSON.parse(expected.EmptyUrl))\n })\n\n it('uses x-logo from variables', () => {\n expect(convert(JSON.parse(collections.XLogo) as PostmanCollection)).toEqual(JSON.parse(expected.XLogoVar))\n })\n\n it('supports auth at request level', () => {\n expect(convert(JSON.parse(collections.AuthMultiple) as PostmanCollection)).toEqual(\n JSON.parse(expected.AuthMultiple),\n )\n })\n\n it('handles auth defined only at request level', () => {\n expect(convert(JSON.parse(collections.AuthRequest) as PostmanCollection)).toEqual(JSON.parse(expected.AuthRequest))\n })\n\n it('parses POST methods with form data', () => {\n expect(convert(JSON.parse(collections.FormData) as PostmanCollection)).toEqual(JSON.parse(expected.FormData))\n })\n\n it('parses POST methods with urlencoded form data', () => {\n expect(convert(JSON.parse(collections.FormUrlencoded) as PostmanCollection)).toEqual(\n JSON.parse(expected.FormUrlencoded),\n )\n })\n\n it('parses raw body as JSON with text fallback', () => {\n expect(convert(JSON.parse(collections.RawBody) as PostmanCollection)).toEqual(JSON.parse(expected.RawBody))\n })\n\n it.skip('handles empty JSON response bodies', () => {\n expect(convert(JSON.parse(collections.ResponsesEmpty) as PostmanCollection)).toEqual(\n JSON.parse(expected.ResponsesEmpty),\n )\n })\n\n it('includes operationId when brackets selected', () => {\n expect(convert(JSON.parse(collections.OperationIds) as PostmanCollection)).toEqual(\n JSON.parse(expected.OperationIds),\n )\n })\n\n it.skip('adds responses from postman examples', () => {\n expect(convert(JSON.parse(collections.Responses) as PostmanCollection)).toEqual(JSON.parse(expected.Responses))\n })\n\n it('parses nested servers', () => {\n expect(convert(JSON.parse(collections.NestedServers) as PostmanCollection)).toEqual(\n JSON.parse(expected.NestedServers),\n )\n })\n})\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/urlHelpers.test.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { extractPathParameterNames } from "./helpers/urlHelpers.js";
|
|
3
|
-
describe("extractPathParameterNames", () => {
|
|
4
|
-
it("should extract double curly brace parameters", () => {
|
|
5
|
-
expect(extractPathParameterNames("/users/{{userId}}/posts/{{postId}}")).toEqual(["userId", "postId"]);
|
|
6
|
-
});
|
|
7
|
-
it("should extract single curly brace parameters", () => {
|
|
8
|
-
expect(extractPathParameterNames("/users/{userId}/posts/{postId}}")).toEqual(["userId", "postId"]);
|
|
9
|
-
});
|
|
10
|
-
it("should extract colon parameters", () => {
|
|
11
|
-
expect(extractPathParameterNames("/users/:userId/posts/:postId")).toEqual(["userId", "postId"]);
|
|
12
|
-
});
|
|
13
|
-
it("should deduplicate repeated parameters", () => {
|
|
14
|
-
expect(extractPathParameterNames("/users/:id/posts/:id")).toEqual(["id"]);
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
//# sourceMappingURL=urlHelpers.test.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/urlHelpers.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { describe, expect, it } from 'vitest'\n\nimport { extractPathParameterNames } from './helpers/urlHelpers'\n\ndescribe('extractPathParameterNames', () => {\n it('should extract double curly brace parameters', () => {\n expect(extractPathParameterNames('/users/{{userId}}/posts/{{postId}}')).toEqual(['userId', 'postId'])\n })\n\n it('should extract single curly brace parameters', () => {\n expect(extractPathParameterNames('/users/{userId}/posts/{postId}}')).toEqual(['userId', 'postId'])\n })\n\n it('should extract colon parameters', () => {\n expect(extractPathParameterNames('/users/:userId/posts/:postId')).toEqual(['userId', 'postId'])\n })\n\n it('should deduplicate repeated parameters', () => {\n expect(extractPathParameterNames('/users/:id/posts/:id')).toEqual(['id'])\n })\n})\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,UAAU,QAAQ,UAAU;AAErC,SAAS,iCAAiC;AAE1C,SAAS,6BAA6B,MAAM;AAC1C,KAAG,gDAAgD,MAAM;AACvD,WAAO,0BAA0B,oCAAoC,CAAC,EAAE,QAAQ,CAAC,UAAU,QAAQ,CAAC;AAAA,EACtG,CAAC;AAED,KAAG,gDAAgD,MAAM;AACvD,WAAO,0BAA0B,iCAAiC,CAAC,EAAE,QAAQ,CAAC,UAAU,QAAQ,CAAC;AAAA,EACnG,CAAC;AAED,KAAG,mCAAmC,MAAM;AAC1C,WAAO,0BAA0B,8BAA8B,CAAC,EAAE,QAAQ,CAAC,UAAU,QAAQ,CAAC;AAAA,EAChG,CAAC;AAED,KAAG,0CAA0C,MAAM;AACjD,WAAO,0BAA0B,sBAAsB,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;AAAA,EAC1E,CAAC;AACH,CAAC;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|