@constructive-io/react 0.14.0 → 0.14.2

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.
@@ -36,9 +36,7 @@ class FetchAdapter {
36
36
  return {
37
37
  ok: false,
38
38
  data: null,
39
- errors: [
40
- { message: `HTTP ${response.status}: ${response.statusText}` },
41
- ],
39
+ errors: [{ message: `HTTP ${response.status}: ${response.statusText}` }],
42
40
  };
43
41
  }
44
42
  const json = (await response.json());
@@ -3041,6 +3041,8 @@ export interface RequestUploadUrlPayload {
3041
3041
  deduplicated: boolean;
3042
3042
  /** Presigned URL expiry time (null if deduplicated) */
3043
3043
  expiresAt?: string | null;
3044
+ /** File status — 'pending' for fresh uploads, 'ready' or 'processed' for deduplicated files. Clients can use this to know immediately whether the file is usable. */
3045
+ status: string;
3044
3046
  }
3045
3047
  export type RequestUploadUrlPayloadSelect = {
3046
3048
  uploadUrl?: boolean;
@@ -3048,6 +3050,7 @@ export type RequestUploadUrlPayloadSelect = {
3048
3050
  key?: boolean;
3049
3051
  deduplicated?: boolean;
3050
3052
  expiresAt?: boolean;
3053
+ status?: boolean;
3051
3054
  };
3052
3055
  export interface ConfirmUploadPayload {
3053
3056
  /** The confirmed file ID */
@@ -3259,6 +3259,8 @@ export interface RequestUploadUrlPayload {
3259
3259
  deduplicated: boolean;
3260
3260
  /** Presigned URL expiry time (null if deduplicated) */
3261
3261
  expiresAt?: string | null;
3262
+ /** File status — 'pending' for fresh uploads, 'ready' or 'processed' for deduplicated files. Clients can use this to know immediately whether the file is usable. */
3263
+ status: string;
3262
3264
  }
3263
3265
  export interface ConfirmUploadPayload {
3264
3266
  /** The confirmed file ID */
@@ -36,9 +36,7 @@ class FetchAdapter {
36
36
  return {
37
37
  ok: false,
38
38
  data: null,
39
- errors: [
40
- { message: `HTTP ${response.status}: ${response.statusText}` },
41
- ],
39
+ errors: [{ message: `HTTP ${response.status}: ${response.statusText}` }],
42
40
  };
43
41
  }
44
42
  const json = (await response.json());
@@ -2252,6 +2252,8 @@ export interface RequestUploadUrlPayload {
2252
2252
  deduplicated: boolean;
2253
2253
  /** Presigned URL expiry time (null if deduplicated) */
2254
2254
  expiresAt?: string | null;
2255
+ /** File status — 'pending' for fresh uploads, 'ready' or 'processed' for deduplicated files. Clients can use this to know immediately whether the file is usable. */
2256
+ status: string;
2255
2257
  }
2256
2258
  export type RequestUploadUrlPayloadSelect = {
2257
2259
  uploadUrl?: boolean;
@@ -2259,6 +2261,7 @@ export type RequestUploadUrlPayloadSelect = {
2259
2261
  key?: boolean;
2260
2262
  deduplicated?: boolean;
2261
2263
  expiresAt?: boolean;
2264
+ status?: boolean;
2262
2265
  };
2263
2266
  export interface ConfirmUploadPayload {
2264
2267
  /** The confirmed file ID */
@@ -1431,6 +1431,8 @@ export interface RequestUploadUrlPayload {
1431
1431
  deduplicated: boolean;
1432
1432
  /** Presigned URL expiry time (null if deduplicated) */
1433
1433
  expiresAt?: string | null;
1434
+ /** File status — 'pending' for fresh uploads, 'ready' or 'processed' for deduplicated files. Clients can use this to know immediately whether the file is usable. */
1435
+ status: string;
1434
1436
  }
1435
1437
  export interface ConfirmUploadPayload {
1436
1438
  /** The confirmed file ID */
@@ -33,9 +33,7 @@ export class FetchAdapter {
33
33
  return {
34
34
  ok: false,
35
35
  data: null,
36
- errors: [
37
- { message: `HTTP ${response.status}: ${response.statusText}` },
38
- ],
36
+ errors: [{ message: `HTTP ${response.status}: ${response.statusText}` }],
39
37
  };
40
38
  }
41
39
  const json = (await response.json());
@@ -3041,6 +3041,8 @@ export interface RequestUploadUrlPayload {
3041
3041
  deduplicated: boolean;
3042
3042
  /** Presigned URL expiry time (null if deduplicated) */
3043
3043
  expiresAt?: string | null;
3044
+ /** File status — 'pending' for fresh uploads, 'ready' or 'processed' for deduplicated files. Clients can use this to know immediately whether the file is usable. */
3045
+ status: string;
3044
3046
  }
3045
3047
  export type RequestUploadUrlPayloadSelect = {
3046
3048
  uploadUrl?: boolean;
@@ -3048,6 +3050,7 @@ export type RequestUploadUrlPayloadSelect = {
3048
3050
  key?: boolean;
3049
3051
  deduplicated?: boolean;
3050
3052
  expiresAt?: boolean;
3053
+ status?: boolean;
3051
3054
  };
3052
3055
  export interface ConfirmUploadPayload {
3053
3056
  /** The confirmed file ID */
@@ -3259,6 +3259,8 @@ export interface RequestUploadUrlPayload {
3259
3259
  deduplicated: boolean;
3260
3260
  /** Presigned URL expiry time (null if deduplicated) */
3261
3261
  expiresAt?: string | null;
3262
+ /** File status — 'pending' for fresh uploads, 'ready' or 'processed' for deduplicated files. Clients can use this to know immediately whether the file is usable. */
3263
+ status: string;
3262
3264
  }
3263
3265
  export interface ConfirmUploadPayload {
3264
3266
  /** The confirmed file ID */
@@ -33,9 +33,7 @@ export class FetchAdapter {
33
33
  return {
34
34
  ok: false,
35
35
  data: null,
36
- errors: [
37
- { message: `HTTP ${response.status}: ${response.statusText}` },
38
- ],
36
+ errors: [{ message: `HTTP ${response.status}: ${response.statusText}` }],
39
37
  };
40
38
  }
41
39
  const json = (await response.json());
@@ -2252,6 +2252,8 @@ export interface RequestUploadUrlPayload {
2252
2252
  deduplicated: boolean;
2253
2253
  /** Presigned URL expiry time (null if deduplicated) */
2254
2254
  expiresAt?: string | null;
2255
+ /** File status — 'pending' for fresh uploads, 'ready' or 'processed' for deduplicated files. Clients can use this to know immediately whether the file is usable. */
2256
+ status: string;
2255
2257
  }
2256
2258
  export type RequestUploadUrlPayloadSelect = {
2257
2259
  uploadUrl?: boolean;
@@ -2259,6 +2261,7 @@ export type RequestUploadUrlPayloadSelect = {
2259
2261
  key?: boolean;
2260
2262
  deduplicated?: boolean;
2261
2263
  expiresAt?: boolean;
2264
+ status?: boolean;
2262
2265
  };
2263
2266
  export interface ConfirmUploadPayload {
2264
2267
  /** The confirmed file ID */
@@ -1431,6 +1431,8 @@ export interface RequestUploadUrlPayload {
1431
1431
  deduplicated: boolean;
1432
1432
  /** Presigned URL expiry time (null if deduplicated) */
1433
1433
  expiresAt?: string | null;
1434
+ /** File status — 'pending' for fresh uploads, 'ready' or 'processed' for deduplicated files. Clients can use this to know immediately whether the file is usable. */
1435
+ status: string;
1434
1436
  }
1435
1437
  export interface ConfirmUploadPayload {
1436
1438
  /** The confirmed file ID */
@@ -33,9 +33,7 @@ export class FetchAdapter {
33
33
  return {
34
34
  ok: false,
35
35
  data: null,
36
- errors: [
37
- { message: `HTTP ${response.status}: ${response.statusText}` },
38
- ],
36
+ errors: [{ message: `HTTP ${response.status}: ${response.statusText}` }],
39
37
  };
40
38
  }
41
39
  const json = (await response.json());
@@ -751,6 +751,8 @@ export interface RequestUploadUrlPayload {
751
751
  deduplicated: boolean;
752
752
  /** Presigned URL expiry time (null if deduplicated) */
753
753
  expiresAt?: string | null;
754
+ /** File status — 'pending' for fresh uploads, 'ready' or 'processed' for deduplicated files. Clients can use this to know immediately whether the file is usable. */
755
+ status: string;
754
756
  }
755
757
  export type RequestUploadUrlPayloadSelect = {
756
758
  uploadUrl?: boolean;
@@ -758,6 +760,7 @@ export type RequestUploadUrlPayloadSelect = {
758
760
  key?: boolean;
759
761
  deduplicated?: boolean;
760
762
  expiresAt?: boolean;
763
+ status?: boolean;
761
764
  };
762
765
  export interface ConfirmUploadPayload {
763
766
  /** The confirmed file ID */
@@ -519,6 +519,8 @@ export interface RequestUploadUrlPayload {
519
519
  deduplicated: boolean;
520
520
  /** Presigned URL expiry time (null if deduplicated) */
521
521
  expiresAt?: string | null;
522
+ /** File status — 'pending' for fresh uploads, 'ready' or 'processed' for deduplicated files. Clients can use this to know immediately whether the file is usable. */
523
+ status: string;
522
524
  }
523
525
  export interface ConfirmUploadPayload {
524
526
  /** The confirmed file ID */
@@ -33,9 +33,7 @@ export class FetchAdapter {
33
33
  return {
34
34
  ok: false,
35
35
  data: null,
36
- errors: [
37
- { message: `HTTP ${response.status}: ${response.statusText}` },
38
- ],
36
+ errors: [{ message: `HTTP ${response.status}: ${response.statusText}` }],
39
37
  };
40
38
  }
41
39
  const json = (await response.json());
@@ -1357,7 +1357,8 @@ export interface StorageModule {
1357
1357
  filesTableName?: string | null;
1358
1358
  uploadRequestsTableName?: string | null;
1359
1359
  membershipType?: number | null;
1360
- policies?: string[] | null;
1360
+ policies?: Record<string, unknown> | null;
1361
+ skipDefaultPolicyTables?: string[] | null;
1361
1362
  entityTableId?: string | null;
1362
1363
  endpoint?: string | null;
1363
1364
  publicUrlPrefix?: string | null;
@@ -1385,8 +1386,8 @@ export interface EntityTypeProvision {
1385
1386
  /** The database to provision this entity type in. Required. */
1386
1387
  databaseId?: string | null;
1387
1388
  /**
1388
- * Human-readable name for this membership type, e.g. 'Data Room Member', 'Team Channel Member'. Required.
1389
- * Stored in the membership_types registry table.
1389
+ * Human-readable name for this entity type, e.g. 'Data Room', 'Team Channel'. Required.
1390
+ * Stored in the entity_types registry table.
1390
1391
  */
1391
1392
  name?: string | null;
1392
1393
  /**
@@ -1396,7 +1397,7 @@ export interface EntityTypeProvision {
1396
1397
  * Must be unique per database — the (database_id, prefix) constraint ensures graceful ON CONFLICT DO NOTHING.
1397
1398
  */
1398
1399
  prefix?: string | null;
1399
- /** Description of this membership type. Stored in the membership_types registry table. Defaults to empty string. */
1400
+ /** Description of this entity type. Stored in the entity_types registry table. Defaults to empty string. */
1400
1401
  description?: string | null;
1401
1402
  /**
1402
1403
  * Prefix of the parent entity type. The trigger resolves this to a membership_type integer
@@ -1447,6 +1448,16 @@ export interface EntityTypeProvision {
1447
1448
  * Storage tables get owner_id FK to the entity table, so files are owned by the entity.
1448
1449
  */
1449
1450
  hasStorage?: boolean | null;
1451
+ /**
1452
+ * Whether to provision invites_module for this type. Defaults to false.
1453
+ * When true, the trigger inserts a row into invites_module which in turn
1454
+ * (via insert_invites_module BEFORE INSERT) creates {prefix}_invites and
1455
+ * {prefix}_claimed_invites tables plus the submit_{prefix}_invite_code() function.
1456
+ * Symmetric counterpart of has_storage. Re-provisioning is idempotent: the
1457
+ * UNIQUE (database_id, membership_type) constraint on invites_module combined with
1458
+ * ON CONFLICT DO NOTHING in the fan-out makes repeated INSERTs safe.
1459
+ */
1460
+ hasInvites?: boolean | null;
1450
1461
  /**
1451
1462
  * Optional jsonb object for storage module configuration and initial bucket seeding.
1452
1463
  * Only used when has_storage = true; ignored otherwise. NULL = use defaults.
@@ -1463,8 +1474,21 @@ export interface EntityTypeProvision {
1463
1474
  * - allowed_mime_types (text[]) whitelist of MIME types (null = any)
1464
1475
  * - max_file_size (bigint) max file size in bytes (null = use scope default)
1465
1476
  * - allowed_origins (text[]) per-bucket CORS override
1477
+ * - provisions (jsonb object) optional: customize storage tables
1478
+ * with additional nodes, fields, grants, and policies.
1479
+ * Keyed by table role: "files", "buckets", "upload_requests".
1480
+ * Each value uses the same shape as table_provision:
1481
+ * { nodes, fields, grants, use_rls, policies }. Fanned out
1482
+ * to secure_table_provision targeting the corresponding table.
1483
+ * When a key includes policies[], those REPLACE the default
1484
+ * storage policies for that table; tables without a key still
1485
+ * get defaults. Missing "data" on policy entries is auto-populated
1486
+ * with storage-specific defaults (same as table_provision).
1487
+ * Example: add SearchBm25 for full-text search on files:
1488
+ * {"provisions": {"files": {"nodes": [{"$type":
1489
+ * "SearchBm25", "data": {"source_fields": ["description"]}}]}}}
1466
1490
  * Example:
1467
- * storage_config := '{"buckets": [{"name": "documents", "is_public": false, "allowed_mime_types": ["application/pdf"]}]}'::jsonb
1491
+ * storage_config := '{"buckets": [{"name": "documents", "is_public": false, "allowed_mime_types": ["application/pdf"]}], "provisions": {"files": {"nodes": [{"$type": "SearchBm25", "data": {"source_fields": ["description"]}}]}}}'::jsonb
1468
1492
  */
1469
1493
  storageConfig?: Record<string, unknown> | null;
1470
1494
  /**
@@ -1515,7 +1539,7 @@ export interface EntityTypeProvision {
1515
1539
  tableProvision?: Record<string, unknown> | null;
1516
1540
  /**
1517
1541
  * Output: the auto-assigned integer membership type ID. Populated by the trigger after successful provisioning.
1518
- * This is the ID used in membership_types, memberships_module, and all module tables.
1542
+ * This is the ID used in entity_types, memberships_module, and all module tables.
1519
1543
  */
1520
1544
  outMembershipType?: number | null;
1521
1545
  /**
@@ -1536,6 +1560,12 @@ export interface EntityTypeProvision {
1536
1560
  outBucketsTableId?: string | null;
1537
1561
  /** Output: the UUID of the generated files table (e.g. data_room_files). Populated by the trigger when has_storage=true. */
1538
1562
  outFilesTableId?: string | null;
1563
+ /**
1564
+ * Output: the UUID of the invites_module row created for this entity type. Populated by the trigger when has_invites=true.
1565
+ * NULL when has_invites=false, or when re-provisioning hits ON CONFLICT DO NOTHING
1566
+ * (i.e. the invites_module row was created in a previous run).
1567
+ */
1568
+ outInvitesModuleId?: string | null;
1539
1569
  }
1540
1570
  /** Config row for the webauthn_credentials_module, which provisions the per-user WebAuthn/passkey credentials table (public key, counter, transports, device type, backup state) mirroring crypto_addresses_module. The sibling webauthn_auth_module holds RP config and the registration/sign-in challenge state. */
1541
1571
  export interface WebauthnCredentialsModule {
@@ -5313,6 +5343,7 @@ export type StorageModuleSelect = {
5313
5343
  uploadRequestsTableName?: boolean;
5314
5344
  membershipType?: boolean;
5315
5345
  policies?: boolean;
5346
+ skipDefaultPolicyTables?: boolean;
5316
5347
  entityTableId?: boolean;
5317
5348
  endpoint?: boolean;
5318
5349
  publicUrlPrefix?: boolean;
@@ -5358,6 +5389,7 @@ export type EntityTypeProvisionSelect = {
5358
5389
  hasProfiles?: boolean;
5359
5390
  hasLevels?: boolean;
5360
5391
  hasStorage?: boolean;
5392
+ hasInvites?: boolean;
5361
5393
  storageConfig?: boolean;
5362
5394
  skipEntityPolicies?: boolean;
5363
5395
  tableProvision?: boolean;
@@ -5368,6 +5400,7 @@ export type EntityTypeProvisionSelect = {
5368
5400
  outStorageModuleId?: boolean;
5369
5401
  outBucketsTableId?: boolean;
5370
5402
  outFilesTableId?: boolean;
5403
+ outInvitesModuleId?: boolean;
5371
5404
  database?: {
5372
5405
  select: DatabaseSelect;
5373
5406
  };
@@ -9413,7 +9446,9 @@ export interface StorageModuleFilter {
9413
9446
  /** Filter by the object’s `membershipType` field. */
9414
9447
  membershipType?: IntFilter;
9415
9448
  /** Filter by the object’s `policies` field. */
9416
- policies?: StringListFilter;
9449
+ policies?: JSONFilter;
9450
+ /** Filter by the object’s `skipDefaultPolicyTables` field. */
9451
+ skipDefaultPolicyTables?: StringListFilter;
9417
9452
  /** Filter by the object’s `entityTableId` field. */
9418
9453
  entityTableId?: UUIDFilter;
9419
9454
  /** Filter by the object’s `endpoint` field. */
@@ -9482,6 +9517,8 @@ export interface EntityTypeProvisionFilter {
9482
9517
  hasLevels?: BooleanFilter;
9483
9518
  /** Filter by the object’s `hasStorage` field. */
9484
9519
  hasStorage?: BooleanFilter;
9520
+ /** Filter by the object’s `hasInvites` field. */
9521
+ hasInvites?: BooleanFilter;
9485
9522
  /** Filter by the object’s `storageConfig` field. */
9486
9523
  storageConfig?: JSONFilter;
9487
9524
  /** Filter by the object’s `skipEntityPolicies` field. */
@@ -9502,6 +9539,8 @@ export interface EntityTypeProvisionFilter {
9502
9539
  outBucketsTableId?: UUIDFilter;
9503
9540
  /** Filter by the object’s `outFilesTableId` field. */
9504
9541
  outFilesTableId?: UUIDFilter;
9542
+ /** Filter by the object’s `outInvitesModuleId` field. */
9543
+ outInvitesModuleId?: UUIDFilter;
9505
9544
  /** Checks for all expressions in this list. */
9506
9545
  and?: EntityTypeProvisionFilter[];
9507
9546
  /** Checks for any expressions in this list. */
@@ -11336,8 +11375,8 @@ export type UsersModuleOrderBy = 'NATURAL' | 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DE
11336
11375
  export type BlueprintOrderBy = 'NATURAL' | 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'ID_ASC' | 'ID_DESC' | 'OWNER_ID_ASC' | 'OWNER_ID_DESC' | 'DATABASE_ID_ASC' | 'DATABASE_ID_DESC' | 'NAME_ASC' | 'NAME_DESC' | 'DISPLAY_NAME_ASC' | 'DISPLAY_NAME_DESC' | 'DESCRIPTION_ASC' | 'DESCRIPTION_DESC' | 'DEFINITION_ASC' | 'DEFINITION_DESC' | 'TEMPLATE_ID_ASC' | 'TEMPLATE_ID_DESC' | 'DEFINITION_HASH_ASC' | 'DEFINITION_HASH_DESC' | 'TABLE_HASHES_ASC' | 'TABLE_HASHES_DESC' | 'CREATED_AT_ASC' | 'CREATED_AT_DESC' | 'UPDATED_AT_ASC' | 'UPDATED_AT_DESC';
11337
11376
  export type BlueprintTemplateOrderBy = 'NATURAL' | 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'ID_ASC' | 'ID_DESC' | 'NAME_ASC' | 'NAME_DESC' | 'VERSION_ASC' | 'VERSION_DESC' | 'DISPLAY_NAME_ASC' | 'DISPLAY_NAME_DESC' | 'DESCRIPTION_ASC' | 'DESCRIPTION_DESC' | 'OWNER_ID_ASC' | 'OWNER_ID_DESC' | 'VISIBILITY_ASC' | 'VISIBILITY_DESC' | 'CATEGORIES_ASC' | 'CATEGORIES_DESC' | 'TAGS_ASC' | 'TAGS_DESC' | 'DEFINITION_ASC' | 'DEFINITION_DESC' | 'DEFINITION_SCHEMA_VERSION_ASC' | 'DEFINITION_SCHEMA_VERSION_DESC' | 'SOURCE_ASC' | 'SOURCE_DESC' | 'COMPLEXITY_ASC' | 'COMPLEXITY_DESC' | 'COPY_COUNT_ASC' | 'COPY_COUNT_DESC' | 'FORK_COUNT_ASC' | 'FORK_COUNT_DESC' | 'FORKED_FROM_ID_ASC' | 'FORKED_FROM_ID_DESC' | 'DEFINITION_HASH_ASC' | 'DEFINITION_HASH_DESC' | 'TABLE_HASHES_ASC' | 'TABLE_HASHES_DESC' | 'CREATED_AT_ASC' | 'CREATED_AT_DESC' | 'UPDATED_AT_ASC' | 'UPDATED_AT_DESC';
11338
11377
  export type BlueprintConstructionOrderBy = 'NATURAL' | 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'ID_ASC' | 'ID_DESC' | 'BLUEPRINT_ID_ASC' | 'BLUEPRINT_ID_DESC' | 'DATABASE_ID_ASC' | 'DATABASE_ID_DESC' | 'SCHEMA_ID_ASC' | 'SCHEMA_ID_DESC' | 'STATUS_ASC' | 'STATUS_DESC' | 'ERROR_DETAILS_ASC' | 'ERROR_DETAILS_DESC' | 'TABLE_MAP_ASC' | 'TABLE_MAP_DESC' | 'CONSTRUCTED_DEFINITION_ASC' | 'CONSTRUCTED_DEFINITION_DESC' | 'CONSTRUCTED_AT_ASC' | 'CONSTRUCTED_AT_DESC' | 'CREATED_AT_ASC' | 'CREATED_AT_DESC' | 'UPDATED_AT_ASC' | 'UPDATED_AT_DESC';
11339
- export type StorageModuleOrderBy = 'NATURAL' | 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'ID_ASC' | 'ID_DESC' | 'DATABASE_ID_ASC' | 'DATABASE_ID_DESC' | 'SCHEMA_ID_ASC' | 'SCHEMA_ID_DESC' | 'PRIVATE_SCHEMA_ID_ASC' | 'PRIVATE_SCHEMA_ID_DESC' | 'BUCKETS_TABLE_ID_ASC' | 'BUCKETS_TABLE_ID_DESC' | 'FILES_TABLE_ID_ASC' | 'FILES_TABLE_ID_DESC' | 'UPLOAD_REQUESTS_TABLE_ID_ASC' | 'UPLOAD_REQUESTS_TABLE_ID_DESC' | 'BUCKETS_TABLE_NAME_ASC' | 'BUCKETS_TABLE_NAME_DESC' | 'FILES_TABLE_NAME_ASC' | 'FILES_TABLE_NAME_DESC' | 'UPLOAD_REQUESTS_TABLE_NAME_ASC' | 'UPLOAD_REQUESTS_TABLE_NAME_DESC' | 'MEMBERSHIP_TYPE_ASC' | 'MEMBERSHIP_TYPE_DESC' | 'POLICIES_ASC' | 'POLICIES_DESC' | 'ENTITY_TABLE_ID_ASC' | 'ENTITY_TABLE_ID_DESC' | 'ENDPOINT_ASC' | 'ENDPOINT_DESC' | 'PUBLIC_URL_PREFIX_ASC' | 'PUBLIC_URL_PREFIX_DESC' | 'PROVIDER_ASC' | 'PROVIDER_DESC' | 'ALLOWED_ORIGINS_ASC' | 'ALLOWED_ORIGINS_DESC' | 'UPLOAD_URL_EXPIRY_SECONDS_ASC' | 'UPLOAD_URL_EXPIRY_SECONDS_DESC' | 'DOWNLOAD_URL_EXPIRY_SECONDS_ASC' | 'DOWNLOAD_URL_EXPIRY_SECONDS_DESC' | 'DEFAULT_MAX_FILE_SIZE_ASC' | 'DEFAULT_MAX_FILE_SIZE_DESC' | 'MAX_FILENAME_LENGTH_ASC' | 'MAX_FILENAME_LENGTH_DESC' | 'CACHE_TTL_SECONDS_ASC' | 'CACHE_TTL_SECONDS_DESC';
11340
- export type EntityTypeProvisionOrderBy = 'NATURAL' | 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'ID_ASC' | 'ID_DESC' | 'DATABASE_ID_ASC' | 'DATABASE_ID_DESC' | 'NAME_ASC' | 'NAME_DESC' | 'PREFIX_ASC' | 'PREFIX_DESC' | 'DESCRIPTION_ASC' | 'DESCRIPTION_DESC' | 'PARENT_ENTITY_ASC' | 'PARENT_ENTITY_DESC' | 'TABLE_NAME_ASC' | 'TABLE_NAME_DESC' | 'IS_VISIBLE_ASC' | 'IS_VISIBLE_DESC' | 'HAS_LIMITS_ASC' | 'HAS_LIMITS_DESC' | 'HAS_PROFILES_ASC' | 'HAS_PROFILES_DESC' | 'HAS_LEVELS_ASC' | 'HAS_LEVELS_DESC' | 'HAS_STORAGE_ASC' | 'HAS_STORAGE_DESC' | 'STORAGE_CONFIG_ASC' | 'STORAGE_CONFIG_DESC' | 'SKIP_ENTITY_POLICIES_ASC' | 'SKIP_ENTITY_POLICIES_DESC' | 'TABLE_PROVISION_ASC' | 'TABLE_PROVISION_DESC' | 'OUT_MEMBERSHIP_TYPE_ASC' | 'OUT_MEMBERSHIP_TYPE_DESC' | 'OUT_ENTITY_TABLE_ID_ASC' | 'OUT_ENTITY_TABLE_ID_DESC' | 'OUT_ENTITY_TABLE_NAME_ASC' | 'OUT_ENTITY_TABLE_NAME_DESC' | 'OUT_INSTALLED_MODULES_ASC' | 'OUT_INSTALLED_MODULES_DESC' | 'OUT_STORAGE_MODULE_ID_ASC' | 'OUT_STORAGE_MODULE_ID_DESC' | 'OUT_BUCKETS_TABLE_ID_ASC' | 'OUT_BUCKETS_TABLE_ID_DESC' | 'OUT_FILES_TABLE_ID_ASC' | 'OUT_FILES_TABLE_ID_DESC';
11378
+ export type StorageModuleOrderBy = 'NATURAL' | 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'ID_ASC' | 'ID_DESC' | 'DATABASE_ID_ASC' | 'DATABASE_ID_DESC' | 'SCHEMA_ID_ASC' | 'SCHEMA_ID_DESC' | 'PRIVATE_SCHEMA_ID_ASC' | 'PRIVATE_SCHEMA_ID_DESC' | 'BUCKETS_TABLE_ID_ASC' | 'BUCKETS_TABLE_ID_DESC' | 'FILES_TABLE_ID_ASC' | 'FILES_TABLE_ID_DESC' | 'UPLOAD_REQUESTS_TABLE_ID_ASC' | 'UPLOAD_REQUESTS_TABLE_ID_DESC' | 'BUCKETS_TABLE_NAME_ASC' | 'BUCKETS_TABLE_NAME_DESC' | 'FILES_TABLE_NAME_ASC' | 'FILES_TABLE_NAME_DESC' | 'UPLOAD_REQUESTS_TABLE_NAME_ASC' | 'UPLOAD_REQUESTS_TABLE_NAME_DESC' | 'MEMBERSHIP_TYPE_ASC' | 'MEMBERSHIP_TYPE_DESC' | 'POLICIES_ASC' | 'POLICIES_DESC' | 'SKIP_DEFAULT_POLICY_TABLES_ASC' | 'SKIP_DEFAULT_POLICY_TABLES_DESC' | 'ENTITY_TABLE_ID_ASC' | 'ENTITY_TABLE_ID_DESC' | 'ENDPOINT_ASC' | 'ENDPOINT_DESC' | 'PUBLIC_URL_PREFIX_ASC' | 'PUBLIC_URL_PREFIX_DESC' | 'PROVIDER_ASC' | 'PROVIDER_DESC' | 'ALLOWED_ORIGINS_ASC' | 'ALLOWED_ORIGINS_DESC' | 'UPLOAD_URL_EXPIRY_SECONDS_ASC' | 'UPLOAD_URL_EXPIRY_SECONDS_DESC' | 'DOWNLOAD_URL_EXPIRY_SECONDS_ASC' | 'DOWNLOAD_URL_EXPIRY_SECONDS_DESC' | 'DEFAULT_MAX_FILE_SIZE_ASC' | 'DEFAULT_MAX_FILE_SIZE_DESC' | 'MAX_FILENAME_LENGTH_ASC' | 'MAX_FILENAME_LENGTH_DESC' | 'CACHE_TTL_SECONDS_ASC' | 'CACHE_TTL_SECONDS_DESC';
11379
+ export type EntityTypeProvisionOrderBy = 'NATURAL' | 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'ID_ASC' | 'ID_DESC' | 'DATABASE_ID_ASC' | 'DATABASE_ID_DESC' | 'NAME_ASC' | 'NAME_DESC' | 'PREFIX_ASC' | 'PREFIX_DESC' | 'DESCRIPTION_ASC' | 'DESCRIPTION_DESC' | 'PARENT_ENTITY_ASC' | 'PARENT_ENTITY_DESC' | 'TABLE_NAME_ASC' | 'TABLE_NAME_DESC' | 'IS_VISIBLE_ASC' | 'IS_VISIBLE_DESC' | 'HAS_LIMITS_ASC' | 'HAS_LIMITS_DESC' | 'HAS_PROFILES_ASC' | 'HAS_PROFILES_DESC' | 'HAS_LEVELS_ASC' | 'HAS_LEVELS_DESC' | 'HAS_STORAGE_ASC' | 'HAS_STORAGE_DESC' | 'HAS_INVITES_ASC' | 'HAS_INVITES_DESC' | 'STORAGE_CONFIG_ASC' | 'STORAGE_CONFIG_DESC' | 'SKIP_ENTITY_POLICIES_ASC' | 'SKIP_ENTITY_POLICIES_DESC' | 'TABLE_PROVISION_ASC' | 'TABLE_PROVISION_DESC' | 'OUT_MEMBERSHIP_TYPE_ASC' | 'OUT_MEMBERSHIP_TYPE_DESC' | 'OUT_ENTITY_TABLE_ID_ASC' | 'OUT_ENTITY_TABLE_ID_DESC' | 'OUT_ENTITY_TABLE_NAME_ASC' | 'OUT_ENTITY_TABLE_NAME_DESC' | 'OUT_INSTALLED_MODULES_ASC' | 'OUT_INSTALLED_MODULES_DESC' | 'OUT_STORAGE_MODULE_ID_ASC' | 'OUT_STORAGE_MODULE_ID_DESC' | 'OUT_BUCKETS_TABLE_ID_ASC' | 'OUT_BUCKETS_TABLE_ID_DESC' | 'OUT_FILES_TABLE_ID_ASC' | 'OUT_FILES_TABLE_ID_DESC' | 'OUT_INVITES_MODULE_ID_ASC' | 'OUT_INVITES_MODULE_ID_DESC';
11341
11380
  export type WebauthnCredentialsModuleOrderBy = 'NATURAL' | 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'ID_ASC' | 'ID_DESC' | 'DATABASE_ID_ASC' | 'DATABASE_ID_DESC' | 'SCHEMA_ID_ASC' | 'SCHEMA_ID_DESC' | 'PRIVATE_SCHEMA_ID_ASC' | 'PRIVATE_SCHEMA_ID_DESC' | 'TABLE_ID_ASC' | 'TABLE_ID_DESC' | 'OWNER_TABLE_ID_ASC' | 'OWNER_TABLE_ID_DESC' | 'TABLE_NAME_ASC' | 'TABLE_NAME_DESC';
11342
11381
  export type WebauthnAuthModuleOrderBy = 'NATURAL' | 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'ID_ASC' | 'ID_DESC' | 'DATABASE_ID_ASC' | 'DATABASE_ID_DESC' | 'SCHEMA_ID_ASC' | 'SCHEMA_ID_DESC' | 'USERS_TABLE_ID_ASC' | 'USERS_TABLE_ID_DESC' | 'CREDENTIALS_TABLE_ID_ASC' | 'CREDENTIALS_TABLE_ID_DESC' | 'SESSIONS_TABLE_ID_ASC' | 'SESSIONS_TABLE_ID_DESC' | 'SESSION_CREDENTIALS_TABLE_ID_ASC' | 'SESSION_CREDENTIALS_TABLE_ID_DESC' | 'SESSION_SECRETS_TABLE_ID_ASC' | 'SESSION_SECRETS_TABLE_ID_DESC' | 'AUTH_SETTINGS_TABLE_ID_ASC' | 'AUTH_SETTINGS_TABLE_ID_DESC' | 'RP_ID_ASC' | 'RP_ID_DESC' | 'RP_NAME_ASC' | 'RP_NAME_DESC' | 'ORIGIN_ALLOWLIST_ASC' | 'ORIGIN_ALLOWLIST_DESC' | 'ATTESTATION_TYPE_ASC' | 'ATTESTATION_TYPE_DESC' | 'REQUIRE_USER_VERIFICATION_ASC' | 'REQUIRE_USER_VERIFICATION_DESC' | 'RESIDENT_KEY_ASC' | 'RESIDENT_KEY_DESC' | 'CHALLENGE_EXPIRY_ASC' | 'CHALLENGE_EXPIRY_DESC';
11343
11382
  export type NotificationsModuleOrderBy = 'NATURAL' | 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'ID_ASC' | 'ID_DESC' | 'DATABASE_ID_ASC' | 'DATABASE_ID_DESC' | 'SCHEMA_ID_ASC' | 'SCHEMA_ID_DESC' | 'PRIVATE_SCHEMA_ID_ASC' | 'PRIVATE_SCHEMA_ID_DESC' | 'NOTIFICATIONS_TABLE_ID_ASC' | 'NOTIFICATIONS_TABLE_ID_DESC' | 'READ_STATE_TABLE_ID_ASC' | 'READ_STATE_TABLE_ID_DESC' | 'PREFERENCES_TABLE_ID_ASC' | 'PREFERENCES_TABLE_ID_DESC' | 'CHANNELS_TABLE_ID_ASC' | 'CHANNELS_TABLE_ID_DESC' | 'DELIVERY_LOG_TABLE_ID_ASC' | 'DELIVERY_LOG_TABLE_ID_DESC' | 'OWNER_TABLE_ID_ASC' | 'OWNER_TABLE_ID_DESC' | 'USER_SETTINGS_TABLE_ID_ASC' | 'USER_SETTINGS_TABLE_ID_DESC' | 'ORGANIZATION_SETTINGS_TABLE_ID_ASC' | 'ORGANIZATION_SETTINGS_TABLE_ID_DESC' | 'HAS_CHANNELS_ASC' | 'HAS_CHANNELS_DESC' | 'HAS_PREFERENCES_ASC' | 'HAS_PREFERENCES_DESC' | 'HAS_SETTINGS_EXTENSION_ASC' | 'HAS_SETTINGS_EXTENSION_DESC' | 'HAS_DIGEST_METADATA_ASC' | 'HAS_DIGEST_METADATA_DESC' | 'HAS_SUBSCRIPTIONS_ASC' | 'HAS_SUBSCRIPTIONS_DESC';
@@ -13691,7 +13730,8 @@ export interface CreateStorageModuleInput {
13691
13730
  filesTableName?: string;
13692
13731
  uploadRequestsTableName?: string;
13693
13732
  membershipType?: number;
13694
- policies?: string[];
13733
+ policies?: Record<string, unknown>;
13734
+ skipDefaultPolicyTables?: string[];
13695
13735
  entityTableId?: string;
13696
13736
  endpoint?: string;
13697
13737
  publicUrlPrefix?: string;
@@ -13715,7 +13755,8 @@ export interface StorageModulePatch {
13715
13755
  filesTableName?: string | null;
13716
13756
  uploadRequestsTableName?: string | null;
13717
13757
  membershipType?: number | null;
13718
- policies?: string[] | null;
13758
+ policies?: Record<string, unknown> | null;
13759
+ skipDefaultPolicyTables?: string[] | null;
13719
13760
  entityTableId?: string | null;
13720
13761
  endpoint?: string | null;
13721
13762
  publicUrlPrefix?: string | null;
@@ -13750,6 +13791,7 @@ export interface CreateEntityTypeProvisionInput {
13750
13791
  hasProfiles?: boolean;
13751
13792
  hasLevels?: boolean;
13752
13793
  hasStorage?: boolean;
13794
+ hasInvites?: boolean;
13753
13795
  storageConfig?: Record<string, unknown>;
13754
13796
  skipEntityPolicies?: boolean;
13755
13797
  tableProvision?: Record<string, unknown>;
@@ -13760,6 +13802,7 @@ export interface CreateEntityTypeProvisionInput {
13760
13802
  outStorageModuleId?: string;
13761
13803
  outBucketsTableId?: string;
13762
13804
  outFilesTableId?: string;
13805
+ outInvitesModuleId?: string;
13763
13806
  };
13764
13807
  }
13765
13808
  export interface EntityTypeProvisionPatch {
@@ -13774,6 +13817,7 @@ export interface EntityTypeProvisionPatch {
13774
13817
  hasProfiles?: boolean | null;
13775
13818
  hasLevels?: boolean | null;
13776
13819
  hasStorage?: boolean | null;
13820
+ hasInvites?: boolean | null;
13777
13821
  storageConfig?: Record<string, unknown> | null;
13778
13822
  skipEntityPolicies?: boolean | null;
13779
13823
  tableProvision?: Record<string, unknown> | null;
@@ -13784,6 +13828,7 @@ export interface EntityTypeProvisionPatch {
13784
13828
  outStorageModuleId?: string | null;
13785
13829
  outBucketsTableId?: string | null;
13786
13830
  outFilesTableId?: string | null;
13831
+ outInvitesModuleId?: string | null;
13787
13832
  }
13788
13833
  export interface UpdateEntityTypeProvisionInput {
13789
13834
  clientMutationId?: string;
@@ -15579,6 +15624,7 @@ export interface ProvisionTableInput {
15579
15624
  indexes?: Record<string, unknown>;
15580
15625
  fullTextSearches?: Record<string, unknown>;
15581
15626
  uniqueConstraints?: Record<string, unknown>;
15627
+ description?: string;
15582
15628
  }
15583
15629
  export interface SendVerificationEmailInput {
15584
15630
  clientMutationId?: string;
@@ -19850,7 +19896,9 @@ export interface StorageModuleFilter {
19850
19896
  /** Filter by the object’s `membershipType` field. */
19851
19897
  membershipType?: IntFilter;
19852
19898
  /** Filter by the object’s `policies` field. */
19853
- policies?: StringListFilter;
19899
+ policies?: JSONFilter;
19900
+ /** Filter by the object’s `skipDefaultPolicyTables` field. */
19901
+ skipDefaultPolicyTables?: StringListFilter;
19854
19902
  /** Filter by the object’s `entityTableId` field. */
19855
19903
  entityTableId?: UUIDFilter;
19856
19904
  /** Filter by the object’s `endpoint` field. */
@@ -19920,6 +19968,8 @@ export interface EntityTypeProvisionFilter {
19920
19968
  hasLevels?: BooleanFilter;
19921
19969
  /** Filter by the object’s `hasStorage` field. */
19922
19970
  hasStorage?: BooleanFilter;
19971
+ /** Filter by the object’s `hasInvites` field. */
19972
+ hasInvites?: BooleanFilter;
19923
19973
  /** Filter by the object’s `storageConfig` field. */
19924
19974
  storageConfig?: JSONFilter;
19925
19975
  /** Filter by the object’s `skipEntityPolicies` field. */
@@ -19940,6 +19990,8 @@ export interface EntityTypeProvisionFilter {
19940
19990
  outBucketsTableId?: UUIDFilter;
19941
19991
  /** Filter by the object’s `outFilesTableId` field. */
19942
19992
  outFilesTableId?: UUIDFilter;
19993
+ /** Filter by the object’s `outInvitesModuleId` field. */
19994
+ outInvitesModuleId?: UUIDFilter;
19943
19995
  /** Checks for all expressions in this list. */
19944
19996
  and?: EntityTypeProvisionFilter[];
19945
19997
  /** Checks for any expressions in this list. */
@@ -22798,6 +22850,8 @@ export interface RequestUploadUrlPayload {
22798
22850
  deduplicated: boolean;
22799
22851
  /** Presigned URL expiry time (null if deduplicated) */
22800
22852
  expiresAt?: string | null;
22853
+ /** File status — 'pending' for fresh uploads, 'ready' or 'processed' for deduplicated files. Clients can use this to know immediately whether the file is usable. */
22854
+ status: string;
22801
22855
  }
22802
22856
  export type RequestUploadUrlPayloadSelect = {
22803
22857
  uploadUrl?: boolean;
@@ -22805,6 +22859,7 @@ export type RequestUploadUrlPayloadSelect = {
22805
22859
  key?: boolean;
22806
22860
  deduplicated?: boolean;
22807
22861
  expiresAt?: boolean;
22862
+ status?: boolean;
22808
22863
  };
22809
22864
  export interface ConfirmUploadPayload {
22810
22865
  /** The confirmed file ID */