@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.
Files changed (77) hide show
  1. package/dist/ai.d.ts +37 -0
  2. package/dist/analytics.d.ts +36 -0
  3. package/dist/api.d.ts +26 -0
  4. package/dist/app.d.ts +28 -0
  5. package/dist/attributes.d.ts +1 -0
  6. package/dist/auth.d.ts +62 -0
  7. package/dist/auto-imports.d.ts +8 -0
  8. package/dist/binary.d.ts +11 -0
  9. package/dist/cache.d.ts +88 -0
  10. package/dist/cdn.d.ts +4 -0
  11. package/dist/chat.d.ts +69 -0
  12. package/dist/cli.d.ts +316 -0
  13. package/dist/cloud.d.ts +366 -0
  14. package/dist/cms.d.ts +12 -0
  15. package/dist/commerce.d.ts +14 -0
  16. package/dist/components.d.ts +9 -0
  17. package/dist/configure.d.ts +12 -0
  18. package/dist/cors.d.ts +47 -0
  19. package/dist/cron-jobs.d.ts +61 -0
  20. package/dist/dashboard.d.ts +108 -0
  21. package/dist/database.d.ts +76 -0
  22. package/dist/dependencies.d.ts +17 -0
  23. package/dist/deploy.d.ts +16 -0
  24. package/dist/dns.d.ts +362 -0
  25. package/dist/docs.d.ts +23 -0
  26. package/dist/email.d.ts +207 -0
  27. package/dist/env.d.ts +1 -0
  28. package/dist/errors.d.ts +84 -0
  29. package/dist/events.d.ts +31 -0
  30. package/dist/exit-code.d.ts +10 -0
  31. package/dist/feature-flags.d.ts +17 -0
  32. package/dist/file-systems.d.ts +60 -0
  33. package/dist/git.d.ts +60 -0
  34. package/dist/hashing.d.ts +57 -0
  35. package/dist/helpers.d.ts +1 -0
  36. package/dist/i18n.d.ts +65 -0
  37. package/dist/index.d.ts +80 -0
  38. package/dist/index.js +2 -0
  39. package/dist/library.d.ts +799 -0
  40. package/dist/logging.d.ts +15 -0
  41. package/dist/manifest.d.ts +9 -0
  42. package/dist/marketing.d.ts +12 -0
  43. package/dist/model-dashboard-augmentation.d.ts +8 -0
  44. package/dist/model-names.d.ts +1 -0
  45. package/dist/model.d.ts +256 -0
  46. package/dist/monitoring.d.ts +12 -0
  47. package/dist/notifications.d.ts +126 -0
  48. package/dist/oauth.d.ts +290 -0
  49. package/dist/pages.d.ts +10 -0
  50. package/dist/payments.d.ts +322 -0
  51. package/dist/phone.d.ts +65 -0
  52. package/dist/ports.d.ts +20 -0
  53. package/dist/promise.d.ts +1 -0
  54. package/dist/push.d.ts +108 -0
  55. package/dist/queue.d.ts +312 -0
  56. package/dist/reactivity.d.ts +1 -0
  57. package/dist/realtime.d.ts +443 -0
  58. package/dist/request.d.ts +265 -0
  59. package/dist/response.d.ts +15 -0
  60. package/dist/router.d.ts +105 -0
  61. package/dist/saas.d.ts +32 -0
  62. package/dist/scheduler.d.ts +1 -0
  63. package/dist/search-engine.d.ts +129 -0
  64. package/dist/security.d.ts +18 -0
  65. package/dist/server.d.ts +16 -0
  66. package/dist/services.d.ts +149 -0
  67. package/dist/settings-config.d.ts +9 -0
  68. package/dist/sms.d.ts +144 -0
  69. package/dist/stack-extensions.d.ts +137 -0
  70. package/dist/stacks.d.ts +46 -0
  71. package/dist/storage.d.ts +104 -0
  72. package/dist/table-names.d.ts +1 -0
  73. package/dist/tables.d.ts +34 -0
  74. package/dist/team.d.ts +7 -0
  75. package/dist/ui.d.ts +55 -0
  76. package/dist/utils.d.ts +39 -0
  77. package/package.json +3 -3
@@ -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,9 @@
1
+ export declare interface TagOption {
2
+ name: string | string[]
3
+ description?: string
4
+ attributes?: {
5
+ name: string
6
+ description: string
7
+ }[]
8
+ }
9
+ export type TagsOptions = TagOption[];
@@ -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>;