alepha 0.23.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 +247 -235
- 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 -1143
- package/dist/api/users/index.d.ts.map +1 -1
- package/dist/api/users/index.js +456 -392
- 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 +167 -155
- 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 +205 -442
- package/dist/cli/core/index.d.ts.map +1 -1
- package/dist/cli/core/index.js +259 -284
- 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 +8 -34
- package/dist/cli/i18n/index.d.ts.map +1 -1
- package/dist/cli/i18n/index.js +6 -6
- 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 +351 -404
- package/dist/cli/platform-lib/index.d.ts.map +1 -1
- package/dist/cli/platform-lib/index.js +218 -239
- 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 +83 -195
- 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 +27 -90
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +42 -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 -5
- package/dist/react/form/index.d.ts.map +1 -1
- package/dist/react/form/index.js +91 -56
- 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 +4 -5
- package/dist/react/i18n/index.d.ts.map +1 -1
- package/dist/react/i18n/index.js +2 -2
- 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 +60 -24
- package/dist/react/router/index.browser.js.map +1 -1
- package/dist/react/router/index.d.ts +378 -377
- package/dist/react/router/index.d.ts.map +1 -1
- package/dist/react/router/index.js +77 -41
- package/dist/react/router/index.js.map +1 -1
- package/dist/react/sitemap/index.d.ts +0 -1
- package/dist/react/sitemap/index.d.ts.map +1 -1
- package/dist/react/sitemap/index.js.map +1 -1
- 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 +198 -274
- package/dist/server/auth/index.d.ts.map +1 -1
- package/dist/server/auth/index.js +83 -621
- 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 +72 -5
- package/dist/server/cookies/index.d.ts.map +1 -1
- package/dist/server/cookies/index.js +103 -9
- 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 +116 -85
- package/dist/server/core/index.d.ts.map +1 -1
- package/dist/server/core/index.js +105 -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 +22 -35
- 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 -10
- 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 -26
- package/src/api/users/providers/RealmProvider.ts +0 -15
- 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 -24
- 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 -76
- 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 -39
- 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/tasks/BuildCloudflareTask.ts +103 -230
- package/src/cli/core/templates/apiHelloResponseSchemaTs.ts +4 -4
- package/src/cli/devtools/atoms/devtoolsOptions.ts +6 -6
- package/src/cli/i18n/atoms/i18nOptions.ts +8 -8
- 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 +13 -14
- 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 +11 -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/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 +2 -2
- package/src/react/form/__tests__/form-submitting-reactive.browser.spec.tsx +5 -5
- 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 +67 -47
- package/src/react/form/services/parseField.ts +66 -27
- package/src/react/i18n/__tests__/Localize.spec.tsx +1 -1
- package/src/react/i18n/providers/I18nProvider.ts +2 -2
- 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/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/primitives/$page.ts +2 -2
- package/src/react/router/providers/ReactBrowserProvider.ts +64 -13
- package/src/react/router/providers/ReactPageProvider.ts +26 -12
- package/src/react/router/providers/ReactServerProvider.ts +13 -15
- package/src/react/sitemap/__tests__/$sitemap.spec.ts +2 -2
- 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/index.ts +0 -3
- 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 +49 -48
- 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 +14 -14
- 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 +13 -5
- 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 +6 -14
- package/src/server/core/primitives/$action.ts +26 -36
- 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/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/src/server/auth/__tests__/authFederationClient.spec.ts +0 -40
- package/src/server/auth/__tests__/federationAssertion.spec.ts +0 -146
- package/src/server/auth/helpers/federationAssertion.ts +0 -74
- package/src/server/auth/primitives/$authFederationBroker.ts +0 -273
- package/src/server/auth/primitives/$authFederationClient.ts +0 -89
- /package/dist/orm/core/{chunk-B4FMCO8f.js → rolldown-runtime-B4FMCO8f.js} +0 -0
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
type Static,
|
|
9
9
|
type TObject,
|
|
10
10
|
type TSchema,
|
|
11
|
-
|
|
11
|
+
z,
|
|
12
12
|
} from "alepha";
|
|
13
13
|
import type { AskMethod } from "../helpers/Asker.ts";
|
|
14
14
|
import type { RunnerMethod } from "../helpers/Runner.ts";
|
|
@@ -74,9 +74,9 @@ export interface CommandPrimitiveOptions<
|
|
|
74
74
|
* @example
|
|
75
75
|
* ```ts
|
|
76
76
|
* $command({
|
|
77
|
-
* env:
|
|
78
|
-
* VERCEL_TOKEN:
|
|
79
|
-
* VERCEL_ORG_ID:
|
|
77
|
+
* env: z.object({
|
|
78
|
+
* VERCEL_TOKEN: z.text({ description: "Vercel API token" }),
|
|
79
|
+
* VERCEL_ORG_ID: z.text({ description: "Organization ID" }).optional(),
|
|
80
80
|
* }),
|
|
81
81
|
* handler: async ({ env }) => {
|
|
82
82
|
* // env.VERCEL_TOKEN is typed & guaranteed to exist
|
|
@@ -91,16 +91,16 @@ export interface CommandPrimitiveOptions<
|
|
|
91
91
|
* An optional TypeBox schema defining the arguments for the command.
|
|
92
92
|
*
|
|
93
93
|
* @example
|
|
94
|
-
* args:
|
|
94
|
+
* args: z.text()
|
|
95
95
|
* my-cli command <arg1: string>
|
|
96
96
|
*
|
|
97
|
-
* args:
|
|
97
|
+
* args: z.text().optional()
|
|
98
98
|
* my-cli command [arg1: string]
|
|
99
99
|
*
|
|
100
|
-
* args:
|
|
100
|
+
* args: z.tuple([z.text(), z.number()])
|
|
101
101
|
* my-cli command <arg1: string> <arg2: number>
|
|
102
102
|
*
|
|
103
|
-
* args:
|
|
103
|
+
* args: z.tuple([z.text(), z.number().optional()])
|
|
104
104
|
* my-cli command <arg1: string> [arg2: number]
|
|
105
105
|
*/
|
|
106
106
|
args?: A;
|
|
@@ -254,8 +254,8 @@ export class CommandPrimitive<
|
|
|
254
254
|
A extends TSchema = TSchema,
|
|
255
255
|
E extends TObject = TObject,
|
|
256
256
|
> extends Primitive<CommandPrimitiveOptions<T, A, E>> {
|
|
257
|
-
public readonly flags = this.options.flags ??
|
|
258
|
-
public readonly env = this.options.env ??
|
|
257
|
+
public readonly flags = this.options.flags ?? z.object({});
|
|
258
|
+
public readonly env = this.options.env ?? z.object({});
|
|
259
259
|
public readonly aliases = this.options.aliases ?? [];
|
|
260
260
|
|
|
261
261
|
protected onInit() {
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
type TSchema,
|
|
13
13
|
type TUnion,
|
|
14
14
|
TypeBoxError,
|
|
15
|
-
|
|
15
|
+
z,
|
|
16
16
|
} from "alepha";
|
|
17
17
|
import { $logger, ConsoleColorProvider } from "alepha/logger";
|
|
18
18
|
import { CommandError } from "../errors/CommandError.ts";
|
|
@@ -27,12 +27,12 @@ import {
|
|
|
27
27
|
|
|
28
28
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
29
29
|
|
|
30
|
-
const envSchema =
|
|
31
|
-
CLI_NAME:
|
|
30
|
+
const envSchema = z.object({
|
|
31
|
+
CLI_NAME: z.text({
|
|
32
32
|
default: "cli",
|
|
33
33
|
description: "Name of the CLI application.",
|
|
34
34
|
}),
|
|
35
|
-
CLI_DESCRIPTION:
|
|
35
|
+
CLI_DESCRIPTION: z.text({
|
|
36
36
|
default: "",
|
|
37
37
|
description: "Description of the CLI application.",
|
|
38
38
|
}),
|
|
@@ -47,22 +47,16 @@ declare module "alepha" {
|
|
|
47
47
|
*/
|
|
48
48
|
export const cliOptions = $atom({
|
|
49
49
|
name: "alepha.command.cli.options",
|
|
50
|
-
schema:
|
|
51
|
-
name:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
),
|
|
61
|
-
argv: t.optional(
|
|
62
|
-
t.array(t.string(), {
|
|
63
|
-
description: "Command line arguments to parse.",
|
|
64
|
-
}),
|
|
65
|
-
),
|
|
50
|
+
schema: z.object({
|
|
51
|
+
name: z.string().describe("Name of the CLI application.").optional(),
|
|
52
|
+
description: z
|
|
53
|
+
.string()
|
|
54
|
+
.describe("Description of the CLI application.")
|
|
55
|
+
.optional(),
|
|
56
|
+
argv: z
|
|
57
|
+
.array(z.string())
|
|
58
|
+
.describe("Command line arguments to parse.")
|
|
59
|
+
.optional(),
|
|
66
60
|
}),
|
|
67
61
|
default: {},
|
|
68
62
|
});
|
|
@@ -94,7 +88,7 @@ declare module "alepha" {
|
|
|
94
88
|
* build = $command({
|
|
95
89
|
* name: "build",
|
|
96
90
|
* description: "Build the project",
|
|
97
|
-
* flags:
|
|
91
|
+
* flags: z.object({ watch: z.boolean().optional() }),
|
|
98
92
|
* handler: async ({ flags }) => { ... }
|
|
99
93
|
* });
|
|
100
94
|
* }
|
|
@@ -143,14 +137,14 @@ export class CliProvider {
|
|
|
143
137
|
help: {
|
|
144
138
|
aliases: ["h", "help"],
|
|
145
139
|
description: "Show this help message",
|
|
146
|
-
schema:
|
|
140
|
+
schema: z.boolean(),
|
|
147
141
|
},
|
|
148
142
|
verbose: {
|
|
149
143
|
// No `-v` alias — it collides with `--version` on the root command.
|
|
150
144
|
aliases: ["verbose"],
|
|
151
145
|
description:
|
|
152
|
-
"Verbose output:
|
|
153
|
-
schema:
|
|
146
|
+
"Verbose output: trace-level logs (framework internals) in pretty format. Task output already streams by default.",
|
|
147
|
+
schema: z.boolean(),
|
|
154
148
|
},
|
|
155
149
|
};
|
|
156
150
|
|
|
@@ -182,11 +176,17 @@ export class CliProvider {
|
|
|
182
176
|
{ strict: false }, // Don't throw for command-specific flags
|
|
183
177
|
);
|
|
184
178
|
|
|
185
|
-
// `--verbose` →
|
|
186
|
-
//
|
|
187
|
-
//
|
|
188
|
-
|
|
189
|
-
|
|
179
|
+
// `--verbose` → raise the logger to trace + pretty format via state
|
|
180
|
+
// (read live by Logger). Task output already streams to the terminal;
|
|
181
|
+
// this additionally surfaces the framework's own trace/debug logs.
|
|
182
|
+
//
|
|
183
|
+
// An agent session (Claude Code sets CLAUDECODE) implies verbose: the
|
|
184
|
+
// compact `cli` format is tuned for a human watching a terminal, but an
|
|
185
|
+
// agent benefits from the full module/context and internal logs — same
|
|
186
|
+
// as if `--verbose` were passed.
|
|
187
|
+
const verbose = globalFlags.verbose || !!this.alepha.env.CLAUDECODE;
|
|
188
|
+
if (verbose) {
|
|
189
|
+
this.alepha.store.set("alepha.logger.level", "trace");
|
|
190
190
|
this.alepha.store.set("alepha.logger.format", "pretty");
|
|
191
191
|
}
|
|
192
192
|
|
|
@@ -532,6 +532,42 @@ export class CliProvider {
|
|
|
532
532
|
return { ...this.globalFlags };
|
|
533
533
|
}
|
|
534
534
|
|
|
535
|
+
/**
|
|
536
|
+
* Read a schema's metadata (`title`, `description`, `aliases`, `alias`, …).
|
|
537
|
+
*
|
|
538
|
+
* Under zod these options live on the schema's `.meta()` registry rather than
|
|
539
|
+
* as direct properties (typebox), and they sit on the INNER schema — so any
|
|
540
|
+
* optional / nullable / default wrappers are peeled first.
|
|
541
|
+
*/
|
|
542
|
+
protected schemaMeta(schema: TSchema | undefined): Record<string, any> {
|
|
543
|
+
if (!schema) return {};
|
|
544
|
+
const base = z.schema.unwrap(schema) as any;
|
|
545
|
+
return (typeof base?.meta === "function" ? base.meta() : undefined) ?? {};
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* Build flag definitions (key, aliases, description, schema) from a flags
|
|
550
|
+
* object schema. Centralises the metadata reading so every call-site (parsing,
|
|
551
|
+
* arg-splitting, help) extracts aliases/descriptions the same way.
|
|
552
|
+
*/
|
|
553
|
+
protected extractFlagDefs(schema: TObject): Array<{
|
|
554
|
+
key: string;
|
|
555
|
+
aliases: string[];
|
|
556
|
+
description?: string;
|
|
557
|
+
schema: TSchema;
|
|
558
|
+
}> {
|
|
559
|
+
return Object.entries(schema.properties).map(([key, value]) => {
|
|
560
|
+
const meta = this.schemaMeta(value as TSchema);
|
|
561
|
+
const extra: string[] = meta.aliases ?? (meta.alias ? [meta.alias] : []);
|
|
562
|
+
return {
|
|
563
|
+
key,
|
|
564
|
+
aliases: [key, ...extra],
|
|
565
|
+
description: meta.description,
|
|
566
|
+
schema: value as TSchema,
|
|
567
|
+
};
|
|
568
|
+
});
|
|
569
|
+
}
|
|
570
|
+
|
|
535
571
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
536
572
|
// Parsing (Flags, Args, Env)
|
|
537
573
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
@@ -545,17 +581,7 @@ export class CliProvider {
|
|
|
545
581
|
options: { modeEnabled?: boolean } = {},
|
|
546
582
|
): Record<string, any> {
|
|
547
583
|
const { modeEnabled = false } = options;
|
|
548
|
-
const flagDefs =
|
|
549
|
-
key,
|
|
550
|
-
aliases: [
|
|
551
|
-
key,
|
|
552
|
-
...((value as any).aliases ??
|
|
553
|
-
((value as any).alias ? [(value as any).alias] : undefined) ??
|
|
554
|
-
[]),
|
|
555
|
-
],
|
|
556
|
-
description: (value as any).description,
|
|
557
|
-
schema: value,
|
|
558
|
-
}));
|
|
584
|
+
const flagDefs = this.extractFlagDefs(schema);
|
|
559
585
|
|
|
560
586
|
// Add mode flags if mode is enabled (they're parsed elsewhere by parseModeFlag)
|
|
561
587
|
if (modeEnabled) {
|
|
@@ -563,7 +589,7 @@ export class CliProvider {
|
|
|
563
589
|
key: "__mode__",
|
|
564
590
|
aliases: ["mode", "m"],
|
|
565
591
|
description: undefined,
|
|
566
|
-
schema:
|
|
592
|
+
schema: z.string(),
|
|
567
593
|
});
|
|
568
594
|
}
|
|
569
595
|
|
|
@@ -591,11 +617,13 @@ export class CliProvider {
|
|
|
591
617
|
}
|
|
592
618
|
|
|
593
619
|
// apply manually defaults for optional properties that have defaults
|
|
594
|
-
for (const [key, value] of Object.entries(
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
620
|
+
for (const [key, value] of Object.entries(
|
|
621
|
+
schema.properties as Record<string, TSchema>,
|
|
622
|
+
)) {
|
|
623
|
+
if (!(key in parsed)) {
|
|
624
|
+
const def = z.schema.getDefault(value);
|
|
625
|
+
if (def !== undefined) {
|
|
626
|
+
parsed[key] = def;
|
|
599
627
|
}
|
|
600
628
|
}
|
|
601
629
|
}
|
|
@@ -622,17 +650,22 @@ export class CliProvider {
|
|
|
622
650
|
const result: Record<string, any> = {};
|
|
623
651
|
const missing: string[] = [];
|
|
624
652
|
|
|
625
|
-
for (const [key, propSchema] of Object.entries(
|
|
653
|
+
for (const [key, propSchema] of Object.entries(
|
|
654
|
+
schema.properties as Record<string, TSchema>,
|
|
655
|
+
)) {
|
|
626
656
|
const value = process.env[key];
|
|
627
657
|
|
|
628
658
|
if (value !== undefined) {
|
|
629
659
|
result[key] = value;
|
|
630
|
-
} else if ("default" in propSchema) {
|
|
631
|
-
result[key] = propSchema.default;
|
|
632
|
-
} else if (t.schema.isOptional(propSchema)) {
|
|
633
|
-
// Optional with no default — leave undefined
|
|
634
660
|
} else {
|
|
635
|
-
|
|
661
|
+
const def = z.schema.getDefault(propSchema);
|
|
662
|
+
if (def !== undefined) {
|
|
663
|
+
result[key] = def;
|
|
664
|
+
} else if (z.schema.isOptional(propSchema)) {
|
|
665
|
+
// Optional with no default — leave undefined
|
|
666
|
+
} else {
|
|
667
|
+
missing.push(key);
|
|
668
|
+
}
|
|
636
669
|
}
|
|
637
670
|
}
|
|
638
671
|
|
|
@@ -711,7 +744,7 @@ export class CliProvider {
|
|
|
711
744
|
if (!arg.startsWith("-")) continue;
|
|
712
745
|
|
|
713
746
|
const [rawKey, ...valueParts] = arg.replace(/^-{1,2}/, "").split("=");
|
|
714
|
-
|
|
747
|
+
const value = valueParts.join("=");
|
|
715
748
|
|
|
716
749
|
const def = flagDefs.find((d) => d.aliases.includes(rawKey));
|
|
717
750
|
if (!def) {
|
|
@@ -721,12 +754,16 @@ export class CliProvider {
|
|
|
721
754
|
continue;
|
|
722
755
|
}
|
|
723
756
|
|
|
757
|
+
// Resolve the underlying schema (peel optional/nullable/default) so flags
|
|
758
|
+
// like `z.boolean().optional()` are still recognised as booleans.
|
|
759
|
+
const base = z.schema.unwrap(def.schema);
|
|
760
|
+
|
|
724
761
|
// Check if schema is a union containing boolean (allows flag without value)
|
|
725
762
|
const isUnionWithBoolean =
|
|
726
|
-
|
|
727
|
-
(
|
|
763
|
+
z.schema.isUnion(base) &&
|
|
764
|
+
(base as TUnion).anyOf.some((s) => z.schema.isBoolean(s));
|
|
728
765
|
|
|
729
|
-
if (
|
|
766
|
+
if (z.schema.isBoolean(base)) {
|
|
730
767
|
result[def.key] = true;
|
|
731
768
|
} else if (isUnionWithBoolean && !value) {
|
|
732
769
|
// Union with boolean: --flag without value → true
|
|
@@ -741,29 +778,12 @@ export class CliProvider {
|
|
|
741
778
|
}
|
|
742
779
|
} else if (value) {
|
|
743
780
|
// Value provided via --flag=value syntax
|
|
744
|
-
|
|
745
|
-
if (t.schema.isObject(def.schema) || t.schema.isArray(def.schema)) {
|
|
746
|
-
result[def.key] = JSON.parse(value);
|
|
747
|
-
} else {
|
|
748
|
-
result[def.key] = value;
|
|
749
|
-
}
|
|
750
|
-
} catch {
|
|
751
|
-
throw new CommandError(`Invalid JSON value for flag --${rawKey}`);
|
|
752
|
-
}
|
|
781
|
+
result[def.key] = this.castFlagValue(value, base, rawKey);
|
|
753
782
|
} else {
|
|
754
783
|
// Check for space-separated value: --flag value
|
|
755
784
|
const nextArg = argv[i + 1];
|
|
756
785
|
if (nextArg && !nextArg.startsWith("-")) {
|
|
757
|
-
|
|
758
|
-
try {
|
|
759
|
-
if (t.schema.isObject(def.schema) || t.schema.isArray(def.schema)) {
|
|
760
|
-
result[def.key] = JSON.parse(value);
|
|
761
|
-
} else {
|
|
762
|
-
result[def.key] = value;
|
|
763
|
-
}
|
|
764
|
-
} catch {
|
|
765
|
-
throw new CommandError(`Invalid JSON value for flag --${rawKey}`);
|
|
766
|
-
}
|
|
786
|
+
result[def.key] = this.castFlagValue(nextArg, base, rawKey);
|
|
767
787
|
} else {
|
|
768
788
|
throw new CommandError(`Flag --${rawKey} requires a value.`);
|
|
769
789
|
}
|
|
@@ -773,6 +793,29 @@ export class CliProvider {
|
|
|
773
793
|
return result;
|
|
774
794
|
}
|
|
775
795
|
|
|
796
|
+
/**
|
|
797
|
+
* Convert a raw flag value string into the value its schema expects.
|
|
798
|
+
*
|
|
799
|
+
* zod no longer coerces, so scalar values (number / integer / boolean) are
|
|
800
|
+
* cast + validated via {@link parseArgumentValue} (same path as positional
|
|
801
|
+
* args); object / array / record values are JSON-parsed. `schema` is expected
|
|
802
|
+
* to already be unwrapped of optional/nullable/default.
|
|
803
|
+
*/
|
|
804
|
+
protected castFlagValue(value: string, schema: TSchema, rawKey: string): any {
|
|
805
|
+
if (
|
|
806
|
+
z.schema.isObject(schema) ||
|
|
807
|
+
z.schema.isArray(schema) ||
|
|
808
|
+
z.schema.isRecord(schema)
|
|
809
|
+
) {
|
|
810
|
+
try {
|
|
811
|
+
return JSON.parse(value);
|
|
812
|
+
} catch {
|
|
813
|
+
throw new CommandError(`Invalid JSON value for flag --${rawKey}`);
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
return this.parseArgumentValue(value, schema);
|
|
817
|
+
}
|
|
818
|
+
|
|
776
819
|
/**
|
|
777
820
|
* Get indices of argv elements consumed by flags (for separating args from flags)
|
|
778
821
|
*/
|
|
@@ -794,18 +837,17 @@ export class CliProvider {
|
|
|
794
837
|
const def = flagDefs.find((d) => d.aliases.includes(rawKey));
|
|
795
838
|
if (!def) continue;
|
|
796
839
|
|
|
840
|
+
// Peel optional/nullable/default so boolean flags are recognised.
|
|
841
|
+
const base = z.schema.unwrap(def.schema);
|
|
842
|
+
|
|
797
843
|
// Check if schema is a union containing boolean
|
|
798
844
|
const isUnionWithBoolean =
|
|
799
|
-
|
|
800
|
-
(
|
|
845
|
+
z.schema.isUnion(base) &&
|
|
846
|
+
(base as TUnion).anyOf.some((s) => z.schema.isBoolean(s));
|
|
801
847
|
|
|
802
848
|
// If not a boolean flag and no = value, the next arg is consumed as the value
|
|
803
849
|
// Exception: union with boolean can work without a value
|
|
804
|
-
if (
|
|
805
|
-
!t.schema.isBoolean(def.schema) &&
|
|
806
|
-
!isUnionWithBoolean &&
|
|
807
|
-
!hasEqualValue
|
|
808
|
-
) {
|
|
850
|
+
if (!z.schema.isBoolean(base) && !isUnionWithBoolean && !hasEqualValue) {
|
|
809
851
|
const nextArg = argv[i + 1];
|
|
810
852
|
if (nextArg && !nextArg.startsWith("-")) {
|
|
811
853
|
consumed.add(i + 1);
|
|
@@ -833,18 +875,7 @@ export class CliProvider {
|
|
|
833
875
|
}
|
|
834
876
|
|
|
835
877
|
// Get indices consumed by flags (including space-separated values)
|
|
836
|
-
const flagDefs = flagSchema
|
|
837
|
-
? Object.entries(flagSchema.properties).map(([key, value]) => ({
|
|
838
|
-
key,
|
|
839
|
-
aliases: [
|
|
840
|
-
key,
|
|
841
|
-
...((value as any).aliases ??
|
|
842
|
-
((value as any).alias ? [(value as any).alias] : undefined) ??
|
|
843
|
-
[]),
|
|
844
|
-
],
|
|
845
|
-
schema: value as TSchema,
|
|
846
|
-
}))
|
|
847
|
-
: [];
|
|
878
|
+
const flagDefs = flagSchema ? this.extractFlagDefs(flagSchema) : [];
|
|
848
879
|
const consumedIndices = this.getFlagConsumedIndices(argv, flagDefs);
|
|
849
880
|
|
|
850
881
|
// Extract positional arguments (non-flag arguments that aren't consumed as flag values)
|
|
@@ -855,21 +886,21 @@ export class CliProvider {
|
|
|
855
886
|
const argsOnly = isRootCommand ? positionalArgs : positionalArgs.slice(1);
|
|
856
887
|
|
|
857
888
|
try {
|
|
858
|
-
if (
|
|
859
|
-
// Handle optional args:
|
|
889
|
+
if (z.schema.isOptional(schema)) {
|
|
890
|
+
// Handle optional args: z.text().optional()
|
|
860
891
|
if (argsOnly.length === 0) {
|
|
861
892
|
return undefined;
|
|
862
893
|
}
|
|
863
894
|
return this.parseArgumentValue(argsOnly[0], schema);
|
|
864
|
-
} else if (
|
|
865
|
-
// Handle tuple args:
|
|
895
|
+
} else if (z.schema.isTuple(schema) && schema.items) {
|
|
896
|
+
// Handle tuple args: z.tuple([z.text(), z.number()])
|
|
866
897
|
const result: any[] = [];
|
|
867
898
|
const items = schema.items;
|
|
868
899
|
for (let i = 0; i < items.length; i++) {
|
|
869
900
|
const itemSchema = items[i];
|
|
870
901
|
if (i < argsOnly.length) {
|
|
871
902
|
result.push(this.parseArgumentValue(argsOnly[i], itemSchema));
|
|
872
|
-
} else if (
|
|
903
|
+
} else if (z.schema.isOptional(itemSchema)) {
|
|
873
904
|
result.push(undefined);
|
|
874
905
|
} else {
|
|
875
906
|
throw new CommandError(
|
|
@@ -879,7 +910,7 @@ export class CliProvider {
|
|
|
879
910
|
}
|
|
880
911
|
return result;
|
|
881
912
|
} else {
|
|
882
|
-
// Handle single arg:
|
|
913
|
+
// Handle single arg: z.text(), z.number(), etc.
|
|
883
914
|
if (argsOnly.length === 0) {
|
|
884
915
|
throw new CommandError("Missing required argument");
|
|
885
916
|
}
|
|
@@ -897,22 +928,22 @@ export class CliProvider {
|
|
|
897
928
|
* Convert a string argument value to the appropriate type based on schema
|
|
898
929
|
*/
|
|
899
930
|
protected parseArgumentValue(value: string, schema: TSchema): any {
|
|
900
|
-
if (
|
|
931
|
+
if (z.schema.isString(schema)) {
|
|
901
932
|
return value;
|
|
902
933
|
}
|
|
903
934
|
|
|
904
|
-
if (
|
|
935
|
+
if (z.schema.isNumber(schema) || z.schema.isInteger(schema)) {
|
|
905
936
|
const num = Number(value);
|
|
906
937
|
if (Number.isNaN(num)) {
|
|
907
938
|
throw new CommandError(`Expected number, got "${value}"`);
|
|
908
939
|
}
|
|
909
|
-
if (
|
|
940
|
+
if (z.schema.isInteger(schema) && !Number.isInteger(num)) {
|
|
910
941
|
throw new CommandError(`Expected integer, got "${value}"`);
|
|
911
942
|
}
|
|
912
943
|
return num;
|
|
913
944
|
}
|
|
914
945
|
|
|
915
|
-
if (
|
|
946
|
+
if (z.schema.isBoolean(schema)) {
|
|
916
947
|
const lower = value.toLowerCase();
|
|
917
948
|
if (lower === "true" || lower === "1") return true;
|
|
918
949
|
if (lower === "false" || lower === "0") return false;
|
|
@@ -935,18 +966,18 @@ export class CliProvider {
|
|
|
935
966
|
return "";
|
|
936
967
|
}
|
|
937
968
|
|
|
938
|
-
if (
|
|
969
|
+
if (z.schema.isOptional(schema)) {
|
|
939
970
|
const typeName = this.getTypeName(schema);
|
|
940
|
-
const key =
|
|
971
|
+
const key = this.schemaMeta(schema).title ?? "arg1";
|
|
941
972
|
return ` [${key}${typeName}]`;
|
|
942
973
|
}
|
|
943
974
|
|
|
944
|
-
if (
|
|
975
|
+
if (z.schema.isTuple(schema) && schema.items) {
|
|
945
976
|
const items = schema.items;
|
|
946
977
|
const args = items.map((item, index) => {
|
|
947
978
|
const argName = `arg${index + 1}`;
|
|
948
979
|
const typeName = this.getTypeName(item);
|
|
949
|
-
if (
|
|
980
|
+
if (z.schema.isOptional(item)) {
|
|
950
981
|
return `[${argName}${typeName}]`;
|
|
951
982
|
}
|
|
952
983
|
return `<${argName}${typeName}>`;
|
|
@@ -955,7 +986,7 @@ export class CliProvider {
|
|
|
955
986
|
}
|
|
956
987
|
|
|
957
988
|
const typeName = this.getTypeName(schema);
|
|
958
|
-
const key =
|
|
989
|
+
const key = this.schemaMeta(schema).title ?? "arg1";
|
|
959
990
|
return ` <${key}${typeName}>`;
|
|
960
991
|
}
|
|
961
992
|
|
|
@@ -965,11 +996,15 @@ export class CliProvider {
|
|
|
965
996
|
protected getTypeName(schema: TSchema): string {
|
|
966
997
|
if (!schema) return "";
|
|
967
998
|
|
|
968
|
-
//
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
999
|
+
// Peel optional/nullable/default before inspecting the scalar type.
|
|
1000
|
+
const base = z.schema.unwrap(schema);
|
|
1001
|
+
|
|
1002
|
+
// Order matters: under zod an integer IS a number (format "safeint"), so the
|
|
1003
|
+
// narrower integer check must come before the number check.
|
|
1004
|
+
if (z.schema.isString(base)) return "";
|
|
1005
|
+
if (z.schema.isInteger(base)) return ": integer";
|
|
1006
|
+
if (z.schema.isNumber(base)) return ": number";
|
|
1007
|
+
if (z.schema.isBoolean(base)) return ": boolean";
|
|
973
1008
|
|
|
974
1009
|
return "";
|
|
975
1010
|
}
|
|
@@ -981,6 +1016,11 @@ export class CliProvider {
|
|
|
981
1016
|
* If omitted, shows general CLI help with all commands.
|
|
982
1017
|
*/
|
|
983
1018
|
public printHelp(command?: CommandPrimitive<any>): void {
|
|
1019
|
+
// Help is a document, not a log stream: render bare lines (no timestamp
|
|
1020
|
+
// or level prefix). Embedded colors live in the message itself, so they
|
|
1021
|
+
// survive the `raw` formatter.
|
|
1022
|
+
this.alepha.store.set("alepha.logger.format", "raw");
|
|
1023
|
+
|
|
984
1024
|
const cliName = this.name || "cli";
|
|
985
1025
|
const c = this.color;
|
|
986
1026
|
this.log.info(""); // Newline
|
|
@@ -1028,16 +1068,9 @@ export class CliProvider {
|
|
|
1028
1068
|
this.log.info(c.set("WHITE_BOLD", "Flags:"));
|
|
1029
1069
|
|
|
1030
1070
|
const flags = [
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
aliases: [
|
|
1035
|
-
key,
|
|
1036
|
-
...((value as any).aliases ??
|
|
1037
|
-
((value as any).alias ? [(value as any).alias] : [])),
|
|
1038
|
-
],
|
|
1039
|
-
description: (value as any).description,
|
|
1040
|
-
})),
|
|
1071
|
+
// Read aliases/description from the schema's `.meta()` registry (zod),
|
|
1072
|
+
// not as direct schema properties (typebox) — see extractFlagDefs.
|
|
1073
|
+
...this.extractFlagDefs(command.flags),
|
|
1041
1074
|
// Add --mode flag if command has mode option enabled
|
|
1042
1075
|
...(command.options.mode
|
|
1043
1076
|
? [
|
|
@@ -1048,7 +1081,7 @@ export class CliProvider {
|
|
|
1048
1081
|
typeof command.options.mode === "string"
|
|
1049
1082
|
? `Environment mode - loads .env.{mode} (default: ${command.options.mode})`
|
|
1050
1083
|
: "Environment mode (e.g., production, staging) - loads .env.{mode}",
|
|
1051
|
-
schema:
|
|
1084
|
+
schema: z.string() as TSchema,
|
|
1052
1085
|
},
|
|
1053
1086
|
]
|
|
1054
1087
|
: []),
|
|
@@ -1082,7 +1115,7 @@ export class CliProvider {
|
|
|
1082
1115
|
this.log.info(c.set("WHITE_BOLD", "Env:"));
|
|
1083
1116
|
const maxEnvLength = Math.max(...envVars.map(([key]) => key.length));
|
|
1084
1117
|
for (const [key, schema] of envVars) {
|
|
1085
|
-
const isOptional =
|
|
1118
|
+
const isOptional = z.schema.isOptional(schema as TSchema);
|
|
1086
1119
|
const description = (schema as any).description ?? "";
|
|
1087
1120
|
const optionalStr = isOptional
|
|
1088
1121
|
? c.set("GREY_DARK", " (optional)")
|
|
@@ -1129,18 +1162,10 @@ export class CliProvider {
|
|
|
1129
1162
|
|
|
1130
1163
|
// In general help, also show root command flags
|
|
1131
1164
|
const rootCommand = this.commands.find((cmd) => cmd.name === "");
|
|
1165
|
+
// Read aliases/description from the schema's `.meta()` registry (zod),
|
|
1166
|
+
// not as direct schema properties (typebox) — see extractFlagDefs.
|
|
1132
1167
|
const rootFlags = rootCommand
|
|
1133
|
-
?
|
|
1134
|
-
key,
|
|
1135
|
-
aliases: [
|
|
1136
|
-
key,
|
|
1137
|
-
...((value as any).aliases ??
|
|
1138
|
-
((value as any).alias ? [(value as any).alias] : undefined) ??
|
|
1139
|
-
[]),
|
|
1140
|
-
],
|
|
1141
|
-
description: (value as any).description,
|
|
1142
|
-
schema: value as TSchema,
|
|
1143
|
-
}))
|
|
1168
|
+
? this.extractFlagDefs(rootCommand.flags)
|
|
1144
1169
|
: [];
|
|
1145
1170
|
|
|
1146
1171
|
const globalFlags = [
|
|
@@ -1171,18 +1196,18 @@ export class CliProvider {
|
|
|
1171
1196
|
|
|
1172
1197
|
const c = this.color;
|
|
1173
1198
|
|
|
1174
|
-
if (
|
|
1199
|
+
if (z.schema.isOptional(schema)) {
|
|
1175
1200
|
const typeName = this.getTypeName(schema);
|
|
1176
|
-
const key =
|
|
1201
|
+
const key = this.schemaMeta(schema).title ?? "arg1";
|
|
1177
1202
|
return ` ${c.set("GREY_DARK", `[${key}${typeName}]`)}`;
|
|
1178
1203
|
}
|
|
1179
1204
|
|
|
1180
|
-
if (
|
|
1205
|
+
if (z.schema.isTuple(schema) && schema.items) {
|
|
1181
1206
|
const items = schema.items;
|
|
1182
1207
|
const args = items.map((item, index) => {
|
|
1183
1208
|
const argName = `arg${index + 1}`;
|
|
1184
1209
|
const typeName = this.getTypeName(item);
|
|
1185
|
-
if (
|
|
1210
|
+
if (z.schema.isOptional(item)) {
|
|
1186
1211
|
return c.set("GREY_DARK", `[${argName}${typeName}]`);
|
|
1187
1212
|
}
|
|
1188
1213
|
return c.set("CYAN", `<${argName}${typeName}>`);
|
|
@@ -1191,7 +1216,7 @@ export class CliProvider {
|
|
|
1191
1216
|
}
|
|
1192
1217
|
|
|
1193
1218
|
const typeName = this.getTypeName(schema);
|
|
1194
|
-
const key =
|
|
1219
|
+
const key = this.schemaMeta(schema).title ?? "arg1";
|
|
1195
1220
|
return ` ${c.set("CYAN", `<${key}${typeName}>`)}`;
|
|
1196
1221
|
}
|
|
1197
1222
|
|
|
@@ -1298,30 +1323,27 @@ export class CliProvider {
|
|
|
1298
1323
|
protected getEnumValues(schema: TSchema): string[] | undefined {
|
|
1299
1324
|
if (!schema) return undefined;
|
|
1300
1325
|
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
schema.
|
|
1306
|
-
|
|
1307
|
-
|
|
1326
|
+
const base = z.schema.unwrap(schema);
|
|
1327
|
+
|
|
1328
|
+
// A zod enum (`z.enum`).
|
|
1329
|
+
if (z.schema.isEnum(base)) {
|
|
1330
|
+
const values = z.schema.enumValues(base);
|
|
1331
|
+
return values.length > 0 && values.every((v) => typeof v === "string")
|
|
1332
|
+
? values
|
|
1333
|
+
: undefined;
|
|
1308
1334
|
}
|
|
1309
1335
|
|
|
1310
|
-
//
|
|
1311
|
-
if (
|
|
1312
|
-
const
|
|
1336
|
+
// A union of string literals (alternative enum representation).
|
|
1337
|
+
if (z.schema.isUnion(base)) {
|
|
1338
|
+
const variants = (base as any).anyOf ?? [];
|
|
1313
1339
|
const values: string[] = [];
|
|
1314
1340
|
|
|
1315
|
-
for (const variant of
|
|
1316
|
-
|
|
1317
|
-
if (
|
|
1318
|
-
|
|
1319
|
-
"const" in variant &&
|
|
1320
|
-
typeof variant.const === "string"
|
|
1321
|
-
) {
|
|
1322
|
-
values.push(variant.const);
|
|
1341
|
+
for (const variant of variants) {
|
|
1342
|
+
const value = (variant as any).value; // zod literal value
|
|
1343
|
+
if (z.schema.isLiteral(variant) && typeof value === "string") {
|
|
1344
|
+
values.push(value);
|
|
1323
1345
|
} else {
|
|
1324
|
-
// Not all variants are string literals, not a simple enum
|
|
1346
|
+
// Not all variants are string literals, not a simple enum.
|
|
1325
1347
|
return undefined;
|
|
1326
1348
|
}
|
|
1327
1349
|
}
|