@scalar/api-reference 1.37.0 → 1.38.1
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.
- package/CHANGELOG.md +68 -0
- package/dist/browser/standalone.js +20061 -17877
- package/dist/browser/webpack-stats.json +1 -1
- package/dist/components/Content/Tags/Tag.vue.d.ts.map +1 -1
- package/dist/components/Content/Tags/Tag.vue.js +22 -11
- package/dist/components/GettingStarted.vue.d.ts.map +1 -1
- package/dist/components/GettingStarted.vue.js +2 -2
- package/dist/components/GettingStarted.vue2.js +22 -22
- package/dist/esm.d.ts +2 -2
- package/dist/esm.d.ts.map +1 -1
- package/dist/features/api-client-modal/ApiClientModal.vue.d.ts.map +1 -1
- package/dist/features/api-client-modal/useApiClient.d.ts +72 -72
- package/dist/features/api-client-modal/useApiClient.d.ts.map +1 -1
- package/dist/features/document-source/hooks/useDocumentFetcher.d.ts +2 -2
- package/dist/features/document-source/hooks/useDocumentFetcher.d.ts.map +1 -1
- package/dist/features/document-source/hooks/useDocumentSource.d.ts +2 -2
- package/dist/features/document-source/hooks/useDocumentSource.d.ts.map +1 -1
- package/dist/features/document-source/hooks/useDocumentSource.js +38 -34
- package/dist/features/example-responses/ExampleResponse.vue.d.ts.map +1 -1
- package/dist/features/example-responses/ExampleResponse.vue.js +2 -2
- package/dist/features/example-responses/ExampleResponse.vue2.js +23 -19
- package/dist/features/multiple-documents/DocumentSelector.vue.d.ts +2 -2
- package/dist/features/multiple-documents/DocumentSelector.vue.d.ts.map +1 -1
- package/dist/features/multiple-documents/useMultipleDocuments.d.ts +4 -4
- package/dist/features/multiple-documents/useMultipleDocuments.d.ts.map +1 -1
- package/dist/features/multiple-documents/useMultipleDocuments.js +2 -2
- package/dist/hooks/useFreezing.d.ts.map +1 -1
- package/dist/hooks/useFreezing.js +18 -18
- package/dist/index.js +1 -1
- package/dist/standalone/lib/html-api.d.ts +3 -3
- package/dist/standalone/lib/html-api.d.ts.map +1 -1
- package/dist/standalone/lib/register-globals.d.ts.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/v2/ApiReferenceWorkspace.vue.d.ts.map +1 -1
- package/dist/v2/ApiReferenceWorkspace.vue.js +94 -83
- package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.d.ts.map +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.js +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue2.js +18 -19
- package/dist/v2/helpers/map-configuration.d.ts +2 -2
- package/dist/v2/hooks/use-workspace-store-events.d.ts +2 -1
- package/dist/v2/hooks/use-workspace-store-events.d.ts.map +1 -1
- package/dist/v2/hooks/use-workspace-store-events.js +9 -9
- package/package.json +20 -20
- package/dist/blocks/constants.d.ts +0 -9
- package/dist/blocks/constants.d.ts.map +0 -1
- package/dist/blocks/helpers/getPointer.d.ts +0 -22
- package/dist/blocks/helpers/getPointer.d.ts.map +0 -1
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AnyApiReferenceConfiguration, ApiReferenceConfiguration } from '@scalar/types/api-reference';
|
|
1
|
+
import type { AnyApiReferenceConfiguration, ApiReferenceConfiguration, ApiReferenceConfigurationWithSource } from '@scalar/types/api-reference';
|
|
2
2
|
import type { OpenAPIV3_1 } from '@scalar/types/legacy';
|
|
3
3
|
import type { WorkspaceStore } from '@scalar/workspace-store/client';
|
|
4
4
|
export type { ApiReferenceConfiguration };
|
|
@@ -9,7 +9,7 @@ export type ReferenceProps = {
|
|
|
9
9
|
* Before the configuration is parsed, we can use the broader types.
|
|
10
10
|
*/
|
|
11
11
|
export type ReferenceLayoutProps = {
|
|
12
|
-
configuration: Partial<
|
|
12
|
+
configuration: Partial<ApiReferenceConfigurationWithSource>;
|
|
13
13
|
/**
|
|
14
14
|
*
|
|
15
15
|
* The OpenAPI 3.1 document, but all $ref's are resolved already.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,yBAAyB,EACzB,mCAAmC,EACpC,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,YAAY,EAAE,yBAAyB,EAAE,CAAA;AAEzC,MAAM,MAAM,cAAc,GAAG;IAC3B,aAAa,CAAC,EAAE,4BAA4B,CAAA;CAC7C,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,OAAO,CAAC,mCAAmC,CAAC,CAAA;IAC3D;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAA;IAC3C;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,KAAK,EAAE,cAAc,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,eAAe,CAAA;AAEjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;QACf,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,UAAU,CAAC,EAAE,iBAAiB,CAAA;KAC/B,CAAA;CACF,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,UAAU,EAAE,iBAAiB,CAAA;KAC9B,CAAA;CACF,CAAA;AACD,2DAA2D;AAC3D,MAAM,MAAM,mBAAmB,GAC3B,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,aAAa,GACb,eAAe,GACf,aAAa,CAAA;AAEjB,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,mBAAmB,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,GAAG;CAC/D,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,mBAAmB,EAAE,GAAG,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiReferenceWorkspace.vue.d.ts","sourceRoot":"","sources":["../../src/v2/ApiReferenceWorkspace.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ApiReferenceWorkspace.vue.d.ts","sourceRoot":"","sources":["../../src/v2/ApiReferenceWorkspace.vue"],"names":[],"mappings":"AAqXA,OAAO,KAAK,EACV,4BAA4B,EAG7B,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAyBpE,KAAK,WAAW,GAAG;IACjB,aAAa,CAAC,EAAE,4BAA4B,CAAA;IAC5C,KAAK,EAAE,cAAc,CAAA;CACtB,CAAC;AA+VF,QAAA,IAAI,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AAC9G,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACrD;IAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACnD;IAAE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACrD;IAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACnD;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AA8B/C,QAAA,MAAM,eAAe;;;;kFAOnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAQ1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
|
@@ -1,88 +1,99 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { isClient as
|
|
3
|
-
import { safeLocalStorage as
|
|
4
|
-
import { makeUrlAbsolute as
|
|
5
|
-
import { redirectToProxy as
|
|
6
|
-
import { useColorMode as
|
|
7
|
-
import { useSeoMeta as
|
|
8
|
-
import { useFavicon as
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import { NAV_STATE_SYMBOL as
|
|
12
|
-
import { getDocumentName as
|
|
13
|
-
import { mapConfiguration as
|
|
14
|
-
import { normalizeContent as
|
|
15
|
-
import { useWorkspaceStoreEvents as
|
|
16
|
-
import { useMultipleDocuments as
|
|
17
|
-
import
|
|
18
|
-
const
|
|
1
|
+
import { defineComponent as I, ref as d, toRef as N, provide as P, useTemplateRef as L, onBeforeMount as U, watch as u, computed as V, createElementBlock as A, openBlock as D, createBlock as B, createCommentVNode as _, createVNode as v, unref as n, resolveDynamicComponent as H, withCtx as i, createTextVNode as K, toDisplayString as O, renderSlot as l, isRef as F } from "vue";
|
|
2
|
+
import { isClient as b } from "@scalar/api-client/v2/blocks/operation-code-sample";
|
|
3
|
+
import { safeLocalStorage as W, REFERENCE_LS_KEYS as Y } from "@scalar/helpers/object/local-storage";
|
|
4
|
+
import { makeUrlAbsolute as z } from "@scalar/helpers/url/make-url-absolute";
|
|
5
|
+
import { redirectToProxy as j } from "@scalar/oas-utils/helpers";
|
|
6
|
+
import { useColorMode as q } from "@scalar/use-hooks/useColorMode";
|
|
7
|
+
import { useSeoMeta as G } from "@unhead/vue";
|
|
8
|
+
import { useFavicon as J } from "@vueuse/core";
|
|
9
|
+
import Q from "../components/ApiReferenceLayout.vue.js";
|
|
10
|
+
import X from "../features/toolbar/ApiReferenceToolbar.vue.js";
|
|
11
|
+
import { NAV_STATE_SYMBOL as Z } from "../hooks/useNavState.js";
|
|
12
|
+
import { getDocumentName as ee } from "./helpers/get-document-name.js";
|
|
13
|
+
import { mapConfiguration as c } from "./helpers/map-configuration.js";
|
|
14
|
+
import { normalizeContent as te } from "./helpers/normalize-content.js";
|
|
15
|
+
import { useWorkspaceStoreEvents as oe } from "./hooks/use-workspace-store-events.js";
|
|
16
|
+
import { useMultipleDocuments as re } from "../features/multiple-documents/useMultipleDocuments.js";
|
|
17
|
+
import ae from "../features/multiple-documents/DocumentSelector.vue.js";
|
|
18
|
+
const Me = /* @__PURE__ */ I({
|
|
19
19
|
__name: "ApiReferenceWorkspace",
|
|
20
20
|
props: {
|
|
21
21
|
configuration: {},
|
|
22
22
|
store: {}
|
|
23
23
|
},
|
|
24
24
|
emits: ["updateContent"],
|
|
25
|
-
setup(
|
|
26
|
-
const
|
|
27
|
-
availableDocuments:
|
|
25
|
+
setup(E) {
|
|
26
|
+
const g = E, f = d({}), {
|
|
27
|
+
availableDocuments: k,
|
|
28
28
|
selectedConfiguration: o,
|
|
29
|
-
selectedDocumentIndex:
|
|
30
|
-
isIntersectionEnabled:
|
|
31
|
-
hash:
|
|
32
|
-
hashPrefix:
|
|
33
|
-
} =
|
|
34
|
-
configuration:
|
|
35
|
-
configurationOverrides:
|
|
36
|
-
isIntersectionEnabled:
|
|
37
|
-
hash:
|
|
38
|
-
hashPrefix:
|
|
39
|
-
}),
|
|
40
|
-
|
|
29
|
+
selectedDocumentIndex: m,
|
|
30
|
+
isIntersectionEnabled: p,
|
|
31
|
+
hash: M,
|
|
32
|
+
hashPrefix: S
|
|
33
|
+
} = re({
|
|
34
|
+
configuration: N(g, "configuration"),
|
|
35
|
+
configurationOverrides: f,
|
|
36
|
+
isIntersectionEnabled: d(!1),
|
|
37
|
+
hash: d(""),
|
|
38
|
+
hashPrefix: d("")
|
|
39
|
+
}), h = (e, t) => fetch(
|
|
40
|
+
j(o.value.proxyUrl, e.toString()),
|
|
41
41
|
t
|
|
42
42
|
);
|
|
43
|
-
|
|
44
|
-
isIntersectionEnabled:
|
|
45
|
-
hash:
|
|
46
|
-
hashPrefix:
|
|
43
|
+
P(Z, {
|
|
44
|
+
isIntersectionEnabled: p,
|
|
45
|
+
hash: M,
|
|
46
|
+
hashPrefix: S,
|
|
47
47
|
basePath: () => o.value.pathRouting?.basePath,
|
|
48
48
|
generateHeadingSlug: () => o.value.generateHeadingSlug
|
|
49
49
|
});
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
const e =
|
|
53
|
-
|
|
50
|
+
const C = L("root"), r = g.store;
|
|
51
|
+
U(() => {
|
|
52
|
+
const e = W().getItem(
|
|
53
|
+
Y.SELECTED_CLIENT
|
|
54
54
|
);
|
|
55
|
-
|
|
55
|
+
b(e) && !r.workspace["x-scalar-default-client"] && r.update("x-scalar-default-client", e);
|
|
56
56
|
});
|
|
57
57
|
const x = async (e) => {
|
|
58
|
-
const t =
|
|
58
|
+
const t = te(e.content), a = ee({
|
|
59
59
|
name: e.slug || e.title,
|
|
60
60
|
url: e.url,
|
|
61
61
|
document: t
|
|
62
62
|
});
|
|
63
63
|
if (r.workspace.documents[a]) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
if (t) {
|
|
65
|
+
p.value = !1;
|
|
66
|
+
const s = await r.rebaseDocument({
|
|
67
|
+
name: a,
|
|
68
|
+
document: t,
|
|
69
|
+
config: c(e)
|
|
70
|
+
});
|
|
71
|
+
s && await r.rebaseDocument(
|
|
72
|
+
{ name: a, document: t, config: c(e) },
|
|
73
|
+
s.flatMap((T) => T[0])
|
|
74
|
+
), r.update("x-scalar-active-document", a), setTimeout(() => {
|
|
75
|
+
p.value = !0;
|
|
76
|
+
}, 300);
|
|
77
|
+
}
|
|
67
78
|
return;
|
|
68
79
|
}
|
|
69
80
|
if (t)
|
|
70
81
|
return await r.addDocument({
|
|
71
82
|
name: a,
|
|
72
83
|
document: t,
|
|
73
|
-
config:
|
|
84
|
+
config: c(e)
|
|
74
85
|
});
|
|
75
86
|
if (e.url)
|
|
76
87
|
return await r.addDocument({
|
|
77
88
|
name: e.slug ?? "default",
|
|
78
|
-
url:
|
|
89
|
+
url: z(e.url, {
|
|
79
90
|
basePath: o.value.pathRouting?.basePath
|
|
80
91
|
}),
|
|
81
|
-
fetch: e.fetch ??
|
|
82
|
-
config:
|
|
92
|
+
fetch: e.fetch ?? h,
|
|
93
|
+
config: c(e)
|
|
83
94
|
});
|
|
84
95
|
};
|
|
85
|
-
|
|
96
|
+
u(
|
|
86
97
|
[
|
|
87
98
|
() => o.value.slug,
|
|
88
99
|
() => o.value.url,
|
|
@@ -92,12 +103,12 @@ const Se = /* @__PURE__ */ w({
|
|
|
92
103
|
(e || t || a) && x(o.value);
|
|
93
104
|
},
|
|
94
105
|
{ immediate: !0 }
|
|
95
|
-
),
|
|
106
|
+
), oe(r, C, o.value), u(
|
|
96
107
|
() => o.value.defaultHttpClient,
|
|
97
108
|
(e) => {
|
|
98
109
|
if (e) {
|
|
99
|
-
const { targetKey: t, clientKey: a } = e,
|
|
100
|
-
|
|
110
|
+
const { targetKey: t, clientKey: a } = e, s = `${t}/${a}`;
|
|
111
|
+
b(s) && r.update("x-scalar-default-client", s);
|
|
101
112
|
}
|
|
102
113
|
},
|
|
103
114
|
{ immediate: !0 }
|
|
@@ -108,70 +119,70 @@ const Se = /* @__PURE__ */ w({
|
|
|
108
119
|
if (e === !1)
|
|
109
120
|
return "light";
|
|
110
121
|
}
|
|
111
|
-
const { toggleColorMode:
|
|
122
|
+
const { toggleColorMode: w, isDarkMode: $ } = q({
|
|
112
123
|
initialColorMode: y(o.value.darkMode),
|
|
113
124
|
overrideColorMode: o.value.forceDarkModeState
|
|
114
125
|
});
|
|
115
|
-
|
|
126
|
+
u(
|
|
116
127
|
() => o.value.darkMode,
|
|
117
128
|
(e) => r.update("x-scalar-dark-mode", !!e)
|
|
118
|
-
),
|
|
119
|
-
() =>
|
|
129
|
+
), u(
|
|
130
|
+
() => $.value,
|
|
120
131
|
(e) => r.update("x-scalar-dark-mode", e),
|
|
121
132
|
{ immediate: !0 }
|
|
122
|
-
),
|
|
123
|
-
() =>
|
|
133
|
+
), u(
|
|
134
|
+
() => m.value,
|
|
124
135
|
(e) => r.update(
|
|
125
136
|
"x-scalar-active-document",
|
|
126
|
-
|
|
137
|
+
k.value[e]?.slug
|
|
127
138
|
),
|
|
128
139
|
{ immediate: !0 }
|
|
129
|
-
), o.value.metaData &&
|
|
130
|
-
const
|
|
131
|
-
return
|
|
140
|
+
), o.value.metaData && G(o.value.metaData);
|
|
141
|
+
const R = V(() => o.value.favicon);
|
|
142
|
+
return J(R), (e, t) => (D(), A("div", {
|
|
132
143
|
ref_key: "root",
|
|
133
|
-
ref:
|
|
144
|
+
ref: C
|
|
134
145
|
}, [
|
|
135
|
-
n(o)?.customCss ? (
|
|
146
|
+
n(o)?.customCss ? (D(), B(H("style"), { key: 0 }, {
|
|
136
147
|
default: i(() => [
|
|
137
|
-
|
|
148
|
+
K(O(n(o).customCss), 1)
|
|
138
149
|
]),
|
|
139
150
|
_: 1
|
|
140
|
-
})) :
|
|
141
|
-
|
|
151
|
+
})) : _("", !0),
|
|
152
|
+
v(Q, {
|
|
142
153
|
configuration: n(o),
|
|
143
154
|
isDark: !!n(r).workspace["x-scalar-dark-mode"],
|
|
144
155
|
store: n(r),
|
|
145
|
-
onToggleDarkMode: t[2] || (t[2] = () => n(
|
|
156
|
+
onToggleDarkMode: t[2] || (t[2] = () => n(w)()),
|
|
146
157
|
onUpdateContent: t[3] || (t[3] = (a) => e.$emit("updateContent", a))
|
|
147
158
|
}, {
|
|
148
159
|
"document-selector": i(() => [
|
|
149
|
-
|
|
150
|
-
modelValue: n(
|
|
151
|
-
"onUpdate:modelValue": t[0] || (t[0] = (a) =>
|
|
152
|
-
options: n(
|
|
160
|
+
v(n(ae), {
|
|
161
|
+
modelValue: n(m),
|
|
162
|
+
"onUpdate:modelValue": t[0] || (t[0] = (a) => F(m) ? m.value = a : null),
|
|
163
|
+
options: n(k)
|
|
153
164
|
}, null, 8, ["modelValue", "options"])
|
|
154
165
|
]),
|
|
155
166
|
"content-start": i(() => [
|
|
156
|
-
|
|
157
|
-
overrides:
|
|
158
|
-
"onUpdate:overrides": t[1] || (t[1] = (a) =>
|
|
167
|
+
v(X, {
|
|
168
|
+
overrides: f.value,
|
|
169
|
+
"onUpdate:overrides": t[1] || (t[1] = (a) => f.value = a),
|
|
159
170
|
configuration: n(o),
|
|
160
171
|
workspace: n(r)
|
|
161
172
|
}, null, 8, ["overrides", "configuration", "workspace"]),
|
|
162
|
-
|
|
173
|
+
l(e.$slots, "content-start")
|
|
163
174
|
]),
|
|
164
175
|
"content-end": i(() => [
|
|
165
|
-
|
|
176
|
+
l(e.$slots, "content-end")
|
|
166
177
|
]),
|
|
167
178
|
"sidebar-start": i(() => [
|
|
168
|
-
|
|
179
|
+
l(e.$slots, "sidebar-start")
|
|
169
180
|
]),
|
|
170
181
|
"sidebar-end": i(() => [
|
|
171
|
-
|
|
182
|
+
l(e.$slots, "sidebar-end")
|
|
172
183
|
]),
|
|
173
184
|
footer: i(() => [
|
|
174
|
-
|
|
185
|
+
l(e.$slots, "footer")
|
|
175
186
|
]),
|
|
176
187
|
_: 3
|
|
177
188
|
}, 8, ["configuration", "isDark", "store"])
|
|
@@ -179,5 +190,5 @@ const Se = /* @__PURE__ */ w({
|
|
|
179
190
|
}
|
|
180
191
|
});
|
|
181
192
|
export {
|
|
182
|
-
|
|
193
|
+
Me as default
|
|
183
194
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthSelector.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AuthSelector.vue.d.ts","sourceRoot":"","sources":["../../../../../src/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue"],"names":[],"mappings":"AA2YA,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAsBzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AACnF,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EAET,MAAM,EACP,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAQrE,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,MAAM,EAAE,QAAQ,GAAG,WAAW,CAAA;IAC9B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IACjC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,SAAS,CAAA;CACrB,CAAC;;AAuhBF,wBAMG"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import o from "./AuthSelector.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import t from "../../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-
|
|
4
|
+
const m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-780420ba"]]);
|
|
5
5
|
export {
|
|
6
6
|
m as default
|
|
7
7
|
};
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { defineComponent as N, useId as M, ref as x, computed as y, useTemplateRef as K, createBlock as D, openBlock as u, unref as n, withCtx as c, createVNode as m, createElementVNode as a, createElementBlock as h, Fragment as k, createTextVNode as C, toDisplayString as v, createCommentVNode as L, withModifiers as z, normalizeClass as j } from "vue";
|
|
2
|
-
import { ViewLayoutCollapse as
|
|
3
|
-
import { useLayout as
|
|
4
|
-
import { useWorkspace as
|
|
5
|
-
import { getSecurityRequirements as
|
|
2
|
+
import { ViewLayoutCollapse as Y } from "@scalar/api-client/components/ViewLayout";
|
|
3
|
+
import { useLayout as F } from "@scalar/api-client/hooks";
|
|
4
|
+
import { useWorkspace as H } from "@scalar/api-client/store";
|
|
5
|
+
import { getSecurityRequirements as J, formatComplexScheme as P, formatScheme as W, getSchemeOptions as G } from "@scalar/api-client/views/Request/libs";
|
|
6
6
|
import { useModal as Q, ScalarComboboxMultiselect as X, ScalarButton as Z, ScalarListboxCheckbox as _, ScalarIconButton as ee } from "@scalar/components";
|
|
7
7
|
import { safeLocalStorage as te, CLIENT_LS_KEYS as oe } from "@scalar/helpers/object/local-storage";
|
|
8
8
|
import { ScalarIconCaretDown as le, ScalarIconTrash as ne } from "@scalar/icons";
|
|
9
9
|
import { isDefined as re } from "@scalar/oas-utils/helpers";
|
|
10
|
-
import { emitCustomEvent as
|
|
10
|
+
import { emitCustomEvent as w } from "@scalar/workspace-store/events";
|
|
11
11
|
import ae from "./DeleteRequestAuthModal.vue.js";
|
|
12
12
|
import se from "./RequestAuthDataTable.vue.js";
|
|
13
|
-
const ie = ["id"], ue = { class: "flex flex-1" }, ce = { class: "min-w-0 flex-1 truncate" },
|
|
13
|
+
const ie = ["id"], ue = { class: "flex flex-1" }, ce = { class: "min-w-0 flex-1 truncate" }, we = /* @__PURE__ */ N({
|
|
14
14
|
__name: "AuthSelector",
|
|
15
15
|
props: {
|
|
16
16
|
collection: {},
|
|
@@ -25,10 +25,10 @@ const ie = ["id"], ue = { class: "flex flex-1" }, ce = { class: "min-w-0 flex-1
|
|
|
25
25
|
workspace: {}
|
|
26
26
|
},
|
|
27
27
|
setup(r) {
|
|
28
|
-
const { layout:
|
|
28
|
+
const { layout: A } = F(), { securitySchemes: p } = H(), R = M(), S = x(null), d = Q(), b = x(
|
|
29
29
|
null
|
|
30
30
|
), V = x(!1), q = y(() => {
|
|
31
|
-
const t =
|
|
31
|
+
const t = J(r.operation, r.collection);
|
|
32
32
|
return { filteredRequirements: t.filter((o) => Object.keys(o).length), requirements: t };
|
|
33
33
|
}), g = y(() => {
|
|
34
34
|
const { filteredRequirements: t, requirements: e } = q.value;
|
|
@@ -41,10 +41,10 @@ const ie = ["id"], ue = { class: "flex flex-1" }, ce = { class: "min-w-0 flex-1
|
|
|
41
41
|
}), s = y(
|
|
42
42
|
() => r.selectedSecuritySchemeUids.map((t) => {
|
|
43
43
|
if (Array.isArray(t))
|
|
44
|
-
return
|
|
44
|
+
return P(t, p);
|
|
45
45
|
const e = p[t ?? ""];
|
|
46
46
|
if (e)
|
|
47
|
-
return
|
|
47
|
+
return W(e);
|
|
48
48
|
}).filter(re)
|
|
49
49
|
);
|
|
50
50
|
function T(t) {
|
|
@@ -52,13 +52,13 @@ const ie = ["id"], ue = { class: "flex flex-1" }, ce = { class: "min-w-0 flex-1
|
|
|
52
52
|
const i = l.split(",");
|
|
53
53
|
return i.length > 1 ? i : l;
|
|
54
54
|
});
|
|
55
|
-
e?.payload && (
|
|
55
|
+
e?.payload && (w(f.value?.$el, "scalar-add-auth-option", {
|
|
56
56
|
payload: e.payload
|
|
57
57
|
}), e.payload.uid && o.push(e.payload.uid)), O(o);
|
|
58
58
|
}
|
|
59
59
|
const O = (t) => {
|
|
60
60
|
if (r.collection.useCollectionSecurity) {
|
|
61
|
-
if (
|
|
61
|
+
if (w(f.value?.$el, "scalar-select-security-schemes", {
|
|
62
62
|
uids: t
|
|
63
63
|
}), !r.persistAuth)
|
|
64
64
|
return;
|
|
@@ -67,7 +67,7 @@ const ie = ["id"], ue = { class: "flex flex-1" }, ce = { class: "min-w-0 flex-1
|
|
|
67
67
|
oe.SELECTED_SECURITY_SCHEMES,
|
|
68
68
|
JSON.stringify(e)
|
|
69
69
|
);
|
|
70
|
-
} else r.operation?.uid &&
|
|
70
|
+
} else r.operation?.uid && w(
|
|
71
71
|
f.value?.$el,
|
|
72
72
|
"scalar-select-operation-security-schemes",
|
|
73
73
|
{
|
|
@@ -92,12 +92,12 @@ const ie = ["id"], ue = { class: "flex flex-1" }, ce = { class: "min-w-0 flex-1
|
|
|
92
92
|
q.value.filteredRequirements,
|
|
93
93
|
r.collection?.securitySchemes ?? [],
|
|
94
94
|
p,
|
|
95
|
-
|
|
95
|
+
A === "modal" || r.layout === "reference"
|
|
96
96
|
)
|
|
97
97
|
), B = (t) => {
|
|
98
98
|
V.value && t.stopPropagation(), S.value?.$el.click();
|
|
99
99
|
}, f = K("wrapperRef");
|
|
100
|
-
return (t, e) => (u(), D(n(
|
|
100
|
+
return (t, e) => (u(), D(n(Y), {
|
|
101
101
|
ref_key: "wrapperRef",
|
|
102
102
|
ref: f,
|
|
103
103
|
class: "group/params relative",
|
|
@@ -136,7 +136,7 @@ const ie = ["id"], ue = { class: "flex flex-1" }, ce = { class: "min-w-0 flex-1
|
|
|
136
136
|
selected: l
|
|
137
137
|
}, null, 8, ["selected"]),
|
|
138
138
|
a("div", ce, v(o.label), 1),
|
|
139
|
-
o.isDeletable ?? (n(
|
|
139
|
+
o.isDeletable ?? (n(A) !== "modal" && t.layout !== "reference") ? (u(), D(n(ee), {
|
|
140
140
|
key: 0,
|
|
141
141
|
class: "-m-0.5 shrink-0 p-0.5 opacity-0 group-hover/item:opacity-100",
|
|
142
142
|
icon: n(ne),
|
|
@@ -150,8 +150,7 @@ const ie = ["id"], ue = { class: "flex flex-1" }, ce = { class: "min-w-0 flex-1
|
|
|
150
150
|
ref_key: "comboboxButtonRef",
|
|
151
151
|
ref: S,
|
|
152
152
|
"aria-describedby": n(R),
|
|
153
|
-
class: "group/combobox-button hover:text-c-1 text-c-2 flex h-fit items-center gap-1 px-0.75 py-0.25 text-base font-normal transition-transform",
|
|
154
|
-
fullWidth: "",
|
|
153
|
+
class: "group/combobox-button hover:text-c-1 text-c-2 flex h-fit w-full items-center gap-1 px-0.75 py-0.25 text-base font-normal transition-transform",
|
|
155
154
|
variant: "ghost"
|
|
156
155
|
}, {
|
|
157
156
|
default: c(() => [
|
|
@@ -200,5 +199,5 @@ const ie = ["id"], ue = { class: "flex flex-1" }, ce = { class: "min-w-0 flex-1
|
|
|
200
199
|
}
|
|
201
200
|
});
|
|
202
201
|
export {
|
|
203
|
-
|
|
202
|
+
we as default
|
|
204
203
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ApiReferenceConfiguration } from '@scalar/types';
|
|
2
2
|
/**
|
|
3
|
-
* Maps a partial
|
|
3
|
+
* Maps a partial ApiReferenceConfigurationWithMultipleSources object to a DocumentConfiguration
|
|
4
4
|
* for use in the API Reference. This function transforms configuration options
|
|
5
5
|
* into the expected structure for the 'x-scalar-reference-config' property.
|
|
6
6
|
*
|
|
@@ -35,7 +35,7 @@ export declare const mapConfiguration: (config: Partial<ApiReferenceConfiguratio
|
|
|
35
35
|
};
|
|
36
36
|
settings: {
|
|
37
37
|
proxyUrl: string | undefined;
|
|
38
|
-
searchKey: "a" | "b" | "i" | "p" | "q" | "s" | "u" | "g" | "c" | "
|
|
38
|
+
searchKey: "a" | "b" | "i" | "p" | "q" | "s" | "u" | "g" | "c" | "d" | "e" | "f" | "h" | "j" | "k" | "l" | "m" | "n" | "o" | "r" | "t" | "v" | "w" | "x" | "y" | "z" | undefined;
|
|
39
39
|
baseServerUrl: string | undefined;
|
|
40
40
|
servers: any[] | undefined;
|
|
41
41
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import type { ApiReferenceConfiguration } from '@scalar/types/api-reference';
|
|
1
2
|
import { type WorkspaceStore } from '@scalar/workspace-store/client';
|
|
2
3
|
import type { Ref } from 'vue';
|
|
3
|
-
export declare const useWorkspaceStoreEvents: (store: WorkspaceStore, root: Ref<HTMLElement | null
|
|
4
|
+
export declare const useWorkspaceStoreEvents: (store: WorkspaceStore, root: Ref<HTMLElement | null>, configuration: ApiReferenceConfiguration) => void;
|
|
4
5
|
//# sourceMappingURL=use-workspace-store-events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-workspace-store-events.d.ts","sourceRoot":"","sources":["../../../src/v2/hooks/use-workspace-store-events.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"use-workspace-store-events.d.ts","sourceRoot":"","sources":["../../../src/v2/hooks/use-workspace-store-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,gCAAgC,CAAA;AAE5F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAE9B,eAAO,MAAM,uBAAuB,GAClC,OAAO,cAAc,EACrB,MAAM,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,EAC7B,eAAe,yBAAyB,SA4GzC,CAAA"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { safeLocalStorage as
|
|
2
|
-
import { generateClientMutators as
|
|
1
|
+
import { safeLocalStorage as d, REFERENCE_LS_KEYS as u } from "@scalar/helpers/object/local-storage";
|
|
2
|
+
import { generateClientMutators as n } from "@scalar/workspace-store/client";
|
|
3
3
|
import { onCustomEvent as c } from "@scalar/workspace-store/events";
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const f = (r, t, i) => {
|
|
5
|
+
const v = n(r);
|
|
6
6
|
c(t, "scalar-update-dark-mode", (e) => {
|
|
7
7
|
r.update("x-scalar-dark-mode", e.detail.value);
|
|
8
8
|
}), c(t, "scalar-update-active-document", (e) => {
|
|
9
9
|
r.update("x-scalar-active-document", e.detail.value);
|
|
10
10
|
}), c(t, "scalar-update-selected-client", (e) => {
|
|
11
|
-
r.update("x-scalar-default-client", e.detail),
|
|
11
|
+
r.update("x-scalar-default-client", e.detail), d().setItem(u.SELECTED_CLIENT, e.detail);
|
|
12
12
|
}), c(t, "scalar-replace-servers", (e) => {
|
|
13
13
|
const a = r.workspace.activeDocument;
|
|
14
14
|
a && (a.servers = e.detail.servers, a["x-scalar-active-server"] = e.detail.servers.at(-1)?.url);
|
|
15
15
|
}), c(t, "scalar-update-selected-server", (e) => {
|
|
16
16
|
const a = r.workspace.activeDocument;
|
|
17
|
-
a && (a["x-scalar-active-server"] = e.detail.value);
|
|
17
|
+
a && (a["x-scalar-active-server"] = e.detail.value), i.onServerChange && i.onServerChange(e.detail.value ?? "");
|
|
18
18
|
}), c(t, "store-update-selected-server-properties", (e) => {
|
|
19
19
|
const a = r.workspace.activeDocument;
|
|
20
20
|
if (!a)
|
|
@@ -28,13 +28,13 @@ const p = (r, t) => {
|
|
|
28
28
|
const s = a.servers?.find((l) => l.url === a["x-scalar-active-server"]);
|
|
29
29
|
s && s.variables?.[e.detail.key] && (s.variables[e.detail.key].default = e.detail.value);
|
|
30
30
|
}), c(t, "scalar-add-server", (e) => {
|
|
31
|
-
|
|
31
|
+
v.active().serverMutators.addServer(e.detail.server);
|
|
32
32
|
const a = r.workspace.activeDocument;
|
|
33
33
|
a && (a["x-scalar-active-server"] = e.detail.server.url);
|
|
34
34
|
}), c(t, "scalar-delete-server", (e) => {
|
|
35
|
-
|
|
35
|
+
v.active().serverMutators.deleteServer(e.detail.url);
|
|
36
36
|
});
|
|
37
37
|
};
|
|
38
38
|
export {
|
|
39
|
-
|
|
39
|
+
f as useWorkspaceStoreEvents
|
|
40
40
|
};
|
package/package.json
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"vue",
|
|
21
21
|
"vue3"
|
|
22
22
|
],
|
|
23
|
-
"version": "1.
|
|
23
|
+
"version": "1.38.1",
|
|
24
24
|
"engines": {
|
|
25
25
|
"node": ">=20"
|
|
26
26
|
},
|
|
@@ -53,30 +53,30 @@
|
|
|
53
53
|
"js-base64": "^3.7.8",
|
|
54
54
|
"microdiff": "^1.5.0",
|
|
55
55
|
"nanoid": "5.1.5",
|
|
56
|
-
"type-fest": "
|
|
56
|
+
"type-fest": "5.0.0",
|
|
57
57
|
"vue": "^3.5.17",
|
|
58
58
|
"zod": "4.1.11",
|
|
59
|
-
"@scalar/api-client": "2.
|
|
60
|
-
"@scalar/helpers": "0.0.
|
|
61
|
-
"@scalar/components": "0.
|
|
62
|
-
"@scalar/icons": "0.4.7",
|
|
59
|
+
"@scalar/api-client": "2.8.1",
|
|
60
|
+
"@scalar/helpers": "0.0.12",
|
|
61
|
+
"@scalar/components": "0.15.1",
|
|
63
62
|
"@scalar/code-highlight": "0.2.0",
|
|
64
|
-
"@scalar/
|
|
65
|
-
"@scalar/
|
|
66
|
-
"@scalar/object-utils": "1.2.
|
|
67
|
-
"@scalar/
|
|
68
|
-
"@scalar/openapi-
|
|
69
|
-
"@scalar/
|
|
70
|
-
"@scalar/
|
|
71
|
-
"@scalar/
|
|
72
|
-
"@scalar/
|
|
63
|
+
"@scalar/oas-utils": "0.5.2",
|
|
64
|
+
"@scalar/icons": "0.4.7",
|
|
65
|
+
"@scalar/object-utils": "1.2.8",
|
|
66
|
+
"@scalar/json-magic": "0.6.1",
|
|
67
|
+
"@scalar/openapi-types": "0.5.0",
|
|
68
|
+
"@scalar/openapi-parser": "0.22.3",
|
|
69
|
+
"@scalar/openapi-upgrader": "0.1.3",
|
|
70
|
+
"@scalar/snippetz": "0.5.1",
|
|
71
|
+
"@scalar/themes": "0.13.22",
|
|
73
72
|
"@scalar/use-hooks": "0.2.5",
|
|
73
|
+
"@scalar/types": "0.3.2",
|
|
74
74
|
"@scalar/use-toasts": "0.8.0",
|
|
75
|
-
"@scalar/workspace-store": "0.
|
|
75
|
+
"@scalar/workspace-store": "0.17.1"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
78
|
"@hono/node-server": "^1.11.0",
|
|
79
|
-
"@playwright/test": "1.
|
|
79
|
+
"@playwright/test": "1.56.0",
|
|
80
80
|
"@tailwindcss/vite": "^4.1.7",
|
|
81
81
|
"@types/react": "^19.1.8",
|
|
82
82
|
"@types/react-dom": "^19.1.6",
|
|
@@ -93,8 +93,8 @@
|
|
|
93
93
|
"vite-plugin-css-injected-by-js": "^3.4.0",
|
|
94
94
|
"vitest": "3.2.4",
|
|
95
95
|
"@scalar/build-tooling": "0.2.7",
|
|
96
|
-
"@scalar/core": "0.3.
|
|
97
|
-
"@scalar/galaxy": "0.5.
|
|
96
|
+
"@scalar/core": "0.3.20",
|
|
97
|
+
"@scalar/galaxy": "0.5.9",
|
|
98
98
|
"@scalar/react-renderer": "0.2.1"
|
|
99
99
|
},
|
|
100
100
|
"scripts": {
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
"test:benchmark:compare": "vitest bench --compare test-results/test-benchmark.json",
|
|
116
116
|
"test:benchmark:save": "vitest bench --outputJson test-results/test-benchmark.json",
|
|
117
117
|
"test:e2e": "playwright test",
|
|
118
|
-
"test:e2e:playwright": "docker run --network=host -e PORT=5001 -p 5001:5001 scalarapi/playwright:1.
|
|
118
|
+
"test:e2e:playwright": "docker run --network=host -e PORT=5001 -p 5001:5001 scalarapi/playwright:1.56.0",
|
|
119
119
|
"test:e2e:report": "playwright show-report",
|
|
120
120
|
"test:e2e:snapshots": "PW_TEST_CONNECT_WS_ENDPOINT=ws://127.0.0.1:5001/ playwright test -c playwright.snapshots.config.ts",
|
|
121
121
|
"test:e2e:snapshots:ci": "playwright test -c playwright.snapshots.config.ts",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/blocks/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;CAMlB,CAAA;AAED,eAAO,MAAM,QAAQ;;CAEpB,CAAA"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { OpenAPI } from '@scalar/openapi-types';
|
|
2
|
-
/**
|
|
3
|
-
* Pass an array of strings to get a valid OpenAPI pointer.
|
|
4
|
-
*
|
|
5
|
-
* Works with any path, but is typed to allow the paths that we support.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ['paths', '/planets/{foo}', 'get'] > '#/paths/~1planets~1{foo}/get'
|
|
9
|
-
* ['components', 'schemas', 'Planet] > '#/components/schemas/Planet'
|
|
10
|
-
*/
|
|
11
|
-
type ValidOpenApiPaths = ['paths' | 'webhooks', string, Lowercase<OpenAPI.HttpMethod> | string] | ['components', 'schemas', string];
|
|
12
|
-
/**
|
|
13
|
-
* Encodes a location string with paths
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* getPointer(['paths', '/planets/{foo}', 'get'])
|
|
17
|
-
*
|
|
18
|
-
* '#/paths/~1planets~1{foo}/get'
|
|
19
|
-
*/
|
|
20
|
-
export declare function getPointer(path: ValidOpenApiPaths): `#/${string}`;
|
|
21
|
-
export {};
|
|
22
|
-
//# sourceMappingURL=getPointer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getPointer.d.ts","sourceRoot":"","sources":["../../../src/blocks/helpers/getPointer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAIpD;;;;;;;;GAQG;AACH,KAAK,iBAAiB,GAClB,CAAC,OAAO,GAAG,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GACtE,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;AAErC;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAY9B,KAAK,MAAM,EAAE,CAChC"}
|