@scalar/api-client 2.17.7 → 2.18.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 (120) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/dist/components/CommandPalette/CommandActionInput.vue.js +1 -1
  3. package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue.js +5 -5
  4. package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue.js +18 -18
  5. package/dist/components/Sidebar/Actions/EditSidebarListElement.vue.js +7 -7
  6. package/dist/components/Sidebar/Actions/SidebarListElementForm.vue.d.ts.map +1 -1
  7. package/dist/components/Sidebar/Actions/SidebarListElementForm.vue.js +44 -5
  8. package/dist/components/Sidebar/Actions/SidebarListElementForm.vue2.js +2 -44
  9. package/dist/style.css +1 -1
  10. package/dist/v2/blocks/operation-block/helpers/build-request.d.ts.map +1 -1
  11. package/dist/v2/blocks/operation-block/helpers/build-request.js +46 -51
  12. package/dist/v2/blocks/operation-block/helpers/get-environment-variables.d.ts +9 -0
  13. package/dist/v2/blocks/operation-block/helpers/get-environment-variables.d.ts.map +1 -0
  14. package/dist/v2/blocks/operation-block/helpers/get-environment-variables.js +7 -0
  15. package/dist/v2/blocks/operation-block/helpers/get-example.d.ts.map +1 -1
  16. package/dist/v2/blocks/operation-block/helpers/get-example.js +12 -10
  17. package/dist/v2/blocks/operation-block/helpers/get-server-url.d.ts +3 -0
  18. package/dist/v2/blocks/operation-block/helpers/get-server-url.d.ts.map +1 -0
  19. package/dist/v2/blocks/operation-block/helpers/get-server-url.js +12 -0
  20. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.d.ts.map +1 -1
  21. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.js +1 -1
  22. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue2.js +87 -65
  23. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.d.ts +18 -10
  24. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.d.ts.map +1 -1
  25. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.js +149 -126
  26. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.d.ts +20 -0
  27. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.d.ts.map +1 -0
  28. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.js +7 -0
  29. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue2.js +76 -0
  30. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.d.ts +22 -5
  31. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.d.ts.map +1 -1
  32. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.js +79 -64
  33. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.d.ts +16 -8
  34. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.d.ts.map +1 -1
  35. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.d.ts +2 -2
  36. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.d.ts.map +1 -1
  37. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.js +84 -82
  38. package/dist/v2/components/code-input/CodeInput.vue.d.ts +115 -144
  39. package/dist/v2/components/code-input/CodeInput.vue.d.ts.map +1 -1
  40. package/dist/v2/components/code-input/CodeInput.vue.js +2 -2
  41. package/dist/v2/components/code-input/CodeInput.vue2.js +120 -107
  42. package/dist/v2/components/data-table/DataTableInput.vue.d.ts +3 -3
  43. package/dist/v2/components/data-table/DataTableInput.vue.d.ts.map +1 -1
  44. package/dist/v2/components/data-table/DataTableInput.vue.js +2 -2
  45. package/dist/v2/components/data-table/DataTableInput.vue2.js +27 -27
  46. package/dist/v2/components/data-table/DataTableInputSelect.vue.d.ts +3 -2
  47. package/dist/v2/components/data-table/DataTableInputSelect.vue.d.ts.map +1 -1
  48. package/dist/v2/components/data-table/DataTableInputSelect.vue.js +42 -39
  49. package/dist/v2/components/forms/ConfirmationForm.vue.d.ts.map +1 -1
  50. package/dist/v2/components/forms/ConfirmationForm.vue.js +43 -5
  51. package/dist/v2/components/forms/ConfirmationForm.vue2.js +2 -43
  52. package/dist/v2/components/modals/DeleteModal.vue.js +11 -11
  53. package/dist/v2/components/sidebar/Sidebar.vue.d.ts +5 -3
  54. package/dist/v2/components/sidebar/Sidebar.vue.d.ts.map +1 -1
  55. package/dist/v2/components/sidebar/SidebarMenu.vue.d.ts +5 -3
  56. package/dist/v2/components/sidebar/SidebarMenu.vue.d.ts.map +1 -1
  57. package/dist/v2/components/sidebar/SidebarMenu.vue.js +25 -30
  58. package/dist/v2/features/app/App.vue.d.ts.map +1 -1
  59. package/dist/v2/features/app/App.vue.js +89 -141
  60. package/dist/v2/features/app/app-events.d.ts +22 -0
  61. package/dist/v2/features/app/app-events.d.ts.map +1 -0
  62. package/dist/v2/features/app/app-events.js +136 -0
  63. package/dist/v2/features/app/app-state.d.ts +135 -0
  64. package/dist/v2/features/app/app-state.d.ts.map +1 -0
  65. package/dist/v2/features/app/app-state.js +316 -0
  66. package/dist/v2/features/app/components/AppSidebar.vue.d.ts +6 -3
  67. package/dist/v2/features/app/components/AppSidebar.vue.d.ts.map +1 -1
  68. package/dist/v2/features/app/components/AppSidebar.vue.js +3 -3
  69. package/dist/v2/features/app/components/AppSidebar.vue2.js +4 -4
  70. package/dist/v2/features/app/components/DesktopTabs.vue.d.ts +4 -2
  71. package/dist/v2/features/app/components/DesktopTabs.vue.d.ts.map +1 -1
  72. package/dist/v2/features/app/components/DesktopTabs.vue.js +25 -22
  73. package/dist/v2/features/app/components/WebTopNav.vue.d.ts +9 -5
  74. package/dist/v2/features/app/components/WebTopNav.vue.d.ts.map +1 -1
  75. package/dist/v2/features/app/helpers/create-api-client-app.d.ts +62 -1
  76. package/dist/v2/features/app/helpers/create-api-client-app.d.ts.map +1 -1
  77. package/dist/v2/features/app/helpers/create-api-client-app.js +14 -10
  78. package/dist/v2/features/app/helpers/routes.d.ts +5 -2
  79. package/dist/v2/features/app/helpers/routes.d.ts.map +1 -1
  80. package/dist/v2/features/collection/WorkspaceCollection.vue.js +7 -7
  81. package/dist/v2/features/collection/components/Form.vue.d.ts +1 -1
  82. package/dist/v2/features/collection/components/Form.vue.d.ts.map +1 -1
  83. package/dist/v2/features/collection/components/Servers.vue.d.ts.map +1 -1
  84. package/dist/v2/features/modal/Modal.vue.d.ts.map +1 -1
  85. package/dist/v2/features/modal/Modal.vue.js +2 -2
  86. package/dist/v2/features/modal/Modal.vue2.js +40 -41
  87. package/dist/v2/features/operation/Operation.vue.d.ts.map +1 -1
  88. package/dist/v2/features/operation/Operation.vue.js +38 -28
  89. package/dist/v2/features/operation/helpers/combine-params.d.ts +4 -0
  90. package/dist/v2/features/operation/helpers/combine-params.d.ts.map +1 -0
  91. package/dist/v2/features/operation/helpers/combine-params.js +13 -0
  92. package/dist/v2/features/operation/index.d.ts +1 -0
  93. package/dist/v2/features/operation/index.d.ts.map +1 -1
  94. package/dist/v2/features/operation/index.js +10 -8
  95. package/dist/v2/features/settings/DocumentSettings.vue.d.ts.map +1 -1
  96. package/dist/v2/features/settings/DocumentSettings.vue.js +104 -5
  97. package/dist/v2/features/settings/DocumentSettings.vue2.js +2 -104
  98. package/dist/v2/helpers/get-tab-details.d.ts +2 -2
  99. package/dist/v2/helpers/get-tab-details.d.ts.map +1 -1
  100. package/dist/views/Collection/CollectionSettings.vue.d.ts.map +1 -1
  101. package/dist/views/Collection/CollectionSettings.vue.js +1 -4
  102. package/dist/views/Collection/CollectionSettings.vue2.js +5 -5
  103. package/dist/views/Environment/EnvironmentColorModal.vue.js +6 -6
  104. package/dist/views/Request/ResponseSection/ResponseEmpty.vue2.js +1 -1
  105. package/package.json +17 -17
  106. package/dist/v2/features/app/hooks/use-app-sidebar.d.ts +0 -40
  107. package/dist/v2/features/app/hooks/use-app-sidebar.d.ts.map +0 -1
  108. package/dist/v2/features/app/hooks/use-app-sidebar.js +0 -134
  109. package/dist/v2/features/app/hooks/use-sync-path.d.ts +0 -11
  110. package/dist/v2/features/app/hooks/use-sync-path.d.ts.map +0 -1
  111. package/dist/v2/features/app/hooks/use-sync-path.js +0 -52
  112. package/dist/v2/features/app/hooks/use-tabs.d.ts +0 -31
  113. package/dist/v2/features/app/hooks/use-tabs.d.ts.map +0 -1
  114. package/dist/v2/features/app/hooks/use-tabs.js +0 -44
  115. package/dist/v2/features/app/hooks/use-workspace-client-app-events.d.ts +0 -18
  116. package/dist/v2/features/app/hooks/use-workspace-client-app-events.d.ts.map +0 -1
  117. package/dist/v2/features/app/hooks/use-workspace-client-app-events.js +0 -156
  118. package/dist/v2/features/app/hooks/use-workspace-selector.d.ts +0 -28
  119. package/dist/v2/features/app/hooks/use-workspace-selector.d.ts.map +0 -1
  120. package/dist/v2/features/app/hooks/use-workspace-selector.js +0 -81
@@ -1,163 +1,111 @@
1
- import { defineComponent as $, ref as F, computed as r, createElementBlock as V, createBlock as y, unref as e, openBlock as d, Fragment as z, createElementVNode as W, createVNode as l, withCtx as G, normalizeProps as K, guardReactiveProps as j } from "vue";
2
- import { useModal as q, ScalarTeleportRoot as J } from "@scalar/components";
3
- import { isHttpMethod as Q } from "@scalar/helpers/http/is-http-method";
4
- import { getThemeStyles as X } from "@scalar/themes";
5
- import { ScalarToasts as Y } from "@scalar/use-toasts";
6
- import { createWorkspaceEventBus as Z } from "@scalar/workspace-store/events";
7
- import { useRoute as ee, useRouter as te, RouterView as oe } from "vue-router";
8
- import ae from "./components/CreateWorkspaceModal.vue.js";
9
- import re from "./components/SplashScreen.vue.js";
10
- import { useAppSidebar as se } from "./hooks/use-app-sidebar.js";
11
- import { useDocumentWatcher as ne } from "./hooks/use-document-watcher.js";
12
- import { useSyncPath as le } from "./hooks/use-sync-path.js";
13
- import { useWorkspaceSelector as ce } from "./hooks/use-workspace-selector.js";
14
- import ue from "../command-palette/components/TheCommandPalette.vue.js";
15
- import { useCommandPaletteState as pe } from "../command-palette/hooks/use-command-palette-state.js";
16
- import { getActiveEnvironment as ie } from "../../helpers/get-active-environment.js";
17
- import { useColorMode as me } from "../../hooks/use-color-mode.js";
18
- import { useGlobalHotKeys as de } from "../../hooks/use-global-hot-keys.js";
19
- import ve from "./components/AppSidebar.vue.js";
20
- import ke from "./components/DesktopTabs.vue.js";
21
- import Se from "./components/WebTopNav.vue.js";
22
- import { useTabs as fe } from "./hooks/use-tabs.js";
23
- import { useWorkspaceClientAppEvents as we } from "./hooks/use-workspace-client-app-events.js";
24
- const he = ["innerHTML"], ye = { class: "flex min-h-0 flex-1" }, We = { class: "bg-b-1 flex-1" }, be = {}, je = /* @__PURE__ */ $({
25
- ...be,
1
+ import { defineComponent as k, computed as u, createElementBlock as w, createBlock as p, unref as t, openBlock as n, Fragment as S, createElementVNode as c, createVNode as o, withCtx as f, normalizeProps as b, guardReactiveProps as h } from "vue";
2
+ import { useModal as W, ScalarTeleportRoot as T } from "@scalar/components";
3
+ import { getThemeStyles as y } from "@scalar/themes";
4
+ import { ScalarToasts as B } from "@scalar/use-toasts";
5
+ import { extensions as _ } from "@scalar/workspace-store/schemas/extensions";
6
+ import { RouterView as g } from "vue-router";
7
+ import C from "./components/CreateWorkspaceModal.vue.js";
8
+ import E from "./components/SplashScreen.vue.js";
9
+ import { useDocumentWatcher as O } from "./hooks/use-document-watcher.js";
10
+ import x from "../command-palette/components/TheCommandPalette.vue.js";
11
+ import { useColorMode as I } from "../../hooks/use-color-mode.js";
12
+ import { useGlobalHotKeys as U } from "../../hooks/use-global-hot-keys.js";
13
+ import { useAppState as M } from "./app-state.js";
14
+ import A from "./components/AppSidebar.vue.js";
15
+ import D from "./components/DesktopTabs.vue.js";
16
+ import N from "./components/WebTopNav.vue.js";
17
+ const L = ["innerHTML"], $ = { class: "flex min-h-0 flex-1" }, H = { class: "bg-b-1 flex-1" }, P = {}, se = /* @__PURE__ */ k({
18
+ ...P,
26
19
  __name: "App",
27
20
  props: {
28
21
  layout: {},
29
22
  plugins: { default: () => [] }
30
23
  },
31
- setup(v) {
32
- typeof window < "u" && (window.dataDumpWorkspace = () => o.value);
33
- const s = Z({
34
- debug: !1
35
- }), k = F(!0), B = ee(), A = te(), c = (t) => {
36
- const a = B.params[t];
37
- return typeof a == "string" ? a : void 0;
38
- }, S = r(() => c("workspaceSlug")), n = r(() => c("documentSlug")), p = r(() => !n.value || o.value === null ? null : o.value.workspace.documents[n.value] ?? null), f = r(() => {
39
- const t = c("pathEncoded");
40
- return t ? decodeURIComponent(t) : void 0;
41
- }), w = r(() => {
42
- const t = c("method");
43
- return t && Q(t) ? t : void 0;
44
- }), b = r(() => c("exampleName")), g = ce(), { store: o, workspaces: T, activeWorkspace: i, setWorkspaceId: O, createWorkspace: U } = g;
45
- me({ workspaceStore: o });
46
- const m = se({
47
- workspaceStore: o,
48
- documentSlug: n,
49
- path: f,
50
- method: w,
51
- exampleName: b
52
- }), E = fe({
53
- workspaceStore: o,
54
- getEntryByLocation: m.getEntryByLocation,
55
- workspaceSlug: S,
56
- documentSlug: n,
57
- path: f,
58
- method: w
59
- }), { isLoading: x } = le({
60
- workspaceSelectorState: g,
61
- tabsState: E,
62
- eventBus: s
63
- }), _ = pe();
64
- we({
65
- eventBus: s,
66
- document: p,
67
- workspaceStore: o,
68
- isSidebarOpen: k,
69
- commandPaletteState: _,
70
- sidebarState: m
71
- }), de(s, v.layout), ne({
72
- documentName: n,
73
- store: o,
24
+ setup(i) {
25
+ const e = M();
26
+ typeof window < "u" && (window.dataDumpWorkspace = () => e.store.value, window.dumpAppState = () => e), I({ workspaceStore: e.store }), U(e.eventBus, i.layout), O({
27
+ documentName: () => e.store.value?.workspace[_.workspace.activeDocument],
28
+ store: e.store,
74
29
  initialTimeout: 5e3
75
30
  });
76
- const I = r(
77
- () => ie(o.value, p.value)
78
- ), M = r(() => {
79
- if (o.value === null)
31
+ const m = u(() => {
32
+ if (e.store.value === null)
80
33
  return "";
81
- const t = o.value.workspace["x-scalar-theme"];
82
- return t ? `<style>${X(t)}</style>` : "";
83
- }), P = 288, D = r(
84
- () => o.value?.workspace?.["x-scalar-sidebar-width"] ?? P
85
- ), L = r(
86
- () => !!(S.value && !n.value)
87
- ), N = (t) => o.value?.update("x-scalar-sidebar-width", t), R = () => A.push({
34
+ const s = e.store.value.workspace["x-scalar-theme"];
35
+ return s ? `<style>${y(s)}</style>` : "";
36
+ }), d = () => e.router.value?.push({
88
37
  name: "workspace.environment",
89
- params: { workspaceSlug: S.value }
90
- }), C = (t) => {
91
- t && O(t);
92
- }, H = r(
93
- () => ({
94
- documentSlug: n.value ?? "",
95
- document: p.value,
96
- environment: I.value,
97
- eventBus: s,
98
- exampleName: b.value,
99
- layout: v.layout,
100
- method: w.value,
101
- path: f.value,
102
- workspaceStore: o.value,
103
- activeWorkspace: i.value,
104
- plugins: v.plugins,
105
- securitySchemes: p.value?.components?.securitySchemes ?? {}
106
- })
107
- ), h = q();
108
- return (t, a) => e(o) !== null && e(i) !== null && !e(x) ? (d(), V(z, { key: 0 }, [
109
- W("div", { innerHTML: M.value }, null, 8, he),
110
- l(e(J), null, {
111
- default: G(() => [
112
- l(e(Y)),
113
- t.layout === "desktop" ? (d(), y(ke, {
38
+ params: {
39
+ workspaceSlug: e.activeEntities.workspaceSlug.value
40
+ }
41
+ }), l = W(), v = u(() => ({
42
+ documentSlug: e.activeEntities.documentSlug.value ?? "",
43
+ document: e.store.value?.workspace.activeDocument ?? null,
44
+ environment: e.environment.value,
45
+ eventBus: e.eventBus,
46
+ exampleName: e.activeEntities.exampleName.value,
47
+ layout: i.layout,
48
+ method: e.activeEntities.method.value,
49
+ path: e.activeEntities.path.value,
50
+ workspaceStore: e.store.value,
51
+ activeWorkspace: e.workspace.activeWorkspace.value,
52
+ plugins: i.plugins,
53
+ securitySchemes: e.document.value?.components?.securitySchemes ?? {}
54
+ }));
55
+ return (s, a) => t(e).store.value !== null && t(e).workspace.activeWorkspace.value !== null && !t(e).loading.value ? (n(), w(S, { key: 0 }, [
56
+ c("div", { innerHTML: m.value }, null, 8, L),
57
+ o(t(T), null, {
58
+ default: f(() => [
59
+ o(t(B)),
60
+ s.layout === "desktop" ? (n(), p(D, {
114
61
  key: 0,
115
- eventBus: e(s),
116
- tabsState: e(E)
117
- }, null, 8, ["eventBus", "tabsState"])) : (d(), y(Se, {
62
+ activeTabIndex: t(e).tabs.activeTabIndex.value,
63
+ eventBus: t(e).eventBus,
64
+ tabs: t(e).tabs.state.value
65
+ }, null, 8, ["activeTabIndex", "eventBus", "tabs"])) : (n(), p(N, {
118
66
  key: 1,
119
- activeWorkspace: e(i),
120
- workspaces: e(T),
121
- "onCreate:workspace": a[0] || (a[0] = (u) => e(h).show()),
122
- "onSelect:workspace": C
123
- }, null, 8, ["activeWorkspace", "workspaces"])),
124
- W("main", ye, [
125
- l(ve, {
126
- isSidebarOpen: k.value,
127
- "onUpdate:isSidebarOpen": a[1] || (a[1] = (u) => k.value = u),
128
- activeWorkspace: e(i),
129
- eventBus: e(s),
130
- isWorkspaceOpen: L.value,
131
- layout: t.layout,
132
- sidebarState: e(m).state,
133
- sidebarWidth: D.value,
134
- store: e(o),
135
- workspaces: e(T),
136
- "onClick:workspace": R,
137
- "onCreate:workspace": a[2] || (a[2] = (u) => e(h).show()),
138
- "onSelect:workspace": C,
139
- onSelectItem: e(m).handleSelectItem,
140
- "onUpdate:sidebarWidth": N
141
- }, null, 8, ["isSidebarOpen", "activeWorkspace", "eventBus", "isWorkspaceOpen", "layout", "sidebarState", "sidebarWidth", "store", "workspaces", "onSelectItem"]),
142
- l(ae, {
143
- state: e(h),
144
- "onCreate:workspace": a[3] || (a[3] = (u) => e(U)(u))
67
+ activeWorkspace: t(e).workspace.activeWorkspace.value,
68
+ workspaces: t(e).workspace.workspaceList.value,
69
+ "onCreate:workspace": a[0] || (a[0] = (r) => t(l).show()),
70
+ "onSelect:workspace": t(e).workspace.setId
71
+ }, null, 8, ["activeWorkspace", "workspaces", "onSelect:workspace"])),
72
+ c("main", $, [
73
+ o(A, {
74
+ isSidebarOpen: t(e).sidebar.isOpen.value,
75
+ "onUpdate:isSidebarOpen": a[1] || (a[1] = (r) => t(e).sidebar.isOpen.value = r),
76
+ activeWorkspace: t(e).workspace.activeWorkspace.value,
77
+ eventBus: t(e).eventBus,
78
+ isWorkspaceOpen: t(e).workspace.isOpen.value,
79
+ layout: s.layout,
80
+ sidebarState: t(e).sidebar.state,
81
+ sidebarWidth: t(e).sidebar.width.value,
82
+ store: t(e).store.value,
83
+ workspaces: t(e).workspace.workspaceList.value,
84
+ "onClick:workspace": d,
85
+ "onCreate:workspace": a[2] || (a[2] = (r) => t(l).show()),
86
+ "onSelect:workspace": t(e).workspace.setId,
87
+ onSelectItem: t(e).sidebar.handleSelectItem,
88
+ "onUpdate:sidebarWidth": t(e).sidebar.handleSidebarWidthUpdate
89
+ }, null, 8, ["isSidebarOpen", "activeWorkspace", "eventBus", "isWorkspaceOpen", "layout", "sidebarState", "sidebarWidth", "store", "workspaces", "onSelect:workspace", "onSelectItem", "onUpdate:sidebarWidth"]),
90
+ o(C, {
91
+ state: t(l),
92
+ "onCreate:workspace": a[3] || (a[3] = (r) => t(e).workspace.create(r))
145
93
  }, null, 8, ["state"]),
146
- l(ue, {
147
- eventBus: e(s),
148
- paletteState: e(_),
149
- workspaceStore: e(o)
94
+ o(x, {
95
+ eventBus: t(e).eventBus,
96
+ paletteState: t(e).commandPalette,
97
+ workspaceStore: t(e).store.value
150
98
  }, null, 8, ["eventBus", "paletteState", "workspaceStore"]),
151
- W("div", We, [
152
- l(e(oe), K(j(H.value)), null, 16)
99
+ c("div", H, [
100
+ o(t(g), b(h(v.value)), null, 16)
153
101
  ])
154
102
  ])
155
103
  ]),
156
104
  _: 1
157
105
  })
158
- ], 64)) : (d(), y(re, { key: 1 }));
106
+ ], 64)) : (n(), p(E, { key: 1 }));
159
107
  }
160
108
  });
161
109
  export {
162
- je as default
110
+ se as default
163
111
  };
@@ -0,0 +1,22 @@
1
+ import type { WorkspaceStore } from '@scalar/workspace-store/client';
2
+ import type { WorkspaceEventBus } from '@scalar/workspace-store/events';
3
+ import { type OperationExampleMeta } from '@scalar/workspace-store/mutators';
4
+ import type { WorkspaceDocument } from '@scalar/workspace-store/schemas/workspace';
5
+ import { type ComputedRef, type ShallowRef } from 'vue';
6
+ import type { Router } from 'vue-router';
7
+ import type { OpenCommand } from '../command-palette/hooks/use-command-palette-state.js';
8
+ export declare function initializeAppEventHandlers({ eventBus, getStore, document, router, rebuildSidebar, navigateToCurrentTab, onSelectSidebarItem, onAfterExampleCreation, onOpenCommandPalette, onCopyTabUrl, onToggleSidebar, }: {
9
+ eventBus: WorkspaceEventBus;
10
+ getStore: () => WorkspaceStore | null;
11
+ /** Current active document */
12
+ document: ComputedRef<WorkspaceDocument | null>;
13
+ router: ShallowRef<Router | null>;
14
+ navigateToCurrentTab: () => Promise<void>;
15
+ rebuildSidebar: (documentName?: string) => void;
16
+ onSelectSidebarItem: (id: string) => void;
17
+ onAfterExampleCreation: (o: OperationExampleMeta) => void;
18
+ onOpenCommandPalette: OpenCommand;
19
+ onCopyTabUrl: (tabIndex: number) => void;
20
+ onToggleSidebar: () => void;
21
+ }): void;
22
+ //# sourceMappingURL=app-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-events.d.ts","sourceRoot":"","sources":["../../../../src/v2/features/app/app-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAwC,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAE7G,OAAO,EACL,KAAK,oBAAoB,EAgD1B,MAAM,kCAAkC,CAAA;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AAClF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAY,MAAM,KAAK,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAA;AAErF,wBAAgB,0BAA0B,CAAC,EACzC,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,eAAe,GAChB,EAAE;IACD,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,QAAQ,EAAE,MAAM,cAAc,GAAG,IAAI,CAAA;IACrC,8BAA8B;IAC9B,QAAQ,EAAE,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IAC/C,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACjC,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,cAAc,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/C,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,sBAAsB,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,IAAI,CAAA;IACzD,oBAAoB,EAAE,WAAW,CAAA;IACjC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,eAAe,EAAE,MAAM,IAAI,CAAA;CAC5B,QAySA"}
@@ -0,0 +1,136 @@
1
+ import { mergeObjects as k } from "@scalar/workspace-store/helpers/merge-object";
2
+ import { updateActiveProxy as b, updateColorMode as y, updateTheme as x, updateSelectedClient as R, updateDocumentIcon as O, toggleSecurity as N, updateWatchMode as q, createEmptyDocument as P, deleteDocument as E, upsertEnvironment as M, upsertEnvironmentVariable as T, upsertCookie as I, deleteCookie as D, deleteSecurityScheme as F, updateSelectedAuthTab as U, updateSecurityScheme as V, updateSelectedScopes as j, updateSelectedSecuritySchemes as z, addServer as A, updateServer as H, deleteServer as K, updateServerVariables as L, updateSelectedServer as W, createOperation as G, updateOperationPathMethod as J, updateOperationSummary as Q, deleteOperation as X, deleteOperationExample as Y, addOperationParameter as Z, updateOperationParameter as _, deleteOperationParameter as $, deleteAllOperationParameters as C, updateOperationRequestBodyContentType as S, updateOperationRequestBodyExample as g, addOperationRequestBodyFormRow as B, updateOperationRequestBodyFormRow as ee, deleteOperationRequestBodyFormRow as ae, createTag as oe, deleteTag as te, addTab as re, closeTab as le, closeOtherTabs as ne, focusTab as pe, focusLastTab as ce, navigatePreviousTab as ie, navigateNextTab as me, updateTabs as ue } from "@scalar/workspace-store/mutators";
3
+ import { computed as de } from "vue";
4
+ function ve({
5
+ eventBus: a,
6
+ getStore: t,
7
+ document: o,
8
+ router: p,
9
+ rebuildSidebar: i,
10
+ navigateToCurrentTab: l,
11
+ onSelectSidebarItem: w,
12
+ onAfterExampleCreation: u,
13
+ onOpenCommandPalette: d,
14
+ onCopyTabUrl: v,
15
+ onToggleSidebar: f
16
+ }) {
17
+ const c = de(() => p.value?.currentRoute?.value), s = ({
18
+ documentName: e,
19
+ path: r,
20
+ method: n,
21
+ exampleName: h
22
+ }) => !(e !== void 0 && e !== c.value?.params.documentSlug || r !== void 0 && encodeURIComponent(r) !== c.value?.params.pathEncoded || n !== void 0 && n !== c.value?.params.method || h !== void 0 && h !== c.value?.params.exampleName), m = (e, r) => {
23
+ const n = t();
24
+ return n ? r === "document" ? e : n.workspace : null;
25
+ };
26
+ a.on("scroll-to:nav-item", ({ id: e }) => w(e)), a.on("workspace:update:active-proxy", (e) => b(t()?.workspace ?? null, e)), a.on("workspace:update:color-mode", (e) => y(t()?.workspace ?? null, e)), a.on("workspace:update:theme", (e) => x(t()?.workspace ?? null, e)), a.on("workspace:update:selected-client", (e) => R(t()?.workspace, e)), a.on("document:update:icon", (e) => O(o.value, e)), a.on("document:update:info", (e) => o.value && k(o.value.info, e)), a.on("document:toggle:security", () => N(o.value)), a.on("document:update:watch-mode", (e) => q(o.value, e)), a.on("document:create:empty-document", (e) => P(t(), e)), a.on("document:delete:document", async (e) => {
27
+ E(t(), e), c?.value?.params.documentSlug === e.name && await p.value?.push({
28
+ name: "workspace.environment"
29
+ });
30
+ }), a.on("environment:upsert:environment", (e) => {
31
+ const r = t();
32
+ r && M(o.value, r.workspace, e);
33
+ }), a.on(
34
+ "environment:delete:environment",
35
+ ({ environmentName: e, collectionType: r }) => delete m(o.value, r)?.["x-scalar-environments"]?.[e]
36
+ ), a.on("environment:upsert:environment-variable", (e) => {
37
+ const r = m(o.value, e.collectionType);
38
+ T(r, e);
39
+ }), a.on(
40
+ "environment:delete:environment-variable",
41
+ ({ environmentName: e, index: r, collectionType: n }) => m(o.value, n)?.["x-scalar-environments"]?.[e]?.variables?.splice(
42
+ r,
43
+ 1
44
+ )
45
+ ), a.on("cookie:upsert:cookie", (e) => {
46
+ const r = m(o.value, e.collectionType);
47
+ I(r, e);
48
+ }), a.on("cookie:delete:cookie", (e) => {
49
+ const r = m(o.value, e.collectionType);
50
+ D(r, e);
51
+ }), a.on("auth:delete:security-scheme", (e) => F(o.value, e)), a.on("auth:update:active-index", (e) => U(o.value, e)), a.on("auth:update:security-scheme", (e) => V(o.value, e)), a.on("auth:update:selected-scopes", (e) => j(o.value, e)), a.on(
52
+ "auth:update:selected-security-schemes",
53
+ async (e) => await z(o.value, e)
54
+ ), a.on("server:add:server", () => A(o.value)), a.on("server:update:server", (e) => H(o.value, e)), a.on("server:delete:server", (e) => K(o.value, e)), a.on("server:update:variables", (e) => L(o.value, e)), a.on("server:update:selected", (e) => W(o.value, e)), a.on("operation:create:operation", (e) => G(t(), e)), a.on(
55
+ "operation:update:pathMethod",
56
+ (e) => J(o.value, t(), e, async (r) => {
57
+ r === "success" && (await p.value?.replace({
58
+ name: "example",
59
+ params: {
60
+ method: e.payload.method,
61
+ pathEncoded: encodeURIComponent(e.payload.path),
62
+ exampleName: c.value?.params.exampleName
63
+ }
64
+ }), i(o.value?.["x-scalar-navigation"]?.name)), e.callback(r);
65
+ })
66
+ ), a.on("operation:update:summary", (e) => Q(o.value, e)), a.on("operation:delete:operation", async (e) => {
67
+ X(t(), e), i(e.documentName), s({
68
+ documentName: e.documentName,
69
+ path: e.meta.path,
70
+ method: e.meta.method
71
+ }) && await p.value?.replace({
72
+ name: "document.overview",
73
+ params: {
74
+ documentSlug: e.documentName
75
+ }
76
+ });
77
+ }), a.on("operation:delete:example", async (e) => {
78
+ Y(t(), e), i(e.documentName), s({
79
+ documentName: e.documentName,
80
+ path: e.meta.path,
81
+ method: e.meta.method,
82
+ exampleName: e.meta.exampleKey
83
+ }) && await p.value?.replace({
84
+ name: "example",
85
+ params: {
86
+ pathEncoded: encodeURIComponent(e.meta.path),
87
+ method: e.meta.method,
88
+ documentSlug: e.documentName,
89
+ exampleName: "default"
90
+ }
91
+ });
92
+ }), a.on("operation:add:parameter", (e) => {
93
+ Z(o.value, e), u(e.meta);
94
+ }), a.on("operation:update:parameter", (e) => {
95
+ _(o.value, e), u(e.meta);
96
+ }), a.on("operation:delete:parameter", (e) => $(o.value, e)), a.on("operation:delete-all:parameters", (e) => C(o.value, e)), a.on(
97
+ "operation:update:requestBody:contentType",
98
+ (e) => S(o.value, e)
99
+ ), a.on("operation:update:requestBody:value", (e) => {
100
+ g(o.value, e), u(e.meta);
101
+ }), a.on("operation:add:requestBody:formRow", (e) => {
102
+ B(o.value, e), u(e.meta);
103
+ }), a.on(
104
+ "operation:update:requestBody:formRow",
105
+ (e) => ee(o.value, e)
106
+ ), a.on(
107
+ "operation:delete:requestBody:formRow",
108
+ (e) => ae(o.value, e)
109
+ ), a.on("tag:create:tag", (e) => {
110
+ oe(t(), e), i(e.documentName);
111
+ }), a.on("tag:delete:tag", (e) => {
112
+ te(t(), e), i(e.documentName);
113
+ }), a.on("ui:toggle:sidebar", f), a.on(
114
+ "ui:open:command-palette",
115
+ (e) => {
116
+ e ? d(e.action, e.payload) : d();
117
+ }
118
+ ), a.on("ui:route:page", ({ name: e }) => p.value?.push({ name: e })), a.on("tabs:add:tab", async (e) => {
119
+ re(t()?.workspace ?? null, e), await l();
120
+ }), a.on("tabs:close:tab", async (e) => {
121
+ le(t()?.workspace ?? null, e), await l();
122
+ }), a.on("tabs:close:other-tabs", (e) => ne(t()?.workspace ?? null, e)), a.on("tabs:focus:tab", async (e) => {
123
+ pe(t()?.workspace ?? null, e), await l();
124
+ }), a.on("tabs:focus:tab-last", async (e) => {
125
+ ce(t()?.workspace ?? null, e), await l();
126
+ }), a.on("tabs:navigate:previous", async (e) => {
127
+ ie(t()?.workspace ?? null, e), await l();
128
+ }), a.on("tabs:navigate:next", async (e) => {
129
+ me(t()?.workspace ?? null, e), await l();
130
+ }), a.on("tabs:update:tabs", async (e) => {
131
+ ue(t()?.workspace ?? null, e), await l();
132
+ }), a.on("tabs:copy:url", (e) => v(e.index));
133
+ }
134
+ export {
135
+ ve as initializeAppEventHandlers
136
+ };
@@ -0,0 +1,135 @@
1
+ import type { ScalarListboxOption } from '@scalar/components';
2
+ import type { HttpMethod } from '@scalar/helpers/http/http-methods';
3
+ import { type WorkspaceStore } from '@scalar/workspace-store/client';
4
+ import { type WorkspaceEventBus } from '@scalar/workspace-store/events';
5
+ import type { WorkspaceDocument } from '@scalar/workspace-store/schemas';
6
+ import type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments';
7
+ import type { Tab } from '@scalar/workspace-store/schemas/extensions/workspace/x-scalar-tabs';
8
+ import type { TraversedEntry } from '@scalar/workspace-store/schemas/navigation';
9
+ import { type ComputedRef, type Ref, type ShallowRef } from 'vue';
10
+ import type { RouteLocationNormalizedGeneric, Router } from 'vue-router';
11
+ import { type UseCommandPaletteStateReturn } from '../command-palette/hooks/use-command-palette-state.js';
12
+ /**
13
+ * Updates the route to reflect the currently selected workspace.
14
+ * Navigates to the workspace's main environment view, with an option to control
15
+ * whether the previous route path should be loaded via a query parameter.
16
+ *
17
+ * @param id - The workspace slug (unique identifier) to navigate to.
18
+ * @param loadFromSession - If true, includes "loadFromSession=true" in the query to indicate state/session should be restored.
19
+ */
20
+ declare const setWorkspaceId: (id?: string) => Promise<void>;
21
+ /**
22
+ * Creates a new workspace with the provided name.
23
+ * - Generates a unique ID for the workspace (sluggified from the name and guaranteed unique).
24
+ * - Adds a default blank document ("drafts") to the workspace.
25
+ * - Persists the workspace and navigates to it.
26
+ *
27
+ * Example usage:
28
+ * await createWorkspace({ name: 'My Awesome API' })
29
+ * // -> Navigates to /workspace/my-awesome-api (if available)
30
+ */
31
+ declare const createWorkspace: ({ id, name, }: {
32
+ id?: string;
33
+ name: string;
34
+ }) => Promise<{
35
+ id: string;
36
+ name: string;
37
+ } | undefined>;
38
+ declare const sidebarState: {
39
+ items: ComputedRef<TraversedEntry[]>;
40
+ index: ComputedRef<Map<string, TraversedEntry & {
41
+ parent?: TraversedEntry | undefined;
42
+ }>>;
43
+ selectedItems: import("vue").Ref<Record<string, boolean>, Record<string, boolean>>;
44
+ expandedItems: import("vue").Ref<Record<string, boolean>, Record<string, boolean>>;
45
+ selectedItem: import("vue").Ref<string | null, string | null>;
46
+ setSelected: (id: string | null) => void;
47
+ setExpanded: (id: string, value: boolean) => void;
48
+ isExpanded: (id: string) => boolean;
49
+ isSelected: (id: string) => boolean;
50
+ getEntryById: (id: string) => (TraversedEntry & {
51
+ parent?: TraversedEntry | undefined;
52
+ }) | undefined;
53
+ reset: () => void;
54
+ };
55
+ /**
56
+ * Looks up a sidebar entry by its unique API location.
57
+ * - First tries to find an entry matching all provided properties (including example).
58
+ * - If not found, falls back to matching only the operation (ignores example field).
59
+ * This allows resolving either examples, operations, or documents as appropriate.
60
+ *
61
+ * @param location - Object specifying the document name, path, method, and optional example name.
62
+ * @returns The matching sidebar entry, or undefined if none found.
63
+ *
64
+ * Example:
65
+ * const entry = getEntryByLocation({
66
+ * document: 'pets',
67
+ * path: '/pets',
68
+ * method: 'get',
69
+ * example: 'default',
70
+ * })
71
+ */
72
+ declare const getEntryByLocation: GetEntryByLocation;
73
+ export type GetEntryByLocation = (location: {
74
+ document: string;
75
+ path?: string;
76
+ method?: HttpMethod;
77
+ example?: string;
78
+ }) => (TraversedEntry & {
79
+ parent?: TraversedEntry | undefined;
80
+ }) | undefined;
81
+ /**
82
+ * Handles item selection from the sidebar and routes navigation accordingly.
83
+ *
84
+ * Example:
85
+ * handleSelectItem('id-of-entry')
86
+ */
87
+ declare const handleSelectItem: (id: string) => Promise<void | import("vue-router").NavigationFailure | undefined> | undefined;
88
+ /** Handler for sidebar width changes. */
89
+ declare const handleSidebarWidthUpdate: (width: number) => void | undefined;
90
+ /**
91
+ * Copies the URL of the tab at the given index to the clipboard.
92
+ * Constructs the full URL using the current origin and the tab path.
93
+ *
94
+ * @throws Will silently fail if clipboard API is unavailable or the tab does not exist.
95
+ */
96
+ declare const copyTabUrl: (index: number) => Promise<void>;
97
+ export declare function useAppState(): {
98
+ store: ShallowRef<WorkspaceStore | null>;
99
+ sidebar: {
100
+ state: typeof sidebarState;
101
+ width: ComputedRef<number>;
102
+ isOpen: Ref<boolean>;
103
+ handleSelectItem: typeof handleSelectItem;
104
+ handleSidebarWidthUpdate: typeof handleSidebarWidthUpdate;
105
+ getEntryByLocation: typeof getEntryByLocation;
106
+ };
107
+ tabs: {
108
+ state: Ref<Tab[]>;
109
+ activeTabIndex: Ref<number>;
110
+ copyTabUrl: typeof copyTabUrl;
111
+ };
112
+ workspace: {
113
+ create: typeof createWorkspace;
114
+ workspaceList: Ref<ScalarListboxOption[]>;
115
+ activeWorkspace: ShallowRef<ScalarListboxOption | null>;
116
+ setId: typeof setWorkspaceId;
117
+ isOpen: ComputedRef<boolean>;
118
+ };
119
+ commandPalette: UseCommandPaletteStateReturn;
120
+ eventBus: WorkspaceEventBus;
121
+ router: ShallowRef<Router | null>;
122
+ currentRoute: Ref<RouteLocationNormalizedGeneric | null>;
123
+ loading: Ref<boolean>;
124
+ activeEntities: {
125
+ workspaceSlug: Ref<string | undefined>;
126
+ documentSlug: Ref<string | undefined>;
127
+ path: Ref<string | undefined>;
128
+ method: Ref<HttpMethod | undefined>;
129
+ exampleName: Ref<string | undefined>;
130
+ };
131
+ environment: ComputedRef<XScalarEnvironment>;
132
+ document: ComputedRef<WorkspaceDocument | null>;
133
+ };
134
+ export {};
135
+ //# sourceMappingURL=app-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-state.d.ts","sourceRoot":"","sources":["../../../../src/v2/features/app/app-state.ts"],"names":[],"mappings":"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"}