@scalar/api-reference 1.33.0 → 1.34.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 (146) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/browser/standalone.js +13260 -13196
  3. package/dist/browser/webpack-stats.json +1 -1
  4. package/dist/components/Anchor/WithBreadcrumb.vue.d.ts +24 -0
  5. package/dist/components/Anchor/WithBreadcrumb.vue.d.ts.map +1 -0
  6. package/dist/components/Anchor/WithBreadcrumb.vue.js +4 -0
  7. package/dist/components/Anchor/WithBreadcrumb.vue2.js +46 -0
  8. package/dist/components/Anchor/index.d.ts +1 -0
  9. package/dist/components/Anchor/index.d.ts.map +1 -1
  10. package/dist/components/ApiReferenceLayout.vue.d.ts.map +1 -1
  11. package/dist/components/ApiReferenceLayout.vue.js +1 -1
  12. package/dist/components/ApiReferenceLayout.vue2.js +184 -201
  13. package/dist/components/Content/Introduction/Introduction.vue.d.ts.map +1 -1
  14. package/dist/components/Content/Introduction/Introduction.vue.js +1 -1
  15. package/dist/components/Content/Introduction/Introduction.vue2.js +1 -0
  16. package/dist/components/Content/Operations/TraversedEntry.vue.d.ts +1 -0
  17. package/dist/components/Content/Operations/TraversedEntry.vue.d.ts.map +1 -1
  18. package/dist/components/Content/Operations/TraversedEntry.vue.js +34 -32
  19. package/dist/components/Content/Operations/TraversedEntryContainer.vue.d.ts.map +1 -1
  20. package/dist/components/Content/Operations/TraversedEntryContainer.vue.js +33 -29
  21. package/dist/components/Content/Operations/get-current-index.d.ts +4 -0
  22. package/dist/components/Content/Operations/get-current-index.d.ts.map +1 -0
  23. package/dist/components/Content/Operations/get-current-index.js +16 -0
  24. package/dist/components/Content/Schema/Schema.preview.d.ts +28 -0
  25. package/dist/components/Content/Schema/Schema.preview.d.ts.map +1 -1
  26. package/dist/components/Content/Schema/Schema.vue.d.ts +2 -0
  27. package/dist/components/Content/Schema/Schema.vue.d.ts.map +1 -1
  28. package/dist/components/Content/Schema/Schema.vue.js +2 -2
  29. package/dist/components/Content/Schema/Schema.vue2.js +164 -157
  30. package/dist/components/Content/Schema/SchemaComposition.vue.d.ts +1 -0
  31. package/dist/components/Content/Schema/SchemaComposition.vue.d.ts.map +1 -1
  32. package/dist/components/Content/Schema/SchemaComposition.vue.js +58 -53
  33. package/dist/components/Content/Schema/SchemaObjectProperties.vue.d.ts +1 -0
  34. package/dist/components/Content/Schema/SchemaObjectProperties.vue.d.ts.map +1 -1
  35. package/dist/components/Content/Schema/SchemaObjectProperties.vue.js +52 -40
  36. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts +1 -0
  37. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts.map +1 -1
  38. package/dist/components/Content/Schema/SchemaProperty.vue.js +2 -2
  39. package/dist/components/Content/Schema/SchemaProperty.vue2.js +100 -87
  40. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.d.ts.map +1 -1
  41. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.js +3 -3
  42. package/dist/components/Content/Schema/SchemaPropertyHeading.vue2.js +4 -1
  43. package/dist/components/Lazy/Lazy.vue.d.ts +1 -0
  44. package/dist/components/Lazy/Lazy.vue.d.ts.map +1 -1
  45. package/dist/components/Lazy/Lazy.vue2.js +12 -11
  46. package/dist/components/Lazy/lazyBus.d.ts +5 -3
  47. package/dist/components/Lazy/lazyBus.d.ts.map +1 -1
  48. package/dist/components/OperationsList/OperationsListItem.vue.d.ts.map +1 -1
  49. package/dist/components/OperationsList/OperationsListItem.vue.js +1 -1
  50. package/dist/features/Operation/components/ContentTypeSelect.vue.d.ts +4 -4
  51. package/dist/features/Operation/components/ContentTypeSelect.vue.d.ts.map +1 -1
  52. package/dist/features/Operation/components/OperationParameters.vue.d.ts +1 -0
  53. package/dist/features/Operation/components/OperationParameters.vue.d.ts.map +1 -1
  54. package/dist/features/Operation/components/OperationParameters.vue.js +49 -43
  55. package/dist/features/Operation/components/OperationResponses.vue.d.ts +1 -0
  56. package/dist/features/Operation/components/OperationResponses.vue.d.ts.map +1 -1
  57. package/dist/features/Operation/components/OperationResponses.vue.js +4 -3
  58. package/dist/features/Operation/components/ParameterHeaders.vue.d.ts +1 -0
  59. package/dist/features/Operation/components/ParameterHeaders.vue.d.ts.map +1 -1
  60. package/dist/features/Operation/components/ParameterHeaders.vue.js +2 -2
  61. package/dist/features/Operation/components/ParameterHeaders.vue2.js +28 -26
  62. package/dist/features/Operation/components/ParameterList.vue.d.ts +1 -0
  63. package/dist/features/Operation/components/ParameterList.vue.d.ts.map +1 -1
  64. package/dist/features/Operation/components/ParameterList.vue.js +2 -2
  65. package/dist/features/Operation/components/ParameterList.vue2.js +17 -15
  66. package/dist/features/Operation/components/ParameterListItem.vue.d.ts +1 -0
  67. package/dist/features/Operation/components/ParameterListItem.vue.d.ts.map +1 -1
  68. package/dist/features/Operation/components/ParameterListItem.vue.js +2 -2
  69. package/dist/features/Operation/components/ParameterListItem.vue2.js +17 -16
  70. package/dist/features/Operation/components/RequestBody.vue.d.ts +2 -2
  71. package/dist/features/Operation/components/RequestBody.vue.d.ts.map +1 -1
  72. package/dist/features/Operation/components/RequestBody.vue.js +2 -2
  73. package/dist/features/Operation/components/RequestBody.vue2.js +47 -39
  74. package/dist/features/Operation/components/callbacks/Callback.vue.d.ts +1 -0
  75. package/dist/features/Operation/components/callbacks/Callback.vue.d.ts.map +1 -1
  76. package/dist/features/Operation/components/callbacks/Callback.vue.js +3 -3
  77. package/dist/features/Operation/components/callbacks/Callback.vue2.js +12 -11
  78. package/dist/features/Operation/components/callbacks/Callback.vue3.js +2 -2
  79. package/dist/features/Operation/layouts/ModernLayout.vue.d.ts.map +1 -1
  80. package/dist/features/Operation/layouts/ModernLayout.vue.js +1 -1
  81. package/dist/features/Operation/layouts/ModernLayout.vue2.js +63 -61
  82. package/dist/features/Search/{SearchButton.vue.d.ts → components/SearchButton.vue.d.ts} +0 -2
  83. package/dist/features/Search/components/SearchButton.vue.d.ts.map +1 -0
  84. package/dist/features/Search/components/SearchButton.vue.js +65 -0
  85. package/dist/features/Search/{SearchModal.vue.d.ts → components/SearchModal.vue.d.ts} +0 -2
  86. package/dist/features/Search/components/SearchModal.vue.d.ts.map +1 -0
  87. package/dist/features/Search/components/SearchModal.vue.js +7 -0
  88. package/dist/features/Search/components/SearchModal.vue2.js +199 -0
  89. package/dist/features/Search/helpers/create-fuse-instance.d.ts +9 -0
  90. package/dist/features/Search/helpers/create-fuse-instance.d.ts.map +1 -0
  91. package/dist/features/Search/helpers/create-fuse-instance.js +46 -0
  92. package/dist/features/Search/helpers/create-search-index.d.ts +7 -0
  93. package/dist/features/Search/helpers/create-search-index.d.ts.map +1 -0
  94. package/dist/features/Search/helpers/create-search-index.js +109 -0
  95. package/dist/features/Search/hooks/useSearchIndex.d.ts +14 -0
  96. package/dist/features/Search/hooks/useSearchIndex.d.ts.map +1 -0
  97. package/dist/features/Search/hooks/useSearchIndex.js +46 -0
  98. package/dist/features/Search/index.d.ts +2 -2
  99. package/dist/features/Search/index.d.ts.map +1 -1
  100. package/dist/features/Search/types.d.ts +15 -0
  101. package/dist/features/Search/types.d.ts.map +1 -0
  102. package/dist/features/api-client-modal/useApiClient.d.ts +14 -14
  103. package/dist/features/api-client-modal/useApiClient.d.ts.map +1 -1
  104. package/dist/features/traverse-schema/helpers/traverse-paths.d.ts +3 -1
  105. package/dist/features/traverse-schema/helpers/traverse-paths.d.ts.map +1 -1
  106. package/dist/features/traverse-schema/helpers/traverse-schemas.d.ts.map +1 -1
  107. package/dist/features/traverse-schema/helpers/traverse-schemas.js +18 -18
  108. package/dist/features/traverse-schema/helpers/traverse-tags.d.ts.map +1 -1
  109. package/dist/features/traverse-schema/helpers/traverse-webhooks.d.ts.map +1 -1
  110. package/dist/features/traverse-schema/types.d.ts +10 -6
  111. package/dist/features/traverse-schema/types.d.ts.map +1 -1
  112. package/dist/helpers/test-utils.d.ts +9 -0
  113. package/dist/helpers/test-utils.d.ts.map +1 -1
  114. package/dist/hooks/useNavState.d.ts +4 -1
  115. package/dist/hooks/useNavState.d.ts.map +1 -1
  116. package/dist/index.d.ts +0 -1
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +17 -19
  119. package/dist/libs/openapi.d.ts +11 -8
  120. package/dist/libs/openapi.d.ts.map +1 -1
  121. package/dist/libs/openapi.js +34 -55
  122. package/dist/style.css +1 -1
  123. package/dist/types.d.ts +1 -6
  124. package/dist/types.d.ts.map +1 -1
  125. package/dist/v2/ApiReferenceWorkspace.vue.d.ts.map +1 -1
  126. package/dist/v2/ApiReferenceWorkspace.vue.js +120 -111
  127. package/dist/v2/helpers/get-document-name.d.ts +13 -0
  128. package/dist/v2/helpers/get-document-name.d.ts.map +1 -0
  129. package/dist/v2/helpers/get-document-name.js +15 -0
  130. package/dist/v2/helpers/normalize-content.d.ts +3 -0
  131. package/dist/v2/helpers/normalize-content.d.ts.map +1 -0
  132. package/dist/v2/helpers/normalize-content.js +8 -0
  133. package/package.json +14 -8
  134. package/dist/features/Search/SearchButton.vue.d.ts.map +0 -1
  135. package/dist/features/Search/SearchButton.vue.js +0 -66
  136. package/dist/features/Search/SearchModal.vue.d.ts.map +0 -1
  137. package/dist/features/Search/SearchModal.vue.js +0 -7
  138. package/dist/features/Search/SearchModal.vue2.js +0 -207
  139. package/dist/features/Search/useSearchIndex.d.ts +0 -32
  140. package/dist/features/Search/useSearchIndex.d.ts.map +0 -1
  141. package/dist/features/Search/useSearchIndex.js +0 -170
  142. package/dist/helpers/parse.d.ts +0 -10
  143. package/dist/helpers/parse.d.ts.map +0 -1
  144. package/dist/helpers/parse.js +0 -81
  145. /package/dist/features/Search/{SearchButton.vue2.js → components/SearchButton.vue2.js} +0 -0
  146. /package/dist/features/Search/{SearchModal.vue3.js → components/SearchModal.vue3.js} +0 -0
@@ -1,207 +0,0 @@
1
- import { defineComponent as Y, toRef as _, ref as j, watch as M, createBlock as $, openBlock as p, unref as n, withCtx as i, createElementVNode as a, createVNode as g, withKeys as I, withModifiers as b, isRef as G, createElementBlock as R, Fragment as w, renderList as J, createSlots as Q, normalizeClass as X, createTextVNode as c, createCommentVNode as E, toDisplayString as d } from "vue";
2
- import { ScalarModal as Z, ScalarSearchInput as ee, ScalarSearchResultList as te, ScalarSearchResultItem as oe } from "@scalar/components";
3
- import { isDefined as ae } from "@scalar/helpers/array/is-defined";
4
- import { scrollToId as N } from "@scalar/helpers/dom/scroll-to-id";
5
- import { ScalarIconTerminalWindow as L, ScalarIconTag as se, ScalarIconBracketsCurly as ne, ScalarIconTextAlignLeft as re } from "@scalar/icons";
6
- import { nanoid as le } from "nanoid";
7
- import { useSearchIndex as ie } from "./useSearchIndex.js";
8
- import ce from "../sidebar/components/SidebarHttpBadge.vue.js";
9
- import { useSidebar as de } from "../sidebar/hooks/useSidebar.js";
10
- import { lazyBus as ue } from "../../components/Lazy/lazyBus.js";
11
- const me = { class: "sr-only" }, pe = { class: "inline-flex items-center gap-1" }, fe = { class: "sr-only" }, Be = /* @__PURE__ */ Y({
12
- __name: "SearchModal",
13
- props: {
14
- parsedSpec: {},
15
- modalState: {},
16
- hideModels: { type: Boolean }
17
- },
18
- setup(q) {
19
- const u = q, D = _(u, "parsedSpec"), S = le(), k = `${S}-search-result`, x = `${S}-search-instructions`, v = (o) => `${S}${o}`, {
20
- resetSearch: F,
21
- fuseSearch: H,
22
- selectedSearchIndex: r,
23
- selectedSearchResult: B,
24
- searchResultsWithPlaceholderResults: m,
25
- searchText: f
26
- } = ie({
27
- specification: D,
28
- hideModels: u.hideModels
29
- }), P = {
30
- heading: re,
31
- model: ne,
32
- req: L,
33
- tag: se,
34
- webhook: L
35
- }, U = {
36
- heading: "Document Heading",
37
- req: "Request",
38
- tag: "Tag",
39
- model: "Model",
40
- webhook: "Webhook"
41
- }, K = j(null);
42
- M(
43
- () => u.modalState.open,
44
- (o) => {
45
- o && F();
46
- }
47
- );
48
- const { setCollapsedSidebarItem: W } = de(), z = /#(tag\/[^/]*)/;
49
- function T(o) {
50
- let t = "models";
51
- const e = o.item.href.match(z);
52
- e != null && e.length && e.length > 1 && (t = e[1]), W(t, !0);
53
- const s = o.item.href.replace("#", "");
54
- if (document.getElementById(s))
55
- N(s), u.modalState.hide();
56
- else {
57
- const l = ue.on((h) => {
58
- h.loaded === s && (N(s), l(), u.modalState.hide());
59
- });
60
- }
61
- }
62
- M(r, (o) => {
63
- var s;
64
- if (typeof o != "number")
65
- return;
66
- const t = m.value[o], e = v(t == null ? void 0 : t.item.href);
67
- (s = document.getElementById(e)) == null || s.scrollIntoView({
68
- behavior: "smooth",
69
- block: "nearest"
70
- });
71
- });
72
- const V = (o) => {
73
- const t = o === "up" ? -1 : 1, e = m.value.length;
74
- if (typeof r.value == "number") {
75
- const s = (r.value + t + e) % e;
76
- r.value = s;
77
- } else
78
- r.value = t === -1 ? e - 1 : 0;
79
- };
80
- function A(o) {
81
- const t = new URL(window.location.href);
82
- return t.hash = o, t.toString();
83
- }
84
- function O() {
85
- if (!ae(r.value))
86
- return;
87
- const o = m.value;
88
- o.length !== 0 && T(o[r.value]);
89
- }
90
- return (o, t) => (p(), $(n(Z), {
91
- "aria-label": "Reference Search",
92
- state: o.modalState,
93
- variant: "search"
94
- }, {
95
- default: i(() => [
96
- a("div", {
97
- ref_key: "searchModalRef",
98
- ref: K,
99
- class: "ref-search-container",
100
- role: "search"
101
- }, [
102
- g(n(ee), {
103
- modelValue: n(f),
104
- "onUpdate:modelValue": t[0] || (t[0] = (e) => G(f) ? f.value = e : null),
105
- "aria-activedescendant": n(B) ? v(n(B).item.href) : void 0,
106
- "aria-autocomplete": "list",
107
- "aria-controls": k,
108
- "aria-describedby": x,
109
- role: "combobox",
110
- onBlur: t[1] || (t[1] = (e) => r.value = void 0),
111
- onInput: n(H),
112
- onKeydown: [
113
- t[2] || (t[2] = I(b((e) => V("down"), ["stop", "prevent"]), ["down"])),
114
- I(b(O, ["stop", "prevent"]), ["enter"]),
115
- t[3] || (t[3] = I(b((e) => V("up"), ["stop", "prevent"]), ["up"]))
116
- ]
117
- }, null, 8, ["modelValue", "aria-activedescendant", "onInput", "onKeydown"])
118
- ], 512),
119
- g(n(te), {
120
- id: k,
121
- "aria-label": "Reference Search Results",
122
- class: "ref-search-results custom-scroll",
123
- noResults: !n(m).length
124
- }, {
125
- query: i(() => [
126
- c(d(n(f)), 1)
127
- ]),
128
- default: i(() => [
129
- (p(!0), R(w, null, J(n(m), (e, s) => (p(), $(n(oe), {
130
- id: v(e.item.href),
131
- key: e.refIndex,
132
- href: A(e.item.href),
133
- icon: P[e.item.type],
134
- selected: n(r) === s,
135
- onClick: (l) => T(e),
136
- onFocus: (l) => r.value = s
137
- }, Q({
138
- default: i(() => {
139
- var l, h, y, C;
140
- return [
141
- a("span", {
142
- class: X({
143
- deprecated: (h = (l = e.item.operation) == null ? void 0 : l.information) == null ? void 0 : h.deprecated
144
- })
145
- }, [
146
- a("span", me, [
147
- c(d(U[e.item.type]) + ":  ", 1),
148
- (C = (y = e.item.operation) == null ? void 0 : y.information) != null && C.deprecated ? (p(), R(w, { key: 0 }, [
149
- c(" (Deprecated)  ")
150
- ], 64)) : E("", !0)
151
- ]),
152
- c(" " + d(e.item.title) + " ", 1),
153
- t[4] || (t[4] = a("span", { class: "sr-only" }, ",", -1))
154
- ], 2)
155
- ];
156
- }),
157
- _: 2
158
- }, [
159
- e.item.type !== "webhook" && (e.item.httpVerb || e.item.path) && e.item.path !== e.item.title ? {
160
- name: "description",
161
- fn: i(() => [
162
- a("span", pe, [
163
- e.item.type === "req" ? (p(), R(w, { key: 0 }, [
164
- g(ce, {
165
- "aria-hidden": "true",
166
- method: e.item.httpVerb ?? "get"
167
- }, null, 8, ["method"]),
168
- a("span", fe, " HTTP Method: " + d(e.item.httpVerb ?? "get"), 1)
169
- ], 64)) : E("", !0),
170
- t[5] || (t[5] = a("span", { class: "sr-only" }, "Path: ", -1)),
171
- c(" " + d(e.item.path), 1)
172
- ])
173
- ]),
174
- key: "0"
175
- } : e.item.description ? {
176
- name: "description",
177
- fn: i(() => [
178
- t[6] || (t[6] = a("span", { class: "sr-only" }, "Description: ", -1)),
179
- c(" " + d(e.item.description), 1)
180
- ]),
181
- key: "1"
182
- } : void 0
183
- ]), 1032, ["id", "href", "icon", "selected", "onClick", "onFocus"]))), 128))
184
- ]),
185
- _: 1
186
- }, 8, ["noResults"]),
187
- a("div", {
188
- id: x,
189
- class: "ref-search-meta"
190
- }, t[7] || (t[7] = [
191
- a("span", {
192
- "aria-hidden": "true",
193
- class: "contents"
194
- }, [
195
- a("span", null, "↑↓ Navigate"),
196
- a("span", null, "⏎ Select")
197
- ], -1),
198
- a("span", { class: "sr-only" }, " Press up arrow / down arrow to navigate, enter to select, type to filter results ", -1)
199
- ]))
200
- ]),
201
- _: 1
202
- }, 8, ["state"]));
203
- }
204
- });
205
- export {
206
- Be as default
207
- };
@@ -1,32 +0,0 @@
1
- import { type ParameterMap } from '../../libs/openapi.js';
2
- import type { Spec, TransformedOperation } from '@scalar/types/legacy';
3
- import { type FuseResult } from 'fuse.js';
4
- import { type Ref } from 'vue';
5
- export type EntryType = 'req' | 'webhook' | 'model' | 'heading' | 'tag';
6
- export type FuseData = {
7
- title: string;
8
- href: string;
9
- type: EntryType;
10
- operationId?: string;
11
- description: string;
12
- body?: string | string[] | ParameterMap;
13
- httpVerb?: string;
14
- path?: string;
15
- tag?: string;
16
- operation?: TransformedOperation;
17
- };
18
- /**
19
- * Creates the search index from an OpenAPI document.
20
- */
21
- export declare function useSearchIndex({ specification, hideModels, }: {
22
- specification: Ref<Spec>;
23
- hideModels?: boolean;
24
- }): {
25
- resetSearch: () => void;
26
- fuseSearch: () => void;
27
- selectedSearchIndex: Ref<number | undefined, number | undefined>;
28
- selectedSearchResult: import("vue").ComputedRef<FuseResult<FuseData> | undefined>;
29
- searchResultsWithPlaceholderResults: import("vue").ComputedRef<FuseResult<FuseData>[]>;
30
- searchText: Ref<string, string>;
31
- };
32
- //# sourceMappingURL=useSearchIndex.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSearchIndex.d.ts","sourceRoot":"","sources":["../../../src/features/Search/useSearchIndex.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAqD,MAAM,gBAAgB,CAAA;AAErG,OAAO,KAAK,EAAe,IAAI,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAa,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,KAAK,GAAG,EAAwB,MAAM,KAAK,CAAA;AAIpD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,CAAA;AAEvE,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,SAAS,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,YAAY,CAAA;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,oBAAoB,CAAA;CACjC,CAAA;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC7B,aAAa,EACb,UAAkB,GACnB,EAAE;IACD,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IACxB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;uBAsEyB,IAAI;sBAbL,IAAI;;;;;EAoM5B"}
@@ -1,170 +0,0 @@
1
- import { useNavState as W } from "../../hooks/useNavState.js";
2
- import { getHeadingsFromMarkdown as _ } from "../../libs/markdown.js";
3
- import { createParameterMap as k, extractRequestBody as A, getModels as B } from "../../libs/openapi.js";
4
- import { isHttpMethod as U } from "@scalar/helpers/http/is-http-method";
5
- import X from "fuse.js";
6
- import { ref as f, watch as H, computed as j } from "vue";
7
- const q = 25;
8
- function Z({
9
- specification: C,
10
- hideModels: L = !1
11
- }) {
12
- const { getHeadingId: O, getModelId: T, getTagId: F } = W(), a = f([]), u = f([]), s = f(), n = f(""), v = new X(a.value, {
13
- // Define searchable fields with weights to prioritize more important matches
14
- keys: [
15
- // Highest weight - titles are most descriptive
16
- { name: "title", weight: 0.7 },
17
- // Medium weight - helpful but often verbose
18
- { name: "description", weight: 0.3 },
19
- // Lowest weight - can be very long and noisy
20
- { name: "body", weight: 0.2 },
21
- // High weight - unique identifiers for operations
22
- { name: "operationId", weight: 0.6 },
23
- // Good weight - endpoint paths are searchable
24
- { name: "path", weight: 0.5 },
25
- // Medium-high weight - helps with categorization
26
- { name: "tag", weight: 0.4 },
27
- // Medium weight - useful for filtering by method
28
- { name: "httpVerb", weight: 0.3 }
29
- ],
30
- // Threshold controls how strict the matching is (0.0 = perfect match, 1.0 = very loose)
31
- // 0.3 allows for some typos and partial matches while maintaining relevance
32
- threshold: 0.3,
33
- // Maximum distance between characters that can be matched
34
- // Higher values allow matches even when characters are far apart in long text
35
- distance: 100,
36
- // Include the match score in results for debugging and potential UI enhancements
37
- includeScore: !0,
38
- // Include detailed match information showing which parts of the text matched
39
- includeMatches: !0,
40
- // Minimum number of characters that must match to be considered a result
41
- // Prevents single-character matches that are usually noise
42
- minMatchCharLength: 2,
43
- // Don't require matches to be at the beginning of strings
44
- // Makes search more flexible and user-friendly
45
- ignoreLocation: !0,
46
- // Enable advanced search syntax like 'exact' for exact matches or !exclude for exclusions
47
- useExtendedSearch: !0,
48
- // Find all possible matches in each item, not just the first one
49
- // Ensures comprehensive search results
50
- findAllMatches: !0
51
- }), y = () => {
52
- s.value = 0, u.value = v.search(n.value);
53
- };
54
- H(n, (e) => {
55
- e.length ? y() : u.value = [];
56
- });
57
- function N() {
58
- n.value = "", s.value = void 0, u.value = [];
59
- }
60
- const b = j(() => n.value.length === 0 ? a.value.slice(0, q).map((e) => ({
61
- item: e
62
- })) : u.value.slice(0, q)), P = j(
63
- () => typeof s.value == "number" ? b.value[s.value] : void 0
64
- );
65
- return H(
66
- C,
67
- (e) => {
68
- var $, x, R;
69
- a.value = [];
70
- const g = [], M = _((($ = e == null ? void 0 : e.info) == null ? void 0 : $.description) ?? "");
71
- if (M.length && (M.forEach((t) => {
72
- g.push({
73
- type: "heading",
74
- title: t.value,
75
- description: "Introduction",
76
- href: `#${O(t)}`,
77
- tag: t.slug,
78
- body: ""
79
- });
80
- }), a.value = a.value.concat(g)), (x = e == null ? void 0 : e.tags) != null && x.length)
81
- (R = e == null ? void 0 : e.tags) == null || R.forEach((t) => {
82
- const d = {
83
- title: t["x-displayName"] ?? t.name,
84
- href: `#${F(t)}`,
85
- description: t.description,
86
- type: "tag",
87
- tag: t.name,
88
- body: ""
89
- };
90
- a.value.push(d), t.operations && t.operations.forEach((o) => {
91
- var h;
92
- const r = k(o.information), l = A(o.information) || r;
93
- let i = null;
94
- typeof l != "boolean" && (i = l);
95
- const c = {
96
- type: "req",
97
- title: o.name ?? o.path,
98
- href: `#${o.id}`,
99
- operationId: (h = o.information) == null ? void 0 : h.operationId,
100
- description: o.description ?? "",
101
- httpVerb: o.httpVerb,
102
- path: o.path,
103
- tag: t.name,
104
- operation: o
105
- };
106
- i && (c.body = i), a.value.push(c);
107
- });
108
- });
109
- else if (e != null && e.paths) {
110
- const t = e.paths;
111
- Object.keys(t ?? {}).forEach((d) => {
112
- Object.keys((t == null ? void 0 : t[d]) ?? {}).forEach((o) => {
113
- var l, i;
114
- const r = (l = t == null ? void 0 : t[d]) == null ? void 0 : l[o];
115
- if (U(o) && r) {
116
- const c = k(r), h = A(r) || c;
117
- let p = null;
118
- typeof h != "boolean" && (p = h);
119
- const V = {
120
- type: "req",
121
- title: r.name ?? r.path,
122
- href: `#${r.id}`,
123
- operationId: (i = r.information) == null ? void 0 : i.operationId,
124
- description: r.description ?? "",
125
- httpVerb: r.httpVerb,
126
- path: r.path,
127
- operation: r
128
- };
129
- p && (V.body = p), a.value.push(V);
130
- }
131
- });
132
- });
133
- }
134
- const I = e == null ? void 0 : e.webhooks, E = [];
135
- I && I.forEach((t) => {
136
- E.push({
137
- type: "webhook",
138
- title: `${t.name}`,
139
- href: `#${t.id}`,
140
- description: "Webhook",
141
- httpVerb: t.httpVerb,
142
- tag: t.name,
143
- body: ""
144
- }), a.value = a.value.concat(E);
145
- });
146
- const m = L ? {} : B(e), D = [];
147
- m && (Object.keys(m).forEach((t) => {
148
- D.push({
149
- type: "model",
150
- title: `${m[t].title ?? t}`,
151
- href: `#${T({ name: t })}`,
152
- description: "Model",
153
- tag: t,
154
- body: ""
155
- });
156
- }), a.value = a.value.concat(D)), v.setCollection(a.value);
157
- },
158
- { immediate: !0 }
159
- ), {
160
- resetSearch: N,
161
- fuseSearch: y,
162
- selectedSearchIndex: s,
163
- selectedSearchResult: P,
164
- searchResultsWithPlaceholderResults: b,
165
- searchText: n
166
- };
167
- }
168
- export {
169
- Z as useSearchIndex
170
- };
@@ -1,10 +0,0 @@
1
- import type { OpenAPIV3_1 } from '@scalar/openapi-types';
2
- import type { Spec } from '@scalar/types/legacy';
3
- import type { TraversedEntry } from '../features/traverse-schema';
4
- /**
5
- * Parse the given dereferencedDocument and return a super custom transformed dereferencedDocument.
6
- *
7
- * @deprecated Try to use a store instead.
8
- */
9
- export declare const parse: (dereferencedDocument: OpenAPIV3_1.Document, items?: TraversedEntry[]) => Promise<Spec>;
10
- //# sourceMappingURL=parse.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/helpers/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,IAAI,EAAwB,MAAM,sBAAsB,CAAA;AAGtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAKhE;;;;GAIG;AACH,eAAO,MAAM,KAAK,yBAA0B,WAAW,CAAC,QAAQ,UAAU,cAAc,EAAE,KAAG,OAAO,CAAC,IAAI,CAiBrG,CAAA"}
@@ -1,81 +0,0 @@
1
- import { createEmptySpecification as w } from "../libs/openapi.js";
2
- import { normalizeHttpMethod as m } from "@scalar/helpers/http/normalize-http-method";
3
- const P = (s, i) => new Promise((e, b) => {
4
- try {
5
- return e(s ? k(s, i) : k(w()));
6
- } catch (p) {
7
- console.error("[@scalar/api-reference]", "Failed to parse the OpenAPI document. It might be invalid?"), console.error(p), b(p);
8
- }
9
- return e(k(w()));
10
- }), k = (s, i) => {
11
- let e = {};
12
- s && typeof s == "object" ? e = s : e = w(), e.tags || (e.tags = []), e.paths || (e.paths = {}), e.components || (e.components = {}), e.webhooks || (e.webhooks = {}), e.servers || (e.servers = []), e.security || (e.security = []);
13
- const b = [], p = (o) => {
14
- var h;
15
- !("children" in o) || !((h = o.children) != null && h.length) || o.children.forEach((a) => {
16
- var f, u, t, n, g, d;
17
- let r = (f = e.tags) == null ? void 0 : f.findIndex((y) => "tag" in o && y.name === o.tag.name);
18
- r === -1 && "tag" in o && (e.tags.push({
19
- name: o.tag.name,
20
- operations: []
21
- }), r = e.tags.length - 1), (u = e.tags[r]).operations || (u.operations = []), "tag" in a ? p(a) : "operation" in a ? e.tags[r].operations.push({
22
- id: a.id,
23
- httpVerb: m(a.method),
24
- path: a.path,
25
- name: a.operation.summary || a.path || "",
26
- description: a.operation.description || "",
27
- isWebhook: !1,
28
- information: a.operation,
29
- pathParameters: (n = (t = e.paths) == null ? void 0 : t[a.path ?? ""]) == null ? void 0 : n.parameters
30
- }) : "webhook" in a && e.tags[r].operations.push({
31
- id: a.id,
32
- httpVerb: m(a.method),
33
- path: a.name,
34
- name: a.webhook.summary || a.name || "",
35
- description: a.webhook.description || "",
36
- isWebhook: !0,
37
- information: a.webhook,
38
- pathParameters: (d = (g = e.webhooks) == null ? void 0 : g[a.name ?? ""]) == null ? void 0 : d.parameters
39
- });
40
- });
41
- };
42
- return i == null || i.forEach((o) => {
43
- var h, a, r, f, u;
44
- if (o.id.startsWith("tag/default") && "operation" in o) {
45
- let t = (h = e.tags) == null ? void 0 : h.findIndex((n) => n.name === "default");
46
- t === -1 && (e.tags.push({
47
- name: "default",
48
- description: "",
49
- operations: []
50
- }), t = e.tags.length - 1), e.tags[t].operations.push({
51
- id: o.id,
52
- httpVerb: m(o.method),
53
- path: o.path,
54
- name: o.operation.summary || o.path || "",
55
- description: o.operation.description || "",
56
- isWebhook: !1,
57
- information: o.operation,
58
- pathParameters: (r = (a = e.paths) == null ? void 0 : a[o.path ?? ""]) == null ? void 0 : r.parameters
59
- });
60
- }
61
- "tag" in o && o.isGroup && ((f = o.children) != null && f.length) ? o.children.forEach(p) : "tag" in o && p(o), "isWebhooks" in o && o.isWebhooks && ((u = o.children) != null && u.length) && o.children.forEach((t) => {
62
- var n, g;
63
- "webhook" in t && t.name && t.method && b.push({
64
- id: t.id,
65
- httpVerb: m(t.method),
66
- path: t.name,
67
- name: t.webhook.summary || t.name || "",
68
- description: t.webhook.description || "",
69
- isWebhook: !0,
70
- information: t.webhook,
71
- pathParameters: (g = (n = e.webhooks) == null ? void 0 : n[t.name ?? ""]) == null ? void 0 : g.parameters
72
- });
73
- });
74
- }), {
75
- ...e,
76
- webhooks: b
77
- };
78
- };
79
- export {
80
- P as parse
81
- };