@stacksjs/types 0.70.85 → 0.70.87

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 (76) hide show
  1. package/package.json +19 -5
  2. package/src/ai.ts +0 -41
  3. package/src/analytics.ts +0 -58
  4. package/src/api.ts +0 -77
  5. package/src/app.ts +0 -189
  6. package/src/attributes.ts +0 -5
  7. package/src/auth.ts +0 -161
  8. package/src/auto-imports.ts +0 -8
  9. package/src/binary.ts +0 -13
  10. package/src/cache.ts +0 -325
  11. package/src/cdn.ts +0 -17
  12. package/src/chat.ts +0 -193
  13. package/src/cli.ts +0 -445
  14. package/src/cloud.ts +0 -381
  15. package/src/cms.ts +0 -14
  16. package/src/commerce.ts +0 -18
  17. package/src/components.ts +0 -62
  18. package/src/configure.ts +0 -13
  19. package/src/cors.ts +0 -86
  20. package/src/cron-jobs.ts +0 -146
  21. package/src/dashboard.ts +0 -218
  22. package/src/database.ts +0 -117
  23. package/src/dependencies.ts +0 -69
  24. package/src/deploy.ts +0 -17
  25. package/src/dns.ts +0 -470
  26. package/src/docs.ts +0 -27
  27. package/src/email.ts +0 -511
  28. package/src/env.ts +0 -1
  29. package/src/errors.ts +0 -110
  30. package/src/events.ts +0 -37
  31. package/src/exit-code.ts +0 -10
  32. package/src/file-systems.ts +0 -70
  33. package/src/git.ts +0 -133
  34. package/src/hashing.ts +0 -127
  35. package/src/helpers.ts +0 -9
  36. package/src/i18n.ts +0 -121
  37. package/src/index.ts +0 -80
  38. package/src/library.ts +0 -911
  39. package/src/logging.ts +0 -62
  40. package/src/manifest.ts +0 -9
  41. package/src/marketing.ts +0 -14
  42. package/src/model-dashboard-augmentation.ts +0 -51
  43. package/src/model-names.ts +0 -1
  44. package/src/model.ts +0 -353
  45. package/src/monitoring.ts +0 -14
  46. package/src/native.ts +0 -0
  47. package/src/notifications.ts +0 -153
  48. package/src/oauth.ts +0 -488
  49. package/src/pages.ts +0 -10
  50. package/src/payments.ts +0 -440
  51. package/src/phone.ts +0 -78
  52. package/src/ports.ts +0 -20
  53. package/src/promise.ts +0 -1
  54. package/src/push.ts +0 -143
  55. package/src/queue.ts +0 -413
  56. package/src/reactivity.ts +0 -1
  57. package/src/realtime.ts +0 -584
  58. package/src/request.ts +0 -541
  59. package/src/response.ts +0 -16
  60. package/src/router.ts +0 -124
  61. package/src/saas.ts +0 -33
  62. package/src/scheduler.ts +0 -1
  63. package/src/search-engine.ts +0 -251
  64. package/src/security.ts +0 -23
  65. package/src/server.ts +0 -16
  66. package/src/services.ts +0 -211
  67. package/src/settings-config.ts +0 -10
  68. package/src/sms.ts +0 -265
  69. package/src/stack-extensions.ts +0 -184
  70. package/src/stacks.ts +0 -339
  71. package/src/storage.ts +0 -173
  72. package/src/table-names.ts +0 -1
  73. package/src/tables.ts +0 -57
  74. package/src/team.ts +0 -8
  75. package/src/ui.ts +0 -197
  76. package/src/utils.ts +0 -46
package/src/dashboard.ts DELETED
@@ -1,218 +0,0 @@
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 interface DashboardOptions {
15
- /**
16
- * Top-level feature gate. When `false`, the entire admin SPA + dashboard
17
- * routes stay un-registered at boot. Missing or `true` keeps the dashboard
18
- * on — the framework default, since every Stacks app wants it.
19
- */
20
- enabled?: boolean
21
- /** Optional deploy-target gate, e.g. `['production']`. */
22
- env?: string[]
23
- /** Per-section visibility toggles. Omit a section to leave it enabled. */
24
- sections?: {
25
- library?: { enabled?: boolean }
26
- content?: { enabled?: boolean }
27
- commerce?: { enabled?: boolean }
28
- marketing?: { enabled?: boolean }
29
- analytics?: { enabled?: boolean }
30
- management?: { enabled?: boolean }
31
- utilities?: { enabled?: boolean }
32
- /**
33
- * Data section is always rendered (it hosts userland models). These
34
- * sub-flags hide individual built-in rows. Userland model rows are
35
- * always shown — they're the whole point of this section.
36
- */
37
- data?: {
38
- dashboard?: { enabled?: boolean }
39
- activity?: { enabled?: boolean }
40
- users?: { enabled?: boolean }
41
- teams?: { enabled?: boolean }
42
- subscribers?: { enabled?: boolean }
43
- allModels?: { enabled?: boolean }
44
- }
45
- }
46
- /**
47
- * CI tracking surface — GitHub Actions health across the configured orgs.
48
- * Ports the standalone `repo-dashboard` app into the dashboard
49
- * (stacksjs/stacks#1844). Defaults to off because most projects don't
50
- * own multiple GitHub orgs; opt in by listing orgs and surfacing a
51
- * `GITHUB_TOKEN` in the environment.
52
- */
53
- ci?: {
54
- enabled?: boolean
55
- /** Orgs whose repos appear as per-tab CI cards. */
56
- orgs?: string[]
57
- /** Self-hosted runner caps per org. Defaults to {@link runnerCapDefault}. */
58
- runnerCaps?: Record<string, number>
59
- /** Fallback cap for orgs missing from `runnerCaps`. Defaults to 20. */
60
- runnerCapDefault?: number
61
- /** Repo names to exclude from the CI feed. */
62
- ignoreRepos?: string[]
63
- /**
64
- * Failing-CI notification fan-out (stacksjs/stacks#1849).
65
- *
66
- * When enabled, the dashboard fires a notification through the
67
- * configured channels every time a repo's CI transitions from
68
- * success → failure (or first-time-seen → failure). Sticky-red
69
- * repos don't keep firing; same-run-id polls don't re-fire; a
70
- * 5-minute cooldown silences flap-storms.
71
- */
72
- notifications?: {
73
- enabled?: boolean
74
- /**
75
- * Channels to fan out through. Maps to the same values
76
- * `notify()` from @stacksjs/notifications accepts. Defaults to
77
- * `['chat']` — Slack via webhook — because that channel
78
- * doesn't need a recipient list (it's already scoped to a
79
- * Slack channel via env).
80
- */
81
- channels?: Array<'email' | 'sms' | 'chat' | 'database'>
82
- /**
83
- * Per-channel recipients for the channels that need one
84
- * (email/sms/database). Skipped for `chat`. Each entry must
85
- * carry the field the named channel requires (`email`,
86
- * `phone`, `userId`).
87
- */
88
- recipients?: Array<{ email?: string, phone?: string, userId?: number }>
89
- /**
90
- * Minimum delay (minutes) between consecutive notifications for
91
- * the same repo. Defaults to 5. Set to 0 to disable.
92
- */
93
- cooldownMinutes?: number
94
- }
95
- /**
96
- * Runner-pressure alerts (stacksjs/stacks#1850).
97
- *
98
- * When an org's queued-job count stays at or above
99
- * `queuedThreshold` for `windowMinutes`, the dashboard fires a
100
- * notification through the configured channels. Hysteresis: an
101
- * already-alerting org doesn't re-fire until the queue drops
102
- * below threshold for a full window first.
103
- */
104
- alerts?: {
105
- enabled?: boolean
106
- /** Queue depth at or above counts as pressure. Defaults to 8. */
107
- queuedThreshold?: number
108
- /** Duration the threshold must hold in either direction before
109
- * the alert fires / clears. Defaults to 10 minutes. */
110
- windowMinutes?: number
111
- /** Same channel options as {@link notifications.channels}. */
112
- channels?: Array<'email' | 'sms' | 'chat' | 'database'>
113
- /** Same recipient shape as {@link notifications.recipients}. */
114
- recipients?: Array<{ email?: string, phone?: string, userId?: number }>
115
- /**
116
- * How long the runner-sample time-series is kept on disk.
117
- * Older samples are pruned during each refresh to bound
118
- * storage. Defaults to 24h.
119
- */
120
- retentionHours?: number
121
- }
122
- }
123
- }
124
-
125
- export type DashboardConfig = Partial<DashboardOptions>
126
-
127
- /**
128
- * Per-model dashboard configuration (stacksjs/stacks#1843).
129
- *
130
- * Attach to a model definition to influence how the model surfaces in the
131
- * dashboard sidebar without touching the framework's dashboard internals:
132
- *
133
- * ```ts
134
- * defineModel({
135
- * name: 'AuditLog',
136
- * table: 'audit_logs',
137
- * dashboard: {
138
- * section: 'management',
139
- * icon: 'shield',
140
- * roles: ['admin'],
141
- * description: 'Append-only audit trail (admin-only)',
142
- * },
143
- * attributes: { … },
144
- * })
145
- * ```
146
- *
147
- * Resolution chain (most specific → fallback):
148
- *
149
- * 1. `dashboard.enabled === false` → model is hidden from the sidebar
150
- * entirely. The dynamic ORM viewer (`/models/<id>`) still works for
151
- * direct navigation, but the row is suppressed.
152
- * 2. `dashboard.section` → pins the model to that section, overriding
153
- * the path-based auto-categorisation (commerce/, Content/, etc.).
154
- * 3. `dashboard.label` / `dashboard.icon` → display overrides; fall back
155
- * to the model name and `iconMap` lookup.
156
- * 4. `dashboard.roles` → role-gates the sidebar row. The server-side
157
- * sidebar builder emits the row with role metadata; the client filters
158
- * it out for users who lack a matching role. Permissive default
159
- * (unauthenticated viewers see everything — see `useRole.ts`).
160
- */
161
- export interface DashboardModelOptions {
162
- /**
163
- * Hide this model from the dashboard sidebar entirely. Direct
164
- * navigation to `/models/<id>` still works — this only suppresses the
165
- * sidebar row.
166
- *
167
- * Defaults to `true` (model is shown).
168
- */
169
- enabled?: boolean
170
-
171
- /**
172
- * Override the display name in the sidebar. Defaults to the model name.
173
- */
174
- label?: string
175
-
176
- /**
177
- * Override the icon. Defaults to the auto-derived one in `iconMap`.
178
- * The string is whatever the active sidebar icon set expects
179
- * (e.g., SF Symbol name for the native sidebar; Lucide-style name for
180
- * the web sidebar).
181
- */
182
- icon?: string
183
-
184
- /**
185
- * Pin this model to a specific sidebar section instead of the
186
- * auto-derived category. Useful when a "logs" model lives under
187
- * `app/Models/` (userland) but should appear under Management rather
188
- * than Data.
189
- */
190
- section?:
191
- | 'home'
192
- | 'library'
193
- | 'content'
194
- | 'commerce'
195
- | 'marketing'
196
- | 'analytics'
197
- | 'management'
198
- | 'utilities'
199
- | 'data'
200
- | 'app'
201
-
202
- /**
203
- * Role-gate the sidebar row. The row is rendered server-side with
204
- * `data-required-roles="…"`; the client filters it out via
205
- * `useRole()` if the viewer doesn't hold any of the listed roles.
206
- *
207
- * The dev-mode default in `useRole()` means unauthenticated viewers
208
- * (e.g., the local dev dashboard) see role-gated rows as if they
209
- * were a dev — see `composables/useRole.ts` for the full chain.
210
- */
211
- roles?: string[]
212
-
213
- /**
214
- * Short tooltip / hover description for the sidebar row. Optional —
215
- * sidebars that don't support tooltips ignore it.
216
- */
217
- description?: string
218
- }
package/src/database.ts DELETED
@@ -1,117 +0,0 @@
1
- import type { SupportedDialect } from 'bun-query-builder'
2
- export 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
-
16
- // SingleStore is MySQL wire-compatible (port 3306); it shares MySQL's
17
- // connection shape and adds an optional `ssl` flag for managed (Helios)
18
- // endpoints, which require TLS.
19
- singlestore?: {
20
- url?: string
21
- host?: string
22
- port?: number
23
- name?: string
24
- username?: string
25
- password?: string
26
- prefix?: string
27
- ssl?: boolean
28
- }
29
-
30
- sqlite: {
31
- url?: string
32
- database?: string
33
- prefix?: string
34
- }
35
-
36
- dynamodb?: {
37
- key?: string
38
- secret?: string
39
- region?: string
40
- prefix?: string
41
- endpoint?: string
42
- }
43
-
44
- postgres?: {
45
- url?: string
46
- host?: string
47
- port?: number
48
- name?: string
49
- username?: string
50
- password?: string
51
- prefix?: string
52
- }
53
- }
54
-
55
- migrations: string
56
- migrationLocks: string
57
-
58
- /**
59
- * Safety guards for the destructive migration commands.
60
- *
61
- * These gate `buddy migrate` and `buddy migrate:fresh` behind explicit
62
- * human confirmation so an absent-minded command can't silently wipe or
63
- * reshape a database. Every value can be overridden per-run by an env
64
- * var (see each field) so CI/automation has an escape hatch.
65
- */
66
- safety?: {
67
- /**
68
- * Require an interactive confirmation before `buddy migrate` applies
69
- * anything. Bypass a single run with `--force`; automation without a
70
- * TTY (CI) proceeds without prompting. Env override: `DB_MIGRATE_CONFIRM`.
71
- *
72
- * @default true
73
- */
74
- confirmMigrate?: boolean
75
-
76
- /**
77
- * Guard level for `buddy migrate:fresh`, which DROPS every table before
78
- * re-migrating (total data loss):
79
- * - `'allow'` run after a typed confirmation; `--force` bypasses it
80
- * - `'confirm'` always require the typed confirmation; `--force` does NOT bypass
81
- * - `'disabled'` refuse to run at all (the hard kill-switch)
82
- *
83
- * Env override: `DB_MIGRATE_FRESH` (`allow` | `confirm` | `disabled`).
84
- *
85
- * @default 'allow' in local/dev, 'disabled' when APP_ENV is production
86
- */
87
- migrateFresh?: 'allow' | 'confirm' | 'disabled'
88
- }
89
-
90
- // Query logging configuration
91
- queryLogging?: {
92
- enabled: boolean
93
- slowThreshold: number // in milliseconds
94
- retention: number // in days
95
- pruneFrequency: number // in hours
96
- excludedQueries?: string[] // patterns to exclude
97
- analysis?: {
98
- enabled: boolean
99
- analyzeAll: boolean // analyze all queries, not just slow ones
100
- explainPlan: boolean // collect EXPLAIN plans
101
- suggestions: boolean // generate optimization suggestions
102
- }
103
- }
104
- }
105
-
106
- export type DatabaseConfig = Partial<DatabaseOptions>
107
-
108
- export interface FactoryOptions {
109
- name: string
110
- count?: number
111
- items: object
112
- columns: object
113
- }
114
-
115
- export interface SchemaOptions {
116
- database: string
117
- }
@@ -1,69 +0,0 @@
1
- /**
2
- * **Dependencies Manager**
3
- *
4
- * This configuration defines all of your dependencies options. Because Stacks is fully-typed,
5
- * you may hover any of the options below and the definitions will be provided. In case
6
- * you have any questions, feel free to reach out via Discord or GitHub Discussions.
7
- */
8
- export interface DependenciesOptions {
9
- /**
10
- * **Bun**
11
- *
12
- * @default '0.7.1'
13
- * @link https://bun.sh
14
- */
15
- 'bun.sh': string | '0.7.1'
16
-
17
- /**
18
- * **SQLite**
19
- *
20
- * @default '^3.42.0'
21
- * @link https://sqlite.org
22
- */
23
- 'sqlite.org'?: string | '^3.42.0'
24
-
25
- /**
26
- * **MySQL**
27
- *
28
- * @default '^8.0.33'
29
- * @link https://mysql.org
30
- */
31
- 'mysql.com'?: string | '^8.0.33'
32
-
33
- /**
34
- * **MariaDB**
35
- *
36
- * @default '^10.6.5'
37
- * @link https://mariadb.org
38
- */
39
- 'mariadb.org'?: string | '^10.6.5'
40
-
41
- /**
42
- * **PostgreSQL**
43
- *
44
- * @default '^14.1'
45
- * @link https://postgresql.org
46
- */
47
- 'postgresql.org'?: string | '^14.1'
48
-
49
- /**
50
- * **Redis**
51
- *
52
- * @default '^7.0.11'
53
- * @link https://redis.io
54
- */
55
- 'redis.io'?: string | '^7.0.11'
56
-
57
- /**
58
- * **AWS CLI**
59
- *
60
- * This dependency is only required if you are making use of the AWS driver
61
- * (i.e. the Stacks generated cloud may make use of it).
62
- *
63
- * @default '^2.12.7'
64
- * @link https://aws.amazon.com/cli
65
- */
66
- 'aws.amazon.com/cli'?: string | '^2.12.7'
67
- }
68
-
69
- export type DependenciesConfig = DependenciesOptions
package/src/deploy.ts DELETED
@@ -1,17 +0,0 @@
1
- import type { CliOptions } from './cli'
2
-
3
- /**
4
- * **Deploy Options**
5
- *
6
- * This configuration defines all of your deployment options. Because Stacks is fully-typed,
7
- * you may hover any of the options below and the definitions will be provided. In case
8
- * you have any questions, feel free to reach out via Discord or GitHub Discussions.
9
- */
10
- export interface DeployOptions extends CliOptions {
11
- domain?: string
12
- deploy?: boolean
13
- prod?: boolean
14
- dev?: boolean
15
- staging?: boolean
16
- yes?: boolean
17
- }