@scalar/oas-utils 0.4.33 → 0.5.0

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 (69) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/entities/cookie/cookie.d.ts +2 -17
  3. package/dist/entities/cookie/cookie.d.ts.map +1 -1
  4. package/dist/entities/environment/environment.d.ts +2 -14
  5. package/dist/entities/environment/environment.d.ts.map +1 -1
  6. package/dist/entities/shared/utility.d.ts +1 -1
  7. package/dist/entities/shared/utility.d.ts.map +1 -1
  8. package/dist/entities/spec/collection.d.ts +76 -501
  9. package/dist/entities/spec/collection.d.ts.map +1 -1
  10. package/dist/entities/spec/operation.d.ts +60 -290
  11. package/dist/entities/spec/operation.d.ts.map +1 -1
  12. package/dist/entities/spec/parameters.d.ts +33 -50
  13. package/dist/entities/spec/parameters.d.ts.map +1 -1
  14. package/dist/entities/spec/request-examples.d.ts +161 -998
  15. package/dist/entities/spec/request-examples.d.ts.map +1 -1
  16. package/dist/entities/spec/request-examples.js +11 -6
  17. package/dist/entities/spec/request-examples.js.map +2 -2
  18. package/dist/entities/spec/requests.d.ts +102 -595
  19. package/dist/entities/spec/requests.d.ts.map +1 -1
  20. package/dist/entities/spec/server.d.ts +12 -156
  21. package/dist/entities/spec/server.d.ts.map +1 -1
  22. package/dist/entities/spec/spec-objects.d.ts +37 -229
  23. package/dist/entities/spec/spec-objects.d.ts.map +1 -1
  24. package/dist/entities/spec/x-scalar-environments.d.ts +8 -56
  25. package/dist/entities/spec/x-scalar-environments.d.ts.map +1 -1
  26. package/dist/entities/spec/x-scalar-secrets.d.ts +2 -14
  27. package/dist/entities/spec/x-scalar-secrets.d.ts.map +1 -1
  28. package/dist/entities/workspace/workspace.d.ts +218 -98
  29. package/dist/entities/workspace/workspace.d.ts.map +1 -1
  30. package/dist/entities/workspace/workspace.js +4 -5
  31. package/dist/entities/workspace/workspace.js.map +2 -2
  32. package/dist/helpers/parse.js +1 -1
  33. package/dist/helpers/parse.js.map +2 -2
  34. package/dist/helpers/schema-model.d.ts +3 -3
  35. package/dist/helpers/schema-model.d.ts.map +1 -1
  36. package/dist/helpers/schema-model.js.map +1 -1
  37. package/dist/helpers/security/get-schemes.d.ts +27 -27
  38. package/dist/helpers/security/get-schemes.d.ts.map +1 -1
  39. package/dist/migrations/v-2.5.0/migration.d.ts.map +1 -1
  40. package/dist/migrations/v-2.5.0/migration.js.map +2 -2
  41. package/dist/spec-getters/get-example-from-schema.d.ts +26 -23
  42. package/dist/spec-getters/get-example-from-schema.d.ts.map +1 -1
  43. package/dist/spec-getters/get-example-from-schema.js +330 -174
  44. package/dist/spec-getters/get-example-from-schema.js.map +2 -2
  45. package/package.json +9 -9
  46. package/dist/helpers/operation-to-har/index.d.ts +0 -2
  47. package/dist/helpers/operation-to-har/index.d.ts.map +0 -1
  48. package/dist/helpers/operation-to-har/index.js +0 -5
  49. package/dist/helpers/operation-to-har/index.js.map +0 -7
  50. package/dist/helpers/operation-to-har/operation-to-har.d.ts +0 -49
  51. package/dist/helpers/operation-to-har/operation-to-har.d.ts.map +0 -1
  52. package/dist/helpers/operation-to-har/operation-to-har.js +0 -68
  53. package/dist/helpers/operation-to-har/operation-to-har.js.map +0 -7
  54. package/dist/helpers/operation-to-har/process-body.d.ts +0 -12
  55. package/dist/helpers/operation-to-har/process-body.d.ts.map +0 -1
  56. package/dist/helpers/operation-to-har/process-body.js +0 -80
  57. package/dist/helpers/operation-to-har/process-body.js.map +0 -7
  58. package/dist/helpers/operation-to-har/process-parameters.d.ts +0 -19
  59. package/dist/helpers/operation-to-har/process-parameters.d.ts.map +0 -1
  60. package/dist/helpers/operation-to-har/process-parameters.js +0 -261
  61. package/dist/helpers/operation-to-har/process-parameters.js.map +0 -7
  62. package/dist/helpers/operation-to-har/process-security-schemes.d.ts +0 -15
  63. package/dist/helpers/operation-to-har/process-security-schemes.d.ts.map +0 -1
  64. package/dist/helpers/operation-to-har/process-security-schemes.js +0 -62
  65. package/dist/helpers/operation-to-har/process-security-schemes.js.map +0 -7
  66. package/dist/helpers/operation-to-har/process-server-url.d.ts +0 -6
  67. package/dist/helpers/operation-to-har/process-server-url.d.ts.map +0 -1
  68. package/dist/helpers/operation-to-har/process-server-url.js +0 -27
  69. package/dist/helpers/operation-to-har/process-server-url.js.map +0 -7
@@ -3,69 +3,67 @@ import type { Operation } from '../../entities/spec/operation.js';
3
3
  /** Parses a list of selected security scheme uids which may be an array or single uid and returns a flattened array of security schemes */
4
4
  export declare const getSchemes: (selectedSecuritySchemes: Operation["selectedSecuritySchemeUids"], securitySchemes: Record<SecurityScheme["uid"], SecurityScheme>) => NonNullable<{
5
5
  type: "apiKey";
6
- value: string;
7
6
  name: string;
8
- uid: string & import("zod").BRAND<"securityScheme">;
9
- nameKey: string;
10
7
  in: "cookie" | "query" | "header";
8
+ uid: string & import("zod").$brand<"securityScheme">;
9
+ nameKey: string;
10
+ value: string;
11
11
  description?: string | undefined;
12
12
  } | {
13
13
  type: "http";
14
- uid: string & import("zod").BRAND<"securityScheme">;
15
- nameKey: string;
16
14
  scheme: "basic" | "bearer";
17
15
  bearerFormat: string;
16
+ uid: string & import("zod").$brand<"securityScheme">;
17
+ nameKey: string;
18
18
  username: string;
19
19
  password: string;
20
20
  token: string;
21
21
  description?: string | undefined;
22
22
  } | {
23
23
  type: "openIdConnect";
24
- uid: string & import("zod").BRAND<"securityScheme">;
25
- nameKey: string;
26
24
  openIdConnectUrl: string;
25
+ uid: string & import("zod").$brand<"securityScheme">;
26
+ nameKey: string;
27
27
  description?: string | undefined;
28
28
  } | {
29
29
  type: "oauth2";
30
- uid: string & import("zod").BRAND<"securityScheme">;
31
- nameKey: string;
32
30
  flows: {
33
- password?: {
34
- type: "password";
35
- username: string;
36
- password: string;
37
- token: string;
31
+ implicit?: {
38
32
  refreshUrl: string;
39
33
  scopes: Record<string, string>;
40
34
  selectedScopes: string[];
41
35
  "x-scalar-client-id": string;
42
- tokenUrl: string;
43
- clientSecret: string;
36
+ token: string;
37
+ type: "implicit";
38
+ authorizationUrl: string;
39
+ "x-scalar-redirect-uri": string;
44
40
  "x-scalar-security-query"?: Record<string, string> | undefined;
45
41
  "x-scalar-security-body"?: Record<string, string> | undefined;
46
42
  "x-tokenName"?: string | undefined;
47
- "x-scalar-credentials-location"?: "header" | "body" | undefined;
48
43
  } | undefined;
49
- implicit?: {
50
- type: "implicit";
51
- token: string;
44
+ password?: {
52
45
  refreshUrl: string;
53
46
  scopes: Record<string, string>;
54
47
  selectedScopes: string[];
55
48
  "x-scalar-client-id": string;
56
- authorizationUrl: string;
57
- "x-scalar-redirect-uri": string;
49
+ token: string;
50
+ type: "password";
51
+ tokenUrl: string;
52
+ clientSecret: string;
53
+ username: string;
54
+ password: string;
58
55
  "x-scalar-security-query"?: Record<string, string> | undefined;
59
56
  "x-scalar-security-body"?: Record<string, string> | undefined;
60
57
  "x-tokenName"?: string | undefined;
58
+ "x-scalar-credentials-location"?: "header" | "body" | undefined;
61
59
  } | undefined;
62
60
  clientCredentials?: {
63
- type: "clientCredentials";
64
- token: string;
65
61
  refreshUrl: string;
66
62
  scopes: Record<string, string>;
67
63
  selectedScopes: string[];
68
64
  "x-scalar-client-id": string;
65
+ token: string;
66
+ type: "clientCredentials";
69
67
  tokenUrl: string;
70
68
  clientSecret: string;
71
69
  "x-scalar-security-query"?: Record<string, string> | undefined;
@@ -74,23 +72,25 @@ export declare const getSchemes: (selectedSecuritySchemes: Operation["selectedSe
74
72
  "x-scalar-credentials-location"?: "header" | "body" | undefined;
75
73
  } | undefined;
76
74
  authorizationCode?: {
77
- type: "authorizationCode";
78
- token: string;
79
75
  refreshUrl: string;
80
76
  scopes: Record<string, string>;
81
77
  selectedScopes: string[];
82
78
  "x-scalar-client-id": string;
79
+ token: string;
80
+ type: "authorizationCode";
83
81
  authorizationUrl: string;
82
+ "x-usePkce": "SHA-256" | "plain" | "no";
84
83
  "x-scalar-redirect-uri": string;
85
84
  tokenUrl: string;
86
85
  clientSecret: string;
87
- "x-usePkce": "SHA-256" | "plain" | "no";
88
86
  "x-scalar-security-query"?: Record<string, string> | undefined;
89
87
  "x-scalar-security-body"?: Record<string, string> | undefined;
90
88
  "x-tokenName"?: string | undefined;
91
89
  "x-scalar-credentials-location"?: "header" | "body" | undefined;
92
90
  } | undefined;
93
91
  };
92
+ uid: string & import("zod").$brand<"securityScheme">;
93
+ nameKey: string;
94
94
  description?: string | undefined;
95
95
  'x-default-scopes'?: string[] | undefined;
96
96
  }>[];
@@ -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,GACrB,yBAAyB,SAAS,CAAC,4BAA4B,CAAC,EAChE,iBAAiB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAOqvqF,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;;;;;IAD9uvF,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;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAOq+mB,CAAC;;;;;;;;;qCAAiV,CAAC;oCAA0E,CAAC;yBAA+D,CAAC;;gBAA6D,CAAC;;;;;;;;;;;qCAA0X,CAAC;oCAA0E,CAAC;yBAA+D,CAAC;2CAAiE,CAAC;;yBAAiF,CAAC;;;;;;;;;qCAAuU,CAAC;oCAA0E,CAAC;yBAA+D,CAAC;2CAAiE,CAAC;;yBAAiF,CAAC;;;;;;;;;;;;qCAA+c,CAAC;oCAA0E,CAAC;yBAA+D,CAAC;2CAAiE,CAAC;;;;;;;IAD99rB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/migrations/v-2.5.0/migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,mCAAmC;AACnC,eAAO,MAAM,eAAe,GAAI,MAAM,OAAO,CAAC,UAAU,KAAG,OAAO,CAAC,YAAY,CAkK9E,CAAA"}
1
+ {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/migrations/v-2.5.0/migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AAEnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,mCAAmC;AACnC,eAAO,MAAM,eAAe,GAAI,MAAM,OAAO,CAAC,UAAU,KAAG,OAAO,CAAC,YAAY,CAkK9E,CAAA"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/migrations/v-2.5.0/migration.ts"],
4
- "sourcesContent": ["import type { v_2_4_0 } from '@/migrations/v-2.4.0/types.generated'\nimport type { v_2_5_0 } from './types.generated'\n\n/** V-2.4.0 to V-2.5.0 migration */\nexport const migrate_v_2_5_0 = (data: v_2_4_0.DataRecord): v_2_5_0['DataRecord'] => {\n console.info('Performing data migration v-2.4.0 to v-2.5.0')\n\n const cookies = Object.entries(data.cookies || {}).reduce<Record<string, v_2_5_0['Cookie']>>((acc, [key, cookie]) => {\n acc[key] = {\n ...cookie,\n uid: cookie.uid as v_2_5_0['Cookie']['uid'],\n } satisfies v_2_5_0['Cookie']\n return acc\n }, {})\n\n const collections = Object.entries(data.collections || {}).reduce<Record<string, v_2_5_0['Collection']>>(\n (acc, [key, collection]) => {\n acc[key] = {\n ...collection,\n info: collection.info ?? {\n title: 'API',\n version: '1.0',\n },\n uid: collection.uid as v_2_5_0['Collection']['uid'],\n selectedSecuritySchemeUids:\n collection.selectedSecuritySchemeUids as v_2_5_0['Collection']['selectedSecuritySchemeUids'],\n servers: collection.servers.map((uid) => uid as v_2_5_0['Server']['uid']),\n tags: collection.tags.map((uid) => uid as v_2_5_0['Tag']['uid']),\n requests: collection.requests.map((uid) => uid as v_2_5_0['Request']['uid']),\n children: collection.children.map((uid) => uid as v_2_5_0['Request']['uid'] | v_2_5_0['Tag']['uid']),\n selectedServerUid: collection.selectedServerUid as v_2_5_0['Server']['uid'],\n useCollectionSecurity: false,\n } satisfies v_2_5_0['Collection']\n return acc\n },\n {},\n )\n\n const environments = Object.entries(data.environments || {}).reduce<Record<string, v_2_5_0['Environment']>>(\n (acc, [key, environment]) => {\n acc[key] = {\n ...environment,\n uid: environment.uid as v_2_5_0['Environment']['uid'],\n } satisfies v_2_5_0['Environment']\n return acc\n },\n {},\n )\n\n const requests = Object.entries(data.requests || {}).reduce<Record<string, v_2_5_0['Request']>>(\n (acc, [key, request]) => {\n acc[key] = {\n ...request,\n uid: request.uid as v_2_5_0['Request']['uid'],\n servers: request.servers as v_2_5_0['Request']['servers'],\n selectedServerUid: request.selectedServerUid as v_2_5_0['Request']['selectedServerUid'],\n examples: request.examples as v_2_5_0['Request']['examples'],\n selectedSecuritySchemeUids:\n request.selectedSecuritySchemeUids as v_2_5_0['Request']['selectedSecuritySchemeUids'],\n } satisfies v_2_5_0['Request']\n return acc\n },\n {},\n )\n\n const requestExamples = Object.entries(data.requestExamples || {}).reduce<Record<string, v_2_5_0['RequestExample']>>(\n (acc, [key, example]) => {\n const headers = example.parameters.headers\n\n // Check if \"Accept\" header exists\n const hasAcceptHeader = headers.some((header) => header.key.toLowerCase() === 'accept')\n\n if (!hasAcceptHeader) {\n // Add \"Accept\" header as the first entry\n headers.unshift({ key: 'Accept', value: '*/*', enabled: true })\n }\n\n // Update the example with potentially modified headers\n acc[key] = {\n ...example,\n uid: example.uid as v_2_5_0['RequestExample']['uid'],\n requestUid: example.requestUid as v_2_5_0['RequestExample']['requestUid'],\n parameters: {\n ...example.parameters,\n headers,\n },\n }\n return acc\n },\n {},\n )\n\n const securitySchemes = Object.entries(data.securitySchemes || {}).reduce<Record<string, v_2_5_0['SecurityScheme']>>(\n (acc, [key, securityScheme]) => {\n acc[key] = {\n ...securityScheme,\n uid: securityScheme.uid as v_2_5_0['SecurityScheme']['uid'],\n } satisfies v_2_5_0['SecurityScheme']\n return acc\n },\n {},\n )\n\n const servers = Object.entries(data.servers || {}).reduce<Record<string, v_2_5_0['Server']>>((acc, [key, server]) => {\n acc[key] = {\n ...server,\n uid: server.uid as v_2_5_0['Server']['uid'],\n variables: Object.entries(server.variables || {}).reduce<\n Record<\n string,\n {\n enum?: [string, ...string[]]\n default: string\n description?: string\n }\n >\n >((variablesAcc, [variableKey, variable]) => {\n variablesAcc[variableKey] = {\n default: variable.default ?? '',\n description: variable.description ?? '',\n ...(variable.enum?.length && { enum: variable.enum as [string, ...string[]] }),\n }\n return variablesAcc\n }, {}),\n }\n return acc\n }, {})\n\n const tags = Object.entries(data.tags || {}).reduce<Record<string, v_2_5_0['Tag']>>((acc, [key, tag]) => {\n acc[key] = {\n ...tag,\n uid: tag.uid as v_2_5_0['Tag']['uid'],\n children: tag.children as v_2_5_0['Tag']['children'],\n } satisfies v_2_5_0['Tag']\n return acc\n }, {})\n\n const workspaces = Object.entries(data.workspaces || {}).reduce<Record<string, v_2_5_0['Workspace']>>(\n (acc, [key, workspace]) => {\n acc[key] = {\n ...workspace,\n uid: workspace.uid as v_2_5_0['Workspace']['uid'],\n collections: workspace.collections.map((uid) => uid as v_2_5_0['Collection']['uid']),\n cookies: workspace.cookies.map((uid) => uid as v_2_5_0['Cookie']['uid']),\n selectedHttpClient: {\n targetKey: 'shell',\n clientKey: 'curl',\n },\n }\n return acc\n },\n {},\n )\n\n return {\n ...data,\n collections,\n cookies,\n environments,\n requests,\n requestExamples,\n securitySchemes,\n servers,\n tags,\n workspaces,\n } satisfies v_2_5_0['DataRecord']\n}\n"],
5
- "mappings": "AAIO,MAAM,kBAAkB,CAAC,SAAoD;AAClF,UAAQ,KAAK,8CAA8C;AAE3D,QAAM,UAAU,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,EAAE,OAA0C,CAAC,KAAK,CAAC,KAAK,MAAM,MAAM;AACnH,QAAI,GAAG,IAAI;AAAA,MACT,GAAG;AAAA,MACH,KAAK,OAAO;AAAA,IACd;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAEL,QAAM,cAAc,OAAO,QAAQ,KAAK,eAAe,CAAC,CAAC,EAAE;AAAA,IACzD,CAAC,KAAK,CAAC,KAAK,UAAU,MAAM;AAC1B,UAAI,GAAG,IAAI;AAAA,QACT,GAAG;AAAA,QACH,MAAM,WAAW,QAAQ;AAAA,UACvB,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,KAAK,WAAW;AAAA,QAChB,4BACE,WAAW;AAAA,QACb,SAAS,WAAW,QAAQ,IAAI,CAAC,QAAQ,GAA+B;AAAA,QACxE,MAAM,WAAW,KAAK,IAAI,CAAC,QAAQ,GAA4B;AAAA,QAC/D,UAAU,WAAW,SAAS,IAAI,CAAC,QAAQ,GAAgC;AAAA,QAC3E,UAAU,WAAW,SAAS,IAAI,CAAC,QAAQ,GAAwD;AAAA,QACnG,mBAAmB,WAAW;AAAA,QAC9B,uBAAuB;AAAA,MACzB;AACA,aAAO;AAAA,IACT;AAAA,IACA,CAAC;AAAA,EACH;AAEA,QAAM,eAAe,OAAO,QAAQ,KAAK,gBAAgB,CAAC,CAAC,EAAE;AAAA,IAC3D,CAAC,KAAK,CAAC,KAAK,WAAW,MAAM;AAC3B,UAAI,GAAG,IAAI;AAAA,QACT,GAAG;AAAA,QACH,KAAK,YAAY;AAAA,MACnB;AACA,aAAO;AAAA,IACT;AAAA,IACA,CAAC;AAAA,EACH;AAEA,QAAM,WAAW,OAAO,QAAQ,KAAK,YAAY,CAAC,CAAC,EAAE;AAAA,IACnD,CAAC,KAAK,CAAC,KAAK,OAAO,MAAM;AACvB,UAAI,GAAG,IAAI;AAAA,QACT,GAAG;AAAA,QACH,KAAK,QAAQ;AAAA,QACb,SAAS,QAAQ;AAAA,QACjB,mBAAmB,QAAQ;AAAA,QAC3B,UAAU,QAAQ;AAAA,QAClB,4BACE,QAAQ;AAAA,MACZ;AACA,aAAO;AAAA,IACT;AAAA,IACA,CAAC;AAAA,EACH;AAEA,QAAM,kBAAkB,OAAO,QAAQ,KAAK,mBAAmB,CAAC,CAAC,EAAE;AAAA,IACjE,CAAC,KAAK,CAAC,KAAK,OAAO,MAAM;AACvB,YAAM,UAAU,QAAQ,WAAW;AAGnC,YAAM,kBAAkB,QAAQ,KAAK,CAAC,WAAW,OAAO,IAAI,YAAY,MAAM,QAAQ;AAEtF,UAAI,CAAC,iBAAiB;AAEpB,gBAAQ,QAAQ,EAAE,KAAK,UAAU,OAAO,OAAO,SAAS,KAAK,CAAC;AAAA,MAChE;AAGA,UAAI,GAAG,IAAI;AAAA,QACT,GAAG;AAAA,QACH,KAAK,QAAQ;AAAA,QACb,YAAY,QAAQ;AAAA,QACpB,YAAY;AAAA,UACV,GAAG,QAAQ;AAAA,UACX;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA,CAAC;AAAA,EACH;AAEA,QAAM,kBAAkB,OAAO,QAAQ,KAAK,mBAAmB,CAAC,CAAC,EAAE;AAAA,IACjE,CAAC,KAAK,CAAC,KAAK,cAAc,MAAM;AAC9B,UAAI,GAAG,IAAI;AAAA,QACT,GAAG;AAAA,QACH,KAAK,eAAe;AAAA,MACtB;AACA,aAAO;AAAA,IACT;AAAA,IACA,CAAC;AAAA,EACH;AAEA,QAAM,UAAU,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,EAAE,OAA0C,CAAC,KAAK,CAAC,KAAK,MAAM,MAAM;AACnH,QAAI,GAAG,IAAI;AAAA,MACT,GAAG;AAAA,MACH,KAAK,OAAO;AAAA,MACZ,WAAW,OAAO,QAAQ,OAAO,aAAa,CAAC,CAAC,EAAE,OAShD,CAAC,cAAc,CAAC,aAAa,QAAQ,MAAM;AAC3C,qBAAa,WAAW,IAAI;AAAA,UAC1B,SAAS,SAAS,WAAW;AAAA,UAC7B,aAAa,SAAS,eAAe;AAAA,UACrC,GAAI,SAAS,MAAM,UAAU,EAAE,MAAM,SAAS,KAA8B;AAAA,QAC9E;AACA,eAAO;AAAA,MACT,GAAG,CAAC,CAAC;AAAA,IACP;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAEL,QAAM,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,EAAE,OAAuC,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;AACvG,QAAI,GAAG,IAAI;AAAA,MACT,GAAG;AAAA,MACH,KAAK,IAAI;AAAA,MACT,UAAU,IAAI;AAAA,IAChB;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAEL,QAAM,aAAa,OAAO,QAAQ,KAAK,cAAc,CAAC,CAAC,EAAE;AAAA,IACvD,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM;AACzB,UAAI,GAAG,IAAI;AAAA,QACT,GAAG;AAAA,QACH,KAAK,UAAU;AAAA,QACf,aAAa,UAAU,YAAY,IAAI,CAAC,QAAQ,GAAmC;AAAA,QACnF,SAAS,UAAU,QAAQ,IAAI,CAAC,QAAQ,GAA+B;AAAA,QACvE,oBAAoB;AAAA,UAClB,WAAW;AAAA,UACX,WAAW;AAAA,QACb;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import type { v_2_4_0 } from '@/migrations/v-2.4.0/types.generated'\n\nimport type { v_2_5_0 } from './types.generated'\n\n/** V-2.4.0 to V-2.5.0 migration */\nexport const migrate_v_2_5_0 = (data: v_2_4_0.DataRecord): v_2_5_0['DataRecord'] => {\n console.info('Performing data migration v-2.4.0 to v-2.5.0')\n\n const cookies = Object.entries(data.cookies || {}).reduce<Record<string, v_2_5_0['Cookie']>>((acc, [key, cookie]) => {\n acc[key] = {\n ...cookie,\n uid: cookie.uid as v_2_5_0['Cookie']['uid'],\n } satisfies v_2_5_0['Cookie']\n return acc\n }, {})\n\n const collections = Object.entries(data.collections || {}).reduce<Record<string, v_2_5_0['Collection']>>(\n (acc, [key, collection]) => {\n acc[key] = {\n ...collection,\n info: collection.info ?? {\n title: 'API',\n version: '1.0',\n },\n uid: collection.uid as v_2_5_0['Collection']['uid'],\n selectedSecuritySchemeUids:\n collection.selectedSecuritySchemeUids as v_2_5_0['Collection']['selectedSecuritySchemeUids'],\n servers: collection.servers.map((uid) => uid as v_2_5_0['Server']['uid']),\n tags: collection.tags.map((uid) => uid as v_2_5_0['Tag']['uid']),\n requests: collection.requests.map((uid) => uid as v_2_5_0['Request']['uid']),\n children: collection.children.map((uid) => uid as v_2_5_0['Request']['uid'] | v_2_5_0['Tag']['uid']),\n selectedServerUid: collection.selectedServerUid as v_2_5_0['Server']['uid'],\n useCollectionSecurity: false,\n } satisfies v_2_5_0['Collection']\n return acc\n },\n {},\n )\n\n const environments = Object.entries(data.environments || {}).reduce<Record<string, v_2_5_0['Environment']>>(\n (acc, [key, environment]) => {\n acc[key] = {\n ...environment,\n uid: environment.uid as v_2_5_0['Environment']['uid'],\n } satisfies v_2_5_0['Environment']\n return acc\n },\n {},\n )\n\n const requests = Object.entries(data.requests || {}).reduce<Record<string, v_2_5_0['Request']>>(\n (acc, [key, request]) => {\n acc[key] = {\n ...request,\n uid: request.uid as v_2_5_0['Request']['uid'],\n servers: request.servers as v_2_5_0['Request']['servers'],\n selectedServerUid: request.selectedServerUid as v_2_5_0['Request']['selectedServerUid'],\n examples: request.examples as v_2_5_0['Request']['examples'],\n selectedSecuritySchemeUids:\n request.selectedSecuritySchemeUids as v_2_5_0['Request']['selectedSecuritySchemeUids'],\n } satisfies v_2_5_0['Request']\n return acc\n },\n {},\n )\n\n const requestExamples = Object.entries(data.requestExamples || {}).reduce<Record<string, v_2_5_0['RequestExample']>>(\n (acc, [key, example]) => {\n const headers = example.parameters.headers\n\n // Check if \"Accept\" header exists\n const hasAcceptHeader = headers.some((header) => header.key.toLowerCase() === 'accept')\n\n if (!hasAcceptHeader) {\n // Add \"Accept\" header as the first entry\n headers.unshift({ key: 'Accept', value: '*/*', enabled: true })\n }\n\n // Update the example with potentially modified headers\n acc[key] = {\n ...example,\n uid: example.uid as v_2_5_0['RequestExample']['uid'],\n requestUid: example.requestUid as v_2_5_0['RequestExample']['requestUid'],\n parameters: {\n ...example.parameters,\n headers,\n },\n }\n return acc\n },\n {},\n )\n\n const securitySchemes = Object.entries(data.securitySchemes || {}).reduce<Record<string, v_2_5_0['SecurityScheme']>>(\n (acc, [key, securityScheme]) => {\n acc[key] = {\n ...securityScheme,\n uid: securityScheme.uid as v_2_5_0['SecurityScheme']['uid'],\n } satisfies v_2_5_0['SecurityScheme']\n return acc\n },\n {},\n )\n\n const servers = Object.entries(data.servers || {}).reduce<Record<string, v_2_5_0['Server']>>((acc, [key, server]) => {\n acc[key] = {\n ...server,\n uid: server.uid as v_2_5_0['Server']['uid'],\n variables: Object.entries(server.variables || {}).reduce<\n Record<\n string,\n {\n enum?: [string, ...string[]]\n default: string\n description?: string\n }\n >\n >((variablesAcc, [variableKey, variable]) => {\n variablesAcc[variableKey] = {\n default: variable.default ?? '',\n description: variable.description ?? '',\n ...(variable.enum?.length && { enum: variable.enum as [string, ...string[]] }),\n }\n return variablesAcc\n }, {}),\n }\n return acc\n }, {})\n\n const tags = Object.entries(data.tags || {}).reduce<Record<string, v_2_5_0['Tag']>>((acc, [key, tag]) => {\n acc[key] = {\n ...tag,\n uid: tag.uid as v_2_5_0['Tag']['uid'],\n children: tag.children as v_2_5_0['Tag']['children'],\n } satisfies v_2_5_0['Tag']\n return acc\n }, {})\n\n const workspaces = Object.entries(data.workspaces || {}).reduce<Record<string, v_2_5_0['Workspace']>>(\n (acc, [key, workspace]) => {\n acc[key] = {\n ...workspace,\n uid: workspace.uid as v_2_5_0['Workspace']['uid'],\n collections: workspace.collections.map((uid) => uid as v_2_5_0['Collection']['uid']),\n cookies: workspace.cookies.map((uid) => uid as v_2_5_0['Cookie']['uid']),\n selectedHttpClient: {\n targetKey: 'shell',\n clientKey: 'curl',\n },\n }\n return acc\n },\n {},\n )\n\n return {\n ...data,\n collections,\n cookies,\n environments,\n requests,\n requestExamples,\n securitySchemes,\n servers,\n tags,\n workspaces,\n } satisfies v_2_5_0['DataRecord']\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,31 +1,34 @@
1
1
  import type { OpenAPIV3_1 } from '@scalar/openapi-types';
2
2
  /**
3
- * This function takes an OpenAPI schema and generates an example from it
3
+ * Generate an example value from a given OpenAPI SchemaObject.
4
+ *
5
+ * This function recursively processes OpenAPI schemas to create realistic example data.
6
+ * It handles all OpenAPI schema types including primitives, objects, arrays, and
7
+ * composition schemas (allOf, oneOf, anyOf).
8
+ * Uses a tonne of caching for maximum performance.
9
+ *
10
+ * @param schema - The OpenAPI SchemaObject to generate an example from.
11
+ * @param options - Options to customize example generation.
12
+ * @param level - The current recursion depth.
13
+ * @param parentSchema - The parent schema, if any.
14
+ * @param name - The name of the property being processed.
15
+ * @returns An example value for the given schema.
4
16
  */
5
- export declare const getExampleFromSchema: (_schema: OpenAPIV3_1.SchemaObject, options?: {
6
- /**
7
- * The fallback string for empty string values.
8
- * @default ''
9
- */
17
+ export declare const getExampleFromSchema: (schema: OpenAPIV3_1.SchemaObject, options?: {
18
+ /** Fallback string for empty string values. */
10
19
  emptyString?: string;
11
- /**
12
- * Whether to use the XML tag names as keys
13
- * @default false
14
- */
20
+ /** Whether to use XML tag names as keys. */
15
21
  xml?: boolean;
16
- /**
17
- * Whether to show read-only/write-only properties. Otherwise all properties are shown.
18
- * @default undefined
19
- */
22
+ /** Whether to show read-only/write-only properties. */
20
23
  mode?: "read" | "write";
21
- /**
22
- * Dynamic values to add to the example.
23
- */
24
- variables?: Record<string, any>;
25
- /**
26
- * Whether to omit empty and optional properties.
27
- * @default false
28
- */
24
+ /** Dynamic variables which can replace values via x-variable. */
25
+ variables?: Record<string, unknown>;
26
+ /** Whether to omit empty and optional properties. */
29
27
  omitEmptyAndOptionalProperties?: boolean;
30
- }, level?: number, parentSchema?: OpenAPIV3_1.SchemaObject, name?: string) => any;
28
+ }, args?: Partial<{
29
+ level: number;
30
+ parentSchema: OpenAPIV3_1.SchemaObject;
31
+ name: string;
32
+ seen: WeakSet<object>;
33
+ }>) => any;
31
34
  //# sourceMappingURL=get-example-from-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-example-from-schema.d.ts","sourceRoot":"","sources":["../../src/spec-getters/get-example-from-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAwExD;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC/B,SAAS,WAAW,CAAC,YAAY,EACjC,UAAU;IACR;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC/B;;;OAGG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAA;CACzC,EACD,QAAO,MAAU,EACjB,eAAe,WAAW,CAAC,YAAY,EACvC,OAAO,MAAM,KACZ,GAyTF,CAAA"}
1
+ {"version":3,"file":"get-example-from-schema.d.ts","sourceRoot":"","sources":["../../src/spec-getters/get-example-from-schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAwbxD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,WAAW,CAAC,YAAY,EAChC,UAAU;IACR,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACvB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,qDAAqD;IACrD,8BAA8B,CAAC,EAAE,OAAO,CAAA;CACzC,EACD,OAAO,OAAO,CAAC;IACb,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,WAAW,CAAC,YAAY,CAAA;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CACtB,CAAC,KACD,GAyJF,CAAA"}