@scalar/schemas 0.4.3 → 0.5.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.
- package/CHANGELOG.md +13 -0
- package/dist/api-reference/api-reference-configuration.d.ts +26 -4
- package/dist/api-reference/api-reference-configuration.d.ts.map +1 -1
- package/dist/api-reference/api-reference-configuration.js +0 -7
- package/dist/api-reference/api-reference-plugin.d.ts +13 -0
- package/dist/api-reference/api-reference-plugin.d.ts.map +1 -1
- package/dist/api-reference/api-reference-plugin.js +10 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @scalar/schemas
|
|
2
2
|
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#9478](https://github.com/scalar/scalar/pull/9478): Add `content.start` plugin view slot and `sidebar` visibility option for plugin view components.
|
|
8
|
+
- **`content.start`**: A new view slot that renders custom plugin components **before** the Introduction/Info section (at the top of the content area).
|
|
9
|
+
- **`sidebar` option on `ViewComponent`**: Plugins can now opt-in to display a sidebar entry for their custom views by providing `sidebar: { show: true, label: 'My Page' }`. Omitting `sidebar` or setting `show: false` hides the entry from the sidebar. The entry hooks into the existing navigation, so clicking it scrolls to the plugin view and it highlights as it scrolls into view.
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#9529](https://github.com/scalar/scalar/pull/9529): Remove the unused `isLoading` configuration option. It was never wired to a consumer, so it had no effect on the rendered references.
|
|
14
|
+
- [#9528](https://github.com/scalar/scalar/pull/9528): Remove the unused `onSpecUpdate` configuration option. It was never wired to a consumer, so the callback never fired.
|
|
15
|
+
|
|
3
16
|
## 0.4.3
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -51,10 +51,23 @@ export declare const apiReferenceConfigurationSchema: import("@scalar/validation
|
|
|
51
51
|
renderer: import("@scalar/validation").OptionalSchema<import("@scalar/validation").UnknownSchema>;
|
|
52
52
|
}>>[];
|
|
53
53
|
views: import("@scalar/validation").Static<import("@scalar/validation").ObjectSchema<{
|
|
54
|
+
'content.start': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").ObjectSchema<{
|
|
55
|
+
component: import("@scalar/validation").UnknownSchema;
|
|
56
|
+
renderer: import("@scalar/validation").OptionalSchema<import("@scalar/validation").UnknownSchema>;
|
|
57
|
+
props: import("@scalar/validation").OptionalSchema<import("@scalar/validation").RecordSchema<import("@scalar/validation").StringSchema, import("@scalar/validation").AnySchema>>;
|
|
58
|
+
sidebar: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ObjectSchema<{
|
|
59
|
+
show: import("@scalar/validation").BooleanSchema;
|
|
60
|
+
label: import("@scalar/validation").StringSchema;
|
|
61
|
+
}>>;
|
|
62
|
+
}>>>;
|
|
54
63
|
'content.end': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").ObjectSchema<{
|
|
55
64
|
component: import("@scalar/validation").UnknownSchema;
|
|
56
65
|
renderer: import("@scalar/validation").OptionalSchema<import("@scalar/validation").UnknownSchema>;
|
|
57
66
|
props: import("@scalar/validation").OptionalSchema<import("@scalar/validation").RecordSchema<import("@scalar/validation").StringSchema, import("@scalar/validation").AnySchema>>;
|
|
67
|
+
sidebar: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ObjectSchema<{
|
|
68
|
+
show: import("@scalar/validation").BooleanSchema;
|
|
69
|
+
label: import("@scalar/validation").StringSchema;
|
|
70
|
+
}>>;
|
|
58
71
|
}>>>;
|
|
59
72
|
}>>;
|
|
60
73
|
hooks: import("@scalar/validation").Static<import("@scalar/validation").ObjectSchema<{
|
|
@@ -69,7 +82,6 @@ export declare const apiReferenceConfigurationSchema: import("@scalar/validation
|
|
|
69
82
|
apiClientPlugins: any[];
|
|
70
83
|
}>>>;
|
|
71
84
|
isEditable: import("@scalar/validation").BooleanSchema;
|
|
72
|
-
isLoading: import("@scalar/validation").BooleanSchema;
|
|
73
85
|
hideModels: import("@scalar/validation").BooleanSchema;
|
|
74
86
|
modelsSectionLabel: import("@scalar/validation").OptionalSchema<import("@scalar/validation").UnionSchema<readonly [import("@scalar/validation").LiteralSchema<"Models">, import("@scalar/validation").LiteralSchema<"Schemas">, import("@scalar/validation").StringSchema]>>;
|
|
75
87
|
documentDownloadType: import("@scalar/validation").UnionSchema<readonly [import("@scalar/validation").LiteralSchema<"both">, import("@scalar/validation").LiteralSchema<"yaml">, import("@scalar/validation").LiteralSchema<"json">, import("@scalar/validation").LiteralSchema<"direct">, import("@scalar/validation").LiteralSchema<"none">]>;
|
|
@@ -88,7 +100,6 @@ export declare const apiReferenceConfigurationSchema: import("@scalar/validation
|
|
|
88
100
|
clientKey: import("@scalar/validation").StringSchema;
|
|
89
101
|
}>>;
|
|
90
102
|
customCss: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
91
|
-
onSpecUpdate: import("@scalar/validation").OptionalSchema<import("@scalar/validation").FunctionSchema<(input: string) => void>>;
|
|
92
103
|
onServerChange: import("@scalar/validation").OptionalSchema<import("@scalar/validation").FunctionSchema<(input: string) => void>>;
|
|
93
104
|
onDocumentSelect: import("@scalar/validation").OptionalSchema<import("@scalar/validation").FunctionSchema<() => void>>;
|
|
94
105
|
onLoaded: import("@scalar/validation").OptionalSchema<import("@scalar/validation").FunctionSchema<(slug: string) => Promise<void> | void>>;
|
|
@@ -190,7 +201,6 @@ export declare const apiReferenceConfigurationWithSourceSchema: (rawInput: unkno
|
|
|
190
201
|
} & {
|
|
191
202
|
layout: "modern" | "classic";
|
|
192
203
|
isEditable: boolean;
|
|
193
|
-
isLoading: boolean;
|
|
194
204
|
hideModels: boolean;
|
|
195
205
|
documentDownloadType: "none" | "both" | "yaml" | "json" | "direct";
|
|
196
206
|
hideTestRequestButton: boolean;
|
|
@@ -217,10 +227,23 @@ export declare const apiReferenceConfigurationWithSourceSchema: (rawInput: unkno
|
|
|
217
227
|
renderer: import("@scalar/validation").OptionalSchema<import("@scalar/validation").UnknownSchema>;
|
|
218
228
|
}>>[];
|
|
219
229
|
views: import("@scalar/validation").Static<import("@scalar/validation").ObjectSchema<{
|
|
230
|
+
'content.start': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").ObjectSchema<{
|
|
231
|
+
component: import("@scalar/validation").UnknownSchema;
|
|
232
|
+
renderer: import("@scalar/validation").OptionalSchema<import("@scalar/validation").UnknownSchema>;
|
|
233
|
+
props: import("@scalar/validation").OptionalSchema<import("@scalar/validation").RecordSchema<import("@scalar/validation").StringSchema, import("@scalar/validation").AnySchema>>;
|
|
234
|
+
sidebar: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ObjectSchema<{
|
|
235
|
+
show: import("@scalar/validation").BooleanSchema;
|
|
236
|
+
label: import("@scalar/validation").StringSchema;
|
|
237
|
+
}>>;
|
|
238
|
+
}>>>;
|
|
220
239
|
'content.end': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").ObjectSchema<{
|
|
221
240
|
component: import("@scalar/validation").UnknownSchema;
|
|
222
241
|
renderer: import("@scalar/validation").OptionalSchema<import("@scalar/validation").UnknownSchema>;
|
|
223
242
|
props: import("@scalar/validation").OptionalSchema<import("@scalar/validation").RecordSchema<import("@scalar/validation").StringSchema, import("@scalar/validation").AnySchema>>;
|
|
243
|
+
sidebar: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ObjectSchema<{
|
|
244
|
+
show: import("@scalar/validation").BooleanSchema;
|
|
245
|
+
label: import("@scalar/validation").StringSchema;
|
|
246
|
+
}>>;
|
|
224
247
|
}>>>;
|
|
225
248
|
}>>;
|
|
226
249
|
hooks: import("@scalar/validation").Static<import("@scalar/validation").ObjectSchema<{
|
|
@@ -246,7 +269,6 @@ export declare const apiReferenceConfigurationWithSourceSchema: (rawInput: unkno
|
|
|
246
269
|
clientKey: string;
|
|
247
270
|
} | undefined;
|
|
248
271
|
customCss?: string | undefined;
|
|
249
|
-
onSpecUpdate?: ((input: string) => void) | undefined;
|
|
250
272
|
onServerChange?: ((input: string) => void) | undefined;
|
|
251
273
|
onDocumentSelect?: (() => void) | undefined;
|
|
252
274
|
onLoaded?: ((slug: string) => Promise<void> | void) | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-reference-configuration.d.ts","sourceRoot":"","sources":["../../src/api-reference/api-reference-configuration.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,+BAA+B
|
|
1
|
+
{"version":3,"file":"api-reference-configuration.d.ts","sourceRoot":"","sources":["../../src/api-reference/api-reference-configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,10 +26,6 @@ export const apiReferenceConfigurationSchema = intersection([
|
|
|
26
26
|
default: false,
|
|
27
27
|
typeComment: 'Allows the user to inject an editor for the spec',
|
|
28
28
|
}),
|
|
29
|
-
isLoading: boolean({
|
|
30
|
-
default: false,
|
|
31
|
-
typeComment: 'Controls whether the references show a loading state in the intro',
|
|
32
|
-
}),
|
|
33
29
|
hideModels: boolean({
|
|
34
30
|
default: false,
|
|
35
31
|
typeComment: 'Whether to show models in the sidebar, search, and content.',
|
|
@@ -83,9 +79,6 @@ export const apiReferenceConfigurationSchema = intersection([
|
|
|
83
79
|
customCss: optional(string(), {
|
|
84
80
|
typeComment: 'Custom CSS to be added to the page',
|
|
85
81
|
}),
|
|
86
|
-
onSpecUpdate: optional(fn(), {
|
|
87
|
-
typeComment: 'onSpecUpdate is fired on spec/swagger content change',
|
|
88
|
-
}),
|
|
89
82
|
onServerChange: optional(fn(), {
|
|
90
83
|
typeComment: 'onServerChange is fired on selected server change',
|
|
91
84
|
}),
|
|
@@ -5,10 +5,23 @@ declare const openApiExtensionSchema: import("@scalar/validation").ObjectSchema<
|
|
|
5
5
|
renderer: import("@scalar/validation").OptionalSchema<import("@scalar/validation").UnknownSchema>;
|
|
6
6
|
}>;
|
|
7
7
|
declare const viewsSchema: import("@scalar/validation").ObjectSchema<{
|
|
8
|
+
'content.start': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").ObjectSchema<{
|
|
9
|
+
component: import("@scalar/validation").UnknownSchema;
|
|
10
|
+
renderer: import("@scalar/validation").OptionalSchema<import("@scalar/validation").UnknownSchema>;
|
|
11
|
+
props: import("@scalar/validation").OptionalSchema<import("@scalar/validation").RecordSchema<import("@scalar/validation").StringSchema, import("@scalar/validation").AnySchema>>;
|
|
12
|
+
sidebar: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ObjectSchema<{
|
|
13
|
+
show: import("@scalar/validation").BooleanSchema;
|
|
14
|
+
label: import("@scalar/validation").StringSchema;
|
|
15
|
+
}>>;
|
|
16
|
+
}>>>;
|
|
8
17
|
'content.end': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").ObjectSchema<{
|
|
9
18
|
component: import("@scalar/validation").UnknownSchema;
|
|
10
19
|
renderer: import("@scalar/validation").OptionalSchema<import("@scalar/validation").UnknownSchema>;
|
|
11
20
|
props: import("@scalar/validation").OptionalSchema<import("@scalar/validation").RecordSchema<import("@scalar/validation").StringSchema, import("@scalar/validation").AnySchema>>;
|
|
21
|
+
sidebar: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ObjectSchema<{
|
|
22
|
+
show: import("@scalar/validation").BooleanSchema;
|
|
23
|
+
label: import("@scalar/validation").StringSchema;
|
|
24
|
+
}>>;
|
|
12
25
|
}>>>;
|
|
13
26
|
}>;
|
|
14
27
|
declare const lifecycleHooksSchema: import("@scalar/validation").ObjectSchema<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-reference-plugin.d.ts","sourceRoot":"","sources":["../../src/api-reference/api-reference-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"api-reference-plugin.d.ts","sourceRoot":"","sources":["../../src/api-reference/api-reference-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAsE,MAAM,oBAAoB,CAAA;AAEpH,QAAA,MAAM,sBAAsB;;;;EAY1B,CAAA;AAyBF,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;EAOf,CAAA;AAEF,QAAA,MAAM,oBAAoB;iHACS;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI;yHAChB;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI;6GACpC,IAAI;EACjC,CAAA;AAEF,eAAO,MAAM,wBAAwB,oDAE3B;IACJ,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAC,OAAO,sBAAsB,CAAC,EAAE,CAAA;IACnD,KAAK,EAAE,MAAM,CAAC,OAAO,WAAW,CAAC,CAAA;IACjC,KAAK,EAAE,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAA;IAC1C,gBAAgB,EAAE,GAAG,EAAE,CAAA;CACxB,CACA,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { any, array, fn, object, optional, record, string, unknown } from '@scalar/validation';
|
|
1
|
+
import { any, array, boolean, fn, object, optional, record, string, unknown } from '@scalar/validation';
|
|
2
2
|
const openApiExtensionSchema = object({
|
|
3
3
|
name: string({
|
|
4
4
|
typeComment: 'Name of specification extension property. Has to start with \`x-\`.',
|
|
@@ -20,8 +20,17 @@ const viewComponentSchema = object({
|
|
|
20
20
|
props: optional(record(string(), any()), {
|
|
21
21
|
typeComment: 'Additional props to pass to the component',
|
|
22
22
|
}),
|
|
23
|
+
sidebar: optional(object({
|
|
24
|
+
show: boolean(),
|
|
25
|
+
label: string(),
|
|
26
|
+
}), {
|
|
27
|
+
typeComment: 'Sidebar configuration. Set show: true to display in sidebar.',
|
|
28
|
+
}),
|
|
23
29
|
});
|
|
24
30
|
const viewsSchema = object({
|
|
31
|
+
'content.start': optional(array(viewComponentSchema), {
|
|
32
|
+
typeComment: 'Components to render before the Introduction/Info section',
|
|
33
|
+
}),
|
|
25
34
|
'content.end': optional(array(viewComponentSchema), {
|
|
26
35
|
typeComment: 'Components to render at specific views in the API Reference',
|
|
27
36
|
}),
|
package/package.json
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"schemas",
|
|
15
15
|
"scalar"
|
|
16
16
|
],
|
|
17
|
-
"version": "0.
|
|
17
|
+
"version": "0.5.0",
|
|
18
18
|
"engines": {
|
|
19
19
|
"node": ">=22"
|
|
20
20
|
},
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"vitest": "4.1.0",
|
|
49
|
-
"@scalar/types": "0.
|
|
49
|
+
"@scalar/types": "0.14.0"
|
|
50
50
|
},
|
|
51
51
|
"scripts": {
|
|
52
52
|
"build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
|