@scalar/oas-utils 0.4.21 → 0.4.23

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.
Files changed (59) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/entities/spec/collection.d.ts.map +1 -1
  3. package/dist/entities/spec/request-examples.d.ts +65 -65
  4. package/dist/entities/spec/request-examples.d.ts.map +1 -1
  5. package/dist/entities/spec/requests.d.ts +3 -3
  6. package/dist/entities/spec/requests.d.ts.map +1 -1
  7. package/dist/entities/spec/spec-objects.d.ts.map +1 -1
  8. package/dist/helpers/fetch-document.d.ts +1 -1
  9. package/dist/helpers/fetch-document.d.ts.map +1 -1
  10. package/dist/helpers/fetch-document.js +2 -2
  11. package/dist/helpers/fetch-document.js.map +2 -2
  12. package/dist/helpers/normalize-mime-type-object.d.ts +1 -1
  13. package/dist/helpers/normalize-mime-type-object.d.ts.map +1 -1
  14. package/dist/helpers/normalize-mime-type-object.js.map +1 -1
  15. package/dist/helpers/operation-stability.d.ts.map +1 -1
  16. package/dist/helpers/operation-to-har/operation-to-har.d.ts +1 -3
  17. package/dist/helpers/operation-to-har/operation-to-har.d.ts.map +1 -1
  18. package/dist/helpers/operation-to-har/operation-to-har.js.map +2 -2
  19. package/dist/helpers/operation-to-har/process-body.d.ts +2 -2
  20. package/dist/helpers/operation-to-har/process-body.d.ts.map +1 -1
  21. package/dist/helpers/operation-to-har/process-body.js +18 -1
  22. package/dist/helpers/operation-to-har/process-body.js.map +2 -2
  23. package/dist/helpers/operation-to-har/process-parameters.d.ts +1 -2
  24. package/dist/helpers/operation-to-har/process-parameters.d.ts.map +1 -1
  25. package/dist/helpers/operation-to-har/process-parameters.js.map +2 -2
  26. package/dist/helpers/operation-to-har/process-security-schemes.d.ts +1 -1
  27. package/dist/helpers/operation-to-har/process-security-schemes.d.ts.map +1 -1
  28. package/dist/helpers/operation-to-har/process-security-schemes.js +2 -1
  29. package/dist/helpers/operation-to-har/process-security-schemes.js.map +2 -2
  30. package/dist/helpers/operation-to-har/process-server-url.d.ts +1 -1
  31. package/dist/helpers/operation-to-har/process-server-url.d.ts.map +1 -1
  32. package/dist/helpers/operation-to-har/process-server-url.js.map +1 -1
  33. package/dist/helpers/parse.d.ts.map +1 -1
  34. package/dist/helpers/pretty-print-json.d.ts.map +1 -1
  35. package/dist/helpers/security/get-schemes.d.ts.map +1 -1
  36. package/dist/helpers/security/has-token.d.ts.map +1 -1
  37. package/dist/helpers/servers.d.ts +1 -1
  38. package/dist/helpers/servers.d.ts.map +1 -1
  39. package/dist/helpers/servers.js.map +1 -1
  40. package/dist/helpers/should-ignore-entity.d.ts.map +1 -1
  41. package/dist/migrations/local-storage.d.ts.map +1 -1
  42. package/dist/migrations/semver.d.ts.map +1 -1
  43. package/dist/migrations/v-2.1.0/migration.d.ts.map +1 -1
  44. package/dist/migrations/v-2.2.0/migration.d.ts.map +1 -1
  45. package/dist/migrations/v-2.3.0/migration.d.ts.map +1 -1
  46. package/dist/migrations/v-2.4.0/migration.d.ts.map +1 -1
  47. package/dist/migrations/v-2.5.0/migration.d.ts.map +1 -1
  48. package/dist/spec-getters/get-example-from-schema.d.ts +3 -3
  49. package/dist/spec-getters/get-example-from-schema.d.ts.map +1 -1
  50. package/dist/spec-getters/get-example-from-schema.js +55 -53
  51. package/dist/spec-getters/get-example-from-schema.js.map +2 -2
  52. package/dist/spec-getters/get-parameters-from-operation.d.ts.map +1 -1
  53. package/dist/spec-getters/get-parameters-from-operation.js +1 -4
  54. package/dist/spec-getters/get-parameters-from-operation.js.map +2 -2
  55. package/dist/spec-getters/get-request-body-from-operation.js +1 -1
  56. package/dist/spec-getters/get-request-body-from-operation.js.map +2 -2
  57. package/dist/spec-getters/get-server-variable-examples.d.ts.map +1 -1
  58. package/dist/transforms/import-spec.d.ts.map +1 -1
  59. package/package.json +10 -9
@@ -556,7 +556,7 @@ export declare const requestSchema: z.ZodObject<z.objectUtil.extendShape<z.objec
556
556
  label?: unknown;
557
557
  lang?: unknown;
558
558
  }>, "many">>>;
559
- 'x-code-samples': z.ZodCatch<z.ZodOptional<z.ZodArray /** Store headers as an object to match what we had with axios */<z.ZodObject<{
559
+ 'x-code-samples': z.ZodCatch<z.ZodOptional<z.ZodArray<z.ZodObject<{
560
560
  lang: z.ZodCatch<z.ZodOptional<z.ZodString>>;
561
561
  label: z.ZodCatch<z.ZodOptional<z.ZodString>>;
562
562
  source: z.ZodString;
@@ -569,8 +569,8 @@ export declare const requestSchema: z.ZodObject<z.objectUtil.extendShape<z.objec
569
569
  label?: unknown;
570
570
  lang?: unknown;
571
571
  }>, "many">>>;
572
- 'x-custom-examples': z.ZodCatch<z.ZodOptional<z.ZodArray /** The response data */<z.ZodObject<{
573
- lang: z.ZodCatch<z.ZodOptional<z.ZodString /** The response size in bytes */>>;
572
+ 'x-custom-examples': z.ZodCatch<z.ZodOptional<z.ZodArray<z.ZodObject<{
573
+ lang: z.ZodCatch<z.ZodOptional<z.ZodString>>;
574
574
  label: z.ZodCatch<z.ZodOptional<z.ZodString>>;
575
575
  source: z.ZodString;
576
576
  }, "strip", z.ZodTypeAny, {
@@ -1 +1 @@
1
- {"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../../src/entities/spec/requests.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvC,OAAO,EACL,KAAK,kBAAkB,EAEvB,mBAAmB,EACpB,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,oBAAoB,CAAA;AAG9E,eAAO,MAAM,cAAc,2FAA4F,CAAA;AAEvH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3D,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,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,0BAA0B;IAC1B,MAAM,EAAE,aAAa,CAAA;IACrB,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,CACE;IACE,wBAAwB;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;CACb,GACD;IACE,qDAAqD;IACrD,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAA;CAChD,CACJ,CAAA;AAEH,iEAAiE;AACjE,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,cAAc,CAAA;IACvB,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAMD,2CAA2C;AAC3C,eAAO,MAAM,gBAAgB;IAC3B;;;;;OAKG;;IAEH,kDAAkD;;IAElD,mHAAmH;;IAEnH;;;;OAIG;;IAEH;;;;;;OAMG;;IAEH;;;;;OAKG;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;IAGH,uBAAuB;;IAEvB,gBAAgB;;IAEhB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEvB,sBAAsB;;IAEtB,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAExB,CAAA;AAyCF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AACnE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC,iBAAiB,CAAC,CAAA;AAExF,8CAA8C;AAC9C,eAAO,MAAM,aAAa;IAhGxB;;;;;OAKG;;IAEH,kDAAkD;;IAElD,mHAAmH;;IAEnH;;;;OAIG;;IAEH;;;;;;OAMG;;IAEH;;;;;OAKG;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;IAGH,uBAAuB;;IAEvB,gBAAgB;;IAEhB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEvB,sBAAsB;;IAEtB,wBAAwB;;;qBAnGH,EAAG,QAAQ,CAAC,EAAE,WAAW,CAChD,EAAC,QAAQ,CAAC,EAAE,SAAS;cAAgB,EAAG,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS;eAC7D,EAAG,QAAQ,CAAC,EAAE,WAAW,CAAE,EAAE,SAAQ;gBAE9C,EAAG,SAAS;gBAAiB,EAAG,UAAU;;aAAyC,CAAC;YAEvF,CAAC;;;aAEO,CAAC;YAAuB,CAAC;;sBACR,EAAG,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,QACrD,CAAC,iEAAiE,CACjE,EADE,SAAS;cAAgB,EAAI,QAAO,CAAE,EAAC,WAAW,CAAC,EAAE,SAAS;eAClD,EAAG,QAAQ,CAAC,EAAE,WACvB,CAAC,EAAG,SAAQ;gBAAmB,EAAG,SAClC;gBAAiB,EAAG,UACnB;;aACI,CAAC;YAEX,CAAF;;;aAEiB,CAAC;YACE,CAAC;;yBAEE,EACrB,QAAK,CAAC,EAAE,WAEV,CAAI,EAAA,QACD,CAAK,wBAAwB,CACxB,EAAA,SADO;cAAgB,EACvB,QAAC,CAAC,EAAE,WAAW,CAAC,EAAE,SACnB,CAAC,iCAAiC;eAAhB,EAAG,QAAQ,CAAC,EAAE,WAC/B,CAAC,EAAE,SAAS;gBAIZ,EAAA,SADM;gBAAkB,EAAE,UAAU;;aACrB,CAAC;YAClB,CAAH;;;aAGuD,CAAC;YAC3C,CAAC;;;;;;;IA0Ff,eAAe;;IAEf,qBAAqB;;IAErB,kDAAkD;;IAElD,oCAAoC;;IAEpC,uDAAuD;;IAEvD,+DAA+D;;;uBAzInC,EAAG,WAAW,CAAC,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsJ3B,CAAA;AAE7B,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AACnD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA"}
1
+ {"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../../src/entities/spec/requests.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"spec-objects.d.ts","sourceRoot":"","sources":["../../../src/entities/spec/spec-objects.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;IAEzB,mDAAmD;;IAEnD,2GAA2G;;IAE3G;;OAEG;;;;;;;;;;;;;;;;;;EAG0B,CAAA;AAEjC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;IAEzB,+DAA+D;;IAE/D,sFAAsF;;IAEtF,0GAA0G;;;;;;;;;;;;;;;;;;EAG7E,CAAA;AAEjC;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;IAEtB,sCAAsC;;IAEtC,kCAAkC;;IAElC,4FAA4F;;IAE5F,oFAAoF;;IAEpF,mDAAmD;;QA3BnD,+DAA+D;;QAE/D,sFAAsF;;QAEtF,0GAA0G;;;;;;;;;;;;;;;;;;;IAyB1G,mDAAmD;;QAjDnD,mDAAmD;;QAEnD,2GAA2G;;QAE3G;;WAEG;;;;;;;;;;;;;;;;;;;IA6CH;;;OAGG;;;iCAnEiC,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS;cACxE,EAAG,SAAS;gBAAiB,EAAG,QAAQ,CAAC,EAAE,WAAW,CACrE,EAAC,SAAS;qBAGL,EAAG,QAAQ,CACf,EAAA,WACQ,CAAE,EAAC,SAAS;gBAAmB,EACvC,UACK;;mBAA6C,CAAC;cAAoC,CAAC;;;mBAI1E,CAAC;cAAyB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DT,CAAA;AAEjC;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;IAEvC,6GAA6G;;IAE7G,yFAAyF;;;;;;;;;;;;;;EAG5D,CAAA;AAEjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAElF,eAAO,MAAM,mBAAmB;;;;;;WAItB,CAAA;AAEV;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY;IAEvB;;OAEG;;IAEH,qCAAqC;;IAErC,6FAA6F;;IAE7F,sDAAsD;;QAjCpD,6GAA6G;;QAE7G,yFAAyF;;;;;;;;;;;;;;;;;;;;;;IAkC3F,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGvB,CAAA;AAEF,eAAO,MAAM,SAAS;IAhBpB;;OAEG;;IAEH,qCAAqC;;IAErC,6FAA6F;;IAE7F,sDAAsD;;QAjCpD,6GAA6G;;QAE7G,yFAAyF;;;;;;;;;;;;;;;;;;;;;;IAkC3F,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWvB,CAAA;AAEF,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAC3C,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"spec-objects.d.ts","sourceRoot":"","sources":["../../../src/entities/spec/spec-objects.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;IAEzB,mDAAmD;;IAEnD,2GAA2G;;IAE3G;;OAEG;;;;;;;;;;;;;;;;;;EAG0B,CAAA;AAEjC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;IAEzB,+DAA+D;;IAE/D,sFAAsF;;IAEtF,0GAA0G;;;;;;;;;;;;;;;;;;EAG7E,CAAA;AAEjC;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;IAEtB,sCAAsC;;IAEtC,kCAAkC;;IAElC,4FAA4F;;IAE5F,oFAAoF;;IAEpF,mDAAmD;;QA3BnD,+DAA+D;;QAE/D,sFAAsF;;QAEtF,0GAA0G;;;;;;;;;;;;;;;;;;;IAyB1G,mDAAmD;;QAjDnD,mDAAmD;;QAEnD,2GAA2G;;QAE3G;;WAEG;;;;;;;;;;;;;;;;;;;IA6CH;;;OAGG;;;;;;;;;mBA1D4C,CAAC;cAAoC,CAAC;;;mBAI1E,CAAC;cAAyB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DT,CAAA;AAEjC;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;IAEvC,6GAA6G;;IAE7G,yFAAyF;;;;;;;;;;;;;;EAG5D,CAAA;AAEjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAElF,eAAO,MAAM,mBAAmB;;;;;;WAItB,CAAA;AAEV;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY;IAEvB;;OAEG;;IAEH,qCAAqC;;IAErC,6FAA6F;;IAE7F,sDAAsD;;QAjCpD,6GAA6G;;QAE7G,yFAAyF;;;;;;;;;;;;;;;;;;;;;;IAkC3F,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGvB,CAAA;AAEF,eAAO,MAAM,SAAS;IAhBpB;;OAEG;;IAEH,qCAAqC;;IAErC,6FAA6F;;IAE7F,sDAAsD;;QAjCpD,6GAA6G;;QAE7G,yFAAyF;;;;;;;;;;;;;;;;;;;;;;IAkC3F,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWvB,CAAA;AAEF,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAC3C,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA"}
@@ -3,5 +3,5 @@
3
3
  *
4
4
  * @throws an error if the fetch fails
5
5
  */
6
- export declare function fetchDocument(url: string, proxyUrl?: string, prettyPrint?: boolean): Promise<string>;
6
+ export declare function fetchDocument(url: string, proxyUrl?: string, fetcher?: (input: string | URL | globalThis.Request, init?: RequestInit) => Promise<Response>, prettyPrint?: boolean): Promise<string>;
7
7
  //# sourceMappingURL=fetch-document.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-document.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch-document.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW,UAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BvG"}
1
+ {"version":3,"file":"fetch-document.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch-document.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,EAC7F,WAAW,UAAO,GACjB,OAAO,CAAC,MAAM,CAAC,CA4BjB"}
@@ -2,11 +2,11 @@ import { formatJsonOrYamlString } from "./parse.js";
2
2
  import { redirectToProxy } from "./redirect-to-proxy.js";
3
3
  const OLD_PROXY_URL = "https://api.scalar.com/request-proxy";
4
4
  const NEW_PROXY_URL = "https://proxy.scalar.com";
5
- async function fetchDocument(url, proxyUrl, prettyPrint = true) {
5
+ async function fetchDocument(url, proxyUrl, fetcher, prettyPrint = true) {
6
6
  if (proxyUrl === OLD_PROXY_URL) {
7
7
  proxyUrl = NEW_PROXY_URL;
8
8
  }
9
- const response = await fetch(redirectToProxy(proxyUrl, url));
9
+ const response = await (fetcher ? fetcher(url, void 0) : fetch(redirectToProxy(proxyUrl, url)));
10
10
  if (response.status !== 200) {
11
11
  console.error(`[fetchDocument] Failed to fetch the OpenAPI document from ${url} (Status: ${response.status})`);
12
12
  if (!proxyUrl) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/helpers/fetch-document.ts"],
4
- "sourcesContent": ["import { formatJsonOrYamlString } from './parse'\nimport { redirectToProxy } from './redirect-to-proxy'\n\n// Doesn't work\nconst OLD_PROXY_URL = 'https://api.scalar.com/request-proxy'\n// Does work\nconst NEW_PROXY_URL = 'https://proxy.scalar.com'\n\n/**\n * Fetches an OpenAPI/Swagger document from a given URL\n *\n * @throws an error if the fetch fails\n */\nexport async function fetchDocument(url: string, proxyUrl?: string, prettyPrint = true): Promise<string> {\n // This replaces the OLD_PROXY_URL with the NEW_PROXY_URL on the fly.\n if (proxyUrl === OLD_PROXY_URL) {\n // biome-ignore lint/style/noParameterAssign: It's ok, let's make an exception here.\n proxyUrl = NEW_PROXY_URL\n }\n\n const response = await fetch(redirectToProxy(proxyUrl, url))\n\n // Looks like the request failed\n if (response.status !== 200) {\n console.error(`[fetchDocument] Failed to fetch the OpenAPI document from ${url} (Status: ${response.status})`)\n\n if (!proxyUrl) {\n console.warn(\n `[fetchDocument] Tried to fetch the OpenAPI document from ${url} without a proxy. Are the CORS headers configured to allow cross-domain requests? https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS`,\n )\n }\n\n throw new Error(`Failed to fetch the OpenAPI document from ${url} (Status: ${response.status})`)\n }\n\n // If it's JSON, make it pretty\n if (prettyPrint) {\n return formatJsonOrYamlString(await response.text())\n }\n\n return await response.text()\n}\n"],
5
- "mappings": "AAAA,SAAS,8BAA8B;AACvC,SAAS,uBAAuB;AAGhC,MAAM,gBAAgB;AAEtB,MAAM,gBAAgB;AAOtB,eAAsB,cAAc,KAAa,UAAmB,cAAc,MAAuB;AAEvG,MAAI,aAAa,eAAe;AAE9B,eAAW;AAAA,EACb;AAEA,QAAM,WAAW,MAAM,MAAM,gBAAgB,UAAU,GAAG,CAAC;AAG3D,MAAI,SAAS,WAAW,KAAK;AAC3B,YAAQ,MAAM,6DAA6D,GAAG,aAAa,SAAS,MAAM,GAAG;AAE7G,QAAI,CAAC,UAAU;AACb,cAAQ;AAAA,QACN,4DAA4D,GAAG;AAAA,MACjE;AAAA,IACF;AAEA,UAAM,IAAI,MAAM,6CAA6C,GAAG,aAAa,SAAS,MAAM,GAAG;AAAA,EACjG;AAGA,MAAI,aAAa;AACf,WAAO,uBAAuB,MAAM,SAAS,KAAK,CAAC;AAAA,EACrD;AAEA,SAAO,MAAM,SAAS,KAAK;AAC7B;",
4
+ "sourcesContent": ["import { formatJsonOrYamlString } from './parse'\nimport { redirectToProxy } from './redirect-to-proxy'\n\n// Doesn't work\nconst OLD_PROXY_URL = 'https://api.scalar.com/request-proxy'\n// Does work\nconst NEW_PROXY_URL = 'https://proxy.scalar.com'\n\n/**\n * Fetches an OpenAPI/Swagger document from a given URL\n *\n * @throws an error if the fetch fails\n */\nexport async function fetchDocument(\n url: string,\n proxyUrl?: string,\n fetcher?: (input: string | URL | globalThis.Request, init?: RequestInit) => Promise<Response>,\n prettyPrint = true,\n): Promise<string> {\n // This replaces the OLD_PROXY_URL with the NEW_PROXY_URL on the fly.\n if (proxyUrl === OLD_PROXY_URL) {\n // biome-ignore lint/style/noParameterAssign: It's ok, let's make an exception here.\n proxyUrl = NEW_PROXY_URL\n }\n\n const response = await (fetcher ? fetcher(url, undefined) : fetch(redirectToProxy(proxyUrl, url)))\n\n // Looks like the request failed\n if (response.status !== 200) {\n console.error(`[fetchDocument] Failed to fetch the OpenAPI document from ${url} (Status: ${response.status})`)\n\n if (!proxyUrl) {\n console.warn(\n `[fetchDocument] Tried to fetch the OpenAPI document from ${url} without a proxy. Are the CORS headers configured to allow cross-domain requests? https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS`,\n )\n }\n\n throw new Error(`Failed to fetch the OpenAPI document from ${url} (Status: ${response.status})`)\n }\n\n // If it's JSON, make it pretty\n if (prettyPrint) {\n return formatJsonOrYamlString(await response.text())\n }\n\n return await response.text()\n}\n"],
5
+ "mappings": "AAAA,SAAS,8BAA8B;AACvC,SAAS,uBAAuB;AAGhC,MAAM,gBAAgB;AAEtB,MAAM,gBAAgB;AAOtB,eAAsB,cACpB,KACA,UACA,SACA,cAAc,MACG;AAEjB,MAAI,aAAa,eAAe;AAE9B,eAAW;AAAA,EACb;AAEA,QAAM,WAAW,OAAO,UAAU,QAAQ,KAAK,MAAS,IAAI,MAAM,gBAAgB,UAAU,GAAG,CAAC;AAGhG,MAAI,SAAS,WAAW,KAAK;AAC3B,YAAQ,MAAM,6DAA6D,GAAG,aAAa,SAAS,MAAM,GAAG;AAE7G,QAAI,CAAC,UAAU;AACb,cAAQ;AAAA,QACN,4DAA4D,GAAG;AAAA,MACjE;AAAA,IACF;AAEA,UAAM,IAAI,MAAM,6CAA6C,GAAG,aAAa,SAAS,MAAM,GAAG;AAAA,EACjG;AAGA,MAAI,aAAa;AACf,WAAO,uBAAuB,MAAM,SAAS,KAAK,CAAC;AAAA,EACrD;AAEA,SAAO,MAAM,SAAS,KAAK;AAC7B;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,4 @@
1
- import type { ResponseObject } from '@scalar/workspace-store/schemas/v3.1/strict/response';
1
+ import type { ResponseObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
2
2
  /**
3
3
  * Remove charset from content types
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-mime-type-object.d.ts","sourceRoot":"","sources":["../../src/helpers/normalize-mime-type-object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAG1F;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAiBtG"}
1
+ {"version":3,"file":"normalize-mime-type-object.d.ts","sourceRoot":"","sources":["../../src/helpers/normalize-mime-type-object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8DAA8D,CAAA;AAGlG;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAiBtG"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/helpers/normalize-mime-type-object.ts"],
4
- "sourcesContent": ["import type { ResponseObject } from '@scalar/workspace-store/schemas/v3.1/strict/response'\nimport { normalizeMimeType } from './normalize-mime-type'\n\n/**\n * Remove charset from content types\n *\n * Example: `application/json; charset=utf-8` -> `application/json`\n */\nexport function normalizeMimeTypeObject(content?: ResponseObject['content']): ResponseObject['content'] {\n if (!content) {\n return content\n }\n\n const newContent: ResponseObject['content'] = {\n ...content,\n }\n\n Object.entries(newContent).forEach(([key, value]) => {\n const normalizedKey = normalizeMimeType(key)\n if (normalizedKey) {\n newContent[normalizedKey] = value\n }\n })\n\n return newContent\n}\n"],
4
+ "sourcesContent": ["import type { ResponseObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { normalizeMimeType } from './normalize-mime-type'\n\n/**\n * Remove charset from content types\n *\n * Example: `application/json; charset=utf-8` -> `application/json`\n */\nexport function normalizeMimeTypeObject(content?: ResponseObject['content']): ResponseObject['content'] {\n if (!content) {\n return content\n }\n\n const newContent: ResponseObject['content'] = {\n ...content,\n }\n\n Object.entries(newContent).forEach(([key, value]) => {\n const normalizedKey = normalizeMimeType(key)\n if (normalizedKey) {\n newContent[normalizedKey] = value\n }\n })\n\n return newContent\n}\n"],
5
5
  "mappings": "AACA,SAAS,yBAAyB;AAO3B,SAAS,wBAAwB,SAAgE;AACtG,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,aAAwC;AAAA,IAC5C,GAAG;AAAA,EACL;AAEA,SAAO,QAAQ,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACnD,UAAM,gBAAgB,kBAAkB,GAAG;AAC3C,QAAI,eAAe;AACjB,iBAAW,aAAa,IAAI;AAAA,IAC9B;AAAA,EACF,CAAC;AAED,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"operation-stability.d.ts","sourceRoot":"","sources":["../../src/helpers/operation-stability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAA;AAEjF,KAAK,kBAAkB,GAAG;IACxB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,cAAe,kBAAkB,KAAG,OACyB,CAAA;AAE/F;;GAEG;AACH,eAAO,MAAM,qBAAqB,cAAe,kBAAkB,KAAG,sBAAsB,GAAG,SAGlB,CAAA;AAE7E;;GAEG;AACH,eAAO,MAAM,0BAA0B,cAAe,kBAAkB,KAAG,MAW1E,CAAA"}
1
+ {"version":3,"file":"operation-stability.d.ts","sourceRoot":"","sources":["../../src/helpers/operation-stability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAA;AAEjF,KAAK,kBAAkB,GAAG;IACxB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,WAAW,kBAAkB,KAAG,OACyB,CAAA;AAE/F;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,WAAW,kBAAkB,KAAG,sBAAsB,GAAG,SAGlB,CAAA;AAE7E;;GAEG;AACH,eAAO,MAAM,0BAA0B,GAAI,WAAW,kBAAkB,KAAG,MAW1E,CAAA"}
@@ -1,8 +1,6 @@
1
1
  import type { HttpMethod } from '@scalar/helpers/http/http-methods';
2
2
  import type { Request as HarRequest } from 'har-format';
3
- import type { OperationObject } from '@scalar/workspace-store/schemas/v3.1/strict/path-operations';
4
- import type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/server';
5
- import type { SecuritySchemeObject } from '@scalar/workspace-store/schemas/v3.1/strict/security-scheme';
3
+ import type { ServerObject, SecuritySchemeObject, OperationObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
6
4
  export type OperationToHarProps = {
7
5
  /** OpenAPI Operation object */
8
6
  operation: OperationObject;
@@ -1 +1 @@
1
- {"version":3,"file":"operation-to-har.d.ts","sourceRoot":"","sources":["../../../src/helpers/operation-to-har/operation-to-har.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAMvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6DAA6D,CAAA;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oDAAoD,CAAA;AACtF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6DAA6D,CAAA;AAGvG,MAAM,MAAM,mBAAmB,GAAG;IAChC,+BAA+B;IAC/B,SAAS,EAAE,eAAe,CAAA;IAC1B,mCAAmC;IACnC,MAAM,EAAE,UAAU,CAAA;IAClB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;IACjC,2EAA2E;IAC3E,eAAe,CAAC,EAAE,oBAAoB,EAAE,CAAA;CACzC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,cAAc,gFAQxB,mBAAmB,KAAG,UAoExB,CAAA"}
1
+ {"version":3,"file":"operation-to-har.d.ts","sourceRoot":"","sources":["../../../src/helpers/operation-to-har/operation-to-har.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAMvD,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,eAAe,EAChB,MAAM,8DAA8D,CAAA;AAGrE,MAAM,MAAM,mBAAmB,GAAG;IAChC,+BAA+B;IAC/B,SAAS,EAAE,eAAe,CAAA;IAC1B,mCAAmC;IACnC,MAAM,EAAE,UAAU,CAAA;IAClB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;IACjC,2EAA2E;IAC3E,eAAe,CAAC,EAAE,oBAAoB,EAAE,CAAA;CACzC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,cAAc,GAAI,6EAQ5B,mBAAmB,KAAG,UAoExB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/operation-to-har/operation-to-har.ts"],
4
- "sourcesContent": ["import type { HttpMethod } from '@scalar/helpers/http/http-methods'\nimport type { Request as HarRequest } from 'har-format'\n\nimport { processServerUrl } from './process-server-url'\nimport { processParameters } from './process-parameters'\nimport { processBody } from './process-body'\nimport { processSecuritySchemes } from './process-security-schemes'\nimport type { OperationObject } from '@scalar/workspace-store/schemas/v3.1/strict/path-operations'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/server'\nimport type { SecuritySchemeObject } from '@scalar/workspace-store/schemas/v3.1/strict/security-scheme'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\n\nexport type OperationToHarProps = {\n /** OpenAPI Operation object */\n operation: OperationObject\n /** HTTP method of the operation */\n method: HttpMethod\n /** Path of the operation */\n path: string\n /**\n * requestBody.content[contentType].example to use for the request, it should be pre-selected and discriminated\n */\n example?: unknown\n /**\n * Content type of the request\n *\n * @defaults to the first content type in the operation.requestBody.content\n */\n contentType?: string\n /** OpenAPI Server object */\n server?: ServerObject | undefined\n /** OpenAPI SecurityScheme objects which are applicable to the operation */\n securitySchemes?: SecuritySchemeObject[]\n}\n\n/**\n * Converts an OpenAPI Operation to a HarRequest format for generating HTTP request snippets.\n *\n * This function transforms OpenAPI 3.1 operation objects into HAR (HTTP Archive) format requests,\n * which can be used to generate code snippets for various programming languages and HTTP clients.\n *\n * The conversion handles:\n * - Server URL processing and path parameter substitution\n * - Query parameter formatting based on OpenAPI parameter styles\n * - Request body processing with content type handling\n * - Security scheme integration (API keys, etc.)\n *\n * The resulting HarRequest object follows the HAR specification and includes:\n * - HTTP method and URL\n * - Headers and query parameters\n * - Request body (if present)\n * - Cookie information\n * - Size calculations for headers and body\n *\n * @see https://w3c.github.io/web-performance/specs/HAR/Overview.html\n * @see https://spec.openapis.org/oas/v3.1.0#operation-object\n */\nexport const operationToHar = ({\n operation,\n contentType,\n method,\n path,\n server,\n securitySchemes,\n example,\n}: OperationToHarProps): HarRequest => {\n // Initialize the HAR request with basic properties\n const harRequest: HarRequest = {\n method,\n url: path,\n headers: [],\n queryString: [],\n postData: undefined,\n httpVersion: 'HTTP/1.1',\n cookies: [],\n headersSize: -1,\n bodySize: -1,\n }\n\n // Server URL\n if (server?.url) {\n harRequest.url = processServerUrl(server, path)\n }\n\n // Handle parameters\n if (operation.parameters) {\n const { url, headers, queryString, cookies } = processParameters(harRequest, operation.parameters, example)\n harRequest.url = url\n harRequest.headers = headers\n harRequest.queryString = queryString\n harRequest.cookies = cookies\n }\n\n const body = getResolvedRef(operation.requestBody)\n\n // Handle request body\n if (body?.content) {\n const postData = processBody({ content: body.content, contentType, example })\n harRequest.postData = postData\n harRequest.bodySize = postData.text?.length ?? -1\n\n // Add or update Content-Type header\n if (postData.mimeType) {\n const existingContentTypeHeader = harRequest.headers.find(\n (header) => header.name.toLowerCase() === 'content-type',\n )\n // Update existing header if it has an empty value\n if (existingContentTypeHeader && !existingContentTypeHeader.value) {\n existingContentTypeHeader.value = postData.mimeType\n }\n // Add new header if none exists\n else {\n harRequest.headers.push({\n name: 'Content-Type',\n value: postData.mimeType,\n })\n }\n }\n }\n\n // Handle security schemes\n if (securitySchemes) {\n const { headers, queryString, cookies } = processSecuritySchemes(securitySchemes)\n harRequest.headers.push(...headers)\n harRequest.queryString.push(...queryString)\n harRequest.cookies.push(...cookies)\n }\n\n // Calculate headers size\n const headerText = harRequest.headers.map((h) => `${h.name}: ${h.value}`).join('\\r\\n')\n harRequest.headersSize = headerText.length\n\n return harRequest\n}\n"],
5
- "mappings": "AAGA,SAAS,wBAAwB;AACjC,SAAS,yBAAyB;AAClC,SAAS,mBAAmB;AAC5B,SAAS,8BAA8B;AAIvC,SAAS,sBAAsB;AA+CxB,MAAM,iBAAiB,CAAC;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAuC;AAErC,QAAM,aAAyB;AAAA,IAC7B;AAAA,IACA,KAAK;AAAA,IACL,SAAS,CAAC;AAAA,IACV,aAAa,CAAC;AAAA,IACd,UAAU;AAAA,IACV,aAAa;AAAA,IACb,SAAS,CAAC;AAAA,IACV,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAGA,MAAI,QAAQ,KAAK;AACf,eAAW,MAAM,iBAAiB,QAAQ,IAAI;AAAA,EAChD;AAGA,MAAI,UAAU,YAAY;AACxB,UAAM,EAAE,KAAK,SAAS,aAAa,QAAQ,IAAI,kBAAkB,YAAY,UAAU,YAAY,OAAO;AAC1G,eAAW,MAAM;AACjB,eAAW,UAAU;AACrB,eAAW,cAAc;AACzB,eAAW,UAAU;AAAA,EACvB;AAEA,QAAM,OAAO,eAAe,UAAU,WAAW;AAGjD,MAAI,MAAM,SAAS;AACjB,UAAM,WAAW,YAAY,EAAE,SAAS,KAAK,SAAS,aAAa,QAAQ,CAAC;AAC5E,eAAW,WAAW;AACtB,eAAW,WAAW,SAAS,MAAM,UAAU;AAG/C,QAAI,SAAS,UAAU;AACrB,YAAM,4BAA4B,WAAW,QAAQ;AAAA,QACnD,CAAC,WAAW,OAAO,KAAK,YAAY,MAAM;AAAA,MAC5C;AAEA,UAAI,6BAA6B,CAAC,0BAA0B,OAAO;AACjE,kCAA0B,QAAQ,SAAS;AAAA,MAC7C,OAEK;AACH,mBAAW,QAAQ,KAAK;AAAA,UACtB,MAAM;AAAA,UACN,OAAO,SAAS;AAAA,QAClB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAGA,MAAI,iBAAiB;AACnB,UAAM,EAAE,SAAS,aAAa,QAAQ,IAAI,uBAAuB,eAAe;AAChF,eAAW,QAAQ,KAAK,GAAG,OAAO;AAClC,eAAW,YAAY,KAAK,GAAG,WAAW;AAC1C,eAAW,QAAQ,KAAK,GAAG,OAAO;AAAA,EACpC;AAGA,QAAM,aAAa,WAAW,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,MAAM;AACrF,aAAW,cAAc,WAAW;AAEpC,SAAO;AACT;",
4
+ "sourcesContent": ["import type { HttpMethod } from '@scalar/helpers/http/http-methods'\nimport type { Request as HarRequest } from 'har-format'\n\nimport { processServerUrl } from './process-server-url'\nimport { processParameters } from './process-parameters'\nimport { processBody } from './process-body'\nimport { processSecuritySchemes } from './process-security-schemes'\nimport type {\n ServerObject,\n SecuritySchemeObject,\n OperationObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\n\nexport type OperationToHarProps = {\n /** OpenAPI Operation object */\n operation: OperationObject\n /** HTTP method of the operation */\n method: HttpMethod\n /** Path of the operation */\n path: string\n /**\n * requestBody.content[contentType].example to use for the request, it should be pre-selected and discriminated\n */\n example?: unknown\n /**\n * Content type of the request\n *\n * @defaults to the first content type in the operation.requestBody.content\n */\n contentType?: string\n /** OpenAPI Server object */\n server?: ServerObject | undefined\n /** OpenAPI SecurityScheme objects which are applicable to the operation */\n securitySchemes?: SecuritySchemeObject[]\n}\n\n/**\n * Converts an OpenAPI Operation to a HarRequest format for generating HTTP request snippets.\n *\n * This function transforms OpenAPI 3.1 operation objects into HAR (HTTP Archive) format requests,\n * which can be used to generate code snippets for various programming languages and HTTP clients.\n *\n * The conversion handles:\n * - Server URL processing and path parameter substitution\n * - Query parameter formatting based on OpenAPI parameter styles\n * - Request body processing with content type handling\n * - Security scheme integration (API keys, etc.)\n *\n * The resulting HarRequest object follows the HAR specification and includes:\n * - HTTP method and URL\n * - Headers and query parameters\n * - Request body (if present)\n * - Cookie information\n * - Size calculations for headers and body\n *\n * @see https://w3c.github.io/web-performance/specs/HAR/Overview.html\n * @see https://spec.openapis.org/oas/v3.1.0#operation-object\n */\nexport const operationToHar = ({\n operation,\n contentType,\n method,\n path,\n server,\n securitySchemes,\n example,\n}: OperationToHarProps): HarRequest => {\n // Initialize the HAR request with basic properties\n const harRequest: HarRequest = {\n method,\n url: path,\n headers: [],\n queryString: [],\n postData: undefined,\n httpVersion: 'HTTP/1.1',\n cookies: [],\n headersSize: -1,\n bodySize: -1,\n }\n\n // Server URL\n if (server?.url) {\n harRequest.url = processServerUrl(server, path)\n }\n\n // Handle parameters\n if (operation.parameters) {\n const { url, headers, queryString, cookies } = processParameters(harRequest, operation.parameters, example)\n harRequest.url = url\n harRequest.headers = headers\n harRequest.queryString = queryString\n harRequest.cookies = cookies\n }\n\n const body = getResolvedRef(operation.requestBody)\n\n // Handle request body\n if (body?.content) {\n const postData = processBody({ content: body.content, contentType, example })\n harRequest.postData = postData\n harRequest.bodySize = postData.text?.length ?? -1\n\n // Add or update Content-Type header\n if (postData.mimeType) {\n const existingContentTypeHeader = harRequest.headers.find(\n (header) => header.name.toLowerCase() === 'content-type',\n )\n // Update existing header if it has an empty value\n if (existingContentTypeHeader && !existingContentTypeHeader.value) {\n existingContentTypeHeader.value = postData.mimeType\n }\n // Add new header if none exists\n else {\n harRequest.headers.push({\n name: 'Content-Type',\n value: postData.mimeType,\n })\n }\n }\n }\n\n // Handle security schemes\n if (securitySchemes) {\n const { headers, queryString, cookies } = processSecuritySchemes(securitySchemes)\n harRequest.headers.push(...headers)\n harRequest.queryString.push(...queryString)\n harRequest.cookies.push(...cookies)\n }\n\n // Calculate headers size\n const headerText = harRequest.headers.map((h) => `${h.name}: ${h.value}`).join('\\r\\n')\n harRequest.headersSize = headerText.length\n\n return harRequest\n}\n"],
5
+ "mappings": "AAGA,SAAS,wBAAwB;AACjC,SAAS,yBAAyB;AAClC,SAAS,mBAAmB;AAC5B,SAAS,8BAA8B;AAMvC,SAAS,sBAAsB;AA+CxB,MAAM,iBAAiB,CAAC;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAuC;AAErC,QAAM,aAAyB;AAAA,IAC7B;AAAA,IACA,KAAK;AAAA,IACL,SAAS,CAAC;AAAA,IACV,aAAa,CAAC;AAAA,IACd,UAAU;AAAA,IACV,aAAa;AAAA,IACb,SAAS,CAAC;AAAA,IACV,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAGA,MAAI,QAAQ,KAAK;AACf,eAAW,MAAM,iBAAiB,QAAQ,IAAI;AAAA,EAChD;AAGA,MAAI,UAAU,YAAY;AACxB,UAAM,EAAE,KAAK,SAAS,aAAa,QAAQ,IAAI,kBAAkB,YAAY,UAAU,YAAY,OAAO;AAC1G,eAAW,MAAM;AACjB,eAAW,UAAU;AACrB,eAAW,cAAc;AACzB,eAAW,UAAU;AAAA,EACvB;AAEA,QAAM,OAAO,eAAe,UAAU,WAAW;AAGjD,MAAI,MAAM,SAAS;AACjB,UAAM,WAAW,YAAY,EAAE,SAAS,KAAK,SAAS,aAAa,QAAQ,CAAC;AAC5E,eAAW,WAAW;AACtB,eAAW,WAAW,SAAS,MAAM,UAAU;AAG/C,QAAI,SAAS,UAAU;AACrB,YAAM,4BAA4B,WAAW,QAAQ;AAAA,QACnD,CAAC,WAAW,OAAO,KAAK,YAAY,MAAM;AAAA,MAC5C;AAEA,UAAI,6BAA6B,CAAC,0BAA0B,OAAO;AACjE,kCAA0B,QAAQ,SAAS;AAAA,MAC7C,OAEK;AACH,mBAAW,QAAQ,KAAK;AAAA,UACtB,MAAM;AAAA,UACN,OAAO,SAAS;AAAA,QAClB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAGA,MAAI,iBAAiB;AACnB,UAAM,EAAE,SAAS,aAAa,QAAQ,IAAI,uBAAuB,eAAe;AAChF,eAAW,QAAQ,KAAK,GAAG,OAAO;AAClC,eAAW,YAAY,KAAK,GAAG,WAAW;AAC1C,eAAW,QAAQ,KAAK,GAAG,OAAO;AAAA,EACpC;AAGA,QAAM,aAAa,WAAW,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,MAAM;AACrF,aAAW,cAAc,WAAW;AAEpC,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
- import type { OperationToHarProps } from './operation-to-har.js';
2
- import type { RequestBodyObject } from '@scalar/workspace-store/schemas/v3.1/strict/request-body';
1
+ import type { RequestBodyObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
3
2
  import type { PostData } from 'har-format';
3
+ import type { OperationToHarProps } from './operation-to-har.js';
4
4
  type ProcessBodyProps = Pick<OperationToHarProps, 'contentType' | 'example'> & {
5
5
  content: RequestBodyObject['content'];
6
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"process-body.d.ts","sourceRoot":"","sources":["../../../src/helpers/operation-to-har/process-body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAG7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0DAA0D,CAAA;AACjG,OAAO,KAAK,EAAS,QAAQ,EAAE,MAAM,YAAY,CAAA;AAEjD,KAAK,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,SAAS,CAAC,GAAG;IAC7E,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;CACtC,CAAA;AAoCD;;GAEG;AACH,eAAO,MAAM,WAAW,sCAAuC,gBAAgB,KAAG,QA2CjF,CAAA"}
1
+ {"version":3,"file":"process-body.d.ts","sourceRoot":"","sources":["../../../src/helpers/operation-to-har/process-body.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8DAA8D,CAAA;AACrG,OAAO,KAAK,EAAS,QAAQ,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,KAAK,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,SAAS,CAAC,GAAG;IAC7E,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;CACtC,CAAA;AAoCD;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,mCAAmC,gBAAgB,KAAG,QAiEjF,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { getExampleFromSchema } from "../../spec-getters/get-example-from-schema.js";
2
+ import { json2xml } from "@scalar/helpers/file/json2xml";
2
3
  import { getResolvedRef } from "@scalar/workspace-store/helpers/get-resolved-ref";
3
4
  const objectToFormParams = (obj) => {
4
5
  const params = [];
@@ -24,6 +25,7 @@ const objectToFormParams = (obj) => {
24
25
  const processBody = ({ content, contentType, example }) => {
25
26
  const _contentType = (contentType || Object.keys(content)[0]) ?? "";
26
27
  const isFormData = _contentType === "multipart/form-data" || _contentType === "application/x-www-form-urlencoded";
28
+ const isXml = _contentType === "application/xml";
27
29
  if (example) {
28
30
  if (isFormData && typeof example === "object" && example !== null) {
29
31
  return {
@@ -31,6 +33,12 @@ const processBody = ({ content, contentType, example }) => {
31
33
  params: objectToFormParams(example)
32
34
  };
33
35
  }
36
+ if (isXml && typeof example === "object" && example !== null) {
37
+ return {
38
+ mimeType: _contentType,
39
+ text: json2xml(example)
40
+ };
41
+ }
34
42
  return {
35
43
  mimeType: _contentType,
36
44
  text: JSON.stringify(example)
@@ -38,7 +46,10 @@ const processBody = ({ content, contentType, example }) => {
38
46
  }
39
47
  const contentSchema = getResolvedRef(content[_contentType]?.schema);
40
48
  if (contentSchema) {
41
- const extractedExample = getExampleFromSchema(contentSchema, { mode: "write" });
49
+ const extractedExample = getExampleFromSchema(contentSchema, {
50
+ mode: "write",
51
+ xml: isXml
52
+ });
42
53
  if (extractedExample !== void 0) {
43
54
  if (isFormData && typeof extractedExample === "object" && extractedExample !== null) {
44
55
  return {
@@ -46,6 +57,12 @@ const processBody = ({ content, contentType, example }) => {
46
57
  params: objectToFormParams(extractedExample)
47
58
  };
48
59
  }
60
+ if (isXml && typeof extractedExample === "object" && extractedExample !== null) {
61
+ return {
62
+ mimeType: _contentType,
63
+ text: json2xml(extractedExample)
64
+ };
65
+ }
49
66
  return {
50
67
  mimeType: _contentType,
51
68
  text: JSON.stringify(extractedExample)
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/operation-to-har/process-body.ts"],
4
- "sourcesContent": ["import type { OperationToHarProps } from './operation-to-har'\nimport { getExampleFromSchema } from '@/spec-getters/get-example-from-schema'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type { RequestBodyObject } from '@scalar/workspace-store/schemas/v3.1/strict/request-body'\nimport type { Param, PostData } from 'har-format'\n\ntype ProcessBodyProps = Pick<OperationToHarProps, 'contentType' | 'example'> & {\n content: RequestBodyObject['content']\n}\n\n/**\n * Converts an object to an array of form parameters\n * @param obj - The object to convert\n * @returns Array of form parameters with name and value properties\n */\nconst objectToFormParams = (obj: Record<string, unknown>): Param[] => {\n const params: Param[] = []\n\n for (const [key, value] of Object.entries(obj)) {\n if (value === undefined || value === null) {\n continue\n }\n\n // Handle arrays by adding each item with the same key\n if (Array.isArray(value)) {\n for (const item of value) {\n params.push({ name: key, value: String(item) })\n }\n }\n // Handle nested objects by flattening them\n else if (typeof value === 'object') {\n const nestedParams = objectToFormParams(value as Record<string, unknown>)\n\n for (const param of nestedParams) {\n params.push({ name: `${key}.${param.name}`, value: param.value })\n }\n } else {\n params.push({ name: key, value: String(value) })\n }\n }\n\n return params\n}\n\n/**\n * Processes the request body and returns the processed data\n */\nexport const processBody = ({ content, contentType, example }: ProcessBodyProps): PostData => {\n const _contentType = (contentType || Object.keys(content)[0]) ?? ''\n\n // Check if this is a form data content type\n const isFormData = _contentType === 'multipart/form-data' || _contentType === 'application/x-www-form-urlencoded'\n\n // Return the provided top level example\n if (example) {\n if (isFormData && typeof example === 'object' && example !== null) {\n return {\n mimeType: _contentType,\n params: objectToFormParams(example as Record<string, unknown>),\n }\n }\n return {\n mimeType: _contentType,\n text: JSON.stringify(example),\n }\n }\n\n // Try to extract examples from the schema\n const contentSchema = getResolvedRef(content[_contentType]?.schema)\n if (contentSchema) {\n const extractedExample = getExampleFromSchema(contentSchema, { mode: 'write' })\n\n if (extractedExample !== undefined) {\n if (isFormData && typeof extractedExample === 'object' && extractedExample !== null) {\n return {\n mimeType: _contentType,\n params: objectToFormParams(extractedExample as Record<string, unknown>),\n }\n }\n return {\n mimeType: _contentType,\n text: JSON.stringify(extractedExample),\n }\n }\n }\n\n return {\n mimeType: _contentType,\n text: 'null',\n }\n}\n"],
5
- "mappings": "AACA,SAAS,4BAA4B;AACrC,SAAS,sBAAsB;AAa/B,MAAM,qBAAqB,CAAC,QAA0C;AACpE,QAAM,SAAkB,CAAC;AAEzB,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,QAAI,UAAU,UAAa,UAAU,MAAM;AACzC;AAAA,IACF;AAGA,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,iBAAW,QAAQ,OAAO;AACxB,eAAO,KAAK,EAAE,MAAM,KAAK,OAAO,OAAO,IAAI,EAAE,CAAC;AAAA,MAChD;AAAA,IACF,WAES,OAAO,UAAU,UAAU;AAClC,YAAM,eAAe,mBAAmB,KAAgC;AAExE,iBAAW,SAAS,cAAc;AAChC,eAAO,KAAK,EAAE,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,IAAI,OAAO,MAAM,MAAM,CAAC;AAAA,MAClE;AAAA,IACF,OAAO;AACL,aAAO,KAAK,EAAE,MAAM,KAAK,OAAO,OAAO,KAAK,EAAE,CAAC;AAAA,IACjD;AAAA,EACF;AAEA,SAAO;AACT;AAKO,MAAM,cAAc,CAAC,EAAE,SAAS,aAAa,QAAQ,MAAkC;AAC5F,QAAM,gBAAgB,eAAe,OAAO,KAAK,OAAO,EAAE,CAAC,MAAM;AAGjE,QAAM,aAAa,iBAAiB,yBAAyB,iBAAiB;AAG9E,MAAI,SAAS;AACX,QAAI,cAAc,OAAO,YAAY,YAAY,YAAY,MAAM;AACjE,aAAO;AAAA,QACL,UAAU;AAAA,QACV,QAAQ,mBAAmB,OAAkC;AAAA,MAC/D;AAAA,IACF;AACA,WAAO;AAAA,MACL,UAAU;AAAA,MACV,MAAM,KAAK,UAAU,OAAO;AAAA,IAC9B;AAAA,EACF;AAGA,QAAM,gBAAgB,eAAe,QAAQ,YAAY,GAAG,MAAM;AAClE,MAAI,eAAe;AACjB,UAAM,mBAAmB,qBAAqB,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE9E,QAAI,qBAAqB,QAAW;AAClC,UAAI,cAAc,OAAO,qBAAqB,YAAY,qBAAqB,MAAM;AACnF,eAAO;AAAA,UACL,UAAU;AAAA,UACV,QAAQ,mBAAmB,gBAA2C;AAAA,QACxE;AAAA,MACF;AACA,aAAO;AAAA,QACL,UAAU;AAAA,QACV,MAAM,KAAK,UAAU,gBAAgB;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AACF;",
4
+ "sourcesContent": ["import { getExampleFromSchema } from '@/spec-getters/get-example-from-schema'\nimport { json2xml } from '@scalar/helpers/file/json2xml'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type { RequestBodyObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport type { Param, PostData } from 'har-format'\nimport type { OperationToHarProps } from './operation-to-har'\n\ntype ProcessBodyProps = Pick<OperationToHarProps, 'contentType' | 'example'> & {\n content: RequestBodyObject['content']\n}\n\n/**\n * Converts an object to an array of form parameters\n * @param obj - The object to convert\n * @returns Array of form parameters with name and value properties\n */\nconst objectToFormParams = (obj: Record<string, unknown>): Param[] => {\n const params: Param[] = []\n\n for (const [key, value] of Object.entries(obj)) {\n if (value === undefined || value === null) {\n continue\n }\n\n // Handle arrays by adding each item with the same key\n if (Array.isArray(value)) {\n for (const item of value) {\n params.push({ name: key, value: String(item) })\n }\n }\n // Handle nested objects by flattening them\n else if (typeof value === 'object') {\n const nestedParams = objectToFormParams(value as Record<string, unknown>)\n\n for (const param of nestedParams) {\n params.push({ name: `${key}.${param.name}`, value: param.value })\n }\n } else {\n params.push({ name: key, value: String(value) })\n }\n }\n\n return params\n}\n\n/**\n * Processes the request body and returns the processed data\n */\nexport const processBody = ({ content, contentType, example }: ProcessBodyProps): PostData => {\n const _contentType = (contentType || Object.keys(content)[0]) ?? ''\n\n // Check if this is a form data content type\n const isFormData = _contentType === 'multipart/form-data' || _contentType === 'application/x-www-form-urlencoded'\n\n // Check if this is an XML content type\n const isXml = _contentType === 'application/xml'\n\n // Return the provided top level example\n if (example) {\n if (isFormData && typeof example === 'object' && example !== null) {\n return {\n mimeType: _contentType,\n params: objectToFormParams(example as Record<string, unknown>),\n }\n }\n\n if (isXml && typeof example === 'object' && example !== null) {\n return {\n mimeType: _contentType,\n text: json2xml(example as Record<string, unknown>),\n }\n }\n\n return {\n mimeType: _contentType,\n text: JSON.stringify(example),\n }\n }\n\n // Try to extract examples from the schema\n const contentSchema = getResolvedRef(content[_contentType]?.schema)\n if (contentSchema) {\n const extractedExample = getExampleFromSchema(contentSchema, {\n mode: 'write',\n xml: isXml,\n })\n\n if (extractedExample !== undefined) {\n if (isFormData && typeof extractedExample === 'object' && extractedExample !== null) {\n return {\n mimeType: _contentType,\n params: objectToFormParams(extractedExample as Record<string, unknown>),\n }\n }\n\n if (isXml && typeof extractedExample === 'object' && extractedExample !== null) {\n return {\n mimeType: _contentType,\n text: json2xml(extractedExample as Record<string, unknown>),\n }\n }\n\n return {\n mimeType: _contentType,\n text: JSON.stringify(extractedExample),\n }\n }\n }\n\n return {\n mimeType: _contentType,\n text: 'null',\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,4BAA4B;AACrC,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAc/B,MAAM,qBAAqB,CAAC,QAA0C;AACpE,QAAM,SAAkB,CAAC;AAEzB,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,QAAI,UAAU,UAAa,UAAU,MAAM;AACzC;AAAA,IACF;AAGA,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,iBAAW,QAAQ,OAAO;AACxB,eAAO,KAAK,EAAE,MAAM,KAAK,OAAO,OAAO,IAAI,EAAE,CAAC;AAAA,MAChD;AAAA,IACF,WAES,OAAO,UAAU,UAAU;AAClC,YAAM,eAAe,mBAAmB,KAAgC;AAExE,iBAAW,SAAS,cAAc;AAChC,eAAO,KAAK,EAAE,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,IAAI,OAAO,MAAM,MAAM,CAAC;AAAA,MAClE;AAAA,IACF,OAAO;AACL,aAAO,KAAK,EAAE,MAAM,KAAK,OAAO,OAAO,KAAK,EAAE,CAAC;AAAA,IACjD;AAAA,EACF;AAEA,SAAO;AACT;AAKO,MAAM,cAAc,CAAC,EAAE,SAAS,aAAa,QAAQ,MAAkC;AAC5F,QAAM,gBAAgB,eAAe,OAAO,KAAK,OAAO,EAAE,CAAC,MAAM;AAGjE,QAAM,aAAa,iBAAiB,yBAAyB,iBAAiB;AAG9E,QAAM,QAAQ,iBAAiB;AAG/B,MAAI,SAAS;AACX,QAAI,cAAc,OAAO,YAAY,YAAY,YAAY,MAAM;AACjE,aAAO;AAAA,QACL,UAAU;AAAA,QACV,QAAQ,mBAAmB,OAAkC;AAAA,MAC/D;AAAA,IACF;AAEA,QAAI,SAAS,OAAO,YAAY,YAAY,YAAY,MAAM;AAC5D,aAAO;AAAA,QACL,UAAU;AAAA,QACV,MAAM,SAAS,OAAkC;AAAA,MACnD;AAAA,IACF;AAEA,WAAO;AAAA,MACL,UAAU;AAAA,MACV,MAAM,KAAK,UAAU,OAAO;AAAA,IAC9B;AAAA,EACF;AAGA,QAAM,gBAAgB,eAAe,QAAQ,YAAY,GAAG,MAAM;AAClE,MAAI,eAAe;AACjB,UAAM,mBAAmB,qBAAqB,eAAe;AAAA,MAC3D,MAAM;AAAA,MACN,KAAK;AAAA,IACP,CAAC;AAED,QAAI,qBAAqB,QAAW;AAClC,UAAI,cAAc,OAAO,qBAAqB,YAAY,qBAAqB,MAAM;AACnF,eAAO;AAAA,UACL,UAAU;AAAA,UACV,QAAQ,mBAAmB,gBAA2C;AAAA,QACxE;AAAA,MACF;AAEA,UAAI,SAAS,OAAO,qBAAqB,YAAY,qBAAqB,MAAM;AAC9E,eAAO;AAAA,UACL,UAAU;AAAA,UACV,MAAM,SAAS,gBAA2C;AAAA,QAC5D;AAAA,MACF;AAEA,aAAO;AAAA,QACL,UAAU;AAAA,QACV,MAAM,KAAK,UAAU,gBAAgB;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,4 @@
1
- import type { ParameterObject } from '@scalar/workspace-store/schemas/v3.1/strict/parameter';
2
- import type { OperationObject } from '@scalar/workspace-store/schemas/v3.1/strict/path-operations';
1
+ import type { OperationObject, ParameterObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
3
2
  import type { Request as HarRequest } from 'har-format';
4
3
  type ProcessedParameters = {
5
4
  url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"process-parameters.d.ts","sourceRoot":"","sources":["../../../src/helpers/operation-to-har/process-parameters.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAA;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6DAA6D,CAAA;AAClG,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvD,KAAK,mBAAmB,GAAG;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;IAC9B,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,CAAA;IACtC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;CAC/B,CAAA;AAED,6DAA6D;AAC7D,eAAO,MAAM,iBAAiB,WAAY,eAAe,CAAC,YAAY,CAAC,KAAG,eAAe,EACnC,CAAA;AAoEtD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,eAChB,UAAU,cACV,eAAe,CAAC,YAAY,CAAC,YAC/B,OAAO,KAChB,mBAsNF,CAAA"}
1
+ {"version":3,"file":"process-parameters.d.ts","sourceRoot":"","sources":["../../../src/helpers/operation-to-har/process-parameters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EAEf,eAAe,EAChB,MAAM,8DAA8D,CAAA;AACrE,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvD,KAAK,mBAAmB,GAAG;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;IAC9B,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,CAAA;IACtC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;CAC/B,CAAA;AAED,6DAA6D;AAC7D,eAAO,MAAM,iBAAiB,GAAI,QAAQ,eAAe,CAAC,YAAY,CAAC,KAAG,eAAe,EACnC,CAAA;AAoEtD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,UAAU,EACtB,YAAY,eAAe,CAAC,YAAY,CAAC,EACzC,UAAU,OAAO,KAChB,mBAsNF,CAAA"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/operation-to-har/process-parameters.ts"],
4
- "sourcesContent": ["import { getExampleFromSchema } from '@/spec-getters/get-example-from-schema'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type { ExampleObject } from '@scalar/workspace-store/schemas/v3.1/strict/example'\nimport type { ParameterObject } from '@scalar/workspace-store/schemas/v3.1/strict/parameter'\nimport type { OperationObject } from '@scalar/workspace-store/schemas/v3.1/strict/path-operations'\nimport type { Request as HarRequest } from 'har-format'\n\ntype ProcessedParameters = {\n url: string\n headers: HarRequest['headers']\n queryString: HarRequest['queryString']\n cookies: HarRequest['cookies']\n}\n\n/** Ensures we don't have any references in the parameters */\nexport const deReferenceParams = (params: OperationObject['parameters']): ParameterObject[] =>\n (params ?? []).map((param) => getResolvedRef(param))\n\n/**\n * Get the style and explode values for a parameter according to OpenAPI 3.1.1 specification.\n * Handles defaults and validation for parameter location restrictions.\n */\nconst getParameterStyleAndExplode = (param: ParameterObject): { style: string; explode: boolean } => {\n // Headers only support 'simple' style\n if (param.in === 'header') {\n const explode = 'explode' in param && param.explode !== undefined ? param.explode : false\n return { style: 'simple', explode }\n }\n\n // Cookies only support 'form' style\n if (param.in === 'cookie') {\n const explode = 'explode' in param && param.explode !== undefined ? param.explode : true\n return { style: 'form', explode }\n }\n\n const defaultStyle = {\n path: 'simple',\n query: 'form',\n header: 'simple',\n cookie: 'form',\n }[param.in]\n\n // Use provided style or default based on location\n const style = 'style' in param && param.style ? param.style : defaultStyle\n\n // Determine explode value: use provided value or default based on style\n const explode = 'explode' in param && param.explode !== undefined ? param.explode : style === 'form'\n\n return { style, explode }\n}\n\n/**\n * Extract the value for a parameter from example data or schema.\n * Prioritizes example data over schema examples.\n */\nconst getParameterValue = (param: ParameterObject, example?: unknown): unknown => {\n // First try to get value from example data\n if (example && typeof example === 'object' && param.name) {\n const exampleValue = (example as Record<string, unknown>)[param.name]\n if (exampleValue !== undefined) {\n return exampleValue\n }\n }\n\n // Check if the parameter itself has an example\n if ('example' in param && param.example) {\n return param.example\n }\n\n // Or multiple examples\n if ('examples' in param && param.examples) {\n const examples = param.examples as Record<string, unknown>\n return examples[param.name] || (Object.values(examples)[0] as ExampleObject | undefined)?.value\n }\n\n // Fall back to schema example if available\n if ('schema' in param && param.schema) {\n const options = param.in === 'path' ? { emptyString: `{${param.name}}` } : {}\n return getExampleFromSchema(getResolvedRef(param.schema), options)\n }\n\n return undefined\n}\n\n/**\n * Process OpenAPI parameters and return the updated properties.\n * Handles path, query, and header parameters with various styles and explode options.\n *\n * @see https://spec.openapis.org/oas/latest.html#style-values\n */\nexport const processParameters = (\n harRequest: HarRequest,\n parameters: OperationObject['parameters'],\n example?: unknown,\n): ProcessedParameters => {\n // Create copies of the arrays to avoid modifying the input\n const newHeaders = [...harRequest.headers]\n const newQueryString = [...harRequest.queryString]\n let newUrl = harRequest.url\n\n // Filter out references\n const deReferencedParams = deReferenceParams(parameters)\n\n for (const param of deReferencedParams) {\n if (!param.in || !param.name) {\n continue\n }\n\n const paramValue = getParameterValue(param, example)\n\n if (paramValue === undefined) {\n continue\n }\n\n const { style, explode } = getParameterStyleAndExplode(param)\n\n switch (param.in) {\n case 'path': {\n newUrl = processPathParameters(newUrl, param, paramValue, style, explode)\n break\n }\n case 'query': {\n // Handle query parameters\n switch (style) {\n case 'form': {\n if (explode) {\n // Form explode array: color=blue&color=black&color=brown\n if (Array.isArray(paramValue)) {\n for (const value of paramValue as unknown[]) {\n newQueryString.push({ name: param.name, value: String(value) })\n }\n }\n // Form explode object: R=100&G=200&B=150\n else if (typeof paramValue === 'object' && paramValue !== null) {\n for (const [key, value] of Object.entries(paramValue as Record<string, unknown>)) {\n newQueryString.push({ name: key, value: String(value) })\n }\n }\n // Form explode primitive: color=blue\n else {\n newQueryString.push({ name: param.name, value: String(paramValue) })\n }\n } else {\n // Form no explode array: color=blue,black,brown\n if (Array.isArray(paramValue)) {\n newQueryString.push({ name: param.name, value: (paramValue as unknown[]).join(',') })\n }\n // Form no explode object: color=R,100,G,200,B,150\n else if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k},${v}`)\n .join(',')\n newQueryString.push({ name: param.name, value: values })\n }\n // Form no explode primitive: color=blue\n else {\n newQueryString.push({ name: param.name, value: String(paramValue) })\n }\n }\n break\n }\n case 'spaceDelimited': {\n // SpaceDelimited array: color=blue black brown\n if (Array.isArray(paramValue)) {\n newQueryString.push({ name: param.name, value: (paramValue as unknown[]).join(' ') })\n }\n // SpaceDelimited object: color=R 100 G 200 B 150\n else if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k} ${v}`)\n .join(' ')\n newQueryString.push({ name: param.name, value: values })\n }\n break\n }\n case 'pipeDelimited': {\n // PipeDelimited array: color=blue|black|brown\n if (Array.isArray(paramValue)) {\n newQueryString.push({ name: param.name, value: (paramValue as unknown[]).join('|') })\n }\n // PipeDelimited object: color=R|100|G|200|B|150\n else if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .flat()\n .join('|')\n newQueryString.push({ name: param.name, value: values })\n }\n break\n }\n case 'deepObject': {\n // DeepObject: color[R]=100&color[G]=200&color[B]=150\n if (explode && typeof paramValue === 'object' && paramValue !== null) {\n for (const [key, value] of Object.entries(paramValue as Record<string, unknown>)) {\n newQueryString.push({ name: `${param.name}[${key}]`, value: String(value) })\n }\n }\n break\n }\n\n // Default to form style\n default:\n newQueryString.push({ name: param.name, value: String(paramValue) })\n }\n break\n }\n case 'header':\n // Headers only support 'simple' style according to OpenAPI 3.1.1\n if (explode) {\n // Simple explode array: multiple header values\n if (Array.isArray(paramValue)) {\n for (const value of paramValue as unknown[]) {\n newHeaders.push({ name: param.name, value: String(value) })\n }\n }\n // Simple explode object: key=value pairs\n else if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k}=${v}`)\n .join(',')\n newHeaders.push({ name: param.name, value: values })\n }\n // Simple explode primitive: single value\n else {\n newHeaders.push({ name: param.name, value: String(paramValue) })\n }\n }\n // Simple no explode: all values joined with commas\n else {\n // Handle array values without explode\n if (Array.isArray(paramValue)) {\n newHeaders.push({ name: param.name, value: (paramValue as unknown[]).join(',') })\n }\n // Handle object values without explode\n else if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k},${v}`)\n .join(',')\n newHeaders.push({ name: param.name, value: values })\n }\n // Handle primitive values without explode\n else {\n newHeaders.push({ name: param.name, value: String(paramValue) })\n }\n }\n break\n case 'cookie':\n // Cookies only support 'form' style according to OpenAPI 3.1.1\n if (explode) {\n // Handle array values with explode\n if (Array.isArray(paramValue)) {\n for (const value of paramValue as unknown[]) {\n harRequest.cookies.push({ name: param.name, value: value === null ? 'null' : String(value) })\n }\n }\n // Handle object values with explode\n else if (typeof paramValue === 'object' && paramValue !== null) {\n for (const [key, value] of Object.entries(paramValue as Record<string, unknown>)) {\n harRequest.cookies.push({ name: key, value: value === null ? 'null' : String(value) })\n }\n }\n // Handle primitive values with explode\n else {\n harRequest.cookies.push({ name: param.name, value: paramValue === null ? 'null' : String(paramValue) })\n }\n } else {\n // Handle array values without explode\n if (Array.isArray(paramValue)) {\n const serializedValues = (paramValue as unknown[]).map((v) => (v === null ? 'null' : String(v))).join(',')\n harRequest.cookies.push({ name: param.name, value: serializedValues })\n }\n // Handle object values without explode\n else if (typeof paramValue === 'object' && paramValue !== null) {\n // Handle nested objects by recursively flattening them\n const flattenObject = (obj: Record<string, unknown>): string[] => {\n const result: string[] = []\n\n for (const [key, value] of Object.entries(obj)) {\n // Recursively flatten nested objects\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n result.push(key, ...flattenObject(value as Record<string, unknown>))\n }\n // Handle primitive values\n else {\n result.push(key, value === null ? 'null' : String(value))\n }\n }\n\n return result\n }\n\n const values = flattenObject(paramValue as Record<string, unknown>).join(',')\n harRequest.cookies.push({ name: param.name, value: values })\n }\n // Handle primitive values without explode\n else {\n harRequest.cookies.push({ name: param.name, value: paramValue === null ? 'null' : String(paramValue) })\n }\n }\n break\n }\n }\n\n return {\n url: newUrl,\n headers: newHeaders,\n queryString: newQueryString,\n cookies: harRequest.cookies,\n }\n}\n\n/**\n * Process path parameters according to OpenAPI specification.\n * Handles matrix, label, and simple styles with explode options.\n *\n * @param url - The URL to process\n * @param param - The parameter object\n * @param paramValue - The value of the parameter\n * @param style - The style of the parameter (matrix, label, simple)\n * @param explode - Whether to explode the parameter\n * @returns The updated URL with processed path parameters\n */\nconst processPathParameters = (\n url: string,\n param: ParameterObject,\n paramValue: unknown,\n style: string,\n explode: boolean,\n): string => {\n switch (style) {\n case 'matrix': {\n if (explode) {\n // Matrix explode array: ;color=blue;color=black;color=brown\n if (Array.isArray(paramValue)) {\n const values = (paramValue as unknown[]).map((v) => `${param.name}=${v}`).join(';')\n return url.replace(`{;${param.name}}`, `;${values}`)\n }\n\n // Matrix explode object: ;R=100;G=200;B=150\n if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k}=${v}`)\n .join(';')\n return url.replace(`{;${param.name}}`, `;${values}`)\n }\n\n // Matrix explode primitive: ;color=blue\n return url.replace(`{;${param.name}}`, `;${param.name}=${paramValue}`)\n }\n\n // Matrix no explode array: ;color=blue,black,brown\n if (Array.isArray(paramValue)) {\n return url.replace(`{;${param.name}}`, `;${param.name}=${(paramValue as unknown[]).join(',')}`)\n }\n\n // Matrix no explode object: ;color=R,100,G,200,B,150\n if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k},${v}`)\n .join(',')\n return url.replace(`{;${param.name}}`, `;${param.name}=${values}`)\n }\n\n // Matrix no explode primitive: ;color=blue\n return url.replace(`{;${param.name}}`, `;${param.name}=${paramValue}`)\n }\n case 'label': {\n if (explode) {\n // Label explode array: .blue.black.brown\n if (Array.isArray(paramValue)) {\n return url.replace(`{.${param.name}}`, `.${(paramValue as unknown[]).join('.')}`)\n }\n\n // Label explode object: .R=100.G=200.B=150\n if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k}=${v}`)\n .join('.')\n\n return url.replace(`{.${param.name}}`, `.${values}`)\n }\n\n // Label explode primitive: .blue\n return url.replace(`{.${param.name}}`, `.${paramValue}`)\n }\n\n // Label no explode array: .blue,black,brown\n if (Array.isArray(paramValue)) {\n return url.replace(`{.${param.name}}`, `.${(paramValue as unknown[]).join(',')}`)\n }\n\n // Label no explode object: .R,100,G,200,B,150\n if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k},${v}`)\n .join(',')\n\n return url.replace(`{.${param.name}}`, `.${values}`)\n }\n\n // Label no explode primitive: .blue\n return url.replace(`{.${param.name}}`, `.${paramValue}`)\n }\n\n case 'simple': {\n if (explode) {\n // Simple explode array: blue,black,brown\n if (Array.isArray(paramValue)) {\n return url.replace(`{${param.name}}`, (paramValue as unknown[]).join(','))\n }\n\n // Simple explode object: R=100,G=200,B=150\n if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k}=${v}`)\n .join(',')\n\n return url.replace(`{${param.name}}`, values)\n }\n\n // Simple explode primitive: blue\n return url.replace(`{${param.name}}`, String(paramValue))\n }\n // Simple no explode array: blue,black,brown\n if (Array.isArray(paramValue)) {\n return url.replace(`{${param.name}}`, (paramValue as unknown[]).join(','))\n }\n\n // Simple no explode object: R,100,G,200,B,150\n if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k},${v}`)\n .join(',')\n\n return url.replace(`{${param.name}}`, values)\n }\n\n // Simple no explode primitive: blue\n return url.replace(`{${param.name}}`, String(paramValue))\n }\n\n // Default to simple style\n default:\n return url.replace(`{${param.name}}`, String(paramValue))\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { getExampleFromSchema } from '@/spec-getters/get-example-from-schema'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type {\n OperationObject,\n ExampleObject,\n ParameterObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport type { Request as HarRequest } from 'har-format'\n\ntype ProcessedParameters = {\n url: string\n headers: HarRequest['headers']\n queryString: HarRequest['queryString']\n cookies: HarRequest['cookies']\n}\n\n/** Ensures we don't have any references in the parameters */\nexport const deReferenceParams = (params: OperationObject['parameters']): ParameterObject[] =>\n (params ?? []).map((param) => getResolvedRef(param))\n\n/**\n * Get the style and explode values for a parameter according to OpenAPI 3.1.1 specification.\n * Handles defaults and validation for parameter location restrictions.\n */\nconst getParameterStyleAndExplode = (param: ParameterObject): { style: string; explode: boolean } => {\n // Headers only support 'simple' style\n if (param.in === 'header') {\n const explode = 'explode' in param && param.explode !== undefined ? param.explode : false\n return { style: 'simple', explode }\n }\n\n // Cookies only support 'form' style\n if (param.in === 'cookie') {\n const explode = 'explode' in param && param.explode !== undefined ? param.explode : true\n return { style: 'form', explode }\n }\n\n const defaultStyle = {\n path: 'simple',\n query: 'form',\n header: 'simple',\n cookie: 'form',\n }[param.in]\n\n // Use provided style or default based on location\n const style = 'style' in param && param.style ? param.style : defaultStyle\n\n // Determine explode value: use provided value or default based on style\n const explode = 'explode' in param && param.explode !== undefined ? param.explode : style === 'form'\n\n return { style, explode }\n}\n\n/**\n * Extract the value for a parameter from example data or schema.\n * Prioritizes example data over schema examples.\n */\nconst getParameterValue = (param: ParameterObject, example?: unknown): unknown => {\n // First try to get value from example data\n if (example && typeof example === 'object' && param.name) {\n const exampleValue = (example as Record<string, unknown>)[param.name]\n if (exampleValue !== undefined) {\n return exampleValue\n }\n }\n\n // Check if the parameter itself has an example\n if ('example' in param && param.example) {\n return param.example\n }\n\n // Or multiple examples\n if ('examples' in param && param.examples) {\n const examples = param.examples as Record<string, unknown>\n return examples[param.name] || (Object.values(examples)[0] as ExampleObject | undefined)?.value\n }\n\n // Fall back to schema example if available\n if ('schema' in param && param.schema) {\n const options = param.in === 'path' ? { emptyString: `{${param.name}}` } : {}\n return getExampleFromSchema(getResolvedRef(param.schema), options)\n }\n\n return undefined\n}\n\n/**\n * Process OpenAPI parameters and return the updated properties.\n * Handles path, query, and header parameters with various styles and explode options.\n *\n * @see https://spec.openapis.org/oas/latest.html#style-values\n */\nexport const processParameters = (\n harRequest: HarRequest,\n parameters: OperationObject['parameters'],\n example?: unknown,\n): ProcessedParameters => {\n // Create copies of the arrays to avoid modifying the input\n const newHeaders = [...harRequest.headers]\n const newQueryString = [...harRequest.queryString]\n let newUrl = harRequest.url\n\n // Filter out references\n const deReferencedParams = deReferenceParams(parameters)\n\n for (const param of deReferencedParams) {\n if (!param.in || !param.name) {\n continue\n }\n\n const paramValue = getParameterValue(param, example)\n\n if (paramValue === undefined) {\n continue\n }\n\n const { style, explode } = getParameterStyleAndExplode(param)\n\n switch (param.in) {\n case 'path': {\n newUrl = processPathParameters(newUrl, param, paramValue, style, explode)\n break\n }\n case 'query': {\n // Handle query parameters\n switch (style) {\n case 'form': {\n if (explode) {\n // Form explode array: color=blue&color=black&color=brown\n if (Array.isArray(paramValue)) {\n for (const value of paramValue as unknown[]) {\n newQueryString.push({ name: param.name, value: String(value) })\n }\n }\n // Form explode object: R=100&G=200&B=150\n else if (typeof paramValue === 'object' && paramValue !== null) {\n for (const [key, value] of Object.entries(paramValue as Record<string, unknown>)) {\n newQueryString.push({ name: key, value: String(value) })\n }\n }\n // Form explode primitive: color=blue\n else {\n newQueryString.push({ name: param.name, value: String(paramValue) })\n }\n } else {\n // Form no explode array: color=blue,black,brown\n if (Array.isArray(paramValue)) {\n newQueryString.push({ name: param.name, value: (paramValue as unknown[]).join(',') })\n }\n // Form no explode object: color=R,100,G,200,B,150\n else if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k},${v}`)\n .join(',')\n newQueryString.push({ name: param.name, value: values })\n }\n // Form no explode primitive: color=blue\n else {\n newQueryString.push({ name: param.name, value: String(paramValue) })\n }\n }\n break\n }\n case 'spaceDelimited': {\n // SpaceDelimited array: color=blue black brown\n if (Array.isArray(paramValue)) {\n newQueryString.push({ name: param.name, value: (paramValue as unknown[]).join(' ') })\n }\n // SpaceDelimited object: color=R 100 G 200 B 150\n else if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k} ${v}`)\n .join(' ')\n newQueryString.push({ name: param.name, value: values })\n }\n break\n }\n case 'pipeDelimited': {\n // PipeDelimited array: color=blue|black|brown\n if (Array.isArray(paramValue)) {\n newQueryString.push({ name: param.name, value: (paramValue as unknown[]).join('|') })\n }\n // PipeDelimited object: color=R|100|G|200|B|150\n else if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .flat()\n .join('|')\n newQueryString.push({ name: param.name, value: values })\n }\n break\n }\n case 'deepObject': {\n // DeepObject: color[R]=100&color[G]=200&color[B]=150\n if (explode && typeof paramValue === 'object' && paramValue !== null) {\n for (const [key, value] of Object.entries(paramValue as Record<string, unknown>)) {\n newQueryString.push({ name: `${param.name}[${key}]`, value: String(value) })\n }\n }\n break\n }\n\n // Default to form style\n default:\n newQueryString.push({ name: param.name, value: String(paramValue) })\n }\n break\n }\n case 'header':\n // Headers only support 'simple' style according to OpenAPI 3.1.1\n if (explode) {\n // Simple explode array: multiple header values\n if (Array.isArray(paramValue)) {\n for (const value of paramValue as unknown[]) {\n newHeaders.push({ name: param.name, value: String(value) })\n }\n }\n // Simple explode object: key=value pairs\n else if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k}=${v}`)\n .join(',')\n newHeaders.push({ name: param.name, value: values })\n }\n // Simple explode primitive: single value\n else {\n newHeaders.push({ name: param.name, value: String(paramValue) })\n }\n }\n // Simple no explode: all values joined with commas\n else {\n // Handle array values without explode\n if (Array.isArray(paramValue)) {\n newHeaders.push({ name: param.name, value: (paramValue as unknown[]).join(',') })\n }\n // Handle object values without explode\n else if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k},${v}`)\n .join(',')\n newHeaders.push({ name: param.name, value: values })\n }\n // Handle primitive values without explode\n else {\n newHeaders.push({ name: param.name, value: String(paramValue) })\n }\n }\n break\n case 'cookie':\n // Cookies only support 'form' style according to OpenAPI 3.1.1\n if (explode) {\n // Handle array values with explode\n if (Array.isArray(paramValue)) {\n for (const value of paramValue as unknown[]) {\n harRequest.cookies.push({ name: param.name, value: value === null ? 'null' : String(value) })\n }\n }\n // Handle object values with explode\n else if (typeof paramValue === 'object' && paramValue !== null) {\n for (const [key, value] of Object.entries(paramValue as Record<string, unknown>)) {\n harRequest.cookies.push({ name: key, value: value === null ? 'null' : String(value) })\n }\n }\n // Handle primitive values with explode\n else {\n harRequest.cookies.push({ name: param.name, value: paramValue === null ? 'null' : String(paramValue) })\n }\n } else {\n // Handle array values without explode\n if (Array.isArray(paramValue)) {\n const serializedValues = (paramValue as unknown[]).map((v) => (v === null ? 'null' : String(v))).join(',')\n harRequest.cookies.push({ name: param.name, value: serializedValues })\n }\n // Handle object values without explode\n else if (typeof paramValue === 'object' && paramValue !== null) {\n // Handle nested objects by recursively flattening them\n const flattenObject = (obj: Record<string, unknown>): string[] => {\n const result: string[] = []\n\n for (const [key, value] of Object.entries(obj)) {\n // Recursively flatten nested objects\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n result.push(key, ...flattenObject(value as Record<string, unknown>))\n }\n // Handle primitive values\n else {\n result.push(key, value === null ? 'null' : String(value))\n }\n }\n\n return result\n }\n\n const values = flattenObject(paramValue as Record<string, unknown>).join(',')\n harRequest.cookies.push({ name: param.name, value: values })\n }\n // Handle primitive values without explode\n else {\n harRequest.cookies.push({ name: param.name, value: paramValue === null ? 'null' : String(paramValue) })\n }\n }\n break\n }\n }\n\n return {\n url: newUrl,\n headers: newHeaders,\n queryString: newQueryString,\n cookies: harRequest.cookies,\n }\n}\n\n/**\n * Process path parameters according to OpenAPI specification.\n * Handles matrix, label, and simple styles with explode options.\n *\n * @param url - The URL to process\n * @param param - The parameter object\n * @param paramValue - The value of the parameter\n * @param style - The style of the parameter (matrix, label, simple)\n * @param explode - Whether to explode the parameter\n * @returns The updated URL with processed path parameters\n */\nconst processPathParameters = (\n url: string,\n param: ParameterObject,\n paramValue: unknown,\n style: string,\n explode: boolean,\n): string => {\n switch (style) {\n case 'matrix': {\n if (explode) {\n // Matrix explode array: ;color=blue;color=black;color=brown\n if (Array.isArray(paramValue)) {\n const values = (paramValue as unknown[]).map((v) => `${param.name}=${v}`).join(';')\n return url.replace(`{;${param.name}}`, `;${values}`)\n }\n\n // Matrix explode object: ;R=100;G=200;B=150\n if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k}=${v}`)\n .join(';')\n return url.replace(`{;${param.name}}`, `;${values}`)\n }\n\n // Matrix explode primitive: ;color=blue\n return url.replace(`{;${param.name}}`, `;${param.name}=${paramValue}`)\n }\n\n // Matrix no explode array: ;color=blue,black,brown\n if (Array.isArray(paramValue)) {\n return url.replace(`{;${param.name}}`, `;${param.name}=${(paramValue as unknown[]).join(',')}`)\n }\n\n // Matrix no explode object: ;color=R,100,G,200,B,150\n if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k},${v}`)\n .join(',')\n return url.replace(`{;${param.name}}`, `;${param.name}=${values}`)\n }\n\n // Matrix no explode primitive: ;color=blue\n return url.replace(`{;${param.name}}`, `;${param.name}=${paramValue}`)\n }\n case 'label': {\n if (explode) {\n // Label explode array: .blue.black.brown\n if (Array.isArray(paramValue)) {\n return url.replace(`{.${param.name}}`, `.${(paramValue as unknown[]).join('.')}`)\n }\n\n // Label explode object: .R=100.G=200.B=150\n if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k}=${v}`)\n .join('.')\n\n return url.replace(`{.${param.name}}`, `.${values}`)\n }\n\n // Label explode primitive: .blue\n return url.replace(`{.${param.name}}`, `.${paramValue}`)\n }\n\n // Label no explode array: .blue,black,brown\n if (Array.isArray(paramValue)) {\n return url.replace(`{.${param.name}}`, `.${(paramValue as unknown[]).join(',')}`)\n }\n\n // Label no explode object: .R,100,G,200,B,150\n if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k},${v}`)\n .join(',')\n\n return url.replace(`{.${param.name}}`, `.${values}`)\n }\n\n // Label no explode primitive: .blue\n return url.replace(`{.${param.name}}`, `.${paramValue}`)\n }\n\n case 'simple': {\n if (explode) {\n // Simple explode array: blue,black,brown\n if (Array.isArray(paramValue)) {\n return url.replace(`{${param.name}}`, (paramValue as unknown[]).join(','))\n }\n\n // Simple explode object: R=100,G=200,B=150\n if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k}=${v}`)\n .join(',')\n\n return url.replace(`{${param.name}}`, values)\n }\n\n // Simple explode primitive: blue\n return url.replace(`{${param.name}}`, String(paramValue))\n }\n // Simple no explode array: blue,black,brown\n if (Array.isArray(paramValue)) {\n return url.replace(`{${param.name}}`, (paramValue as unknown[]).join(','))\n }\n\n // Simple no explode object: R,100,G,200,B,150\n if (typeof paramValue === 'object' && paramValue !== null) {\n const values = Object.entries(paramValue as Record<string, unknown>)\n .map(([k, v]) => `${k},${v}`)\n .join(',')\n\n return url.replace(`{${param.name}}`, values)\n }\n\n // Simple no explode primitive: blue\n return url.replace(`{${param.name}}`, String(paramValue))\n }\n\n // Default to simple style\n default:\n return url.replace(`{${param.name}}`, String(paramValue))\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["explode"]
7
7
  }
@@ -1,4 +1,4 @@
1
- import type { SecuritySchemeObject } from '@scalar/workspace-store/schemas/v3.1/strict/security-scheme';
1
+ import type { SecuritySchemeObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
2
2
  import type { Request as HarRequest } from 'har-format';
3
3
  type ProcessedSecuritySchemesReturn = {
4
4
  headers: HarRequest['headers'];
@@ -1 +1 @@
1
- {"version":3,"file":"process-security-schemes.d.ts","sourceRoot":"","sources":["../../../src/helpers/operation-to-har/process-security-schemes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6DAA6D,CAAA;AACvG,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvD,KAAK,8BAA8B,GAAG;IACpC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;IAC9B,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,CAAA;IACtC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;CAC/B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,oBAAqB,oBAAoB,EAAE,KAAG,8BAuEhF,CAAA"}
1
+ {"version":3,"file":"process-security-schemes.d.ts","sourceRoot":"","sources":["../../../src/helpers/operation-to-har/process-security-schemes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAA;AACxG,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAGvD,KAAK,8BAA8B,GAAG;IACpC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;IAC9B,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,CAAA;IACtC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;CAC/B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,iBAAiB,oBAAoB,EAAE,KAAG,8BAuEhF,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { encode } from "js-base64";
1
2
  const processSecuritySchemes = (securitySchemes) => {
2
3
  const result = {
3
4
  headers: [],
@@ -29,7 +30,7 @@ const processSecuritySchemes = (securitySchemes) => {
29
30
  const username = scheme["x-scalar-secret-username"] || "";
30
31
  const password = scheme["x-scalar-secret-password"] || "";
31
32
  const value = `${username}:${password}`;
32
- const auth = value === ":" ? "username:password" : btoa(value);
33
+ const auth = value === ":" ? "username:password" : encode(value);
33
34
  result.headers.push({
34
35
  name: "Authorization",
35
36
  value: `Basic ${auth}`
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/operation-to-har/process-security-schemes.ts"],
4
- "sourcesContent": ["import type { SecuritySchemeObject } from '@scalar/workspace-store/schemas/v3.1/strict/security-scheme'\nimport type { Request as HarRequest } from 'har-format'\n\ntype ProcessedSecuritySchemesReturn = {\n headers: HarRequest['headers']\n queryString: HarRequest['queryString']\n cookies: HarRequest['cookies']\n}\n\n/**\n * Process security schemes into whichever parameters they are applicable to\n *\n * TODO: we probably want to be able to disable YOUR_SECRET_TOKEN placeholder text + or allow it to be customzied\n */\nexport const processSecuritySchemes = (securitySchemes: SecuritySchemeObject[]): ProcessedSecuritySchemesReturn => {\n const result: ProcessedSecuritySchemesReturn = {\n headers: [],\n queryString: [],\n cookies: [],\n }\n\n for (const scheme of securitySchemes) {\n // Handle apiKey type\n if (scheme.type === 'apiKey') {\n const value = scheme['x-scalar-secret-token'] || 'YOUR_SECRET_TOKEN'\n if (!scheme.name) {\n continue\n }\n\n const param = { name: scheme.name, value }\n\n switch (scheme.in) {\n case 'header':\n result.headers.push(param)\n break\n case 'query':\n result.queryString.push(param)\n break\n case 'cookie':\n result.cookies.push(param)\n break\n }\n continue\n }\n\n // Handle http type\n if (scheme.type === 'http') {\n if (scheme.scheme === 'basic') {\n const username = scheme['x-scalar-secret-username'] || ''\n const password = scheme['x-scalar-secret-password'] || ''\n\n const value = `${username}:${password}`\n const auth = value === ':' ? 'username:password' : btoa(value)\n\n result.headers.push({\n name: 'Authorization',\n value: `Basic ${auth}`,\n })\n } else if (scheme.scheme === 'bearer') {\n const token = scheme['x-scalar-secret-token'] || 'YOUR_SECRET_TOKEN'\n\n result.headers.push({\n name: 'Authorization',\n value: `Bearer ${token}`,\n })\n }\n continue\n }\n\n // Handle oauth2 type\n if (scheme.type === 'oauth2' && scheme.flows) {\n const flows = Object.values(scheme.flows)\n\n // Find the first flow with a token\n const flow = flows.find((f) => f['x-scalar-secret-token'])\n const token = flow?.['x-scalar-secret-token'] || 'YOUR_SECRET_TOKEN'\n\n result.headers.push({\n name: 'Authorization',\n value: `Bearer ${token}`,\n })\n }\n }\n\n return result\n}\n"],
5
- "mappings": "AAcO,MAAM,yBAAyB,CAAC,oBAA4E;AACjH,QAAM,SAAyC;AAAA,IAC7C,SAAS,CAAC;AAAA,IACV,aAAa,CAAC;AAAA,IACd,SAAS,CAAC;AAAA,EACZ;AAEA,aAAW,UAAU,iBAAiB;AAEpC,QAAI,OAAO,SAAS,UAAU;AAC5B,YAAM,QAAQ,OAAO,uBAAuB,KAAK;AACjD,UAAI,CAAC,OAAO,MAAM;AAChB;AAAA,MACF;AAEA,YAAM,QAAQ,EAAE,MAAM,OAAO,MAAM,MAAM;AAEzC,cAAQ,OAAO,IAAI;AAAA,QACjB,KAAK;AACH,iBAAO,QAAQ,KAAK,KAAK;AACzB;AAAA,QACF,KAAK;AACH,iBAAO,YAAY,KAAK,KAAK;AAC7B;AAAA,QACF,KAAK;AACH,iBAAO,QAAQ,KAAK,KAAK;AACzB;AAAA,MACJ;AACA;AAAA,IACF;AAGA,QAAI,OAAO,SAAS,QAAQ;AAC1B,UAAI,OAAO,WAAW,SAAS;AAC7B,cAAM,WAAW,OAAO,0BAA0B,KAAK;AACvD,cAAM,WAAW,OAAO,0BAA0B,KAAK;AAEvD,cAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ;AACrC,cAAM,OAAO,UAAU,MAAM,sBAAsB,KAAK,KAAK;AAE7D,eAAO,QAAQ,KAAK;AAAA,UAClB,MAAM;AAAA,UACN,OAAO,SAAS,IAAI;AAAA,QACtB,CAAC;AAAA,MACH,WAAW,OAAO,WAAW,UAAU;AACrC,cAAM,QAAQ,OAAO,uBAAuB,KAAK;AAEjD,eAAO,QAAQ,KAAK;AAAA,UAClB,MAAM;AAAA,UACN,OAAO,UAAU,KAAK;AAAA,QACxB,CAAC;AAAA,MACH;AACA;AAAA,IACF;AAGA,QAAI,OAAO,SAAS,YAAY,OAAO,OAAO;AAC5C,YAAM,QAAQ,OAAO,OAAO,OAAO,KAAK;AAGxC,YAAM,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,uBAAuB,CAAC;AACzD,YAAM,QAAQ,OAAO,uBAAuB,KAAK;AAEjD,aAAO,QAAQ,KAAK;AAAA,QAClB,MAAM;AAAA,QACN,OAAO,UAAU,KAAK;AAAA,MACxB,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;",
4
+ "sourcesContent": ["import type { SecuritySchemeObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport type { Request as HarRequest } from 'har-format'\nimport { encode } from 'js-base64'\n\ntype ProcessedSecuritySchemesReturn = {\n headers: HarRequest['headers']\n queryString: HarRequest['queryString']\n cookies: HarRequest['cookies']\n}\n\n/**\n * Process security schemes into whichever parameters they are applicable to\n *\n * TODO: we probably want to be able to disable YOUR_SECRET_TOKEN placeholder text + or allow it to be customzied\n */\nexport const processSecuritySchemes = (securitySchemes: SecuritySchemeObject[]): ProcessedSecuritySchemesReturn => {\n const result: ProcessedSecuritySchemesReturn = {\n headers: [],\n queryString: [],\n cookies: [],\n }\n\n for (const scheme of securitySchemes) {\n // Handle apiKey type\n if (scheme.type === 'apiKey') {\n const value = scheme['x-scalar-secret-token'] || 'YOUR_SECRET_TOKEN'\n if (!scheme.name) {\n continue\n }\n\n const param = { name: scheme.name, value }\n\n switch (scheme.in) {\n case 'header':\n result.headers.push(param)\n break\n case 'query':\n result.queryString.push(param)\n break\n case 'cookie':\n result.cookies.push(param)\n break\n }\n continue\n }\n\n // Handle http type\n if (scheme.type === 'http') {\n if (scheme.scheme === 'basic') {\n const username = scheme['x-scalar-secret-username'] || ''\n const password = scheme['x-scalar-secret-password'] || ''\n\n const value = `${username}:${password}`\n const auth = value === ':' ? 'username:password' : encode(value)\n\n result.headers.push({\n name: 'Authorization',\n value: `Basic ${auth}`,\n })\n } else if (scheme.scheme === 'bearer') {\n const token = scheme['x-scalar-secret-token'] || 'YOUR_SECRET_TOKEN'\n\n result.headers.push({\n name: 'Authorization',\n value: `Bearer ${token}`,\n })\n }\n continue\n }\n\n // Handle oauth2 type\n if (scheme.type === 'oauth2' && scheme.flows) {\n const flows = Object.values(scheme.flows)\n\n // Find the first flow with a token\n const flow = flows.find((f) => f['x-scalar-secret-token'])\n const token = flow?.['x-scalar-secret-token'] || 'YOUR_SECRET_TOKEN'\n\n result.headers.push({\n name: 'Authorization',\n value: `Bearer ${token}`,\n })\n }\n }\n\n return result\n}\n"],
5
+ "mappings": "AAEA,SAAS,cAAc;AAahB,MAAM,yBAAyB,CAAC,oBAA4E;AACjH,QAAM,SAAyC;AAAA,IAC7C,SAAS,CAAC;AAAA,IACV,aAAa,CAAC;AAAA,IACd,SAAS,CAAC;AAAA,EACZ;AAEA,aAAW,UAAU,iBAAiB;AAEpC,QAAI,OAAO,SAAS,UAAU;AAC5B,YAAM,QAAQ,OAAO,uBAAuB,KAAK;AACjD,UAAI,CAAC,OAAO,MAAM;AAChB;AAAA,MACF;AAEA,YAAM,QAAQ,EAAE,MAAM,OAAO,MAAM,MAAM;AAEzC,cAAQ,OAAO,IAAI;AAAA,QACjB,KAAK;AACH,iBAAO,QAAQ,KAAK,KAAK;AACzB;AAAA,QACF,KAAK;AACH,iBAAO,YAAY,KAAK,KAAK;AAC7B;AAAA,QACF,KAAK;AACH,iBAAO,QAAQ,KAAK,KAAK;AACzB;AAAA,MACJ;AACA;AAAA,IACF;AAGA,QAAI,OAAO,SAAS,QAAQ;AAC1B,UAAI,OAAO,WAAW,SAAS;AAC7B,cAAM,WAAW,OAAO,0BAA0B,KAAK;AACvD,cAAM,WAAW,OAAO,0BAA0B,KAAK;AAEvD,cAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ;AACrC,cAAM,OAAO,UAAU,MAAM,sBAAsB,OAAO,KAAK;AAE/D,eAAO,QAAQ,KAAK;AAAA,UAClB,MAAM;AAAA,UACN,OAAO,SAAS,IAAI;AAAA,QACtB,CAAC;AAAA,MACH,WAAW,OAAO,WAAW,UAAU;AACrC,cAAM,QAAQ,OAAO,uBAAuB,KAAK;AAEjD,eAAO,QAAQ,KAAK;AAAA,UAClB,MAAM;AAAA,UACN,OAAO,UAAU,KAAK;AAAA,QACxB,CAAC;AAAA,MACH;AACA;AAAA,IACF;AAGA,QAAI,OAAO,SAAS,YAAY,OAAO,OAAO;AAC5C,YAAM,QAAQ,OAAO,OAAO,OAAO,KAAK;AAGxC,YAAM,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,uBAAuB,CAAC;AACzD,YAAM,QAAQ,OAAO,uBAAuB,KAAK;AAEjD,aAAO,QAAQ,KAAK;AAAA,QAClB,MAAM;AAAA,QACN,OAAO,UAAU,KAAK;AAAA,MACxB,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,4 @@
1
- import type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/server';
1
+ import type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
2
2
  /**
3
3
  * Processes a server URL by replacing variables with their default values and merging with the path
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"process-server-url.d.ts","sourceRoot":"","sources":["../../../src/helpers/operation-to-har/process-server-url.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oDAAoD,CAAA;AAEtF;;GAEG;AACH,eAAO,MAAM,gBAAgB,WAAY,YAAY,QAAQ,MAAM,KAAG,MA4BrE,CAAA"}
1
+ {"version":3,"file":"process-server-url.d.ts","sourceRoot":"","sources":["../../../src/helpers/operation-to-har/process-server-url.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAA;AAEhG;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,YAAY,EAAE,MAAM,MAAM,KAAG,MA4BrE,CAAA"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/operation-to-har/process-server-url.ts"],
4
- "sourcesContent": ["import { mergeUrls } from '@scalar/helpers/url/merge-urls'\nimport { replaceVariables } from '@scalar/helpers/regex/replace-variables'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/server'\n\n/**\n * Processes a server URL by replacing variables with their default values and merging with the path\n */\nexport const processServerUrl = (server: ServerObject, path: string): string => {\n if (!server.url) {\n return path\n }\n const serverUrl = server.url\n\n // Replace server variables with their default values\n if (server.variables) {\n const variables = Object.entries(server.variables)\n\n // Extract default values from server variables\n const defaultValues = variables.reduce(\n (defaults, [variableName, variableConfig]) => {\n if (variableConfig.default !== undefined) {\n defaults[variableName] = variableConfig.default\n }\n return defaults\n },\n {} as Record<string, string | number>,\n )\n\n // Replace variables in the server URL with their default values\n const serverUrlWithVars = replaceVariables(serverUrl, defaultValues)\n\n return mergeUrls(serverUrlWithVars, path)\n }\n\n return mergeUrls(serverUrl, path)\n}\n"],
4
+ "sourcesContent": ["import { mergeUrls } from '@scalar/helpers/url/merge-urls'\nimport { replaceVariables } from '@scalar/helpers/regex/replace-variables'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\n/**\n * Processes a server URL by replacing variables with their default values and merging with the path\n */\nexport const processServerUrl = (server: ServerObject, path: string): string => {\n if (!server.url) {\n return path\n }\n const serverUrl = server.url\n\n // Replace server variables with their default values\n if (server.variables) {\n const variables = Object.entries(server.variables)\n\n // Extract default values from server variables\n const defaultValues = variables.reduce(\n (defaults, [variableName, variableConfig]) => {\n if (variableConfig.default !== undefined) {\n defaults[variableName] = variableConfig.default\n }\n return defaults\n },\n {} as Record<string, string | number>,\n )\n\n // Replace variables in the server URL with their default values\n const serverUrlWithVars = replaceVariables(serverUrl, defaultValues)\n\n return mergeUrls(serverUrlWithVars, path)\n }\n\n return mergeUrls(serverUrl, path)\n}\n"],
5
5
  "mappings": "AAAA,SAAS,iBAAiB;AAC1B,SAAS,wBAAwB;AAM1B,MAAM,mBAAmB,CAAC,QAAsB,SAAyB;AAC9E,MAAI,CAAC,OAAO,KAAK;AACf,WAAO;AAAA,EACT;AACA,QAAM,YAAY,OAAO;AAGzB,MAAI,OAAO,WAAW;AACpB,UAAM,YAAY,OAAO,QAAQ,OAAO,SAAS;AAGjD,UAAM,gBAAgB,UAAU;AAAA,MAC9B,CAAC,UAAU,CAAC,cAAc,cAAc,MAAM;AAC5C,YAAI,eAAe,YAAY,QAAW;AACxC,mBAAS,YAAY,IAAI,eAAe;AAAA,QAC1C;AACA,eAAO;AAAA,MACT;AAAA,MACA,CAAC;AAAA,IACH;AAGA,UAAM,oBAAoB,iBAAiB,WAAW,aAAa;AAEnE,WAAO,UAAU,mBAAmB,IAAI;AAAA,EAC1C;AAEA,SAAO,UAAU,WAAW,IAAI;AAClC;",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/helpers/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAS,SAAS,EAAE,MAAM,MAAM,CAAA;AAEvC,KAAK,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;AAE9E,4CAA4C;AAC5C,eAAO,MAAM,IAAI;IACf,2DAA2D;iBAC9C,MAAM,KAKI,aAAa;IAEpC,6CAA6C;cACnC,CAAC,SAAS,iBAAiB,OAAO,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC;;CAQxG,CAAA;AAED,4CAA4C;AAC5C,eAAO,MAAM,IAAI;IACf,2DAA2D;iBAC9C,MAAM,KAAG,aAAa;IAOnC,6CAA6C;cACnC,CAAC,SAAS,iBAAiB,OAAO,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC;qBAOtF,MAAM;CACxB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,WAAY,GAAG,YAMvC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,UAAW,MAAM,WAG5C,CAAA;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,UAcnD;AAED,wCAAwC;AACxC,eAAO,MAAM,eAAe,UAAW,MAAM,GAAG,aAAa,KAAG,aAkB/D,CAAA"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/helpers/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAS,SAAS,EAAE,MAAM,MAAM,CAAA;AAEvC,KAAK,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;AAE9E,4CAA4C;AAC5C,eAAO,MAAM,IAAI;IACf,2DAA2D;iBAC9C,MAAM,KAKI,aAAa;IAEpC,6CAA6C;cACnC,CAAC,SAAS,iBAAiB,OAAO,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC;;CAQxG,CAAA;AAED,4CAA4C;AAC5C,eAAO,MAAM,IAAI;IACf,2DAA2D;iBAC9C,MAAM,KAAG,aAAa;IAOnC,6CAA6C;cACnC,CAAC,SAAS,iBAAiB,OAAO,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC;qBAOtF,MAAM;CACxB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,GAAG,YAMvC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,WAG5C,CAAA;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,UAcnD;AAED,wCAAwC;AACxC,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,GAAG,aAAa,KAAG,aAkB/D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"pretty-print-json.d.ts","sourceRoot":"","sources":["../../src/helpers/pretty-print-json.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,eAAe,UAAW,MAAM,GAAG,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAG,MAqBnF,CAAA;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,GAAG,UAiBvD"}
1
+ {"version":3,"file":"pretty-print-json.d.ts","sourceRoot":"","sources":["../../src/helpers/pretty-print-json.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,GAAG,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAG,MAqBnF,CAAA;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,GAAG,UAiBvD"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-schemes.d.ts","sourceRoot":"","sources":["../../../src/helpers/security/get-schemes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAG5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAE1D,2IAA2I;AAC3I,eAAO,MAAM,UAAU,4BACI,SAAS,CAAC,4BAA4B,CAAC,mBAC/C,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAO43qF,CAAC;;;;;;;;;;;qCAA0X,CAAC;oCAA0E,CAAC;yBAA+D,CAAC;2CAAiE,CAAC;;gBAAwE,CAAC;;;;;;;;;qCAAiV,CAAC;oCAA0E,CAAC;yBAA+D,CAAC;;yBAAsE,CAAC;;;;;;;;;qCAAuU,CAAC;oCAA0E,CAAC;yBAA+D,CAAC;2CAAiE,CAAC;;yBAAiF,CAAC;;;;;;;;;;;;qCAA+c,CAAC;oCAA0E,CAAC;yBAA+D,CAAC;2CAAiE,CAAC;;;;;IADr3vF,CAAA"}
1
+ {"version":3,"file":"get-schemes.d.ts","sourceRoot":"","sources":["../../../src/helpers/security/get-schemes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAG5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAE1D,2IAA2I;AAC3I,eAAO,MAAM,UAAU,GACrB,yBAAyB,SAAS,CAAC,4BAA4B,CAAC,EAChE,iBAAiB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAO43qF,CAAC;;;;;;;;;;;qCAA0X,CAAC;oCAA0E,CAAC;yBAA+D,CAAC;2CAAiE,CAAC;;gBAAwE,CAAC;;;;;;;;;qCAAiV,CAAC;oCAA0E,CAAC;yBAA+D,CAAC;;yBAAsE,CAAC;;;;;;;;;qCAAuU,CAAC;oCAA0E,CAAC;yBAA+D,CAAC;2CAAiE,CAAC;;yBAAiF,CAAC;;;;;;;;;;;;qCAA+c,CAAC;oCAA0E,CAAC;yBAA+D,CAAC;2CAAiE,CAAC;;;;;IADr3vF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"has-token.d.ts","sourceRoot":"","sources":["../../../src/helpers/security/has-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,gHAAgH;AAChH,eAAO,MAAM,QAAQ,WAAY,cAAc,KAAG,OAwBjD,CAAA"}
1
+ {"version":3,"file":"has-token.d.ts","sourceRoot":"","sources":["../../../src/helpers/security/has-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,gHAAgH;AAChH,eAAO,MAAM,QAAQ,GAAI,QAAQ,cAAc,KAAG,OAwBjD,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { type Server } from '../entities/spec/server.js';
2
- import type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/server';
2
+ import type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
3
3
  /**
4
4
  * Server processing options containing base URLs for resolving relative server URLs.
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"servers.d.ts","sourceRoot":"","sources":["../../src/helpers/servers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,wBAAwB,CAAA;AAGlE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oDAAoD,CAAA;AAEtF;;GAEG;AACH,KAAK,uBAAuB,GAAG;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,YAAY,EAAE,GAAG,SAAS,EACnC,OAAO,GAAE,uBAA4B,GACpC,MAAM,EAAE,CAsBV"}
1
+ {"version":3,"file":"servers.d.ts","sourceRoot":"","sources":["../../src/helpers/servers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,wBAAwB,CAAA;AAGlE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAA;AAEhG;;GAEG;AACH,KAAK,uBAAuB,GAAG;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,YAAY,EAAE,GAAG,SAAS,EACnC,OAAO,GAAE,uBAA4B,GACpC,MAAM,EAAE,CAsBV"}