@redocly/config 0.37.0 → 0.38.0-custom.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.
@@ -197,6 +197,7 @@ exports.seoConfigSchema = {
197
197
  type: 'object',
198
198
  properties: {
199
199
  title: { type: 'string' },
200
+ projectTitle: { type: 'string' },
200
201
  description: { type: 'string' },
201
202
  siteUrl: { type: 'string' },
202
203
  image: { type: 'string' },
@@ -442,7 +443,7 @@ exports.redoclyConfigSchema = {
442
443
  /**
443
444
  * @deprecated Should use `catalogClassic` instead
444
445
  */
445
- catalog: ex_theme_config_schemas_1.catalogsConfigSchema, entitiesCatalog: entities_catalog_config_schema_1.entitiesCatalogConfigSchema, catalogClassic: ex_theme_config_schemas_1.catalogsConfigSchema, scorecard: ex_theme_config_schemas_1.scorecardConfigSchema, mcp: mcpConfigSchema }),
446
+ catalog: ex_theme_config_schemas_1.catalogsConfigSchema, entitiesCatalog: entities_catalog_config_schema_1.entitiesCatalogConfigSchema, catalogClassic: ex_theme_config_schemas_1.catalogsConfigSchema, scorecard: ex_theme_config_schemas_1.scorecardConfigSchema, scorecards: ex_theme_config_schemas_1.scorecardsConfigSchema, mcp: mcpConfigSchema }),
446
447
  default: { redirects: {}, seo: exports.seoConfigSchema.default },
447
448
  additionalProperties: true,
448
449
  };
@@ -30,6 +30,7 @@ export type ApiFunctionsContext = {
30
30
  params: Record<string, string | string[]>;
31
31
  query: Record<string, string | string[]>;
32
32
  cookies: Record<string, string>;
33
+ getStorage: () => Promise<KvService>;
33
34
  /**
34
35
  * @deprecated `telemetry` is deprecated.
35
36
  */
@@ -39,6 +40,53 @@ export type ApiFunctionsContext = {
39
40
  } & Record<string, string | number>) => void;
40
41
  };
41
42
  } & ApiFunctionsContextMethods;
43
+ export type KvService = {
44
+ get: <T extends KvValue = KvValue>(key: KvKey) => Promise<KvReadSchema<T> | null>;
45
+ getMany: <T extends KvValue = KvValue>(keys: KvKey[]) => Promise<(KvReadSchema<T> | null)[]>;
46
+ list: <T extends KvValue = KvValue>(selector: KvListSelector, options?: KvListOptions) => Promise<KvListResponse<T>>;
47
+ set: <T extends KvValue = KvValue>(key: KvKey, value: T, options?: KvSetOptions) => Promise<string | null>;
48
+ delete: (key: KvKey) => Promise<boolean>;
49
+ clearExpired: () => Promise<void>;
50
+ transaction: <T>(operation: (tx: KvTransaction) => Promise<T>) => Promise<T>;
51
+ };
52
+ export type KvValue = Record<string, unknown> | unknown[] | unknown;
53
+ export type KvKeyPart = string | number | boolean;
54
+ export type KvKey = KvKeyPart[];
55
+ export type KvSetOptions = {
56
+ ttlInSeconds?: number;
57
+ };
58
+ export type KvReadSchema<T extends KvValue = KvValue> = {
59
+ key: KvKey;
60
+ value: T | null;
61
+ };
62
+ export type KvListSelector = {
63
+ prefix: KvKey;
64
+ } | {
65
+ prefix: KvKey;
66
+ start: KvKey;
67
+ } | {
68
+ prefix: KvKey;
69
+ end: KvKey;
70
+ } | {
71
+ start: KvKey;
72
+ end: KvKey;
73
+ };
74
+ export type KvListOptions = {
75
+ limit?: number;
76
+ reverse?: boolean;
77
+ cursor?: string;
78
+ };
79
+ export type KvListResponse<T extends KvValue = KvValue> = {
80
+ items: KvReadSchema<T>[];
81
+ total: number;
82
+ cursor: string | null;
83
+ };
84
+ export type KvTransaction = {
85
+ get: <T extends KvValue = KvValue>(key: KvKey) => Promise<KvReadSchema<T> | null>;
86
+ getMany: <T extends KvValue = KvValue>(keys: KvKey[]) => Promise<(KvReadSchema<T> | null)[]>;
87
+ set: <T extends KvValue = KvValue>(key: KvKey, value: T, options?: KvSetOptions) => Promise<string | null>;
88
+ delete: (key: KvKey) => Promise<boolean>;
89
+ };
42
90
  export type ApiRoutesHandler = (request: Request, context: ApiFunctionsContext,
43
91
  /**
44
92
  * @deprecated `staticData` is deprecated.
@@ -54,4 +102,4 @@ export interface CookieOptions {
54
102
  signed?: boolean;
55
103
  sameSite?: 'Strict' | 'Lax' | 'None';
56
104
  }
57
- export type ServerPropsContext = ApiFunctionsContext;
105
+ export type ServerPropsContext = Omit<ApiFunctionsContext, 'getStorage'>;
@@ -4,7 +4,7 @@ import type { productConfigOverrideSchema } from '../product-override-schema';
4
4
  import type { apiConfigSchema, apigeeAdapterAuthOauth2Schema, apigeeAdapterAuthServiceAccountSchema, apigeeEdgeAdapterConfigSchema, apigeeXAdapterConfigSchema, authProviderConfigSchema, devOnboardingAdapterConfigSchema, graviteeAdapterConfigSchema, l10nConfigSchema, oidcIssuerMetadataSchema, oidcProviderConfigSchema, rbacConfigSchema, rbacScopeItemsSchema, redirectConfigSchema, redirectsConfigSchema, rootRedoclyConfigSchema, saml2ProviderConfigSchema, seoConfigSchema, ssoDirectConfigSchema } from '../root-config-schema';
5
5
  import type { RedocConfigTypes } from './redoc-types';
6
6
  import type { GraphQLConfigTypes } from './graphql-types';
7
- import type { productConfigSchema, productGoogleAnalyticsConfigSchema, markdownConfigSchema, amplitudeAnalyticsConfigSchema, rudderstackAnalyticsConfigSchema, segmentAnalyticsConfigSchema, gtmAnalyticsConfigSchema, googleAnalyticsConfigSchema, scorecardConfigSchema, catalogFilterSchema, catalogSchema, searchFacetsConfigSchema } from '../ex-theme-config-schemas';
7
+ import type { productConfigSchema, productGoogleAnalyticsConfigSchema, markdownConfigSchema, amplitudeAnalyticsConfigSchema, rudderstackAnalyticsConfigSchema, segmentAnalyticsConfigSchema, gtmAnalyticsConfigSchema, googleAnalyticsConfigSchema, scorecardConfigSchema, scorecardsConfigSchema, catalogFilterSchema, catalogSchema, searchFacetsConfigSchema } from '../ex-theme-config-schemas';
8
8
  import type { reuniteConfigSchema } from '../reunite-config-schema';
9
9
  import type { optionalEmailSettings, reasonsSettings } from '../feedback-config-schema';
10
10
  /**
@@ -27,6 +27,7 @@ export type CatalogConfig = FromSchema<typeof catalogSchema>;
27
27
  export type CatalogFilterConfig = FromSchema<typeof catalogFilterSchema>;
28
28
  export type ReuniteConfig = FromSchema<typeof reuniteConfigSchema>;
29
29
  export type ScorecardConfig = FromSchema<typeof scorecardConfigSchema>;
30
+ export type ScorecardsConfig = FromSchema<typeof scorecardsConfigSchema>;
30
31
  export type SearchFacetsConfig = FromSchema<typeof searchFacetsConfigSchema>;
31
32
  export type RedoclyConfig = Omit<FromSchema<typeof rootRedoclyConfigSchema>, 'theme' | 'apis'> & {
32
33
  /**
@@ -3,7 +3,7 @@ import type { LayoutVariant, REDOCLY_ROUTE_RBAC, REDOCLY_TEAMS_RBAC } from '../c
3
3
  import type { ProductConfig, ProductGoogleAnalyticsConfig, RbacScopeItems, RedoclyConfig, SeoConfig } from './config-types';
4
4
  import type { CatalogEntityConfig } from './catalog-entity-types';
5
5
  export * from './code-walkthrough-types';
6
- export type UiAccessibleConfig = Pick<RedoclyConfig, 'logo' | 'navbar' | 'products' | 'footer' | 'sidebar' | 'scripts' | 'links' | 'feedback' | 'search' | 'aiAssistant' | 'colorMode' | 'navigation' | 'codeSnippet' | 'markdown' | 'openapi' | 'graphql' | 'analytics' | 'userMenu' | 'versionPicker' | 'breadcrumbs' | 'catalog' | 'scorecard' | 'entitiesCatalog' | 'mcp'> & {
6
+ export type UiAccessibleConfig = Pick<RedoclyConfig, 'logo' | 'navbar' | 'products' | 'footer' | 'sidebar' | 'scripts' | 'links' | 'feedback' | 'search' | 'aiAssistant' | 'colorMode' | 'navigation' | 'codeSnippet' | 'markdown' | 'openapi' | 'graphql' | 'analytics' | 'userMenu' | 'versionPicker' | 'breadcrumbs' | 'catalog' | 'scorecard' | 'scorecards' | 'entitiesCatalog' | 'mcp'> & {
7
7
  auth?: {
8
8
  idpsInfo?: {
9
9
  idpId: string;
@@ -11,7 +11,6 @@ export type UiAccessibleConfig = Pick<RedoclyConfig, 'logo' | 'navbar' | 'produc
11
11
  title: string | undefined;
12
12
  }[];
13
13
  devLogin?: boolean;
14
- loginUrls?: Record<string, string>;
15
14
  };
16
15
  breadcrumbs?: {
17
16
  prefixItems?: ResolvedNavLinkItem[];
@@ -45,6 +44,7 @@ export type ResolvedNavLinkItem = {
45
44
  routeSlug?: string;
46
45
  active?: boolean;
47
46
  deprecated?: boolean;
47
+ isAdditionalOperation?: boolean;
48
48
  icon?: string;
49
49
  srcSet?: string;
50
50
  [REDOCLY_TEAMS_RBAC]?: RbacScopeItems;
@@ -0,0 +1,3 @@
1
+ export type ScorecardsConfig = {
2
+ test: boolean;
3
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=scorecards-types.js.map
@@ -3146,6 +3146,70 @@ export declare const themeConfigSchema: {
3146
3146
  };
3147
3147
  readonly additionalProperties: false;
3148
3148
  };
3149
+ readonly servers: {
3150
+ readonly type: "array";
3151
+ readonly items: {
3152
+ readonly type: "object";
3153
+ readonly properties: {
3154
+ readonly url: {
3155
+ readonly type: "string";
3156
+ };
3157
+ readonly description: {
3158
+ readonly type: "string";
3159
+ };
3160
+ readonly variables: {
3161
+ readonly type: "object";
3162
+ readonly additionalProperties: true;
3163
+ };
3164
+ };
3165
+ readonly required: readonly ["url"];
3166
+ };
3167
+ };
3168
+ readonly info: {
3169
+ readonly type: "object";
3170
+ readonly properties: {
3171
+ readonly title: {
3172
+ readonly type: "string";
3173
+ };
3174
+ readonly description: {
3175
+ readonly type: "string";
3176
+ };
3177
+ readonly summary: {
3178
+ readonly type: "string";
3179
+ };
3180
+ readonly version: {
3181
+ readonly type: "string";
3182
+ };
3183
+ readonly termsOfService: {
3184
+ readonly type: "string";
3185
+ };
3186
+ readonly contact: {
3187
+ readonly type: "object";
3188
+ readonly properties: {
3189
+ readonly name: {
3190
+ readonly type: "string";
3191
+ };
3192
+ readonly email: {
3193
+ readonly type: "string";
3194
+ };
3195
+ readonly url: {
3196
+ readonly type: "string";
3197
+ };
3198
+ };
3199
+ };
3200
+ readonly license: {
3201
+ readonly type: "object";
3202
+ readonly properties: {
3203
+ readonly name: {
3204
+ readonly type: "string";
3205
+ };
3206
+ readonly url: {
3207
+ readonly type: "string";
3208
+ };
3209
+ };
3210
+ };
3211
+ };
3212
+ };
3149
3213
  readonly sidebar: {
3150
3214
  readonly type: "object";
3151
3215
  readonly properties: {
@@ -5505,15 +5569,16 @@ export declare const themeConfigSchema: {
5505
5569
  readonly type: "object";
5506
5570
  readonly additionalProperties: true;
5507
5571
  };
5572
+ readonly ignore: {
5573
+ readonly type: "boolean";
5574
+ };
5508
5575
  readonly where: {
5509
5576
  readonly type: "object";
5510
5577
  readonly required: readonly ["metadata"];
5511
5578
  readonly properties: {
5512
5579
  readonly metadata: {
5513
5580
  readonly type: "object";
5514
- readonly additionalProperties: {
5515
- readonly type: "string";
5516
- };
5581
+ readonly additionalProperties: {};
5517
5582
  };
5518
5583
  };
5519
5584
  readonly additionalProperties: false;
@@ -5534,6 +5599,17 @@ export declare const themeConfigSchema: {
5534
5599
  };
5535
5600
  };
5536
5601
  };
5602
+ readonly scorecards: {
5603
+ readonly type: "object";
5604
+ readonly additionalProperties: true;
5605
+ readonly required: readonly [];
5606
+ readonly properties: {
5607
+ readonly test: {
5608
+ readonly type: "boolean";
5609
+ readonly default: true;
5610
+ };
5611
+ };
5612
+ };
5537
5613
  };
5538
5614
  readonly additionalProperties: true;
5539
5615
  };
@@ -1,6 +1,6 @@
1
1
  import { graphqlConfigSchema } from './graphql-config-schema';
2
2
  import { feedbackConfigSchema } from './feedback-config-schema';
3
- import { logoConfigSchema, analyticsConfigSchema, breadcrumbsConfigSchema, catalogsConfigSchema, codeSnippetConfigSchema, colorModeConfigSchema, footerConfigSchema, linksConfigSchema, markdownConfigSchema, navbarConfigSchema, navigationConfigSchema, openapiConfigSchema, productsConfigSchema, scorecardConfigSchema, scriptsConfigSchema, searchConfigSchema, aiAssistantSchema, sidebarConfigSchema, userMenuConfigSchema, versionPickerConfigSchema, } from './ex-theme-config-schemas';
3
+ import { logoConfigSchema, analyticsConfigSchema, breadcrumbsConfigSchema, catalogsConfigSchema, codeSnippetConfigSchema, colorModeConfigSchema, footerConfigSchema, linksConfigSchema, markdownConfigSchema, navbarConfigSchema, navigationConfigSchema, openapiConfigSchema, productsConfigSchema, scorecardConfigSchema, scriptsConfigSchema, searchConfigSchema, aiAssistantSchema, sidebarConfigSchema, userMenuConfigSchema, versionPickerConfigSchema, scorecardsConfigSchema, } from './ex-theme-config-schemas';
4
4
  import { entitiesCatalogConfigSchema } from './entities-catalog-config-schema';
5
5
  export const themeConfigSchema = {
6
6
  type: 'object',
@@ -39,6 +39,7 @@ export const themeConfigSchema = {
39
39
  entitiesCatalog: entitiesCatalogConfigSchema,
40
40
  catalogClassic: catalogsConfigSchema,
41
41
  scorecard: scorecardConfigSchema,
42
+ scorecards: scorecardsConfigSchema,
42
43
  },
43
44
  additionalProperties: true,
44
45
  };
@@ -4424,15 +4424,16 @@ export declare const scorecardConfigSchema: {
4424
4424
  readonly type: "object";
4425
4425
  readonly additionalProperties: true;
4426
4426
  };
4427
+ readonly ignore: {
4428
+ readonly type: "boolean";
4429
+ };
4427
4430
  readonly where: {
4428
4431
  readonly type: "object";
4429
4432
  readonly required: readonly ["metadata"];
4430
4433
  readonly properties: {
4431
4434
  readonly metadata: {
4432
4435
  readonly type: "object";
4433
- readonly additionalProperties: {
4434
- readonly type: "string";
4435
- };
4436
+ readonly additionalProperties: {};
4436
4437
  };
4437
4438
  };
4438
4439
  readonly additionalProperties: false;
@@ -4453,3 +4454,14 @@ export declare const scorecardConfigSchema: {
4453
4454
  };
4454
4455
  };
4455
4456
  };
4457
+ export declare const scorecardsConfigSchema: {
4458
+ readonly type: "object";
4459
+ readonly additionalProperties: true;
4460
+ readonly required: readonly [];
4461
+ readonly properties: {
4462
+ readonly test: {
4463
+ readonly type: "boolean";
4464
+ readonly default: true;
4465
+ };
4466
+ };
4467
+ };
@@ -636,11 +636,12 @@ export const scorecardConfigSchema = {
636
636
  properties: {
637
637
  minimumLevel: { type: 'string' },
638
638
  rules: { type: 'object', additionalProperties: true },
639
+ ignore: { type: 'boolean' },
639
640
  where: {
640
641
  type: 'object',
641
642
  required: ['metadata'],
642
643
  properties: {
643
- metadata: { type: 'object', additionalProperties: { type: 'string' } },
644
+ metadata: { type: 'object', additionalProperties: {} },
644
645
  },
645
646
  additionalProperties: false,
646
647
  },
@@ -655,4 +656,12 @@ export const scorecardConfigSchema = {
655
656
  fromProjectUrl: { type: 'string', format: 'uri' },
656
657
  },
657
658
  };
659
+ export const scorecardsConfigSchema = {
660
+ type: 'object',
661
+ additionalProperties: true,
662
+ required: [],
663
+ properties: {
664
+ test: { type: 'boolean', default: true },
665
+ },
666
+ };
658
667
  //# sourceMappingURL=ex-theme-config-schemas.js.map
@@ -134,6 +134,70 @@ export declare const graphqlConfigSchema: {
134
134
  };
135
135
  readonly additionalProperties: false;
136
136
  };
137
+ readonly servers: {
138
+ readonly type: "array";
139
+ readonly items: {
140
+ readonly type: "object";
141
+ readonly properties: {
142
+ readonly url: {
143
+ readonly type: "string";
144
+ };
145
+ readonly description: {
146
+ readonly type: "string";
147
+ };
148
+ readonly variables: {
149
+ readonly type: "object";
150
+ readonly additionalProperties: true;
151
+ };
152
+ };
153
+ readonly required: readonly ["url"];
154
+ };
155
+ };
156
+ readonly info: {
157
+ readonly type: "object";
158
+ readonly properties: {
159
+ readonly title: {
160
+ readonly type: "string";
161
+ };
162
+ readonly description: {
163
+ readonly type: "string";
164
+ };
165
+ readonly summary: {
166
+ readonly type: "string";
167
+ };
168
+ readonly version: {
169
+ readonly type: "string";
170
+ };
171
+ readonly termsOfService: {
172
+ readonly type: "string";
173
+ };
174
+ readonly contact: {
175
+ readonly type: "object";
176
+ readonly properties: {
177
+ readonly name: {
178
+ readonly type: "string";
179
+ };
180
+ readonly email: {
181
+ readonly type: "string";
182
+ };
183
+ readonly url: {
184
+ readonly type: "string";
185
+ };
186
+ };
187
+ };
188
+ readonly license: {
189
+ readonly type: "object";
190
+ readonly properties: {
191
+ readonly name: {
192
+ readonly type: "string";
193
+ };
194
+ readonly url: {
195
+ readonly type: "string";
196
+ };
197
+ };
198
+ };
199
+ };
200
+ };
137
201
  readonly sidebar: {
138
202
  readonly type: "object";
139
203
  readonly properties: {
@@ -59,6 +59,70 @@ export const graphqlConfigSchema = {
59
59
  properties: Object.assign({}, menuGroupingConfig.properties),
60
60
  additionalProperties: false,
61
61
  },
62
+ servers: {
63
+ type: 'array',
64
+ items: {
65
+ type: 'object',
66
+ properties: {
67
+ url: {
68
+ type: 'string',
69
+ },
70
+ description: {
71
+ type: 'string',
72
+ },
73
+ variables: {
74
+ type: 'object',
75
+ additionalProperties: true,
76
+ },
77
+ },
78
+ required: ['url'],
79
+ },
80
+ },
81
+ info: {
82
+ type: 'object',
83
+ properties: {
84
+ title: {
85
+ type: 'string',
86
+ },
87
+ description: {
88
+ type: 'string',
89
+ },
90
+ summary: {
91
+ type: 'string',
92
+ },
93
+ version: {
94
+ type: 'string',
95
+ },
96
+ termsOfService: {
97
+ type: 'string',
98
+ },
99
+ contact: {
100
+ type: 'object',
101
+ properties: {
102
+ name: {
103
+ type: 'string',
104
+ },
105
+ email: {
106
+ type: 'string',
107
+ },
108
+ url: {
109
+ type: 'string',
110
+ },
111
+ },
112
+ },
113
+ license: {
114
+ type: 'object',
115
+ properties: {
116
+ name: {
117
+ type: 'string',
118
+ },
119
+ url: {
120
+ type: 'string',
121
+ },
122
+ },
123
+ },
124
+ },
125
+ },
62
126
  sidebar: {
63
127
  type: 'object',
64
128
  properties: {
@@ -4881,6 +4881,70 @@ export declare const productConfigOverrideSchema: {
4881
4881
  };
4882
4882
  readonly additionalProperties: false;
4883
4883
  };
4884
+ readonly servers: {
4885
+ readonly type: "array";
4886
+ readonly items: {
4887
+ readonly type: "object";
4888
+ readonly properties: {
4889
+ readonly url: {
4890
+ readonly type: "string";
4891
+ };
4892
+ readonly description: {
4893
+ readonly type: "string";
4894
+ };
4895
+ readonly variables: {
4896
+ readonly type: "object";
4897
+ readonly additionalProperties: true;
4898
+ };
4899
+ };
4900
+ readonly required: readonly ["url"];
4901
+ };
4902
+ };
4903
+ readonly info: {
4904
+ readonly type: "object";
4905
+ readonly properties: {
4906
+ readonly title: {
4907
+ readonly type: "string";
4908
+ };
4909
+ readonly description: {
4910
+ readonly type: "string";
4911
+ };
4912
+ readonly summary: {
4913
+ readonly type: "string";
4914
+ };
4915
+ readonly version: {
4916
+ readonly type: "string";
4917
+ };
4918
+ readonly termsOfService: {
4919
+ readonly type: "string";
4920
+ };
4921
+ readonly contact: {
4922
+ readonly type: "object";
4923
+ readonly properties: {
4924
+ readonly name: {
4925
+ readonly type: "string";
4926
+ };
4927
+ readonly email: {
4928
+ readonly type: "string";
4929
+ };
4930
+ readonly url: {
4931
+ readonly type: "string";
4932
+ };
4933
+ };
4934
+ };
4935
+ readonly license: {
4936
+ readonly type: "object";
4937
+ readonly properties: {
4938
+ readonly name: {
4939
+ readonly type: "string";
4940
+ };
4941
+ readonly url: {
4942
+ readonly type: "string";
4943
+ };
4944
+ };
4945
+ };
4946
+ };
4947
+ };
4884
4948
  readonly sidebar: {
4885
4949
  readonly type: "object";
4886
4950
  readonly properties: {
@@ -7141,6 +7205,70 @@ export declare const productConfigOverrideSchema: {
7141
7205
  };
7142
7206
  readonly additionalProperties: false;
7143
7207
  };
7208
+ readonly servers: {
7209
+ readonly type: "array";
7210
+ readonly items: {
7211
+ readonly type: "object";
7212
+ readonly properties: {
7213
+ readonly url: {
7214
+ readonly type: "string";
7215
+ };
7216
+ readonly description: {
7217
+ readonly type: "string";
7218
+ };
7219
+ readonly variables: {
7220
+ readonly type: "object";
7221
+ readonly additionalProperties: true;
7222
+ };
7223
+ };
7224
+ readonly required: readonly ["url"];
7225
+ };
7226
+ };
7227
+ readonly info: {
7228
+ readonly type: "object";
7229
+ readonly properties: {
7230
+ readonly title: {
7231
+ readonly type: "string";
7232
+ };
7233
+ readonly description: {
7234
+ readonly type: "string";
7235
+ };
7236
+ readonly summary: {
7237
+ readonly type: "string";
7238
+ };
7239
+ readonly version: {
7240
+ readonly type: "string";
7241
+ };
7242
+ readonly termsOfService: {
7243
+ readonly type: "string";
7244
+ };
7245
+ readonly contact: {
7246
+ readonly type: "object";
7247
+ readonly properties: {
7248
+ readonly name: {
7249
+ readonly type: "string";
7250
+ };
7251
+ readonly email: {
7252
+ readonly type: "string";
7253
+ };
7254
+ readonly url: {
7255
+ readonly type: "string";
7256
+ };
7257
+ };
7258
+ };
7259
+ readonly license: {
7260
+ readonly type: "object";
7261
+ readonly properties: {
7262
+ readonly name: {
7263
+ readonly type: "string";
7264
+ };
7265
+ readonly url: {
7266
+ readonly type: "string";
7267
+ };
7268
+ };
7269
+ };
7270
+ };
7271
+ };
7144
7272
  readonly sidebar: {
7145
7273
  readonly type: "object";
7146
7274
  readonly properties: {