alepha 0.19.2 → 0.19.4

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 (241) hide show
  1. package/assets/swagger-ui/swagger-ui-bundle.js +1 -1
  2. package/dist/api/audits/index.d.ts +8 -8
  3. package/dist/api/invitations/index.d.ts +790 -0
  4. package/dist/api/invitations/index.d.ts.map +1 -0
  5. package/dist/api/invitations/index.js +665 -0
  6. package/dist/api/invitations/index.js.map +1 -0
  7. package/dist/api/jobs/index.browser.js +8 -9
  8. package/dist/api/jobs/index.browser.js.map +1 -1
  9. package/dist/api/jobs/index.d.ts +90 -34
  10. package/dist/api/jobs/index.d.ts.map +1 -1
  11. package/dist/api/jobs/index.js +267 -44
  12. package/dist/api/jobs/index.js.map +1 -1
  13. package/dist/api/notifications/index.browser.js +0 -1
  14. package/dist/api/notifications/index.browser.js.map +1 -1
  15. package/dist/api/notifications/index.d.ts +3 -3
  16. package/dist/api/notifications/index.d.ts.map +1 -1
  17. package/dist/api/notifications/index.js +0 -1
  18. package/dist/api/notifications/index.js.map +1 -1
  19. package/dist/api/parameters/index.browser.js +112 -1
  20. package/dist/api/parameters/index.browser.js.map +1 -1
  21. package/dist/api/parameters/index.d.ts +90 -3
  22. package/dist/api/parameters/index.d.ts.map +1 -1
  23. package/dist/api/parameters/index.js +79 -12
  24. package/dist/api/parameters/index.js.map +1 -1
  25. package/dist/{billing → api/payments}/index.d.ts +67 -49
  26. package/dist/api/payments/index.d.ts.map +1 -0
  27. package/dist/{billing → api/payments}/index.js +108 -74
  28. package/dist/api/payments/index.js.map +1 -0
  29. package/dist/api/subscriptions/index.d.ts +1692 -0
  30. package/dist/api/subscriptions/index.d.ts.map +1 -0
  31. package/dist/api/subscriptions/index.js +1870 -0
  32. package/dist/api/subscriptions/index.js.map +1 -0
  33. package/dist/api/users/index.d.ts +27 -21
  34. package/dist/api/users/index.d.ts.map +1 -1
  35. package/dist/api/users/index.js +167 -34
  36. package/dist/api/users/index.js.map +1 -1
  37. package/dist/api/workflows/index.browser.js +246 -0
  38. package/dist/api/workflows/index.browser.js.map +1 -0
  39. package/dist/api/workflows/index.d.ts +1618 -0
  40. package/dist/api/workflows/index.d.ts.map +1 -0
  41. package/dist/api/workflows/index.js +1504 -0
  42. package/dist/api/workflows/index.js.map +1 -0
  43. package/dist/cli/config/index.d.ts +6 -28
  44. package/dist/cli/config/index.d.ts.map +1 -1
  45. package/dist/cli/config/index.js +5 -10
  46. package/dist/cli/config/index.js.map +1 -1
  47. package/dist/cli/core/index.d.ts +11669 -208
  48. package/dist/cli/core/index.d.ts.map +1 -1
  49. package/dist/cli/core/index.js +60 -69
  50. package/dist/cli/core/index.js.map +1 -1
  51. package/dist/cli/devtools/index.d.ts +5 -0
  52. package/dist/cli/devtools/index.d.ts.map +1 -1
  53. package/dist/cli/devtools/index.js +4 -0
  54. package/dist/cli/devtools/index.js.map +1 -1
  55. package/dist/cli/platform/index.d.ts +69 -64
  56. package/dist/cli/platform/index.d.ts.map +1 -1
  57. package/dist/cli/platform/index.js +6 -2
  58. package/dist/cli/platform/index.js.map +1 -1
  59. package/dist/cli/vendor/index.d.ts +38 -10
  60. package/dist/cli/vendor/index.d.ts.map +1 -1
  61. package/dist/cli/vendor/index.js +85 -26
  62. package/dist/cli/vendor/index.js.map +1 -1
  63. package/dist/core/index.browser.js +21 -2
  64. package/dist/core/index.browser.js.map +1 -1
  65. package/dist/core/index.d.ts +33 -2
  66. package/dist/core/index.d.ts.map +1 -1
  67. package/dist/core/index.js +25 -2
  68. package/dist/core/index.js.map +1 -1
  69. package/dist/core/index.native.js +25 -2
  70. package/dist/core/index.native.js.map +1 -1
  71. package/dist/core/index.workerd.js +25 -2
  72. package/dist/core/index.workerd.js.map +1 -1
  73. package/dist/email/smtp/index.js +24 -8
  74. package/dist/email/smtp/index.js.map +1 -1
  75. package/dist/logger/index.d.ts.map +1 -1
  76. package/dist/logger/index.js +1 -1
  77. package/dist/logger/index.js.map +1 -1
  78. package/dist/orm/core/index.browser.js +0 -18
  79. package/dist/orm/core/index.browser.js.map +1 -1
  80. package/dist/orm/core/index.bun.js +25 -73
  81. package/dist/orm/core/index.bun.js.map +1 -1
  82. package/dist/orm/core/index.d.ts +10 -32
  83. package/dist/orm/core/index.d.ts.map +1 -1
  84. package/dist/orm/core/index.js +25 -73
  85. package/dist/orm/core/index.js.map +1 -1
  86. package/dist/orm/postgres/index.bun.js +3 -3
  87. package/dist/orm/postgres/index.bun.js.map +1 -1
  88. package/dist/orm/postgres/index.d.ts +2 -1
  89. package/dist/orm/postgres/index.d.ts.map +1 -1
  90. package/dist/orm/postgres/index.js +3 -3
  91. package/dist/orm/postgres/index.js.map +1 -1
  92. package/dist/react/router/index.browser.js +25 -3
  93. package/dist/react/router/index.browser.js.map +1 -1
  94. package/dist/react/router/index.d.ts +16 -1
  95. package/dist/react/router/index.d.ts.map +1 -1
  96. package/dist/react/router/index.js +25 -3
  97. package/dist/react/router/index.js.map +1 -1
  98. package/dist/security/index.d.ts +28 -0
  99. package/dist/security/index.d.ts.map +1 -1
  100. package/dist/security/index.js +28 -0
  101. package/dist/security/index.js.map +1 -1
  102. package/package.json +37 -20
  103. package/src/api/invitations/__tests__/InvitationService.spec.ts +439 -0
  104. package/src/api/invitations/controllers/AdminInvitationController.ts +86 -0
  105. package/src/api/invitations/controllers/InvitationController.ts +84 -0
  106. package/src/api/invitations/entities/invitations.ts +33 -0
  107. package/src/api/invitations/index.ts +65 -0
  108. package/src/api/invitations/jobs/InvitationJobs.ts +37 -0
  109. package/src/api/invitations/providers/InvitationProvider.ts +45 -0
  110. package/src/api/invitations/schemas/createInvitationSchema.ts +12 -0
  111. package/src/api/invitations/schemas/invitationConfigAtom.ts +20 -0
  112. package/src/api/invitations/schemas/invitationQuerySchema.ts +15 -0
  113. package/src/api/invitations/schemas/invitationResourceSchema.ts +6 -0
  114. package/src/api/invitations/schemas/invitationWithResourceInfoSchema.ts +22 -0
  115. package/src/api/invitations/schemas/myInvitationsQuerySchema.ts +10 -0
  116. package/src/api/invitations/services/InvitationService.ts +556 -0
  117. package/src/api/jobs/__tests__/$job.spec.ts +876 -0
  118. package/src/api/jobs/controllers/AdminJobController.ts +44 -0
  119. package/src/api/jobs/entities/jobExecutionEntity.ts +0 -2
  120. package/src/api/jobs/index.ts +0 -3
  121. package/src/api/jobs/primitives/$job.ts +22 -11
  122. package/src/api/jobs/providers/JobProvider.ts +239 -25
  123. package/src/api/jobs/schemas/jobConfigAtom.ts +4 -0
  124. package/src/api/jobs/schemas/jobCronInfoSchema.ts +1 -0
  125. package/src/api/jobs/schemas/jobExecutionQuerySchema.ts +0 -1
  126. package/src/api/jobs/schemas/jobQueueDepthSchema.ts +1 -0
  127. package/src/api/jobs/schemas/jobRegistrationSchema.ts +1 -6
  128. package/src/api/jobs/services/JobService.ts +51 -12
  129. package/src/api/notifications/schemas/notificationQuerySchema.ts +0 -1
  130. package/src/api/parameters/__tests__/$parameter.spec.ts +327 -0
  131. package/src/api/parameters/controllers/AdminParameterController.ts +29 -3
  132. package/src/api/parameters/index.browser.ts +12 -0
  133. package/src/api/parameters/primitives/$parameter.ts +20 -3
  134. package/src/api/parameters/services/ParameterProvider.ts +48 -7
  135. package/src/{billing → api/payments}/__tests__/PaymentMethodService.spec.ts +32 -6
  136. package/src/api/payments/__tests__/PaymentService.spec.ts +279 -0
  137. package/src/{billing/controllers/AdminBillingController.ts → api/payments/controllers/AdminPaymentController.ts} +26 -21
  138. package/src/{billing/controllers/BillingController.ts → api/payments/controllers/PaymentController.ts} +23 -11
  139. package/src/{billing → api/payments}/entities/paymentIntents.ts +1 -0
  140. package/src/{billing/errors/BillingError.ts → api/payments/errors/PaymentError.ts} +1 -1
  141. package/src/{billing → api/payments}/index.ts +31 -25
  142. package/src/{billing/providers/MemoryBillingProvider.ts → api/payments/providers/MemoryPaymentProvider.ts} +4 -4
  143. package/src/{billing/providers/BillingProvider.ts → api/payments/providers/PaymentProvider.ts} +9 -2
  144. package/src/{billing → api/payments}/services/PaymentMethodService.ts +5 -5
  145. package/src/{billing/services/BillingService.ts → api/payments/services/PaymentService.ts} +94 -18
  146. package/src/api/subscriptions/__tests__/BillingService.spec.ts +218 -0
  147. package/src/api/subscriptions/__tests__/SubscriptionService.spec.ts +278 -0
  148. package/src/api/subscriptions/controllers/AdminSubscriptionController.ts +212 -0
  149. package/src/api/subscriptions/controllers/SubscriptionController.ts +189 -0
  150. package/src/api/subscriptions/entities/subscriptionEvents.ts +54 -0
  151. package/src/api/subscriptions/entities/subscriptions.ts +68 -0
  152. package/src/api/subscriptions/index.ts +144 -0
  153. package/src/api/subscriptions/jobs/SubscriptionJobs.ts +382 -0
  154. package/src/api/subscriptions/middleware/$requireLimit.ts +50 -0
  155. package/src/api/subscriptions/middleware/$requirePlan.ts +49 -0
  156. package/src/api/subscriptions/notifications/SubscriptionNotifications.ts +110 -0
  157. package/src/api/subscriptions/schemas/cancelSubscriptionSchema.ts +8 -0
  158. package/src/api/subscriptions/schemas/changePlanSchema.ts +9 -0
  159. package/src/api/subscriptions/schemas/createSubscriptionSchema.ts +11 -0
  160. package/src/api/subscriptions/schemas/entitlementsSchema.ts +21 -0
  161. package/src/api/subscriptions/schemas/mrrSchema.ts +13 -0
  162. package/src/api/subscriptions/schemas/planDefinitionSchema.ts +71 -0
  163. package/src/api/subscriptions/schemas/planResourceSchema.ts +25 -0
  164. package/src/api/subscriptions/schemas/subscriptionEventResourceSchema.ts +8 -0
  165. package/src/api/subscriptions/schemas/subscriptionQuerySchema.ts +19 -0
  166. package/src/api/subscriptions/schemas/subscriptionResourceSchema.ts +6 -0
  167. package/src/api/subscriptions/schemas/subscriptionSettingsSchema.ts +32 -0
  168. package/src/api/subscriptions/schemas/subscriptionStatsSchema.ts +23 -0
  169. package/src/api/subscriptions/services/BillingService.ts +437 -0
  170. package/src/api/subscriptions/services/SubscriptionConfig.ts +56 -0
  171. package/src/api/subscriptions/services/SubscriptionService.ts +867 -0
  172. package/src/api/subscriptions/services/UsageService.ts +118 -0
  173. package/src/api/users/__tests__/AdminUserController.spec.ts +80 -1
  174. package/src/api/users/__tests__/CredentialService.spec.ts +177 -0
  175. package/src/api/users/__tests__/EmailVerification.spec.ts +29 -18
  176. package/src/api/users/__tests__/PasswordReset.spec.ts +3 -0
  177. package/src/api/users/__tests__/RegistrationService.spec.ts +148 -1
  178. package/src/api/users/__tests__/SessionService.spec.ts +142 -1
  179. package/src/api/users/atoms/realmAuthSettingsAtom.ts +10 -1
  180. package/src/api/users/controllers/UserController.ts +3 -8
  181. package/src/api/users/notifications/UserNotifications.ts +23 -0
  182. package/src/api/users/schemas/loginSchema.ts +1 -1
  183. package/src/api/users/services/CredentialService.ts +51 -4
  184. package/src/api/users/services/RegistrationService.ts +38 -9
  185. package/src/api/users/services/SessionService.ts +62 -9
  186. package/src/api/users/services/UserService.ts +21 -12
  187. package/src/api/workflows/__tests__/$workflow.spec.ts +616 -0
  188. package/src/api/workflows/controllers/AdminWorkflowController.ts +191 -0
  189. package/src/api/workflows/entities/workflowExecutions.ts +74 -0
  190. package/src/api/workflows/entities/workflowStepExecutions.ts +74 -0
  191. package/src/api/workflows/entities/workflowStepLogs.ts +13 -0
  192. package/src/api/workflows/index.browser.ts +22 -0
  193. package/src/api/workflows/index.ts +124 -0
  194. package/src/api/workflows/jobs/WorkflowJobs.ts +77 -0
  195. package/src/api/workflows/primitives/$workflow.ts +202 -0
  196. package/src/api/workflows/providers/WorkflowProvider.ts +1284 -0
  197. package/src/api/workflows/schemas/workflowActivitySchema.ts +15 -0
  198. package/src/api/workflows/schemas/workflowConfigAtom.ts +51 -0
  199. package/src/api/workflows/schemas/workflowExecutionDetailSchema.ts +18 -0
  200. package/src/api/workflows/schemas/workflowExecutionQuerySchema.ts +26 -0
  201. package/src/api/workflows/schemas/workflowExecutionResourceSchema.ts +30 -0
  202. package/src/api/workflows/schemas/workflowRegistrationSchema.ts +26 -0
  203. package/src/api/workflows/schemas/workflowStatsSchema.ts +16 -0
  204. package/src/api/workflows/schemas/workflowStepExecutionResourceSchema.ts +15 -0
  205. package/src/api/workflows/services/WorkflowService.ts +382 -0
  206. package/src/cli/config/defineConfig.ts +17 -46
  207. package/src/cli/core/providers/ViteDevServerProvider.ts +45 -3
  208. package/src/cli/core/services/PackageManagerUtils.ts +3 -1
  209. package/src/cli/core/services/ProjectScaffolder.ts +5 -5
  210. package/src/cli/core/templates/agentMd.ts +14 -5
  211. package/src/cli/core/templates/webAppRouterTs.ts +5 -58
  212. package/src/cli/devtools/index.ts +21 -1
  213. package/src/cli/platform/index.ts +23 -2
  214. package/src/cli/vendor/__tests__/VendorService.spec.ts +283 -178
  215. package/src/cli/vendor/index.ts +20 -3
  216. package/src/cli/vendor/services/VendorService.ts +126 -27
  217. package/src/core/Alepha.ts +10 -0
  218. package/src/core/__tests__/TypeProvider.spec.ts +4 -2
  219. package/src/core/providers/SchemaValidator.ts +1 -1
  220. package/src/core/providers/TypeProvider.ts +46 -3
  221. package/src/logger/index.ts +6 -1
  222. package/src/orm/__tests__/enums.spec.ts +22 -29
  223. package/src/orm/__tests__/orm-showcase-tests.ts +430 -0
  224. package/src/orm/__tests__/orm-showcase.spec.ts +167 -0
  225. package/src/orm/core/providers/DatabaseTypeProvider.ts +0 -29
  226. package/src/orm/core/providers/DrizzleKitProvider.ts +56 -105
  227. package/src/orm/postgres/services/PostgresModelBuilder.ts +3 -6
  228. package/src/react/router/__tests__/$page.browser.spec.tsx +157 -0
  229. package/src/react/router/providers/ReactBrowserProvider.ts +39 -0
  230. package/src/react/router/providers/ReactBrowserRouterProvider.ts +22 -0
  231. package/src/security/__tests__/$secure-combinations.spec.ts +945 -0
  232. package/src/security/primitives/$secure.ts +28 -0
  233. package/tsconfig.base.json +0 -1
  234. package/dist/billing/index.d.ts.map +0 -1
  235. package/dist/billing/index.js.map +0 -1
  236. package/src/billing/__tests__/BillingService.spec.ts +0 -136
  237. /package/src/{billing → api/payments}/entities/paymentMethods.ts +0 -0
  238. /package/src/{billing → api/payments}/entities/refunds.ts +0 -0
  239. /package/src/{billing → api/payments}/schemas/intentSchemas.ts +0 -0
  240. /package/src/{billing → api/payments}/schemas/paymentMethodSchemas.ts +0 -0
  241. /package/src/{billing → api/payments}/schemas/refundSchemas.ts +0 -0
@@ -162,7 +162,7 @@ var DrizzleKitProvider = class {
162
162
  }
163
163
  if (this.alepha.isTest()) {
164
164
  const { statements } = await this.generateMigration(provider);
165
- await this.executeFallbackStatements(statements, provider);
165
+ await this.executeStatements(statements.map((s) => s.replace(/^CREATE SCHEMA /i, "CREATE SCHEMA IF NOT EXISTS ")), provider);
166
166
  return;
167
167
  }
168
168
  const now = this.dateTime.nowMillis();
@@ -178,7 +178,7 @@ var DrizzleKitProvider = class {
178
178
  } catch (error) {
179
179
  this.log.debug("Push sync not available, falling back to migration generation", { error });
180
180
  const { statements } = await this.generateMigration(provider);
181
- await this.executeFallbackStatements(statements, provider);
181
+ await this.executeStatementsLenient(statements, provider);
182
182
  }
183
183
  this.log.info(`Synchronization of '${provider.name}' OK [${this.dateTime.nowMillis() - now}ms]`);
184
184
  }
@@ -279,10 +279,10 @@ var DrizzleKitProvider = class {
279
279
  hasDataLoss: false
280
280
  };
281
281
  let result;
282
- if (provider.dialect === "sqlite") result = await this.muteSpinner(() => kit.pushSQLiteSchema(models, provider.db));
282
+ if (provider.dialect === "sqlite") result = await kit.pushSQLiteSchema(models, provider.db);
283
283
  else {
284
284
  const wrappedDb = this.wrapDbForDrizzleKit(provider.db);
285
- result = await this.muteSpinner(() => kit.pushSchema(models, wrappedDb, [provider.schema]));
285
+ result = await kit.pushSchema(models, wrappedDb, [provider.schema]);
286
286
  }
287
287
  return {
288
288
  statements: result.statementsToExecute,
@@ -291,8 +291,8 @@ var DrizzleKitProvider = class {
291
291
  };
292
292
  }
293
293
  async pushSqlite(kit, models, provider) {
294
- const result = await this.muteSpinner(() => kit.pushSQLiteSchema(models, provider.db));
295
- await this.runPushResult(result, provider);
294
+ const { statementsToExecute } = await kit.pushSQLiteSchema(models, provider.db);
295
+ await this.executeStatements(statementsToExecute, provider);
296
296
  }
297
297
  /**
298
298
  * Push schema changes to PostgreSQL using Drizzle Kit's pushSchema with schema filters.
@@ -300,39 +300,32 @@ var DrizzleKitProvider = class {
300
300
  async pushPostgres(kit, models, provider) {
301
301
  if (provider.schema !== "public") await this.createSchemaIfNotExists(provider, provider.schema);
302
302
  const wrappedDb = this.wrapDbForDrizzleKit(provider.db);
303
- const result = await this.muteSpinner(() => kit.pushSchema(models, wrappedDb, [provider.schema]));
304
- await this.runPushResult(result, provider);
303
+ const { statementsToExecute } = await kit.pushSchema(models, wrappedDb, [provider.schema]);
304
+ await this.executeStatements(statementsToExecute, provider);
305
305
  }
306
306
  /**
307
- * Run the statements returned by Drizzle Kit's pushSchema, with safety filters and logging.
307
+ * Execute a list of SQL statements against the provider.
308
308
  */
309
- async runPushResult(result, provider) {
310
- const safe = result.statementsToExecute.filter((s) => {
311
- const upper = s.trimStart().toUpperCase();
312
- if (upper.startsWith("DROP SCHEMA") || upper.startsWith("DROP TABLE")) {
313
- this.log.warn("Skipping destructive statement", { statement: s });
314
- return false;
315
- }
316
- return true;
317
- });
318
- if (result.hasDataLoss) this.log.warn("Push would cause data loss", {
319
- warnings: result.warnings,
320
- statements: result.statementsToExecute
321
- });
322
- if (safe.length > 0) {
323
- this.log.debug(`Pushing ${safe.length} statements ...`, { statements: safe });
324
- for (const statement of safe) await provider.execute(sql$1.raw(statement));
325
- }
309
+ async executeStatements(statements, provider) {
310
+ if (statements.length > 0) this.log.debug(`Executing ${statements.length} statements ...`, { statements });
311
+ for (const statement of statements) await provider.execute(sql$1.raw(statement));
326
312
  }
327
313
  /**
328
- * Execute migration statements as a fallback when push sync is not available.
329
- * Used for drivers that don't support Drizzle Kit introspection (e.g. PgLite).
314
+ * Execute SQL statements, ignoring "already exists" errors.
315
+ *
316
+ * Used by the fallback migration path where push may have partially
317
+ * applied changes before erroring, leaving some objects already created.
330
318
  */
331
- async executeFallbackStatements(statements, provider) {
332
- for (const statement of statements) {
333
- const upper = statement.trimStart().toUpperCase();
334
- if (upper.startsWith("DROP SCHEMA") || upper.startsWith("CREATE SCHEMA")) continue;
319
+ async executeStatementsLenient(statements, provider) {
320
+ if (statements.length > 0) this.log.debug(`Executing ${statements.length} statements (lenient) ...`, { statements });
321
+ for (const statement of statements) try {
335
322
  await provider.execute(sql$1.raw(statement));
323
+ } catch (error) {
324
+ if ((error?.message ?? "").includes("already exists")) {
325
+ this.log.debug(`Skipped (already exists): ${statement.slice(0, 80)}`);
326
+ continue;
327
+ }
328
+ throw error;
336
329
  }
337
330
  }
338
331
  async createSchemaIfNotExists(provider, schemaName) {
@@ -363,30 +356,6 @@ var DrizzleKitProvider = class {
363
356
  } });
364
357
  }
365
358
  /**
366
- * Suppress Drizzle Kit's spinner output during a callback.
367
- *
368
- * Drizzle Kit uses hanji's renderWithTask with a setInterval-based spinner.
369
- * If the wrapped task throws, the interval is never cleared and leaks
370
- * spinner frames to stdout. We keep the filter active until the next
371
- * tick after the promise settles to catch any straggling writes.
372
- */
373
- async muteSpinner(fn) {
374
- const originalWrite = process.stdout.write;
375
- const filter = (chunk, ...args) => {
376
- const str = typeof chunk === "string" ? chunk : chunk?.toString?.() ?? "";
377
- if (str.includes("Pulling schema from database")) return true;
378
- if (str.includes("\x1B[1A")) return true;
379
- return originalWrite.call(process.stdout, chunk, ...args);
380
- };
381
- process.stdout.write = filter;
382
- try {
383
- return await fn();
384
- } finally {
385
- await new Promise((r) => setTimeout(r, 200));
386
- process.stdout.write = originalWrite;
387
- }
388
- }
389
- /**
390
359
  * Try to load the official Drizzle Kit API.
391
360
  */
392
361
  importDrizzleKit() {
@@ -3072,23 +3041,6 @@ var DatabaseTypeProvider = class {
3072
3041
  */
3073
3042
  organization = () => pgAttr(t.optional(t.uuid()), PG_ORGANIZATION);
3074
3043
  /**
3075
- * Creates a Postgres ENUM type.
3076
- *
3077
- * > By default, `t.enum()` is mapped to a TEXT column in Postgres.
3078
- * > Using this method, you can create a real ENUM type in the database.
3079
- *
3080
- * @example
3081
- * ```ts
3082
- * const statusEnum = pg.enum(["pending", "active", "archived"], { name: "status_enum" });
3083
- * ```
3084
- */
3085
- enum = (values, pgEnumOptions, typeOptions) => {
3086
- return pgAttr(t.enum(values, {
3087
- description: pgEnumOptions?.description,
3088
- ...typeOptions
3089
- }), PG_ENUM, pgEnumOptions);
3090
- };
3091
- /**
3092
3044
  * Creates a reference to another table or schema. Basically a foreign key.
3093
3045
  */
3094
3046
  ref = (type, ref, actions) => {