@collective-intelligence/external-apps-server-sdk 0.0.0-stage → 0.1.0

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 (40) hide show
  1. package/README.md +1075 -2
  2. package/dist/admin.d.ts +7556 -0
  3. package/dist/admin.js +6 -0
  4. package/dist/auth/better-auth.d.ts +71 -0
  5. package/dist/auth/better-auth.js +1 -0
  6. package/dist/auth/federated.d.ts +135 -0
  7. package/dist/auth/federated.js +8 -0
  8. package/dist/auth.d.ts +162 -0
  9. package/dist/auth.js +1 -0
  10. package/dist/express.d.ts +644 -0
  11. package/dist/express.js +1 -0
  12. package/dist/gateway/contracts.d.ts +663 -0
  13. package/dist/gateway/contracts.js +0 -0
  14. package/dist/gateway.d.ts +762 -0
  15. package/dist/gateway.js +8 -0
  16. package/dist/index.d.ts +597 -0
  17. package/dist/index.js +9 -0
  18. package/dist/knowledge-sources/payload.d.ts +420 -0
  19. package/dist/knowledge-sources/payload.js +1 -0
  20. package/dist/knowledge-sources/strapi.d.ts +389 -0
  21. package/dist/knowledge-sources/strapi.js +1 -0
  22. package/dist/persistence/drizzle-effect.d.ts +38 -0
  23. package/dist/persistence/drizzle-effect.js +1 -0
  24. package/dist/persistence/drizzle.d.ts +1514 -0
  25. package/dist/persistence/drizzle.js +18 -0
  26. package/dist/resources.d.ts +423 -0
  27. package/dist/resources.js +15 -0
  28. package/dist/runtime/effect.d.ts +954 -0
  29. package/dist/runtime/effect.js +15 -0
  30. package/dist/runtime/express.d.ts +644 -0
  31. package/dist/runtime/express.js +1 -0
  32. package/dist/runtime/nestjs.d.ts +802 -0
  33. package/dist/runtime/nestjs.js +8 -0
  34. package/dist/runtime/next.d.ts +874 -0
  35. package/dist/runtime/next.js +8 -0
  36. package/dist/runtime/web.d.ts +776 -0
  37. package/dist/runtime/web.js +8 -0
  38. package/dist/tools/ai-sdk.d.ts +170 -0
  39. package/dist/tools/ai-sdk.js +8 -0
  40. package/package.json +242 -4
@@ -0,0 +1,1514 @@
1
+ // Generated by dts-bundle-generator v9.5.1
2
+
3
+ import { InferInsertModel, InferSelectModel, SQL } from 'drizzle-orm';
4
+ import { PgColumn, PgQueryResultHKT, PgTable } from 'drizzle-orm/pg-core';
5
+ import { PgAsyncDatabase } from 'drizzle-orm/pg-core/async';
6
+
7
+ export type FederatedGrant = Readonly<{
8
+ accessToken: string;
9
+ expiresAt: number;
10
+ }>;
11
+ export type FederatedLogin = Readonly<{
12
+ status: "idle";
13
+ }> | Readonly<{
14
+ status: "pending" | "exchanging";
15
+ state: string;
16
+ verifier: string;
17
+ returnTo: string;
18
+ expiresAt: number;
19
+ }>;
20
+ /** Server-owned session. Store kind keeps this off the browser; sealed-cookie encrypts it. */
21
+ export type FederatedSessionRecord = Readonly<{
22
+ revision: string;
23
+ expiresAt: number;
24
+ grant: FederatedGrant | null;
25
+ login: FederatedLogin;
26
+ }>;
27
+ /** App-owned persistence; every mutation must be atomic across application instances. */
28
+ export type FederatedSessionStore = Readonly<{
29
+ create: (id: string, record: FederatedSessionRecord) => Promise<boolean>;
30
+ read: (id: string) => Promise<FederatedSessionRecord | null>;
31
+ /** Compare-and-swap the existing revision; return false after removal and never upsert. */
32
+ replace: (id: string, revision: string, record: FederatedSessionRecord) => Promise<boolean>;
33
+ /** Atomically removes and returns the previous record, including any pending login. */
34
+ remove: (id: string) => Promise<FederatedSessionRecord | null>;
35
+ }>;
36
+ export type ResourceJsonValue = null | boolean | number | string | readonly ResourceJsonValue[] | Readonly<{
37
+ [key: string]: ResourceJsonValue;
38
+ }>;
39
+ /** Opaque wire identity. Callers must not infer or concatenate its internals. */
40
+ export type ResourceId = string;
41
+ export type ResourceRecordId = ResourceId;
42
+ /** Opaque concurrency token independent from source timestamps. */
43
+ export type ResourceRevision = string;
44
+ /** Opaque pagination position issued and consumed only by a resource adapter. */
45
+ export type ResourceCursor = string;
46
+ export type IdempotencyKey = string;
47
+ export type ResourceIdentityField = Readonly<{
48
+ name: string;
49
+ type: "number" | "string";
50
+ }>;
51
+ export type ResourceCapabilities = Readonly<{
52
+ create?: boolean;
53
+ /** Common entity deletion is always soft deletion. */
54
+ delete?: boolean;
55
+ get?: boolean;
56
+ hardDelete?: boolean;
57
+ includeDeleted?: boolean;
58
+ restore?: boolean;
59
+ search: true;
60
+ softDelete?: boolean;
61
+ update?: boolean;
62
+ }>;
63
+ export type ResourcePaginationMode = "cursor" | "page";
64
+ export type PortableResourceSchema = Readonly<Record<string, ResourceJsonValue>>;
65
+ export type ResourceDefinition<Entity, Create = Entity, Update = Partial<Entity>> = Readonly<{
66
+ capabilities: ResourceCapabilities;
67
+ concurrency: "revision";
68
+ id: string;
69
+ identity: Readonly<{
70
+ fields: readonly [
71
+ ResourceIdentityField,
72
+ ...ResourceIdentityField[]
73
+ ];
74
+ }>;
75
+ query: Readonly<{
76
+ filterableFields: readonly string[];
77
+ pagination: Readonly<{
78
+ modes: readonly ResourcePaginationMode[];
79
+ }>;
80
+ sortableFields: readonly string[];
81
+ textSearchFields?: readonly string[];
82
+ }>;
83
+ schemas: Readonly<{
84
+ create?: PortableResourceSchema;
85
+ entity: PortableResourceSchema;
86
+ update?: PortableResourceSchema;
87
+ }>;
88
+ version: string;
89
+ /** Portable UI metadata; required/enum/nullability remain in schemas. */
90
+ metadata?: Readonly<Record<string, ResourceJsonValue>>;
91
+ /** Type-only slots keep definition values portable and serializable. */
92
+ readonly __types?: Readonly<{
93
+ create: Create;
94
+ entity: Entity;
95
+ update: Update;
96
+ }>;
97
+ }>;
98
+ export type FilterValue = ResourceJsonValue | readonly ResourceJsonValue[];
99
+ export type ResourceFilter = Readonly<{
100
+ field: string;
101
+ operator: "contains" | "ends_with" | "eq" | "gt" | "gte" | "in" | "lt" | "lte" | "ne" | "not_in" | "starts_with";
102
+ value: FilterValue;
103
+ }> | Readonly<{
104
+ field: string;
105
+ operator: "is_not_null" | "is_null";
106
+ }> | Readonly<{
107
+ filters: readonly ResourceFilter[];
108
+ operator: "and" | "or";
109
+ }> | Readonly<{
110
+ filter: ResourceFilter;
111
+ operator: "not";
112
+ }>;
113
+ export type ResourceSort = Readonly<{
114
+ direction: "asc" | "desc";
115
+ field: string;
116
+ }>;
117
+ export type ResourcePagination = Readonly<{
118
+ mode: "cursor";
119
+ cursor?: ResourceCursor;
120
+ limit: number;
121
+ }> | Readonly<{
122
+ mode: "page";
123
+ page: number;
124
+ pageSize: number;
125
+ }>;
126
+ export type ResourceListQuery = Readonly<{
127
+ filter?: ResourceFilter;
128
+ includeDeleted?: boolean;
129
+ pagination: ResourcePagination;
130
+ sort?: readonly ResourceSort[];
131
+ textSearch?: string;
132
+ }>;
133
+ export type ResourceRecord<Entity> = Readonly<{
134
+ deletedAt?: string;
135
+ id: ResourceRecordId;
136
+ revision: ResourceRevision;
137
+ value: Entity;
138
+ }>;
139
+ export type ResourceListResult<Entity> = Readonly<{
140
+ items: readonly ResourceRecord<Entity>[];
141
+ nextCursor?: ResourceCursor;
142
+ pagination: "cursor";
143
+ }> | Readonly<{
144
+ items: readonly ResourceRecord<Entity>[];
145
+ page: number;
146
+ pageSize: number;
147
+ pagination: "page";
148
+ totalItems: number;
149
+ totalPages: number;
150
+ }>;
151
+ export type ResourceMutationInput<Value> = Readonly<{
152
+ expectedRevision: ResourceRevision;
153
+ id: ResourceRecordId;
154
+ idempotencyKey?: IdempotencyKey;
155
+ value: Value;
156
+ }>;
157
+ export type ResourceLifecycleInput = Readonly<{
158
+ expectedRevision: ResourceRevision;
159
+ id: ResourceRecordId;
160
+ idempotencyKey?: IdempotencyKey;
161
+ }>;
162
+ export type ResourceCreateInput<Value> = Readonly<{
163
+ idempotencyKey: IdempotencyKey;
164
+ value: Value;
165
+ }>;
166
+ /** Common entity operations. Generic resource lifecycle/cursor APIs remain separate. */
167
+ export type EntityOperation = "list" | "get" | "create" | "update" | "delete";
168
+ export type EntityListQuery = Omit<ResourceListQuery, "pagination" | "includeDeleted"> & Readonly<{
169
+ pagination: Extract<ResourcePagination, {
170
+ mode: "page";
171
+ }>;
172
+ }>;
173
+ export type EntityPage<Value> = Extract<ResourceListResult<Value>, {
174
+ pagination: "page";
175
+ }>;
176
+ export type EntityCreateInput<Value> = ResourceCreateInput<Value>;
177
+ export type EntityUpdateInput<Patch> = ResourceMutationInput<Patch> & Readonly<{
178
+ idempotencyKey: IdempotencyKey;
179
+ }>;
180
+ export type EntityDeleteInput = ResourceLifecycleInput & Readonly<{
181
+ idempotencyKey: IdempotencyKey;
182
+ }>;
183
+ /** Application login identities are separate from gateway machine callers. */
184
+ export type ApplicationUserIdentity = Readonly<{
185
+ kind: "local_user";
186
+ id: string;
187
+ email: string;
188
+ name: string | null;
189
+ } | {
190
+ kind: "ci_user";
191
+ id: string;
192
+ email: string | null;
193
+ name: string | null;
194
+ issuer: string;
195
+ organizationId: string;
196
+ }>;
197
+ /** Constructed only after user/app/organization authorization at server ingress.
198
+ * Canonical identities survive proxy hops and scope mutation receipts; credentials
199
+ * and request/correlation IDs are deliberately not part of that logical identity.
200
+ */
201
+ export type EntityInvocationContext = Readonly<{
202
+ applicationId: string;
203
+ issuer: string;
204
+ organizationId: string;
205
+ resourceId: string;
206
+ roles: readonly string[];
207
+ scopes: readonly string[];
208
+ teamIds: readonly string[];
209
+ user: ApplicationUserIdentity;
210
+ }>;
211
+ /** Common CRUD port. Implementations own atomic revisions, receipts and soft deletion. */
212
+ export interface EntityRepository<Value, Create = Value, Patch = Partial<Value>> {
213
+ readonly list: (query: EntityListQuery, context: EntityInvocationContext) => Promise<EntityPage<Value>>;
214
+ readonly get?: (id: string, context: EntityInvocationContext) => Promise<ResourceRecord<Value>>;
215
+ readonly create?: (input: EntityCreateInput<Create>, context: EntityInvocationContext) => Promise<ResourceRecord<Value>>;
216
+ readonly update?: (input: EntityUpdateInput<Patch>, context: EntityInvocationContext) => Promise<ResourceRecord<Value>>;
217
+ readonly delete?: (input: EntityDeleteInput, context: EntityInvocationContext) => Promise<ResourceRecord<Value>>;
218
+ }
219
+ export type ResourceChange<Entity> = Readonly<{
220
+ kind: "upsert";
221
+ record: ResourceRecord<Entity>;
222
+ }> | Readonly<{
223
+ kind: "tombstone";
224
+ id: string;
225
+ revision: string;
226
+ deletedAt: string;
227
+ }>;
228
+ export type ResourceChangePage<Entity> = Readonly<{
229
+ changes: readonly ResourceChange<Entity>[];
230
+ nextCursor?: string;
231
+ }>;
232
+ /** Full inventory only: no filters, text search or caller-selected ordering.
233
+ * Continue consecutive pages with the first watermark. A conflict requires restart.
234
+ */
235
+ export type ResourceInventoryRequest = Readonly<{
236
+ page: number;
237
+ pageSize: number;
238
+ watermark?: string;
239
+ }>;
240
+ export type ResourceInventoryPage<Entity> = Extract<ResourceListResult<Entity>, {
241
+ pagination: "page";
242
+ }> & Readonly<{
243
+ /** Resource-scoped committed change cursor; consume deltas strictly after it. */
244
+ watermark: string;
245
+ }>;
246
+ export type ResourceMutation = Readonly<{
247
+ id: string;
248
+ expectedRevision: string;
249
+ }>;
250
+ export interface CrudRepository<Entity, Create = Entity, Update = Partial<Entity>> {
251
+ readonly list: (query: ResourceListQuery, context?: EntityInvocationContext) => Promise<ResourceListResult<Entity>>;
252
+ readonly scan?: (request: ResourceInventoryRequest) => Promise<ResourceInventoryPage<Entity>>;
253
+ readonly get?: (id: string, includeDeleted?: boolean, context?: EntityInvocationContext) => Promise<ResourceRecord<Entity>>;
254
+ readonly create?: (value: Create, idempotencyKey: string, context?: EntityInvocationContext) => Promise<ResourceRecord<Entity>>;
255
+ readonly update?: (input: ResourceMutation & Readonly<{
256
+ value: Update;
257
+ }>, context?: EntityInvocationContext) => Promise<ResourceRecord<Entity>>;
258
+ readonly hardDelete?: (input: ResourceMutation, context?: EntityInvocationContext) => Promise<void>;
259
+ readonly softDelete?: (input: ResourceMutation, context?: EntityInvocationContext) => Promise<ResourceRecord<Entity>>;
260
+ readonly restore?: (input: ResourceMutation, context?: EntityInvocationContext) => Promise<ResourceRecord<Entity>>;
261
+ readonly changes?: (input: Readonly<{
262
+ cursor?: string;
263
+ limit: number;
264
+ }>) => Promise<ResourceChangePage<Entity>>;
265
+ }
266
+ export type PlatformTablesOptions = Readonly<{
267
+ schemaName?: string;
268
+ }>;
269
+ declare const definePlatformTables: (options?: PlatformTablesOptions) => {
270
+ federatedAuth: {
271
+ sessions: import("drizzle-orm/pg-core").PgTableWithColumns<{
272
+ name: "federated_sessions";
273
+ schema: string;
274
+ columns: {
275
+ id: import("drizzle-orm/pg-core").PgBuildColumn<"federated_sessions", import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgTextBuilder<[
276
+ string,
277
+ ...string[]
278
+ ]>>, {
279
+ name: string;
280
+ tableName: "federated_sessions";
281
+ dataType: "string";
282
+ data: string;
283
+ driverParam: string;
284
+ notNull: true;
285
+ hasDefault: false;
286
+ isPrimaryKey: false;
287
+ isAutoincrement: false;
288
+ hasRuntimeDefault: false;
289
+ enumValues: undefined;
290
+ identity: undefined;
291
+ generated: undefined;
292
+ }>;
293
+ revision: import("drizzle-orm/pg-core").PgBuildColumn<"federated_sessions", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
294
+ string,
295
+ ...string[]
296
+ ]>>, {
297
+ name: string;
298
+ tableName: "federated_sessions";
299
+ dataType: "string";
300
+ data: string;
301
+ driverParam: string;
302
+ notNull: true;
303
+ hasDefault: false;
304
+ isPrimaryKey: false;
305
+ isAutoincrement: false;
306
+ hasRuntimeDefault: false;
307
+ enumValues: undefined;
308
+ identity: undefined;
309
+ generated: undefined;
310
+ }>;
311
+ value: import("drizzle-orm/pg-core").PgBuildColumn<"federated_sessions", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, Readonly<{
312
+ revision: string;
313
+ expiresAt: number;
314
+ grant: FederatedGrant | null;
315
+ login: FederatedLogin;
316
+ }>>>, {
317
+ name: string;
318
+ tableName: "federated_sessions";
319
+ dataType: "object json";
320
+ data: Readonly<{
321
+ revision: string;
322
+ expiresAt: number;
323
+ grant: FederatedGrant | null;
324
+ login: FederatedLogin;
325
+ }>;
326
+ driverParam: unknown;
327
+ notNull: true;
328
+ hasDefault: false;
329
+ isPrimaryKey: false;
330
+ isAutoincrement: false;
331
+ hasRuntimeDefault: false;
332
+ enumValues: undefined;
333
+ identity: undefined;
334
+ generated: undefined;
335
+ }>;
336
+ };
337
+ dialect: "pg";
338
+ }>;
339
+ };
340
+ gateway: {
341
+ connections: import("drizzle-orm/pg-core").PgTableWithColumns<{
342
+ name: "gateway_connections";
343
+ schema: string;
344
+ columns: {
345
+ audience: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").PgTextBuilder<[
346
+ string,
347
+ ...string[]
348
+ ]>, {
349
+ name: string;
350
+ tableName: "gateway_connections";
351
+ dataType: "string";
352
+ data: string;
353
+ driverParam: string;
354
+ notNull: false;
355
+ hasDefault: false;
356
+ isPrimaryKey: false;
357
+ isAutoincrement: false;
358
+ hasRuntimeDefault: false;
359
+ enumValues: undefined;
360
+ identity: undefined;
361
+ generated: undefined;
362
+ }>;
363
+ connectionId: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
364
+ string,
365
+ ...string[]
366
+ ]>>, {
367
+ name: string;
368
+ tableName: "gateway_connections";
369
+ dataType: "string";
370
+ data: string;
371
+ driverParam: string;
372
+ notNull: true;
373
+ hasDefault: false;
374
+ isPrimaryKey: false;
375
+ isAutoincrement: false;
376
+ hasRuntimeDefault: false;
377
+ enumValues: undefined;
378
+ identity: undefined;
379
+ generated: undefined;
380
+ }>;
381
+ gatewayFqn: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").PgTextBuilder<[
382
+ string,
383
+ ...string[]
384
+ ]>, {
385
+ name: string;
386
+ tableName: "gateway_connections";
387
+ dataType: "string";
388
+ data: string;
389
+ driverParam: string;
390
+ notNull: false;
391
+ hasDefault: false;
392
+ isPrimaryKey: false;
393
+ isAutoincrement: false;
394
+ hasRuntimeDefault: false;
395
+ enumValues: undefined;
396
+ identity: undefined;
397
+ generated: undefined;
398
+ }>;
399
+ issuer: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
400
+ string,
401
+ ...string[]
402
+ ]>>, {
403
+ name: string;
404
+ tableName: "gateway_connections";
405
+ dataType: "string";
406
+ data: string;
407
+ driverParam: string;
408
+ notNull: true;
409
+ hasDefault: false;
410
+ isPrimaryKey: false;
411
+ isAutoincrement: false;
412
+ hasRuntimeDefault: false;
413
+ enumValues: undefined;
414
+ identity: undefined;
415
+ generated: undefined;
416
+ }>;
417
+ manifestHash: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").PgTextBuilder<[
418
+ string,
419
+ ...string[]
420
+ ]>, {
421
+ name: string;
422
+ tableName: "gateway_connections";
423
+ dataType: "string";
424
+ data: string;
425
+ driverParam: string;
426
+ notNull: false;
427
+ hasDefault: false;
428
+ isPrimaryKey: false;
429
+ isAutoincrement: false;
430
+ hasRuntimeDefault: false;
431
+ enumValues: undefined;
432
+ identity: undefined;
433
+ generated: undefined;
434
+ }>;
435
+ organizationId: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
436
+ string,
437
+ ...string[]
438
+ ]>>, {
439
+ name: string;
440
+ tableName: "gateway_connections";
441
+ dataType: "string";
442
+ data: string;
443
+ driverParam: string;
444
+ notNull: true;
445
+ hasDefault: false;
446
+ isPrimaryKey: false;
447
+ isAutoincrement: false;
448
+ hasRuntimeDefault: false;
449
+ enumValues: undefined;
450
+ identity: undefined;
451
+ generated: undefined;
452
+ }>;
453
+ packageFqn: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").PgTextBuilder<[
454
+ string,
455
+ ...string[]
456
+ ]>, {
457
+ name: string;
458
+ tableName: "gateway_connections";
459
+ dataType: "string";
460
+ data: string;
461
+ driverParam: string;
462
+ notNull: false;
463
+ hasDefault: false;
464
+ isPrimaryKey: false;
465
+ isAutoincrement: false;
466
+ hasRuntimeDefault: false;
467
+ enumValues: undefined;
468
+ identity: undefined;
469
+ generated: undefined;
470
+ }>;
471
+ packageInstallationId: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").PgTextBuilder<[
472
+ string,
473
+ ...string[]
474
+ ]>, {
475
+ name: string;
476
+ tableName: "gateway_connections";
477
+ dataType: "string";
478
+ data: string;
479
+ driverParam: string;
480
+ notNull: false;
481
+ hasDefault: false;
482
+ isPrimaryKey: false;
483
+ isAutoincrement: false;
484
+ hasRuntimeDefault: false;
485
+ enumValues: undefined;
486
+ identity: undefined;
487
+ generated: undefined;
488
+ }>;
489
+ };
490
+ dialect: "pg";
491
+ }>;
492
+ replays: import("drizzle-orm/pg-core").PgTableWithColumns<{
493
+ name: "gateway_replays";
494
+ schema: string;
495
+ columns: {
496
+ expiresAt: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_replays", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBigInt53Builder>, {
497
+ name: string;
498
+ tableName: "gateway_replays";
499
+ dataType: "number int53";
500
+ data: number;
501
+ driverParam: string | number;
502
+ notNull: true;
503
+ hasDefault: false;
504
+ isPrimaryKey: false;
505
+ isAutoincrement: false;
506
+ hasRuntimeDefault: false;
507
+ enumValues: undefined;
508
+ identity: undefined;
509
+ generated: undefined;
510
+ }>;
511
+ requestId: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_replays", import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgTextBuilder<[
512
+ string,
513
+ ...string[]
514
+ ]>>, {
515
+ name: string;
516
+ tableName: "gateway_replays";
517
+ dataType: "string";
518
+ data: string;
519
+ driverParam: string;
520
+ notNull: true;
521
+ hasDefault: false;
522
+ isPrimaryKey: false;
523
+ isAutoincrement: false;
524
+ hasRuntimeDefault: false;
525
+ enumValues: undefined;
526
+ identity: undefined;
527
+ generated: undefined;
528
+ }>;
529
+ };
530
+ dialect: "pg";
531
+ }>;
532
+ };
533
+ resources: {
534
+ changes: import("drizzle-orm/pg-core").PgTableWithColumns<{
535
+ name: "resource_changes";
536
+ schema: string;
537
+ columns: {
538
+ change: import("drizzle-orm/pg-core").PgBuildColumn<"resource_changes", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, ResourceChange<unknown>>>, {
539
+ name: string;
540
+ tableName: "resource_changes";
541
+ dataType: "object json";
542
+ data: ResourceChange<unknown>;
543
+ driverParam: unknown;
544
+ notNull: true;
545
+ hasDefault: false;
546
+ isPrimaryKey: false;
547
+ isAutoincrement: false;
548
+ hasRuntimeDefault: false;
549
+ enumValues: undefined;
550
+ identity: undefined;
551
+ generated: undefined;
552
+ }>;
553
+ resource: import("drizzle-orm/pg-core").PgBuildColumn<"resource_changes", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
554
+ string,
555
+ ...string[]
556
+ ]>>, {
557
+ name: string;
558
+ tableName: "resource_changes";
559
+ dataType: "string";
560
+ data: string;
561
+ driverParam: string;
562
+ notNull: true;
563
+ hasDefault: false;
564
+ isPrimaryKey: false;
565
+ isAutoincrement: false;
566
+ hasRuntimeDefault: false;
567
+ enumValues: undefined;
568
+ identity: undefined;
569
+ generated: undefined;
570
+ }>;
571
+ sequence: import("drizzle-orm/pg-core").PgBuildColumn<"resource_changes", import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgBigSerial53Builder>, {
572
+ name: string;
573
+ tableName: "resource_changes";
574
+ dataType: "number int53";
575
+ data: number;
576
+ driverParam: number;
577
+ notNull: true;
578
+ hasDefault: true;
579
+ isPrimaryKey: false;
580
+ isAutoincrement: false;
581
+ hasRuntimeDefault: false;
582
+ enumValues: undefined;
583
+ identity: undefined;
584
+ generated: undefined;
585
+ }>;
586
+ };
587
+ dialect: "pg";
588
+ }>;
589
+ idempotency: import("drizzle-orm/pg-core").PgTableWithColumns<{
590
+ name: "resource_idempotency";
591
+ schema: string;
592
+ columns: {
593
+ fingerprint: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
594
+ string,
595
+ ...string[]
596
+ ]>>, {
597
+ name: string;
598
+ tableName: "resource_idempotency";
599
+ dataType: "string";
600
+ data: string;
601
+ driverParam: string;
602
+ notNull: true;
603
+ hasDefault: false;
604
+ isPrimaryKey: false;
605
+ isAutoincrement: false;
606
+ hasRuntimeDefault: false;
607
+ enumValues: undefined;
608
+ identity: undefined;
609
+ generated: undefined;
610
+ }>;
611
+ key: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
612
+ string,
613
+ ...string[]
614
+ ]>>, {
615
+ name: string;
616
+ tableName: "resource_idempotency";
617
+ dataType: "string";
618
+ data: string;
619
+ driverParam: string;
620
+ notNull: true;
621
+ hasDefault: false;
622
+ isPrimaryKey: false;
623
+ isAutoincrement: false;
624
+ hasRuntimeDefault: false;
625
+ enumValues: undefined;
626
+ identity: undefined;
627
+ generated: undefined;
628
+ }>;
629
+ resource: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
630
+ string,
631
+ ...string[]
632
+ ]>>, {
633
+ name: string;
634
+ tableName: "resource_idempotency";
635
+ dataType: "string";
636
+ data: string;
637
+ driverParam: string;
638
+ notNull: true;
639
+ hasDefault: false;
640
+ isPrimaryKey: false;
641
+ isAutoincrement: false;
642
+ hasRuntimeDefault: false;
643
+ enumValues: undefined;
644
+ identity: undefined;
645
+ generated: undefined;
646
+ }>;
647
+ result: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, Readonly<{
648
+ deletedAt?: string;
649
+ id: ResourceRecordId;
650
+ revision: ResourceRevision;
651
+ value: unknown;
652
+ }>>>, {
653
+ name: string;
654
+ tableName: "resource_idempotency";
655
+ dataType: "object json";
656
+ data: Readonly<{
657
+ deletedAt?: string;
658
+ id: ResourceRecordId;
659
+ revision: ResourceRevision;
660
+ value: unknown;
661
+ }>;
662
+ driverParam: unknown;
663
+ notNull: true;
664
+ hasDefault: false;
665
+ isPrimaryKey: false;
666
+ isAutoincrement: false;
667
+ hasRuntimeDefault: false;
668
+ enumValues: undefined;
669
+ identity: undefined;
670
+ generated: undefined;
671
+ }>;
672
+ };
673
+ dialect: "pg";
674
+ }>;
675
+ };
676
+ };
677
+ export type PlatformTables = ReturnType<typeof definePlatformTables>;
678
+ export type CrudPersistenceTables = PlatformTables["resources"];
679
+ export type DrizzleEntityOptions<Table extends PgTable, Entity> = Readonly<{
680
+ deletedAtField: keyof InferSelectModel<Table> & string;
681
+ /** Stable canonical store identity; never derive this from a proxy URL. */
682
+ storeId: string;
683
+ policy: Readonly<{
684
+ authorizeOperation: (operation: EntityOperation, context: EntityInvocationContext) => boolean | Promise<boolean>;
685
+ /** Explicitly return undefined when the application's rows are shared. */
686
+ rowPredicate: (operation: EntityOperation, context: EntityInvocationContext, columns: Readonly<Record<string, PgColumn>>) => SQL | undefined | Promise<SQL | undefined>;
687
+ /** Reevaluate current disclosure policy against original receipt snapshots. */
688
+ authorizeResult: (operation: EntityOperation, record: ResourceRecord<Entity>, context: EntityInvocationContext, replay: boolean) => boolean | Promise<boolean>;
689
+ }>;
690
+ }>;
691
+ export type DrizzlePostgresRepositoryOptions<Table extends PgTable, Entity = InferSelectModel<Table>> = Readonly<{
692
+ database: PgAsyncDatabase<PgQueryResultHKT>;
693
+ table: Table;
694
+ definition: Omit<ResourceDefinition<Entity>, "__types">;
695
+ project?: (row: InferSelectModel<Table>) => Entity;
696
+ revisionField: keyof InferSelectModel<Table> & string;
697
+ persistence: CrudPersistenceTables;
698
+ entities?: DrizzleEntityOptions<Table, Entity>;
699
+ }>;
700
+ declare class DrizzlePostgresRepository<Table extends PgTable, Entity = InferSelectModel<Table>> implements CrudRepository<Entity, InferInsertModel<Table>, Partial<InferSelectModel<Table>>> {
701
+ private readonly table;
702
+ private readonly columns;
703
+ private readonly options;
704
+ readonly entities: Required<EntityRepository<Entity, InferInsertModel<Table>, Partial<InferSelectModel<Table>>>>;
705
+ constructor(options: DrizzlePostgresRepositoryOptions<Table, Entity>);
706
+ private record;
707
+ readonly create: (value: InferInsertModel<Table>, idempotencyKey: string) => Promise<ResourceRecord<Entity>>;
708
+ private identity;
709
+ private activeRows;
710
+ readonly get: (id: string) => Promise<ResourceRecord<Entity>>;
711
+ readonly hardDelete: (input: ResourceMutation) => Promise<void>;
712
+ readonly update: (input: ResourceMutation & Readonly<{
713
+ value: Partial<InferSelectModel<Table>>;
714
+ }>) => Promise<ResourceRecord<Entity>>;
715
+ readonly changes: (input: Readonly<{
716
+ cursor?: string;
717
+ limit: number;
718
+ }>) => Promise<ResourceChangePage<Entity>>;
719
+ /** Supported writes journal atomically under the resource lock. Every page
720
+ * reads its rows and watermark in one short snapshot; it holds no cross-request lock.
721
+ */
722
+ readonly scan: (input: ResourceInventoryRequest) => Promise<ResourceInventoryPage<Entity>>;
723
+ readonly list: (query: ResourceListQuery) => Promise<ResourceListResult<Entity>>;
724
+ }
725
+ export interface GatewayReplayStore {
726
+ /** Atomically consumes an identifier until its token expiration. */
727
+ readonly consume: (requestId: string, expiresAt: number) => Promise<boolean>;
728
+ }
729
+ export type GatewayConnectionGrant = Readonly<{
730
+ issuer: string;
731
+ organizationId: string;
732
+ connectionId: string;
733
+ }>;
734
+ /** App-owned durable storage. put must atomically upsert the exact tuple; remove revokes it. */
735
+ export interface GatewayConnectionGrantStore {
736
+ readonly has: (grant: GatewayConnectionGrant) => Promise<boolean>;
737
+ readonly put: (grant: GatewayConnectionGrant) => Promise<void>;
738
+ readonly remove: (grant: GatewayConnectionGrant) => Promise<void>;
739
+ }
740
+ export type GatewayPackageEnrollmentGrant = GatewayConnectionGrant & Readonly<{
741
+ packageInstallationId: string;
742
+ packageFqn: string;
743
+ gatewayFqn: string;
744
+ audience: string;
745
+ manifestHash: string;
746
+ }>;
747
+ /** Commit nonce consumption and the complete grant together, or neither. False means replay. */
748
+ export interface GatewayPackageEnrollmentStore {
749
+ readonly enroll: (input: Readonly<{
750
+ grant: GatewayPackageEnrollmentGrant;
751
+ requestId: string;
752
+ expiresAt: number;
753
+ }>) => Promise<boolean>;
754
+ }
755
+ export type PlatformPersistenceOptions = Readonly<{
756
+ database: PgAsyncDatabase<PgQueryResultHKT>;
757
+ tables: PlatformTables;
758
+ }>;
759
+ declare const makePlatformPersistence: (options: PlatformPersistenceOptions) => {
760
+ federatedAuth: {
761
+ sessions: Readonly<{
762
+ create: (id: string, record: FederatedSessionRecord) => Promise<boolean>;
763
+ read: (id: string) => Promise<FederatedSessionRecord | null>;
764
+ replace: (id: string, revision: string, record: FederatedSessionRecord) => Promise<boolean>;
765
+ remove: (id: string) => Promise<FederatedSessionRecord | null>;
766
+ }>;
767
+ };
768
+ gateway: {
769
+ connections: GatewayConnectionGrantStore;
770
+ enrollment: GatewayPackageEnrollmentStore;
771
+ replays: GatewayReplayStore;
772
+ };
773
+ resources: {
774
+ changes: import("drizzle-orm/pg-core").PgTableWithColumns<{
775
+ name: "resource_changes";
776
+ schema: string;
777
+ columns: {
778
+ change: import("drizzle-orm/pg-core").PgBuildColumn<"resource_changes", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, ResourceChange<unknown>>>, {
779
+ name: string;
780
+ tableName: "resource_changes";
781
+ dataType: "object json";
782
+ data: ResourceChange<unknown>;
783
+ driverParam: unknown;
784
+ notNull: true;
785
+ hasDefault: false;
786
+ isPrimaryKey: false;
787
+ isAutoincrement: false;
788
+ hasRuntimeDefault: false;
789
+ enumValues: undefined;
790
+ identity: undefined;
791
+ generated: undefined;
792
+ }>;
793
+ resource: import("drizzle-orm/pg-core").PgBuildColumn<"resource_changes", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
794
+ string,
795
+ ...string[]
796
+ ]>>, {
797
+ name: string;
798
+ tableName: "resource_changes";
799
+ dataType: "string";
800
+ data: string;
801
+ driverParam: string;
802
+ notNull: true;
803
+ hasDefault: false;
804
+ isPrimaryKey: false;
805
+ isAutoincrement: false;
806
+ hasRuntimeDefault: false;
807
+ enumValues: undefined;
808
+ identity: undefined;
809
+ generated: undefined;
810
+ }>;
811
+ sequence: import("drizzle-orm/pg-core").PgBuildColumn<"resource_changes", import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgBigSerial53Builder>, {
812
+ name: string;
813
+ tableName: "resource_changes";
814
+ dataType: "number int53";
815
+ data: number;
816
+ driverParam: number;
817
+ notNull: true;
818
+ hasDefault: true;
819
+ isPrimaryKey: false;
820
+ isAutoincrement: false;
821
+ hasRuntimeDefault: false;
822
+ enumValues: undefined;
823
+ identity: undefined;
824
+ generated: undefined;
825
+ }>;
826
+ };
827
+ dialect: "pg";
828
+ }>;
829
+ idempotency: import("drizzle-orm/pg-core").PgTableWithColumns<{
830
+ name: "resource_idempotency";
831
+ schema: string;
832
+ columns: {
833
+ fingerprint: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
834
+ string,
835
+ ...string[]
836
+ ]>>, {
837
+ name: string;
838
+ tableName: "resource_idempotency";
839
+ dataType: "string";
840
+ data: string;
841
+ driverParam: string;
842
+ notNull: true;
843
+ hasDefault: false;
844
+ isPrimaryKey: false;
845
+ isAutoincrement: false;
846
+ hasRuntimeDefault: false;
847
+ enumValues: undefined;
848
+ identity: undefined;
849
+ generated: undefined;
850
+ }>;
851
+ key: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
852
+ string,
853
+ ...string[]
854
+ ]>>, {
855
+ name: string;
856
+ tableName: "resource_idempotency";
857
+ dataType: "string";
858
+ data: string;
859
+ driverParam: string;
860
+ notNull: true;
861
+ hasDefault: false;
862
+ isPrimaryKey: false;
863
+ isAutoincrement: false;
864
+ hasRuntimeDefault: false;
865
+ enumValues: undefined;
866
+ identity: undefined;
867
+ generated: undefined;
868
+ }>;
869
+ resource: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
870
+ string,
871
+ ...string[]
872
+ ]>>, {
873
+ name: string;
874
+ tableName: "resource_idempotency";
875
+ dataType: "string";
876
+ data: string;
877
+ driverParam: string;
878
+ notNull: true;
879
+ hasDefault: false;
880
+ isPrimaryKey: false;
881
+ isAutoincrement: false;
882
+ hasRuntimeDefault: false;
883
+ enumValues: undefined;
884
+ identity: undefined;
885
+ generated: undefined;
886
+ }>;
887
+ result: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, Readonly<{
888
+ deletedAt?: string;
889
+ id: ResourceRecordId;
890
+ revision: ResourceRevision;
891
+ value: unknown;
892
+ }>>>, {
893
+ name: string;
894
+ tableName: "resource_idempotency";
895
+ dataType: "object json";
896
+ data: Readonly<{
897
+ deletedAt?: string;
898
+ id: ResourceRecordId;
899
+ revision: ResourceRevision;
900
+ value: unknown;
901
+ }>;
902
+ driverParam: unknown;
903
+ notNull: true;
904
+ hasDefault: false;
905
+ isPrimaryKey: false;
906
+ isAutoincrement: false;
907
+ hasRuntimeDefault: false;
908
+ enumValues: undefined;
909
+ identity: undefined;
910
+ generated: undefined;
911
+ }>;
912
+ };
913
+ dialect: "pg";
914
+ }>;
915
+ };
916
+ };
917
+ export type PlatformPersistence = ReturnType<typeof makePlatformPersistence>;
918
+ export type FederatedSessionStoreOptions = Readonly<{
919
+ database: PgAsyncDatabase<PgQueryResultHKT>;
920
+ table: PlatformTables["federatedAuth"]["sessions"];
921
+ }>;
922
+ export type GatewayConnectionGrantStoreOptions = Readonly<{
923
+ database: PgAsyncDatabase<PgQueryResultHKT>;
924
+ table: PlatformTables["gateway"]["connections"];
925
+ }>;
926
+ export type GatewayReplayStoreOptions = Readonly<{
927
+ database: PgAsyncDatabase<PgQueryResultHKT>;
928
+ table: PlatformTables["gateway"]["replays"];
929
+ }>;
930
+ export type GatewayPackageEnrollmentStoreOptions = Readonly<{
931
+ database: PgAsyncDatabase<PgQueryResultHKT>;
932
+ tables: PlatformTables["gateway"];
933
+ }>;
934
+ declare const DrizzlePostgresRepository$1: typeof DrizzlePostgresRepository;
935
+ export declare const PLATFORM_SCHEMA_NAME = "platform";
936
+ declare const definePlatformTables$1: (options?: PlatformTablesOptions) => {
937
+ federatedAuth: {
938
+ sessions: import("drizzle-orm/pg-core").PgTableWithColumns<{
939
+ name: "federated_sessions";
940
+ schema: string;
941
+ columns: {
942
+ id: import("drizzle-orm/pg-core").PgBuildColumn<"federated_sessions", import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgTextBuilder<[
943
+ string,
944
+ ...string[]
945
+ ]>>, {
946
+ name: string;
947
+ tableName: "federated_sessions";
948
+ dataType: "string";
949
+ data: string;
950
+ driverParam: string;
951
+ notNull: true;
952
+ hasDefault: false;
953
+ isPrimaryKey: false;
954
+ isAutoincrement: false;
955
+ hasRuntimeDefault: false;
956
+ enumValues: undefined;
957
+ identity: undefined;
958
+ generated: undefined;
959
+ }>;
960
+ revision: import("drizzle-orm/pg-core").PgBuildColumn<"federated_sessions", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
961
+ string,
962
+ ...string[]
963
+ ]>>, {
964
+ name: string;
965
+ tableName: "federated_sessions";
966
+ dataType: "string";
967
+ data: string;
968
+ driverParam: string;
969
+ notNull: true;
970
+ hasDefault: false;
971
+ isPrimaryKey: false;
972
+ isAutoincrement: false;
973
+ hasRuntimeDefault: false;
974
+ enumValues: undefined;
975
+ identity: undefined;
976
+ generated: undefined;
977
+ }>;
978
+ value: import("drizzle-orm/pg-core").PgBuildColumn<"federated_sessions", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, Readonly<{
979
+ revision: string;
980
+ expiresAt: number;
981
+ grant: FederatedGrant | null;
982
+ login: FederatedLogin;
983
+ }>>>, {
984
+ name: string;
985
+ tableName: "federated_sessions";
986
+ dataType: "object json";
987
+ data: Readonly<{
988
+ revision: string;
989
+ expiresAt: number;
990
+ grant: FederatedGrant | null;
991
+ login: FederatedLogin;
992
+ }>;
993
+ driverParam: unknown;
994
+ notNull: true;
995
+ hasDefault: false;
996
+ isPrimaryKey: false;
997
+ isAutoincrement: false;
998
+ hasRuntimeDefault: false;
999
+ enumValues: undefined;
1000
+ identity: undefined;
1001
+ generated: undefined;
1002
+ }>;
1003
+ };
1004
+ dialect: "pg";
1005
+ }>;
1006
+ };
1007
+ gateway: {
1008
+ connections: import("drizzle-orm/pg-core").PgTableWithColumns<{
1009
+ name: "gateway_connections";
1010
+ schema: string;
1011
+ columns: {
1012
+ audience: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").PgTextBuilder<[
1013
+ string,
1014
+ ...string[]
1015
+ ]>, {
1016
+ name: string;
1017
+ tableName: "gateway_connections";
1018
+ dataType: "string";
1019
+ data: string;
1020
+ driverParam: string;
1021
+ notNull: false;
1022
+ hasDefault: false;
1023
+ isPrimaryKey: false;
1024
+ isAutoincrement: false;
1025
+ hasRuntimeDefault: false;
1026
+ enumValues: undefined;
1027
+ identity: undefined;
1028
+ generated: undefined;
1029
+ }>;
1030
+ connectionId: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
1031
+ string,
1032
+ ...string[]
1033
+ ]>>, {
1034
+ name: string;
1035
+ tableName: "gateway_connections";
1036
+ dataType: "string";
1037
+ data: string;
1038
+ driverParam: string;
1039
+ notNull: true;
1040
+ hasDefault: false;
1041
+ isPrimaryKey: false;
1042
+ isAutoincrement: false;
1043
+ hasRuntimeDefault: false;
1044
+ enumValues: undefined;
1045
+ identity: undefined;
1046
+ generated: undefined;
1047
+ }>;
1048
+ gatewayFqn: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").PgTextBuilder<[
1049
+ string,
1050
+ ...string[]
1051
+ ]>, {
1052
+ name: string;
1053
+ tableName: "gateway_connections";
1054
+ dataType: "string";
1055
+ data: string;
1056
+ driverParam: string;
1057
+ notNull: false;
1058
+ hasDefault: false;
1059
+ isPrimaryKey: false;
1060
+ isAutoincrement: false;
1061
+ hasRuntimeDefault: false;
1062
+ enumValues: undefined;
1063
+ identity: undefined;
1064
+ generated: undefined;
1065
+ }>;
1066
+ issuer: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
1067
+ string,
1068
+ ...string[]
1069
+ ]>>, {
1070
+ name: string;
1071
+ tableName: "gateway_connections";
1072
+ dataType: "string";
1073
+ data: string;
1074
+ driverParam: string;
1075
+ notNull: true;
1076
+ hasDefault: false;
1077
+ isPrimaryKey: false;
1078
+ isAutoincrement: false;
1079
+ hasRuntimeDefault: false;
1080
+ enumValues: undefined;
1081
+ identity: undefined;
1082
+ generated: undefined;
1083
+ }>;
1084
+ manifestHash: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").PgTextBuilder<[
1085
+ string,
1086
+ ...string[]
1087
+ ]>, {
1088
+ name: string;
1089
+ tableName: "gateway_connections";
1090
+ dataType: "string";
1091
+ data: string;
1092
+ driverParam: string;
1093
+ notNull: false;
1094
+ hasDefault: false;
1095
+ isPrimaryKey: false;
1096
+ isAutoincrement: false;
1097
+ hasRuntimeDefault: false;
1098
+ enumValues: undefined;
1099
+ identity: undefined;
1100
+ generated: undefined;
1101
+ }>;
1102
+ organizationId: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
1103
+ string,
1104
+ ...string[]
1105
+ ]>>, {
1106
+ name: string;
1107
+ tableName: "gateway_connections";
1108
+ dataType: "string";
1109
+ data: string;
1110
+ driverParam: string;
1111
+ notNull: true;
1112
+ hasDefault: false;
1113
+ isPrimaryKey: false;
1114
+ isAutoincrement: false;
1115
+ hasRuntimeDefault: false;
1116
+ enumValues: undefined;
1117
+ identity: undefined;
1118
+ generated: undefined;
1119
+ }>;
1120
+ packageFqn: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").PgTextBuilder<[
1121
+ string,
1122
+ ...string[]
1123
+ ]>, {
1124
+ name: string;
1125
+ tableName: "gateway_connections";
1126
+ dataType: "string";
1127
+ data: string;
1128
+ driverParam: string;
1129
+ notNull: false;
1130
+ hasDefault: false;
1131
+ isPrimaryKey: false;
1132
+ isAutoincrement: false;
1133
+ hasRuntimeDefault: false;
1134
+ enumValues: undefined;
1135
+ identity: undefined;
1136
+ generated: undefined;
1137
+ }>;
1138
+ packageInstallationId: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_connections", import("drizzle-orm/pg-core").PgTextBuilder<[
1139
+ string,
1140
+ ...string[]
1141
+ ]>, {
1142
+ name: string;
1143
+ tableName: "gateway_connections";
1144
+ dataType: "string";
1145
+ data: string;
1146
+ driverParam: string;
1147
+ notNull: false;
1148
+ hasDefault: false;
1149
+ isPrimaryKey: false;
1150
+ isAutoincrement: false;
1151
+ hasRuntimeDefault: false;
1152
+ enumValues: undefined;
1153
+ identity: undefined;
1154
+ generated: undefined;
1155
+ }>;
1156
+ };
1157
+ dialect: "pg";
1158
+ }>;
1159
+ replays: import("drizzle-orm/pg-core").PgTableWithColumns<{
1160
+ name: "gateway_replays";
1161
+ schema: string;
1162
+ columns: {
1163
+ expiresAt: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_replays", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBigInt53Builder>, {
1164
+ name: string;
1165
+ tableName: "gateway_replays";
1166
+ dataType: "number int53";
1167
+ data: number;
1168
+ driverParam: string | number;
1169
+ notNull: true;
1170
+ hasDefault: false;
1171
+ isPrimaryKey: false;
1172
+ isAutoincrement: false;
1173
+ hasRuntimeDefault: false;
1174
+ enumValues: undefined;
1175
+ identity: undefined;
1176
+ generated: undefined;
1177
+ }>;
1178
+ requestId: import("drizzle-orm/pg-core").PgBuildColumn<"gateway_replays", import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgTextBuilder<[
1179
+ string,
1180
+ ...string[]
1181
+ ]>>, {
1182
+ name: string;
1183
+ tableName: "gateway_replays";
1184
+ dataType: "string";
1185
+ data: string;
1186
+ driverParam: string;
1187
+ notNull: true;
1188
+ hasDefault: false;
1189
+ isPrimaryKey: false;
1190
+ isAutoincrement: false;
1191
+ hasRuntimeDefault: false;
1192
+ enumValues: undefined;
1193
+ identity: undefined;
1194
+ generated: undefined;
1195
+ }>;
1196
+ };
1197
+ dialect: "pg";
1198
+ }>;
1199
+ };
1200
+ resources: {
1201
+ changes: import("drizzle-orm/pg-core").PgTableWithColumns<{
1202
+ name: "resource_changes";
1203
+ schema: string;
1204
+ columns: {
1205
+ change: import("drizzle-orm/pg-core").PgBuildColumn<"resource_changes", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, ResourceChange<unknown>>>, {
1206
+ name: string;
1207
+ tableName: "resource_changes";
1208
+ dataType: "object json";
1209
+ data: ResourceChange<unknown>;
1210
+ driverParam: unknown;
1211
+ notNull: true;
1212
+ hasDefault: false;
1213
+ isPrimaryKey: false;
1214
+ isAutoincrement: false;
1215
+ hasRuntimeDefault: false;
1216
+ enumValues: undefined;
1217
+ identity: undefined;
1218
+ generated: undefined;
1219
+ }>;
1220
+ resource: import("drizzle-orm/pg-core").PgBuildColumn<"resource_changes", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
1221
+ string,
1222
+ ...string[]
1223
+ ]>>, {
1224
+ name: string;
1225
+ tableName: "resource_changes";
1226
+ dataType: "string";
1227
+ data: string;
1228
+ driverParam: string;
1229
+ notNull: true;
1230
+ hasDefault: false;
1231
+ isPrimaryKey: false;
1232
+ isAutoincrement: false;
1233
+ hasRuntimeDefault: false;
1234
+ enumValues: undefined;
1235
+ identity: undefined;
1236
+ generated: undefined;
1237
+ }>;
1238
+ sequence: import("drizzle-orm/pg-core").PgBuildColumn<"resource_changes", import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgBigSerial53Builder>, {
1239
+ name: string;
1240
+ tableName: "resource_changes";
1241
+ dataType: "number int53";
1242
+ data: number;
1243
+ driverParam: number;
1244
+ notNull: true;
1245
+ hasDefault: true;
1246
+ isPrimaryKey: false;
1247
+ isAutoincrement: false;
1248
+ hasRuntimeDefault: false;
1249
+ enumValues: undefined;
1250
+ identity: undefined;
1251
+ generated: undefined;
1252
+ }>;
1253
+ };
1254
+ dialect: "pg";
1255
+ }>;
1256
+ idempotency: import("drizzle-orm/pg-core").PgTableWithColumns<{
1257
+ name: "resource_idempotency";
1258
+ schema: string;
1259
+ columns: {
1260
+ fingerprint: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
1261
+ string,
1262
+ ...string[]
1263
+ ]>>, {
1264
+ name: string;
1265
+ tableName: "resource_idempotency";
1266
+ dataType: "string";
1267
+ data: string;
1268
+ driverParam: string;
1269
+ notNull: true;
1270
+ hasDefault: false;
1271
+ isPrimaryKey: false;
1272
+ isAutoincrement: false;
1273
+ hasRuntimeDefault: false;
1274
+ enumValues: undefined;
1275
+ identity: undefined;
1276
+ generated: undefined;
1277
+ }>;
1278
+ key: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
1279
+ string,
1280
+ ...string[]
1281
+ ]>>, {
1282
+ name: string;
1283
+ tableName: "resource_idempotency";
1284
+ dataType: "string";
1285
+ data: string;
1286
+ driverParam: string;
1287
+ notNull: true;
1288
+ hasDefault: false;
1289
+ isPrimaryKey: false;
1290
+ isAutoincrement: false;
1291
+ hasRuntimeDefault: false;
1292
+ enumValues: undefined;
1293
+ identity: undefined;
1294
+ generated: undefined;
1295
+ }>;
1296
+ resource: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
1297
+ string,
1298
+ ...string[]
1299
+ ]>>, {
1300
+ name: string;
1301
+ tableName: "resource_idempotency";
1302
+ dataType: "string";
1303
+ data: string;
1304
+ driverParam: string;
1305
+ notNull: true;
1306
+ hasDefault: false;
1307
+ isPrimaryKey: false;
1308
+ isAutoincrement: false;
1309
+ hasRuntimeDefault: false;
1310
+ enumValues: undefined;
1311
+ identity: undefined;
1312
+ generated: undefined;
1313
+ }>;
1314
+ result: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, Readonly<{
1315
+ deletedAt?: string;
1316
+ id: ResourceRecordId;
1317
+ revision: ResourceRevision;
1318
+ value: unknown;
1319
+ }>>>, {
1320
+ name: string;
1321
+ tableName: "resource_idempotency";
1322
+ dataType: "object json";
1323
+ data: Readonly<{
1324
+ deletedAt?: string;
1325
+ id: ResourceRecordId;
1326
+ revision: ResourceRevision;
1327
+ value: unknown;
1328
+ }>;
1329
+ driverParam: unknown;
1330
+ notNull: true;
1331
+ hasDefault: false;
1332
+ isPrimaryKey: false;
1333
+ isAutoincrement: false;
1334
+ hasRuntimeDefault: false;
1335
+ enumValues: undefined;
1336
+ identity: undefined;
1337
+ generated: undefined;
1338
+ }>;
1339
+ };
1340
+ dialect: "pg";
1341
+ }>;
1342
+ };
1343
+ };
1344
+ export declare const makeFederatedSessionStore: (options: FederatedSessionStoreOptions) => FederatedSessionStore;
1345
+ export declare const makeGatewayConnectionGrantStore: (options: GatewayConnectionGrantStoreOptions) => GatewayConnectionGrantStore;
1346
+ export declare const makeGatewayPackageEnrollmentStore: (options: GatewayPackageEnrollmentStoreOptions) => GatewayPackageEnrollmentStore;
1347
+ export declare const makeGatewayReplayStore: (options: GatewayReplayStoreOptions) => GatewayReplayStore;
1348
+ declare const makePlatformPersistence$1: (options: PlatformPersistenceOptions) => {
1349
+ federatedAuth: {
1350
+ sessions: Readonly<{
1351
+ create: (id: string, record: FederatedSessionRecord) => Promise<boolean>;
1352
+ read: (id: string) => Promise<FederatedSessionRecord | null>;
1353
+ replace: (id: string, revision: string, record: FederatedSessionRecord) => Promise<boolean>;
1354
+ remove: (id: string) => Promise<FederatedSessionRecord | null>;
1355
+ }>;
1356
+ };
1357
+ gateway: {
1358
+ connections: GatewayConnectionGrantStore;
1359
+ enrollment: GatewayPackageEnrollmentStore;
1360
+ replays: GatewayReplayStore;
1361
+ };
1362
+ resources: {
1363
+ changes: import("drizzle-orm/pg-core").PgTableWithColumns<{
1364
+ name: "resource_changes";
1365
+ schema: string;
1366
+ columns: {
1367
+ change: import("drizzle-orm/pg-core").PgBuildColumn<"resource_changes", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, ResourceChange<unknown>>>, {
1368
+ name: string;
1369
+ tableName: "resource_changes";
1370
+ dataType: "object json";
1371
+ data: ResourceChange<unknown>;
1372
+ driverParam: unknown;
1373
+ notNull: true;
1374
+ hasDefault: false;
1375
+ isPrimaryKey: false;
1376
+ isAutoincrement: false;
1377
+ hasRuntimeDefault: false;
1378
+ enumValues: undefined;
1379
+ identity: undefined;
1380
+ generated: undefined;
1381
+ }>;
1382
+ resource: import("drizzle-orm/pg-core").PgBuildColumn<"resource_changes", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
1383
+ string,
1384
+ ...string[]
1385
+ ]>>, {
1386
+ name: string;
1387
+ tableName: "resource_changes";
1388
+ dataType: "string";
1389
+ data: string;
1390
+ driverParam: string;
1391
+ notNull: true;
1392
+ hasDefault: false;
1393
+ isPrimaryKey: false;
1394
+ isAutoincrement: false;
1395
+ hasRuntimeDefault: false;
1396
+ enumValues: undefined;
1397
+ identity: undefined;
1398
+ generated: undefined;
1399
+ }>;
1400
+ sequence: import("drizzle-orm/pg-core").PgBuildColumn<"resource_changes", import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgBigSerial53Builder>, {
1401
+ name: string;
1402
+ tableName: "resource_changes";
1403
+ dataType: "number int53";
1404
+ data: number;
1405
+ driverParam: number;
1406
+ notNull: true;
1407
+ hasDefault: true;
1408
+ isPrimaryKey: false;
1409
+ isAutoincrement: false;
1410
+ hasRuntimeDefault: false;
1411
+ enumValues: undefined;
1412
+ identity: undefined;
1413
+ generated: undefined;
1414
+ }>;
1415
+ };
1416
+ dialect: "pg";
1417
+ }>;
1418
+ idempotency: import("drizzle-orm/pg-core").PgTableWithColumns<{
1419
+ name: "resource_idempotency";
1420
+ schema: string;
1421
+ columns: {
1422
+ fingerprint: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
1423
+ string,
1424
+ ...string[]
1425
+ ]>>, {
1426
+ name: string;
1427
+ tableName: "resource_idempotency";
1428
+ dataType: "string";
1429
+ data: string;
1430
+ driverParam: string;
1431
+ notNull: true;
1432
+ hasDefault: false;
1433
+ isPrimaryKey: false;
1434
+ isAutoincrement: false;
1435
+ hasRuntimeDefault: false;
1436
+ enumValues: undefined;
1437
+ identity: undefined;
1438
+ generated: undefined;
1439
+ }>;
1440
+ key: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
1441
+ string,
1442
+ ...string[]
1443
+ ]>>, {
1444
+ name: string;
1445
+ tableName: "resource_idempotency";
1446
+ dataType: "string";
1447
+ data: string;
1448
+ driverParam: string;
1449
+ notNull: true;
1450
+ hasDefault: false;
1451
+ isPrimaryKey: false;
1452
+ isAutoincrement: false;
1453
+ hasRuntimeDefault: false;
1454
+ enumValues: undefined;
1455
+ identity: undefined;
1456
+ generated: undefined;
1457
+ }>;
1458
+ resource: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[
1459
+ string,
1460
+ ...string[]
1461
+ ]>>, {
1462
+ name: string;
1463
+ tableName: "resource_idempotency";
1464
+ dataType: "string";
1465
+ data: string;
1466
+ driverParam: string;
1467
+ notNull: true;
1468
+ hasDefault: false;
1469
+ isPrimaryKey: false;
1470
+ isAutoincrement: false;
1471
+ hasRuntimeDefault: false;
1472
+ enumValues: undefined;
1473
+ identity: undefined;
1474
+ generated: undefined;
1475
+ }>;
1476
+ result: import("drizzle-orm/pg-core").PgBuildColumn<"resource_idempotency", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, Readonly<{
1477
+ deletedAt?: string;
1478
+ id: ResourceRecordId;
1479
+ revision: ResourceRevision;
1480
+ value: unknown;
1481
+ }>>>, {
1482
+ name: string;
1483
+ tableName: "resource_idempotency";
1484
+ dataType: "object json";
1485
+ data: Readonly<{
1486
+ deletedAt?: string;
1487
+ id: ResourceRecordId;
1488
+ revision: ResourceRevision;
1489
+ value: unknown;
1490
+ }>;
1491
+ driverParam: unknown;
1492
+ notNull: true;
1493
+ hasDefault: false;
1494
+ isPrimaryKey: false;
1495
+ isAutoincrement: false;
1496
+ hasRuntimeDefault: false;
1497
+ enumValues: undefined;
1498
+ identity: undefined;
1499
+ generated: undefined;
1500
+ }>;
1501
+ };
1502
+ dialect: "pg";
1503
+ }>;
1504
+ };
1505
+ };
1506
+ type DrizzlePostgresRepository$1<Table extends PgTable, Entity = InferSelectModel<Table>> = DrizzlePostgresRepository<Table, Entity>;
1507
+
1508
+ export {
1509
+ DrizzlePostgresRepository$1 as DrizzlePostgresRepository,
1510
+ definePlatformTables$1 as definePlatformTables,
1511
+ makePlatformPersistence$1 as makePlatformPersistence,
1512
+ };
1513
+
1514
+ export {};