@stacksjs/types 0.70.88 → 0.70.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai.d.ts +37 -0
- package/dist/analytics.d.ts +36 -0
- package/dist/api.d.ts +26 -0
- package/dist/app.d.ts +28 -0
- package/dist/attributes.d.ts +1 -0
- package/dist/auth.d.ts +62 -0
- package/dist/auto-imports.d.ts +8 -0
- package/dist/binary.d.ts +11 -0
- package/dist/cache.d.ts +88 -0
- package/dist/cdn.d.ts +4 -0
- package/dist/chat.d.ts +69 -0
- package/dist/cli.d.ts +316 -0
- package/dist/cloud.d.ts +366 -0
- package/dist/cms.d.ts +12 -0
- package/dist/commerce.d.ts +14 -0
- package/dist/components.d.ts +9 -0
- package/dist/configure.d.ts +12 -0
- package/dist/cors.d.ts +47 -0
- package/dist/cron-jobs.d.ts +61 -0
- package/dist/dashboard.d.ts +108 -0
- package/dist/database.d.ts +76 -0
- package/dist/dependencies.d.ts +17 -0
- package/dist/deploy.d.ts +16 -0
- package/dist/dns.d.ts +362 -0
- package/dist/docs.d.ts +23 -0
- package/dist/email.d.ts +207 -0
- package/dist/env.d.ts +1 -0
- package/dist/errors.d.ts +84 -0
- package/dist/events.d.ts +31 -0
- package/dist/exit-code.d.ts +10 -0
- package/dist/feature-flags.d.ts +17 -0
- package/dist/file-systems.d.ts +60 -0
- package/dist/git.d.ts +60 -0
- package/dist/hashing.d.ts +57 -0
- package/dist/helpers.d.ts +1 -0
- package/dist/i18n.d.ts +65 -0
- package/dist/index.d.ts +80 -0
- package/dist/index.js +2 -0
- package/dist/library.d.ts +799 -0
- package/dist/logging.d.ts +15 -0
- package/dist/manifest.d.ts +9 -0
- package/dist/marketing.d.ts +12 -0
- package/dist/model-dashboard-augmentation.d.ts +8 -0
- package/dist/model-names.d.ts +1 -0
- package/dist/model.d.ts +256 -0
- package/dist/monitoring.d.ts +12 -0
- package/dist/notifications.d.ts +126 -0
- package/dist/oauth.d.ts +290 -0
- package/dist/pages.d.ts +10 -0
- package/dist/payments.d.ts +322 -0
- package/dist/phone.d.ts +65 -0
- package/dist/ports.d.ts +20 -0
- package/dist/promise.d.ts +1 -0
- package/dist/push.d.ts +108 -0
- package/dist/queue.d.ts +312 -0
- package/dist/reactivity.d.ts +1 -0
- package/dist/realtime.d.ts +443 -0
- package/dist/request.d.ts +265 -0
- package/dist/response.d.ts +15 -0
- package/dist/router.d.ts +105 -0
- package/dist/saas.d.ts +32 -0
- package/dist/scheduler.d.ts +1 -0
- package/dist/search-engine.d.ts +129 -0
- package/dist/security.d.ts +18 -0
- package/dist/server.d.ts +16 -0
- package/dist/services.d.ts +149 -0
- package/dist/settings-config.d.ts +9 -0
- package/dist/sms.d.ts +144 -0
- package/dist/stack-extensions.d.ts +137 -0
- package/dist/stacks.d.ts +46 -0
- package/dist/storage.d.ts +104 -0
- package/dist/table-names.d.ts +1 -0
- package/dist/tables.d.ts +34 -0
- package/dist/team.d.ts +7 -0
- package/dist/ui.d.ts +55 -0
- package/dist/utils.d.ts +39 -0
- package/package.json +3 -3
package/dist/cloud.d.ts
ADDED
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
import type { ApiConfig } from './api';
|
|
2
|
+
import type { FirewallConfig } from './security';
|
|
3
|
+
declare interface SiteConfig {
|
|
4
|
+
domain: string
|
|
5
|
+
path: string
|
|
6
|
+
}
|
|
7
|
+
export declare interface TunnelCloudConfig {
|
|
8
|
+
enabled: boolean
|
|
9
|
+
domain?: string
|
|
10
|
+
region?: string
|
|
11
|
+
instanceType?: string
|
|
12
|
+
prefix?: string
|
|
13
|
+
ssl?: {
|
|
14
|
+
enabled: boolean
|
|
15
|
+
porkbunApiKey?: string
|
|
16
|
+
porkbunSecretKey?: string
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export declare interface CloudOptions {
|
|
20
|
+
sites: {
|
|
21
|
+
root: string
|
|
22
|
+
path: string
|
|
23
|
+
[site: string]: string | SiteConfig
|
|
24
|
+
}
|
|
25
|
+
infrastructure: InfrastructureOptions
|
|
26
|
+
cdn: any
|
|
27
|
+
api: any
|
|
28
|
+
firewall: any
|
|
29
|
+
}
|
|
30
|
+
export type CountryCode = | 'AD'
|
|
31
|
+
| 'AE'
|
|
32
|
+
| 'AF'
|
|
33
|
+
| 'AG'
|
|
34
|
+
| 'AI'
|
|
35
|
+
| 'AL'
|
|
36
|
+
| 'AM'
|
|
37
|
+
| 'AO'
|
|
38
|
+
| 'AQ'
|
|
39
|
+
| 'AR'
|
|
40
|
+
| 'AS'
|
|
41
|
+
| 'AT'
|
|
42
|
+
| 'AU'
|
|
43
|
+
| 'AW'
|
|
44
|
+
| 'AX'
|
|
45
|
+
| 'AZ'
|
|
46
|
+
| 'BA'
|
|
47
|
+
| 'BB'
|
|
48
|
+
| 'BD'
|
|
49
|
+
| 'BE'
|
|
50
|
+
| 'BF'
|
|
51
|
+
| 'BG'
|
|
52
|
+
| 'BH'
|
|
53
|
+
| 'BI'
|
|
54
|
+
| 'BJ'
|
|
55
|
+
| 'BL'
|
|
56
|
+
| 'BM'
|
|
57
|
+
| 'BN'
|
|
58
|
+
| 'BO'
|
|
59
|
+
| 'BQ'
|
|
60
|
+
| 'BR'
|
|
61
|
+
| 'BS'
|
|
62
|
+
| 'BT'
|
|
63
|
+
| 'BV'
|
|
64
|
+
| 'BW'
|
|
65
|
+
| 'BY'
|
|
66
|
+
| 'BZ'
|
|
67
|
+
| 'CA'
|
|
68
|
+
| 'CC'
|
|
69
|
+
| 'CD'
|
|
70
|
+
| 'CF'
|
|
71
|
+
| 'CG'
|
|
72
|
+
| 'CH'
|
|
73
|
+
| 'CI'
|
|
74
|
+
| 'CK'
|
|
75
|
+
| 'CL'
|
|
76
|
+
| 'CM'
|
|
77
|
+
| 'CN'
|
|
78
|
+
| 'CO'
|
|
79
|
+
| 'CR'
|
|
80
|
+
| 'CU'
|
|
81
|
+
| 'CV'
|
|
82
|
+
| 'CW'
|
|
83
|
+
| 'CX'
|
|
84
|
+
| 'CY'
|
|
85
|
+
| 'CZ'
|
|
86
|
+
| 'DE'
|
|
87
|
+
| 'DJ'
|
|
88
|
+
| 'DK'
|
|
89
|
+
| 'DM'
|
|
90
|
+
| 'DO'
|
|
91
|
+
| 'DZ'
|
|
92
|
+
| 'EC'
|
|
93
|
+
| 'EE'
|
|
94
|
+
| 'EG'
|
|
95
|
+
| 'EH'
|
|
96
|
+
| 'ER'
|
|
97
|
+
| 'ES'
|
|
98
|
+
| 'ET'
|
|
99
|
+
| 'FI'
|
|
100
|
+
| 'FJ'
|
|
101
|
+
| 'FK'
|
|
102
|
+
| 'FM'
|
|
103
|
+
| 'FO'
|
|
104
|
+
| 'FR'
|
|
105
|
+
| 'GA'
|
|
106
|
+
| 'GB'
|
|
107
|
+
| 'GD'
|
|
108
|
+
| 'GE'
|
|
109
|
+
| 'GF'
|
|
110
|
+
| 'GG'
|
|
111
|
+
| 'GH'
|
|
112
|
+
| 'GI'
|
|
113
|
+
| 'GL'
|
|
114
|
+
| 'GM'
|
|
115
|
+
| 'GN'
|
|
116
|
+
| 'GP'
|
|
117
|
+
| 'GQ'
|
|
118
|
+
| 'GR'
|
|
119
|
+
| 'GS'
|
|
120
|
+
| 'GT'
|
|
121
|
+
| 'GU'
|
|
122
|
+
| 'GW'
|
|
123
|
+
| 'GY'
|
|
124
|
+
| 'HK'
|
|
125
|
+
| 'HM'
|
|
126
|
+
| 'HN'
|
|
127
|
+
| 'HR'
|
|
128
|
+
| 'HT'
|
|
129
|
+
| 'HU'
|
|
130
|
+
| 'ID'
|
|
131
|
+
| 'IE'
|
|
132
|
+
| 'IL'
|
|
133
|
+
| 'IM'
|
|
134
|
+
| 'IN'
|
|
135
|
+
| 'IO'
|
|
136
|
+
| 'IQ'
|
|
137
|
+
| 'IR'
|
|
138
|
+
| 'IS'
|
|
139
|
+
| 'IT'
|
|
140
|
+
| 'JE'
|
|
141
|
+
| 'JM'
|
|
142
|
+
| 'JO'
|
|
143
|
+
| 'JP'
|
|
144
|
+
| 'KE'
|
|
145
|
+
| 'KG'
|
|
146
|
+
| 'KH'
|
|
147
|
+
| 'KI'
|
|
148
|
+
| 'KM'
|
|
149
|
+
| 'KN'
|
|
150
|
+
| 'KP'
|
|
151
|
+
| 'KR'
|
|
152
|
+
| 'KW'
|
|
153
|
+
| 'KY'
|
|
154
|
+
| 'KZ'
|
|
155
|
+
| 'LA'
|
|
156
|
+
| 'LB'
|
|
157
|
+
| 'LC'
|
|
158
|
+
| 'LI'
|
|
159
|
+
| 'LK'
|
|
160
|
+
| 'LR'
|
|
161
|
+
| 'LS'
|
|
162
|
+
| 'LT'
|
|
163
|
+
| 'LU'
|
|
164
|
+
| 'LV'
|
|
165
|
+
| 'LY'
|
|
166
|
+
| 'MA'
|
|
167
|
+
| 'MC'
|
|
168
|
+
| 'MD'
|
|
169
|
+
| 'ME'
|
|
170
|
+
| 'MF'
|
|
171
|
+
| 'MG'
|
|
172
|
+
| 'MH'
|
|
173
|
+
| 'MK'
|
|
174
|
+
| 'ML'
|
|
175
|
+
| 'MM'
|
|
176
|
+
| 'MN'
|
|
177
|
+
| 'MO'
|
|
178
|
+
| 'MP'
|
|
179
|
+
| 'MQ'
|
|
180
|
+
| 'MR'
|
|
181
|
+
| 'MS'
|
|
182
|
+
| 'MT'
|
|
183
|
+
| 'MU'
|
|
184
|
+
| 'MV'
|
|
185
|
+
| 'MW'
|
|
186
|
+
| 'MX'
|
|
187
|
+
| 'MY'
|
|
188
|
+
| 'MZ'
|
|
189
|
+
| 'NA'
|
|
190
|
+
| 'NC'
|
|
191
|
+
| 'NE'
|
|
192
|
+
| 'NF'
|
|
193
|
+
| 'NG'
|
|
194
|
+
| 'NI'
|
|
195
|
+
| 'NL'
|
|
196
|
+
| 'NO'
|
|
197
|
+
| 'NP'
|
|
198
|
+
| 'NR'
|
|
199
|
+
| 'NU'
|
|
200
|
+
| 'NZ'
|
|
201
|
+
| 'OM'
|
|
202
|
+
| 'PA'
|
|
203
|
+
| 'PE'
|
|
204
|
+
| 'PF'
|
|
205
|
+
| 'PG'
|
|
206
|
+
| 'PH'
|
|
207
|
+
| 'PK'
|
|
208
|
+
| 'PL'
|
|
209
|
+
| 'PM'
|
|
210
|
+
| 'PN'
|
|
211
|
+
| 'PR'
|
|
212
|
+
| 'PS'
|
|
213
|
+
| 'PT'
|
|
214
|
+
| 'PW'
|
|
215
|
+
| 'PY'
|
|
216
|
+
| 'QA'
|
|
217
|
+
| 'RE'
|
|
218
|
+
| 'RO'
|
|
219
|
+
| 'RS'
|
|
220
|
+
| 'RU'
|
|
221
|
+
| 'RW'
|
|
222
|
+
| 'SA'
|
|
223
|
+
| 'SB'
|
|
224
|
+
| 'SC'
|
|
225
|
+
| 'SD'
|
|
226
|
+
| 'SE'
|
|
227
|
+
| 'SG'
|
|
228
|
+
| 'SH'
|
|
229
|
+
| 'SI'
|
|
230
|
+
| 'SJ'
|
|
231
|
+
| 'SK'
|
|
232
|
+
| 'SL'
|
|
233
|
+
| 'SM'
|
|
234
|
+
| 'SN'
|
|
235
|
+
| 'SO'
|
|
236
|
+
| 'SR'
|
|
237
|
+
| 'SS'
|
|
238
|
+
| 'ST'
|
|
239
|
+
| 'SV'
|
|
240
|
+
| 'SX'
|
|
241
|
+
| 'SY'
|
|
242
|
+
| 'SZ'
|
|
243
|
+
| 'TC'
|
|
244
|
+
| 'TD'
|
|
245
|
+
| 'TF'
|
|
246
|
+
| 'TG'
|
|
247
|
+
| 'TH'
|
|
248
|
+
| 'TJ'
|
|
249
|
+
| 'TK'
|
|
250
|
+
| 'TL'
|
|
251
|
+
| 'TM'
|
|
252
|
+
| 'TN'
|
|
253
|
+
| 'TO'
|
|
254
|
+
| 'TR'
|
|
255
|
+
| 'TT'
|
|
256
|
+
| 'TV'
|
|
257
|
+
| 'TW'
|
|
258
|
+
| 'TZ'
|
|
259
|
+
| 'UA'
|
|
260
|
+
| 'UG'
|
|
261
|
+
| 'UM'
|
|
262
|
+
| 'US'
|
|
263
|
+
| 'UY'
|
|
264
|
+
| 'UZ'
|
|
265
|
+
| 'VA'
|
|
266
|
+
| 'VC'
|
|
267
|
+
| 'VE'
|
|
268
|
+
| 'VG'
|
|
269
|
+
| 'VI'
|
|
270
|
+
| 'VN'
|
|
271
|
+
| 'VU'
|
|
272
|
+
| 'WF'
|
|
273
|
+
| 'WS'
|
|
274
|
+
| 'YE'
|
|
275
|
+
| 'YT'
|
|
276
|
+
| 'ZA'
|
|
277
|
+
| 'ZM'
|
|
278
|
+
| 'ZW';
|
|
279
|
+
declare type Environment = 'development' | 'staging' | 'production';
|
|
280
|
+
declare type InfrastructureOptions = Partial<{
|
|
281
|
+
type: 'serverless' // | 'server' coming soon
|
|
282
|
+
driver: 'aws'
|
|
283
|
+
api: ApiConfig
|
|
284
|
+
storage: object
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* **Firewall Settings**
|
|
288
|
+
*
|
|
289
|
+
* These settings are used to configure the firewall.
|
|
290
|
+
*
|
|
291
|
+
* @see https://stacksjs.com/docs/cloud#firewall
|
|
292
|
+
*
|
|
293
|
+
* @example
|
|
294
|
+
* ```ts
|
|
295
|
+
* firewall: {
|
|
296
|
+
* enabled: true, // default: true
|
|
297
|
+
* countryCodes: ['RU', 'IN'], // default: []
|
|
298
|
+
* ipAddresses: ['56.123.456.789'], // default: []
|
|
299
|
+
* queryString: ['foo', 'bar'], // default: []
|
|
300
|
+
* httpHeaders: ['x-foo', 'x-bar'], // default: []
|
|
301
|
+
* rateLimitPerMinute: 1000, // default: 1000
|
|
302
|
+
* useIpReputationLists: true, // default: true
|
|
303
|
+
* useKnownBadInputsRuleSet: true // default: true
|
|
304
|
+
* },
|
|
305
|
+
* ```
|
|
306
|
+
*/
|
|
307
|
+
firewall: FirewallConfig
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* **Environments**
|
|
311
|
+
*
|
|
312
|
+
* These are the environments that your cloud will deploy.
|
|
313
|
+
*
|
|
314
|
+
* @example
|
|
315
|
+
* ```ts
|
|
316
|
+
* environments: ['production', 'staging', 'development']
|
|
317
|
+
* ```
|
|
318
|
+
*/
|
|
319
|
+
environments: Environment[]
|
|
320
|
+
|
|
321
|
+
cdn: {
|
|
322
|
+
allowedMethods: 'GET_HEAD' | 'GET_HEAD_OPTIONS' | 'ALL'
|
|
323
|
+
cachedMethods: 'GET_HEAD' | 'GET_HEAD_OPTIONS'
|
|
324
|
+
minTtl: number
|
|
325
|
+
defaultTtl: number
|
|
326
|
+
maxTtl: number
|
|
327
|
+
compress: boolean
|
|
328
|
+
priceClass?: 'PriceClass_100' | 'PriceClass_200' | 'PriceClass_All'
|
|
329
|
+
originShieldRegion: string
|
|
330
|
+
cookieBehavior: 'none' | 'allowList' | 'all'
|
|
331
|
+
|
|
332
|
+
allowList: {
|
|
333
|
+
cookies: string[]
|
|
334
|
+
headers: string[]
|
|
335
|
+
queryStrings: string[]
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
realtimeLogs: {
|
|
339
|
+
enabled: boolean
|
|
340
|
+
samplingRate: number
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
ai: boolean
|
|
345
|
+
cli: boolean
|
|
346
|
+
docs: boolean
|
|
347
|
+
fileSystem: boolean
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* **Tunnel Configuration**
|
|
351
|
+
*
|
|
352
|
+
* Deploy a custom tunnel server for sharing local dev servers.
|
|
353
|
+
* Only needed for custom domains — localtunnel.dev is the shared default.
|
|
354
|
+
*
|
|
355
|
+
* @example
|
|
356
|
+
* ```ts
|
|
357
|
+
* tunnel: {
|
|
358
|
+
* enabled: true,
|
|
359
|
+
* domain: 'tunnel.mycompany.com',
|
|
360
|
+
* ssl: { enabled: true },
|
|
361
|
+
* }
|
|
362
|
+
* ```
|
|
363
|
+
*/
|
|
364
|
+
tunnel: TunnelCloudConfig
|
|
365
|
+
}>;
|
|
366
|
+
export type CloudConfig = Partial<CloudOptions>;
|
package/dist/cms.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **CMS Options**
|
|
3
|
+
*
|
|
4
|
+
* Top-level feature gate plus any future CMS-wide settings. The CMS bundle
|
|
5
|
+
* (Post / Page / Author / Comment / Tag / Category models + edit dashboards)
|
|
6
|
+
* stays inert at boot when `enabled` is `false`.
|
|
7
|
+
*/
|
|
8
|
+
export declare interface CmsOptions {
|
|
9
|
+
enabled?: boolean
|
|
10
|
+
env?: string[]
|
|
11
|
+
}
|
|
12
|
+
export type CmsConfig = Partial<CmsOptions>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **Commerce Options**
|
|
3
|
+
*
|
|
4
|
+
* Top-level feature gate plus storefront defaults. The commerce bundle
|
|
5
|
+
* (Order / Cart / Product / Customer / Coupon / GiftCard / Shipping models +
|
|
6
|
+
* storefront API) stays inert at boot when `enabled` is `false`.
|
|
7
|
+
*/
|
|
8
|
+
export declare interface CommerceOptions {
|
|
9
|
+
enabled?: boolean
|
|
10
|
+
env?: string[]
|
|
11
|
+
currency?: string
|
|
12
|
+
defaultTaxRate?: number
|
|
13
|
+
}
|
|
14
|
+
export type CommerceConfig = Partial<CommerceOptions>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare interface ConfigureOptions {
|
|
2
|
+
aws: boolean
|
|
3
|
+
profile: string
|
|
4
|
+
project: boolean
|
|
5
|
+
verbose: boolean
|
|
6
|
+
accessKeyId: string
|
|
7
|
+
secretAccessKey: string
|
|
8
|
+
region: string
|
|
9
|
+
output: string
|
|
10
|
+
quiet: boolean
|
|
11
|
+
}
|
|
12
|
+
export type ConfigureConfig = Partial<ConfigureOptions>;
|
package/dist/cors.d.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CORS configuration types (stacksjs/stacks#1859 H-2).
|
|
3
|
+
*
|
|
4
|
+
* Lives in `@stacksjs/types` so userland `config/cors.ts` files can
|
|
5
|
+
* `import type { CorsConfig } from '@stacksjs/types'` and get full
|
|
6
|
+
* IntelliSense, and so the Cors middleware can read
|
|
7
|
+
* `config.cors` with proper typing instead of an `as any` cast.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Raw CORS configuration — every field optional. Defaults fill in
|
|
11
|
+
* any field that's missing when the middleware resolves config.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* // config/cors.ts
|
|
16
|
+
* import type { CorsConfig } from '@stacksjs/types'
|
|
17
|
+
*
|
|
18
|
+
* export default {
|
|
19
|
+
* origin: ['https://app.example.com', 'https://admin.example.com'],
|
|
20
|
+
* credentials: true,
|
|
21
|
+
* methods: ['GET', 'POST', 'PUT', 'DELETE'],
|
|
22
|
+
* allowedHeaders: ['Content-Type', 'Authorization', 'X-CSRF-Token'],
|
|
23
|
+
* maxAge: 600,
|
|
24
|
+
* } satisfies CorsConfig
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare interface CorsConfig {
|
|
28
|
+
origin?: '*' | string[] | ((origin: string) => boolean)
|
|
29
|
+
methods?: string[]
|
|
30
|
+
allowedHeaders?: string[]
|
|
31
|
+
exposedHeaders?: string[]
|
|
32
|
+
credentials?: boolean
|
|
33
|
+
maxAge?: number
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Resolved CORS configuration with all defaults applied. This is the
|
|
37
|
+
* shape the middleware passes through `applyCorsHeaders` /
|
|
38
|
+
* `buildPreflightResponse`.
|
|
39
|
+
*/
|
|
40
|
+
export declare interface ResolvedCorsConfig {
|
|
41
|
+
origin: '*' | string[] | ((origin: string) => boolean)
|
|
42
|
+
methods: string[]
|
|
43
|
+
allowedHeaders: string[]
|
|
44
|
+
exposedHeaders: string[]
|
|
45
|
+
credentials: boolean
|
|
46
|
+
maxAge: number
|
|
47
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { IntRange } from '@stacksjs/cron';
|
|
2
|
+
export declare interface JitterConfig {
|
|
3
|
+
enabled: boolean
|
|
4
|
+
factor?: number
|
|
5
|
+
minDelay?: number
|
|
6
|
+
maxDelay?: number
|
|
7
|
+
}
|
|
8
|
+
export declare interface BackoffConfig {
|
|
9
|
+
strategy: BackoffStrategy
|
|
10
|
+
initialDelay: number
|
|
11
|
+
factor?: number
|
|
12
|
+
maxDelay?: number
|
|
13
|
+
jitter?: JitterConfig
|
|
14
|
+
}
|
|
15
|
+
export declare interface JobOptions {
|
|
16
|
+
name?: string
|
|
17
|
+
handle?: string | JobHandler
|
|
18
|
+
action?: string
|
|
19
|
+
description?: string
|
|
20
|
+
queue?: string
|
|
21
|
+
timezone?: string
|
|
22
|
+
tries?: IntRange<0, 185>
|
|
23
|
+
backoff?: number | number[]
|
|
24
|
+
backoffConfig?: BackoffConfig
|
|
25
|
+
rate?: string | Every
|
|
26
|
+
enabled?: boolean
|
|
27
|
+
timeout?: number
|
|
28
|
+
key?: string
|
|
29
|
+
ttl?: number
|
|
30
|
+
immediate?: boolean
|
|
31
|
+
meta?: Record<string, any>
|
|
32
|
+
}
|
|
33
|
+
export type Job = JobOptions;
|
|
34
|
+
export type Jobs = Job[];
|
|
35
|
+
export type CronJob = Job;
|
|
36
|
+
export type CronJobs = Jobs;
|
|
37
|
+
export type JobHandler = (_data?: any) => Promise<any> | any;
|
|
38
|
+
/**
|
|
39
|
+
* Represents different backoff strategies for job retries
|
|
40
|
+
*/
|
|
41
|
+
declare type BackoffStrategy = 'fixed' | 'exponential' | 'linear' | 'random';
|
|
42
|
+
export declare enum Every {
|
|
43
|
+
Second = '* * * * * *',
|
|
44
|
+
FiveSeconds = '*/5 * * * * *',
|
|
45
|
+
TenSeconds = '*/10 * * * * *',
|
|
46
|
+
ThirtySeconds = '*/30 * * * * *',
|
|
47
|
+
Minute = '* * * * *',
|
|
48
|
+
TwoMinutes = '*/2 * * * *',
|
|
49
|
+
FiveMinutes = '*/5 * * * *',
|
|
50
|
+
TenMinutes = '*/10 * * * *',
|
|
51
|
+
FifteenMinutes = '*/15 * * * *',
|
|
52
|
+
ThirtyMinutes = '*/30 * * * *',
|
|
53
|
+
Hour = '0 * * * *',
|
|
54
|
+
HalfHour = '0,30 * * * *',
|
|
55
|
+
Day = '0 0 * * *',
|
|
56
|
+
Week = '0 0 * * 0',
|
|
57
|
+
Weekday = '0 0 * * 1-5',
|
|
58
|
+
Weekend = '0 0 * * 0,6',
|
|
59
|
+
Month = '0 0 1 * *',
|
|
60
|
+
Year = '0 0 1 1 *',
|
|
61
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **Dashboard Options**
|
|
3
|
+
*
|
|
4
|
+
* Controls which sections render in the `buddy dev --dashboard` sidebar.
|
|
5
|
+
* Every section defaults to enabled — set a flag to `false` in
|
|
6
|
+
* `config/dashboard.ts` to hide it (for example, projects that don't
|
|
7
|
+
* use commerce features set `commerce.enabled: false`).
|
|
8
|
+
*
|
|
9
|
+
* The `data` section is always visible (it's where every project's
|
|
10
|
+
* userland models live). It exposes per-row toggles for the basic
|
|
11
|
+
* built-in rows so a project can drop, say, the newsletter Subscribers
|
|
12
|
+
* row when there's no newsletter without losing the model viewer.
|
|
13
|
+
*/
|
|
14
|
+
export declare interface DashboardOptions {
|
|
15
|
+
enabled?: boolean
|
|
16
|
+
env?: string[]
|
|
17
|
+
sections?: {
|
|
18
|
+
library?: { enabled?: boolean }
|
|
19
|
+
content?: { enabled?: boolean }
|
|
20
|
+
commerce?: { enabled?: boolean }
|
|
21
|
+
marketing?: { enabled?: boolean }
|
|
22
|
+
analytics?: { enabled?: boolean }
|
|
23
|
+
management?: { enabled?: boolean }
|
|
24
|
+
utilities?: { enabled?: boolean }
|
|
25
|
+
data?: {
|
|
26
|
+
dashboard?: { enabled?: boolean }
|
|
27
|
+
activity?: { enabled?: boolean }
|
|
28
|
+
users?: { enabled?: boolean }
|
|
29
|
+
teams?: { enabled?: boolean }
|
|
30
|
+
subscribers?: { enabled?: boolean }
|
|
31
|
+
allModels?: { enabled?: boolean }
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
ci?: {
|
|
35
|
+
enabled?: boolean
|
|
36
|
+
orgs?: string[]
|
|
37
|
+
runnerCaps?: Record<string, number>
|
|
38
|
+
runnerCapDefault?: number
|
|
39
|
+
ignoreRepos?: string[]
|
|
40
|
+
notifications?: {
|
|
41
|
+
enabled?: boolean
|
|
42
|
+
channels?: Array<'email' | 'sms' | 'chat' | 'database'>
|
|
43
|
+
recipients?: Array<{ email?: string, phone?: string, userId?: number }>
|
|
44
|
+
cooldownMinutes?: number
|
|
45
|
+
}
|
|
46
|
+
alerts?: {
|
|
47
|
+
enabled?: boolean
|
|
48
|
+
queuedThreshold?: number
|
|
49
|
+
windowMinutes?: number
|
|
50
|
+
channels?: Array<'email' | 'sms' | 'chat' | 'database'>
|
|
51
|
+
recipients?: Array<{ email?: string, phone?: string, userId?: number }>
|
|
52
|
+
retentionHours?: number
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Per-model dashboard configuration (stacksjs/stacks#1843).
|
|
58
|
+
*
|
|
59
|
+
* Attach to a model definition to influence how the model surfaces in the
|
|
60
|
+
* dashboard sidebar without touching the framework's dashboard internals:
|
|
61
|
+
*
|
|
62
|
+
* ```ts
|
|
63
|
+
* defineModel({
|
|
64
|
+
* name: 'AuditLog',
|
|
65
|
+
* table: 'audit_logs',
|
|
66
|
+
* dashboard: {
|
|
67
|
+
* section: 'management',
|
|
68
|
+
* icon: 'shield',
|
|
69
|
+
* roles: ['admin'],
|
|
70
|
+
* description: 'Append-only audit trail (admin-only)',
|
|
71
|
+
* },
|
|
72
|
+
* attributes: { … },
|
|
73
|
+
* })
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* Resolution chain (most specific → fallback):
|
|
77
|
+
*
|
|
78
|
+
* 1. `dashboard.enabled === false` → model is hidden from the sidebar
|
|
79
|
+
* entirely. The dynamic ORM viewer (`/models/<id>`) still works for
|
|
80
|
+
* direct navigation, but the row is suppressed.
|
|
81
|
+
* 2. `dashboard.section` → pins the model to that section, overriding
|
|
82
|
+
* the path-based auto-categorisation (commerce/, Content/, etc.).
|
|
83
|
+
* 3. `dashboard.label` / `dashboard.icon` → display overrides; fall back
|
|
84
|
+
* to the model name and `iconMap` lookup.
|
|
85
|
+
* 4. `dashboard.roles` → role-gates the sidebar row. The server-side
|
|
86
|
+
* sidebar builder emits the row with role metadata; the client filters
|
|
87
|
+
* it out for users who lack a matching role. Permissive default
|
|
88
|
+
* (unauthenticated viewers see everything — see `useRole.ts`).
|
|
89
|
+
*/
|
|
90
|
+
export declare interface DashboardModelOptions {
|
|
91
|
+
enabled?: boolean
|
|
92
|
+
label?: string
|
|
93
|
+
icon?: string
|
|
94
|
+
section?:
|
|
95
|
+
| 'home'
|
|
96
|
+
| 'library'
|
|
97
|
+
| 'content'
|
|
98
|
+
| 'commerce'
|
|
99
|
+
| 'marketing'
|
|
100
|
+
| 'analytics'
|
|
101
|
+
| 'management'
|
|
102
|
+
| 'utilities'
|
|
103
|
+
| 'data'
|
|
104
|
+
| 'app'
|
|
105
|
+
roles?: string[]
|
|
106
|
+
description?: string
|
|
107
|
+
}
|
|
108
|
+
export type DashboardConfig = Partial<DashboardOptions>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { SupportedDialect } from 'bun-query-builder';
|
|
2
|
+
export declare interface DatabaseOptions {
|
|
3
|
+
default: SupportedDialect
|
|
4
|
+
logging?: boolean
|
|
5
|
+
connections: {
|
|
6
|
+
mysql?: {
|
|
7
|
+
url?: string
|
|
8
|
+
host?: string
|
|
9
|
+
port?: number
|
|
10
|
+
name?: string
|
|
11
|
+
username?: string
|
|
12
|
+
password?: string
|
|
13
|
+
prefix?: string
|
|
14
|
+
}
|
|
15
|
+
singlestore?: {
|
|
16
|
+
url?: string
|
|
17
|
+
host?: string
|
|
18
|
+
port?: number
|
|
19
|
+
name?: string
|
|
20
|
+
username?: string
|
|
21
|
+
password?: string
|
|
22
|
+
prefix?: string
|
|
23
|
+
ssl?: boolean
|
|
24
|
+
}
|
|
25
|
+
sqlite: {
|
|
26
|
+
url?: string
|
|
27
|
+
database?: string
|
|
28
|
+
prefix?: string
|
|
29
|
+
}
|
|
30
|
+
dynamodb?: {
|
|
31
|
+
key?: string
|
|
32
|
+
secret?: string
|
|
33
|
+
region?: string
|
|
34
|
+
prefix?: string
|
|
35
|
+
endpoint?: string
|
|
36
|
+
}
|
|
37
|
+
postgres?: {
|
|
38
|
+
url?: string
|
|
39
|
+
host?: string
|
|
40
|
+
port?: number
|
|
41
|
+
name?: string
|
|
42
|
+
username?: string
|
|
43
|
+
password?: string
|
|
44
|
+
prefix?: string
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
migrations: string
|
|
48
|
+
migrationLocks: string
|
|
49
|
+
safety?: {
|
|
50
|
+
confirmMigrate?: boolean
|
|
51
|
+
migrateFresh?: 'allow' | 'confirm' | 'disabled'
|
|
52
|
+
}
|
|
53
|
+
queryLogging?: {
|
|
54
|
+
enabled: boolean
|
|
55
|
+
slowThreshold: number
|
|
56
|
+
retention: number
|
|
57
|
+
pruneFrequency: number
|
|
58
|
+
excludedQueries?: string[]
|
|
59
|
+
analysis?: {
|
|
60
|
+
enabled: boolean
|
|
61
|
+
analyzeAll: boolean
|
|
62
|
+
explainPlan: boolean
|
|
63
|
+
suggestions: boolean
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export declare interface FactoryOptions {
|
|
68
|
+
name: string
|
|
69
|
+
count?: number
|
|
70
|
+
items: object
|
|
71
|
+
columns: object
|
|
72
|
+
}
|
|
73
|
+
export declare interface SchemaOptions {
|
|
74
|
+
database: string
|
|
75
|
+
}
|
|
76
|
+
export type DatabaseConfig = Partial<DatabaseOptions>;
|