@gonvex/client 0.1.32 → 0.3.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 (59) hide show
  1. package/README.md +125 -95
  2. package/dist/control.d.ts +416 -0
  3. package/dist/control.js +210 -0
  4. package/dist/control.js.map +1 -0
  5. package/dist/error-reporter.d.ts +20 -6
  6. package/dist/error-reporter.js +55 -27
  7. package/dist/error-reporter.js.map +1 -1
  8. package/dist/index.d.ts +176 -133
  9. package/dist/index.js +1177 -1140
  10. package/dist/index.js.map +1 -1
  11. package/dist/indexeddb-replica.d.ts +20 -0
  12. package/dist/indexeddb-replica.js +193 -0
  13. package/dist/indexeddb-replica.js.map +1 -0
  14. package/dist/kv-stores.d.ts +2 -48
  15. package/dist/kv-stores.js +24 -411
  16. package/dist/kv-stores.js.map +1 -1
  17. package/dist/local-replica.d.ts +240 -0
  18. package/dist/local-replica.js +590 -0
  19. package/dist/local-replica.js.map +1 -0
  20. package/dist/optimistic.d.ts +34 -55
  21. package/dist/optimistic.js +70 -269
  22. package/dist/optimistic.js.map +1 -1
  23. package/dist/outbox.d.ts +25 -25
  24. package/dist/outbox.js +27 -27
  25. package/dist/outbox.js.map +1 -1
  26. package/dist/query-expression.d.ts +58 -0
  27. package/dist/query-expression.js +164 -0
  28. package/dist/query-expression.js.map +1 -0
  29. package/dist/replica-integrity.d.ts +5 -0
  30. package/dist/replica-integrity.js +58 -0
  31. package/dist/replica-integrity.js.map +1 -0
  32. package/package.json +4 -4
  33. package/dist/browser-cache-client.d.ts +0 -77
  34. package/dist/browser-cache-client.js +0 -156
  35. package/dist/browser-cache-client.js.map +0 -1
  36. package/dist/browser-cache-shared-worker.d.ts +0 -35
  37. package/dist/browser-cache-shared-worker.js +0 -118
  38. package/dist/browser-cache-shared-worker.js.map +0 -1
  39. package/dist/browser-cache.d.ts +0 -43
  40. package/dist/browser-cache.js +0 -67
  41. package/dist/browser-cache.js.map +0 -1
  42. package/dist/browser-capabilities.d.ts +0 -21
  43. package/dist/browser-capabilities.js +0 -31
  44. package/dist/browser-capabilities.js.map +0 -1
  45. package/dist/cache-coordinator.d.ts +0 -37
  46. package/dist/cache-coordinator.js +0 -109
  47. package/dist/cache-coordinator.js.map +0 -1
  48. package/dist/cache.d.ts +0 -74
  49. package/dist/cache.js +0 -120
  50. package/dist/cache.js.map +0 -1
  51. package/dist/persistent-cache.d.ts +0 -41
  52. package/dist/persistent-cache.js +0 -103
  53. package/dist/persistent-cache.js.map +0 -1
  54. package/dist/query-cache.d.ts +0 -88
  55. package/dist/query-cache.js +0 -346
  56. package/dist/query-cache.js.map +0 -1
  57. package/dist/sync-store.d.ts +0 -96
  58. package/dist/sync-store.js +0 -500
  59. package/dist/sync-store.js.map +0 -1
@@ -0,0 +1,416 @@
1
+ import type { JsonValue } from "@gonvex/protocol";
2
+ import type { FunctionReference } from "./index.js";
3
+ type JSONObject = {
4
+ [key: string]: JsonValue;
5
+ };
6
+ export declare const controlFunctionSchemas: Readonly<Record<string, {
7
+ args: JsonValue;
8
+ result: JsonValue;
9
+ }>>;
10
+ export type ControlAccount = JSONObject & {
11
+ id: string;
12
+ email: string;
13
+ name: string;
14
+ avatarUrl: string;
15
+ };
16
+ export type ControlTenant = JSONObject & {
17
+ id: string;
18
+ name: string;
19
+ role: string;
20
+ permissions: JSONObject;
21
+ domain: string;
22
+ timezone: string;
23
+ description: string;
24
+ profile: JsonValue;
25
+ };
26
+ export type ControlTenantCreated = JSONObject & {
27
+ id: string;
28
+ name: string;
29
+ role: string;
30
+ permissions: JSONObject;
31
+ };
32
+ export type ControlSession = JSONObject & {
33
+ accessToken: string;
34
+ tokenType: string;
35
+ expiresIn: number;
36
+ expiresAt: number;
37
+ refreshToken: string;
38
+ refreshExpiresAt: number;
39
+ account: JSONObject;
40
+ tenants: ControlTenant[];
41
+ activeTenantId: string;
42
+ };
43
+ export type ControlAuthRealm = JSONObject & {
44
+ provider: string;
45
+ enabled: boolean;
46
+ signupMode: string;
47
+ azureTenantId?: string;
48
+ clientId?: string;
49
+ hasClientSecret: boolean;
50
+ };
51
+ export type ControlMemberProviders = JSONObject & {
52
+ memberId: string;
53
+ providers: string[];
54
+ };
55
+ export type ControlUpdated = JSONObject & {
56
+ updated: boolean;
57
+ };
58
+ export type ControlMemberProvisioned = ControlUpdated & {
59
+ accountId: string;
60
+ memberId: string;
61
+ };
62
+ export type ControlInvitation = JSONObject & {
63
+ tenantId: string;
64
+ tenantName: string;
65
+ email: string;
66
+ role: string;
67
+ teamIds: string[];
68
+ allowedAuthProviders: string[];
69
+ expiresAt: string;
70
+ };
71
+ export type ControlInvitationListItem = JSONObject & {
72
+ id: string;
73
+ email: string;
74
+ role: string;
75
+ permissions: JSONObject;
76
+ teamIds: string[];
77
+ allowedAuthProviders: string[];
78
+ expiresAt: string;
79
+ revoked: boolean;
80
+ accepted: boolean;
81
+ state: string;
82
+ createdAt: string;
83
+ updatedAt: string;
84
+ };
85
+ export type ControlToken = JSONObject & {
86
+ id: string;
87
+ token: string;
88
+ };
89
+ export type ControlInvitationAcceptance = JSONObject & {
90
+ tenantId: string;
91
+ memberId: string;
92
+ };
93
+ export type ControlAgentClaim = JSONObject & {
94
+ id: string;
95
+ permissions: string[];
96
+ };
97
+ export type ControlDeveloper = JSONObject & {
98
+ email: string;
99
+ name: string;
100
+ role: string;
101
+ };
102
+ export type ControlSetting = JSONObject & {
103
+ kind: string;
104
+ scopeId: string;
105
+ value: JsonValue;
106
+ };
107
+ export type ControlSupportSession = JSONObject & {
108
+ id: string;
109
+ tenantId: string;
110
+ accountId: string;
111
+ release: string;
112
+ environment: string;
113
+ lastSeenAt: string;
114
+ };
115
+ export type ControlSupportTenant = JSONObject & {
116
+ id: string;
117
+ name: string;
118
+ domain: string;
119
+ status: string;
120
+ timezone: string;
121
+ seatLimit: number | null;
122
+ createdAt: string;
123
+ };
124
+ export type ControlSupportErrorGroup = JSONObject & {
125
+ fingerprint: string;
126
+ project: string;
127
+ title: string;
128
+ level: string;
129
+ culprit?: string;
130
+ status: string;
131
+ priority: string;
132
+ assignee?: string;
133
+ firstSeen: string;
134
+ lastSeen: string;
135
+ count: number;
136
+ tenants: JSONObject;
137
+ releases: JSONObject;
138
+ environments: JSONObject;
139
+ accounts: JSONObject;
140
+ devices: JSONObject;
141
+ regression: boolean;
142
+ latest: JsonValue;
143
+ };
144
+ export type ControlSupportErrors = JSONObject & {
145
+ groups: ControlSupportErrorGroup[];
146
+ releases: string[];
147
+ };
148
+ export type ControlImpersonation = JSONObject & {
149
+ id: string;
150
+ token: string;
151
+ expiresAt: string;
152
+ };
153
+ export type ControlDeveloperStatus = JSONObject & {
154
+ developer: boolean;
155
+ mode: boolean;
156
+ tenantId: string;
157
+ grantId: string;
158
+ };
159
+ export type ControlMemberResult = JSONObject & {
160
+ accountId: string;
161
+ memberId: string;
162
+ };
163
+ /** Typed references for Gonvex host-owned Control Plane functions. */
164
+ export declare const control: Readonly<{
165
+ accounts: Readonly<{
166
+ me: FunctionReference<JSONObject, ControlAccount>;
167
+ updatePassword: FunctionReference<JSONObject & {
168
+ currentPassword: string;
169
+ newPassword: string;
170
+ }, ControlUpdated>;
171
+ resetMemberPassword: FunctionReference<JSONObject & {
172
+ memberId: string;
173
+ newPassword: string;
174
+ }, ControlUpdated>;
175
+ provisionMemberLogin: FunctionReference<JSONObject & {
176
+ email: string;
177
+ name: string;
178
+ password: string;
179
+ role: string;
180
+ permissions: JSONObject;
181
+ }, ControlMemberProvisioned>;
182
+ }>;
183
+ auth: Readonly<{
184
+ publicSettings: FunctionReference<JSONObject, JSONObject & {
185
+ providers: string[];
186
+ }>;
187
+ passwordLogin: FunctionReference<JSONObject & {
188
+ email: string;
189
+ password: string;
190
+ }, ControlSession>;
191
+ refreshSession: FunctionReference<JSONObject & {
192
+ refreshToken: string;
193
+ }, ControlSession>;
194
+ logout: FunctionReference<JSONObject & {
195
+ refreshToken: string;
196
+ all: boolean;
197
+ }, ControlUpdated>;
198
+ realms: Readonly<{
199
+ list: FunctionReference<JSONObject, ControlAuthRealm[]>;
200
+ configure: FunctionReference<JSONObject & {
201
+ provider: string;
202
+ enabled: boolean;
203
+ signupMode: string;
204
+ azureTenantId?: string;
205
+ clientId?: string;
206
+ clientSecret?: string;
207
+ }, ControlUpdated>;
208
+ }>;
209
+ memberProviders: FunctionReference<JSONObject & {
210
+ memberIds: string[];
211
+ }, ControlMemberProviders[]>;
212
+ }>;
213
+ tenants: Readonly<{
214
+ mine: FunctionReference<JSONObject, ControlTenant[]>;
215
+ create: FunctionReference<JSONObject & {
216
+ name: string;
217
+ }, ControlTenantCreated>;
218
+ getByDomain: FunctionReference<JSONObject & {
219
+ domain: string;
220
+ }, JSONObject & {
221
+ id: string;
222
+ name: string;
223
+ domain: string;
224
+ }>;
225
+ updateProfile: FunctionReference<JSONObject & {
226
+ name: string;
227
+ domain: string;
228
+ description: string;
229
+ }, ControlUpdated>;
230
+ updateTimezone: FunctionReference<JSONObject & {
231
+ timezone: string;
232
+ }, ControlUpdated>;
233
+ delete: FunctionReference<JSONObject, ControlUpdated>;
234
+ setException: FunctionReference<JSONObject & {
235
+ tenantId: string;
236
+ value: JsonValue;
237
+ }, ControlUpdated>;
238
+ setSeatLimit: FunctionReference<JSONObject & {
239
+ tenantId: string;
240
+ seatLimit: number | null;
241
+ }, ControlUpdated>;
242
+ }>;
243
+ invitations: Readonly<{
244
+ lookup: FunctionReference<JSONObject & {
245
+ token: string;
246
+ }, ControlInvitation>;
247
+ list: FunctionReference<JSONObject, ControlInvitationListItem[]>;
248
+ create: FunctionReference<JSONObject & {
249
+ email: string;
250
+ role: string;
251
+ permissions: JSONObject;
252
+ teamIds: string[];
253
+ allowedAuthProviders: string[];
254
+ payload: JsonValue;
255
+ }, ControlToken>;
256
+ update: FunctionReference<JSONObject & {
257
+ id: string;
258
+ role: string;
259
+ permissions: JSONObject;
260
+ teamIds: string[];
261
+ allowedAuthProviders: string[];
262
+ payload: JsonValue;
263
+ }, ControlUpdated>;
264
+ accept: FunctionReference<JSONObject & {
265
+ token: string;
266
+ }, ControlInvitationAcceptance>;
267
+ revoke: FunctionReference<JSONObject & {
268
+ id: string;
269
+ email: string;
270
+ }, ControlUpdated>;
271
+ }>;
272
+ agentAuth: Readonly<{
273
+ issue: FunctionReference<JSONObject & {
274
+ permissions: string[];
275
+ expiresInSeconds: number;
276
+ }, ControlToken>;
277
+ claim: FunctionReference<JSONObject & {
278
+ token: string;
279
+ }, ControlAgentClaim>;
280
+ revoke: FunctionReference<JSONObject & {
281
+ id: string;
282
+ }, ControlUpdated>;
283
+ }>;
284
+ project: Readonly<{
285
+ developers: Readonly<{
286
+ list: FunctionReference<JSONObject, ControlDeveloper[]>;
287
+ invite: FunctionReference<JSONObject & {
288
+ email: string;
289
+ name: string;
290
+ role: string;
291
+ }, ControlUpdated>;
292
+ remove: FunctionReference<JSONObject & {
293
+ email: string;
294
+ }, ControlUpdated>;
295
+ }>;
296
+ }>;
297
+ developer: Readonly<{
298
+ status: FunctionReference<JSONObject, ControlDeveloperStatus>;
299
+ provisionSelf: FunctionReference<JSONObject & {
300
+ tenantId: string;
301
+ }, JSONObject & {
302
+ updated: boolean;
303
+ tenantId: string;
304
+ memberId: string;
305
+ }>;
306
+ removeSelf: FunctionReference<JSONObject & {
307
+ tenantId: string;
308
+ }, ControlUpdated>;
309
+ enter: FunctionReference<JSONObject & {
310
+ tenantId: string;
311
+ }, ControlImpersonation>;
312
+ exit: FunctionReference<JSONObject & {
313
+ grantId: string;
314
+ }, ControlUpdated>;
315
+ }>;
316
+ assistant: Readonly<{
317
+ getDefaults: FunctionReference<JSONObject, JSONObject>;
318
+ setDefaults: FunctionReference<JSONObject & {
319
+ scopeId: string;
320
+ value: JsonValue;
321
+ }, ControlUpdated>;
322
+ }>;
323
+ voice: Readonly<{
324
+ getConfiguration: FunctionReference<JSONObject, ControlSetting[]>;
325
+ setRateCard: FunctionReference<JSONObject & {
326
+ scopeId: string;
327
+ value: JsonValue;
328
+ }, ControlUpdated>;
329
+ setTenantEntitlement: FunctionReference<JSONObject & {
330
+ scopeId: string;
331
+ value: JsonValue;
332
+ }, ControlUpdated>;
333
+ setUserOverride: FunctionReference<JSONObject & {
334
+ scopeId: string;
335
+ value: JsonValue;
336
+ }, ControlUpdated>;
337
+ }>;
338
+ support: Readonly<{
339
+ listTenants: FunctionReference<JSONObject, ControlSupportTenant[]>;
340
+ listSessions: FunctionReference<JSONObject, ControlSupportSession[]>;
341
+ listErrors: FunctionReference<JSONObject, ControlSupportErrors>;
342
+ getSession: FunctionReference<JSONObject & {
343
+ id: string;
344
+ }, JSONObject>;
345
+ getError: FunctionReference<JSONObject & {
346
+ fingerprint: string;
347
+ }, JSONObject>;
348
+ getTenant: FunctionReference<JSONObject & {
349
+ tenantId: string;
350
+ }, JSONObject>;
351
+ pruneSessions: FunctionReference<JSONObject & {
352
+ olderThanSeconds: number;
353
+ }, JSONObject & {
354
+ deleted: number;
355
+ }>;
356
+ heartbeat: FunctionReference<JSONObject & {
357
+ release: string;
358
+ environment: string;
359
+ }, JSONObject & {
360
+ sessionId: string;
361
+ }>;
362
+ sendCommand: FunctionReference<JSONObject & {
363
+ sessionId: string;
364
+ kind: string;
365
+ payload: JsonValue;
366
+ }, JSONObject & {
367
+ id: string;
368
+ }>;
369
+ ackCommand: FunctionReference<JSONObject & {
370
+ id: string;
371
+ }, ControlUpdated>;
372
+ createImpersonation: FunctionReference<JSONObject & {
373
+ accountId: string;
374
+ tenantId: string;
375
+ reason: string;
376
+ }, ControlImpersonation>;
377
+ }>;
378
+ demos: Readonly<{
379
+ create: FunctionReference<JSONObject & {
380
+ tenantId: string;
381
+ email: string;
382
+ name: string;
383
+ password: string;
384
+ label: string;
385
+ }, ControlMemberResult>;
386
+ resetPassword: FunctionReference<JSONObject & {
387
+ accountId: string;
388
+ password: string;
389
+ }, ControlUpdated>;
390
+ delete: FunctionReference<JSONObject & {
391
+ accountId: string;
392
+ }, ControlUpdated>;
393
+ }>;
394
+ legacy: Readonly<{
395
+ users: Readonly<{
396
+ myTenants: FunctionReference<JSONObject, string[]>;
397
+ }>;
398
+ tenants: Readonly<{
399
+ getInvitationByToken: FunctionReference<JSONObject & {
400
+ token?: string;
401
+ invitationToken?: string;
402
+ }, JSONObject & {
403
+ tenantId: string;
404
+ invitationToken: string;
405
+ userEmail: string;
406
+ teamIds: string[];
407
+ allowedAuthProviders: string[];
408
+ }>;
409
+ acceptInvitation: FunctionReference<JSONObject & {
410
+ token?: string;
411
+ invitationToken?: string;
412
+ }, ControlInvitationAcceptance>;
413
+ }>;
414
+ }>;
415
+ }>;
416
+ export {};
@@ -0,0 +1,210 @@
1
+ const stringSchema = { kind: "string" };
2
+ const optionalStringSchema = { kind: "string", optional: true };
3
+ const booleanSchema = { kind: "boolean" };
4
+ const numberSchema = { kind: "number" };
5
+ const anySchema = { kind: "any" };
6
+ const emptySchema = { kind: "object", fields: {}, allowUnknown: false };
7
+ const objectSchema = (fields) => ({ kind: "object", fields, allowUnknown: false });
8
+ const arraySchema = (items = anySchema) => ({ kind: "array", items });
9
+ const accountSchema = objectSchema({ id: stringSchema, email: stringSchema, name: stringSchema, avatarUrl: stringSchema });
10
+ const authAccountSchema = objectSchema({
11
+ id: stringSchema, email: stringSchema, emailVerified: booleanSchema, name: stringSchema, picture: stringSchema, provider: stringSchema,
12
+ });
13
+ const tenantSchema = objectSchema({ id: stringSchema, name: stringSchema, role: stringSchema, permissions: anySchema });
14
+ const directoryTenantSchema = objectSchema({
15
+ id: stringSchema, name: stringSchema, role: stringSchema, permissions: anySchema,
16
+ domain: stringSchema, timezone: stringSchema, description: stringSchema, profile: anySchema,
17
+ });
18
+ const sessionSchema = objectSchema({
19
+ accessToken: stringSchema, tokenType: stringSchema, expiresIn: numberSchema, expiresAt: numberSchema,
20
+ refreshToken: stringSchema, refreshExpiresAt: numberSchema, account: authAccountSchema,
21
+ tenants: arraySchema(directoryTenantSchema), activeTenantId: stringSchema,
22
+ });
23
+ const updatedSchema = objectSchema({ updated: booleanSchema });
24
+ const idSchema = objectSchema({ id: stringSchema });
25
+ const tokenSchema = objectSchema({ id: stringSchema, token: stringSchema });
26
+ const invitationLookupSchema = objectSchema({ tenantId: stringSchema, tenantName: stringSchema, email: stringSchema, role: stringSchema, teamIds: arraySchema(stringSchema), allowedAuthProviders: arraySchema(stringSchema), expiresAt: stringSchema });
27
+ const invitationSchema = objectSchema({ id: stringSchema, email: stringSchema, role: stringSchema, permissions: anySchema, teamIds: arraySchema(stringSchema), allowedAuthProviders: arraySchema(stringSchema), expiresAt: stringSchema, revoked: booleanSchema, accepted: booleanSchema, state: stringSchema, createdAt: stringSchema, updatedAt: stringSchema });
28
+ const invitationAcceptanceSchema = objectSchema({ tenantId: stringSchema, memberId: stringSchema });
29
+ const developerSchema = objectSchema({ email: stringSchema, name: stringSchema, role: stringSchema });
30
+ const settingSchema = objectSchema({ kind: stringSchema, scopeId: stringSchema, value: anySchema });
31
+ const supportSessionSchema = objectSchema({
32
+ id: stringSchema, tenantId: stringSchema, accountId: stringSchema,
33
+ release: stringSchema, environment: stringSchema, lastSeenAt: stringSchema,
34
+ });
35
+ const supportTenantSchema = objectSchema({
36
+ id: stringSchema, name: stringSchema, domain: stringSchema, status: stringSchema,
37
+ timezone: stringSchema, seatLimit: anySchema, createdAt: stringSchema,
38
+ });
39
+ const supportErrorGroupSchema = objectSchema({
40
+ fingerprint: stringSchema, project: stringSchema, title: stringSchema, level: stringSchema,
41
+ culprit: optionalStringSchema, status: stringSchema, priority: stringSchema, assignee: optionalStringSchema,
42
+ firstSeen: stringSchema, lastSeen: stringSchema, count: numberSchema,
43
+ tenants: anySchema, releases: anySchema, environments: anySchema,
44
+ accounts: anySchema, devices: anySchema, regression: booleanSchema, latest: anySchema,
45
+ });
46
+ const supportErrorsSchema = objectSchema({ groups: arraySchema(supportErrorGroupSchema), releases: arraySchema(stringSchema) });
47
+ const impersonationSchema = objectSchema({ id: stringSchema, token: stringSchema, expiresAt: stringSchema });
48
+ const developerStatusSchema = objectSchema({ developer: booleanSchema, mode: booleanSchema, tenantId: stringSchema, grantId: stringSchema });
49
+ const memberResultSchema = objectSchema({ accountId: stringSchema, memberId: stringSchema });
50
+ export const controlFunctionSchemas = Object.freeze({
51
+ "control.accounts.me": { args: emptySchema, result: accountSchema },
52
+ "control.accounts.updatePassword": { args: objectSchema({ currentPassword: stringSchema, newPassword: stringSchema }), result: updatedSchema },
53
+ "control.accounts.resetMemberPassword": { args: objectSchema({ memberId: stringSchema, newPassword: stringSchema }), result: updatedSchema },
54
+ "control.accounts.provisionMemberLogin": { args: objectSchema({ email: stringSchema, name: stringSchema, password: stringSchema, role: stringSchema, permissions: anySchema }), result: objectSchema({ updated: booleanSchema, accountId: stringSchema, memberId: stringSchema }) },
55
+ "control.auth.passwordLogin": { args: objectSchema({ email: stringSchema, password: stringSchema }), result: sessionSchema },
56
+ "control.auth.refreshSession": { args: objectSchema({ refreshToken: stringSchema }), result: sessionSchema },
57
+ "control.auth.logout": { args: objectSchema({ refreshToken: stringSchema, all: booleanSchema }), result: updatedSchema },
58
+ "control.auth.publicSettings": { args: emptySchema, result: objectSchema({ providers: arraySchema(stringSchema) }) },
59
+ "control.auth.realms.list": { args: emptySchema, result: arraySchema(objectSchema({ provider: stringSchema, enabled: booleanSchema, signupMode: stringSchema, azureTenantId: optionalStringSchema, clientId: optionalStringSchema, hasClientSecret: booleanSchema })) },
60
+ "control.auth.realms.configure": { args: objectSchema({ provider: stringSchema, enabled: booleanSchema, signupMode: stringSchema, azureTenantId: optionalStringSchema, clientId: optionalStringSchema, clientSecret: optionalStringSchema }), result: updatedSchema },
61
+ "control.auth.memberProviders": { args: objectSchema({ memberIds: arraySchema(stringSchema) }), result: arraySchema(objectSchema({ memberId: stringSchema, providers: arraySchema(stringSchema) })) },
62
+ "control.tenants.mine": { args: emptySchema, result: arraySchema(directoryTenantSchema) },
63
+ "control.tenants.create": { args: objectSchema({ name: stringSchema }), result: tenantSchema },
64
+ "control.tenants.getByDomain": { args: objectSchema({ domain: stringSchema }), result: objectSchema({ id: stringSchema, name: stringSchema, domain: stringSchema }) },
65
+ "control.tenants.updateProfile": { args: objectSchema({ name: stringSchema, domain: stringSchema, description: stringSchema }), result: updatedSchema },
66
+ "control.tenants.updateTimezone": { args: objectSchema({ timezone: stringSchema }), result: updatedSchema },
67
+ "control.tenants.delete": { args: emptySchema, result: updatedSchema },
68
+ "control.tenants.setException": { args: objectSchema({ tenantId: stringSchema, value: anySchema }), result: objectSchema({ updated: booleanSchema }) },
69
+ "control.tenants.setSeatLimit": { args: objectSchema({ tenantId: stringSchema, seatLimit: anySchema }), result: objectSchema({ updated: booleanSchema }) },
70
+ "control.invitations.lookup": { args: objectSchema({ token: stringSchema }), result: invitationLookupSchema },
71
+ "control.invitations.list": { args: emptySchema, result: arraySchema(invitationSchema) },
72
+ "control.invitations.create": { args: objectSchema({ email: stringSchema, role: stringSchema, permissions: anySchema, teamIds: arraySchema(stringSchema), allowedAuthProviders: arraySchema(stringSchema), payload: anySchema }), result: tokenSchema },
73
+ "control.invitations.update": { args: objectSchema({ id: stringSchema, role: stringSchema, permissions: anySchema, teamIds: arraySchema(stringSchema), allowedAuthProviders: arraySchema(stringSchema), payload: anySchema }), result: updatedSchema },
74
+ "control.invitations.accept": { args: objectSchema({ token: stringSchema }), result: invitationAcceptanceSchema },
75
+ "control.invitations.revoke": { args: objectSchema({ id: stringSchema, email: stringSchema }), result: objectSchema({ updated: booleanSchema }) },
76
+ "control.agentAuth.issue": { args: objectSchema({ permissions: arraySchema(stringSchema), expiresInSeconds: numberSchema }), result: tokenSchema },
77
+ "control.agentAuth.claim": { args: objectSchema({ token: stringSchema }), result: objectSchema({ id: stringSchema, permissions: arraySchema(stringSchema) }) },
78
+ "control.agentAuth.revoke": { args: objectSchema({ id: stringSchema }), result: objectSchema({ updated: booleanSchema }) },
79
+ "control.project.developers.list": { args: emptySchema, result: arraySchema(developerSchema) },
80
+ "control.project.developers.invite": { args: objectSchema({ email: stringSchema, name: stringSchema, role: stringSchema }), result: objectSchema({ updated: booleanSchema }) },
81
+ "control.project.developers.remove": { args: objectSchema({ email: stringSchema }), result: objectSchema({ updated: booleanSchema }) },
82
+ "control.developer.status": { args: emptySchema, result: developerStatusSchema },
83
+ "control.developer.provisionSelf": { args: objectSchema({ tenantId: stringSchema }), result: objectSchema({ updated: booleanSchema, tenantId: stringSchema, memberId: stringSchema }) },
84
+ "control.developer.removeSelf": { args: objectSchema({ tenantId: stringSchema }), result: updatedSchema },
85
+ "control.developer.enter": { args: objectSchema({ tenantId: stringSchema }), result: impersonationSchema },
86
+ "control.developer.exit": { args: objectSchema({ grantId: stringSchema }), result: updatedSchema },
87
+ "control.assistant.getDefaults": { args: emptySchema, result: anySchema },
88
+ "control.assistant.setDefaults": { args: objectSchema({ scopeId: stringSchema, value: anySchema }), result: objectSchema({ updated: booleanSchema }) },
89
+ "control.voice.getConfiguration": { args: emptySchema, result: arraySchema(settingSchema) },
90
+ "control.voice.setRateCard": { args: objectSchema({ scopeId: stringSchema, value: anySchema }), result: objectSchema({ updated: booleanSchema }) },
91
+ "control.voice.setTenantEntitlement": { args: objectSchema({ scopeId: stringSchema, value: anySchema }), result: objectSchema({ updated: booleanSchema }) },
92
+ "control.voice.setUserOverride": { args: objectSchema({ scopeId: stringSchema, value: anySchema }), result: objectSchema({ updated: booleanSchema }) },
93
+ "control.support.listSessions": { args: emptySchema, result: arraySchema(supportSessionSchema) },
94
+ "control.support.listTenants": { args: emptySchema, result: arraySchema(supportTenantSchema) },
95
+ "control.support.listErrors": { args: emptySchema, result: supportErrorsSchema },
96
+ "control.support.getSession": { args: objectSchema({ id: stringSchema }), result: anySchema },
97
+ "control.support.getError": { args: objectSchema({ fingerprint: stringSchema }), result: anySchema },
98
+ "control.support.getTenant": { args: objectSchema({ tenantId: stringSchema }), result: anySchema },
99
+ "control.support.pruneSessions": { args: objectSchema({ olderThanSeconds: numberSchema }), result: objectSchema({ deleted: numberSchema }) },
100
+ "control.support.heartbeat": { args: objectSchema({ release: stringSchema, environment: stringSchema }), result: objectSchema({ sessionId: stringSchema }) },
101
+ "control.support.sendCommand": { args: objectSchema({ sessionId: stringSchema, kind: stringSchema, payload: anySchema }), result: idSchema },
102
+ "control.support.ackCommand": { args: objectSchema({ id: stringSchema }), result: objectSchema({ updated: booleanSchema }) },
103
+ "control.support.createImpersonation": { args: objectSchema({ accountId: stringSchema, tenantId: stringSchema, reason: stringSchema }), result: impersonationSchema },
104
+ "control.demos.create": { args: objectSchema({ tenantId: stringSchema, email: stringSchema, name: stringSchema, password: stringSchema, label: stringSchema }), result: memberResultSchema },
105
+ "control.demos.resetPassword": { args: objectSchema({ accountId: stringSchema, password: stringSchema }), result: objectSchema({ updated: booleanSchema }) },
106
+ "control.demos.delete": { args: objectSchema({ accountId: stringSchema }), result: objectSchema({ updated: booleanSchema }) },
107
+ "users.myTenants": { args: emptySchema, result: arraySchema(stringSchema) },
108
+ "tenants.getInvitationByToken": { args: objectSchema({ token: optionalStringSchema, invitationToken: optionalStringSchema }), result: objectSchema({ tenantId: stringSchema, invitationToken: stringSchema, userEmail: stringSchema, teamIds: arraySchema(stringSchema), allowedAuthProviders: arraySchema(stringSchema) }) },
109
+ "tenants.acceptInvitation": { args: objectSchema({ token: optionalStringSchema, invitationToken: optionalStringSchema }), result: invitationAcceptanceSchema },
110
+ });
111
+ function ref(kind, path, authorization) {
112
+ const schemas = controlFunctionSchemas[path];
113
+ if (!schemas)
114
+ throw new Error(`Missing Control Plane schema for ${path}`);
115
+ return Object.freeze({ kind, path, scope: "control", delivery: "oneShot", authorization, argsSchema: schemas.args, resultSchema: schemas.result });
116
+ }
117
+ function liveRef(path, authorization) {
118
+ return Object.freeze({ ...ref("query", path, authorization), delivery: "live" });
119
+ }
120
+ /** Typed references for Gonvex host-owned Control Plane functions. */
121
+ export const control = Object.freeze({
122
+ accounts: Object.freeze({
123
+ me: ref("query", "control.accounts.me", "account"),
124
+ updatePassword: ref("reducer", "control.accounts.updatePassword", "account"),
125
+ resetMemberPassword: ref("reducer", "control.accounts.resetMemberPassword", "tenantAdmin"),
126
+ provisionMemberLogin: ref("reducer", "control.accounts.provisionMemberLogin", "tenantAdmin"),
127
+ }),
128
+ auth: Object.freeze({
129
+ publicSettings: ref("query", "control.auth.publicSettings", "public"),
130
+ passwordLogin: ref("action", "control.auth.passwordLogin", "public"),
131
+ refreshSession: ref("action", "control.auth.refreshSession", "public"),
132
+ logout: ref("reducer", "control.auth.logout", "account"),
133
+ realms: Object.freeze({
134
+ list: liveRef("control.auth.realms.list", "projectAdmin"),
135
+ configure: ref("reducer", "control.auth.realms.configure", "projectAdmin"),
136
+ }),
137
+ memberProviders: ref("query", "control.auth.memberProviders", "tenantAdmin"),
138
+ }),
139
+ tenants: Object.freeze({
140
+ mine: liveRef("control.tenants.mine", "account"),
141
+ create: ref("reducer", "control.tenants.create", "account"),
142
+ getByDomain: ref("query", "control.tenants.getByDomain", "public"),
143
+ updateProfile: ref("reducer", "control.tenants.updateProfile", "tenantAdmin"),
144
+ updateTimezone: ref("reducer", "control.tenants.updateTimezone", "tenantAdmin"),
145
+ delete: ref("reducer", "control.tenants.delete", "tenantAdmin"),
146
+ setException: ref("reducer", "control.tenants.setException", "projectAdmin"),
147
+ setSeatLimit: ref("reducer", "control.tenants.setSeatLimit", "projectAdmin"),
148
+ }),
149
+ invitations: Object.freeze({
150
+ lookup: ref("query", "control.invitations.lookup", "public"),
151
+ list: liveRef("control.invitations.list", "tenantAdmin"),
152
+ create: ref("reducer", "control.invitations.create", "tenantAdmin"),
153
+ update: ref("reducer", "control.invitations.update", "tenantAdmin"),
154
+ accept: ref("reducer", "control.invitations.accept", "account"),
155
+ revoke: ref("reducer", "control.invitations.revoke", "tenantAdmin"),
156
+ }),
157
+ agentAuth: Object.freeze({
158
+ issue: ref("reducer", "control.agentAuth.issue", "projectAdmin"),
159
+ claim: ref("reducer", "control.agentAuth.claim", "account"),
160
+ revoke: ref("reducer", "control.agentAuth.revoke", "projectAdmin"),
161
+ }),
162
+ project: Object.freeze({ developers: Object.freeze({
163
+ list: liveRef("control.project.developers.list", "projectAdmin"),
164
+ invite: ref("reducer", "control.project.developers.invite", "projectAdmin"),
165
+ remove: ref("reducer", "control.project.developers.remove", "projectAdmin"),
166
+ }) }),
167
+ developer: Object.freeze({
168
+ status: liveRef("control.developer.status", "account"),
169
+ provisionSelf: ref("reducer", "control.developer.provisionSelf", "developer"),
170
+ removeSelf: ref("reducer", "control.developer.removeSelf", "developer"),
171
+ enter: ref("reducer", "control.developer.enter", "developer"),
172
+ exit: ref("reducer", "control.developer.exit", "account"),
173
+ }),
174
+ assistant: Object.freeze({
175
+ getDefaults: liveRef("control.assistant.getDefaults", "projectAdmin"),
176
+ setDefaults: ref("reducer", "control.assistant.setDefaults", "projectAdmin"),
177
+ }),
178
+ voice: Object.freeze({
179
+ getConfiguration: liveRef("control.voice.getConfiguration", "projectAdmin"),
180
+ setRateCard: ref("reducer", "control.voice.setRateCard", "projectAdmin"),
181
+ setTenantEntitlement: ref("reducer", "control.voice.setTenantEntitlement", "projectAdmin"),
182
+ setUserOverride: ref("reducer", "control.voice.setUserOverride", "projectAdmin"),
183
+ }),
184
+ support: Object.freeze({
185
+ listTenants: liveRef("control.support.listTenants", "projectAdmin"),
186
+ listSessions: liveRef("control.support.listSessions", "projectAdmin"),
187
+ listErrors: liveRef("control.support.listErrors", "projectAdmin"),
188
+ getSession: ref("query", "control.support.getSession", "projectAdmin"),
189
+ getError: ref("query", "control.support.getError", "projectAdmin"),
190
+ getTenant: ref("query", "control.support.getTenant", "projectAdmin"),
191
+ pruneSessions: ref("reducer", "control.support.pruneSessions", "projectAdmin"),
192
+ heartbeat: ref("reducer", "control.support.heartbeat", "account"),
193
+ sendCommand: ref("reducer", "control.support.sendCommand", "projectAdmin"),
194
+ ackCommand: ref("reducer", "control.support.ackCommand", "account"),
195
+ createImpersonation: ref("reducer", "control.support.createImpersonation", "projectAdmin"),
196
+ }),
197
+ demos: Object.freeze({
198
+ create: ref("reducer", "control.demos.create", "projectAdmin"),
199
+ resetPassword: ref("reducer", "control.demos.resetPassword", "projectAdmin"),
200
+ delete: ref("reducer", "control.demos.delete", "projectAdmin"),
201
+ }),
202
+ legacy: Object.freeze({
203
+ users: Object.freeze({ myTenants: liveRef("users.myTenants", "account") }),
204
+ tenants: Object.freeze({
205
+ getInvitationByToken: ref("query", "tenants.getInvitationByToken", "public"),
206
+ acceptInvitation: ref("reducer", "tenants.acceptInvitation", "account"),
207
+ }),
208
+ }),
209
+ });
210
+ //# sourceMappingURL=control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control.js","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"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"}