@scalar/api-client 2.22.2 → 2.23.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 (62) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/style.css +1 -1
  3. package/dist/v2/blocks/request-block/helpers/get-default-headers.d.ts.map +1 -1
  4. package/dist/v2/blocks/request-block/helpers/get-default-headers.js +9 -9
  5. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.d.ts.map +1 -1
  6. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.js +2 -2
  7. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue2.js +100 -91
  8. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.d.ts +2 -0
  9. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.d.ts.map +1 -1
  10. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.js +2 -2
  11. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue2.js +43 -37
  12. package/dist/v2/components/layout/ValueEmitter.vue.d.ts +6 -2
  13. package/dist/v2/components/layout/ValueEmitter.vue.d.ts.map +1 -1
  14. package/dist/v2/components/layout/ValueEmitter.vue.js +10 -10
  15. package/dist/v2/components/server/ServerDropdown.vue.d.ts +2 -0
  16. package/dist/v2/components/server/ServerDropdown.vue.d.ts.map +1 -1
  17. package/dist/v2/components/server/ServerDropdown.vue.js +48 -42
  18. package/dist/v2/features/app/App.vue.d.ts.map +1 -1
  19. package/dist/v2/features/app/App.vue.js +117 -89
  20. package/dist/v2/features/app/app-state.d.ts +23 -12
  21. package/dist/v2/features/app/app-state.d.ts.map +1 -1
  22. package/dist/v2/features/app/app-state.js +228 -196
  23. package/dist/v2/features/app/helpers/routes.d.ts +1 -1
  24. package/dist/v2/features/app/helpers/routes.d.ts.map +1 -1
  25. package/dist/v2/features/app/helpers/routes.js +33 -27
  26. package/dist/v2/features/import-listener/ImportListener.vue.d.ts +52 -0
  27. package/dist/v2/features/import-listener/ImportListener.vue.d.ts.map +1 -0
  28. package/dist/v2/features/import-listener/ImportListener.vue.js +91 -0
  29. package/dist/v2/features/import-listener/ImportListener.vue2.js +4 -0
  30. package/dist/v2/features/import-listener/components/DropEventListener.vue.d.ts +7 -0
  31. package/dist/v2/features/import-listener/components/DropEventListener.vue.d.ts.map +1 -0
  32. package/dist/v2/features/import-listener/components/DropEventListener.vue.js +81 -0
  33. package/dist/v2/features/import-listener/components/DropEventListener.vue2.js +4 -0
  34. package/dist/v2/features/import-listener/components/ImportModal.vue.d.ts +40 -0
  35. package/dist/v2/features/import-listener/components/ImportModal.vue.d.ts.map +1 -0
  36. package/dist/v2/features/import-listener/components/ImportModal.vue.js +170 -0
  37. package/dist/v2/features/import-listener/components/ImportModal.vue3.js +5 -0
  38. package/dist/v2/features/import-listener/components/WorkspaceSelector.vue.d.ts +29 -0
  39. package/dist/v2/features/import-listener/components/WorkspaceSelector.vue.d.ts.map +1 -0
  40. package/dist/v2/features/import-listener/components/WorkspaceSelector.vue.js +83 -0
  41. package/dist/v2/features/import-listener/components/WorkspaceSelector.vue2.js +4 -0
  42. package/dist/v2/features/import-listener/helpers/generate-unique-slug.d.ts +16 -0
  43. package/dist/v2/features/import-listener/helpers/generate-unique-slug.d.ts.map +1 -0
  44. package/dist/v2/features/import-listener/helpers/generate-unique-slug.js +11 -0
  45. package/dist/v2/features/import-listener/helpers/get-url-query-parameter.d.ts +8 -0
  46. package/dist/v2/features/import-listener/helpers/get-url-query-parameter.d.ts.map +1 -0
  47. package/dist/v2/features/import-listener/helpers/get-url-query-parameter.js +4 -0
  48. package/dist/v2/features/import-listener/helpers/import-document-to-workspace.d.ts +30 -0
  49. package/dist/v2/features/import-listener/helpers/import-document-to-workspace.d.ts.map +1 -0
  50. package/dist/v2/features/import-listener/helpers/import-document-to-workspace.js +31 -0
  51. package/dist/v2/features/import-listener/helpers/load-document-from-source.d.ts +15 -0
  52. package/dist/v2/features/import-listener/helpers/load-document-from-source.d.ts.map +1 -0
  53. package/dist/v2/features/import-listener/helpers/load-document-from-source.js +28 -0
  54. package/dist/v2/features/import-listener/helpers/wait-for-condition.d.ts +15 -0
  55. package/dist/v2/features/import-listener/helpers/wait-for-condition.d.ts.map +1 -0
  56. package/dist/v2/features/import-listener/helpers/wait-for-condition.js +16 -0
  57. package/dist/v2/features/import-listener/index.d.ts +2 -0
  58. package/dist/v2/features/import-listener/index.d.ts.map +1 -0
  59. package/dist/v2/features/import-listener/index.js +4 -0
  60. package/dist/v2/features/operation/Operation.vue.js +1 -1
  61. package/dist/views/Request/ResponseSection/ResponseEmpty.vue2.js +1 -1
  62. package/package.json +16 -11
@@ -0,0 +1,83 @@
1
+ import { defineComponent as w, createElementBlock as p, openBlock as i, createVNode as t, unref as e, withCtx as l, createElementVNode as o, toDisplayString as m, Fragment as x, renderList as k, createBlock as h, withModifiers as v, normalizeClass as _ } from "vue";
2
+ import { useModal as g, ScalarDropdown as C, ScalarButton as b, ScalarIcon as n, ScalarDropdownItem as f, ScalarDropdownDivider as S } from "@scalar/components";
3
+ import y from "../../app/components/CreateWorkspaceModal.vue.js";
4
+ const D = { class: "flex w-[inherit] items-center text-base" }, W = { class: "m-0 flex items-center gap-1 text-sm font-medium" }, z = { class: "line-clamp-1 w-[calc(100%-10px)] text-left text-xs" }, B = { class: "overflow-hidden text-ellipsis" }, j = { class: "flex h-4 w-4 items-center justify-center" }, V = /* @__PURE__ */ w({
5
+ __name: "WorkspaceSelector",
6
+ props: {
7
+ activeWorkspace: {},
8
+ workspaces: {}
9
+ },
10
+ emits: ["select:workspace", "create:workspace"],
11
+ setup(r, { emit: u }) {
12
+ const c = u, d = g();
13
+ return (M, a) => (i(), p("div", D, [
14
+ t(e(C), null, {
15
+ items: l(() => [
16
+ (i(!0), p(x, null, k(r.workspaces, (s) => (i(), h(e(f), {
17
+ key: s.id,
18
+ class: "group/item flex w-full items-center gap-1.5 overflow-hidden text-ellipsis whitespace-nowrap",
19
+ onClick: v((N) => c("select:workspace", s.id), ["stop"])
20
+ }, {
21
+ default: l(() => [
22
+ o("div", {
23
+ class: _([
24
+ "flex h-4 w-4 items-center justify-center rounded-full p-[3px]",
25
+ r.activeWorkspace?.id === s.id ? "bg-c-accent text-b-1" : "shadow-border text-transparent"
26
+ ])
27
+ }, [
28
+ t(e(n), {
29
+ class: "size-2.5",
30
+ icon: "Checkmark",
31
+ thickness: "3"
32
+ })
33
+ ], 2),
34
+ o("span", B, m(s.label), 1)
35
+ ]),
36
+ _: 2
37
+ }, 1032, ["onClick"]))), 128)),
38
+ t(e(S)),
39
+ t(e(f), {
40
+ class: "flex items-center gap-1.5",
41
+ onClick: a[0] || (a[0] = (s) => e(d).show())
42
+ }, {
43
+ default: l(() => [
44
+ o("div", j, [
45
+ t(e(n), {
46
+ icon: "Add",
47
+ size: "sm"
48
+ })
49
+ ]),
50
+ a[2] || (a[2] = o("span", null, "New Workspace", -1))
51
+ ]),
52
+ _: 1
53
+ })
54
+ ]),
55
+ default: l(() => [
56
+ t(e(b), {
57
+ class: "hover:bg-b-2 text-c-3 line-clamp-1 h-full w-fit justify-start px-1.5 py-1 font-normal",
58
+ variant: "ghost"
59
+ }, {
60
+ default: l(() => [
61
+ o("div", W, [
62
+ o("h2", z, m(r.activeWorkspace?.label), 1),
63
+ t(e(n), {
64
+ icon: "ChevronDown",
65
+ size: "md"
66
+ })
67
+ ])
68
+ ]),
69
+ _: 1
70
+ })
71
+ ]),
72
+ _: 1
73
+ }),
74
+ t(e(y), {
75
+ state: e(d),
76
+ "onCreate:workspace": a[1] || (a[1] = (s) => c("create:workspace", s))
77
+ }, null, 8, ["state"])
78
+ ]));
79
+ }
80
+ });
81
+ export {
82
+ V as default
83
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./WorkspaceSelector.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Generates a unique slug for an imported document based on its title.
3
+ *
4
+ * This ensures the imported document does not conflict with existing documents
5
+ * by appending a number suffix if necessary (e.g., "my-api", "my-api-1", "my-api-2").
6
+ *
7
+ * The function will retry up to 100 times to find a unique slug. If all attempts fail,
8
+ * it returns null, which should be handled as an import error.
9
+ *
10
+ * @param defaultValue - The original document title to base the slug on
11
+ * @param currentDocuments - Set of existing document slugs to check against
12
+ *
13
+ * @returns Promise resolving to a unique slug, or null if unable to generate one
14
+ */
15
+ export declare const generateUniqueSlug: (defaultValue: string | undefined, currentDocuments: Set<string>) => Promise<string | undefined>;
16
+ //# sourceMappingURL=generate-unique-slug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-unique-slug.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/import-listener/helpers/generate-unique-slug.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,GAAU,cAAc,MAAM,GAAG,SAAS,EAAE,kBAAkB,GAAG,CAAC,MAAM,CAAC,gCAOvG,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { generateUniqueValue as r } from "@scalar/workspace-store/helpers/generate-unique-value";
2
+ import { slugify as i } from "../../../helpers/slugify.js";
3
+ const u = async (e, a) => await r({
4
+ defaultValue: e,
5
+ validation: (t) => !a.has(t),
6
+ maxRetries: 100,
7
+ transformation: i
8
+ });
9
+ export {
10
+ u as generateUniqueSlug
11
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Gets the value of a specific query parameter from the current URL.
3
+ *
4
+ * @param parameterName - The name of the query parameter to retrieve
5
+ * @returns The value of the query parameter, or null if it does not exist
6
+ */
7
+ export declare const getUrlQueryParameter: (parameterName: string) => string | null;
8
+ //# sourceMappingURL=get-url-query-parameter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-url-query-parameter.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/import-listener/helpers/get-url-query-parameter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,eAAe,MAAM,KAAG,MAAM,GAAG,IAGrE,CAAA"}
@@ -0,0 +1,4 @@
1
+ const a = (e) => new URLSearchParams(window.location.search).get(e);
2
+ export {
3
+ a as getUrlQueryParameter
4
+ };
@@ -0,0 +1,30 @@
1
+ import type { WorkspaceStore } from '@scalar/workspace-store/client';
2
+ import type { InMemoryWorkspace } from '@scalar/workspace-store/schemas/inmemory-workspace';
3
+ /**
4
+ * Imports a single document from a workspace state into the current workspace.
5
+ *
6
+ * This function handles the complete import process including slug generation,
7
+ * document loading, and sidebar updates. It ensures the imported document does not
8
+ * conflict with existing documents by generating a unique slug.
9
+ *
10
+ * The meta from the importing workspace is intentionally excluded to preserve
11
+ * the current workspace settings and avoid unintended configuration changes.
12
+ *
13
+ * @param workspaceStore - The active workspace store where the document will be imported
14
+ * @param workspaceState - The in-memory workspace containing the document to import
15
+ * @param name - The original slug/name of the document in the source workspace state
16
+ *
17
+ * @returns Promise that resolves to the slug of the imported document
18
+ */
19
+ export declare const importDocumentToWorkspace: ({ workspaceStore, workspaceState, name, }: {
20
+ workspaceStore: WorkspaceStore | null;
21
+ workspaceState: InMemoryWorkspace;
22
+ name: string;
23
+ }) => Promise<{
24
+ ok: true;
25
+ slug: string;
26
+ } | {
27
+ ok: false;
28
+ error: string;
29
+ }>;
30
+ //# sourceMappingURL=import-document-to-workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-document-to-workspace.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/import-listener/helpers/import-document-to-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAA;AAI3F;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,yBAAyB,GAAU,2CAI7C;IACD,cAAc,EAAE,cAAc,GAAG,IAAI,CAAA;IACrC,cAAc,EAAE,iBAAiB,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;CACb,KAAG,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAsDpE,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { generateUniqueSlug as u } from "./generate-unique-slug.js";
2
+ const m = async ({
3
+ workspaceStore: t,
4
+ workspaceState: o,
5
+ name: n
6
+ }) => {
7
+ if (!t)
8
+ return { ok: !1, error: "Workspace store is not available" };
9
+ const r = o.documents[n];
10
+ if (!r)
11
+ return { ok: !1, error: "Importing document not found in workspace state" };
12
+ const i = new Set(Object.keys(t.workspace.documents)), e = await u(r.info.title || "default", i);
13
+ return e ? (t.loadWorkspace({
14
+ meta: {},
15
+ documents: {
16
+ [e]: r
17
+ },
18
+ intermediateDocuments: {
19
+ [e]: o.intermediateDocuments[n] ?? {}
20
+ },
21
+ originalDocuments: {
22
+ [e]: o.originalDocuments[n] ?? {}
23
+ },
24
+ overrides: {
25
+ [e]: o.overrides[n] ?? {}
26
+ }
27
+ }), t.buildSidebar(e), await t.saveDocument(e), { ok: !0, slug: e }) : { ok: !1, error: "Failed to generate a unique slug for the importing document" };
28
+ };
29
+ export {
30
+ m as importDocumentToWorkspace
31
+ };
@@ -0,0 +1,15 @@
1
+ import type { WorkspaceStore } from '@scalar/workspace-store/client';
2
+ /**
3
+ * Loads a document from a given source (URL or raw content) and adds it to the workspace.
4
+ *
5
+ * - If the source is a URL, adds the document from the URL and enables/disables watch mode as requested.
6
+ * - If the source is raw content (like pasted JSON/YAML), normalizes and adds it as a document.
7
+ *
8
+ * @param workspaceStore The workspace store to add the document to
9
+ * @param source The source to load the document from (URL or raw content)
10
+ * @param name The name of the document
11
+ * @param watchMode Whether to enable watch mode for URL sources
12
+ * @returns Promise resolving to true if the document is added successfully, false otherwise
13
+ */
14
+ export declare const loadDocumentFromSource: (workspaceStore: WorkspaceStore, source: string | null, name: string, watchMode: boolean) => Promise<boolean>;
15
+ //# sourceMappingURL=load-document-from-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-document-from-source.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/import-listener/helpers/load-document-from-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAIpE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,GACjC,gBAAgB,cAAc,EAC9B,QAAQ,MAAM,GAAG,IAAI,EACrB,MAAM,MAAM,EACZ,WAAW,OAAO,KACjB,OAAO,CAAC,OAAO,CAqCjB,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { normalize as m } from "@scalar/openapi-parser";
2
+ import { isUrl as i } from "../../../helpers/is-url.js";
3
+ const f = async (r, t, n, o) => {
4
+ if (!t)
5
+ return !1;
6
+ if (i(t))
7
+ return await r.addDocument({
8
+ name: n,
9
+ url: t,
10
+ meta: {
11
+ "x-scalar-watch-mode": o
12
+ }
13
+ });
14
+ const e = ((a) => {
15
+ try {
16
+ return m(a);
17
+ } catch (l) {
18
+ return console.error(l), null;
19
+ }
20
+ })(t);
21
+ return e === null ? !1 : await r.addDocument({
22
+ name: n,
23
+ document: e
24
+ });
25
+ };
26
+ export {
27
+ f as loadDocumentFromSource
28
+ };
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Waits for a condition to be true with a timeout.
3
+ * Checks the condition at a specified interval up to a maximum wait time.
4
+ *
5
+ * @param checkCondition - Function that returns true when the condition is met
6
+ * @param options - Configuration options
7
+ * @param options.checkInterval - Time in milliseconds between checks (default: 100)
8
+ * @param options.maxWaitTime - Maximum time in milliseconds to wait (default: 3000)
9
+ * @returns Promise that resolves to true if the condition is met, false if it timed out
10
+ */
11
+ export declare const waitForCondition: (checkCondition: () => boolean, options?: {
12
+ checkInterval?: number;
13
+ maxWaitTime?: number;
14
+ }) => Promise<boolean>;
15
+ //# sourceMappingURL=wait-for-condition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-for-condition.d.ts","sourceRoot":"","sources":["../../../../../src/v2/features/import-listener/helpers/wait-for-condition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,GAC3B,gBAAgB,MAAM,OAAO,EAC7B,UAAS;IACP,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;CAChB,KACL,OAAO,CAAC,OAAO,CAuBjB,CAAA"}
@@ -0,0 +1,16 @@
1
+ const s = (t, l = {}) => {
2
+ const { checkInterval: r = 100, maxWaitTime: i = 3e3 } = l;
3
+ return new Promise((e) => {
4
+ if (t()) {
5
+ e(!0);
6
+ return;
7
+ }
8
+ let a = 0;
9
+ const n = setInterval(() => {
10
+ a += r, t() ? (clearInterval(n), e(!0)) : a >= i && (clearInterval(n), e(!1));
11
+ }, r);
12
+ });
13
+ };
14
+ export {
15
+ s as waitForCondition
16
+ };
@@ -0,0 +1,2 @@
1
+ export { default as ImportListener } from './ImportListener.vue.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/v2/features/import-listener/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { default as t } from "./ImportListener.vue.js";
2
+ export {
3
+ t as ImportListener
4
+ };
@@ -69,7 +69,7 @@ const b = {
69
69
  type: "document"
70
70
  }), h = n(
71
71
  () => C(o(e.options)?.hiddenClients)
72
- ), f = "2.22.2";
72
+ ), f = "2.23.0";
73
73
  return (t, a) => e.path && e.method && e.exampleName && l.value ? (c(), x(i(p), {
74
74
  key: 0,
75
75
  appVersion: i(f),
@@ -33,7 +33,7 @@ const W = { class: "flex-center relative flex flex-1 flex-col gap-6 p-2 capitali
33
33
  }));
34
34
  }, f = (u) => {
35
35
  u?.createNew && g.name === "request" && p();
36
- }, v = "2.22.2";
36
+ }, v = "2.23.0";
37
37
  return q(() => a.hotKeys.on(f)), R(() => a.hotKeys.off(f)), (u, e) => (l(), n("div", W, [
38
38
  s("div", {
39
39
  class: y(["flex h-[calc(100%_-_50px)] flex-col items-center justify-center", {
package/package.json CHANGED
@@ -18,7 +18,7 @@
18
18
  "rest",
19
19
  "testing"
20
20
  ],
21
- "version": "2.22.2",
21
+ "version": "2.23.0",
22
22
  "engines": {
23
23
  "node": ">=20"
24
24
  },
@@ -231,6 +231,11 @@
231
231
  "types": "./dist/v2/features/global-cookies/index.d.ts",
232
232
  "default": "./dist/v2/features/global-cookies/index.js"
233
233
  },
234
+ "./v2/features/import-listener": {
235
+ "import": "./dist/v2/features/import-listener/index.js",
236
+ "types": "./dist/v2/features/import-listener/index.d.ts",
237
+ "default": "./dist/v2/features/import-listener/index.js"
238
+ },
234
239
  "./v2/features/modal": {
235
240
  "import": "./dist/v2/features/modal/index.js",
236
241
  "types": "./dist/v2/features/modal/index.d.ts",
@@ -322,25 +327,25 @@
322
327
  "yaml": "^2.8.0",
323
328
  "zod": "^4.3.5",
324
329
  "@scalar/analytics-client": "1.0.1",
325
- "@scalar/components": "0.17.1",
326
- "@scalar/helpers": "0.2.10",
327
330
  "@scalar/draggable": "0.3.0",
331
+ "@scalar/components": "0.17.2",
332
+ "@scalar/helpers": "0.2.10",
328
333
  "@scalar/icons": "0.5.2",
329
- "@scalar/import": "0.4.47",
330
- "@scalar/object-utils": "1.2.24",
331
334
  "@scalar/json-magic": "0.9.5",
332
- "@scalar/oas-utils": "0.6.31",
335
+ "@scalar/oas-utils": "0.6.32",
336
+ "@scalar/object-utils": "1.2.24",
337
+ "@scalar/import": "0.4.47",
333
338
  "@scalar/openapi-parser": "0.24.6",
334
339
  "@scalar/openapi-types": "0.5.3",
335
- "@scalar/postman-to-openapi": "0.4.2",
336
- "@scalar/sidebar": "0.7.24",
340
+ "@scalar/sidebar": "0.7.25",
337
341
  "@scalar/snippetz": "0.6.10",
338
342
  "@scalar/themes": "0.14.0",
339
343
  "@scalar/types": "0.6.1",
340
- "@scalar/use-codemirror": "0.13.28",
341
- "@scalar/use-toasts": "0.9.1",
344
+ "@scalar/postman-to-openapi": "0.4.2",
345
+ "@scalar/use-codemirror": "0.13.29",
342
346
  "@scalar/use-hooks": "0.3.7",
343
- "@scalar/workspace-store": "0.28.0"
347
+ "@scalar/use-toasts": "0.9.1",
348
+ "@scalar/workspace-store": "0.28.1"
344
349
  },
345
350
  "devDependencies": {
346
351
  "@tailwindcss/vite": "^4.1.18",