@scalar/oas-utils 0.2.39 → 0.2.42
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 +26 -0
- package/dist/entities/workspace/spec/components.d.ts +1 -1
- package/dist/entities/workspace/spec/components.d.ts.map +1 -1
- package/dist/entities/workspace/spec/index.js +1 -1
- package/dist/entities/workspace/spec/request-examples.d.ts +861 -139
- package/dist/entities/workspace/spec/request-examples.d.ts.map +1 -1
- package/dist/entities/workspace/spec/request-examples.js +22 -3
- package/dist/entities/workspace/spec/requests.d.ts +8 -3
- package/dist/entities/workspace/spec/requests.d.ts.map +1 -1
- package/dist/entities/workspace/workspace.d.ts +5 -0
- package/dist/entities/workspace/workspace.d.ts.map +1 -1
- package/dist/entities/workspace/workspace.js +2 -0
- package/dist/helpers/replaceVariables.js +1 -1
- package/dist/spec-getters/getExampleFromSchema.d.ts.map +1 -1
- package/dist/spec-getters/getExampleFromSchema.js +2 -2
- package/dist/spec-getters/getRequestBodyFromOperation.d.ts +4 -1
- package/dist/spec-getters/getRequestBodyFromOperation.d.ts.map +1 -1
- package/dist/spec-getters/getRequestBodyFromOperation.js +23 -26
- package/package.json +6 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-examples.d.ts","sourceRoot":"","sources":["../../../../src/entities/workspace/spec/request-examples.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"request-examples.d.ts","sourceRoot":"","sources":["../../../../src/entities/workspace/spec/request-examples.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;EAUrB,CAAA;AAEF,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMW,CAAA;AAE3B,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA;AAEjD,QAAA,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMlC,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUlF,CAAA;AAEF,kFAAkF;AAClF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,8BAA8B,CACtC,CAAA;AACD,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAClD,OAAO,8BAA8B,CACtC,CAAA;AAED,8CAA8C;AAC9C,eAAO,MAAM,6BAA6B,YAC/B,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;CAKtC,CAAA;AAEH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA7BxB,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAAlF,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAAlF,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAAlF,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAAlF,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8ElF,CAAA;AAEF,mDAAmD;AACnD,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;AAExE,oCAAoC;AACpC,eAAO,MAAM,oBAAoB,YAAa,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIhE,CAAA"}
|
|
@@ -2,11 +2,30 @@ import { deepMerge } from '@scalar/object-utils/merge';
|
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { nanoidSchema } from '../shared/utility.js';
|
|
4
4
|
|
|
5
|
+
// Define the Blob schema
|
|
6
|
+
const blobSchema = z.object({
|
|
7
|
+
size: z.number().nonnegative('Blob size must be a non-negative number').int(), // Size of the Blob
|
|
8
|
+
type: z.string(), // MIME type of the Blob
|
|
9
|
+
arrayBuffer: z.function().returns(z.promise(z.instanceof(ArrayBuffer))), // Returns a Promise of ArrayBuffer
|
|
10
|
+
slice: z
|
|
11
|
+
.function()
|
|
12
|
+
.args(z.number().optional(), z.number().optional(), z.string().optional())
|
|
13
|
+
.returns(z.any()), // Returns a Blob (any type for now)
|
|
14
|
+
stream: z.function().returns(z.instanceof((ReadableStream))), // Returns a ReadableStream of Uint8Array
|
|
15
|
+
text: z.function().returns(z.promise(z.string())), // Returns a Promise of string
|
|
16
|
+
});
|
|
17
|
+
const fileSchema = z
|
|
18
|
+
.object({
|
|
19
|
+
name: z.string(),
|
|
20
|
+
lastModified: z.number(),
|
|
21
|
+
webkitRelativePath: z.string(),
|
|
22
|
+
})
|
|
23
|
+
.extend(blobSchema.shape);
|
|
5
24
|
const requestExampleParametersSchema = z.object({
|
|
6
25
|
key: z.string().default(''),
|
|
7
26
|
value: z.union([z.string(), z.number()]).transform(String).default(''),
|
|
8
27
|
enabled: z.boolean().default(true),
|
|
9
|
-
file:
|
|
28
|
+
file: fileSchema.optional(),
|
|
10
29
|
description: z.string().optional(),
|
|
11
30
|
/** Params are linked to parents such as path params and global headers/cookies */
|
|
12
31
|
refUid: nanoidSchema.optional(),
|
|
@@ -53,7 +72,7 @@ const requestExampleSchema = z.object({
|
|
|
53
72
|
value: requestExampleParametersSchema.array().default([]),
|
|
54
73
|
})
|
|
55
74
|
.default({}),
|
|
56
|
-
binary:
|
|
75
|
+
binary: fileSchema.optional(),
|
|
57
76
|
activeBody: z
|
|
58
77
|
.union([z.literal('raw'), z.literal('formData'), z.literal('binary')])
|
|
59
78
|
.default('raw'),
|
|
@@ -74,4 +93,4 @@ const requestExampleSchema = z.object({
|
|
|
74
93
|
/** Create request example helper */
|
|
75
94
|
const createRequestExample = (payload) => deepMerge(requestExampleSchema.parse({ requestUid: payload.requestUid }), payload);
|
|
76
95
|
|
|
77
|
-
export { createRequestExample, createRequestExampleParameter };
|
|
96
|
+
export { blobSchema, createRequestExample, createRequestExampleParameter };
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
import type { OpenAPIV3_1 } from '@scalar/openapi-
|
|
2
|
-
import type { AxiosResponse } from 'axios';
|
|
1
|
+
import type { OpenAPIV3_1 } from '@scalar/openapi-types';
|
|
3
2
|
import { z } from 'zod';
|
|
4
3
|
import type { RequestExample } from './request-examples.js';
|
|
5
4
|
/** A single set of populated values for a sent request */
|
|
6
|
-
export type ResponseInstance =
|
|
5
|
+
export type ResponseInstance = Omit<Response, 'headers'> & {
|
|
6
|
+
/** Store headers as an object to match what we had with axios */
|
|
7
|
+
headers: Record<string, string>;
|
|
8
|
+
/** Keys of headers which set cookies */
|
|
9
|
+
cookieHeaderKeys: string[];
|
|
7
10
|
/** Time in ms the request took */
|
|
8
11
|
duration: number;
|
|
12
|
+
/** The response data */
|
|
13
|
+
data: unknown;
|
|
9
14
|
};
|
|
10
15
|
/** A single request/response set to save to the history stack */
|
|
11
16
|
export type RequestEvent = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../../../src/entities/workspace/spec/requests.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../../../src/entities/workspace/spec/requests.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAkB,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG;IACzD,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,wBAAwB;IACxB,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,iEAAiE;AACjE,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,cAAc,CAAA;IACvB,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAQD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;IAQjB;;;OAGG;;IAEH,kDAAkD;;IAElD,mHAAmH;;IAEnH;;;;OAIG;;;;;;;;;;;;;;;;;;IAUH;;;;;;OAMG;;IAEH,6EAA6E;;IAE7E,mEAAmE;;IAEnE;;;;;OAKG;;IAEH,0CAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG1C,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG;IACpD,YAAY,CAAC,EAAE,WAAW,CAAC,2BAA2B,CAAA;CACvD,CAAA;AACD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG;IAC3D,YAAY,CAAC,EAAE,WAAW,CAAC,2BAA2B,CAAA;CACvD,CAAA;AAED,4BAA4B;AAC5B,eAAO,MAAM,aAAa,YAAa,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;CACY,CAAA"}
|
|
@@ -49,6 +49,8 @@ declare const workspaceSchema: z.ZodObject<{
|
|
|
49
49
|
modifiers?: ("Meta" | "Control" | "Shift" | "Alt" | "default" | undefined)[] | undefined;
|
|
50
50
|
}>> | undefined;
|
|
51
51
|
}>>;
|
|
52
|
+
/** Active Environment ID to use for requests */
|
|
53
|
+
activeEnvironmentId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
52
54
|
/** List of all cookie uids in a given workspace */
|
|
53
55
|
cookieUids: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
54
56
|
/** Workspace level proxy for all requests to be sent through */
|
|
@@ -62,6 +64,7 @@ declare const workspaceSchema: z.ZodObject<{
|
|
|
62
64
|
isReadOnly: boolean;
|
|
63
65
|
collectionUids: string[];
|
|
64
66
|
environmentUids: string[];
|
|
67
|
+
activeEnvironmentId: string;
|
|
65
68
|
cookieUids: string[];
|
|
66
69
|
themeId: "default" | "alternate" | "moon" | "purple" | "solarized" | "bluePlanet" | "deepSpace" | "saturn" | "kepler" | "mars" | "none";
|
|
67
70
|
hotKeyConfig?: {
|
|
@@ -86,6 +89,7 @@ declare const workspaceSchema: z.ZodObject<{
|
|
|
86
89
|
modifiers?: ("Meta" | "Control" | "Shift" | "Alt" | "default" | undefined)[] | undefined;
|
|
87
90
|
}>> | undefined;
|
|
88
91
|
} | undefined;
|
|
92
|
+
activeEnvironmentId?: string | undefined;
|
|
89
93
|
cookieUids?: string[] | undefined;
|
|
90
94
|
proxyUrl?: string | undefined;
|
|
91
95
|
themeId?: "default" | "alternate" | "moon" | "purple" | "solarized" | "bluePlanet" | "deepSpace" | "saturn" | "kepler" | "mars" | "none" | undefined;
|
|
@@ -100,6 +104,7 @@ export declare const createWorkspace: (payload: WorkspacePayload) => {
|
|
|
100
104
|
isReadOnly: boolean;
|
|
101
105
|
collectionUids: string[];
|
|
102
106
|
environmentUids: string[];
|
|
107
|
+
activeEnvironmentId: string;
|
|
103
108
|
cookieUids: string[];
|
|
104
109
|
themeId: "default" | "alternate" | "moon" | "purple" | "solarized" | "bluePlanet" | "deepSpace" | "saturn" | "kepler" | "mars" | "none";
|
|
105
110
|
hotKeyConfig?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../src/entities/workspace/workspace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAQvB,QAAA,MAAM,SAAS,yIAAoD,CAAA;AAEnE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAEvD,QAAA,MAAM,OAAO;;;;;;;;;GAMZ,CAAA;AACD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAA;AASlD,QAAA,MAAM,eAAe;;;IAGnB,4BAA4B;;IAE5B,6EAA6E;;IAE7E,uDAAuD;;IAEvD,wDAAwD;;IAExD,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;IAExB,mDAAmD;;IAEnD,gEAAgE;;IAEhE,oEAAoE
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../src/entities/workspace/workspace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAQvB,QAAA,MAAM,SAAS,yIAAoD,CAAA;AAEnE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAEvD,QAAA,MAAM,OAAO;;;;;;;;;GAMZ,CAAA;AACD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAA;AASlD,QAAA,MAAM,eAAe;;;IAGnB,4BAA4B;;IAE5B,6EAA6E;;IAE7E,uDAAuD;;IAEvD,wDAAwD;;IAExD,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;IAExB,iDAAiD;;IAEjD,mDAAmD;;IAEnD,gEAAgE;;IAEhE,oEAAoE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEpE,CAAA;AAEF,gCAAgC;AAChC,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AACvD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAE9D,eAAO,MAAM,eAAe,YAAa,gBAAgB;;;;;;;;;;;;;;;;;;CACzB,CAAA"}
|
|
@@ -31,6 +31,8 @@ const workspaceSchema = z.object({
|
|
|
31
31
|
environmentUids: z.array(z.string()).default([]),
|
|
32
32
|
/** Customize hotkeys */
|
|
33
33
|
hotKeyConfig: hotKeyConfigSchema,
|
|
34
|
+
/** Active Environment ID to use for requests */
|
|
35
|
+
activeEnvironmentId: z.string().optional().default('default'),
|
|
34
36
|
/** List of all cookie uids in a given workspace */
|
|
35
37
|
cookieUids: z.array(z.string()).default([]),
|
|
36
38
|
/** Workspace level proxy for all requests to be sent through */
|
|
@@ -10,7 +10,7 @@ function replaceVariables(value, variablesOrCallback) {
|
|
|
10
10
|
return variablesOrCallback(match);
|
|
11
11
|
}
|
|
12
12
|
else {
|
|
13
|
-
return variablesOrCallback[match]?.toString()
|
|
13
|
+
return variablesOrCallback[match]?.toString() || `{${match}}`;
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
16
|
// Loop through all matches and replace the match with the variable value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getExampleFromSchema.d.ts","sourceRoot":"","sources":["../../src/spec-getters/getExampleFromSchema.ts"],"names":[],"mappings":"AAsCA;;GAEG;AACH,eAAO,MAAM,oBAAoB,WACvB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YACjB;IACR;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC/B;;OAEG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAA;CACzC,UACM,MAAM,iBACE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAC3B,MAAM,KACZ,
|
|
1
|
+
{"version":3,"file":"getExampleFromSchema.d.ts","sourceRoot":"","sources":["../../src/spec-getters/getExampleFromSchema.ts"],"names":[],"mappings":"AAsCA;;GAEG;AACH,eAAO,MAAM,oBAAoB,WACvB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YACjB;IACR;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC/B;;OAEG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAA;CACzC,UACM,MAAM,iBACE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAC3B,MAAM,KACZ,GAiQF,CAAA"}
|
|
@@ -121,10 +121,10 @@ const getExampleFromSchema = (schema, options, level = 0, parentSchema, name) =>
|
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
if (schema.anyOf !== undefined) {
|
|
124
|
-
Object.assign(response, getExampleFromSchema(schema.anyOf[0]
|
|
124
|
+
Object.assign(response, getExampleFromSchema(schema.anyOf[0], options, level + 1));
|
|
125
125
|
}
|
|
126
126
|
else if (schema.oneOf !== undefined) {
|
|
127
|
-
Object.assign(response, getExampleFromSchema(schema.oneOf[0]
|
|
127
|
+
Object.assign(response, getExampleFromSchema(schema.oneOf[0], options, level + 1));
|
|
128
128
|
}
|
|
129
129
|
else if (schema.allOf !== undefined) {
|
|
130
130
|
Object.assign(response, ...schema.allOf
|
|
@@ -39,8 +39,11 @@ export declare function getRequestBodyFromOperation(operation: TransformedOperat
|
|
|
39
39
|
}[];
|
|
40
40
|
postData: {
|
|
41
41
|
mimeType: string;
|
|
42
|
+
params: {
|
|
43
|
+
name: string;
|
|
44
|
+
value: any;
|
|
45
|
+
}[];
|
|
42
46
|
text?: undefined;
|
|
43
|
-
params?: undefined;
|
|
44
47
|
};
|
|
45
48
|
} | undefined;
|
|
46
49
|
//# sourceMappingURL=getRequestBodyFromOperation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRequestBodyFromOperation.d.ts","sourceRoot":"","sources":["../../src/spec-getters/getRequestBodyFromOperation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"getRequestBodyFromOperation.d.ts","sourceRoot":"","sources":["../../src/spec-getters/getRequestBodyFromOperation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAgC7E;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,oBAAoB,EAC/B,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAnB9B,MAAM;mBACL,GAAG;;;;cAiOX"}
|
|
@@ -4,6 +4,19 @@ import { prettyPrintJson } from '../helpers/prettyPrintJson.js';
|
|
|
4
4
|
import { getExampleFromSchema } from './getExampleFromSchema.js';
|
|
5
5
|
import { getParametersFromOperation } from './getParametersFromOperation.js';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Transform the object into a nested array of objects
|
|
9
|
+
* that represent the key-value pairs of the object.
|
|
10
|
+
*/
|
|
11
|
+
function getParamsFromObject(obj, prefix = '') {
|
|
12
|
+
return Object.entries(obj).flatMap(([key, value]) => {
|
|
13
|
+
const newKey = prefix ? `${prefix}[${key}]` : key;
|
|
14
|
+
if (typeof value === 'object' && value !== null) {
|
|
15
|
+
return getParamsFromObject(value, newKey);
|
|
16
|
+
}
|
|
17
|
+
return [{ name: newKey, value }];
|
|
18
|
+
});
|
|
19
|
+
}
|
|
7
20
|
/**
|
|
8
21
|
* Get the request body from the operation.
|
|
9
22
|
*/
|
|
@@ -160,36 +173,20 @@ function getRequestBodyFromOperation(operation, selectedExampleKey) {
|
|
|
160
173
|
};
|
|
161
174
|
}
|
|
162
175
|
// URL encoded data
|
|
163
|
-
if (mimeType === '
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
// name: 'foo',
|
|
173
|
-
// value: 'bar',
|
|
174
|
-
// },
|
|
175
|
-
// ],
|
|
176
|
-
},
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
// URL encoded data
|
|
180
|
-
if (mimeType === 'multipart/form-data') {
|
|
176
|
+
if (mimeType === 'multipart/form-data' ||
|
|
177
|
+
mimeType === 'application/x-www-form-urlencoded') {
|
|
178
|
+
const exampleFromSchema = requestBodyObject?.schema
|
|
179
|
+
? getExampleFromSchema(requestBodyObject?.schema, {
|
|
180
|
+
xml: true,
|
|
181
|
+
mode: 'write',
|
|
182
|
+
omitEmptyAndOptionalProperties: true,
|
|
183
|
+
})
|
|
184
|
+
: null;
|
|
181
185
|
return {
|
|
182
186
|
headers,
|
|
183
187
|
postData: {
|
|
184
188
|
mimeType: mimeType,
|
|
185
|
-
|
|
186
|
-
// Don’t forget to include nested properties … :|
|
|
187
|
-
// params: [
|
|
188
|
-
// {
|
|
189
|
-
// name: 'foo',
|
|
190
|
-
// value: 'bar',
|
|
191
|
-
// },
|
|
192
|
-
// ],
|
|
189
|
+
params: getParamsFromObject(example ?? exampleFromSchema ?? {}),
|
|
193
190
|
},
|
|
194
191
|
};
|
|
195
192
|
}
|
package/package.json
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"specification",
|
|
17
17
|
"yaml"
|
|
18
18
|
],
|
|
19
|
-
"version": "0.2.
|
|
19
|
+
"version": "0.2.42",
|
|
20
20
|
"engines": {
|
|
21
21
|
"node": ">=18"
|
|
22
22
|
},
|
|
@@ -86,22 +86,21 @@
|
|
|
86
86
|
],
|
|
87
87
|
"module": "dist/index.js",
|
|
88
88
|
"dependencies": {
|
|
89
|
-
"axios": "^1.6.8",
|
|
90
89
|
"nanoid": "^5.0.7",
|
|
91
90
|
"yaml": "^2.4.5",
|
|
92
91
|
"zod": "^3.22.4",
|
|
93
|
-
"@scalar/object-utils": "1.1.7",
|
|
94
92
|
"@scalar/themes": "0.9.28",
|
|
95
|
-
"@scalar/types": "0.0.
|
|
93
|
+
"@scalar/types": "0.0.7",
|
|
94
|
+
"@scalar/object-utils": "1.1.7"
|
|
96
95
|
},
|
|
97
96
|
"devDependencies": {
|
|
98
|
-
"@scalar/openapi-parser": "^0.7.2",
|
|
99
|
-
"axios": "^1.6.8",
|
|
100
97
|
"rollup": "^4.16.4",
|
|
101
98
|
"type-fest": "^4.20.0",
|
|
102
99
|
"vite": "^5.2.10",
|
|
103
100
|
"vitest": "^1.6.0",
|
|
104
|
-
"@scalar/
|
|
101
|
+
"@scalar/openapi-types": "0.1.0",
|
|
102
|
+
"@scalar/build-tooling": "0.1.10",
|
|
103
|
+
"@scalar/openapi-parser": "0.8.1"
|
|
105
104
|
},
|
|
106
105
|
"scripts": {
|
|
107
106
|
"build": "scalar-build-rollup",
|