@stacksjs/types 0.70.23 → 0.70.26

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 (161) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/src/ai.d.ts +37 -0
  3. package/dist/src/analytics.d.ts +36 -0
  4. package/dist/src/api.d.ts +26 -0
  5. package/dist/src/app.d.ts +28 -0
  6. package/dist/src/attributes.d.ts +1 -0
  7. package/dist/src/auth.d.ts +49 -0
  8. package/dist/src/auto-imports.d.ts +8 -0
  9. package/dist/{binary.d.ts → src/binary.d.ts} +4 -1
  10. package/dist/src/cache.d.ts +79 -0
  11. package/dist/{cdn.d.ts → src/cdn.d.ts} +1 -1
  12. package/dist/{chat.d.ts → src/chat.d.ts} +29 -48
  13. package/dist/src/cli.d.ts +308 -0
  14. package/dist/{cloud.d.ts → src/cloud.d.ts} +81 -26
  15. package/dist/{components.d.ts → src/components.d.ts} +1 -4
  16. package/dist/{configure.d.ts → src/configure.d.ts} +1 -1
  17. package/dist/{cron-jobs.d.ts → src/cron-jobs.d.ts} +33 -37
  18. package/dist/src/dashboard.d.ts +33 -0
  19. package/dist/{database.d.ts → src/database.d.ts} +20 -12
  20. package/dist/src/dependencies.d.ts +17 -0
  21. package/dist/src/deploy.d.ts +16 -0
  22. package/dist/{dns.d.ts → src/dns.d.ts} +59 -59
  23. package/dist/src/docs.d.ts +23 -0
  24. package/dist/src/email.d.ts +201 -0
  25. package/dist/src/env.d.ts +1 -0
  26. package/dist/{errors.d.ts → src/errors.d.ts} +17 -24
  27. package/dist/src/events.d.ts +31 -0
  28. package/dist/src/exit-code.d.ts +10 -0
  29. package/dist/{file-systems.d.ts → src/file-systems.d.ts} +10 -6
  30. package/dist/{git.d.ts → src/git.d.ts} +9 -6
  31. package/dist/src/hashing.d.ts +57 -0
  32. package/dist/src/helpers.d.ts +1 -0
  33. package/dist/src/i18n.d.ts +65 -0
  34. package/dist/src/index.d.ts +70 -0
  35. package/dist/{library.d.ts → src/library.d.ts} +31 -33
  36. package/dist/src/logging.d.ts +12 -0
  37. package/dist/{manifest.d.ts → src/manifest.d.ts} +4 -1
  38. package/dist/src/model-names.d.ts +1 -0
  39. package/dist/src/model.d.ts +251 -0
  40. package/dist/{notifications.d.ts → src/notifications.d.ts} +1 -26
  41. package/dist/src/oauth.d.ts +290 -0
  42. package/dist/{pages.d.ts → src/pages.d.ts} +1 -1
  43. package/dist/src/payments.d.ts +322 -0
  44. package/dist/src/phone.d.ts +52 -0
  45. package/dist/src/ports.d.ts +20 -0
  46. package/dist/src/promise.d.ts +1 -0
  47. package/dist/src/push.d.ts +108 -0
  48. package/dist/src/queue.d.ts +310 -0
  49. package/dist/src/reactivity.d.ts +1 -0
  50. package/dist/src/realtime.d.ts +443 -0
  51. package/dist/src/request.d.ts +154 -0
  52. package/dist/{response.d.ts → src/response.d.ts} +1 -1
  53. package/dist/src/router.d.ts +105 -0
  54. package/dist/{saas.d.ts → src/saas.d.ts} +2 -2
  55. package/dist/src/scheduler.d.ts +1 -0
  56. package/dist/{search-engine.d.ts → src/search-engine.d.ts} +41 -45
  57. package/dist/{security.d.ts → src/security.d.ts} +4 -8
  58. package/dist/{server.d.ts → src/server.d.ts} +1 -1
  59. package/dist/src/services.d.ts +140 -0
  60. package/dist/{settings-config.d.ts → src/settings-config.d.ts} +1 -1
  61. package/dist/src/sms.d.ts +144 -0
  62. package/dist/src/stack-extensions.d.ts +137 -0
  63. package/dist/src/stacks.d.ts +40 -0
  64. package/dist/src/storage.d.ts +105 -0
  65. package/dist/src/table-names.d.ts +1 -0
  66. package/dist/src/tables.d.ts +34 -0
  67. package/dist/src/team.d.ts +7 -0
  68. package/dist/src/ui.d.ts +55 -0
  69. package/dist/src/utils.d.ts +39 -0
  70. package/package.json +13 -32
  71. package/src/ai.ts +20 -6
  72. package/src/analytics.ts +38 -1
  73. package/src/app.ts +38 -0
  74. package/src/attributes.ts +5 -1
  75. package/src/auth.ts +122 -0
  76. package/src/auto-imports.ts +8 -1
  77. package/src/cache.ts +226 -69
  78. package/src/chat.ts +0 -20
  79. package/src/cli.ts +24 -9
  80. package/src/cloud.ts +40 -1
  81. package/src/components.ts +3 -5
  82. package/src/cron-jobs.ts +1 -1
  83. package/src/dashboard.ts +40 -0
  84. package/src/database.ts +18 -2
  85. package/src/dns.ts +1 -1
  86. package/src/docs.ts +3 -3
  87. package/src/email.ts +303 -13
  88. package/src/errors.ts +2 -3
  89. package/src/events.ts +10 -5
  90. package/src/git.ts +3 -3
  91. package/src/hashing.ts +15 -19
  92. package/src/i18n.ts +105 -3
  93. package/src/index.ts +9 -5
  94. package/src/library.ts +0 -5
  95. package/src/model-names.ts +1 -1
  96. package/src/model.ts +87 -10
  97. package/src/oauth.ts +488 -0
  98. package/src/payments.ts +370 -27
  99. package/src/phone.ts +62 -0
  100. package/src/push.ts +107 -0
  101. package/src/queue.ts +386 -28
  102. package/src/reactivity.ts +1 -1
  103. package/src/realtime.ts +584 -0
  104. package/src/request.ts +344 -22
  105. package/src/router.ts +62 -4
  106. package/src/search-engine.ts +13 -13
  107. package/src/services.ts +100 -5
  108. package/src/sms.ts +263 -3
  109. package/src/stack-extensions.ts +184 -0
  110. package/src/stacks.ts +34 -4
  111. package/src/storage.ts +140 -6
  112. package/src/table-names.ts +1 -1
  113. package/src/ui.ts +20 -12
  114. package/src/utils.ts +1 -1
  115. package/dist/ai.d.ts +0 -20
  116. package/dist/analytics.d.ts +0 -13
  117. package/dist/api.d.ts +0 -26
  118. package/dist/app.d.ts +0 -32
  119. package/dist/attributes.d.ts +0 -1
  120. package/dist/auto-imports.d.ts +0 -1
  121. package/dist/build.d.ts +0 -2
  122. package/dist/cache.d.ts +0 -49
  123. package/dist/cli.d.ts +0 -310
  124. package/dist/dependencies.d.ts +0 -16
  125. package/dist/deploy.d.ts +0 -10
  126. package/dist/docs.d.ts +0 -26
  127. package/dist/email.d.ts +0 -107
  128. package/dist/events.d.ts +0 -5
  129. package/dist/exit-code.d.ts +0 -5
  130. package/dist/hashing.d.ts +0 -36
  131. package/dist/helpers.d.ts +0 -1
  132. package/dist/i18n.d.ts +0 -11
  133. package/dist/index.d.ts +0 -65
  134. package/dist/inspect.d.ts +0 -3
  135. package/dist/logging.d.ts +0 -6
  136. package/dist/model-names.d.ts +0 -1
  137. package/dist/model.d.ts +0 -232
  138. package/dist/payments.d.ts +0 -94
  139. package/dist/ports.d.ts +0 -13
  140. package/dist/promise.d.ts +0 -1
  141. package/dist/push.d.ts +0 -35
  142. package/dist/pwa.d.ts +0 -3
  143. package/dist/queue.d.ts +0 -45
  144. package/dist/reactivity.d.ts +0 -1
  145. package/dist/request.d.ts +0 -49
  146. package/dist/router.d.ts +0 -65
  147. package/dist/scheduler.d.ts +0 -1
  148. package/dist/services.d.ts +0 -81
  149. package/dist/ssg.d.ts +0 -3
  150. package/dist/stacks.d.ts +0 -54
  151. package/dist/storage.d.ts +0 -31
  152. package/dist/table-names.d.ts +0 -1
  153. package/dist/tables.d.ts +0 -34
  154. package/dist/team.d.ts +0 -8
  155. package/dist/ui.d.ts +0 -47
  156. package/dist/utils.d.ts +0 -27
  157. package/src/build.ts +0 -2
  158. package/src/inspect.ts +0 -10
  159. package/src/layout.ts +0 -8
  160. package/src/pwa.ts +0 -8
  161. package/src/ssg.ts +0 -3
package/src/queue.ts CHANGED
@@ -1,47 +1,405 @@
1
1
  import type { JobOptions } from './cron-jobs'
2
2
  import type { DeepPartial } from './utils'
3
3
 
4
+ /**
5
+ * Queue driver type
6
+ */
7
+ export type QueueDriver = 'sync' | 'database' | 'redis' | 'sqs' | 'memory'
8
+
9
+ /**
10
+ * Job status
11
+ */
12
+ export type JobStatus = 'waiting' | 'active' | 'completed' | 'failed' | 'delayed' | 'paused'
13
+
14
+ /**
15
+ * Log level for queue operations
16
+ */
17
+ export type QueueLogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent'
18
+
19
+ /**
20
+ * Rate limiter configuration
21
+ */
22
+ export interface QueueRateLimiter {
23
+ /** Maximum number of jobs to process */
24
+ max: number
25
+ /** Duration in milliseconds */
26
+ duration: number
27
+ /** Key prefix for rate limiting */
28
+ keyPrefix?: string | ((_data: any) => string)
29
+ }
30
+
31
+ /**
32
+ * Backoff configuration for job retries
33
+ */
34
+ export interface QueueBackoff {
35
+ /** Backoff type */
36
+ type: 'fixed' | 'exponential'
37
+ /** Delay in milliseconds */
38
+ delay: number
39
+ }
40
+
41
+ /**
42
+ * Dead letter queue configuration
43
+ */
44
+ export interface DeadLetterQueueConfig {
45
+ /** Enable dead letter queue */
46
+ enabled?: boolean
47
+ /** Suffix for dead letter queue name */
48
+ queueSuffix?: string
49
+ /** Maximum retries before moving to dead letter queue */
50
+ maxRetries?: number
51
+ /** Automatically process failed jobs */
52
+ processFailed?: boolean
53
+ /** Remove from original queue's failed list */
54
+ removeFromOriginalQueue?: boolean
55
+ }
56
+
57
+ /**
58
+ * Horizontal scaling configuration
59
+ */
60
+ export interface HorizontalScalingConfig {
61
+ /** Enable horizontal scaling */
62
+ enabled?: boolean
63
+ /** Instance identifier */
64
+ instanceId?: string
65
+ /** Maximum workers per instance */
66
+ maxWorkersPerInstance?: number
67
+ /** Jobs per worker */
68
+ jobsPerWorker?: number
69
+ /** Leader election configuration */
70
+ leaderElection?: {
71
+ heartbeatInterval?: number
72
+ leaderTimeout?: number
73
+ }
74
+ /** Work coordination configuration */
75
+ workCoordination?: {
76
+ pollInterval?: number
77
+ keyPrefix?: string
78
+ }
79
+ }
80
+
81
+ /**
82
+ * Metrics configuration
83
+ */
84
+ export interface QueueMetricsConfig {
85
+ /** Enable metrics collection */
86
+ enabled: boolean
87
+ /** Collection interval in milliseconds */
88
+ collectInterval?: number
89
+ }
90
+
91
+ /**
92
+ * Redis connection configuration for queue
93
+ */
94
+ export interface QueueRedisConfig {
95
+ /** Redis URL */
96
+ url?: string
97
+ /** Redis host */
98
+ host?: string
99
+ /** Redis port */
100
+ port?: number
101
+ /** Redis password */
102
+ password?: string
103
+ /** Redis database number */
104
+ db?: number
105
+ /** Key prefix */
106
+ prefix?: string
107
+ }
108
+
109
+ /**
110
+ * Job options for queue operations
111
+ */
112
+ export interface QueueJobOptions {
113
+ /** Delay in milliseconds before processing */
114
+ delay?: number
115
+ /** Number of retry attempts */
116
+ attempts?: number
117
+ /** Backoff configuration */
118
+ backoff?: QueueBackoff
119
+ /** Remove job on completion */
120
+ removeOnComplete?: boolean | number
121
+ /** Remove job on failure */
122
+ removeOnFail?: boolean | number
123
+ /** Job priority (higher = processed first) */
124
+ priority?: number
125
+ /** Process in LIFO order */
126
+ lifo?: boolean
127
+ /** Job timeout in milliseconds */
128
+ timeout?: number
129
+ /** Custom job ID */
130
+ jobId?: string
131
+ /** Job dependencies */
132
+ dependsOn?: string | string[]
133
+ /** Keep jobs in history */
134
+ keepJobs?: boolean
135
+ /** Dead letter queue options */
136
+ deadLetter?: boolean | DeadLetterQueueConfig
137
+ /** Repeat configuration for recurring jobs */
138
+ repeat?: {
139
+ /** Repeat every N milliseconds */
140
+ every?: number
141
+ /** Maximum number of repeats */
142
+ limit?: number
143
+ /** Cron expression */
144
+ cron?: string
145
+ /** Timezone */
146
+ tz?: string
147
+ /** Start date */
148
+ startDate?: Date | number
149
+ /** End date */
150
+ endDate?: Date | number
151
+ }
152
+ }
153
+
154
+ /**
155
+ * Redis driver connection configuration
156
+ */
157
+ export interface RedisConnectionConfig {
158
+ driver: 'redis'
159
+ /** Redis configuration */
160
+ redis?: QueueRedisConfig
161
+ /** Key prefix for queue keys */
162
+ prefix?: string
163
+ /** Default job options */
164
+ defaultJobOptions?: QueueJobOptions
165
+ /** Rate limiter configuration */
166
+ limiter?: QueueRateLimiter
167
+ /** Metrics configuration */
168
+ metrics?: QueueMetricsConfig
169
+ /** Stalled job check interval in milliseconds */
170
+ stalledJobCheckInterval?: number
171
+ /** Maximum stalled job retries */
172
+ maxStalledJobRetries?: number
173
+ /** Enable distributed locking */
174
+ distributedLock?: boolean
175
+ /** Default dead letter queue options */
176
+ defaultDeadLetterOptions?: DeadLetterQueueConfig
177
+ /** Horizontal scaling configuration */
178
+ horizontalScaling?: HorizontalScalingConfig
179
+ /** Log level */
180
+ logLevel?: QueueLogLevel
181
+ /** Worker concurrency */
182
+ concurrency?: number
183
+ }
184
+
185
+ /**
186
+ * Database driver connection configuration
187
+ */
188
+ export interface DatabaseConnectionConfig {
189
+ driver: 'database'
190
+ /** Database table name */
191
+ table?: string
192
+ /** Queue name */
193
+ queue?: string
194
+ /** Retry after seconds */
195
+ retryAfter?: number
196
+ }
197
+
198
+ /**
199
+ * SQS driver connection configuration
200
+ */
201
+ export interface SqsConnectionConfig {
202
+ driver: 'sqs'
203
+ /** AWS access key */
204
+ key?: string
205
+ /** AWS secret key */
206
+ secret?: string
207
+ /** Queue URL prefix */
208
+ prefix?: string
209
+ /** Queue URL suffix */
210
+ suffix?: string
211
+ /** Queue name */
212
+ queue?: string
213
+ /** AWS region */
214
+ region?: string
215
+ }
216
+
217
+ /**
218
+ * Sync driver connection configuration
219
+ */
220
+ export interface SyncConnectionConfig {
221
+ driver: 'sync'
222
+ }
223
+
224
+ /**
225
+ * Memory driver connection configuration
226
+ */
227
+ export interface MemoryConnectionConfig {
228
+ driver: 'memory'
229
+ /** Maximum queue size */
230
+ maxSize?: number
231
+ }
232
+
233
+ /**
234
+ * Queue connection configuration
235
+ */
236
+ export type QueueConnectionConfig =
237
+ | RedisConnectionConfig
238
+ | DatabaseConnectionConfig
239
+ | SqsConnectionConfig
240
+ | SyncConnectionConfig
241
+ | MemoryConnectionConfig
242
+
243
+ export interface Dispatchable {
244
+ dispatch: () => Promise<void>
245
+ dispatchNow: () => Promise<void>
246
+ delay: (seconds: number) => this
247
+ afterResponse: () => this
248
+ chain: (jobs: Dispatchable[]) => this
249
+ onQueue: (queue: string) => this
250
+ }
251
+
4
252
  export interface QueueOptions {
5
- default: 'sync' | 'database' | 'redis' | 'sqs'
253
+ /** Default queue driver */
254
+ default: QueueDriver
255
+ /** Queue connections */
6
256
  connections: {
7
- sync: {
8
- driver: 'sync'
9
- }
10
- database: {
11
- driver: 'database'
12
- table: 'jobs'
13
- queue: 'default'
14
- retry_after: 90
15
- }
16
- redis: {
17
- driver: 'redis'
18
- connection: 'default'
19
- queue: 'default'
20
- retry_after: 90
21
- }
22
- sqs: {
23
- driver: 'sqs'
24
- key: ''
25
- secret: ''
26
- prefix: ''
27
- suffix: ''
28
- queue: 'default'
29
- region: 'us-east-1'
30
- }
257
+ sync?: SyncConnectionConfig
258
+ database?: DatabaseConnectionConfig
259
+ redis?: RedisConnectionConfig
260
+ sqs?: SqsConnectionConfig
261
+ memory?: MemoryConnectionConfig
262
+ [key: string]: QueueConnectionConfig | undefined
31
263
  }
264
+ /** Failed jobs configuration */
32
265
  failed: {
33
- driver: 'database'
34
- database: 'mysql'
35
- table: 'failed_jobs'
266
+ driver: 'database' | 'redis'
267
+ database?: string
268
+ table?: string
269
+ prefix?: string
270
+ }
271
+ /** Batching configuration */
272
+ batching?: {
273
+ driver: 'database' | 'redis'
274
+ table?: string
275
+ prefix?: string
276
+ }
277
+ /** Worker configuration */
278
+ worker?: {
279
+ /** Number of concurrent workers */
280
+ concurrency?: number
281
+ /** Graceful shutdown timeout in milliseconds */
282
+ shutdownTimeout?: number
36
283
  }
37
284
  }
38
285
 
286
+ // @ts-ignore - QueueOption extends JobOptions with compatible overrides
39
287
  export interface QueueOption extends JobOptions {
40
288
  delay?: number
41
289
  payload?: any
42
290
  afterResponse?: any
43
291
  context?: string
44
292
  maxTries?: number
293
+ chainedJobs?: Dispatchable[]
294
+ /** Queue name to dispatch to */
295
+ queue?: string
296
+ /** Job priority */
297
+ priority?: number
298
+ /** Backoff configuration */
299
+ backoff?: number[] | QueueBackoff
300
+ /** Job timeout */
301
+ timeout?: number
302
+ /** Immediate execution */
303
+ immediate?: boolean
45
304
  }
46
305
 
47
306
  export type QueueConfig = DeepPartial<QueueOptions>
307
+
308
+ /**
309
+ * Queue presets for common configurations
310
+ */
311
+ export const QueuePresets = {
312
+ /**
313
+ * Development preset - uses sync driver
314
+ */
315
+ development: {
316
+ default: 'sync' as const,
317
+ connections: {
318
+ sync: { driver: 'sync' as const },
319
+ },
320
+ failed: {
321
+ driver: 'database' as const,
322
+ table: 'failed_jobs',
323
+ },
324
+ },
325
+
326
+ /**
327
+ * Production preset - uses Redis with bun-queue
328
+ */
329
+ production: {
330
+ default: 'redis' as const,
331
+ connections: {
332
+ redis: {
333
+ driver: 'redis' as const,
334
+ prefix: 'stacks:queue',
335
+ concurrency: 5,
336
+ distributedLock: true,
337
+ metrics: { enabled: true },
338
+ defaultDeadLetterOptions: {
339
+ enabled: true,
340
+ maxRetries: 3,
341
+ },
342
+ },
343
+ },
344
+ failed: {
345
+ driver: 'redis' as const,
346
+ prefix: 'stacks:failed',
347
+ },
348
+ worker: {
349
+ concurrency: 5,
350
+ shutdownTimeout: 30000,
351
+ },
352
+ },
353
+
354
+ /**
355
+ * High performance preset - optimized for throughput
356
+ */
357
+ highPerformance: {
358
+ default: 'redis' as const,
359
+ connections: {
360
+ redis: {
361
+ driver: 'redis' as const,
362
+ prefix: 'stacks:queue',
363
+ concurrency: 20,
364
+ distributedLock: true,
365
+ metrics: { enabled: true, collectInterval: 5000 },
366
+ horizontalScaling: {
367
+ enabled: true,
368
+ maxWorkersPerInstance: 20,
369
+ jobsPerWorker: 50,
370
+ },
371
+ defaultDeadLetterOptions: {
372
+ enabled: true,
373
+ maxRetries: 5,
374
+ },
375
+ },
376
+ },
377
+ failed: {
378
+ driver: 'redis' as const,
379
+ prefix: 'stacks:failed',
380
+ },
381
+ worker: {
382
+ concurrency: 20,
383
+ shutdownTimeout: 60000,
384
+ },
385
+ },
386
+
387
+ /**
388
+ * Database preset - uses database driver
389
+ */
390
+ database: {
391
+ default: 'database' as const,
392
+ connections: {
393
+ database: {
394
+ driver: 'database' as const,
395
+ table: 'jobs',
396
+ queue: 'default',
397
+ retryAfter: 90,
398
+ },
399
+ },
400
+ failed: {
401
+ driver: 'database' as const,
402
+ table: 'failed_jobs',
403
+ },
404
+ },
405
+ } as const
package/src/reactivity.ts CHANGED
@@ -1 +1 @@
1
- export type { Ref } from 'vue'
1
+ export type { Ref } from '@stacksjs/stx'