@nexpress/core 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 (171) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +69 -0
  3. package/dist/audit-54XLVCWD.js +14 -0
  4. package/dist/audit-54XLVCWD.js.map +1 -0
  5. package/dist/auth.d.ts +640 -0
  6. package/dist/auth.js +94 -0
  7. package/dist/auth.js.map +1 -0
  8. package/dist/can-YLUHRJAB.js +19 -0
  9. package/dist/can-YLUHRJAB.js.map +1 -0
  10. package/dist/chunk-2G264RCD.js +68 -0
  11. package/dist/chunk-2G264RCD.js.map +1 -0
  12. package/dist/chunk-2YDGE7YX.js +92 -0
  13. package/dist/chunk-2YDGE7YX.js.map +1 -0
  14. package/dist/chunk-473S4TER.js +538 -0
  15. package/dist/chunk-473S4TER.js.map +1 -0
  16. package/dist/chunk-4ZLMEKFX.js +18 -0
  17. package/dist/chunk-4ZLMEKFX.js.map +1 -0
  18. package/dist/chunk-55FU6WED.js +179 -0
  19. package/dist/chunk-55FU6WED.js.map +1 -0
  20. package/dist/chunk-6YI5K2TI.js +1959 -0
  21. package/dist/chunk-6YI5K2TI.js.map +1 -0
  22. package/dist/chunk-BHK3AD3Q.js +41 -0
  23. package/dist/chunk-BHK3AD3Q.js.map +1 -0
  24. package/dist/chunk-CRUQBZUF.js +39 -0
  25. package/dist/chunk-CRUQBZUF.js.map +1 -0
  26. package/dist/chunk-CTSQ7BRI.js +175 -0
  27. package/dist/chunk-CTSQ7BRI.js.map +1 -0
  28. package/dist/chunk-DK2JBJH7.js +81 -0
  29. package/dist/chunk-DK2JBJH7.js.map +1 -0
  30. package/dist/chunk-DP2PREDU.js +597 -0
  31. package/dist/chunk-DP2PREDU.js.map +1 -0
  32. package/dist/chunk-EQ2Z3KMD.js +24 -0
  33. package/dist/chunk-EQ2Z3KMD.js.map +1 -0
  34. package/dist/chunk-FZ7O6DWI.js +305 -0
  35. package/dist/chunk-FZ7O6DWI.js.map +1 -0
  36. package/dist/chunk-ISLYFQWL.js +1270 -0
  37. package/dist/chunk-ISLYFQWL.js.map +1 -0
  38. package/dist/chunk-JJL74ZPK.js +68 -0
  39. package/dist/chunk-JJL74ZPK.js.map +1 -0
  40. package/dist/chunk-JKXAPSU4.js +24 -0
  41. package/dist/chunk-JKXAPSU4.js.map +1 -0
  42. package/dist/chunk-KU5M27ZC.js +24 -0
  43. package/dist/chunk-KU5M27ZC.js.map +1 -0
  44. package/dist/chunk-LSHHRDVR.js +34 -0
  45. package/dist/chunk-LSHHRDVR.js.map +1 -0
  46. package/dist/chunk-M43PGOQY.js +715 -0
  47. package/dist/chunk-M43PGOQY.js.map +1 -0
  48. package/dist/chunk-MEJAHXIO.js +150 -0
  49. package/dist/chunk-MEJAHXIO.js.map +1 -0
  50. package/dist/chunk-NUCGHWCF.js +101 -0
  51. package/dist/chunk-NUCGHWCF.js.map +1 -0
  52. package/dist/chunk-OK5HOCQI.js +845 -0
  53. package/dist/chunk-OK5HOCQI.js.map +1 -0
  54. package/dist/chunk-OROPGO65.js +13 -0
  55. package/dist/chunk-OROPGO65.js.map +1 -0
  56. package/dist/chunk-PPAS4SZR.js +176 -0
  57. package/dist/chunk-PPAS4SZR.js.map +1 -0
  58. package/dist/chunk-PPBWRKO2.js +171 -0
  59. package/dist/chunk-PPBWRKO2.js.map +1 -0
  60. package/dist/chunk-PZ5AY32C.js +10 -0
  61. package/dist/chunk-PZ5AY32C.js.map +1 -0
  62. package/dist/chunk-QO7LAQZH.js +321 -0
  63. package/dist/chunk-QO7LAQZH.js.map +1 -0
  64. package/dist/chunk-QVJ2HCAX.js +225 -0
  65. package/dist/chunk-QVJ2HCAX.js.map +1 -0
  66. package/dist/chunk-RIPHIRPP.js +68 -0
  67. package/dist/chunk-RIPHIRPP.js.map +1 -0
  68. package/dist/chunk-S27S42QY.js +134 -0
  69. package/dist/chunk-S27S42QY.js.map +1 -0
  70. package/dist/chunk-SBCVAC2Z.js +40 -0
  71. package/dist/chunk-SBCVAC2Z.js.map +1 -0
  72. package/dist/chunk-TFJ4MKPH.js +694 -0
  73. package/dist/chunk-TFJ4MKPH.js.map +1 -0
  74. package/dist/chunk-THX3SHYA.js +75 -0
  75. package/dist/chunk-THX3SHYA.js.map +1 -0
  76. package/dist/chunk-UGQSQO5B.js +222 -0
  77. package/dist/chunk-UGQSQO5B.js.map +1 -0
  78. package/dist/chunk-V2UNHGAP.js +26 -0
  79. package/dist/chunk-V2UNHGAP.js.map +1 -0
  80. package/dist/chunk-VGTPQXNQ.js +2790 -0
  81. package/dist/chunk-VGTPQXNQ.js.map +1 -0
  82. package/dist/chunk-VNIHXQ7W.js +194 -0
  83. package/dist/chunk-VNIHXQ7W.js.map +1 -0
  84. package/dist/chunk-WV272MPW.js +31 -0
  85. package/dist/chunk-WV272MPW.js.map +1 -0
  86. package/dist/chunk-X5KKBOUS.js +26 -0
  87. package/dist/chunk-X5KKBOUS.js.map +1 -0
  88. package/dist/chunk-XANPEOJC.js +17 -0
  89. package/dist/chunk-XANPEOJC.js.map +1 -0
  90. package/dist/chunk-XPVQIHAQ.js +83 -0
  91. package/dist/chunk-XPVQIHAQ.js.map +1 -0
  92. package/dist/chunk-ZCINJSS4.js +75 -0
  93. package/dist/chunk-ZCINJSS4.js.map +1 -0
  94. package/dist/community.d.ts +1425 -0
  95. package/dist/community.js +206 -0
  96. package/dist/community.js.map +1 -0
  97. package/dist/config-2GDU7PCK.js +32 -0
  98. package/dist/config-2GDU7PCK.js.map +1 -0
  99. package/dist/context-MNZ4QXPC.js +16 -0
  100. package/dist/context-MNZ4QXPC.js.map +1 -0
  101. package/dist/db-schema.d.ts +4 -0
  102. package/dist/db-schema.js +102 -0
  103. package/dist/db-schema.js.map +1 -0
  104. package/dist/db.d.ts +7 -0
  105. package/dist/db.js +117 -0
  106. package/dist/db.js.map +1 -0
  107. package/dist/digest-SY42GQSU.js +17 -0
  108. package/dist/digest-SY42GQSU.js.map +1 -0
  109. package/dist/errors-5OS3S2J3.js +22 -0
  110. package/dist/errors-5OS3S2J3.js.map +1 -0
  111. package/dist/host-OBOI4MJK.js +51 -0
  112. package/dist/host-OBOI4MJK.js.map +1 -0
  113. package/dist/i18n.d.ts +301 -0
  114. package/dist/i18n.js +68 -0
  115. package/dist/i18n.js.map +1 -0
  116. package/dist/index-B6-_vr_m.d.ts +590 -0
  117. package/dist/index-CY55LC0u.d.ts +4722 -0
  118. package/dist/index-CeiTvwbp.d.ts +168 -0
  119. package/dist/index-XwP1ET8b.d.ts +61 -0
  120. package/dist/index.d.ts +2037 -0
  121. package/dist/index.js +2205 -0
  122. package/dist/index.js.map +1 -0
  123. package/dist/job-log-VZXWQUDK.js +24 -0
  124. package/dist/job-log-VZXWQUDK.js.map +1 -0
  125. package/dist/jobs.d.ts +4 -0
  126. package/dist/jobs.js +76 -0
  127. package/dist/jobs.js.map +1 -0
  128. package/dist/logger-DqGaOU_j.d.ts +29 -0
  129. package/dist/logger-S7REWDNE.js +16 -0
  130. package/dist/logger-S7REWDNE.js.map +1 -0
  131. package/dist/media.d.ts +5 -0
  132. package/dist/media.js +41 -0
  133. package/dist/media.js.map +1 -0
  134. package/dist/mentions-2IHFVSHW.js +23 -0
  135. package/dist/mentions-2IHFVSHW.js.map +1 -0
  136. package/dist/mutes-EWAE5FZR.js +21 -0
  137. package/dist/mutes-EWAE5FZR.js.map +1 -0
  138. package/dist/notification-prefs-VPJDU7I6.js +21 -0
  139. package/dist/notification-prefs-VPJDU7I6.js.map +1 -0
  140. package/dist/observability.d.ts +156 -0
  141. package/dist/observability.js +32 -0
  142. package/dist/observability.js.map +1 -0
  143. package/dist/profanity-adapter-NU2JQSLX.js +12 -0
  144. package/dist/profanity-adapter-NU2JQSLX.js.map +1 -0
  145. package/dist/queue-XE5BC75T.js +14 -0
  146. package/dist/queue-XE5BC75T.js.map +1 -0
  147. package/dist/rate-limit.d.ts +99 -0
  148. package/dist/rate-limit.js +14 -0
  149. package/dist/rate-limit.js.map +1 -0
  150. package/dist/registry-XIXDEPVI.js +31 -0
  151. package/dist/registry-XIXDEPVI.js.map +1 -0
  152. package/dist/reputation-JRL2YQHM.js +11 -0
  153. package/dist/reputation-JRL2YQHM.js.map +1 -0
  154. package/dist/routes.d.ts +43 -0
  155. package/dist/routes.js +12 -0
  156. package/dist/routes.js.map +1 -0
  157. package/dist/scheduled-CIQM57HT.js +20 -0
  158. package/dist/scheduled-CIQM57HT.js.map +1 -0
  159. package/dist/seo.d.ts +410 -0
  160. package/dist/seo.js +44 -0
  161. package/dist/seo.js.map +1 -0
  162. package/dist/settings-FOBIESPB.js +17 -0
  163. package/dist/settings-FOBIESPB.js.map +1 -0
  164. package/dist/spam-adapter-XX3G737Z.js +12 -0
  165. package/dist/spam-adapter-XX3G737Z.js.map +1 -0
  166. package/dist/strings-VAE47B2C.js +29 -0
  167. package/dist/strings-VAE47B2C.js.map +1 -0
  168. package/dist/templates-IFVJMCJ6.js +12 -0
  169. package/dist/templates-IFVJMCJ6.js.map +1 -0
  170. package/dist/types-TlsbXS0T.d.ts +871 -0
  171. package/package.json +129 -0
@@ -0,0 +1,4722 @@
1
+ import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
2
+ import { N as NpRichTextContent, a as NpNavItem, b as NpBlockInstance } from './types-TlsbXS0T.js';
3
+ import * as drizzle_orm from 'drizzle-orm';
4
+
5
+ /**
6
+ * Member-side schema: public site visitors who can register, log in,
7
+ * comment, react, follow, etc. Deliberately separate from `np_users`
8
+ * (CMS staff) — separate cookie family, separate JWT audience, no
9
+ * `role` column on the member table itself. Scoped moderator authority
10
+ * is granted via `np_member_roles` instead. See `docs/design/community-design.md` (frozen design rationale) or `docs/community.md` (live behavior).
11
+ */
12
+ /**
13
+ * Phase 21.7 — `imported` is a member created by the WordPress
14
+ * importer to attribute archived guest comments. Imported members
15
+ * cannot log in (no usable password set) and don't fire community
16
+ * notifications when content tags them. Default themes render the
17
+ * member's handle with an `(imported)` suffix so visitors can tell
18
+ * archived discussion apart from live activity.
19
+ */
20
+ declare const npMemberStatusEnum: drizzle_orm_pg_core.PgEnum<["active", "pending", "suspended", "deleted", "imported"]>;
21
+ declare const npBanScopeEnum: drizzle_orm_pg_core.PgEnum<["site", "category", "collection"]>;
22
+ declare const npBanKindEnum: drizzle_orm_pg_core.PgEnum<["temporary", "permanent"]>;
23
+ /**
24
+ * Comment lifecycle status.
25
+ * - `visible` — public.
26
+ * - `pending` — awaiting moderation. Used by the spam / profanity
27
+ * adapters when a verdict comes back as `flag` (9.7n).
28
+ * - `hidden` — taken down by a mod; row stays for restore + audit.
29
+ * - `deleted` — soft-delete by the author or post-cascade.
30
+ */
31
+ declare const npCommentStatusEnum: drizzle_orm_pg_core.PgEnum<["visible", "pending", "hidden", "deleted"]>;
32
+ /**
33
+ * Type column for `np_member_roles.scope_type`. Polymorphic across the
34
+ * community surface so the same grants table covers site-wide,
35
+ * per-category, per-collection, and per-thread roles.
36
+ */
37
+ declare const npMemberRoleScopeEnum: drizzle_orm_pg_core.PgEnum<["site", "category", "collection", "thread"]>;
38
+ declare const npMembers: drizzle_orm_pg_core.PgTableWithColumns<{
39
+ name: "np_members";
40
+ schema: undefined;
41
+ columns: {
42
+ id: drizzle_orm_pg_core.PgColumn<{
43
+ name: "id";
44
+ tableName: "np_members";
45
+ dataType: "string";
46
+ columnType: "PgUUID";
47
+ data: string;
48
+ driverParam: string;
49
+ notNull: true;
50
+ hasDefault: true;
51
+ isPrimaryKey: true;
52
+ isAutoincrement: false;
53
+ hasRuntimeDefault: false;
54
+ enumValues: undefined;
55
+ baseColumn: never;
56
+ identity: undefined;
57
+ generated: undefined;
58
+ }, {}, {}>;
59
+ handle: drizzle_orm_pg_core.PgColumn<{
60
+ name: "handle";
61
+ tableName: "np_members";
62
+ dataType: "string";
63
+ columnType: "PgText";
64
+ data: string;
65
+ driverParam: string;
66
+ notNull: true;
67
+ hasDefault: false;
68
+ isPrimaryKey: false;
69
+ isAutoincrement: false;
70
+ hasRuntimeDefault: false;
71
+ enumValues: [string, ...string[]];
72
+ baseColumn: never;
73
+ identity: undefined;
74
+ generated: undefined;
75
+ }, {}, {}>;
76
+ email: drizzle_orm_pg_core.PgColumn<{
77
+ name: "email";
78
+ tableName: "np_members";
79
+ dataType: "string";
80
+ columnType: "PgText";
81
+ data: string;
82
+ driverParam: string;
83
+ notNull: true;
84
+ hasDefault: false;
85
+ isPrimaryKey: false;
86
+ isAutoincrement: false;
87
+ hasRuntimeDefault: false;
88
+ enumValues: [string, ...string[]];
89
+ baseColumn: never;
90
+ identity: undefined;
91
+ generated: undefined;
92
+ }, {}, {}>;
93
+ emailVerified: drizzle_orm_pg_core.PgColumn<{
94
+ name: "email_verified";
95
+ tableName: "np_members";
96
+ dataType: "boolean";
97
+ columnType: "PgBoolean";
98
+ data: boolean;
99
+ driverParam: boolean;
100
+ notNull: true;
101
+ hasDefault: true;
102
+ isPrimaryKey: false;
103
+ isAutoincrement: false;
104
+ hasRuntimeDefault: false;
105
+ enumValues: undefined;
106
+ baseColumn: never;
107
+ identity: undefined;
108
+ generated: undefined;
109
+ }, {}, {}>;
110
+ password: drizzle_orm_pg_core.PgColumn<{
111
+ name: "password";
112
+ tableName: "np_members";
113
+ dataType: "string";
114
+ columnType: "PgText";
115
+ data: string;
116
+ driverParam: string;
117
+ notNull: false;
118
+ hasDefault: false;
119
+ isPrimaryKey: false;
120
+ isAutoincrement: false;
121
+ hasRuntimeDefault: false;
122
+ enumValues: [string, ...string[]];
123
+ baseColumn: never;
124
+ identity: undefined;
125
+ generated: undefined;
126
+ }, {}, {}>;
127
+ displayName: drizzle_orm_pg_core.PgColumn<{
128
+ name: "display_name";
129
+ tableName: "np_members";
130
+ dataType: "string";
131
+ columnType: "PgText";
132
+ data: string;
133
+ driverParam: string;
134
+ notNull: true;
135
+ hasDefault: false;
136
+ isPrimaryKey: false;
137
+ isAutoincrement: false;
138
+ hasRuntimeDefault: false;
139
+ enumValues: [string, ...string[]];
140
+ baseColumn: never;
141
+ identity: undefined;
142
+ generated: undefined;
143
+ }, {}, {}>;
144
+ avatar: drizzle_orm_pg_core.PgColumn<{
145
+ name: "avatar";
146
+ tableName: "np_members";
147
+ dataType: "string";
148
+ columnType: "PgUUID";
149
+ data: string;
150
+ driverParam: string;
151
+ notNull: false;
152
+ hasDefault: false;
153
+ isPrimaryKey: false;
154
+ isAutoincrement: false;
155
+ hasRuntimeDefault: false;
156
+ enumValues: undefined;
157
+ baseColumn: never;
158
+ identity: undefined;
159
+ generated: undefined;
160
+ }, {}, {}>;
161
+ bio: drizzle_orm_pg_core.PgColumn<{
162
+ name: "bio";
163
+ tableName: "np_members";
164
+ dataType: "string";
165
+ columnType: "PgText";
166
+ data: string;
167
+ driverParam: string;
168
+ notNull: false;
169
+ hasDefault: false;
170
+ isPrimaryKey: false;
171
+ isAutoincrement: false;
172
+ hasRuntimeDefault: false;
173
+ enumValues: [string, ...string[]];
174
+ baseColumn: never;
175
+ identity: undefined;
176
+ generated: undefined;
177
+ }, {}, {}>;
178
+ status: drizzle_orm_pg_core.PgColumn<{
179
+ name: "status";
180
+ tableName: "np_members";
181
+ dataType: "string";
182
+ columnType: "PgEnumColumn";
183
+ data: "pending" | "active" | "suspended" | "deleted" | "imported";
184
+ driverParam: string;
185
+ notNull: true;
186
+ hasDefault: true;
187
+ isPrimaryKey: false;
188
+ isAutoincrement: false;
189
+ hasRuntimeDefault: false;
190
+ enumValues: ["active", "pending", "suspended", "deleted", "imported"];
191
+ baseColumn: never;
192
+ identity: undefined;
193
+ generated: undefined;
194
+ }, {}, {}>;
195
+ reputation: drizzle_orm_pg_core.PgColumn<{
196
+ name: "reputation";
197
+ tableName: "np_members";
198
+ dataType: "number";
199
+ columnType: "PgInteger";
200
+ data: number;
201
+ driverParam: string | number;
202
+ notNull: true;
203
+ hasDefault: true;
204
+ isPrimaryKey: false;
205
+ isAutoincrement: false;
206
+ hasRuntimeDefault: false;
207
+ enumValues: undefined;
208
+ baseColumn: never;
209
+ identity: undefined;
210
+ generated: undefined;
211
+ }, {}, {}>;
212
+ loginAttempts: drizzle_orm_pg_core.PgColumn<{
213
+ name: "login_attempts";
214
+ tableName: "np_members";
215
+ dataType: "number";
216
+ columnType: "PgInteger";
217
+ data: number;
218
+ driverParam: string | number;
219
+ notNull: true;
220
+ hasDefault: true;
221
+ isPrimaryKey: false;
222
+ isAutoincrement: false;
223
+ hasRuntimeDefault: false;
224
+ enumValues: undefined;
225
+ baseColumn: never;
226
+ identity: undefined;
227
+ generated: undefined;
228
+ }, {}, {}>;
229
+ lockUntil: drizzle_orm_pg_core.PgColumn<{
230
+ name: "lock_until";
231
+ tableName: "np_members";
232
+ dataType: "date";
233
+ columnType: "PgTimestamp";
234
+ data: Date;
235
+ driverParam: string;
236
+ notNull: false;
237
+ hasDefault: false;
238
+ isPrimaryKey: false;
239
+ isAutoincrement: false;
240
+ hasRuntimeDefault: false;
241
+ enumValues: undefined;
242
+ baseColumn: never;
243
+ identity: undefined;
244
+ generated: undefined;
245
+ }, {}, {}>;
246
+ tokenVersion: drizzle_orm_pg_core.PgColumn<{
247
+ name: "token_version";
248
+ tableName: "np_members";
249
+ dataType: "number";
250
+ columnType: "PgInteger";
251
+ data: number;
252
+ driverParam: string | number;
253
+ notNull: true;
254
+ hasDefault: true;
255
+ isPrimaryKey: false;
256
+ isAutoincrement: false;
257
+ hasRuntimeDefault: false;
258
+ enumValues: undefined;
259
+ baseColumn: never;
260
+ identity: undefined;
261
+ generated: undefined;
262
+ }, {}, {}>;
263
+ passwordResetTokenHash: drizzle_orm_pg_core.PgColumn<{
264
+ name: "password_reset_token_hash";
265
+ tableName: "np_members";
266
+ dataType: "string";
267
+ columnType: "PgText";
268
+ data: string;
269
+ driverParam: string;
270
+ notNull: false;
271
+ hasDefault: false;
272
+ isPrimaryKey: false;
273
+ isAutoincrement: false;
274
+ hasRuntimeDefault: false;
275
+ enumValues: [string, ...string[]];
276
+ baseColumn: never;
277
+ identity: undefined;
278
+ generated: undefined;
279
+ }, {}, {}>;
280
+ passwordResetExpiresAt: drizzle_orm_pg_core.PgColumn<{
281
+ name: "password_reset_expires_at";
282
+ tableName: "np_members";
283
+ dataType: "date";
284
+ columnType: "PgTimestamp";
285
+ data: Date;
286
+ driverParam: string;
287
+ notNull: false;
288
+ hasDefault: false;
289
+ isPrimaryKey: false;
290
+ isAutoincrement: false;
291
+ hasRuntimeDefault: false;
292
+ enumValues: undefined;
293
+ baseColumn: never;
294
+ identity: undefined;
295
+ generated: undefined;
296
+ }, {}, {}>;
297
+ emailVerifyTokenHash: drizzle_orm_pg_core.PgColumn<{
298
+ name: "email_verify_token_hash";
299
+ tableName: "np_members";
300
+ dataType: "string";
301
+ columnType: "PgText";
302
+ data: string;
303
+ driverParam: string;
304
+ notNull: false;
305
+ hasDefault: false;
306
+ isPrimaryKey: false;
307
+ isAutoincrement: false;
308
+ hasRuntimeDefault: false;
309
+ enumValues: [string, ...string[]];
310
+ baseColumn: never;
311
+ identity: undefined;
312
+ generated: undefined;
313
+ }, {}, {}>;
314
+ emailVerifyExpiresAt: drizzle_orm_pg_core.PgColumn<{
315
+ name: "email_verify_expires_at";
316
+ tableName: "np_members";
317
+ dataType: "date";
318
+ columnType: "PgTimestamp";
319
+ data: Date;
320
+ driverParam: string;
321
+ notNull: false;
322
+ hasDefault: false;
323
+ isPrimaryKey: false;
324
+ isAutoincrement: false;
325
+ hasRuntimeDefault: false;
326
+ enumValues: undefined;
327
+ baseColumn: never;
328
+ identity: undefined;
329
+ generated: undefined;
330
+ }, {}, {}>;
331
+ meta: drizzle_orm_pg_core.PgColumn<{
332
+ name: "meta";
333
+ tableName: "np_members";
334
+ dataType: "json";
335
+ columnType: "PgJsonb";
336
+ data: Record<string, unknown>;
337
+ driverParam: unknown;
338
+ notNull: true;
339
+ hasDefault: true;
340
+ isPrimaryKey: false;
341
+ isAutoincrement: false;
342
+ hasRuntimeDefault: false;
343
+ enumValues: undefined;
344
+ baseColumn: never;
345
+ identity: undefined;
346
+ generated: undefined;
347
+ }, {}, {
348
+ $type: Record<string, unknown>;
349
+ }>;
350
+ notificationPrefs: drizzle_orm_pg_core.PgColumn<{
351
+ name: "notification_prefs";
352
+ tableName: "np_members";
353
+ dataType: "json";
354
+ columnType: "PgJsonb";
355
+ data: Record<string, unknown>;
356
+ driverParam: unknown;
357
+ notNull: true;
358
+ hasDefault: true;
359
+ isPrimaryKey: false;
360
+ isAutoincrement: false;
361
+ hasRuntimeDefault: false;
362
+ enumValues: undefined;
363
+ baseColumn: never;
364
+ identity: undefined;
365
+ generated: undefined;
366
+ }, {}, {
367
+ $type: Record<string, unknown>;
368
+ }>;
369
+ createdAt: drizzle_orm_pg_core.PgColumn<{
370
+ name: "created_at";
371
+ tableName: "np_members";
372
+ dataType: "date";
373
+ columnType: "PgTimestamp";
374
+ data: Date;
375
+ driverParam: string;
376
+ notNull: true;
377
+ hasDefault: true;
378
+ isPrimaryKey: false;
379
+ isAutoincrement: false;
380
+ hasRuntimeDefault: false;
381
+ enumValues: undefined;
382
+ baseColumn: never;
383
+ identity: undefined;
384
+ generated: undefined;
385
+ }, {}, {}>;
386
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
387
+ name: "updated_at";
388
+ tableName: "np_members";
389
+ dataType: "date";
390
+ columnType: "PgTimestamp";
391
+ data: Date;
392
+ driverParam: string;
393
+ notNull: true;
394
+ hasDefault: true;
395
+ isPrimaryKey: false;
396
+ isAutoincrement: false;
397
+ hasRuntimeDefault: false;
398
+ enumValues: undefined;
399
+ baseColumn: never;
400
+ identity: undefined;
401
+ generated: undefined;
402
+ }, {}, {}>;
403
+ };
404
+ dialect: "pg";
405
+ }>;
406
+ declare const npMemberSessions: drizzle_orm_pg_core.PgTableWithColumns<{
407
+ name: "np_member_sessions";
408
+ schema: undefined;
409
+ columns: {
410
+ id: drizzle_orm_pg_core.PgColumn<{
411
+ name: "id";
412
+ tableName: "np_member_sessions";
413
+ dataType: "string";
414
+ columnType: "PgUUID";
415
+ data: string;
416
+ driverParam: string;
417
+ notNull: true;
418
+ hasDefault: true;
419
+ isPrimaryKey: true;
420
+ isAutoincrement: false;
421
+ hasRuntimeDefault: false;
422
+ enumValues: undefined;
423
+ baseColumn: never;
424
+ identity: undefined;
425
+ generated: undefined;
426
+ }, {}, {}>;
427
+ memberId: drizzle_orm_pg_core.PgColumn<{
428
+ name: "member_id";
429
+ tableName: "np_member_sessions";
430
+ dataType: "string";
431
+ columnType: "PgUUID";
432
+ data: string;
433
+ driverParam: string;
434
+ notNull: true;
435
+ hasDefault: false;
436
+ isPrimaryKey: false;
437
+ isAutoincrement: false;
438
+ hasRuntimeDefault: false;
439
+ enumValues: undefined;
440
+ baseColumn: never;
441
+ identity: undefined;
442
+ generated: undefined;
443
+ }, {}, {}>;
444
+ tokenHash: drizzle_orm_pg_core.PgColumn<{
445
+ name: "token_hash";
446
+ tableName: "np_member_sessions";
447
+ dataType: "string";
448
+ columnType: "PgText";
449
+ data: string;
450
+ driverParam: string;
451
+ notNull: true;
452
+ hasDefault: false;
453
+ isPrimaryKey: false;
454
+ isAutoincrement: false;
455
+ hasRuntimeDefault: false;
456
+ enumValues: [string, ...string[]];
457
+ baseColumn: never;
458
+ identity: undefined;
459
+ generated: undefined;
460
+ }, {}, {}>;
461
+ userAgent: drizzle_orm_pg_core.PgColumn<{
462
+ name: "user_agent";
463
+ tableName: "np_member_sessions";
464
+ dataType: "string";
465
+ columnType: "PgText";
466
+ data: string;
467
+ driverParam: string;
468
+ notNull: false;
469
+ hasDefault: false;
470
+ isPrimaryKey: false;
471
+ isAutoincrement: false;
472
+ hasRuntimeDefault: false;
473
+ enumValues: [string, ...string[]];
474
+ baseColumn: never;
475
+ identity: undefined;
476
+ generated: undefined;
477
+ }, {}, {}>;
478
+ ip: drizzle_orm_pg_core.PgColumn<{
479
+ name: "ip";
480
+ tableName: "np_member_sessions";
481
+ dataType: "string";
482
+ columnType: "PgText";
483
+ data: string;
484
+ driverParam: string;
485
+ notNull: false;
486
+ hasDefault: false;
487
+ isPrimaryKey: false;
488
+ isAutoincrement: false;
489
+ hasRuntimeDefault: false;
490
+ enumValues: [string, ...string[]];
491
+ baseColumn: never;
492
+ identity: undefined;
493
+ generated: undefined;
494
+ }, {}, {}>;
495
+ expiresAt: drizzle_orm_pg_core.PgColumn<{
496
+ name: "expires_at";
497
+ tableName: "np_member_sessions";
498
+ dataType: "date";
499
+ columnType: "PgTimestamp";
500
+ data: Date;
501
+ driverParam: string;
502
+ notNull: true;
503
+ hasDefault: false;
504
+ isPrimaryKey: false;
505
+ isAutoincrement: false;
506
+ hasRuntimeDefault: false;
507
+ enumValues: undefined;
508
+ baseColumn: never;
509
+ identity: undefined;
510
+ generated: undefined;
511
+ }, {}, {}>;
512
+ createdAt: drizzle_orm_pg_core.PgColumn<{
513
+ name: "created_at";
514
+ tableName: "np_member_sessions";
515
+ dataType: "date";
516
+ columnType: "PgTimestamp";
517
+ data: Date;
518
+ driverParam: string;
519
+ notNull: true;
520
+ hasDefault: true;
521
+ isPrimaryKey: false;
522
+ isAutoincrement: false;
523
+ hasRuntimeDefault: false;
524
+ enumValues: undefined;
525
+ baseColumn: never;
526
+ identity: undefined;
527
+ generated: undefined;
528
+ }, {}, {}>;
529
+ };
530
+ dialect: "pg";
531
+ }>;
532
+ /**
533
+ * Per-member OAuth identity links. Mirrors `np_user_oauth_identities`
534
+ * for the staff side (Phase 9.6a) but resolves to `np_members`
535
+ * instead of `np_users`. The first row is created either when an
536
+ * OAuth callback finds an existing member with the same email, or
537
+ * when a brand-new member is auto-provisioned from the profile
538
+ * (status=`active`, no password).
539
+ *
540
+ * `subject` is the provider's stable user id (GitHub `id`, Google
541
+ * `sub`, etc.) — naming kept from the 9.1 placeholder schema for
542
+ * backward compat. The staff equivalent calls the same column
543
+ * `provider_user_id`; both serve the same role.
544
+ */
545
+ declare const npMemberIdentities: drizzle_orm_pg_core.PgTableWithColumns<{
546
+ name: "np_member_identities";
547
+ schema: undefined;
548
+ columns: {
549
+ id: drizzle_orm_pg_core.PgColumn<{
550
+ name: "id";
551
+ tableName: "np_member_identities";
552
+ dataType: "string";
553
+ columnType: "PgUUID";
554
+ data: string;
555
+ driverParam: string;
556
+ notNull: true;
557
+ hasDefault: true;
558
+ isPrimaryKey: true;
559
+ isAutoincrement: false;
560
+ hasRuntimeDefault: false;
561
+ enumValues: undefined;
562
+ baseColumn: never;
563
+ identity: undefined;
564
+ generated: undefined;
565
+ }, {}, {}>;
566
+ memberId: drizzle_orm_pg_core.PgColumn<{
567
+ name: "member_id";
568
+ tableName: "np_member_identities";
569
+ dataType: "string";
570
+ columnType: "PgUUID";
571
+ data: string;
572
+ driverParam: string;
573
+ notNull: true;
574
+ hasDefault: false;
575
+ isPrimaryKey: false;
576
+ isAutoincrement: false;
577
+ hasRuntimeDefault: false;
578
+ enumValues: undefined;
579
+ baseColumn: never;
580
+ identity: undefined;
581
+ generated: undefined;
582
+ }, {}, {}>;
583
+ provider: drizzle_orm_pg_core.PgColumn<{
584
+ name: "provider";
585
+ tableName: "np_member_identities";
586
+ dataType: "string";
587
+ columnType: "PgText";
588
+ data: string;
589
+ driverParam: string;
590
+ notNull: true;
591
+ hasDefault: false;
592
+ isPrimaryKey: false;
593
+ isAutoincrement: false;
594
+ hasRuntimeDefault: false;
595
+ enumValues: [string, ...string[]];
596
+ baseColumn: never;
597
+ identity: undefined;
598
+ generated: undefined;
599
+ }, {}, {}>;
600
+ subject: drizzle_orm_pg_core.PgColumn<{
601
+ name: "subject";
602
+ tableName: "np_member_identities";
603
+ dataType: "string";
604
+ columnType: "PgText";
605
+ data: string;
606
+ driverParam: string;
607
+ notNull: true;
608
+ hasDefault: false;
609
+ isPrimaryKey: false;
610
+ isAutoincrement: false;
611
+ hasRuntimeDefault: false;
612
+ enumValues: [string, ...string[]];
613
+ baseColumn: never;
614
+ identity: undefined;
615
+ generated: undefined;
616
+ }, {}, {}>;
617
+ email: drizzle_orm_pg_core.PgColumn<{
618
+ name: "email";
619
+ tableName: "np_member_identities";
620
+ dataType: "string";
621
+ columnType: "PgText";
622
+ data: string;
623
+ driverParam: string;
624
+ notNull: false;
625
+ hasDefault: false;
626
+ isPrimaryKey: false;
627
+ isAutoincrement: false;
628
+ hasRuntimeDefault: false;
629
+ enumValues: [string, ...string[]];
630
+ baseColumn: never;
631
+ identity: undefined;
632
+ generated: undefined;
633
+ }, {}, {}>;
634
+ metadata: drizzle_orm_pg_core.PgColumn<{
635
+ name: "metadata";
636
+ tableName: "np_member_identities";
637
+ dataType: "json";
638
+ columnType: "PgJsonb";
639
+ data: Record<string, unknown>;
640
+ driverParam: unknown;
641
+ notNull: true;
642
+ hasDefault: true;
643
+ isPrimaryKey: false;
644
+ isAutoincrement: false;
645
+ hasRuntimeDefault: false;
646
+ enumValues: undefined;
647
+ baseColumn: never;
648
+ identity: undefined;
649
+ generated: undefined;
650
+ }, {}, {
651
+ $type: Record<string, unknown>;
652
+ }>;
653
+ createdAt: drizzle_orm_pg_core.PgColumn<{
654
+ name: "created_at";
655
+ tableName: "np_member_identities";
656
+ dataType: "date";
657
+ columnType: "PgTimestamp";
658
+ data: Date;
659
+ driverParam: string;
660
+ notNull: true;
661
+ hasDefault: true;
662
+ isPrimaryKey: false;
663
+ isAutoincrement: false;
664
+ hasRuntimeDefault: false;
665
+ enumValues: undefined;
666
+ baseColumn: never;
667
+ identity: undefined;
668
+ generated: undefined;
669
+ }, {}, {}>;
670
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
671
+ name: "updated_at";
672
+ tableName: "np_member_identities";
673
+ dataType: "date";
674
+ columnType: "PgTimestamp";
675
+ data: Date;
676
+ driverParam: string;
677
+ notNull: true;
678
+ hasDefault: true;
679
+ isPrimaryKey: false;
680
+ isAutoincrement: false;
681
+ hasRuntimeDefault: false;
682
+ enumValues: undefined;
683
+ baseColumn: never;
684
+ identity: undefined;
685
+ generated: undefined;
686
+ }, {}, {}>;
687
+ };
688
+ dialect: "pg";
689
+ }>;
690
+ /**
691
+ * Polymorphic role grants. A member with a row here can act as that
692
+ * role within the indicated scope. `scope_id` is null when
693
+ * `scope_type='site'`. The `(member, role, scope_type, scope_id)`
694
+ * uniqueness keeps grants idempotent; `expires_at` is honored by
695
+ * `memberCan()` so time-boxed promotions are possible.
696
+ */
697
+ declare const npMemberRoles: drizzle_orm_pg_core.PgTableWithColumns<{
698
+ name: "np_member_roles";
699
+ schema: undefined;
700
+ columns: {
701
+ id: drizzle_orm_pg_core.PgColumn<{
702
+ name: "id";
703
+ tableName: "np_member_roles";
704
+ dataType: "string";
705
+ columnType: "PgUUID";
706
+ data: string;
707
+ driverParam: string;
708
+ notNull: true;
709
+ hasDefault: true;
710
+ isPrimaryKey: true;
711
+ isAutoincrement: false;
712
+ hasRuntimeDefault: false;
713
+ enumValues: undefined;
714
+ baseColumn: never;
715
+ identity: undefined;
716
+ generated: undefined;
717
+ }, {}, {}>;
718
+ memberId: drizzle_orm_pg_core.PgColumn<{
719
+ name: "member_id";
720
+ tableName: "np_member_roles";
721
+ dataType: "string";
722
+ columnType: "PgUUID";
723
+ data: string;
724
+ driverParam: string;
725
+ notNull: true;
726
+ hasDefault: false;
727
+ isPrimaryKey: false;
728
+ isAutoincrement: false;
729
+ hasRuntimeDefault: false;
730
+ enumValues: undefined;
731
+ baseColumn: never;
732
+ identity: undefined;
733
+ generated: undefined;
734
+ }, {}, {}>;
735
+ role: drizzle_orm_pg_core.PgColumn<{
736
+ name: "role";
737
+ tableName: "np_member_roles";
738
+ dataType: "string";
739
+ columnType: "PgText";
740
+ data: string;
741
+ driverParam: string;
742
+ notNull: true;
743
+ hasDefault: false;
744
+ isPrimaryKey: false;
745
+ isAutoincrement: false;
746
+ hasRuntimeDefault: false;
747
+ enumValues: [string, ...string[]];
748
+ baseColumn: never;
749
+ identity: undefined;
750
+ generated: undefined;
751
+ }, {}, {}>;
752
+ scopeType: drizzle_orm_pg_core.PgColumn<{
753
+ name: "scope_type";
754
+ tableName: "np_member_roles";
755
+ dataType: "string";
756
+ columnType: "PgEnumColumn";
757
+ data: "site" | "collection" | "category" | "thread";
758
+ driverParam: string;
759
+ notNull: true;
760
+ hasDefault: false;
761
+ isPrimaryKey: false;
762
+ isAutoincrement: false;
763
+ hasRuntimeDefault: false;
764
+ enumValues: ["site", "category", "collection", "thread"];
765
+ baseColumn: never;
766
+ identity: undefined;
767
+ generated: undefined;
768
+ }, {}, {}>;
769
+ scopeId: drizzle_orm_pg_core.PgColumn<{
770
+ name: "scope_id";
771
+ tableName: "np_member_roles";
772
+ dataType: "string";
773
+ columnType: "PgText";
774
+ data: string;
775
+ driverParam: string;
776
+ notNull: false;
777
+ hasDefault: false;
778
+ isPrimaryKey: false;
779
+ isAutoincrement: false;
780
+ hasRuntimeDefault: false;
781
+ enumValues: [string, ...string[]];
782
+ baseColumn: never;
783
+ identity: undefined;
784
+ generated: undefined;
785
+ }, {}, {}>;
786
+ siteId: drizzle_orm_pg_core.PgColumn<{
787
+ name: "site_id";
788
+ tableName: "np_member_roles";
789
+ dataType: "string";
790
+ columnType: "PgText";
791
+ data: string;
792
+ driverParam: string;
793
+ notNull: true;
794
+ hasDefault: true;
795
+ isPrimaryKey: false;
796
+ isAutoincrement: false;
797
+ hasRuntimeDefault: false;
798
+ enumValues: [string, ...string[]];
799
+ baseColumn: never;
800
+ identity: undefined;
801
+ generated: undefined;
802
+ }, {}, {}>;
803
+ grantedBy: drizzle_orm_pg_core.PgColumn<{
804
+ name: "granted_by";
805
+ tableName: "np_member_roles";
806
+ dataType: "string";
807
+ columnType: "PgUUID";
808
+ data: string;
809
+ driverParam: string;
810
+ notNull: false;
811
+ hasDefault: false;
812
+ isPrimaryKey: false;
813
+ isAutoincrement: false;
814
+ hasRuntimeDefault: false;
815
+ enumValues: undefined;
816
+ baseColumn: never;
817
+ identity: undefined;
818
+ generated: undefined;
819
+ }, {}, {}>;
820
+ grantedAt: drizzle_orm_pg_core.PgColumn<{
821
+ name: "granted_at";
822
+ tableName: "np_member_roles";
823
+ dataType: "date";
824
+ columnType: "PgTimestamp";
825
+ data: Date;
826
+ driverParam: string;
827
+ notNull: true;
828
+ hasDefault: true;
829
+ isPrimaryKey: false;
830
+ isAutoincrement: false;
831
+ hasRuntimeDefault: false;
832
+ enumValues: undefined;
833
+ baseColumn: never;
834
+ identity: undefined;
835
+ generated: undefined;
836
+ }, {}, {}>;
837
+ expiresAt: drizzle_orm_pg_core.PgColumn<{
838
+ name: "expires_at";
839
+ tableName: "np_member_roles";
840
+ dataType: "date";
841
+ columnType: "PgTimestamp";
842
+ data: Date;
843
+ driverParam: string;
844
+ notNull: false;
845
+ hasDefault: false;
846
+ isPrimaryKey: false;
847
+ isAutoincrement: false;
848
+ hasRuntimeDefault: false;
849
+ enumValues: undefined;
850
+ baseColumn: never;
851
+ identity: undefined;
852
+ generated: undefined;
853
+ }, {}, {}>;
854
+ };
855
+ dialect: "pg";
856
+ }>;
857
+ /**
858
+ * Member bans. Scoped: a category-mod can ban a member from their
859
+ * category only; a `community-mod` or staff `moderator` can issue
860
+ * site-wide bans. `memberCan()` short-circuits to deny when an active
861
+ * (unexpired) ban matches the action's target scope chain.
862
+ *
863
+ * `byUserId` records the staff issuer; `byMemberId` records when a
864
+ * member-mod (e.g. category-mod) issued the ban. Exactly one is set.
865
+ */
866
+ /**
867
+ * Polymorphic comment table — `target_type` is the collection slug
868
+ * (e.g. `"posts"`), `target_id` the document id within that
869
+ * collection. One row per comment regardless of which collection it
870
+ * lives under, indexed for the typical "list comments under doc X"
871
+ * read.
872
+ *
873
+ * Bodies are stored twice: `body_md` is the canonical user input,
874
+ * `body_html` is the rendered + sanitised HTML the renderer ships
875
+ * to browsers. We re-render on edit; we never trust the html column
876
+ * to be HTML-safe based on incoming requests — see
877
+ * `community/markdown.ts` for the renderer.
878
+ */
879
+ declare const npComments: drizzle_orm_pg_core.PgTableWithColumns<{
880
+ name: "np_comments";
881
+ schema: undefined;
882
+ columns: {
883
+ id: drizzle_orm_pg_core.PgColumn<{
884
+ name: "id";
885
+ tableName: "np_comments";
886
+ dataType: "string";
887
+ columnType: "PgUUID";
888
+ data: string;
889
+ driverParam: string;
890
+ notNull: true;
891
+ hasDefault: true;
892
+ isPrimaryKey: true;
893
+ isAutoincrement: false;
894
+ hasRuntimeDefault: false;
895
+ enumValues: undefined;
896
+ baseColumn: never;
897
+ identity: undefined;
898
+ generated: undefined;
899
+ }, {}, {}>;
900
+ targetType: drizzle_orm_pg_core.PgColumn<{
901
+ name: "target_type";
902
+ tableName: "np_comments";
903
+ dataType: "string";
904
+ columnType: "PgText";
905
+ data: string;
906
+ driverParam: string;
907
+ notNull: true;
908
+ hasDefault: false;
909
+ isPrimaryKey: false;
910
+ isAutoincrement: false;
911
+ hasRuntimeDefault: false;
912
+ enumValues: [string, ...string[]];
913
+ baseColumn: never;
914
+ identity: undefined;
915
+ generated: undefined;
916
+ }, {}, {}>;
917
+ targetId: drizzle_orm_pg_core.PgColumn<{
918
+ name: "target_id";
919
+ tableName: "np_comments";
920
+ dataType: "string";
921
+ columnType: "PgUUID";
922
+ data: string;
923
+ driverParam: string;
924
+ notNull: true;
925
+ hasDefault: false;
926
+ isPrimaryKey: false;
927
+ isAutoincrement: false;
928
+ hasRuntimeDefault: false;
929
+ enumValues: undefined;
930
+ baseColumn: never;
931
+ identity: undefined;
932
+ generated: undefined;
933
+ }, {}, {}>;
934
+ parentId: drizzle_orm_pg_core.PgColumn<{
935
+ name: "parent_id";
936
+ tableName: "np_comments";
937
+ dataType: "string";
938
+ columnType: "PgUUID";
939
+ data: string;
940
+ driverParam: string;
941
+ notNull: false;
942
+ hasDefault: false;
943
+ isPrimaryKey: false;
944
+ isAutoincrement: false;
945
+ hasRuntimeDefault: false;
946
+ enumValues: undefined;
947
+ baseColumn: never;
948
+ identity: undefined;
949
+ generated: undefined;
950
+ }, {}, {}>;
951
+ memberId: drizzle_orm_pg_core.PgColumn<{
952
+ name: "member_id";
953
+ tableName: "np_comments";
954
+ dataType: "string";
955
+ columnType: "PgUUID";
956
+ data: string;
957
+ driverParam: string;
958
+ notNull: true;
959
+ hasDefault: false;
960
+ isPrimaryKey: false;
961
+ isAutoincrement: false;
962
+ hasRuntimeDefault: false;
963
+ enumValues: undefined;
964
+ baseColumn: never;
965
+ identity: undefined;
966
+ generated: undefined;
967
+ }, {}, {}>;
968
+ bodyMd: drizzle_orm_pg_core.PgColumn<{
969
+ name: "body_md";
970
+ tableName: "np_comments";
971
+ dataType: "string";
972
+ columnType: "PgText";
973
+ data: string;
974
+ driverParam: string;
975
+ notNull: true;
976
+ hasDefault: false;
977
+ isPrimaryKey: false;
978
+ isAutoincrement: false;
979
+ hasRuntimeDefault: false;
980
+ enumValues: [string, ...string[]];
981
+ baseColumn: never;
982
+ identity: undefined;
983
+ generated: undefined;
984
+ }, {}, {}>;
985
+ bodyHtml: drizzle_orm_pg_core.PgColumn<{
986
+ name: "body_html";
987
+ tableName: "np_comments";
988
+ dataType: "string";
989
+ columnType: "PgText";
990
+ data: string;
991
+ driverParam: string;
992
+ notNull: true;
993
+ hasDefault: false;
994
+ isPrimaryKey: false;
995
+ isAutoincrement: false;
996
+ hasRuntimeDefault: false;
997
+ enumValues: [string, ...string[]];
998
+ baseColumn: never;
999
+ identity: undefined;
1000
+ generated: undefined;
1001
+ }, {}, {}>;
1002
+ status: drizzle_orm_pg_core.PgColumn<{
1003
+ name: "status";
1004
+ tableName: "np_comments";
1005
+ dataType: "string";
1006
+ columnType: "PgEnumColumn";
1007
+ data: "pending" | "hidden" | "deleted" | "visible";
1008
+ driverParam: string;
1009
+ notNull: true;
1010
+ hasDefault: true;
1011
+ isPrimaryKey: false;
1012
+ isAutoincrement: false;
1013
+ hasRuntimeDefault: false;
1014
+ enumValues: ["visible", "pending", "hidden", "deleted"];
1015
+ baseColumn: never;
1016
+ identity: undefined;
1017
+ generated: undefined;
1018
+ }, {}, {}>;
1019
+ hiddenByUserId: drizzle_orm_pg_core.PgColumn<{
1020
+ name: "hidden_by_user_id";
1021
+ tableName: "np_comments";
1022
+ dataType: "string";
1023
+ columnType: "PgUUID";
1024
+ data: string;
1025
+ driverParam: string;
1026
+ notNull: false;
1027
+ hasDefault: false;
1028
+ isPrimaryKey: false;
1029
+ isAutoincrement: false;
1030
+ hasRuntimeDefault: false;
1031
+ enumValues: undefined;
1032
+ baseColumn: never;
1033
+ identity: undefined;
1034
+ generated: undefined;
1035
+ }, {}, {}>;
1036
+ hiddenByMemberId: drizzle_orm_pg_core.PgColumn<{
1037
+ name: "hidden_by_member_id";
1038
+ tableName: "np_comments";
1039
+ dataType: "string";
1040
+ columnType: "PgUUID";
1041
+ data: string;
1042
+ driverParam: string;
1043
+ notNull: false;
1044
+ hasDefault: false;
1045
+ isPrimaryKey: false;
1046
+ isAutoincrement: false;
1047
+ hasRuntimeDefault: false;
1048
+ enumValues: undefined;
1049
+ baseColumn: never;
1050
+ identity: undefined;
1051
+ generated: undefined;
1052
+ }, {}, {}>;
1053
+ hiddenReason: drizzle_orm_pg_core.PgColumn<{
1054
+ name: "hidden_reason";
1055
+ tableName: "np_comments";
1056
+ dataType: "string";
1057
+ columnType: "PgText";
1058
+ data: string;
1059
+ driverParam: string;
1060
+ notNull: false;
1061
+ hasDefault: false;
1062
+ isPrimaryKey: false;
1063
+ isAutoincrement: false;
1064
+ hasRuntimeDefault: false;
1065
+ enumValues: [string, ...string[]];
1066
+ baseColumn: never;
1067
+ identity: undefined;
1068
+ generated: undefined;
1069
+ }, {}, {}>;
1070
+ editedAt: drizzle_orm_pg_core.PgColumn<{
1071
+ name: "edited_at";
1072
+ tableName: "np_comments";
1073
+ dataType: "date";
1074
+ columnType: "PgTimestamp";
1075
+ data: Date;
1076
+ driverParam: string;
1077
+ notNull: false;
1078
+ hasDefault: false;
1079
+ isPrimaryKey: false;
1080
+ isAutoincrement: false;
1081
+ hasRuntimeDefault: false;
1082
+ enumValues: undefined;
1083
+ baseColumn: never;
1084
+ identity: undefined;
1085
+ generated: undefined;
1086
+ }, {}, {}>;
1087
+ siteId: drizzle_orm_pg_core.PgColumn<{
1088
+ name: "site_id";
1089
+ tableName: "np_comments";
1090
+ dataType: "string";
1091
+ columnType: "PgText";
1092
+ data: string;
1093
+ driverParam: string;
1094
+ notNull: true;
1095
+ hasDefault: true;
1096
+ isPrimaryKey: false;
1097
+ isAutoincrement: false;
1098
+ hasRuntimeDefault: false;
1099
+ enumValues: [string, ...string[]];
1100
+ baseColumn: never;
1101
+ identity: undefined;
1102
+ generated: undefined;
1103
+ }, {}, {}>;
1104
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1105
+ name: "created_at";
1106
+ tableName: "np_comments";
1107
+ dataType: "date";
1108
+ columnType: "PgTimestamp";
1109
+ data: Date;
1110
+ driverParam: string;
1111
+ notNull: true;
1112
+ hasDefault: true;
1113
+ isPrimaryKey: false;
1114
+ isAutoincrement: false;
1115
+ hasRuntimeDefault: false;
1116
+ enumValues: undefined;
1117
+ baseColumn: never;
1118
+ identity: undefined;
1119
+ generated: undefined;
1120
+ }, {}, {}>;
1121
+ };
1122
+ dialect: "pg";
1123
+ }>;
1124
+ /**
1125
+ * Polymorphic reactions. `target_type` is the surface — only
1126
+ * `'comment'` is wired today; `'thread'` / `'reply'` are reserved
1127
+ * for a future threads schema (the forum plugin shipped without
1128
+ * one, reusing `np_comments` under the `discussions` collection).
1129
+ * `kind` is configurable per site — default vocabulary in v1 is
1130
+ * just `'like'`. The unique constraint enforces "one reaction-of-
1131
+ * kind per member per target," so toggling a like is an upsert /
1132
+ * delete.
1133
+ */
1134
+ declare const npReactions: drizzle_orm_pg_core.PgTableWithColumns<{
1135
+ name: "np_reactions";
1136
+ schema: undefined;
1137
+ columns: {
1138
+ id: drizzle_orm_pg_core.PgColumn<{
1139
+ name: "id";
1140
+ tableName: "np_reactions";
1141
+ dataType: "string";
1142
+ columnType: "PgUUID";
1143
+ data: string;
1144
+ driverParam: string;
1145
+ notNull: true;
1146
+ hasDefault: true;
1147
+ isPrimaryKey: true;
1148
+ isAutoincrement: false;
1149
+ hasRuntimeDefault: false;
1150
+ enumValues: undefined;
1151
+ baseColumn: never;
1152
+ identity: undefined;
1153
+ generated: undefined;
1154
+ }, {}, {}>;
1155
+ targetType: drizzle_orm_pg_core.PgColumn<{
1156
+ name: "target_type";
1157
+ tableName: "np_reactions";
1158
+ dataType: "string";
1159
+ columnType: "PgText";
1160
+ data: string;
1161
+ driverParam: string;
1162
+ notNull: true;
1163
+ hasDefault: false;
1164
+ isPrimaryKey: false;
1165
+ isAutoincrement: false;
1166
+ hasRuntimeDefault: false;
1167
+ enumValues: [string, ...string[]];
1168
+ baseColumn: never;
1169
+ identity: undefined;
1170
+ generated: undefined;
1171
+ }, {}, {}>;
1172
+ targetId: drizzle_orm_pg_core.PgColumn<{
1173
+ name: "target_id";
1174
+ tableName: "np_reactions";
1175
+ dataType: "string";
1176
+ columnType: "PgUUID";
1177
+ data: string;
1178
+ driverParam: string;
1179
+ notNull: true;
1180
+ hasDefault: false;
1181
+ isPrimaryKey: false;
1182
+ isAutoincrement: false;
1183
+ hasRuntimeDefault: false;
1184
+ enumValues: undefined;
1185
+ baseColumn: never;
1186
+ identity: undefined;
1187
+ generated: undefined;
1188
+ }, {}, {}>;
1189
+ memberId: drizzle_orm_pg_core.PgColumn<{
1190
+ name: "member_id";
1191
+ tableName: "np_reactions";
1192
+ dataType: "string";
1193
+ columnType: "PgUUID";
1194
+ data: string;
1195
+ driverParam: string;
1196
+ notNull: true;
1197
+ hasDefault: false;
1198
+ isPrimaryKey: false;
1199
+ isAutoincrement: false;
1200
+ hasRuntimeDefault: false;
1201
+ enumValues: undefined;
1202
+ baseColumn: never;
1203
+ identity: undefined;
1204
+ generated: undefined;
1205
+ }, {}, {}>;
1206
+ kind: drizzle_orm_pg_core.PgColumn<{
1207
+ name: "kind";
1208
+ tableName: "np_reactions";
1209
+ dataType: "string";
1210
+ columnType: "PgText";
1211
+ data: string;
1212
+ driverParam: string;
1213
+ notNull: true;
1214
+ hasDefault: false;
1215
+ isPrimaryKey: false;
1216
+ isAutoincrement: false;
1217
+ hasRuntimeDefault: false;
1218
+ enumValues: [string, ...string[]];
1219
+ baseColumn: never;
1220
+ identity: undefined;
1221
+ generated: undefined;
1222
+ }, {}, {}>;
1223
+ siteId: drizzle_orm_pg_core.PgColumn<{
1224
+ name: "site_id";
1225
+ tableName: "np_reactions";
1226
+ dataType: "string";
1227
+ columnType: "PgText";
1228
+ data: string;
1229
+ driverParam: string;
1230
+ notNull: true;
1231
+ hasDefault: true;
1232
+ isPrimaryKey: false;
1233
+ isAutoincrement: false;
1234
+ hasRuntimeDefault: false;
1235
+ enumValues: [string, ...string[]];
1236
+ baseColumn: never;
1237
+ identity: undefined;
1238
+ generated: undefined;
1239
+ }, {}, {}>;
1240
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1241
+ name: "created_at";
1242
+ tableName: "np_reactions";
1243
+ dataType: "date";
1244
+ columnType: "PgTimestamp";
1245
+ data: Date;
1246
+ driverParam: string;
1247
+ notNull: true;
1248
+ hasDefault: true;
1249
+ isPrimaryKey: false;
1250
+ isAutoincrement: false;
1251
+ hasRuntimeDefault: false;
1252
+ enumValues: undefined;
1253
+ baseColumn: never;
1254
+ identity: undefined;
1255
+ generated: undefined;
1256
+ }, {}, {}>;
1257
+ };
1258
+ dialect: "pg";
1259
+ }>;
1260
+ /**
1261
+ * Follow graph. Polymorphic over what's being followed:
1262
+ * - `member` — target_id is `np_members.id` as a string
1263
+ * - `thread` — reserved; no thread schema today (forum plugin
1264
+ * reuses `np_comments` so there's nothing to follow per-thread)
1265
+ * - `tag` — target_id is the tag slug (no FK; tags are strings)
1266
+ *
1267
+ * `target_id` is `text` rather than `uuid` so all three kinds share
1268
+ * one column. Cascading on a polymorphic id isn't possible in plain
1269
+ * SQL; the soft-delete pattern on `np_members` keeps follows pointing
1270
+ * at a still-valid (if anonymised) row.
1271
+ */
1272
+ declare const npFollows: drizzle_orm_pg_core.PgTableWithColumns<{
1273
+ name: "np_follows";
1274
+ schema: undefined;
1275
+ columns: {
1276
+ id: drizzle_orm_pg_core.PgColumn<{
1277
+ name: "id";
1278
+ tableName: "np_follows";
1279
+ dataType: "string";
1280
+ columnType: "PgUUID";
1281
+ data: string;
1282
+ driverParam: string;
1283
+ notNull: true;
1284
+ hasDefault: true;
1285
+ isPrimaryKey: true;
1286
+ isAutoincrement: false;
1287
+ hasRuntimeDefault: false;
1288
+ enumValues: undefined;
1289
+ baseColumn: never;
1290
+ identity: undefined;
1291
+ generated: undefined;
1292
+ }, {}, {}>;
1293
+ followerId: drizzle_orm_pg_core.PgColumn<{
1294
+ name: "follower_id";
1295
+ tableName: "np_follows";
1296
+ dataType: "string";
1297
+ columnType: "PgUUID";
1298
+ data: string;
1299
+ driverParam: string;
1300
+ notNull: true;
1301
+ hasDefault: false;
1302
+ isPrimaryKey: false;
1303
+ isAutoincrement: false;
1304
+ hasRuntimeDefault: false;
1305
+ enumValues: undefined;
1306
+ baseColumn: never;
1307
+ identity: undefined;
1308
+ generated: undefined;
1309
+ }, {}, {}>;
1310
+ targetType: drizzle_orm_pg_core.PgColumn<{
1311
+ name: "target_type";
1312
+ tableName: "np_follows";
1313
+ dataType: "string";
1314
+ columnType: "PgText";
1315
+ data: string;
1316
+ driverParam: string;
1317
+ notNull: true;
1318
+ hasDefault: false;
1319
+ isPrimaryKey: false;
1320
+ isAutoincrement: false;
1321
+ hasRuntimeDefault: false;
1322
+ enumValues: [string, ...string[]];
1323
+ baseColumn: never;
1324
+ identity: undefined;
1325
+ generated: undefined;
1326
+ }, {}, {}>;
1327
+ targetId: drizzle_orm_pg_core.PgColumn<{
1328
+ name: "target_id";
1329
+ tableName: "np_follows";
1330
+ dataType: "string";
1331
+ columnType: "PgText";
1332
+ data: string;
1333
+ driverParam: string;
1334
+ notNull: true;
1335
+ hasDefault: false;
1336
+ isPrimaryKey: false;
1337
+ isAutoincrement: false;
1338
+ hasRuntimeDefault: false;
1339
+ enumValues: [string, ...string[]];
1340
+ baseColumn: never;
1341
+ identity: undefined;
1342
+ generated: undefined;
1343
+ }, {}, {}>;
1344
+ siteId: drizzle_orm_pg_core.PgColumn<{
1345
+ name: "site_id";
1346
+ tableName: "np_follows";
1347
+ dataType: "string";
1348
+ columnType: "PgText";
1349
+ data: string;
1350
+ driverParam: string;
1351
+ notNull: true;
1352
+ hasDefault: true;
1353
+ isPrimaryKey: false;
1354
+ isAutoincrement: false;
1355
+ hasRuntimeDefault: false;
1356
+ enumValues: [string, ...string[]];
1357
+ baseColumn: never;
1358
+ identity: undefined;
1359
+ generated: undefined;
1360
+ }, {}, {}>;
1361
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1362
+ name: "created_at";
1363
+ tableName: "np_follows";
1364
+ dataType: "date";
1365
+ columnType: "PgTimestamp";
1366
+ data: Date;
1367
+ driverParam: string;
1368
+ notNull: true;
1369
+ hasDefault: true;
1370
+ isPrimaryKey: false;
1371
+ isAutoincrement: false;
1372
+ hasRuntimeDefault: false;
1373
+ enumValues: undefined;
1374
+ baseColumn: never;
1375
+ identity: undefined;
1376
+ generated: undefined;
1377
+ }, {}, {}>;
1378
+ };
1379
+ dialect: "pg";
1380
+ }>;
1381
+ /**
1382
+ * Phase 16.1 — member-to-member mute. One-directional: A muting
1383
+ * B means A doesn't see B's comments and doesn't get
1384
+ * notifications about B's actions (replies, reactions, follows
1385
+ * targeted at A's content). B isn't told and can keep posting
1386
+ * normally — Twitter-style soft-block.
1387
+ *
1388
+ * Self-mute is rejected at the API layer. The composite PK on
1389
+ * `(memberId, targetId)` enforces idempotence: muting the same
1390
+ * person twice is a no-op rather than two rows.
1391
+ *
1392
+ * Distinct from `np_bans` — bans are staff-issued and global
1393
+ * (block writes). Mutes are member-issued and personal (hide
1394
+ * reads).
1395
+ */
1396
+ declare const npMemberMutes: drizzle_orm_pg_core.PgTableWithColumns<{
1397
+ name: "np_member_mutes";
1398
+ schema: undefined;
1399
+ columns: {
1400
+ memberId: drizzle_orm_pg_core.PgColumn<{
1401
+ name: "member_id";
1402
+ tableName: "np_member_mutes";
1403
+ dataType: "string";
1404
+ columnType: "PgUUID";
1405
+ data: string;
1406
+ driverParam: string;
1407
+ notNull: true;
1408
+ hasDefault: false;
1409
+ isPrimaryKey: false;
1410
+ isAutoincrement: false;
1411
+ hasRuntimeDefault: false;
1412
+ enumValues: undefined;
1413
+ baseColumn: never;
1414
+ identity: undefined;
1415
+ generated: undefined;
1416
+ }, {}, {}>;
1417
+ targetId: drizzle_orm_pg_core.PgColumn<{
1418
+ name: "target_id";
1419
+ tableName: "np_member_mutes";
1420
+ dataType: "string";
1421
+ columnType: "PgUUID";
1422
+ data: string;
1423
+ driverParam: string;
1424
+ notNull: true;
1425
+ hasDefault: false;
1426
+ isPrimaryKey: false;
1427
+ isAutoincrement: false;
1428
+ hasRuntimeDefault: false;
1429
+ enumValues: undefined;
1430
+ baseColumn: never;
1431
+ identity: undefined;
1432
+ generated: undefined;
1433
+ }, {}, {}>;
1434
+ siteId: drizzle_orm_pg_core.PgColumn<{
1435
+ name: "site_id";
1436
+ tableName: "np_member_mutes";
1437
+ dataType: "string";
1438
+ columnType: "PgText";
1439
+ data: string;
1440
+ driverParam: string;
1441
+ notNull: true;
1442
+ hasDefault: true;
1443
+ isPrimaryKey: false;
1444
+ isAutoincrement: false;
1445
+ hasRuntimeDefault: false;
1446
+ enumValues: [string, ...string[]];
1447
+ baseColumn: never;
1448
+ identity: undefined;
1449
+ generated: undefined;
1450
+ }, {}, {}>;
1451
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1452
+ name: "created_at";
1453
+ tableName: "np_member_mutes";
1454
+ dataType: "date";
1455
+ columnType: "PgTimestamp";
1456
+ data: Date;
1457
+ driverParam: string;
1458
+ notNull: true;
1459
+ hasDefault: true;
1460
+ isPrimaryKey: false;
1461
+ isAutoincrement: false;
1462
+ hasRuntimeDefault: false;
1463
+ enumValues: undefined;
1464
+ baseColumn: never;
1465
+ identity: undefined;
1466
+ generated: undefined;
1467
+ }, {}, {}>;
1468
+ };
1469
+ dialect: "pg";
1470
+ }>;
1471
+ /**
1472
+ * Per-member notification inbox. `kind` is a free-form discriminator
1473
+ * (e.g. `'comment.reply'`, `'reaction.received'`, `'follow.received'`)
1474
+ * paired with a `payload` whose shape depends on the kind — the
1475
+ * recipient's UI renders based on those.
1476
+ *
1477
+ * Indexed on `(member_id, read_at, created_at)` to cover both the
1478
+ * unread-count probe and the recent-list paging that an inbox UI uses.
1479
+ */
1480
+ declare const npNotifications: drizzle_orm_pg_core.PgTableWithColumns<{
1481
+ name: "np_notifications";
1482
+ schema: undefined;
1483
+ columns: {
1484
+ id: drizzle_orm_pg_core.PgColumn<{
1485
+ name: "id";
1486
+ tableName: "np_notifications";
1487
+ dataType: "string";
1488
+ columnType: "PgUUID";
1489
+ data: string;
1490
+ driverParam: string;
1491
+ notNull: true;
1492
+ hasDefault: true;
1493
+ isPrimaryKey: true;
1494
+ isAutoincrement: false;
1495
+ hasRuntimeDefault: false;
1496
+ enumValues: undefined;
1497
+ baseColumn: never;
1498
+ identity: undefined;
1499
+ generated: undefined;
1500
+ }, {}, {}>;
1501
+ memberId: drizzle_orm_pg_core.PgColumn<{
1502
+ name: "member_id";
1503
+ tableName: "np_notifications";
1504
+ dataType: "string";
1505
+ columnType: "PgUUID";
1506
+ data: string;
1507
+ driverParam: string;
1508
+ notNull: true;
1509
+ hasDefault: false;
1510
+ isPrimaryKey: false;
1511
+ isAutoincrement: false;
1512
+ hasRuntimeDefault: false;
1513
+ enumValues: undefined;
1514
+ baseColumn: never;
1515
+ identity: undefined;
1516
+ generated: undefined;
1517
+ }, {}, {}>;
1518
+ kind: drizzle_orm_pg_core.PgColumn<{
1519
+ name: "kind";
1520
+ tableName: "np_notifications";
1521
+ dataType: "string";
1522
+ columnType: "PgText";
1523
+ data: string;
1524
+ driverParam: string;
1525
+ notNull: true;
1526
+ hasDefault: false;
1527
+ isPrimaryKey: false;
1528
+ isAutoincrement: false;
1529
+ hasRuntimeDefault: false;
1530
+ enumValues: [string, ...string[]];
1531
+ baseColumn: never;
1532
+ identity: undefined;
1533
+ generated: undefined;
1534
+ }, {}, {}>;
1535
+ payload: drizzle_orm_pg_core.PgColumn<{
1536
+ name: "payload";
1537
+ tableName: "np_notifications";
1538
+ dataType: "json";
1539
+ columnType: "PgJsonb";
1540
+ data: Record<string, unknown>;
1541
+ driverParam: unknown;
1542
+ notNull: true;
1543
+ hasDefault: true;
1544
+ isPrimaryKey: false;
1545
+ isAutoincrement: false;
1546
+ hasRuntimeDefault: false;
1547
+ enumValues: undefined;
1548
+ baseColumn: never;
1549
+ identity: undefined;
1550
+ generated: undefined;
1551
+ }, {}, {
1552
+ $type: Record<string, unknown>;
1553
+ }>;
1554
+ readAt: drizzle_orm_pg_core.PgColumn<{
1555
+ name: "read_at";
1556
+ tableName: "np_notifications";
1557
+ dataType: "date";
1558
+ columnType: "PgTimestamp";
1559
+ data: Date;
1560
+ driverParam: string;
1561
+ notNull: false;
1562
+ hasDefault: false;
1563
+ isPrimaryKey: false;
1564
+ isAutoincrement: false;
1565
+ hasRuntimeDefault: false;
1566
+ enumValues: undefined;
1567
+ baseColumn: never;
1568
+ identity: undefined;
1569
+ generated: undefined;
1570
+ }, {}, {}>;
1571
+ siteId: drizzle_orm_pg_core.PgColumn<{
1572
+ name: "site_id";
1573
+ tableName: "np_notifications";
1574
+ dataType: "string";
1575
+ columnType: "PgText";
1576
+ data: string;
1577
+ driverParam: string;
1578
+ notNull: true;
1579
+ hasDefault: true;
1580
+ isPrimaryKey: false;
1581
+ isAutoincrement: false;
1582
+ hasRuntimeDefault: false;
1583
+ enumValues: [string, ...string[]];
1584
+ baseColumn: never;
1585
+ identity: undefined;
1586
+ generated: undefined;
1587
+ }, {}, {}>;
1588
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1589
+ name: "created_at";
1590
+ tableName: "np_notifications";
1591
+ dataType: "date";
1592
+ columnType: "PgTimestamp";
1593
+ data: Date;
1594
+ driverParam: string;
1595
+ notNull: true;
1596
+ hasDefault: true;
1597
+ isPrimaryKey: false;
1598
+ isAutoincrement: false;
1599
+ hasRuntimeDefault: false;
1600
+ enumValues: undefined;
1601
+ baseColumn: never;
1602
+ identity: undefined;
1603
+ generated: undefined;
1604
+ }, {}, {}>;
1605
+ };
1606
+ dialect: "pg";
1607
+ }>;
1608
+ /**
1609
+ * Member-filed reports against community content. `target_type` is
1610
+ * `'comment' | 'thread' | 'reply' | 'member'` — anything a member can
1611
+ * report. `resolved_at` flags closed cases; the unresolved index
1612
+ * powers the moderation queue's "unread first" view.
1613
+ *
1614
+ * `resolved_by_user_id` and `resolved_by_member_id` are mutually
1615
+ * exclusive — staff resolutions populate the user, member-mod
1616
+ * resolutions populate the member.
1617
+ */
1618
+ declare const npReports: drizzle_orm_pg_core.PgTableWithColumns<{
1619
+ name: "np_reports";
1620
+ schema: undefined;
1621
+ columns: {
1622
+ id: drizzle_orm_pg_core.PgColumn<{
1623
+ name: "id";
1624
+ tableName: "np_reports";
1625
+ dataType: "string";
1626
+ columnType: "PgUUID";
1627
+ data: string;
1628
+ driverParam: string;
1629
+ notNull: true;
1630
+ hasDefault: true;
1631
+ isPrimaryKey: true;
1632
+ isAutoincrement: false;
1633
+ hasRuntimeDefault: false;
1634
+ enumValues: undefined;
1635
+ baseColumn: never;
1636
+ identity: undefined;
1637
+ generated: undefined;
1638
+ }, {}, {}>;
1639
+ reporterId: drizzle_orm_pg_core.PgColumn<{
1640
+ name: "reporter_id";
1641
+ tableName: "np_reports";
1642
+ dataType: "string";
1643
+ columnType: "PgUUID";
1644
+ data: string;
1645
+ driverParam: string;
1646
+ notNull: true;
1647
+ hasDefault: false;
1648
+ isPrimaryKey: false;
1649
+ isAutoincrement: false;
1650
+ hasRuntimeDefault: false;
1651
+ enumValues: undefined;
1652
+ baseColumn: never;
1653
+ identity: undefined;
1654
+ generated: undefined;
1655
+ }, {}, {}>;
1656
+ targetType: drizzle_orm_pg_core.PgColumn<{
1657
+ name: "target_type";
1658
+ tableName: "np_reports";
1659
+ dataType: "string";
1660
+ columnType: "PgText";
1661
+ data: string;
1662
+ driverParam: string;
1663
+ notNull: true;
1664
+ hasDefault: false;
1665
+ isPrimaryKey: false;
1666
+ isAutoincrement: false;
1667
+ hasRuntimeDefault: false;
1668
+ enumValues: [string, ...string[]];
1669
+ baseColumn: never;
1670
+ identity: undefined;
1671
+ generated: undefined;
1672
+ }, {}, {}>;
1673
+ targetId: drizzle_orm_pg_core.PgColumn<{
1674
+ name: "target_id";
1675
+ tableName: "np_reports";
1676
+ dataType: "string";
1677
+ columnType: "PgText";
1678
+ data: string;
1679
+ driverParam: string;
1680
+ notNull: true;
1681
+ hasDefault: false;
1682
+ isPrimaryKey: false;
1683
+ isAutoincrement: false;
1684
+ hasRuntimeDefault: false;
1685
+ enumValues: [string, ...string[]];
1686
+ baseColumn: never;
1687
+ identity: undefined;
1688
+ generated: undefined;
1689
+ }, {}, {}>;
1690
+ reason: drizzle_orm_pg_core.PgColumn<{
1691
+ name: "reason";
1692
+ tableName: "np_reports";
1693
+ dataType: "string";
1694
+ columnType: "PgText";
1695
+ data: string;
1696
+ driverParam: string;
1697
+ notNull: true;
1698
+ hasDefault: false;
1699
+ isPrimaryKey: false;
1700
+ isAutoincrement: false;
1701
+ hasRuntimeDefault: false;
1702
+ enumValues: [string, ...string[]];
1703
+ baseColumn: never;
1704
+ identity: undefined;
1705
+ generated: undefined;
1706
+ }, {}, {}>;
1707
+ resolvedAt: drizzle_orm_pg_core.PgColumn<{
1708
+ name: "resolved_at";
1709
+ tableName: "np_reports";
1710
+ dataType: "date";
1711
+ columnType: "PgTimestamp";
1712
+ data: Date;
1713
+ driverParam: string;
1714
+ notNull: false;
1715
+ hasDefault: false;
1716
+ isPrimaryKey: false;
1717
+ isAutoincrement: false;
1718
+ hasRuntimeDefault: false;
1719
+ enumValues: undefined;
1720
+ baseColumn: never;
1721
+ identity: undefined;
1722
+ generated: undefined;
1723
+ }, {}, {}>;
1724
+ resolvedByUserId: drizzle_orm_pg_core.PgColumn<{
1725
+ name: "resolved_by_user_id";
1726
+ tableName: "np_reports";
1727
+ dataType: "string";
1728
+ columnType: "PgUUID";
1729
+ data: string;
1730
+ driverParam: string;
1731
+ notNull: false;
1732
+ hasDefault: false;
1733
+ isPrimaryKey: false;
1734
+ isAutoincrement: false;
1735
+ hasRuntimeDefault: false;
1736
+ enumValues: undefined;
1737
+ baseColumn: never;
1738
+ identity: undefined;
1739
+ generated: undefined;
1740
+ }, {}, {}>;
1741
+ resolvedByMemberId: drizzle_orm_pg_core.PgColumn<{
1742
+ name: "resolved_by_member_id";
1743
+ tableName: "np_reports";
1744
+ dataType: "string";
1745
+ columnType: "PgUUID";
1746
+ data: string;
1747
+ driverParam: string;
1748
+ notNull: false;
1749
+ hasDefault: false;
1750
+ isPrimaryKey: false;
1751
+ isAutoincrement: false;
1752
+ hasRuntimeDefault: false;
1753
+ enumValues: undefined;
1754
+ baseColumn: never;
1755
+ identity: undefined;
1756
+ generated: undefined;
1757
+ }, {}, {}>;
1758
+ resolution: drizzle_orm_pg_core.PgColumn<{
1759
+ name: "resolution";
1760
+ tableName: "np_reports";
1761
+ dataType: "string";
1762
+ columnType: "PgText";
1763
+ data: string;
1764
+ driverParam: string;
1765
+ notNull: false;
1766
+ hasDefault: false;
1767
+ isPrimaryKey: false;
1768
+ isAutoincrement: false;
1769
+ hasRuntimeDefault: false;
1770
+ enumValues: [string, ...string[]];
1771
+ baseColumn: never;
1772
+ identity: undefined;
1773
+ generated: undefined;
1774
+ }, {}, {}>;
1775
+ siteId: drizzle_orm_pg_core.PgColumn<{
1776
+ name: "site_id";
1777
+ tableName: "np_reports";
1778
+ dataType: "string";
1779
+ columnType: "PgText";
1780
+ data: string;
1781
+ driverParam: string;
1782
+ notNull: true;
1783
+ hasDefault: true;
1784
+ isPrimaryKey: false;
1785
+ isAutoincrement: false;
1786
+ hasRuntimeDefault: false;
1787
+ enumValues: [string, ...string[]];
1788
+ baseColumn: never;
1789
+ identity: undefined;
1790
+ generated: undefined;
1791
+ }, {}, {}>;
1792
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1793
+ name: "created_at";
1794
+ tableName: "np_reports";
1795
+ dataType: "date";
1796
+ columnType: "PgTimestamp";
1797
+ data: Date;
1798
+ driverParam: string;
1799
+ notNull: true;
1800
+ hasDefault: true;
1801
+ isPrimaryKey: false;
1802
+ isAutoincrement: false;
1803
+ hasRuntimeDefault: false;
1804
+ enumValues: undefined;
1805
+ baseColumn: never;
1806
+ identity: undefined;
1807
+ generated: undefined;
1808
+ }, {}, {}>;
1809
+ };
1810
+ dialect: "pg";
1811
+ }>;
1812
+ /**
1813
+ * Append-only moderation audit log. Every hide / restore / ban / role
1814
+ * grant write should append a row so an admin can answer "who took
1815
+ * this action and when?" without diffing logs.
1816
+ *
1817
+ * `actor_kind` distinguishes staff / member-mod / system writes
1818
+ * (e.g. an automated revocation when a member soft-deletes their
1819
+ * account). `target_id` is `text` because some actions target string
1820
+ * ids — like `"posts"` for a `collection-mod` grant scope.
1821
+ */
1822
+ declare const npAuditEvents: drizzle_orm_pg_core.PgTableWithColumns<{
1823
+ name: "np_audit_events";
1824
+ schema: undefined;
1825
+ columns: {
1826
+ id: drizzle_orm_pg_core.PgColumn<{
1827
+ name: "id";
1828
+ tableName: "np_audit_events";
1829
+ dataType: "string";
1830
+ columnType: "PgUUID";
1831
+ data: string;
1832
+ driverParam: string;
1833
+ notNull: true;
1834
+ hasDefault: true;
1835
+ isPrimaryKey: true;
1836
+ isAutoincrement: false;
1837
+ hasRuntimeDefault: false;
1838
+ enumValues: undefined;
1839
+ baseColumn: never;
1840
+ identity: undefined;
1841
+ generated: undefined;
1842
+ }, {}, {}>;
1843
+ actorKind: drizzle_orm_pg_core.PgColumn<{
1844
+ name: "actor_kind";
1845
+ tableName: "np_audit_events";
1846
+ dataType: "string";
1847
+ columnType: "PgText";
1848
+ data: string;
1849
+ driverParam: string;
1850
+ notNull: true;
1851
+ hasDefault: false;
1852
+ isPrimaryKey: false;
1853
+ isAutoincrement: false;
1854
+ hasRuntimeDefault: false;
1855
+ enumValues: [string, ...string[]];
1856
+ baseColumn: never;
1857
+ identity: undefined;
1858
+ generated: undefined;
1859
+ }, {}, {}>;
1860
+ actorUserId: drizzle_orm_pg_core.PgColumn<{
1861
+ name: "actor_user_id";
1862
+ tableName: "np_audit_events";
1863
+ dataType: "string";
1864
+ columnType: "PgUUID";
1865
+ data: string;
1866
+ driverParam: string;
1867
+ notNull: false;
1868
+ hasDefault: false;
1869
+ isPrimaryKey: false;
1870
+ isAutoincrement: false;
1871
+ hasRuntimeDefault: false;
1872
+ enumValues: undefined;
1873
+ baseColumn: never;
1874
+ identity: undefined;
1875
+ generated: undefined;
1876
+ }, {}, {}>;
1877
+ actorMemberId: drizzle_orm_pg_core.PgColumn<{
1878
+ name: "actor_member_id";
1879
+ tableName: "np_audit_events";
1880
+ dataType: "string";
1881
+ columnType: "PgUUID";
1882
+ data: string;
1883
+ driverParam: string;
1884
+ notNull: false;
1885
+ hasDefault: false;
1886
+ isPrimaryKey: false;
1887
+ isAutoincrement: false;
1888
+ hasRuntimeDefault: false;
1889
+ enumValues: undefined;
1890
+ baseColumn: never;
1891
+ identity: undefined;
1892
+ generated: undefined;
1893
+ }, {}, {}>;
1894
+ action: drizzle_orm_pg_core.PgColumn<{
1895
+ name: "action";
1896
+ tableName: "np_audit_events";
1897
+ dataType: "string";
1898
+ columnType: "PgText";
1899
+ data: string;
1900
+ driverParam: string;
1901
+ notNull: true;
1902
+ hasDefault: false;
1903
+ isPrimaryKey: false;
1904
+ isAutoincrement: false;
1905
+ hasRuntimeDefault: false;
1906
+ enumValues: [string, ...string[]];
1907
+ baseColumn: never;
1908
+ identity: undefined;
1909
+ generated: undefined;
1910
+ }, {}, {}>;
1911
+ targetType: drizzle_orm_pg_core.PgColumn<{
1912
+ name: "target_type";
1913
+ tableName: "np_audit_events";
1914
+ dataType: "string";
1915
+ columnType: "PgText";
1916
+ data: string;
1917
+ driverParam: string;
1918
+ notNull: false;
1919
+ hasDefault: false;
1920
+ isPrimaryKey: false;
1921
+ isAutoincrement: false;
1922
+ hasRuntimeDefault: false;
1923
+ enumValues: [string, ...string[]];
1924
+ baseColumn: never;
1925
+ identity: undefined;
1926
+ generated: undefined;
1927
+ }, {}, {}>;
1928
+ targetId: drizzle_orm_pg_core.PgColumn<{
1929
+ name: "target_id";
1930
+ tableName: "np_audit_events";
1931
+ dataType: "string";
1932
+ columnType: "PgText";
1933
+ data: string;
1934
+ driverParam: string;
1935
+ notNull: false;
1936
+ hasDefault: false;
1937
+ isPrimaryKey: false;
1938
+ isAutoincrement: false;
1939
+ hasRuntimeDefault: false;
1940
+ enumValues: [string, ...string[]];
1941
+ baseColumn: never;
1942
+ identity: undefined;
1943
+ generated: undefined;
1944
+ }, {}, {}>;
1945
+ payload: drizzle_orm_pg_core.PgColumn<{
1946
+ name: "payload";
1947
+ tableName: "np_audit_events";
1948
+ dataType: "json";
1949
+ columnType: "PgJsonb";
1950
+ data: Record<string, unknown>;
1951
+ driverParam: unknown;
1952
+ notNull: true;
1953
+ hasDefault: true;
1954
+ isPrimaryKey: false;
1955
+ isAutoincrement: false;
1956
+ hasRuntimeDefault: false;
1957
+ enumValues: undefined;
1958
+ baseColumn: never;
1959
+ identity: undefined;
1960
+ generated: undefined;
1961
+ }, {}, {
1962
+ $type: Record<string, unknown>;
1963
+ }>;
1964
+ siteId: drizzle_orm_pg_core.PgColumn<{
1965
+ name: "site_id";
1966
+ tableName: "np_audit_events";
1967
+ dataType: "string";
1968
+ columnType: "PgText";
1969
+ data: string;
1970
+ driverParam: string;
1971
+ notNull: false;
1972
+ hasDefault: false;
1973
+ isPrimaryKey: false;
1974
+ isAutoincrement: false;
1975
+ hasRuntimeDefault: false;
1976
+ enumValues: [string, ...string[]];
1977
+ baseColumn: never;
1978
+ identity: undefined;
1979
+ generated: undefined;
1980
+ }, {}, {}>;
1981
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1982
+ name: "created_at";
1983
+ tableName: "np_audit_events";
1984
+ dataType: "date";
1985
+ columnType: "PgTimestamp";
1986
+ data: Date;
1987
+ driverParam: string;
1988
+ notNull: true;
1989
+ hasDefault: true;
1990
+ isPrimaryKey: false;
1991
+ isAutoincrement: false;
1992
+ hasRuntimeDefault: false;
1993
+ enumValues: undefined;
1994
+ baseColumn: never;
1995
+ identity: undefined;
1996
+ generated: undefined;
1997
+ }, {}, {}>;
1998
+ };
1999
+ dialect: "pg";
2000
+ }>;
2001
+ declare const npBans: drizzle_orm_pg_core.PgTableWithColumns<{
2002
+ name: "np_bans";
2003
+ schema: undefined;
2004
+ columns: {
2005
+ id: drizzle_orm_pg_core.PgColumn<{
2006
+ name: "id";
2007
+ tableName: "np_bans";
2008
+ dataType: "string";
2009
+ columnType: "PgUUID";
2010
+ data: string;
2011
+ driverParam: string;
2012
+ notNull: true;
2013
+ hasDefault: true;
2014
+ isPrimaryKey: true;
2015
+ isAutoincrement: false;
2016
+ hasRuntimeDefault: false;
2017
+ enumValues: undefined;
2018
+ baseColumn: never;
2019
+ identity: undefined;
2020
+ generated: undefined;
2021
+ }, {}, {}>;
2022
+ memberId: drizzle_orm_pg_core.PgColumn<{
2023
+ name: "member_id";
2024
+ tableName: "np_bans";
2025
+ dataType: "string";
2026
+ columnType: "PgUUID";
2027
+ data: string;
2028
+ driverParam: string;
2029
+ notNull: true;
2030
+ hasDefault: false;
2031
+ isPrimaryKey: false;
2032
+ isAutoincrement: false;
2033
+ hasRuntimeDefault: false;
2034
+ enumValues: undefined;
2035
+ baseColumn: never;
2036
+ identity: undefined;
2037
+ generated: undefined;
2038
+ }, {}, {}>;
2039
+ scopeType: drizzle_orm_pg_core.PgColumn<{
2040
+ name: "scope_type";
2041
+ tableName: "np_bans";
2042
+ dataType: "string";
2043
+ columnType: "PgEnumColumn";
2044
+ data: "site" | "collection" | "category";
2045
+ driverParam: string;
2046
+ notNull: true;
2047
+ hasDefault: false;
2048
+ isPrimaryKey: false;
2049
+ isAutoincrement: false;
2050
+ hasRuntimeDefault: false;
2051
+ enumValues: ["site", "category", "collection"];
2052
+ baseColumn: never;
2053
+ identity: undefined;
2054
+ generated: undefined;
2055
+ }, {}, {}>;
2056
+ scopeId: drizzle_orm_pg_core.PgColumn<{
2057
+ name: "scope_id";
2058
+ tableName: "np_bans";
2059
+ dataType: "string";
2060
+ columnType: "PgText";
2061
+ data: string;
2062
+ driverParam: string;
2063
+ notNull: false;
2064
+ hasDefault: false;
2065
+ isPrimaryKey: false;
2066
+ isAutoincrement: false;
2067
+ hasRuntimeDefault: false;
2068
+ enumValues: [string, ...string[]];
2069
+ baseColumn: never;
2070
+ identity: undefined;
2071
+ generated: undefined;
2072
+ }, {}, {}>;
2073
+ kind: drizzle_orm_pg_core.PgColumn<{
2074
+ name: "kind";
2075
+ tableName: "np_bans";
2076
+ dataType: "string";
2077
+ columnType: "PgEnumColumn";
2078
+ data: "temporary" | "permanent";
2079
+ driverParam: string;
2080
+ notNull: true;
2081
+ hasDefault: false;
2082
+ isPrimaryKey: false;
2083
+ isAutoincrement: false;
2084
+ hasRuntimeDefault: false;
2085
+ enumValues: ["temporary", "permanent"];
2086
+ baseColumn: never;
2087
+ identity: undefined;
2088
+ generated: undefined;
2089
+ }, {}, {}>;
2090
+ expiresAt: drizzle_orm_pg_core.PgColumn<{
2091
+ name: "expires_at";
2092
+ tableName: "np_bans";
2093
+ dataType: "date";
2094
+ columnType: "PgTimestamp";
2095
+ data: Date;
2096
+ driverParam: string;
2097
+ notNull: false;
2098
+ hasDefault: false;
2099
+ isPrimaryKey: false;
2100
+ isAutoincrement: false;
2101
+ hasRuntimeDefault: false;
2102
+ enumValues: undefined;
2103
+ baseColumn: never;
2104
+ identity: undefined;
2105
+ generated: undefined;
2106
+ }, {}, {}>;
2107
+ reason: drizzle_orm_pg_core.PgColumn<{
2108
+ name: "reason";
2109
+ tableName: "np_bans";
2110
+ dataType: "string";
2111
+ columnType: "PgText";
2112
+ data: string;
2113
+ driverParam: string;
2114
+ notNull: false;
2115
+ hasDefault: false;
2116
+ isPrimaryKey: false;
2117
+ isAutoincrement: false;
2118
+ hasRuntimeDefault: false;
2119
+ enumValues: [string, ...string[]];
2120
+ baseColumn: never;
2121
+ identity: undefined;
2122
+ generated: undefined;
2123
+ }, {}, {}>;
2124
+ byUserId: drizzle_orm_pg_core.PgColumn<{
2125
+ name: "by_user_id";
2126
+ tableName: "np_bans";
2127
+ dataType: "string";
2128
+ columnType: "PgUUID";
2129
+ data: string;
2130
+ driverParam: string;
2131
+ notNull: false;
2132
+ hasDefault: false;
2133
+ isPrimaryKey: false;
2134
+ isAutoincrement: false;
2135
+ hasRuntimeDefault: false;
2136
+ enumValues: undefined;
2137
+ baseColumn: never;
2138
+ identity: undefined;
2139
+ generated: undefined;
2140
+ }, {}, {}>;
2141
+ byMemberId: drizzle_orm_pg_core.PgColumn<{
2142
+ name: "by_member_id";
2143
+ tableName: "np_bans";
2144
+ dataType: "string";
2145
+ columnType: "PgUUID";
2146
+ data: string;
2147
+ driverParam: string;
2148
+ notNull: false;
2149
+ hasDefault: false;
2150
+ isPrimaryKey: false;
2151
+ isAutoincrement: false;
2152
+ hasRuntimeDefault: false;
2153
+ enumValues: undefined;
2154
+ baseColumn: never;
2155
+ identity: undefined;
2156
+ generated: undefined;
2157
+ }, {}, {}>;
2158
+ siteId: drizzle_orm_pg_core.PgColumn<{
2159
+ name: "site_id";
2160
+ tableName: "np_bans";
2161
+ dataType: "string";
2162
+ columnType: "PgText";
2163
+ data: string;
2164
+ driverParam: string;
2165
+ notNull: true;
2166
+ hasDefault: true;
2167
+ isPrimaryKey: false;
2168
+ isAutoincrement: false;
2169
+ hasRuntimeDefault: false;
2170
+ enumValues: [string, ...string[]];
2171
+ baseColumn: never;
2172
+ identity: undefined;
2173
+ generated: undefined;
2174
+ }, {}, {}>;
2175
+ createdAt: drizzle_orm_pg_core.PgColumn<{
2176
+ name: "created_at";
2177
+ tableName: "np_bans";
2178
+ dataType: "date";
2179
+ columnType: "PgTimestamp";
2180
+ data: Date;
2181
+ driverParam: string;
2182
+ notNull: true;
2183
+ hasDefault: true;
2184
+ isPrimaryKey: false;
2185
+ isAutoincrement: false;
2186
+ hasRuntimeDefault: false;
2187
+ enumValues: undefined;
2188
+ baseColumn: never;
2189
+ identity: undefined;
2190
+ generated: undefined;
2191
+ }, {}, {}>;
2192
+ };
2193
+ dialect: "pg";
2194
+ }>;
2195
+
2196
+ declare const npMediaStatusEnum: drizzle_orm_pg_core.PgEnum<["processing", "ready", "error"]>;
2197
+ type NpMediaFocalPoint = {
2198
+ x: number;
2199
+ y: number;
2200
+ };
2201
+ type NpMediaSizes = Record<string, Record<string, unknown>>;
2202
+ declare const npMediaFolders: drizzle_orm_pg_core.PgTableWithColumns<{
2203
+ name: "np_media_folders";
2204
+ schema: undefined;
2205
+ columns: {
2206
+ id: drizzle_orm_pg_core.PgColumn<{
2207
+ name: "id";
2208
+ tableName: "np_media_folders";
2209
+ dataType: "string";
2210
+ columnType: "PgUUID";
2211
+ data: string;
2212
+ driverParam: string;
2213
+ notNull: true;
2214
+ hasDefault: true;
2215
+ isPrimaryKey: true;
2216
+ isAutoincrement: false;
2217
+ hasRuntimeDefault: false;
2218
+ enumValues: undefined;
2219
+ baseColumn: never;
2220
+ identity: undefined;
2221
+ generated: undefined;
2222
+ }, {}, {}>;
2223
+ name: drizzle_orm_pg_core.PgColumn<{
2224
+ name: "name";
2225
+ tableName: "np_media_folders";
2226
+ dataType: "string";
2227
+ columnType: "PgText";
2228
+ data: string;
2229
+ driverParam: string;
2230
+ notNull: true;
2231
+ hasDefault: false;
2232
+ isPrimaryKey: false;
2233
+ isAutoincrement: false;
2234
+ hasRuntimeDefault: false;
2235
+ enumValues: [string, ...string[]];
2236
+ baseColumn: never;
2237
+ identity: undefined;
2238
+ generated: undefined;
2239
+ }, {}, {}>;
2240
+ parentId: drizzle_orm_pg_core.PgColumn<{
2241
+ name: "parent_id";
2242
+ tableName: "np_media_folders";
2243
+ dataType: "string";
2244
+ columnType: "PgUUID";
2245
+ data: string;
2246
+ driverParam: string;
2247
+ notNull: false;
2248
+ hasDefault: false;
2249
+ isPrimaryKey: false;
2250
+ isAutoincrement: false;
2251
+ hasRuntimeDefault: false;
2252
+ enumValues: undefined;
2253
+ baseColumn: never;
2254
+ identity: undefined;
2255
+ generated: undefined;
2256
+ }, {}, {}>;
2257
+ createdAt: drizzle_orm_pg_core.PgColumn<{
2258
+ name: "created_at";
2259
+ tableName: "np_media_folders";
2260
+ dataType: "date";
2261
+ columnType: "PgTimestamp";
2262
+ data: Date;
2263
+ driverParam: string;
2264
+ notNull: true;
2265
+ hasDefault: true;
2266
+ isPrimaryKey: false;
2267
+ isAutoincrement: false;
2268
+ hasRuntimeDefault: false;
2269
+ enumValues: undefined;
2270
+ baseColumn: never;
2271
+ identity: undefined;
2272
+ generated: undefined;
2273
+ }, {}, {}>;
2274
+ };
2275
+ dialect: "pg";
2276
+ }>;
2277
+ declare const npMedia: drizzle_orm_pg_core.PgTableWithColumns<{
2278
+ name: "np_media";
2279
+ schema: undefined;
2280
+ columns: {
2281
+ id: drizzle_orm_pg_core.PgColumn<{
2282
+ name: "id";
2283
+ tableName: "np_media";
2284
+ dataType: "string";
2285
+ columnType: "PgUUID";
2286
+ data: string;
2287
+ driverParam: string;
2288
+ notNull: true;
2289
+ hasDefault: true;
2290
+ isPrimaryKey: true;
2291
+ isAutoincrement: false;
2292
+ hasRuntimeDefault: false;
2293
+ enumValues: undefined;
2294
+ baseColumn: never;
2295
+ identity: undefined;
2296
+ generated: undefined;
2297
+ }, {}, {}>;
2298
+ filename: drizzle_orm_pg_core.PgColumn<{
2299
+ name: "filename";
2300
+ tableName: "np_media";
2301
+ dataType: "string";
2302
+ columnType: "PgText";
2303
+ data: string;
2304
+ driverParam: string;
2305
+ notNull: true;
2306
+ hasDefault: false;
2307
+ isPrimaryKey: false;
2308
+ isAutoincrement: false;
2309
+ hasRuntimeDefault: false;
2310
+ enumValues: [string, ...string[]];
2311
+ baseColumn: never;
2312
+ identity: undefined;
2313
+ generated: undefined;
2314
+ }, {}, {}>;
2315
+ originalFilename: drizzle_orm_pg_core.PgColumn<{
2316
+ name: "original_filename";
2317
+ tableName: "np_media";
2318
+ dataType: "string";
2319
+ columnType: "PgText";
2320
+ data: string;
2321
+ driverParam: string;
2322
+ notNull: true;
2323
+ hasDefault: false;
2324
+ isPrimaryKey: false;
2325
+ isAutoincrement: false;
2326
+ hasRuntimeDefault: false;
2327
+ enumValues: [string, ...string[]];
2328
+ baseColumn: never;
2329
+ identity: undefined;
2330
+ generated: undefined;
2331
+ }, {}, {}>;
2332
+ mimeType: drizzle_orm_pg_core.PgColumn<{
2333
+ name: "mime_type";
2334
+ tableName: "np_media";
2335
+ dataType: "string";
2336
+ columnType: "PgText";
2337
+ data: string;
2338
+ driverParam: string;
2339
+ notNull: true;
2340
+ hasDefault: false;
2341
+ isPrimaryKey: false;
2342
+ isAutoincrement: false;
2343
+ hasRuntimeDefault: false;
2344
+ enumValues: [string, ...string[]];
2345
+ baseColumn: never;
2346
+ identity: undefined;
2347
+ generated: undefined;
2348
+ }, {}, {}>;
2349
+ filesize: drizzle_orm_pg_core.PgColumn<{
2350
+ name: "filesize";
2351
+ tableName: "np_media";
2352
+ dataType: "number";
2353
+ columnType: "PgBigInt53";
2354
+ data: number;
2355
+ driverParam: string | number;
2356
+ notNull: true;
2357
+ hasDefault: false;
2358
+ isPrimaryKey: false;
2359
+ isAutoincrement: false;
2360
+ hasRuntimeDefault: false;
2361
+ enumValues: undefined;
2362
+ baseColumn: never;
2363
+ identity: undefined;
2364
+ generated: undefined;
2365
+ }, {}, {}>;
2366
+ width: drizzle_orm_pg_core.PgColumn<{
2367
+ name: "width";
2368
+ tableName: "np_media";
2369
+ dataType: "number";
2370
+ columnType: "PgInteger";
2371
+ data: number;
2372
+ driverParam: string | number;
2373
+ notNull: false;
2374
+ hasDefault: false;
2375
+ isPrimaryKey: false;
2376
+ isAutoincrement: false;
2377
+ hasRuntimeDefault: false;
2378
+ enumValues: undefined;
2379
+ baseColumn: never;
2380
+ identity: undefined;
2381
+ generated: undefined;
2382
+ }, {}, {}>;
2383
+ height: drizzle_orm_pg_core.PgColumn<{
2384
+ name: "height";
2385
+ tableName: "np_media";
2386
+ dataType: "number";
2387
+ columnType: "PgInteger";
2388
+ data: number;
2389
+ driverParam: string | number;
2390
+ notNull: false;
2391
+ hasDefault: false;
2392
+ isPrimaryKey: false;
2393
+ isAutoincrement: false;
2394
+ hasRuntimeDefault: false;
2395
+ enumValues: undefined;
2396
+ baseColumn: never;
2397
+ identity: undefined;
2398
+ generated: undefined;
2399
+ }, {}, {}>;
2400
+ alt: drizzle_orm_pg_core.PgColumn<{
2401
+ name: "alt";
2402
+ tableName: "np_media";
2403
+ dataType: "string";
2404
+ columnType: "PgText";
2405
+ data: string;
2406
+ driverParam: string;
2407
+ notNull: false;
2408
+ hasDefault: false;
2409
+ isPrimaryKey: false;
2410
+ isAutoincrement: false;
2411
+ hasRuntimeDefault: false;
2412
+ enumValues: [string, ...string[]];
2413
+ baseColumn: never;
2414
+ identity: undefined;
2415
+ generated: undefined;
2416
+ }, {}, {}>;
2417
+ caption: drizzle_orm_pg_core.PgColumn<{
2418
+ name: "caption";
2419
+ tableName: "np_media";
2420
+ dataType: "json";
2421
+ columnType: "PgJsonb";
2422
+ data: NpRichTextContent;
2423
+ driverParam: unknown;
2424
+ notNull: false;
2425
+ hasDefault: false;
2426
+ isPrimaryKey: false;
2427
+ isAutoincrement: false;
2428
+ hasRuntimeDefault: false;
2429
+ enumValues: undefined;
2430
+ baseColumn: never;
2431
+ identity: undefined;
2432
+ generated: undefined;
2433
+ }, {}, {
2434
+ $type: NpRichTextContent;
2435
+ }>;
2436
+ focalPoint: drizzle_orm_pg_core.PgColumn<{
2437
+ name: "focal_point";
2438
+ tableName: "np_media";
2439
+ dataType: "json";
2440
+ columnType: "PgJsonb";
2441
+ data: NpMediaFocalPoint;
2442
+ driverParam: unknown;
2443
+ notNull: false;
2444
+ hasDefault: false;
2445
+ isPrimaryKey: false;
2446
+ isAutoincrement: false;
2447
+ hasRuntimeDefault: false;
2448
+ enumValues: undefined;
2449
+ baseColumn: never;
2450
+ identity: undefined;
2451
+ generated: undefined;
2452
+ }, {}, {
2453
+ $type: NpMediaFocalPoint;
2454
+ }>;
2455
+ sizes: drizzle_orm_pg_core.PgColumn<{
2456
+ name: "sizes";
2457
+ tableName: "np_media";
2458
+ dataType: "json";
2459
+ columnType: "PgJsonb";
2460
+ data: NpMediaSizes;
2461
+ driverParam: unknown;
2462
+ notNull: false;
2463
+ hasDefault: false;
2464
+ isPrimaryKey: false;
2465
+ isAutoincrement: false;
2466
+ hasRuntimeDefault: false;
2467
+ enumValues: undefined;
2468
+ baseColumn: never;
2469
+ identity: undefined;
2470
+ generated: undefined;
2471
+ }, {}, {
2472
+ $type: NpMediaSizes;
2473
+ }>;
2474
+ storageKey: drizzle_orm_pg_core.PgColumn<{
2475
+ name: "storage_key";
2476
+ tableName: "np_media";
2477
+ dataType: "string";
2478
+ columnType: "PgText";
2479
+ data: string;
2480
+ driverParam: string;
2481
+ notNull: true;
2482
+ hasDefault: false;
2483
+ isPrimaryKey: false;
2484
+ isAutoincrement: false;
2485
+ hasRuntimeDefault: false;
2486
+ enumValues: [string, ...string[]];
2487
+ baseColumn: never;
2488
+ identity: undefined;
2489
+ generated: undefined;
2490
+ }, {}, {}>;
2491
+ hash: drizzle_orm_pg_core.PgColumn<{
2492
+ name: "hash";
2493
+ tableName: "np_media";
2494
+ dataType: "string";
2495
+ columnType: "PgText";
2496
+ data: string;
2497
+ driverParam: string;
2498
+ notNull: true;
2499
+ hasDefault: false;
2500
+ isPrimaryKey: false;
2501
+ isAutoincrement: false;
2502
+ hasRuntimeDefault: false;
2503
+ enumValues: [string, ...string[]];
2504
+ baseColumn: never;
2505
+ identity: undefined;
2506
+ generated: undefined;
2507
+ }, {}, {}>;
2508
+ status: drizzle_orm_pg_core.PgColumn<{
2509
+ name: "status";
2510
+ tableName: "np_media";
2511
+ dataType: "string";
2512
+ columnType: "PgEnumColumn";
2513
+ data: "error" | "processing" | "ready";
2514
+ driverParam: string;
2515
+ notNull: true;
2516
+ hasDefault: false;
2517
+ isPrimaryKey: false;
2518
+ isAutoincrement: false;
2519
+ hasRuntimeDefault: false;
2520
+ enumValues: ["processing", "ready", "error"];
2521
+ baseColumn: never;
2522
+ identity: undefined;
2523
+ generated: undefined;
2524
+ }, {}, {}>;
2525
+ folderId: drizzle_orm_pg_core.PgColumn<{
2526
+ name: "folder_id";
2527
+ tableName: "np_media";
2528
+ dataType: "string";
2529
+ columnType: "PgUUID";
2530
+ data: string;
2531
+ driverParam: string;
2532
+ notNull: false;
2533
+ hasDefault: false;
2534
+ isPrimaryKey: false;
2535
+ isAutoincrement: false;
2536
+ hasRuntimeDefault: false;
2537
+ enumValues: undefined;
2538
+ baseColumn: never;
2539
+ identity: undefined;
2540
+ generated: undefined;
2541
+ }, {}, {}>;
2542
+ uploadedBy: drizzle_orm_pg_core.PgColumn<{
2543
+ name: "uploaded_by";
2544
+ tableName: "np_media";
2545
+ dataType: "string";
2546
+ columnType: "PgUUID";
2547
+ data: string;
2548
+ driverParam: string;
2549
+ notNull: false;
2550
+ hasDefault: false;
2551
+ isPrimaryKey: false;
2552
+ isAutoincrement: false;
2553
+ hasRuntimeDefault: false;
2554
+ enumValues: undefined;
2555
+ baseColumn: never;
2556
+ identity: undefined;
2557
+ generated: undefined;
2558
+ }, {}, {}>;
2559
+ uploadedByMemberId: drizzle_orm_pg_core.PgColumn<{
2560
+ name: "uploaded_by_member_id";
2561
+ tableName: "np_media";
2562
+ dataType: "string";
2563
+ columnType: "PgUUID";
2564
+ data: string;
2565
+ driverParam: string;
2566
+ notNull: false;
2567
+ hasDefault: false;
2568
+ isPrimaryKey: false;
2569
+ isAutoincrement: false;
2570
+ hasRuntimeDefault: false;
2571
+ enumValues: undefined;
2572
+ baseColumn: never;
2573
+ identity: undefined;
2574
+ generated: undefined;
2575
+ }, {}, {}>;
2576
+ createdAt: drizzle_orm_pg_core.PgColumn<{
2577
+ name: "created_at";
2578
+ tableName: "np_media";
2579
+ dataType: "date";
2580
+ columnType: "PgTimestamp";
2581
+ data: Date;
2582
+ driverParam: string;
2583
+ notNull: true;
2584
+ hasDefault: true;
2585
+ isPrimaryKey: false;
2586
+ isAutoincrement: false;
2587
+ hasRuntimeDefault: false;
2588
+ enumValues: undefined;
2589
+ baseColumn: never;
2590
+ identity: undefined;
2591
+ generated: undefined;
2592
+ }, {}, {}>;
2593
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
2594
+ name: "updated_at";
2595
+ tableName: "np_media";
2596
+ dataType: "date";
2597
+ columnType: "PgTimestamp";
2598
+ data: Date;
2599
+ driverParam: string;
2600
+ notNull: true;
2601
+ hasDefault: true;
2602
+ isPrimaryKey: false;
2603
+ isAutoincrement: false;
2604
+ hasRuntimeDefault: false;
2605
+ enumValues: undefined;
2606
+ baseColumn: never;
2607
+ identity: undefined;
2608
+ generated: undefined;
2609
+ }, {}, {}>;
2610
+ deletedAt: drizzle_orm_pg_core.PgColumn<{
2611
+ name: "deleted_at";
2612
+ tableName: "np_media";
2613
+ dataType: "date";
2614
+ columnType: "PgTimestamp";
2615
+ data: Date;
2616
+ driverParam: string;
2617
+ notNull: false;
2618
+ hasDefault: false;
2619
+ isPrimaryKey: false;
2620
+ isAutoincrement: false;
2621
+ hasRuntimeDefault: false;
2622
+ enumValues: undefined;
2623
+ baseColumn: never;
2624
+ identity: undefined;
2625
+ generated: undefined;
2626
+ }, {}, {}>;
2627
+ };
2628
+ dialect: "pg";
2629
+ }>;
2630
+ declare const npMediaRefs: drizzle_orm_pg_core.PgTableWithColumns<{
2631
+ name: "np_media_refs";
2632
+ schema: undefined;
2633
+ columns: {
2634
+ id: drizzle_orm_pg_core.PgColumn<{
2635
+ name: "id";
2636
+ tableName: "np_media_refs";
2637
+ dataType: "string";
2638
+ columnType: "PgUUID";
2639
+ data: string;
2640
+ driverParam: string;
2641
+ notNull: true;
2642
+ hasDefault: true;
2643
+ isPrimaryKey: true;
2644
+ isAutoincrement: false;
2645
+ hasRuntimeDefault: false;
2646
+ enumValues: undefined;
2647
+ baseColumn: never;
2648
+ identity: undefined;
2649
+ generated: undefined;
2650
+ }, {}, {}>;
2651
+ mediaId: drizzle_orm_pg_core.PgColumn<{
2652
+ name: "media_id";
2653
+ tableName: "np_media_refs";
2654
+ dataType: "string";
2655
+ columnType: "PgUUID";
2656
+ data: string;
2657
+ driverParam: string;
2658
+ notNull: true;
2659
+ hasDefault: false;
2660
+ isPrimaryKey: false;
2661
+ isAutoincrement: false;
2662
+ hasRuntimeDefault: false;
2663
+ enumValues: undefined;
2664
+ baseColumn: never;
2665
+ identity: undefined;
2666
+ generated: undefined;
2667
+ }, {}, {}>;
2668
+ collection: drizzle_orm_pg_core.PgColumn<{
2669
+ name: "collection";
2670
+ tableName: "np_media_refs";
2671
+ dataType: "string";
2672
+ columnType: "PgText";
2673
+ data: string;
2674
+ driverParam: string;
2675
+ notNull: true;
2676
+ hasDefault: false;
2677
+ isPrimaryKey: false;
2678
+ isAutoincrement: false;
2679
+ hasRuntimeDefault: false;
2680
+ enumValues: [string, ...string[]];
2681
+ baseColumn: never;
2682
+ identity: undefined;
2683
+ generated: undefined;
2684
+ }, {}, {}>;
2685
+ documentId: drizzle_orm_pg_core.PgColumn<{
2686
+ name: "document_id";
2687
+ tableName: "np_media_refs";
2688
+ dataType: "string";
2689
+ columnType: "PgText";
2690
+ data: string;
2691
+ driverParam: string;
2692
+ notNull: true;
2693
+ hasDefault: false;
2694
+ isPrimaryKey: false;
2695
+ isAutoincrement: false;
2696
+ hasRuntimeDefault: false;
2697
+ enumValues: [string, ...string[]];
2698
+ baseColumn: never;
2699
+ identity: undefined;
2700
+ generated: undefined;
2701
+ }, {}, {}>;
2702
+ field: drizzle_orm_pg_core.PgColumn<{
2703
+ name: "field";
2704
+ tableName: "np_media_refs";
2705
+ dataType: "string";
2706
+ columnType: "PgText";
2707
+ data: string;
2708
+ driverParam: string;
2709
+ notNull: true;
2710
+ hasDefault: false;
2711
+ isPrimaryKey: false;
2712
+ isAutoincrement: false;
2713
+ hasRuntimeDefault: false;
2714
+ enumValues: [string, ...string[]];
2715
+ baseColumn: never;
2716
+ identity: undefined;
2717
+ generated: undefined;
2718
+ }, {}, {}>;
2719
+ };
2720
+ dialect: "pg";
2721
+ }>;
2722
+
2723
+ declare const npUsersRelations: drizzle_orm.Relations<"np_users", {
2724
+ avatarMedia: drizzle_orm.One<"np_media", false>;
2725
+ sessions: drizzle_orm.Many<"np_sessions">;
2726
+ revisions: drizzle_orm.Many<"np_revisions">;
2727
+ updatedSettings: drizzle_orm.Many<"np_settings">;
2728
+ updatedNavigation: drizzle_orm.Many<"np_navigation">;
2729
+ uploadedMedia: drizzle_orm.Many<"np_media">;
2730
+ }>;
2731
+ declare const npSessionsRelations: drizzle_orm.Relations<"np_sessions", {
2732
+ user: drizzle_orm.One<"np_users", true>;
2733
+ }>;
2734
+ declare const npRevisionsRelations: drizzle_orm.Relations<"np_revisions", {
2735
+ author: drizzle_orm.One<"np_users", false>;
2736
+ }>;
2737
+ declare const npSettingsRelations: drizzle_orm.Relations<"np_settings", {
2738
+ updater: drizzle_orm.One<"np_users", false>;
2739
+ }>;
2740
+ declare const npNavigationRelations: drizzle_orm.Relations<"np_navigation", {
2741
+ updater: drizzle_orm.One<"np_users", false>;
2742
+ }>;
2743
+ declare const npMediaFoldersRelations: drizzle_orm.Relations<"np_media_folders", {
2744
+ parent: drizzle_orm.One<"np_media_folders", false>;
2745
+ children: drizzle_orm.Many<"np_media_folders">;
2746
+ media: drizzle_orm.Many<"np_media">;
2747
+ }>;
2748
+ declare const npMediaRelations: drizzle_orm.Relations<"np_media", {
2749
+ folder: drizzle_orm.One<"np_media_folders", false>;
2750
+ uploader: drizzle_orm.One<"np_users", false>;
2751
+ avatarUsers: drizzle_orm.Many<"np_users">;
2752
+ refs: drizzle_orm.Many<"np_media_refs">;
2753
+ }>;
2754
+ declare const npMediaRefsRelations: drizzle_orm.Relations<"np_media_refs", {
2755
+ media: drizzle_orm.One<"np_media", true>;
2756
+ }>;
2757
+
2758
+ declare const npUserRoleEnum: drizzle_orm_pg_core.PgEnum<["admin", "editor", "moderator", "author", "viewer"]>;
2759
+ declare const npRevisionStatusEnum: drizzle_orm_pg_core.PgEnum<["draft", "published", "autosave"]>;
2760
+ type NpRevisionSnapshot = Record<string, unknown> & {
2761
+ blocks?: NpBlockInstance[];
2762
+ content?: NpRichTextContent;
2763
+ };
2764
+ declare const npPasswordResetPurposeEnum: drizzle_orm_pg_core.PgEnum<["invite", "reset"]>;
2765
+ declare const npUsers: drizzle_orm_pg_core.PgTableWithColumns<{
2766
+ name: "np_users";
2767
+ schema: undefined;
2768
+ columns: {
2769
+ id: drizzle_orm_pg_core.PgColumn<{
2770
+ name: "id";
2771
+ tableName: "np_users";
2772
+ dataType: "string";
2773
+ columnType: "PgUUID";
2774
+ data: string;
2775
+ driverParam: string;
2776
+ notNull: true;
2777
+ hasDefault: true;
2778
+ isPrimaryKey: true;
2779
+ isAutoincrement: false;
2780
+ hasRuntimeDefault: false;
2781
+ enumValues: undefined;
2782
+ baseColumn: never;
2783
+ identity: undefined;
2784
+ generated: undefined;
2785
+ }, {}, {}>;
2786
+ email: drizzle_orm_pg_core.PgColumn<{
2787
+ name: "email";
2788
+ tableName: "np_users";
2789
+ dataType: "string";
2790
+ columnType: "PgText";
2791
+ data: string;
2792
+ driverParam: string;
2793
+ notNull: true;
2794
+ hasDefault: false;
2795
+ isPrimaryKey: false;
2796
+ isAutoincrement: false;
2797
+ hasRuntimeDefault: false;
2798
+ enumValues: [string, ...string[]];
2799
+ baseColumn: never;
2800
+ identity: undefined;
2801
+ generated: undefined;
2802
+ }, {}, {}>;
2803
+ password: drizzle_orm_pg_core.PgColumn<{
2804
+ name: "password";
2805
+ tableName: "np_users";
2806
+ dataType: "string";
2807
+ columnType: "PgText";
2808
+ data: string;
2809
+ driverParam: string;
2810
+ notNull: true;
2811
+ hasDefault: false;
2812
+ isPrimaryKey: false;
2813
+ isAutoincrement: false;
2814
+ hasRuntimeDefault: false;
2815
+ enumValues: [string, ...string[]];
2816
+ baseColumn: never;
2817
+ identity: undefined;
2818
+ generated: undefined;
2819
+ }, {}, {}>;
2820
+ name: drizzle_orm_pg_core.PgColumn<{
2821
+ name: "name";
2822
+ tableName: "np_users";
2823
+ dataType: "string";
2824
+ columnType: "PgText";
2825
+ data: string;
2826
+ driverParam: string;
2827
+ notNull: true;
2828
+ hasDefault: false;
2829
+ isPrimaryKey: false;
2830
+ isAutoincrement: false;
2831
+ hasRuntimeDefault: false;
2832
+ enumValues: [string, ...string[]];
2833
+ baseColumn: never;
2834
+ identity: undefined;
2835
+ generated: undefined;
2836
+ }, {}, {}>;
2837
+ role: drizzle_orm_pg_core.PgColumn<{
2838
+ name: "role";
2839
+ tableName: "np_users";
2840
+ dataType: "string";
2841
+ columnType: "PgEnumColumn";
2842
+ data: "admin" | "editor" | "moderator" | "author" | "viewer";
2843
+ driverParam: string;
2844
+ notNull: true;
2845
+ hasDefault: false;
2846
+ isPrimaryKey: false;
2847
+ isAutoincrement: false;
2848
+ hasRuntimeDefault: false;
2849
+ enumValues: ["admin", "editor", "moderator", "author", "viewer"];
2850
+ baseColumn: never;
2851
+ identity: undefined;
2852
+ generated: undefined;
2853
+ }, {}, {}>;
2854
+ isSuperAdmin: drizzle_orm_pg_core.PgColumn<{
2855
+ name: "is_super_admin";
2856
+ tableName: "np_users";
2857
+ dataType: "boolean";
2858
+ columnType: "PgBoolean";
2859
+ data: boolean;
2860
+ driverParam: boolean;
2861
+ notNull: true;
2862
+ hasDefault: true;
2863
+ isPrimaryKey: false;
2864
+ isAutoincrement: false;
2865
+ hasRuntimeDefault: false;
2866
+ enumValues: undefined;
2867
+ baseColumn: never;
2868
+ identity: undefined;
2869
+ generated: undefined;
2870
+ }, {}, {}>;
2871
+ avatar: drizzle_orm_pg_core.PgColumn<{
2872
+ name: "avatar";
2873
+ tableName: "np_users";
2874
+ dataType: "string";
2875
+ columnType: "PgUUID";
2876
+ data: string;
2877
+ driverParam: string;
2878
+ notNull: false;
2879
+ hasDefault: false;
2880
+ isPrimaryKey: false;
2881
+ isAutoincrement: false;
2882
+ hasRuntimeDefault: false;
2883
+ enumValues: undefined;
2884
+ baseColumn: never;
2885
+ identity: undefined;
2886
+ generated: undefined;
2887
+ }, {}, {}>;
2888
+ loginAttempts: drizzle_orm_pg_core.PgColumn<{
2889
+ name: "login_attempts";
2890
+ tableName: "np_users";
2891
+ dataType: "number";
2892
+ columnType: "PgInteger";
2893
+ data: number;
2894
+ driverParam: string | number;
2895
+ notNull: true;
2896
+ hasDefault: true;
2897
+ isPrimaryKey: false;
2898
+ isAutoincrement: false;
2899
+ hasRuntimeDefault: false;
2900
+ enumValues: undefined;
2901
+ baseColumn: never;
2902
+ identity: undefined;
2903
+ generated: undefined;
2904
+ }, {}, {}>;
2905
+ lockUntil: drizzle_orm_pg_core.PgColumn<{
2906
+ name: "lock_until";
2907
+ tableName: "np_users";
2908
+ dataType: "date";
2909
+ columnType: "PgTimestamp";
2910
+ data: Date;
2911
+ driverParam: string;
2912
+ notNull: false;
2913
+ hasDefault: false;
2914
+ isPrimaryKey: false;
2915
+ isAutoincrement: false;
2916
+ hasRuntimeDefault: false;
2917
+ enumValues: undefined;
2918
+ baseColumn: never;
2919
+ identity: undefined;
2920
+ generated: undefined;
2921
+ }, {}, {}>;
2922
+ tokenVersion: drizzle_orm_pg_core.PgColumn<{
2923
+ name: "token_version";
2924
+ tableName: "np_users";
2925
+ dataType: "number";
2926
+ columnType: "PgInteger";
2927
+ data: number;
2928
+ driverParam: string | number;
2929
+ notNull: true;
2930
+ hasDefault: true;
2931
+ isPrimaryKey: false;
2932
+ isAutoincrement: false;
2933
+ hasRuntimeDefault: false;
2934
+ enumValues: undefined;
2935
+ baseColumn: never;
2936
+ identity: undefined;
2937
+ generated: undefined;
2938
+ }, {}, {}>;
2939
+ passwordResetTokenHash: drizzle_orm_pg_core.PgColumn<{
2940
+ name: "password_reset_token_hash";
2941
+ tableName: "np_users";
2942
+ dataType: "string";
2943
+ columnType: "PgText";
2944
+ data: string;
2945
+ driverParam: string;
2946
+ notNull: false;
2947
+ hasDefault: false;
2948
+ isPrimaryKey: false;
2949
+ isAutoincrement: false;
2950
+ hasRuntimeDefault: false;
2951
+ enumValues: [string, ...string[]];
2952
+ baseColumn: never;
2953
+ identity: undefined;
2954
+ generated: undefined;
2955
+ }, {}, {}>;
2956
+ passwordResetExpiresAt: drizzle_orm_pg_core.PgColumn<{
2957
+ name: "password_reset_expires_at";
2958
+ tableName: "np_users";
2959
+ dataType: "date";
2960
+ columnType: "PgTimestamp";
2961
+ data: Date;
2962
+ driverParam: string;
2963
+ notNull: false;
2964
+ hasDefault: false;
2965
+ isPrimaryKey: false;
2966
+ isAutoincrement: false;
2967
+ hasRuntimeDefault: false;
2968
+ enumValues: undefined;
2969
+ baseColumn: never;
2970
+ identity: undefined;
2971
+ generated: undefined;
2972
+ }, {}, {}>;
2973
+ passwordResetPurpose: drizzle_orm_pg_core.PgColumn<{
2974
+ name: "password_reset_purpose";
2975
+ tableName: "np_users";
2976
+ dataType: "string";
2977
+ columnType: "PgEnumColumn";
2978
+ data: "invite" | "reset";
2979
+ driverParam: string;
2980
+ notNull: false;
2981
+ hasDefault: false;
2982
+ isPrimaryKey: false;
2983
+ isAutoincrement: false;
2984
+ hasRuntimeDefault: false;
2985
+ enumValues: ["invite", "reset"];
2986
+ baseColumn: never;
2987
+ identity: undefined;
2988
+ generated: undefined;
2989
+ }, {}, {}>;
2990
+ createdAt: drizzle_orm_pg_core.PgColumn<{
2991
+ name: "created_at";
2992
+ tableName: "np_users";
2993
+ dataType: "date";
2994
+ columnType: "PgTimestamp";
2995
+ data: Date;
2996
+ driverParam: string;
2997
+ notNull: true;
2998
+ hasDefault: true;
2999
+ isPrimaryKey: false;
3000
+ isAutoincrement: false;
3001
+ hasRuntimeDefault: false;
3002
+ enumValues: undefined;
3003
+ baseColumn: never;
3004
+ identity: undefined;
3005
+ generated: undefined;
3006
+ }, {}, {}>;
3007
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
3008
+ name: "updated_at";
3009
+ tableName: "np_users";
3010
+ dataType: "date";
3011
+ columnType: "PgTimestamp";
3012
+ data: Date;
3013
+ driverParam: string;
3014
+ notNull: true;
3015
+ hasDefault: true;
3016
+ isPrimaryKey: false;
3017
+ isAutoincrement: false;
3018
+ hasRuntimeDefault: false;
3019
+ enumValues: undefined;
3020
+ baseColumn: never;
3021
+ identity: undefined;
3022
+ generated: undefined;
3023
+ }, {}, {}>;
3024
+ };
3025
+ dialect: "pg";
3026
+ }>;
3027
+ /**
3028
+ * Phase 15.5 — per-site role grants. A user can hold a
3029
+ * different role on each site they're a member of (admin on
3030
+ * `acme`, editor on `partner-blog`, no role on `internal`).
3031
+ * Composite PK on (site_id, user_id) so each pair is unique;
3032
+ * the role enum reuses the existing `np_user_role` so the
3033
+ * concept stays consistent across the framework.
3034
+ *
3035
+ * `npUsers.role` becomes the "global default role" — used in
3036
+ * single-tenant contexts and as the fallback when a user has
3037
+ * no explicit membership on the current site. Most operators
3038
+ * will give cross-site users an explicit membership per
3039
+ * site they should access; the `is_super_admin` flag
3040
+ * separately bypasses the membership check entirely.
3041
+ */
3042
+ declare const npSiteMemberships: drizzle_orm_pg_core.PgTableWithColumns<{
3043
+ name: "np_site_memberships";
3044
+ schema: undefined;
3045
+ columns: {
3046
+ siteId: drizzle_orm_pg_core.PgColumn<{
3047
+ name: "site_id";
3048
+ tableName: "np_site_memberships";
3049
+ dataType: "string";
3050
+ columnType: "PgText";
3051
+ data: string;
3052
+ driverParam: string;
3053
+ notNull: true;
3054
+ hasDefault: false;
3055
+ isPrimaryKey: false;
3056
+ isAutoincrement: false;
3057
+ hasRuntimeDefault: false;
3058
+ enumValues: [string, ...string[]];
3059
+ baseColumn: never;
3060
+ identity: undefined;
3061
+ generated: undefined;
3062
+ }, {}, {}>;
3063
+ userId: drizzle_orm_pg_core.PgColumn<{
3064
+ name: "user_id";
3065
+ tableName: "np_site_memberships";
3066
+ dataType: "string";
3067
+ columnType: "PgUUID";
3068
+ data: string;
3069
+ driverParam: string;
3070
+ notNull: true;
3071
+ hasDefault: false;
3072
+ isPrimaryKey: false;
3073
+ isAutoincrement: false;
3074
+ hasRuntimeDefault: false;
3075
+ enumValues: undefined;
3076
+ baseColumn: never;
3077
+ identity: undefined;
3078
+ generated: undefined;
3079
+ }, {}, {}>;
3080
+ role: drizzle_orm_pg_core.PgColumn<{
3081
+ name: "role";
3082
+ tableName: "np_site_memberships";
3083
+ dataType: "string";
3084
+ columnType: "PgEnumColumn";
3085
+ data: "admin" | "editor" | "moderator" | "author" | "viewer";
3086
+ driverParam: string;
3087
+ notNull: true;
3088
+ hasDefault: false;
3089
+ isPrimaryKey: false;
3090
+ isAutoincrement: false;
3091
+ hasRuntimeDefault: false;
3092
+ enumValues: ["admin", "editor", "moderator", "author", "viewer"];
3093
+ baseColumn: never;
3094
+ identity: undefined;
3095
+ generated: undefined;
3096
+ }, {}, {}>;
3097
+ createdAt: drizzle_orm_pg_core.PgColumn<{
3098
+ name: "created_at";
3099
+ tableName: "np_site_memberships";
3100
+ dataType: "date";
3101
+ columnType: "PgTimestamp";
3102
+ data: Date;
3103
+ driverParam: string;
3104
+ notNull: true;
3105
+ hasDefault: true;
3106
+ isPrimaryKey: false;
3107
+ isAutoincrement: false;
3108
+ hasRuntimeDefault: false;
3109
+ enumValues: undefined;
3110
+ baseColumn: never;
3111
+ identity: undefined;
3112
+ generated: undefined;
3113
+ }, {}, {}>;
3114
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
3115
+ name: "updated_at";
3116
+ tableName: "np_site_memberships";
3117
+ dataType: "date";
3118
+ columnType: "PgTimestamp";
3119
+ data: Date;
3120
+ driverParam: string;
3121
+ notNull: true;
3122
+ hasDefault: true;
3123
+ isPrimaryKey: false;
3124
+ isAutoincrement: false;
3125
+ hasRuntimeDefault: false;
3126
+ enumValues: undefined;
3127
+ baseColumn: never;
3128
+ identity: undefined;
3129
+ generated: undefined;
3130
+ }, {}, {}>;
3131
+ };
3132
+ dialect: "pg";
3133
+ }>;
3134
+ /**
3135
+ * Per-user OAuth identity links. A user can have one identity per provider
3136
+ * (composite unique on `(provider, providerUserId)` AND on `(userId,
3137
+ * provider)`). The first identity is created either when the OAuth
3138
+ * callback finds an existing user with the same email, or when a brand-
3139
+ * new user is auto-created from the OAuth profile (default role
3140
+ * `viewer`).
3141
+ */
3142
+ declare const npUserOAuthIdentities: drizzle_orm_pg_core.PgTableWithColumns<{
3143
+ name: "np_user_oauth_identities";
3144
+ schema: undefined;
3145
+ columns: {
3146
+ id: drizzle_orm_pg_core.PgColumn<{
3147
+ name: "id";
3148
+ tableName: "np_user_oauth_identities";
3149
+ dataType: "string";
3150
+ columnType: "PgUUID";
3151
+ data: string;
3152
+ driverParam: string;
3153
+ notNull: true;
3154
+ hasDefault: true;
3155
+ isPrimaryKey: true;
3156
+ isAutoincrement: false;
3157
+ hasRuntimeDefault: false;
3158
+ enumValues: undefined;
3159
+ baseColumn: never;
3160
+ identity: undefined;
3161
+ generated: undefined;
3162
+ }, {}, {}>;
3163
+ userId: drizzle_orm_pg_core.PgColumn<{
3164
+ name: "user_id";
3165
+ tableName: "np_user_oauth_identities";
3166
+ dataType: "string";
3167
+ columnType: "PgUUID";
3168
+ data: string;
3169
+ driverParam: string;
3170
+ notNull: true;
3171
+ hasDefault: false;
3172
+ isPrimaryKey: false;
3173
+ isAutoincrement: false;
3174
+ hasRuntimeDefault: false;
3175
+ enumValues: undefined;
3176
+ baseColumn: never;
3177
+ identity: undefined;
3178
+ generated: undefined;
3179
+ }, {}, {}>;
3180
+ provider: drizzle_orm_pg_core.PgColumn<{
3181
+ name: "provider";
3182
+ tableName: "np_user_oauth_identities";
3183
+ dataType: "string";
3184
+ columnType: "PgText";
3185
+ data: string;
3186
+ driverParam: string;
3187
+ notNull: true;
3188
+ hasDefault: false;
3189
+ isPrimaryKey: false;
3190
+ isAutoincrement: false;
3191
+ hasRuntimeDefault: false;
3192
+ enumValues: [string, ...string[]];
3193
+ baseColumn: never;
3194
+ identity: undefined;
3195
+ generated: undefined;
3196
+ }, {}, {}>;
3197
+ providerUserId: drizzle_orm_pg_core.PgColumn<{
3198
+ name: "provider_user_id";
3199
+ tableName: "np_user_oauth_identities";
3200
+ dataType: "string";
3201
+ columnType: "PgText";
3202
+ data: string;
3203
+ driverParam: string;
3204
+ notNull: true;
3205
+ hasDefault: false;
3206
+ isPrimaryKey: false;
3207
+ isAutoincrement: false;
3208
+ hasRuntimeDefault: false;
3209
+ enumValues: [string, ...string[]];
3210
+ baseColumn: never;
3211
+ identity: undefined;
3212
+ generated: undefined;
3213
+ }, {}, {}>;
3214
+ metadata: drizzle_orm_pg_core.PgColumn<{
3215
+ name: "metadata";
3216
+ tableName: "np_user_oauth_identities";
3217
+ dataType: "json";
3218
+ columnType: "PgJsonb";
3219
+ data: Record<string, unknown>;
3220
+ driverParam: unknown;
3221
+ notNull: true;
3222
+ hasDefault: true;
3223
+ isPrimaryKey: false;
3224
+ isAutoincrement: false;
3225
+ hasRuntimeDefault: false;
3226
+ enumValues: undefined;
3227
+ baseColumn: never;
3228
+ identity: undefined;
3229
+ generated: undefined;
3230
+ }, {}, {
3231
+ $type: Record<string, unknown>;
3232
+ }>;
3233
+ createdAt: drizzle_orm_pg_core.PgColumn<{
3234
+ name: "created_at";
3235
+ tableName: "np_user_oauth_identities";
3236
+ dataType: "date";
3237
+ columnType: "PgTimestamp";
3238
+ data: Date;
3239
+ driverParam: string;
3240
+ notNull: true;
3241
+ hasDefault: true;
3242
+ isPrimaryKey: false;
3243
+ isAutoincrement: false;
3244
+ hasRuntimeDefault: false;
3245
+ enumValues: undefined;
3246
+ baseColumn: never;
3247
+ identity: undefined;
3248
+ generated: undefined;
3249
+ }, {}, {}>;
3250
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
3251
+ name: "updated_at";
3252
+ tableName: "np_user_oauth_identities";
3253
+ dataType: "date";
3254
+ columnType: "PgTimestamp";
3255
+ data: Date;
3256
+ driverParam: string;
3257
+ notNull: true;
3258
+ hasDefault: true;
3259
+ isPrimaryKey: false;
3260
+ isAutoincrement: false;
3261
+ hasRuntimeDefault: false;
3262
+ enumValues: undefined;
3263
+ baseColumn: never;
3264
+ identity: undefined;
3265
+ generated: undefined;
3266
+ }, {}, {}>;
3267
+ };
3268
+ dialect: "pg";
3269
+ }>;
3270
+ declare const npSessions: drizzle_orm_pg_core.PgTableWithColumns<{
3271
+ name: "np_sessions";
3272
+ schema: undefined;
3273
+ columns: {
3274
+ id: drizzle_orm_pg_core.PgColumn<{
3275
+ name: "id";
3276
+ tableName: "np_sessions";
3277
+ dataType: "string";
3278
+ columnType: "PgUUID";
3279
+ data: string;
3280
+ driverParam: string;
3281
+ notNull: true;
3282
+ hasDefault: true;
3283
+ isPrimaryKey: true;
3284
+ isAutoincrement: false;
3285
+ hasRuntimeDefault: false;
3286
+ enumValues: undefined;
3287
+ baseColumn: never;
3288
+ identity: undefined;
3289
+ generated: undefined;
3290
+ }, {}, {}>;
3291
+ userId: drizzle_orm_pg_core.PgColumn<{
3292
+ name: "user_id";
3293
+ tableName: "np_sessions";
3294
+ dataType: "string";
3295
+ columnType: "PgUUID";
3296
+ data: string;
3297
+ driverParam: string;
3298
+ notNull: true;
3299
+ hasDefault: false;
3300
+ isPrimaryKey: false;
3301
+ isAutoincrement: false;
3302
+ hasRuntimeDefault: false;
3303
+ enumValues: undefined;
3304
+ baseColumn: never;
3305
+ identity: undefined;
3306
+ generated: undefined;
3307
+ }, {}, {}>;
3308
+ tokenHash: drizzle_orm_pg_core.PgColumn<{
3309
+ name: "token_hash";
3310
+ tableName: "np_sessions";
3311
+ dataType: "string";
3312
+ columnType: "PgText";
3313
+ data: string;
3314
+ driverParam: string;
3315
+ notNull: true;
3316
+ hasDefault: false;
3317
+ isPrimaryKey: false;
3318
+ isAutoincrement: false;
3319
+ hasRuntimeDefault: false;
3320
+ enumValues: [string, ...string[]];
3321
+ baseColumn: never;
3322
+ identity: undefined;
3323
+ generated: undefined;
3324
+ }, {}, {}>;
3325
+ userAgent: drizzle_orm_pg_core.PgColumn<{
3326
+ name: "user_agent";
3327
+ tableName: "np_sessions";
3328
+ dataType: "string";
3329
+ columnType: "PgText";
3330
+ data: string;
3331
+ driverParam: string;
3332
+ notNull: false;
3333
+ hasDefault: false;
3334
+ isPrimaryKey: false;
3335
+ isAutoincrement: false;
3336
+ hasRuntimeDefault: false;
3337
+ enumValues: [string, ...string[]];
3338
+ baseColumn: never;
3339
+ identity: undefined;
3340
+ generated: undefined;
3341
+ }, {}, {}>;
3342
+ ip: drizzle_orm_pg_core.PgColumn<{
3343
+ name: "ip";
3344
+ tableName: "np_sessions";
3345
+ dataType: "string";
3346
+ columnType: "PgText";
3347
+ data: string;
3348
+ driverParam: string;
3349
+ notNull: false;
3350
+ hasDefault: false;
3351
+ isPrimaryKey: false;
3352
+ isAutoincrement: false;
3353
+ hasRuntimeDefault: false;
3354
+ enumValues: [string, ...string[]];
3355
+ baseColumn: never;
3356
+ identity: undefined;
3357
+ generated: undefined;
3358
+ }, {}, {}>;
3359
+ expiresAt: drizzle_orm_pg_core.PgColumn<{
3360
+ name: "expires_at";
3361
+ tableName: "np_sessions";
3362
+ dataType: "date";
3363
+ columnType: "PgTimestamp";
3364
+ data: Date;
3365
+ driverParam: string;
3366
+ notNull: true;
3367
+ hasDefault: false;
3368
+ isPrimaryKey: false;
3369
+ isAutoincrement: false;
3370
+ hasRuntimeDefault: false;
3371
+ enumValues: undefined;
3372
+ baseColumn: never;
3373
+ identity: undefined;
3374
+ generated: undefined;
3375
+ }, {}, {}>;
3376
+ createdAt: drizzle_orm_pg_core.PgColumn<{
3377
+ name: "created_at";
3378
+ tableName: "np_sessions";
3379
+ dataType: "date";
3380
+ columnType: "PgTimestamp";
3381
+ data: Date;
3382
+ driverParam: string;
3383
+ notNull: true;
3384
+ hasDefault: true;
3385
+ isPrimaryKey: false;
3386
+ isAutoincrement: false;
3387
+ hasRuntimeDefault: false;
3388
+ enumValues: undefined;
3389
+ baseColumn: never;
3390
+ identity: undefined;
3391
+ generated: undefined;
3392
+ }, {}, {}>;
3393
+ };
3394
+ dialect: "pg";
3395
+ }>;
3396
+ declare const npRevisions: drizzle_orm_pg_core.PgTableWithColumns<{
3397
+ name: "np_revisions";
3398
+ schema: undefined;
3399
+ columns: {
3400
+ id: drizzle_orm_pg_core.PgColumn<{
3401
+ name: "id";
3402
+ tableName: "np_revisions";
3403
+ dataType: "string";
3404
+ columnType: "PgUUID";
3405
+ data: string;
3406
+ driverParam: string;
3407
+ notNull: true;
3408
+ hasDefault: true;
3409
+ isPrimaryKey: true;
3410
+ isAutoincrement: false;
3411
+ hasRuntimeDefault: false;
3412
+ enumValues: undefined;
3413
+ baseColumn: never;
3414
+ identity: undefined;
3415
+ generated: undefined;
3416
+ }, {}, {}>;
3417
+ collection: drizzle_orm_pg_core.PgColumn<{
3418
+ name: "collection";
3419
+ tableName: "np_revisions";
3420
+ dataType: "string";
3421
+ columnType: "PgText";
3422
+ data: string;
3423
+ driverParam: string;
3424
+ notNull: true;
3425
+ hasDefault: false;
3426
+ isPrimaryKey: false;
3427
+ isAutoincrement: false;
3428
+ hasRuntimeDefault: false;
3429
+ enumValues: [string, ...string[]];
3430
+ baseColumn: never;
3431
+ identity: undefined;
3432
+ generated: undefined;
3433
+ }, {}, {}>;
3434
+ documentId: drizzle_orm_pg_core.PgColumn<{
3435
+ name: "document_id";
3436
+ tableName: "np_revisions";
3437
+ dataType: "string";
3438
+ columnType: "PgText";
3439
+ data: string;
3440
+ driverParam: string;
3441
+ notNull: true;
3442
+ hasDefault: false;
3443
+ isPrimaryKey: false;
3444
+ isAutoincrement: false;
3445
+ hasRuntimeDefault: false;
3446
+ enumValues: [string, ...string[]];
3447
+ baseColumn: never;
3448
+ identity: undefined;
3449
+ generated: undefined;
3450
+ }, {}, {}>;
3451
+ version: drizzle_orm_pg_core.PgColumn<{
3452
+ name: "version";
3453
+ tableName: "np_revisions";
3454
+ dataType: "number";
3455
+ columnType: "PgInteger";
3456
+ data: number;
3457
+ driverParam: string | number;
3458
+ notNull: true;
3459
+ hasDefault: false;
3460
+ isPrimaryKey: false;
3461
+ isAutoincrement: false;
3462
+ hasRuntimeDefault: false;
3463
+ enumValues: undefined;
3464
+ baseColumn: never;
3465
+ identity: undefined;
3466
+ generated: undefined;
3467
+ }, {}, {}>;
3468
+ status: drizzle_orm_pg_core.PgColumn<{
3469
+ name: "status";
3470
+ tableName: "np_revisions";
3471
+ dataType: "string";
3472
+ columnType: "PgEnumColumn";
3473
+ data: "published" | "draft" | "autosave";
3474
+ driverParam: string;
3475
+ notNull: true;
3476
+ hasDefault: false;
3477
+ isPrimaryKey: false;
3478
+ isAutoincrement: false;
3479
+ hasRuntimeDefault: false;
3480
+ enumValues: ["draft", "published", "autosave"];
3481
+ baseColumn: never;
3482
+ identity: undefined;
3483
+ generated: undefined;
3484
+ }, {}, {}>;
3485
+ snapshot: drizzle_orm_pg_core.PgColumn<{
3486
+ name: "snapshot";
3487
+ tableName: "np_revisions";
3488
+ dataType: "json";
3489
+ columnType: "PgJsonb";
3490
+ data: NpRevisionSnapshot;
3491
+ driverParam: unknown;
3492
+ notNull: true;
3493
+ hasDefault: false;
3494
+ isPrimaryKey: false;
3495
+ isAutoincrement: false;
3496
+ hasRuntimeDefault: false;
3497
+ enumValues: undefined;
3498
+ baseColumn: never;
3499
+ identity: undefined;
3500
+ generated: undefined;
3501
+ }, {}, {
3502
+ $type: NpRevisionSnapshot;
3503
+ }>;
3504
+ changedFields: drizzle_orm_pg_core.PgColumn<{
3505
+ name: "changed_fields";
3506
+ tableName: "np_revisions";
3507
+ dataType: "array";
3508
+ columnType: "PgArray";
3509
+ data: string[];
3510
+ driverParam: string | string[];
3511
+ notNull: true;
3512
+ hasDefault: false;
3513
+ isPrimaryKey: false;
3514
+ isAutoincrement: false;
3515
+ hasRuntimeDefault: false;
3516
+ enumValues: [string, ...string[]];
3517
+ baseColumn: drizzle_orm.Column<{
3518
+ name: "changed_fields";
3519
+ tableName: "np_revisions";
3520
+ dataType: "string";
3521
+ columnType: "PgText";
3522
+ data: string;
3523
+ driverParam: string;
3524
+ notNull: false;
3525
+ hasDefault: false;
3526
+ isPrimaryKey: false;
3527
+ isAutoincrement: false;
3528
+ hasRuntimeDefault: false;
3529
+ enumValues: [string, ...string[]];
3530
+ baseColumn: never;
3531
+ identity: undefined;
3532
+ generated: undefined;
3533
+ }, {}, {}>;
3534
+ identity: undefined;
3535
+ generated: undefined;
3536
+ }, {}, {
3537
+ baseBuilder: drizzle_orm_pg_core.PgColumnBuilder<{
3538
+ name: "changed_fields";
3539
+ dataType: "string";
3540
+ columnType: "PgText";
3541
+ data: string;
3542
+ enumValues: [string, ...string[]];
3543
+ driverParam: string;
3544
+ }, {}, {}, drizzle_orm.ColumnBuilderExtraConfig>;
3545
+ size: undefined;
3546
+ }>;
3547
+ authorId: drizzle_orm_pg_core.PgColumn<{
3548
+ name: "author_id";
3549
+ tableName: "np_revisions";
3550
+ dataType: "string";
3551
+ columnType: "PgUUID";
3552
+ data: string;
3553
+ driverParam: string;
3554
+ notNull: false;
3555
+ hasDefault: false;
3556
+ isPrimaryKey: false;
3557
+ isAutoincrement: false;
3558
+ hasRuntimeDefault: false;
3559
+ enumValues: undefined;
3560
+ baseColumn: never;
3561
+ identity: undefined;
3562
+ generated: undefined;
3563
+ }, {}, {}>;
3564
+ createdAt: drizzle_orm_pg_core.PgColumn<{
3565
+ name: "created_at";
3566
+ tableName: "np_revisions";
3567
+ dataType: "date";
3568
+ columnType: "PgTimestamp";
3569
+ data: Date;
3570
+ driverParam: string;
3571
+ notNull: true;
3572
+ hasDefault: true;
3573
+ isPrimaryKey: false;
3574
+ isAutoincrement: false;
3575
+ hasRuntimeDefault: false;
3576
+ enumValues: undefined;
3577
+ baseColumn: never;
3578
+ identity: undefined;
3579
+ generated: undefined;
3580
+ }, {}, {}>;
3581
+ };
3582
+ dialect: "pg";
3583
+ }>;
3584
+ /**
3585
+ * Phase 15.4 — settings are scoped per site so each tenant
3586
+ * has its own active theme, theme tokens, SEO config, etc.
3587
+ * Single-tenant deployments leave every row at
3588
+ * `site_id = 'default'`, matching the framework's
3589
+ * default-site invariant. Composite PK on (site_id, key) so
3590
+ * the same key (e.g. `activeTheme`) can take different
3591
+ * values per tenant.
3592
+ */
3593
+ declare const npSettings: drizzle_orm_pg_core.PgTableWithColumns<{
3594
+ name: "np_settings";
3595
+ schema: undefined;
3596
+ columns: {
3597
+ siteId: drizzle_orm_pg_core.PgColumn<{
3598
+ name: "site_id";
3599
+ tableName: "np_settings";
3600
+ dataType: "string";
3601
+ columnType: "PgText";
3602
+ data: string;
3603
+ driverParam: string;
3604
+ notNull: true;
3605
+ hasDefault: true;
3606
+ isPrimaryKey: false;
3607
+ isAutoincrement: false;
3608
+ hasRuntimeDefault: false;
3609
+ enumValues: [string, ...string[]];
3610
+ baseColumn: never;
3611
+ identity: undefined;
3612
+ generated: undefined;
3613
+ }, {}, {}>;
3614
+ key: drizzle_orm_pg_core.PgColumn<{
3615
+ name: "key";
3616
+ tableName: "np_settings";
3617
+ dataType: "string";
3618
+ columnType: "PgText";
3619
+ data: string;
3620
+ driverParam: string;
3621
+ notNull: true;
3622
+ hasDefault: false;
3623
+ isPrimaryKey: false;
3624
+ isAutoincrement: false;
3625
+ hasRuntimeDefault: false;
3626
+ enumValues: [string, ...string[]];
3627
+ baseColumn: never;
3628
+ identity: undefined;
3629
+ generated: undefined;
3630
+ }, {}, {}>;
3631
+ value: drizzle_orm_pg_core.PgColumn<{
3632
+ name: "value";
3633
+ tableName: "np_settings";
3634
+ dataType: "json";
3635
+ columnType: "PgJsonb";
3636
+ data: unknown;
3637
+ driverParam: unknown;
3638
+ notNull: true;
3639
+ hasDefault: false;
3640
+ isPrimaryKey: false;
3641
+ isAutoincrement: false;
3642
+ hasRuntimeDefault: false;
3643
+ enumValues: undefined;
3644
+ baseColumn: never;
3645
+ identity: undefined;
3646
+ generated: undefined;
3647
+ }, {}, {
3648
+ $type: unknown;
3649
+ }>;
3650
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
3651
+ name: "updated_at";
3652
+ tableName: "np_settings";
3653
+ dataType: "date";
3654
+ columnType: "PgTimestamp";
3655
+ data: Date;
3656
+ driverParam: string;
3657
+ notNull: true;
3658
+ hasDefault: true;
3659
+ isPrimaryKey: false;
3660
+ isAutoincrement: false;
3661
+ hasRuntimeDefault: false;
3662
+ enumValues: undefined;
3663
+ baseColumn: never;
3664
+ identity: undefined;
3665
+ generated: undefined;
3666
+ }, {}, {}>;
3667
+ updatedBy: drizzle_orm_pg_core.PgColumn<{
3668
+ name: "updated_by";
3669
+ tableName: "np_settings";
3670
+ dataType: "string";
3671
+ columnType: "PgUUID";
3672
+ data: string;
3673
+ driverParam: string;
3674
+ notNull: false;
3675
+ hasDefault: false;
3676
+ isPrimaryKey: false;
3677
+ isAutoincrement: false;
3678
+ hasRuntimeDefault: false;
3679
+ enumValues: undefined;
3680
+ baseColumn: never;
3681
+ identity: undefined;
3682
+ generated: undefined;
3683
+ }, {}, {}>;
3684
+ };
3685
+ dialect: "pg";
3686
+ }>;
3687
+ /**
3688
+ * Slug history for collections that declare `slugField`. Every
3689
+ * slug change writes a row mapping the previous slug to the
3690
+ * current one; the public-site catch-all reads it on 404 and
3691
+ * 301-redirects so old URLs (search-engine indices, external
3692
+ * links, bookmarks) keep working after a rename.
3693
+ *
3694
+ * Indexed by `(site_id, collection, old_slug)` because the read
3695
+ * path is "I just got a 404 for this slug, where did it go?" —
3696
+ * point lookups on that triple. Multiple rows can share the same
3697
+ * `(site_id, collection, document_id)` over time as a doc gets
3698
+ * renamed repeatedly; the catch-all walks the chain `oldSlug →
3699
+ * newSlug` to resolve to the current target.
3700
+ */
3701
+ declare const npSlugHistory: drizzle_orm_pg_core.PgTableWithColumns<{
3702
+ name: "np_slug_history";
3703
+ schema: undefined;
3704
+ columns: {
3705
+ id: drizzle_orm_pg_core.PgColumn<{
3706
+ name: "id";
3707
+ tableName: "np_slug_history";
3708
+ dataType: "string";
3709
+ columnType: "PgUUID";
3710
+ data: string;
3711
+ driverParam: string;
3712
+ notNull: true;
3713
+ hasDefault: true;
3714
+ isPrimaryKey: true;
3715
+ isAutoincrement: false;
3716
+ hasRuntimeDefault: false;
3717
+ enumValues: undefined;
3718
+ baseColumn: never;
3719
+ identity: undefined;
3720
+ generated: undefined;
3721
+ }, {}, {}>;
3722
+ siteId: drizzle_orm_pg_core.PgColumn<{
3723
+ name: "site_id";
3724
+ tableName: "np_slug_history";
3725
+ dataType: "string";
3726
+ columnType: "PgText";
3727
+ data: string;
3728
+ driverParam: string;
3729
+ notNull: true;
3730
+ hasDefault: true;
3731
+ isPrimaryKey: false;
3732
+ isAutoincrement: false;
3733
+ hasRuntimeDefault: false;
3734
+ enumValues: [string, ...string[]];
3735
+ baseColumn: never;
3736
+ identity: undefined;
3737
+ generated: undefined;
3738
+ }, {}, {}>;
3739
+ collection: drizzle_orm_pg_core.PgColumn<{
3740
+ name: "collection";
3741
+ tableName: "np_slug_history";
3742
+ dataType: "string";
3743
+ columnType: "PgText";
3744
+ data: string;
3745
+ driverParam: string;
3746
+ notNull: true;
3747
+ hasDefault: false;
3748
+ isPrimaryKey: false;
3749
+ isAutoincrement: false;
3750
+ hasRuntimeDefault: false;
3751
+ enumValues: [string, ...string[]];
3752
+ baseColumn: never;
3753
+ identity: undefined;
3754
+ generated: undefined;
3755
+ }, {}, {}>;
3756
+ documentId: drizzle_orm_pg_core.PgColumn<{
3757
+ name: "document_id";
3758
+ tableName: "np_slug_history";
3759
+ dataType: "string";
3760
+ columnType: "PgText";
3761
+ data: string;
3762
+ driverParam: string;
3763
+ notNull: true;
3764
+ hasDefault: false;
3765
+ isPrimaryKey: false;
3766
+ isAutoincrement: false;
3767
+ hasRuntimeDefault: false;
3768
+ enumValues: [string, ...string[]];
3769
+ baseColumn: never;
3770
+ identity: undefined;
3771
+ generated: undefined;
3772
+ }, {}, {}>;
3773
+ oldSlug: drizzle_orm_pg_core.PgColumn<{
3774
+ name: "old_slug";
3775
+ tableName: "np_slug_history";
3776
+ dataType: "string";
3777
+ columnType: "PgText";
3778
+ data: string;
3779
+ driverParam: string;
3780
+ notNull: true;
3781
+ hasDefault: false;
3782
+ isPrimaryKey: false;
3783
+ isAutoincrement: false;
3784
+ hasRuntimeDefault: false;
3785
+ enumValues: [string, ...string[]];
3786
+ baseColumn: never;
3787
+ identity: undefined;
3788
+ generated: undefined;
3789
+ }, {}, {}>;
3790
+ newSlug: drizzle_orm_pg_core.PgColumn<{
3791
+ name: "new_slug";
3792
+ tableName: "np_slug_history";
3793
+ dataType: "string";
3794
+ columnType: "PgText";
3795
+ data: string;
3796
+ driverParam: string;
3797
+ notNull: true;
3798
+ hasDefault: false;
3799
+ isPrimaryKey: false;
3800
+ isAutoincrement: false;
3801
+ hasRuntimeDefault: false;
3802
+ enumValues: [string, ...string[]];
3803
+ baseColumn: never;
3804
+ identity: undefined;
3805
+ generated: undefined;
3806
+ }, {}, {}>;
3807
+ createdAt: drizzle_orm_pg_core.PgColumn<{
3808
+ name: "created_at";
3809
+ tableName: "np_slug_history";
3810
+ dataType: "date";
3811
+ columnType: "PgTimestamp";
3812
+ data: Date;
3813
+ driverParam: string;
3814
+ notNull: true;
3815
+ hasDefault: true;
3816
+ isPrimaryKey: false;
3817
+ isAutoincrement: false;
3818
+ hasRuntimeDefault: false;
3819
+ enumValues: undefined;
3820
+ baseColumn: never;
3821
+ identity: undefined;
3822
+ generated: undefined;
3823
+ }, {}, {}>;
3824
+ };
3825
+ dialect: "pg";
3826
+ }>;
3827
+ /**
3828
+ * Phase 15.4 — navigation is scoped per site too. Same model
3829
+ * as settings: composite uniqueness on (site_id, location)
3830
+ * lets each tenant own its own header / footer menus.
3831
+ */
3832
+ declare const npNavigation: drizzle_orm_pg_core.PgTableWithColumns<{
3833
+ name: "np_navigation";
3834
+ schema: undefined;
3835
+ columns: {
3836
+ id: drizzle_orm_pg_core.PgColumn<{
3837
+ name: "id";
3838
+ tableName: "np_navigation";
3839
+ dataType: "string";
3840
+ columnType: "PgUUID";
3841
+ data: string;
3842
+ driverParam: string;
3843
+ notNull: true;
3844
+ hasDefault: true;
3845
+ isPrimaryKey: true;
3846
+ isAutoincrement: false;
3847
+ hasRuntimeDefault: false;
3848
+ enumValues: undefined;
3849
+ baseColumn: never;
3850
+ identity: undefined;
3851
+ generated: undefined;
3852
+ }, {}, {}>;
3853
+ siteId: drizzle_orm_pg_core.PgColumn<{
3854
+ name: "site_id";
3855
+ tableName: "np_navigation";
3856
+ dataType: "string";
3857
+ columnType: "PgText";
3858
+ data: string;
3859
+ driverParam: string;
3860
+ notNull: true;
3861
+ hasDefault: true;
3862
+ isPrimaryKey: false;
3863
+ isAutoincrement: false;
3864
+ hasRuntimeDefault: false;
3865
+ enumValues: [string, ...string[]];
3866
+ baseColumn: never;
3867
+ identity: undefined;
3868
+ generated: undefined;
3869
+ }, {}, {}>;
3870
+ location: drizzle_orm_pg_core.PgColumn<{
3871
+ name: "location";
3872
+ tableName: "np_navigation";
3873
+ dataType: "string";
3874
+ columnType: "PgText";
3875
+ data: string;
3876
+ driverParam: string;
3877
+ notNull: true;
3878
+ hasDefault: false;
3879
+ isPrimaryKey: false;
3880
+ isAutoincrement: false;
3881
+ hasRuntimeDefault: false;
3882
+ enumValues: [string, ...string[]];
3883
+ baseColumn: never;
3884
+ identity: undefined;
3885
+ generated: undefined;
3886
+ }, {}, {}>;
3887
+ items: drizzle_orm_pg_core.PgColumn<{
3888
+ name: "items";
3889
+ tableName: "np_navigation";
3890
+ dataType: "json";
3891
+ columnType: "PgJsonb";
3892
+ data: NpNavItem[];
3893
+ driverParam: unknown;
3894
+ notNull: true;
3895
+ hasDefault: false;
3896
+ isPrimaryKey: false;
3897
+ isAutoincrement: false;
3898
+ hasRuntimeDefault: false;
3899
+ enumValues: undefined;
3900
+ baseColumn: never;
3901
+ identity: undefined;
3902
+ generated: undefined;
3903
+ }, {}, {
3904
+ $type: NpNavItem[];
3905
+ }>;
3906
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
3907
+ name: "updated_at";
3908
+ tableName: "np_navigation";
3909
+ dataType: "date";
3910
+ columnType: "PgTimestamp";
3911
+ data: Date;
3912
+ driverParam: string;
3913
+ notNull: true;
3914
+ hasDefault: true;
3915
+ isPrimaryKey: false;
3916
+ isAutoincrement: false;
3917
+ hasRuntimeDefault: false;
3918
+ enumValues: undefined;
3919
+ baseColumn: never;
3920
+ identity: undefined;
3921
+ generated: undefined;
3922
+ }, {}, {}>;
3923
+ updatedBy: drizzle_orm_pg_core.PgColumn<{
3924
+ name: "updated_by";
3925
+ tableName: "np_navigation";
3926
+ dataType: "string";
3927
+ columnType: "PgUUID";
3928
+ data: string;
3929
+ driverParam: string;
3930
+ notNull: false;
3931
+ hasDefault: false;
3932
+ isPrimaryKey: false;
3933
+ isAutoincrement: false;
3934
+ hasRuntimeDefault: false;
3935
+ enumValues: undefined;
3936
+ baseColumn: never;
3937
+ identity: undefined;
3938
+ generated: undefined;
3939
+ }, {}, {}>;
3940
+ };
3941
+ dialect: "pg";
3942
+ }>;
3943
+ /**
3944
+ * Phase D — UI string admin overrides. Plugins and themes
3945
+ * register translation bundles via `addStrings()` (Phase 12.5);
3946
+ * admins layer overrides on top via this table without
3947
+ * touching plugin/theme code. Composite PK on
3948
+ * (site_id, locale, key) makes per-tenant overrides natural —
3949
+ * "acme" and "default" can each override the same plugin's
3950
+ * "Read more" string differently.
3951
+ *
3952
+ * `value` is nullable so an admin can explicitly mark a key
3953
+ * as "fall back to bundle" without deleting the row (useful
3954
+ * for audit-trail UIs that want to show "this WAS overridden
3955
+ * but the operator reverted it"). The runtime treats null
3956
+ * the same as no row for resolution purposes.
3957
+ */
3958
+ declare const npStringOverrides: drizzle_orm_pg_core.PgTableWithColumns<{
3959
+ name: "np_string_overrides";
3960
+ schema: undefined;
3961
+ columns: {
3962
+ siteId: drizzle_orm_pg_core.PgColumn<{
3963
+ name: "site_id";
3964
+ tableName: "np_string_overrides";
3965
+ dataType: "string";
3966
+ columnType: "PgText";
3967
+ data: string;
3968
+ driverParam: string;
3969
+ notNull: true;
3970
+ hasDefault: true;
3971
+ isPrimaryKey: false;
3972
+ isAutoincrement: false;
3973
+ hasRuntimeDefault: false;
3974
+ enumValues: [string, ...string[]];
3975
+ baseColumn: never;
3976
+ identity: undefined;
3977
+ generated: undefined;
3978
+ }, {}, {}>;
3979
+ locale: drizzle_orm_pg_core.PgColumn<{
3980
+ name: "locale";
3981
+ tableName: "np_string_overrides";
3982
+ dataType: "string";
3983
+ columnType: "PgText";
3984
+ data: string;
3985
+ driverParam: string;
3986
+ notNull: true;
3987
+ hasDefault: false;
3988
+ isPrimaryKey: false;
3989
+ isAutoincrement: false;
3990
+ hasRuntimeDefault: false;
3991
+ enumValues: [string, ...string[]];
3992
+ baseColumn: never;
3993
+ identity: undefined;
3994
+ generated: undefined;
3995
+ }, {}, {}>;
3996
+ key: drizzle_orm_pg_core.PgColumn<{
3997
+ name: "key";
3998
+ tableName: "np_string_overrides";
3999
+ dataType: "string";
4000
+ columnType: "PgText";
4001
+ data: string;
4002
+ driverParam: string;
4003
+ notNull: true;
4004
+ hasDefault: false;
4005
+ isPrimaryKey: false;
4006
+ isAutoincrement: false;
4007
+ hasRuntimeDefault: false;
4008
+ enumValues: [string, ...string[]];
4009
+ baseColumn: never;
4010
+ identity: undefined;
4011
+ generated: undefined;
4012
+ }, {}, {}>;
4013
+ value: drizzle_orm_pg_core.PgColumn<{
4014
+ name: "value";
4015
+ tableName: "np_string_overrides";
4016
+ dataType: "string";
4017
+ columnType: "PgText";
4018
+ data: string;
4019
+ driverParam: string;
4020
+ notNull: false;
4021
+ hasDefault: false;
4022
+ isPrimaryKey: false;
4023
+ isAutoincrement: false;
4024
+ hasRuntimeDefault: false;
4025
+ enumValues: [string, ...string[]];
4026
+ baseColumn: never;
4027
+ identity: undefined;
4028
+ generated: undefined;
4029
+ }, {}, {}>;
4030
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
4031
+ name: "updated_at";
4032
+ tableName: "np_string_overrides";
4033
+ dataType: "date";
4034
+ columnType: "PgTimestamp";
4035
+ data: Date;
4036
+ driverParam: string;
4037
+ notNull: true;
4038
+ hasDefault: true;
4039
+ isPrimaryKey: false;
4040
+ isAutoincrement: false;
4041
+ hasRuntimeDefault: false;
4042
+ enumValues: undefined;
4043
+ baseColumn: never;
4044
+ identity: undefined;
4045
+ generated: undefined;
4046
+ }, {}, {}>;
4047
+ updatedBy: drizzle_orm_pg_core.PgColumn<{
4048
+ name: "updated_by";
4049
+ tableName: "np_string_overrides";
4050
+ dataType: "string";
4051
+ columnType: "PgUUID";
4052
+ data: string;
4053
+ driverParam: string;
4054
+ notNull: false;
4055
+ hasDefault: false;
4056
+ isPrimaryKey: false;
4057
+ isAutoincrement: false;
4058
+ hasRuntimeDefault: false;
4059
+ enumValues: undefined;
4060
+ baseColumn: never;
4061
+ identity: undefined;
4062
+ generated: undefined;
4063
+ }, {}, {}>;
4064
+ };
4065
+ dialect: "pg";
4066
+ }>;
4067
+ /**
4068
+ * Phase 15.1 — multi-site model. One row per tenant. The
4069
+ * framework auto-creates a `default` site at boot when the
4070
+ * table is empty so single-tenant installs keep working
4071
+ * without operator intervention. Subsequent sites are added
4072
+ * via the super-admin UI (15.3) — the framework treats
4073
+ * additional sites as additive: they share users, plugins,
4074
+ * and theme code at install time, but each site has its own
4075
+ * collection content, navigation, and settings.
4076
+ *
4077
+ * `hostname` is nullable so the default site can match
4078
+ * "anything that doesn't have an explicit host route". When
4079
+ * a request's `Host` header matches a non-default site's
4080
+ * hostname, that site wins; otherwise the default site is
4081
+ * used. Multi-domain sites (apex + www) need separate rows
4082
+ * pointing at the same `id` — that's a 15.x follow-up;
4083
+ * v15.1 is one-hostname-per-site.
4084
+ */
4085
+ declare const npSites: drizzle_orm_pg_core.PgTableWithColumns<{
4086
+ name: "np_sites";
4087
+ schema: undefined;
4088
+ columns: {
4089
+ id: drizzle_orm_pg_core.PgColumn<{
4090
+ name: "id";
4091
+ tableName: "np_sites";
4092
+ dataType: "string";
4093
+ columnType: "PgText";
4094
+ data: string;
4095
+ driverParam: string;
4096
+ notNull: true;
4097
+ hasDefault: false;
4098
+ isPrimaryKey: true;
4099
+ isAutoincrement: false;
4100
+ hasRuntimeDefault: false;
4101
+ enumValues: [string, ...string[]];
4102
+ baseColumn: never;
4103
+ identity: undefined;
4104
+ generated: undefined;
4105
+ }, {}, {}>;
4106
+ name: drizzle_orm_pg_core.PgColumn<{
4107
+ name: "name";
4108
+ tableName: "np_sites";
4109
+ dataType: "string";
4110
+ columnType: "PgText";
4111
+ data: string;
4112
+ driverParam: string;
4113
+ notNull: true;
4114
+ hasDefault: false;
4115
+ isPrimaryKey: false;
4116
+ isAutoincrement: false;
4117
+ hasRuntimeDefault: false;
4118
+ enumValues: [string, ...string[]];
4119
+ baseColumn: never;
4120
+ identity: undefined;
4121
+ generated: undefined;
4122
+ }, {}, {}>;
4123
+ hostname: drizzle_orm_pg_core.PgColumn<{
4124
+ name: "hostname";
4125
+ tableName: "np_sites";
4126
+ dataType: "string";
4127
+ columnType: "PgText";
4128
+ data: string;
4129
+ driverParam: string;
4130
+ notNull: false;
4131
+ hasDefault: false;
4132
+ isPrimaryKey: false;
4133
+ isAutoincrement: false;
4134
+ hasRuntimeDefault: false;
4135
+ enumValues: [string, ...string[]];
4136
+ baseColumn: never;
4137
+ identity: undefined;
4138
+ generated: undefined;
4139
+ }, {}, {}>;
4140
+ description: drizzle_orm_pg_core.PgColumn<{
4141
+ name: "description";
4142
+ tableName: "np_sites";
4143
+ dataType: "string";
4144
+ columnType: "PgText";
4145
+ data: string;
4146
+ driverParam: string;
4147
+ notNull: false;
4148
+ hasDefault: false;
4149
+ isPrimaryKey: false;
4150
+ isAutoincrement: false;
4151
+ hasRuntimeDefault: false;
4152
+ enumValues: [string, ...string[]];
4153
+ baseColumn: never;
4154
+ identity: undefined;
4155
+ generated: undefined;
4156
+ }, {}, {}>;
4157
+ settings: drizzle_orm_pg_core.PgColumn<{
4158
+ name: "settings";
4159
+ tableName: "np_sites";
4160
+ dataType: "json";
4161
+ columnType: "PgJsonb";
4162
+ data: Record<string, unknown>;
4163
+ driverParam: unknown;
4164
+ notNull: true;
4165
+ hasDefault: true;
4166
+ isPrimaryKey: false;
4167
+ isAutoincrement: false;
4168
+ hasRuntimeDefault: false;
4169
+ enumValues: undefined;
4170
+ baseColumn: never;
4171
+ identity: undefined;
4172
+ generated: undefined;
4173
+ }, {}, {
4174
+ $type: Record<string, unknown>;
4175
+ }>;
4176
+ isDefault: drizzle_orm_pg_core.PgColumn<{
4177
+ name: "is_default";
4178
+ tableName: "np_sites";
4179
+ dataType: "boolean";
4180
+ columnType: "PgBoolean";
4181
+ data: boolean;
4182
+ driverParam: boolean;
4183
+ notNull: true;
4184
+ hasDefault: true;
4185
+ isPrimaryKey: false;
4186
+ isAutoincrement: false;
4187
+ hasRuntimeDefault: false;
4188
+ enumValues: undefined;
4189
+ baseColumn: never;
4190
+ identity: undefined;
4191
+ generated: undefined;
4192
+ }, {}, {}>;
4193
+ createdAt: drizzle_orm_pg_core.PgColumn<{
4194
+ name: "created_at";
4195
+ tableName: "np_sites";
4196
+ dataType: "date";
4197
+ columnType: "PgTimestamp";
4198
+ data: Date;
4199
+ driverParam: string;
4200
+ notNull: true;
4201
+ hasDefault: true;
4202
+ isPrimaryKey: false;
4203
+ isAutoincrement: false;
4204
+ hasRuntimeDefault: false;
4205
+ enumValues: undefined;
4206
+ baseColumn: never;
4207
+ identity: undefined;
4208
+ generated: undefined;
4209
+ }, {}, {}>;
4210
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
4211
+ name: "updated_at";
4212
+ tableName: "np_sites";
4213
+ dataType: "date";
4214
+ columnType: "PgTimestamp";
4215
+ data: Date;
4216
+ driverParam: string;
4217
+ notNull: true;
4218
+ hasDefault: true;
4219
+ isPrimaryKey: false;
4220
+ isAutoincrement: false;
4221
+ hasRuntimeDefault: false;
4222
+ enumValues: undefined;
4223
+ baseColumn: never;
4224
+ identity: undefined;
4225
+ generated: undefined;
4226
+ }, {}, {}>;
4227
+ };
4228
+ dialect: "pg";
4229
+ }>;
4230
+ /**
4231
+ * G.1 — lean meta row. Plugin config moved to `np_settings` rows
4232
+ * keyed by `plugin.config:<id>` (see decision E in
4233
+ * `docs/design/plugin-config-auto-form.md`); the legacy `config`
4234
+ * jsonb column was dropped. Reads / writes go through
4235
+ * `getPluginConfig` / `setPluginConfig` in the config module.
4236
+ */
4237
+ declare const npPlugins: drizzle_orm_pg_core.PgTableWithColumns<{
4238
+ name: "np_plugins";
4239
+ schema: undefined;
4240
+ columns: {
4241
+ id: drizzle_orm_pg_core.PgColumn<{
4242
+ name: "id";
4243
+ tableName: "np_plugins";
4244
+ dataType: "string";
4245
+ columnType: "PgText";
4246
+ data: string;
4247
+ driverParam: string;
4248
+ notNull: true;
4249
+ hasDefault: false;
4250
+ isPrimaryKey: true;
4251
+ isAutoincrement: false;
4252
+ hasRuntimeDefault: false;
4253
+ enumValues: [string, ...string[]];
4254
+ baseColumn: never;
4255
+ identity: undefined;
4256
+ generated: undefined;
4257
+ }, {}, {}>;
4258
+ enabled: drizzle_orm_pg_core.PgColumn<{
4259
+ name: "enabled";
4260
+ tableName: "np_plugins";
4261
+ dataType: "boolean";
4262
+ columnType: "PgBoolean";
4263
+ data: boolean;
4264
+ driverParam: boolean;
4265
+ notNull: true;
4266
+ hasDefault: true;
4267
+ isPrimaryKey: false;
4268
+ isAutoincrement: false;
4269
+ hasRuntimeDefault: false;
4270
+ enumValues: undefined;
4271
+ baseColumn: never;
4272
+ identity: undefined;
4273
+ generated: undefined;
4274
+ }, {}, {}>;
4275
+ installedAt: drizzle_orm_pg_core.PgColumn<{
4276
+ name: "installed_at";
4277
+ tableName: "np_plugins";
4278
+ dataType: "date";
4279
+ columnType: "PgTimestamp";
4280
+ data: Date;
4281
+ driverParam: string;
4282
+ notNull: true;
4283
+ hasDefault: true;
4284
+ isPrimaryKey: false;
4285
+ isAutoincrement: false;
4286
+ hasRuntimeDefault: false;
4287
+ enumValues: undefined;
4288
+ baseColumn: never;
4289
+ identity: undefined;
4290
+ generated: undefined;
4291
+ }, {}, {}>;
4292
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
4293
+ name: "updated_at";
4294
+ tableName: "np_plugins";
4295
+ dataType: "date";
4296
+ columnType: "PgTimestamp";
4297
+ data: Date;
4298
+ driverParam: string;
4299
+ notNull: true;
4300
+ hasDefault: true;
4301
+ isPrimaryKey: false;
4302
+ isAutoincrement: false;
4303
+ hasRuntimeDefault: false;
4304
+ enumValues: undefined;
4305
+ baseColumn: never;
4306
+ identity: undefined;
4307
+ generated: undefined;
4308
+ }, {}, {}>;
4309
+ };
4310
+ dialect: "pg";
4311
+ }>;
4312
+ /**
4313
+ * Phase 17 — plugin K/V storage with multi-tenant scope.
4314
+ *
4315
+ * The PK is `(plugin_id, site_id, key)`; `site_id` defaults to
4316
+ * `_global_` so single-site deploys (and pre-Phase-17 callers
4317
+ * that don't pass a site) keep their non-tenant behavior.
4318
+ * Plugin context auto-scopes reads/writes to the current site,
4319
+ * so plugin authors don't have to think about it — every plugin
4320
+ * operating inside a request automatically gets a per-site
4321
+ * keyspace, while background workers / scripts (no resolved
4322
+ * site) share the `_global_` space.
4323
+ */
4324
+ declare const NP_GLOBAL_PLUGIN_SITE_ID = "_global_";
4325
+ declare const npPluginStorage: drizzle_orm_pg_core.PgTableWithColumns<{
4326
+ name: "np_plugin_storage";
4327
+ schema: undefined;
4328
+ columns: {
4329
+ pluginId: drizzle_orm_pg_core.PgColumn<{
4330
+ name: "plugin_id";
4331
+ tableName: "np_plugin_storage";
4332
+ dataType: "string";
4333
+ columnType: "PgText";
4334
+ data: string;
4335
+ driverParam: string;
4336
+ notNull: true;
4337
+ hasDefault: false;
4338
+ isPrimaryKey: false;
4339
+ isAutoincrement: false;
4340
+ hasRuntimeDefault: false;
4341
+ enumValues: [string, ...string[]];
4342
+ baseColumn: never;
4343
+ identity: undefined;
4344
+ generated: undefined;
4345
+ }, {}, {}>;
4346
+ siteId: drizzle_orm_pg_core.PgColumn<{
4347
+ name: "site_id";
4348
+ tableName: "np_plugin_storage";
4349
+ dataType: "string";
4350
+ columnType: "PgText";
4351
+ data: string;
4352
+ driverParam: string;
4353
+ notNull: true;
4354
+ hasDefault: true;
4355
+ isPrimaryKey: false;
4356
+ isAutoincrement: false;
4357
+ hasRuntimeDefault: false;
4358
+ enumValues: [string, ...string[]];
4359
+ baseColumn: never;
4360
+ identity: undefined;
4361
+ generated: undefined;
4362
+ }, {}, {}>;
4363
+ key: drizzle_orm_pg_core.PgColumn<{
4364
+ name: "key";
4365
+ tableName: "np_plugin_storage";
4366
+ dataType: "string";
4367
+ columnType: "PgText";
4368
+ data: string;
4369
+ driverParam: string;
4370
+ notNull: true;
4371
+ hasDefault: false;
4372
+ isPrimaryKey: false;
4373
+ isAutoincrement: false;
4374
+ hasRuntimeDefault: false;
4375
+ enumValues: [string, ...string[]];
4376
+ baseColumn: never;
4377
+ identity: undefined;
4378
+ generated: undefined;
4379
+ }, {}, {}>;
4380
+ value: drizzle_orm_pg_core.PgColumn<{
4381
+ name: "value";
4382
+ tableName: "np_plugin_storage";
4383
+ dataType: "json";
4384
+ columnType: "PgJsonb";
4385
+ data: unknown;
4386
+ driverParam: unknown;
4387
+ notNull: true;
4388
+ hasDefault: false;
4389
+ isPrimaryKey: false;
4390
+ isAutoincrement: false;
4391
+ hasRuntimeDefault: false;
4392
+ enumValues: undefined;
4393
+ baseColumn: never;
4394
+ identity: undefined;
4395
+ generated: undefined;
4396
+ }, {}, {
4397
+ $type: unknown;
4398
+ }>;
4399
+ expiresAt: drizzle_orm_pg_core.PgColumn<{
4400
+ name: "expires_at";
4401
+ tableName: "np_plugin_storage";
4402
+ dataType: "date";
4403
+ columnType: "PgTimestamp";
4404
+ data: Date;
4405
+ driverParam: string;
4406
+ notNull: false;
4407
+ hasDefault: false;
4408
+ isPrimaryKey: false;
4409
+ isAutoincrement: false;
4410
+ hasRuntimeDefault: false;
4411
+ enumValues: undefined;
4412
+ baseColumn: never;
4413
+ identity: undefined;
4414
+ generated: undefined;
4415
+ }, {}, {}>;
4416
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
4417
+ name: "updated_at";
4418
+ tableName: "np_plugin_storage";
4419
+ dataType: "date";
4420
+ columnType: "PgTimestamp";
4421
+ data: Date;
4422
+ driverParam: string;
4423
+ notNull: true;
4424
+ hasDefault: true;
4425
+ isPrimaryKey: false;
4426
+ isAutoincrement: false;
4427
+ hasRuntimeDefault: false;
4428
+ enumValues: undefined;
4429
+ baseColumn: never;
4430
+ identity: undefined;
4431
+ generated: undefined;
4432
+ }, {}, {}>;
4433
+ };
4434
+ dialect: "pg";
4435
+ }>;
4436
+ /**
4437
+ * Phase 19 — worker liveness heartbeat. Each worker process
4438
+ * upserts a row keyed on its self-generated id (hostname + pid)
4439
+ * every `WORKER_HEARTBEAT_INTERVAL_MS` (30s). Admin reads this
4440
+ * to tell whether the queue actually has a process draining
4441
+ * jobs — without it the only signal was "Pending stays high
4442
+ * while Completed doesn't grow," which a stuck DB or a stopped
4443
+ * worker look identical from outside.
4444
+ *
4445
+ * Stale rows (no heartbeat for > 90s) are reported as
4446
+ * `unhealthy`; they survive in the table for forensic review
4447
+ * until an operator GCs them or a fresh worker reuses the id.
4448
+ */
4449
+ declare const npWorkerHeartbeats: drizzle_orm_pg_core.PgTableWithColumns<{
4450
+ name: "np_worker_heartbeats";
4451
+ schema: undefined;
4452
+ columns: {
4453
+ id: drizzle_orm_pg_core.PgColumn<{
4454
+ name: "id";
4455
+ tableName: "np_worker_heartbeats";
4456
+ dataType: "string";
4457
+ columnType: "PgText";
4458
+ data: string;
4459
+ driverParam: string;
4460
+ notNull: true;
4461
+ hasDefault: false;
4462
+ isPrimaryKey: true;
4463
+ isAutoincrement: false;
4464
+ hasRuntimeDefault: false;
4465
+ enumValues: [string, ...string[]];
4466
+ baseColumn: never;
4467
+ identity: undefined;
4468
+ generated: undefined;
4469
+ }, {}, {}>;
4470
+ status: drizzle_orm_pg_core.PgColumn<{
4471
+ name: "status";
4472
+ tableName: "np_worker_heartbeats";
4473
+ dataType: "string";
4474
+ columnType: "PgText";
4475
+ data: string;
4476
+ driverParam: string;
4477
+ notNull: true;
4478
+ hasDefault: true;
4479
+ isPrimaryKey: false;
4480
+ isAutoincrement: false;
4481
+ hasRuntimeDefault: false;
4482
+ enumValues: [string, ...string[]];
4483
+ baseColumn: never;
4484
+ identity: undefined;
4485
+ generated: undefined;
4486
+ }, {}, {}>;
4487
+ startedAt: drizzle_orm_pg_core.PgColumn<{
4488
+ name: "started_at";
4489
+ tableName: "np_worker_heartbeats";
4490
+ dataType: "date";
4491
+ columnType: "PgTimestamp";
4492
+ data: Date;
4493
+ driverParam: string;
4494
+ notNull: true;
4495
+ hasDefault: true;
4496
+ isPrimaryKey: false;
4497
+ isAutoincrement: false;
4498
+ hasRuntimeDefault: false;
4499
+ enumValues: undefined;
4500
+ baseColumn: never;
4501
+ identity: undefined;
4502
+ generated: undefined;
4503
+ }, {}, {}>;
4504
+ lastSeenAt: drizzle_orm_pg_core.PgColumn<{
4505
+ name: "last_seen_at";
4506
+ tableName: "np_worker_heartbeats";
4507
+ dataType: "date";
4508
+ columnType: "PgTimestamp";
4509
+ data: Date;
4510
+ driverParam: string;
4511
+ notNull: true;
4512
+ hasDefault: true;
4513
+ isPrimaryKey: false;
4514
+ isAutoincrement: false;
4515
+ hasRuntimeDefault: false;
4516
+ enumValues: undefined;
4517
+ baseColumn: never;
4518
+ identity: undefined;
4519
+ generated: undefined;
4520
+ }, {}, {}>;
4521
+ meta: drizzle_orm_pg_core.PgColumn<{
4522
+ name: "meta";
4523
+ tableName: "np_worker_heartbeats";
4524
+ dataType: "json";
4525
+ columnType: "PgJsonb";
4526
+ data: Record<string, unknown>;
4527
+ driverParam: unknown;
4528
+ notNull: true;
4529
+ hasDefault: true;
4530
+ isPrimaryKey: false;
4531
+ isAutoincrement: false;
4532
+ hasRuntimeDefault: false;
4533
+ enumValues: undefined;
4534
+ baseColumn: never;
4535
+ identity: undefined;
4536
+ generated: undefined;
4537
+ }, {}, {
4538
+ $type: Record<string, unknown>;
4539
+ }>;
4540
+ };
4541
+ dialect: "pg";
4542
+ }>;
4543
+ /**
4544
+ * Phase 20.3 — per-job log capture. Each row is one structured
4545
+ * log entry recorded during a handler invocation. The framework
4546
+ * wraps every `boss.work()` callback in an AsyncLocalStorage
4547
+ * context so handlers calling `recordJobLog()` (or going through
4548
+ * the framework `getLogger()`) get their entries automatically
4549
+ * stamped with the running job's id.
4550
+ *
4551
+ * The `job_id` column is `text` (not `uuid`) because pg-boss job
4552
+ * ids are returned as strings and we want the relationship to
4553
+ * mirror what's surfaced to the admin without translation.
4554
+ *
4555
+ * Indexes target the two queries the admin will run:
4556
+ * - "logs for this job" → (job_id, created_at)
4557
+ * - "prune logs older than X" → (created_at)
4558
+ */
4559
+ declare const npJobLogs: drizzle_orm_pg_core.PgTableWithColumns<{
4560
+ name: "np_job_logs";
4561
+ schema: undefined;
4562
+ columns: {
4563
+ id: drizzle_orm_pg_core.PgColumn<{
4564
+ name: "id";
4565
+ tableName: "np_job_logs";
4566
+ dataType: "string";
4567
+ columnType: "PgUUID";
4568
+ data: string;
4569
+ driverParam: string;
4570
+ notNull: true;
4571
+ hasDefault: true;
4572
+ isPrimaryKey: true;
4573
+ isAutoincrement: false;
4574
+ hasRuntimeDefault: false;
4575
+ enumValues: undefined;
4576
+ baseColumn: never;
4577
+ identity: undefined;
4578
+ generated: undefined;
4579
+ }, {}, {}>;
4580
+ jobId: drizzle_orm_pg_core.PgColumn<{
4581
+ name: "job_id";
4582
+ tableName: "np_job_logs";
4583
+ dataType: "string";
4584
+ columnType: "PgText";
4585
+ data: string;
4586
+ driverParam: string;
4587
+ notNull: true;
4588
+ hasDefault: false;
4589
+ isPrimaryKey: false;
4590
+ isAutoincrement: false;
4591
+ hasRuntimeDefault: false;
4592
+ enumValues: [string, ...string[]];
4593
+ baseColumn: never;
4594
+ identity: undefined;
4595
+ generated: undefined;
4596
+ }, {}, {}>;
4597
+ level: drizzle_orm_pg_core.PgColumn<{
4598
+ name: "level";
4599
+ tableName: "np_job_logs";
4600
+ dataType: "string";
4601
+ columnType: "PgText";
4602
+ data: string;
4603
+ driverParam: string;
4604
+ notNull: true;
4605
+ hasDefault: false;
4606
+ isPrimaryKey: false;
4607
+ isAutoincrement: false;
4608
+ hasRuntimeDefault: false;
4609
+ enumValues: [string, ...string[]];
4610
+ baseColumn: never;
4611
+ identity: undefined;
4612
+ generated: undefined;
4613
+ }, {}, {}>;
4614
+ message: drizzle_orm_pg_core.PgColumn<{
4615
+ name: "message";
4616
+ tableName: "np_job_logs";
4617
+ dataType: "string";
4618
+ columnType: "PgText";
4619
+ data: string;
4620
+ driverParam: string;
4621
+ notNull: true;
4622
+ hasDefault: false;
4623
+ isPrimaryKey: false;
4624
+ isAutoincrement: false;
4625
+ hasRuntimeDefault: false;
4626
+ enumValues: [string, ...string[]];
4627
+ baseColumn: never;
4628
+ identity: undefined;
4629
+ generated: undefined;
4630
+ }, {}, {}>;
4631
+ context: drizzle_orm_pg_core.PgColumn<{
4632
+ name: "context";
4633
+ tableName: "np_job_logs";
4634
+ dataType: "json";
4635
+ columnType: "PgJsonb";
4636
+ data: Record<string, unknown> | null;
4637
+ driverParam: unknown;
4638
+ notNull: false;
4639
+ hasDefault: false;
4640
+ isPrimaryKey: false;
4641
+ isAutoincrement: false;
4642
+ hasRuntimeDefault: false;
4643
+ enumValues: undefined;
4644
+ baseColumn: never;
4645
+ identity: undefined;
4646
+ generated: undefined;
4647
+ }, {}, {
4648
+ $type: Record<string, unknown> | null;
4649
+ }>;
4650
+ createdAt: drizzle_orm_pg_core.PgColumn<{
4651
+ name: "created_at";
4652
+ tableName: "np_job_logs";
4653
+ dataType: "date";
4654
+ columnType: "PgTimestamp";
4655
+ data: Date;
4656
+ driverParam: string;
4657
+ notNull: true;
4658
+ hasDefault: true;
4659
+ isPrimaryKey: false;
4660
+ isAutoincrement: false;
4661
+ hasRuntimeDefault: false;
4662
+ enumValues: undefined;
4663
+ baseColumn: never;
4664
+ identity: undefined;
4665
+ generated: undefined;
4666
+ }, {}, {}>;
4667
+ };
4668
+ dialect: "pg";
4669
+ }>;
4670
+
4671
+ declare const schema_NP_GLOBAL_PLUGIN_SITE_ID: typeof NP_GLOBAL_PLUGIN_SITE_ID;
4672
+ declare const schema_npAuditEvents: typeof npAuditEvents;
4673
+ declare const schema_npBanKindEnum: typeof npBanKindEnum;
4674
+ declare const schema_npBanScopeEnum: typeof npBanScopeEnum;
4675
+ declare const schema_npBans: typeof npBans;
4676
+ declare const schema_npCommentStatusEnum: typeof npCommentStatusEnum;
4677
+ declare const schema_npComments: typeof npComments;
4678
+ declare const schema_npFollows: typeof npFollows;
4679
+ declare const schema_npJobLogs: typeof npJobLogs;
4680
+ declare const schema_npMedia: typeof npMedia;
4681
+ declare const schema_npMediaFolders: typeof npMediaFolders;
4682
+ declare const schema_npMediaFoldersRelations: typeof npMediaFoldersRelations;
4683
+ declare const schema_npMediaRefs: typeof npMediaRefs;
4684
+ declare const schema_npMediaRefsRelations: typeof npMediaRefsRelations;
4685
+ declare const schema_npMediaRelations: typeof npMediaRelations;
4686
+ declare const schema_npMediaStatusEnum: typeof npMediaStatusEnum;
4687
+ declare const schema_npMemberIdentities: typeof npMemberIdentities;
4688
+ declare const schema_npMemberMutes: typeof npMemberMutes;
4689
+ declare const schema_npMemberRoleScopeEnum: typeof npMemberRoleScopeEnum;
4690
+ declare const schema_npMemberRoles: typeof npMemberRoles;
4691
+ declare const schema_npMemberSessions: typeof npMemberSessions;
4692
+ declare const schema_npMemberStatusEnum: typeof npMemberStatusEnum;
4693
+ declare const schema_npMembers: typeof npMembers;
4694
+ declare const schema_npNavigation: typeof npNavigation;
4695
+ declare const schema_npNavigationRelations: typeof npNavigationRelations;
4696
+ declare const schema_npNotifications: typeof npNotifications;
4697
+ declare const schema_npPasswordResetPurposeEnum: typeof npPasswordResetPurposeEnum;
4698
+ declare const schema_npPluginStorage: typeof npPluginStorage;
4699
+ declare const schema_npPlugins: typeof npPlugins;
4700
+ declare const schema_npReactions: typeof npReactions;
4701
+ declare const schema_npReports: typeof npReports;
4702
+ declare const schema_npRevisionStatusEnum: typeof npRevisionStatusEnum;
4703
+ declare const schema_npRevisions: typeof npRevisions;
4704
+ declare const schema_npRevisionsRelations: typeof npRevisionsRelations;
4705
+ declare const schema_npSessions: typeof npSessions;
4706
+ declare const schema_npSessionsRelations: typeof npSessionsRelations;
4707
+ declare const schema_npSettings: typeof npSettings;
4708
+ declare const schema_npSettingsRelations: typeof npSettingsRelations;
4709
+ declare const schema_npSiteMemberships: typeof npSiteMemberships;
4710
+ declare const schema_npSites: typeof npSites;
4711
+ declare const schema_npSlugHistory: typeof npSlugHistory;
4712
+ declare const schema_npStringOverrides: typeof npStringOverrides;
4713
+ declare const schema_npUserOAuthIdentities: typeof npUserOAuthIdentities;
4714
+ declare const schema_npUserRoleEnum: typeof npUserRoleEnum;
4715
+ declare const schema_npUsers: typeof npUsers;
4716
+ declare const schema_npUsersRelations: typeof npUsersRelations;
4717
+ declare const schema_npWorkerHeartbeats: typeof npWorkerHeartbeats;
4718
+ declare namespace schema {
4719
+ export { schema_NP_GLOBAL_PLUGIN_SITE_ID as NP_GLOBAL_PLUGIN_SITE_ID, schema_npAuditEvents as npAuditEvents, schema_npBanKindEnum as npBanKindEnum, schema_npBanScopeEnum as npBanScopeEnum, schema_npBans as npBans, schema_npCommentStatusEnum as npCommentStatusEnum, schema_npComments as npComments, schema_npFollows as npFollows, schema_npJobLogs as npJobLogs, schema_npMedia as npMedia, schema_npMediaFolders as npMediaFolders, schema_npMediaFoldersRelations as npMediaFoldersRelations, schema_npMediaRefs as npMediaRefs, schema_npMediaRefsRelations as npMediaRefsRelations, schema_npMediaRelations as npMediaRelations, schema_npMediaStatusEnum as npMediaStatusEnum, schema_npMemberIdentities as npMemberIdentities, schema_npMemberMutes as npMemberMutes, schema_npMemberRoleScopeEnum as npMemberRoleScopeEnum, schema_npMemberRoles as npMemberRoles, schema_npMemberSessions as npMemberSessions, schema_npMemberStatusEnum as npMemberStatusEnum, schema_npMembers as npMembers, schema_npNavigation as npNavigation, schema_npNavigationRelations as npNavigationRelations, schema_npNotifications as npNotifications, schema_npPasswordResetPurposeEnum as npPasswordResetPurposeEnum, schema_npPluginStorage as npPluginStorage, schema_npPlugins as npPlugins, schema_npReactions as npReactions, schema_npReports as npReports, schema_npRevisionStatusEnum as npRevisionStatusEnum, schema_npRevisions as npRevisions, schema_npRevisionsRelations as npRevisionsRelations, schema_npSessions as npSessions, schema_npSessionsRelations as npSessionsRelations, schema_npSettings as npSettings, schema_npSettingsRelations as npSettingsRelations, schema_npSiteMemberships as npSiteMemberships, schema_npSites as npSites, schema_npSlugHistory as npSlugHistory, schema_npStringOverrides as npStringOverrides, schema_npUserOAuthIdentities as npUserOAuthIdentities, schema_npUserRoleEnum as npUserRoleEnum, schema_npUsers as npUsers, schema_npUsersRelations as npUsersRelations, schema_npWorkerHeartbeats as npWorkerHeartbeats };
4720
+ }
4721
+
4722
+ export { npPluginStorage as A, npPlugins as B, npReactions as C, npReports as D, npRevisionStatusEnum as E, npRevisions as F, npRevisionsRelations as G, npSessions as H, npSessionsRelations as I, npSettings as J, npSettingsRelations as K, npSiteMemberships as L, npSites as M, NP_GLOBAL_PLUGIN_SITE_ID as N, npSlugHistory as O, npStringOverrides as P, npUserOAuthIdentities as Q, npUserRoleEnum as R, npUsers as S, npUsersRelations as T, npWorkerHeartbeats as U, schema as V, npBanKindEnum as a, npBanScopeEnum as b, npBans as c, npCommentStatusEnum as d, npComments as e, npFollows as f, npJobLogs as g, npMedia as h, npMediaFolders as i, npMediaFoldersRelations as j, npMediaRefs as k, npMediaRefsRelations as l, npMediaRelations as m, npAuditEvents as n, npMediaStatusEnum as o, npMemberIdentities as p, npMemberMutes as q, npMemberRoleScopeEnum as r, npMemberRoles as s, npMemberSessions as t, npMemberStatusEnum as u, npMembers as v, npNavigation as w, npNavigationRelations as x, npNotifications as y, npPasswordResetPurposeEnum as z };