alepha 0.15.1 → 0.15.2
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/dist/api/audits/index.d.ts +342 -365
- package/dist/api/audits/index.d.ts.map +1 -1
- package/dist/api/audits/index.js +10 -33
- package/dist/api/audits/index.js.map +1 -1
- package/dist/api/files/index.d.ts +180 -173
- package/dist/api/files/index.d.ts.map +1 -1
- package/dist/api/files/index.js +10 -3
- package/dist/api/files/index.js.map +1 -1
- package/dist/api/jobs/index.d.ts +162 -155
- package/dist/api/jobs/index.d.ts.map +1 -1
- package/dist/api/jobs/index.js +10 -3
- package/dist/api/jobs/index.js.map +1 -1
- package/dist/api/keys/index.d.ts +413 -0
- package/dist/api/keys/index.d.ts.map +1 -0
- package/dist/api/keys/index.js +476 -0
- package/dist/api/keys/index.js.map +1 -0
- package/dist/api/notifications/index.d.ts +10 -4
- package/dist/api/notifications/index.d.ts.map +1 -1
- package/dist/api/notifications/index.js +10 -4
- package/dist/api/notifications/index.js.map +1 -1
- package/dist/api/parameters/index.d.ts +294 -301
- package/dist/api/parameters/index.d.ts.map +1 -1
- package/dist/api/parameters/index.js +30 -37
- package/dist/api/parameters/index.js.map +1 -1
- package/dist/api/users/index.d.ts +1079 -769
- package/dist/api/users/index.d.ts.map +1 -1
- package/dist/api/users/index.js +2534 -218
- package/dist/api/users/index.js.map +1 -1
- package/dist/api/verifications/index.d.ts +10 -4
- package/dist/api/verifications/index.d.ts.map +1 -1
- package/dist/api/verifications/index.js +12 -4
- package/dist/api/verifications/index.js.map +1 -1
- package/dist/batch/index.d.ts +20 -40
- package/dist/batch/index.d.ts.map +1 -1
- package/dist/batch/index.js +31 -44
- package/dist/batch/index.js.map +1 -1
- package/dist/bucket/index.d.ts +432 -8
- package/dist/bucket/index.d.ts.map +1 -1
- package/dist/bucket/index.js +1856 -12
- package/dist/bucket/index.js.map +1 -1
- package/dist/cache/core/index.d.ts +179 -7
- package/dist/cache/core/index.d.ts.map +1 -1
- package/dist/cache/core/index.js +213 -7
- package/dist/cache/core/index.js.map +1 -1
- package/dist/cache/redis/index.d.ts +1 -0
- package/dist/cache/redis/index.d.ts.map +1 -1
- package/dist/cache/redis/index.js +4 -0
- package/dist/cache/redis/index.js.map +1 -1
- package/dist/cli/index.d.ts +488 -5612
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2326 -311
- package/dist/cli/index.js.map +1 -1
- package/dist/command/index.d.ts +194 -46
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +1995 -60
- package/dist/command/index.js.map +1 -1
- package/dist/core/index.browser.js +42 -19
- package/dist/core/index.browser.js.map +1 -1
- package/dist/core/index.d.ts +34 -13
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +62 -19
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.native.js +42 -19
- package/dist/core/index.native.js.map +1 -1
- package/dist/datetime/index.d.ts +15 -0
- package/dist/datetime/index.d.ts.map +1 -1
- package/dist/datetime/index.js +15 -0
- package/dist/datetime/index.js.map +1 -1
- package/dist/email/index.d.ts +315 -20
- package/dist/email/index.d.ts.map +1 -1
- package/dist/email/index.js +1852 -7
- package/dist/email/index.js.map +1 -1
- package/dist/fake/index.d.ts +90 -8
- package/dist/fake/index.d.ts.map +1 -1
- package/dist/fake/index.js +91 -20
- package/dist/fake/index.js.map +1 -1
- package/dist/lock/core/index.d.ts +11 -4
- package/dist/lock/core/index.d.ts.map +1 -1
- package/dist/lock/core/index.js +11 -4
- package/dist/lock/core/index.js.map +1 -1
- package/dist/logger/index.d.ts +17 -66
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +14 -63
- package/dist/logger/index.js.map +1 -1
- package/dist/mcp/index.d.ts +15 -35
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +12 -35
- package/dist/mcp/index.js.map +1 -1
- package/dist/orm/index.browser.js +3 -3
- package/dist/orm/index.browser.js.map +1 -1
- package/dist/orm/index.bun.js +7 -4
- package/dist/orm/index.bun.js.map +1 -1
- package/dist/orm/index.d.ts +514 -540
- package/dist/orm/index.d.ts.map +1 -1
- package/dist/orm/index.js +24 -49
- package/dist/orm/index.js.map +1 -1
- package/dist/queue/core/index.d.ts +18 -10
- package/dist/queue/core/index.d.ts.map +1 -1
- package/dist/queue/core/index.js +14 -6
- package/dist/queue/core/index.js.map +1 -1
- package/dist/react/auth/index.browser.js +108 -0
- package/dist/react/auth/index.browser.js.map +1 -0
- package/dist/react/auth/index.d.ts +100 -0
- package/dist/react/auth/index.d.ts.map +1 -0
- package/dist/react/auth/index.js +145 -0
- package/dist/react/auth/index.js.map +1 -0
- package/dist/react/core/index.d.ts +469 -0
- package/dist/react/core/index.d.ts.map +1 -0
- package/dist/react/core/index.js +464 -0
- package/dist/react/core/index.js.map +1 -0
- package/dist/react/form/index.d.ts +232 -0
- package/dist/react/form/index.d.ts.map +1 -0
- package/dist/react/form/index.js +432 -0
- package/dist/react/form/index.js.map +1 -0
- package/dist/react/head/index.browser.js +423 -0
- package/dist/react/head/index.browser.js.map +1 -0
- package/dist/react/head/index.d.ts +288 -0
- package/dist/react/head/index.d.ts.map +1 -0
- package/dist/react/head/index.js +465 -0
- package/dist/react/head/index.js.map +1 -0
- package/dist/react/i18n/index.d.ts +175 -0
- package/dist/react/i18n/index.d.ts.map +1 -0
- package/dist/react/i18n/index.js +224 -0
- package/dist/react/i18n/index.js.map +1 -0
- package/dist/react/router/index.browser.js +1980 -0
- package/dist/react/router/index.browser.js.map +1 -0
- package/dist/react/router/index.d.ts +2068 -0
- package/dist/react/router/index.d.ts.map +1 -0
- package/dist/react/router/index.js +4932 -0
- package/dist/react/router/index.js.map +1 -0
- package/dist/react/websocket/index.d.ts +117 -0
- package/dist/react/websocket/index.d.ts.map +1 -0
- package/dist/react/websocket/index.js +107 -0
- package/dist/react/websocket/index.js.map +1 -0
- package/dist/redis/index.bun.js +4 -0
- package/dist/redis/index.bun.js.map +1 -1
- package/dist/redis/index.d.ts +22 -25
- package/dist/redis/index.d.ts.map +1 -1
- package/dist/redis/index.js +16 -25
- package/dist/redis/index.js.map +1 -1
- package/dist/retry/index.d.ts +11 -2
- package/dist/retry/index.d.ts.map +1 -1
- package/dist/retry/index.js +11 -2
- package/dist/retry/index.js.map +1 -1
- package/dist/scheduler/index.d.ts +11 -2
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +11 -2
- package/dist/scheduler/index.js.map +1 -1
- package/dist/security/index.d.ts +110 -19
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +157 -26
- package/dist/security/index.js.map +1 -1
- package/dist/server/auth/index.d.ts +179 -174
- package/dist/server/auth/index.d.ts.map +1 -1
- package/dist/server/auth/index.js +12 -7
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/cache/index.d.ts +7 -22
- package/dist/server/cache/index.d.ts.map +1 -1
- package/dist/server/cache/index.js +7 -22
- package/dist/server/cache/index.js.map +1 -1
- package/dist/server/compress/index.d.ts +10 -2
- package/dist/server/compress/index.d.ts.map +1 -1
- package/dist/server/compress/index.js +10 -2
- package/dist/server/compress/index.js.map +1 -1
- package/dist/server/cookies/index.d.ts +40 -16
- package/dist/server/cookies/index.d.ts.map +1 -1
- package/dist/server/cookies/index.js +7 -5
- package/dist/server/cookies/index.js.map +1 -1
- package/dist/server/core/index.d.ts +115 -14
- package/dist/server/core/index.d.ts.map +1 -1
- package/dist/server/core/index.js +231 -14
- package/dist/server/core/index.js.map +1 -1
- package/dist/server/cors/index.d.ts +13 -23
- package/dist/server/cors/index.d.ts.map +1 -1
- package/dist/server/cors/index.js +7 -21
- package/dist/server/cors/index.js.map +1 -1
- package/dist/server/health/index.d.ts +25 -19
- package/dist/server/health/index.d.ts.map +1 -1
- package/dist/server/health/index.js +8 -2
- package/dist/server/health/index.js.map +1 -1
- package/dist/server/helmet/index.d.ts +11 -3
- package/dist/server/helmet/index.d.ts.map +1 -1
- package/dist/server/helmet/index.js +11 -3
- package/dist/server/helmet/index.js.map +1 -1
- package/dist/server/links/index.d.ts +50 -45
- package/dist/server/links/index.d.ts.map +1 -1
- package/dist/server/links/index.js +11 -6
- package/dist/server/links/index.js.map +1 -1
- package/dist/server/metrics/index.d.ts +10 -3
- 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/multipart/index.d.ts +9 -3
- package/dist/server/multipart/index.d.ts.map +1 -1
- package/dist/server/multipart/index.js +9 -3
- package/dist/server/multipart/index.js.map +1 -1
- package/dist/server/proxy/index.d.ts +8 -2
- package/dist/server/proxy/index.d.ts.map +1 -1
- package/dist/server/proxy/index.js +8 -2
- package/dist/server/proxy/index.js.map +1 -1
- package/dist/server/rate-limit/index.d.ts +30 -35
- package/dist/server/rate-limit/index.d.ts.map +1 -1
- package/dist/server/rate-limit/index.js +18 -55
- package/dist/server/rate-limit/index.js.map +1 -1
- package/dist/server/static/index.d.ts +137 -4
- package/dist/server/static/index.d.ts.map +1 -1
- package/dist/server/static/index.js +1848 -5
- package/dist/server/static/index.js.map +1 -1
- package/dist/server/swagger/index.d.ts +301 -6
- package/dist/server/swagger/index.d.ts.map +1 -1
- package/dist/server/swagger/index.js +1849 -6
- package/dist/server/swagger/index.js.map +1 -1
- package/dist/sms/index.d.ts +301 -7
- package/dist/sms/index.d.ts.map +1 -1
- package/dist/sms/index.js +1851 -7
- package/dist/sms/index.js.map +1 -1
- package/dist/system/index.browser.js +496 -0
- package/dist/system/index.browser.js.map +1 -0
- package/dist/{file → system}/index.d.ts +335 -16
- package/dist/system/index.d.ts.map +1 -0
- package/dist/{file → system}/index.js +412 -20
- package/dist/system/index.js.map +1 -0
- package/dist/thread/index.d.ts +11 -2
- package/dist/thread/index.d.ts.map +1 -1
- package/dist/thread/index.js +11 -2
- package/dist/thread/index.js.map +1 -1
- package/dist/topic/core/index.d.ts +12 -5
- package/dist/topic/core/index.d.ts.map +1 -1
- package/dist/topic/core/index.js +12 -5
- package/dist/topic/core/index.js.map +1 -1
- package/dist/vite/index.d.ts +4 -6271
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +8 -3
- package/dist/vite/index.js.map +1 -1
- package/dist/websocket/index.d.ts +12 -8
- package/dist/websocket/index.d.ts.map +1 -1
- package/dist/websocket/index.js +12 -8
- package/dist/websocket/index.js.map +1 -1
- package/package.json +80 -11
- package/src/api/audits/index.ts +10 -33
- package/src/api/files/__tests__/$bucket.spec.ts +1 -1
- package/src/api/files/controllers/AdminFileStatsController.spec.ts +1 -1
- package/src/api/files/controllers/FileController.spec.ts +1 -1
- package/src/api/files/index.ts +10 -3
- package/src/api/files/jobs/FileJobs.spec.ts +1 -1
- package/src/api/files/services/FileService.spec.ts +1 -1
- package/src/api/jobs/index.ts +10 -3
- package/src/api/keys/controllers/AdminApiKeyController.ts +75 -0
- package/src/api/keys/controllers/ApiKeyController.ts +103 -0
- package/src/api/keys/entities/apiKeyEntity.ts +41 -0
- package/src/api/keys/index.ts +49 -0
- package/src/api/keys/schemas/adminApiKeyQuerySchema.ts +7 -0
- package/src/api/keys/schemas/adminApiKeyResourceSchema.ts +17 -0
- package/src/api/keys/schemas/createApiKeyBodySchema.ts +7 -0
- package/src/api/keys/schemas/createApiKeyResponseSchema.ts +11 -0
- package/src/api/keys/schemas/listApiKeyResponseSchema.ts +15 -0
- package/src/api/keys/schemas/revokeApiKeyParamsSchema.ts +5 -0
- package/src/api/keys/schemas/revokeApiKeyResponseSchema.ts +5 -0
- package/src/api/keys/services/ApiKeyService.spec.ts +553 -0
- package/src/api/keys/services/ApiKeyService.ts +306 -0
- package/src/api/logs/TODO.md +52 -0
- package/src/api/notifications/index.ts +10 -4
- package/src/api/parameters/index.ts +9 -30
- package/src/api/parameters/primitives/$config.ts +12 -4
- package/src/api/parameters/services/ConfigStore.ts +9 -3
- package/src/api/users/__tests__/ApiKeys-integration.spec.ts +1035 -0
- package/src/api/users/__tests__/ApiKeys.spec.ts +401 -0
- package/src/api/users/index.ts +14 -3
- package/src/api/users/primitives/$realm.ts +33 -5
- package/src/api/users/providers/RealmProvider.ts +1 -12
- package/src/api/users/services/SessionService.ts +1 -1
- package/src/api/verifications/controllers/VerificationController.ts +2 -0
- package/src/api/verifications/index.ts +10 -4
- package/src/batch/index.ts +9 -36
- package/src/batch/primitives/$batch.ts +0 -8
- package/src/batch/providers/BatchProvider.ts +29 -2
- package/src/bucket/__tests__/shared.ts +1 -1
- package/src/bucket/index.ts +13 -6
- package/src/bucket/primitives/$bucket.ts +1 -1
- package/src/bucket/providers/LocalFileStorageProvider.ts +1 -1
- package/src/bucket/providers/MemoryFileStorageProvider.ts +1 -1
- package/src/cache/core/__tests__/shared.ts +30 -0
- package/src/cache/core/index.ts +11 -6
- package/src/cache/core/primitives/$cache.spec.ts +5 -0
- package/src/cache/core/providers/CacheProvider.ts +17 -0
- package/src/cache/core/providers/MemoryCacheProvider.ts +300 -1
- package/src/cache/redis/__tests__/cache-redis.spec.ts +5 -0
- package/src/cache/redis/providers/RedisCacheProvider.ts +9 -0
- package/src/cli/apps/AlephaCli.ts +1 -14
- package/src/cli/apps/AlephaPackageBuilderCli.ts +1 -1
- package/src/cli/commands/build.ts +1 -5
- package/src/cli/commands/db.ts +17 -11
- package/src/cli/commands/deploy.ts +1 -1
- package/src/cli/commands/dev.ts +1 -20
- package/src/cli/commands/gen/env.ts +5 -2
- package/src/cli/commands/gen/openapi.ts +5 -2
- package/src/cli/commands/init.spec.ts +544 -0
- package/src/cli/commands/init.ts +89 -55
- package/src/cli/commands/lint.ts +7 -1
- package/src/cli/commands/typecheck.ts +11 -0
- package/src/cli/providers/AppEntryProvider.ts +1 -1
- package/src/cli/providers/ViteBuildProvider.ts +8 -50
- package/src/cli/providers/ViteDevServerProvider.ts +36 -8
- package/src/cli/services/AlephaCliUtils.ts +37 -122
- package/src/cli/services/PackageManagerUtils.ts +127 -11
- package/src/cli/services/ProjectScaffolder.ts +122 -77
- package/src/cli/services/ViteUtils.ts +82 -0
- package/src/cli/{assets/claudeMd.ts → templates/agentMd.ts} +32 -24
- package/src/cli/templates/gitignore.ts +39 -0
- package/src/cli/{assets → templates}/mainCss.ts +11 -2
- package/src/cli/templates/mainServerTs.ts +33 -0
- package/src/cli/templates/webAppRouterTs.ts +50 -0
- package/src/cli/{assets → templates}/webHelloComponentTsx.ts +2 -2
- package/src/command/helpers/Runner.spec.ts +4 -0
- package/src/command/helpers/Runner.ts +3 -21
- package/src/command/index.ts +12 -4
- package/src/command/providers/CliProvider.spec.ts +1067 -0
- package/src/command/providers/CliProvider.ts +203 -40
- package/src/core/Alepha.ts +2 -2
- package/src/core/__tests__/Alepha-start.spec.ts +4 -4
- package/src/core/helpers/jsonSchemaToTypeBox.spec.ts +771 -0
- package/src/core/helpers/jsonSchemaToTypeBox.ts +62 -10
- package/src/core/index.shared.ts +1 -0
- package/src/core/index.ts +20 -0
- package/src/core/providers/EventManager.spec.ts +0 -71
- package/src/core/providers/EventManager.ts +3 -15
- package/src/core/providers/Json.ts +2 -14
- package/src/datetime/index.ts +15 -0
- package/src/email/index.ts +10 -5
- package/src/email/providers/LocalEmailProvider.spec.ts +1 -1
- package/src/email/providers/LocalEmailProvider.ts +1 -1
- package/src/fake/__tests__/keyName.example.ts +1 -1
- package/src/fake/__tests__/keyName.spec.ts +5 -5
- package/src/fake/index.ts +9 -6
- package/src/fake/providers/FakeProvider.spec.ts +258 -40
- package/src/fake/providers/FakeProvider.ts +133 -19
- package/src/lock/core/index.ts +11 -4
- package/src/logger/index.ts +17 -66
- package/src/mcp/index.ts +10 -27
- package/src/mcp/transports/SseMcpTransport.ts +0 -11
- package/src/orm/__tests__/PostgresProvider.spec.ts +2 -2
- package/src/orm/index.browser.ts +2 -2
- package/src/orm/index.bun.ts +4 -2
- package/src/orm/index.ts +21 -47
- package/src/orm/providers/drivers/BunSqliteProvider.ts +1 -0
- package/src/orm/services/Repository.ts +7 -3
- package/src/queue/core/index.ts +14 -6
- package/src/react/auth/__tests__/$auth.spec.ts +202 -0
- package/src/react/auth/hooks/useAuth.ts +32 -0
- package/src/react/auth/index.browser.ts +13 -0
- package/src/react/auth/index.shared.ts +2 -0
- package/src/react/auth/index.ts +48 -0
- package/src/react/auth/providers/ReactAuthProvider.ts +16 -0
- package/src/react/auth/services/ReactAuth.ts +135 -0
- package/src/react/core/__tests__/Router.spec.tsx +169 -0
- package/src/react/core/components/ClientOnly.tsx +49 -0
- package/src/react/core/components/ErrorBoundary.tsx +73 -0
- package/src/react/core/contexts/AlephaContext.ts +7 -0
- package/src/react/core/contexts/AlephaProvider.tsx +42 -0
- package/src/react/core/hooks/useAction.browser.spec.tsx +569 -0
- package/src/react/core/hooks/useAction.ts +480 -0
- package/src/react/core/hooks/useAlepha.ts +26 -0
- package/src/react/core/hooks/useClient.ts +17 -0
- package/src/react/core/hooks/useEvents.ts +51 -0
- package/src/react/core/hooks/useInject.ts +12 -0
- package/src/react/core/hooks/useStore.ts +52 -0
- package/src/react/core/index.ts +90 -0
- package/src/react/form/components/FormState.tsx +17 -0
- package/src/react/form/errors/FormValidationError.ts +18 -0
- package/src/react/form/hooks/useForm.browser.spec.tsx +366 -0
- package/src/react/form/hooks/useForm.ts +47 -0
- package/src/react/form/hooks/useFormState.ts +130 -0
- package/src/react/form/index.ts +44 -0
- package/src/react/form/services/FormModel.ts +614 -0
- package/src/react/head/helpers/SeoExpander.spec.ts +203 -0
- package/src/react/head/helpers/SeoExpander.ts +142 -0
- package/src/react/head/hooks/useHead.spec.tsx +288 -0
- package/src/react/head/hooks/useHead.ts +62 -0
- package/src/react/head/index.browser.ts +26 -0
- package/src/react/head/index.ts +44 -0
- package/src/react/head/interfaces/Head.ts +105 -0
- package/src/react/head/primitives/$head.ts +25 -0
- package/src/react/head/providers/BrowserHeadProvider.browser.spec.ts +196 -0
- package/src/react/head/providers/BrowserHeadProvider.ts +212 -0
- package/src/react/head/providers/HeadProvider.ts +168 -0
- package/src/react/head/providers/ServerHeadProvider.ts +31 -0
- package/src/react/i18n/__tests__/integration.spec.tsx +239 -0
- package/src/react/i18n/components/Localize.spec.tsx +357 -0
- package/src/react/i18n/components/Localize.tsx +35 -0
- package/src/react/i18n/hooks/useI18n.browser.spec.tsx +438 -0
- package/src/react/i18n/hooks/useI18n.ts +18 -0
- package/src/react/i18n/index.ts +41 -0
- package/src/react/i18n/primitives/$dictionary.ts +69 -0
- package/src/react/i18n/providers/I18nProvider.spec.ts +389 -0
- package/src/react/i18n/providers/I18nProvider.ts +278 -0
- package/src/react/router/__tests__/page-head-browser.browser.spec.ts +95 -0
- package/src/react/router/__tests__/page-head.spec.ts +48 -0
- package/src/react/router/__tests__/seo-head.spec.ts +125 -0
- package/src/react/router/atoms/ssrManifestAtom.ts +58 -0
- package/src/react/router/components/ErrorViewer.tsx +872 -0
- package/src/react/router/components/Link.tsx +23 -0
- package/src/react/router/components/NestedView.tsx +223 -0
- package/src/react/router/components/NotFound.tsx +30 -0
- package/src/react/router/constants/PAGE_PRELOAD_KEY.ts +6 -0
- package/src/react/router/contexts/RouterLayerContext.ts +12 -0
- package/src/react/router/errors/Redirection.ts +28 -0
- package/src/react/router/hooks/useActive.ts +52 -0
- package/src/react/router/hooks/useQueryParams.ts +63 -0
- package/src/react/router/hooks/useRouter.ts +20 -0
- package/src/react/router/hooks/useRouterState.ts +11 -0
- package/src/react/router/index.browser.ts +45 -0
- package/src/react/router/index.shared.ts +19 -0
- package/src/react/router/index.ts +142 -0
- package/src/react/router/primitives/$page.browser.spec.tsx +851 -0
- package/src/react/router/primitives/$page.spec.tsx +708 -0
- package/src/react/router/primitives/$page.ts +497 -0
- package/src/react/router/providers/ReactBrowserProvider.ts +309 -0
- package/src/react/router/providers/ReactBrowserRendererProvider.ts +25 -0
- package/src/react/router/providers/ReactBrowserRouterProvider.ts +168 -0
- package/src/react/router/providers/ReactPageProvider.ts +726 -0
- package/src/react/router/providers/ReactServerProvider.spec.tsx +316 -0
- package/src/react/router/providers/ReactServerProvider.ts +558 -0
- package/src/react/router/providers/ReactServerTemplateProvider.ts +979 -0
- package/src/react/router/providers/SSRManifestProvider.ts +334 -0
- package/src/react/router/services/ReactPageServerService.ts +48 -0
- package/src/react/router/services/ReactPageService.ts +27 -0
- package/src/react/router/services/ReactRouter.ts +262 -0
- package/src/react/websocket/hooks/useRoom.tsx +242 -0
- package/src/react/websocket/index.ts +7 -0
- package/src/redis/__tests__/redis.spec.ts +13 -0
- package/src/redis/index.ts +9 -25
- package/src/redis/providers/BunRedisProvider.ts +9 -0
- package/src/redis/providers/NodeRedisProvider.ts +8 -0
- package/src/redis/providers/RedisProvider.ts +16 -0
- package/src/retry/index.ts +11 -2
- package/src/router/index.ts +15 -0
- package/src/scheduler/index.ts +11 -2
- package/src/security/__tests__/BasicAuth.spec.ts +2 -0
- package/src/security/__tests__/ServerSecurityProvider.spec.ts +13 -5
- package/src/security/index.ts +15 -10
- package/src/security/interfaces/IssuerResolver.ts +27 -0
- package/src/security/primitives/$issuer.ts +55 -0
- package/src/security/providers/SecurityProvider.ts +179 -0
- package/src/security/providers/ServerBasicAuthProvider.ts +6 -2
- package/src/security/providers/ServerSecurityProvider.ts +36 -22
- package/src/server/auth/index.ts +12 -7
- package/src/server/cache/index.ts +7 -22
- package/src/server/compress/index.ts +10 -2
- package/src/server/cookies/index.ts +7 -5
- package/src/server/cookies/primitives/$cookie.ts +33 -11
- package/src/server/core/index.ts +16 -6
- package/src/server/core/interfaces/ServerRequest.ts +83 -1
- package/src/server/core/primitives/$action.spec.ts +1 -1
- package/src/server/core/primitives/$action.ts +8 -3
- package/src/server/core/providers/NodeHttpServerProvider.ts +9 -3
- package/src/server/core/services/ServerRequestParser.spec.ts +520 -0
- package/src/server/core/services/ServerRequestParser.ts +306 -13
- package/src/server/cors/index.ts +7 -21
- package/src/server/cors/primitives/$cors.ts +6 -2
- package/src/server/health/index.ts +8 -2
- package/src/server/helmet/index.ts +11 -3
- package/src/server/links/index.ts +11 -6
- package/src/server/metrics/index.ts +10 -3
- package/src/server/multipart/index.ts +9 -3
- package/src/server/proxy/index.ts +8 -2
- package/src/server/rate-limit/index.ts +21 -25
- package/src/server/rate-limit/primitives/$rateLimit.ts +6 -2
- package/src/server/rate-limit/providers/ServerRateLimitProvider.spec.ts +38 -14
- package/src/server/rate-limit/providers/ServerRateLimitProvider.ts +22 -56
- package/src/server/static/index.ts +8 -2
- package/src/server/static/providers/ServerStaticProvider.ts +1 -1
- package/src/server/swagger/index.ts +9 -4
- package/src/server/swagger/providers/ServerSwaggerProvider.ts +1 -1
- package/src/sms/index.ts +9 -5
- package/src/sms/providers/LocalSmsProvider.spec.ts +1 -1
- package/src/sms/providers/LocalSmsProvider.ts +1 -1
- package/src/system/index.browser.ts +11 -0
- package/src/system/index.ts +62 -0
- package/src/{file → system}/providers/FileSystemProvider.ts +16 -0
- package/src/{file → system}/providers/MemoryFileSystemProvider.ts +116 -3
- package/src/system/providers/MemoryShellProvider.ts +164 -0
- package/src/{file → system}/providers/NodeFileSystemProvider.spec.ts +2 -2
- package/src/{file → system}/providers/NodeFileSystemProvider.ts +36 -0
- package/src/system/providers/NodeShellProvider.ts +184 -0
- package/src/system/providers/ShellProvider.ts +74 -0
- package/src/{file → system}/services/FileDetector.spec.ts +2 -2
- package/src/thread/index.ts +11 -2
- package/src/topic/core/index.ts +12 -5
- package/src/vite/tasks/buildClient.ts +2 -7
- package/src/vite/tasks/buildServer.ts +17 -1
- package/src/websocket/index.ts +12 -8
- package/dist/file/index.d.ts.map +0 -1
- package/dist/file/index.js.map +0 -1
- package/src/cli/assets/mainServerTs.ts +0 -24
- package/src/cli/assets/webAppRouterTs.ts +0 -16
- package/src/cli/providers/ViteTemplateProvider.ts +0 -27
- package/src/file/index.ts +0 -43
- /package/src/cli/{assets → templates}/apiHelloControllerTs.ts +0 -0
- /package/src/cli/{assets → templates}/apiIndexTs.ts +0 -0
- /package/src/cli/{assets → templates}/biomeJson.ts +0 -0
- /package/src/cli/{assets → templates}/dummySpecTs.ts +0 -0
- /package/src/cli/{assets → templates}/editorconfig.ts +0 -0
- /package/src/cli/{assets → templates}/mainBrowserTs.ts +0 -0
- /package/src/cli/{assets → templates}/tsconfigJson.ts +0 -0
- /package/src/cli/{assets → templates}/webIndexTs.ts +0 -0
- /package/src/{file → system}/errors/FileError.ts +0 -0
- /package/src/{file → system}/services/FileDetector.ts +0 -0
package/dist/orm/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __reExport, t as __exportAll } from "./chunk-DH6iiROE.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as alepha26 from "alepha";
|
|
3
3
|
import { Alepha, AlephaError, KIND, Page, Page as Page$1, PageQuery, PageQuery as PageQuery$1, Primitive, Service, Static, StaticEncode, TBigInt, TInteger, TNull, TNumber, TNumberOptions, TObject, TObjectOptions, TOptional, TPage, TSchema, TString, TStringOptions, TUnion, TUnsafe, pageQuerySchema, pageSchema } from "alepha";
|
|
4
4
|
import { DateTime, DateTimeProvider } from "alepha/datetime";
|
|
5
5
|
import * as drizzle_orm_pg_core0 from "drizzle-orm/pg-core";
|
|
@@ -18,12 +18,65 @@ import { BunSQLDatabase } from "drizzle-orm/bun-sql";
|
|
|
18
18
|
import { BunSQLiteDatabase } from "drizzle-orm/bun-sqlite";
|
|
19
19
|
import { DrizzleD1Database } from "drizzle-orm/d1";
|
|
20
20
|
import { DatabaseSync } from "node:sqlite";
|
|
21
|
+
import * as typebox0 from "typebox";
|
|
22
|
+
import * as DrizzleKit from "drizzle-kit/api";
|
|
21
23
|
import { UpdateDeleteAction as UpdateDeleteAction$1 } from "drizzle-orm/pg-core/foreign-keys";
|
|
22
24
|
import { PgTransactionConfig } from "drizzle-orm/pg-core/session";
|
|
23
|
-
import * as DrizzleKit from "drizzle-kit/api";
|
|
24
|
-
import * as typebox1 from "typebox";
|
|
25
25
|
export * from "drizzle-orm/pg-core";
|
|
26
26
|
|
|
27
|
+
//#region ../../src/orm/constants/PG_SYMBOLS.d.ts
|
|
28
|
+
declare const PG_DEFAULT: unique symbol;
|
|
29
|
+
declare const PG_PRIMARY_KEY: unique symbol;
|
|
30
|
+
declare const PG_CREATED_AT: unique symbol;
|
|
31
|
+
declare const PG_UPDATED_AT: unique symbol;
|
|
32
|
+
declare const PG_DELETED_AT: unique symbol;
|
|
33
|
+
declare const PG_VERSION: unique symbol;
|
|
34
|
+
declare const PG_IDENTITY: unique symbol;
|
|
35
|
+
declare const PG_ENUM: unique symbol;
|
|
36
|
+
declare const PG_REF: unique symbol;
|
|
37
|
+
/**
|
|
38
|
+
* @deprecated Use `PG_IDENTITY` instead.
|
|
39
|
+
*/
|
|
40
|
+
declare const PG_SERIAL: unique symbol;
|
|
41
|
+
type PgDefault = typeof PG_DEFAULT;
|
|
42
|
+
type PgRef = typeof PG_REF;
|
|
43
|
+
type PgPrimaryKey = typeof PG_PRIMARY_KEY;
|
|
44
|
+
type PgSymbols = {
|
|
45
|
+
[PG_DEFAULT]: {};
|
|
46
|
+
[PG_PRIMARY_KEY]: {};
|
|
47
|
+
[PG_CREATED_AT]: {};
|
|
48
|
+
[PG_UPDATED_AT]: {};
|
|
49
|
+
[PG_DELETED_AT]: {};
|
|
50
|
+
[PG_VERSION]: {};
|
|
51
|
+
[PG_IDENTITY]: PgIdentityOptions;
|
|
52
|
+
[PG_REF]: PgRefOptions;
|
|
53
|
+
[PG_ENUM]: PgEnumOptions;
|
|
54
|
+
/**
|
|
55
|
+
* @deprecated Use `PG_IDENTITY` instead.
|
|
56
|
+
*/
|
|
57
|
+
[PG_SERIAL]: {};
|
|
58
|
+
};
|
|
59
|
+
type PgSymbolKeys = keyof PgSymbols;
|
|
60
|
+
type PgIdentityOptions = {
|
|
61
|
+
mode: "always" | "byDefault";
|
|
62
|
+
} & PgSequenceOptions & {
|
|
63
|
+
name?: string;
|
|
64
|
+
};
|
|
65
|
+
interface PgEnumOptions {
|
|
66
|
+
name?: string;
|
|
67
|
+
description?: string;
|
|
68
|
+
}
|
|
69
|
+
interface PgRefOptions {
|
|
70
|
+
ref: () => {
|
|
71
|
+
name: string;
|
|
72
|
+
entity: EntityPrimitive;
|
|
73
|
+
};
|
|
74
|
+
actions?: {
|
|
75
|
+
onUpdate?: UpdateDeleteAction;
|
|
76
|
+
onDelete?: UpdateDeleteAction;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//#endregion
|
|
27
80
|
//#region ../../src/orm/schemas/insertSchema.d.ts
|
|
28
81
|
/**
|
|
29
82
|
* Transforms a TObject schema for insert operations.
|
|
@@ -214,57 +267,382 @@ type EntityColumn<T extends TObject> = {
|
|
|
214
267
|
};
|
|
215
268
|
type EntityColumns<T extends TObject> = { [key in keyof T["properties"]]: EntityColumn<T> };
|
|
216
269
|
//#endregion
|
|
217
|
-
//#region ../../src/orm/
|
|
218
|
-
declare const PG_DEFAULT: unique symbol;
|
|
219
|
-
declare const PG_PRIMARY_KEY: unique symbol;
|
|
220
|
-
declare const PG_CREATED_AT: unique symbol;
|
|
221
|
-
declare const PG_UPDATED_AT: unique symbol;
|
|
222
|
-
declare const PG_DELETED_AT: unique symbol;
|
|
223
|
-
declare const PG_VERSION: unique symbol;
|
|
224
|
-
declare const PG_IDENTITY: unique symbol;
|
|
225
|
-
declare const PG_ENUM: unique symbol;
|
|
226
|
-
declare const PG_REF: unique symbol;
|
|
270
|
+
//#region ../../src/orm/services/ModelBuilder.d.ts
|
|
227
271
|
/**
|
|
228
|
-
*
|
|
272
|
+
* Database-specific table configuration functions
|
|
229
273
|
*/
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
274
|
+
interface TableConfigBuilders<TConfig> {
|
|
275
|
+
index: (name: string) => {
|
|
276
|
+
on: (...columns: any[]) => TConfig;
|
|
277
|
+
};
|
|
278
|
+
uniqueIndex: (name: string) => {
|
|
279
|
+
on: (...columns: any[]) => TConfig;
|
|
280
|
+
};
|
|
281
|
+
unique: (name: string) => {
|
|
282
|
+
on: (...columns: any[]) => TConfig;
|
|
283
|
+
};
|
|
284
|
+
check: (name: string, sql: SQL) => TConfig;
|
|
285
|
+
foreignKey: (config: {
|
|
286
|
+
name: string;
|
|
287
|
+
columns: any[];
|
|
288
|
+
foreignColumns: any[];
|
|
289
|
+
}) => TConfig;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Abstract base class for transforming Alepha Primitives (Entity, Sequence, etc...)
|
|
293
|
+
* into drizzle models (tables, enums, sequences, etc...).
|
|
294
|
+
*/
|
|
295
|
+
declare abstract class ModelBuilder {
|
|
244
296
|
/**
|
|
245
|
-
*
|
|
297
|
+
* Build a table from an entity primitive.
|
|
246
298
|
*/
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
299
|
+
abstract buildTable(entity: EntityPrimitive, options: {
|
|
300
|
+
tables: Map<string, unknown>;
|
|
301
|
+
enums: Map<string, unknown>;
|
|
302
|
+
schema: string;
|
|
303
|
+
}): void;
|
|
304
|
+
/**
|
|
305
|
+
* Build a sequence from a sequence primitive.
|
|
306
|
+
*/
|
|
307
|
+
abstract buildSequence(sequence: SequencePrimitive, options: {
|
|
308
|
+
sequences: Map<string, unknown>;
|
|
309
|
+
schema: string;
|
|
310
|
+
}): void;
|
|
311
|
+
/**
|
|
312
|
+
* Convert camelCase to snake_case for column names.
|
|
313
|
+
*/
|
|
314
|
+
protected toColumnName(str: string): string;
|
|
315
|
+
/**
|
|
316
|
+
* Build the table configuration function for any database.
|
|
317
|
+
* This includes indexes, foreign keys, constraints, and custom config.
|
|
318
|
+
*
|
|
319
|
+
* @param entity - The entity primitive
|
|
320
|
+
* @param builders - Database-specific builder functions
|
|
321
|
+
* @param tableResolver - Function to resolve entity references to table columns
|
|
322
|
+
* @param customConfigHandler - Optional handler for custom config
|
|
323
|
+
*/
|
|
324
|
+
protected buildTableConfig<TConfig, TSelf>(entity: EntityPrimitive, builders: TableConfigBuilders<TConfig>, tableResolver?: (entityName: string) => any, customConfigHandler?: (config: any, self: TSelf) => TConfig[]): ((self: TSelf) => TConfig[]) | undefined;
|
|
325
|
+
}
|
|
326
|
+
//#endregion
|
|
327
|
+
//#region ../../src/orm/providers/DrizzleKitProvider.d.ts
|
|
328
|
+
declare class DrizzleKitProvider {
|
|
329
|
+
protected readonly log: alepha_logger4.Logger;
|
|
330
|
+
protected readonly alepha: Alepha;
|
|
331
|
+
/**
|
|
332
|
+
* Synchronize database with current schema definitions.
|
|
333
|
+
*
|
|
334
|
+
* In development mode, it will generate and execute migrations based on the current state.
|
|
335
|
+
* In testing mode, it will generate migrations from scratch without applying them.
|
|
336
|
+
*
|
|
337
|
+
* Does nothing in production mode, you must handle migrations manually.
|
|
338
|
+
*/
|
|
339
|
+
synchronize(provider: DatabaseProvider): Promise<void>;
|
|
340
|
+
/**
|
|
341
|
+
* Mostly used for testing purposes. You can generate SQL migration statements without executing them.
|
|
342
|
+
*/
|
|
343
|
+
generateMigration(provider: DatabaseProvider, prevSnapshot?: any): Promise<{
|
|
344
|
+
statements: string[];
|
|
345
|
+
models: Record<string, unknown>;
|
|
346
|
+
snapshot?: any;
|
|
347
|
+
}>;
|
|
348
|
+
/**
|
|
349
|
+
* Load all tables, enums, sequences, etc. from the provider's repositories.
|
|
350
|
+
*/
|
|
351
|
+
getModels(provider: DatabaseProvider): Record<string, unknown>;
|
|
352
|
+
/**
|
|
353
|
+
* Load the migration snapshot from the database.
|
|
354
|
+
*/
|
|
355
|
+
protected loadDevMigrations(provider: DatabaseProvider): Promise<DevMigrations | undefined>;
|
|
356
|
+
protected saveDevMigrations(provider: DatabaseProvider, curr: Record<string, any>, devMigrations?: DevMigrations): Promise<void>;
|
|
357
|
+
protected executeStatements(statements: string[], provider: DatabaseProvider, catchErrors?: boolean): Promise<void>;
|
|
358
|
+
protected createSchemaIfNotExists(provider: DatabaseProvider, schemaName: string): Promise<void>;
|
|
359
|
+
/**
|
|
360
|
+
* Try to load the official Drizzle Kit API.
|
|
361
|
+
* If not available, fallback to the local kit import.
|
|
362
|
+
*/
|
|
363
|
+
importDrizzleKit(): typeof DrizzleKit;
|
|
364
|
+
}
|
|
365
|
+
declare const devMigrationsSchema: alepha26.TObject<{
|
|
366
|
+
id: alepha26.TNumber;
|
|
367
|
+
name: alepha26.TString;
|
|
368
|
+
snapshot: alepha26.TString;
|
|
369
|
+
created_at: alepha26.TString;
|
|
370
|
+
}>;
|
|
371
|
+
type DevMigrations = Static<typeof devMigrationsSchema>;
|
|
372
|
+
//#endregion
|
|
373
|
+
//#region ../../src/orm/providers/drivers/DatabaseProvider.d.ts
|
|
374
|
+
type SQLLike = SQLWrapper | string;
|
|
375
|
+
declare abstract class DatabaseProvider {
|
|
376
|
+
protected readonly alepha: Alepha;
|
|
377
|
+
protected readonly log: alepha_logger4.Logger;
|
|
378
|
+
protected abstract readonly builder: ModelBuilder;
|
|
379
|
+
protected abstract readonly kit: DrizzleKitProvider;
|
|
380
|
+
abstract readonly db: PgDatabase<any>;
|
|
381
|
+
abstract readonly dialect: "postgresql" | "sqlite";
|
|
382
|
+
abstract readonly url: string;
|
|
383
|
+
readonly enums: Map<string, unknown>;
|
|
384
|
+
readonly tables: Map<string, unknown>;
|
|
385
|
+
readonly sequences: Map<string, unknown>;
|
|
386
|
+
get name(): string;
|
|
387
|
+
get driver(): string;
|
|
388
|
+
get schema(): string;
|
|
389
|
+
table<T extends TObject>(entity: EntityPrimitive<T>): PgTableWithColumns<SchemaToTableConfig<T>>;
|
|
390
|
+
registerEntity(entity: EntityPrimitive): void;
|
|
391
|
+
registerSequence(sequence: SequencePrimitive): void;
|
|
392
|
+
abstract execute(statement: SQLLike): Promise<Record<string, unknown>[]>;
|
|
393
|
+
run<T extends TObject>(statement: SQLLike, schema: T): Promise<Array<Static<T>>>;
|
|
394
|
+
/**
|
|
395
|
+
* Get migrations folder path - can be overridden
|
|
396
|
+
*/
|
|
397
|
+
protected getMigrationsFolder(): string;
|
|
398
|
+
/**
|
|
399
|
+
* Base migration orchestration - handles environment logic
|
|
400
|
+
*/
|
|
401
|
+
migrate(): Promise<void>;
|
|
402
|
+
/**
|
|
403
|
+
* Production: run migrations from folder
|
|
404
|
+
*/
|
|
405
|
+
protected runProductionMigration(migrationsFolder: string): Promise<void>;
|
|
406
|
+
/**
|
|
407
|
+
* Test: always synchronize
|
|
408
|
+
*/
|
|
409
|
+
protected runTestMigration(): Promise<void>;
|
|
410
|
+
/**
|
|
411
|
+
* Development: default to synchronize (can be overridden)
|
|
412
|
+
*/
|
|
413
|
+
protected runDevelopmentMigration(migrationsFolder: string): Promise<void>;
|
|
414
|
+
/**
|
|
415
|
+
* Common synchronization with error handling
|
|
416
|
+
*/
|
|
417
|
+
protected synchronizeSchema(): Promise<void>;
|
|
418
|
+
/**
|
|
419
|
+
* Provider-specific migration execution
|
|
420
|
+
* MUST be implemented by each provider
|
|
421
|
+
*/
|
|
422
|
+
protected abstract executeMigrations(migrationsFolder: string): Promise<void>;
|
|
423
|
+
/**
|
|
424
|
+
* For testing purposes, generate a unique schema name.
|
|
425
|
+
* The schema name will be generated based on the current date and time.
|
|
426
|
+
* It will be in the format of `test_YYYYMMDD_HHMMSS_randomSuffix`.
|
|
427
|
+
*/
|
|
428
|
+
protected generateTestSchemaName(): string;
|
|
429
|
+
}
|
|
430
|
+
//#endregion
|
|
431
|
+
//#region ../../src/orm/primitives/$sequence.d.ts
|
|
432
|
+
/**
|
|
433
|
+
* Creates a PostgreSQL sequence primitive for generating unique numeric values.
|
|
434
|
+
*/
|
|
435
|
+
declare const $sequence: {
|
|
436
|
+
(options?: SequencePrimitiveOptions): SequencePrimitive;
|
|
437
|
+
[KIND]: typeof SequencePrimitive;
|
|
254
438
|
};
|
|
255
|
-
interface
|
|
439
|
+
interface SequencePrimitiveOptions extends PgSequenceOptions {
|
|
440
|
+
/**
|
|
441
|
+
* The name of the sequence. If not provided, the property key will be used.
|
|
442
|
+
*/
|
|
256
443
|
name?: string;
|
|
257
|
-
|
|
444
|
+
provider?: DatabaseProvider;
|
|
258
445
|
}
|
|
259
|
-
|
|
260
|
-
|
|
446
|
+
declare class SequencePrimitive extends Primitive<SequencePrimitiveOptions> {
|
|
447
|
+
readonly provider: DatabaseProvider;
|
|
448
|
+
onInit(): void;
|
|
449
|
+
get name(): string;
|
|
450
|
+
next(): Promise<number>;
|
|
451
|
+
current(): Promise<number>;
|
|
452
|
+
protected $provider(): DatabaseProvider;
|
|
453
|
+
}
|
|
454
|
+
//#endregion
|
|
455
|
+
//#region ../../src/orm/services/SqliteModelBuilder.d.ts
|
|
456
|
+
declare class SqliteModelBuilder extends ModelBuilder {
|
|
457
|
+
buildTable(entity: EntityPrimitive<any>, options: {
|
|
458
|
+
tables: Map<string, unknown>;
|
|
459
|
+
enums: Map<string, unknown>;
|
|
460
|
+
schema: string;
|
|
461
|
+
}): void;
|
|
462
|
+
buildSequence(sequence: SequencePrimitive, options: {
|
|
463
|
+
sequences: Map<string, unknown>;
|
|
464
|
+
schema: string;
|
|
465
|
+
}): void;
|
|
466
|
+
/**
|
|
467
|
+
* Get SQLite-specific config builder for the table.
|
|
468
|
+
*/
|
|
469
|
+
protected getTableConfig(entity: EntityPrimitive, tables: Map<string, unknown>): ((self: BuildColumns<string, any, "sqlite">) => any) | undefined;
|
|
470
|
+
schemaToSqliteColumns: <T extends TObject>(tableName: string, schema: T, enums: Map<string, unknown>, tables: Map<string, unknown>) => SchemaToSqliteBuilder<T>;
|
|
471
|
+
mapFieldToSqliteColumn: (tableName: string, fieldName: string, value: TSchema, enums: Map<string, any>) => pg$1.SQLiteIntegerBuilderInitial<string> | pg$1.SQLiteNumericBuilderInitial<string> | pg$1.SQLiteTextBuilderInitial<string, [string, ...string[]], number | undefined> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
|
|
261
472
|
name: string;
|
|
262
|
-
|
|
473
|
+
dataType: "custom";
|
|
474
|
+
columnType: "SQLiteCustomColumn";
|
|
475
|
+
data: string;
|
|
476
|
+
driverParam: string;
|
|
477
|
+
enumValues: undefined;
|
|
478
|
+
}>, string> | pg$1.SQLiteCustomColumnBuilder<{
|
|
479
|
+
name: string;
|
|
480
|
+
dataType: "custom";
|
|
481
|
+
columnType: "SQLiteCustomColumn";
|
|
482
|
+
data: string;
|
|
483
|
+
driverParam: number;
|
|
484
|
+
enumValues: undefined;
|
|
485
|
+
}> | pg$1.SQLiteCustomColumnBuilder<{
|
|
486
|
+
name: string;
|
|
487
|
+
dataType: "custom";
|
|
488
|
+
columnType: "SQLiteCustomColumn";
|
|
489
|
+
data: boolean;
|
|
490
|
+
driverParam: number;
|
|
491
|
+
enumValues: undefined;
|
|
492
|
+
}> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
|
|
493
|
+
name: string;
|
|
494
|
+
dataType: "custom";
|
|
495
|
+
columnType: "SQLiteCustomColumn";
|
|
496
|
+
data: {
|
|
497
|
+
[x: string]: unknown;
|
|
498
|
+
[x: number]: unknown;
|
|
499
|
+
[x: symbol]: unknown;
|
|
500
|
+
};
|
|
501
|
+
driverParam: string;
|
|
502
|
+
enumValues: undefined;
|
|
503
|
+
}>, {
|
|
504
|
+
[x: string]: unknown;
|
|
505
|
+
[x: number]: unknown;
|
|
506
|
+
[x: symbol]: unknown;
|
|
507
|
+
}> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
|
|
508
|
+
name: string;
|
|
509
|
+
dataType: "custom";
|
|
510
|
+
columnType: "SQLiteCustomColumn";
|
|
511
|
+
data: typebox0.StaticRecord<[], "Decode", {}, {}, string, TSchema>;
|
|
512
|
+
driverParam: string;
|
|
513
|
+
enumValues: undefined;
|
|
514
|
+
}>, typebox0.StaticRecord<[], "Decode", {}, {}, string, TSchema>> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
|
|
515
|
+
name: string;
|
|
516
|
+
dataType: "custom";
|
|
517
|
+
columnType: "SQLiteCustomColumn";
|
|
518
|
+
data: any;
|
|
519
|
+
driverParam: string;
|
|
520
|
+
enumValues: undefined;
|
|
521
|
+
}>, any> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
|
|
522
|
+
name: string;
|
|
523
|
+
dataType: "custom";
|
|
524
|
+
columnType: "SQLiteCustomColumn";
|
|
525
|
+
data: unknown[];
|
|
526
|
+
driverParam: string;
|
|
527
|
+
enumValues: undefined;
|
|
528
|
+
}>, unknown[]>;
|
|
529
|
+
mapStringToSqliteColumn: (key: string, value: TString) => pg$1.SQLiteTextBuilderInitial<string, [string, ...string[]], number | undefined> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
|
|
530
|
+
name: string;
|
|
531
|
+
dataType: "custom";
|
|
532
|
+
columnType: "SQLiteCustomColumn";
|
|
533
|
+
data: string;
|
|
534
|
+
driverParam: string;
|
|
535
|
+
enumValues: undefined;
|
|
536
|
+
}>, string> | pg$1.SQLiteCustomColumnBuilder<{
|
|
537
|
+
name: string;
|
|
538
|
+
dataType: "custom";
|
|
539
|
+
columnType: "SQLiteCustomColumn";
|
|
540
|
+
data: string;
|
|
541
|
+
driverParam: number;
|
|
542
|
+
enumValues: undefined;
|
|
543
|
+
}>;
|
|
544
|
+
sqliteJson: <TDocument extends TSchema>(name: string, document: TDocument) => drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
|
|
545
|
+
name: string;
|
|
546
|
+
dataType: "custom";
|
|
547
|
+
columnType: "SQLiteCustomColumn";
|
|
548
|
+
data: typebox0.StaticType<[], "Decode", {}, {}, TDocument>;
|
|
549
|
+
driverParam: string;
|
|
550
|
+
enumValues: undefined;
|
|
551
|
+
}>, typebox0.StaticType<[], "Decode", {}, {}, TDocument>>;
|
|
552
|
+
sqliteDateTime: {
|
|
553
|
+
<TConfig extends Record<string, any>>(fieldConfig: TConfig): pg$1.SQLiteCustomColumnBuilder<{
|
|
554
|
+
name: "";
|
|
555
|
+
dataType: "custom";
|
|
556
|
+
columnType: "SQLiteCustomColumn";
|
|
557
|
+
data: string;
|
|
558
|
+
driverParam: number;
|
|
559
|
+
enumValues: undefined;
|
|
560
|
+
}>;
|
|
561
|
+
<TName extends string>(dbName: TName, fieldConfig: unknown): pg$1.SQLiteCustomColumnBuilder<{
|
|
562
|
+
name: TName;
|
|
563
|
+
dataType: "custom";
|
|
564
|
+
columnType: "SQLiteCustomColumn";
|
|
565
|
+
data: string;
|
|
566
|
+
driverParam: number;
|
|
567
|
+
enumValues: undefined;
|
|
568
|
+
}>;
|
|
569
|
+
};
|
|
570
|
+
sqliteBool: {
|
|
571
|
+
<TConfig extends Record<string, any>>(fieldConfig: TConfig): pg$1.SQLiteCustomColumnBuilder<{
|
|
572
|
+
name: "";
|
|
573
|
+
dataType: "custom";
|
|
574
|
+
columnType: "SQLiteCustomColumn";
|
|
575
|
+
data: boolean;
|
|
576
|
+
driverParam: number;
|
|
577
|
+
enumValues: undefined;
|
|
578
|
+
}>;
|
|
579
|
+
<TName extends string>(dbName: TName, fieldConfig: unknown): pg$1.SQLiteCustomColumnBuilder<{
|
|
580
|
+
name: TName;
|
|
581
|
+
dataType: "custom";
|
|
582
|
+
columnType: "SQLiteCustomColumn";
|
|
583
|
+
data: boolean;
|
|
584
|
+
driverParam: number;
|
|
585
|
+
enumValues: undefined;
|
|
586
|
+
}>;
|
|
587
|
+
};
|
|
588
|
+
sqliteDate: {
|
|
589
|
+
<TConfig extends Record<string, any>>(fieldConfig: TConfig): pg$1.SQLiteCustomColumnBuilder<{
|
|
590
|
+
name: "";
|
|
591
|
+
dataType: "custom";
|
|
592
|
+
columnType: "SQLiteCustomColumn";
|
|
593
|
+
data: string;
|
|
594
|
+
driverParam: number;
|
|
595
|
+
enumValues: undefined;
|
|
596
|
+
}>;
|
|
597
|
+
<TName extends string>(dbName: TName, fieldConfig: unknown): pg$1.SQLiteCustomColumnBuilder<{
|
|
598
|
+
name: TName;
|
|
599
|
+
dataType: "custom";
|
|
600
|
+
columnType: "SQLiteCustomColumn";
|
|
601
|
+
data: string;
|
|
602
|
+
driverParam: number;
|
|
603
|
+
enumValues: undefined;
|
|
604
|
+
}>;
|
|
263
605
|
};
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
606
|
+
}
|
|
607
|
+
type SchemaToSqliteBuilder<T extends TObject> = { [key in keyof T["properties"]]: SQLiteColumnBuilderBase };
|
|
608
|
+
//#endregion
|
|
609
|
+
//#region ../../src/orm/providers/drivers/NodeSqliteProvider.d.ts
|
|
610
|
+
/**
|
|
611
|
+
* Configuration options for the Node.js SQLite database provider.
|
|
612
|
+
*/
|
|
613
|
+
declare const nodeSqliteOptions: alepha26.Atom<alepha26.TObject<{
|
|
614
|
+
path: alepha26.TOptional<alepha26.TString>;
|
|
615
|
+
}>, "alepha.postgres.node-sqlite.options">;
|
|
616
|
+
type NodeSqliteProviderOptions = Static<typeof nodeSqliteOptions.schema>;
|
|
617
|
+
declare module "alepha" {
|
|
618
|
+
interface State {
|
|
619
|
+
[nodeSqliteOptions.key]: NodeSqliteProviderOptions;
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
/**
|
|
623
|
+
* Add a fake support for SQLite in Node.js based on Postgres interfaces.
|
|
624
|
+
*
|
|
625
|
+
* This is NOT a real SQLite provider, it's a workaround to use SQLite with Drizzle ORM.
|
|
626
|
+
* This is NOT recommended for production use.
|
|
627
|
+
*/
|
|
628
|
+
declare class NodeSqliteProvider extends DatabaseProvider {
|
|
629
|
+
protected readonly kit: DrizzleKitProvider;
|
|
630
|
+
protected readonly log: alepha_logger4.Logger;
|
|
631
|
+
protected readonly env: {
|
|
632
|
+
DATABASE_URL?: string | undefined;
|
|
267
633
|
};
|
|
634
|
+
protected readonly builder: SqliteModelBuilder;
|
|
635
|
+
protected readonly options: Readonly<{
|
|
636
|
+
path?: string | undefined;
|
|
637
|
+
}>;
|
|
638
|
+
protected sqlite: DatabaseSync;
|
|
639
|
+
get name(): string;
|
|
640
|
+
readonly dialect = "sqlite";
|
|
641
|
+
get url(): string;
|
|
642
|
+
execute(query: SQLLike): Promise<Array<Record<string, unknown>>>;
|
|
643
|
+
readonly db: PgDatabase<any>;
|
|
644
|
+
protected readonly onStart: alepha26.HookPrimitive<"start">;
|
|
645
|
+
protected executeMigrations(migrationsFolder: string): Promise<void>;
|
|
268
646
|
}
|
|
269
647
|
//#endregion
|
|
270
648
|
//#region ../../src/orm/errors/DbError.d.ts
|
|
@@ -996,247 +1374,62 @@ declare class DatabaseTypeProvider {
|
|
|
996
1374
|
/**
|
|
997
1375
|
* Creates a column Deleted At for soft delete functionality.
|
|
998
1376
|
* This is used to mark rows as deleted without actually removing them from the database.
|
|
999
|
-
* The column is nullable - NULL means not deleted, timestamp means deleted.
|
|
1000
|
-
*/
|
|
1001
|
-
readonly deletedAt: (options?: TStringOptions) => PgAttr<alepha34.TOptional<TString>, typeof PG_DELETED_AT>;
|
|
1002
|
-
/**
|
|
1003
|
-
* Creates a Postgres ENUM type.
|
|
1004
|
-
*
|
|
1005
|
-
* > By default, `t.enum()` is mapped to a TEXT column in Postgres.
|
|
1006
|
-
* > Using this method, you can create a real ENUM type in the database.
|
|
1007
|
-
*
|
|
1008
|
-
* @example
|
|
1009
|
-
* ```ts
|
|
1010
|
-
* const statusEnum = pg.enum(["pending", "active", "archived"], { name: "status_enum" });
|
|
1011
|
-
* ```
|
|
1012
|
-
*/
|
|
1013
|
-
readonly enum: <T extends string[]>(values: [...T], pgEnumOptions?: PgEnumOptions, typeOptions?: TStringOptions) => PgAttr<TUnsafe<T[number]>, typeof PG_ENUM>;
|
|
1014
|
-
/**
|
|
1015
|
-
* Creates a reference to another table or schema. Basically a foreign key.
|
|
1016
|
-
*/
|
|
1017
|
-
readonly ref: <T extends TSchema>(type: T, ref: () => any, actions?: {
|
|
1018
|
-
onUpdate?: UpdateDeleteAction$1;
|
|
1019
|
-
onDelete?: UpdateDeleteAction$1;
|
|
1020
|
-
}) => PgAttr<T, PgRef>;
|
|
1021
|
-
/**
|
|
1022
|
-
* Creates a page schema for a given object schema.
|
|
1023
|
-
* It's used by {@link Repository#paginate} method.
|
|
1024
|
-
*/
|
|
1025
|
-
readonly page: <T extends TObject>(resource: T, options?: TObjectOptions) => TPage<T>;
|
|
1026
|
-
}
|
|
1027
|
-
/**
|
|
1028
|
-
* Wrapper of TypeProvider (`t`) for database types.
|
|
1029
|
-
*
|
|
1030
|
-
* Use `db` for improve TypeBox schema definitions with database-specific attributes.
|
|
1031
|
-
*
|
|
1032
|
-
* @example
|
|
1033
|
-
* ```ts
|
|
1034
|
-
* import { t } from "alepha";
|
|
1035
|
-
* import { db } from "alepha/orm";
|
|
1036
|
-
*
|
|
1037
|
-
* const userSchema = t.object({
|
|
1038
|
-
* id: db.primaryKey(t.uuid()),
|
|
1039
|
-
* email: t.email(),
|
|
1040
|
-
* createdAt: db.createdAt(),
|
|
1041
|
-
* });
|
|
1042
|
-
* ```
|
|
1043
|
-
*/
|
|
1044
|
-
declare const db: DatabaseTypeProvider;
|
|
1045
|
-
/**
|
|
1046
|
-
* @deprecated Use `db` instead.
|
|
1047
|
-
*/
|
|
1048
|
-
declare const pg: DatabaseTypeProvider;
|
|
1049
|
-
//#endregion
|
|
1050
|
-
//#region ../../src/orm/schemas/legacyIdSchema.d.ts
|
|
1051
|
-
/**
|
|
1052
|
-
* @deprecated Use `pg.primaryKey()` instead.
|
|
1053
|
-
*/
|
|
1054
|
-
declare const legacyIdSchema: PgAttr<PgAttr<PgAttr<alepha34.TInteger, typeof PG_PRIMARY_KEY>, typeof PG_SERIAL>, typeof PG_DEFAULT>;
|
|
1055
|
-
//#endregion
|
|
1056
|
-
//#region ../../src/orm/primitives/$sequence.d.ts
|
|
1057
|
-
/**
|
|
1058
|
-
* Creates a PostgreSQL sequence primitive for generating unique numeric values.
|
|
1059
|
-
*/
|
|
1060
|
-
declare const $sequence: {
|
|
1061
|
-
(options?: SequencePrimitiveOptions): SequencePrimitive;
|
|
1062
|
-
[KIND]: typeof SequencePrimitive;
|
|
1063
|
-
};
|
|
1064
|
-
interface SequencePrimitiveOptions extends PgSequenceOptions {
|
|
1065
|
-
/**
|
|
1066
|
-
* The name of the sequence. If not provided, the property key will be used.
|
|
1067
|
-
*/
|
|
1068
|
-
name?: string;
|
|
1069
|
-
provider?: DatabaseProvider;
|
|
1070
|
-
}
|
|
1071
|
-
declare class SequencePrimitive extends Primitive<SequencePrimitiveOptions> {
|
|
1072
|
-
readonly provider: DatabaseProvider;
|
|
1073
|
-
onInit(): void;
|
|
1074
|
-
get name(): string;
|
|
1075
|
-
next(): Promise<number>;
|
|
1076
|
-
current(): Promise<number>;
|
|
1077
|
-
protected $provider(): DatabaseProvider;
|
|
1078
|
-
}
|
|
1079
|
-
//#endregion
|
|
1080
|
-
//#region ../../src/orm/services/ModelBuilder.d.ts
|
|
1081
|
-
/**
|
|
1082
|
-
* Database-specific table configuration functions
|
|
1083
|
-
*/
|
|
1084
|
-
interface TableConfigBuilders<TConfig> {
|
|
1085
|
-
index: (name: string) => {
|
|
1086
|
-
on: (...columns: any[]) => TConfig;
|
|
1087
|
-
};
|
|
1088
|
-
uniqueIndex: (name: string) => {
|
|
1089
|
-
on: (...columns: any[]) => TConfig;
|
|
1090
|
-
};
|
|
1091
|
-
unique: (name: string) => {
|
|
1092
|
-
on: (...columns: any[]) => TConfig;
|
|
1093
|
-
};
|
|
1094
|
-
check: (name: string, sql: SQL) => TConfig;
|
|
1095
|
-
foreignKey: (config: {
|
|
1096
|
-
name: string;
|
|
1097
|
-
columns: any[];
|
|
1098
|
-
foreignColumns: any[];
|
|
1099
|
-
}) => TConfig;
|
|
1100
|
-
}
|
|
1101
|
-
/**
|
|
1102
|
-
* Abstract base class for transforming Alepha Primitives (Entity, Sequence, etc...)
|
|
1103
|
-
* into drizzle models (tables, enums, sequences, etc...).
|
|
1104
|
-
*/
|
|
1105
|
-
declare abstract class ModelBuilder {
|
|
1106
|
-
/**
|
|
1107
|
-
* Build a table from an entity primitive.
|
|
1108
|
-
*/
|
|
1109
|
-
abstract buildTable(entity: EntityPrimitive, options: {
|
|
1110
|
-
tables: Map<string, unknown>;
|
|
1111
|
-
enums: Map<string, unknown>;
|
|
1112
|
-
schema: string;
|
|
1113
|
-
}): void;
|
|
1114
|
-
/**
|
|
1115
|
-
* Build a sequence from a sequence primitive.
|
|
1116
|
-
*/
|
|
1117
|
-
abstract buildSequence(sequence: SequencePrimitive, options: {
|
|
1118
|
-
sequences: Map<string, unknown>;
|
|
1119
|
-
schema: string;
|
|
1120
|
-
}): void;
|
|
1121
|
-
/**
|
|
1122
|
-
* Convert camelCase to snake_case for column names.
|
|
1123
|
-
*/
|
|
1124
|
-
protected toColumnName(str: string): string;
|
|
1125
|
-
/**
|
|
1126
|
-
* Build the table configuration function for any database.
|
|
1127
|
-
* This includes indexes, foreign keys, constraints, and custom config.
|
|
1128
|
-
*
|
|
1129
|
-
* @param entity - The entity primitive
|
|
1130
|
-
* @param builders - Database-specific builder functions
|
|
1131
|
-
* @param tableResolver - Function to resolve entity references to table columns
|
|
1132
|
-
* @param customConfigHandler - Optional handler for custom config
|
|
1133
|
-
*/
|
|
1134
|
-
protected buildTableConfig<TConfig, TSelf>(entity: EntityPrimitive, builders: TableConfigBuilders<TConfig>, tableResolver?: (entityName: string) => any, customConfigHandler?: (config: any, self: TSelf) => TConfig[]): ((self: TSelf) => TConfig[]) | undefined;
|
|
1135
|
-
}
|
|
1136
|
-
//#endregion
|
|
1137
|
-
//#region ../../src/orm/providers/DrizzleKitProvider.d.ts
|
|
1138
|
-
declare class DrizzleKitProvider {
|
|
1139
|
-
protected readonly log: alepha_logger4.Logger;
|
|
1140
|
-
protected readonly alepha: Alepha;
|
|
1141
|
-
/**
|
|
1142
|
-
* Synchronize database with current schema definitions.
|
|
1143
|
-
*
|
|
1144
|
-
* In development mode, it will generate and execute migrations based on the current state.
|
|
1145
|
-
* In testing mode, it will generate migrations from scratch without applying them.
|
|
1146
|
-
*
|
|
1147
|
-
* Does nothing in production mode, you must handle migrations manually.
|
|
1148
|
-
*/
|
|
1149
|
-
synchronize(provider: DatabaseProvider): Promise<void>;
|
|
1150
|
-
/**
|
|
1151
|
-
* Mostly used for testing purposes. You can generate SQL migration statements without executing them.
|
|
1152
|
-
*/
|
|
1153
|
-
generateMigration(provider: DatabaseProvider, prevSnapshot?: any): Promise<{
|
|
1154
|
-
statements: string[];
|
|
1155
|
-
models: Record<string, unknown>;
|
|
1156
|
-
snapshot?: any;
|
|
1157
|
-
}>;
|
|
1158
|
-
/**
|
|
1159
|
-
* Load all tables, enums, sequences, etc. from the provider's repositories.
|
|
1160
|
-
*/
|
|
1161
|
-
getModels(provider: DatabaseProvider): Record<string, unknown>;
|
|
1162
|
-
/**
|
|
1163
|
-
* Load the migration snapshot from the database.
|
|
1164
|
-
*/
|
|
1165
|
-
protected loadDevMigrations(provider: DatabaseProvider): Promise<DevMigrations | undefined>;
|
|
1166
|
-
protected saveDevMigrations(provider: DatabaseProvider, curr: Record<string, any>, devMigrations?: DevMigrations): Promise<void>;
|
|
1167
|
-
protected executeStatements(statements: string[], provider: DatabaseProvider, catchErrors?: boolean): Promise<void>;
|
|
1168
|
-
protected createSchemaIfNotExists(provider: DatabaseProvider, schemaName: string): Promise<void>;
|
|
1169
|
-
/**
|
|
1170
|
-
* Try to load the official Drizzle Kit API.
|
|
1171
|
-
* If not available, fallback to the local kit import.
|
|
1172
|
-
*/
|
|
1173
|
-
importDrizzleKit(): typeof DrizzleKit;
|
|
1174
|
-
}
|
|
1175
|
-
declare const devMigrationsSchema: alepha34.TObject<{
|
|
1176
|
-
id: alepha34.TNumber;
|
|
1177
|
-
name: alepha34.TString;
|
|
1178
|
-
snapshot: alepha34.TString;
|
|
1179
|
-
created_at: alepha34.TString;
|
|
1180
|
-
}>;
|
|
1181
|
-
type DevMigrations = Static<typeof devMigrationsSchema>;
|
|
1182
|
-
//#endregion
|
|
1183
|
-
//#region ../../src/orm/providers/drivers/DatabaseProvider.d.ts
|
|
1184
|
-
type SQLLike = SQLWrapper | string;
|
|
1185
|
-
declare abstract class DatabaseProvider {
|
|
1186
|
-
protected readonly alepha: Alepha;
|
|
1187
|
-
protected readonly log: alepha_logger4.Logger;
|
|
1188
|
-
protected abstract readonly builder: ModelBuilder;
|
|
1189
|
-
protected abstract readonly kit: DrizzleKitProvider;
|
|
1190
|
-
abstract readonly db: PgDatabase<any>;
|
|
1191
|
-
abstract readonly dialect: "postgresql" | "sqlite";
|
|
1192
|
-
abstract readonly url: string;
|
|
1193
|
-
readonly enums: Map<string, unknown>;
|
|
1194
|
-
readonly tables: Map<string, unknown>;
|
|
1195
|
-
readonly sequences: Map<string, unknown>;
|
|
1196
|
-
get name(): string;
|
|
1197
|
-
get driver(): string;
|
|
1198
|
-
get schema(): string;
|
|
1199
|
-
table<T extends TObject>(entity: EntityPrimitive<T>): PgTableWithColumns<SchemaToTableConfig<T>>;
|
|
1200
|
-
registerEntity(entity: EntityPrimitive): void;
|
|
1201
|
-
registerSequence(sequence: SequencePrimitive): void;
|
|
1202
|
-
abstract execute(statement: SQLLike): Promise<Record<string, unknown>[]>;
|
|
1203
|
-
run<T extends TObject>(statement: SQLLike, schema: T): Promise<Array<Static<T>>>;
|
|
1204
|
-
/**
|
|
1205
|
-
* Get migrations folder path - can be overridden
|
|
1206
|
-
*/
|
|
1207
|
-
protected getMigrationsFolder(): string;
|
|
1208
|
-
/**
|
|
1209
|
-
* Base migration orchestration - handles environment logic
|
|
1210
|
-
*/
|
|
1211
|
-
migrate(): Promise<void>;
|
|
1212
|
-
/**
|
|
1213
|
-
* Production: run migrations from folder
|
|
1214
|
-
*/
|
|
1215
|
-
protected runProductionMigration(migrationsFolder: string): Promise<void>;
|
|
1216
|
-
/**
|
|
1217
|
-
* Test: always synchronize
|
|
1218
|
-
*/
|
|
1219
|
-
protected runTestMigration(): Promise<void>;
|
|
1220
|
-
/**
|
|
1221
|
-
* Development: default to synchronize (can be overridden)
|
|
1377
|
+
* The column is nullable - NULL means not deleted, timestamp means deleted.
|
|
1222
1378
|
*/
|
|
1223
|
-
|
|
1379
|
+
readonly deletedAt: (options?: TStringOptions) => PgAttr<alepha26.TOptional<TString>, typeof PG_DELETED_AT>;
|
|
1224
1380
|
/**
|
|
1225
|
-
*
|
|
1381
|
+
* Creates a Postgres ENUM type.
|
|
1382
|
+
*
|
|
1383
|
+
* > By default, `t.enum()` is mapped to a TEXT column in Postgres.
|
|
1384
|
+
* > Using this method, you can create a real ENUM type in the database.
|
|
1385
|
+
*
|
|
1386
|
+
* @example
|
|
1387
|
+
* ```ts
|
|
1388
|
+
* const statusEnum = pg.enum(["pending", "active", "archived"], { name: "status_enum" });
|
|
1389
|
+
* ```
|
|
1226
1390
|
*/
|
|
1227
|
-
|
|
1391
|
+
readonly enum: <T extends string[]>(values: [...T], pgEnumOptions?: PgEnumOptions, typeOptions?: TStringOptions) => PgAttr<TUnsafe<T[number]>, typeof PG_ENUM>;
|
|
1228
1392
|
/**
|
|
1229
|
-
*
|
|
1230
|
-
* MUST be implemented by each provider
|
|
1393
|
+
* Creates a reference to another table or schema. Basically a foreign key.
|
|
1231
1394
|
*/
|
|
1232
|
-
|
|
1395
|
+
readonly ref: <T extends TSchema>(type: T, ref: () => any, actions?: {
|
|
1396
|
+
onUpdate?: UpdateDeleteAction$1;
|
|
1397
|
+
onDelete?: UpdateDeleteAction$1;
|
|
1398
|
+
}) => PgAttr<T, PgRef>;
|
|
1233
1399
|
/**
|
|
1234
|
-
*
|
|
1235
|
-
*
|
|
1236
|
-
* It will be in the format of `test_YYYYMMDD_HHMMSS_randomSuffix`.
|
|
1400
|
+
* Creates a page schema for a given object schema.
|
|
1401
|
+
* It's used by {@link Repository#paginate} method.
|
|
1237
1402
|
*/
|
|
1238
|
-
|
|
1403
|
+
readonly page: <T extends TObject>(resource: T, options?: TObjectOptions) => TPage<T>;
|
|
1239
1404
|
}
|
|
1405
|
+
/**
|
|
1406
|
+
* Wrapper of TypeProvider (`t`) for database types.
|
|
1407
|
+
*
|
|
1408
|
+
* Use `db` for improve TypeBox schema definitions with database-specific attributes.
|
|
1409
|
+
*
|
|
1410
|
+
* @example
|
|
1411
|
+
* ```ts
|
|
1412
|
+
* import { t } from "alepha";
|
|
1413
|
+
* import { db } from "alepha/orm";
|
|
1414
|
+
*
|
|
1415
|
+
* const userSchema = t.object({
|
|
1416
|
+
* id: db.primaryKey(t.uuid()),
|
|
1417
|
+
* email: t.email(),
|
|
1418
|
+
* createdAt: db.createdAt(),
|
|
1419
|
+
* });
|
|
1420
|
+
* ```
|
|
1421
|
+
*/
|
|
1422
|
+
declare const db: DatabaseTypeProvider;
|
|
1423
|
+
/**
|
|
1424
|
+
* @deprecated Use `db` instead.
|
|
1425
|
+
*/
|
|
1426
|
+
declare const pg: DatabaseTypeProvider;
|
|
1427
|
+
//#endregion
|
|
1428
|
+
//#region ../../src/orm/schemas/legacyIdSchema.d.ts
|
|
1429
|
+
/**
|
|
1430
|
+
* @deprecated Use `pg.primaryKey()` instead.
|
|
1431
|
+
*/
|
|
1432
|
+
declare const legacyIdSchema: PgAttr<PgAttr<PgAttr<alepha26.TInteger, typeof PG_PRIMARY_KEY>, typeof PG_SERIAL>, typeof PG_DEFAULT>;
|
|
1240
1433
|
//#endregion
|
|
1241
1434
|
//#region ../../src/orm/services/QueryManager.d.ts
|
|
1242
1435
|
declare class QueryManager {
|
|
@@ -1302,7 +1495,7 @@ declare class QueryManager {
|
|
|
1302
1495
|
createPagination<T>(entities: T[], limit?: number, offset?: number, sort?: Array<{
|
|
1303
1496
|
column: string;
|
|
1304
1497
|
direction: "asc" | "desc";
|
|
1305
|
-
}>):
|
|
1498
|
+
}>): alepha26.Page<T>;
|
|
1306
1499
|
}
|
|
1307
1500
|
interface PgJoin {
|
|
1308
1501
|
table: string;
|
|
@@ -1487,7 +1680,7 @@ declare abstract class Repository<T extends TObject> {
|
|
|
1487
1680
|
/**
|
|
1488
1681
|
* Find an entity and update it.
|
|
1489
1682
|
*/
|
|
1490
|
-
updateOne(where: PgQueryWhereOrSQL<T>, data:
|
|
1683
|
+
updateOne(where: PgQueryWhereOrSQL<T>, data: WithSQL<Static<TObjectUpdate<T>>>, opts?: StatementOptions): Promise<Static<T>>;
|
|
1491
1684
|
/**
|
|
1492
1685
|
* Save a given entity.
|
|
1493
1686
|
*
|
|
@@ -1512,11 +1705,11 @@ declare abstract class Repository<T extends TObject> {
|
|
|
1512
1705
|
/**
|
|
1513
1706
|
* Find an entity by ID and update it.
|
|
1514
1707
|
*/
|
|
1515
|
-
updateById(id: string | number, data:
|
|
1708
|
+
updateById(id: string | number, data: WithSQL<Static<TObjectUpdate<T>>>, opts?: StatementOptions): Promise<Static<T>>;
|
|
1516
1709
|
/**
|
|
1517
1710
|
* Find many entities and update all of them.
|
|
1518
1711
|
*/
|
|
1519
|
-
updateMany(where: PgQueryWhereOrSQL<T>, data:
|
|
1712
|
+
updateMany(where: PgQueryWhereOrSQL<T>, data: WithSQL<Static<TObjectUpdate<T>>>, opts?: StatementOptions): Promise<Array<number | string>>;
|
|
1520
1713
|
/**
|
|
1521
1714
|
* Find many and delete all of them.
|
|
1522
1715
|
* @returns Array of deleted entity IDs
|
|
@@ -1611,6 +1804,7 @@ interface StatementOptions {
|
|
|
1611
1804
|
*/
|
|
1612
1805
|
now?: DateTime | string;
|
|
1613
1806
|
}
|
|
1807
|
+
type WithSQL<T> = { [P in keyof T]?: T[P] | SQL };
|
|
1614
1808
|
//#endregion
|
|
1615
1809
|
//#region ../../src/orm/primitives/$repository.d.ts
|
|
1616
1810
|
/**
|
|
@@ -1739,160 +1933,6 @@ interface TransactionPrimitiveOptions<T extends any[], R> {
|
|
|
1739
1933
|
}
|
|
1740
1934
|
type TransactionContext = PgTransaction<any, any, any>;
|
|
1741
1935
|
//#endregion
|
|
1742
|
-
//#region ../../src/orm/services/SqliteModelBuilder.d.ts
|
|
1743
|
-
declare class SqliteModelBuilder extends ModelBuilder {
|
|
1744
|
-
buildTable(entity: EntityPrimitive<any>, options: {
|
|
1745
|
-
tables: Map<string, unknown>;
|
|
1746
|
-
enums: Map<string, unknown>;
|
|
1747
|
-
schema: string;
|
|
1748
|
-
}): void;
|
|
1749
|
-
buildSequence(sequence: SequencePrimitive, options: {
|
|
1750
|
-
sequences: Map<string, unknown>;
|
|
1751
|
-
schema: string;
|
|
1752
|
-
}): void;
|
|
1753
|
-
/**
|
|
1754
|
-
* Get SQLite-specific config builder for the table.
|
|
1755
|
-
*/
|
|
1756
|
-
protected getTableConfig(entity: EntityPrimitive, tables: Map<string, unknown>): ((self: BuildColumns<string, any, "sqlite">) => any) | undefined;
|
|
1757
|
-
schemaToSqliteColumns: <T extends TObject>(tableName: string, schema: T, enums: Map<string, unknown>, tables: Map<string, unknown>) => SchemaToSqliteBuilder<T>;
|
|
1758
|
-
mapFieldToSqliteColumn: (tableName: string, fieldName: string, value: TSchema, enums: Map<string, any>) => pg$1.SQLiteIntegerBuilderInitial<string> | pg$1.SQLiteNumericBuilderInitial<string> | pg$1.SQLiteTextBuilderInitial<string, [string, ...string[]], number | undefined> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
|
|
1759
|
-
name: string;
|
|
1760
|
-
dataType: "custom";
|
|
1761
|
-
columnType: "SQLiteCustomColumn";
|
|
1762
|
-
data: string;
|
|
1763
|
-
driverParam: string;
|
|
1764
|
-
enumValues: undefined;
|
|
1765
|
-
}>, string> | pg$1.SQLiteCustomColumnBuilder<{
|
|
1766
|
-
name: string;
|
|
1767
|
-
dataType: "custom";
|
|
1768
|
-
columnType: "SQLiteCustomColumn";
|
|
1769
|
-
data: string;
|
|
1770
|
-
driverParam: number;
|
|
1771
|
-
enumValues: undefined;
|
|
1772
|
-
}> | pg$1.SQLiteCustomColumnBuilder<{
|
|
1773
|
-
name: string;
|
|
1774
|
-
dataType: "custom";
|
|
1775
|
-
columnType: "SQLiteCustomColumn";
|
|
1776
|
-
data: boolean;
|
|
1777
|
-
driverParam: number;
|
|
1778
|
-
enumValues: undefined;
|
|
1779
|
-
}> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
|
|
1780
|
-
name: string;
|
|
1781
|
-
dataType: "custom";
|
|
1782
|
-
columnType: "SQLiteCustomColumn";
|
|
1783
|
-
data: {
|
|
1784
|
-
[x: string]: unknown;
|
|
1785
|
-
[x: number]: unknown;
|
|
1786
|
-
[x: symbol]: unknown;
|
|
1787
|
-
};
|
|
1788
|
-
driverParam: string;
|
|
1789
|
-
enumValues: undefined;
|
|
1790
|
-
}>, {
|
|
1791
|
-
[x: string]: unknown;
|
|
1792
|
-
[x: number]: unknown;
|
|
1793
|
-
[x: symbol]: unknown;
|
|
1794
|
-
}> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
|
|
1795
|
-
name: string;
|
|
1796
|
-
dataType: "custom";
|
|
1797
|
-
columnType: "SQLiteCustomColumn";
|
|
1798
|
-
data: typebox1.StaticRecord<[], "Decode", {}, {}, string, TSchema>;
|
|
1799
|
-
driverParam: string;
|
|
1800
|
-
enumValues: undefined;
|
|
1801
|
-
}>, typebox1.StaticRecord<[], "Decode", {}, {}, string, TSchema>> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
|
|
1802
|
-
name: string;
|
|
1803
|
-
dataType: "custom";
|
|
1804
|
-
columnType: "SQLiteCustomColumn";
|
|
1805
|
-
data: any;
|
|
1806
|
-
driverParam: string;
|
|
1807
|
-
enumValues: undefined;
|
|
1808
|
-
}>, any> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
|
|
1809
|
-
name: string;
|
|
1810
|
-
dataType: "custom";
|
|
1811
|
-
columnType: "SQLiteCustomColumn";
|
|
1812
|
-
data: unknown[];
|
|
1813
|
-
driverParam: string;
|
|
1814
|
-
enumValues: undefined;
|
|
1815
|
-
}>, unknown[]>;
|
|
1816
|
-
mapStringToSqliteColumn: (key: string, value: TString) => pg$1.SQLiteTextBuilderInitial<string, [string, ...string[]], number | undefined> | drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
|
|
1817
|
-
name: string;
|
|
1818
|
-
dataType: "custom";
|
|
1819
|
-
columnType: "SQLiteCustomColumn";
|
|
1820
|
-
data: string;
|
|
1821
|
-
driverParam: string;
|
|
1822
|
-
enumValues: undefined;
|
|
1823
|
-
}>, string> | pg$1.SQLiteCustomColumnBuilder<{
|
|
1824
|
-
name: string;
|
|
1825
|
-
dataType: "custom";
|
|
1826
|
-
columnType: "SQLiteCustomColumn";
|
|
1827
|
-
data: string;
|
|
1828
|
-
driverParam: number;
|
|
1829
|
-
enumValues: undefined;
|
|
1830
|
-
}>;
|
|
1831
|
-
sqliteJson: <TDocument extends TSchema>(name: string, document: TDocument) => drizzle_orm0.$Type<pg$1.SQLiteCustomColumnBuilder<{
|
|
1832
|
-
name: string;
|
|
1833
|
-
dataType: "custom";
|
|
1834
|
-
columnType: "SQLiteCustomColumn";
|
|
1835
|
-
data: typebox1.StaticType<[], "Decode", {}, {}, TDocument>;
|
|
1836
|
-
driverParam: string;
|
|
1837
|
-
enumValues: undefined;
|
|
1838
|
-
}>, typebox1.StaticType<[], "Decode", {}, {}, TDocument>>;
|
|
1839
|
-
sqliteDateTime: {
|
|
1840
|
-
<TConfig extends Record<string, any>>(fieldConfig: TConfig): pg$1.SQLiteCustomColumnBuilder<{
|
|
1841
|
-
name: "";
|
|
1842
|
-
dataType: "custom";
|
|
1843
|
-
columnType: "SQLiteCustomColumn";
|
|
1844
|
-
data: string;
|
|
1845
|
-
driverParam: number;
|
|
1846
|
-
enumValues: undefined;
|
|
1847
|
-
}>;
|
|
1848
|
-
<TName extends string>(dbName: TName, fieldConfig: unknown): pg$1.SQLiteCustomColumnBuilder<{
|
|
1849
|
-
name: TName;
|
|
1850
|
-
dataType: "custom";
|
|
1851
|
-
columnType: "SQLiteCustomColumn";
|
|
1852
|
-
data: string;
|
|
1853
|
-
driverParam: number;
|
|
1854
|
-
enumValues: undefined;
|
|
1855
|
-
}>;
|
|
1856
|
-
};
|
|
1857
|
-
sqliteBool: {
|
|
1858
|
-
<TConfig extends Record<string, any>>(fieldConfig: TConfig): pg$1.SQLiteCustomColumnBuilder<{
|
|
1859
|
-
name: "";
|
|
1860
|
-
dataType: "custom";
|
|
1861
|
-
columnType: "SQLiteCustomColumn";
|
|
1862
|
-
data: boolean;
|
|
1863
|
-
driverParam: number;
|
|
1864
|
-
enumValues: undefined;
|
|
1865
|
-
}>;
|
|
1866
|
-
<TName extends string>(dbName: TName, fieldConfig: unknown): pg$1.SQLiteCustomColumnBuilder<{
|
|
1867
|
-
name: TName;
|
|
1868
|
-
dataType: "custom";
|
|
1869
|
-
columnType: "SQLiteCustomColumn";
|
|
1870
|
-
data: boolean;
|
|
1871
|
-
driverParam: number;
|
|
1872
|
-
enumValues: undefined;
|
|
1873
|
-
}>;
|
|
1874
|
-
};
|
|
1875
|
-
sqliteDate: {
|
|
1876
|
-
<TConfig extends Record<string, any>>(fieldConfig: TConfig): pg$1.SQLiteCustomColumnBuilder<{
|
|
1877
|
-
name: "";
|
|
1878
|
-
dataType: "custom";
|
|
1879
|
-
columnType: "SQLiteCustomColumn";
|
|
1880
|
-
data: string;
|
|
1881
|
-
driverParam: number;
|
|
1882
|
-
enumValues: undefined;
|
|
1883
|
-
}>;
|
|
1884
|
-
<TName extends string>(dbName: TName, fieldConfig: unknown): pg$1.SQLiteCustomColumnBuilder<{
|
|
1885
|
-
name: TName;
|
|
1886
|
-
dataType: "custom";
|
|
1887
|
-
columnType: "SQLiteCustomColumn";
|
|
1888
|
-
data: string;
|
|
1889
|
-
driverParam: number;
|
|
1890
|
-
enumValues: undefined;
|
|
1891
|
-
}>;
|
|
1892
|
-
};
|
|
1893
|
-
}
|
|
1894
|
-
type SchemaToSqliteBuilder<T extends TObject> = { [key in keyof T["properties"]]: SQLiteColumnBuilderBase };
|
|
1895
|
-
//#endregion
|
|
1896
1936
|
//#region ../../src/orm/providers/drivers/CloudflareD1Provider.d.ts
|
|
1897
1937
|
/**
|
|
1898
1938
|
* D1Database interface matching Cloudflare's D1 API.
|
|
@@ -1952,7 +1992,7 @@ declare class CloudflareD1Provider extends DatabaseProvider {
|
|
|
1952
1992
|
get url(): string;
|
|
1953
1993
|
get db(): PgDatabase<any>;
|
|
1954
1994
|
execute(query: SQLLike): Promise<Array<Record<string, unknown>>>;
|
|
1955
|
-
protected readonly onStart:
|
|
1995
|
+
protected readonly onStart: alepha26.HookPrimitive<"start">;
|
|
1956
1996
|
protected executeMigrations(migrationsFolder: string): Promise<void>;
|
|
1957
1997
|
/**
|
|
1958
1998
|
* Override development migration to skip sync (not supported on D1).
|
|
@@ -1970,7 +2010,7 @@ declare class CloudflareD1Provider extends DatabaseProvider {
|
|
|
1970
2010
|
declare class RepositoryProvider {
|
|
1971
2011
|
protected readonly alepha: Alepha;
|
|
1972
2012
|
protected readonly registry: Map<EntityPrimitive<any>, Service<Repository<any>>>;
|
|
1973
|
-
getRepositories(provider?: DatabaseProvider): Repository<TObject<
|
|
2013
|
+
getRepositories(provider?: DatabaseProvider): Repository<TObject<alepha26.TProperties>>[];
|
|
1974
2014
|
getRepository<T extends TObject>(entity: EntityPrimitive<T>): Repository<T>;
|
|
1975
2015
|
createClassRepository<T extends TObject>(entity: EntityPrimitive<T>): Service<Repository<T>>;
|
|
1976
2016
|
}
|
|
@@ -1983,10 +2023,10 @@ declare const schema: <TDocument extends TSchema>(name: string, document: TDocum
|
|
|
1983
2023
|
name: string;
|
|
1984
2024
|
dataType: "custom";
|
|
1985
2025
|
columnType: "PgCustomColumn";
|
|
1986
|
-
data:
|
|
2026
|
+
data: typebox0.StaticType<[], "Decode", {}, {}, TDocument>;
|
|
1987
2027
|
driverParam: string;
|
|
1988
2028
|
enumValues: undefined;
|
|
1989
|
-
}>,
|
|
2029
|
+
}>, typebox0.StaticType<[], "Decode", {}, {}, TDocument>>;
|
|
1990
2030
|
//#endregion
|
|
1991
2031
|
//#region ../../src/orm/services/PostgresModelBuilder.d.ts
|
|
1992
2032
|
declare class PostgresModelBuilder extends ModelBuilder {
|
|
@@ -2027,7 +2067,7 @@ declare class PostgresModelBuilder extends ModelBuilder {
|
|
|
2027
2067
|
declare module "alepha" {
|
|
2028
2068
|
interface Env extends Partial<Static<typeof envSchema$1>> {}
|
|
2029
2069
|
}
|
|
2030
|
-
declare const envSchema$1:
|
|
2070
|
+
declare const envSchema$1: alepha26.TObject<{
|
|
2031
2071
|
/**
|
|
2032
2072
|
* Main configuration for database connection.
|
|
2033
2073
|
* Accept a string in the format of a Postgres connection URL.
|
|
@@ -2035,11 +2075,11 @@ declare const envSchema$1: alepha34.TObject<{
|
|
|
2035
2075
|
* or
|
|
2036
2076
|
* Example: postgres://user:password@localhost:5432/database?sslmode=require
|
|
2037
2077
|
*/
|
|
2038
|
-
DATABASE_URL:
|
|
2078
|
+
DATABASE_URL: alepha26.TOptional<alepha26.TString>;
|
|
2039
2079
|
/**
|
|
2040
2080
|
* In addition to the DATABASE_URL, you can specify the postgres schema name.
|
|
2041
2081
|
*/
|
|
2042
|
-
POSTGRES_SCHEMA:
|
|
2082
|
+
POSTGRES_SCHEMA: alepha26.TOptional<alepha26.TString>;
|
|
2043
2083
|
}>;
|
|
2044
2084
|
/**
|
|
2045
2085
|
* Bun PostgreSQL provider using Drizzle ORM with Bun's native SQL client.
|
|
@@ -2089,8 +2129,8 @@ declare class BunPostgresProvider extends DatabaseProvider {
|
|
|
2089
2129
|
*/
|
|
2090
2130
|
get db(): PgDatabase<any>;
|
|
2091
2131
|
protected executeMigrations(migrationsFolder: string): Promise<void>;
|
|
2092
|
-
protected readonly onStart:
|
|
2093
|
-
protected readonly onStop:
|
|
2132
|
+
protected readonly onStart: alepha26.HookPrimitive<"start">;
|
|
2133
|
+
protected readonly onStop: alepha26.HookPrimitive<"stop">;
|
|
2094
2134
|
connect(): Promise<void>;
|
|
2095
2135
|
close(): Promise<void>;
|
|
2096
2136
|
protected migrateLock: alepha_lock0.LockPrimitive<() => Promise<void>>;
|
|
@@ -2100,8 +2140,8 @@ declare class BunPostgresProvider extends DatabaseProvider {
|
|
|
2100
2140
|
/**
|
|
2101
2141
|
* Configuration options for the Bun SQLite database provider.
|
|
2102
2142
|
*/
|
|
2103
|
-
declare const bunSqliteOptions:
|
|
2104
|
-
path:
|
|
2143
|
+
declare const bunSqliteOptions: alepha26.Atom<alepha26.TObject<{
|
|
2144
|
+
path: alepha26.TOptional<alepha26.TString>;
|
|
2105
2145
|
}>, "alepha.postgres.bun-sqlite.options">;
|
|
2106
2146
|
type BunSqliteProviderOptions = Static<typeof bunSqliteOptions.schema>;
|
|
2107
2147
|
declare module "alepha" {
|
|
@@ -2150,8 +2190,8 @@ declare class BunSqliteProvider extends DatabaseProvider {
|
|
|
2150
2190
|
get url(): string;
|
|
2151
2191
|
get db(): PgDatabase<any>;
|
|
2152
2192
|
execute(query: SQLLike): Promise<Array<Record<string, unknown>>>;
|
|
2153
|
-
protected readonly onStart:
|
|
2154
|
-
protected readonly onStop:
|
|
2193
|
+
protected readonly onStart: alepha26.HookPrimitive<"start">;
|
|
2194
|
+
protected readonly onStop: alepha26.HookPrimitive<"stop">;
|
|
2155
2195
|
protected executeMigrations(migrationsFolder: string): Promise<void>;
|
|
2156
2196
|
}
|
|
2157
2197
|
//#endregion
|
|
@@ -2159,7 +2199,7 @@ declare class BunSqliteProvider extends DatabaseProvider {
|
|
|
2159
2199
|
declare module "alepha" {
|
|
2160
2200
|
interface Env extends Partial<Static<typeof envSchema>> {}
|
|
2161
2201
|
}
|
|
2162
|
-
declare const envSchema:
|
|
2202
|
+
declare const envSchema: alepha26.TObject<{
|
|
2163
2203
|
/**
|
|
2164
2204
|
* Main configuration for database connection.
|
|
2165
2205
|
* Accept a string in the format of a Postgres connection URL.
|
|
@@ -2167,13 +2207,13 @@ declare const envSchema: alepha34.TObject<{
|
|
|
2167
2207
|
* or
|
|
2168
2208
|
* Example: postgres://user:password@localhost:5432/database?sslmode=require
|
|
2169
2209
|
*/
|
|
2170
|
-
DATABASE_URL:
|
|
2210
|
+
DATABASE_URL: alepha26.TOptional<alepha26.TString>;
|
|
2171
2211
|
/**
|
|
2172
2212
|
* In addition to the DATABASE_URL, you can specify the postgres schema name.
|
|
2173
2213
|
*
|
|
2174
2214
|
* It will monkey patch drizzle tables.
|
|
2175
2215
|
*/
|
|
2176
|
-
POSTGRES_SCHEMA:
|
|
2216
|
+
POSTGRES_SCHEMA: alepha26.TOptional<alepha26.TString>;
|
|
2177
2217
|
}>;
|
|
2178
2218
|
declare class NodePostgresProvider extends DatabaseProvider {
|
|
2179
2219
|
static readonly SSL_MODES: readonly ["require", "allow", "prefer", "verify-full"];
|
|
@@ -2206,8 +2246,8 @@ declare class NodePostgresProvider extends DatabaseProvider {
|
|
|
2206
2246
|
*/
|
|
2207
2247
|
get db(): PostgresJsDatabase;
|
|
2208
2248
|
protected executeMigrations(migrationsFolder: string): Promise<void>;
|
|
2209
|
-
protected readonly onStart:
|
|
2210
|
-
protected readonly onStop:
|
|
2249
|
+
protected readonly onStart: alepha26.HookPrimitive<"start">;
|
|
2250
|
+
protected readonly onStop: alepha26.HookPrimitive<"stop">;
|
|
2211
2251
|
connect(): Promise<void>;
|
|
2212
2252
|
close(): Promise<void>;
|
|
2213
2253
|
protected migrateLock: alepha_lock0.LockPrimitive<() => Promise<void>>;
|
|
@@ -2217,47 +2257,8 @@ declare class NodePostgresProvider extends DatabaseProvider {
|
|
|
2217
2257
|
protected getClientOptions(): postgres.Options<any>;
|
|
2218
2258
|
protected ssl(url: URL): "require" | "allow" | "prefer" | "verify-full" | undefined;
|
|
2219
2259
|
}
|
|
2220
|
-
//#endregion
|
|
2221
|
-
//#region ../../src/orm/providers/drivers/NodeSqliteProvider.d.ts
|
|
2222
|
-
/**
|
|
2223
|
-
* Configuration options for the Node.js SQLite database provider.
|
|
2224
|
-
*/
|
|
2225
|
-
declare const nodeSqliteOptions: alepha34.Atom<alepha34.TObject<{
|
|
2226
|
-
path: alepha34.TOptional<alepha34.TString>;
|
|
2227
|
-
}>, "alepha.postgres.node-sqlite.options">;
|
|
2228
|
-
type NodeSqliteProviderOptions = Static<typeof nodeSqliteOptions.schema>;
|
|
2229
|
-
declare module "alepha" {
|
|
2230
|
-
interface State {
|
|
2231
|
-
[nodeSqliteOptions.key]: NodeSqliteProviderOptions;
|
|
2232
|
-
}
|
|
2233
|
-
}
|
|
2234
|
-
/**
|
|
2235
|
-
* Add a fake support for SQLite in Node.js based on Postgres interfaces.
|
|
2236
|
-
*
|
|
2237
|
-
* This is NOT a real SQLite provider, it's a workaround to use SQLite with Drizzle ORM.
|
|
2238
|
-
* This is NOT recommended for production use.
|
|
2239
|
-
*/
|
|
2240
|
-
declare class NodeSqliteProvider extends DatabaseProvider {
|
|
2241
|
-
protected readonly kit: DrizzleKitProvider;
|
|
2242
|
-
protected readonly log: alepha_logger4.Logger;
|
|
2243
|
-
protected readonly env: {
|
|
2244
|
-
DATABASE_URL?: string | undefined;
|
|
2245
|
-
};
|
|
2246
|
-
protected readonly builder: SqliteModelBuilder;
|
|
2247
|
-
protected readonly options: Readonly<{
|
|
2248
|
-
path?: string | undefined;
|
|
2249
|
-
}>;
|
|
2250
|
-
protected sqlite: DatabaseSync;
|
|
2251
|
-
get name(): string;
|
|
2252
|
-
readonly dialect = "sqlite";
|
|
2253
|
-
get url(): string;
|
|
2254
|
-
execute(query: SQLLike): Promise<Array<Record<string, unknown>>>;
|
|
2255
|
-
readonly db: PgDatabase<any>;
|
|
2256
|
-
protected readonly onStart: alepha34.HookPrimitive<"start">;
|
|
2257
|
-
protected executeMigrations(migrationsFolder: string): Promise<void>;
|
|
2258
|
-
}
|
|
2259
2260
|
declare namespace index_d_exports {
|
|
2260
|
-
export { $entity, $repository, $sequence, $transaction,
|
|
2261
|
+
export { $entity, $repository, $sequence, $transaction, AlephaOrm, BunPostgresProvider, BunSqliteProvider, BunSqliteProviderOptions, CloudflareD1Provider, D1Database, D1ExecResult, D1PreparedStatement, D1Result, DatabaseProvider, DatabaseTypeProvider, DbConflictError, DbEntityNotFoundError, DbError, DbMigrationError, DbVersionMismatchError, DrizzleKitProvider, EntityColumn, EntityColumns, EntityPrimitive, EntityPrimitiveOptions, FilterOperators, FromSchema, NodePostgresProvider, NodeSqliteProvider, NodeSqliteProviderOptions, OrderBy, OrderByClause, OrderDirection, PG_CREATED_AT, PG_DEFAULT, PG_DELETED_AT, PG_ENUM, PG_IDENTITY, PG_PRIMARY_KEY, PG_REF, PG_SERIAL, PG_UPDATED_AT, PG_VERSION, Page, PageQuery, PgAttr, PgAttrField, PgDefault, PgEnumOptions, PgIdentityOptions, PgPrimaryKey, PgQuery, PgQueryRelations, PgQueryWhere, PgQueryWhereOrSQL, PgRef, PgRefOptions, PgRelation, PgRelationMap, PgStatic, PgSymbolKeys, PgSymbols, Repository, RepositoryProvider, SQLLike, SchemaToTableConfig, SequencePrimitive, SequencePrimitiveOptions, SqliteProvider, StatementOptions, TObjectInsert, TObjectUpdate, TransactionContext, TransactionPrimitiveOptions, buildQueryString, bunSqliteOptions, db, drizzle_orm0 as drizzle, getAttrFields, insertSchema, legacyIdSchema, nodeSqliteOptions, pageQuerySchema, pageSchema, parseQueryString, pg, pgAttr, schema, sql, updateSchema };
|
|
2261
2262
|
}
|
|
2262
2263
|
declare module "alepha" {
|
|
2263
2264
|
interface Hooks {
|
|
@@ -2325,58 +2326,31 @@ declare module "alepha" {
|
|
|
2325
2326
|
};
|
|
2326
2327
|
}
|
|
2327
2328
|
}
|
|
2329
|
+
declare const SqliteProvider: typeof NodeSqliteProvider;
|
|
2328
2330
|
/**
|
|
2329
|
-
*
|
|
2330
|
-
*
|
|
2331
|
-
*
|
|
2332
|
-
* - Bun: Uses `BunPostgresProvider` or `BunSqliteProvider`
|
|
2333
|
-
* - Node.js: Uses `NodePostgresProvider` or `NodeSqliteProvider`
|
|
2334
|
-
*
|
|
2335
|
-
* ```ts
|
|
2336
|
-
* import { t } from "alepha";
|
|
2337
|
-
* import { $entity, $repository, db } from "alepha/postgres";
|
|
2338
|
-
*
|
|
2339
|
-
* const users = $entity({
|
|
2340
|
-
* name: "users",
|
|
2341
|
-
* schema: t.object({
|
|
2342
|
-
* id: db.primaryKey(),
|
|
2343
|
-
* name: t.text(),
|
|
2344
|
-
* email: t.text(),
|
|
2345
|
-
* }),
|
|
2346
|
-
* });
|
|
2347
|
-
*
|
|
2348
|
-
* class App {
|
|
2349
|
-
* users = $repository(users);
|
|
2350
|
-
*
|
|
2351
|
-
* getUserByName(name: string) {
|
|
2352
|
-
* return this.users.findOne({ name: { eq: name } });
|
|
2353
|
-
* }
|
|
2354
|
-
* }
|
|
2355
|
-
* ```
|
|
2356
|
-
*
|
|
2357
|
-
* This is not a full ORM, but rather a set of tools to work with Postgres databases in a type-safe way.
|
|
2331
|
+
* | type | quality | stability |
|
|
2332
|
+
* |------|---------|-----------|
|
|
2333
|
+
* | backend | epic | stable |
|
|
2358
2334
|
*
|
|
2359
|
-
*
|
|
2360
|
-
* - A type-safe way to define entities and repositories. (via `$entity` and `$repository`)
|
|
2361
|
-
* - Custom query builders and filters.
|
|
2362
|
-
* - Built-in special columns like `createdAt`, `updatedAt`, `deletedAt`, `version`.
|
|
2363
|
-
* - Automatic JSONB support.
|
|
2364
|
-
* - Automatic synchronization of entities with the database schema (for testing and development).
|
|
2365
|
-
* - Fallback to raw SQL via Drizzle ORM `sql` function.
|
|
2335
|
+
* Full-featured database abstraction built on Drizzle ORM with complete type safety.
|
|
2366
2336
|
*
|
|
2367
|
-
*
|
|
2337
|
+
* **Features:**
|
|
2338
|
+
* - Define database entities with TypeBox schemas
|
|
2339
|
+
* - Automatic timestamps, soft deletes, and versioning columns
|
|
2340
|
+
* - Type-safe CRUD operations with filtering, pagination, sorting, and relationships
|
|
2341
|
+
* - Database transaction support with automatic rollback
|
|
2342
|
+
* - Auto-incrementing sequences for IDs
|
|
2343
|
+
* - PostgreSQL support (Node.js, Bun, Cloudflare Workers via pglite)
|
|
2344
|
+
* - SQLite support (Node.js, Bun, Cloudflare D1)
|
|
2345
|
+
* - Automatic schema sync for development/testing
|
|
2346
|
+
* - Drizzle Kit migrations for production
|
|
2347
|
+
* - Type-safe filters: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`, `like`, `between`
|
|
2348
|
+
* - JSONB column support
|
|
2349
|
+
* - Relationship joins
|
|
2368
2350
|
*
|
|
2369
|
-
* @see {@link $entity}
|
|
2370
|
-
* @see {@link $sequence}
|
|
2371
|
-
* @see {@link $repository}
|
|
2372
|
-
* @see {@link $transaction}
|
|
2373
|
-
* @see {@link NodePostgresProvider} - Node.js Postgres implementation
|
|
2374
|
-
* @see {@link NodeSqliteProvider} - Node.js SQLite implementation
|
|
2375
|
-
* @see {@link BunPostgresProvider} - Bun Postgres implementation
|
|
2376
|
-
* @see {@link BunSqliteProvider} - Bun SQLite implementation
|
|
2377
2351
|
* @module alepha.postgres
|
|
2378
2352
|
*/
|
|
2379
|
-
declare const
|
|
2353
|
+
declare const AlephaOrm: alepha26.Service<alepha26.Module>;
|
|
2380
2354
|
//#endregion
|
|
2381
|
-
export { $entity, $repository, $sequence, $transaction,
|
|
2355
|
+
export { $entity, $repository, $sequence, $transaction, AlephaOrm, BunPostgresProvider, BunSqliteProvider, BunSqliteProviderOptions, CloudflareD1Provider, D1Database, D1ExecResult, D1PreparedStatement, D1Result, DatabaseProvider, DatabaseTypeProvider, DbConflictError, DbEntityNotFoundError, DbError, DbMigrationError, DbVersionMismatchError, DrizzleKitProvider, EntityColumn, EntityColumns, EntityPrimitive, EntityPrimitiveOptions, FilterOperators, FromSchema, NodePostgresProvider, NodeSqliteProvider, NodeSqliteProviderOptions, OrderBy, OrderByClause, OrderDirection, PG_CREATED_AT, PG_DEFAULT, PG_DELETED_AT, PG_ENUM, PG_IDENTITY, PG_PRIMARY_KEY, PG_REF, PG_SERIAL, PG_UPDATED_AT, PG_VERSION, type Page, type PageQuery, PgAttr, PgAttrField, PgDefault, PgEnumOptions, PgIdentityOptions, PgPrimaryKey, PgQuery, PgQueryRelations, PgQueryWhere, PgQueryWhereOrSQL, PgRef, PgRefOptions, PgRelation, PgRelationMap, PgStatic, PgSymbolKeys, PgSymbols, Repository, RepositoryProvider, SQLLike, SchemaToTableConfig, SequencePrimitive, SequencePrimitiveOptions, SqliteProvider, StatementOptions, TObjectInsert, TObjectUpdate, TransactionContext, TransactionPrimitiveOptions, buildQueryString, bunSqliteOptions, db, drizzle_orm0 as drizzle, getAttrFields, insertSchema, legacyIdSchema, nodeSqliteOptions, pageQuerySchema, pageSchema, parseQueryString, pg, pgAttr, schema, sql, updateSchema };
|
|
2382
2356
|
//# sourceMappingURL=index.d.ts.map
|