@scalar/oas-utils 0.2.43 → 0.2.45

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 (188) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/diff/diff.d.ts +13 -0
  3. package/dist/diff/diff.d.ts.map +1 -0
  4. package/dist/diff/index.d.ts +1 -0
  5. package/dist/diff/index.d.ts.map +1 -0
  6. package/dist/diff/index.js +1 -0
  7. package/dist/entities/{workspace/cookie → cookie}/cookie.d.ts +1 -17
  8. package/dist/entities/cookie/cookie.d.ts.map +1 -0
  9. package/dist/entities/{workspace/cookie → cookie}/cookie.js +1 -4
  10. package/dist/entities/cookie/index.d.ts.map +1 -0
  11. package/dist/entities/cookie/index.js +1 -0
  12. package/dist/entities/environment/environment.d.ts +24 -0
  13. package/dist/entities/environment/environment.d.ts.map +1 -0
  14. package/dist/entities/environment/environment.js +12 -0
  15. package/dist/entities/environment/index.d.ts.map +1 -0
  16. package/dist/entities/environment/index.js +1 -0
  17. package/dist/entities/{workspace/consts/hot-keys.d.ts → hotkeys/hotkeys.d.ts} +2 -2
  18. package/dist/entities/hotkeys/hotkeys.d.ts.map +1 -0
  19. package/dist/entities/{workspace/consts/hot-keys.js → hotkeys/hotkeys.js} +1 -0
  20. package/dist/entities/hotkeys/index.d.ts +2 -0
  21. package/dist/entities/hotkeys/index.d.ts.map +1 -0
  22. package/dist/entities/hotkeys/index.js +1 -0
  23. package/dist/entities/index.d.ts +1 -1
  24. package/dist/entities/index.d.ts.map +1 -1
  25. package/dist/entities/index.js +1 -1
  26. package/dist/entities/shared/index.d.ts.map +1 -0
  27. package/dist/entities/shared/utility.d.ts.map +1 -0
  28. package/dist/entities/spec/collection.d.ts +489 -0
  29. package/dist/entities/spec/collection.d.ts.map +1 -0
  30. package/dist/entities/spec/collection.js +63 -0
  31. package/dist/entities/spec/index.d.ts +10 -0
  32. package/dist/entities/spec/index.d.ts.map +1 -0
  33. package/dist/entities/spec/index.js +7 -0
  34. package/dist/entities/spec/parameters.d.ts +42 -0
  35. package/dist/entities/spec/parameters.d.ts.map +1 -0
  36. package/dist/entities/spec/parameters.js +30 -0
  37. package/dist/entities/spec/request-examples.d.ts +916 -0
  38. package/dist/entities/spec/request-examples.d.ts.map +1 -0
  39. package/dist/entities/spec/request-examples.js +168 -0
  40. package/dist/entities/spec/requests.d.ts +317 -0
  41. package/dist/entities/spec/requests.d.ts.map +1 -0
  42. package/dist/entities/{workspace/spec → spec}/requests.js +56 -32
  43. package/dist/entities/spec/security.d.ts +964 -0
  44. package/dist/entities/spec/security.d.ts.map +1 -0
  45. package/dist/entities/spec/security.js +222 -0
  46. package/dist/entities/spec/server.d.ts +82 -0
  47. package/dist/entities/spec/server.d.ts.map +1 -0
  48. package/dist/entities/{workspace/server → spec}/server.js +11 -13
  49. package/dist/entities/spec/spec-objects.d.ts +279 -0
  50. package/dist/entities/spec/spec-objects.d.ts.map +1 -0
  51. package/dist/entities/{workspace/collection/collection.js → spec/spec-objects.js} +21 -45
  52. package/dist/entities/workspace/index.js +1 -1
  53. package/dist/entities/workspace/workspace.d.ts +24 -43
  54. package/dist/entities/workspace/workspace.d.ts.map +1 -1
  55. package/dist/entities/workspace/workspace.js +6 -7
  56. package/dist/helpers/httpMethods.d.ts +16 -82
  57. package/dist/helpers/httpMethods.d.ts.map +1 -1
  58. package/dist/helpers/httpMethods.js +45 -41
  59. package/dist/helpers/index.d.ts +2 -0
  60. package/dist/helpers/index.d.ts.map +1 -1
  61. package/dist/helpers/index.js +4 -2
  62. package/dist/helpers/local-storage.d.ts +16 -0
  63. package/dist/helpers/local-storage.d.ts.map +1 -0
  64. package/dist/helpers/local-storage.js +17 -0
  65. package/dist/helpers/redirectToProxy.d.ts +2 -0
  66. package/dist/helpers/redirectToProxy.d.ts.map +1 -1
  67. package/dist/helpers/redirectToProxy.js +6 -7
  68. package/dist/helpers/regexHelpers.d.ts +3 -0
  69. package/dist/helpers/regexHelpers.d.ts.map +1 -0
  70. package/dist/helpers/regexHelpers.js +4 -0
  71. package/dist/helpers/schema-model.d.ts +2 -2
  72. package/dist/helpers/schema-model.d.ts.map +1 -1
  73. package/dist/helpers/schema-model.js +11 -17
  74. package/dist/migrations/data-version.d.ts +12 -0
  75. package/dist/migrations/data-version.d.ts.map +1 -0
  76. package/dist/migrations/data-version.js +13 -0
  77. package/dist/migrations/generate-types.d.ts +2 -0
  78. package/dist/migrations/generate-types.d.ts.map +1 -0
  79. package/dist/migrations/index.d.ts +4 -0
  80. package/dist/migrations/index.d.ts.map +1 -0
  81. package/dist/migrations/index.js +3 -0
  82. package/dist/migrations/local-storage.d.ts +8 -0
  83. package/dist/migrations/local-storage.d.ts.map +1 -0
  84. package/dist/migrations/local-storage.js +36 -0
  85. package/dist/migrations/migrator.d.ts +4 -0
  86. package/dist/migrations/migrator.d.ts.map +1 -0
  87. package/dist/migrations/migrator.js +40 -0
  88. package/dist/migrations/semver.d.ts +5 -0
  89. package/dist/migrations/semver.d.ts.map +1 -0
  90. package/dist/migrations/semver.js +25 -0
  91. package/dist/migrations/v-0.0.0/index.d.ts +2 -0
  92. package/dist/migrations/v-0.0.0/index.d.ts.map +1 -0
  93. package/dist/migrations/v-0.0.0/index.js +1 -0
  94. package/dist/migrations/v-0.0.0/types.generated.d.ts +347 -0
  95. package/dist/migrations/v-0.0.0/types.generated.d.ts.map +1 -0
  96. package/dist/migrations/v-2.1.0/index.d.ts +3 -0
  97. package/dist/migrations/v-2.1.0/index.d.ts.map +1 -0
  98. package/dist/migrations/v-2.1.0/index.js +1 -0
  99. package/dist/migrations/v-2.1.0/migration.d.ts +334 -0
  100. package/dist/migrations/v-2.1.0/migration.d.ts.map +1 -0
  101. package/dist/migrations/v-2.1.0/migration.js +249 -0
  102. package/dist/migrations/v-2.1.0/types.generated.d.ts +42 -0
  103. package/dist/migrations/v-2.1.0/types.generated.d.ts.map +1 -0
  104. package/dist/spec-getters/getExampleFromSchema.d.ts.map +1 -1
  105. package/dist/spec-getters/getExampleFromSchema.js +21 -8
  106. package/dist/spec-getters/getParametersFromOperation.d.ts +1 -1
  107. package/dist/spec-getters/getParametersFromOperation.d.ts.map +1 -1
  108. package/dist/spec-getters/getParametersFromOperation.js +8 -7
  109. package/dist/spec-getters/getRequestBodyFromOperation.d.ts +12 -40
  110. package/dist/spec-getters/getRequestBodyFromOperation.d.ts.map +1 -1
  111. package/dist/spec-getters/getRequestBodyFromOperation.js +34 -23
  112. package/dist/spec-getters/getRequestFromOperation.d.ts.map +1 -1
  113. package/dist/spec-getters/getRequestFromOperation.js +1 -2
  114. package/dist/spec-getters/getServerVariableExamples.d.ts +4 -0
  115. package/dist/spec-getters/getServerVariableExamples.d.ts.map +1 -0
  116. package/dist/spec-getters/getServerVariableExamples.js +12 -0
  117. package/dist/spec-getters/index.d.ts +1 -0
  118. package/dist/spec-getters/index.d.ts.map +1 -1
  119. package/dist/spec-getters/index.js +1 -0
  120. package/dist/transforms/export-spec.d.ts +68 -0
  121. package/dist/transforms/export-spec.d.ts.map +1 -0
  122. package/dist/transforms/import-spec.d.ts +20 -68
  123. package/dist/transforms/import-spec.d.ts.map +1 -1
  124. package/dist/transforms/import-spec.js +209 -126
  125. package/package.json +43 -37
  126. package/dist/entities/workspace/collection/collection.d.ts +0 -330
  127. package/dist/entities/workspace/collection/collection.d.ts.map +0 -1
  128. package/dist/entities/workspace/collection/index.d.ts +0 -2
  129. package/dist/entities/workspace/collection/index.d.ts.map +0 -1
  130. package/dist/entities/workspace/collection/index.js +0 -1
  131. package/dist/entities/workspace/consts/hot-keys.d.ts.map +0 -1
  132. package/dist/entities/workspace/consts/index.d.ts +0 -2
  133. package/dist/entities/workspace/consts/index.d.ts.map +0 -1
  134. package/dist/entities/workspace/consts/index.js +0 -1
  135. package/dist/entities/workspace/cookie/cookie.d.ts.map +0 -1
  136. package/dist/entities/workspace/cookie/index.d.ts.map +0 -1
  137. package/dist/entities/workspace/cookie/index.js +0 -1
  138. package/dist/entities/workspace/environment/environment.d.ts +0 -55
  139. package/dist/entities/workspace/environment/environment.d.ts.map +0 -1
  140. package/dist/entities/workspace/environment/environment.js +0 -23
  141. package/dist/entities/workspace/environment/index.d.ts.map +0 -1
  142. package/dist/entities/workspace/environment/index.js +0 -1
  143. package/dist/entities/workspace/folder/folder.d.ts +0 -36
  144. package/dist/entities/workspace/folder/folder.d.ts.map +0 -1
  145. package/dist/entities/workspace/folder/folder.js +0 -21
  146. package/dist/entities/workspace/folder/index.d.ts +0 -2
  147. package/dist/entities/workspace/folder/index.d.ts.map +0 -1
  148. package/dist/entities/workspace/folder/index.js +0 -1
  149. package/dist/entities/workspace/security/index.d.ts +0 -3
  150. package/dist/entities/workspace/security/index.d.ts.map +0 -1
  151. package/dist/entities/workspace/security/index.js +0 -2
  152. package/dist/entities/workspace/security/security-requirement.d.ts +0 -13
  153. package/dist/entities/workspace/security/security-requirement.d.ts.map +0 -1
  154. package/dist/entities/workspace/security/security-requirement.js +0 -15
  155. package/dist/entities/workspace/security/security-schemes.d.ts +0 -696
  156. package/dist/entities/workspace/security/security-schemes.d.ts.map +0 -1
  157. package/dist/entities/workspace/security/security-schemes.js +0 -139
  158. package/dist/entities/workspace/server/index.d.ts +0 -2
  159. package/dist/entities/workspace/server/index.d.ts.map +0 -1
  160. package/dist/entities/workspace/server/index.js +0 -1
  161. package/dist/entities/workspace/server/server.d.ts +0 -91
  162. package/dist/entities/workspace/server/server.d.ts.map +0 -1
  163. package/dist/entities/workspace/shared/index.d.ts.map +0 -1
  164. package/dist/entities/workspace/shared/utility.d.ts.map +0 -1
  165. package/dist/entities/workspace/spec/components.d.ts +0 -3
  166. package/dist/entities/workspace/spec/components.d.ts.map +0 -1
  167. package/dist/entities/workspace/spec/index.d.ts +0 -5
  168. package/dist/entities/workspace/spec/index.d.ts.map +0 -1
  169. package/dist/entities/workspace/spec/index.js +0 -2
  170. package/dist/entities/workspace/spec/parameters.d.ts +0 -16
  171. package/dist/entities/workspace/spec/parameters.d.ts.map +0 -1
  172. package/dist/entities/workspace/spec/refs.d.ts +0 -30
  173. package/dist/entities/workspace/spec/refs.d.ts.map +0 -1
  174. package/dist/entities/workspace/spec/refs.js +0 -9
  175. package/dist/entities/workspace/spec/request-examples.d.ts +0 -1573
  176. package/dist/entities/workspace/spec/request-examples.d.ts.map +0 -1
  177. package/dist/entities/workspace/spec/request-examples.js +0 -96
  178. package/dist/entities/workspace/spec/requests.d.ts +0 -181
  179. package/dist/entities/workspace/spec/requests.d.ts.map +0 -1
  180. package/dist/entities/workspace/spec/spec.d.ts +0 -18
  181. package/dist/entities/workspace/spec/spec.d.ts.map +0 -1
  182. package/dist/entities/workspace/spec/spec.js +0 -8
  183. /package/dist/entities/{workspace/cookie → cookie}/index.d.ts +0 -0
  184. /package/dist/entities/{workspace/environment → environment}/index.d.ts +0 -0
  185. /package/dist/entities/{workspace/shared → shared}/index.d.ts +0 -0
  186. /package/dist/entities/{workspace/shared → shared}/index.js +0 -0
  187. /package/dist/entities/{workspace/shared → shared}/utility.d.ts +0 -0
  188. /package/dist/entities/{workspace/shared → shared}/utility.js +0 -0
@@ -0,0 +1,334 @@
1
+ import type { v_0_0_0 } from '../../migrations/v-0.0.0/types.generated';
2
+ /** V-0.0.0 to V-2.1.0 migration */
3
+ export declare const migrate_v_2_1_0: (data: Omit<v_0_0_0.Data, "folders">) => {
4
+ collections: {
5
+ type: "collection";
6
+ openapi: string;
7
+ info: {
8
+ title: string;
9
+ summary?: string | undefined;
10
+ description?: string | undefined;
11
+ termsOfService?: string | undefined;
12
+ contact?: {
13
+ name?: string | undefined;
14
+ url?: string | undefined;
15
+ email?: string | undefined;
16
+ } | undefined;
17
+ license?: {
18
+ name: string;
19
+ identifier?: string | undefined;
20
+ url?: string | undefined;
21
+ } | undefined;
22
+ version: string;
23
+ };
24
+ security: {
25
+ [x: string]: string[];
26
+ }[];
27
+ externalDocs: {
28
+ description: string;
29
+ url: string;
30
+ } | undefined;
31
+ uid: string;
32
+ securitySchemes: string[];
33
+ selectedServerUid: string;
34
+ servers: string[];
35
+ requests: string[];
36
+ tags: string[];
37
+ auth: Record<string, {
38
+ type: "apiKey";
39
+ value: string;
40
+ name: string;
41
+ } | {
42
+ type: "http";
43
+ username: string;
44
+ password: string;
45
+ token: string;
46
+ } | {
47
+ type: "oauth-implicit";
48
+ token: string;
49
+ } | {
50
+ type: "oauth-password";
51
+ username: string;
52
+ password: string;
53
+ token: string;
54
+ clientSecret: string;
55
+ } | {
56
+ type: "oauth-clientCredentials";
57
+ token: string;
58
+ clientSecret: string;
59
+ } | {
60
+ type: "oauth-authorizationCode";
61
+ token: string;
62
+ clientSecret: string;
63
+ }>;
64
+ children: string[];
65
+ }[];
66
+ cookies: v_0_0_0.Cookie[];
67
+ environments: {
68
+ value: string;
69
+ uid: string;
70
+ name: string;
71
+ color: string;
72
+ raw?: string;
73
+ parsed?: {
74
+ key: string;
75
+ value: string;
76
+ }[];
77
+ isDefault?: boolean | undefined;
78
+ }[];
79
+ requestExamples: {
80
+ type: "requestExample";
81
+ uid: string;
82
+ url?: string;
83
+ requestUid: string;
84
+ name: string;
85
+ body: {
86
+ raw?: {
87
+ encoding: "json" | "text" | "html" | "text" | "javascript" | "xml" | "yaml" | "edn";
88
+ value: string;
89
+ };
90
+ formData?: {
91
+ encoding: "form-data" | "urlencoded";
92
+ value: {
93
+ key: string;
94
+ value: string;
95
+ enabled: boolean;
96
+ file?: {
97
+ name: string;
98
+ lastModified: number;
99
+ webkitRelativePath: string;
100
+ size: number;
101
+ type: string;
102
+ arrayBuffer: (...args_0: unknown[]) => Promise<any>;
103
+ slice: (args_0: number | undefined, args_1: number | undefined, args_2: string | undefined, ...args_3: unknown[]) => any;
104
+ stream: (...args_0: unknown[]) => any;
105
+ text: (...args_0: unknown[]) => Promise<string>;
106
+ } | undefined;
107
+ description?: string | undefined;
108
+ refUid?: string | undefined;
109
+ required?: boolean | undefined;
110
+ enum?: string[] | undefined;
111
+ type?: string | undefined;
112
+ format?: string | undefined;
113
+ minimum?: number | undefined;
114
+ maximum?: number | undefined;
115
+ default?: any | undefined;
116
+ nullable?: boolean | undefined;
117
+ }[];
118
+ };
119
+ binary?: any | undefined;
120
+ activeBody: "raw" | "formData" | "binary";
121
+ };
122
+ parameters: {
123
+ path: {
124
+ key: string;
125
+ value: string;
126
+ enabled: boolean;
127
+ file?: any | undefined;
128
+ description?: string | undefined;
129
+ refUid?: string | undefined;
130
+ required?: boolean | undefined;
131
+ enum?: string[] | undefined;
132
+ type?: string | undefined;
133
+ format?: string | undefined;
134
+ minimum?: number | undefined;
135
+ maximum?: number | undefined;
136
+ default?: any | undefined;
137
+ nullable?: boolean | undefined;
138
+ }[];
139
+ query: {
140
+ key: string;
141
+ value: string;
142
+ enabled: boolean;
143
+ file?: any | undefined;
144
+ description?: string | undefined;
145
+ refUid?: string | undefined;
146
+ required?: boolean | undefined;
147
+ enum?: string[] | undefined;
148
+ type?: string | undefined;
149
+ format?: string | undefined;
150
+ minimum?: number | undefined;
151
+ maximum?: number | undefined;
152
+ default?: any | undefined;
153
+ nullable?: boolean | undefined;
154
+ }[];
155
+ headers: {
156
+ key: string;
157
+ value: string;
158
+ enabled: boolean;
159
+ file?: any | undefined;
160
+ description?: string | undefined;
161
+ refUid?: string | undefined;
162
+ required?: boolean | undefined;
163
+ enum?: string[] | undefined;
164
+ type?: string | undefined;
165
+ format?: string | undefined;
166
+ minimum?: number | undefined;
167
+ maximum?: number | undefined;
168
+ default?: any | undefined;
169
+ nullable?: boolean | undefined;
170
+ }[];
171
+ cookies: {
172
+ key: string;
173
+ value: string;
174
+ enabled: boolean;
175
+ file?: any | undefined;
176
+ description?: string | undefined;
177
+ refUid?: string | undefined;
178
+ required?: boolean | undefined;
179
+ enum?: string[] | undefined;
180
+ type?: string | undefined;
181
+ format?: string | undefined;
182
+ minimum?: number | undefined;
183
+ maximum?: number | undefined;
184
+ default?: any | undefined;
185
+ nullable?: boolean | undefined;
186
+ }[];
187
+ };
188
+ auth?: {
189
+ [x: string]: any;
190
+ };
191
+ }[];
192
+ requests: {
193
+ parameters: {
194
+ required: boolean;
195
+ name: string;
196
+ in: "path" | "query" | "header" | "cookie";
197
+ deprecated: boolean;
198
+ description?: string | undefined;
199
+ schema?: unknown;
200
+ content?: unknown;
201
+ style?: "matrix" | "simple" | "form" | "label" | "spaceDelimited" | "pipeDelimited" | "deepObject" | undefined;
202
+ }[];
203
+ type: "request";
204
+ method: "options" | "delete" | "get" | "connect" | "head" | "patch" | "post" | "put" | "trace";
205
+ examples: string[];
206
+ selectedSecuritySchemeUids: string[];
207
+ selectedServerUid: string;
208
+ servers: never[];
209
+ path: string;
210
+ uid: string;
211
+ ref?: {
212
+ path: string;
213
+ collectionRef?: string | undefined;
214
+ isExternal: boolean;
215
+ } | null;
216
+ tags?: string[] | undefined;
217
+ summary?: string | undefined;
218
+ description?: string | undefined;
219
+ operationId?: string | undefined;
220
+ security?: {
221
+ [x: string]: string[];
222
+ }[] | undefined;
223
+ securitySchemeUids?: string[];
224
+ requestBody?: any | undefined;
225
+ childUids?: string[];
226
+ history?: any[];
227
+ }[];
228
+ securitySchemes: ({
229
+ nameKey: string;
230
+ 'x-scalar-client-id': string;
231
+ flow: {
232
+ type: "implicit";
233
+ refreshUrl: string;
234
+ scopes: Map<string, string | undefined> | Record<string, string | undefined> | {};
235
+ selectedScopes: string[];
236
+ authorizationUrl: string;
237
+ 'x-scalar-redirect-uri': string;
238
+ } | {
239
+ type: "password";
240
+ refreshUrl: string;
241
+ scopes: Map<string, string | undefined> | Record<string, string | undefined> | {};
242
+ selectedScopes: string[];
243
+ tokenUrl: string;
244
+ } | {
245
+ type: "clientCredentials";
246
+ refreshUrl: string;
247
+ scopes: Map<string, string | undefined> | Record<string, string | undefined> | {};
248
+ selectedScopes: string[];
249
+ tokenUrl: string;
250
+ } | {
251
+ type: "authorizationCode";
252
+ refreshUrl: string;
253
+ scopes: Map<string, string | undefined> | Record<string, string | undefined> | {};
254
+ selectedScopes: string[];
255
+ authorizationUrl: string;
256
+ 'x-scalar-redirect-uri': string;
257
+ tokenUrl: string;
258
+ };
259
+ uid: string;
260
+ description?: string | undefined;
261
+ type: "oauth2";
262
+ clientId?: string;
263
+ } | {
264
+ nameKey: string;
265
+ uid: string;
266
+ description?: string | undefined;
267
+ type: "apiKey";
268
+ name: string;
269
+ in: "query" | "header" | "cookie";
270
+ value?: string;
271
+ } | {
272
+ nameKey: string;
273
+ uid: string;
274
+ description?: string | undefined;
275
+ type: "http";
276
+ scheme: "basic" | "bearer";
277
+ bearerFormat: "JWT" | string;
278
+ value?: string;
279
+ secondValue?: string;
280
+ } | {
281
+ nameKey: string;
282
+ uid: string;
283
+ description?: string | undefined;
284
+ type: "openIdConnect";
285
+ openIdConnectUrl: string;
286
+ })[];
287
+ servers: {
288
+ variables: {
289
+ [x: string]: {
290
+ uid?: string;
291
+ enum?: [string, ...string[]] | undefined;
292
+ default?: string;
293
+ description?: string | undefined;
294
+ value?: string | undefined;
295
+ };
296
+ };
297
+ uid: string;
298
+ url: string;
299
+ description?: string | undefined;
300
+ }[];
301
+ tags: {
302
+ type: "tag";
303
+ uid: string;
304
+ name: string;
305
+ description: string | undefined;
306
+ children: string[];
307
+ 'x-scalar-children': never[];
308
+ }[];
309
+ workspaces: {
310
+ description: string;
311
+ cookies: string[];
312
+ collections: string[];
313
+ environments: string[];
314
+ uid: string;
315
+ name: string;
316
+ isReadOnly: boolean;
317
+ collectionUids?: string[];
318
+ environmentUids?: string[];
319
+ hotKeyConfig: {
320
+ modifiers: ("Meta" | "Control" | "Shift" | "Alt" | "default")[];
321
+ hotKeys?: {
322
+ [x: string]: {
323
+ modifiers?: ("Meta" | "Control" | "Shift" | "Alt" | "default")[] | undefined;
324
+ event: "closeModal" | "navigateSearchResultsDown" | "selectSearchResult" | "navigateSearchResultsUp" | "openCommandPalette" | "toggleSidebar" | "addTopNav" | "closeTopNav" | "navigateTopNavLeft" | "navigateTopNavRight" | "focusAddressBar" | "jumpToTab" | "jumpToLastTab" | "focusRequestSearch";
325
+ };
326
+ } | undefined;
327
+ } | undefined;
328
+ activeEnvironmentId: string;
329
+ cookieUids?: string[];
330
+ proxyUrl?: string | undefined;
331
+ themeId: "alternate" | "default" | "moon" | "purple" | "solarized" | "bluePlanet" | "deepSpace" | "saturn" | "kepler" | "mars" | "none";
332
+ }[];
333
+ };
334
+ //# sourceMappingURL=migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/migrations/v-2.1.0/migration.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AAInE,mCAAmC;AACnC,eAAO,MAAM,eAAe,SAAU,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;;;;;;;;;;oBAG/C,CAAC;mBAIjB,CADJ;qBAA4C,CAAC;;;;0BAKlC,CAAC;mBACR,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAiDsD,CAAC;;;;oBASlD,CAAC;;;;;;wBAIF,CAAR;;;;;;sCAM2B,GAAG;oHAMoB,GAAsB;iCAGhE,GAAC;+BACS,GAAG;;+BAKb,CAAC;0BAED,CAAC;4BAIY,CAAA;wBAAoC,CAAC;wBAAqC,CAAC;0BACpF,CAAC;2BAAsC,CAAC;2BAGvC,CAAC;2BAAsC,CAAC;4BACxC,CAAC;;;kBACR,CAAD;;;;;;;;oBAQD,CAAC;2BAAqC,CAAC;sBAElB,CAAC;wBACA,CAAC;oBAAkC,CAAC;oBAG1D,CAAF;sBAAmC,CAAC;uBAE5B,CAAC;uBAAoC,CAAC;uBAChB,CAAC;wBACtB,CAAC;;;;;;oBAOW,CAAC;2BACN,CAAC;sBAAmC,CAAC;wBACpC,CAAC;oBACN,CAAC;oBACP,CAAC;sBAEH,CAAF;uBAAoC,CAAC;uBAAoC,CAAC;uBAC3C,CAAC;wBACP,CAAC;;;;;;oBAOpB,CAAC;2BAEP,CAAD;sBACQ,CAAC;wBAGV,CAAF;oBAAkC,CAAC;oBAC/B,CAAH;sBAGO,CAAL;uBACQ,CAAC;uBAGT,CAAC;uBACsB,CAAC;wBAAkC,CAAC;;;;;;oBAGxB,CAAC;2BACb,CAAC;sBAChB,CAAC;wBAAqC,CAAC;oBACnB,CAAC;oBAClB,CAAC;sBAEY,CAAA;uBAChB,CAAC;uBACL,CAAC;uBACJ,CAAA;wBAAkC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAejC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAkI0oB,CAAC;;6BAA4E,CAAC;;;;;;;;;;CAD9tB,CAAA"}
@@ -0,0 +1,249 @@
1
+ import { parseLocalStorage } from '../local-storage.js';
2
+ import { camelToTitleWords, capitalize } from '../../helpers/string.js';
3
+
4
+ /** V-0.0.0 to V-2.1.0 migration */
5
+ const migrate_v_2_1_0 = (data) => {
6
+ console.info('Performing data migration v-0.0.0 to v-2.1.0');
7
+ // Augment the previous data
8
+ const oldData = {
9
+ ...data,
10
+ // @ts-expect-error Tags used to be called folders
11
+ folders: parseLocalStorage('folder'),
12
+ };
13
+ /** To grab requests and tags we must traverse children, also for security */
14
+ const flattenChildren = (childUids) => childUids.reduce((prev, uid) => {
15
+ const request = oldData.requests[uid];
16
+ // Request
17
+ if (request) {
18
+ prev.requestUids.add(uid);
19
+ // Security
20
+ request.securitySchemeUids?.forEach((s) => prev.authUids.add(s));
21
+ }
22
+ // Folder -> tag
23
+ else if (oldData.folders[uid]) {
24
+ const { requestUids, tagUids, authUids } = flattenChildren(oldData.folders[uid].childUids ?? []);
25
+ prev.tagUids.add(uid);
26
+ requestUids.forEach((r) => prev.requestUids.add(r));
27
+ tagUids.forEach((t) => prev.tagUids.add(t));
28
+ authUids.forEach((a) => prev.authUids.add(a));
29
+ }
30
+ return prev;
31
+ }, {
32
+ requestUids: new Set(),
33
+ tagUids: new Set(),
34
+ authUids: new Set(),
35
+ });
36
+ /** Migrate values from old securitySchemes to the new auth */
37
+ const migrateAuth = (scheme) => {
38
+ if (scheme.type === 'apiKey')
39
+ // ApiKey
40
+ return { type: 'apiKey', name: scheme.name, value: scheme.value ?? '' };
41
+ // HTTP
42
+ if (scheme.type === 'http')
43
+ return {
44
+ type: 'http',
45
+ username: scheme.value ?? '',
46
+ password: scheme.secondValue ?? '',
47
+ token: scheme.value ?? '',
48
+ };
49
+ // Oauth2 Implicit
50
+ if (scheme.type === 'oauth2' && scheme.flow.type === 'implicit')
51
+ return {
52
+ type: 'oauth-implicit',
53
+ token: scheme.flow.token ?? '',
54
+ };
55
+ // Oauth2 Password
56
+ if (scheme.type === 'oauth2' && scheme.flow.type === 'password')
57
+ return {
58
+ type: 'oauth-password',
59
+ token: scheme.flow.token ?? '',
60
+ username: scheme.flow.value ?? '',
61
+ password: scheme.flow.secondValue ?? '',
62
+ clientSecret: scheme.flow.clientSecret ?? '',
63
+ };
64
+ // Oauth2 clientCredentials
65
+ if (scheme.type === 'oauth2' && scheme.flow.type === 'clientCredentials')
66
+ return {
67
+ type: 'oauth-clientCredentials',
68
+ token: scheme.flow.token ?? '',
69
+ clientSecret: scheme.flow.clientSecret ?? '',
70
+ };
71
+ // Oauth2 Authorization Code
72
+ if (scheme.type === 'oauth2' && scheme.flow.type === 'authorizationCode')
73
+ return {
74
+ type: 'oauth-authorizationCode',
75
+ token: scheme.flow.token ?? '',
76
+ clientSecret: scheme.flow.clientSecret ?? '',
77
+ };
78
+ // Default - should not get hit
79
+ return {
80
+ type: 'apiKey',
81
+ name: '',
82
+ value: '',
83
+ };
84
+ };
85
+ /** This is needed due to our previous data being poluted, we will only allow auth on a requst which is in the spec */
86
+ const requestSecurityDict = {};
87
+ // Collections
88
+ const collections = Object.values(oldData.collections ?? {}).map((c) => {
89
+ const { requestUids, tagUids, authUids } = flattenChildren(c.childUids ?? []);
90
+ // Ensure we got unique uids
91
+ const securitySchemesSet = new Set([
92
+ ...authUids,
93
+ ...Object.values(c.securitySchemeDict ?? {}),
94
+ ]);
95
+ const securitySchemes = [...securitySchemesSet];
96
+ // Add this auth to each request
97
+ requestUids.forEach((r) => (requestSecurityDict[r] = securitySchemes));
98
+ // Migrate auth
99
+ const auth = securitySchemes.reduce((prev, uid) => {
100
+ const scheme = oldData.securitySchemes[uid];
101
+ if (scheme.uid)
102
+ prev[uid] = migrateAuth(scheme);
103
+ return prev;
104
+ }, {});
105
+ return {
106
+ type: 'collection',
107
+ openapi: c.spec?.openapi || '3.1.0',
108
+ info: c.spec?.info || { title: 'OpenAPI Spec', version: '0.0.1' },
109
+ security: c.spec?.security || [],
110
+ externalDocs: c.spec?.externalDocs,
111
+ uid: c.uid,
112
+ securitySchemes,
113
+ selectedServerUid: c.selectedServerUid || c.spec?.serverUids?.[0] || '',
114
+ servers: c.spec?.serverUids || [],
115
+ requests: [...requestUids],
116
+ tags: [...tagUids],
117
+ auth,
118
+ children: c.childUids || [],
119
+ };
120
+ });
121
+ // Cookies
122
+ const cookies = Object.values(oldData.cookies ?? {});
123
+ // Environments
124
+ const environments = Object.values(oldData.environments ?? {}).map((e) => ({
125
+ ...e,
126
+ value: e.raw ?? '',
127
+ }));
128
+ // Requests
129
+ const requests = Object.values(oldData.requests ?? {}).map((r) => {
130
+ // Convert parameters
131
+ const parameters = [
132
+ ...Object.values(r.parameters?.path ?? {}),
133
+ ...Object.values(r.parameters?.query ?? {}),
134
+ ...Object.values(r.parameters?.headers ?? {}),
135
+ ...Object.values(r.parameters?.cookies ?? {}),
136
+ ].filter((p) => p);
137
+ // Ensure this request can access these schemes
138
+ const selectedSecuritySchemeUids = (r.selectedSecuritySchemeUids || []).filter((s) => requestSecurityDict[r.uid].includes(s));
139
+ return {
140
+ ...r,
141
+ parameters,
142
+ type: 'request',
143
+ method: r.method?.toLowerCase() ?? 'get',
144
+ examples: r.childUids || [],
145
+ selectedSecuritySchemeUids,
146
+ selectedServerUid: '',
147
+ servers: [],
148
+ };
149
+ });
150
+ // Request Examples
151
+ const requestExamples = Object.values(oldData.requestExamples ?? {}).map((e) => ({
152
+ ...e,
153
+ type: 'requestExample',
154
+ }));
155
+ /** Specifically handle each oauth2 flow */
156
+ const migrateFlow = (flow) => {
157
+ const base = {
158
+ refreshUrl: flow.refreshUrl || '',
159
+ selectedScopes: flow.selectedScopes || [],
160
+ scopes: flow.scopes || {},
161
+ };
162
+ if (flow.type === 'implicit')
163
+ return {
164
+ ...flow,
165
+ ...base,
166
+ 'type': 'implicit',
167
+ 'x-scalar-redirect-uri': ('redirectUri' in flow ? flow.redirectUri : '') || '',
168
+ };
169
+ if (flow.type === 'password')
170
+ return {
171
+ ...flow,
172
+ ...base,
173
+ tokenUrl: flow.tokenUrl || '',
174
+ };
175
+ if (flow.type === 'clientCredentials')
176
+ return {
177
+ ...flow,
178
+ ...base,
179
+ tokenUrl: flow.tokenUrl || '',
180
+ };
181
+ return {
182
+ ...flow,
183
+ ...base,
184
+ 'x-scalar-redirect-uri': ('redirectUri' in flow ? flow.redirectUri : '') || '',
185
+ 'authorizationUrl': flow.authorizationUrl || '',
186
+ 'tokenUrl': flow.tokenUrl || '',
187
+ };
188
+ };
189
+ /** Generate a nameKey based on the type of oauth */
190
+ const getNameKey = (scheme) => {
191
+ switch (scheme?.type) {
192
+ case 'apiKey':
193
+ return `${capitalize(scheme.in)}`;
194
+ case 'http': {
195
+ return `${capitalize(scheme.scheme)} Authentication`;
196
+ }
197
+ case 'oauth2':
198
+ return camelToTitleWords(scheme.flow.type);
199
+ case 'openIdConnect':
200
+ return `Open ID Connect`;
201
+ default:
202
+ return 'None';
203
+ }
204
+ };
205
+ // Security Schemes
206
+ const securitySchemes = Object.values(oldData.securitySchemes ?? {}).map((s) => s.type === 'oauth2'
207
+ ? {
208
+ ...s,
209
+ 'nameKey': getNameKey(s),
210
+ 'x-scalar-client-id': s.clientId || '',
211
+ 'flow': migrateFlow(s.flow),
212
+ }
213
+ : { ...s, nameKey: getNameKey(s) });
214
+ // Servers
215
+ const servers = Object.values(oldData.servers ?? {}).map((s) => ({
216
+ ...s,
217
+ variables: s.variables ?? {},
218
+ }));
219
+ // Tags
220
+ const tags = Object.values(oldData.folders ?? {}).map((f) => ({
221
+ 'type': 'tag',
222
+ 'uid': f.uid,
223
+ 'name': f.name || 'unknownTag',
224
+ 'description': f.description,
225
+ 'children': f.childUids || [],
226
+ 'x-scalar-children': [],
227
+ }));
228
+ // Workspaces
229
+ const workspaces = Object.values(oldData.workspaces ?? {}).map((w) => ({
230
+ ...w,
231
+ description: w.description ?? 'Basic Scalar Workspace',
232
+ cookies: w.cookieUids || [],
233
+ collections: w.collectionUids || [],
234
+ environments: w.environmentUids || [],
235
+ }));
236
+ return {
237
+ collections,
238
+ cookies,
239
+ environments,
240
+ requestExamples,
241
+ requests,
242
+ securitySchemes,
243
+ servers,
244
+ tags,
245
+ workspaces,
246
+ };
247
+ };
248
+
249
+ export { migrate_v_2_1_0 };
@@ -0,0 +1,42 @@
1
+ import { Cookie as Ck } from '../../entities/cookie/index.js';
2
+ import { Environment as E } from '../../entities/environment/index.js';
3
+ import { Collection as Co, Request as R, RequestExample as RE, Server as S, SecurityScheme as SS, Tag as T } from '../../entities/spec/index.js';
4
+ import { Workspace as W } from '../../entities/workspace/index.js';
5
+ /**
6
+ * TODO: These types are no longer generated, this was manually grabbed but we must generate them before the next
7
+ * migration else we will have issues!
8
+ */
9
+ export declare namespace v_2_1_0 {
10
+ type Cookie = Ck;
11
+ type Environment = E;
12
+ type Collection = Co;
13
+ type Request = R;
14
+ type RequestExample = RE;
15
+ type SecurityScheme = SS;
16
+ type Server = S;
17
+ type Tag = T;
18
+ type Workspace = W;
19
+ type DataRecord = {
20
+ collections: Record<string, Collection>;
21
+ cookies: Record<string, Cookie>;
22
+ environments: Record<string, Environment>;
23
+ requestExamples: Record<string, RequestExample>;
24
+ requests: Record<string, Request>;
25
+ securitySchemes: Record<string, SecurityScheme>;
26
+ servers: Record<string, Server>;
27
+ tags: Record<string, Tag>;
28
+ workspaces: Record<string, Workspace>;
29
+ };
30
+ type DataArray = {
31
+ collections: Collection[];
32
+ cookies: Cookie[];
33
+ environments: Environment[];
34
+ requestExamples: RequestExample[];
35
+ requests: Request[];
36
+ securitySchemes: SecurityScheme[];
37
+ servers: Server[];
38
+ tags: Tag[];
39
+ workspaces: Workspace[];
40
+ };
41
+ }
42
+ //# sourceMappingURL=types.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.generated.d.ts","sourceRoot":"","sources":["../../../src/migrations/v-2.1.0/types.generated.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,IAAI,CAAC,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EACL,UAAU,IAAI,EAAE,EAChB,OAAO,IAAI,CAAC,EACZ,cAAc,IAAI,EAAE,EACpB,MAAM,IAAI,CAAC,EACX,cAAc,IAAI,EAAE,EACpB,GAAG,IAAI,CAAC,EACT,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,SAAS,IAAI,CAAC,EAAE,MAAM,sBAAsB,CAAA;AAErD;;;GAGG;AACH,yBAAiB,OAAO,CAAC;IACvB,KAAY,MAAM,GAAG,EAAE,CAAA;IACvB,KAAY,WAAW,GAAG,CAAC,CAAA;IAC3B,KAAY,UAAU,GAAG,EAAE,CAAA;IAC3B,KAAY,OAAO,GAAG,CAAC,CAAA;IACvB,KAAY,cAAc,GAAG,EAAE,CAAA;IAC/B,KAAY,cAAc,GAAG,EAAE,CAAA;IAC/B,KAAY,MAAM,GAAG,CAAC,CAAA;IACtB,KAAY,GAAG,GAAG,CAAC,CAAA;IACnB,KAAY,SAAS,GAAG,CAAC,CAAA;IAEzB,KAAY,UAAU,GAAG;QACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QACzC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QAC/C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACjC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QAC/C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;KACtC,CAAA;IAED,KAAY,SAAS,GAAG;QACtB,WAAW,EAAE,UAAU,EAAE,CAAA;QACzB,OAAO,EAAE,MAAM,EAAE,CAAA;QACjB,YAAY,EAAE,WAAW,EAAE,CAAA;QAC3B,eAAe,EAAE,cAAc,EAAE,CAAA;QACjC,QAAQ,EAAE,OAAO,EAAE,CAAA;QACnB,eAAe,EAAE,cAAc,EAAE,CAAA;QACjC,OAAO,EAAE,MAAM,EAAE,CAAA;QACjB,IAAI,EAAE,GAAG,EAAE,CAAA;QACX,UAAU,EAAE,SAAS,EAAE,CAAA;KACxB,CAAA;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getExampleFromSchema.d.ts","sourceRoot":"","sources":["../../src/spec-getters/getExampleFromSchema.ts"],"names":[],"mappings":"AAsCA;;GAEG;AACH,eAAO,MAAM,oBAAoB,WACvB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YACjB;IACR;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC/B;;OAEG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAA;CACzC,UACM,MAAM,iBACE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAC3B,MAAM,KACZ,GAiQF,CAAA"}
1
+ {"version":3,"file":"getExampleFromSchema.d.ts","sourceRoot":"","sources":["../../src/spec-getters/getExampleFromSchema.ts"],"names":[],"mappings":"AAyCA;;GAEG;AACH,eAAO,MAAM,oBAAoB,WACvB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YACjB;IACR;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC/B;;OAEG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAA;CACzC,UACM,MAAM,iBACE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAC3B,MAAM,KACZ,GA4QF,CAAA"}