@redocly/config 0.6.0 → 0.6.2

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 (67) hide show
  1. package/lib/default-theme-config-schema.d.ts +300 -1
  2. package/lib/default-theme-config-schema.js +2 -1
  3. package/lib/feedback-config-schema.d.ts +102 -0
  4. package/lib/feedback-config-schema.js +71 -0
  5. package/lib/graphql-config-schema.d.ts +303 -0
  6. package/lib/graphql-config-schema.js +129 -0
  7. package/lib/graphql-types.d.ts +9 -0
  8. package/lib/graphql-types.js +3 -0
  9. package/lib/index.d.ts +1 -1
  10. package/lib/index.js +2 -1
  11. package/lib/redoc-config-schema.js +2 -67
  12. package/lib/root-config-schema.d.ts +3587 -1837
  13. package/lib/root-config-schema.js +11 -7
  14. package/lib/types.d.ts +2 -0
  15. package/lib-esm/default-theme-config-schema.d.ts +300 -1
  16. package/lib-esm/default-theme-config-schema.js +2 -1
  17. package/lib-esm/feedback-config-schema.d.ts +102 -0
  18. package/lib-esm/feedback-config-schema.js +68 -0
  19. package/lib-esm/graphql-config-schema.d.ts +303 -0
  20. package/lib-esm/graphql-config-schema.js +126 -0
  21. package/lib-esm/graphql-types.d.ts +9 -0
  22. package/lib-esm/graphql-types.js +2 -0
  23. package/lib-esm/index.d.ts +1 -1
  24. package/lib-esm/index.js +1 -1
  25. package/lib-esm/redoc-config-schema.js +2 -67
  26. package/lib-esm/root-config-schema.d.ts +3587 -1837
  27. package/lib-esm/root-config-schema.js +11 -7
  28. package/lib-esm/types.d.ts +2 -0
  29. package/package.json +3 -2
  30. package/CHANGELOG.md +0 -74
  31. package/README_INTERNAL.md +0 -36
  32. package/lib/.tsbuildinfo +0 -1
  33. package/lib/constants.js.map +0 -1
  34. package/lib/default-theme-config-schema.js.map +0 -1
  35. package/lib/index.js.map +0 -1
  36. package/lib/portal-shared-types.js.map +0 -1
  37. package/lib/redoc-config-schema.js.map +0 -1
  38. package/lib/redoc-types.js.map +0 -1
  39. package/lib/remove-property-recursively.js.map +0 -1
  40. package/lib/reunite-config-schema.js.map +0 -1
  41. package/lib/root-config-schema.js.map +0 -1
  42. package/lib/types.js.map +0 -1
  43. package/lib-esm/.tsbuildinfo +0 -1
  44. package/lib-esm/constants.js.map +0 -1
  45. package/lib-esm/default-theme-config-schema.js.map +0 -1
  46. package/lib-esm/index.js.map +0 -1
  47. package/lib-esm/portal-shared-types.js.map +0 -1
  48. package/lib-esm/redoc-config-schema.js.map +0 -1
  49. package/lib-esm/redoc-types.js.map +0 -1
  50. package/lib-esm/remove-property-recursively.js.map +0 -1
  51. package/lib-esm/reunite-config-schema.js.map +0 -1
  52. package/lib-esm/root-config-schema.js.map +0 -1
  53. package/lib-esm/types.js.map +0 -1
  54. package/src/constants.ts +0 -18
  55. package/src/default-theme-config-schema.ts +0 -757
  56. package/src/index.ts +0 -14
  57. package/src/portal-shared-types.ts +0 -330
  58. package/src/redoc-config-schema.ts +0 -183
  59. package/src/redoc-types.ts +0 -80
  60. package/src/remove-property-recursively.ts +0 -39
  61. package/src/reunite-config-schema.ts +0 -7
  62. package/src/root-config-schema.ts +0 -404
  63. package/src/types.ts +0 -86
  64. package/tsconfig.build.json +0 -12
  65. package/tsconfig.json +0 -10
  66. package/tsconfig.lib-esm.json +0 -15
  67. /package/{LICENSE.md → LICENSE} +0 -0
@@ -1,757 +0,0 @@
1
- import { redocConfigSchema } from './redoc-config-schema';
2
-
3
- const logoConfigSchema = {
4
- type: 'object',
5
- properties: {
6
- image: { type: 'string' },
7
- srcSet: { type: 'string' },
8
- altText: { type: 'string' },
9
- link: { type: 'string' },
10
- favicon: { type: 'string' },
11
- },
12
- additionalProperties: false,
13
- } as const;
14
-
15
- const hideConfigSchema = {
16
- type: 'object',
17
- properties: {
18
- hide: { type: 'boolean' },
19
- },
20
- additionalProperties: false,
21
- } as const;
22
-
23
- const scriptConfigSchema = {
24
- type: 'object',
25
- properties: {
26
- src: { type: 'string' },
27
- async: { type: 'boolean' },
28
- crossorigin: { type: 'string' },
29
- defer: { type: 'boolean' },
30
- fetchpriority: { type: 'string' },
31
- integrity: { type: 'string' },
32
- module: { type: 'boolean' },
33
- nomodule: { type: 'boolean' },
34
- nonce: { type: 'string' },
35
- referrerpolicy: { type: 'string' },
36
- type: { type: 'string' },
37
- },
38
- required: ['src'],
39
- additionalProperties: true,
40
- } as const;
41
-
42
- const linksConfigSchema = {
43
- type: 'object',
44
- properties: {
45
- href: { type: 'string' },
46
- as: { type: 'string' },
47
- crossorigin: { type: 'string' },
48
- fetchpriority: { type: 'string' },
49
- hreflang: { type: 'string' },
50
- imagesizes: { type: 'string' },
51
- imagesrcset: { type: 'string' },
52
- integrity: { type: 'string' },
53
- media: { type: 'string' },
54
- prefetch: { type: 'string' },
55
- referrerpolicy: { type: 'string' },
56
- rel: { type: 'string' },
57
- sizes: { type: 'string' },
58
- title: { type: 'string' },
59
- type: { type: 'string' },
60
- },
61
- required: ['href'],
62
- additionalProperties: true,
63
- } as const;
64
-
65
- export const markdownConfigSchema = {
66
- type: 'object',
67
- properties: {
68
- frontMatterKeysToResolve: {
69
- type: 'array',
70
- items: { type: 'string' },
71
- default: ['image', 'links'],
72
- },
73
- partialsFolders: {
74
- type: 'array',
75
- items: { type: 'string' },
76
- default: ['_partials'],
77
- },
78
- lastUpdatedBlock: {
79
- type: 'object',
80
- properties: {
81
- format: {
82
- type: 'string',
83
- enum: ['timeago', 'iso', 'long', 'short'],
84
- default: 'timeago',
85
- },
86
- locale: { type: 'string' },
87
- ...hideConfigSchema.properties,
88
- },
89
- additionalProperties: false,
90
- default: {},
91
- },
92
- toc: {
93
- type: 'object',
94
- properties: {
95
- header: { type: 'string', default: 'On this page' },
96
- depth: { type: 'integer', default: 3, minimum: 1 },
97
- ...hideConfigSchema.properties,
98
- },
99
- additionalProperties: false,
100
- default: {},
101
- },
102
- editPage: {
103
- type: 'object',
104
- properties: {
105
- baseUrl: { type: 'string' },
106
- ...hideConfigSchema.properties,
107
- },
108
- additionalProperties: false,
109
- default: {},
110
- },
111
- },
112
- additionalProperties: false,
113
- default: {},
114
- } as const;
115
-
116
- export const amplitudeAnalyticsConfigSchema = {
117
- type: 'object',
118
- properties: {
119
- includeInDevelopment: { type: 'boolean' },
120
- apiKey: { type: 'string' },
121
- head: { type: 'boolean' },
122
- respectDNT: { type: 'boolean' },
123
- exclude: { type: 'array', items: { type: 'string' } },
124
- outboundClickEventName: { type: 'string' },
125
- pageViewEventName: { type: 'string' },
126
- amplitudeConfig: { type: 'object', additionalProperties: true },
127
- },
128
- additionalProperties: false,
129
- required: ['apiKey'],
130
- } as const;
131
-
132
- export const fullstoryAnalyticsConfigSchema = {
133
- type: 'object',
134
- properties: {
135
- includeInDevelopment: { type: 'boolean' },
136
- orgId: { type: 'string' },
137
- },
138
- additionalProperties: false,
139
- required: ['orgId'],
140
- } as const;
141
-
142
- export const heapAnalyticsConfigSchema = {
143
- type: 'object',
144
- properties: {
145
- includeInDevelopment: { type: 'boolean' },
146
- appId: { type: 'string' },
147
- },
148
- additionalProperties: false,
149
- required: ['appId'],
150
- } as const;
151
-
152
- export const rudderstackAnalyticsConfigSchema = {
153
- type: 'object',
154
- properties: {
155
- includeInDevelopment: { type: 'boolean' },
156
- writeKey: { type: 'string', minLength: 10 },
157
- trackPage: { type: 'boolean' },
158
- dataPlaneUrl: { type: 'string' },
159
- controlPlaneUrl: { type: 'string' },
160
- sdkUrl: { type: 'string' },
161
- loadOptions: { type: 'object', additionalProperties: true },
162
- },
163
- additionalProperties: false,
164
- required: ['writeKey'],
165
- } as const;
166
-
167
- export const segmentAnalyticsConfigSchema = {
168
- type: 'object',
169
- properties: {
170
- includeInDevelopment: { type: 'boolean' },
171
- writeKey: { type: 'string', minLength: 10 },
172
- trackPage: { type: 'boolean' },
173
- includeTitleInPageCall: { type: 'boolean' },
174
- host: { type: 'string' },
175
- },
176
- additionalProperties: false,
177
- required: ['writeKey'],
178
- } as const;
179
-
180
- export const gtmAnalyticsConfigSchema = {
181
- type: 'object',
182
- properties: {
183
- includeInDevelopment: { type: 'boolean' },
184
- trackingId: { type: 'string' },
185
- gtmAuth: { type: 'string' },
186
- gtmPreview: { type: 'string' },
187
- defaultDataLayer: {},
188
- dataLayerName: { type: 'string' },
189
- enableWebVitalsTracking: { type: 'boolean' },
190
- selfHostedOrigin: { type: 'string' },
191
- pageViewEventName: { type: 'string' },
192
- },
193
- additionalProperties: false,
194
- required: ['trackingId'],
195
- } as const;
196
-
197
- export const productGoogleAnalyticsConfigSchema = {
198
- type: 'object',
199
- properties: {
200
- includeInDevelopment: { type: 'boolean' },
201
- trackingId: { type: 'string' },
202
-
203
- conversionId: { type: 'string' },
204
- floodlightId: { type: 'string' },
205
- optimizeId: { type: 'string' },
206
- exclude: { type: 'array', items: { type: 'string' } },
207
- },
208
- additionalProperties: false,
209
- required: ['trackingId'],
210
- } as const;
211
-
212
- export const googleAnalyticsConfigSchema = {
213
- type: 'object',
214
- properties: {
215
- includeInDevelopment: { type: 'boolean' },
216
- trackingId: { type: 'string' },
217
-
218
- conversionId: { type: 'string' },
219
- floodlightId: { type: 'string' },
220
-
221
- head: { type: 'boolean' },
222
- respectDNT: { type: 'boolean' },
223
- exclude: { type: 'array', items: { type: 'string' } },
224
-
225
- optimizeId: { type: 'string' },
226
- anonymizeIp: { type: 'boolean' },
227
- cookieExpires: { type: 'number' },
228
-
229
- // All enabled tracking configs
230
- trackers: {
231
- type: 'object',
232
- additionalProperties: productGoogleAnalyticsConfigSchema,
233
- },
234
- },
235
- additionalProperties: false,
236
- required: ['trackingId'],
237
- } as const;
238
-
239
- const adobeAnalyticsConfigSchema = {
240
- type: 'object',
241
- properties: {
242
- includeInDevelopment: { type: 'boolean' },
243
- scriptUrl: { type: 'string' },
244
- pageViewEventName: { type: 'string' },
245
- },
246
- additionalProperties: false,
247
- required: ['scriptUrl'],
248
- } as const;
249
-
250
- const navItemSchema = {
251
- type: 'object',
252
- properties: {
253
- page: { type: 'string' },
254
- directory: { type: 'string' },
255
- disconnect: { type: 'boolean', default: false },
256
- group: { type: 'string' },
257
- label: { type: 'string' },
258
- href: { type: 'string' },
259
- external: { type: 'boolean' },
260
- labelTranslationKey: { type: 'string' },
261
- groupTranslationKey: { type: 'string' },
262
- icon: {
263
- oneOf: [
264
- { type: 'string' },
265
- { type: 'object', properties: { srcSet: { type: 'string' } }, required: ['srcSet'] },
266
- ],
267
- },
268
- separator: { type: 'string' },
269
- separatorLine: { type: 'boolean' },
270
- linePosition: {
271
- type: 'string',
272
- enum: ['top', 'bottom'],
273
- default: 'top',
274
- },
275
- version: { type: 'string' },
276
- menuStyle: { type: 'string', enum: ['drilldown'] },
277
- expanded: { type: 'string', const: 'always' },
278
- selectFirstItemOnExpand: { type: 'boolean' },
279
- flatten: { type: 'boolean' },
280
- linkedSidebars: {
281
- type: 'array',
282
- items: { type: 'string' },
283
- },
284
- // Allow users to eject the navbar and implement additional levels of nesting
285
- items: { type: 'array', items: { type: 'object', additionalProperties: true } },
286
- },
287
- } as const;
288
-
289
- const navItemsSchema = {
290
- type: 'array',
291
- items: {
292
- ...navItemSchema,
293
- properties: {
294
- ...navItemSchema.properties,
295
- items: { type: 'array', items: navItemSchema },
296
- },
297
- },
298
- } as const;
299
-
300
- export const productConfigSchema = {
301
- type: 'object',
302
- properties: {
303
- name: { type: 'string' },
304
- icon: { type: 'string' },
305
- folder: { type: 'string' },
306
- },
307
- additionalProperties: false,
308
- required: ['name', 'folder'],
309
- } as const;
310
-
311
- const suggestedPageSchema = {
312
- type: 'object',
313
- properties: {
314
- page: { type: 'string' },
315
- label: { type: 'string' },
316
- labelTranslationKey: { type: 'string' },
317
- },
318
- required: ['page'],
319
- } as const;
320
-
321
- export const catalogFilterSchema = {
322
- type: 'object',
323
- additionalProperties: false,
324
- required: ['title', 'property'],
325
- properties: {
326
- type: {
327
- type: 'string',
328
- enum: ['select', 'checkboxes', 'date-range'],
329
- default: 'checkboxes',
330
- },
331
- title: { type: 'string' },
332
- titleTranslationKey: { type: 'string' },
333
- property: { type: 'string' },
334
- parentFilter: { type: 'string' },
335
- valuesMapping: { type: 'object', additionalProperties: { type: 'string' } },
336
- missingCategoryName: { type: 'string' },
337
- missingCategoryNameTranslationKey: { type: 'string' },
338
- options: { type: 'array', items: { type: 'string' } },
339
- },
340
- } as const;
341
-
342
- export const scorecardConfigSchema = {
343
- type: 'object',
344
- additionalProperties: true,
345
- required: [],
346
- properties: {
347
- ignoreNonCompliant: { type: 'boolean', default: false },
348
- teamMetadataProperty: {
349
- type: 'object',
350
- properties: {
351
- property: { type: 'string' },
352
- label: { type: 'string' },
353
- default: { type: 'string' },
354
- },
355
- },
356
- levels: {
357
- type: 'array',
358
- items: {
359
- type: 'object',
360
- required: ['name'],
361
- properties: {
362
- name: { type: 'string' },
363
- color: { type: 'string' },
364
- extends: { type: 'array', items: { type: 'string' } },
365
- rules: {
366
- type: 'object',
367
- additionalProperties: {
368
- oneOf: [{ type: 'string' }, { type: 'object' }],
369
- },
370
- },
371
- },
372
- additionalProperties: false,
373
- },
374
- },
375
- targets: {
376
- type: 'array',
377
- items: {
378
- type: 'object',
379
- required: ['where'],
380
- properties: {
381
- minimumLevel: { type: 'string' },
382
- where: {
383
- type: 'object',
384
- required: ['metadata'],
385
- properties: {
386
- metadata: { type: 'object', additionalProperties: { type: 'string' } },
387
- },
388
- additionalProperties: false,
389
- },
390
- },
391
- additionalProperties: false,
392
- },
393
- },
394
- },
395
- } as const;
396
-
397
- export const catalogSchema = {
398
- type: 'object',
399
- additionalProperties: true,
400
- required: ['slug', 'items'],
401
- properties: {
402
- slug: { type: 'string' },
403
- filters: { type: 'array', items: catalogFilterSchema },
404
- groupByFirstFilter: { type: 'boolean' },
405
- filterValuesCasing: {
406
- type: 'string',
407
- enum: ['sentence', 'original', 'lowercase', 'uppercase'],
408
- },
409
- items: navItemsSchema,
410
- requiredPermission: { type: 'string' },
411
- separateVersions: { type: 'boolean' },
412
- title: { type: 'string' },
413
- titleTranslationKey: { type: 'string' },
414
- description: { type: 'string' },
415
- descriptionTranslationKey: { type: 'string' },
416
- },
417
- } as const;
418
-
419
- const catalogsConfigSchema = {
420
- type: 'object',
421
- patternProperties: {
422
- '.*': catalogSchema,
423
- },
424
- } as const;
425
-
426
- export const themeConfigSchema = {
427
- type: 'object',
428
- properties: {
429
- imports: {
430
- type: 'array',
431
- items: { type: 'string' },
432
- default: [],
433
- },
434
- logo: logoConfigSchema,
435
- navbar: {
436
- type: 'object',
437
- properties: {
438
- items: navItemsSchema,
439
- ...hideConfigSchema.properties,
440
- },
441
- additionalProperties: false,
442
- },
443
- products: {
444
- type: 'object',
445
- additionalProperties: productConfigSchema,
446
- },
447
- footer: {
448
- type: 'object',
449
- properties: {
450
- items: navItemsSchema,
451
- copyrightText: { type: 'string' },
452
- logo: hideConfigSchema,
453
- ...hideConfigSchema.properties,
454
- },
455
- additionalProperties: false,
456
- },
457
- sidebar: {
458
- type: 'object',
459
- properties: {
460
- separatorLine: { type: 'boolean' },
461
- linePosition: {
462
- type: 'string',
463
- enum: ['top', 'bottom'],
464
- default: 'bottom',
465
- },
466
- ...hideConfigSchema.properties,
467
- },
468
- additionalProperties: false,
469
- },
470
- scripts: {
471
- type: 'object',
472
- properties: {
473
- head: { type: 'array', items: scriptConfigSchema },
474
- body: { type: 'array', items: scriptConfigSchema },
475
- },
476
- additionalProperties: false,
477
- },
478
- links: { type: 'array', items: linksConfigSchema },
479
- feedback: {
480
- type: 'object',
481
- properties: {
482
- hide: {
483
- type: 'boolean',
484
- default: false,
485
- },
486
- type: {
487
- type: 'string',
488
- enum: ['rating', 'sentiment', 'comment', 'reasons', 'mood', 'scale'],
489
- default: 'sentiment',
490
- },
491
- settings: {
492
- type: 'object',
493
- properties: {
494
- label: { type: 'string' },
495
- submitText: { type: 'string' },
496
- buttonText: { type: 'string' },
497
- component: {
498
- type: 'string',
499
- enum: ['radio', 'checkbox'],
500
- default: 'checkbox',
501
- },
502
- items: { type: 'array', items: { type: 'string' }, minItems: 1 },
503
- leftScaleLabel: { type: 'string' },
504
- rightScaleLabel: { type: 'string' },
505
- reasons: {
506
- type: 'object',
507
- properties: {
508
- hide: {
509
- type: 'boolean',
510
- default: false,
511
- },
512
- component: {
513
- type: 'string',
514
- enum: ['radio', 'checkbox'],
515
- default: 'checkbox',
516
- },
517
- label: { type: 'string' },
518
- items: { type: 'array', items: { type: 'string' } },
519
- },
520
- additionalProperties: false,
521
- },
522
- comment: {
523
- type: 'object',
524
- properties: {
525
- hide: {
526
- type: 'boolean',
527
- default: false,
528
- },
529
- label: { type: 'string' },
530
- likeLabel: { type: 'string' },
531
- dislikeLabel: { type: 'string' },
532
- satisfiedLabel: { type: 'string' },
533
- neutralLabel: { type: 'string' },
534
- dissatisfiedLabel: { type: 'string' },
535
- },
536
- additionalProperties: false,
537
- },
538
- },
539
- additionalProperties: false,
540
- ...hideConfigSchema.properties,
541
- },
542
- },
543
- additionalProperties: false,
544
- default: {},
545
- },
546
- search: {
547
- type: 'object',
548
- properties: {
549
- placement: {
550
- type: 'string',
551
- default: 'navbar',
552
- },
553
- shortcuts: {
554
- type: 'array',
555
- items: { type: 'string' },
556
- default: ['/'],
557
- },
558
- suggestedPages: {
559
- type: 'array',
560
- items: suggestedPageSchema,
561
- },
562
- fuzzy: {
563
- type: 'boolean',
564
- default: false,
565
- },
566
- ...hideConfigSchema.properties,
567
- },
568
- additionalProperties: false,
569
- default: {},
570
- },
571
- colorMode: {
572
- type: 'object',
573
- properties: {
574
- ignoreDetection: { type: 'boolean' },
575
- modes: {
576
- type: 'array',
577
- items: { type: 'string' },
578
- default: ['light', 'dark'],
579
- },
580
- ...hideConfigSchema.properties,
581
- },
582
- additionalProperties: false,
583
- default: {},
584
- },
585
- navigation: {
586
- type: 'object',
587
- properties: {
588
- nextButton: {
589
- type: 'object',
590
- properties: {
591
- text: { type: 'string', default: 'Next page' },
592
- ...hideConfigSchema.properties,
593
- },
594
- additionalProperties: false,
595
- default: {},
596
- },
597
- previousButton: {
598
- type: 'object',
599
- properties: {
600
- text: { type: 'string', default: 'Previous page' },
601
- ...hideConfigSchema.properties,
602
- },
603
- additionalProperties: false,
604
- default: {},
605
- },
606
- },
607
- additionalProperties: false,
608
- default: {},
609
- },
610
- codeSnippet: {
611
- type: 'object',
612
- properties: {
613
- elementFormat: { type: 'string', default: 'icon' },
614
- copy: {
615
- type: 'object',
616
- properties: {
617
- ...hideConfigSchema.properties,
618
- },
619
- additionalProperties: false,
620
- default: { hide: false },
621
- },
622
- report: {
623
- type: 'object',
624
- properties: {
625
- tooltipText: { type: 'string' },
626
- buttonText: { type: 'string' },
627
- label: { type: 'string' },
628
- ...hideConfigSchema.properties,
629
- },
630
- additionalProperties: false,
631
- default: { hide: false },
632
- },
633
- expand: {
634
- type: 'object',
635
- properties: {
636
- ...hideConfigSchema.properties,
637
- },
638
- additionalProperties: false,
639
- default: { hide: false },
640
- },
641
- collapse: {
642
- type: 'object',
643
- properties: {
644
- ...hideConfigSchema.properties,
645
- },
646
- additionalProperties: false,
647
- default: { hide: false },
648
- },
649
- },
650
- additionalProperties: false,
651
- default: {},
652
- },
653
- markdown: markdownConfigSchema,
654
- openapi: redocConfigSchema,
655
- graphql: { type: 'object', additionalProperties: true },
656
- analytics: {
657
- type: 'object',
658
- properties: {
659
- adobe: adobeAnalyticsConfigSchema,
660
- amplitude: amplitudeAnalyticsConfigSchema,
661
- fullstory: fullstoryAnalyticsConfigSchema,
662
- heap: heapAnalyticsConfigSchema,
663
- rudderstack: rudderstackAnalyticsConfigSchema,
664
- segment: segmentAnalyticsConfigSchema,
665
- gtm: gtmAnalyticsConfigSchema,
666
- ga: googleAnalyticsConfigSchema,
667
- },
668
- },
669
- userMenu: {
670
- type: 'object',
671
- properties: {
672
- items: {
673
- type: 'array',
674
- items: {
675
- type: 'object',
676
- properties: {
677
- label: { type: 'string' },
678
- external: { type: 'boolean' },
679
- link: { type: 'string' },
680
- separatorLine: { type: 'boolean' },
681
- },
682
- additionalProperties: true,
683
- },
684
- default: [],
685
- },
686
- hideLoginButton: { type: 'boolean' },
687
- ...hideConfigSchema.properties,
688
- },
689
- additionalProperties: false,
690
- default: {},
691
- },
692
- versionPicker: {
693
- type: 'object',
694
- properties: {
695
- hide: { type: 'boolean' },
696
- showForUnversioned: {
697
- type: 'boolean',
698
- },
699
- },
700
- },
701
- breadcrumbs: {
702
- type: 'object',
703
- properties: {
704
- hide: { type: 'boolean' },
705
- prefixItems: {
706
- type: 'array',
707
- items: {
708
- type: 'object',
709
- properties: {
710
- label: { type: 'string' },
711
- labelTranslationKey: { type: 'string' },
712
- page: { type: 'string' },
713
- },
714
- additionalProperties: false,
715
- default: {},
716
- },
717
- },
718
- },
719
- additionalProperties: false,
720
- default: {},
721
- },
722
- catalog: catalogsConfigSchema,
723
- scorecard: scorecardConfigSchema,
724
- },
725
- additionalProperties: true,
726
- default: {},
727
- } as const;
728
-
729
- export const productThemeOverrideSchema = {
730
- type: 'object',
731
- properties: {
732
- logo: themeConfigSchema.properties.logo,
733
- navbar: themeConfigSchema.properties.navbar,
734
- footer: themeConfigSchema.properties.footer,
735
- sidebar: themeConfigSchema.properties.sidebar,
736
- search: themeConfigSchema.properties.search,
737
- codeSnippet: themeConfigSchema.properties.codeSnippet,
738
- breadcrumbs: themeConfigSchema.properties.breadcrumbs,
739
- feedback: themeConfigSchema.properties.feedback,
740
- analytics: {
741
- type: 'object',
742
- properties: {
743
- ga: productGoogleAnalyticsConfigSchema,
744
- },
745
- },
746
- },
747
- additionalProperties: true,
748
- default: {},
749
- } as const;
750
-
751
- export const productConfigOverrideSchema = {
752
- type: 'object',
753
- properties: {
754
- theme: productThemeOverrideSchema,
755
- },
756
- additionalProperties: false,
757
- } as const;