yaxa-svelte 2.2.0 → 2.4.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 (39) hide show
  1. package/README.md +85 -14
  2. package/dist/server/db/schema-pg.d.ts +262 -0
  3. package/dist/server/db/schema-pg.js +20 -0
  4. package/dist/server/db/schema-sqlite.d.ts +276 -0
  5. package/dist/server/db/schema-sqlite.js +20 -0
  6. package/dist/server/db/types.d.ts +18 -0
  7. package/dist/server/endpoint/guards.d.ts +5 -0
  8. package/dist/server/endpoint/guards.js +19 -3
  9. package/dist/server/endpoint/index.js +4 -0
  10. package/dist/server/endpoint/types.d.ts +7 -0
  11. package/dist/server/index.d.ts +4 -0
  12. package/dist/server/index.js +4 -0
  13. package/dist/server/jobs/events.d.ts +29 -0
  14. package/dist/server/jobs/events.js +74 -0
  15. package/dist/server/jobs/index.d.ts +4 -0
  16. package/dist/server/jobs/index.js +3 -0
  17. package/dist/server/jobs/jobs.test.d.ts +1 -0
  18. package/dist/server/jobs/jobs.test.js +189 -0
  19. package/dist/server/jobs/queue.d.ts +14 -0
  20. package/dist/server/jobs/queue.js +90 -0
  21. package/dist/server/jobs/runner.d.ts +12 -0
  22. package/dist/server/jobs/runner.js +176 -0
  23. package/dist/server/jobs/types.d.ts +136 -0
  24. package/dist/server/jobs/types.js +1 -0
  25. package/dist/server/openapi/generator.d.ts +5 -0
  26. package/dist/server/openapi/generator.js +317 -0
  27. package/dist/server/openapi/handler.d.ts +7 -0
  28. package/dist/server/openapi/handler.js +117 -0
  29. package/dist/server/openapi/index.d.ts +5 -0
  30. package/dist/server/openapi/index.js +4 -0
  31. package/dist/server/openapi/openapi.test.d.ts +1 -0
  32. package/dist/server/openapi/openapi.test.js +219 -0
  33. package/dist/server/openapi/registry.d.ts +35 -0
  34. package/dist/server/openapi/registry.js +51 -0
  35. package/dist/server/openapi/schema.d.ts +4 -0
  36. package/dist/server/openapi/schema.js +59 -0
  37. package/dist/server/openapi/types.d.ts +127 -0
  38. package/dist/server/openapi/types.js +1 -0
  39. package/package.json +1 -1
package/README.md CHANGED
@@ -274,22 +274,93 @@ export const POST = yaxaEndpoint({
274
274
 
275
275
  ---
276
276
 
277
+ ## 📜 Auto-Generated OpenAPI 3.1 & Interactive Docs (`/api/docs`)
278
+
279
+ Instantly generate an OpenAPI 3.1 specification and host interactive documentation ([Scalar](https://scalar.com/), Swagger UI, or Redoc) directly from your `yaxaEndpoint` routes:
280
+
281
+ ```ts
282
+ // src/routes/api/docs/+server.ts
283
+ import { createApiDocsHandler } from 'yaxa-svelte/server';
284
+ import { POST as createProject } from '../projects/+server';
285
+
286
+ export const GET = createApiDocsHandler({
287
+ title: 'Acme SaaS API',
288
+ version: '1.0.0',
289
+ theme: 'scalar', // 'scalar' (default) | 'swagger' | 'redoc'
290
+ endpoints: {
291
+ '/api/projects': {
292
+ POST: createProject
293
+ }
294
+ }
295
+ });
296
+ ```
297
+
298
+ - **Interactive Reference UI:** Open `/api/docs` in your browser.
299
+ - **Raw OpenAPI 3.1 JSON:** Request `/api/docs?format=json` or send `Accept: application/json` for SDK generation.
300
+
301
+ ---
302
+
303
+ ## ⏱️ Embedded Background Workflows & Persistent Job Queue
304
+
305
+ Persistent, zero-infrastructure background task processing backed by your existing Drizzle database (Postgres or SQLite/Turso). Features atomic row leasing, exponential retry backoff with jitter, Dead-Letter Queue (DLQ), and dual execution models (Serverless Cron or long-running worker):
306
+
307
+ ```ts
308
+ import { enqueueJob, defineWorker, createJobRunner, eventBus } from 'yaxa-svelte/server';
309
+
310
+ // 1. Decoupled domain events
311
+ eventBus.on('user.created', async ({ userId, email }) => {
312
+ // 2. Enqueue background job (optionally pass active transaction { tx } for transactional outbox)
313
+ await enqueueJob(
314
+ 'send-welcome-email',
315
+ { userId, email },
316
+ {
317
+ delay: '5m', // '30s', '5m', '2h', or ms
318
+ priority: 10,
319
+ maxAttempts: 5
320
+ }
321
+ );
322
+ });
323
+
324
+ // 3. Define worker
325
+ const emailWorker = defineWorker({
326
+ name: 'send-welcome-email',
327
+ handler: async (payload, { attempt, log }) => {
328
+ log(`Sending welcome email (attempt ${attempt})`);
329
+ await sendEmail(payload.email);
330
+ }
331
+ });
332
+
333
+ // 4. Run in Serverless Cron (Vercel Cron) or background container
334
+ export const runner = createJobRunner({
335
+ workers: [emailWorker],
336
+ batchSize: 10
337
+ });
338
+
339
+ // In src/routes/api/cron/jobs/+server.ts:
340
+ export const GET = async () => {
341
+ const result = await runner.processNextBatch();
342
+ return Response.json(result);
343
+ };
344
+ ```
345
+
346
+ ---
347
+
277
348
  ## 📦 Subpath Exports Architecture
278
349
 
279
- | Subpath | Description |
280
- | :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- |
281
- | `yaxa-svelte` | Core UI Primitives, SEO Components, `<Gate />`, Theme System & Composables (`useGate`, `useUpload`, `useToast`, `useClipboard`, etc.) |
282
- | `yaxa-svelte/admin` | Drizzle ORM Schema Introspection, `<AdminDashboard />`, `createYaxaAdminHook`, `createDrizzleAdmin`, `<DevSandbox />`, `<RecordDrawer />` |
283
- | `yaxa-svelte/server` | `yaxaEndpoint` Pipeline, Declarative Guards, RFC 7807, Universal Server Hooks, SEO endpoints, Drizzle DB, Storage & Email |
284
- | `yaxa-svelte/auth` | Better-Auth client & server integration (`useAuth`, `<AuthCard />`, `<PasskeyUI />`, `<TwoFactorModal />`, `createYaxaAuth`) |
285
- | `yaxa-svelte/db` | Multi-dialect Drizzle ORM clients & schemas for Neon (PostgreSQL) and Turso (SQLite/LibSQL) |
286
- | `yaxa-svelte/polar` | Polar.sh billing, customer portal sessions, and webhook synchronization |
287
- | `yaxa-svelte/email` | Resend transactional email templates with automatic development console fallback |
288
- | `yaxa-svelte/storage` | AWS S3 and Cloudflare R2 presigned upload URL generators |
289
- | `yaxa-svelte/testing` | Test mocks & utilities (`createMockSiteConfig`, `createMockUser`, `createTestWrapperProps`) |
290
- | `yaxa-svelte/vite` | Turnkey Vite plugin (`yaxa()`) |
291
- | `yaxa-svelte/yaxa.css` | Standalone turnkey Tailwind CSS v4 stylesheet with base styling, `@theme`, and scrollbars |
292
- | `yaxa-svelte/theme.css` | Pure Tailwind CSS v4 design tokens, `:root` variables, and harmonic radius scale without `@import 'tailwindcss'` |
350
+ | Subpath | Description |
351
+ | :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
352
+ | `yaxa-svelte` | Core UI Primitives, SEO Components, `<Gate />`, Theme System & Composables (`useGate`, `useUpload`, `useToast`, `useClipboard`, etc.) |
353
+ | `yaxa-svelte/admin` | Drizzle ORM Schema Introspection, `<AdminDashboard />`, `createYaxaAdminHook`, `createDrizzleAdmin`, `<DevSandbox />`, `<RecordDrawer />` |
354
+ | `yaxa-svelte/server` | `yaxaEndpoint` Pipeline, Declarative Guards, OpenAPI 3.1 & Scalar Docs, RFC 7807, Background Jobs (`enqueueJob`, `createJobRunner`), `eventBus`, Server Hooks, Drizzle DB, Storage & Email |
355
+ | `yaxa-svelte/auth` | Better-Auth client & server integration (`useAuth`, `<AuthCard />`, `<PasskeyUI />`, `<TwoFactorModal />`, `createYaxaAuth`) |
356
+ | `yaxa-svelte/db` | Multi-dialect Drizzle ORM clients & schemas for Neon (PostgreSQL) and Turso (SQLite/LibSQL) |
357
+ | `yaxa-svelte/polar` | Polar.sh billing, customer portal sessions, and webhook synchronization |
358
+ | `yaxa-svelte/email` | Resend transactional email templates with automatic development console fallback |
359
+ | `yaxa-svelte/storage` | AWS S3 and Cloudflare R2 presigned upload URL generators |
360
+ | `yaxa-svelte/testing` | Test mocks & utilities (`createMockSiteConfig`, `createMockUser`, `createTestWrapperProps`) |
361
+ | `yaxa-svelte/vite` | Turnkey Vite plugin (`yaxa()`) |
362
+ | `yaxa-svelte/yaxa.css` | Standalone turnkey Tailwind CSS v4 stylesheet with base styling, `@theme`, and scrollbars |
363
+ | `yaxa-svelte/theme.css` | Pure Tailwind CSS v4 design tokens, `:root` variables, and harmonic radius scale without `@import 'tailwindcss'` |
293
364
 
294
365
  ---
295
366
 
@@ -1639,3 +1639,265 @@ export declare const subscription: import("drizzle-orm/pg-core").PgTableWithColu
1639
1639
  };
1640
1640
  dialect: "pg";
1641
1641
  }>;
1642
+ export declare const job: import("drizzle-orm/pg-core").PgTableWithColumns<{
1643
+ name: "yaxa_job";
1644
+ schema: undefined;
1645
+ columns: {
1646
+ id: import("drizzle-orm/pg-core").PgColumn<{
1647
+ name: "id";
1648
+ tableName: "yaxa_job";
1649
+ dataType: "string";
1650
+ columnType: "PgText";
1651
+ data: string;
1652
+ driverParam: string;
1653
+ notNull: true;
1654
+ hasDefault: false;
1655
+ isPrimaryKey: true;
1656
+ isAutoincrement: false;
1657
+ hasRuntimeDefault: false;
1658
+ enumValues: [string, ...string[]];
1659
+ baseColumn: never;
1660
+ identity: undefined;
1661
+ generated: undefined;
1662
+ }, {}, {}>;
1663
+ queue: import("drizzle-orm/pg-core").PgColumn<{
1664
+ name: "queue";
1665
+ tableName: "yaxa_job";
1666
+ dataType: "string";
1667
+ columnType: "PgText";
1668
+ data: string;
1669
+ driverParam: string;
1670
+ notNull: true;
1671
+ hasDefault: true;
1672
+ isPrimaryKey: false;
1673
+ isAutoincrement: false;
1674
+ hasRuntimeDefault: false;
1675
+ enumValues: [string, ...string[]];
1676
+ baseColumn: never;
1677
+ identity: undefined;
1678
+ generated: undefined;
1679
+ }, {}, {}>;
1680
+ name: import("drizzle-orm/pg-core").PgColumn<{
1681
+ name: "name";
1682
+ tableName: "yaxa_job";
1683
+ dataType: "string";
1684
+ columnType: "PgText";
1685
+ data: string;
1686
+ driverParam: string;
1687
+ notNull: true;
1688
+ hasDefault: false;
1689
+ isPrimaryKey: false;
1690
+ isAutoincrement: false;
1691
+ hasRuntimeDefault: false;
1692
+ enumValues: [string, ...string[]];
1693
+ baseColumn: never;
1694
+ identity: undefined;
1695
+ generated: undefined;
1696
+ }, {}, {}>;
1697
+ payload: import("drizzle-orm/pg-core").PgColumn<{
1698
+ name: "payload";
1699
+ tableName: "yaxa_job";
1700
+ dataType: "string";
1701
+ columnType: "PgText";
1702
+ data: string;
1703
+ driverParam: string;
1704
+ notNull: true;
1705
+ hasDefault: false;
1706
+ isPrimaryKey: false;
1707
+ isAutoincrement: false;
1708
+ hasRuntimeDefault: false;
1709
+ enumValues: [string, ...string[]];
1710
+ baseColumn: never;
1711
+ identity: undefined;
1712
+ generated: undefined;
1713
+ }, {}, {}>;
1714
+ status: import("drizzle-orm/pg-core").PgColumn<{
1715
+ name: "status";
1716
+ tableName: "yaxa_job";
1717
+ dataType: "string";
1718
+ columnType: "PgText";
1719
+ data: string;
1720
+ driverParam: string;
1721
+ notNull: true;
1722
+ hasDefault: true;
1723
+ isPrimaryKey: false;
1724
+ isAutoincrement: false;
1725
+ hasRuntimeDefault: false;
1726
+ enumValues: [string, ...string[]];
1727
+ baseColumn: never;
1728
+ identity: undefined;
1729
+ generated: undefined;
1730
+ }, {}, {}>;
1731
+ priority: import("drizzle-orm/pg-core").PgColumn<{
1732
+ name: "priority";
1733
+ tableName: "yaxa_job";
1734
+ dataType: "number";
1735
+ columnType: "PgInteger";
1736
+ data: number;
1737
+ driverParam: string | number;
1738
+ notNull: true;
1739
+ hasDefault: true;
1740
+ isPrimaryKey: false;
1741
+ isAutoincrement: false;
1742
+ hasRuntimeDefault: false;
1743
+ enumValues: undefined;
1744
+ baseColumn: never;
1745
+ identity: undefined;
1746
+ generated: undefined;
1747
+ }, {}, {}>;
1748
+ attempts: import("drizzle-orm/pg-core").PgColumn<{
1749
+ name: "attempts";
1750
+ tableName: "yaxa_job";
1751
+ dataType: "number";
1752
+ columnType: "PgInteger";
1753
+ data: number;
1754
+ driverParam: string | number;
1755
+ notNull: true;
1756
+ hasDefault: true;
1757
+ isPrimaryKey: false;
1758
+ isAutoincrement: false;
1759
+ hasRuntimeDefault: false;
1760
+ enumValues: undefined;
1761
+ baseColumn: never;
1762
+ identity: undefined;
1763
+ generated: undefined;
1764
+ }, {}, {}>;
1765
+ maxAttempts: import("drizzle-orm/pg-core").PgColumn<{
1766
+ name: "max_attempts";
1767
+ tableName: "yaxa_job";
1768
+ dataType: "number";
1769
+ columnType: "PgInteger";
1770
+ data: number;
1771
+ driverParam: string | number;
1772
+ notNull: true;
1773
+ hasDefault: true;
1774
+ isPrimaryKey: false;
1775
+ isAutoincrement: false;
1776
+ hasRuntimeDefault: false;
1777
+ enumValues: undefined;
1778
+ baseColumn: never;
1779
+ identity: undefined;
1780
+ generated: undefined;
1781
+ }, {}, {}>;
1782
+ runAt: import("drizzle-orm/pg-core").PgColumn<{
1783
+ name: "run_at";
1784
+ tableName: "yaxa_job";
1785
+ dataType: "date";
1786
+ columnType: "PgTimestamp";
1787
+ data: Date;
1788
+ driverParam: string;
1789
+ notNull: true;
1790
+ hasDefault: false;
1791
+ isPrimaryKey: false;
1792
+ isAutoincrement: false;
1793
+ hasRuntimeDefault: false;
1794
+ enumValues: undefined;
1795
+ baseColumn: never;
1796
+ identity: undefined;
1797
+ generated: undefined;
1798
+ }, {}, {}>;
1799
+ lockedAt: import("drizzle-orm/pg-core").PgColumn<{
1800
+ name: "locked_at";
1801
+ tableName: "yaxa_job";
1802
+ dataType: "date";
1803
+ columnType: "PgTimestamp";
1804
+ data: Date;
1805
+ driverParam: string;
1806
+ notNull: false;
1807
+ hasDefault: false;
1808
+ isPrimaryKey: false;
1809
+ isAutoincrement: false;
1810
+ hasRuntimeDefault: false;
1811
+ enumValues: undefined;
1812
+ baseColumn: never;
1813
+ identity: undefined;
1814
+ generated: undefined;
1815
+ }, {}, {}>;
1816
+ lockedBy: import("drizzle-orm/pg-core").PgColumn<{
1817
+ name: "locked_by";
1818
+ tableName: "yaxa_job";
1819
+ dataType: "string";
1820
+ columnType: "PgText";
1821
+ data: string;
1822
+ driverParam: string;
1823
+ notNull: false;
1824
+ hasDefault: false;
1825
+ isPrimaryKey: false;
1826
+ isAutoincrement: false;
1827
+ hasRuntimeDefault: false;
1828
+ enumValues: [string, ...string[]];
1829
+ baseColumn: never;
1830
+ identity: undefined;
1831
+ generated: undefined;
1832
+ }, {}, {}>;
1833
+ failedReason: import("drizzle-orm/pg-core").PgColumn<{
1834
+ name: "failed_reason";
1835
+ tableName: "yaxa_job";
1836
+ dataType: "string";
1837
+ columnType: "PgText";
1838
+ data: string;
1839
+ driverParam: string;
1840
+ notNull: false;
1841
+ hasDefault: false;
1842
+ isPrimaryKey: false;
1843
+ isAutoincrement: false;
1844
+ hasRuntimeDefault: false;
1845
+ enumValues: [string, ...string[]];
1846
+ baseColumn: never;
1847
+ identity: undefined;
1848
+ generated: undefined;
1849
+ }, {}, {}>;
1850
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
1851
+ name: "created_at";
1852
+ tableName: "yaxa_job";
1853
+ dataType: "date";
1854
+ columnType: "PgTimestamp";
1855
+ data: Date;
1856
+ driverParam: string;
1857
+ notNull: true;
1858
+ hasDefault: false;
1859
+ isPrimaryKey: false;
1860
+ isAutoincrement: false;
1861
+ hasRuntimeDefault: false;
1862
+ enumValues: undefined;
1863
+ baseColumn: never;
1864
+ identity: undefined;
1865
+ generated: undefined;
1866
+ }, {}, {}>;
1867
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
1868
+ name: "updated_at";
1869
+ tableName: "yaxa_job";
1870
+ dataType: "date";
1871
+ columnType: "PgTimestamp";
1872
+ data: Date;
1873
+ driverParam: string;
1874
+ notNull: true;
1875
+ hasDefault: false;
1876
+ isPrimaryKey: false;
1877
+ isAutoincrement: false;
1878
+ hasRuntimeDefault: false;
1879
+ enumValues: undefined;
1880
+ baseColumn: never;
1881
+ identity: undefined;
1882
+ generated: undefined;
1883
+ }, {}, {}>;
1884
+ completedAt: import("drizzle-orm/pg-core").PgColumn<{
1885
+ name: "completed_at";
1886
+ tableName: "yaxa_job";
1887
+ dataType: "date";
1888
+ columnType: "PgTimestamp";
1889
+ data: Date;
1890
+ driverParam: string;
1891
+ notNull: false;
1892
+ hasDefault: false;
1893
+ isPrimaryKey: false;
1894
+ isAutoincrement: false;
1895
+ hasRuntimeDefault: false;
1896
+ enumValues: undefined;
1897
+ baseColumn: never;
1898
+ identity: undefined;
1899
+ generated: undefined;
1900
+ }, {}, {}>;
1901
+ };
1902
+ dialect: "pg";
1903
+ }>;
@@ -146,3 +146,23 @@ export const subscription = pgTable('subscription', {
146
146
  createdAt: timestamp('created_at', { mode: 'date' }).notNull(),
147
147
  updatedAt: timestamp('updated_at', { mode: 'date' }).notNull()
148
148
  });
149
+ // ---------------------------------------------------------------------------
150
+ // Background Jobs & Workflows Queue (PostgreSQL)
151
+ // ---------------------------------------------------------------------------
152
+ export const job = pgTable('yaxa_job', {
153
+ id: text('id').primaryKey(),
154
+ queue: text('queue').notNull().default('default'),
155
+ name: text('name').notNull(),
156
+ payload: text('payload').notNull(),
157
+ status: text('status').notNull().default('pending'), // 'pending' | 'processing' | 'completed' | 'failed'
158
+ priority: integer('priority').notNull().default(0),
159
+ attempts: integer('attempts').notNull().default(0),
160
+ maxAttempts: integer('max_attempts').notNull().default(3),
161
+ runAt: timestamp('run_at', { mode: 'date' }).notNull(),
162
+ lockedAt: timestamp('locked_at', { mode: 'date' }),
163
+ lockedBy: text('locked_by'),
164
+ failedReason: text('failed_reason'),
165
+ createdAt: timestamp('created_at', { mode: 'date' }).notNull(),
166
+ updatedAt: timestamp('updated_at', { mode: 'date' }).notNull(),
167
+ completedAt: timestamp('completed_at', { mode: 'date' })
168
+ });
@@ -1761,3 +1761,279 @@ export declare const subscription: import("drizzle-orm/sqlite-core").SQLiteTable
1761
1761
  };
1762
1762
  dialect: "sqlite";
1763
1763
  }>;
1764
+ export declare const job: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1765
+ name: "yaxa_job";
1766
+ schema: undefined;
1767
+ columns: {
1768
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1769
+ name: "id";
1770
+ tableName: "yaxa_job";
1771
+ dataType: "string";
1772
+ columnType: "SQLiteText";
1773
+ data: string;
1774
+ driverParam: string;
1775
+ notNull: true;
1776
+ hasDefault: false;
1777
+ isPrimaryKey: true;
1778
+ isAutoincrement: false;
1779
+ hasRuntimeDefault: false;
1780
+ enumValues: [string, ...string[]];
1781
+ baseColumn: never;
1782
+ identity: undefined;
1783
+ generated: undefined;
1784
+ }, {}, {
1785
+ length: number | undefined;
1786
+ }>;
1787
+ queue: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1788
+ name: "queue";
1789
+ tableName: "yaxa_job";
1790
+ dataType: "string";
1791
+ columnType: "SQLiteText";
1792
+ data: string;
1793
+ driverParam: string;
1794
+ notNull: true;
1795
+ hasDefault: true;
1796
+ isPrimaryKey: false;
1797
+ isAutoincrement: false;
1798
+ hasRuntimeDefault: false;
1799
+ enumValues: [string, ...string[]];
1800
+ baseColumn: never;
1801
+ identity: undefined;
1802
+ generated: undefined;
1803
+ }, {}, {
1804
+ length: number | undefined;
1805
+ }>;
1806
+ name: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1807
+ name: "name";
1808
+ tableName: "yaxa_job";
1809
+ dataType: "string";
1810
+ columnType: "SQLiteText";
1811
+ data: string;
1812
+ driverParam: string;
1813
+ notNull: true;
1814
+ hasDefault: false;
1815
+ isPrimaryKey: false;
1816
+ isAutoincrement: false;
1817
+ hasRuntimeDefault: false;
1818
+ enumValues: [string, ...string[]];
1819
+ baseColumn: never;
1820
+ identity: undefined;
1821
+ generated: undefined;
1822
+ }, {}, {
1823
+ length: number | undefined;
1824
+ }>;
1825
+ payload: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1826
+ name: "payload";
1827
+ tableName: "yaxa_job";
1828
+ dataType: "string";
1829
+ columnType: "SQLiteText";
1830
+ data: string;
1831
+ driverParam: string;
1832
+ notNull: true;
1833
+ hasDefault: false;
1834
+ isPrimaryKey: false;
1835
+ isAutoincrement: false;
1836
+ hasRuntimeDefault: false;
1837
+ enumValues: [string, ...string[]];
1838
+ baseColumn: never;
1839
+ identity: undefined;
1840
+ generated: undefined;
1841
+ }, {}, {
1842
+ length: number | undefined;
1843
+ }>;
1844
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1845
+ name: "status";
1846
+ tableName: "yaxa_job";
1847
+ dataType: "string";
1848
+ columnType: "SQLiteText";
1849
+ data: string;
1850
+ driverParam: string;
1851
+ notNull: true;
1852
+ hasDefault: true;
1853
+ isPrimaryKey: false;
1854
+ isAutoincrement: false;
1855
+ hasRuntimeDefault: false;
1856
+ enumValues: [string, ...string[]];
1857
+ baseColumn: never;
1858
+ identity: undefined;
1859
+ generated: undefined;
1860
+ }, {}, {
1861
+ length: number | undefined;
1862
+ }>;
1863
+ priority: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1864
+ name: "priority";
1865
+ tableName: "yaxa_job";
1866
+ dataType: "number";
1867
+ columnType: "SQLiteInteger";
1868
+ data: number;
1869
+ driverParam: number;
1870
+ notNull: true;
1871
+ hasDefault: true;
1872
+ isPrimaryKey: false;
1873
+ isAutoincrement: false;
1874
+ hasRuntimeDefault: false;
1875
+ enumValues: undefined;
1876
+ baseColumn: never;
1877
+ identity: undefined;
1878
+ generated: undefined;
1879
+ }, {}, {}>;
1880
+ attempts: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1881
+ name: "attempts";
1882
+ tableName: "yaxa_job";
1883
+ dataType: "number";
1884
+ columnType: "SQLiteInteger";
1885
+ data: number;
1886
+ driverParam: number;
1887
+ notNull: true;
1888
+ hasDefault: true;
1889
+ isPrimaryKey: false;
1890
+ isAutoincrement: false;
1891
+ hasRuntimeDefault: false;
1892
+ enumValues: undefined;
1893
+ baseColumn: never;
1894
+ identity: undefined;
1895
+ generated: undefined;
1896
+ }, {}, {}>;
1897
+ maxAttempts: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1898
+ name: "max_attempts";
1899
+ tableName: "yaxa_job";
1900
+ dataType: "number";
1901
+ columnType: "SQLiteInteger";
1902
+ data: number;
1903
+ driverParam: number;
1904
+ notNull: true;
1905
+ hasDefault: true;
1906
+ isPrimaryKey: false;
1907
+ isAutoincrement: false;
1908
+ hasRuntimeDefault: false;
1909
+ enumValues: undefined;
1910
+ baseColumn: never;
1911
+ identity: undefined;
1912
+ generated: undefined;
1913
+ }, {}, {}>;
1914
+ runAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1915
+ name: "run_at";
1916
+ tableName: "yaxa_job";
1917
+ dataType: "date";
1918
+ columnType: "SQLiteTimestamp";
1919
+ data: Date;
1920
+ driverParam: number;
1921
+ notNull: true;
1922
+ hasDefault: false;
1923
+ isPrimaryKey: false;
1924
+ isAutoincrement: false;
1925
+ hasRuntimeDefault: false;
1926
+ enumValues: undefined;
1927
+ baseColumn: never;
1928
+ identity: undefined;
1929
+ generated: undefined;
1930
+ }, {}, {}>;
1931
+ lockedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1932
+ name: "locked_at";
1933
+ tableName: "yaxa_job";
1934
+ dataType: "date";
1935
+ columnType: "SQLiteTimestamp";
1936
+ data: Date;
1937
+ driverParam: number;
1938
+ notNull: false;
1939
+ hasDefault: false;
1940
+ isPrimaryKey: false;
1941
+ isAutoincrement: false;
1942
+ hasRuntimeDefault: false;
1943
+ enumValues: undefined;
1944
+ baseColumn: never;
1945
+ identity: undefined;
1946
+ generated: undefined;
1947
+ }, {}, {}>;
1948
+ lockedBy: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1949
+ name: "locked_by";
1950
+ tableName: "yaxa_job";
1951
+ dataType: "string";
1952
+ columnType: "SQLiteText";
1953
+ data: string;
1954
+ driverParam: string;
1955
+ notNull: false;
1956
+ hasDefault: false;
1957
+ isPrimaryKey: false;
1958
+ isAutoincrement: false;
1959
+ hasRuntimeDefault: false;
1960
+ enumValues: [string, ...string[]];
1961
+ baseColumn: never;
1962
+ identity: undefined;
1963
+ generated: undefined;
1964
+ }, {}, {
1965
+ length: number | undefined;
1966
+ }>;
1967
+ failedReason: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1968
+ name: "failed_reason";
1969
+ tableName: "yaxa_job";
1970
+ dataType: "string";
1971
+ columnType: "SQLiteText";
1972
+ data: string;
1973
+ driverParam: string;
1974
+ notNull: false;
1975
+ hasDefault: false;
1976
+ isPrimaryKey: false;
1977
+ isAutoincrement: false;
1978
+ hasRuntimeDefault: false;
1979
+ enumValues: [string, ...string[]];
1980
+ baseColumn: never;
1981
+ identity: undefined;
1982
+ generated: undefined;
1983
+ }, {}, {
1984
+ length: number | undefined;
1985
+ }>;
1986
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1987
+ name: "created_at";
1988
+ tableName: "yaxa_job";
1989
+ dataType: "date";
1990
+ columnType: "SQLiteTimestamp";
1991
+ data: Date;
1992
+ driverParam: number;
1993
+ notNull: true;
1994
+ hasDefault: false;
1995
+ isPrimaryKey: false;
1996
+ isAutoincrement: false;
1997
+ hasRuntimeDefault: false;
1998
+ enumValues: undefined;
1999
+ baseColumn: never;
2000
+ identity: undefined;
2001
+ generated: undefined;
2002
+ }, {}, {}>;
2003
+ updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
2004
+ name: "updated_at";
2005
+ tableName: "yaxa_job";
2006
+ dataType: "date";
2007
+ columnType: "SQLiteTimestamp";
2008
+ data: Date;
2009
+ driverParam: number;
2010
+ notNull: true;
2011
+ hasDefault: false;
2012
+ isPrimaryKey: false;
2013
+ isAutoincrement: false;
2014
+ hasRuntimeDefault: false;
2015
+ enumValues: undefined;
2016
+ baseColumn: never;
2017
+ identity: undefined;
2018
+ generated: undefined;
2019
+ }, {}, {}>;
2020
+ completedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
2021
+ name: "completed_at";
2022
+ tableName: "yaxa_job";
2023
+ dataType: "date";
2024
+ columnType: "SQLiteTimestamp";
2025
+ data: Date;
2026
+ driverParam: number;
2027
+ notNull: false;
2028
+ hasDefault: false;
2029
+ isPrimaryKey: false;
2030
+ isAutoincrement: false;
2031
+ hasRuntimeDefault: false;
2032
+ enumValues: undefined;
2033
+ baseColumn: never;
2034
+ identity: undefined;
2035
+ generated: undefined;
2036
+ }, {}, {}>;
2037
+ };
2038
+ dialect: "sqlite";
2039
+ }>;