alepha 0.15.1 → 0.15.3
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/README.md +68 -80
- package/dist/api/audits/index.d.ts +10 -33
- 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 +10 -3
- 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 +43 -50
- 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 +1081 -760
- package/dist/api/users/index.d.ts.map +1 -1
- package/dist/api/users/index.js +2539 -218
- package/dist/api/users/index.js.map +1 -1
- package/dist/api/verifications/index.d.ts +138 -132
- 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 +440 -8
- package/dist/bucket/index.d.ts.map +1 -1
- package/dist/bucket/index.js +1861 -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 +638 -5645
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2550 -368
- package/dist/cli/index.js.map +1 -1
- package/dist/command/index.d.ts +203 -45
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +2060 -71
- package/dist/command/index.js.map +1 -1
- package/dist/core/index.browser.js +70 -40
- 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 +90 -40
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.native.js +70 -40
- 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 +323 -20
- package/dist/email/index.d.ts.map +1 -1
- package/dist/email/index.js +1857 -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 +10 -30
- 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 +39 -20
- package/dist/orm/index.bun.js.map +1 -1
- package/dist/orm/index.d.ts +517 -540
- package/dist/orm/index.d.ts.map +1 -1
- package/dist/orm/index.js +58 -71
- 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 +1974 -0
- package/dist/react/router/index.browser.js.map +1 -0
- package/dist/react/router/index.d.ts +1956 -0
- package/dist/react/router/index.d.ts.map +1 -0
- package/dist/react/router/index.js +4722 -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 +41 -44
- 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 +140 -49
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +164 -32
- package/dist/security/index.js.map +1 -1
- package/dist/server/auth/index.d.ts +12 -7
- 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 +124 -23
- 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 +8 -2
- 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 +11 -6
- 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 +1853 -5
- package/dist/server/static/index.js.map +1 -1
- package/dist/server/swagger/index.d.ts +309 -6
- package/dist/server/swagger/index.d.ts.map +1 -1
- package/dist/server/swagger/index.js +1854 -6
- package/dist/server/swagger/index.js.map +1 -1
- package/dist/sms/index.d.ts +309 -7
- package/dist/sms/index.d.ts.map +1 -1
- package/dist/sms/index.js +1856 -7
- package/dist/sms/index.js.map +1 -1
- package/dist/system/index.browser.js +1218 -0
- package/dist/system/index.browser.js.map +1 -0
- package/dist/{file → system}/index.d.ts +343 -16
- package/dist/system/index.d.ts.map +1 -0
- package/dist/{file → system}/index.js +419 -22
- 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 +5 -6272
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +23 -10
- 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 +82 -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 +55 -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 +10 -1
- package/src/cli/atoms/buildOptions.ts +99 -9
- package/src/cli/commands/build.ts +150 -37
- package/src/cli/commands/db.ts +22 -18
- 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 +588 -0
- package/src/cli/commands/init.ts +115 -58
- 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 +35 -16
- package/src/cli/services/AlephaCliUtils.ts +52 -121
- package/src/cli/services/PackageManagerUtils.ts +129 -11
- package/src/cli/services/ProjectScaffolder.spec.ts +97 -0
- package/src/cli/services/ProjectScaffolder.ts +148 -81
- package/src/cli/services/ViteUtils.ts +82 -0
- package/src/cli/{assets/claudeMd.ts → templates/agentMd.ts} +37 -24
- package/src/cli/templates/apiAppSecurityTs.ts +11 -0
- package/src/cli/templates/apiIndexTs.ts +30 -0
- 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 +74 -0
- package/src/cli/templates/webHelloComponentTsx.ts +30 -0
- package/src/command/helpers/Runner.spec.ts +139 -0
- package/src/command/helpers/Runner.ts +7 -22
- package/src/command/index.ts +12 -4
- package/src/command/providers/CliProvider.spec.ts +1392 -0
- package/src/command/providers/CliProvider.ts +320 -47
- package/src/core/Alepha.ts +34 -27
- 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 +5 -3
- package/src/orm/index.ts +23 -53
- package/src/orm/providers/drivers/BunSqliteProvider.ts +5 -1
- package/src/orm/providers/drivers/CloudflareD1Provider.ts +57 -30
- package/src/orm/providers/drivers/DatabaseProvider.ts +9 -1
- package/src/orm/providers/drivers/NodeSqliteProvider.ts +4 -1
- 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 +146 -0
- package/src/react/router/primitives/$page.browser.spec.tsx +851 -0
- package/src/react/router/primitives/$page.spec.tsx +676 -0
- package/src/react/router/primitives/$page.ts +489 -0
- package/src/react/router/providers/ReactBrowserProvider.ts +312 -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/ReactPreloadProvider.spec.ts +142 -0
- package/src/react/router/providers/ReactPreloadProvider.ts +85 -0
- package/src/react/router/providers/ReactServerProvider.spec.tsx +316 -0
- package/src/react/router/providers/ReactServerProvider.ts +487 -0
- package/src/react/router/providers/ReactServerTemplateProvider.spec.ts +210 -0
- package/src/react/router/providers/ReactServerTemplateProvider.ts +542 -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 +90 -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 +63 -41
- 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.spec.ts +9 -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 +36 -0
- package/src/system/index.ts +62 -0
- package/src/system/index.workerd.ts +1 -0
- package/src/{file → system}/providers/FileSystemProvider.ts +24 -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 +47 -2
- 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 +19 -13
- package/src/vite/tasks/generateCloudflare.ts +10 -7
- package/src/vite/tasks/generateDocker.ts +4 -0
- 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/apiIndexTs.ts +0 -16
- package/src/cli/assets/mainServerTs.ts +0 -24
- package/src/cli/assets/webAppRouterTs.ts +0 -16
- package/src/cli/assets/webHelloComponentTsx.ts +0 -20
- 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}/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/bucket/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as alepha1 from "alepha";
|
|
2
|
-
import { Alepha, AlephaError, FileLike, KIND, Primitive, Service, Static } from "alepha";
|
|
3
|
-
import { FileDetector, FileSystemProvider } from "alepha/file";
|
|
2
|
+
import { Alepha, AlephaError, FileLike, Json, KIND, Primitive, Service, Static, StreamLike } from "alepha";
|
|
4
3
|
import * as fs from "node:fs";
|
|
4
|
+
import { Readable } from "node:stream";
|
|
5
5
|
import * as alepha_logger0 from "alepha/logger";
|
|
6
6
|
|
|
7
7
|
//#region ../../src/bucket/providers/FileStorageProvider.d.ts
|
|
@@ -40,6 +40,431 @@ declare abstract class FileStorageProvider {
|
|
|
40
40
|
abstract delete(bucketName: string, fileId: string): Promise<void>;
|
|
41
41
|
}
|
|
42
42
|
//#endregion
|
|
43
|
+
//#region ../../src/system/providers/FileSystemProvider.d.ts
|
|
44
|
+
/**
|
|
45
|
+
* Options for creating a file from a URL
|
|
46
|
+
*/
|
|
47
|
+
interface CreateFileFromUrlOptions {
|
|
48
|
+
/**
|
|
49
|
+
* The URL to load the file from (file://, http://, or https://)
|
|
50
|
+
*/
|
|
51
|
+
url: string;
|
|
52
|
+
/**
|
|
53
|
+
* The MIME type of the file (optional, will be detected from filename if not provided)
|
|
54
|
+
*/
|
|
55
|
+
type?: string;
|
|
56
|
+
/**
|
|
57
|
+
* The name of the file (optional, will be extracted from URL if not provided)
|
|
58
|
+
*/
|
|
59
|
+
name?: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Options for creating a file from a path (URL with file:// scheme)
|
|
63
|
+
*/
|
|
64
|
+
interface CreateFileFromPathOptions {
|
|
65
|
+
/**
|
|
66
|
+
* The path to the file on the local filesystem
|
|
67
|
+
*/
|
|
68
|
+
path: string;
|
|
69
|
+
/**
|
|
70
|
+
* The MIME type of the file (optional, will be detected from filename if not provided)
|
|
71
|
+
*/
|
|
72
|
+
type?: string;
|
|
73
|
+
/**
|
|
74
|
+
* The name of the file (optional, will be extracted from URL if not provided)
|
|
75
|
+
*/
|
|
76
|
+
name?: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Options for creating a file from a Buffer
|
|
80
|
+
*/
|
|
81
|
+
interface CreateFileFromBufferOptions {
|
|
82
|
+
/**
|
|
83
|
+
* The Buffer containing the file data
|
|
84
|
+
*/
|
|
85
|
+
buffer: Buffer;
|
|
86
|
+
/**
|
|
87
|
+
* The MIME type of the file (optional, will be detected from name if not provided)
|
|
88
|
+
*/
|
|
89
|
+
type?: string;
|
|
90
|
+
/**
|
|
91
|
+
* The name of the file (required for proper content type detection)
|
|
92
|
+
*/
|
|
93
|
+
name?: string;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Options for creating a file from a stream
|
|
97
|
+
*/
|
|
98
|
+
interface CreateFileFromStreamOptions {
|
|
99
|
+
/**
|
|
100
|
+
* The readable stream containing the file data
|
|
101
|
+
*/
|
|
102
|
+
stream: StreamLike;
|
|
103
|
+
/**
|
|
104
|
+
* The MIME type of the file (optional, will be detected from name if not provided)
|
|
105
|
+
*/
|
|
106
|
+
type?: string;
|
|
107
|
+
/**
|
|
108
|
+
* The name of the file (required for proper content type detection)
|
|
109
|
+
*/
|
|
110
|
+
name?: string;
|
|
111
|
+
/**
|
|
112
|
+
* The size of the file in bytes (optional)
|
|
113
|
+
*/
|
|
114
|
+
size?: number;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Options for creating a file from text content
|
|
118
|
+
*/
|
|
119
|
+
interface CreateFileFromTextOptions {
|
|
120
|
+
/**
|
|
121
|
+
* The text content to create the file from
|
|
122
|
+
*/
|
|
123
|
+
text: string;
|
|
124
|
+
/**
|
|
125
|
+
* The MIME type of the file (default: text/plain)
|
|
126
|
+
*/
|
|
127
|
+
type?: string;
|
|
128
|
+
/**
|
|
129
|
+
* The name of the file (default: "file.txt")
|
|
130
|
+
*/
|
|
131
|
+
name?: string;
|
|
132
|
+
}
|
|
133
|
+
interface CreateFileFromResponseOptions {
|
|
134
|
+
/**
|
|
135
|
+
* The Response object containing the file data
|
|
136
|
+
*/
|
|
137
|
+
response: Response;
|
|
138
|
+
/**
|
|
139
|
+
* Override the name (optional, uses filename from Content-Disposition header if not provided)
|
|
140
|
+
*/
|
|
141
|
+
name?: string;
|
|
142
|
+
/**
|
|
143
|
+
* Override the MIME type (optional, uses file.type if not provided)
|
|
144
|
+
*/
|
|
145
|
+
type?: string;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Options for creating a file from a Web File object
|
|
149
|
+
*/
|
|
150
|
+
interface CreateFileFromWebFileOptions {
|
|
151
|
+
/**
|
|
152
|
+
* The Web File object
|
|
153
|
+
*/
|
|
154
|
+
file: File;
|
|
155
|
+
/**
|
|
156
|
+
* Override the MIME type (optional, uses file.type if not provided)
|
|
157
|
+
*/
|
|
158
|
+
type?: string;
|
|
159
|
+
/**
|
|
160
|
+
* Override the name (optional, uses file.name if not provided)
|
|
161
|
+
*/
|
|
162
|
+
name?: string;
|
|
163
|
+
/**
|
|
164
|
+
* Override the size (optional, uses file.size if not provided)
|
|
165
|
+
*/
|
|
166
|
+
size?: number;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Options for creating a file from an ArrayBuffer
|
|
170
|
+
*/
|
|
171
|
+
interface CreateFileFromArrayBufferOptions {
|
|
172
|
+
/**
|
|
173
|
+
* The ArrayBuffer containing the file data
|
|
174
|
+
*/
|
|
175
|
+
arrayBuffer: ArrayBuffer;
|
|
176
|
+
/**
|
|
177
|
+
* The MIME type of the file (optional, will be detected from name if not provided)
|
|
178
|
+
*/
|
|
179
|
+
type?: string;
|
|
180
|
+
/**
|
|
181
|
+
* The name of the file (required for proper content type detection)
|
|
182
|
+
*/
|
|
183
|
+
name?: string;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Union type for all createFile options
|
|
187
|
+
*/
|
|
188
|
+
type CreateFileOptions = CreateFileFromUrlOptions | CreateFileFromPathOptions | CreateFileFromBufferOptions | CreateFileFromStreamOptions | CreateFileFromTextOptions | CreateFileFromWebFileOptions | CreateFileFromResponseOptions | CreateFileFromArrayBufferOptions;
|
|
189
|
+
/**
|
|
190
|
+
* Options for rm (remove) operation
|
|
191
|
+
*/
|
|
192
|
+
interface RmOptions {
|
|
193
|
+
/**
|
|
194
|
+
* If true, removes directories and their contents recursively
|
|
195
|
+
*/
|
|
196
|
+
recursive?: boolean;
|
|
197
|
+
/**
|
|
198
|
+
* If true, no error will be thrown if the path does not exist
|
|
199
|
+
*/
|
|
200
|
+
force?: boolean;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Options for cp (copy) operation
|
|
204
|
+
*/
|
|
205
|
+
interface CpOptions {
|
|
206
|
+
/**
|
|
207
|
+
* If true, copy directories recursively
|
|
208
|
+
*/
|
|
209
|
+
recursive?: boolean;
|
|
210
|
+
/**
|
|
211
|
+
* If true, overwrite existing destination
|
|
212
|
+
*/
|
|
213
|
+
force?: boolean;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Options for mkdir operation
|
|
217
|
+
*/
|
|
218
|
+
interface MkdirOptions {
|
|
219
|
+
/**
|
|
220
|
+
* If true, creates parent directories as needed
|
|
221
|
+
*
|
|
222
|
+
* @default true
|
|
223
|
+
*/
|
|
224
|
+
recursive?: boolean;
|
|
225
|
+
/**
|
|
226
|
+
* If true, does not throw an error if the directory already exists
|
|
227
|
+
*
|
|
228
|
+
* @default true
|
|
229
|
+
*/
|
|
230
|
+
force?: boolean;
|
|
231
|
+
/**
|
|
232
|
+
* File mode (permission and sticky bits)
|
|
233
|
+
*/
|
|
234
|
+
mode?: number;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Options for ls (list) operation
|
|
238
|
+
*/
|
|
239
|
+
interface LsOptions {
|
|
240
|
+
/**
|
|
241
|
+
* If true, list contents of directories recursively
|
|
242
|
+
*/
|
|
243
|
+
recursive?: boolean;
|
|
244
|
+
/**
|
|
245
|
+
* If true, include hidden files (starting with .)
|
|
246
|
+
*/
|
|
247
|
+
hidden?: boolean;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* FileSystem interface providing utilities for working with files.
|
|
251
|
+
*/
|
|
252
|
+
declare abstract class FileSystemProvider {
|
|
253
|
+
/**
|
|
254
|
+
* Joins multiple path segments into a single path.
|
|
255
|
+
*
|
|
256
|
+
* @param paths - The path segments to join
|
|
257
|
+
* @returns The joined path
|
|
258
|
+
*/
|
|
259
|
+
abstract join(...paths: string[]): string;
|
|
260
|
+
/**
|
|
261
|
+
* Creates a FileLike object from various sources.
|
|
262
|
+
*
|
|
263
|
+
* @param options - Options for creating the file
|
|
264
|
+
* @returns A FileLike object
|
|
265
|
+
*/
|
|
266
|
+
abstract createFile(options: CreateFileOptions): FileLike;
|
|
267
|
+
/**
|
|
268
|
+
* Removes a file or directory.
|
|
269
|
+
*
|
|
270
|
+
* @param path - The path to remove
|
|
271
|
+
* @param options - Remove options
|
|
272
|
+
*/
|
|
273
|
+
abstract rm(path: string, options?: RmOptions): Promise<void>;
|
|
274
|
+
/**
|
|
275
|
+
* Copies a file or directory.
|
|
276
|
+
*
|
|
277
|
+
* @param src - Source path
|
|
278
|
+
* @param dest - Destination path
|
|
279
|
+
* @param options - Copy options
|
|
280
|
+
*/
|
|
281
|
+
abstract cp(src: string, dest: string, options?: CpOptions): Promise<void>;
|
|
282
|
+
/**
|
|
283
|
+
* Moves/renames a file or directory.
|
|
284
|
+
*
|
|
285
|
+
* @param src - Source path
|
|
286
|
+
* @param dest - Destination path
|
|
287
|
+
*/
|
|
288
|
+
abstract mv(src: string, dest: string): Promise<void>;
|
|
289
|
+
/**
|
|
290
|
+
* Creates a directory.
|
|
291
|
+
*
|
|
292
|
+
* @param path - The directory path to create
|
|
293
|
+
* @param options - Mkdir options
|
|
294
|
+
*/
|
|
295
|
+
abstract mkdir(path: string, options?: MkdirOptions): Promise<void>;
|
|
296
|
+
/**
|
|
297
|
+
* Lists files in a directory.
|
|
298
|
+
*
|
|
299
|
+
* @param path - The directory path to list
|
|
300
|
+
* @param options - List options
|
|
301
|
+
* @returns Array of filenames
|
|
302
|
+
*/
|
|
303
|
+
abstract ls(path: string, options?: LsOptions): Promise<string[]>;
|
|
304
|
+
/**
|
|
305
|
+
* Checks if a file or directory exists.
|
|
306
|
+
*
|
|
307
|
+
* @param path - The path to check
|
|
308
|
+
* @returns True if the path exists, false otherwise
|
|
309
|
+
*/
|
|
310
|
+
abstract exists(path: string): Promise<boolean>;
|
|
311
|
+
/**
|
|
312
|
+
* Reads the content of a file.
|
|
313
|
+
*
|
|
314
|
+
* @param path - The file path to read
|
|
315
|
+
* @returns The file content as a Buffer
|
|
316
|
+
*/
|
|
317
|
+
abstract readFile(path: string): Promise<Buffer>;
|
|
318
|
+
/**
|
|
319
|
+
* Writes data to a file.
|
|
320
|
+
*
|
|
321
|
+
* @param path - The file path to write to
|
|
322
|
+
* @param data - The data to write (Buffer or string)
|
|
323
|
+
*/
|
|
324
|
+
abstract writeFile(path: string, data: Uint8Array | Buffer | string | FileLike): Promise<void>;
|
|
325
|
+
/**
|
|
326
|
+
* Reads the content of a file as a string.
|
|
327
|
+
*
|
|
328
|
+
* @param path - The file path to read
|
|
329
|
+
* @returns The file content as a string
|
|
330
|
+
*/
|
|
331
|
+
abstract readTextFile(path: string): Promise<string>;
|
|
332
|
+
/**
|
|
333
|
+
* Reads the content of a file as JSON.
|
|
334
|
+
*
|
|
335
|
+
* @param path - The file path to read
|
|
336
|
+
* @returns The parsed JSON content
|
|
337
|
+
*/
|
|
338
|
+
abstract readJsonFile<T = unknown>(path: string): Promise<T>;
|
|
339
|
+
}
|
|
340
|
+
//#endregion
|
|
341
|
+
//#region ../../src/system/services/FileDetector.d.ts
|
|
342
|
+
interface FileTypeResult {
|
|
343
|
+
/**
|
|
344
|
+
* The detected MIME type
|
|
345
|
+
*/
|
|
346
|
+
mimeType: string;
|
|
347
|
+
/**
|
|
348
|
+
* The detected file extension
|
|
349
|
+
*/
|
|
350
|
+
extension: string;
|
|
351
|
+
/**
|
|
352
|
+
* Whether the file type was verified by magic bytes
|
|
353
|
+
*/
|
|
354
|
+
verified: boolean;
|
|
355
|
+
/**
|
|
356
|
+
* The stream (potentially wrapped to allow re-reading)
|
|
357
|
+
*/
|
|
358
|
+
stream: Readable;
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Service for detecting file types and getting content types.
|
|
362
|
+
*
|
|
363
|
+
* @example
|
|
364
|
+
* ```typescript
|
|
365
|
+
* const detector = alepha.inject(FileDetector);
|
|
366
|
+
*
|
|
367
|
+
* // Get content type from filename
|
|
368
|
+
* const mimeType = detector.getContentType("image.png"); // "image/png"
|
|
369
|
+
*
|
|
370
|
+
* // Detect file type by magic bytes
|
|
371
|
+
* const stream = createReadStream('image.png');
|
|
372
|
+
* const result = await detector.detectFileType(stream, 'image.png');
|
|
373
|
+
* console.log(result.mimeType); // 'image/png'
|
|
374
|
+
* console.log(result.verified); // true if magic bytes match
|
|
375
|
+
* ```
|
|
376
|
+
*/
|
|
377
|
+
declare class FileDetector {
|
|
378
|
+
/**
|
|
379
|
+
* Magic byte signatures for common file formats.
|
|
380
|
+
* Each signature is represented as an array of bytes or null (wildcard).
|
|
381
|
+
*/
|
|
382
|
+
protected static readonly MAGIC_BYTES: Record<string, {
|
|
383
|
+
signature: (number | null)[];
|
|
384
|
+
mimeType: string;
|
|
385
|
+
}[]>;
|
|
386
|
+
/**
|
|
387
|
+
* All possible format signatures for checking against actual file content
|
|
388
|
+
*/
|
|
389
|
+
protected static readonly ALL_SIGNATURES: {
|
|
390
|
+
signature: (number | null)[];
|
|
391
|
+
mimeType: string;
|
|
392
|
+
ext: string;
|
|
393
|
+
}[];
|
|
394
|
+
/**
|
|
395
|
+
* MIME type map for file extensions.
|
|
396
|
+
*
|
|
397
|
+
* Can be used to get the content type of file based on its extension.
|
|
398
|
+
* Feel free to add more mime types in your project!
|
|
399
|
+
*/
|
|
400
|
+
static readonly mimeMap: Record<string, string>;
|
|
401
|
+
/**
|
|
402
|
+
* Reverse MIME type map for looking up extensions from MIME types.
|
|
403
|
+
* Prefers shorter, more common extensions when multiple exist.
|
|
404
|
+
*/
|
|
405
|
+
protected static readonly reverseMimeMap: Record<string, string>;
|
|
406
|
+
/**
|
|
407
|
+
* Returns the file extension for a given MIME type.
|
|
408
|
+
*
|
|
409
|
+
* @param mimeType - The MIME type to look up
|
|
410
|
+
* @returns The file extension (without dot), or "bin" if not found
|
|
411
|
+
*
|
|
412
|
+
* @example
|
|
413
|
+
* ```typescript
|
|
414
|
+
* const detector = alepha.inject(FileDetector);
|
|
415
|
+
* const ext = detector.getExtensionFromMimeType("image/png"); // "png"
|
|
416
|
+
* const ext2 = detector.getExtensionFromMimeType("application/octet-stream"); // "bin"
|
|
417
|
+
* ```
|
|
418
|
+
*/
|
|
419
|
+
getExtensionFromMimeType(mimeType: string): string;
|
|
420
|
+
/**
|
|
421
|
+
* Returns the content type of file based on its filename.
|
|
422
|
+
*
|
|
423
|
+
* @param filename - The filename to check
|
|
424
|
+
* @returns The MIME type
|
|
425
|
+
*
|
|
426
|
+
* @example
|
|
427
|
+
* ```typescript
|
|
428
|
+
* const detector = alepha.inject(FileDetector);
|
|
429
|
+
* const mimeType = detector.getContentType("image.png"); // "image/png"
|
|
430
|
+
* ```
|
|
431
|
+
*/
|
|
432
|
+
getContentType(filename: string): string;
|
|
433
|
+
/**
|
|
434
|
+
* Detects the file type by checking magic bytes against the stream content.
|
|
435
|
+
*
|
|
436
|
+
* @param stream - The readable stream to check
|
|
437
|
+
* @param filename - The filename (used to get the extension)
|
|
438
|
+
* @returns File type information including MIME type, extension, and verification status
|
|
439
|
+
*
|
|
440
|
+
* @example
|
|
441
|
+
* ```typescript
|
|
442
|
+
* const detector = alepha.inject(FileDetector);
|
|
443
|
+
* const stream = createReadStream('image.png');
|
|
444
|
+
* const result = await detector.detectFileType(stream, 'image.png');
|
|
445
|
+
* console.log(result.mimeType); // 'image/png'
|
|
446
|
+
* console.log(result.verified); // true if magic bytes match
|
|
447
|
+
* ```
|
|
448
|
+
*/
|
|
449
|
+
detectFileType(stream: Readable, filename: string): Promise<FileTypeResult>;
|
|
450
|
+
/**
|
|
451
|
+
* Reads all bytes from a stream and returns the first N bytes along with a new stream containing all data.
|
|
452
|
+
* This approach reads the entire stream upfront to avoid complex async handling issues.
|
|
453
|
+
*
|
|
454
|
+
* @protected
|
|
455
|
+
*/
|
|
456
|
+
protected peekBytes(stream: Readable, numBytes: number): Promise<{
|
|
457
|
+
buffer: Buffer;
|
|
458
|
+
stream: Readable;
|
|
459
|
+
}>;
|
|
460
|
+
/**
|
|
461
|
+
* Checks if a buffer matches a magic byte signature.
|
|
462
|
+
*
|
|
463
|
+
* @protected
|
|
464
|
+
*/
|
|
465
|
+
protected matchesSignature(buffer: Buffer, signature: (number | null)[]): boolean;
|
|
466
|
+
}
|
|
467
|
+
//#endregion
|
|
43
468
|
//#region ../../src/bucket/providers/MemoryFileStorageProvider.d.ts
|
|
44
469
|
declare class MemoryFileStorageProvider implements FileStorageProvider {
|
|
45
470
|
readonly files: Record<string, FileLike>;
|
|
@@ -339,14 +764,21 @@ declare module "alepha" {
|
|
|
339
764
|
}
|
|
340
765
|
}
|
|
341
766
|
/**
|
|
342
|
-
*
|
|
767
|
+
* | type | quality | stability |
|
|
768
|
+
* |------|---------|-----------|
|
|
769
|
+
* | backend | rare | stable |
|
|
770
|
+
*
|
|
771
|
+
* Unified file storage abstraction across multiple backends.
|
|
343
772
|
*
|
|
344
|
-
*
|
|
345
|
-
*
|
|
346
|
-
*
|
|
773
|
+
* **Features:**
|
|
774
|
+
* - File storage buckets with constraints
|
|
775
|
+
* - Unified API across all storage backends
|
|
776
|
+
* - MIME type validation
|
|
777
|
+
* - File size limits
|
|
778
|
+
* - Upload/download/delete operations
|
|
779
|
+
* - TTL-based file expiration
|
|
780
|
+
* - Providers: Memory (testing), Local filesystem, AWS S3 / Cloudflare R2 / MinIO, Azure Blob Storage, Vercel Blob
|
|
347
781
|
*
|
|
348
|
-
* @see {@link $bucket}
|
|
349
|
-
* @see {@link FileStorageProvider}
|
|
350
782
|
* @module alepha.bucket
|
|
351
783
|
*/
|
|
352
784
|
declare const AlephaBucket: alepha1.Service<alepha1.Module>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/bucket/providers/FileStorageProvider.ts","../../src/bucket/providers/MemoryFileStorageProvider.ts","../../src/bucket/primitives/$bucket.ts","../../src/bucket/errors/FileNotFoundError.ts","../../src/bucket/providers/LocalFileStorageProvider.ts","../../src/bucket/index.ts"],"mappings":";;;;;;;uBAEsB,mBAAA;;;;;;AAAtB;;;WASW,MAAA,CACP,UAAA,UACA,IAAA,EAAM,QAAA,EACN,MAAA,YACC,OAAA;EAAA;;;;;;;EAAA,SASM,QAAA,CAAS,UAAA,UAAoB,MAAA,WAAiB,OAAA,CAAQ,QAAA;EAZ7D;;;;;;;EAAA,SAqBO,MAAA,CAAO,UAAA,UAAoB,MAAA,WAAiB,OAAA;EATE;;;;;;EAAA,SAiB9C,MAAA,CAAO,UAAA,UAAoB,MAAA,WAAiB,OAAA;AAAA;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/bucket/providers/FileStorageProvider.ts","../../src/system/providers/FileSystemProvider.ts","../../src/system/services/FileDetector.ts","../../src/bucket/providers/MemoryFileStorageProvider.ts","../../src/bucket/primitives/$bucket.ts","../../src/bucket/errors/FileNotFoundError.ts","../../src/bucket/providers/LocalFileStorageProvider.ts","../../src/bucket/index.ts"],"mappings":"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"}
|