@betterportal/framework 10.1.61 → 10.1.63

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 (99) hide show
  1. package/lib/adapters/h3.d.ts.map +1 -1
  2. package/lib/adapters/h3.js +48 -28
  3. package/lib/adapters/h3.js.map +1 -1
  4. package/lib/cli/client.d.ts +1 -1
  5. package/lib/cli/client.d.ts.map +1 -1
  6. package/lib/cli/client.js +48 -16
  7. package/lib/cli/client.js.map +1 -1
  8. package/lib/codegen/emitter.d.ts.map +1 -1
  9. package/lib/codegen/emitter.js +22 -48
  10. package/lib/codegen/emitter.js.map +1 -1
  11. package/lib/codegen/scanner.d.ts +7 -2
  12. package/lib/codegen/scanner.d.ts.map +1 -1
  13. package/lib/codegen/scanner.js +40 -29
  14. package/lib/codegen/scanner.js.map +1 -1
  15. package/lib/codegen/schemaPolicy.d.ts +11 -0
  16. package/lib/codegen/schemaPolicy.d.ts.map +1 -0
  17. package/lib/codegen/schemaPolicy.js +105 -0
  18. package/lib/codegen/schemaPolicy.js.map +1 -0
  19. package/lib/codegen/validate.d.ts.map +1 -1
  20. package/lib/codegen/validate.js +109 -4
  21. package/lib/codegen/validate.js.map +1 -1
  22. package/lib/contracts/auth.d.ts +34 -4
  23. package/lib/contracts/auth.d.ts.map +1 -1
  24. package/lib/contracts/auth.js +28 -19
  25. package/lib/contracts/auth.js.map +1 -1
  26. package/lib/contracts/binding.d.ts.map +1 -1
  27. package/lib/contracts/binding.js +8 -8
  28. package/lib/contracts/binding.js.map +1 -1
  29. package/lib/contracts/chrome.d.ts +12 -0
  30. package/lib/contracts/chrome.d.ts.map +1 -0
  31. package/lib/contracts/chrome.js +12 -0
  32. package/lib/contracts/chrome.js.map +1 -0
  33. package/lib/contracts/config.d.ts.map +1 -1
  34. package/lib/contracts/config.js +5 -5
  35. package/lib/contracts/config.js.map +1 -1
  36. package/lib/contracts/json.d.ts +6 -0
  37. package/lib/contracts/json.d.ts.map +1 -1
  38. package/lib/contracts/json.js +114 -4
  39. package/lib/contracts/json.js.map +1 -1
  40. package/lib/contracts/m2m.d.ts.map +1 -1
  41. package/lib/contracts/m2m.js +3 -3
  42. package/lib/contracts/m2m.js.map +1 -1
  43. package/lib/contracts/manifest.d.ts +166 -150
  44. package/lib/contracts/manifest.d.ts.map +1 -1
  45. package/lib/contracts/manifest.js +13 -10
  46. package/lib/contracts/manifest.js.map +1 -1
  47. package/lib/contracts/observability.d.ts.map +1 -1
  48. package/lib/contracts/observability.js +2 -2
  49. package/lib/contracts/observability.js.map +1 -1
  50. package/lib/contracts/platformConfig.d.ts +418 -103
  51. package/lib/contracts/platformConfig.d.ts.map +1 -1
  52. package/lib/contracts/platformConfig.js +118 -90
  53. package/lib/contracts/platformConfig.js.map +1 -1
  54. package/lib/contracts/registry.d.ts +12 -17
  55. package/lib/contracts/registry.d.ts.map +1 -1
  56. package/lib/contracts/route.d.ts +13 -11
  57. package/lib/contracts/route.d.ts.map +1 -1
  58. package/lib/contracts/route.js +44 -8
  59. package/lib/contracts/route.js.map +1 -1
  60. package/lib/contracts/serviceConfig.d.ts.map +1 -1
  61. package/lib/contracts/serviceConfig.js +5 -5
  62. package/lib/contracts/serviceConfig.js.map +1 -1
  63. package/lib/contracts/streaming.d.ts.map +1 -1
  64. package/lib/contracts/streaming.js +3 -3
  65. package/lib/contracts/streaming.js.map +1 -1
  66. package/lib/contracts/view.d.ts +106 -15
  67. package/lib/contracts/view.d.ts.map +1 -1
  68. package/lib/contracts/view.js +25 -19
  69. package/lib/contracts/view.js.map +1 -1
  70. package/lib/index.d.ts +1 -0
  71. package/lib/index.d.ts.map +1 -1
  72. package/lib/index.js +1 -0
  73. package/lib/index.js.map +1 -1
  74. package/lib/runtime/auth/issuer.d.ts +3 -2
  75. package/lib/runtime/auth/issuer.d.ts.map +1 -1
  76. package/lib/runtime/auth/issuer.js.map +1 -1
  77. package/lib/runtime/auth/keypair.d.ts +2 -9
  78. package/lib/runtime/auth/keypair.d.ts.map +1 -1
  79. package/lib/runtime/auth/keypair.js.map +1 -1
  80. package/lib/runtime/auth/verifier.d.ts +2 -4
  81. package/lib/runtime/auth/verifier.d.ts.map +1 -1
  82. package/lib/runtime/configStore.d.ts.map +1 -1
  83. package/lib/runtime/configStore.js +2 -2
  84. package/lib/runtime/configStore.js.map +1 -1
  85. package/lib/runtime/jsonSchema.d.ts +5 -0
  86. package/lib/runtime/jsonSchema.d.ts.map +1 -1
  87. package/lib/runtime/jsonSchema.js +90 -2
  88. package/lib/runtime/jsonSchema.js.map +1 -1
  89. package/lib/runtime/manifest.js +1 -1
  90. package/lib/runtime/registry.d.ts.map +1 -1
  91. package/lib/runtime/registry.js +112 -66
  92. package/lib/runtime/registry.js.map +1 -1
  93. package/lib/runtime/streamHandler.js +1 -1
  94. package/lib/runtime/streamHandler.js.map +1 -1
  95. package/lib/runtime/view.d.ts +2 -1
  96. package/lib/runtime/view.d.ts.map +1 -1
  97. package/lib/runtime/view.js +20 -15
  98. package/lib/runtime/view.js.map +1 -1
  99. package/package.json +1 -1
@@ -1,5 +1,7 @@
1
1
  import * as av from "anyvali";
2
2
  import type { Infer } from "anyvali";
3
+ export { BetterPortalRouteChromeSchema, BetterPortalRouteChromeValueSchema } from "./chrome.js";
4
+ export type { BetterPortalRouteChrome, BetterPortalRouteChromeValue } from "./chrome.js";
3
5
  export declare const BetterPortalBrandingSchema: av.ObjectSchema<{
4
6
  brandName: av.OptionalSchema<av.StringSchema>;
5
7
  logoUrl: av.OptionalSchema<av.StringSchema>;
@@ -73,7 +75,14 @@ export declare const TenantServiceRegistrationSchema: av.ObjectSchema<{
73
75
  audience: av.StringSchema;
74
76
  jwksUri: av.StringSchema;
75
77
  publicKeys: av.OptionalSchema<av.ObjectSchema<{
76
- keys: av.ArraySchema<av.RecordSchema<av.AnySchema>>;
78
+ keys: av.ArraySchema<av.ObjectSchema<{
79
+ kty: av.LiteralSchema<"RSA">;
80
+ use: av.LiteralSchema<"sig">;
81
+ alg: av.LiteralSchema<"RS256">;
82
+ kid: av.StringSchema;
83
+ n: av.StringSchema;
84
+ e: av.StringSchema;
85
+ }>>;
77
86
  }>>;
78
87
  }>>;
79
88
  capabilities: av.ArraySchema<av.StringSchema>;
@@ -101,7 +110,14 @@ export declare const PlatformServiceSchema: av.ObjectSchema<{
101
110
  audience: av.StringSchema;
102
111
  jwksUri: av.StringSchema;
103
112
  publicKeys: av.OptionalSchema<av.ObjectSchema<{
104
- keys: av.ArraySchema<av.RecordSchema<av.AnySchema>>;
113
+ keys: av.ArraySchema<av.ObjectSchema<{
114
+ kty: av.LiteralSchema<"RSA">;
115
+ use: av.LiteralSchema<"sig">;
116
+ alg: av.LiteralSchema<"RS256">;
117
+ kid: av.StringSchema;
118
+ n: av.StringSchema;
119
+ e: av.StringSchema;
120
+ }>>;
105
121
  }>>;
106
122
  }>>;
107
123
  capabilities: av.ArraySchema<av.StringSchema>;
@@ -135,7 +151,14 @@ export declare const BetterPortalTenantSchema: av.ObjectSchema<{
135
151
  audience: av.StringSchema;
136
152
  jwksUri: av.StringSchema;
137
153
  publicKeys: av.OptionalSchema<av.ObjectSchema<{
138
- keys: av.ArraySchema<av.RecordSchema<av.AnySchema>>;
154
+ keys: av.ArraySchema<av.ObjectSchema<{
155
+ kty: av.LiteralSchema<"RSA">;
156
+ use: av.LiteralSchema<"sig">;
157
+ alg: av.LiteralSchema<"RS256">;
158
+ kid: av.StringSchema;
159
+ n: av.StringSchema;
160
+ e: av.StringSchema;
161
+ }>>;
139
162
  }>>;
140
163
  }>>;
141
164
  capabilities: av.ArraySchema<av.StringSchema>;
@@ -149,15 +172,6 @@ export declare const BetterPortalTenantSchema: av.ObjectSchema<{
149
172
  activatedPlatformServices: av.ArraySchema<av.StringSchema>;
150
173
  }>;
151
174
  export type BetterPortalTenant = Infer<typeof BetterPortalTenantSchema>;
152
- export declare const BetterPortalRouteChromeValueSchema: av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>;
153
- export type BetterPortalRouteChromeValue = Infer<typeof BetterPortalRouteChromeValueSchema>;
154
- export declare const BetterPortalRouteChromeSchema: av.IntersectionSchema<[av.ObjectSchema<{
155
- hideMenu: av.OptionalSchema<av.BoolSchema>;
156
- hideHeader: av.OptionalSchema<av.BoolSchema>;
157
- hideFooter: av.OptionalSchema<av.BoolSchema>;
158
- fullScreen: av.OptionalSchema<av.BoolSchema>;
159
- }>, av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>]>;
160
- export type BetterPortalRouteChrome = Infer<typeof BetterPortalRouteChromeSchema>;
161
175
  export declare const BetterPortalRouteMountSchema: av.ObjectSchema<{
162
176
  id: av.StringSchema;
163
177
  kind: av.EnumSchema<readonly ["page", "api"]>;
@@ -185,12 +199,14 @@ export declare const BetterPortalRouteMountSchema: av.ObjectSchema<{
185
199
  targetPath: av.OptionalSchema<av.StringSchema>;
186
200
  /** Service path resolved by control plane from manifest cache. Injected on sync delivery. */
187
201
  resolvedServicePath: av.OptionalSchema<av.StringSchema>;
202
+ /** HTTP methods resolved from selected operation ids. Injected on sync delivery. */
203
+ resolvedMethods: av.OptionalSchema<av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>>;
188
204
  /** Optional query string appended to service request. */
189
205
  query: av.OptionalSchema<av.StringSchema>;
190
206
  title: av.OptionalSchema<av.StringSchema>;
191
207
  icon: av.OptionalSchema<av.StringSchema>;
192
208
  enabled: av.BoolSchema;
193
- methods: av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>;
209
+ operations: av.ArraySchema<av.StringSchema>;
194
210
  chrome: av.OptionalSchema<av.IntersectionSchema<[av.ObjectSchema<{
195
211
  hideMenu: av.OptionalSchema<av.BoolSchema>;
196
212
  hideHeader: av.OptionalSchema<av.BoolSchema>;
@@ -206,8 +222,21 @@ export declare const BetterPortalSeoConfigSchema: av.ObjectSchema<{
206
222
  canonicalOrigin: av.OptionalSchema<av.StringSchema>;
207
223
  }>;
208
224
  export type BetterPortalSeoConfig = Infer<typeof BetterPortalSeoConfigSchema>;
209
- export declare const BetterPortalMenuItemSchema: any;
210
- export type BetterPortalMenuItem = Infer<typeof BetterPortalMenuItemSchema>;
225
+ export interface BetterPortalMenuItem {
226
+ id: string;
227
+ type: "link" | "group" | "section" | "divider" | "external";
228
+ title?: string;
229
+ icon?: string;
230
+ routeId?: string;
231
+ href?: string;
232
+ enabled: boolean;
233
+ serviceStatus: "show" | "hide";
234
+ authStatus: "show" | "hide-unauthenticated" | "hide-unauthorized";
235
+ defaultExpanded?: boolean;
236
+ children: BetterPortalMenuItem[];
237
+ }
238
+ export declare const BETTERPORTAL_MENU_MAX_DEPTH = 32;
239
+ export declare const BetterPortalMenuItemSchema: av.BaseSchema<unknown, BetterPortalMenuItem>;
211
240
  export declare const BetterPortalSlotAssignmentSchema: av.ObjectSchema<{
212
241
  slotId: av.StringSchema;
213
242
  serviceId: av.StringSchema;
@@ -337,12 +366,14 @@ export declare const BetterPortalAppSchema: av.ObjectSchema<{
337
366
  targetPath: av.OptionalSchema<av.StringSchema>;
338
367
  /** Service path resolved by control plane from manifest cache. Injected on sync delivery. */
339
368
  resolvedServicePath: av.OptionalSchema<av.StringSchema>;
369
+ /** HTTP methods resolved from selected operation ids. Injected on sync delivery. */
370
+ resolvedMethods: av.OptionalSchema<av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>>;
340
371
  /** Optional query string appended to service request. */
341
372
  query: av.OptionalSchema<av.StringSchema>;
342
373
  title: av.OptionalSchema<av.StringSchema>;
343
374
  icon: av.OptionalSchema<av.StringSchema>;
344
375
  enabled: av.BoolSchema;
345
- methods: av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>;
376
+ operations: av.ArraySchema<av.StringSchema>;
346
377
  chrome: av.OptionalSchema<av.IntersectionSchema<[av.ObjectSchema<{
347
378
  hideMenu: av.OptionalSchema<av.BoolSchema>;
348
379
  hideHeader: av.OptionalSchema<av.BoolSchema>;
@@ -350,7 +381,7 @@ export declare const BetterPortalAppSchema: av.ObjectSchema<{
350
381
  fullScreen: av.OptionalSchema<av.BoolSchema>;
351
382
  }>, av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>]>>;
352
383
  }>>;
353
- menu: av.ArraySchema<any>;
384
+ menu: av.ArraySchema<av.BaseSchema<unknown, BetterPortalMenuItem>>;
354
385
  slots: av.ArraySchema<av.ObjectSchema<{
355
386
  slotId: av.StringSchema;
356
387
  serviceId: av.StringSchema;
@@ -420,7 +451,14 @@ export declare const BetterPortalAppSchema: av.ObjectSchema<{
420
451
  expectedAudience: av.StringSchema;
421
452
  jwksUri: av.StringSchema;
422
453
  publicKeys: av.OptionalSchema<av.ObjectSchema<{
423
- keys: av.ArraySchema<av.RecordSchema<av.AnySchema>>;
454
+ keys: av.ArraySchema<av.ObjectSchema<{
455
+ kty: av.LiteralSchema<"RSA">;
456
+ use: av.LiteralSchema<"sig">;
457
+ alg: av.LiteralSchema<"RS256">;
458
+ kid: av.StringSchema;
459
+ n: av.StringSchema;
460
+ e: av.StringSchema;
461
+ }>>;
424
462
  }>>;
425
463
  roles: av.ArraySchema<av.ObjectSchema<{
426
464
  id: av.StringSchema;
@@ -481,7 +519,14 @@ export declare const SharedServiceDefinitionSchema: av.ObjectSchema<{
481
519
  audience: av.StringSchema;
482
520
  jwksUri: av.StringSchema;
483
521
  publicKeys: av.OptionalSchema<av.ObjectSchema<{
484
- keys: av.ArraySchema<av.RecordSchema<av.AnySchema>>;
522
+ keys: av.ArraySchema<av.ObjectSchema<{
523
+ kty: av.LiteralSchema<"RSA">;
524
+ use: av.LiteralSchema<"sig">;
525
+ alg: av.LiteralSchema<"RS256">;
526
+ kid: av.StringSchema;
527
+ n: av.StringSchema;
528
+ e: av.StringSchema;
529
+ }>>;
485
530
  }>>;
486
531
  }>>;
487
532
  supportedDeploymentModes: av.ArraySchema<av.EnumSchema<readonly ["bp-hosted", "customer-hosted", "third-party-saas", "self-hosted", "saas-managed"]>>;
@@ -564,57 +609,177 @@ export declare const ServiceManifestCacheEntrySchema: av.ObjectSchema<{
564
609
  audience: av.StringSchema;
565
610
  jwksUri: av.StringSchema;
566
611
  publicKeys: av.OptionalSchema<av.ObjectSchema<{
567
- keys: av.ArraySchema<av.RecordSchema<av.AnySchema>>;
612
+ keys: av.ArraySchema<av.ObjectSchema<{
613
+ kty: av.LiteralSchema<"RSA">;
614
+ use: av.LiteralSchema<"sig">;
615
+ alg: av.LiteralSchema<"RS256">;
616
+ kid: av.StringSchema;
617
+ n: av.StringSchema;
618
+ e: av.StringSchema;
619
+ }>>;
568
620
  }>>;
569
621
  }>>;
570
622
  capabilities: av.ArraySchema<av.StringSchema>;
571
- m2mRequests: av.ArraySchema<av.AnySchema>;
572
- apiContracts: av.ArraySchema<av.AnySchema>;
573
- developerResources: av.ArraySchema<av.AnySchema>;
574
- configSchemas: av.ArraySchema<av.AnySchema>;
575
- webhooks: av.ArraySchema<av.AnySchema>;
623
+ m2mRequests: av.ArraySchema<av.ObjectSchema<{
624
+ id: av.StringSchema;
625
+ title: av.StringSchema;
626
+ description: av.OptionalSchema<av.StringSchema>;
627
+ contractId: av.StringSchema;
628
+ version: av.OptionalSchema<av.StringSchema>;
629
+ requiredCapabilities: av.ArraySchema<av.StringSchema>;
630
+ methods: av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>;
631
+ permissions: av.ArraySchema<av.StringSchema>;
632
+ mode: av.EnumSchema<readonly ["service", "delegated"]>;
633
+ optional: av.BoolSchema;
634
+ }>>;
635
+ apiContracts: av.ArraySchema<av.ObjectSchema<{
636
+ id: av.StringSchema;
637
+ title: av.StringSchema;
638
+ description: av.OptionalSchema<av.StringSchema>;
639
+ version: av.StringSchema;
640
+ viewId: av.StringSchema;
641
+ methods: av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>;
642
+ capabilities: av.ArraySchema<av.StringSchema>;
643
+ permissions: av.ArraySchema<av.StringSchema>;
644
+ modes: av.ArraySchema<av.EnumSchema<readonly ["service", "delegated"]>>;
645
+ }>>;
646
+ developerResources: av.ArraySchema<av.ObjectSchema<{
647
+ id: av.StringSchema;
648
+ kind: av.EnumSchema<readonly ["guide", "template", "skill", "example"]>;
649
+ title: av.StringSchema;
650
+ description: av.OptionalSchema<av.StringSchema>;
651
+ mediaType: av.StringSchema;
652
+ language: av.OptionalSchema<av.StringSchema>;
653
+ content: av.StringSchema;
654
+ }>>;
655
+ configSchemas: av.ArraySchema<av.ObjectSchema<{
656
+ id: av.StringSchema;
657
+ title: av.StringSchema;
658
+ description: av.StringSchema;
659
+ scope: av.EnumSchema<readonly ["tenant", "app"]>;
660
+ jsonSchema: av.BaseSchema<unknown, import("./json.js").JsonObject>;
661
+ groups: av.OptionalSchema<av.ArraySchema<av.ObjectSchema<{
662
+ id: av.StringSchema;
663
+ title: av.StringSchema;
664
+ description: av.OptionalSchema<av.StringSchema>;
665
+ order: av.OptionalSchema<av.IntSchema>;
666
+ optional: av.OptionalSchema<av.BoolSchema>;
667
+ }>>>;
668
+ fields: av.ArraySchema<av.ObjectSchema<{
669
+ key: av.StringSchema;
670
+ title: av.StringSchema;
671
+ description: av.StringSchema;
672
+ scope: av.EnumSchema<readonly ["tenant", "app"]>;
673
+ visibility: av.EnumSchema<readonly ["public", "protected", "secret"]>;
674
+ ownership: av.EnumSchema<readonly ["bp", "plugin", "mixed"]>;
675
+ sourceOfTruth: av.EnumSchema<readonly ["bp", "plugin", "external"]>;
676
+ groupId: av.OptionalSchema<av.StringSchema>;
677
+ order: av.OptionalSchema<av.IntSchema>;
678
+ defaultValue: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonValue>>;
679
+ ui: av.OptionalSchema<av.ObjectSchema<{
680
+ control: av.OptionalSchema<av.EnumSchema<readonly ["text", "textarea", "password", "number", "checkbox", "select", "multiselect", "color", "date", "time", "datetime-local", "url", "email"]>>;
681
+ placeholder: av.OptionalSchema<av.StringSchema>;
682
+ options: av.OptionalSchema<av.ArraySchema<av.ObjectSchema<{
683
+ value: av.StringSchema;
684
+ label: av.StringSchema;
685
+ }>>>;
686
+ optionsSource: av.OptionalSchema<av.EnumSchema<readonly ["app.routes"]>>;
687
+ min: av.OptionalSchema<av.UnionSchema<[av.NumberSchema, av.StringSchema]>>;
688
+ max: av.OptionalSchema<av.UnionSchema<[av.NumberSchema, av.StringSchema]>>;
689
+ step: av.OptionalSchema<av.NumberSchema>;
690
+ rows: av.OptionalSchema<av.IntSchema>;
691
+ }>>;
692
+ required: av.BoolSchema;
693
+ }>>;
694
+ }>>;
695
+ webhooks: av.ArraySchema<av.ObjectSchema<{
696
+ id: av.StringSchema;
697
+ title: av.StringSchema;
698
+ description: av.OptionalSchema<av.StringSchema>;
699
+ payloadSchema: av.BaseSchema<unknown, import("./json.js").JsonObject>;
700
+ }>>;
576
701
  shell: av.OptionalSchema<av.ObjectSchema<{
577
702
  service: av.StringSchema;
578
703
  renderer: av.StringSchema;
579
- fragments: av.ArraySchema<av.AnySchema>;
704
+ fragments: av.ArraySchema<av.ObjectSchema<{
705
+ id: av.StringSchema;
706
+ kind: av.EnumSchema<readonly ["fragment", "block"]>;
707
+ title: av.StringSchema;
708
+ description: av.StringSchema;
709
+ defaultItems: av.ArraySchema<av.StringSchema>;
710
+ }>>;
580
711
  }>>;
581
712
  viewIndex: av.RecordSchema<av.ObjectSchema<{
582
713
  viewId: av.StringSchema;
714
+ title: av.StringSchema;
715
+ description: av.StringSchema;
583
716
  path: av.StringSchema;
584
717
  pathVariants: av.ArraySchema<av.StringSchema>;
585
- methods: av.ArraySchema<av.StringSchema>;
586
- renderers: av.ArraySchema<av.StringSchema>;
587
- role: av.OptionalSchema<av.StringSchema>;
588
- authRequired: av.OptionalSchema<av.BoolSchema>;
589
- paramsSchema: av.OptionalSchema<av.RecordSchema<av.AnySchema>>;
590
- sitemap: av.OptionalSchema<av.ObjectSchema<{
591
- kind: av.EnumSchema<readonly ["default", "exclude", "metadata", "provider"]>;
592
- lastModified: av.OptionalSchema<av.StringSchema>;
593
- changeFrequency: av.OptionalSchema<av.EnumSchema<readonly ["always", "hourly", "daily", "weekly", "monthly", "yearly", "never"]>>;
594
- priority: av.OptionalSchema<av.NumberSchema>;
595
- }>>;
596
- robots: av.ArraySchema<av.ObjectSchema<{
597
- userAgent: av.StringSchema;
598
- access: av.EnumSchema<readonly ["allow", "disallow"]>;
599
- crawlDelaySeconds: av.OptionalSchema<av.IntSchema>;
600
- }>>;
601
- chrome: av.OptionalSchema<av.IntersectionSchema<[av.ObjectSchema<{
602
- hideMenu: av.OptionalSchema<av.BoolSchema>;
603
- hideHeader: av.OptionalSchema<av.BoolSchema>;
604
- hideFooter: av.OptionalSchema<av.BoolSchema>;
605
- fullScreen: av.OptionalSchema<av.BoolSchema>;
606
- }>, av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>]>>;
607
- dependencies: av.ArraySchema<av.StringSchema>;
608
- permissions: av.ArraySchema<av.ObjectSchema<{
609
- serviceId: av.StringSchema;
610
- viewId: av.StringSchema;
611
- permissions: av.ArraySchema<av.StringSchema>;
718
+ paramsSchema: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
719
+ operations: av.ArraySchema<av.ObjectSchema<{
720
+ operationId: av.StringSchema;
721
+ method: av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>;
722
+ title: av.StringSchema;
723
+ description: av.StringSchema;
724
+ renderers: av.ArraySchema<av.StringSchema>;
725
+ role: av.OptionalSchema<av.StringSchema>;
726
+ authRequired: av.BoolSchema;
727
+ sitemap: av.OptionalSchema<av.ObjectSchema<{
728
+ kind: av.EnumSchema<readonly ["default", "exclude", "metadata", "provider"]>;
729
+ lastModified: av.OptionalSchema<av.StringSchema>;
730
+ changeFrequency: av.OptionalSchema<av.EnumSchema<readonly ["always", "hourly", "daily", "weekly", "monthly", "yearly", "never"]>>;
731
+ priority: av.OptionalSchema<av.NumberSchema>;
732
+ }>>;
733
+ robots: av.ArraySchema<av.ObjectSchema<{
734
+ userAgent: av.StringSchema;
735
+ access: av.EnumSchema<readonly ["allow", "disallow"]>;
736
+ crawlDelaySeconds: av.OptionalSchema<av.IntSchema>;
737
+ }>>;
738
+ chrome: av.OptionalSchema<av.IntersectionSchema<[av.ObjectSchema<{
739
+ hideMenu: av.OptionalSchema<av.BoolSchema>;
740
+ hideHeader: av.OptionalSchema<av.BoolSchema>;
741
+ hideFooter: av.OptionalSchema<av.BoolSchema>;
742
+ fullScreen: av.OptionalSchema<av.BoolSchema>;
743
+ }>, av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>]>>;
744
+ dependencies: av.ArraySchema<av.StringSchema>;
745
+ permissions: av.ArraySchema<av.ObjectSchema<{
746
+ serviceId: av.StringSchema;
747
+ viewId: av.StringSchema;
748
+ permissions: av.ArraySchema<av.StringSchema>;
749
+ }>>;
750
+ renderable: av.BoolSchema;
751
+ schemas: av.OptionalSchema<av.ObjectSchema<{
752
+ query: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
753
+ headers: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
754
+ request: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
755
+ multipart: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
756
+ response: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
757
+ }>>;
758
+ raw: av.OptionalSchema<av.BoolSchema>;
759
+ apiContracts: av.ArraySchema<av.ObjectSchema<{
760
+ id: av.StringSchema;
761
+ title: av.StringSchema;
762
+ description: av.OptionalSchema<av.StringSchema>;
763
+ version: av.StringSchema;
764
+ viewId: av.StringSchema;
765
+ methods: av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>;
766
+ capabilities: av.ArraySchema<av.StringSchema>;
767
+ permissions: av.ArraySchema<av.StringSchema>;
768
+ modes: av.ArraySchema<av.EnumSchema<readonly ["service", "delegated"]>>;
769
+ }>>;
770
+ demoScenarios: av.ArraySchema<av.ObjectSchema<{
771
+ id: av.StringSchema;
772
+ title: av.StringSchema;
773
+ description: av.OptionalSchema<av.StringSchema>;
774
+ match: av.OptionalSchema<av.ObjectSchema<{
775
+ query: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
776
+ params: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
777
+ headers: av.OptionalSchema<av.RecordSchema<av.StringSchema>>;
778
+ request: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
779
+ }>>;
780
+ response: av.BaseSchema<unknown, import("./json.js").JsonValue>;
781
+ }>>;
612
782
  }>>;
613
- renderable: av.BoolSchema;
614
- schemas: av.OptionalSchema<av.RecordSchema<av.AnySchema>>;
615
- raw: av.OptionalSchema<av.BoolSchema>;
616
- apiContracts: av.ArraySchema<av.AnySchema>;
617
- demoScenarios: av.ArraySchema<av.AnySchema>;
618
783
  fragments: av.ArraySchema<av.ObjectSchema<{
619
784
  fragmentId: av.StringSchema;
620
785
  targetPath: av.StringSchema;
@@ -658,7 +823,14 @@ export declare const BetterPortalConfigSchema: av.ObjectSchema<{
658
823
  audience: av.StringSchema;
659
824
  jwksUri: av.StringSchema;
660
825
  publicKeys: av.OptionalSchema<av.ObjectSchema<{
661
- keys: av.ArraySchema<av.RecordSchema<av.AnySchema>>;
826
+ keys: av.ArraySchema<av.ObjectSchema<{
827
+ kty: av.LiteralSchema<"RSA">;
828
+ use: av.LiteralSchema<"sig">;
829
+ alg: av.LiteralSchema<"RS256">;
830
+ kid: av.StringSchema;
831
+ n: av.StringSchema;
832
+ e: av.StringSchema;
833
+ }>>;
662
834
  }>>;
663
835
  }>>;
664
836
  capabilities: av.ArraySchema<av.StringSchema>;
@@ -691,7 +863,14 @@ export declare const BetterPortalConfigSchema: av.ObjectSchema<{
691
863
  audience: av.StringSchema;
692
864
  jwksUri: av.StringSchema;
693
865
  publicKeys: av.OptionalSchema<av.ObjectSchema<{
694
- keys: av.ArraySchema<av.RecordSchema<av.AnySchema>>;
866
+ keys: av.ArraySchema<av.ObjectSchema<{
867
+ kty: av.LiteralSchema<"RSA">;
868
+ use: av.LiteralSchema<"sig">;
869
+ alg: av.LiteralSchema<"RS256">;
870
+ kid: av.StringSchema;
871
+ n: av.StringSchema;
872
+ e: av.StringSchema;
873
+ }>>;
695
874
  }>>;
696
875
  }>>;
697
876
  capabilities: av.ArraySchema<av.StringSchema>;
@@ -782,12 +961,14 @@ export declare const BetterPortalConfigSchema: av.ObjectSchema<{
782
961
  targetPath: av.OptionalSchema<av.StringSchema>;
783
962
  /** Service path resolved by control plane from manifest cache. Injected on sync delivery. */
784
963
  resolvedServicePath: av.OptionalSchema<av.StringSchema>;
964
+ /** HTTP methods resolved from selected operation ids. Injected on sync delivery. */
965
+ resolvedMethods: av.OptionalSchema<av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>>;
785
966
  /** Optional query string appended to service request. */
786
967
  query: av.OptionalSchema<av.StringSchema>;
787
968
  title: av.OptionalSchema<av.StringSchema>;
788
969
  icon: av.OptionalSchema<av.StringSchema>;
789
970
  enabled: av.BoolSchema;
790
- methods: av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>;
971
+ operations: av.ArraySchema<av.StringSchema>;
791
972
  chrome: av.OptionalSchema<av.IntersectionSchema<[av.ObjectSchema<{
792
973
  hideMenu: av.OptionalSchema<av.BoolSchema>;
793
974
  hideHeader: av.OptionalSchema<av.BoolSchema>;
@@ -795,7 +976,7 @@ export declare const BetterPortalConfigSchema: av.ObjectSchema<{
795
976
  fullScreen: av.OptionalSchema<av.BoolSchema>;
796
977
  }>, av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>]>>;
797
978
  }>>;
798
- menu: av.ArraySchema<any>;
979
+ menu: av.ArraySchema<av.BaseSchema<unknown, BetterPortalMenuItem>>;
799
980
  slots: av.ArraySchema<av.ObjectSchema<{
800
981
  slotId: av.StringSchema;
801
982
  serviceId: av.StringSchema;
@@ -865,7 +1046,14 @@ export declare const BetterPortalConfigSchema: av.ObjectSchema<{
865
1046
  expectedAudience: av.StringSchema;
866
1047
  jwksUri: av.StringSchema;
867
1048
  publicKeys: av.OptionalSchema<av.ObjectSchema<{
868
- keys: av.ArraySchema<av.RecordSchema<av.AnySchema>>;
1049
+ keys: av.ArraySchema<av.ObjectSchema<{
1050
+ kty: av.LiteralSchema<"RSA">;
1051
+ use: av.LiteralSchema<"sig">;
1052
+ alg: av.LiteralSchema<"RS256">;
1053
+ kid: av.StringSchema;
1054
+ n: av.StringSchema;
1055
+ e: av.StringSchema;
1056
+ }>>;
869
1057
  }>>;
870
1058
  roles: av.ArraySchema<av.ObjectSchema<{
871
1059
  id: av.StringSchema;
@@ -895,7 +1083,14 @@ export declare const BetterPortalConfigSchema: av.ObjectSchema<{
895
1083
  audience: av.StringSchema;
896
1084
  jwksUri: av.StringSchema;
897
1085
  publicKeys: av.OptionalSchema<av.ObjectSchema<{
898
- keys: av.ArraySchema<av.RecordSchema<av.AnySchema>>;
1086
+ keys: av.ArraySchema<av.ObjectSchema<{
1087
+ kty: av.LiteralSchema<"RSA">;
1088
+ use: av.LiteralSchema<"sig">;
1089
+ alg: av.LiteralSchema<"RS256">;
1090
+ kid: av.StringSchema;
1091
+ n: av.StringSchema;
1092
+ e: av.StringSchema;
1093
+ }>>;
899
1094
  }>>;
900
1095
  }>>;
901
1096
  supportedDeploymentModes: av.ArraySchema<av.EnumSchema<readonly ["bp-hosted", "customer-hosted", "third-party-saas", "self-hosted", "saas-managed"]>>;
@@ -925,57 +1120,177 @@ export declare const BetterPortalConfigSchema: av.ObjectSchema<{
925
1120
  audience: av.StringSchema;
926
1121
  jwksUri: av.StringSchema;
927
1122
  publicKeys: av.OptionalSchema<av.ObjectSchema<{
928
- keys: av.ArraySchema<av.RecordSchema<av.AnySchema>>;
1123
+ keys: av.ArraySchema<av.ObjectSchema<{
1124
+ kty: av.LiteralSchema<"RSA">;
1125
+ use: av.LiteralSchema<"sig">;
1126
+ alg: av.LiteralSchema<"RS256">;
1127
+ kid: av.StringSchema;
1128
+ n: av.StringSchema;
1129
+ e: av.StringSchema;
1130
+ }>>;
929
1131
  }>>;
930
1132
  }>>;
931
1133
  capabilities: av.ArraySchema<av.StringSchema>;
932
- m2mRequests: av.ArraySchema<av.AnySchema>;
933
- apiContracts: av.ArraySchema<av.AnySchema>;
934
- developerResources: av.ArraySchema<av.AnySchema>;
935
- configSchemas: av.ArraySchema<av.AnySchema>;
936
- webhooks: av.ArraySchema<av.AnySchema>;
1134
+ m2mRequests: av.ArraySchema<av.ObjectSchema<{
1135
+ id: av.StringSchema;
1136
+ title: av.StringSchema;
1137
+ description: av.OptionalSchema<av.StringSchema>;
1138
+ contractId: av.StringSchema;
1139
+ version: av.OptionalSchema<av.StringSchema>;
1140
+ requiredCapabilities: av.ArraySchema<av.StringSchema>;
1141
+ methods: av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>;
1142
+ permissions: av.ArraySchema<av.StringSchema>;
1143
+ mode: av.EnumSchema<readonly ["service", "delegated"]>;
1144
+ optional: av.BoolSchema;
1145
+ }>>;
1146
+ apiContracts: av.ArraySchema<av.ObjectSchema<{
1147
+ id: av.StringSchema;
1148
+ title: av.StringSchema;
1149
+ description: av.OptionalSchema<av.StringSchema>;
1150
+ version: av.StringSchema;
1151
+ viewId: av.StringSchema;
1152
+ methods: av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>;
1153
+ capabilities: av.ArraySchema<av.StringSchema>;
1154
+ permissions: av.ArraySchema<av.StringSchema>;
1155
+ modes: av.ArraySchema<av.EnumSchema<readonly ["service", "delegated"]>>;
1156
+ }>>;
1157
+ developerResources: av.ArraySchema<av.ObjectSchema<{
1158
+ id: av.StringSchema;
1159
+ kind: av.EnumSchema<readonly ["guide", "template", "skill", "example"]>;
1160
+ title: av.StringSchema;
1161
+ description: av.OptionalSchema<av.StringSchema>;
1162
+ mediaType: av.StringSchema;
1163
+ language: av.OptionalSchema<av.StringSchema>;
1164
+ content: av.StringSchema;
1165
+ }>>;
1166
+ configSchemas: av.ArraySchema<av.ObjectSchema<{
1167
+ id: av.StringSchema;
1168
+ title: av.StringSchema;
1169
+ description: av.StringSchema;
1170
+ scope: av.EnumSchema<readonly ["tenant", "app"]>;
1171
+ jsonSchema: av.BaseSchema<unknown, import("./json.js").JsonObject>;
1172
+ groups: av.OptionalSchema<av.ArraySchema<av.ObjectSchema<{
1173
+ id: av.StringSchema;
1174
+ title: av.StringSchema;
1175
+ description: av.OptionalSchema<av.StringSchema>;
1176
+ order: av.OptionalSchema<av.IntSchema>;
1177
+ optional: av.OptionalSchema<av.BoolSchema>;
1178
+ }>>>;
1179
+ fields: av.ArraySchema<av.ObjectSchema<{
1180
+ key: av.StringSchema;
1181
+ title: av.StringSchema;
1182
+ description: av.StringSchema;
1183
+ scope: av.EnumSchema<readonly ["tenant", "app"]>;
1184
+ visibility: av.EnumSchema<readonly ["public", "protected", "secret"]>;
1185
+ ownership: av.EnumSchema<readonly ["bp", "plugin", "mixed"]>;
1186
+ sourceOfTruth: av.EnumSchema<readonly ["bp", "plugin", "external"]>;
1187
+ groupId: av.OptionalSchema<av.StringSchema>;
1188
+ order: av.OptionalSchema<av.IntSchema>;
1189
+ defaultValue: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonValue>>;
1190
+ ui: av.OptionalSchema<av.ObjectSchema<{
1191
+ control: av.OptionalSchema<av.EnumSchema<readonly ["text", "textarea", "password", "number", "checkbox", "select", "multiselect", "color", "date", "time", "datetime-local", "url", "email"]>>;
1192
+ placeholder: av.OptionalSchema<av.StringSchema>;
1193
+ options: av.OptionalSchema<av.ArraySchema<av.ObjectSchema<{
1194
+ value: av.StringSchema;
1195
+ label: av.StringSchema;
1196
+ }>>>;
1197
+ optionsSource: av.OptionalSchema<av.EnumSchema<readonly ["app.routes"]>>;
1198
+ min: av.OptionalSchema<av.UnionSchema<[av.NumberSchema, av.StringSchema]>>;
1199
+ max: av.OptionalSchema<av.UnionSchema<[av.NumberSchema, av.StringSchema]>>;
1200
+ step: av.OptionalSchema<av.NumberSchema>;
1201
+ rows: av.OptionalSchema<av.IntSchema>;
1202
+ }>>;
1203
+ required: av.BoolSchema;
1204
+ }>>;
1205
+ }>>;
1206
+ webhooks: av.ArraySchema<av.ObjectSchema<{
1207
+ id: av.StringSchema;
1208
+ title: av.StringSchema;
1209
+ description: av.OptionalSchema<av.StringSchema>;
1210
+ payloadSchema: av.BaseSchema<unknown, import("./json.js").JsonObject>;
1211
+ }>>;
937
1212
  shell: av.OptionalSchema<av.ObjectSchema<{
938
1213
  service: av.StringSchema;
939
1214
  renderer: av.StringSchema;
940
- fragments: av.ArraySchema<av.AnySchema>;
1215
+ fragments: av.ArraySchema<av.ObjectSchema<{
1216
+ id: av.StringSchema;
1217
+ kind: av.EnumSchema<readonly ["fragment", "block"]>;
1218
+ title: av.StringSchema;
1219
+ description: av.StringSchema;
1220
+ defaultItems: av.ArraySchema<av.StringSchema>;
1221
+ }>>;
941
1222
  }>>;
942
1223
  viewIndex: av.RecordSchema<av.ObjectSchema<{
943
1224
  viewId: av.StringSchema;
1225
+ title: av.StringSchema;
1226
+ description: av.StringSchema;
944
1227
  path: av.StringSchema;
945
1228
  pathVariants: av.ArraySchema<av.StringSchema>;
946
- methods: av.ArraySchema<av.StringSchema>;
947
- renderers: av.ArraySchema<av.StringSchema>;
948
- role: av.OptionalSchema<av.StringSchema>;
949
- authRequired: av.OptionalSchema<av.BoolSchema>;
950
- paramsSchema: av.OptionalSchema<av.RecordSchema<av.AnySchema>>;
951
- sitemap: av.OptionalSchema<av.ObjectSchema<{
952
- kind: av.EnumSchema<readonly ["default", "exclude", "metadata", "provider"]>;
953
- lastModified: av.OptionalSchema<av.StringSchema>;
954
- changeFrequency: av.OptionalSchema<av.EnumSchema<readonly ["always", "hourly", "daily", "weekly", "monthly", "yearly", "never"]>>;
955
- priority: av.OptionalSchema<av.NumberSchema>;
956
- }>>;
957
- robots: av.ArraySchema<av.ObjectSchema<{
958
- userAgent: av.StringSchema;
959
- access: av.EnumSchema<readonly ["allow", "disallow"]>;
960
- crawlDelaySeconds: av.OptionalSchema<av.IntSchema>;
961
- }>>;
962
- chrome: av.OptionalSchema<av.IntersectionSchema<[av.ObjectSchema<{
963
- hideMenu: av.OptionalSchema<av.BoolSchema>;
964
- hideHeader: av.OptionalSchema<av.BoolSchema>;
965
- hideFooter: av.OptionalSchema<av.BoolSchema>;
966
- fullScreen: av.OptionalSchema<av.BoolSchema>;
967
- }>, av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>]>>;
968
- dependencies: av.ArraySchema<av.StringSchema>;
969
- permissions: av.ArraySchema<av.ObjectSchema<{
970
- serviceId: av.StringSchema;
971
- viewId: av.StringSchema;
972
- permissions: av.ArraySchema<av.StringSchema>;
1229
+ paramsSchema: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
1230
+ operations: av.ArraySchema<av.ObjectSchema<{
1231
+ operationId: av.StringSchema;
1232
+ method: av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>;
1233
+ title: av.StringSchema;
1234
+ description: av.StringSchema;
1235
+ renderers: av.ArraySchema<av.StringSchema>;
1236
+ role: av.OptionalSchema<av.StringSchema>;
1237
+ authRequired: av.BoolSchema;
1238
+ sitemap: av.OptionalSchema<av.ObjectSchema<{
1239
+ kind: av.EnumSchema<readonly ["default", "exclude", "metadata", "provider"]>;
1240
+ lastModified: av.OptionalSchema<av.StringSchema>;
1241
+ changeFrequency: av.OptionalSchema<av.EnumSchema<readonly ["always", "hourly", "daily", "weekly", "monthly", "yearly", "never"]>>;
1242
+ priority: av.OptionalSchema<av.NumberSchema>;
1243
+ }>>;
1244
+ robots: av.ArraySchema<av.ObjectSchema<{
1245
+ userAgent: av.StringSchema;
1246
+ access: av.EnumSchema<readonly ["allow", "disallow"]>;
1247
+ crawlDelaySeconds: av.OptionalSchema<av.IntSchema>;
1248
+ }>>;
1249
+ chrome: av.OptionalSchema<av.IntersectionSchema<[av.ObjectSchema<{
1250
+ hideMenu: av.OptionalSchema<av.BoolSchema>;
1251
+ hideHeader: av.OptionalSchema<av.BoolSchema>;
1252
+ hideFooter: av.OptionalSchema<av.BoolSchema>;
1253
+ fullScreen: av.OptionalSchema<av.BoolSchema>;
1254
+ }>, av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>]>>;
1255
+ dependencies: av.ArraySchema<av.StringSchema>;
1256
+ permissions: av.ArraySchema<av.ObjectSchema<{
1257
+ serviceId: av.StringSchema;
1258
+ viewId: av.StringSchema;
1259
+ permissions: av.ArraySchema<av.StringSchema>;
1260
+ }>>;
1261
+ renderable: av.BoolSchema;
1262
+ schemas: av.OptionalSchema<av.ObjectSchema<{
1263
+ query: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
1264
+ headers: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
1265
+ request: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
1266
+ multipart: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
1267
+ response: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
1268
+ }>>;
1269
+ raw: av.OptionalSchema<av.BoolSchema>;
1270
+ apiContracts: av.ArraySchema<av.ObjectSchema<{
1271
+ id: av.StringSchema;
1272
+ title: av.StringSchema;
1273
+ description: av.OptionalSchema<av.StringSchema>;
1274
+ version: av.StringSchema;
1275
+ viewId: av.StringSchema;
1276
+ methods: av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>;
1277
+ capabilities: av.ArraySchema<av.StringSchema>;
1278
+ permissions: av.ArraySchema<av.StringSchema>;
1279
+ modes: av.ArraySchema<av.EnumSchema<readonly ["service", "delegated"]>>;
1280
+ }>>;
1281
+ demoScenarios: av.ArraySchema<av.ObjectSchema<{
1282
+ id: av.StringSchema;
1283
+ title: av.StringSchema;
1284
+ description: av.OptionalSchema<av.StringSchema>;
1285
+ match: av.OptionalSchema<av.ObjectSchema<{
1286
+ query: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
1287
+ params: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
1288
+ headers: av.OptionalSchema<av.RecordSchema<av.StringSchema>>;
1289
+ request: av.OptionalSchema<av.BaseSchema<unknown, import("./json.js").JsonObject>>;
1290
+ }>>;
1291
+ response: av.BaseSchema<unknown, import("./json.js").JsonValue>;
1292
+ }>>;
973
1293
  }>>;
974
- renderable: av.BoolSchema;
975
- schemas: av.OptionalSchema<av.RecordSchema<av.AnySchema>>;
976
- raw: av.OptionalSchema<av.BoolSchema>;
977
- apiContracts: av.ArraySchema<av.AnySchema>;
978
- demoScenarios: av.ArraySchema<av.AnySchema>;
979
1294
  fragments: av.ArraySchema<av.ObjectSchema<{
980
1295
  fragmentId: av.StringSchema;
981
1296
  targetPath: av.StringSchema;