@scalar/oas-utils 0.2.140 → 0.2.141

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 (280) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/entities/cookie/cookie.js +14 -13
  3. package/dist/entities/cookie/cookie.js.map +7 -0
  4. package/dist/entities/cookie/index.d.ts +1 -1
  5. package/dist/entities/cookie/index.d.ts.map +1 -1
  6. package/dist/entities/cookie/index.js +5 -1
  7. package/dist/entities/cookie/index.js.map +7 -0
  8. package/dist/entities/environment/environment.js +10 -9
  9. package/dist/entities/environment/environment.js.map +7 -0
  10. package/dist/entities/environment/index.d.ts +1 -1
  11. package/dist/entities/environment/index.d.ts.map +1 -1
  12. package/dist/entities/environment/index.js +5 -1
  13. package/dist/entities/environment/index.js.map +7 -0
  14. package/dist/entities/hotkeys/hotkeys.js +109 -116
  15. package/dist/entities/hotkeys/hotkeys.js.map +7 -0
  16. package/dist/entities/hotkeys/index.d.ts +1 -1
  17. package/dist/entities/hotkeys/index.d.ts.map +1 -1
  18. package/dist/entities/hotkeys/index.js +6 -1
  19. package/dist/entities/hotkeys/index.js.map +7 -0
  20. package/dist/entities/shared/index.d.ts +1 -1
  21. package/dist/entities/shared/index.d.ts.map +1 -1
  22. package/dist/entities/shared/index.js +7 -1
  23. package/dist/entities/shared/index.js.map +7 -0
  24. package/dist/entities/shared/utility.js +9 -12
  25. package/dist/entities/shared/utility.js.map +7 -0
  26. package/dist/entities/spec/collection.d.ts.map +1 -1
  27. package/dist/entities/spec/collection.js +91 -94
  28. package/dist/entities/spec/collection.js.map +7 -0
  29. package/dist/entities/spec/index.d.ts +8 -8
  30. package/dist/entities/spec/index.d.ts.map +1 -1
  31. package/dist/entities/spec/index.js +59 -9
  32. package/dist/entities/spec/index.js.map +7 -0
  33. package/dist/entities/spec/operation.d.ts +1 -1
  34. package/dist/entities/spec/operation.d.ts.map +1 -1
  35. package/dist/entities/spec/operation.js +5 -8
  36. package/dist/entities/spec/operation.js.map +7 -0
  37. package/dist/entities/spec/operation.test.js +43 -0
  38. package/dist/entities/spec/operation.test.js.map +7 -0
  39. package/dist/entities/spec/parameters.d.ts +1 -1
  40. package/dist/entities/spec/parameters.d.ts.map +1 -1
  41. package/dist/entities/spec/parameters.js +40 -38
  42. package/dist/entities/spec/parameters.js.map +7 -0
  43. package/dist/entities/spec/parameters.test.js +71 -0
  44. package/dist/entities/spec/parameters.test.js.map +7 -0
  45. package/dist/entities/spec/request-example.test.js +637 -0
  46. package/dist/entities/spec/request-example.test.js.map +7 -0
  47. package/dist/entities/spec/request-examples.d.ts +3 -3
  48. package/dist/entities/spec/request-examples.d.ts.map +1 -1
  49. package/dist/entities/spec/request-examples.js +323 -338
  50. package/dist/entities/spec/request-examples.js.map +7 -0
  51. package/dist/entities/spec/requests.d.ts +6 -8
  52. package/dist/entities/spec/requests.d.ts.map +1 -1
  53. package/dist/entities/spec/requests.js +80 -101
  54. package/dist/entities/spec/requests.js.map +7 -0
  55. package/dist/entities/spec/server.js +47 -63
  56. package/dist/entities/spec/server.js.map +7 -0
  57. package/dist/entities/spec/server.test.js +120 -0
  58. package/dist/entities/spec/server.test.js.map +7 -0
  59. package/dist/entities/spec/spec-objects.d.ts.map +1 -1
  60. package/dist/entities/spec/spec-objects.js +77 -121
  61. package/dist/entities/spec/spec-objects.js.map +7 -0
  62. package/dist/entities/spec/spec-objects.test.js +205 -0
  63. package/dist/entities/spec/spec-objects.test.js.map +7 -0
  64. package/dist/entities/spec/x-scalar-environments.js +21 -18
  65. package/dist/entities/spec/x-scalar-environments.js.map +7 -0
  66. package/dist/entities/spec/x-scalar-environments.test.js +11 -0
  67. package/dist/entities/spec/x-scalar-environments.test.js.map +7 -0
  68. package/dist/entities/spec/x-scalar-secrets.js +8 -6
  69. package/dist/entities/spec/x-scalar-secrets.js.map +7 -0
  70. package/dist/entities/spec/x-scalar-secrets.test.js +11 -0
  71. package/dist/entities/spec/x-scalar-secrets.test.js.map +7 -0
  72. package/dist/entities/workspace/index.d.ts +1 -1
  73. package/dist/entities/workspace/index.d.ts.map +1 -1
  74. package/dist/entities/workspace/index.js +7 -1
  75. package/dist/entities/workspace/index.js.map +7 -0
  76. package/dist/entities/workspace/workspace.js +46 -50
  77. package/dist/entities/workspace/workspace.js.map +7 -0
  78. package/dist/helpers/create-hash.js +15 -18
  79. package/dist/helpers/create-hash.js.map +7 -0
  80. package/dist/helpers/ensure-protocol.js +9 -10
  81. package/dist/helpers/ensure-protocol.js.map +7 -0
  82. package/dist/helpers/ensure-protocol.test.js +70 -0
  83. package/dist/helpers/ensure-protocol.test.js.map +7 -0
  84. package/dist/helpers/fetch-document.js +24 -32
  85. package/dist/helpers/fetch-document.js.map +7 -0
  86. package/dist/helpers/fetch-document.test.js +63 -0
  87. package/dist/helpers/fetch-document.test.js.map +7 -0
  88. package/dist/helpers/fetch-with-proxy-fallback.js +20 -28
  89. package/dist/helpers/fetch-with-proxy-fallback.js.map +7 -0
  90. package/dist/helpers/find-variables.d.ts +1 -1
  91. package/dist/helpers/find-variables.d.ts.map +1 -1
  92. package/dist/helpers/find-variables.js +6 -8
  93. package/dist/helpers/find-variables.js.map +7 -0
  94. package/dist/helpers/find-variables.test.js +20 -0
  95. package/dist/helpers/find-variables.test.js.map +7 -0
  96. package/dist/helpers/http-methods.d.ts +1 -1
  97. package/dist/helpers/http-methods.d.ts.map +1 -1
  98. package/dist/helpers/http-methods.js +60 -66
  99. package/dist/helpers/http-methods.js.map +7 -0
  100. package/dist/helpers/http-status-codes.js +319 -317
  101. package/dist/helpers/http-status-codes.js.map +7 -0
  102. package/dist/helpers/index.d.ts +27 -27
  103. package/dist/helpers/index.d.ts.map +1 -1
  104. package/dist/helpers/index.js +73 -27
  105. package/dist/helpers/index.js.map +7 -0
  106. package/dist/helpers/is-defined.js +5 -14
  107. package/dist/helpers/is-defined.js.map +7 -0
  108. package/dist/helpers/is-defined.test.js +37 -0
  109. package/dist/helpers/is-defined.test.js.map +7 -0
  110. package/dist/helpers/is-local-url.js +11 -16
  111. package/dist/helpers/is-local-url.js.map +7 -0
  112. package/dist/helpers/is-local-url.test.js +40 -0
  113. package/dist/helpers/is-local-url.test.js.map +7 -0
  114. package/dist/helpers/is-valid-url.js +9 -18
  115. package/dist/helpers/is-valid-url.js.map +7 -0
  116. package/dist/helpers/is-valid-url.test.js +17 -0
  117. package/dist/helpers/is-valid-url.test.js.map +7 -0
  118. package/dist/helpers/iterate-title.js +11 -15
  119. package/dist/helpers/iterate-title.js.map +7 -0
  120. package/dist/helpers/json2xml.js +40 -47
  121. package/dist/helpers/json2xml.js.map +7 -0
  122. package/dist/helpers/json2xml.test.js +19 -0
  123. package/dist/helpers/json2xml.test.js.map +7 -0
  124. package/dist/helpers/local-storage.js +13 -15
  125. package/dist/helpers/local-storage.js.map +7 -0
  126. package/dist/helpers/make-url-absolute.js +11 -17
  127. package/dist/helpers/make-url-absolute.js.map +7 -0
  128. package/dist/helpers/make-url-absolute.test.js +61 -0
  129. package/dist/helpers/make-url-absolute.test.js.map +7 -0
  130. package/dist/helpers/merge-urls.js +50 -75
  131. package/dist/helpers/merge-urls.js.map +7 -0
  132. package/dist/helpers/merge-urls.test.js +339 -0
  133. package/dist/helpers/merge-urls.test.js.map +7 -0
  134. package/dist/helpers/normalize-mime-type-object.js +21 -31
  135. package/dist/helpers/normalize-mime-type-object.js.map +7 -0
  136. package/dist/helpers/normalize-mime-type-object.test.js +53 -0
  137. package/dist/helpers/normalize-mime-type-object.test.js.map +7 -0
  138. package/dist/helpers/normalize-mime-type.js +8 -18
  139. package/dist/helpers/normalize-mime-type.js.map +7 -0
  140. package/dist/helpers/normalize-mime-type.test.js +33 -0
  141. package/dist/helpers/normalize-mime-type.test.js.map +7 -0
  142. package/dist/helpers/object.js +12 -18
  143. package/dist/helpers/object.js.map +7 -0
  144. package/dist/helpers/omit-undefined-values.js +17 -19
  145. package/dist/helpers/omit-undefined-values.js.map +7 -0
  146. package/dist/helpers/omit-undefined-values.test.js +89 -0
  147. package/dist/helpers/omit-undefined-values.test.js.map +7 -0
  148. package/dist/helpers/parse.js +71 -83
  149. package/dist/helpers/parse.js.map +7 -0
  150. package/dist/helpers/parse.test.js +45 -0
  151. package/dist/helpers/parse.test.js.map +7 -0
  152. package/dist/helpers/pretty-print-json.js +31 -35
  153. package/dist/helpers/pretty-print-json.js.map +7 -0
  154. package/dist/helpers/pretty-print-json.test.js +28 -0
  155. package/dist/helpers/pretty-print-json.test.js.map +7 -0
  156. package/dist/helpers/redirect-to-proxy.js +46 -83
  157. package/dist/helpers/redirect-to-proxy.js.map +7 -0
  158. package/dist/helpers/redirect-to-proxy.test.js +54 -0
  159. package/dist/helpers/redirect-to-proxy.test.js.map +7 -0
  160. package/dist/helpers/regex-helpers.js +11 -9
  161. package/dist/helpers/regex-helpers.js.map +7 -0
  162. package/dist/helpers/regex-helpers.test.js +154 -0
  163. package/dist/helpers/regex-helpers.test.js.map +7 -0
  164. package/dist/helpers/replace-variables.js +13 -16
  165. package/dist/helpers/replace-variables.js.map +7 -0
  166. package/dist/helpers/replace-variables.test.js +30 -0
  167. package/dist/helpers/replace-variables.test.js.map +7 -0
  168. package/dist/helpers/schema-model.js +15 -14
  169. package/dist/helpers/schema-model.js.map +7 -0
  170. package/dist/helpers/security/get-schemes.d.ts +1 -1
  171. package/dist/helpers/security/get-schemes.d.ts.map +1 -1
  172. package/dist/helpers/security/get-schemes.js +7 -9
  173. package/dist/helpers/security/get-schemes.js.map +7 -0
  174. package/dist/helpers/security/get-schemes.test.js +71 -0
  175. package/dist/helpers/security/get-schemes.test.js.map +7 -0
  176. package/dist/helpers/security/has-token.js +18 -19
  177. package/dist/helpers/security/has-token.js.map +7 -0
  178. package/dist/helpers/security/has-token.test.js +157 -0
  179. package/dist/helpers/security/has-token.test.js.map +7 -0
  180. package/dist/helpers/security/index.d.ts +2 -2
  181. package/dist/helpers/security/index.d.ts.map +1 -1
  182. package/dist/helpers/security/index.js +7 -2
  183. package/dist/helpers/security/index.js.map +7 -0
  184. package/dist/helpers/should-ignore-entity.d.ts +2 -2
  185. package/dist/helpers/should-ignore-entity.d.ts.map +1 -1
  186. package/dist/helpers/should-ignore-entity.js +5 -6
  187. package/dist/helpers/should-ignore-entity.js.map +7 -0
  188. package/dist/helpers/ssr-state.js +6 -6
  189. package/dist/helpers/ssr-state.js.map +7 -0
  190. package/dist/helpers/string.js +6 -18
  191. package/dist/helpers/string.js.map +7 -0
  192. package/dist/migrations/data-version.js +7 -17
  193. package/dist/migrations/data-version.js.map +7 -0
  194. package/dist/migrations/generate-types.js +56 -0
  195. package/dist/migrations/generate-types.js.map +7 -0
  196. package/dist/migrations/index.d.ts +3 -3
  197. package/dist/migrations/index.d.ts.map +1 -1
  198. package/dist/migrations/index.js +10 -3
  199. package/dist/migrations/index.js.map +7 -0
  200. package/dist/migrations/local-storage.d.ts +1 -1
  201. package/dist/migrations/local-storage.d.ts.map +1 -1
  202. package/dist/migrations/local-storage.js +27 -32
  203. package/dist/migrations/local-storage.js.map +7 -0
  204. package/dist/migrations/migrator.d.ts +1 -1
  205. package/dist/migrations/migrator.d.ts.map +1 -1
  206. package/dist/migrations/migrator.js +51 -58
  207. package/dist/migrations/migrator.js.map +7 -0
  208. package/dist/migrations/semver.js +23 -25
  209. package/dist/migrations/semver.js.map +7 -0
  210. package/dist/migrations/semver.test.js +21 -0
  211. package/dist/migrations/semver.test.js.map +7 -0
  212. package/dist/migrations/v-0.0.0/types.generated.js +1 -0
  213. package/dist/migrations/v-0.0.0/types.generated.js.map +7 -0
  214. package/dist/migrations/v-2.1.0/migration.d.ts +2 -2
  215. package/dist/migrations/v-2.1.0/migration.d.ts.map +1 -1
  216. package/dist/migrations/v-2.1.0/migration.js +256 -273
  217. package/dist/migrations/v-2.1.0/migration.js.map +7 -0
  218. package/dist/migrations/v-2.1.0/types.generated.js +1 -0
  219. package/dist/migrations/v-2.1.0/types.generated.js.map +7 -0
  220. package/dist/migrations/v-2.2.0/migration.d.ts +2 -2
  221. package/dist/migrations/v-2.2.0/migration.d.ts.map +1 -1
  222. package/dist/migrations/v-2.2.0/migration.js +95 -100
  223. package/dist/migrations/v-2.2.0/migration.js.map +7 -0
  224. package/dist/migrations/v-2.2.0/types.generated.js +1 -0
  225. package/dist/migrations/v-2.2.0/types.generated.js.map +7 -0
  226. package/dist/migrations/v-2.3.0/migration.d.ts +2 -2
  227. package/dist/migrations/v-2.3.0/migration.d.ts.map +1 -1
  228. package/dist/migrations/v-2.3.0/migration.js +47 -46
  229. package/dist/migrations/v-2.3.0/migration.js.map +7 -0
  230. package/dist/migrations/v-2.3.0/types.generated.js +1 -0
  231. package/dist/migrations/v-2.3.0/types.generated.js.map +7 -0
  232. package/dist/migrations/v-2.4.0/migration.d.ts +2 -2
  233. package/dist/migrations/v-2.4.0/migration.d.ts.map +1 -1
  234. package/dist/migrations/v-2.4.0/migration.js +24 -26
  235. package/dist/migrations/v-2.4.0/migration.js.map +7 -0
  236. package/dist/migrations/v-2.4.0/migration.test.js +90 -0
  237. package/dist/migrations/v-2.4.0/migration.test.js.map +7 -0
  238. package/dist/migrations/v-2.4.0/types.generated.js +1 -0
  239. package/dist/migrations/v-2.4.0/types.generated.js.map +7 -0
  240. package/dist/migrations/v-2.5.0/migration.d.ts +2 -2
  241. package/dist/migrations/v-2.5.0/migration.d.ts.map +1 -1
  242. package/dist/migrations/v-2.5.0/migration.js +135 -119
  243. package/dist/migrations/v-2.5.0/migration.js.map +7 -0
  244. package/dist/migrations/v-2.5.0/migration.test.js +108 -0
  245. package/dist/migrations/v-2.5.0/migration.test.js.map +7 -0
  246. package/dist/migrations/v-2.5.0/types.generated.d.ts +8 -8
  247. package/dist/migrations/v-2.5.0/types.generated.d.ts.map +1 -1
  248. package/dist/migrations/v-2.5.0/types.generated.js +1 -0
  249. package/dist/migrations/v-2.5.0/types.generated.js.map +7 -0
  250. package/dist/spec-getters/get-example-from-schema.js +206 -268
  251. package/dist/spec-getters/get-example-from-schema.js.map +7 -0
  252. package/dist/spec-getters/get-example-from-schema.test.js +1092 -0
  253. package/dist/spec-getters/get-example-from-schema.test.js.map +7 -0
  254. package/dist/spec-getters/get-parameters-from-operation.js +22 -42
  255. package/dist/spec-getters/get-parameters-from-operation.js.map +7 -0
  256. package/dist/spec-getters/get-parameters-from-operation.test.js +178 -0
  257. package/dist/spec-getters/get-parameters-from-operation.test.js.map +7 -0
  258. package/dist/spec-getters/get-request-body-from-operation.js +110 -162
  259. package/dist/spec-getters/get-request-body-from-operation.js.map +7 -0
  260. package/dist/spec-getters/get-request-body-from-operation.test.js +289 -0
  261. package/dist/spec-getters/get-request-body-from-operation.test.js.map +7 -0
  262. package/dist/spec-getters/get-server-variable-examples.d.ts +1 -1
  263. package/dist/spec-getters/get-server-variable-examples.d.ts.map +1 -1
  264. package/dist/spec-getters/get-server-variable-examples.js +12 -11
  265. package/dist/spec-getters/get-server-variable-examples.js.map +7 -0
  266. package/dist/spec-getters/index.d.ts +4 -4
  267. package/dist/spec-getters/index.d.ts.map +1 -1
  268. package/dist/spec-getters/index.js +11 -4
  269. package/dist/spec-getters/index.js.map +7 -0
  270. package/dist/transforms/import-spec.d.ts +6 -6
  271. package/dist/transforms/import-spec.d.ts.map +1 -1
  272. package/dist/transforms/import-spec.js +313 -425
  273. package/dist/transforms/import-spec.js.map +7 -0
  274. package/dist/transforms/import-spec.test.js +1124 -0
  275. package/dist/transforms/import-spec.test.js.map +7 -0
  276. package/dist/transforms/index.d.ts +1 -1
  277. package/dist/transforms/index.d.ts.map +1 -1
  278. package/dist/transforms/index.js +7 -1
  279. package/dist/transforms/index.js.map +7 -0
  280. package/package.json +9 -10
@@ -1,282 +1,265 @@
1
- import { camelToTitleWords, capitalize } from '../../helpers/string.js';
2
- import { parseLocalStorage } from '../local-storage.js';
3
-
4
- /** V-0.0.0 to V-2.1.0 migration */
1
+ import { camelToTitleWords, capitalize } from "../../helpers/string.js";
2
+ import { parseLocalStorage } from "../../migrations/local-storage.js";
5
3
  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'),
4
+ console.info("Performing data migration v-0.0.0 to v-2.1.0");
5
+ const oldData = {
6
+ ...data,
7
+ // @ts-expect-error Tags used to be called folders
8
+ folders: parseLocalStorage("folder")
9
+ };
10
+ const flattenChildren = (childUids) => childUids.reduce(
11
+ (prev, uid) => {
12
+ const request = oldData.requests[uid];
13
+ if (request) {
14
+ prev.requestUids.add(uid);
15
+ request.securitySchemeUids?.forEach((s) => prev.authUids.add(s));
16
+ } else if (oldData.folders[uid]) {
17
+ const { requestUids, tagUids, authUids } = flattenChildren(oldData.folders[uid].childUids ?? []);
18
+ prev.tagUids.add(uid);
19
+ requestUids.forEach((r) => prev.requestUids.add(r));
20
+ tagUids.forEach((t) => prev.tagUids.add(t));
21
+ authUids.forEach((a) => prev.authUids.add(a));
22
+ }
23
+ return prev;
24
+ },
25
+ {
26
+ requestUids: /* @__PURE__ */ new Set(),
27
+ tagUids: /* @__PURE__ */ new Set(),
28
+ authUids: /* @__PURE__ */ new Set()
29
+ }
30
+ );
31
+ const migrateAuth = (scheme) => {
32
+ if (scheme.type === "apiKey") {
33
+ return { type: "apiKey", name: scheme.name, value: scheme.value ?? "" };
34
+ }
35
+ if (scheme.type === "http") {
36
+ return {
37
+ type: "http",
38
+ username: scheme.value ?? "",
39
+ password: scheme.secondValue ?? "",
40
+ token: scheme.value ?? ""
41
+ };
42
+ }
43
+ if (scheme.type === "oauth2" && scheme.flow.type === "implicit") {
44
+ return {
45
+ type: "oauth-implicit",
46
+ token: scheme.flow.token ?? ""
47
+ };
48
+ }
49
+ if (scheme.type === "oauth2" && scheme.flow.type === "password") {
50
+ return {
51
+ type: "oauth-password",
52
+ token: scheme.flow.token ?? "",
53
+ username: scheme.flow.value ?? "",
54
+ password: scheme.flow.secondValue ?? "",
55
+ clientSecret: scheme.flow.clientSecret ?? ""
56
+ };
57
+ }
58
+ if (scheme.type === "oauth2" && scheme.flow.type === "clientCredentials") {
59
+ return {
60
+ type: "oauth-clientCredentials",
61
+ token: scheme.flow.token ?? "",
62
+ clientSecret: scheme.flow.clientSecret ?? ""
63
+ };
64
+ }
65
+ if (scheme.type === "oauth2" && scheme.flow.type === "authorizationCode") {
66
+ return {
67
+ type: "oauth-authorizationCode",
68
+ token: scheme.flow.token ?? "",
69
+ clientSecret: scheme.flow.clientSecret ?? ""
70
+ };
71
+ }
72
+ return {
73
+ type: "apiKey",
74
+ name: "",
75
+ value: ""
12
76
  };
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
- }
42
- // HTTP
43
- if (scheme.type === 'http') {
44
- return {
45
- type: 'http',
46
- username: scheme.value ?? '',
47
- password: scheme.secondValue ?? '',
48
- token: scheme.value ?? '',
49
- };
50
- }
51
- // Oauth2 Implicit
52
- if (scheme.type === 'oauth2' && scheme.flow.type === 'implicit') {
53
- return {
54
- type: 'oauth-implicit',
55
- token: scheme.flow.token ?? '',
56
- };
57
- }
58
- // Oauth2 Password
59
- if (scheme.type === 'oauth2' && scheme.flow.type === 'password') {
60
- return {
61
- type: 'oauth-password',
62
- token: scheme.flow.token ?? '',
63
- username: scheme.flow.value ?? '',
64
- password: scheme.flow.secondValue ?? '',
65
- clientSecret: scheme.flow.clientSecret ?? '',
66
- };
67
- }
68
- // Oauth2 clientCredentials
69
- if (scheme.type === 'oauth2' && scheme.flow.type === 'clientCredentials') {
70
- return {
71
- type: 'oauth-clientCredentials',
72
- token: scheme.flow.token ?? '',
73
- clientSecret: scheme.flow.clientSecret ?? '',
74
- };
75
- }
76
- // Oauth2 Authorization Code
77
- if (scheme.type === 'oauth2' && scheme.flow.type === 'authorizationCode') {
78
- return {
79
- type: 'oauth-authorizationCode',
80
- token: scheme.flow.token ?? '',
81
- clientSecret: scheme.flow.clientSecret ?? '',
82
- };
77
+ };
78
+ const requestSecurityDict = {};
79
+ const collections = Object.values(oldData.collections ?? {}).reduce((prev, c) => {
80
+ const { requestUids, tagUids, authUids } = flattenChildren(c.childUids ?? []);
81
+ const securitySchemesSet = /* @__PURE__ */ new Set([...authUids, ...Object.values(c.securitySchemeDict ?? {})]);
82
+ const securitySchemes2 = [...securitySchemesSet];
83
+ requestUids.forEach((r) => requestSecurityDict[r] = securitySchemes2);
84
+ const auth = securitySchemes2.reduce(
85
+ (_prev, uid) => {
86
+ const scheme = oldData.securitySchemes[uid];
87
+ if (scheme?.uid && _prev) {
88
+ _prev[uid] = migrateAuth(scheme);
83
89
  }
84
- // Default - should not get hit
85
- return {
86
- type: 'apiKey',
87
- name: '',
88
- value: '',
89
- };
90
+ return _prev;
91
+ },
92
+ {}
93
+ );
94
+ prev[c.uid] = {
95
+ "type": "collection",
96
+ "openapi": c.spec?.openapi || "3.1.0",
97
+ "info": c.spec?.info || { title: "OpenAPI Spec", version: "0.0.1" },
98
+ "security": c.spec?.security || [],
99
+ "externalDocs": c.spec?.externalDocs,
100
+ "uid": c.uid,
101
+ securitySchemes: securitySchemes2,
102
+ "selectedSecuritySchemeUids": [],
103
+ "selectedServerUid": c.selectedServerUid || c.spec?.serverUids?.[0] || "",
104
+ "servers": c.spec?.serverUids || [],
105
+ "requests": [...requestUids],
106
+ "tags": [...tagUids],
107
+ auth,
108
+ "children": c.childUids || [],
109
+ "x-scalar-icon": "interface-content-folder",
110
+ "watchMode": false,
111
+ "watchModeStatus": "IDLE"
90
112
  };
91
- /** This is needed due to our previous data being poluted, we will only allow auth on a requst which is in the spec */
92
- const requestSecurityDict = {};
93
- // Collections
94
- const collections = Object.values(oldData.collections ?? {}).reduce((prev, c) => {
95
- const { requestUids, tagUids, authUids } = flattenChildren(c.childUids ?? []);
96
- // Ensure we got unique uids
97
- const securitySchemesSet = new Set([...authUids, ...Object.values(c.securitySchemeDict ?? {})]);
98
- const securitySchemes = [...securitySchemesSet];
99
- // Add this auth to each request
100
- requestUids.forEach((r) => (requestSecurityDict[r] = securitySchemes));
101
- // Migrate auth
102
- const auth = securitySchemes.reduce((_prev, uid) => {
103
- const scheme = oldData.securitySchemes[uid];
104
- if (scheme?.uid && _prev) {
105
- _prev[uid] = migrateAuth(scheme);
106
- }
107
- return _prev;
108
- }, {});
109
- prev[c.uid] = {
110
- 'type': 'collection',
111
- 'openapi': c.spec?.openapi || '3.1.0',
112
- 'info': c.spec?.info || { title: 'OpenAPI Spec', version: '0.0.1' },
113
- 'security': c.spec?.security || [],
114
- 'externalDocs': c.spec?.externalDocs,
115
- 'uid': c.uid,
116
- securitySchemes,
117
- 'selectedSecuritySchemeUids': [],
118
- 'selectedServerUid': c.selectedServerUid || c.spec?.serverUids?.[0] || '',
119
- 'servers': c.spec?.serverUids || [],
120
- 'requests': [...requestUids],
121
- 'tags': [...tagUids],
122
- auth,
123
- 'children': c.childUids || [],
124
- 'x-scalar-icon': 'interface-content-folder',
125
- 'watchMode': false,
126
- 'watchModeStatus': 'IDLE',
127
- };
128
- return prev;
129
- }, {});
130
- // Cookies
131
- const cookies = oldData.cookies ?? {};
132
- // Environments
133
- const environments = Object.values(oldData.environments ?? {}).reduce((prev, e) => {
134
- prev[e.uid] = {
135
- ...e,
136
- value: e.raw ?? '',
137
- };
138
- return prev;
139
- }, {});
140
- // Requests
141
- const requests = Object.values(oldData.requests ?? {}).reduce((prev, r) => {
142
- // Convert parameters
143
- const parameters = [
144
- ...Object.values(r.parameters?.path ?? {}),
145
- ...Object.values(r.parameters?.query ?? {}),
146
- ...Object.values(r.parameters?.headers ?? {}),
147
- ...Object.values(r.parameters?.cookies ?? {}),
148
- ].filter((p) => p);
149
- // Ensure this request can access these schemes
150
- const selectedSecuritySchemeUids = (r.selectedSecuritySchemeUids || []).filter((s) => requestSecurityDict[r.uid]?.includes(s));
151
- prev[r.uid] = {
152
- ...r,
153
- parameters,
154
- type: 'request',
155
- method: r.method?.toLowerCase() ?? 'get',
156
- examples: r.childUids || [],
157
- selectedSecuritySchemeUids,
158
- selectedServerUid: '',
159
- servers: [],
160
- };
161
- return prev;
162
- }, {});
163
- // Request Examples
164
- const requestExamples = Object.values(oldData.requestExamples ?? {}).reduce((prev, e) => {
165
- prev[e.uid] = {
166
- ...e,
167
- type: 'requestExample',
168
- };
169
- return prev;
170
- }, {});
171
- /** Specifically handle each oauth2 flow */
172
- const migrateFlow = (flow) => {
173
- const base = {
174
- refreshUrl: flow.refreshUrl || '',
175
- selectedScopes: flow.selectedScopes || [],
176
- scopes: flow.scopes || {},
177
- };
178
- if (flow.type === 'implicit') {
179
- return {
180
- ...flow,
181
- ...base,
182
- 'type': 'implicit',
183
- 'x-scalar-redirect-uri': ('redirectUri' in flow ? flow.redirectUri : '') || '',
184
- };
185
- }
186
- if (flow.type === 'password') {
187
- return {
188
- ...flow,
189
- ...base,
190
- tokenUrl: flow.tokenUrl || '',
191
- };
192
- }
193
- if (flow.type === 'clientCredentials') {
194
- return {
195
- ...flow,
196
- ...base,
197
- tokenUrl: flow.tokenUrl || '',
198
- };
199
- }
200
- return {
201
- ...flow,
202
- ...base,
203
- 'x-usePkce': 'no',
204
- 'x-scalar-redirect-uri': ('redirectUri' in flow ? flow.redirectUri : '') || '',
205
- 'authorizationUrl': flow.authorizationUrl || '',
206
- 'tokenUrl': flow.tokenUrl || '',
207
- };
113
+ return prev;
114
+ }, {});
115
+ const cookies = oldData.cookies ?? {};
116
+ const environments = Object.values(oldData.environments ?? {}).reduce(
117
+ (prev, e) => {
118
+ prev[e.uid] = {
119
+ ...e,
120
+ value: e.raw ?? ""
121
+ };
122
+ return prev;
123
+ },
124
+ {}
125
+ );
126
+ const requests = Object.values(oldData.requests ?? {}).reduce((prev, r) => {
127
+ const parameters = [
128
+ ...Object.values(r.parameters?.path ?? {}),
129
+ ...Object.values(r.parameters?.query ?? {}),
130
+ ...Object.values(r.parameters?.headers ?? {}),
131
+ ...Object.values(r.parameters?.cookies ?? {})
132
+ ].filter((p) => p);
133
+ const selectedSecuritySchemeUids = (r.selectedSecuritySchemeUids || []).filter(
134
+ (s) => requestSecurityDict[r.uid]?.includes(s)
135
+ );
136
+ prev[r.uid] = {
137
+ ...r,
138
+ parameters,
139
+ type: "request",
140
+ method: r.method?.toLowerCase() ?? "get",
141
+ examples: r.childUids || [],
142
+ selectedSecuritySchemeUids,
143
+ selectedServerUid: "",
144
+ servers: []
208
145
  };
209
- /** Generate a nameKey based on the type of oauth */
210
- const getNameKey = (scheme) => {
211
- switch (scheme?.type) {
212
- case 'apiKey':
213
- return `${capitalize(scheme.in)}`;
214
- case 'http': {
215
- return `${capitalize(scheme.scheme)} Authentication`;
216
- }
217
- case 'oauth2':
218
- return camelToTitleWords(scheme.flow.type);
219
- case 'openIdConnect':
220
- return 'Open ID Connect';
221
- default:
222
- return 'None';
223
- }
146
+ return prev;
147
+ }, {});
148
+ const requestExamples = Object.values(oldData.requestExamples ?? {}).reduce(
149
+ (prev, e) => {
150
+ prev[e.uid] = {
151
+ ...e,
152
+ type: "requestExample"
153
+ };
154
+ return prev;
155
+ },
156
+ {}
157
+ );
158
+ const migrateFlow = (flow) => {
159
+ const base = {
160
+ refreshUrl: flow.refreshUrl || "",
161
+ selectedScopes: flow.selectedScopes || [],
162
+ scopes: flow.scopes || {}
224
163
  };
225
- // Security Schemes
226
- const securitySchemes = Object.values(oldData.securitySchemes ?? {}).reduce((prev, s) => {
227
- prev[s.uid] =
228
- s.type === 'oauth2'
229
- ? {
230
- ...s,
231
- 'nameKey': getNameKey(s),
232
- 'x-scalar-client-id': s.clientId || '',
233
- 'flow': migrateFlow(s.flow),
234
- }
235
- : { ...s, nameKey: getNameKey(s) };
236
- return prev;
237
- }, {});
238
- // Servers
239
- const servers = Object.values(oldData.servers ?? {}).reduce((prev, s) => {
240
- prev[s.uid] = {
241
- ...s,
242
- variables: s.variables ?? {},
243
- };
244
- return prev;
245
- }, {});
246
- // Tags
247
- const tags = Object.values(oldData.folders ?? {}).reduce((prev, f) => {
248
- prev[f.uid] = {
249
- 'type': 'tag',
250
- 'uid': f.uid,
251
- 'name': f.name || 'unknownTag',
252
- 'description': f.description,
253
- 'children': f.childUids || [],
254
- 'x-scalar-children': [],
255
- };
256
- return prev;
257
- }, {});
258
- // Workspaces
259
- const workspaces = Object.values(oldData.workspaces ?? {}).reduce((prev, w) => {
260
- prev[w.uid] = {
261
- ...w,
262
- description: w.description ?? 'Basic Scalar Workspace',
263
- cookies: w.cookieUids || [],
264
- collections: w.collectionUids || [],
265
- environments: w.environmentUids || [],
266
- };
267
- return prev;
268
- }, {});
164
+ if (flow.type === "implicit") {
165
+ return {
166
+ ...flow,
167
+ ...base,
168
+ "type": "implicit",
169
+ "x-scalar-redirect-uri": ("redirectUri" in flow ? flow.redirectUri : "") || ""
170
+ };
171
+ }
172
+ if (flow.type === "password") {
173
+ return {
174
+ ...flow,
175
+ ...base,
176
+ tokenUrl: flow.tokenUrl || ""
177
+ };
178
+ }
179
+ if (flow.type === "clientCredentials") {
180
+ return {
181
+ ...flow,
182
+ ...base,
183
+ tokenUrl: flow.tokenUrl || ""
184
+ };
185
+ }
269
186
  return {
270
- collections,
271
- cookies,
272
- environments,
273
- requestExamples,
274
- requests,
275
- securitySchemes,
276
- servers,
277
- tags,
278
- workspaces,
187
+ ...flow,
188
+ ...base,
189
+ "x-usePkce": "no",
190
+ "x-scalar-redirect-uri": ("redirectUri" in flow ? flow.redirectUri : "") || "",
191
+ "authorizationUrl": flow.authorizationUrl || "",
192
+ "tokenUrl": flow.tokenUrl || ""
279
193
  };
194
+ };
195
+ const getNameKey = (scheme) => {
196
+ switch (scheme?.type) {
197
+ case "apiKey":
198
+ return `${capitalize(scheme.in)}`;
199
+ case "http": {
200
+ return `${capitalize(scheme.scheme)} Authentication`;
201
+ }
202
+ case "oauth2":
203
+ return camelToTitleWords(scheme.flow.type);
204
+ case "openIdConnect":
205
+ return "Open ID Connect";
206
+ default:
207
+ return "None";
208
+ }
209
+ };
210
+ const securitySchemes = Object.values(oldData.securitySchemes ?? {}).reduce(
211
+ (prev, s) => {
212
+ prev[s.uid] = s.type === "oauth2" ? {
213
+ ...s,
214
+ "nameKey": getNameKey(s),
215
+ "x-scalar-client-id": s.clientId || "",
216
+ "flow": migrateFlow(s.flow)
217
+ } : { ...s, nameKey: getNameKey(s) };
218
+ return prev;
219
+ },
220
+ {}
221
+ );
222
+ const servers = Object.values(oldData.servers ?? {}).reduce((prev, s) => {
223
+ prev[s.uid] = {
224
+ ...s,
225
+ variables: s.variables ?? {}
226
+ };
227
+ return prev;
228
+ }, {});
229
+ const tags = Object.values(oldData.folders ?? {}).reduce((prev, f) => {
230
+ prev[f.uid] = {
231
+ "type": "tag",
232
+ "uid": f.uid,
233
+ "name": f.name || "unknownTag",
234
+ "description": f.description,
235
+ "children": f.childUids || [],
236
+ "x-scalar-children": []
237
+ };
238
+ return prev;
239
+ }, {});
240
+ const workspaces = Object.values(oldData.workspaces ?? {}).reduce((prev, w) => {
241
+ prev[w.uid] = {
242
+ ...w,
243
+ description: w.description ?? "Basic Scalar Workspace",
244
+ cookies: w.cookieUids || [],
245
+ collections: w.collectionUids || [],
246
+ environments: w.environmentUids || []
247
+ };
248
+ return prev;
249
+ }, {});
250
+ return {
251
+ collections,
252
+ cookies,
253
+ environments,
254
+ requestExamples,
255
+ requests,
256
+ securitySchemes,
257
+ servers,
258
+ tags,
259
+ workspaces
260
+ };
261
+ };
262
+ export {
263
+ migrate_v_2_1_0
280
264
  };
281
-
282
- export { migrate_v_2_1_0 };
265
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/migrations/v-2.1.0/migration.ts"],
4
+ "sourcesContent": ["import { camelToTitleWords, capitalize } from '@/helpers/string'\nimport { parseLocalStorage } from '@/migrations/local-storage'\nimport type { v_0_0_0 } from '@/migrations/v-0.0.0/types.generated'\n\nimport type { v_2_1_0 } from './types.generated'\n\n/** V-0.0.0 to V-2.1.0 migration */\nexport const migrate_v_2_1_0 = (data: Omit<v_0_0_0.DataRecord, 'folders'>) => {\n console.info('Performing data migration v-0.0.0 to v-2.1.0')\n\n // Augment the previous data\n const oldData = {\n ...data,\n // @ts-expect-error Tags used to be called folders\n folders: parseLocalStorage('folder'),\n } as v_0_0_0.DataRecord\n\n /** To grab requests and tags we must traverse children, also for security */\n const flattenChildren = (childUids: string[]) =>\n childUids.reduce(\n (prev, uid) => {\n const request = oldData.requests[uid]\n\n // Request\n if (request) {\n prev.requestUids.add(uid)\n // Security\n request.securitySchemeUids?.forEach((s) => prev.authUids.add(s))\n }\n\n // Folder -> tag\n else if (oldData.folders[uid]) {\n const { requestUids, tagUids, authUids } = flattenChildren(oldData.folders[uid].childUids ?? [])\n prev.tagUids.add(uid)\n requestUids.forEach((r) => prev.requestUids.add(r))\n tagUids.forEach((t) => prev.tagUids.add(t))\n authUids.forEach((a) => prev.authUids.add(a))\n }\n\n return prev\n },\n {\n requestUids: new Set<string>(),\n tagUids: new Set<string>(),\n authUids: new Set<string>(),\n },\n )\n\n /** Migrate values from old securitySchemes to the new auth */\n const migrateAuth = (scheme: v_0_0_0.SecurityScheme): NonNullable<v_2_1_0.Collection['auth']>[string] => {\n if (scheme.type === 'apiKey') {\n // ApiKey\n return { type: 'apiKey', name: scheme.name, value: scheme.value ?? '' }\n }\n\n // HTTP\n if (scheme.type === 'http') {\n return {\n type: 'http',\n username: scheme.value ?? '',\n password: scheme.secondValue ?? '',\n token: scheme.value ?? '',\n }\n }\n\n // Oauth2 Implicit\n if (scheme.type === 'oauth2' && scheme.flow.type === 'implicit') {\n return {\n type: 'oauth-implicit',\n token: scheme.flow.token ?? '',\n }\n }\n\n // Oauth2 Password\n if (scheme.type === 'oauth2' && scheme.flow.type === 'password') {\n return {\n type: 'oauth-password',\n token: scheme.flow.token ?? '',\n username: scheme.flow.value ?? '',\n password: scheme.flow.secondValue ?? '',\n clientSecret: scheme.flow.clientSecret ?? '',\n }\n }\n\n // Oauth2 clientCredentials\n if (scheme.type === 'oauth2' && scheme.flow.type === 'clientCredentials') {\n return {\n type: 'oauth-clientCredentials',\n token: scheme.flow.token ?? '',\n clientSecret: scheme.flow.clientSecret ?? '',\n }\n }\n\n // Oauth2 Authorization Code\n if (scheme.type === 'oauth2' && scheme.flow.type === 'authorizationCode') {\n return {\n type: 'oauth-authorizationCode',\n token: scheme.flow.token ?? '',\n clientSecret: scheme.flow.clientSecret ?? '',\n }\n }\n\n // Default - should not get hit\n return {\n type: 'apiKey',\n name: '',\n value: '',\n }\n }\n\n /** This is needed due to our previous data being poluted, we will only allow auth on a requst which is in the spec */\n const requestSecurityDict: Record<string, string[]> = {}\n\n // Collections\n const collections = Object.values(oldData.collections ?? {}).reduce<v_2_1_0.DataRecord['collections']>((prev, c) => {\n const { requestUids, tagUids, authUids } = flattenChildren(c.childUids ?? [])\n\n // Ensure we got unique uids\n const securitySchemesSet = new Set([...authUids, ...Object.values(c.securitySchemeDict ?? {})])\n const securitySchemes = [...securitySchemesSet]\n\n // Add this auth to each request\n requestUids.forEach((r) => (requestSecurityDict[r] = securitySchemes))\n\n // Migrate auth\n const auth = securitySchemes.reduce(\n (_prev, uid) => {\n const scheme = oldData.securitySchemes[uid]\n if (scheme?.uid && _prev) {\n _prev[uid] = migrateAuth(scheme)\n }\n return _prev\n },\n {} as v_2_1_0.Collection['auth'],\n )\n\n prev[c.uid] = {\n 'type': 'collection',\n 'openapi': c.spec?.openapi || '3.1.0',\n 'info': c.spec?.info || { title: 'OpenAPI Spec', version: '0.0.1' },\n 'security': c.spec?.security || [],\n 'externalDocs': c.spec?.externalDocs,\n 'uid': c.uid,\n securitySchemes,\n 'selectedSecuritySchemeUids': [],\n 'selectedServerUid': c.selectedServerUid || c.spec?.serverUids?.[0] || '',\n 'servers': c.spec?.serverUids || [],\n 'requests': [...requestUids],\n 'tags': [...tagUids],\n auth,\n 'children': c.childUids || [],\n 'x-scalar-icon': 'interface-content-folder',\n 'watchMode': false,\n 'watchModeStatus': 'IDLE',\n } satisfies v_2_1_0.Collection\n return prev\n }, {})\n\n // Cookies\n const cookies = oldData.cookies ?? {}\n\n // Environments\n const environments = Object.values(oldData.environments ?? {}).reduce<v_2_1_0.DataRecord['environments']>(\n (prev, e) => {\n prev[e.uid] = {\n ...e,\n value: e.raw ?? '',\n }\n return prev\n },\n {},\n )\n\n // Requests\n const requests = Object.values(oldData.requests ?? {}).reduce<v_2_1_0.DataRecord['requests']>((prev, r) => {\n // Convert parameters\n const parameters: v_2_1_0.Request['parameters'] = [\n ...Object.values(r.parameters?.path ?? {}),\n ...Object.values(r.parameters?.query ?? {}),\n ...Object.values(r.parameters?.headers ?? {}),\n ...Object.values(r.parameters?.cookies ?? {}),\n ].filter((p) => p)\n\n // Ensure this request can access these schemes\n const selectedSecuritySchemeUids = (r.selectedSecuritySchemeUids || []).filter((s) =>\n requestSecurityDict[r.uid]?.includes(s),\n )\n\n prev[r.uid] = {\n ...r,\n parameters,\n type: 'request',\n method: (r.method?.toLowerCase() as v_2_1_0.Request['method']) ?? 'get',\n examples: r.childUids || [],\n selectedSecuritySchemeUids,\n selectedServerUid: '',\n servers: [],\n } satisfies v_2_1_0.Request\n return prev\n }, {})\n\n // Request Examples\n const requestExamples = Object.values(oldData.requestExamples ?? {}).reduce<v_2_1_0.DataRecord['requestExamples']>(\n (prev, e) => {\n prev[e.uid] = {\n ...e,\n type: 'requestExample',\n }\n return prev\n },\n {},\n )\n\n type Oauth2 = Exclude<v_2_1_0.SecurityScheme, { type: 'http' } | { type: 'apiKey' } | { type: 'openIdConnect' }>\n\n type Flow = Extract<v_0_0_0.SecurityScheme, { type: 'oauth2' }>['flow']\n\n /** Specifically handle each oauth2 flow */\n const migrateFlow = (flow: Flow): Oauth2['flow'] => {\n const base = {\n refreshUrl: flow.refreshUrl || '',\n selectedScopes: flow.selectedScopes || [],\n scopes: flow.scopes || {},\n } as const\n\n if (flow.type === 'implicit') {\n return {\n ...flow,\n ...base,\n 'type': 'implicit',\n 'x-scalar-redirect-uri': ('redirectUri' in flow ? flow.redirectUri : '') || '',\n }\n }\n if (flow.type === 'password') {\n return {\n ...flow,\n ...base,\n tokenUrl: flow.tokenUrl || '',\n }\n }\n if (flow.type === 'clientCredentials') {\n return {\n ...flow,\n ...base,\n tokenUrl: flow.tokenUrl || '',\n }\n }\n\n return {\n ...flow,\n ...base,\n 'x-usePkce': 'no',\n 'x-scalar-redirect-uri': ('redirectUri' in flow ? flow.redirectUri : '') || '',\n 'authorizationUrl': flow.authorizationUrl || '',\n 'tokenUrl': flow.tokenUrl || '',\n }\n }\n\n /** Generate a nameKey based on the type of oauth */\n const getNameKey = (scheme: v_0_0_0.SecurityScheme) => {\n switch (scheme?.type) {\n case 'apiKey':\n return `${capitalize(scheme.in)}`\n case 'http': {\n return `${capitalize(scheme.scheme)} Authentication`\n }\n case 'oauth2':\n return camelToTitleWords(scheme.flow.type)\n case 'openIdConnect':\n return 'Open ID Connect'\n default:\n return 'None'\n }\n }\n\n // Security Schemes\n const securitySchemes = Object.values(oldData.securitySchemes ?? {}).reduce<v_2_1_0.DataRecord['securitySchemes']>(\n (prev, s) => {\n prev[s.uid] =\n s.type === 'oauth2'\n ? ({\n ...s,\n 'nameKey': getNameKey(s),\n 'x-scalar-client-id': s.clientId || '',\n 'flow': migrateFlow(s.flow),\n } satisfies Oauth2)\n : ({ ...s, nameKey: getNameKey(s) } satisfies Exclude<v_2_1_0.SecurityScheme, { type: 'oauth2' }>)\n return prev\n },\n {},\n )\n\n // Servers\n const servers = Object.values(oldData.servers ?? {}).reduce<v_2_1_0.DataRecord['servers']>((prev, s) => {\n prev[s.uid] = {\n ...s,\n variables: s.variables ?? {},\n }\n return prev\n }, {})\n\n // Tags\n const tags = Object.values(oldData.folders ?? {}).reduce<v_2_1_0.DataRecord['tags']>((prev, f) => {\n prev[f.uid] = {\n 'type': 'tag',\n 'uid': f.uid,\n 'name': f.name || 'unknownTag',\n 'description': f.description,\n 'children': f.childUids || [],\n 'x-scalar-children': [],\n }\n return prev\n }, {})\n\n // Workspaces\n const workspaces = Object.values(oldData.workspaces ?? {}).reduce<v_2_1_0.DataRecord['workspaces']>((prev, w) => {\n prev[w.uid] = {\n ...w,\n description: w.description ?? 'Basic Scalar Workspace',\n cookies: w.cookieUids || [],\n collections: w.collectionUids || [],\n environments: w.environmentUids || [],\n }\n return prev\n }, {})\n\n return {\n collections,\n cookies,\n environments,\n requestExamples,\n requests,\n securitySchemes,\n servers,\n tags,\n workspaces,\n } satisfies v_2_1_0.DataRecord\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["securitySchemes"]
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.generated.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,5 +1,5 @@
1
- import type { v_2_1_0 } from '../../migrations/v-2.1.0/types.generated.ts';
2
- import type { v_2_2_0 } from './types.generated.ts';
1
+ import type { v_2_1_0 } from '../../migrations/v-2.1.0/types.generated.js';
2
+ import type { v_2_2_0 } from './types.generated.js';
3
3
  /** V-2.1.0 to V-2.2.0 migration */
4
4
  export declare const migrate_v_2_2_0: (data: v_2_1_0.DataRecord) => v_2_2_0.DataRecord;
5
5
  //# sourceMappingURL=migration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/migrations/v-2.2.0/migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAA;AAEtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAkGnD,mCAAmC;AACnC,eAAO,MAAM,eAAe,SAAU,OAAO,CAAC,UAAU,KAAG,OAAO,CAAC,UA6BlE,CAAA"}
1
+ {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/migrations/v-2.2.0/migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AAEnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAkGhD,mCAAmC;AACnC,eAAO,MAAM,eAAe,SAAU,OAAO,CAAC,UAAU,KAAG,OAAO,CAAC,UA6BlE,CAAA"}