alepha 0.22.0 → 0.24.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.
- package/assets/swagger-ui/swagger-ui-bundle.js +1 -1
- package/assets/swagger-ui/swagger-ui-standalone-preset.js +1 -1
- package/dist/api/audits/index.browser.js +49 -52
- package/dist/api/audits/index.browser.js.map +1 -1
- package/dist/api/audits/index.d.ts +629 -565
- package/dist/api/audits/index.d.ts.map +1 -1
- package/dist/api/audits/index.js +206 -98
- package/dist/api/audits/index.js.map +1 -1
- package/dist/api/files/index.browser.js +44 -44
- package/dist/api/files/index.browser.js.map +1 -1
- package/dist/api/files/index.d.ts +292 -293
- package/dist/api/files/index.d.ts.map +1 -1
- package/dist/api/files/index.js +61 -64
- package/dist/api/files/index.js.map +1 -1
- package/dist/api/jobs/index.browser.js +61 -59
- package/dist/api/jobs/index.browser.js.map +1 -1
- package/dist/api/jobs/index.d.ts +546 -347
- package/dist/api/jobs/index.d.ts.map +1 -1
- package/dist/api/jobs/index.js +165 -86
- package/dist/api/jobs/index.js.map +1 -1
- package/dist/api/keys/index.d.ts +242 -230
- package/dist/api/keys/index.d.ts.map +1 -1
- package/dist/api/keys/index.js +63 -66
- package/dist/api/keys/index.js.map +1 -1
- package/dist/api/notifications/index.browser.js +40 -38
- package/dist/api/notifications/index.browser.js.map +1 -1
- package/dist/api/notifications/index.d.ts +339 -209
- package/dist/api/notifications/index.d.ts.map +1 -1
- package/dist/api/notifications/index.js +108 -60
- package/dist/api/notifications/index.js.map +1 -1
- package/dist/api/oauth/index.d.ts +190 -78
- package/dist/api/oauth/index.d.ts.map +1 -1
- package/dist/api/oauth/index.js +290 -68
- package/dist/api/oauth/index.js.map +1 -1
- package/dist/api/organizations/index.browser.js +14 -14
- package/dist/api/organizations/index.browser.js.map +1 -1
- package/dist/api/organizations/index.d.ts +158 -134
- package/dist/api/organizations/index.d.ts.map +1 -1
- package/dist/api/organizations/index.js +18 -18
- package/dist/api/organizations/index.js.map +1 -1
- package/dist/api/parameters/index.browser.js +74 -53
- package/dist/api/parameters/index.browser.js.map +1 -1
- package/dist/api/parameters/index.d.ts +607 -513
- package/dist/api/parameters/index.d.ts.map +1 -1
- package/dist/api/parameters/index.js +205 -127
- package/dist/api/parameters/index.js.map +1 -1
- package/dist/api/payments/index.d.ts +652 -449
- package/dist/api/payments/index.d.ts.map +1 -1
- package/dist/api/payments/index.js +159 -93
- package/dist/api/payments/index.js.map +1 -1
- package/dist/api/subscriptions/index.d.ts +1032 -762
- package/dist/api/subscriptions/index.d.ts.map +1 -1
- package/dist/api/subscriptions/index.js +166 -185
- package/dist/api/subscriptions/index.js.map +1 -1
- package/dist/api/users/index.browser.js +48 -71
- package/dist/api/users/index.browser.js.map +1 -1
- package/dist/api/users/index.d.ts +1297 -1109
- package/dist/api/users/index.d.ts.map +1 -1
- package/dist/api/users/index.js +454 -369
- package/dist/api/users/index.js.map +1 -1
- package/dist/api/verifications/index.browser.js +17 -17
- package/dist/api/verifications/index.browser.js.map +1 -1
- package/dist/api/verifications/index.d.ts +169 -157
- package/dist/api/verifications/index.d.ts.map +1 -1
- package/dist/api/verifications/index.js +47 -95
- package/dist/api/verifications/index.js.map +1 -1
- package/dist/background/index.d.ts +0 -1
- package/dist/background/index.d.ts.map +1 -1
- package/dist/background/index.js.map +1 -1
- package/dist/background/index.workerd.js.map +1 -1
- package/dist/batch/index.d.ts +0 -1
- package/dist/batch/index.d.ts.map +1 -1
- package/dist/batch/index.js.map +1 -1
- package/dist/bin/index.js +1 -1
- package/dist/bin/index.js.map +1 -1
- package/dist/bucket/index.d.ts +27 -32
- package/dist/bucket/index.d.ts.map +1 -1
- package/dist/bucket/index.js +56 -26
- package/dist/bucket/index.js.map +1 -1
- package/dist/bucket/index.workerd.js +52 -24
- package/dist/bucket/index.workerd.js.map +1 -1
- package/dist/cache/core/index.d.ts +4 -6
- package/dist/cache/core/index.d.ts.map +1 -1
- package/dist/cache/core/index.js +4 -10
- package/dist/cache/core/index.js.map +1 -1
- package/dist/cache/core/index.workerd.js +4 -10
- package/dist/cache/core/index.workerd.js.map +1 -1
- package/dist/cache/database/index.d.ts +22 -23
- package/dist/cache/database/index.d.ts.map +1 -1
- package/dist/cache/database/index.js +11 -20
- package/dist/cache/database/index.js.map +1 -1
- package/dist/cache/redis/index.d.ts +3 -4
- package/dist/cache/redis/index.d.ts.map +1 -1
- package/dist/cache/redis/index.js +2 -2
- package/dist/cache/redis/index.js.map +1 -1
- package/dist/captcha/index.d.ts.map +1 -1
- package/dist/captcha/index.js +4 -4
- package/dist/captcha/index.js.map +1 -1
- package/dist/cli/config/index.d.ts +0 -1
- package/dist/cli/config/index.d.ts.map +1 -1
- package/dist/cli/core/index.d.ts +244 -475
- package/dist/cli/core/index.d.ts.map +1 -1
- package/dist/cli/core/index.js +308 -383
- package/dist/cli/core/index.js.map +1 -1
- package/dist/cli/devtools/index.d.ts +3 -9
- package/dist/cli/devtools/index.d.ts.map +1 -1
- package/dist/cli/devtools/index.js +3 -3
- package/dist/cli/devtools/index.js.map +1 -1
- package/dist/cli/i18n/index.d.ts +20 -39
- package/dist/cli/i18n/index.d.ts.map +1 -1
- package/dist/cli/i18n/index.js +51 -17
- package/dist/cli/i18n/index.js.map +1 -1
- package/dist/cli/platform/index.d.ts +89 -82
- package/dist/cli/platform/index.d.ts.map +1 -1
- package/dist/cli/platform/index.js +27 -33
- package/dist/cli/platform/index.js.map +1 -1
- package/dist/cli/platform-lib/index.d.ts +383 -410
- package/dist/cli/platform-lib/index.d.ts.map +1 -1
- package/dist/cli/platform-lib/index.js +300 -258
- package/dist/cli/platform-lib/index.js.map +1 -1
- package/dist/cli/vendor/index.d.ts +17 -41
- package/dist/cli/vendor/index.d.ts.map +1 -1
- package/dist/cli/vendor/index.js +10 -13
- package/dist/cli/vendor/index.js.map +1 -1
- package/dist/command/index.d.ts +82 -194
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +160 -563
- package/dist/command/index.js.map +1 -1
- package/dist/core/index.browser.js +845 -859
- package/dist/core/index.browser.js.map +1 -1
- package/dist/core/index.d.ts +787 -527
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +845 -859
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.native.js +845 -859
- package/dist/core/index.native.js.map +1 -1
- package/dist/core/index.workerd.js +845 -859
- package/dist/core/index.workerd.js.map +1 -1
- package/dist/crypto/index.browser.js +1 -1
- package/dist/crypto/index.browser.js.map +1 -1
- package/dist/crypto/index.d.ts +3 -4
- package/dist/crypto/index.d.ts.map +1 -1
- package/dist/crypto/index.js +6 -3
- package/dist/crypto/index.js.map +1 -1
- package/dist/datetime/index.d.ts +12 -2
- package/dist/datetime/index.d.ts.map +1 -1
- package/dist/datetime/index.js +6 -1
- package/dist/datetime/index.js.map +1 -1
- package/dist/email/brevo/index.d.ts +0 -1
- package/dist/email/brevo/index.d.ts.map +1 -1
- package/dist/email/brevo/index.js +4 -4
- package/dist/email/brevo/index.js.map +1 -1
- package/dist/email/cloudflare/index.d.ts +0 -1
- package/dist/email/cloudflare/index.d.ts.map +1 -1
- package/dist/email/cloudflare/index.js +2 -2
- package/dist/email/cloudflare/index.js.map +1 -1
- package/dist/email/core/index.d.ts +15 -7
- package/dist/email/core/index.d.ts.map +1 -1
- package/dist/email/core/index.js +14 -5
- package/dist/email/core/index.js.map +1 -1
- package/dist/email/core/index.workerd.js +5 -1
- package/dist/email/core/index.workerd.js.map +1 -1
- package/dist/email/smtp/index.d.ts +8 -9
- package/dist/email/smtp/index.d.ts.map +1 -1
- package/dist/email/smtp/index.js +702 -479
- package/dist/email/smtp/index.js.map +1 -1
- package/dist/fake/index.d.ts +1580 -1238
- package/dist/fake/index.d.ts.map +1 -1
- package/dist/fake/index.js +11728 -32131
- package/dist/fake/index.js.map +1 -1
- package/dist/lock/core/index.d.ts +13 -9
- package/dist/lock/core/index.d.ts.map +1 -1
- package/dist/lock/core/index.js +5 -5
- package/dist/lock/core/index.js.map +1 -1
- package/dist/lock/redis/index.d.ts +0 -1
- package/dist/lock/redis/index.d.ts.map +1 -1
- package/dist/lock/redis/index.js.map +1 -1
- package/dist/logger/index.d.ts +81 -69
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +123 -56
- package/dist/logger/index.js.map +1 -1
- package/dist/mcp/index.d.ts +36 -90
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +65 -70
- package/dist/mcp/index.js.map +1 -1
- package/dist/orm/core/index.browser.js +54 -40
- package/dist/orm/core/index.browser.js.map +1 -1
- package/dist/orm/core/index.bun.js +140 -106
- package/dist/orm/core/index.bun.js.map +1 -1
- package/dist/orm/core/index.d.ts +145 -150
- package/dist/orm/core/index.d.ts.map +1 -1
- package/dist/orm/core/index.js +144 -109
- package/dist/orm/core/index.js.map +1 -1
- package/dist/orm/postgres/index.bun.js +64 -54
- package/dist/orm/postgres/index.bun.js.map +1 -1
- package/dist/orm/postgres/index.d.ts +36 -76
- package/dist/orm/postgres/index.d.ts.map +1 -1
- package/dist/orm/postgres/index.js +67 -57
- package/dist/orm/postgres/index.js.map +1 -1
- package/dist/queue/core/index.d.ts +62 -75
- package/dist/queue/core/index.d.ts.map +1 -1
- package/dist/queue/core/index.js +48 -71
- package/dist/queue/core/index.js.map +1 -1
- package/dist/queue/core/index.workerd.js +48 -71
- package/dist/queue/core/index.workerd.js.map +1 -1
- package/dist/queue/redis/index.d.ts +3 -4
- package/dist/queue/redis/index.d.ts.map +1 -1
- package/dist/queue/redis/index.js +2 -2
- package/dist/queue/redis/index.js.map +1 -1
- package/dist/react/auth/index.browser.js.map +1 -1
- package/dist/react/auth/index.d.ts +7 -4
- package/dist/react/auth/index.d.ts.map +1 -1
- package/dist/react/auth/index.js.map +1 -1
- package/dist/react/core/index.d.ts +87 -5
- package/dist/react/core/index.d.ts.map +1 -1
- package/dist/react/core/index.js +170 -23
- package/dist/react/core/index.js.map +1 -1
- package/dist/react/form/index.d.ts +4 -6
- package/dist/react/form/index.d.ts.map +1 -1
- package/dist/react/form/index.js +107 -71
- package/dist/react/form/index.js.map +1 -1
- package/dist/react/head/index.browser.js.map +1 -1
- package/dist/react/head/index.d.ts +0 -1
- package/dist/react/head/index.d.ts.map +1 -1
- package/dist/react/head/index.js.map +1 -1
- package/dist/react/i18n/index.d.ts +47 -5
- package/dist/react/i18n/index.d.ts.map +1 -1
- package/dist/react/i18n/index.js +116 -12
- package/dist/react/i18n/index.js.map +1 -1
- package/dist/react/intro/index.d.ts +1 -4
- package/dist/react/intro/index.d.ts.map +1 -1
- package/dist/react/intro/index.js.map +1 -1
- package/dist/react/router/index.browser.js +188 -29
- package/dist/react/router/index.browser.js.map +1 -1
- package/dist/react/router/index.d.ts +480 -372
- package/dist/react/router/index.d.ts.map +1 -1
- package/dist/react/router/index.js +261 -47
- package/dist/react/router/index.js.map +1 -1
- package/dist/react/sitemap/index.browser.js +35 -0
- package/dist/react/sitemap/index.browser.js.map +1 -0
- package/dist/react/sitemap/index.d.ts +91 -0
- package/dist/react/sitemap/index.d.ts.map +1 -0
- package/dist/react/sitemap/index.js +131 -0
- package/dist/react/sitemap/index.js.map +1 -0
- package/dist/react/testing/index.d.ts +4 -5
- package/dist/react/testing/index.d.ts.map +1 -1
- package/dist/react/testing/index.js +41 -15
- package/dist/react/testing/index.js.map +1 -1
- package/dist/react/testing/{chunk-BpyX8vjI.js → rolldown-runtime-Bl3dcgcQ.js} +1 -1
- package/dist/react/ui/index.d.ts +35 -34
- package/dist/react/ui/index.d.ts.map +1 -1
- package/dist/react/ui/index.js +12 -17
- package/dist/react/ui/index.js.map +1 -1
- package/dist/redis/index.bun.js +5 -5
- package/dist/redis/index.bun.js.map +1 -1
- package/dist/redis/index.d.ts +6 -7
- package/dist/redis/index.d.ts.map +1 -1
- package/dist/redis/index.js +6 -6
- package/dist/redis/index.js.map +1 -1
- package/dist/retry/index.d.ts +0 -1
- package/dist/retry/index.d.ts.map +1 -1
- package/dist/retry/index.js.map +1 -1
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js.map +1 -1
- package/dist/scheduler/index.d.ts +4 -12
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +9 -4
- package/dist/scheduler/index.js.map +1 -1
- package/dist/scheduler/index.workerd.js +9 -4
- package/dist/scheduler/index.workerd.js.map +1 -1
- package/dist/security/index.browser.js +30 -28
- package/dist/security/index.browser.js.map +1 -1
- package/dist/security/index.d.ts +113 -44
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +452 -37
- package/dist/security/index.js.map +1 -1
- package/dist/server/auth/index.browser.js +19 -19
- package/dist/server/auth/index.browser.js.map +1 -1
- package/dist/server/auth/index.d.ts +215 -187
- package/dist/server/auth/index.d.ts.map +1 -1
- package/dist/server/auth/index.js +1145 -86
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/cookies/index.browser.js +103 -5
- package/dist/server/cookies/index.browser.js.map +1 -1
- package/dist/server/cookies/index.d.ts +86 -4
- package/dist/server/cookies/index.d.ts.map +1 -1
- package/dist/server/cookies/index.js +121 -8
- package/dist/server/cookies/index.js.map +1 -1
- package/dist/server/core/index.browser.js +22 -27
- package/dist/server/core/index.browser.js.map +1 -1
- package/dist/server/core/index.d.ts +134 -85
- package/dist/server/core/index.d.ts.map +1 -1
- package/dist/server/core/index.js +130 -118
- package/dist/server/core/index.js.map +1 -1
- package/dist/server/cors/index.d.ts +9 -10
- package/dist/server/cors/index.d.ts.map +1 -1
- package/dist/server/cors/index.js +14 -26
- package/dist/server/cors/index.js.map +1 -1
- package/dist/server/etag/index.d.ts +2 -3
- package/dist/server/etag/index.d.ts.map +1 -1
- package/dist/server/etag/index.js.map +1 -1
- package/dist/server/health/index.d.ts +18 -19
- package/dist/server/health/index.d.ts.map +1 -1
- package/dist/server/health/index.js +6 -6
- package/dist/server/health/index.js.map +1 -1
- package/dist/server/links/index.browser.js +15 -18
- package/dist/server/links/index.browser.js.map +1 -1
- package/dist/server/links/index.d.ts +66 -67
- package/dist/server/links/index.d.ts.map +1 -1
- package/dist/server/links/index.js +29 -32
- package/dist/server/links/index.js.map +1 -1
- package/dist/server/metrics/index.d.ts +0 -1
- package/dist/server/metrics/index.d.ts.map +1 -1
- package/dist/server/metrics/index.js +10 -3
- package/dist/server/metrics/index.js.map +1 -1
- package/dist/server/proxy/index.d.ts +0 -1
- package/dist/server/proxy/index.d.ts.map +1 -1
- package/dist/server/proxy/index.js.map +1 -1
- package/dist/server/rate-limit/index.d.ts +8 -9
- package/dist/server/rate-limit/index.d.ts.map +1 -1
- package/dist/server/rate-limit/index.js +6 -12
- package/dist/server/rate-limit/index.js.map +1 -1
- package/dist/server/static/index.d.ts +0 -1
- package/dist/server/static/index.d.ts.map +1 -1
- package/dist/server/static/index.js.map +1 -1
- package/dist/server/swagger/index.d.ts +4 -4
- package/dist/server/swagger/index.d.ts.map +1 -1
- package/dist/server/swagger/index.js +37 -25
- package/dist/server/swagger/index.js.map +1 -1
- package/dist/sms/index.d.ts +0 -1
- package/dist/sms/index.d.ts.map +1 -1
- package/dist/sms/index.js.map +1 -1
- package/dist/system/index.browser.js.map +1 -1
- package/dist/system/index.d.ts +0 -1
- package/dist/system/index.d.ts.map +1 -1
- package/dist/system/index.js +2 -1
- package/dist/system/index.js.map +1 -1
- package/dist/system/index.workerd.js.map +1 -1
- package/dist/topic/core/index.d.ts +19 -20
- package/dist/topic/core/index.d.ts.map +1 -1
- package/dist/topic/core/index.js +8 -8
- package/dist/topic/core/index.js.map +1 -1
- package/dist/topic/redis/index.d.ts +3 -4
- package/dist/topic/redis/index.d.ts.map +1 -1
- package/dist/topic/redis/index.js +2 -2
- package/dist/topic/redis/index.js.map +1 -1
- package/package.json +36 -36
- package/src/api/audits/__tests__/AuditJobs.spec.ts +83 -0
- package/src/api/audits/__tests__/AuditService.spec.ts +139 -1
- package/src/api/audits/controllers/AdminAuditController.ts +41 -41
- package/src/api/audits/entities/audits.ts +22 -22
- package/src/api/audits/index.ts +6 -1
- package/src/api/audits/jobs/AuditJobs.ts +29 -0
- package/src/api/audits/parameters/AuditParameters.ts +51 -0
- package/src/api/audits/primitives/$audit.ts +24 -0
- package/src/api/audits/schemas/auditQuerySchema.ts +13 -13
- package/src/api/audits/schemas/createAuditSchema.ts +18 -18
- package/src/api/audits/services/AuditService.ts +79 -7
- package/src/api/files/__tests__/FileController.spec.ts +5 -5
- package/src/api/files/__tests__/FileJobs.spec.ts +6 -0
- package/src/api/files/controllers/FileController.ts +25 -25
- package/src/api/files/entities/files.ts +15 -15
- package/src/api/files/schemas/fileCreatorSummarySchema.ts +7 -7
- package/src/api/files/schemas/fileQuerySchema.ts +9 -9
- package/src/api/files/schemas/fileResourceSchema.ts +7 -9
- package/src/api/files/schemas/storageStatsSchema.ts +13 -13
- package/src/api/jobs/__tests__/$job-hardening.spec.ts +289 -0
- package/src/api/jobs/__tests__/$job.spec.ts +18 -18
- package/src/api/jobs/controllers/AdminJobController.ts +8 -8
- package/src/api/jobs/entities/jobExecutionEntity.ts +29 -19
- package/src/api/jobs/providers/JobProvider.ts +128 -12
- package/src/api/jobs/providers/JobQueueProvider.ts +2 -2
- package/src/api/jobs/schemas/jobConfigAtom.ts +22 -22
- package/src/api/jobs/schemas/jobExecutionQuerySchema.ts +6 -6
- package/src/api/jobs/schemas/jobExecutionResourceSchema.ts +11 -15
- package/src/api/jobs/schemas/jobRegistrationSchema.ts +20 -19
- package/src/api/jobs/schemas/triggerJobSchema.ts +3 -3
- package/src/api/jobs/services/JobService.ts +6 -6
- package/src/api/keys/__tests__/ApiKeyService.spec.ts +2 -2
- package/src/api/keys/controllers/AdminApiKeyController.ts +10 -10
- package/src/api/keys/entities/apiKeyEntity.ts +15 -15
- package/src/api/keys/schemas/adminApiKeyQuerySchema.ts +4 -4
- package/src/api/keys/schemas/adminApiKeyResourceSchema.ts +15 -15
- package/src/api/keys/schemas/createApiKeyBodySchema.ts +5 -5
- package/src/api/keys/schemas/createApiKeyResponseSchema.ts +9 -9
- package/src/api/keys/schemas/listApiKeyResponseSchema.ts +13 -13
- package/src/api/keys/schemas/revokeApiKeyParamsSchema.ts +3 -3
- package/src/api/keys/schemas/revokeApiKeyResponseSchema.ts +3 -3
- package/src/api/notifications/__tests__/AlephaApiNotifications.spec.ts +2 -2
- package/src/api/notifications/controllers/AdminNotificationController.ts +38 -14
- package/src/api/notifications/jobs/NotificationJobs.ts +7 -6
- package/src/api/notifications/primitives/$notification.ts +43 -4
- package/src/api/notifications/schemas/notificationContactPreferencesSchema.ts +4 -4
- package/src/api/notifications/schemas/notificationContactSchema.ts +7 -7
- package/src/api/notifications/schemas/notificationDetailResourceSchema.ts +9 -11
- package/src/api/notifications/schemas/notificationPayloadSchema.ts +11 -9
- package/src/api/notifications/schemas/notificationQuerySchema.ts +6 -6
- package/src/api/notifications/schemas/notificationResourceSchema.ts +14 -14
- package/src/api/notifications/services/NotificationSenderService.ts +38 -2
- package/src/api/oauth/__tests__/OAuthClientService.spec.ts +42 -0
- package/src/api/oauth/__tests__/OAuthController.spec.ts +128 -0
- package/src/api/oauth/controllers/OAuthController.ts +132 -12
- package/src/api/oauth/entities/oauthClientEntity.ts +29 -12
- package/src/api/oauth/helpers/oauthMetadata.ts +1 -0
- package/src/api/oauth/helpers/oidcMetadata.ts +19 -0
- package/src/api/oauth/index.ts +1 -0
- package/src/api/oauth/schemas/authorizeDecisionBodySchema.ts +12 -11
- package/src/api/oauth/schemas/authorizeQuerySchema.ts +12 -10
- package/src/api/oauth/schemas/registerClientBodySchema.ts +10 -11
- package/src/api/oauth/schemas/tokenRequestBodySchema.ts +9 -8
- package/src/api/oauth/services/OAuthClientService.ts +228 -15
- package/src/api/organizations/controllers/AdminOrganizationController.ts +8 -8
- package/src/api/organizations/entities/organizations.ts +6 -6
- package/src/api/organizations/schemas/createOrganizationSchema.ts +5 -5
- package/src/api/organizations/schemas/organizationQuerySchema.ts +4 -4
- package/src/api/organizations/schemas/updateOrganizationSchema.ts +1 -2
- package/src/api/parameters/__tests__/$parameter.spec.ts +229 -50
- package/src/api/parameters/controllers/AdminParameterController.ts +9 -12
- package/src/api/parameters/entities/parameters.ts +29 -16
- package/src/api/parameters/primitives/$parameter.ts +3 -3
- package/src/api/parameters/schemas/activateParameterBodySchema.ts +4 -4
- package/src/api/parameters/schemas/createParameterVersionBodySchema.ts +15 -15
- package/src/api/parameters/schemas/parameterCreatorSummarySchema.ts +7 -7
- package/src/api/parameters/schemas/parameterCurrentResponseSchema.ts +7 -7
- package/src/api/parameters/schemas/parameterHistoryResponseSchema.ts +3 -3
- package/src/api/parameters/schemas/parameterNameParamSchema.ts +2 -3
- package/src/api/parameters/schemas/parameterNamesResponseSchema.ts +3 -3
- package/src/api/parameters/schemas/parameterResponseSchema.ts +3 -3
- package/src/api/parameters/schemas/parameterStatusSchema.ts +2 -2
- package/src/api/parameters/schemas/parameterTreeNodeSchema.ts +6 -6
- package/src/api/parameters/schemas/parameterVersionParamSchema.ts +5 -6
- package/src/api/parameters/schemas/parameterVersionResponseSchema.ts +3 -3
- package/src/api/parameters/schemas/rollbackParameterBodySchema.ts +6 -9
- package/src/api/parameters/services/ParameterProvider.ts +152 -65
- package/src/api/payments/controllers/AdminPaymentController.ts +7 -7
- package/src/api/payments/controllers/MockCheckoutController.ts +79 -28
- package/src/api/payments/controllers/PaymentController.ts +4 -4
- package/src/api/payments/entities/paymentIntents.ts +11 -11
- package/src/api/payments/entities/paymentMethods.ts +11 -11
- package/src/api/payments/entities/refunds.ts +9 -9
- package/src/api/payments/providers/PaymentProvider.ts +18 -0
- package/src/api/payments/schemas/intentSchemas.ts +25 -25
- package/src/api/payments/schemas/paymentMethodSchemas.ts +3 -3
- package/src/api/payments/services/PaymentService.ts +60 -3
- package/src/api/subscriptions/__tests__/SubscriptionService.spec.ts +14 -0
- package/src/api/subscriptions/controllers/AdminSubscriptionController.ts +11 -11
- package/src/api/subscriptions/controllers/SubscriptionController.ts +5 -4
- package/src/api/subscriptions/entities/subscriptionEvents.ts +15 -15
- package/src/api/subscriptions/entities/subscriptions.ts +22 -22
- package/src/api/subscriptions/notifications/SubscriptionNotifications.ts +22 -22
- package/src/api/subscriptions/schemas/cancelSubscriptionSchema.ts +4 -4
- package/src/api/subscriptions/schemas/changePlanSchema.ts +5 -5
- package/src/api/subscriptions/schemas/createSubscriptionSchema.ts +14 -7
- package/src/api/subscriptions/schemas/entitlementsSchema.ts +10 -10
- package/src/api/subscriptions/schemas/mrrSchema.ts +9 -9
- package/src/api/subscriptions/schemas/planDefinitionSchema.ts +21 -21
- package/src/api/subscriptions/schemas/planResourceSchema.ts +19 -19
- package/src/api/subscriptions/schemas/subscriptionQuerySchema.ts +8 -8
- package/src/api/subscriptions/schemas/subscriptionSettingsSchema.ts +7 -7
- package/src/api/subscriptions/schemas/subscriptionStatsSchema.ts +17 -17
- package/src/api/subscriptions/services/SubscriptionConfig.ts +2 -2
- package/src/api/users/__tests__/ApiKeys-integration.spec.ts +11 -11
- package/src/api/users/atoms/realmAuthSettingsAtom.ts +111 -119
- package/src/api/users/controllers/AdminIdentityController.ts +29 -19
- package/src/api/users/controllers/AdminSessionController.ts +37 -27
- package/src/api/users/controllers/AdminUserController.ts +75 -53
- package/src/api/users/controllers/MySessionController.ts +125 -0
- package/src/api/users/controllers/RealmController.ts +9 -9
- package/src/api/users/controllers/UserController.ts +55 -55
- package/src/api/users/entities/identities.ts +8 -8
- package/src/api/users/entities/sessions.ts +17 -17
- package/src/api/users/entities/users.ts +17 -17
- package/src/api/users/index.ts +3 -0
- package/src/api/users/notifications/UserNotifications.ts +76 -24
- package/src/api/users/primitives/$realm.ts +12 -0
- package/src/api/users/schemas/completePasswordResetRequestSchema.ts +8 -12
- package/src/api/users/schemas/completeRegistrationRequestSchema.ts +17 -20
- package/src/api/users/schemas/createUserSchema.ts +2 -2
- package/src/api/users/schemas/identityQuerySchema.ts +4 -4
- package/src/api/users/schemas/identityResourceSchema.ts +3 -2
- package/src/api/users/schemas/loginSchema.ts +4 -4
- package/src/api/users/schemas/passwordResetIntentResponseSchema.ts +6 -8
- package/src/api/users/schemas/realmConfigSchema.ts +10 -10
- package/src/api/users/schemas/registerQuerySchema.ts +6 -6
- package/src/api/users/schemas/registerRequestSchema.ts +21 -43
- package/src/api/users/schemas/registerResponseSchema.ts +2 -2
- package/src/api/users/schemas/registerSchema.ts +13 -31
- package/src/api/users/schemas/registrationIntentResponseSchema.ts +19 -23
- package/src/api/users/schemas/resetPasswordSchema.ts +10 -17
- package/src/api/users/schemas/sessionQuerySchema.ts +3 -3
- package/src/api/users/schemas/sessionResourceSchema.ts +25 -25
- package/src/api/users/schemas/updateUserSchema.ts +3 -4
- package/src/api/users/schemas/userQuerySchema.ts +7 -7
- package/src/api/users/services/RegistrationService.ts +25 -11
- package/src/api/users/services/UserService.ts +12 -6
- package/src/api/verifications/__tests__/CodeVerification.spec.ts +63 -101
- package/src/api/verifications/__tests__/LinkVerification.spec.ts +23 -92
- package/src/api/verifications/controllers/VerificationController.ts +13 -27
- package/src/api/verifications/entities/verifications.ts +13 -14
- package/src/api/verifications/schemas/requestVerificationCodeResponseSchema.ts +17 -14
- package/src/api/verifications/schemas/validateVerificationCodeResponseSchema.ts +9 -10
- package/src/api/verifications/schemas/verificationSettingsSchema.ts +65 -66
- package/src/api/verifications/schemas/verificationTypeEnumSchema.ts +2 -2
- package/src/api/verifications/services/VerificationService.ts +12 -0
- package/src/background/__tests__/BackgroundTaskProvider.spec.ts +36 -0
- package/src/batch/__tests__/$batch.spec.ts +22 -22
- package/src/batch/__tests__/startup-buffering.spec.ts +9 -9
- package/src/bin/index.ts +1 -1
- package/src/bucket/__tests__/TenantScopedBucket.spec.ts +60 -0
- package/src/bucket/providers/LocalFileStorageProvider.ts +14 -6
- package/src/bucket/providers/MemoryFileStorageProvider.ts +18 -7
- package/src/bucket/providers/R2FileStorageProvider.ts +14 -6
- package/src/bucket/providers/S3FileStorageProvider.ts +31 -15
- package/src/cache/core/primitives/$cache.ts +7 -10
- package/src/cache/database/entities/cacheEntries.ts +16 -27
- package/src/cache/database/providers/DatabaseCacheProvider.ts +15 -13
- package/src/cache/redis/providers/RedisCacheProvider.ts +6 -6
- package/src/captcha/providers/TurnstileCaptchaProvider.ts +4 -4
- package/src/cli/core/__tests__/BuildCloudflareTask.spec.ts +178 -0
- package/src/cli/core/__tests__/BuildDockerTask.spec.ts +0 -2
- package/src/cli/core/__tests__/DbCommand.spec.ts +108 -0
- package/src/cli/core/atoms/appEntryOptions.ts +5 -5
- package/src/cli/core/atoms/buildOptions.ts +76 -88
- package/src/cli/core/atoms/changelogOptions.ts +3 -3
- package/src/cli/core/atoms/devOptions.ts +3 -3
- package/src/cli/core/commands/build.ts +36 -49
- package/src/cli/core/commands/db.ts +171 -83
- package/src/cli/core/commands/dev.ts +8 -8
- package/src/cli/core/commands/gen/changelog.ts +12 -14
- package/src/cli/core/commands/gen/env.ts +6 -6
- package/src/cli/core/commands/gen/openapi.ts +6 -6
- package/src/cli/core/commands/init.ts +28 -33
- package/src/cli/core/commands/pack.ts +10 -10
- package/src/cli/core/commands/root.ts +7 -8
- package/src/cli/core/commands/test.ts +17 -20
- package/src/cli/core/index.ts +0 -3
- package/src/cli/core/tasks/BuildCloudflareTask.ts +138 -245
- package/src/cli/core/tasks/BuildPrerenderTask.ts +44 -7
- package/src/cli/core/templates/apiHelloResponseSchemaTs.ts +4 -4
- package/src/cli/devtools/atoms/devtoolsOptions.ts +6 -6
- package/src/cli/i18n/__tests__/I18nCheckService.spec.ts +48 -0
- package/src/cli/i18n/atoms/i18nOptions.ts +8 -8
- package/src/cli/i18n/services/I18nCheckService.ts +65 -11
- package/src/cli/platform/commands/SecretsCommand.ts +24 -25
- package/src/cli/platform/commands/platform.ts +40 -46
- package/src/cli/platform/index.ts +1 -1
- package/src/cli/platform-lib/__tests__/CloudflareAdapter.spec.ts +0 -4
- package/src/cli/platform-lib/__tests__/PlatformInspector.spec.ts +10 -3
- package/src/cli/platform-lib/__tests__/VercelAdapter.spec.ts +0 -2
- package/src/cli/platform-lib/adapters/CloudflareAdapter.ts +141 -50
- package/src/cli/platform-lib/adapters/VercelAdapter.ts +6 -11
- package/src/cli/platform-lib/atoms/platformOptions.ts +46 -25
- package/src/cli/platform-lib/schemas/cloudflare.ts +87 -87
- package/src/cli/platform-lib/schemas/platform.ts +51 -51
- package/src/cli/platform-lib/schemas/vercel.ts +28 -28
- package/src/cli/platform-lib/services/CloudflareApi.ts +5 -5
- package/src/cli/platform-lib/services/VercelApi.ts +4 -4
- package/src/cli/platform-lib/services/VercelCli.ts +6 -15
- package/src/cli/platform-lib/services/WranglerApi.ts +6 -15
- package/src/cli/vendor/atoms/vendorOptions.ts +9 -9
- package/src/cli/vendor/commands/VendorCommand.ts +11 -12
- package/src/command/__tests__/$command.spec.ts +82 -83
- package/src/command/__tests__/Asker.spec.ts +6 -13
- package/src/command/__tests__/CliProvider.spec.ts +136 -149
- package/src/command/__tests__/Runner.spec.ts +86 -110
- package/src/command/helpers/Asker.ts +23 -58
- package/src/command/helpers/Runner.ts +34 -110
- package/src/command/index.ts +4 -9
- package/src/command/primitives/$command.ts +10 -10
- package/src/command/providers/CliProvider.ts +183 -161
- package/src/core/Alepha.ts +62 -13
- package/src/core/__tests__/$atom.spec.ts +52 -3
- package/src/core/__tests__/$computed.spec.ts +129 -0
- package/src/core/__tests__/$env.spec.ts +13 -13
- package/src/core/__tests__/$inject.spec.ts +4 -4
- package/src/core/__tests__/$module.spec.ts +1 -1
- package/src/core/__tests__/Alepha-graph.spec.ts +1 -1
- package/src/core/__tests__/Alepha-parseEnv.spec.ts +32 -32
- package/src/core/__tests__/Alepha-start.spec.ts +3 -3
- package/src/core/__tests__/CodecManager.spec.ts +113 -94
- package/src/core/__tests__/KeylessJsonSchemaCodec.spec.ts +138 -138
- package/src/core/__tests__/SchemaValidator.spec.ts +43 -44
- package/src/core/__tests__/StateManager.persist.browser.spec.ts +87 -0
- package/src/core/__tests__/StateManager.spec.ts +423 -0
- package/src/core/__tests__/TypeBox-usecases.spec.ts +8 -8
- package/src/core/__tests__/TypeProvider.spec.ts +314 -309
- package/src/core/__tests__/dump.spec.ts +6 -6
- package/src/core/__tests__/pagination.spec.ts +4 -4
- package/src/core/__tests__/scoped-after-start.spec.ts +43 -0
- package/src/core/errors/TypeBoxError.ts +10 -4
- package/src/core/helpers/FileLike.ts +5 -5
- package/src/core/helpers/coerceStrings.ts +70 -0
- package/src/core/helpers/jsonSchemaToZod.ts +112 -0
- package/src/core/index.shared.ts +4 -1
- package/src/core/primitives/$atom.ts +95 -27
- package/src/core/primitives/$computed.ts +148 -0
- package/src/core/primitives/$env.ts +5 -5
- package/src/core/primitives/$state.ts +1 -1
- package/src/core/providers/AlsProvider.ts +26 -0
- package/src/core/providers/CodecManager.ts +1 -2
- package/src/core/providers/JsonSchemaCodec.ts +1 -2
- package/src/core/providers/KeylessJsonSchemaCodec.ts +82 -57
- package/src/core/providers/SchemaValidator.ts +48 -158
- package/src/core/providers/StateManager.ts +383 -9
- package/src/core/providers/TypeProvider.ts +80 -734
- package/src/core/providers/ZodProvider.ts +380 -0
- package/src/core/providers/zodAugment.ts +69 -0
- package/src/core/schemas/pageQuerySchema.ts +19 -21
- package/src/core/schemas/pageSchema.ts +47 -57
- package/src/crypto/__tests__/SecretProvider.spec.ts +31 -0
- package/src/crypto/providers/SecretProvider.ts +16 -10
- package/src/datetime/primitives/$throttle.ts +6 -1
- package/src/email/brevo/providers/BrevoEmailProvider.ts +4 -4
- package/src/email/cloudflare/providers/CloudflareEmailProvider.ts +6 -6
- package/src/email/core/index.ts +7 -2
- package/src/email/core/primitives/$email.ts +5 -1
- package/src/email/core/providers/LocalEmailProvider.ts +5 -5
- package/src/email/smtp/providers/NodemailerEmailProvider.ts +41 -52
- package/src/fake/__tests__/FakeProvider.spec.ts +110 -110
- package/src/fake/__tests__/keyName.example.ts +21 -21
- package/src/fake/__tests__/keyName.spec.ts +41 -41
- package/src/fake/__tests__/module.example.ts +8 -8
- package/src/fake/providers/FakeProvider.ts +122 -121
- package/src/lock/core/__tests__/lock-mutual-exclusion.spec.ts +44 -0
- package/src/lock/core/index.ts +1 -0
- package/src/lock/core/primitives/$lock.ts +13 -6
- package/src/logger/__tests__/CliFormatterProvider.spec.ts +76 -0
- package/src/logger/__tests__/Logger.spec.ts +49 -0
- package/src/logger/index.ts +25 -18
- package/src/logger/providers/CliFormatterProvider.ts +75 -0
- package/src/logger/schemas/logEntrySchema.ts +10 -10
- package/src/logger/services/Logger.ts +18 -0
- package/src/mcp/__tests__/$prompt.spec.ts +21 -23
- package/src/mcp/__tests__/$tool.spec.ts +22 -22
- package/src/mcp/__tests__/McpServerProvider.spec.ts +82 -11
- package/src/mcp/__tests__/StreamableHttpMcpTransport.spec.ts +2 -2
- package/src/mcp/__tests__/integration.spec.ts +33 -33
- package/src/mcp/primitives/$prompt.ts +11 -9
- package/src/mcp/primitives/$tool.ts +27 -86
- package/src/mcp/providers/McpServerProvider.ts +55 -0
- package/src/mcp/transports/StreamableHttpMcpTransport.ts +7 -7
- package/src/orm/__tests__/$repository-tests.ts +133 -27
- package/src/orm/__tests__/$repository.spec.ts +23 -0
- package/src/orm/__tests__/$transactional-tests.ts +4 -4
- package/src/orm/__tests__/ModelBuilder-tests.ts +28 -28
- package/src/orm/__tests__/ModelBuilder.spec.ts +124 -106
- package/src/orm/__tests__/QueryManager.spec.ts +5 -5
- package/src/orm/__tests__/delete-returning-tests.ts +11 -11
- package/src/orm/__tests__/deletedAt-tests.ts +3 -3
- package/src/orm/__tests__/enums.spec.ts +29 -25
- package/src/orm/__tests__/execute-tests.ts +8 -8
- package/src/orm/__tests__/fixtures/bigEntitySchema.ts +48 -48
- package/src/orm/__tests__/fixtures/userEntitySchema.ts +6 -6
- package/src/orm/__tests__/joins-tests.ts +30 -30
- package/src/orm/__tests__/organization-tests.ts +105 -3
- package/src/orm/__tests__/organization.spec.ts +46 -0
- package/src/orm/__tests__/orm-errors.spec.ts +10 -10
- package/src/orm/__tests__/orm-next-tests.ts +29 -29
- package/src/orm/__tests__/orm-showcase-tests.ts +9 -9
- package/src/orm/__tests__/primaryKey.spec.ts +4 -4
- package/src/orm/__tests__/query-date-encoding-tests.ts +17 -17
- package/src/orm/__tests__/ref-auto-onDelete.spec.ts +14 -14
- package/src/orm/__tests__/references.spec.ts +7 -7
- package/src/orm/__tests__/security.spec.ts +17 -17
- package/src/orm/__tests__/string-operators-tests.ts +5 -5
- package/src/orm/__tests__/timestamps-tests.ts +14 -14
- package/src/orm/__tests__/validation-tests.ts +5 -5
- package/src/orm/core/__tests__/BunSqliteProvider.bun.spec.ts +8 -8
- package/src/orm/core/constants/PG_SYMBOLS.ts +13 -1
- package/src/orm/core/entities/alephaSequences.ts +8 -8
- package/src/orm/core/helpers/pgAttr.ts +4 -4
- package/src/orm/core/primitives/$entity.ts +10 -6
- package/src/orm/core/providers/DatabaseTypeProvider.ts +46 -53
- package/src/orm/core/providers/drivers/BunSqliteProvider.ts +8 -8
- package/src/orm/core/providers/drivers/CloudflareD1Provider.ts +3 -5
- package/src/orm/core/providers/drivers/NodeSqliteProvider.ts +8 -8
- package/src/orm/core/schemas/databaseEnvSchema.ts +4 -4
- package/src/orm/core/schemas/insertSchema.ts +14 -18
- package/src/orm/core/schemas/legacyIdSchema.ts +2 -2
- package/src/orm/core/schemas/updateSchema.ts +10 -16
- package/src/orm/core/services/PgRelationManager.ts +2 -2
- package/src/orm/core/services/QueryManager.ts +13 -2
- package/src/orm/core/services/Repository.ts +88 -33
- package/src/orm/core/services/SqliteModelBuilder.ts +38 -45
- package/src/orm/postgres/__tests__/BunPostgresProvider.bun.spec.ts +4 -4
- package/src/orm/postgres/providers/CloudflareHyperdriveProvider.ts +4 -6
- package/src/orm/postgres/schemas/postgresEnvSchema.ts +6 -6
- package/src/orm/postgres/services/PostgresModelBuilder.ts +127 -114
- package/src/queue/core/__tests__/$consumer.spec.ts +4 -4
- package/src/queue/core/__tests__/WorkerProvider.spec.ts +4 -4
- package/src/queue/core/__tests__/shared.ts +6 -6
- package/src/queue/core/primitives/$consumer.ts +5 -5
- package/src/queue/core/primitives/$queue.ts +44 -61
- package/src/queue/core/providers/CloudflareQueueProvider.ts +6 -0
- package/src/queue/core/providers/WorkerProvider.ts +17 -14
- package/src/queue/redis/providers/RedisQueueProvider.ts +3 -3
- package/src/react/core/__tests__/ErrorBoundary.browser.spec.tsx +92 -0
- package/src/react/core/__tests__/Router.spec.tsx +4 -4
- package/src/react/core/__tests__/useComputed.browser.spec.tsx +192 -0
- package/src/react/core/__tests__/useQuery.browser.spec.tsx +48 -0
- package/src/react/core/__tests__/useSelector.browser.spec.tsx +105 -0
- package/src/react/core/__tests__/useStore.browser.spec.tsx +113 -0
- package/src/react/core/components/ErrorBoundary.tsx +42 -0
- package/src/react/core/hooks/useAction.ts +56 -19
- package/src/react/core/hooks/useComputed.ts +91 -0
- package/src/react/core/hooks/useSelector.ts +67 -0
- package/src/react/core/hooks/useStore.ts +36 -17
- package/src/react/core/index.ts +3 -0
- package/src/react/core/utils/shallowEqual.ts +36 -0
- package/src/react/form/__tests__/FormModel-submit-loading.spec.ts +71 -0
- package/src/react/form/__tests__/form-submitting-reactive.browser.spec.tsx +96 -0
- package/src/react/form/__tests__/useForm.browser.spec.tsx +54 -54
- package/src/react/form/errors/FormValidationError.ts +0 -2
- package/src/react/form/hooks/useForm.ts +19 -4
- package/src/react/form/hooks/useFormQuerySync.ts +0 -0
- package/src/react/form/services/FormModel.ts +124 -86
- package/src/react/form/services/parseField.ts +66 -27
- package/src/react/i18n/__tests__/I18nProvider.spec.ts +89 -0
- package/src/react/i18n/__tests__/Localize.spec.tsx +1 -1
- package/src/react/i18n/__tests__/locale-routing.spec.ts +107 -0
- package/src/react/i18n/providers/I18nProvider.ts +173 -14
- package/src/react/router/__tests__/$page.browser.spec.tsx +19 -19
- package/src/react/router/__tests__/$page.spec.tsx +21 -21
- package/src/react/router/__tests__/ReactBrowserProvider.browser.spec.ts +87 -1
- package/src/react/router/__tests__/RouterLocaleProvider.spec.ts +127 -0
- package/src/react/router/atoms/ssrManifestAtom.ts +16 -16
- package/src/react/router/components/NestedView.tsx +11 -3
- package/src/react/router/hooks/useQueryParams.ts +1 -1
- package/src/react/router/index.browser.ts +4 -0
- package/src/react/router/index.shared.ts +1 -0
- package/src/react/router/index.ts +9 -0
- package/src/react/router/primitives/$page.ts +2 -2
- package/src/react/router/providers/ReactBrowserProvider.ts +64 -13
- package/src/react/router/providers/ReactBrowserRouterProvider.ts +15 -1
- package/src/react/router/providers/ReactPageProvider.ts +38 -13
- package/src/react/router/providers/ReactServerProvider.ts +105 -16
- package/src/react/router/providers/RootComponentsProvider.ts +13 -0
- package/src/react/router/providers/RouterLocaleProvider.ts +125 -0
- package/src/react/router/providers/__tests__/RootComponentsProvider.spec.ts +15 -0
- package/src/react/router/providers/__tests__/rootComponents.ssr.browser.spec.tsx +67 -0
- package/src/react/sitemap/__tests__/$sitemap.spec.ts +131 -0
- package/src/react/sitemap/index.browser.ts +21 -0
- package/src/react/sitemap/index.ts +25 -0
- package/src/react/sitemap/primitives/$sitemap.browser.ts +26 -0
- package/src/react/sitemap/primitives/$sitemap.ts +196 -0
- package/src/react/ui/atoms/uiAtom.ts +6 -6
- package/src/react/ui/atoms/uiThemeListAtom.ts +7 -7
- package/src/react/ui/hooks/useColorMode.ts +11 -4
- package/src/react/ui/services/SchemaControl.ts +4 -4
- package/src/redis/providers/BunRedisProvider.ts +19 -11
- package/src/redis/providers/NodeRedisProvider.ts +3 -3
- package/src/scheduler/primitives/$scheduler.ts +21 -8
- package/src/security/__tests__/assertRealmScope.spec.ts +29 -0
- package/src/security/atoms/currentTenantAtom.ts +6 -6
- package/src/security/atoms/currentUserAtom.ts +2 -2
- package/src/security/primitives/$issuer.ts +24 -2
- package/src/security/providers/JwtProvider.ts +100 -0
- package/src/security/providers/SecurityProvider.ts +43 -2
- package/src/security/schemas/permissionSchema.ts +19 -19
- package/src/security/schemas/roleSchema.ts +22 -28
- package/src/security/schemas/userAccountInfoSchema.ts +47 -37
- package/src/server/auth/__tests__/appleClientSecret.spec.ts +34 -0
- package/src/server/auth/__tests__/federationRedirectReplay.spec.ts +44 -0
- package/src/server/auth/helpers/appleClientSecret.ts +24 -0
- package/src/server/auth/helpers/jtiReplayGuard.ts +41 -0
- package/src/server/auth/helpers/safeRedirectPath.ts +19 -0
- package/src/server/auth/index.ts +1 -0
- package/src/server/auth/primitives/$auth.ts +6 -6
- package/src/server/auth/primitives/$authApple.ts +10 -10
- package/src/server/auth/primitives/$authFacebook.ts +10 -10
- package/src/server/auth/primitives/$authFranceConnect.ts +10 -10
- package/src/server/auth/primitives/$authGithub.ts +10 -10
- package/src/server/auth/primitives/$authGoogle.ts +10 -10
- package/src/server/auth/primitives/$authMicrosoft.ts +14 -14
- package/src/server/auth/providers/ServerAuthProvider.ts +67 -52
- package/src/server/auth/schemas/authenticationProviderSchema.ts +9 -12
- package/src/server/auth/schemas/tokenResponseSchema.ts +2 -2
- package/src/server/auth/schemas/tokensSchema.ts +16 -16
- package/src/server/auth/schemas/userinfoResponseSchema.ts +3 -3
- package/src/server/cookies/__tests__/AtomCookieBinding.spec.ts +80 -0
- package/src/server/cookies/__tests__/AtomCookiePersistence.browser.spec.ts +169 -0
- package/src/server/cookies/__tests__/AtomCookiePersistence.spec.ts +294 -0
- package/src/server/cookies/__tests__/ServerCookiesProvider.spec.ts +82 -12
- package/src/server/cookies/index.browser.ts +4 -1
- package/src/server/cookies/index.ts +8 -1
- package/src/server/cookies/primitives/$cookie.browser.ts +1 -1
- package/src/server/cookies/primitives/$cookie.ts +16 -0
- package/src/server/cookies/providers/AtomCookiePersistence.browser.ts +133 -0
- package/src/server/cookies/providers/AtomCookiePersistence.ts +148 -0
- package/src/server/cookies/providers/ServerCookiesProvider.ts +32 -4
- package/src/server/cookies/services/CookieParser.ts +6 -1
- package/src/server/core/__tests__/$action.spec.ts +13 -13
- package/src/server/core/__tests__/$middleware.spec.ts +10 -10
- package/src/server/core/__tests__/$route.spec.ts +9 -9
- package/src/server/core/__tests__/$sse.spec.ts +26 -26
- package/src/server/core/__tests__/BunHttpServerProvider.bun.spec.ts +6 -6
- package/src/server/core/__tests__/HttpClient.spec.ts +2 -2
- package/src/server/core/__tests__/NodeHttpServerProvider.spec.ts +15 -3
- package/src/server/core/__tests__/ServerBodyParserProvider.spec.ts +14 -14
- package/src/server/core/__tests__/ServerMultipartProvider.spec.ts +33 -33
- package/src/server/core/__tests__/ServerRouterProvider-errorHandler.spec.ts +5 -1
- package/src/server/core/__tests__/ServerRouterProvider-getRoutes.spec.ts +25 -25
- package/src/server/core/__tests__/ServerRouterProvider-serializationError.spec.ts +9 -5
- package/src/server/core/__tests__/ServerRouterProvider-validationError.spec.ts +56 -24
- package/src/server/core/errors/ValidationError.ts +6 -3
- package/src/server/core/helpers/isMultipart.ts +2 -1
- package/src/server/core/index.ts +5 -2
- package/src/server/core/interfaces/ServerRequest.ts +14 -14
- package/src/server/core/primitives/$action.ts +26 -36
- package/src/server/core/primitives/$route.ts +27 -0
- package/src/server/core/primitives/$sse.ts +3 -3
- package/src/server/core/providers/BunHttpServerProvider.ts +8 -9
- package/src/server/core/providers/NodeHttpServerProvider.ts +8 -9
- package/src/server/core/providers/ServerBodyParserProvider.ts +20 -12
- package/src/server/core/providers/ServerCompressProvider.ts +9 -10
- package/src/server/core/providers/ServerHelmetProvider.ts +26 -27
- package/src/server/core/providers/ServerMultipartProvider.ts +19 -19
- package/src/server/core/providers/ServerRouterProvider.ts +44 -15
- package/src/server/core/schemas/errorSchema.ts +20 -25
- package/src/server/core/schemas/okSchema.ts +9 -14
- package/src/server/core/services/HttpClient.ts +13 -1
- package/src/server/core/services/ServerRequestParser.ts +6 -6
- package/src/server/cors/providers/ServerCorsProvider.ts +26 -28
- package/src/server/health/schemas/healthSchema.ts +6 -6
- package/src/server/links/__tests__/$remote.spec.ts +3 -3
- package/src/server/links/__tests__/BatchEndpoint.spec.ts +9 -9
- package/src/server/links/__tests__/LinkProvider.spec.ts +9 -9
- package/src/server/links/__tests__/ServerLinksProvider.spec.ts +23 -23
- package/src/server/links/__tests__/fixtures/CrudApp.ts +21 -21
- package/src/server/links/atoms/apiLinksAtom.ts +2 -2
- package/src/server/links/atoms/linkOptionsAtom.ts +6 -6
- package/src/server/links/primitives/$remote.ts +3 -3
- package/src/server/links/providers/LinkProvider.ts +3 -3
- package/src/server/links/providers/ServerLinksProvider.ts +20 -20
- package/src/server/links/schemas/apiLinksResponseSchema.ts +23 -23
- package/src/server/proxy/__tests__/$proxy.spec.ts +9 -9
- package/src/server/proxy/providers/ServerProxyProvider.ts +5 -0
- package/src/server/rate-limit/providers/ServerRateLimitProvider.ts +18 -20
- package/src/server/swagger/__tests__/$swagger.spec.ts +91 -94
- package/src/server/swagger/__tests__/ui.spec.ts +3 -3
- package/src/server/swagger/providers/ServerSwaggerProvider.ts +66 -43
- package/src/system/__tests__/NodeShellProvider.spec.ts +46 -0
- package/src/system/providers/NodeShellProvider.ts +4 -1
- package/src/topic/core/__tests__/$subscriber.spec.ts +4 -4
- package/src/topic/core/__tests__/shared.ts +8 -8
- package/src/topic/core/primitives/$subscriber.ts +5 -5
- package/src/topic/core/primitives/$topic.ts +14 -14
- package/src/topic/redis/providers/RedisTopicProvider.ts +3 -3
- package/dist/container/core/index.d.ts +0 -236
- package/dist/container/core/index.d.ts.map +0 -1
- package/dist/container/core/index.js +0 -231
- package/dist/container/core/index.js.map +0 -1
- package/dist/container/core/index.workerd.js +0 -192
- package/dist/container/core/index.workerd.js.map +0 -1
- package/src/cli/core/tasks/BuildSitemapTask.ts +0 -130
- package/src/command/helpers/PrettyAsker.ts +0 -256
- package/src/command/helpers/PrettyPrint.ts +0 -332
- package/src/container/core/__tests__/$container.spec.ts +0 -83
- package/src/container/core/index.ts +0 -50
- package/src/container/core/index.workerd.ts +0 -53
- package/src/container/core/interfaces/ContainerOptions.ts +0 -69
- package/src/container/core/primitives/$container.ts +0 -100
- package/src/container/core/providers/CloudflareContainerProvider.ts +0 -70
- package/src/container/core/providers/ContainerProvider.ts +0 -92
- package/src/container/core/providers/MockContainerProvider.ts +0 -62
- package/src/container/core/providers/NodeContainerProvider.ts +0 -53
- package/src/core/__tests__/jsonSchemaToTypeBox.spec.ts +0 -771
- package/src/core/helpers/jsonSchemaToTypeBox.ts +0 -359
- /package/dist/orm/core/{chunk-B4FMCO8f.js → rolldown-runtime-B4FMCO8f.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
|
-
import { $atom, $context, $env, $hook, $inject, $mode, $module, $state, Alepha, AlephaError, KIND, Primitive, SchemaValidator, createMiddleware, createPagination, createPrimitive, pageQuerySchema, pageSchema, pageSchema as pageSchema$1,
|
|
2
|
+
import { $atom, $context, $env, $hook, $inject, $mode, $module, $state, Alepha, AlephaError, KIND, Primitive, SchemaValidator, createMiddleware, createPagination, createPrimitive, pageQuerySchema, pageSchema, pageSchema as pageSchema$1, z } from "alepha";
|
|
3
3
|
import { AlephaDateTime, DateTimeProvider } from "alepha/datetime";
|
|
4
4
|
import { mkdir, stat } from "node:fs/promises";
|
|
5
5
|
import { $logger } from "alepha/logger";
|
|
@@ -37,8 +37,8 @@ var DbError = class extends AlephaError {
|
|
|
37
37
|
* - `d1://BINDING_NAME` — Cloudflare D1
|
|
38
38
|
* - `hyperdrive://BINDING_NAME` — Cloudflare Hyperdrive
|
|
39
39
|
*/
|
|
40
|
-
const databaseEnvSchema =
|
|
41
|
-
DATABASE_URL:
|
|
40
|
+
const databaseEnvSchema = z.object({
|
|
41
|
+
DATABASE_URL: z.text().optional(),
|
|
42
42
|
/**
|
|
43
43
|
* Enable or disable push-based schema synchronization (drizzle-kit push).
|
|
44
44
|
*
|
|
@@ -46,7 +46,7 @@ const databaseEnvSchema = t.object({
|
|
|
46
46
|
* Set to `false` in development to skip automatic schema sync
|
|
47
47
|
* (e.g. when managing migrations manually).
|
|
48
48
|
*/
|
|
49
|
-
DATABASE_SYNC:
|
|
49
|
+
DATABASE_SYNC: z.boolean().optional()
|
|
50
50
|
});
|
|
51
51
|
//#endregion
|
|
52
52
|
//#region ../../src/orm/core/providers/DrizzleKitProvider.ts
|
|
@@ -512,25 +512,26 @@ const PG_SERIAL = Symbol.for("Alepha.Postgres.Serial");
|
|
|
512
512
|
//#region ../../src/orm/core/schemas/insertSchema.ts
|
|
513
513
|
const insertSchema = (obj) => {
|
|
514
514
|
const newProperties = {};
|
|
515
|
-
for (const key in obj.
|
|
516
|
-
const prop = obj.
|
|
515
|
+
for (const key in obj.shape) {
|
|
516
|
+
const prop = obj.shape[key];
|
|
517
517
|
if (PG_GENERATED in prop) continue;
|
|
518
|
-
if (PG_DEFAULT in prop || PG_ORGANIZATION in prop) newProperties[key] =
|
|
518
|
+
if (PG_DEFAULT in prop || PG_ORGANIZATION in prop) newProperties[key] = prop.optional();
|
|
519
|
+
else if (z.schema.isOptional(prop)) newProperties[key] = z.schema.unwrap(prop).nullable().optional();
|
|
519
520
|
else newProperties[key] = prop;
|
|
520
521
|
}
|
|
521
|
-
return
|
|
522
|
+
return z.object(newProperties);
|
|
522
523
|
};
|
|
523
524
|
//#endregion
|
|
524
525
|
//#region ../../src/orm/core/schemas/updateSchema.ts
|
|
525
526
|
const updateSchema = (schema) => {
|
|
526
527
|
const newProperties = {};
|
|
527
|
-
for (const key in schema.
|
|
528
|
-
const prop = schema.
|
|
528
|
+
for (const key in schema.shape) {
|
|
529
|
+
const prop = schema.shape[key];
|
|
529
530
|
if (PG_GENERATED in prop) continue;
|
|
530
|
-
if (
|
|
531
|
+
if (z.schema.isOptional(prop)) newProperties[key] = z.union([prop, z.null()]).optional();
|
|
531
532
|
else newProperties[key] = prop;
|
|
532
533
|
}
|
|
533
|
-
return
|
|
534
|
+
return z.object(newProperties);
|
|
534
535
|
};
|
|
535
536
|
//#endregion
|
|
536
537
|
//#region ../../src/orm/core/primitives/$entity.ts
|
|
@@ -539,15 +540,15 @@ const updateSchema = (schema) => {
|
|
|
539
540
|
*
|
|
540
541
|
* @example
|
|
541
542
|
* ```ts
|
|
542
|
-
* import {
|
|
543
|
+
* import { z } from "alepha";
|
|
543
544
|
* import { $entity } from "alepha/orm";
|
|
544
545
|
*
|
|
545
546
|
* const userEntity = $entity({
|
|
546
547
|
* name: "users",
|
|
547
|
-
* schema:
|
|
548
|
+
* schema: z.object({
|
|
548
549
|
* id: pg.primaryKey(),
|
|
549
|
-
* name:
|
|
550
|
-
* email:
|
|
550
|
+
* name: z.text(),
|
|
551
|
+
* email: z.email(),
|
|
551
552
|
* }),
|
|
552
553
|
* });
|
|
553
554
|
* ```
|
|
@@ -581,11 +582,15 @@ var EntityPrimitive = class EntityPrimitive {
|
|
|
581
582
|
get schema() {
|
|
582
583
|
return this.options.schema;
|
|
583
584
|
}
|
|
585
|
+
_insertSchema;
|
|
584
586
|
get insertSchema() {
|
|
585
|
-
|
|
587
|
+
this._insertSchema ??= insertSchema(this.options.schema);
|
|
588
|
+
return this._insertSchema;
|
|
586
589
|
}
|
|
590
|
+
_updateSchema;
|
|
587
591
|
get updateSchema() {
|
|
588
|
-
|
|
592
|
+
this._updateSchema ??= updateSchema(this.options.schema);
|
|
593
|
+
return this._updateSchema;
|
|
589
594
|
}
|
|
590
595
|
};
|
|
591
596
|
$entity[KIND] = EntityPrimitive;
|
|
@@ -598,11 +603,11 @@ $entity[KIND] = EntityPrimitive;
|
|
|
598
603
|
*
|
|
599
604
|
* @example
|
|
600
605
|
* ```ts
|
|
601
|
-
* import {
|
|
606
|
+
* import { z } from "alepha";
|
|
602
607
|
* import { PG_UPDATED_AT } from "../constants/PG_SYMBOLS";
|
|
603
608
|
*
|
|
604
609
|
* export const updatedAtSchema = pgAttr(
|
|
605
|
-
*
|
|
610
|
+
* z.datetime(), PG_UPDATED_AT,
|
|
606
611
|
* );
|
|
607
612
|
* ```
|
|
608
613
|
*/
|
|
@@ -615,8 +620,8 @@ const pgAttr = (type, attr, value) => {
|
|
|
615
620
|
*/
|
|
616
621
|
const getAttrFields = (schema, name) => {
|
|
617
622
|
const fields = [];
|
|
618
|
-
for (const key of Object.keys(schema.
|
|
619
|
-
const value = schema.
|
|
623
|
+
for (const key of Object.keys(schema.shape)) {
|
|
624
|
+
const value = schema.shape[key];
|
|
620
625
|
if (name in value) fields.push({
|
|
621
626
|
type: value,
|
|
622
627
|
key,
|
|
@@ -632,20 +637,20 @@ var DatabaseTypeProvider = class {
|
|
|
632
637
|
/**
|
|
633
638
|
* Creates a primary key with an identity column.
|
|
634
639
|
*/
|
|
635
|
-
identityPrimaryKey = (identity
|
|
640
|
+
identityPrimaryKey = (identity) => pgAttr(pgAttr(pgAttr(z.integer(), PG_PRIMARY_KEY), PG_IDENTITY, identity), PG_DEFAULT);
|
|
636
641
|
/**
|
|
637
642
|
* Creates a primary key with a big identity column. (default)
|
|
638
643
|
*/
|
|
639
|
-
bigIdentityPrimaryKey = (identity
|
|
644
|
+
bigIdentityPrimaryKey = (identity) => pgAttr(pgAttr(pgAttr(z.int64(), PG_PRIMARY_KEY), PG_IDENTITY, identity), PG_DEFAULT);
|
|
640
645
|
/**
|
|
641
646
|
* Creates a primary key with a UUID column.
|
|
642
647
|
*/
|
|
643
|
-
uuidPrimaryKey = () => pgAttr(pgAttr(
|
|
644
|
-
primaryKey(type,
|
|
645
|
-
if (!type ||
|
|
646
|
-
if (
|
|
647
|
-
if (
|
|
648
|
-
if (
|
|
648
|
+
uuidPrimaryKey = () => pgAttr(pgAttr(z.uuid(), PG_PRIMARY_KEY), PG_DEFAULT);
|
|
649
|
+
primaryKey(type, _options, identity) {
|
|
650
|
+
if (!type || z.schema.isInteger(type)) return pgAttr(pgAttr(pgAttr(z.integer(), PG_PRIMARY_KEY), PG_IDENTITY, identity), PG_DEFAULT);
|
|
651
|
+
if (z.schema.isString(type) && z.schema.format(type) === "uuid") return pgAttr(pgAttr(z.uuid(), PG_PRIMARY_KEY), PG_DEFAULT);
|
|
652
|
+
if (z.schema.isNumber(type) && z.schema.format(type) === "int64") return pgAttr(pgAttr(pgAttr(z.number(), PG_PRIMARY_KEY), PG_IDENTITY, identity), PG_DEFAULT);
|
|
653
|
+
if (z.schema.isBigInt(type)) return pgAttr(pgAttr(pgAttr(z.bigint(), PG_PRIMARY_KEY), PG_IDENTITY, identity), PG_DEFAULT);
|
|
649
654
|
throw new AlephaError(`Unsupported type for primary key: ${type}`);
|
|
650
655
|
}
|
|
651
656
|
/**
|
|
@@ -666,21 +671,21 @@ var DatabaseTypeProvider = class {
|
|
|
666
671
|
* @see {@link RepositoryPrimitive#save}
|
|
667
672
|
* @see {@link PgVersionMismatchError}
|
|
668
673
|
*/
|
|
669
|
-
version = (
|
|
674
|
+
version = () => this.default(pgAttr(z.integer(), PG_VERSION), 0);
|
|
670
675
|
/**
|
|
671
676
|
* Creates a column Created At. So just a datetime column with a default value of the current timestamp.
|
|
672
677
|
*/
|
|
673
|
-
createdAt = (
|
|
678
|
+
createdAt = () => pgAttr(pgAttr(z.datetime(), PG_CREATED_AT), PG_DEFAULT);
|
|
674
679
|
/**
|
|
675
680
|
* Creates a column Updated At. Like createdAt, but it is updated on every update of the row.
|
|
676
681
|
*/
|
|
677
|
-
updatedAt = (
|
|
682
|
+
updatedAt = () => pgAttr(pgAttr(z.datetime(), PG_UPDATED_AT), PG_DEFAULT);
|
|
678
683
|
/**
|
|
679
684
|
* Creates a column Deleted At for soft delete functionality.
|
|
680
685
|
* This is used to mark rows as deleted without actually removing them from the database.
|
|
681
686
|
* The column is nullable - NULL means not deleted, timestamp means deleted.
|
|
682
687
|
*/
|
|
683
|
-
deletedAt = (
|
|
688
|
+
deletedAt = () => pgAttr(z.datetime().optional(), PG_DELETED_AT);
|
|
684
689
|
/**
|
|
685
690
|
* Creates an organization column for multi-tenant row scoping.
|
|
686
691
|
*
|
|
@@ -689,17 +694,24 @@ var DatabaseTypeProvider = class {
|
|
|
689
694
|
*
|
|
690
695
|
* @param options.nullable - When `false`, the column is NOT NULL in the database and
|
|
691
696
|
* the ORM rejects inserts that arrive without an organization context.
|
|
692
|
-
* Defaults to `true` (nullable)
|
|
693
|
-
* to
|
|
697
|
+
* Defaults to `true` (nullable) — unless `strict` is set, which flips the
|
|
698
|
+
* default to non-nullable. NULL rows are visible to every tenant (the
|
|
699
|
+
* historic "global row" semantics) only when the column is nullable AND
|
|
700
|
+
* not strict.
|
|
701
|
+
* @param options.strict - Fail-closed tenant scoping for security-sensitive
|
|
702
|
+
* tables. Refuses reads/writes with no resolved tenant (instead of a
|
|
703
|
+
* fail-open "see/write everything") and drops the `OR org IS NULL` escape
|
|
704
|
+
* so a scoped tenant never sees global rows. Defaults to `false`.
|
|
694
705
|
*/
|
|
695
706
|
organization = (options) => {
|
|
696
|
-
|
|
707
|
+
const strict = options?.strict ?? false;
|
|
708
|
+
return pgAttr(options?.nullable ?? !strict ? z.uuid().optional() : z.uuid(), PG_ORGANIZATION, { strict });
|
|
697
709
|
};
|
|
698
710
|
/**
|
|
699
711
|
* Creates a reference to another table or schema. Basically a foreign key.
|
|
700
712
|
*/
|
|
701
713
|
ref = (type, ref, actions) => {
|
|
702
|
-
const finalActions = actions ?? { onDelete:
|
|
714
|
+
const finalActions = actions ?? { onDelete: z.schema.isOptional(type) ? "set null" : "cascade" };
|
|
703
715
|
return this.attr(type, PG_REF, {
|
|
704
716
|
ref,
|
|
705
717
|
actions: finalActions
|
|
@@ -709,8 +721,8 @@ var DatabaseTypeProvider = class {
|
|
|
709
721
|
* Creates a page schema for a given object schema.
|
|
710
722
|
* It's used by {@link Repository#paginate} method.
|
|
711
723
|
*/
|
|
712
|
-
page = (resource
|
|
713
|
-
return pageSchema$1(resource
|
|
724
|
+
page = (resource) => {
|
|
725
|
+
return pageSchema$1(resource);
|
|
714
726
|
};
|
|
715
727
|
};
|
|
716
728
|
/**
|
|
@@ -747,16 +759,16 @@ const db = new DatabaseTypeProvider();
|
|
|
747
759
|
*/
|
|
748
760
|
const alephaSequences = $entity({
|
|
749
761
|
name: "alepha_sequences",
|
|
750
|
-
schema:
|
|
751
|
-
id: db.primaryKey(
|
|
762
|
+
schema: z.object({
|
|
763
|
+
id: db.primaryKey(z.uuid()),
|
|
752
764
|
createdAt: db.createdAt(),
|
|
753
765
|
updatedAt: db.updatedAt(),
|
|
754
|
-
name:
|
|
755
|
-
scope:
|
|
766
|
+
name: z.text({ description: "Sequence primitive name (from $sequence's property key)." }),
|
|
767
|
+
scope: z.text({
|
|
756
768
|
description: "Caller-provided sub-scope. Defaults to 'default' for the unscoped form.",
|
|
757
769
|
default: "default"
|
|
758
770
|
}),
|
|
759
|
-
value:
|
|
771
|
+
value: z.integer().describe("Current counter value, advanced atomically on each call.")
|
|
760
772
|
}),
|
|
761
773
|
indexes: [{
|
|
762
774
|
columns: ["name", "scope"],
|
|
@@ -799,7 +811,8 @@ var DbColumnNotFoundError = class DbColumnNotFoundError extends DbError {
|
|
|
799
811
|
if (pgMatch) {
|
|
800
812
|
const column = pgMatch[1];
|
|
801
813
|
const table = pgMatch[2];
|
|
802
|
-
|
|
814
|
+
const msg = table ? `Column '${column}' does not exist in table '${table}'` : `Column '${column}' does not exist`;
|
|
815
|
+
return new DbColumnNotFoundError(msg, error, {
|
|
803
816
|
column,
|
|
804
817
|
table
|
|
805
818
|
});
|
|
@@ -808,7 +821,8 @@ var DbColumnNotFoundError = class DbColumnNotFoundError extends DbError {
|
|
|
808
821
|
if (sqliteMatch) {
|
|
809
822
|
const table = sqliteMatch[1];
|
|
810
823
|
const column = sqliteMatch[2];
|
|
811
|
-
|
|
824
|
+
const msg = table ? `Column '${column}' does not exist in table '${table}'` : `Column '${column}' does not exist`;
|
|
825
|
+
return new DbColumnNotFoundError(msg, error, {
|
|
812
826
|
column,
|
|
813
827
|
table
|
|
814
828
|
});
|
|
@@ -1108,7 +1122,7 @@ var PgRelationManager = class {
|
|
|
1108
1122
|
const childJoins = joins.filter((j) => j.parent === joinPath);
|
|
1109
1123
|
let joinSchema = join.schema;
|
|
1110
1124
|
if (childJoins.length > 0) joinSchema = this.buildSchemaWithJoins(join.schema, joins, joinPath);
|
|
1111
|
-
schema.properties[join.key] =
|
|
1125
|
+
schema.properties[join.key] = joinSchema.optional();
|
|
1112
1126
|
}
|
|
1113
1127
|
return schema;
|
|
1114
1128
|
}
|
|
@@ -1163,8 +1177,16 @@ var QueryManager = class {
|
|
|
1163
1177
|
dialect: options.dialect
|
|
1164
1178
|
});
|
|
1165
1179
|
}).filter((it) => it != null);
|
|
1166
|
-
if (key === "and")
|
|
1167
|
-
|
|
1180
|
+
if (key === "and") {
|
|
1181
|
+
const combined = and(...operations);
|
|
1182
|
+
if (combined) conditions.push(combined);
|
|
1183
|
+
continue;
|
|
1184
|
+
}
|
|
1185
|
+
if (key === "or") {
|
|
1186
|
+
const combined = or(...operations);
|
|
1187
|
+
if (combined) conditions.push(combined);
|
|
1188
|
+
continue;
|
|
1189
|
+
}
|
|
1168
1190
|
}
|
|
1169
1191
|
if (key === "not") {
|
|
1170
1192
|
const where = this.toSQL(operator, {
|
|
@@ -1551,19 +1573,11 @@ var Repository = class Repository {
|
|
|
1551
1573
|
try {
|
|
1552
1574
|
let rows = await builder.execute();
|
|
1553
1575
|
let schema = this.entity.schema;
|
|
1554
|
-
if (columns) schema =
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
...schema,
|
|
1558
|
-
properties: { ...schema.properties }
|
|
1559
|
-
};
|
|
1560
|
-
return this.relationManager.mapRowWithJoins(row[this.tableName], row, rowSchema, joins);
|
|
1561
|
-
});
|
|
1576
|
+
if (columns) schema = schema.pick(Object.fromEntries(columns.map((c) => [c, true])));
|
|
1577
|
+
const joinedSchema = joins.length ? this.relationManager.buildSchemaWithJoins(schema, joins) : null;
|
|
1578
|
+
if (joins.length) rows = rows.map((row) => this.relationManager.mapRowWithJoins(row[this.tableName], row, schema, joins));
|
|
1562
1579
|
rows = rows.map((row) => {
|
|
1563
|
-
if (joins
|
|
1564
|
-
const joinedSchema = this.relationManager.buildSchemaWithJoins(schema, joins);
|
|
1565
|
-
return this.cleanWithJoins(row, joinedSchema, joins);
|
|
1566
|
-
}
|
|
1580
|
+
if (joinedSchema) return this.cleanWithJoins(row, joinedSchema, joins);
|
|
1567
1581
|
return this.clean(row, schema);
|
|
1568
1582
|
});
|
|
1569
1583
|
await this.alepha.events.emit("repository:read:after", {
|
|
@@ -1619,10 +1633,10 @@ var Repository = class Repository {
|
|
|
1619
1633
|
};
|
|
1620
1634
|
const tasks = [];
|
|
1621
1635
|
tasks.push(this.findMany({
|
|
1636
|
+
...query,
|
|
1622
1637
|
offset,
|
|
1623
1638
|
limit: limit + 1,
|
|
1624
|
-
orderBy
|
|
1625
|
-
...query
|
|
1639
|
+
orderBy
|
|
1626
1640
|
}, opts).then((it) => {
|
|
1627
1641
|
timers.query = this.dateTimeProvider.nowMillis() - timers.query;
|
|
1628
1642
|
return it;
|
|
@@ -2067,7 +2081,8 @@ var Repository = class Repository {
|
|
|
2067
2081
|
if (query.orderBy) {
|
|
2068
2082
|
const clauses = this.queryManager.normalizeOrderBy(query.orderBy);
|
|
2069
2083
|
builder = builder.orderBy(...clauses.map((clause) => {
|
|
2070
|
-
const
|
|
2084
|
+
const colName = clause.column.includes(".") ? clause.column.replace(".", AGG_SEPARATOR) : clause.column;
|
|
2085
|
+
const col = flatFields[colName];
|
|
2071
2086
|
if (!col) throw new AlephaError(`Invalid orderBy column '${clause.column}' in aggregate query`);
|
|
2072
2087
|
return clause.direction === "desc" ? desc(col) : asc(col);
|
|
2073
2088
|
}));
|
|
@@ -2122,16 +2137,24 @@ var Repository = class Repository {
|
|
|
2122
2137
|
withOrganization(where) {
|
|
2123
2138
|
const orgField = this.organizationField();
|
|
2124
2139
|
if (!orgField) return where;
|
|
2140
|
+
const strict = orgField.data?.strict === true;
|
|
2125
2141
|
const value = this.resolveOrganizationValue();
|
|
2126
|
-
if (!value)
|
|
2127
|
-
|
|
2142
|
+
if (!value) {
|
|
2143
|
+
if (strict) throw new AlephaError(`Refusing to query tenant-scoped entity '${this.tableName}' with no resolved tenant/organization in context (strict tenancy).`);
|
|
2144
|
+
return where;
|
|
2145
|
+
}
|
|
2146
|
+
return { and: [where, strict ? { [orgField.key]: { eq: value } } : { or: [{ [orgField.key]: { eq: value } }, { [orgField.key]: { isNull: true } }] }] };
|
|
2128
2147
|
}
|
|
2129
2148
|
stampOrganization(data) {
|
|
2130
2149
|
const orgField = this.organizationField();
|
|
2131
2150
|
if (!orgField) return;
|
|
2132
|
-
if (data[orgField.key]
|
|
2151
|
+
if (orgField.key in data && data[orgField.key] !== void 0) return;
|
|
2133
2152
|
const value = this.resolveOrganizationValue();
|
|
2134
|
-
if (value)
|
|
2153
|
+
if (value) {
|
|
2154
|
+
data[orgField.key] = value;
|
|
2155
|
+
return;
|
|
2156
|
+
}
|
|
2157
|
+
if (orgField.data?.strict === true) throw new AlephaError(`Refusing to insert into tenant-scoped entity '${this.tableName}' with no organization set and no resolved tenant in context (strict tenancy).`);
|
|
2135
2158
|
}
|
|
2136
2159
|
/**
|
|
2137
2160
|
* Resolve the value used for `PG_ORGANIZATION` scoping.
|
|
@@ -2156,7 +2179,7 @@ var Repository = class Repository {
|
|
|
2156
2179
|
* Convert something to valid Pg Insert Value.
|
|
2157
2180
|
*/
|
|
2158
2181
|
cast(data, insert) {
|
|
2159
|
-
const schema = insert ? this.entity.insertSchema :
|
|
2182
|
+
const schema = insert ? this.entity.insertSchema : this.entity.updateSchema.partial();
|
|
2160
2183
|
const sqlValues = {};
|
|
2161
2184
|
const scalarData = {};
|
|
2162
2185
|
for (const key of Object.keys(data)) {
|
|
@@ -2164,8 +2187,12 @@ var Repository = class Repository {
|
|
|
2164
2187
|
if (value != null && isSQLWrapper(value)) sqlValues[key] = value;
|
|
2165
2188
|
else scalarData[key] = value;
|
|
2166
2189
|
}
|
|
2190
|
+
const encoded = this.alepha.codec.encode(schema, scalarData);
|
|
2167
2191
|
return {
|
|
2168
|
-
...
|
|
2192
|
+
...insert ? encoded : Object.keys(scalarData).reduce((acc, key) => {
|
|
2193
|
+
acc[key] = encoded[key];
|
|
2194
|
+
return acc;
|
|
2195
|
+
}, {}),
|
|
2169
2196
|
...sqlValues
|
|
2170
2197
|
};
|
|
2171
2198
|
}
|
|
@@ -2174,12 +2201,17 @@ var Repository = class Repository {
|
|
|
2174
2201
|
*/
|
|
2175
2202
|
clean(row, schema) {
|
|
2176
2203
|
for (const key of Object.keys(schema.properties)) {
|
|
2177
|
-
const
|
|
2204
|
+
const prop = schema.properties[key];
|
|
2205
|
+
const value = z.schema.unwrap(prop);
|
|
2206
|
+
if (row[key] === null && z.schema.isOptional(prop)) {
|
|
2207
|
+
delete row[key];
|
|
2208
|
+
continue;
|
|
2209
|
+
}
|
|
2178
2210
|
if (typeof row[key] === "string") {
|
|
2179
|
-
if (
|
|
2180
|
-
else if (
|
|
2211
|
+
if (z.schema.isDateTime(value)) row[key] = this.dateTimeProvider.of(row[key]).toISOString();
|
|
2212
|
+
else if (z.schema.isDate(value)) row[key] = this.dateTimeProvider.of(`${row[key]}T00:00:00Z`).toISOString().split("T")[0];
|
|
2181
2213
|
}
|
|
2182
|
-
if (typeof row[key] === "bigint" &&
|
|
2214
|
+
if ((typeof row[key] === "bigint" || typeof row[key] === "number") && z.schema.isBigInt(value)) row[key] = String(row[key]);
|
|
2183
2215
|
}
|
|
2184
2216
|
return this.alepha.codec.decode(schema, row);
|
|
2185
2217
|
}
|
|
@@ -2231,7 +2263,7 @@ var Repository = class Repository {
|
|
|
2231
2263
|
* @returns The where clause for the ID.
|
|
2232
2264
|
*/
|
|
2233
2265
|
getWhereId(id) {
|
|
2234
|
-
return { [this.id.key]: { eq:
|
|
2266
|
+
return { [this.id.key]: { eq: z.schema.isString(this.id.type) ? String(id) : Number(id) } };
|
|
2235
2267
|
}
|
|
2236
2268
|
/**
|
|
2237
2269
|
* Find a primary key in the schema.
|
|
@@ -2570,7 +2602,8 @@ var SqliteModelBuilder = class extends ModelBuilder {
|
|
|
2570
2602
|
schemaToSqliteColumns = (tableName, schema, enums, tables) => {
|
|
2571
2603
|
return Object.entries(schema.properties).reduce((columns, [key, value]) => {
|
|
2572
2604
|
let col = this.mapFieldToSqliteColumn(tableName, key, value, enums);
|
|
2573
|
-
|
|
2605
|
+
const defaultValue = z.schema.getDefault(value);
|
|
2606
|
+
if (defaultValue != null) col = col.default(defaultValue);
|
|
2574
2607
|
if (PG_PRIMARY_KEY in value) col = col.primaryKey();
|
|
2575
2608
|
if (PG_REF in value) {
|
|
2576
2609
|
const config = value[PG_REF];
|
|
@@ -2587,55 +2620,56 @@ var SqliteModelBuilder = class extends ModelBuilder {
|
|
|
2587
2620
|
const gen = value[PG_GENERATED];
|
|
2588
2621
|
col = col.generatedAlwaysAs(gen.expression, { mode: gen.mode ?? "virtual" });
|
|
2589
2622
|
}
|
|
2590
|
-
if (schema.
|
|
2623
|
+
if (z.schema.requiredKeys(schema).includes(key)) col = col.notNull();
|
|
2591
2624
|
columns[key] = col;
|
|
2592
2625
|
return columns;
|
|
2593
2626
|
}, {});
|
|
2594
2627
|
};
|
|
2595
2628
|
mapFieldToSqliteColumn = (tableName, fieldName, value, enums) => {
|
|
2596
2629
|
const key = this.toColumnName(fieldName);
|
|
2597
|
-
|
|
2598
|
-
if (
|
|
2630
|
+
value = z.schema.unwrap(value);
|
|
2631
|
+
if (z.schema.isInteger(value)) {
|
|
2599
2632
|
if (PG_SERIAL in value || PG_IDENTITY in value) return pg.integer(key, { mode: "number" }).primaryKey({ autoIncrement: true });
|
|
2600
2633
|
return pg.integer(key);
|
|
2601
2634
|
}
|
|
2602
|
-
if (
|
|
2635
|
+
if (z.schema.isBigInt(value)) {
|
|
2603
2636
|
if (PG_PRIMARY_KEY in value || PG_IDENTITY in value) return pg.integer(key, { mode: "number" }).primaryKey({ autoIncrement: true });
|
|
2604
2637
|
return pg.integer(key, { mode: "number" });
|
|
2605
2638
|
}
|
|
2606
|
-
if (
|
|
2639
|
+
if (z.schema.isNumber(value)) {
|
|
2607
2640
|
if (PG_IDENTITY in value) return pg.integer(key, { mode: "number" }).primaryKey({ autoIncrement: true });
|
|
2608
|
-
return pg.
|
|
2609
|
-
}
|
|
2610
|
-
if (
|
|
2611
|
-
if (
|
|
2612
|
-
if (
|
|
2613
|
-
if (
|
|
2614
|
-
if (
|
|
2615
|
-
if (
|
|
2616
|
-
if (
|
|
2617
|
-
if (
|
|
2618
|
-
if (
|
|
2619
|
-
if (
|
|
2620
|
-
if (
|
|
2621
|
-
if (
|
|
2622
|
-
if (
|
|
2623
|
-
|
|
2624
|
-
|
|
2641
|
+
return pg.real(key);
|
|
2642
|
+
}
|
|
2643
|
+
if (z.schema.isString(value)) return this.mapStringToSqliteColumn(key, value);
|
|
2644
|
+
if (z.schema.isBoolean(value)) return this.sqliteBool(key, value);
|
|
2645
|
+
if (z.schema.isObject(value)) return this.sqliteJson(key, value);
|
|
2646
|
+
if (z.schema.isRecord(value)) return this.sqliteJson(key, value);
|
|
2647
|
+
if (z.schema.isAny(value)) return this.sqliteJson(key, value);
|
|
2648
|
+
if (z.schema.isArray(value)) {
|
|
2649
|
+
if (z.schema.isObject(value.items)) return this.sqliteJson(key, value);
|
|
2650
|
+
if (z.schema.isRecord(value.items)) return this.sqliteJson(key, value);
|
|
2651
|
+
if (z.schema.isAny(value.items)) return this.sqliteJson(key, value);
|
|
2652
|
+
if (z.schema.isString(value.items)) return this.sqliteJson(key, value);
|
|
2653
|
+
if (z.schema.isInteger(value.items)) return this.sqliteJson(key, value);
|
|
2654
|
+
if (z.schema.isNumber(value.items)) return this.sqliteJson(key, value);
|
|
2655
|
+
if (z.schema.isBoolean(value.items)) return this.sqliteJson(key, value);
|
|
2656
|
+
if (z.schema.isEnum(value.items)) return this.sqliteJson(key, value);
|
|
2657
|
+
}
|
|
2658
|
+
if (z.schema.isEnum(value)) return this.mapStringToSqliteColumn(key, value);
|
|
2625
2659
|
throw new AlephaError(`Unsupported schema for field '${tableName}.${fieldName}' (schema: ${JSON.stringify(value)})`);
|
|
2626
2660
|
};
|
|
2627
2661
|
mapStringToSqliteColumn = (key, value) => {
|
|
2628
|
-
if (
|
|
2662
|
+
if (z.schema.format(value) === "uuid") {
|
|
2629
2663
|
if (PG_PRIMARY_KEY in value) return pg.text(key).primaryKey().$defaultFn(() => randomUUID());
|
|
2630
2664
|
return pg.text(key);
|
|
2631
2665
|
}
|
|
2632
|
-
if (
|
|
2633
|
-
if (
|
|
2666
|
+
if (z.schema.format(value) === "binary") return this.sqliteJson(key, value);
|
|
2667
|
+
if (z.schema.format(value) === "date-time") {
|
|
2634
2668
|
if (PG_CREATED_AT in value) return this.sqliteDateTime(key, {}).default(sql$1`(unixepoch('subsec') * 1000)`);
|
|
2635
2669
|
if (PG_UPDATED_AT in value) return this.sqliteDateTime(key, {}).default(sql$1`(unixepoch('subsec') * 1000)`);
|
|
2636
2670
|
return this.sqliteDateTime(key, {});
|
|
2637
2671
|
}
|
|
2638
|
-
if (
|
|
2672
|
+
if (z.schema.format(value) === "date") return this.sqliteDate(key, {});
|
|
2639
2673
|
return pg.text(key);
|
|
2640
2674
|
};
|
|
2641
2675
|
sqliteJson = (name, document) => pg.customType({
|
|
@@ -2673,7 +2707,7 @@ const envSchema = databaseEnvSchema;
|
|
|
2673
2707
|
*/
|
|
2674
2708
|
const bunSqliteOptions = $atom({
|
|
2675
2709
|
name: "alepha.postgres.bun-sqlite.options",
|
|
2676
|
-
schema:
|
|
2710
|
+
schema: z.object({ path: z.string().describe("Filepath or :memory:. If empty, provider will use DATABASE_URL from env.").optional() }),
|
|
2677
2711
|
default: {}
|
|
2678
2712
|
});
|
|
2679
2713
|
/**
|
|
@@ -2776,7 +2810,7 @@ var BunSqliteProvider = class extends DatabaseProvider {
|
|
|
2776
2810
|
*/
|
|
2777
2811
|
var CloudflareD1Provider = class extends DatabaseProvider {
|
|
2778
2812
|
builder = $inject(SqliteModelBuilder);
|
|
2779
|
-
env = $env(
|
|
2813
|
+
env = $env(z.object({ DATABASE_URL: z.string().describe("Expect to be 'd1://binding'") }));
|
|
2780
2814
|
d1;
|
|
2781
2815
|
drizzleDb;
|
|
2782
2816
|
get name() {
|
|
@@ -2926,7 +2960,7 @@ var DbConnectionError = class DbConnectionError extends DbError {
|
|
|
2926
2960
|
/**
|
|
2927
2961
|
* @deprecated Use `pg.primaryKey()` instead.
|
|
2928
2962
|
*/
|
|
2929
|
-
const legacyIdSchema = pgAttr(pgAttr(pgAttr(
|
|
2963
|
+
const legacyIdSchema = pgAttr(pgAttr(pgAttr(z.integer(), PG_PRIMARY_KEY), PG_SERIAL), PG_DEFAULT);
|
|
2930
2964
|
//#endregion
|
|
2931
2965
|
//#region ../../src/orm/core/primitives/$seed.ts
|
|
2932
2966
|
/**
|