@objectstack/spec 0.1.1 → 0.2.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 (174) hide show
  1. package/README.md +73 -1
  2. package/dist/api/contract.zod.d.ts +1733 -0
  3. package/dist/api/contract.zod.d.ts.map +1 -0
  4. package/dist/api/contract.zod.js +138 -0
  5. package/dist/data/dataset.zod.d.ts +2 -2
  6. package/dist/data/field.zod.d.ts +1648 -10
  7. package/dist/data/field.zod.d.ts.map +1 -1
  8. package/dist/data/field.zod.js +149 -8
  9. package/dist/data/filter.zod.d.ts +295 -0
  10. package/dist/data/filter.zod.d.ts.map +1 -0
  11. package/dist/data/filter.zod.js +226 -0
  12. package/dist/data/mapping.zod.d.ts +215 -2
  13. package/dist/data/mapping.zod.d.ts.map +1 -1
  14. package/dist/data/object.zod.d.ts +505 -25
  15. package/dist/data/object.zod.d.ts.map +1 -1
  16. package/dist/data/object.zod.js +32 -5
  17. package/dist/data/query.zod.d.ts +349 -0
  18. package/dist/data/query.zod.d.ts.map +1 -1
  19. package/dist/data/query.zod.js +77 -1
  20. package/dist/data/trigger.zod.d.ts +354 -0
  21. package/dist/data/trigger.zod.d.ts.map +1 -0
  22. package/dist/data/trigger.zod.js +195 -0
  23. package/dist/data/validation.zod.d.ts +83 -43
  24. package/dist/data/validation.zod.d.ts.map +1 -1
  25. package/dist/data/validation.zod.js +51 -5
  26. package/dist/index.d.ts +10 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +11 -0
  29. package/dist/system/api.zod.d.ts +130 -4
  30. package/dist/system/api.zod.d.ts.map +1 -1
  31. package/dist/system/api.zod.js +4 -1
  32. package/dist/system/auth.zod.d.ts +2287 -0
  33. package/dist/system/auth.zod.d.ts.map +1 -0
  34. package/dist/system/auth.zod.js +365 -0
  35. package/dist/system/datasource.zod.d.ts +193 -30
  36. package/dist/system/datasource.zod.d.ts.map +1 -1
  37. package/dist/system/datasource.zod.js +58 -11
  38. package/dist/system/discovery.zod.d.ts +174 -0
  39. package/dist/system/discovery.zod.d.ts.map +1 -0
  40. package/dist/system/discovery.zod.js +53 -0
  41. package/dist/system/driver.zod.d.ts +1631 -0
  42. package/dist/system/driver.zod.d.ts.map +1 -0
  43. package/dist/system/driver.zod.js +337 -0
  44. package/dist/system/license.zod.d.ts +2 -2
  45. package/dist/system/manifest.zod.d.ts +323 -52
  46. package/dist/system/manifest.zod.d.ts.map +1 -1
  47. package/dist/system/manifest.zod.js +91 -17
  48. package/dist/system/plugin.zod.d.ts +3516 -0
  49. package/dist/system/plugin.zod.d.ts.map +1 -0
  50. package/dist/system/plugin.zod.js +226 -0
  51. package/dist/system/policy.zod.d.ts +10 -10
  52. package/dist/system/territory.zod.d.ts +1 -1
  53. package/dist/system/webhook.zod.d.ts +3 -3
  54. package/dist/ui/action.zod.d.ts +19 -12
  55. package/dist/ui/action.zod.d.ts.map +1 -1
  56. package/dist/ui/action.zod.js +7 -1
  57. package/dist/ui/app.zod.d.ts +109 -3
  58. package/dist/ui/app.zod.d.ts.map +1 -1
  59. package/dist/ui/app.zod.js +13 -2
  60. package/dist/ui/dashboard.zod.d.ts +19 -13
  61. package/dist/ui/dashboard.zod.d.ts.map +1 -1
  62. package/dist/ui/dashboard.zod.js +10 -3
  63. package/dist/ui/page.zod.d.ts +6 -6
  64. package/dist/ui/report.zod.d.ts +13 -32
  65. package/dist/ui/report.zod.d.ts.map +1 -1
  66. package/dist/ui/report.zod.js +10 -9
  67. package/dist/ui/theme.zod.d.ts +1221 -0
  68. package/dist/ui/theme.zod.d.ts.map +1 -0
  69. package/dist/ui/theme.zod.js +202 -0
  70. package/dist/ui/widget.zod.d.ts +350 -0
  71. package/dist/ui/widget.zod.d.ts.map +1 -0
  72. package/dist/ui/widget.zod.js +66 -0
  73. package/json-schema/AccountLinkingConfig.json +27 -0
  74. package/json-schema/Action.json +8 -2
  75. package/json-schema/ActionParam.json +8 -2
  76. package/json-schema/Address.json +40 -0
  77. package/json-schema/AggregationFunction.json +19 -0
  78. package/json-schema/AggregationNode.json +42 -0
  79. package/json-schema/Animation.json +56 -0
  80. package/json-schema/ApiCapabilities.json +28 -0
  81. package/json-schema/ApiError.json +27 -0
  82. package/json-schema/ApiRoutes.json +41 -0
  83. package/json-schema/App.json +13 -2
  84. package/json-schema/AsyncValidation.json +70 -0
  85. package/json-schema/AuthConfig.json +606 -0
  86. package/json-schema/AuthPluginConfig.json +28 -0
  87. package/json-schema/AuthStrategy.json +17 -0
  88. package/json-schema/AuthenticationConfig.json +601 -0
  89. package/json-schema/AuthenticationProvider.json +617 -0
  90. package/json-schema/BaseResponse.json +63 -0
  91. package/json-schema/BorderRadius.json +44 -0
  92. package/json-schema/Breakpoints.json +36 -0
  93. package/json-schema/BulkRequest.json +29 -0
  94. package/json-schema/BulkResponse.json +108 -0
  95. package/json-schema/CSRFConfig.json +31 -0
  96. package/json-schema/ColorPalette.json +83 -0
  97. package/json-schema/ComparisonOperator.json +56 -0
  98. package/json-schema/ConditionalValidation.json +793 -0
  99. package/json-schema/CreateRequest.json +20 -0
  100. package/json-schema/CrossFieldValidation.json +56 -0
  101. package/json-schema/CustomValidator.json +57 -0
  102. package/json-schema/Dashboard.json +20 -0
  103. package/json-schema/DashboardWidget.json +20 -0
  104. package/json-schema/DatabaseAdapter.json +38 -0
  105. package/json-schema/Datasource.json +25 -23
  106. package/json-schema/DatasourceCapabilities.json +25 -5
  107. package/json-schema/DeleteResponse.json +68 -0
  108. package/json-schema/Discovery.json +114 -0
  109. package/json-schema/DriverCapabilities.json +69 -0
  110. package/json-schema/DriverDefinition.json +86 -0
  111. package/json-schema/DriverInterface.json +88 -0
  112. package/json-schema/DriverOptions.json +23 -0
  113. package/json-schema/DriverType.json +1 -18
  114. package/json-schema/EmailPasswordConfig.json +43 -0
  115. package/json-schema/EqualityOperator.json +14 -0
  116. package/json-schema/ExportRequest.json +786 -0
  117. package/json-schema/Field.json +75 -4
  118. package/json-schema/FieldOperators.json +108 -0
  119. package/json-schema/FieldType.json +8 -2
  120. package/json-schema/FieldWidgetProps.json +327 -0
  121. package/json-schema/FilterCondition.json +28 -0
  122. package/json-schema/I18nContext.json +12 -0
  123. package/json-schema/JoinNode.json +455 -0
  124. package/json-schema/JoinType.json +15 -0
  125. package/json-schema/ListRecordResponse.json +103 -0
  126. package/json-schema/LocationCoordinates.json +36 -0
  127. package/json-schema/Logger.json +25 -0
  128. package/json-schema/MagicLinkConfig.json +21 -0
  129. package/json-schema/Manifest.json +243 -18
  130. package/json-schema/Mapping.json +328 -0
  131. package/json-schema/ModificationResult.json +46 -0
  132. package/json-schema/NormalizedFilter.json +348 -0
  133. package/json-schema/OAuthProvider.json +66 -0
  134. package/json-schema/Object.json +103 -6
  135. package/json-schema/ObjectCapabilities.json +26 -0
  136. package/json-schema/ObjectQLClient.json +12 -0
  137. package/json-schema/PasskeyConfig.json +54 -0
  138. package/json-schema/Plugin.json +20 -0
  139. package/json-schema/PluginContext.json +91 -0
  140. package/json-schema/PluginLifecycle.json +11 -0
  141. package/json-schema/Query.json +328 -0
  142. package/json-schema/QueryFilter.json +34 -0
  143. package/json-schema/RangeOperator.json +41 -0
  144. package/json-schema/RateLimitConfig.json +36 -0
  145. package/json-schema/RecordData.json +11 -0
  146. package/json-schema/Report.json +20 -26
  147. package/json-schema/Router.json +12 -0
  148. package/json-schema/Scheduler.json +12 -0
  149. package/json-schema/ScopedStorage.json +12 -0
  150. package/json-schema/SessionConfig.json +56 -0
  151. package/json-schema/SetOperator.json +18 -0
  152. package/json-schema/Shadow.json +44 -0
  153. package/json-schema/SingleRecordResponse.json +69 -0
  154. package/json-schema/Spacing.json +64 -0
  155. package/json-schema/SpecialOperator.json +18 -0
  156. package/json-schema/StandardAuthProvider.json +622 -0
  157. package/json-schema/StringOperator.json +21 -0
  158. package/json-schema/SystemAPI.json +12 -0
  159. package/json-schema/Theme.json +543 -0
  160. package/json-schema/ThemeMode.json +14 -0
  161. package/json-schema/Trigger.json +73 -0
  162. package/json-schema/TriggerAction.json +14 -0
  163. package/json-schema/TriggerContext.json +61 -0
  164. package/json-schema/TriggerTiming.json +13 -0
  165. package/json-schema/TwoFactorConfig.json +40 -0
  166. package/json-schema/Typography.json +142 -0
  167. package/json-schema/UpdateRequest.json +20 -0
  168. package/json-schema/UserFieldMapping.json +47 -0
  169. package/json-schema/ValidationRule.json +583 -0
  170. package/json-schema/WindowFunction.json +24 -0
  171. package/json-schema/WindowFunctionNode.json +104 -0
  172. package/json-schema/WindowSpec.json +65 -0
  173. package/json-schema/ZIndex.json +44 -0
  174. package/package.json +8 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.zod.d.ts","sourceRoot":"","sources":["../../src/system/auth.zod.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,365 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StandardAuthProviderSchema = exports.AuthConfigSchema = exports.AuthPluginConfigSchema = exports.DatabaseAdapterSchema = exports.UserFieldMappingSchema = exports.TwoFactorConfigSchema = exports.AccountLinkingConfigSchema = exports.CSRFConfigSchema = exports.RateLimitConfigSchema = exports.SessionConfigSchema = exports.PasskeyConfigSchema = exports.MagicLinkConfigSchema = exports.EmailPasswordConfigSchema = exports.OAuthProviderSchema = exports.AuthStrategy = void 0;
4
+ const zod_1 = require("zod");
5
+ /**
6
+ * Authentication Protocol
7
+ *
8
+ * Defines the standard authentication specification for the ObjectStack ecosystem.
9
+ * This protocol supports multiple authentication strategies, session management,
10
+ * and comprehensive security features.
11
+ *
12
+ * This is a framework-agnostic specification that can be implemented with any
13
+ * authentication library (better-auth, Auth.js, Passport, etc.)
14
+ */
15
+ /**
16
+ * Supported authentication strategies
17
+ */
18
+ exports.AuthStrategy = zod_1.z.enum([
19
+ 'email_password', // Traditional email & password authentication
20
+ 'magic_link', // Passwordless email magic link
21
+ 'oauth', // OAuth2 providers (Google, GitHub, etc.)
22
+ 'passkey', // WebAuthn / FIDO2 passkeys
23
+ 'otp', // One-time password (SMS, Email)
24
+ 'anonymous', // Anonymous/guest sessions
25
+ ]);
26
+ /**
27
+ * OAuth Provider Configuration
28
+ * Supports popular OAuth2 providers
29
+ */
30
+ exports.OAuthProviderSchema = zod_1.z.object({
31
+ provider: zod_1.z.enum([
32
+ 'google',
33
+ 'github',
34
+ 'facebook',
35
+ 'twitter',
36
+ 'linkedin',
37
+ 'microsoft',
38
+ 'apple',
39
+ 'discord',
40
+ 'gitlab',
41
+ 'custom',
42
+ ]).describe('OAuth provider type'),
43
+ clientId: zod_1.z.string().describe('OAuth client ID'),
44
+ clientSecret: zod_1.z.string().describe('OAuth client secret (typically from ENV)'),
45
+ scopes: zod_1.z.array(zod_1.z.string()).optional().describe('Requested OAuth scopes'),
46
+ redirectUri: zod_1.z.string().url().optional().describe('OAuth callback URL'),
47
+ enabled: zod_1.z.boolean().default(true).describe('Whether this provider is enabled'),
48
+ displayName: zod_1.z.string().optional().describe('Display name for the provider button'),
49
+ icon: zod_1.z.string().optional().describe('Icon URL or identifier'),
50
+ });
51
+ /**
52
+ * Email & Password Strategy Configuration
53
+ */
54
+ exports.EmailPasswordConfigSchema = zod_1.z.object({
55
+ enabled: zod_1.z.boolean().default(true),
56
+ requireEmailVerification: zod_1.z.boolean().default(true).describe('Require email verification before login'),
57
+ minPasswordLength: zod_1.z.number().min(6).max(128).default(8).describe('Minimum password length'),
58
+ requirePasswordComplexity: zod_1.z.boolean().default(true).describe('Require uppercase, lowercase, numbers, symbols'),
59
+ allowPasswordReset: zod_1.z.boolean().default(true).describe('Enable password reset functionality'),
60
+ passwordResetExpiry: zod_1.z.number().default(3600).describe('Password reset token expiry in seconds'),
61
+ });
62
+ /**
63
+ * Magic Link Strategy Configuration
64
+ */
65
+ exports.MagicLinkConfigSchema = zod_1.z.object({
66
+ enabled: zod_1.z.boolean().default(true),
67
+ expiryTime: zod_1.z.number().default(900).describe('Magic link expiry time in seconds (default 15 min)'),
68
+ sendEmail: zod_1.z.function()
69
+ .args(zod_1.z.object({
70
+ to: zod_1.z.string().email(),
71
+ link: zod_1.z.string().url(),
72
+ token: zod_1.z.string(),
73
+ }))
74
+ .returns(zod_1.z.promise(zod_1.z.void()))
75
+ .optional()
76
+ .describe('Custom email sending function'),
77
+ });
78
+ /**
79
+ * Passkey (WebAuthn) Strategy Configuration
80
+ */
81
+ exports.PasskeyConfigSchema = zod_1.z.object({
82
+ enabled: zod_1.z.boolean().default(false),
83
+ rpName: zod_1.z.string().describe('Relying Party name'),
84
+ rpId: zod_1.z.string().optional().describe('Relying Party ID (defaults to domain)'),
85
+ allowedOrigins: zod_1.z.array(zod_1.z.string().url()).optional().describe('Allowed origins for WebAuthn'),
86
+ userVerification: zod_1.z.enum(['required', 'preferred', 'discouraged']).default('preferred'),
87
+ attestation: zod_1.z.enum(['none', 'indirect', 'direct', 'enterprise']).default('none'),
88
+ });
89
+ /**
90
+ * Session Configuration
91
+ */
92
+ exports.SessionConfigSchema = zod_1.z.object({
93
+ expiresIn: zod_1.z.number().default(86400 * 7).describe('Session expiry in seconds (default 7 days)'),
94
+ updateAge: zod_1.z.number().default(86400).describe('Session update interval in seconds (default 1 day)'),
95
+ cookieName: zod_1.z.string().default('session_token').describe('Session cookie name'),
96
+ cookieSecure: zod_1.z.boolean().default(true).describe('Use secure cookies (HTTPS only)'),
97
+ cookieSameSite: zod_1.z.enum(['strict', 'lax', 'none']).default('lax').describe('SameSite cookie attribute'),
98
+ cookieDomain: zod_1.z.string().optional().describe('Cookie domain'),
99
+ cookiePath: zod_1.z.string().default('/').describe('Cookie path'),
100
+ cookieHttpOnly: zod_1.z.boolean().default(true).describe('HttpOnly cookie attribute'),
101
+ });
102
+ /**
103
+ * Rate Limiting Configuration
104
+ */
105
+ exports.RateLimitConfigSchema = zod_1.z.object({
106
+ enabled: zod_1.z.boolean().default(true),
107
+ maxAttempts: zod_1.z.number().default(5).describe('Maximum login attempts'),
108
+ windowMs: zod_1.z.number().default(900000).describe('Time window in milliseconds (default 15 min)'),
109
+ blockDuration: zod_1.z.number().default(900000).describe('Block duration after max attempts in ms'),
110
+ skipSuccessfulRequests: zod_1.z.boolean().default(false).describe('Only count failed requests'),
111
+ });
112
+ /**
113
+ * CSRF Protection Configuration
114
+ */
115
+ exports.CSRFConfigSchema = zod_1.z.object({
116
+ enabled: zod_1.z.boolean().default(true),
117
+ tokenLength: zod_1.z.number().default(32).describe('CSRF token length'),
118
+ cookieName: zod_1.z.string().default('csrf_token').describe('CSRF cookie name'),
119
+ headerName: zod_1.z.string().default('X-CSRF-Token').describe('CSRF header name'),
120
+ });
121
+ /**
122
+ * Account Linking Configuration
123
+ * Allows linking multiple auth methods to a single user account
124
+ */
125
+ exports.AccountLinkingConfigSchema = zod_1.z.object({
126
+ enabled: zod_1.z.boolean().default(true).describe('Allow account linking'),
127
+ autoLink: zod_1.z.boolean().default(false).describe('Automatically link accounts with same email'),
128
+ requireVerification: zod_1.z.boolean().default(true).describe('Require email verification before linking'),
129
+ });
130
+ /**
131
+ * Two-Factor Authentication (2FA) Configuration
132
+ */
133
+ exports.TwoFactorConfigSchema = zod_1.z.object({
134
+ enabled: zod_1.z.boolean().default(false),
135
+ issuer: zod_1.z.string().optional().describe('TOTP issuer name'),
136
+ qrCodeSize: zod_1.z.number().default(200).describe('QR code size in pixels'),
137
+ backupCodes: zod_1.z.object({
138
+ enabled: zod_1.z.boolean().default(true),
139
+ count: zod_1.z.number().default(10).describe('Number of backup codes to generate'),
140
+ }).optional(),
141
+ });
142
+ /**
143
+ * User Field Mapping Configuration
144
+ * Maps authentication user fields to ObjectStack user object fields
145
+ */
146
+ exports.UserFieldMappingSchema = zod_1.z.object({
147
+ id: zod_1.z.string().default('id').describe('User ID field'),
148
+ email: zod_1.z.string().default('email').describe('Email field'),
149
+ name: zod_1.z.string().default('name').describe('Name field'),
150
+ image: zod_1.z.string().default('image').optional().describe('Profile image field'),
151
+ emailVerified: zod_1.z.string().default('email_verified').describe('Email verification status field'),
152
+ createdAt: zod_1.z.string().default('created_at').describe('Created timestamp field'),
153
+ updatedAt: zod_1.z.string().default('updated_at').describe('Updated timestamp field'),
154
+ });
155
+ /**
156
+ * Database Adapter Configuration
157
+ */
158
+ exports.DatabaseAdapterSchema = zod_1.z.object({
159
+ type: zod_1.z.enum(['prisma', 'drizzle', 'kysely', 'custom']).describe('Database adapter type'),
160
+ connectionString: zod_1.z.string().optional().describe('Database connection string'),
161
+ tablePrefix: zod_1.z.string().default('auth_').describe('Prefix for auth tables'),
162
+ schema: zod_1.z.string().optional().describe('Database schema name'),
163
+ });
164
+ /**
165
+ * Authentication Plugin Configuration
166
+ * Extends authentication with additional features
167
+ */
168
+ exports.AuthPluginConfigSchema = zod_1.z.object({
169
+ name: zod_1.z.string().describe('Plugin name'),
170
+ enabled: zod_1.z.boolean().default(true),
171
+ options: zod_1.z.record(zod_1.z.any()).optional().describe('Plugin-specific options'),
172
+ });
173
+ /**
174
+ * Complete Authentication Configuration Schema
175
+ *
176
+ * This is the main configuration object for authentication
177
+ * in an ObjectStack application.
178
+ *
179
+ * @example
180
+ * ```typescript
181
+ * const authConfig: AuthConfig = {
182
+ * name: 'main_auth',
183
+ * label: 'Main Authentication',
184
+ * strategies: ['email_password', 'oauth'],
185
+ * baseUrl: 'https://app.example.com',
186
+ * secret: process.env.AUTH_SECRET,
187
+ * driver: 'better-auth', // Optional, defaults to 'better-auth'
188
+ * emailPassword: {
189
+ * enabled: true,
190
+ * minPasswordLength: 8,
191
+ * },
192
+ * oauth: {
193
+ * providers: [{
194
+ * provider: 'google',
195
+ * clientId: process.env.GOOGLE_CLIENT_ID,
196
+ * clientSecret: process.env.GOOGLE_CLIENT_SECRET,
197
+ * }],
198
+ * },
199
+ * session: {
200
+ * expiresIn: 604800, // 7 days
201
+ * },
202
+ * };
203
+ * ```
204
+ */
205
+ exports.AuthConfigSchema = zod_1.z.object({
206
+ /**
207
+ * Unique identifier for this auth configuration
208
+ * Must be in snake_case following ObjectStack conventions
209
+ */
210
+ name: zod_1.z.string()
211
+ .regex(/^[a-z_][a-z0-9_]*$/)
212
+ .describe('Configuration name (snake_case)'),
213
+ /**
214
+ * Human-readable label
215
+ */
216
+ label: zod_1.z.string().describe('Display label'),
217
+ /**
218
+ * The underlying authentication implementation driver
219
+ * Default: 'better-auth' (the reference implementation)
220
+ * Can be: 'better-auth', 'auth-js', 'passport', or custom driver name
221
+ */
222
+ driver: zod_1.z.string().default('better-auth').describe('The underlying authentication implementation driver'),
223
+ /**
224
+ * Enabled authentication strategies
225
+ */
226
+ strategies: zod_1.z.array(exports.AuthStrategy).min(1).describe('Enabled authentication strategies'),
227
+ /**
228
+ * Base URL for the application
229
+ */
230
+ baseUrl: zod_1.z.string().url().describe('Application base URL'),
231
+ /**
232
+ * Secret key for signing tokens and cookies
233
+ * Should be loaded from environment variables
234
+ */
235
+ secret: zod_1.z.string().min(32).describe('Secret key for signing (min 32 chars)'),
236
+ /**
237
+ * Email & Password configuration
238
+ */
239
+ emailPassword: exports.EmailPasswordConfigSchema.optional(),
240
+ /**
241
+ * Magic Link configuration
242
+ */
243
+ magicLink: exports.MagicLinkConfigSchema.optional(),
244
+ /**
245
+ * Passkey (WebAuthn) configuration
246
+ */
247
+ passkey: exports.PasskeyConfigSchema.optional(),
248
+ /**
249
+ * OAuth configuration
250
+ */
251
+ oauth: zod_1.z.object({
252
+ providers: zod_1.z.array(exports.OAuthProviderSchema).min(1),
253
+ }).optional(),
254
+ /**
255
+ * Session configuration
256
+ */
257
+ session: exports.SessionConfigSchema.default({}),
258
+ /**
259
+ * Rate limiting configuration
260
+ */
261
+ rateLimit: exports.RateLimitConfigSchema.default({}),
262
+ /**
263
+ * CSRF protection configuration
264
+ */
265
+ csrf: exports.CSRFConfigSchema.default({}),
266
+ /**
267
+ * Account linking configuration
268
+ */
269
+ accountLinking: exports.AccountLinkingConfigSchema.default({}),
270
+ /**
271
+ * Two-factor authentication configuration
272
+ */
273
+ twoFactor: exports.TwoFactorConfigSchema.optional(),
274
+ /**
275
+ * User field mapping
276
+ */
277
+ userFieldMapping: exports.UserFieldMappingSchema.default({}),
278
+ /**
279
+ * Database adapter configuration
280
+ */
281
+ database: exports.DatabaseAdapterSchema.optional(),
282
+ /**
283
+ * Additional authentication plugins
284
+ */
285
+ plugins: zod_1.z.array(exports.AuthPluginConfigSchema).default([]),
286
+ /**
287
+ * Custom hooks for authentication events
288
+ */
289
+ hooks: zod_1.z.object({
290
+ beforeSignIn: zod_1.z.function()
291
+ .args(zod_1.z.object({ email: zod_1.z.string() }))
292
+ .returns(zod_1.z.promise(zod_1.z.void()))
293
+ .optional()
294
+ .describe('Called before user sign in'),
295
+ afterSignIn: zod_1.z.function()
296
+ .args(zod_1.z.object({ user: zod_1.z.any(), session: zod_1.z.any() }))
297
+ .returns(zod_1.z.promise(zod_1.z.void()))
298
+ .optional()
299
+ .describe('Called after user sign in'),
300
+ beforeSignUp: zod_1.z.function()
301
+ .args(zod_1.z.object({ email: zod_1.z.string(), name: zod_1.z.string().optional() }))
302
+ .returns(zod_1.z.promise(zod_1.z.void()))
303
+ .optional()
304
+ .describe('Called before user registration'),
305
+ afterSignUp: zod_1.z.function()
306
+ .args(zod_1.z.object({ user: zod_1.z.any() }))
307
+ .returns(zod_1.z.promise(zod_1.z.void()))
308
+ .optional()
309
+ .describe('Called after user registration'),
310
+ beforeSignOut: zod_1.z.function()
311
+ .args(zod_1.z.object({ sessionId: zod_1.z.string() }))
312
+ .returns(zod_1.z.promise(zod_1.z.void()))
313
+ .optional()
314
+ .describe('Called before user sign out'),
315
+ afterSignOut: zod_1.z.function()
316
+ .args(zod_1.z.object({ sessionId: zod_1.z.string() }))
317
+ .returns(zod_1.z.promise(zod_1.z.void()))
318
+ .optional()
319
+ .describe('Called after user sign out'),
320
+ }).optional().describe('Authentication lifecycle hooks'),
321
+ /**
322
+ * Advanced security settings
323
+ */
324
+ security: zod_1.z.object({
325
+ allowedOrigins: zod_1.z.array(zod_1.z.string()).optional().describe('CORS allowed origins'),
326
+ trustProxy: zod_1.z.boolean().default(false).describe('Trust proxy headers'),
327
+ ipRateLimiting: zod_1.z.boolean().default(true).describe('Enable IP-based rate limiting'),
328
+ sessionFingerprinting: zod_1.z.boolean().default(true).describe('Enable session fingerprinting'),
329
+ maxSessions: zod_1.z.number().default(5).describe('Maximum concurrent sessions per user'),
330
+ }).optional().describe('Advanced security settings'),
331
+ /**
332
+ * Email configuration for transactional emails
333
+ */
334
+ email: zod_1.z.object({
335
+ from: zod_1.z.string().email().describe('From email address'),
336
+ fromName: zod_1.z.string().optional().describe('From name'),
337
+ provider: zod_1.z.enum(['smtp', 'sendgrid', 'mailgun', 'ses', 'resend', 'custom']).describe('Email provider'),
338
+ config: zod_1.z.record(zod_1.z.any()).optional().describe('Provider-specific configuration'),
339
+ }).optional().describe('Email configuration'),
340
+ /**
341
+ * UI customization options
342
+ */
343
+ ui: zod_1.z.object({
344
+ brandName: zod_1.z.string().optional().describe('Brand name displayed in auth UI'),
345
+ logo: zod_1.z.string().optional().describe('Logo URL'),
346
+ primaryColor: zod_1.z.string().optional().describe('Primary brand color (hex)'),
347
+ customCss: zod_1.z.string().optional().describe('Custom CSS for auth pages'),
348
+ }).optional().describe('UI customization'),
349
+ /**
350
+ * Whether this auth provider is active
351
+ */
352
+ active: zod_1.z.boolean().default(true).describe('Whether this provider is active'),
353
+ /**
354
+ * Whether to allow new user registration
355
+ */
356
+ allowRegistration: zod_1.z.boolean().default(true).describe('Allow new user registration'),
357
+ });
358
+ /**
359
+ * Standard Authentication Provider Schema
360
+ * Wraps the configuration for use in the identity system
361
+ */
362
+ exports.StandardAuthProviderSchema = zod_1.z.object({
363
+ type: zod_1.z.literal('standard_auth').describe('Provider type identifier'),
364
+ config: exports.AuthConfigSchema.describe('Standard authentication configuration'),
365
+ });
@@ -1,9 +1,122 @@
1
1
  import { z } from 'zod';
2
2
  /**
3
- * Driver Type Enum
4
- * Defines the underlying technology of the datasource.
3
+ * Driver Type Enum (Built-in)
4
+ * Standard drivers supported by the core platform.
5
+ * Plugins can register additional drivers using different identifiers.
5
6
  */
6
- export declare const DriverType: z.ZodEnum<["postgres", "mysql", "sqlserver", "oracle", "sqlite", "mongo", "redis", "excel", "csv", "airtable", "rest_api", "graphql", "odata", "salesforce", "sap", "workday"]>;
7
+ export declare const BuiltInDrivers: readonly ["postgres", "mysql", "sqlserver", "oracle", "sqlite", "mongo", "redis", "excel", "csv", "airtable", "rest_api", "graphql", "odata", "salesforce", "sap", "workday"];
8
+ /**
9
+ * Driver Identifier
10
+ * Can be a built-in driver or a plugin-contributed driver (e.g., "com.vendor.snowflake").
11
+ */
12
+ export declare const DriverType: z.ZodString;
13
+ /**
14
+ * Driver Definition Schema
15
+ * Metadata describing a Database Driver.
16
+ * Plugins use this to register new connectivity options.
17
+ */
18
+ export declare const DriverDefinitionSchema: z.ZodObject<{
19
+ id: z.ZodString;
20
+ label: z.ZodString;
21
+ description: z.ZodOptional<z.ZodString>;
22
+ icon: z.ZodOptional<z.ZodString>;
23
+ /**
24
+ * Configuration Schema (JSON Schema)
25
+ * Describes the structure of the `config` object needed for this driver.
26
+ * Used by the UI to generate the connection form.
27
+ */
28
+ configSchema: z.ZodRecord<z.ZodString, z.ZodAny>;
29
+ /**
30
+ * Default Capabilities
31
+ * What this driver supports out-of-the-box.
32
+ */
33
+ capabilities: z.ZodOptional<z.ZodLazy<z.ZodObject<{
34
+ /** Can handle ACID transactions? */
35
+ transactions: z.ZodDefault<z.ZodBoolean>;
36
+ /** Can execute WHERE clause filters natively? */
37
+ queryFilters: z.ZodDefault<z.ZodBoolean>;
38
+ /** Can perform aggregation (group by, sum, avg)? */
39
+ queryAggregations: z.ZodDefault<z.ZodBoolean>;
40
+ /** Can perform ORDER BY sorting? */
41
+ querySorting: z.ZodDefault<z.ZodBoolean>;
42
+ /** Can perform LIMIT/OFFSET pagination? */
43
+ queryPagination: z.ZodDefault<z.ZodBoolean>;
44
+ /** Can perform window functions? */
45
+ queryWindowFunctions: z.ZodDefault<z.ZodBoolean>;
46
+ /** Can perform subqueries? */
47
+ querySubqueries: z.ZodDefault<z.ZodBoolean>;
48
+ /** Can execute SQL-like joins natively? */
49
+ joins: z.ZodDefault<z.ZodBoolean>;
50
+ /** Can perform full-text search? */
51
+ fullTextSearch: z.ZodDefault<z.ZodBoolean>;
52
+ /** Is read-only? */
53
+ readOnly: z.ZodDefault<z.ZodBoolean>;
54
+ /** Is scheme-less (needs schema inference)? */
55
+ dynamicSchema: z.ZodDefault<z.ZodBoolean>;
56
+ }, "strip", z.ZodTypeAny, {
57
+ joins: boolean;
58
+ transactions: boolean;
59
+ queryFilters: boolean;
60
+ queryAggregations: boolean;
61
+ querySorting: boolean;
62
+ queryPagination: boolean;
63
+ queryWindowFunctions: boolean;
64
+ querySubqueries: boolean;
65
+ fullTextSearch: boolean;
66
+ readOnly: boolean;
67
+ dynamicSchema: boolean;
68
+ }, {
69
+ joins?: boolean | undefined;
70
+ transactions?: boolean | undefined;
71
+ queryFilters?: boolean | undefined;
72
+ queryAggregations?: boolean | undefined;
73
+ querySorting?: boolean | undefined;
74
+ queryPagination?: boolean | undefined;
75
+ queryWindowFunctions?: boolean | undefined;
76
+ querySubqueries?: boolean | undefined;
77
+ fullTextSearch?: boolean | undefined;
78
+ readOnly?: boolean | undefined;
79
+ dynamicSchema?: boolean | undefined;
80
+ }>>>;
81
+ }, "strip", z.ZodTypeAny, {
82
+ label: string;
83
+ id: string;
84
+ configSchema: Record<string, any>;
85
+ description?: string | undefined;
86
+ icon?: string | undefined;
87
+ capabilities?: {
88
+ joins: boolean;
89
+ transactions: boolean;
90
+ queryFilters: boolean;
91
+ queryAggregations: boolean;
92
+ querySorting: boolean;
93
+ queryPagination: boolean;
94
+ queryWindowFunctions: boolean;
95
+ querySubqueries: boolean;
96
+ fullTextSearch: boolean;
97
+ readOnly: boolean;
98
+ dynamicSchema: boolean;
99
+ } | undefined;
100
+ }, {
101
+ label: string;
102
+ id: string;
103
+ configSchema: Record<string, any>;
104
+ description?: string | undefined;
105
+ icon?: string | undefined;
106
+ capabilities?: {
107
+ joins?: boolean | undefined;
108
+ transactions?: boolean | undefined;
109
+ queryFilters?: boolean | undefined;
110
+ queryAggregations?: boolean | undefined;
111
+ querySorting?: boolean | undefined;
112
+ queryPagination?: boolean | undefined;
113
+ queryWindowFunctions?: boolean | undefined;
114
+ querySubqueries?: boolean | undefined;
115
+ fullTextSearch?: boolean | undefined;
116
+ readOnly?: boolean | undefined;
117
+ dynamicSchema?: boolean | undefined;
118
+ } | undefined;
119
+ }>;
7
120
  /**
8
121
  * Datasource Capabilities Schema
9
122
  * Declares what this datasource naturally supports.
@@ -11,32 +124,52 @@ export declare const DriverType: z.ZodEnum<["postgres", "mysql", "sqlserver", "o
11
124
  * and what to compute in memory.
12
125
  */
13
126
  export declare const DatasourceCapabilities: z.ZodObject<{
14
- /** Can execute SQL-like joins natively? */
15
- joins: z.ZodDefault<z.ZodBoolean>;
16
127
  /** Can handle ACID transactions? */
17
128
  transactions: z.ZodDefault<z.ZodBoolean>;
129
+ /** Can execute WHERE clause filters natively? */
130
+ queryFilters: z.ZodDefault<z.ZodBoolean>;
131
+ /** Can perform aggregation (group by, sum, avg)? */
132
+ queryAggregations: z.ZodDefault<z.ZodBoolean>;
133
+ /** Can perform ORDER BY sorting? */
134
+ querySorting: z.ZodDefault<z.ZodBoolean>;
135
+ /** Can perform LIMIT/OFFSET pagination? */
136
+ queryPagination: z.ZodDefault<z.ZodBoolean>;
137
+ /** Can perform window functions? */
138
+ queryWindowFunctions: z.ZodDefault<z.ZodBoolean>;
139
+ /** Can perform subqueries? */
140
+ querySubqueries: z.ZodDefault<z.ZodBoolean>;
141
+ /** Can execute SQL-like joins natively? */
142
+ joins: z.ZodDefault<z.ZodBoolean>;
18
143
  /** Can perform full-text search? */
19
144
  fullTextSearch: z.ZodDefault<z.ZodBoolean>;
20
- /** Can perform aggregation (group by, sum, avg)? */
21
- aggregation: z.ZodDefault<z.ZodBoolean>;
22
- /** Is scheme-less (needs schema inference)? */
23
- dynamicSchema: z.ZodDefault<z.ZodBoolean>;
24
145
  /** Is read-only? */
25
146
  readOnly: z.ZodDefault<z.ZodBoolean>;
147
+ /** Is scheme-less (needs schema inference)? */
148
+ dynamicSchema: z.ZodDefault<z.ZodBoolean>;
26
149
  }, "strip", z.ZodTypeAny, {
27
150
  joins: boolean;
28
151
  transactions: boolean;
152
+ queryFilters: boolean;
153
+ queryAggregations: boolean;
154
+ querySorting: boolean;
155
+ queryPagination: boolean;
156
+ queryWindowFunctions: boolean;
157
+ querySubqueries: boolean;
29
158
  fullTextSearch: boolean;
30
- aggregation: boolean;
31
- dynamicSchema: boolean;
32
159
  readOnly: boolean;
160
+ dynamicSchema: boolean;
33
161
  }, {
34
162
  joins?: boolean | undefined;
35
163
  transactions?: boolean | undefined;
164
+ queryFilters?: boolean | undefined;
165
+ queryAggregations?: boolean | undefined;
166
+ querySorting?: boolean | undefined;
167
+ queryPagination?: boolean | undefined;
168
+ queryWindowFunctions?: boolean | undefined;
169
+ querySubqueries?: boolean | undefined;
36
170
  fullTextSearch?: boolean | undefined;
37
- aggregation?: boolean | undefined;
38
- dynamicSchema?: boolean | undefined;
39
171
  readOnly?: boolean | undefined;
172
+ dynamicSchema?: boolean | undefined;
40
173
  }>;
41
174
  /**
42
175
  * Datasource Schema
@@ -48,7 +181,7 @@ export declare const DatasourceSchema: z.ZodObject<{
48
181
  /** Human Label */
49
182
  label: z.ZodOptional<z.ZodString>;
50
183
  /** Driver */
51
- driver: z.ZodEnum<["postgres", "mysql", "sqlserver", "oracle", "sqlite", "mongo", "redis", "excel", "csv", "airtable", "rest_api", "graphql", "odata", "salesforce", "sap", "workday"]>;
184
+ driver: z.ZodString;
52
185
  /**
53
186
  * Connection Configuration
54
187
  * Specific to the driver (e.g., host, port, user, password, bucket, etc.)
@@ -60,32 +193,52 @@ export declare const DatasourceSchema: z.ZodObject<{
60
193
  * Manually override what the driver claims to support.
61
194
  */
62
195
  capabilities: z.ZodOptional<z.ZodObject<{
63
- /** Can execute SQL-like joins natively? */
64
- joins: z.ZodDefault<z.ZodBoolean>;
65
196
  /** Can handle ACID transactions? */
66
197
  transactions: z.ZodDefault<z.ZodBoolean>;
198
+ /** Can execute WHERE clause filters natively? */
199
+ queryFilters: z.ZodDefault<z.ZodBoolean>;
200
+ /** Can perform aggregation (group by, sum, avg)? */
201
+ queryAggregations: z.ZodDefault<z.ZodBoolean>;
202
+ /** Can perform ORDER BY sorting? */
203
+ querySorting: z.ZodDefault<z.ZodBoolean>;
204
+ /** Can perform LIMIT/OFFSET pagination? */
205
+ queryPagination: z.ZodDefault<z.ZodBoolean>;
206
+ /** Can perform window functions? */
207
+ queryWindowFunctions: z.ZodDefault<z.ZodBoolean>;
208
+ /** Can perform subqueries? */
209
+ querySubqueries: z.ZodDefault<z.ZodBoolean>;
210
+ /** Can execute SQL-like joins natively? */
211
+ joins: z.ZodDefault<z.ZodBoolean>;
67
212
  /** Can perform full-text search? */
68
213
  fullTextSearch: z.ZodDefault<z.ZodBoolean>;
69
- /** Can perform aggregation (group by, sum, avg)? */
70
- aggregation: z.ZodDefault<z.ZodBoolean>;
71
- /** Is scheme-less (needs schema inference)? */
72
- dynamicSchema: z.ZodDefault<z.ZodBoolean>;
73
214
  /** Is read-only? */
74
215
  readOnly: z.ZodDefault<z.ZodBoolean>;
216
+ /** Is scheme-less (needs schema inference)? */
217
+ dynamicSchema: z.ZodDefault<z.ZodBoolean>;
75
218
  }, "strip", z.ZodTypeAny, {
76
219
  joins: boolean;
77
220
  transactions: boolean;
221
+ queryFilters: boolean;
222
+ queryAggregations: boolean;
223
+ querySorting: boolean;
224
+ queryPagination: boolean;
225
+ queryWindowFunctions: boolean;
226
+ querySubqueries: boolean;
78
227
  fullTextSearch: boolean;
79
- aggregation: boolean;
80
- dynamicSchema: boolean;
81
228
  readOnly: boolean;
229
+ dynamicSchema: boolean;
82
230
  }, {
83
231
  joins?: boolean | undefined;
84
232
  transactions?: boolean | undefined;
233
+ queryFilters?: boolean | undefined;
234
+ queryAggregations?: boolean | undefined;
235
+ querySorting?: boolean | undefined;
236
+ queryPagination?: boolean | undefined;
237
+ queryWindowFunctions?: boolean | undefined;
238
+ querySubqueries?: boolean | undefined;
85
239
  fullTextSearch?: boolean | undefined;
86
- aggregation?: boolean | undefined;
87
- dynamicSchema?: boolean | undefined;
88
240
  readOnly?: boolean | undefined;
241
+ dynamicSchema?: boolean | undefined;
89
242
  }>>;
90
243
  /** Description */
91
244
  description: z.ZodOptional<z.ZodString>;
@@ -95,31 +248,41 @@ export declare const DatasourceSchema: z.ZodObject<{
95
248
  name: string;
96
249
  active: boolean;
97
250
  config: Record<string, any>;
98
- driver: "csv" | "postgres" | "mysql" | "sqlserver" | "oracle" | "sqlite" | "mongo" | "redis" | "excel" | "airtable" | "rest_api" | "graphql" | "odata" | "salesforce" | "sap" | "workday";
251
+ driver: string;
99
252
  label?: string | undefined;
100
253
  description?: string | undefined;
101
254
  capabilities?: {
102
255
  joins: boolean;
103
256
  transactions: boolean;
257
+ queryFilters: boolean;
258
+ queryAggregations: boolean;
259
+ querySorting: boolean;
260
+ queryPagination: boolean;
261
+ queryWindowFunctions: boolean;
262
+ querySubqueries: boolean;
104
263
  fullTextSearch: boolean;
105
- aggregation: boolean;
106
- dynamicSchema: boolean;
107
264
  readOnly: boolean;
265
+ dynamicSchema: boolean;
108
266
  } | undefined;
109
267
  }, {
110
268
  name: string;
111
269
  config: Record<string, any>;
112
- driver: "csv" | "postgres" | "mysql" | "sqlserver" | "oracle" | "sqlite" | "mongo" | "redis" | "excel" | "airtable" | "rest_api" | "graphql" | "odata" | "salesforce" | "sap" | "workday";
270
+ driver: string;
113
271
  label?: string | undefined;
114
272
  description?: string | undefined;
115
273
  active?: boolean | undefined;
116
274
  capabilities?: {
117
275
  joins?: boolean | undefined;
118
276
  transactions?: boolean | undefined;
277
+ queryFilters?: boolean | undefined;
278
+ queryAggregations?: boolean | undefined;
279
+ querySorting?: boolean | undefined;
280
+ queryPagination?: boolean | undefined;
281
+ queryWindowFunctions?: boolean | undefined;
282
+ querySubqueries?: boolean | undefined;
119
283
  fullTextSearch?: boolean | undefined;
120
- aggregation?: boolean | undefined;
121
- dynamicSchema?: boolean | undefined;
122
284
  readOnly?: boolean | undefined;
285
+ dynamicSchema?: boolean | undefined;
123
286
  } | undefined;
124
287
  }>;
125
288
  export type Datasource = z.infer<typeof DatasourceSchema>;