@scalar/oas-utils 0.2.70 → 0.2.71
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 +13 -0
- package/dist/entities/spec/request-examples.d.ts.map +1 -1
- package/dist/entities/spec/request-examples.js +3 -1
- package/dist/entities/spec/security.d.ts.map +1 -1
- package/dist/entities/spec/security.js +1 -1
- package/dist/helpers/findVariables.js +1 -1
- package/dist/helpers/makeUrlAbsolute.js +3 -3
- package/dist/migrations/v-2.1.0/migration.d.ts.map +1 -1
- package/dist/migrations/v-2.1.0/migration.js +2 -2
- package/dist/migrations/v-2.1.0/types.generated.d.ts +4 -4
- package/dist/migrations/v-2.1.0/types.generated.d.ts.map +1 -1
- package/dist/transforms/import-spec.d.ts +2 -2
- package/dist/transforms/import-spec.d.ts.map +1 -1
- package/dist/transforms/import-spec.js +26 -9
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @scalar/oas-utils
|
|
2
2
|
|
|
3
|
+
## 0.2.71
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- a40999d: chore: added type safety rule noUncheckedIndexedAccess
|
|
8
|
+
- b89da58: fix: ingest base server URL and use it in the api client
|
|
9
|
+
- 3300d5b: fix: make the api-client respect the server overload
|
|
10
|
+
- Updated dependencies [a40999d]
|
|
11
|
+
- @scalar/object-utils@1.1.12
|
|
12
|
+
- @scalar/themes@0.9.47
|
|
13
|
+
- @scalar/openapi-types@0.1.5
|
|
14
|
+
- @scalar/types@0.0.19
|
|
15
|
+
|
|
3
16
|
## 0.2.70
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-examples.d.ts","sourceRoot":"","sources":["../../../src/entities/spec/request-examples.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEtC,eAAO,MAAM,8BAA8B;;;;;;IAMzC,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUlF,CAAA;AAEF,kFAAkF;AAClF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,8BAA8B,CACtC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,uEAQ7B,CAAA;AACV,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;YAjCnC,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDlF,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAEzE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;gBAvD/B,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAAlF,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAAlF,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAAlF,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAAlF,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuElF,CAAA;AAEF,qDAAqD;AACrD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACjE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAKxE,6DAA6D;AAC7D,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"request-examples.d.ts","sourceRoot":"","sources":["../../../src/entities/spec/request-examples.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEtC,eAAO,MAAM,8BAA8B;;;;;;IAMzC,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUlF,CAAA;AAEF,kFAAkF;AAClF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,8BAA8B,CACtC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,uEAQ7B,CAAA;AACV,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;YAjCnC,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDlF,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAEzE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;gBAvD/B,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAAlF,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAAlF,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAAlF,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAAlF,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuElF,CAAA;AAEF,qDAAqD;AACrD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACjE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAKxE,6DAA6D;AAC7D,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB;;;;;;;;;;;;;;;EA8C1D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,cAAc,CAiGhB"}
|
|
@@ -77,6 +77,8 @@ const requestExampleSchema = z.object({
|
|
|
77
77
|
/** Create new instance parameter from a request parameter */
|
|
78
78
|
function createParamInstance(param) {
|
|
79
79
|
const schema = param.schema;
|
|
80
|
+
const keys = Object.keys(param?.examples ?? {});
|
|
81
|
+
const firstExample = keys.length ? param.examples?.[keys[0]] : null;
|
|
80
82
|
/**
|
|
81
83
|
* TODO:
|
|
82
84
|
* - Need better value defaulting here
|
|
@@ -86,7 +88,7 @@ function createParamInstance(param) {
|
|
|
86
88
|
const value = String(schema?.default ??
|
|
87
89
|
schema?.examples?.[0] ??
|
|
88
90
|
schema?.example ??
|
|
89
|
-
|
|
91
|
+
firstExample?.value ??
|
|
90
92
|
param.example ??
|
|
91
93
|
'');
|
|
92
94
|
// Handle non-string enums
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/entities/spec/security.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA6CvB;;;GAGG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAO3C,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAA;AAED,gDAAgD;AAChD,MAAM,MAAM,gCAAgC,GAAG,OAAO,CACpD,0BAA0B,EAC1B;IAAE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAC5B,CAAA;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EACtB,UAAU,GAAE,GAAQ,GACnB,0BAA0B,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/entities/spec/security.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA6CvB;;;GAGG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAO3C,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAA;AAED,gDAAgD;AAChD,MAAM,MAAM,gCAAgC,GAAG,OAAO,CACpD,0BAA0B,EAC1B;IAAE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAC5B,CAAA;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EACtB,UAAU,GAAE,GAAQ,GACnB,0BAA0B,GAAG,IAAI,CAwCnC;AAoBD,eAAO,MAAM,sBAAsB,wCAAyC,CAAA;AAU5E,eAAO,MAAM,oBAAoB;;;;IAN/B,8EAA8E;;IAE9E,6FAA6F;;;;IAb7F,0EAA0E;;;;;;;;;;;;;;;;EAmB3E,CAAA;AACD,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AA4BvE,eAAO,MAAM,kBAAkB;;;;IArB7B;;;OAGG;;IAOH;;;;OAIG;;;;IAzCH,0EAA0E;;;;;;;;;;;;;;;;EAkD3E,CAAA;AACD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAanE,eAAO,MAAM,oBAAoB;;;;IAP/B;;;OAGG;;;;IA5DH,0EAA0E;;;;;;;;;;;;;;EAkE3E,CAAA;AACD,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AA4CvE,0CAA0C;AAC1C,eAAO,MAAM,WAAW,qCAAsC,CAAA;AAE9D,eAAO,MAAM,kBAAkB;IA7B7B;;;OAGG;;IAEH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;IARH;;;OAGG;;IAEH;;;OAGG;;;;;;;;;;;;;;;;;;;IARH;;;OAGG;;IAEH;;;OAGG;;;;;;;;;;;;;;;;;;;IARH;;;OAGG;;IAEH;;;OAGG;;;;;;IA8CC;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;MAUkE,CAAA;AAU3E,eAAO,MAAM,mBAAmB;;;;IAN9B,6FAA6F;;QAxE7F;;;WAGG;;QAEH;;;WAGG;;;;;;;;;;;;;;;;;;;;;;QARH;;;WAGG;;QAEH;;;WAGG;;;;;;;;;;;;;;;;;;;QARH;;;WAGG;;QAEH;;;WAGG;;;;;;;;;;;;;;;;;;;QARH;;;WAGG;;QAEH;;;WAGG;;;;;;QA8CC;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;IAgBP,oEAAoE;;;;IA/JpE,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqK3E,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAKtE;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,wFAGxC,CAAA;AAED,qCAAqC;AACrC,eAAO,MAAM,uBAAuB;;;;IAjLlC,8EAA8E;;IAE9E,6FAA6F;;;;;;;;;;;;;;;;IAc7F;;;OAGG;;IAOH;;;;OAIG;;;;;;;;;;;;;;;;IAoHH,6FAA6F;;QAxE7F;;;WAGG;;QAEH;;;WAGG;;;;;;;;;;;;;;;;;;;;;;QARH;;;WAGG;;QAEH;;;WAGG;;;;;;;;;;;;;;;;;;;QARH;;;WAGG;;QAEH;;;WAGG;;;;;;;;;;;;;;;;;;;QARH;;;WAGG;;QAEH;;;WAGG;;;;;;QA8CC;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;IAgBP,oEAAoE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAtGpE;;;OAGG;;;;;;;;;;IAqIH,CAAA;AAEF,oDAAoD;AACpD,eAAO,MAAM,oBAAoB;;;;IAzL/B,8EAA8E;;IAE9E,6FAA6F;;;;IAb7F,0EAA0E;;;;;;;;;;;;;;;;;;;;IA2B1E;;;OAGG;;IAOH;;;;OAIG;;;;IAzCH,0EAA0E;;;;;;;;;;;;;;;;;;;;IAyD1E;;;OAGG;;;;IA5DH,0EAA0E;;;;;;;;;;;;;;;;;;IA6J1E,6FAA6F;;QAxE7F;;;WAGG;;QAEH;;;WAGG;;;;;;;;;;;;;;;;;;;;;;QARH;;;WAGG;;QAEH;;;WAGG;;;;;;;;;;;;;;;;;;;QARH;;;WAGG;;QAEH;;;WAGG;;;;;;;;;;;;;;;;;;;QARH;;;WAGG;;QAEH;;;WAGG;;;;;;QA8CC;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;IAgBP,oEAAoE;;;;IA/JpE,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyM1E,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACjE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
|
|
@@ -75,7 +75,7 @@ function authExampleFromSchema(scheme, baseValues = {}) {
|
|
|
75
75
|
catch (e) {
|
|
76
76
|
console.error(e);
|
|
77
77
|
}
|
|
78
|
-
console.warn('[@scalar/oas-utils:security] Invalid schema for oauth example', baseValues);
|
|
78
|
+
console.warn('[@scalar/oas-utils:security] Invalid schema for oauth example', scheme, baseValues);
|
|
79
79
|
return null;
|
|
80
80
|
}
|
|
81
81
|
// ---------------------------------------------------------------------------
|
|
@@ -6,7 +6,7 @@ const findVariables = (value) => {
|
|
|
6
6
|
// Ignores whitespace
|
|
7
7
|
// Works with lowercase, uppercase, numbers, dashes, underscores
|
|
8
8
|
const regex = /(?:\{+)\s*(\w+)\s*(?:\}+)/g;
|
|
9
|
-
return [...value.matchAll(regex)].map((match) => match[1]
|
|
9
|
+
return [...value.matchAll(regex)].map((match) => match[1]?.trim()) || [];
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
export { findVariables };
|
|
@@ -9,12 +9,12 @@ const makeUrlAbsolute = (url) => {
|
|
|
9
9
|
return url;
|
|
10
10
|
const baseUrl = window.location.href;
|
|
11
11
|
// Remove any query parameters or hash from the base URL
|
|
12
|
-
const cleanBaseUrl = baseUrl.split('?')[0]
|
|
12
|
+
const cleanBaseUrl = baseUrl.split('?')[0]?.split('#')[0];
|
|
13
13
|
// For base URLs with a path component, we want to remove the last path segment
|
|
14
14
|
// if it doesn't end with a slash
|
|
15
|
-
const normalizedBaseUrl = cleanBaseUrl
|
|
15
|
+
const normalizedBaseUrl = cleanBaseUrl?.endsWith('/')
|
|
16
16
|
? cleanBaseUrl
|
|
17
|
-
: cleanBaseUrl
|
|
17
|
+
: cleanBaseUrl?.substring(0, cleanBaseUrl?.lastIndexOf('/') + 1);
|
|
18
18
|
return new URL(url, normalizedBaseUrl).toString();
|
|
19
19
|
};
|
|
20
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/migrations/v-2.1.0/migration.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AAInE,mCAAmC;AACnC,eAAO,MAAM,eAAe,SAAU,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;;;;;;;;;;oBAG/C,CAAC;mBAIjB,CADJ;qBAA4C,CAAC;;;;0BAKlC,CAAC;mBACR,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAiDsD,CAAC;;;;oBASlD,CAAC;;;;;;wBAIF,CAAR;;;;;;sCAM2B,GAAG;oHAMoB,GAAsB;iCAGhE,GAAC;+BACS,GAAG;;+BAKb,CAAC;0BAED,CAAC;4BAIY,CAAA;wBAAoC,CAAC;wBAAqC,CAAC;0BACpF,CAAC;2BAAsC,CAAC;2BAGvC,CAAC;2BAAsC,CAAC;4BACxC,CAAC;;;kBACR,CAAD;;;;;;;;oBAQD,CAAC;2BAAqC,CAAC;sBAElB,CAAC;wBACA,CAAC;oBAAkC,CAAC;oBAG1D,CAAF;sBAAmC,CAAC;uBAE5B,CAAC;uBAAoC,CAAC;uBAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/migrations/v-2.1.0/migration.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AAInE,mCAAmC;AACnC,eAAO,MAAM,eAAe,SAAU,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;;;;;;;;;;oBAG/C,CAAC;mBAIjB,CADJ;qBAA4C,CAAC;;;;0BAKlC,CAAC;mBACR,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAiDsD,CAAC;;;;oBASlD,CAAC;;;;;;wBAIF,CAAR;;;;;;sCAM2B,GAAG;oHAMoB,GAAsB;iCAGhE,GAAC;+BACS,GAAG;;+BAKb,CAAC;0BAED,CAAC;4BAIY,CAAA;wBAAoC,CAAC;wBAAqC,CAAC;0BACpF,CAAC;2BAAsC,CAAC;2BAGvC,CAAC;2BAAsC,CAAC;4BACxC,CAAC;;;kBACR,CAAD;;;;;;;;oBAQD,CAAC;2BAAqC,CAAC;sBAElB,CAAC;wBACA,CAAC;oBAAkC,CAAC;oBAG1D,CAAF;sBAAmC,CAAC;uBAE5B,CAAC;uBAAoC,CAAC;uBAChB,CAAC;wBACvB,CAAC;;;;;;oBAOS,CAAC;2BACP,CAAA;sBAAmC,CAAC;wBACtC,CAAC;oBACP,CAAA;oBAAmC,CAAC;sBAE7B,CAAC;uBACa,CAAC;uBACJ,CAAC;uBAAoC,CAAC;wBAC/C,CAAC;;;;;;oBAIS,CAAC;2BACA,CAAC;sBAChB,CAAC;wBACW,CAAC;oBACC,CAAC;oBAIlB,CAAA;sBACE,CAAC;uBACS,CAAC;uBAGb,CAAA;uBAAoC,CAAC;wBACpC,CAAC;;;;;;oBAQO,CAAC;2BAAqC,CAAC;sBACnC,CAAC;wBACW,CAAC;oBACtB,CAAC;oBAAmC,CAAC;sBACf,CAAC;uBACf,CAAC;uBACf,CAAD;uBAAoC,CAAC;wBAItC,CADJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAUS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA4I+b,CAAC;;6BAA4E,CAAC;;;;;;;;;;CADthB,CAAA"}
|
|
@@ -98,7 +98,7 @@ const migrate_v_2_1_0 = (data) => {
|
|
|
98
98
|
// Migrate auth
|
|
99
99
|
const auth = securitySchemes.reduce((prev, uid) => {
|
|
100
100
|
const scheme = oldData.securitySchemes[uid];
|
|
101
|
-
if (scheme
|
|
101
|
+
if (scheme?.uid)
|
|
102
102
|
prev[uid] = migrateAuth(scheme);
|
|
103
103
|
return prev;
|
|
104
104
|
}, {});
|
|
@@ -139,7 +139,7 @@ const migrate_v_2_1_0 = (data) => {
|
|
|
139
139
|
...Object.values(r.parameters?.cookies ?? {}),
|
|
140
140
|
].filter((p) => p);
|
|
141
141
|
// Ensure this request can access these schemes
|
|
142
|
-
const selectedSecuritySchemeUids = (r.selectedSecuritySchemeUids || []).filter((s) => requestSecurityDict[r.uid]
|
|
142
|
+
const selectedSecuritySchemeUids = (r.selectedSecuritySchemeUids || []).filter((s) => requestSecurityDict[r.uid]?.includes(s));
|
|
143
143
|
return {
|
|
144
144
|
...r,
|
|
145
145
|
parameters,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Cookie as Ck } from '../../entities/cookie/index.js';
|
|
2
|
-
import { Environment as E } from '../../entities/environment/index.js';
|
|
3
|
-
import { Collection as Co, Request as R, RequestExample as RE, Server as S, SecurityScheme as SS, Tag as T } from '../../entities/spec/index.js';
|
|
4
|
-
import { Workspace as W } from '../../entities/workspace/index.js';
|
|
1
|
+
import type { Cookie as Ck } from '../../entities/cookie/index.js';
|
|
2
|
+
import type { Environment as E } from '../../entities/environment/index.js';
|
|
3
|
+
import type { Collection as Co, Request as R, RequestExample as RE, Server as S, SecurityScheme as SS, Tag as T } from '../../entities/spec/index.js';
|
|
4
|
+
import type { Workspace as W } from '../../entities/workspace/index.js';
|
|
5
5
|
/**
|
|
6
6
|
* TODO: These types are no longer generated, this was manually grabbed but we must generate them before the next
|
|
7
7
|
* migration else we will have issues!
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.generated.d.ts","sourceRoot":"","sources":["../../../src/migrations/v-2.1.0/types.generated.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.generated.d.ts","sourceRoot":"","sources":["../../../src/migrations/v-2.1.0/types.generated.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,WAAW,IAAI,CAAC,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EACV,UAAU,IAAI,EAAE,EAChB,OAAO,IAAI,CAAC,EACZ,cAAc,IAAI,EAAE,EACpB,MAAM,IAAI,CAAC,EACX,cAAc,IAAI,EAAE,EACpB,GAAG,IAAI,CAAC,EACT,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,SAAS,IAAI,CAAC,EAAE,MAAM,sBAAsB,CAAA;AAE1D;;;GAGG;AACH,yBAAiB,OAAO,CAAC;IACvB,KAAY,MAAM,GAAG,EAAE,CAAA;IACvB,KAAY,WAAW,GAAG,CAAC,CAAA;IAC3B,KAAY,UAAU,GAAG,EAAE,CAAA;IAC3B,KAAY,OAAO,GAAG,CAAC,CAAA;IACvB,KAAY,cAAc,GAAG,EAAE,CAAA;IAC/B,KAAY,cAAc,GAAG,EAAE,CAAA;IAC/B,KAAY,MAAM,GAAG,CAAC,CAAA;IACtB,KAAY,GAAG,GAAG,CAAC,CAAA;IACnB,KAAY,SAAS,GAAG,CAAC,CAAA;IAEzB,KAAY,UAAU,GAAG;QACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QACzC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QAC/C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACjC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QAC/C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;KACtC,CAAA;IAED,KAAY,SAAS,GAAG;QACtB,WAAW,EAAE,UAAU,EAAE,CAAA;QACzB,OAAO,EAAE,MAAM,EAAE,CAAA;QACjB,YAAY,EAAE,WAAW,EAAE,CAAA;QAC3B,eAAe,EAAE,cAAc,EAAE,CAAA;QACjC,QAAQ,EAAE,OAAO,EAAE,CAAA;QACnB,eAAe,EAAE,cAAc,EAAE,CAAA;QACjC,OAAO,EAAE,MAAM,EAAE,CAAA;QACjB,IAAI,EAAE,GAAG,EAAE,CAAA;QACX,UAAU,EAAE,SAAS,EAAE,CAAA;KACxB,CAAA;CACF"}
|
|
@@ -10,7 +10,7 @@ export declare const parseSchema: (spec: string | UnknownObject) => Promise<{
|
|
|
10
10
|
schema: OpenAPIV3.Document | OpenAPIV3_1.Document;
|
|
11
11
|
errors: import("@scalar/openapi-parser").ErrorObject[];
|
|
12
12
|
}>;
|
|
13
|
-
export type ImportSpecToWorkspaceArgs = Pick<CollectionPayload, 'documentUrl' | 'watchMode'> & Pick<ReferenceConfiguration, 'authentication'> & {
|
|
13
|
+
export type ImportSpecToWorkspaceArgs = Pick<CollectionPayload, 'documentUrl' | 'watchMode'> & Pick<ReferenceConfiguration, 'authentication' | 'baseServerURL' | 'servers'> & {
|
|
14
14
|
/** Sets the preferred security scheme on the collection instead of the requests */
|
|
15
15
|
setCollectionSecurity?: boolean;
|
|
16
16
|
};
|
|
@@ -22,7 +22,7 @@ export type ImportSpecToWorkspaceArgs = Pick<CollectionPayload, 'documentUrl' |
|
|
|
22
22
|
* created and used at various levels we will index via the uids to create
|
|
23
23
|
* the relationships
|
|
24
24
|
*/
|
|
25
|
-
export declare function importSpecToWorkspace(spec: string | UnknownObject, { authentication, documentUrl, setCollectionSecurity, watchMode, }?: ImportSpecToWorkspaceArgs): Promise<{
|
|
25
|
+
export declare function importSpecToWorkspace(spec: string | UnknownObject, { authentication, baseServerURL, documentUrl, servers: overloadServers, setCollectionSecurity, watchMode, }?: ImportSpecToWorkspaceArgs): Promise<{
|
|
26
26
|
error: false;
|
|
27
27
|
collection: Collection;
|
|
28
28
|
requests: Request[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-spec.d.ts","sourceRoot":"","sources":["../../src/transforms/import-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,cAAc,EAGnB,KAAK,MAAM,EACX,KAAK,GAAG,EAOT,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAIhC,MAAM,0BAA0B,CAAA;AAIjC,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAiDxD,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,WACpB,cAAc,SACf,sBAAsB,CAAC,gBAAgB,CAAC,KAC9C,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,0BAA0B,CAgC5D,CAAA;AAED,mFAAmF;AACnF,eAAO,MAAM,WAAW,SAAgB,MAAM,GAAG,aAAa;YAKjC,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ;;EACrE,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,iBAAiB,EACjB,aAAa,GAAG,WAAW,CAC5B,GACC,IAAI,
|
|
1
|
+
{"version":3,"file":"import-spec.d.ts","sourceRoot":"","sources":["../../src/transforms/import-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,cAAc,EAGnB,KAAK,MAAM,EACX,KAAK,GAAG,EAOT,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAIhC,MAAM,0BAA0B,CAAA;AAIjC,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAiDxD,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,WACpB,cAAc,SACf,sBAAsB,CAAC,gBAAgB,CAAC,KAC9C,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,0BAA0B,CAgC5D,CAAA;AAED,mFAAmF;AACnF,eAAO,MAAM,WAAW,SAAgB,MAAM,GAAG,aAAa;YAKjC,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ;;EACrE,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,iBAAiB,EACjB,aAAa,GAAG,WAAW,CAC5B,GACC,IAAI,CACF,sBAAsB,EACtB,gBAAgB,GAAG,eAAe,GAAG,SAAS,CAC/C,GAAG;IACF,mFAAmF;IACnF,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAEH;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,GAAG,aAAa,EAC5B,EACE,cAAc,EACd,aAAa,EACb,WAAW,EACX,OAAO,EAAE,eAAe,EACxB,qBAA6B,EAC7B,SAAiB,GAClB,GAAE,yBAA8B,GAChC,OAAO,CACN;IACE,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,MAAM,EAAE,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;IACjD,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,eAAe,EAAE,cAAc,EAAE,CAAA;CAClC,GACD;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAC5C,CAkSA"}
|
|
@@ -95,7 +95,7 @@ const parseSchema = async (spec) => {
|
|
|
95
95
|
* created and used at various levels we will index via the uids to create
|
|
96
96
|
* the relationships
|
|
97
97
|
*/
|
|
98
|
-
async function importSpecToWorkspace(spec, { authentication, documentUrl, setCollectionSecurity = false, watchMode = false, } = {}) {
|
|
98
|
+
async function importSpecToWorkspace(spec, { authentication, baseServerURL, documentUrl, servers: overloadServers, setCollectionSecurity = false, watchMode = false, } = {}) {
|
|
99
99
|
const { schema, errors } = await parseSchema(spec);
|
|
100
100
|
const importWarnings = [...errors.map((e) => e.message)];
|
|
101
101
|
if (!schema)
|
|
@@ -103,14 +103,31 @@ async function importSpecToWorkspace(spec, { authentication, documentUrl, setCol
|
|
|
103
103
|
// ---------------------------------------------------------------------------
|
|
104
104
|
// Some entities will be broken out as individual lists for modification in the workspace
|
|
105
105
|
const requests = [];
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
106
|
+
// Grab the base server URL for relative servers
|
|
107
|
+
const backupBaseServerUrl = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';
|
|
108
|
+
const _baseServerUrl = baseServerURL ?? backupBaseServerUrl;
|
|
109
|
+
// Add the base server url to any relative servers
|
|
110
|
+
const servers = serverSchema.array().parse((overloadServers ?? schema.servers)?.map((s) => {
|
|
111
|
+
// Prepend base server url if relative
|
|
112
|
+
if (s?.url?.startsWith('/'))
|
|
113
|
+
return {
|
|
114
|
+
...s,
|
|
115
|
+
// Ensure we only have one slash between
|
|
116
|
+
url: [
|
|
117
|
+
_baseServerUrl.replace(/\/$/, ''),
|
|
118
|
+
s.url.replace(/^\//, ''),
|
|
119
|
+
].join('/'),
|
|
120
|
+
};
|
|
121
|
+
// Just return a regular server
|
|
122
|
+
if (s.url)
|
|
123
|
+
return s;
|
|
124
|
+
// Failsafe for no URL, use the base
|
|
125
|
+
else
|
|
126
|
+
return {
|
|
127
|
+
url: _baseServerUrl,
|
|
128
|
+
description: 'Replace with your API server',
|
|
129
|
+
};
|
|
130
|
+
}) ?? []);
|
|
114
131
|
/**
|
|
115
132
|
* List of all tag strings. For non compliant specs we may need to
|
|
116
133
|
* add top level tag objects for missing tag objects
|
package/package.json
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"specification",
|
|
17
17
|
"yaml"
|
|
18
18
|
],
|
|
19
|
-
"version": "0.2.
|
|
19
|
+
"version": "0.2.71",
|
|
20
20
|
"engines": {
|
|
21
21
|
"node": ">=18"
|
|
22
22
|
},
|
|
@@ -106,9 +106,9 @@
|
|
|
106
106
|
"nanoid": "^5.0.7",
|
|
107
107
|
"yaml": "^2.4.5",
|
|
108
108
|
"zod": "^3.23.8",
|
|
109
|
-
"@scalar/
|
|
110
|
-
"@scalar/object-utils": "1.1.11",
|
|
109
|
+
"@scalar/object-utils": "1.1.12",
|
|
111
110
|
"@scalar/openapi-types": "0.1.5",
|
|
111
|
+
"@scalar/themes": "0.9.47",
|
|
112
112
|
"@scalar/types": "0.0.19"
|
|
113
113
|
},
|
|
114
114
|
"devDependencies": {
|
|
@@ -116,9 +116,9 @@
|
|
|
116
116
|
"vite": "^5.4.9",
|
|
117
117
|
"vitest": "^1.6.0",
|
|
118
118
|
"zod-to-ts": "^1.2.0",
|
|
119
|
-
"@scalar/build-tooling": "0.1.
|
|
120
|
-
"@scalar/openapi-
|
|
121
|
-
"@scalar/openapi-
|
|
119
|
+
"@scalar/build-tooling": "0.1.12",
|
|
120
|
+
"@scalar/openapi-parser": "0.8.9",
|
|
121
|
+
"@scalar/openapi-types": "0.1.5"
|
|
122
122
|
},
|
|
123
123
|
"scripts": {
|
|
124
124
|
"build": "scalar-build-rollup",
|