alepha 0.14.2 → 0.14.4
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 +1 -1
- package/dist/api/audits/index.browser.js +5 -5
- package/dist/api/audits/index.browser.js.map +1 -1
- package/dist/api/audits/index.d.ts +706 -785
- package/dist/api/audits/index.d.ts.map +1 -1
- package/dist/api/audits/index.js +13 -13
- package/dist/api/audits/index.js.map +1 -1
- package/dist/api/files/index.browser.js +5 -5
- package/dist/api/files/index.browser.js.map +1 -1
- package/dist/api/files/index.d.ts +58 -137
- package/dist/api/files/index.d.ts.map +1 -1
- package/dist/api/files/index.js +71 -71
- package/dist/api/files/index.js.map +1 -1
- package/dist/api/jobs/index.browser.js +5 -5
- package/dist/api/jobs/index.browser.js.map +1 -1
- package/dist/api/jobs/index.d.ts +29 -108
- package/dist/api/jobs/index.d.ts.map +1 -1
- package/dist/api/jobs/index.js +10 -10
- package/dist/api/jobs/index.js.map +1 -1
- package/dist/api/notifications/index.browser.js +10 -10
- package/dist/api/notifications/index.browser.js.map +1 -1
- package/dist/api/notifications/index.d.ts +504 -171
- package/dist/api/notifications/index.d.ts.map +1 -1
- package/dist/api/notifications/index.js +12 -12
- package/dist/api/notifications/index.js.map +1 -1
- package/dist/api/parameters/index.browser.js +163 -10
- package/dist/api/parameters/index.browser.js.map +1 -1
- package/dist/api/parameters/index.d.ts +277 -351
- package/dist/api/parameters/index.d.ts.map +1 -1
- package/dist/api/parameters/index.js +196 -91
- package/dist/api/parameters/index.js.map +1 -1
- package/dist/api/users/index.browser.js +19 -19
- package/dist/api/users/index.browser.js.map +1 -1
- package/dist/api/users/index.d.ts +787 -852
- package/dist/api/users/index.d.ts.map +1 -1
- package/dist/api/users/index.js +827 -596
- package/dist/api/users/index.js.map +1 -1
- package/dist/api/verifications/index.browser.js +6 -6
- package/dist/api/verifications/index.browser.js.map +1 -1
- package/dist/api/verifications/index.d.ts +128 -128
- package/dist/api/verifications/index.d.ts.map +1 -1
- package/dist/api/verifications/index.js +6 -6
- package/dist/api/verifications/index.js.map +1 -1
- package/dist/bin/index.d.ts +1 -2
- package/dist/bin/index.js +0 -1
- package/dist/bin/index.js.map +1 -1
- package/dist/cli/index.d.ts +252 -131
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +595 -395
- package/dist/cli/index.js.map +1 -1
- package/dist/command/index.d.ts +46 -11
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +99 -19
- package/dist/command/index.js.map +1 -1
- package/dist/core/index.browser.js +40 -22
- package/dist/core/index.browser.js.map +1 -1
- package/dist/core/index.d.ts +45 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +40 -22
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.native.js +40 -22
- package/dist/core/index.native.js.map +1 -1
- package/dist/fake/index.js +195 -168
- package/dist/fake/index.js.map +1 -1
- package/dist/file/index.d.ts +8 -0
- package/dist/file/index.d.ts.map +1 -1
- package/dist/file/index.js +3 -0
- package/dist/file/index.js.map +1 -1
- package/dist/logger/index.d.ts +1 -1
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +12 -2
- package/dist/logger/index.js.map +1 -1
- package/dist/mcp/index.js +1 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/orm/index.d.ts +59 -195
- package/dist/orm/index.d.ts.map +1 -1
- package/dist/orm/index.js +201 -430
- package/dist/orm/index.js.map +1 -1
- package/dist/security/index.d.ts +1 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +1 -1
- package/dist/security/index.js.map +1 -1
- package/dist/server/auth/index.d.ts +171 -155
- package/dist/server/auth/index.d.ts.map +1 -1
- package/dist/server/auth/index.js +0 -1
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/cache/index.d.ts +12 -0
- package/dist/server/cache/index.d.ts.map +1 -1
- package/dist/server/cache/index.js +55 -2
- package/dist/server/cache/index.js.map +1 -1
- package/dist/server/compress/index.d.ts +6 -0
- package/dist/server/compress/index.d.ts.map +1 -1
- package/dist/server/compress/index.js +38 -1
- package/dist/server/compress/index.js.map +1 -1
- package/dist/server/core/index.browser.js +2 -2
- package/dist/server/core/index.browser.js.map +1 -1
- package/dist/server/core/index.d.ts +10 -10
- package/dist/server/core/index.d.ts.map +1 -1
- package/dist/server/core/index.js +7 -4
- package/dist/server/core/index.js.map +1 -1
- package/dist/server/links/index.browser.js +22 -6
- package/dist/server/links/index.browser.js.map +1 -1
- package/dist/server/links/index.d.ts +46 -44
- package/dist/server/links/index.d.ts.map +1 -1
- package/dist/server/links/index.js +24 -41
- package/dist/server/links/index.js.map +1 -1
- package/dist/server/static/index.d.ts.map +1 -1
- package/dist/server/static/index.js +4 -0
- package/dist/server/static/index.js.map +1 -1
- package/dist/server/swagger/index.d.ts +2 -1
- package/dist/server/swagger/index.d.ts.map +1 -1
- package/dist/server/swagger/index.js +9 -5
- package/dist/server/swagger/index.js.map +1 -1
- package/dist/vite/index.d.ts +101 -106
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +574 -503
- package/dist/vite/index.js.map +1 -1
- package/dist/websocket/index.d.ts +7 -7
- package/package.json +7 -7
- package/src/api/audits/controllers/{AuditController.ts → AdminAuditController.ts} +5 -6
- package/src/api/audits/entities/audits.ts +5 -5
- package/src/api/audits/index.browser.ts +1 -1
- package/src/api/audits/index.ts +3 -3
- package/src/api/audits/primitives/$audit.spec.ts +276 -0
- package/src/api/audits/services/AuditService.spec.ts +495 -0
- package/src/api/files/__tests__/$bucket.spec.ts +91 -0
- package/src/api/files/controllers/AdminFileStatsController.spec.ts +166 -0
- package/src/api/files/controllers/{StorageStatsController.ts → AdminFileStatsController.ts} +2 -2
- package/src/api/files/controllers/FileController.spec.ts +558 -0
- package/src/api/files/controllers/FileController.ts +4 -5
- package/src/api/files/entities/files.ts +5 -5
- package/src/api/files/index.browser.ts +1 -1
- package/src/api/files/index.ts +4 -4
- package/src/api/files/jobs/FileJobs.spec.ts +52 -0
- package/src/api/files/services/FileService.spec.ts +109 -0
- package/src/api/jobs/__tests__/JobController.spec.ts +343 -0
- package/src/api/jobs/controllers/{JobController.ts → AdminJobController.ts} +2 -2
- package/src/api/jobs/entities/jobExecutions.ts +5 -5
- package/src/api/jobs/index.ts +3 -3
- package/src/api/jobs/primitives/$job.spec.ts +476 -0
- package/src/api/notifications/controllers/{NotificationController.ts → AdminNotificationController.ts} +4 -5
- package/src/api/notifications/entities/notifications.ts +5 -5
- package/src/api/notifications/index.browser.ts +1 -1
- package/src/api/notifications/index.ts +4 -4
- package/src/api/parameters/controllers/{ConfigController.ts → AdminConfigController.ts} +46 -107
- package/src/api/parameters/entities/parameters.ts +7 -17
- package/src/api/parameters/index.ts +3 -3
- package/src/api/parameters/primitives/$config.spec.ts +356 -0
- package/src/api/parameters/schemas/activateConfigBodySchema.ts +12 -0
- package/src/api/parameters/schemas/checkScheduledResponseSchema.ts +8 -0
- package/src/api/parameters/schemas/configCurrentResponseSchema.ts +13 -0
- package/src/api/parameters/schemas/configHistoryResponseSchema.ts +9 -0
- package/src/api/parameters/schemas/configNameParamSchema.ts +10 -0
- package/src/api/parameters/schemas/configNamesResponseSchema.ts +8 -0
- package/src/api/parameters/schemas/configTreeNodeSchema.ts +13 -0
- package/src/api/parameters/schemas/configVersionParamSchema.ts +9 -0
- package/src/api/parameters/schemas/configVersionResponseSchema.ts +9 -0
- package/src/api/parameters/schemas/configsByStatusResponseSchema.ts +9 -0
- package/src/api/parameters/schemas/createConfigVersionBodySchema.ts +24 -0
- package/src/api/parameters/schemas/index.ts +15 -0
- package/src/api/parameters/schemas/parameterResponseSchema.ts +26 -0
- package/src/api/parameters/schemas/parameterStatusSchema.ts +13 -0
- package/src/api/parameters/schemas/rollbackConfigBodySchema.ts +15 -0
- package/src/api/parameters/schemas/statusParamSchema.ts +9 -0
- package/src/api/users/__tests__/EmailVerification.spec.ts +369 -0
- package/src/api/users/__tests__/PasswordReset.spec.ts +550 -0
- package/src/api/users/controllers/AdminIdentityController.spec.ts +365 -0
- package/src/api/users/controllers/{IdentityController.ts → AdminIdentityController.ts} +3 -4
- package/src/api/users/controllers/AdminSessionController.spec.ts +274 -0
- package/src/api/users/controllers/{SessionController.ts → AdminSessionController.ts} +3 -4
- package/src/api/users/controllers/AdminUserController.spec.ts +372 -0
- package/src/api/users/controllers/AdminUserController.ts +116 -0
- package/src/api/users/controllers/UserController.ts +4 -107
- package/src/api/users/controllers/UserRealmController.ts +3 -0
- package/src/api/users/entities/identities.ts +6 -6
- package/src/api/users/entities/sessions.ts +6 -6
- package/src/api/users/entities/users.ts +9 -9
- package/src/api/users/index.ts +9 -6
- package/src/api/users/primitives/$userRealm.ts +13 -8
- package/src/api/users/services/CredentialService.spec.ts +509 -0
- package/src/api/users/services/CredentialService.ts +46 -0
- package/src/api/users/services/IdentityService.ts +15 -0
- package/src/api/users/services/RegistrationService.spec.ts +630 -0
- package/src/api/users/services/RegistrationService.ts +18 -0
- package/src/api/users/services/SessionService.spec.ts +301 -0
- package/src/api/users/services/SessionService.ts +110 -1
- package/src/api/users/services/UserService.ts +67 -2
- package/src/api/verifications/__tests__/CodeVerification.spec.ts +318 -0
- package/src/api/verifications/__tests__/LinkVerification.spec.ts +279 -0
- package/src/api/verifications/entities/verifications.ts +6 -6
- package/src/api/verifications/jobs/VerificationJobs.spec.ts +50 -0
- package/src/batch/__tests__/startup-buffering.spec.ts +458 -0
- package/src/batch/primitives/$batch.spec.ts +766 -0
- package/src/batch/providers/BatchProvider.spec.ts +786 -0
- package/src/bin/index.ts +0 -1
- package/src/bucket/__tests__/shared.ts +194 -0
- package/src/bucket/primitives/$bucket.spec.ts +104 -0
- package/src/bucket/providers/FileStorageProvider.spec.ts +13 -0
- package/src/bucket/providers/LocalFileStorageProvider.spec.ts +77 -0
- package/src/bucket/providers/MemoryFileStorageProvider.spec.ts +82 -0
- package/src/cache/core/__tests__/shared.ts +377 -0
- package/src/cache/core/primitives/$cache.spec.ts +111 -0
- package/src/cache/redis/__tests__/cache-redis.spec.ts +70 -0
- package/src/cli/apps/AlephaCli.ts +25 -6
- package/src/cli/atoms/buildOptions.ts +88 -0
- package/src/cli/commands/build.ts +32 -69
- package/src/cli/commands/db.ts +0 -4
- package/src/cli/commands/dev.ts +34 -10
- package/src/cli/commands/gen/changelog.spec.ts +315 -0
- package/src/cli/commands/{changelog.ts → gen/changelog.ts} +9 -9
- package/src/cli/commands/gen/env.ts +53 -0
- package/src/cli/commands/gen/openapi.ts +71 -0
- package/src/cli/commands/gen/resource.ts +15 -0
- package/src/cli/commands/gen.ts +24 -0
- package/src/cli/commands/init.ts +2 -1
- package/src/cli/commands/root.ts +12 -3
- package/src/cli/commands/test.ts +0 -1
- package/src/cli/commands/typecheck.ts +5 -0
- package/src/cli/commands/verify.ts +1 -1
- package/src/cli/defineConfig.ts +49 -7
- package/src/cli/index.ts +2 -2
- package/src/cli/services/AlephaCliUtils.ts +105 -55
- package/src/cli/services/GitMessageParser.ts +1 -1
- package/src/command/helpers/Asker.spec.ts +127 -0
- package/src/command/helpers/Runner.spec.ts +126 -0
- package/src/command/helpers/Runner.ts +1 -1
- package/src/command/primitives/$command.spec.ts +1588 -0
- package/src/command/primitives/$command.ts +0 -6
- package/src/command/providers/CliProvider.ts +75 -27
- package/src/core/Alepha.ts +87 -0
- package/src/core/__tests__/Alepha-emit.spec.ts +22 -0
- package/src/core/__tests__/Alepha-graph.spec.ts +93 -0
- package/src/core/__tests__/Alepha-has.spec.ts +41 -0
- package/src/core/__tests__/Alepha-inject.spec.ts +93 -0
- package/src/core/__tests__/Alepha-register.spec.ts +81 -0
- package/src/core/__tests__/Alepha-start.spec.ts +176 -0
- package/src/core/__tests__/Alepha-with.spec.ts +14 -0
- package/src/core/__tests__/TypeBox-usecases.spec.ts +35 -0
- package/src/core/__tests__/TypeBoxLocale.spec.ts +15 -0
- package/src/core/__tests__/descriptor.spec.ts +34 -0
- package/src/core/__tests__/fixtures/A.ts +5 -0
- package/src/core/__tests__/pagination.spec.ts +77 -0
- package/src/core/helpers/jsonSchemaToTypeBox.ts +2 -2
- package/src/core/primitives/$atom.spec.ts +43 -0
- package/src/core/primitives/$hook.spec.ts +130 -0
- package/src/core/primitives/$inject.spec.ts +175 -0
- package/src/core/primitives/$module.spec.ts +115 -0
- package/src/core/providers/CodecManager.spec.ts +740 -0
- package/src/core/providers/EventManager.spec.ts +762 -0
- package/src/core/providers/EventManager.ts +4 -0
- package/src/core/providers/StateManager.spec.ts +365 -0
- package/src/core/providers/TypeProvider.spec.ts +1607 -0
- package/src/core/providers/TypeProvider.ts +20 -26
- package/src/datetime/primitives/$interval.spec.ts +103 -0
- package/src/datetime/providers/DateTimeProvider.spec.ts +86 -0
- package/src/email/primitives/$email.spec.ts +175 -0
- package/src/email/providers/LocalEmailProvider.spec.ts +341 -0
- package/src/fake/__tests__/keyName.example.ts +40 -0
- package/src/fake/__tests__/keyName.spec.ts +152 -0
- package/src/fake/__tests__/module.example.ts +32 -0
- package/src/fake/providers/FakeProvider.spec.ts +438 -0
- package/src/file/providers/FileSystemProvider.ts +8 -0
- package/src/file/providers/NodeFileSystemProvider.spec.ts +418 -0
- package/src/file/providers/NodeFileSystemProvider.ts +5 -0
- package/src/file/services/FileDetector.spec.ts +591 -0
- package/src/lock/core/__tests__/shared.ts +190 -0
- package/src/lock/core/providers/MemoryLockProvider.spec.ts +25 -0
- package/src/lock/redis/providers/RedisLockProvider.spec.ts +25 -0
- package/src/logger/__tests__/SimpleFormatterProvider.spec.ts +109 -0
- package/src/logger/index.ts +15 -3
- package/src/logger/primitives/$logger.spec.ts +108 -0
- package/src/logger/services/Logger.spec.ts +295 -0
- package/src/mcp/__tests__/errors.spec.ts +175 -0
- package/src/mcp/__tests__/integration.spec.ts +450 -0
- package/src/mcp/helpers/jsonrpc.spec.ts +380 -0
- package/src/mcp/primitives/$prompt.spec.ts +468 -0
- package/src/mcp/primitives/$resource.spec.ts +390 -0
- package/src/mcp/primitives/$tool.spec.ts +406 -0
- package/src/mcp/providers/McpServerProvider.spec.ts +797 -0
- package/src/mcp/transports/StdioMcpTransport.ts +1 -1
- package/src/orm/__tests__/$repository-crud.spec.ts +276 -0
- package/src/orm/__tests__/$repository-hooks.spec.ts +325 -0
- package/src/orm/__tests__/$repository-orderBy.spec.ts +128 -0
- package/src/orm/__tests__/$repository-pagination-sort.spec.ts +149 -0
- package/src/orm/__tests__/$repository-save.spec.ts +37 -0
- package/src/orm/__tests__/ModelBuilder-integration.spec.ts +490 -0
- package/src/orm/__tests__/ModelBuilder-types.spec.ts +186 -0
- package/src/orm/__tests__/PostgresProvider.spec.ts +46 -0
- package/src/orm/__tests__/delete-returning.spec.ts +256 -0
- package/src/orm/__tests__/deletedAt.spec.ts +80 -0
- package/src/orm/__tests__/enums.spec.ts +315 -0
- package/src/orm/__tests__/execute.spec.ts +72 -0
- package/src/orm/__tests__/fixtures/bigEntitySchema.ts +65 -0
- package/src/orm/__tests__/fixtures/userEntitySchema.ts +27 -0
- package/src/orm/__tests__/joins.spec.ts +1114 -0
- package/src/orm/__tests__/page.spec.ts +287 -0
- package/src/orm/__tests__/primaryKey.spec.ts +87 -0
- package/src/orm/__tests__/query-date-encoding.spec.ts +402 -0
- package/src/orm/__tests__/ref-auto-onDelete.spec.ts +156 -0
- package/src/orm/__tests__/references.spec.ts +102 -0
- package/src/orm/__tests__/security.spec.ts +710 -0
- package/src/orm/__tests__/sqlite.spec.ts +111 -0
- package/src/orm/__tests__/string-operators.spec.ts +429 -0
- package/src/orm/__tests__/timestamps.spec.ts +388 -0
- package/src/orm/__tests__/validation.spec.ts +183 -0
- package/src/orm/__tests__/version.spec.ts +64 -0
- package/src/orm/helpers/parseQueryString.spec.ts +196 -0
- package/src/orm/index.ts +2 -8
- package/src/orm/primitives/$repository.spec.ts +137 -0
- package/src/orm/primitives/$sequence.spec.ts +29 -0
- package/src/orm/primitives/$transaction.spec.ts +82 -0
- package/src/orm/providers/drivers/BunPostgresProvider.ts +3 -3
- package/src/orm/providers/drivers/BunSqliteProvider.ts +1 -1
- package/src/orm/providers/drivers/CloudflareD1Provider.ts +1 -1
- package/src/orm/providers/drivers/DatabaseProvider.ts +1 -1
- package/src/orm/providers/drivers/NodePostgresProvider.ts +3 -3
- package/src/orm/providers/drivers/NodeSqliteProvider.ts +1 -1
- package/src/orm/providers/drivers/PglitePostgresProvider.ts +2 -2
- package/src/orm/services/ModelBuilder.spec.ts +575 -0
- package/src/orm/services/Repository.spec.ts +137 -0
- package/src/queue/core/__tests__/shared.ts +143 -0
- package/src/queue/core/providers/MemoryQueueProvider.spec.ts +23 -0
- package/src/queue/core/providers/WorkerProvider.spec.ts +394 -0
- package/src/queue/redis/providers/RedisQueueProvider.spec.ts +23 -0
- package/src/redis/__tests__/redis.spec.ts +58 -0
- package/src/retry/primitives/$retry.spec.ts +234 -0
- package/src/retry/providers/RetryProvider.spec.ts +438 -0
- package/src/router/__tests__/match.spec.ts +252 -0
- package/src/router/providers/RouterProvider.spec.ts +197 -0
- package/src/scheduler/__tests__/$scheduler-cron.spec.ts +25 -0
- package/src/scheduler/__tests__/$scheduler-interval.spec.ts +25 -0
- package/src/scheduler/__tests__/shared.ts +77 -0
- package/src/security/__tests__/bug-1-wildcard-after-start.spec.ts +229 -0
- package/src/security/__tests__/bug-2-password-validation.spec.ts +245 -0
- package/src/security/__tests__/bug-3-regex-vulnerability.spec.ts +407 -0
- package/src/security/__tests__/bug-4-oauth2-validation.spec.ts +439 -0
- package/src/security/__tests__/multi-layer-permissions.spec.ts +522 -0
- package/src/security/primitives/$permission.spec.ts +30 -0
- package/src/security/primitives/$permission.ts +2 -2
- package/src/security/primitives/$realm.spec.ts +101 -0
- package/src/security/primitives/$role.spec.ts +52 -0
- package/src/security/primitives/$serviceAccount.spec.ts +61 -0
- package/src/security/providers/SecurityProvider.spec.ts +350 -0
- package/src/server/auth/providers/ServerAuthProvider.ts +0 -2
- package/src/server/cache/providers/ServerCacheProvider.spec.ts +1125 -0
- package/src/server/cache/providers/ServerCacheProvider.ts +94 -9
- package/src/server/compress/providers/ServerCompressProvider.spec.ts +31 -0
- package/src/server/compress/providers/ServerCompressProvider.ts +63 -2
- package/src/server/cookies/providers/ServerCookiesProvider.spec.ts +253 -0
- package/src/server/core/__tests__/ServerRouterProvider-getRoutes.spec.ts +334 -0
- package/src/server/core/__tests__/ServerRouterProvider-requestId.spec.ts +129 -0
- package/src/server/core/helpers/ServerReply.ts +2 -2
- package/src/server/core/primitives/$action.spec.ts +191 -0
- package/src/server/core/primitives/$route.spec.ts +65 -0
- package/src/server/core/providers/ServerBodyParserProvider.spec.ts +93 -0
- package/src/server/core/providers/ServerLoggerProvider.spec.ts +100 -0
- package/src/server/core/providers/ServerProvider.ts +14 -2
- package/src/server/core/services/HttpClient.spec.ts +123 -0
- package/src/server/core/services/UserAgentParser.spec.ts +111 -0
- package/src/server/cors/providers/ServerCorsProvider.spec.ts +481 -0
- package/src/server/health/providers/ServerHealthProvider.spec.ts +22 -0
- package/src/server/helmet/providers/ServerHelmetProvider.spec.ts +105 -0
- package/src/server/links/__tests__/$action.spec.ts +238 -0
- package/src/server/links/__tests__/fixtures/CrudApp.ts +122 -0
- package/src/server/links/__tests__/requestId.spec.ts +120 -0
- package/src/server/links/primitives/$remote.spec.ts +228 -0
- package/src/server/links/providers/LinkProvider.spec.ts +54 -0
- package/src/server/links/providers/LinkProvider.ts +49 -3
- package/src/server/links/providers/ServerLinksProvider.ts +1 -53
- package/src/server/links/schemas/apiLinksResponseSchema.ts +7 -0
- package/src/server/metrics/providers/ServerMetricsProvider.spec.ts +25 -0
- package/src/server/multipart/providers/ServerMultipartProvider.spec.ts +528 -0
- package/src/server/proxy/primitives/$proxy.spec.ts +87 -0
- package/src/server/rate-limit/__tests__/ActionRateLimit.spec.ts +211 -0
- package/src/server/rate-limit/providers/ServerRateLimitProvider.spec.ts +344 -0
- package/src/server/security/__tests__/BasicAuth.spec.ts +684 -0
- package/src/server/security/__tests__/ServerSecurityProvider-realm.spec.ts +388 -0
- package/src/server/security/providers/ServerSecurityProvider.spec.ts +123 -0
- package/src/server/static/primitives/$serve.spec.ts +193 -0
- package/src/server/static/providers/ServerStaticProvider.ts +10 -0
- package/src/server/swagger/__tests__/ui.spec.ts +52 -0
- package/src/server/swagger/primitives/$swagger.spec.ts +193 -0
- package/src/server/swagger/providers/ServerSwaggerProvider.ts +19 -12
- package/src/sms/primitives/$sms.spec.ts +165 -0
- package/src/sms/providers/LocalSmsProvider.spec.ts +224 -0
- package/src/sms/providers/MemorySmsProvider.spec.ts +193 -0
- package/src/thread/primitives/$thread.spec.ts +186 -0
- package/src/topic/core/__tests__/shared.ts +144 -0
- package/src/topic/core/providers/MemoryTopicProvider.spec.ts +23 -0
- package/src/topic/redis/providers/RedisTopicProvider.spec.ts +23 -0
- package/src/vite/helpers/importViteReact.ts +13 -0
- package/src/vite/index.ts +1 -21
- package/src/vite/plugins/viteAlephaDev.ts +32 -5
- package/src/vite/plugins/viteAlephaSsrPreload.ts +222 -0
- package/src/vite/tasks/buildClient.ts +11 -0
- package/src/vite/tasks/buildServer.ts +47 -3
- package/src/vite/tasks/devServer.ts +69 -0
- package/src/vite/tasks/index.ts +2 -1
- package/src/vite/tasks/runAlepha.ts +7 -1
- package/src/websocket/__tests__/$websocket-new.spec.ts +195 -0
- package/src/websocket/primitives/$channel.spec.ts +30 -0
- package/src/cli/assets/viteConfigTs.ts +0 -14
- package/src/cli/commands/run.ts +0 -24
- package/src/vite/plugins/viteAlepha.ts +0 -37
- package/src/vite/plugins/viteAlephaBuild.ts +0 -281
|
@@ -1,34 +1,30 @@
|
|
|
1
1
|
import * as alepha160 from "alepha";
|
|
2
2
|
import { Alepha, FileLike, Static, TNull, TObject, TOptional, TSchema, TUnion } from "alepha";
|
|
3
3
|
import { BucketPrimitive } from "alepha/bucket";
|
|
4
|
-
import
|
|
5
|
-
import { Page } from "alepha/orm";
|
|
4
|
+
import "alepha/server/security";
|
|
6
5
|
import * as alepha_server0 from "alepha/server";
|
|
7
6
|
import { Ok } from "alepha/server";
|
|
8
7
|
import { DateTime, DateTimeProvider, DurationLike } from "alepha/datetime";
|
|
9
8
|
import * as alepha_logger0 from "alepha/logger";
|
|
10
|
-
import "alepha/
|
|
9
|
+
import * as alepha_orm16 from "alepha/orm";
|
|
10
|
+
import { Page } from "alepha/orm";
|
|
11
11
|
import * as alepha_scheduler0 from "alepha/scheduler";
|
|
12
|
-
import "bun";
|
|
13
|
-
import "bun:sqlite";
|
|
14
|
-
import "drizzle-orm/bun-sql";
|
|
15
|
-
import "drizzle-orm/bun-sqlite";
|
|
16
12
|
import "drizzle-orm/d1";
|
|
17
13
|
import { UserAccountToken } from "alepha/security";
|
|
18
14
|
import { BuildExtraConfigColumns, SQL } from "drizzle-orm";
|
|
19
15
|
import { PgColumnBuilderBase, PgSequenceOptions, PgTableExtraConfigValue, UpdateDeleteAction } from "drizzle-orm/pg-core";
|
|
20
16
|
import "alepha/retry";
|
|
21
|
-
import "alepha/lock";
|
|
22
17
|
import "drizzle-orm/sqlite-core";
|
|
18
|
+
import "alepha/lock";
|
|
23
19
|
import "drizzle-orm/postgres-js";
|
|
24
20
|
import "postgres";
|
|
25
21
|
|
|
26
22
|
//#region ../../src/api/files/entities/files.d.ts
|
|
27
|
-
declare const files:
|
|
28
|
-
id:
|
|
29
|
-
version:
|
|
30
|
-
createdAt:
|
|
31
|
-
updatedAt:
|
|
23
|
+
declare const files: alepha_orm16.EntityPrimitive<alepha160.TObject<{
|
|
24
|
+
id: alepha_orm16.PgAttr<alepha_orm16.PgAttr<alepha160.TString, typeof alepha_orm16.PG_PRIMARY_KEY>, typeof alepha_orm16.PG_DEFAULT>;
|
|
25
|
+
version: alepha_orm16.PgAttr<alepha_orm16.PgAttr<alepha160.TInteger, typeof alepha_orm16.PG_VERSION>, typeof alepha_orm16.PG_DEFAULT>;
|
|
26
|
+
createdAt: alepha_orm16.PgAttr<alepha_orm16.PgAttr<alepha160.TString, typeof alepha_orm16.PG_CREATED_AT>, typeof alepha_orm16.PG_DEFAULT>;
|
|
27
|
+
updatedAt: alepha_orm16.PgAttr<alepha_orm16.PgAttr<alepha160.TString, typeof alepha_orm16.PG_UPDATED_AT>, typeof alepha_orm16.PG_DEFAULT>;
|
|
32
28
|
blobId: alepha160.TString;
|
|
33
29
|
creator: alepha160.TOptional<alepha160.TString>;
|
|
34
30
|
creatorRealm: alepha160.TOptional<alepha160.TString>;
|
|
@@ -274,81 +270,6 @@ interface PgRefOptions {
|
|
|
274
270
|
*/
|
|
275
271
|
type PgAttr<T extends TSchema, TAttr extends PgSymbolKeys> = T & { [K in TAttr]: PgSymbols[K] };
|
|
276
272
|
//#endregion
|
|
277
|
-
//#region ../../src/orm/providers/drivers/BunPostgresProvider.d.ts
|
|
278
|
-
declare module "alepha" {
|
|
279
|
-
interface Env extends Partial<Static<typeof envSchema$1>> {}
|
|
280
|
-
}
|
|
281
|
-
declare const envSchema$1: alepha160.TObject<{
|
|
282
|
-
/**
|
|
283
|
-
* Main configuration for database connection.
|
|
284
|
-
* Accept a string in the format of a Postgres connection URL.
|
|
285
|
-
* Example: postgres://user:password@localhost:5432/database
|
|
286
|
-
* or
|
|
287
|
-
* Example: postgres://user:password@localhost:5432/database?sslmode=require
|
|
288
|
-
*/
|
|
289
|
-
DATABASE_URL: alepha160.TOptional<alepha160.TString>;
|
|
290
|
-
/**
|
|
291
|
-
* In addition to the DATABASE_URL, you can specify the postgres schema name.
|
|
292
|
-
*/
|
|
293
|
-
POSTGRES_SCHEMA: alepha160.TOptional<alepha160.TString>;
|
|
294
|
-
}>;
|
|
295
|
-
/**
|
|
296
|
-
* Bun PostgreSQL provider using Drizzle ORM with Bun's native SQL client.
|
|
297
|
-
*
|
|
298
|
-
* This provider uses Bun's built-in SQL class for PostgreSQL connections,
|
|
299
|
-
* which provides excellent performance on the Bun runtime.
|
|
300
|
-
*
|
|
301
|
-
* @example
|
|
302
|
-
* ```ts
|
|
303
|
-
* // Set DATABASE_URL environment variable
|
|
304
|
-
* // DATABASE_URL=postgres://user:password@localhost:5432/database
|
|
305
|
-
*
|
|
306
|
-
* // Or configure programmatically
|
|
307
|
-
* alepha.with({
|
|
308
|
-
* provide: DatabaseProvider,
|
|
309
|
-
* use: BunPostgresProvider,
|
|
310
|
-
* });
|
|
311
|
-
* ```
|
|
312
|
-
*/
|
|
313
|
-
//#endregion
|
|
314
|
-
//#region ../../src/orm/providers/drivers/BunSqliteProvider.d.ts
|
|
315
|
-
/**
|
|
316
|
-
* Configuration options for the Bun SQLite database provider.
|
|
317
|
-
*/
|
|
318
|
-
declare const bunSqliteOptions: alepha160.Atom<alepha160.TObject<{
|
|
319
|
-
path: alepha160.TOptional<alepha160.TString>;
|
|
320
|
-
}>, "alepha.postgres.bun-sqlite.options">;
|
|
321
|
-
type BunSqliteProviderOptions = Static<typeof bunSqliteOptions.schema>;
|
|
322
|
-
declare module "alepha" {
|
|
323
|
-
interface State {
|
|
324
|
-
[bunSqliteOptions.key]: BunSqliteProviderOptions;
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* Bun SQLite provider using Drizzle ORM with Bun's native SQLite client.
|
|
329
|
-
*
|
|
330
|
-
* This provider uses Bun's built-in `bun:sqlite` for SQLite connections,
|
|
331
|
-
* which provides excellent performance on the Bun runtime.
|
|
332
|
-
*
|
|
333
|
-
* @example
|
|
334
|
-
* ```ts
|
|
335
|
-
* // Set DATABASE_URL environment variable
|
|
336
|
-
* // DATABASE_URL=sqlite://./my-database.db
|
|
337
|
-
*
|
|
338
|
-
* // Or configure programmatically
|
|
339
|
-
* alepha.with({
|
|
340
|
-
* provide: DatabaseProvider,
|
|
341
|
-
* use: BunSqliteProvider,
|
|
342
|
-
* });
|
|
343
|
-
*
|
|
344
|
-
* // Or use options atom
|
|
345
|
-
* alepha.store.mut(bunSqliteOptions, (old) => ({
|
|
346
|
-
* ...old,
|
|
347
|
-
* path: ":memory:",
|
|
348
|
-
* }));
|
|
349
|
-
* ```
|
|
350
|
-
*/
|
|
351
|
-
//#endregion
|
|
352
273
|
//#region ../../src/orm/providers/drivers/NodePostgresProvider.d.ts
|
|
353
274
|
declare module "alepha" {
|
|
354
275
|
interface Env extends Partial<Static<typeof envSchema>> {}
|
|
@@ -509,11 +430,11 @@ type StorageStats = Static<typeof storageStatsSchema>;
|
|
|
509
430
|
declare class FileService {
|
|
510
431
|
protected readonly alepha: Alepha;
|
|
511
432
|
protected readonly log: alepha_logger0.Logger;
|
|
512
|
-
protected readonly fileRepository:
|
|
513
|
-
id:
|
|
514
|
-
version:
|
|
515
|
-
createdAt:
|
|
516
|
-
updatedAt:
|
|
433
|
+
protected readonly fileRepository: alepha_orm16.Repository<alepha160.TObject<{
|
|
434
|
+
id: alepha_orm16.PgAttr<alepha_orm16.PgAttr<alepha160.TString, typeof alepha_orm16.PG_PRIMARY_KEY>, typeof alepha_orm16.PG_DEFAULT>;
|
|
435
|
+
version: alepha_orm16.PgAttr<alepha_orm16.PgAttr<alepha160.TInteger, typeof alepha_orm16.PG_VERSION>, typeof alepha_orm16.PG_DEFAULT>;
|
|
436
|
+
createdAt: alepha_orm16.PgAttr<alepha_orm16.PgAttr<alepha160.TString, typeof alepha_orm16.PG_CREATED_AT>, typeof alepha_orm16.PG_DEFAULT>;
|
|
437
|
+
updatedAt: alepha_orm16.PgAttr<alepha_orm16.PgAttr<alepha160.TString, typeof alepha_orm16.PG_UPDATED_AT>, typeof alepha_orm16.PG_DEFAULT>;
|
|
517
438
|
blobId: alepha160.TString;
|
|
518
439
|
creator: alepha160.TOptional<alepha160.TString>;
|
|
519
440
|
creatorRealm: alepha160.TOptional<alepha160.TString>;
|
|
@@ -649,6 +570,37 @@ declare class FileService {
|
|
|
649
570
|
entityToResource(entity: FileEntity): FileResource;
|
|
650
571
|
}
|
|
651
572
|
//#endregion
|
|
573
|
+
//#region ../../src/api/files/controllers/AdminFileStatsController.d.ts
|
|
574
|
+
/**
|
|
575
|
+
* REST API controller for storage analytics and statistics.
|
|
576
|
+
* Provides endpoints for viewing storage usage metrics.
|
|
577
|
+
*/
|
|
578
|
+
declare class AdminFileStatsController {
|
|
579
|
+
protected readonly url = "/files/stats";
|
|
580
|
+
protected readonly group = "admin:files";
|
|
581
|
+
protected readonly fileService: FileService;
|
|
582
|
+
/**
|
|
583
|
+
* GET /files/stats - Gets storage statistics.
|
|
584
|
+
* Returns aggregated data including total size, file count,
|
|
585
|
+
* and breakdowns by bucket and MIME type.
|
|
586
|
+
*/
|
|
587
|
+
readonly getStats: alepha_server0.ActionPrimitiveFn<{
|
|
588
|
+
response: alepha160.TObject<{
|
|
589
|
+
totalSize: alepha160.TNumber;
|
|
590
|
+
totalFiles: alepha160.TNumber;
|
|
591
|
+
byBucket: alepha160.TArray<alepha160.TObject<{
|
|
592
|
+
bucket: alepha160.TString;
|
|
593
|
+
totalSize: alepha160.TNumber;
|
|
594
|
+
fileCount: alepha160.TNumber;
|
|
595
|
+
}>>;
|
|
596
|
+
byMimeType: alepha160.TArray<alepha160.TObject<{
|
|
597
|
+
mimeType: alepha160.TString;
|
|
598
|
+
fileCount: alepha160.TNumber;
|
|
599
|
+
}>>;
|
|
600
|
+
}>;
|
|
601
|
+
}>;
|
|
602
|
+
}
|
|
603
|
+
//#endregion
|
|
652
604
|
//#region ../../src/api/files/controllers/FileController.d.ts
|
|
653
605
|
/**
|
|
654
606
|
* REST API controller for file management operations.
|
|
@@ -676,10 +628,10 @@ declare class FileController {
|
|
|
676
628
|
createdBefore: alepha160.TOptional<alepha160.TString>;
|
|
677
629
|
}>;
|
|
678
630
|
response: alepha160.TPage<alepha160.TObject<{
|
|
679
|
-
id:
|
|
680
|
-
version:
|
|
681
|
-
createdAt:
|
|
682
|
-
updatedAt:
|
|
631
|
+
id: PgAttr<PgAttr<alepha160.TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
|
|
632
|
+
version: PgAttr<PgAttr<alepha160.TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
|
|
633
|
+
createdAt: PgAttr<PgAttr<alepha160.TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
|
|
634
|
+
updatedAt: PgAttr<PgAttr<alepha160.TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
|
|
683
635
|
blobId: alepha160.TString;
|
|
684
636
|
creator: alepha160.TOptional<alepha160.TString>;
|
|
685
637
|
creatorRealm: alepha160.TOptional<alepha160.TString>;
|
|
@@ -721,10 +673,10 @@ declare class FileController {
|
|
|
721
673
|
bucket: alepha160.TOptional<alepha160.TString>;
|
|
722
674
|
}>;
|
|
723
675
|
response: alepha160.TObject<{
|
|
724
|
-
id:
|
|
725
|
-
version:
|
|
726
|
-
createdAt:
|
|
727
|
-
updatedAt:
|
|
676
|
+
id: PgAttr<PgAttr<alepha160.TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
|
|
677
|
+
version: PgAttr<PgAttr<alepha160.TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
|
|
678
|
+
createdAt: PgAttr<PgAttr<alepha160.TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
|
|
679
|
+
updatedAt: PgAttr<PgAttr<alepha160.TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
|
|
728
680
|
blobId: alepha160.TString;
|
|
729
681
|
creator: alepha160.TOptional<alepha160.TString>;
|
|
730
682
|
creatorRealm: alepha160.TOptional<alepha160.TString>;
|
|
@@ -752,10 +704,10 @@ declare class FileController {
|
|
|
752
704
|
expirationDate: alepha160.TOptional<alepha160.TString>;
|
|
753
705
|
}>;
|
|
754
706
|
response: alepha160.TObject<{
|
|
755
|
-
id:
|
|
756
|
-
version:
|
|
757
|
-
createdAt:
|
|
758
|
-
updatedAt:
|
|
707
|
+
id: PgAttr<PgAttr<alepha160.TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
|
|
708
|
+
version: PgAttr<PgAttr<alepha160.TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
|
|
709
|
+
createdAt: PgAttr<PgAttr<alepha160.TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
|
|
710
|
+
updatedAt: PgAttr<PgAttr<alepha160.TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
|
|
759
711
|
blobId: alepha160.TString;
|
|
760
712
|
creator: alepha160.TOptional<alepha160.TString>;
|
|
761
713
|
creatorRealm: alepha160.TOptional<alepha160.TString>;
|
|
@@ -782,37 +734,6 @@ declare class FileController {
|
|
|
782
734
|
}>;
|
|
783
735
|
}
|
|
784
736
|
//#endregion
|
|
785
|
-
//#region ../../src/api/files/controllers/StorageStatsController.d.ts
|
|
786
|
-
/**
|
|
787
|
-
* REST API controller for storage analytics and statistics.
|
|
788
|
-
* Provides endpoints for viewing storage usage metrics.
|
|
789
|
-
*/
|
|
790
|
-
declare class StorageStatsController {
|
|
791
|
-
protected readonly url = "/files/stats";
|
|
792
|
-
protected readonly group = "files";
|
|
793
|
-
protected readonly fileService: FileService;
|
|
794
|
-
/**
|
|
795
|
-
* GET /files/stats - Gets storage statistics.
|
|
796
|
-
* Returns aggregated data including total size, file count,
|
|
797
|
-
* and breakdowns by bucket and MIME type.
|
|
798
|
-
*/
|
|
799
|
-
readonly getStats: alepha_server0.ActionPrimitiveFn<{
|
|
800
|
-
response: alepha160.TObject<{
|
|
801
|
-
totalSize: alepha160.TNumber;
|
|
802
|
-
totalFiles: alepha160.TNumber;
|
|
803
|
-
byBucket: alepha160.TArray<alepha160.TObject<{
|
|
804
|
-
bucket: alepha160.TString;
|
|
805
|
-
totalSize: alepha160.TNumber;
|
|
806
|
-
fileCount: alepha160.TNumber;
|
|
807
|
-
}>>;
|
|
808
|
-
byMimeType: alepha160.TArray<alepha160.TObject<{
|
|
809
|
-
mimeType: alepha160.TString;
|
|
810
|
-
fileCount: alepha160.TNumber;
|
|
811
|
-
}>>;
|
|
812
|
-
}>;
|
|
813
|
-
}>;
|
|
814
|
-
}
|
|
815
|
-
//#endregion
|
|
816
737
|
//#region ../../src/api/files/jobs/FileJobs.d.ts
|
|
817
738
|
declare class FileJobs {
|
|
818
739
|
protected readonly fileService: FileService;
|
|
@@ -852,5 +773,5 @@ declare module "alepha/bucket" {
|
|
|
852
773
|
*/
|
|
853
774
|
declare const AlephaApiFiles: alepha160.Service<alepha160.Module>;
|
|
854
775
|
//#endregion
|
|
855
|
-
export { AlephaApiFiles, BucketStats, FileController, FileEntity, FileJobs, FileService, MimeTypeStats, StorageStats,
|
|
776
|
+
export { AdminFileStatsController, AlephaApiFiles, BucketStats, FileController, FileEntity, FileJobs, FileService, MimeTypeStats, StorageStats, bucketStatsSchema, files, mimeTypeStatsSchema, storageStatsSchema };
|
|
856
777
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/api/files/entities/files.ts","../../../src/api/files/schemas/fileQuerySchema.ts","../../../src/orm/schemas/insertSchema.ts","../../../src/orm/schemas/updateSchema.ts","../../../src/orm/primitives/$entity.ts","../../../src/orm/constants/PG_SYMBOLS.ts","../../../src/orm/helpers/pgAttr.ts","../../../src/orm/providers/drivers/
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/api/files/entities/files.ts","../../../src/api/files/schemas/fileQuerySchema.ts","../../../src/orm/schemas/insertSchema.ts","../../../src/orm/schemas/updateSchema.ts","../../../src/orm/primitives/$entity.ts","../../../src/orm/constants/PG_SYMBOLS.ts","../../../src/orm/helpers/pgAttr.ts","../../../src/orm/providers/drivers/NodePostgresProvider.ts","../../../src/orm/providers/drivers/NodeSqliteProvider.ts","../../../src/orm/index.ts","../../../src/api/files/schemas/fileResourceSchema.ts","../../../src/api/files/schemas/storageStatsSchema.ts","../../../src/api/files/services/FileService.ts","../../../src/api/files/controllers/AdminFileStatsController.ts","../../../src/api/files/controllers/FileController.ts","../../../src/api/files/jobs/FileJobs.ts","../../../src/api/files/index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/api/files/index.js
CHANGED
|
@@ -2,23 +2,29 @@ import { $hook, $inject, $module, Alepha, t } from "alepha";
|
|
|
2
2
|
import { $bucket, AlephaBucket, FileNotFoundError } from "alepha/bucket";
|
|
3
3
|
import { AlephaServerCache } from "alepha/server/cache";
|
|
4
4
|
import { AlephaServerMultipart } from "alepha/server/multipart";
|
|
5
|
-
import
|
|
5
|
+
import "alepha/server/security";
|
|
6
6
|
import { $action, NotFoundError, okSchema } from "alepha/server";
|
|
7
7
|
import { createHash } from "node:crypto";
|
|
8
8
|
import { DateTimeProvider } from "alepha/datetime";
|
|
9
9
|
import { $logger } from "alepha/logger";
|
|
10
|
-
import "alepha/
|
|
10
|
+
import { $entity, $repository, db, pageQuerySchema } from "alepha/orm";
|
|
11
11
|
import { $scheduler } from "alepha/scheduler";
|
|
12
12
|
|
|
13
|
-
//#region ../../src/api/files/schemas/
|
|
14
|
-
const
|
|
15
|
-
bucket: t.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
//#region ../../src/api/files/schemas/storageStatsSchema.ts
|
|
14
|
+
const bucketStatsSchema = t.object({
|
|
15
|
+
bucket: t.string(),
|
|
16
|
+
totalSize: t.number(),
|
|
17
|
+
fileCount: t.number()
|
|
18
|
+
});
|
|
19
|
+
const mimeTypeStatsSchema = t.object({
|
|
20
|
+
mimeType: t.string(),
|
|
21
|
+
fileCount: t.number()
|
|
22
|
+
});
|
|
23
|
+
const storageStatsSchema = t.object({
|
|
24
|
+
totalSize: t.number(),
|
|
25
|
+
totalFiles: t.number(),
|
|
26
|
+
byBucket: t.array(bucketStatsSchema),
|
|
27
|
+
byMimeType: t.array(mimeTypeStatsSchema)
|
|
22
28
|
});
|
|
23
29
|
|
|
24
30
|
//#endregion
|
|
@@ -26,10 +32,10 @@ const fileQuerySchema = t.extend(pageQuerySchema, {
|
|
|
26
32
|
const files = $entity({
|
|
27
33
|
name: "files",
|
|
28
34
|
schema: t.object({
|
|
29
|
-
id:
|
|
30
|
-
version:
|
|
31
|
-
createdAt:
|
|
32
|
-
updatedAt:
|
|
35
|
+
id: db.primaryKey(t.uuid()),
|
|
36
|
+
version: db.version(),
|
|
37
|
+
createdAt: db.createdAt(),
|
|
38
|
+
updatedAt: db.updatedAt(),
|
|
33
39
|
blobId: t.text(),
|
|
34
40
|
creator: t.optional(t.uuid()),
|
|
35
41
|
creatorRealm: t.optional(t.string()),
|
|
@@ -52,13 +58,6 @@ const files = $entity({
|
|
|
52
58
|
]
|
|
53
59
|
});
|
|
54
60
|
|
|
55
|
-
//#endregion
|
|
56
|
-
//#region ../../src/api/files/schemas/fileResourceSchema.ts
|
|
57
|
-
const fileResourceSchema = t.extend(files.schema, {}, {
|
|
58
|
-
title: "FileResource",
|
|
59
|
-
description: "A file resource representing a file stored in the system."
|
|
60
|
-
});
|
|
61
|
-
|
|
62
61
|
//#endregion
|
|
63
62
|
//#region ../../src/api/files/services/FileService.ts
|
|
64
63
|
var FileService = class {
|
|
@@ -321,6 +320,49 @@ var FileService = class {
|
|
|
321
320
|
}
|
|
322
321
|
};
|
|
323
322
|
|
|
323
|
+
//#endregion
|
|
324
|
+
//#region ../../src/api/files/controllers/AdminFileStatsController.ts
|
|
325
|
+
/**
|
|
326
|
+
* REST API controller for storage analytics and statistics.
|
|
327
|
+
* Provides endpoints for viewing storage usage metrics.
|
|
328
|
+
*/
|
|
329
|
+
var AdminFileStatsController = class {
|
|
330
|
+
url = "/files/stats";
|
|
331
|
+
group = "admin:files";
|
|
332
|
+
fileService = $inject(FileService);
|
|
333
|
+
/**
|
|
334
|
+
* GET /files/stats - Gets storage statistics.
|
|
335
|
+
* Returns aggregated data including total size, file count,
|
|
336
|
+
* and breakdowns by bucket and MIME type.
|
|
337
|
+
*/
|
|
338
|
+
getStats = $action({
|
|
339
|
+
path: this.url,
|
|
340
|
+
group: this.group,
|
|
341
|
+
description: "Get storage statistics",
|
|
342
|
+
schema: { response: storageStatsSchema },
|
|
343
|
+
handler: () => this.fileService.getStorageStats()
|
|
344
|
+
});
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
//#endregion
|
|
348
|
+
//#region ../../src/api/files/schemas/fileQuerySchema.ts
|
|
349
|
+
const fileQuerySchema = t.extend(pageQuerySchema, {
|
|
350
|
+
bucket: t.optional(t.string()),
|
|
351
|
+
tags: t.optional(t.array(t.string())),
|
|
352
|
+
name: t.optional(t.string()),
|
|
353
|
+
mimeType: t.optional(t.string()),
|
|
354
|
+
creator: t.optional(t.uuid()),
|
|
355
|
+
createdAfter: t.optional(t.datetime()),
|
|
356
|
+
createdBefore: t.optional(t.datetime())
|
|
357
|
+
});
|
|
358
|
+
|
|
359
|
+
//#endregion
|
|
360
|
+
//#region ../../src/api/files/schemas/fileResourceSchema.ts
|
|
361
|
+
const fileResourceSchema = t.extend(files.schema, {}, {
|
|
362
|
+
title: "FileResource",
|
|
363
|
+
description: "A file resource representing a file stored in the system."
|
|
364
|
+
});
|
|
365
|
+
|
|
324
366
|
//#endregion
|
|
325
367
|
//#region ../../src/api/files/controllers/FileController.ts
|
|
326
368
|
/**
|
|
@@ -337,11 +379,11 @@ var FileController = class {
|
|
|
337
379
|
*/
|
|
338
380
|
findFiles = $action({
|
|
339
381
|
path: this.url,
|
|
340
|
-
group: this.group
|
|
382
|
+
group: `admin:${this.group}`,
|
|
341
383
|
description: "List files with filtering and pagination",
|
|
342
384
|
schema: {
|
|
343
385
|
query: fileQuerySchema,
|
|
344
|
-
response:
|
|
386
|
+
response: t.page(fileResourceSchema)
|
|
345
387
|
},
|
|
346
388
|
handler: ({ query }) => this.fileService.findFiles(query)
|
|
347
389
|
});
|
|
@@ -352,7 +394,7 @@ var FileController = class {
|
|
|
352
394
|
deleteFile = $action({
|
|
353
395
|
method: "DELETE",
|
|
354
396
|
path: `${this.url}/:id`,
|
|
355
|
-
group: this.group
|
|
397
|
+
group: `admin:${this.group}`,
|
|
356
398
|
description: "Delete a file",
|
|
357
399
|
schema: {
|
|
358
400
|
params: t.object({ id: t.uuid() }),
|
|
@@ -389,7 +431,7 @@ var FileController = class {
|
|
|
389
431
|
updateFile = $action({
|
|
390
432
|
method: "PATCH",
|
|
391
433
|
path: `${this.url}/:id`,
|
|
392
|
-
group: this.group
|
|
434
|
+
group: `admin:${this.group}`,
|
|
393
435
|
description: "Update file metadata",
|
|
394
436
|
schema: {
|
|
395
437
|
params: t.object({ id: t.uuid() }),
|
|
@@ -429,48 +471,6 @@ var FileController = class {
|
|
|
429
471
|
});
|
|
430
472
|
};
|
|
431
473
|
|
|
432
|
-
//#endregion
|
|
433
|
-
//#region ../../src/api/files/schemas/storageStatsSchema.ts
|
|
434
|
-
const bucketStatsSchema = t.object({
|
|
435
|
-
bucket: t.string(),
|
|
436
|
-
totalSize: t.number(),
|
|
437
|
-
fileCount: t.number()
|
|
438
|
-
});
|
|
439
|
-
const mimeTypeStatsSchema = t.object({
|
|
440
|
-
mimeType: t.string(),
|
|
441
|
-
fileCount: t.number()
|
|
442
|
-
});
|
|
443
|
-
const storageStatsSchema = t.object({
|
|
444
|
-
totalSize: t.number(),
|
|
445
|
-
totalFiles: t.number(),
|
|
446
|
-
byBucket: t.array(bucketStatsSchema),
|
|
447
|
-
byMimeType: t.array(mimeTypeStatsSchema)
|
|
448
|
-
});
|
|
449
|
-
|
|
450
|
-
//#endregion
|
|
451
|
-
//#region ../../src/api/files/controllers/StorageStatsController.ts
|
|
452
|
-
/**
|
|
453
|
-
* REST API controller for storage analytics and statistics.
|
|
454
|
-
* Provides endpoints for viewing storage usage metrics.
|
|
455
|
-
*/
|
|
456
|
-
var StorageStatsController = class {
|
|
457
|
-
url = "/files/stats";
|
|
458
|
-
group = "files";
|
|
459
|
-
fileService = $inject(FileService);
|
|
460
|
-
/**
|
|
461
|
-
* GET /files/stats - Gets storage statistics.
|
|
462
|
-
* Returns aggregated data including total size, file count,
|
|
463
|
-
* and breakdowns by bucket and MIME type.
|
|
464
|
-
*/
|
|
465
|
-
getStats = $action({
|
|
466
|
-
path: this.url,
|
|
467
|
-
group: this.group,
|
|
468
|
-
description: "Get storage statistics",
|
|
469
|
-
schema: { response: storageStatsSchema },
|
|
470
|
-
handler: () => this.fileService.getStorageStats()
|
|
471
|
-
});
|
|
472
|
-
};
|
|
473
|
-
|
|
474
474
|
//#endregion
|
|
475
475
|
//#region ../../src/api/files/jobs/FileJobs.ts
|
|
476
476
|
var FileJobs = class {
|
|
@@ -499,15 +499,15 @@ const AlephaApiFiles = $module({
|
|
|
499
499
|
name: "alepha.api.files",
|
|
500
500
|
services: [
|
|
501
501
|
FileController,
|
|
502
|
-
|
|
502
|
+
AdminFileStatsController,
|
|
503
503
|
FileJobs,
|
|
504
504
|
FileService
|
|
505
505
|
],
|
|
506
506
|
register: (alepha) => {
|
|
507
|
-
alepha.with(AlephaBucket).with(AlephaServerCache).with(AlephaServerMultipart).with(FileController).with(
|
|
507
|
+
alepha.with(AlephaBucket).with(AlephaServerCache).with(AlephaServerMultipart).with(FileController).with(AdminFileStatsController).with(FileJobs);
|
|
508
508
|
}
|
|
509
509
|
});
|
|
510
510
|
|
|
511
511
|
//#endregion
|
|
512
|
-
export { AlephaApiFiles, FileController, FileJobs, FileService,
|
|
512
|
+
export { AdminFileStatsController, AlephaApiFiles, FileController, FileJobs, FileService, bucketStatsSchema, files, mimeTypeStatsSchema, storageStatsSchema };
|
|
513
513
|
//# sourceMappingURL=index.js.map
|