@betterportal/framework 0.0.1

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 (194) hide show
  1. package/README.md +13 -0
  2. package/lib/adapters/h3.d.ts +51 -0
  3. package/lib/adapters/h3.d.ts.map +1 -0
  4. package/lib/adapters/h3.js +1120 -0
  5. package/lib/adapters/h3.js.map +1 -0
  6. package/lib/codegen/cli.d.ts +3 -0
  7. package/lib/codegen/cli.d.ts.map +1 -0
  8. package/lib/codegen/cli.js +82 -0
  9. package/lib/codegen/cli.js.map +1 -0
  10. package/lib/codegen/emitter.d.ts +7 -0
  11. package/lib/codegen/emitter.d.ts.map +1 -0
  12. package/lib/codegen/emitter.js +453 -0
  13. package/lib/codegen/emitter.js.map +1 -0
  14. package/lib/codegen/init.d.ts +3 -0
  15. package/lib/codegen/init.d.ts.map +1 -0
  16. package/lib/codegen/init.js +90 -0
  17. package/lib/codegen/init.js.map +1 -0
  18. package/lib/codegen/scanner.d.ts +56 -0
  19. package/lib/codegen/scanner.d.ts.map +1 -0
  20. package/lib/codegen/scanner.js +484 -0
  21. package/lib/codegen/scanner.js.map +1 -0
  22. package/lib/codegen/validate.d.ts +14 -0
  23. package/lib/codegen/validate.d.ts.map +1 -0
  24. package/lib/codegen/validate.js +166 -0
  25. package/lib/codegen/validate.js.map +1 -0
  26. package/lib/contracts/auth.d.ts +160 -0
  27. package/lib/contracts/auth.d.ts.map +1 -0
  28. package/lib/contracts/auth.js +123 -0
  29. package/lib/contracts/auth.js.map +1 -0
  30. package/lib/contracts/binding.d.ts +169 -0
  31. package/lib/contracts/binding.d.ts.map +1 -0
  32. package/lib/contracts/binding.js +69 -0
  33. package/lib/contracts/binding.js.map +1 -0
  34. package/lib/contracts/common.d.ts +23 -0
  35. package/lib/contracts/common.d.ts.map +1 -0
  36. package/lib/contracts/common.js +18 -0
  37. package/lib/contracts/common.js.map +1 -0
  38. package/lib/contracts/config.d.ts +93 -0
  39. package/lib/contracts/config.d.ts.map +1 -0
  40. package/lib/contracts/config.js +62 -0
  41. package/lib/contracts/config.js.map +1 -0
  42. package/lib/contracts/controlPlane.d.ts +63 -0
  43. package/lib/contracts/controlPlane.d.ts.map +1 -0
  44. package/lib/contracts/controlPlane.js +2 -0
  45. package/lib/contracts/controlPlane.js.map +1 -0
  46. package/lib/contracts/json.d.ts +9 -0
  47. package/lib/contracts/json.d.ts.map +1 -0
  48. package/lib/contracts/json.js +6 -0
  49. package/lib/contracts/json.js.map +1 -0
  50. package/lib/contracts/manifest.d.ts +158 -0
  51. package/lib/contracts/manifest.d.ts.map +1 -0
  52. package/lib/contracts/manifest.js +40 -0
  53. package/lib/contracts/manifest.js.map +1 -0
  54. package/lib/contracts/observability.d.ts +77 -0
  55. package/lib/contracts/observability.d.ts.map +1 -0
  56. package/lib/contracts/observability.js +99 -0
  57. package/lib/contracts/observability.js.map +1 -0
  58. package/lib/contracts/platformConfig.d.ts +635 -0
  59. package/lib/contracts/platformConfig.d.ts.map +1 -0
  60. package/lib/contracts/platformConfig.js +256 -0
  61. package/lib/contracts/platformConfig.js.map +1 -0
  62. package/lib/contracts/registry.d.ts +104 -0
  63. package/lib/contracts/registry.d.ts.map +1 -0
  64. package/lib/contracts/registry.js +2 -0
  65. package/lib/contracts/registry.js.map +1 -0
  66. package/lib/contracts/route.d.ts +199 -0
  67. package/lib/contracts/route.d.ts.map +1 -0
  68. package/lib/contracts/route.js +26 -0
  69. package/lib/contracts/route.js.map +1 -0
  70. package/lib/contracts/serviceConfig.d.ts +88 -0
  71. package/lib/contracts/serviceConfig.d.ts.map +1 -0
  72. package/lib/contracts/serviceConfig.js +45 -0
  73. package/lib/contracts/serviceConfig.js.map +1 -0
  74. package/lib/contracts/streaming.d.ts +76 -0
  75. package/lib/contracts/streaming.d.ts.map +1 -0
  76. package/lib/contracts/streaming.js +31 -0
  77. package/lib/contracts/streaming.js.map +1 -0
  78. package/lib/contracts/view.d.ts +149 -0
  79. package/lib/contracts/view.d.ts.map +1 -0
  80. package/lib/contracts/view.js +82 -0
  81. package/lib/contracts/view.js.map +1 -0
  82. package/lib/controlPlane/store.d.ts +24 -0
  83. package/lib/controlPlane/store.d.ts.map +1 -0
  84. package/lib/controlPlane/store.js +70 -0
  85. package/lib/controlPlane/store.js.map +1 -0
  86. package/lib/controlPlane/sync.d.ts +8 -0
  87. package/lib/controlPlane/sync.d.ts.map +1 -0
  88. package/lib/controlPlane/sync.js +24 -0
  89. package/lib/controlPlane/sync.js.map +1 -0
  90. package/lib/controlPlane/types.d.ts +15 -0
  91. package/lib/controlPlane/types.d.ts.map +1 -0
  92. package/lib/controlPlane/types.js +2 -0
  93. package/lib/controlPlane/types.js.map +1 -0
  94. package/lib/index.d.ts +40 -0
  95. package/lib/index.d.ts.map +1 -0
  96. package/lib/index.js +40 -0
  97. package/lib/index.js.map +1 -0
  98. package/lib/runtime/auth/envelope.d.ts +32 -0
  99. package/lib/runtime/auth/envelope.d.ts.map +1 -0
  100. package/lib/runtime/auth/envelope.js +123 -0
  101. package/lib/runtime/auth/envelope.js.map +1 -0
  102. package/lib/runtime/auth/issuer.d.ts +44 -0
  103. package/lib/runtime/auth/issuer.d.ts.map +1 -0
  104. package/lib/runtime/auth/issuer.js +82 -0
  105. package/lib/runtime/auth/issuer.js.map +1 -0
  106. package/lib/runtime/auth/jwks.d.ts +7 -0
  107. package/lib/runtime/auth/jwks.d.ts.map +1 -0
  108. package/lib/runtime/auth/jwks.js +69 -0
  109. package/lib/runtime/auth/jwks.js.map +1 -0
  110. package/lib/runtime/auth/keypair.d.ts +21 -0
  111. package/lib/runtime/auth/keypair.d.ts.map +1 -0
  112. package/lib/runtime/auth/keypair.js +50 -0
  113. package/lib/runtime/auth/keypair.js.map +1 -0
  114. package/lib/runtime/auth/tokens.d.ts +25 -0
  115. package/lib/runtime/auth/tokens.d.ts.map +1 -0
  116. package/lib/runtime/auth/tokens.js +137 -0
  117. package/lib/runtime/auth/tokens.js.map +1 -0
  118. package/lib/runtime/auth/verifier.d.ts +45 -0
  119. package/lib/runtime/auth/verifier.d.ts.map +1 -0
  120. package/lib/runtime/auth/verifier.js +76 -0
  121. package/lib/runtime/auth/verifier.js.map +1 -0
  122. package/lib/runtime/bpHeaders.d.ts +10 -0
  123. package/lib/runtime/bpHeaders.d.ts.map +1 -0
  124. package/lib/runtime/bpHeaders.js +53 -0
  125. package/lib/runtime/bpHeaders.js.map +1 -0
  126. package/lib/runtime/configProvider.d.ts +41 -0
  127. package/lib/runtime/configProvider.d.ts.map +1 -0
  128. package/lib/runtime/configProvider.js +232 -0
  129. package/lib/runtime/configProvider.js.map +1 -0
  130. package/lib/runtime/configStore.d.ts +34 -0
  131. package/lib/runtime/configStore.d.ts.map +1 -0
  132. package/lib/runtime/configStore.js +197 -0
  133. package/lib/runtime/configStore.js.map +1 -0
  134. package/lib/runtime/configTicket.d.ts +49 -0
  135. package/lib/runtime/configTicket.d.ts.map +1 -0
  136. package/lib/runtime/configTicket.js +168 -0
  137. package/lib/runtime/configTicket.js.map +1 -0
  138. package/lib/runtime/h3.d.ts +28 -0
  139. package/lib/runtime/h3.d.ts.map +1 -0
  140. package/lib/runtime/h3.js +199 -0
  141. package/lib/runtime/h3.js.map +1 -0
  142. package/lib/runtime/handler.d.ts +55 -0
  143. package/lib/runtime/handler.d.ts.map +1 -0
  144. package/lib/runtime/handler.js +51 -0
  145. package/lib/runtime/handler.js.map +1 -0
  146. package/lib/runtime/http.d.ts +13 -0
  147. package/lib/runtime/http.d.ts.map +1 -0
  148. package/lib/runtime/http.js +114 -0
  149. package/lib/runtime/http.js.map +1 -0
  150. package/lib/runtime/jsonSchema.d.ts +4 -0
  151. package/lib/runtime/jsonSchema.d.ts.map +1 -0
  152. package/lib/runtime/jsonSchema.js +28 -0
  153. package/lib/runtime/jsonSchema.js.map +1 -0
  154. package/lib/runtime/manifest.d.ts +3 -0
  155. package/lib/runtime/manifest.d.ts.map +1 -0
  156. package/lib/runtime/manifest.js +5 -0
  157. package/lib/runtime/manifest.js.map +1 -0
  158. package/lib/runtime/media.d.ts +20 -0
  159. package/lib/runtime/media.d.ts.map +1 -0
  160. package/lib/runtime/media.js +70 -0
  161. package/lib/runtime/media.js.map +1 -0
  162. package/lib/runtime/registry.d.ts +67 -0
  163. package/lib/runtime/registry.d.ts.map +1 -0
  164. package/lib/runtime/registry.js +290 -0
  165. package/lib/runtime/registry.js.map +1 -0
  166. package/lib/runtime/serviceConfig.d.ts +38 -0
  167. package/lib/runtime/serviceConfig.d.ts.map +1 -0
  168. package/lib/runtime/serviceConfig.js +152 -0
  169. package/lib/runtime/serviceConfig.js.map +1 -0
  170. package/lib/runtime/statusViews.d.ts +23 -0
  171. package/lib/runtime/statusViews.d.ts.map +1 -0
  172. package/lib/runtime/statusViews.js +48 -0
  173. package/lib/runtime/statusViews.js.map +1 -0
  174. package/lib/runtime/stream.d.ts +41 -0
  175. package/lib/runtime/stream.d.ts.map +1 -0
  176. package/lib/runtime/stream.js +92 -0
  177. package/lib/runtime/stream.js.map +1 -0
  178. package/lib/runtime/streamHandler.d.ts +48 -0
  179. package/lib/runtime/streamHandler.d.ts.map +1 -0
  180. package/lib/runtime/streamHandler.js +49 -0
  181. package/lib/runtime/streamHandler.js.map +1 -0
  182. package/lib/runtime/tenantResolution.d.ts +4 -0
  183. package/lib/runtime/tenantResolution.d.ts.map +1 -0
  184. package/lib/runtime/tenantResolution.js +19 -0
  185. package/lib/runtime/tenantResolution.js.map +1 -0
  186. package/lib/runtime/uuid.d.ts +6 -0
  187. package/lib/runtime/uuid.d.ts.map +1 -0
  188. package/lib/runtime/uuid.js +27 -0
  189. package/lib/runtime/uuid.js.map +1 -0
  190. package/lib/runtime/view.d.ts +48 -0
  191. package/lib/runtime/view.d.ts.map +1 -0
  192. package/lib/runtime/view.js +111 -0
  193. package/lib/runtime/view.js.map +1 -0
  194. package/package.json +56 -0
@@ -0,0 +1,635 @@
1
+ import * as av from "anyvali";
2
+ import type { Infer } from "anyvali";
3
+ export declare const BetterPortalBrandingSchema: av.ObjectSchema<{
4
+ brandName: av.OptionalSchema<av.StringSchema>;
5
+ logoUrl: av.OptionalSchema<av.StringSchema>;
6
+ primaryColor: av.OptionalSchema<av.StringSchema>;
7
+ secondaryColor: av.OptionalSchema<av.StringSchema>;
8
+ }>;
9
+ export type BetterPortalBranding = Infer<typeof BetterPortalBrandingSchema>;
10
+ export declare const BetterPortalThemeBootstrapPaletteSchema: av.ObjectSchema<{
11
+ primary: av.OptionalSchema<av.StringSchema>;
12
+ secondary: av.OptionalSchema<av.StringSchema>;
13
+ success: av.OptionalSchema<av.StringSchema>;
14
+ info: av.OptionalSchema<av.StringSchema>;
15
+ warning: av.OptionalSchema<av.StringSchema>;
16
+ danger: av.OptionalSchema<av.StringSchema>;
17
+ light: av.OptionalSchema<av.StringSchema>;
18
+ dark: av.OptionalSchema<av.StringSchema>;
19
+ }>;
20
+ export type BetterPortalThemeBootstrapPalette = Infer<typeof BetterPortalThemeBootstrapPaletteSchema>;
21
+ export declare const BetterPortalThemeSurfaceSchema: av.ObjectSchema<{
22
+ background: av.OptionalSchema<av.StringSchema>;
23
+ surface: av.OptionalSchema<av.StringSchema>;
24
+ surfaceAlt: av.OptionalSchema<av.StringSchema>;
25
+ text: av.OptionalSchema<av.StringSchema>;
26
+ textSoft: av.OptionalSchema<av.StringSchema>;
27
+ border: av.OptionalSchema<av.StringSchema>;
28
+ accentSoft: av.OptionalSchema<av.StringSchema>;
29
+ }>;
30
+ export type BetterPortalThemeSurface = Infer<typeof BetterPortalThemeSurfaceSchema>;
31
+ export declare const BetterPortalThemeConfigSchema: av.ObjectSchema<{
32
+ brandName: av.OptionalSchema<av.StringSchema>;
33
+ mode: av.EnumSchema<readonly ["light", "dark", "system"]>;
34
+ bootstrap: av.ObjectSchema<{
35
+ primary: av.OptionalSchema<av.StringSchema>;
36
+ secondary: av.OptionalSchema<av.StringSchema>;
37
+ success: av.OptionalSchema<av.StringSchema>;
38
+ info: av.OptionalSchema<av.StringSchema>;
39
+ warning: av.OptionalSchema<av.StringSchema>;
40
+ danger: av.OptionalSchema<av.StringSchema>;
41
+ light: av.OptionalSchema<av.StringSchema>;
42
+ dark: av.OptionalSchema<av.StringSchema>;
43
+ }>;
44
+ light: av.ObjectSchema<{
45
+ background: av.OptionalSchema<av.StringSchema>;
46
+ surface: av.OptionalSchema<av.StringSchema>;
47
+ surfaceAlt: av.OptionalSchema<av.StringSchema>;
48
+ text: av.OptionalSchema<av.StringSchema>;
49
+ textSoft: av.OptionalSchema<av.StringSchema>;
50
+ border: av.OptionalSchema<av.StringSchema>;
51
+ accentSoft: av.OptionalSchema<av.StringSchema>;
52
+ }>;
53
+ dark: av.ObjectSchema<{
54
+ background: av.OptionalSchema<av.StringSchema>;
55
+ surface: av.OptionalSchema<av.StringSchema>;
56
+ surfaceAlt: av.OptionalSchema<av.StringSchema>;
57
+ text: av.OptionalSchema<av.StringSchema>;
58
+ textSoft: av.OptionalSchema<av.StringSchema>;
59
+ border: av.OptionalSchema<av.StringSchema>;
60
+ accentSoft: av.OptionalSchema<av.StringSchema>;
61
+ }>;
62
+ }>;
63
+ export type BetterPortalThemeConfig = Infer<typeof BetterPortalThemeConfigSchema>;
64
+ export declare const TenantServiceRegistrationSchema: av.ObjectSchema<{
65
+ id: av.StringSchema;
66
+ hostname: av.StringSchema;
67
+ apiKeyHash: av.StringSchema;
68
+ publicKeyPem: av.OptionalSchema<av.StringSchema>;
69
+ keyId: av.OptionalSchema<av.StringSchema>;
70
+ serviceId: av.OptionalSchema<av.StringSchema>;
71
+ capabilities: av.ArraySchema<av.StringSchema>;
72
+ title: av.OptionalSchema<av.StringSchema>;
73
+ description: av.OptionalSchema<av.StringSchema>;
74
+ deploymentMode: av.EnumSchema<readonly ["bp-hosted", "customer-hosted", "third-party-saas", "self-hosted", "saas-managed"]>;
75
+ createdAt: av.StringSchema;
76
+ lastSeenAt: av.OptionalSchema<av.StringSchema>;
77
+ enabled: av.BoolSchema;
78
+ }>;
79
+ export type TenantServiceRegistration = Infer<typeof TenantServiceRegistrationSchema>;
80
+ export declare const BetterPortalAppShellSchema: av.ObjectSchema<{
81
+ serviceId: av.StringSchema;
82
+ }>;
83
+ export type BetterPortalAppShell = Infer<typeof BetterPortalAppShellSchema>;
84
+ export declare const PlatformServiceSchema: av.ObjectSchema<{
85
+ id: av.StringSchema;
86
+ hostname: av.StringSchema;
87
+ apiKeyHash: av.StringSchema;
88
+ publicKeyPem: av.OptionalSchema<av.StringSchema>;
89
+ keyId: av.OptionalSchema<av.StringSchema>;
90
+ serviceId: av.OptionalSchema<av.StringSchema>;
91
+ capabilities: av.ArraySchema<av.StringSchema>;
92
+ title: av.StringSchema;
93
+ description: av.OptionalSchema<av.StringSchema>;
94
+ category: av.OptionalSchema<av.StringSchema>;
95
+ createdAt: av.StringSchema;
96
+ enabled: av.BoolSchema;
97
+ }>;
98
+ export type PlatformService = Infer<typeof PlatformServiceSchema>;
99
+ export declare const BetterPortalTenantSchema: av.ObjectSchema<{
100
+ id: av.StringSchema;
101
+ slug: av.StringSchema;
102
+ title: av.StringSchema;
103
+ active: av.BoolSchema;
104
+ branding: av.ObjectSchema<{
105
+ brandName: av.OptionalSchema<av.StringSchema>;
106
+ logoUrl: av.OptionalSchema<av.StringSchema>;
107
+ primaryColor: av.OptionalSchema<av.StringSchema>;
108
+ secondaryColor: av.OptionalSchema<av.StringSchema>;
109
+ }>;
110
+ services: av.ArraySchema<av.ObjectSchema<{
111
+ id: av.StringSchema;
112
+ hostname: av.StringSchema;
113
+ apiKeyHash: av.StringSchema;
114
+ publicKeyPem: av.OptionalSchema<av.StringSchema>;
115
+ keyId: av.OptionalSchema<av.StringSchema>;
116
+ serviceId: av.OptionalSchema<av.StringSchema>;
117
+ capabilities: av.ArraySchema<av.StringSchema>;
118
+ title: av.OptionalSchema<av.StringSchema>;
119
+ description: av.OptionalSchema<av.StringSchema>;
120
+ deploymentMode: av.EnumSchema<readonly ["bp-hosted", "customer-hosted", "third-party-saas", "self-hosted", "saas-managed"]>;
121
+ createdAt: av.StringSchema;
122
+ lastSeenAt: av.OptionalSchema<av.StringSchema>;
123
+ enabled: av.BoolSchema;
124
+ }>>;
125
+ activatedPlatformServices: av.ArraySchema<av.StringSchema>;
126
+ }>;
127
+ export type BetterPortalTenant = Infer<typeof BetterPortalTenantSchema>;
128
+ export declare const BetterPortalRouteChromeValueSchema: av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>;
129
+ export type BetterPortalRouteChromeValue = Infer<typeof BetterPortalRouteChromeValueSchema>;
130
+ export declare const BetterPortalRouteChromeSchema: av.IntersectionSchema<[av.ObjectSchema<{
131
+ hideMenu: av.OptionalSchema<av.BoolSchema>;
132
+ hideHeader: av.OptionalSchema<av.BoolSchema>;
133
+ hideFooter: av.OptionalSchema<av.BoolSchema>;
134
+ fullScreen: av.OptionalSchema<av.BoolSchema>;
135
+ }>, av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>]>;
136
+ export type BetterPortalRouteChrome = Infer<typeof BetterPortalRouteChromeSchema>;
137
+ export declare const BetterPortalRouteMountSchema: av.ObjectSchema<{
138
+ id: av.StringSchema;
139
+ path: av.StringSchema;
140
+ serviceId: av.StringSchema;
141
+ viewId: av.StringSchema;
142
+ /** @deprecated Use resolvedServicePath (CP-injected). Kept one release for migration. */
143
+ targetPath: av.OptionalSchema<av.StringSchema>;
144
+ /** Service path resolved by control plane from manifest cache. Injected on sync delivery. */
145
+ resolvedServicePath: av.OptionalSchema<av.StringSchema>;
146
+ /** Optional query string appended to service request. */
147
+ query: av.OptionalSchema<av.StringSchema>;
148
+ title: av.OptionalSchema<av.StringSchema>;
149
+ icon: av.OptionalSchema<av.StringSchema>;
150
+ enabled: av.BoolSchema;
151
+ methods: av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>;
152
+ chrome: av.OptionalSchema<av.IntersectionSchema<[av.ObjectSchema<{
153
+ hideMenu: av.OptionalSchema<av.BoolSchema>;
154
+ hideHeader: av.OptionalSchema<av.BoolSchema>;
155
+ hideFooter: av.OptionalSchema<av.BoolSchema>;
156
+ fullScreen: av.OptionalSchema<av.BoolSchema>;
157
+ }>, av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>]>>;
158
+ }>;
159
+ export type BetterPortalRouteMount = Infer<typeof BetterPortalRouteMountSchema>;
160
+ export declare const BetterPortalMenuItemSchema: any;
161
+ export type BetterPortalMenuItem = Infer<typeof BetterPortalMenuItemSchema>;
162
+ export declare const BetterPortalSlotAssignmentSchema: av.ObjectSchema<{
163
+ slotId: av.StringSchema;
164
+ serviceId: av.StringSchema;
165
+ viewId: av.StringSchema;
166
+ renderer: av.OptionalSchema<av.StringSchema>;
167
+ enabled: av.BoolSchema;
168
+ }>;
169
+ export type BetterPortalSlotAssignment = Infer<typeof BetterPortalSlotAssignmentSchema>;
170
+ export declare const BetterPortalFragmentAssignmentSchema: av.ObjectSchema<{
171
+ serviceId: av.StringSchema;
172
+ fragmentId: av.StringSchema;
173
+ targetPath: av.StringSchema;
174
+ enabled: av.BoolSchema;
175
+ }>;
176
+ export type BetterPortalFragmentAssignment = Infer<typeof BetterPortalFragmentAssignmentSchema>;
177
+ export declare const BetterPortalAppSchema: av.ObjectSchema<{
178
+ id: av.StringSchema;
179
+ tenantId: av.StringSchema;
180
+ slug: av.StringSchema;
181
+ title: av.StringSchema;
182
+ hostnames: av.ArraySchema<av.StringSchema>;
183
+ originOverrides: av.ArraySchema<av.StringSchema>;
184
+ refererOverrides: av.ArraySchema<av.StringSchema>;
185
+ shell: av.OptionalSchema<av.ObjectSchema<{
186
+ serviceId: av.StringSchema;
187
+ }>>;
188
+ themeId: av.OptionalSchema<av.StringSchema>;
189
+ themeConfig: av.ObjectSchema<{
190
+ brandName: av.OptionalSchema<av.StringSchema>;
191
+ mode: av.EnumSchema<readonly ["light", "dark", "system"]>;
192
+ bootstrap: av.ObjectSchema<{
193
+ primary: av.OptionalSchema<av.StringSchema>;
194
+ secondary: av.OptionalSchema<av.StringSchema>;
195
+ success: av.OptionalSchema<av.StringSchema>;
196
+ info: av.OptionalSchema<av.StringSchema>;
197
+ warning: av.OptionalSchema<av.StringSchema>;
198
+ danger: av.OptionalSchema<av.StringSchema>;
199
+ light: av.OptionalSchema<av.StringSchema>;
200
+ dark: av.OptionalSchema<av.StringSchema>;
201
+ }>;
202
+ light: av.ObjectSchema<{
203
+ background: av.OptionalSchema<av.StringSchema>;
204
+ surface: av.OptionalSchema<av.StringSchema>;
205
+ surfaceAlt: av.OptionalSchema<av.StringSchema>;
206
+ text: av.OptionalSchema<av.StringSchema>;
207
+ textSoft: av.OptionalSchema<av.StringSchema>;
208
+ border: av.OptionalSchema<av.StringSchema>;
209
+ accentSoft: av.OptionalSchema<av.StringSchema>;
210
+ }>;
211
+ dark: av.ObjectSchema<{
212
+ background: av.OptionalSchema<av.StringSchema>;
213
+ surface: av.OptionalSchema<av.StringSchema>;
214
+ surfaceAlt: av.OptionalSchema<av.StringSchema>;
215
+ text: av.OptionalSchema<av.StringSchema>;
216
+ textSoft: av.OptionalSchema<av.StringSchema>;
217
+ border: av.OptionalSchema<av.StringSchema>;
218
+ accentSoft: av.OptionalSchema<av.StringSchema>;
219
+ }>;
220
+ }>;
221
+ layoutId: av.OptionalSchema<av.StringSchema>;
222
+ defaultRoute: av.StringSchema;
223
+ routes: av.ArraySchema<av.ObjectSchema<{
224
+ id: av.StringSchema;
225
+ path: av.StringSchema;
226
+ serviceId: av.StringSchema;
227
+ viewId: av.StringSchema;
228
+ /** @deprecated Use resolvedServicePath (CP-injected). Kept one release for migration. */
229
+ targetPath: av.OptionalSchema<av.StringSchema>;
230
+ /** Service path resolved by control plane from manifest cache. Injected on sync delivery. */
231
+ resolvedServicePath: av.OptionalSchema<av.StringSchema>;
232
+ /** Optional query string appended to service request. */
233
+ query: av.OptionalSchema<av.StringSchema>;
234
+ title: av.OptionalSchema<av.StringSchema>;
235
+ icon: av.OptionalSchema<av.StringSchema>;
236
+ enabled: av.BoolSchema;
237
+ methods: av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>;
238
+ chrome: av.OptionalSchema<av.IntersectionSchema<[av.ObjectSchema<{
239
+ hideMenu: av.OptionalSchema<av.BoolSchema>;
240
+ hideHeader: av.OptionalSchema<av.BoolSchema>;
241
+ hideFooter: av.OptionalSchema<av.BoolSchema>;
242
+ fullScreen: av.OptionalSchema<av.BoolSchema>;
243
+ }>, av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>]>>;
244
+ }>>;
245
+ menu: av.ArraySchema<any>;
246
+ slots: av.ArraySchema<av.ObjectSchema<{
247
+ slotId: av.StringSchema;
248
+ serviceId: av.StringSchema;
249
+ viewId: av.StringSchema;
250
+ renderer: av.OptionalSchema<av.StringSchema>;
251
+ enabled: av.BoolSchema;
252
+ }>>;
253
+ fragments: av.RecordSchema<av.ArraySchema<av.ObjectSchema<{
254
+ serviceId: av.StringSchema;
255
+ fragmentId: av.StringSchema;
256
+ targetPath: av.StringSchema;
257
+ enabled: av.BoolSchema;
258
+ }>>>;
259
+ auth: av.OptionalSchema<av.ObjectSchema<{
260
+ serviceId: av.StringSchema;
261
+ provider: av.OptionalSchema<av.UnionSchema<[av.ObjectSchema<{
262
+ kind: av.LiteralSchema<"betterportal.default">;
263
+ }>, av.ObjectSchema<{
264
+ kind: av.LiteralSchema<"authress.io">;
265
+ roleClaimPath: av.StringSchema;
266
+ subjectClaimPath: av.StringSchema;
267
+ nameClaimPath: av.OptionalSchema<av.StringSchema>;
268
+ emailClaimPath: av.OptionalSchema<av.StringSchema>;
269
+ pictureClaimPath: av.OptionalSchema<av.StringSchema>;
270
+ }>]>>;
271
+ loginViewId: av.OptionalSchema<av.StringSchema>;
272
+ logoutViewId: av.OptionalSchema<av.StringSchema>;
273
+ refreshViewId: av.OptionalSchema<av.StringSchema>;
274
+ expectedIssuer: av.StringSchema;
275
+ expectedAudience: av.StringSchema;
276
+ jwksUri: av.StringSchema;
277
+ publicKeys: av.OptionalSchema<av.ObjectSchema<{
278
+ keys: av.ArraySchema<av.RecordSchema<av.AnySchema>>;
279
+ }>>;
280
+ roles: av.ArraySchema<av.ObjectSchema<{
281
+ id: av.StringSchema;
282
+ title: av.StringSchema;
283
+ description: av.OptionalSchema<av.StringSchema>;
284
+ permissions: av.ArraySchema<av.ObjectSchema<{
285
+ serviceId: av.StringSchema;
286
+ viewId: av.StringSchema;
287
+ permissions: av.ArraySchema<av.EnumSchema<readonly ["read", "create", "update", "delete"]>>;
288
+ }>>;
289
+ }>>;
290
+ }>>;
291
+ statusViewIds: av.OptionalSchema<av.RecordSchema<av.StringSchema>>;
292
+ }>;
293
+ export type BetterPortalApp = Infer<typeof BetterPortalAppSchema>;
294
+ export declare const BetterPortalConfigManagementAuthSchema: av.ObjectSchema<{
295
+ mechanism: av.EnumSchema<readonly ["none", "dev-token", "jwt", "oidc"]>;
296
+ issuer: av.OptionalSchema<av.StringSchema>;
297
+ audience: av.OptionalSchema<av.StringSchema>;
298
+ requiredPermissions: av.ArraySchema<av.StringSchema>;
299
+ }>;
300
+ export type BetterPortalConfigManagementAuth = Infer<typeof BetterPortalConfigManagementAuthSchema>;
301
+ export declare const BetterPortalConfigManagementSchema: av.ObjectSchema<{
302
+ adminTenantId: av.OptionalSchema<av.StringSchema>;
303
+ managementAppId: av.OptionalSchema<av.StringSchema>;
304
+ auth: av.ObjectSchema<{
305
+ mechanism: av.EnumSchema<readonly ["none", "dev-token", "jwt", "oidc"]>;
306
+ issuer: av.OptionalSchema<av.StringSchema>;
307
+ audience: av.OptionalSchema<av.StringSchema>;
308
+ requiredPermissions: av.ArraySchema<av.StringSchema>;
309
+ }>;
310
+ }>;
311
+ export type BetterPortalConfigManagement = Infer<typeof BetterPortalConfigManagementSchema>;
312
+ export declare const SharedServiceDefinitionSchema: av.ObjectSchema<{
313
+ id: av.StringSchema;
314
+ serviceId: av.OptionalSchema<av.StringSchema>;
315
+ title: av.StringSchema;
316
+ description: av.OptionalSchema<av.StringSchema>;
317
+ logoUrl: av.OptionalSchema<av.StringSchema>;
318
+ baseUrl: av.StringSchema;
319
+ apiKeyHash: av.StringSchema;
320
+ publicKeyPem: av.OptionalSchema<av.StringSchema>;
321
+ keyId: av.OptionalSchema<av.StringSchema>;
322
+ supportedDeploymentModes: av.ArraySchema<av.EnumSchema<readonly ["bp-hosted", "customer-hosted", "third-party-saas", "self-hosted", "saas-managed"]>>;
323
+ owner: av.EnumSchema<readonly ["bp", "3p"]>;
324
+ upgradeUrlTemplate: av.OptionalSchema<av.StringSchema>;
325
+ category: av.OptionalSchema<av.StringSchema>;
326
+ tags: av.ArraySchema<av.StringSchema>;
327
+ pricingHint: av.OptionalSchema<av.EnumSchema<readonly ["free", "freemium", "paid"]>>;
328
+ publishedAt: av.OptionalSchema<av.StringSchema>;
329
+ enabled: av.BoolSchema;
330
+ }>;
331
+ export type SharedServiceDefinition = Infer<typeof SharedServiceDefinitionSchema>;
332
+ export declare const TenantSharedServiceActivationSchema: av.ObjectSchema<{
333
+ id: av.StringSchema;
334
+ tenantId: av.StringSchema;
335
+ appId: av.OptionalSchema<av.StringSchema>;
336
+ sharedServiceId: av.StringSchema;
337
+ activatedAt: av.StringSchema;
338
+ enabled: av.BoolSchema;
339
+ }>;
340
+ export type TenantSharedServiceActivation = Infer<typeof TenantSharedServiceActivationSchema>;
341
+ export declare const ServiceManifestCacheEntrySchema: av.ObjectSchema<{
342
+ serviceId: av.StringSchema;
343
+ manifestVersion: av.StringSchema;
344
+ fetchedAt: av.StringSchema;
345
+ viewIndex: av.RecordSchema<av.ObjectSchema<{
346
+ viewId: av.StringSchema;
347
+ path: av.StringSchema;
348
+ methods: av.ArraySchema<av.StringSchema>;
349
+ role: av.OptionalSchema<av.StringSchema>;
350
+ chrome: av.OptionalSchema<av.IntersectionSchema<[av.ObjectSchema<{
351
+ hideMenu: av.OptionalSchema<av.BoolSchema>;
352
+ hideHeader: av.OptionalSchema<av.BoolSchema>;
353
+ hideFooter: av.OptionalSchema<av.BoolSchema>;
354
+ fullScreen: av.OptionalSchema<av.BoolSchema>;
355
+ }>, av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>]>>;
356
+ dependencies: av.ArraySchema<av.StringSchema>;
357
+ permissions: av.ArraySchema<av.ObjectSchema<{
358
+ serviceId: av.StringSchema;
359
+ viewId: av.StringSchema;
360
+ permissions: av.ArraySchema<av.StringSchema>;
361
+ }>>;
362
+ renderable: av.BoolSchema;
363
+ schemas: av.OptionalSchema<av.RecordSchema<av.AnySchema>>;
364
+ raw: av.OptionalSchema<av.BoolSchema>;
365
+ demoScenarios: av.ArraySchema<av.AnySchema>;
366
+ }>>;
367
+ }>;
368
+ export type ServiceManifestCacheEntry = Infer<typeof ServiceManifestCacheEntrySchema>;
369
+ export declare const WebhookTargetSchema: av.ObjectSchema<{
370
+ id: av.StringSchema;
371
+ tenantId: av.StringSchema;
372
+ appId: av.OptionalSchema<av.StringSchema>;
373
+ serviceId: av.StringSchema;
374
+ eventId: av.StringSchema;
375
+ url: av.StringSchema;
376
+ secret: av.StringSchema;
377
+ createdAt: av.StringSchema;
378
+ enabled: av.BoolSchema;
379
+ maxAttempts: av.IntSchema;
380
+ }>;
381
+ export type WebhookTarget = Infer<typeof WebhookTargetSchema>;
382
+ export declare const BetterPortalConfigSchema: av.ObjectSchema<{
383
+ configManagement: av.ObjectSchema<{
384
+ adminTenantId: av.OptionalSchema<av.StringSchema>;
385
+ managementAppId: av.OptionalSchema<av.StringSchema>;
386
+ auth: av.ObjectSchema<{
387
+ mechanism: av.EnumSchema<readonly ["none", "dev-token", "jwt", "oidc"]>;
388
+ issuer: av.OptionalSchema<av.StringSchema>;
389
+ audience: av.OptionalSchema<av.StringSchema>;
390
+ requiredPermissions: av.ArraySchema<av.StringSchema>;
391
+ }>;
392
+ }>;
393
+ platformServices: av.ArraySchema<av.ObjectSchema<{
394
+ id: av.StringSchema;
395
+ hostname: av.StringSchema;
396
+ apiKeyHash: av.StringSchema;
397
+ publicKeyPem: av.OptionalSchema<av.StringSchema>;
398
+ keyId: av.OptionalSchema<av.StringSchema>;
399
+ serviceId: av.OptionalSchema<av.StringSchema>;
400
+ capabilities: av.ArraySchema<av.StringSchema>;
401
+ title: av.StringSchema;
402
+ description: av.OptionalSchema<av.StringSchema>;
403
+ category: av.OptionalSchema<av.StringSchema>;
404
+ createdAt: av.StringSchema;
405
+ enabled: av.BoolSchema;
406
+ }>>;
407
+ tenants: av.ArraySchema<av.ObjectSchema<{
408
+ id: av.StringSchema;
409
+ slug: av.StringSchema;
410
+ title: av.StringSchema;
411
+ active: av.BoolSchema;
412
+ branding: av.ObjectSchema<{
413
+ brandName: av.OptionalSchema<av.StringSchema>;
414
+ logoUrl: av.OptionalSchema<av.StringSchema>;
415
+ primaryColor: av.OptionalSchema<av.StringSchema>;
416
+ secondaryColor: av.OptionalSchema<av.StringSchema>;
417
+ }>;
418
+ services: av.ArraySchema<av.ObjectSchema<{
419
+ id: av.StringSchema;
420
+ hostname: av.StringSchema;
421
+ apiKeyHash: av.StringSchema;
422
+ publicKeyPem: av.OptionalSchema<av.StringSchema>;
423
+ keyId: av.OptionalSchema<av.StringSchema>;
424
+ serviceId: av.OptionalSchema<av.StringSchema>;
425
+ capabilities: av.ArraySchema<av.StringSchema>;
426
+ title: av.OptionalSchema<av.StringSchema>;
427
+ description: av.OptionalSchema<av.StringSchema>;
428
+ deploymentMode: av.EnumSchema<readonly ["bp-hosted", "customer-hosted", "third-party-saas", "self-hosted", "saas-managed"]>;
429
+ createdAt: av.StringSchema;
430
+ lastSeenAt: av.OptionalSchema<av.StringSchema>;
431
+ enabled: av.BoolSchema;
432
+ }>>;
433
+ activatedPlatformServices: av.ArraySchema<av.StringSchema>;
434
+ }>>;
435
+ apps: av.ArraySchema<av.ObjectSchema<{
436
+ id: av.StringSchema;
437
+ tenantId: av.StringSchema;
438
+ slug: av.StringSchema;
439
+ title: av.StringSchema;
440
+ hostnames: av.ArraySchema<av.StringSchema>;
441
+ originOverrides: av.ArraySchema<av.StringSchema>;
442
+ refererOverrides: av.ArraySchema<av.StringSchema>;
443
+ shell: av.OptionalSchema<av.ObjectSchema<{
444
+ serviceId: av.StringSchema;
445
+ }>>;
446
+ themeId: av.OptionalSchema<av.StringSchema>;
447
+ themeConfig: av.ObjectSchema<{
448
+ brandName: av.OptionalSchema<av.StringSchema>;
449
+ mode: av.EnumSchema<readonly ["light", "dark", "system"]>;
450
+ bootstrap: av.ObjectSchema<{
451
+ primary: av.OptionalSchema<av.StringSchema>;
452
+ secondary: av.OptionalSchema<av.StringSchema>;
453
+ success: av.OptionalSchema<av.StringSchema>;
454
+ info: av.OptionalSchema<av.StringSchema>;
455
+ warning: av.OptionalSchema<av.StringSchema>;
456
+ danger: av.OptionalSchema<av.StringSchema>;
457
+ light: av.OptionalSchema<av.StringSchema>;
458
+ dark: av.OptionalSchema<av.StringSchema>;
459
+ }>;
460
+ light: av.ObjectSchema<{
461
+ background: av.OptionalSchema<av.StringSchema>;
462
+ surface: av.OptionalSchema<av.StringSchema>;
463
+ surfaceAlt: av.OptionalSchema<av.StringSchema>;
464
+ text: av.OptionalSchema<av.StringSchema>;
465
+ textSoft: av.OptionalSchema<av.StringSchema>;
466
+ border: av.OptionalSchema<av.StringSchema>;
467
+ accentSoft: av.OptionalSchema<av.StringSchema>;
468
+ }>;
469
+ dark: av.ObjectSchema<{
470
+ background: av.OptionalSchema<av.StringSchema>;
471
+ surface: av.OptionalSchema<av.StringSchema>;
472
+ surfaceAlt: av.OptionalSchema<av.StringSchema>;
473
+ text: av.OptionalSchema<av.StringSchema>;
474
+ textSoft: av.OptionalSchema<av.StringSchema>;
475
+ border: av.OptionalSchema<av.StringSchema>;
476
+ accentSoft: av.OptionalSchema<av.StringSchema>;
477
+ }>;
478
+ }>;
479
+ layoutId: av.OptionalSchema<av.StringSchema>;
480
+ defaultRoute: av.StringSchema;
481
+ routes: av.ArraySchema<av.ObjectSchema<{
482
+ id: av.StringSchema;
483
+ path: av.StringSchema;
484
+ serviceId: av.StringSchema;
485
+ viewId: av.StringSchema;
486
+ /** @deprecated Use resolvedServicePath (CP-injected). Kept one release for migration. */
487
+ targetPath: av.OptionalSchema<av.StringSchema>;
488
+ /** Service path resolved by control plane from manifest cache. Injected on sync delivery. */
489
+ resolvedServicePath: av.OptionalSchema<av.StringSchema>;
490
+ /** Optional query string appended to service request. */
491
+ query: av.OptionalSchema<av.StringSchema>;
492
+ title: av.OptionalSchema<av.StringSchema>;
493
+ icon: av.OptionalSchema<av.StringSchema>;
494
+ enabled: av.BoolSchema;
495
+ methods: av.ArraySchema<av.EnumSchema<readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]>>;
496
+ chrome: av.OptionalSchema<av.IntersectionSchema<[av.ObjectSchema<{
497
+ hideMenu: av.OptionalSchema<av.BoolSchema>;
498
+ hideHeader: av.OptionalSchema<av.BoolSchema>;
499
+ hideFooter: av.OptionalSchema<av.BoolSchema>;
500
+ fullScreen: av.OptionalSchema<av.BoolSchema>;
501
+ }>, av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>]>>;
502
+ }>>;
503
+ menu: av.ArraySchema<any>;
504
+ slots: av.ArraySchema<av.ObjectSchema<{
505
+ slotId: av.StringSchema;
506
+ serviceId: av.StringSchema;
507
+ viewId: av.StringSchema;
508
+ renderer: av.OptionalSchema<av.StringSchema>;
509
+ enabled: av.BoolSchema;
510
+ }>>;
511
+ fragments: av.RecordSchema<av.ArraySchema<av.ObjectSchema<{
512
+ serviceId: av.StringSchema;
513
+ fragmentId: av.StringSchema;
514
+ targetPath: av.StringSchema;
515
+ enabled: av.BoolSchema;
516
+ }>>>;
517
+ auth: av.OptionalSchema<av.ObjectSchema<{
518
+ serviceId: av.StringSchema;
519
+ provider: av.OptionalSchema<av.UnionSchema<[av.ObjectSchema<{
520
+ kind: av.LiteralSchema<"betterportal.default">;
521
+ }>, av.ObjectSchema<{
522
+ kind: av.LiteralSchema<"authress.io">;
523
+ roleClaimPath: av.StringSchema;
524
+ subjectClaimPath: av.StringSchema;
525
+ nameClaimPath: av.OptionalSchema<av.StringSchema>;
526
+ emailClaimPath: av.OptionalSchema<av.StringSchema>;
527
+ pictureClaimPath: av.OptionalSchema<av.StringSchema>;
528
+ }>]>>;
529
+ loginViewId: av.OptionalSchema<av.StringSchema>;
530
+ logoutViewId: av.OptionalSchema<av.StringSchema>;
531
+ refreshViewId: av.OptionalSchema<av.StringSchema>;
532
+ expectedIssuer: av.StringSchema;
533
+ expectedAudience: av.StringSchema;
534
+ jwksUri: av.StringSchema;
535
+ publicKeys: av.OptionalSchema<av.ObjectSchema<{
536
+ keys: av.ArraySchema<av.RecordSchema<av.AnySchema>>;
537
+ }>>;
538
+ roles: av.ArraySchema<av.ObjectSchema<{
539
+ id: av.StringSchema;
540
+ title: av.StringSchema;
541
+ description: av.OptionalSchema<av.StringSchema>;
542
+ permissions: av.ArraySchema<av.ObjectSchema<{
543
+ serviceId: av.StringSchema;
544
+ viewId: av.StringSchema;
545
+ permissions: av.ArraySchema<av.EnumSchema<readonly ["read", "create", "update", "delete"]>>;
546
+ }>>;
547
+ }>>;
548
+ }>>;
549
+ statusViewIds: av.OptionalSchema<av.RecordSchema<av.StringSchema>>;
550
+ }>>;
551
+ sharedServiceCatalog: av.ArraySchema<av.ObjectSchema<{
552
+ id: av.StringSchema;
553
+ serviceId: av.OptionalSchema<av.StringSchema>;
554
+ title: av.StringSchema;
555
+ description: av.OptionalSchema<av.StringSchema>;
556
+ logoUrl: av.OptionalSchema<av.StringSchema>;
557
+ baseUrl: av.StringSchema;
558
+ apiKeyHash: av.StringSchema;
559
+ publicKeyPem: av.OptionalSchema<av.StringSchema>;
560
+ keyId: av.OptionalSchema<av.StringSchema>;
561
+ supportedDeploymentModes: av.ArraySchema<av.EnumSchema<readonly ["bp-hosted", "customer-hosted", "third-party-saas", "self-hosted", "saas-managed"]>>;
562
+ owner: av.EnumSchema<readonly ["bp", "3p"]>;
563
+ upgradeUrlTemplate: av.OptionalSchema<av.StringSchema>;
564
+ category: av.OptionalSchema<av.StringSchema>;
565
+ tags: av.ArraySchema<av.StringSchema>;
566
+ pricingHint: av.OptionalSchema<av.EnumSchema<readonly ["free", "freemium", "paid"]>>;
567
+ publishedAt: av.OptionalSchema<av.StringSchema>;
568
+ enabled: av.BoolSchema;
569
+ }>>;
570
+ sharedServiceActivations: av.ArraySchema<av.ObjectSchema<{
571
+ id: av.StringSchema;
572
+ tenantId: av.StringSchema;
573
+ appId: av.OptionalSchema<av.StringSchema>;
574
+ sharedServiceId: av.StringSchema;
575
+ activatedAt: av.StringSchema;
576
+ enabled: av.BoolSchema;
577
+ }>>;
578
+ manifestCache: av.ArraySchema<av.ObjectSchema<{
579
+ serviceId: av.StringSchema;
580
+ manifestVersion: av.StringSchema;
581
+ fetchedAt: av.StringSchema;
582
+ viewIndex: av.RecordSchema<av.ObjectSchema<{
583
+ viewId: av.StringSchema;
584
+ path: av.StringSchema;
585
+ methods: av.ArraySchema<av.StringSchema>;
586
+ role: av.OptionalSchema<av.StringSchema>;
587
+ chrome: av.OptionalSchema<av.IntersectionSchema<[av.ObjectSchema<{
588
+ hideMenu: av.OptionalSchema<av.BoolSchema>;
589
+ hideHeader: av.OptionalSchema<av.BoolSchema>;
590
+ hideFooter: av.OptionalSchema<av.BoolSchema>;
591
+ fullScreen: av.OptionalSchema<av.BoolSchema>;
592
+ }>, av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>]>>;
593
+ dependencies: av.ArraySchema<av.StringSchema>;
594
+ permissions: av.ArraySchema<av.ObjectSchema<{
595
+ serviceId: av.StringSchema;
596
+ viewId: av.StringSchema;
597
+ permissions: av.ArraySchema<av.StringSchema>;
598
+ }>>;
599
+ renderable: av.BoolSchema;
600
+ schemas: av.OptionalSchema<av.RecordSchema<av.AnySchema>>;
601
+ raw: av.OptionalSchema<av.BoolSchema>;
602
+ demoScenarios: av.ArraySchema<av.AnySchema>;
603
+ }>>;
604
+ }>>;
605
+ webhooks: av.ObjectSchema<{
606
+ targets: av.ArraySchema<av.ObjectSchema<{
607
+ id: av.StringSchema;
608
+ tenantId: av.StringSchema;
609
+ appId: av.OptionalSchema<av.StringSchema>;
610
+ serviceId: av.StringSchema;
611
+ eventId: av.StringSchema;
612
+ url: av.StringSchema;
613
+ secret: av.StringSchema;
614
+ createdAt: av.StringSchema;
615
+ enabled: av.BoolSchema;
616
+ maxAttempts: av.IntSchema;
617
+ }>>;
618
+ }>;
619
+ }>;
620
+ export type BetterPortalConfig = Infer<typeof BetterPortalConfigSchema>;
621
+ export interface BetterPortalResolvedRequestContext {
622
+ tenant: BetterPortalTenant;
623
+ app: BetterPortalApp;
624
+ }
625
+ export interface BetterPortalResolvedServiceBinding {
626
+ tenant: BetterPortalTenant;
627
+ app: BetterPortalApp;
628
+ service: TenantServiceRegistration;
629
+ }
630
+ export declare const BetterPortalOriginPolicySchema: av.ObjectSchema<{
631
+ allowedOrigins: av.ArraySchema<av.StringSchema>;
632
+ allowedReferers: av.ArraySchema<av.StringSchema>;
633
+ }>;
634
+ export type BetterPortalOriginPolicy = Infer<typeof BetterPortalOriginPolicySchema>;
635
+ //# sourceMappingURL=platformConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformConfig.d.ts","sourceRoot":"","sources":["../../src/contracts/platformConfig.ts"],"names":[],"mappings":"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"}