@redocly/config 0.0.0-beta-20240318165323

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