@scalar/openapi-parser 0.20.1 → 0.20.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 +15 -0
- package/dist/utils/betterAjvErrors/json/utils.d.ts.map +1 -1
- package/dist/utils/betterAjvErrors/utils.d.ts.map +1 -1
- package/dist/utils/betterAjvErrors/validation-errors/base.d.ts.map +1 -1
- package/dist/utils/is-object.d.ts.map +1 -1
- package/dist/utils/join/join.d.ts.map +1 -1
- package/dist/utils/join/merge-objects.d.ts.map +1 -1
- package/dist/utils/openapi/commands/loadCommand.d.ts +2 -2
- package/dist/utils/openapi/commands/upgradeCommand.d.ts +1 -1
- package/dist/utils/openapi/commands/validateCommand.d.ts +1 -1
- package/dist/utils/openapi/openapi.d.ts +2 -2
- package/dist/utils/to-json.d.ts.map +1 -1
- package/dist/utils/to-yaml.d.ts.map +1 -1
- package/dist/utils/transform/utils/addInfoObject.d.ts.map +1 -1
- package/dist/utils/transform/utils/addLatestOpenApiVersion.d.ts.map +1 -1
- package/dist/utils/transform/utils/addMissingTags.d.ts.map +1 -1
- package/dist/utils/transform/utils/normalizeSecuritySchemes.d.ts.map +1 -1
- package/dist/utils/transform/utils/rejectSwaggerDocuments.d.ts.map +1 -1
- package/dist/utils/upgrade-from-two-to-three.d.ts.map +1 -1
- package/dist/utils/upgrade-from-two-to-three.js +118 -64
- package/dist/utils/upgrade-from-two-to-three.js.map +2 -2
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @scalar/openapi-parser
|
|
2
2
|
|
|
3
|
+
## 0.20.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- b8c4b61: fix: migrate global and path item parameters from Swagger 2.0 to OpenAPI 3.0
|
|
8
|
+
|
|
9
|
+
## 0.20.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [06a46f0]
|
|
14
|
+
- Updated dependencies [63283aa]
|
|
15
|
+
- Updated dependencies [99894bc]
|
|
16
|
+
- @scalar/json-magic@0.4.0
|
|
17
|
+
|
|
3
18
|
## 0.20.1
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/betterAjvErrors/json/utils.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/betterAjvErrors/json/utils.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,GAAI,aAAQ,QAMnC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils/betterAjvErrors/utils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils/betterAjvErrors/utils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,GAAI,MAAC,YAAoB,CAAA;AAIlD,eAAO,MAAM,eAAe,yBAAuB,CAAA;AACnD,eAAO,MAAM,YAAY,yBAAoB,CAAA;AAC7C,eAAO,MAAM,WAAW,yBAAmB,CAAA;AAC3C,eAAO,MAAM,SAAS,GAAI,SAAI,QAAuB,CAAA;AAGrD,eAAO,MAAM,WAAW,GAAI,SAAI,cAA6C,CAAA;AAE7E,eAAO,MAAM,WAAW,GAAI,WAAM,MAAkB,SAAI,cACb,CAAA;AAE3C,eAAO,MAAM,SAAS,GAGnB,OAAE,MAA+B,OAAE,QACI,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/utils/betterAjvErrors/validation-errors/base.js"],"names":[],"mappings":"AAIA;IACE;;;;;;;OAMC;IALC;;MAAsB;IACtB,UAAgB;IAChB,YAAoB;IACpB,aAAsB;IACtB,aAAsB;IAGxB;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/utils/betterAjvErrors/validation-errors/base.js"],"names":[],"mappings":"AAIA;IACE;;;;;;;OAMC;IALC;;MAAsB;IACtB,UAAgB;IAChB,YAAoB;IACpB,aAAsB;IACtB,aAAsB;IAGxB;;OAEG;IACH,oBAFY,MAAM,CAIjB;IAED,iBAEC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-object.d.ts","sourceRoot":"","sources":["../../src/utils/is-object.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"is-object.d.ts","sourceRoot":"","sources":["../../src/utils/is-object.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,GAAG,YAAmE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../src/utils/join/join.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAuOxD,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAC9D,KAAK,UAAU,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,SAAS,EAAE,CAAA;CAAE,CAAA;AAEtG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../src/utils/join/join.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAuOxD,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAC9D,KAAK,UAAU,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,SAAS,EAAE,CAAA;CAAE,CAAA;AAEtG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,IAAI,GAAU,QAAQ,aAAa,EAAE,EAAE,SAAS;IAAE,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG,OAAO,CAAC,UAAU,CAkE/G,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-objects.d.ts","sourceRoot":"","sources":["../../../src/utils/join/merge-objects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"merge-objects.d.ts","sourceRoot":"","sources":["../../../src/utils/join/merge-objects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,CAiBxF,CAAA"}
|
|
@@ -4155,7 +4155,7 @@ export declare function loadCommand<T extends Task[]>(previousQueue: Queue<T>, i
|
|
|
4155
4155
|
}]>>;
|
|
4156
4156
|
toJson: () => Promise<string>;
|
|
4157
4157
|
toYaml: () => Promise<string>;
|
|
4158
|
-
upgrade: () => any;
|
|
4158
|
+
upgrade: () => /*elided*/ any;
|
|
4159
4159
|
};
|
|
4160
4160
|
};
|
|
4161
4161
|
};
|
|
@@ -8294,7 +8294,7 @@ export declare function loadCommand<T extends Task[]>(previousQueue: Queue<T>, i
|
|
|
8294
8294
|
}]>>;
|
|
8295
8295
|
toJson: () => Promise<string>;
|
|
8296
8296
|
toYaml: () => Promise<string>;
|
|
8297
|
-
validate: (validateOptions?: ValidateOptions) => any;
|
|
8297
|
+
validate: (validateOptions?: ValidateOptions) => /*elided*/ any;
|
|
8298
8298
|
};
|
|
8299
8299
|
};
|
|
8300
8300
|
};
|
|
@@ -3380,7 +3380,7 @@ export declare function upgradeCommand<T extends Task[]>(previousQueue: Queue<T>
|
|
|
3380
3380
|
}]>>;
|
|
3381
3381
|
toJson: () => Promise<string>;
|
|
3382
3382
|
toYaml: () => Promise<string>;
|
|
3383
|
-
upgrade: () => any;
|
|
3383
|
+
upgrade: () => /*elided*/ any;
|
|
3384
3384
|
};
|
|
3385
3385
|
};
|
|
3386
3386
|
};
|
|
@@ -3425,7 +3425,7 @@ export declare function validateCommand<T extends Task[]>(previousQueue: Queue<T
|
|
|
3425
3425
|
}]>>;
|
|
3426
3426
|
toJson: () => Promise<string>;
|
|
3427
3427
|
toYaml: () => Promise<string>;
|
|
3428
|
-
validate: (validateOptions?: ValidateOptions) => any;
|
|
3428
|
+
validate: (validateOptions?: ValidateOptions) => /*elided*/ any;
|
|
3429
3429
|
};
|
|
3430
3430
|
};
|
|
3431
3431
|
};
|
|
@@ -625,7 +625,7 @@ export declare function openapi(globalOptions?: OpenApiOptions): {
|
|
|
625
625
|
get: () => Promise<import("../../types/index.js").Merge<import("../../types/index.js").LoadResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").EmptyCommandChainResult>>>>>>>>>>>>>>>>>>>>>>>>;
|
|
626
626
|
toJson: () => Promise<string>;
|
|
627
627
|
toYaml: () => Promise<string>;
|
|
628
|
-
upgrade: () => any;
|
|
628
|
+
upgrade: () => /*elided*/ any;
|
|
629
629
|
};
|
|
630
630
|
};
|
|
631
631
|
};
|
|
@@ -1244,7 +1244,7 @@ export declare function openapi(globalOptions?: OpenApiOptions): {
|
|
|
1244
1244
|
get: () => Promise<import("../../types/index.js").Merge<import("../../types/index.js").LoadResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").Merge<import("../../types/index.js").ValidateResult, import("../../types/index.js").Merge<import("../../types/index.js").UpgradeResult, import("../../types/index.js").EmptyCommandChainResult>>>>>>>>>>>>>>>>>>>>>>>>;
|
|
1245
1245
|
toJson: () => Promise<string>;
|
|
1246
1246
|
toYaml: () => Promise<string>;
|
|
1247
|
-
validate: (validateOptions?: import("../validate.js").ValidateOptions) => any;
|
|
1247
|
+
validate: (validateOptions?: import("../validate.js").ValidateOptions) => /*elided*/ any;
|
|
1248
1248
|
};
|
|
1249
1249
|
};
|
|
1250
1250
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-json.d.ts","sourceRoot":"","sources":["../../src/utils/to-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"to-json.d.ts","sourceRoot":"","sources":["../../src/utils/to-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,MAAM,GAAI,OAAO,SAAS,WAAmC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-yaml.d.ts","sourceRoot":"","sources":["../../src/utils/to-yaml.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"to-yaml.d.ts","sourceRoot":"","sources":["../../src/utils/to-yaml.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,MAAM,GAAI,OAAO,SAAS,WAAqB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addInfoObject.d.ts","sourceRoot":"","sources":["../../../../src/utils/transform/utils/addInfoObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,aAAa,QAAQ,CAAA;AAClC,eAAO,MAAM,eAAe,QAAQ,CAAA;AAEpC,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"addInfoObject.d.ts","sourceRoot":"","sources":["../../../../src/utils/transform/utils/addInfoObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,aAAa,QAAQ,CAAA;AAClC,eAAO,MAAM,eAAe,QAAQ,CAAA;AAEpC,eAAO,MAAM,aAAa,GAAI,YAAY,SAAS;;CAOjD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addLatestOpenApiVersion.d.ts","sourceRoot":"","sources":["../../../../src/utils/transform/utils/addLatestOpenApiVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,uBAAuB,UAAU,CAAA;AAE9C,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"addLatestOpenApiVersion.d.ts","sourceRoot":"","sources":["../../../../src/utils/transform/utils/addLatestOpenApiVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,uBAAuB,UAAU,CAAA;AAE9C,eAAO,MAAM,uBAAuB,GAAI,YAAY,SAAS;;CAG3D,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addMissingTags.d.ts","sourceRoot":"","sources":["../../../../src/utils/transform/utils/addMissingTags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"addMissingTags.d.ts","sourceRoot":"","sources":["../../../../src/utils/transform/utils/addMissingTags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,cAAc,GAAI,YAAY,SAAS,cAmCnD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeSecuritySchemes.d.ts","sourceRoot":"","sources":["../../../../src/utils/transform/utils/normalizeSecuritySchemes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"normalizeSecuritySchemes.d.ts","sourceRoot":"","sources":["../../../../src/utils/transform/utils/normalizeSecuritySchemes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,wBAAwB,GAAI,YAAY,SAAS,cAiD7D,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rejectSwaggerDocuments.d.ts","sourceRoot":"","sources":["../../../../src/utils/transform/utils/rejectSwaggerDocuments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"rejectSwaggerDocuments.d.ts","sourceRoot":"","sources":["../../../../src/utils/transform/utils/rejectSwaggerDocuments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,sBAAsB,GAAI,WAAW,SAAS,cAM1D,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade-from-two-to-three.d.ts","sourceRoot":"","sources":["../../src/utils/upgrade-from-two-to-three.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAoBxD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,qBAAqB,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"upgrade-from-two-to-three.d.ts","sourceRoot":"","sources":["../../src/utils/upgrade-from-two-to-three.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAoBxD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,qBAAqB,EAAE,aAAa,0CA4OzE"}
|
|
@@ -52,78 +52,60 @@ function upgradeFromTwoToThree(originalSpecification) {
|
|
|
52
52
|
}
|
|
53
53
|
return schema;
|
|
54
54
|
});
|
|
55
|
+
if (Object.hasOwn(specification, "parameters")) {
|
|
56
|
+
specification.components ??= {};
|
|
57
|
+
const params = {};
|
|
58
|
+
const bodyParams = {};
|
|
59
|
+
for (const [name, param] of Object.entries(specification.parameters ?? {})) {
|
|
60
|
+
if (param.in === "body") {
|
|
61
|
+
bodyParams[name] = migrateBodyParameter(
|
|
62
|
+
param,
|
|
63
|
+
specification.consumes ?? ["application/json"]
|
|
64
|
+
);
|
|
65
|
+
} else if (param.in === "formData") {
|
|
66
|
+
bodyParams[name] = migrateFormDataParameter(param);
|
|
67
|
+
} else {
|
|
68
|
+
params[name] = transformParameterObject(param);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (Object.keys(params).length > 0) {
|
|
72
|
+
;
|
|
73
|
+
specification.components.parameters = params;
|
|
74
|
+
}
|
|
75
|
+
if (Object.keys(bodyParams).length > 0) {
|
|
76
|
+
;
|
|
77
|
+
specification.components.requestBodies = bodyParams;
|
|
78
|
+
}
|
|
79
|
+
delete specification.parameters;
|
|
80
|
+
}
|
|
55
81
|
if (typeof specification.paths === "object") {
|
|
56
82
|
for (const path in specification.paths) {
|
|
57
83
|
if (Object.hasOwn(specification.paths, path)) {
|
|
58
84
|
const pathItem = specification.paths[path];
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
85
|
+
let requestBodyObject;
|
|
86
|
+
for (const methodOrParameters in pathItem) {
|
|
87
|
+
if (methodOrParameters === "parameters" && Object.hasOwn(pathItem, methodOrParameters)) {
|
|
88
|
+
const pathItemParameters = migrateParameters(
|
|
89
|
+
pathItem.parameters,
|
|
90
|
+
specification.consumes ?? ["application/json"]
|
|
91
|
+
);
|
|
92
|
+
pathItem.parameters = pathItemParameters.parameters;
|
|
93
|
+
requestBodyObject = pathItemParameters.requestBody;
|
|
94
|
+
} else if (Object.hasOwn(pathItem, methodOrParameters)) {
|
|
95
|
+
const operationItem = pathItem[methodOrParameters];
|
|
96
|
+
if (requestBodyObject) {
|
|
97
|
+
operationItem.requestBody = requestBodyObject;
|
|
98
|
+
}
|
|
62
99
|
if (operationItem.parameters) {
|
|
63
|
-
const
|
|
64
|
-
operationItem.parameters
|
|
100
|
+
const migrationResult = migrateParameters(
|
|
101
|
+
operationItem.parameters,
|
|
102
|
+
operationItem.consumes ?? specification.consumes ?? ["application/json"]
|
|
65
103
|
);
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const consumes = specification.consumes ?? operationItem.consumes ?? ["application/json"];
|
|
70
|
-
if (typeof operationItem.requestBody !== "object") {
|
|
71
|
-
operationItem.requestBody = {};
|
|
72
|
-
}
|
|
73
|
-
if (typeof operationItem.requestBody.content !== "object") {
|
|
74
|
-
operationItem.requestBody.content = {};
|
|
75
|
-
}
|
|
76
|
-
const { schema, ...requestBody } = bodyParameter;
|
|
77
|
-
operationItem.requestBody = {
|
|
78
|
-
...operationItem.requestBody,
|
|
79
|
-
...requestBody
|
|
80
|
-
};
|
|
81
|
-
for (const type of consumes) {
|
|
82
|
-
operationItem.requestBody.content[type] = {
|
|
83
|
-
schema
|
|
84
|
-
};
|
|
85
|
-
}
|
|
104
|
+
operationItem.parameters = migrationResult.parameters;
|
|
105
|
+
if (migrationResult.requestBody) {
|
|
106
|
+
operationItem.requestBody = migrationResult.requestBody;
|
|
86
107
|
}
|
|
87
|
-
operationItem.parameters = operationItem.parameters.filter(
|
|
88
|
-
(parameter) => parameter.in !== "body"
|
|
89
|
-
);
|
|
90
108
|
delete operationItem.consumes;
|
|
91
|
-
const formDataParameters = operationItem.parameters.filter(
|
|
92
|
-
(parameter) => parameter.in === "formData"
|
|
93
|
-
);
|
|
94
|
-
if (formDataParameters.length > 0) {
|
|
95
|
-
if (typeof operationItem.requestBody !== "object") {
|
|
96
|
-
operationItem.requestBody = {};
|
|
97
|
-
}
|
|
98
|
-
if (typeof operationItem.requestBody.content !== "object") {
|
|
99
|
-
operationItem.requestBody.content = {};
|
|
100
|
-
}
|
|
101
|
-
operationItem.requestBody.content["application/x-www-form-urlencoded"] = {
|
|
102
|
-
schema: {
|
|
103
|
-
type: "object",
|
|
104
|
-
properties: {},
|
|
105
|
-
required: []
|
|
106
|
-
// Initialize required array
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
for (const param of formDataParameters) {
|
|
110
|
-
operationItem.requestBody.content["application/x-www-form-urlencoded"].schema.properties[param.name] = {
|
|
111
|
-
type: param.type,
|
|
112
|
-
description: param.description
|
|
113
|
-
};
|
|
114
|
-
if (param.required) {
|
|
115
|
-
operationItem.requestBody.content["application/x-www-form-urlencoded"].schema.required.push(
|
|
116
|
-
param.name
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
operationItem.parameters = operationItem.parameters.filter(
|
|
121
|
-
(parameter) => parameter.in !== "formData"
|
|
122
|
-
);
|
|
123
|
-
}
|
|
124
|
-
operationItem.parameters = operationItem.parameters.map(
|
|
125
|
-
(parameter) => transformParameterObject(parameter)
|
|
126
|
-
);
|
|
127
109
|
}
|
|
128
110
|
if (operationItem.responses) {
|
|
129
111
|
for (const response in operationItem.responses) {
|
|
@@ -200,6 +182,8 @@ function upgradeFromTwoToThree(originalSpecification) {
|
|
|
200
182
|
}
|
|
201
183
|
delete specification.securityDefinitions;
|
|
202
184
|
}
|
|
185
|
+
delete specification.consumes;
|
|
186
|
+
delete specification.produces;
|
|
203
187
|
return specification;
|
|
204
188
|
}
|
|
205
189
|
function transformItemsObject(obj) {
|
|
@@ -280,6 +264,76 @@ function getParameterSerializationStyle(parameter) {
|
|
|
280
264
|
const collectionFormat = parameter.collectionFormat ?? "csv";
|
|
281
265
|
return serializationStyles[parameter.in][collectionFormat];
|
|
282
266
|
}
|
|
267
|
+
function migrateBodyParameter(bodyParameter, consumes) {
|
|
268
|
+
delete bodyParameter.name;
|
|
269
|
+
delete bodyParameter.in;
|
|
270
|
+
const { schema, ...requestBody } = bodyParameter;
|
|
271
|
+
const requestBodyObject = {
|
|
272
|
+
content: {},
|
|
273
|
+
...requestBody
|
|
274
|
+
};
|
|
275
|
+
for (const type of consumes) {
|
|
276
|
+
requestBodyObject.content[type] = {
|
|
277
|
+
schema
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
return requestBodyObject;
|
|
281
|
+
}
|
|
282
|
+
function migrateFormDataParameter(parameters) {
|
|
283
|
+
const requestBodyObject = {
|
|
284
|
+
content: {}
|
|
285
|
+
};
|
|
286
|
+
requestBodyObject.content["application/x-www-form-urlencoded"] = {
|
|
287
|
+
schema: {
|
|
288
|
+
type: "object",
|
|
289
|
+
properties: {},
|
|
290
|
+
required: []
|
|
291
|
+
// Initialize required array
|
|
292
|
+
}
|
|
293
|
+
};
|
|
294
|
+
for (const param of parameters) {
|
|
295
|
+
requestBodyObject.content["application/x-www-form-urlencoded"].schema.properties[param.name] = {
|
|
296
|
+
type: param.type,
|
|
297
|
+
description: param.description
|
|
298
|
+
};
|
|
299
|
+
if (param.required) {
|
|
300
|
+
requestBodyObject.content["application/x-www-form-urlencoded"].schema.required.push(param.name);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return requestBodyObject;
|
|
304
|
+
}
|
|
305
|
+
function migrateParameters(parameters, consumes) {
|
|
306
|
+
const result = {
|
|
307
|
+
parameters: parameters.filter((parameter) => !(parameter.in === "body" || parameter.in === "formData")).map((parameter) => transformParameterObject(parameter))
|
|
308
|
+
};
|
|
309
|
+
const bodyParameter = structuredClone(
|
|
310
|
+
parameters.find((parameter) => parameter.in === "body") ?? {}
|
|
311
|
+
);
|
|
312
|
+
if (bodyParameter && Object.keys(bodyParameter).length) {
|
|
313
|
+
result.requestBody = migrateBodyParameter(bodyParameter, consumes);
|
|
314
|
+
}
|
|
315
|
+
const formDataParameters = parameters.filter((parameter) => parameter.in === "formData");
|
|
316
|
+
if (formDataParameters.length > 0) {
|
|
317
|
+
const requestBodyObject = migrateFormDataParameter(formDataParameters);
|
|
318
|
+
if (typeof result.requestBody !== "object") {
|
|
319
|
+
result.requestBody = requestBodyObject;
|
|
320
|
+
} else {
|
|
321
|
+
result.requestBody = {
|
|
322
|
+
...result.requestBody,
|
|
323
|
+
content: {
|
|
324
|
+
...result.requestBody.content,
|
|
325
|
+
...requestBodyObject.content
|
|
326
|
+
}
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
if (typeof result.requestBody !== "object") {
|
|
330
|
+
result.requestBody = {
|
|
331
|
+
content: {}
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
return result;
|
|
336
|
+
}
|
|
283
337
|
export {
|
|
284
338
|
upgradeFromTwoToThree
|
|
285
339
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/upgrade-from-two-to-three.ts"],
|
|
4
|
-
"sourcesContent": ["import type { OpenAPIV2, OpenAPIV3 } from '@scalar/openapi-types'\nimport type { UnknownObject } from '@scalar/types/utils'\n\nimport { traverse } from './traverse'\n\n/** Update the flow names to OpenAPI 3.1.0 format */\nconst upgradeFlow = (flow: string): 'implicit' | 'password' | 'clientCredentials' | 'authorizationCode' => {\n switch (flow) {\n case 'application':\n return 'clientCredentials'\n case 'accessCode':\n return 'authorizationCode'\n case 'implicit':\n return 'implicit'\n case 'password':\n return 'password'\n default:\n return flow as never\n }\n}\n\n/**\n * Upgrade Swagger 2.0 to OpenAPI 3.0\n *\n * https://swagger.io/blog/news/whats-new-in-openapi-3-0/\n */\nexport function upgradeFromTwoToThree(originalSpecification: UnknownObject) {\n let specification = originalSpecification\n\n // Version\n if (\n specification !== null &&\n typeof specification === 'object' &&\n typeof specification.swagger === 'string' &&\n specification.swagger?.startsWith('2.0')\n ) {\n specification.openapi = '3.0.4'\n delete specification.swagger\n } else {\n // Skip if it's something else than 3.0.x\n return specification\n }\n\n // Servers\n if (specification.host) {\n const schemes =\n Array.isArray(specification.schemes) && specification.schemes?.length ? specification.schemes : ['http']\n\n specification.servers = schemes.map((scheme: string[]) => ({\n url: `${scheme}://${specification.host}${specification.basePath ?? ''}`,\n }))\n\n delete specification.basePath\n delete specification.schemes\n delete specification.host\n } else if (specification.basePath) {\n specification.servers = [{ url: specification.basePath }]\n delete specification.basePath\n }\n\n // Schemas\n if (specification.definitions) {\n specification.components = Object.assign({}, specification.components, {\n schemas: specification.definitions,\n })\n\n delete specification.definitions\n\n // Rewrite $refs to definitions\n specification = traverse(specification, (schema) => {\n // Rewrite $refs to components\n if (typeof schema.$ref === 'string' && schema.$ref.startsWith('#/definitions/')) {\n schema.$ref = schema.$ref.replace(/^#\\/definitions\\//, '#/components/schemas/')\n }\n\n return schema\n })\n }\n\n // Transform file type to string with binary format\n specification = traverse(specification, (schema) => {\n if (schema.type === 'file') {\n schema.type = 'string'\n schema.format = 'binary'\n }\n\n return schema\n })\n\n // Paths\n if (typeof specification.paths === 'object') {\n for (const path in specification.paths) {\n if (Object.hasOwn(specification.paths, path)) {\n const pathItem = specification.paths[path]\n\n for (const method in pathItem) {\n if (Object.hasOwn(pathItem, method)) {\n const operationItem = pathItem[method]\n\n // Request bodies\n if (operationItem.parameters) {\n const bodyParameter = structuredClone(\n operationItem.parameters.find((parameter: OpenAPIV3.ParameterObject) => parameter.in === 'body') ?? {},\n )\n\n if (bodyParameter && Object.keys(bodyParameter).length) {\n delete bodyParameter.name\n delete bodyParameter.in\n\n const consumes = specification.consumes ?? operationItem.consumes ?? ['application/json']\n\n if (typeof operationItem.requestBody !== 'object') {\n operationItem.requestBody = {}\n }\n\n if (typeof operationItem.requestBody.content !== 'object') {\n operationItem.requestBody.content = {}\n }\n\n const { schema, ...requestBody } = bodyParameter\n\n operationItem.requestBody = {\n ...operationItem.requestBody,\n ...requestBody,\n }\n\n for (const type of consumes) {\n operationItem.requestBody.content[type] = {\n schema: schema,\n }\n }\n }\n\n // Delete body parameter\n operationItem.parameters = operationItem.parameters.filter(\n (parameter: OpenAPIV2.ParameterObject) => parameter.in !== 'body',\n )\n\n delete operationItem.consumes\n\n // formData parameters\n const formDataParameters = operationItem.parameters.filter(\n (parameter: OpenAPIV2.ParameterObject) => parameter.in === 'formData',\n )\n\n if (formDataParameters.length > 0) {\n if (typeof operationItem.requestBody !== 'object') {\n operationItem.requestBody = {}\n }\n\n if (typeof operationItem.requestBody.content !== 'object') {\n operationItem.requestBody.content = {}\n }\n\n operationItem.requestBody.content['application/x-www-form-urlencoded'] = {\n schema: {\n type: 'object',\n properties: {},\n required: [], // Initialize required array\n },\n }\n\n for (const param of formDataParameters) {\n operationItem.requestBody.content['application/x-www-form-urlencoded'].schema.properties[param.name] =\n {\n type: param.type,\n description: param.description,\n }\n\n // Add to required array if param is required\n if (param.required) {\n operationItem.requestBody.content['application/x-www-form-urlencoded'].schema.required.push(\n param.name,\n )\n }\n }\n\n // Remove formData parameters from the parameters array\n operationItem.parameters = operationItem.parameters.filter(\n (parameter: OpenAPIV2.ParameterObject) => parameter.in !== 'formData',\n )\n }\n\n operationItem.parameters = operationItem.parameters.map((parameter) =>\n transformParameterObject(parameter),\n )\n }\n\n // Responses\n if (operationItem.responses) {\n for (const response in operationItem.responses) {\n if (Object.hasOwn(operationItem.responses, response)) {\n const responseItem = operationItem.responses[response]\n\n if (responseItem.headers) {\n responseItem.headers = Object.entries(responseItem.headers).reduce((acc, [name, header]) => {\n return {\n [name]: transformParameterObject(header),\n ...acc,\n }\n }, {})\n }\n if (responseItem.schema) {\n const produces = specification.produces ?? operationItem.produces ?? ['application/json']\n\n if (typeof responseItem.content !== 'object') {\n responseItem.content = {}\n }\n\n for (const type of produces) {\n responseItem.content[type] = {\n schema: responseItem.schema,\n }\n }\n\n delete responseItem.schema\n }\n }\n }\n }\n\n delete operationItem.produces\n\n // Delete empty parameters\n if (operationItem.parameters?.length === 0) {\n delete operationItem.parameters\n }\n }\n }\n }\n }\n }\n\n // Upgrade securityDefinitions\n if (specification.securityDefinitions) {\n if (typeof specification.components !== 'object') {\n specification.components = {}\n }\n\n // Assert that components is of type OpenAPIV3.ComponentsObject\n specification.components = specification.components as OpenAPIV3.ComponentsObject\n\n Object.assign(specification.components, { securitySchemes: {} })\n\n for (const [key, securityScheme] of Object.entries(specification.securityDefinitions)) {\n if (typeof securityScheme === 'object') {\n if ('type' in securityScheme && securityScheme.type === 'oauth2') {\n const { flow, authorizationUrl, tokenUrl, scopes } = securityScheme as {\n type: 'oauth2'\n flow?: string\n authorizationUrl?: string\n tokenUrl?: string\n scopes?: Record<string, string>\n }\n\n // Convert flow values to OpenAPI 3.1.0 format\n\n // Assert that securitySchemes is of type OpenAPIV3.SecuritySchemeObject\n Object.assign((specification.components as OpenAPIV3.ComponentsObject).securitySchemes, {\n [key]: {\n type: 'oauth2',\n flows: {\n [upgradeFlow(flow)]: Object.assign(\n {},\n authorizationUrl && { authorizationUrl },\n tokenUrl && { tokenUrl },\n scopes && { scopes },\n ),\n },\n },\n })\n } else if ('type' in securityScheme && securityScheme.type === 'basic') {\n Object.assign((specification.components as OpenAPIV3.ComponentsObject).securitySchemes, {\n [key]: {\n type: 'http',\n scheme: 'basic',\n },\n })\n } else {\n Object.assign((specification.components as OpenAPIV3.ComponentsObject).securitySchemes, {\n [key]: securityScheme,\n })\n }\n }\n }\n\n delete specification.securityDefinitions\n }\n\n return specification as OpenAPIV3.Document\n}\n\nfunction transformItemsObject<T extends Record<PropertyKey, unknown>>(obj: T): OpenAPIV3.SchemaObject {\n const schemaProperties = [\n 'type',\n 'format',\n 'items',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'enum',\n 'multipleOf',\n ]\n\n return schemaProperties.reduce((acc, property) => {\n if (Object.hasOwn(obj, property)) {\n acc[property] = obj[property]\n delete obj[property]\n }\n\n return acc\n }, {} as OpenAPIV3.SchemaObject)\n}\n\nfunction transformParameterObject(parameter: OpenAPIV2.ParameterObject): OpenAPIV3.ParameterObject {\n // it is important to call getParameterSerializationStyle first because transformItemsObject modifies properties on which getParameterSerializationStyle rely on\n const serializationStyle = getParameterSerializationStyle(parameter)\n const schema = transformItemsObject(parameter)\n\n delete parameter.collectionFormat\n delete parameter.default\n\n return {\n schema,\n ...serializationStyle,\n ...parameter,\n }\n}\n\ntype CollectionFormat = 'csv' | 'ssv' | 'tsv' | 'pipes' | 'multi'\n\ntype ParameterSerializationStyle = { style?: string; explode?: boolean }\n\nconst querySerialization: Record<CollectionFormat, ParameterSerializationStyle> = {\n ssv: {\n style: 'spaceDelimited',\n explode: false,\n },\n pipes: {\n style: 'pipeDelimited',\n explode: false,\n },\n multi: {\n style: 'form',\n explode: true,\n },\n csv: {\n style: 'form',\n explode: false,\n },\n tsv: {},\n}\n\nconst pathAndHeaderSerialization: Record<CollectionFormat, ParameterSerializationStyle> = {\n ssv: {},\n pipes: {},\n multi: {},\n csv: {\n style: 'simple',\n explode: false,\n },\n tsv: {},\n}\n\nconst serializationStyles = {\n header: pathAndHeaderSerialization,\n query: querySerialization,\n path: pathAndHeaderSerialization,\n} as const\n\nfunction getParameterSerializationStyle(parameter: OpenAPIV2.ParameterObject): ParameterSerializationStyle {\n if (\n parameter.type !== 'array' ||\n !(parameter.in === 'query' || parameter.in === 'path' || parameter.in === 'header')\n ) {\n return {}\n }\n\n const collectionFormat = parameter.collectionFormat ?? 'csv'\n\n return serializationStyles[parameter.in][collectionFormat]\n}\n"],
|
|
5
|
-
"mappings": "AAGA,SAAS,gBAAgB;AAGzB,MAAM,cAAc,CAAC,SAAsF;AACzG,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAOO,SAAS,sBAAsB,uBAAsC;AAC1E,MAAI,gBAAgB;AAGpB,MACE,kBAAkB,QAClB,OAAO,kBAAkB,YACzB,OAAO,cAAc,YAAY,YACjC,cAAc,SAAS,WAAW,KAAK,GACvC;AACA,kBAAc,UAAU;AACxB,WAAO,cAAc;AAAA,EACvB,OAAO;AAEL,WAAO;AAAA,EACT;AAGA,MAAI,cAAc,MAAM;AACtB,UAAM,UACJ,MAAM,QAAQ,cAAc,OAAO,KAAK,cAAc,SAAS,SAAS,cAAc,UAAU,CAAC,MAAM;AAEzG,kBAAc,UAAU,QAAQ,IAAI,CAAC,YAAsB;AAAA,MACzD,KAAK,GAAG,MAAM,MAAM,cAAc,IAAI,GAAG,cAAc,YAAY,EAAE;AAAA,IACvE,EAAE;AAEF,WAAO,cAAc;AACrB,WAAO,cAAc;AACrB,WAAO,cAAc;AAAA,EACvB,WAAW,cAAc,UAAU;AACjC,kBAAc,UAAU,CAAC,EAAE,KAAK,cAAc,SAAS,CAAC;AACxD,WAAO,cAAc;AAAA,EACvB;AAGA,MAAI,cAAc,aAAa;AAC7B,kBAAc,aAAa,OAAO,OAAO,CAAC,GAAG,cAAc,YAAY;AAAA,MACrE,SAAS,cAAc;AAAA,IACzB,CAAC;AAED,WAAO,cAAc;AAGrB,oBAAgB,SAAS,eAAe,CAAC,WAAW;AAElD,UAAI,OAAO,OAAO,SAAS,YAAY,OAAO,KAAK,WAAW,gBAAgB,GAAG;AAC/E,eAAO,OAAO,OAAO,KAAK,QAAQ,qBAAqB,uBAAuB;AAAA,MAChF;AAEA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAGA,kBAAgB,SAAS,eAAe,CAAC,WAAW;AAClD,QAAI,OAAO,SAAS,QAAQ;AAC1B,aAAO,OAAO;AACd,aAAO,SAAS;AAAA,IAClB;AAEA,WAAO;AAAA,EACT,CAAC;
|
|
4
|
+
"sourcesContent": ["import type { OpenAPIV2, OpenAPIV3 } from '@scalar/openapi-types'\nimport type { UnknownObject } from '@scalar/types/utils'\n\nimport { traverse } from './traverse'\n\n/** Update the flow names to OpenAPI 3.1.0 format */\nconst upgradeFlow = (flow: string): 'implicit' | 'password' | 'clientCredentials' | 'authorizationCode' => {\n switch (flow) {\n case 'application':\n return 'clientCredentials'\n case 'accessCode':\n return 'authorizationCode'\n case 'implicit':\n return 'implicit'\n case 'password':\n return 'password'\n default:\n return flow as never\n }\n}\n\n/**\n * Upgrade Swagger 2.0 to OpenAPI 3.0\n *\n * https://swagger.io/blog/news/whats-new-in-openapi-3-0/\n */\nexport function upgradeFromTwoToThree(originalSpecification: UnknownObject) {\n let specification = originalSpecification\n\n // Version\n if (\n specification !== null &&\n typeof specification === 'object' &&\n typeof specification.swagger === 'string' &&\n specification.swagger?.startsWith('2.0')\n ) {\n specification.openapi = '3.0.4'\n delete specification.swagger\n } else {\n // Skip if it's something else than 3.0.x\n return specification\n }\n\n // Servers\n if (specification.host) {\n const schemes =\n Array.isArray(specification.schemes) && specification.schemes?.length ? specification.schemes : ['http']\n\n specification.servers = schemes.map((scheme: string[]) => ({\n url: `${scheme}://${specification.host}${specification.basePath ?? ''}`,\n }))\n\n delete specification.basePath\n delete specification.schemes\n delete specification.host\n } else if (specification.basePath) {\n specification.servers = [{ url: specification.basePath }]\n delete specification.basePath\n }\n\n // Schemas\n if (specification.definitions) {\n specification.components = Object.assign({}, specification.components, {\n schemas: specification.definitions,\n })\n\n delete specification.definitions\n\n // Rewrite $refs to definitions\n specification = traverse(specification, (schema) => {\n // Rewrite $refs to components\n if (typeof schema.$ref === 'string' && schema.$ref.startsWith('#/definitions/')) {\n schema.$ref = schema.$ref.replace(/^#\\/definitions\\//, '#/components/schemas/')\n }\n\n return schema\n })\n }\n\n // Transform file type to string with binary format\n specification = traverse(specification, (schema) => {\n if (schema.type === 'file') {\n schema.type = 'string'\n schema.format = 'binary'\n }\n\n return schema\n })\n\n if (Object.hasOwn(specification, 'parameters')) {\n specification.components ??= {}\n\n const params = {}\n const bodyParams = {}\n for (const [name, param] of Object.entries(specification.parameters ?? {})) {\n if (param.in === 'body') {\n bodyParams[name] = migrateBodyParameter(\n param,\n (specification.consumes as string[] | undefined) ?? ['application/json'],\n )\n } else if (param.in === 'formData') {\n bodyParams[name] = migrateFormDataParameter(param)\n } else {\n params[name] = transformParameterObject(param)\n }\n }\n\n if (Object.keys(params).length > 0) {\n ;(specification.components as UnknownObject).parameters = params\n }\n\n if (Object.keys(bodyParams).length > 0) {\n ;(specification.components as UnknownObject).requestBodies = bodyParams\n }\n\n delete specification.parameters\n }\n\n // Paths\n if (typeof specification.paths === 'object') {\n for (const path in specification.paths) {\n if (Object.hasOwn(specification.paths, path)) {\n const pathItem = specification.paths[path]\n\n let requestBodyObject: OpenAPIV3.RequestBodyObject | undefined\n\n for (const methodOrParameters in pathItem) {\n if (methodOrParameters === 'parameters' && Object.hasOwn(pathItem, methodOrParameters)) {\n const pathItemParameters = migrateParameters(\n pathItem.parameters,\n (specification.consumes as string[] | undefined) ?? ['application/json'],\n )\n\n pathItem.parameters = pathItemParameters.parameters\n requestBodyObject = pathItemParameters.requestBody\n } else if (Object.hasOwn(pathItem, methodOrParameters)) {\n const operationItem = pathItem[methodOrParameters]\n\n if (requestBodyObject) {\n operationItem.requestBody = requestBodyObject\n }\n\n if (operationItem.parameters) {\n const migrationResult = migrateParameters(\n operationItem.parameters,\n operationItem.consumes ?? specification.consumes ?? ['application/json'],\n )\n\n operationItem.parameters = migrationResult.parameters\n\n if (migrationResult.requestBody) {\n operationItem.requestBody = migrationResult.requestBody\n }\n\n delete operationItem.consumes\n }\n\n // Responses\n if (operationItem.responses) {\n for (const response in operationItem.responses) {\n if (Object.hasOwn(operationItem.responses, response)) {\n const responseItem = operationItem.responses[response]\n\n if (responseItem.headers) {\n responseItem.headers = Object.entries(responseItem.headers).reduce((acc, [name, header]) => {\n return {\n [name]: transformParameterObject(header),\n ...acc,\n }\n }, {})\n }\n if (responseItem.schema) {\n const produces = specification.produces ?? operationItem.produces ?? ['application/json']\n\n if (typeof responseItem.content !== 'object') {\n responseItem.content = {}\n }\n\n for (const type of produces) {\n responseItem.content[type] = {\n schema: responseItem.schema,\n }\n }\n\n delete responseItem.schema\n }\n }\n }\n }\n\n delete operationItem.produces\n\n // Delete empty parameters\n if (operationItem.parameters?.length === 0) {\n delete operationItem.parameters\n }\n }\n }\n }\n }\n }\n\n // Upgrade securityDefinitions\n if (specification.securityDefinitions) {\n if (typeof specification.components !== 'object') {\n specification.components = {}\n }\n\n // Assert that components is of type OpenAPIV3.ComponentsObject\n specification.components = specification.components as OpenAPIV3.ComponentsObject\n\n Object.assign(specification.components, { securitySchemes: {} })\n\n for (const [key, securityScheme] of Object.entries(specification.securityDefinitions)) {\n if (typeof securityScheme === 'object') {\n if ('type' in securityScheme && securityScheme.type === 'oauth2') {\n const { flow, authorizationUrl, tokenUrl, scopes } = securityScheme as {\n type: 'oauth2'\n flow?: string\n authorizationUrl?: string\n tokenUrl?: string\n scopes?: Record<string, string>\n }\n\n // Convert flow values to OpenAPI 3.1.0 format\n\n // Assert that securitySchemes is of type OpenAPIV3.SecuritySchemeObject\n Object.assign((specification.components as OpenAPIV3.ComponentsObject).securitySchemes, {\n [key]: {\n type: 'oauth2',\n flows: {\n [upgradeFlow(flow)]: Object.assign(\n {},\n authorizationUrl && { authorizationUrl },\n tokenUrl && { tokenUrl },\n scopes && { scopes },\n ),\n },\n },\n })\n } else if ('type' in securityScheme && securityScheme.type === 'basic') {\n Object.assign((specification.components as OpenAPIV3.ComponentsObject).securitySchemes, {\n [key]: {\n type: 'http',\n scheme: 'basic',\n },\n })\n } else {\n Object.assign((specification.components as OpenAPIV3.ComponentsObject).securitySchemes, {\n [key]: securityScheme,\n })\n }\n }\n }\n\n delete specification.securityDefinitions\n }\n\n delete specification.consumes\n delete specification.produces\n\n return specification as OpenAPIV3.Document\n}\n\nfunction transformItemsObject<T extends Record<PropertyKey, unknown>>(obj: T): OpenAPIV3.SchemaObject {\n const schemaProperties = [\n 'type',\n 'format',\n 'items',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'enum',\n 'multipleOf',\n ]\n\n return schemaProperties.reduce((acc, property) => {\n if (Object.hasOwn(obj, property)) {\n acc[property] = obj[property]\n delete obj[property]\n }\n\n return acc\n }, {} as OpenAPIV3.SchemaObject)\n}\n\nfunction transformParameterObject(parameter: OpenAPIV2.ParameterObject): OpenAPIV3.ParameterObject {\n // it is important to call getParameterSerializationStyle first because transformItemsObject modifies properties on which getParameterSerializationStyle rely on\n const serializationStyle = getParameterSerializationStyle(parameter)\n const schema = transformItemsObject(parameter)\n\n delete parameter.collectionFormat\n delete parameter.default\n\n return {\n schema,\n ...serializationStyle,\n ...parameter,\n }\n}\n\ntype CollectionFormat = 'csv' | 'ssv' | 'tsv' | 'pipes' | 'multi'\n\ntype ParameterSerializationStyle = { style?: string; explode?: boolean }\n\nconst querySerialization: Record<CollectionFormat, ParameterSerializationStyle> = {\n ssv: {\n style: 'spaceDelimited',\n explode: false,\n },\n pipes: {\n style: 'pipeDelimited',\n explode: false,\n },\n multi: {\n style: 'form',\n explode: true,\n },\n csv: {\n style: 'form',\n explode: false,\n },\n tsv: {},\n}\n\nconst pathAndHeaderSerialization: Record<CollectionFormat, ParameterSerializationStyle> = {\n ssv: {},\n pipes: {},\n multi: {},\n csv: {\n style: 'simple',\n explode: false,\n },\n tsv: {},\n}\n\nconst serializationStyles = {\n header: pathAndHeaderSerialization,\n query: querySerialization,\n path: pathAndHeaderSerialization,\n} as const\n\nfunction getParameterSerializationStyle(parameter: OpenAPIV2.ParameterObject): ParameterSerializationStyle {\n if (\n parameter.type !== 'array' ||\n !(parameter.in === 'query' || parameter.in === 'path' || parameter.in === 'header')\n ) {\n return {}\n }\n\n const collectionFormat = parameter.collectionFormat ?? 'csv'\n\n return serializationStyles[parameter.in][collectionFormat]\n}\n\ntype ParameterMigrationResult = {\n parameters: OpenAPIV3.ParameterObject[]\n requestBody?: OpenAPIV3.RequestBodyObject\n}\n\nfunction migrateBodyParameter(\n bodyParameter: OpenAPIV2.ParameterObject,\n consumes: string[],\n): OpenAPIV3.RequestBodyObject {\n delete bodyParameter.name\n delete bodyParameter.in\n\n const { schema, ...requestBody } = bodyParameter\n\n const requestBodyObject: OpenAPIV3.RequestBodyObject = {\n content: {},\n ...requestBody,\n }\n\n for (const type of consumes) {\n requestBodyObject.content[type] = {\n schema: schema,\n }\n }\n\n return requestBodyObject\n}\n\nfunction migrateFormDataParameter(parameters: OpenAPIV2.ParameterObject[]): OpenAPIV3.RequestBodyObject {\n const requestBodyObject: OpenAPIV3.RequestBodyObject = {\n content: {},\n }\n\n requestBodyObject.content['application/x-www-form-urlencoded'] = {\n schema: {\n type: 'object',\n properties: {},\n required: [], // Initialize required array\n },\n }\n\n for (const param of parameters) {\n requestBodyObject.content['application/x-www-form-urlencoded'].schema.properties[param.name] = {\n type: param.type,\n description: param.description,\n }\n\n // Add to required array if param is required\n if (param.required) {\n requestBodyObject.content['application/x-www-form-urlencoded'].schema.required.push(param.name)\n }\n }\n\n return requestBodyObject\n}\n\nfunction migrateParameters(parameters: OpenAPIV2.ParameterObject[], consumes: string[]): ParameterMigrationResult {\n const result: ParameterMigrationResult = {\n parameters: parameters\n .filter((parameter) => !(parameter.in === 'body' || parameter.in === 'formData'))\n .map((parameter) => transformParameterObject(parameter)),\n }\n\n const bodyParameter = structuredClone(\n parameters.find((parameter: OpenAPIV3.ParameterObject) => parameter.in === 'body') ?? {},\n )\n\n if (bodyParameter && Object.keys(bodyParameter).length) {\n result.requestBody = migrateBodyParameter(bodyParameter, consumes)\n }\n\n const formDataParameters = parameters.filter((parameter: OpenAPIV2.ParameterObject) => parameter.in === 'formData')\n\n if (formDataParameters.length > 0) {\n const requestBodyObject = migrateFormDataParameter(formDataParameters)\n\n if (typeof result.requestBody !== 'object') {\n result.requestBody = requestBodyObject\n } else {\n result.requestBody = {\n ...result.requestBody,\n content: {\n ...result.requestBody.content,\n ...requestBodyObject.content,\n },\n }\n }\n\n if (typeof result.requestBody !== 'object') {\n result.requestBody = {\n content: {},\n }\n }\n }\n\n return result\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"parser",
|
|
18
18
|
"typescript"
|
|
19
19
|
],
|
|
20
|
-
"version": "0.20.
|
|
20
|
+
"version": "0.20.3",
|
|
21
21
|
"engines": {
|
|
22
22
|
"node": ">=20"
|
|
23
23
|
},
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"jsonpointer": "^5.0.1",
|
|
55
55
|
"leven": "^4.0.0",
|
|
56
56
|
"yaml": "2.8.0",
|
|
57
|
-
"@scalar/
|
|
58
|
-
"@scalar/
|
|
57
|
+
"@scalar/openapi-types": "0.3.7",
|
|
58
|
+
"@scalar/json-magic": "0.4.0"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@apidevtools/swagger-parser": "^10.1.0",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"tinybench": "^2.8.0",
|
|
67
67
|
"vite": "6.1.6",
|
|
68
68
|
"@scalar/build-tooling": "0.2.6",
|
|
69
|
-
"@scalar/types": "0.2.
|
|
69
|
+
"@scalar/types": "0.2.15"
|
|
70
70
|
},
|
|
71
71
|
"scripts": {
|
|
72
72
|
"build": "scalar-build-esbuild",
|