@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.
@@ -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;AAEvB,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"}
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: z.any().optional(),
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: z.instanceof(File).optional(),
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-parser';
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 = AxiosResponse & {
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,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAkB,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB,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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
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,GAqQF,CAAA"}
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]), options, level + 1);
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]), options, level + 1);
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;AAQ7E;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,oBAAoB,EAC/B,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA6NrC"}
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 === 'application/x-www-form-urlencoded') {
164
- return {
165
- headers,
166
- postData: {
167
- mimeType: mimeType,
168
- // TODO: We have an object, but how do we get that kind of array from the object?
169
- // Don’t forget to include nested properties … :|
170
- // params: [
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
- // TODO: We have an object, but how do we get that kind of array from the object?
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.39",
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.5"
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/build-tooling": "0.1.10"
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",