@bettercms-ai/db 0.12.3 → 0.12.5

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.
package/dist/index.d.ts CHANGED
@@ -2937,6 +2937,23 @@ declare const projects: drizzle_orm_pg_core.PgTableWithColumns<{
2937
2937
  identity: undefined;
2938
2938
  generated: undefined;
2939
2939
  }, {}, {}>;
2940
+ previewLinksRevokedAt: drizzle_orm_pg_core.PgColumn<{
2941
+ name: "preview_links_revoked_at";
2942
+ tableName: "projects";
2943
+ dataType: "date";
2944
+ columnType: "PgTimestamp";
2945
+ data: Date;
2946
+ driverParam: string;
2947
+ notNull: false;
2948
+ hasDefault: false;
2949
+ isPrimaryKey: false;
2950
+ isAutoincrement: false;
2951
+ hasRuntimeDefault: false;
2952
+ enumValues: undefined;
2953
+ baseColumn: never;
2954
+ identity: undefined;
2955
+ generated: undefined;
2956
+ }, {}, {}>;
2940
2957
  purgeAfter: drizzle_orm_pg_core.PgColumn<{
2941
2958
  name: "purge_after";
2942
2959
  tableName: "projects";
@@ -11753,6 +11770,15 @@ type FormImplementation = {
11753
11770
  */
11754
11771
  action?: string;
11755
11772
  method?: string;
11773
+ /**
11774
+ * implemented-not-connected only: the forms script every BetterCMS-served page carries will take
11775
+ * this form's submit over, so it connects itself on its first submission (src/lib/content/derive-forms.ts).
11776
+ */
11777
+ capturable?: boolean;
11778
+ /** When the forms script first filed a submission from the site's own `<form>`: the proof it is connected. Carried across scans. */
11779
+ capturedAt?: string;
11780
+ /** When the site's own script was seen taking this form's submit: never `capturable` while set. Carried across scans. */
11781
+ handledAt?: string;
11756
11782
  /** ISO timestamp of the release scan that wrote this. */
11757
11783
  at: string;
11758
11784
  };
@@ -19058,6 +19084,40 @@ declare const customDomains: drizzle_orm_pg_core.PgTableWithColumns<{
19058
19084
  identity: undefined;
19059
19085
  generated: undefined;
19060
19086
  }, {}, {}>;
19087
+ connectionId: drizzle_orm_pg_core.PgColumn<{
19088
+ name: "connection_id";
19089
+ tableName: "custom_domains";
19090
+ dataType: "string";
19091
+ columnType: "PgText";
19092
+ data: string;
19093
+ driverParam: string;
19094
+ notNull: false;
19095
+ hasDefault: false;
19096
+ isPrimaryKey: false;
19097
+ isAutoincrement: false;
19098
+ hasRuntimeDefault: false;
19099
+ enumValues: [string, ...string[]];
19100
+ baseColumn: never;
19101
+ identity: undefined;
19102
+ generated: undefined;
19103
+ }, {}, {}>;
19104
+ siteId: drizzle_orm_pg_core.PgColumn<{
19105
+ name: "site_id";
19106
+ tableName: "custom_domains";
19107
+ dataType: "string";
19108
+ columnType: "PgText";
19109
+ data: string;
19110
+ driverParam: string;
19111
+ notNull: false;
19112
+ hasDefault: false;
19113
+ isPrimaryKey: false;
19114
+ isAutoincrement: false;
19115
+ hasRuntimeDefault: false;
19116
+ enumValues: [string, ...string[]];
19117
+ baseColumn: never;
19118
+ identity: undefined;
19119
+ generated: undefined;
19120
+ }, {}, {}>;
19061
19121
  providerRecords: drizzle_orm_pg_core.PgColumn<{
19062
19122
  name: "provider_records";
19063
19123
  tableName: "custom_domains";
@@ -19514,7 +19574,8 @@ type StorageConfigInsert = InferInsertModel<typeof storageConfigs>;
19514
19574
  * `dispatchDeployTargets()` fans out to every enabled row.
19515
19575
  *
19516
19576
  * `provider`:
19517
- * netlify | vercel | cloudflare-pages — a real provider.
19577
+ * netlify | vercel | cloudflare-workers | cloudflare-pages — a real provider. New Cloudflare
19578
+ * targets are Workers (0500); Pages stays for existing ones.
19518
19579
  * webhook — a generic POST with a small JSON payload.
19519
19580
  * local — a machine the customer owns. It PULLS; see below.
19520
19581
  *
@@ -19695,7 +19756,7 @@ declare const deployTargets: drizzle_orm_pg_core.PgTableWithColumns<{
19695
19756
  identity: undefined;
19696
19757
  generated: undefined;
19697
19758
  }, {}, {
19698
- length: 16;
19759
+ length: 32;
19699
19760
  }>;
19700
19761
  name: drizzle_orm_pg_core.PgColumn<{
19701
19762
  name: "name";
package/dist/index.js CHANGED
@@ -23745,6 +23745,8 @@ var projects = pgTable10(
23745
23745
  archivedAt: timestamp11("archived_at"),
23746
23746
  /** The hybrid project a headless copy was made from. Migration 0343. */
23747
23747
  switchedFromProjectId: text11("switched_from_project_id"),
23748
+ /** "Revoke all preview links" (0499): a preview pass issued at or before this no longer opens. */
23749
+ previewLinksRevokedAt: timestamp11("preview_links_revoked_at"),
23748
23750
  /**
23749
23751
  * Set only by a hybrid→headless switch; null = never auto-purged. A manual archive leaves
23750
23752
  * it null, so the purge drain can never delete a project someone put away by hand.
@@ -25541,11 +25543,21 @@ var customDomains = pgTable51(
25541
25543
  * never sees a CNAME to a BetterCMS origin that is not serving their site.
25542
25544
  */
25543
25545
  deployTargetId: text52("deploy_target_id"),
25546
+ /**
25547
+ * A headless site's host, named directly (0498): the connected account and the host's project
25548
+ * the domain was added to. Set when the project deploys through no connected target (a CLI
25549
+ * deploy hook), so the domain is attached and re-checked there without becoming the site's host.
25550
+ */
25551
+ connectionId: text52("connection_id"),
25552
+ siteId: text52("site_id"),
25544
25553
  /** The DNS the PROVIDER asked for: pointing record plus any ownership challenge. */
25545
25554
  providerRecords: jsonb27("provider_records").$type(),
25546
25555
  /** Nonce published at `_bettercms.<host>` as `verify=<token>`; checked by POST /verify. */
25547
25556
  verificationToken: text52("verification_token"),
25548
- /** When that TXT last matched. NULL = never confirmed BY US (≠ Cloudflare's ssl_status). */
25557
+ /**
25558
+ * When ownership was last confirmed: our TXT matched, or (a host-attached domain) the host
25559
+ * accepted it. NULL = never confirmed (≠ Cloudflare's ssl_status).
25560
+ */
25549
25561
  verifiedAt: timestamp47("verified_at"),
25550
25562
  ...auditColumns
25551
25563
  },
@@ -25611,8 +25623,8 @@ var deployTargets = pgTable53(
25611
25623
  // FK → projects.id
25612
25624
  workspaceId: text54("workspace_id").notNull(),
25613
25625
  // FK → workspaces.id (RLS scope)
25614
- provider: varchar38("provider", { length: 16 }).notNull(),
25615
- // netlify | vercel | cloudflare-pages | webhook | local
25626
+ provider: varchar38("provider", { length: 32 }).notNull(),
25627
+ // netlify | vercel | cloudflare-workers | cloudflare-pages | webhook | local
25616
25628
  name: varchar38("name", { length: 120 }).notNull(),
25617
25629
  hookUrlEnc: text54("hook_url_enc"),
25618
25630
  // AES-256-GCM encrypted; NULL for artifact/git modes