alepha 0.14.4 → 0.15.1
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 +44 -102
- package/dist/api/audits/index.d.ts +331 -443
- package/dist/api/audits/index.d.ts.map +1 -1
- package/dist/api/audits/index.js +2 -2
- package/dist/api/audits/index.js.map +1 -1
- package/dist/api/files/index.d.ts +0 -113
- package/dist/api/files/index.d.ts.map +1 -1
- package/dist/api/files/index.js +2 -3
- package/dist/api/files/index.js.map +1 -1
- package/dist/api/jobs/index.d.ts +151 -262
- package/dist/api/jobs/index.d.ts.map +1 -1
- package/dist/api/notifications/index.browser.js +4 -4
- package/dist/api/notifications/index.browser.js.map +1 -1
- package/dist/api/notifications/index.d.ts +164 -276
- package/dist/api/notifications/index.d.ts.map +1 -1
- package/dist/api/notifications/index.js +4 -4
- package/dist/api/notifications/index.js.map +1 -1
- package/dist/api/parameters/index.d.ts +265 -377
- package/dist/api/parameters/index.d.ts.map +1 -1
- package/dist/api/users/index.browser.js +1 -2
- package/dist/api/users/index.browser.js.map +1 -1
- package/dist/api/users/index.d.ts +195 -301
- package/dist/api/users/index.d.ts.map +1 -1
- package/dist/api/users/index.js +203 -184
- package/dist/api/users/index.js.map +1 -1
- package/dist/api/verifications/index.d.ts.map +1 -1
- package/dist/batch/index.d.ts.map +1 -1
- package/dist/batch/index.js +1 -2
- package/dist/batch/index.js.map +1 -1
- package/dist/bucket/index.d.ts.map +1 -1
- package/dist/cache/core/index.d.ts.map +1 -1
- package/dist/cache/redis/index.d.ts.map +1 -1
- package/dist/cache/redis/index.js +2 -2
- package/dist/cache/redis/index.js.map +1 -1
- package/dist/cli/index.d.ts +5900 -165
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1481 -639
- package/dist/cli/index.js.map +1 -1
- package/dist/command/index.d.ts +8 -4
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +29 -25
- package/dist/command/index.js.map +1 -1
- package/dist/core/index.browser.js +563 -54
- package/dist/core/index.browser.js.map +1 -1
- package/dist/core/index.d.ts +175 -8
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +564 -54
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.native.js +563 -54
- package/dist/core/index.native.js.map +1 -1
- package/dist/datetime/index.d.ts.map +1 -1
- package/dist/datetime/index.js +4 -4
- package/dist/datetime/index.js.map +1 -1
- package/dist/email/index.d.ts +89 -42
- package/dist/email/index.d.ts.map +1 -1
- package/dist/email/index.js +129 -33
- package/dist/email/index.js.map +1 -1
- package/dist/fake/index.d.ts +7969 -2
- package/dist/fake/index.d.ts.map +1 -1
- package/dist/fake/index.js +22 -22
- package/dist/fake/index.js.map +1 -1
- package/dist/file/index.d.ts +134 -1
- package/dist/file/index.d.ts.map +1 -1
- package/dist/file/index.js +253 -1
- package/dist/file/index.js.map +1 -1
- package/dist/lock/core/index.d.ts.map +1 -1
- package/dist/lock/redis/index.d.ts.map +1 -1
- package/dist/logger/index.d.ts +1 -2
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +1 -5
- package/dist/logger/index.js.map +1 -1
- package/dist/mcp/index.d.ts +19 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +28 -4
- package/dist/mcp/index.js.map +1 -1
- package/dist/orm/chunk-DH6iiROE.js +38 -0
- package/dist/orm/index.browser.js +9 -9
- package/dist/orm/index.browser.js.map +1 -1
- package/dist/orm/index.bun.js +2821 -0
- package/dist/orm/index.bun.js.map +1 -0
- package/dist/orm/index.d.ts +318 -169
- package/dist/orm/index.d.ts.map +1 -1
- package/dist/orm/index.js +2086 -1776
- package/dist/orm/index.js.map +1 -1
- package/dist/queue/core/index.d.ts +4 -4
- package/dist/queue/core/index.d.ts.map +1 -1
- package/dist/queue/redis/index.d.ts.map +1 -1
- package/dist/redis/index.bun.js +285 -0
- package/dist/redis/index.bun.js.map +1 -0
- package/dist/redis/index.d.ts +13 -31
- package/dist/redis/index.d.ts.map +1 -1
- package/dist/redis/index.js +18 -38
- package/dist/redis/index.js.map +1 -1
- package/dist/retry/index.d.ts.map +1 -1
- package/dist/router/index.d.ts.map +1 -1
- package/dist/scheduler/index.d.ts +83 -1
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +393 -1
- package/dist/scheduler/index.js.map +1 -1
- package/dist/security/index.browser.js +5 -1
- package/dist/security/index.browser.js.map +1 -1
- package/dist/security/index.d.ts +598 -112
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +1808 -97
- package/dist/security/index.js.map +1 -1
- package/dist/server/auth/index.d.ts +1200 -175
- package/dist/server/auth/index.d.ts.map +1 -1
- package/dist/server/auth/index.js +1268 -37
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/cache/index.d.ts +6 -3
- package/dist/server/cache/index.d.ts.map +1 -1
- package/dist/server/cache/index.js +1 -1
- package/dist/server/cache/index.js.map +1 -1
- package/dist/server/compress/index.d.ts.map +1 -1
- package/dist/server/cookies/index.d.ts.map +1 -1
- package/dist/server/cookies/index.js +3 -3
- package/dist/server/cookies/index.js.map +1 -1
- package/dist/server/core/index.d.ts +115 -13
- package/dist/server/core/index.d.ts.map +1 -1
- package/dist/server/core/index.js +321 -139
- package/dist/server/core/index.js.map +1 -1
- package/dist/server/cors/index.d.ts +0 -1
- package/dist/server/cors/index.d.ts.map +1 -1
- package/dist/server/health/index.d.ts +0 -1
- package/dist/server/health/index.d.ts.map +1 -1
- package/dist/server/helmet/index.d.ts.map +1 -1
- package/dist/server/links/index.browser.js +9 -1
- package/dist/server/links/index.browser.js.map +1 -1
- package/dist/server/links/index.d.ts +1 -2
- package/dist/server/links/index.d.ts.map +1 -1
- package/dist/server/links/index.js +14 -7
- package/dist/server/links/index.js.map +1 -1
- package/dist/server/metrics/index.d.ts +514 -1
- package/dist/server/metrics/index.d.ts.map +1 -1
- package/dist/server/metrics/index.js +4462 -4
- package/dist/server/metrics/index.js.map +1 -1
- package/dist/server/multipart/index.d.ts.map +1 -1
- package/dist/server/proxy/index.d.ts +0 -1
- package/dist/server/proxy/index.d.ts.map +1 -1
- package/dist/server/rate-limit/index.d.ts.map +1 -1
- package/dist/server/static/index.d.ts.map +1 -1
- package/dist/server/swagger/index.d.ts +1 -2
- package/dist/server/swagger/index.d.ts.map +1 -1
- package/dist/server/swagger/index.js +1 -2
- package/dist/server/swagger/index.js.map +1 -1
- package/dist/sms/index.d.ts +3 -1
- package/dist/sms/index.d.ts.map +1 -1
- package/dist/sms/index.js +10 -10
- package/dist/sms/index.js.map +1 -1
- package/dist/thread/index.d.ts +0 -1
- package/dist/thread/index.d.ts.map +1 -1
- package/dist/thread/index.js +2 -2
- package/dist/thread/index.js.map +1 -1
- package/dist/topic/core/index.d.ts.map +1 -1
- package/dist/topic/redis/index.d.ts.map +1 -1
- package/dist/vite/index.d.ts +6315 -149
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +140 -469
- package/dist/vite/index.js.map +1 -1
- package/dist/websocket/index.browser.js +9 -9
- package/dist/websocket/index.browser.js.map +1 -1
- package/dist/websocket/index.d.ts +28 -28
- package/dist/websocket/index.d.ts.map +1 -1
- package/dist/websocket/index.js +9 -9
- package/dist/websocket/index.js.map +1 -1
- package/package.json +13 -18
- package/src/api/files/controllers/AdminFileStatsController.ts +0 -1
- package/src/api/users/atoms/realmAuthSettingsAtom.ts +5 -0
- package/src/api/users/controllers/{UserRealmController.ts → RealmController.ts} +11 -11
- package/src/api/users/entities/users.ts +1 -1
- package/src/api/users/index.ts +8 -8
- package/src/api/users/primitives/{$userRealm.ts → $realm.ts} +17 -19
- package/src/api/users/providers/{UserRealmProvider.ts → RealmProvider.ts} +26 -30
- package/src/api/users/schemas/{userRealmConfigSchema.ts → realmConfigSchema.ts} +2 -2
- package/src/api/users/services/CredentialService.ts +7 -7
- package/src/api/users/services/IdentityService.ts +4 -4
- package/src/api/users/services/RegistrationService.spec.ts +25 -27
- package/src/api/users/services/RegistrationService.ts +38 -27
- package/src/api/users/services/SessionCrudService.ts +3 -3
- package/src/api/users/services/SessionService.spec.ts +3 -3
- package/src/api/users/services/SessionService.ts +27 -18
- package/src/api/users/services/UserService.ts +7 -7
- package/src/batch/providers/BatchProvider.ts +1 -2
- package/src/cli/apps/AlephaCli.ts +2 -2
- package/src/cli/apps/AlephaPackageBuilderCli.ts +47 -20
- package/src/cli/assets/apiHelloControllerTs.ts +19 -0
- package/src/cli/assets/apiIndexTs.ts +16 -0
- package/src/cli/assets/biomeJson.ts +2 -1
- package/src/cli/assets/claudeMd.ts +308 -0
- package/src/cli/assets/dummySpecTs.ts +2 -1
- package/src/cli/assets/editorconfig.ts +2 -1
- package/src/cli/assets/mainBrowserTs.ts +4 -3
- package/src/cli/assets/mainCss.ts +24 -0
- package/src/cli/assets/mainServerTs.ts +24 -0
- package/src/cli/assets/tsconfigJson.ts +2 -1
- package/src/cli/assets/webAppRouterTs.ts +16 -0
- package/src/cli/assets/webHelloComponentTsx.ts +20 -0
- package/src/cli/assets/webIndexTs.ts +16 -0
- package/src/cli/atoms/appEntryOptions.ts +13 -0
- package/src/cli/atoms/buildOptions.ts +1 -1
- package/src/cli/atoms/changelogOptions.ts +1 -1
- package/src/cli/commands/build.ts +97 -61
- package/src/cli/commands/db.ts +21 -18
- package/src/cli/commands/deploy.ts +17 -5
- package/src/cli/commands/dev.ts +26 -47
- package/src/cli/commands/gen/env.ts +1 -1
- package/src/cli/commands/init.ts +79 -25
- package/src/cli/commands/lint.ts +9 -3
- package/src/cli/commands/test.ts +8 -2
- package/src/cli/commands/typecheck.ts +5 -1
- package/src/cli/commands/verify.ts +4 -2
- package/src/cli/defineConfig.ts +9 -0
- package/src/cli/index.ts +2 -1
- package/src/cli/providers/AppEntryProvider.ts +131 -0
- package/src/cli/providers/ViteBuildProvider.ts +82 -0
- package/src/cli/providers/ViteDevServerProvider.ts +350 -0
- package/src/cli/providers/ViteTemplateProvider.ts +27 -0
- package/src/cli/services/AlephaCliUtils.ts +72 -602
- package/src/cli/services/PackageManagerUtils.ts +308 -0
- package/src/cli/services/ProjectScaffolder.ts +329 -0
- package/src/command/helpers/Runner.ts +15 -3
- package/src/core/Alepha.ts +2 -8
- package/src/core/__tests__/Alepha-graph.spec.ts +4 -0
- package/src/core/index.shared.ts +1 -0
- package/src/core/index.ts +2 -0
- package/src/core/primitives/$hook.ts +6 -2
- package/src/core/primitives/$module.spec.ts +4 -0
- package/src/core/primitives/$module.ts +12 -0
- package/src/core/providers/AlsProvider.ts +1 -1
- package/src/core/providers/CodecManager.spec.ts +12 -6
- package/src/core/providers/CodecManager.ts +26 -6
- package/src/core/providers/EventManager.ts +169 -13
- package/src/core/providers/KeylessJsonSchemaCodec.spec.ts +878 -0
- package/src/core/providers/KeylessJsonSchemaCodec.ts +789 -0
- package/src/core/providers/SchemaValidator.spec.ts +236 -0
- package/src/core/providers/StateManager.spec.ts +27 -16
- package/src/email/providers/LocalEmailProvider.spec.ts +111 -87
- package/src/email/providers/LocalEmailProvider.ts +52 -15
- package/src/email/providers/NodemailerEmailProvider.ts +167 -56
- package/src/file/errors/FileError.ts +7 -0
- package/src/file/index.ts +9 -1
- package/src/file/providers/MemoryFileSystemProvider.ts +393 -0
- package/src/logger/providers/PrettyFormatterProvider.ts +0 -9
- package/src/mcp/errors/McpError.ts +30 -0
- package/src/mcp/index.ts +3 -0
- package/src/mcp/transports/SseMcpTransport.ts +16 -6
- package/src/orm/index.browser.ts +1 -19
- package/src/orm/index.bun.ts +77 -0
- package/src/orm/index.shared-server.ts +22 -0
- package/src/orm/index.shared.ts +15 -0
- package/src/orm/index.ts +19 -39
- package/src/orm/providers/DrizzleKitProvider.ts +3 -5
- package/src/orm/providers/drivers/BunPostgresProvider.ts +3 -5
- package/src/orm/providers/drivers/BunSqliteProvider.ts +1 -1
- package/src/orm/providers/drivers/CloudflareD1Provider.ts +4 -0
- package/src/orm/providers/drivers/DatabaseProvider.ts +4 -0
- package/src/orm/providers/drivers/PglitePostgresProvider.ts +4 -0
- package/src/orm/services/Repository.ts +19 -0
- package/src/redis/index.bun.ts +35 -0
- package/src/redis/providers/BunRedisProvider.ts +12 -43
- package/src/redis/providers/BunRedisSubscriberProvider.ts +2 -3
- package/src/redis/providers/NodeRedisProvider.ts +16 -34
- package/src/{server/security → security}/__tests__/BasicAuth.spec.ts +11 -11
- package/src/{server/security → security}/__tests__/ServerSecurityProvider-realm.spec.ts +21 -16
- package/src/{server/security/providers → security/__tests__}/ServerSecurityProvider.spec.ts +5 -5
- package/src/security/index.browser.ts +5 -0
- package/src/security/index.ts +90 -7
- package/src/security/primitives/{$realm.spec.ts → $issuer.spec.ts} +11 -11
- package/src/security/primitives/{$realm.ts → $issuer.ts} +20 -17
- package/src/security/primitives/$role.ts +5 -5
- package/src/security/primitives/$serviceAccount.spec.ts +5 -5
- package/src/security/primitives/$serviceAccount.ts +3 -3
- package/src/{server/security → security}/providers/ServerSecurityProvider.ts +5 -7
- package/src/server/auth/primitives/$auth.ts +10 -10
- package/src/server/auth/primitives/$authCredentials.ts +3 -3
- package/src/server/auth/primitives/$authGithub.ts +3 -3
- package/src/server/auth/primitives/$authGoogle.ts +3 -3
- package/src/server/auth/providers/ServerAuthProvider.ts +13 -13
- package/src/server/cache/providers/ServerCacheProvider.ts +1 -1
- package/src/server/cookies/providers/ServerCookiesProvider.ts +3 -3
- package/src/server/core/index.ts +1 -1
- package/src/server/core/providers/BunHttpServerProvider.ts +1 -1
- package/src/server/core/providers/NodeHttpServerProvider.spec.ts +125 -0
- package/src/server/core/providers/NodeHttpServerProvider.ts +92 -24
- package/src/server/core/providers/ServerBodyParserProvider.ts +19 -23
- package/src/server/core/providers/ServerLoggerProvider.ts +23 -19
- package/src/server/core/providers/ServerProvider.ts +144 -24
- package/src/server/core/providers/ServerRouterProvider.ts +259 -115
- package/src/server/core/providers/ServerTimingProvider.ts +2 -2
- package/src/server/links/atoms/apiLinksAtom.ts +7 -0
- package/src/server/links/index.browser.ts +2 -0
- package/src/server/links/index.ts +3 -1
- package/src/server/links/providers/LinkProvider.ts +1 -1
- package/src/server/swagger/index.ts +1 -1
- package/src/sms/providers/LocalSmsProvider.spec.ts +153 -111
- package/src/sms/providers/LocalSmsProvider.ts +8 -7
- package/src/vite/index.ts +3 -2
- package/src/vite/tasks/buildClient.ts +0 -1
- package/src/vite/tasks/buildServer.ts +80 -22
- package/src/vite/tasks/copyAssets.ts +5 -4
- package/src/vite/tasks/generateCloudflare.ts +7 -0
- package/src/vite/tasks/generateSitemap.ts +64 -23
- package/src/vite/tasks/index.ts +0 -2
- package/src/vite/tasks/prerenderPages.ts +49 -24
- package/dist/server/security/index.browser.js +0 -13
- package/dist/server/security/index.browser.js.map +0 -1
- package/dist/server/security/index.d.ts +0 -173
- package/dist/server/security/index.d.ts.map +0 -1
- package/dist/server/security/index.js +0 -311
- package/dist/server/security/index.js.map +0 -1
- package/src/cli/assets/appRouterTs.ts +0 -9
- package/src/cli/assets/indexHtml.ts +0 -15
- package/src/cli/assets/mainTs.ts +0 -13
- package/src/cli/commands/format.ts +0 -17
- package/src/server/security/index.browser.ts +0 -10
- package/src/server/security/index.ts +0 -94
- package/src/vite/helpers/boot.ts +0 -106
- package/src/vite/plugins/viteAlephaDev.ts +0 -177
- package/src/vite/tasks/devServer.ts +0 -69
- package/src/vite/tasks/runAlepha.ts +0 -270
- /package/src/{server/security → security}/primitives/$basicAuth.ts +0 -0
- /package/src/{server/security → security}/providers/ServerBasicAuthProvider.ts +0 -0
package/src/orm/index.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { $module, type Alepha, t } from "alepha";
|
|
2
2
|
import { AlephaDateTime } from "alepha/datetime";
|
|
3
|
-
import * as drizzle from "drizzle-orm";
|
|
4
3
|
import { $entity } from "./primitives/$entity.ts";
|
|
5
|
-
import { $repository } from "./primitives/$repository.ts";
|
|
6
4
|
import { $sequence } from "./primitives/$sequence.ts";
|
|
7
5
|
import { DrizzleKitProvider } from "./providers/DrizzleKitProvider.ts";
|
|
6
|
+
import { BunPostgresProvider } from "./providers/drivers/BunPostgresProvider.ts";
|
|
7
|
+
import { BunSqliteProvider } from "./providers/drivers/BunSqliteProvider.ts";
|
|
8
8
|
import { CloudflareD1Provider } from "./providers/drivers/CloudflareD1Provider.ts";
|
|
9
9
|
import { DatabaseProvider } from "./providers/drivers/DatabaseProvider.ts";
|
|
10
10
|
import { NodePostgresProvider } from "./providers/drivers/NodePostgresProvider.ts";
|
|
@@ -88,48 +88,21 @@ declare module "alepha" {
|
|
|
88
88
|
|
|
89
89
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
90
90
|
|
|
91
|
-
export
|
|
92
|
-
export
|
|
93
|
-
|
|
94
|
-
type PageQuery,
|
|
95
|
-
pageQuerySchema,
|
|
96
|
-
pageSchema,
|
|
97
|
-
} from "alepha";
|
|
98
|
-
export { sql } from "drizzle-orm";
|
|
99
|
-
export * from "drizzle-orm/pg-core";
|
|
100
|
-
export * from "./constants/PG_SYMBOLS.ts";
|
|
101
|
-
export * from "./errors/DbConflictError.ts";
|
|
102
|
-
export * from "./errors/DbEntityNotFoundError.ts";
|
|
103
|
-
export * from "./errors/DbError.ts";
|
|
104
|
-
export * from "./errors/DbMigrationError.ts";
|
|
105
|
-
export * from "./errors/DbVersionMismatchError.ts";
|
|
106
|
-
export * from "./helpers/parseQueryString.ts";
|
|
107
|
-
export * from "./helpers/pgAttr.ts";
|
|
108
|
-
export * from "./interfaces/FilterOperators.ts";
|
|
109
|
-
export * from "./interfaces/PgQuery.ts";
|
|
110
|
-
export * from "./interfaces/PgQueryWhere.ts";
|
|
111
|
-
export * from "./primitives/$entity.ts";
|
|
112
|
-
export * from "./primitives/$repository.ts";
|
|
113
|
-
export * from "./primitives/$sequence.ts";
|
|
114
|
-
export * from "./primitives/$transaction.ts";
|
|
115
|
-
export * from "./providers/DatabaseTypeProvider.ts";
|
|
116
|
-
export * from "./providers/DrizzleKitProvider.ts";
|
|
117
|
-
export * from "./providers/drivers/CloudflareD1Provider.ts";
|
|
118
|
-
export * from "./providers/drivers/DatabaseProvider.ts";
|
|
91
|
+
export * from "./index.shared-server.ts";
|
|
92
|
+
export * from "./providers/drivers/BunPostgresProvider.ts";
|
|
93
|
+
export * from "./providers/drivers/BunSqliteProvider.ts";
|
|
119
94
|
export * from "./providers/drivers/NodePostgresProvider.ts";
|
|
120
95
|
export * from "./providers/drivers/NodeSqliteProvider.ts";
|
|
121
|
-
export * from "./providers/RepositoryProvider.ts";
|
|
122
|
-
export * from "./schemas/insertSchema.ts";
|
|
123
|
-
export * from "./schemas/legacyIdSchema.ts";
|
|
124
|
-
export * from "./schemas/updateSchema.ts";
|
|
125
|
-
export * from "./services/Repository.ts";
|
|
126
|
-
export * from "./types/schema.ts";
|
|
127
96
|
|
|
128
97
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
129
98
|
|
|
130
99
|
/**
|
|
131
100
|
* Postgres client based on Drizzle ORM, Alepha type-safe friendly.
|
|
132
101
|
*
|
|
102
|
+
* Automatically selects the appropriate provider based on runtime:
|
|
103
|
+
* - Bun: Uses `BunPostgresProvider` or `BunSqliteProvider`
|
|
104
|
+
* - Node.js: Uses `NodePostgresProvider` or `NodeSqliteProvider`
|
|
105
|
+
*
|
|
133
106
|
* ```ts
|
|
134
107
|
* import { t } from "alepha";
|
|
135
108
|
* import { $entity, $repository, db } from "alepha/postgres";
|
|
@@ -168,6 +141,10 @@ export * from "./types/schema.ts";
|
|
|
168
141
|
* @see {@link $sequence}
|
|
169
142
|
* @see {@link $repository}
|
|
170
143
|
* @see {@link $transaction}
|
|
144
|
+
* @see {@link NodePostgresProvider} - Node.js Postgres implementation
|
|
145
|
+
* @see {@link NodeSqliteProvider} - Node.js SQLite implementation
|
|
146
|
+
* @see {@link BunPostgresProvider} - Bun Postgres implementation
|
|
147
|
+
* @see {@link BunSqliteProvider} - Bun SQLite implementation
|
|
171
148
|
* @module alepha.postgres
|
|
172
149
|
*/
|
|
173
150
|
export const AlephaPostgres = $module({
|
|
@@ -177,8 +154,10 @@ export const AlephaPostgres = $module({
|
|
|
177
154
|
AlephaDateTime,
|
|
178
155
|
DatabaseProvider,
|
|
179
156
|
NodePostgresProvider,
|
|
180
|
-
PglitePostgresProvider,
|
|
181
157
|
NodeSqliteProvider,
|
|
158
|
+
BunPostgresProvider,
|
|
159
|
+
BunSqliteProvider,
|
|
160
|
+
PglitePostgresProvider,
|
|
182
161
|
CloudflareD1Provider,
|
|
183
162
|
SqliteModelBuilder,
|
|
184
163
|
PostgresModelBuilder,
|
|
@@ -204,6 +183,7 @@ export const AlephaPostgres = $module({
|
|
|
204
183
|
const isSqlite = url?.startsWith("sqlite:");
|
|
205
184
|
const isMemory = url?.includes(":memory:");
|
|
206
185
|
const isFile = !!url && !isPostgres && !isMemory;
|
|
186
|
+
const isBun = alepha.isBun();
|
|
207
187
|
|
|
208
188
|
if (url?.startsWith("cloudflare-d1:")) {
|
|
209
189
|
alepha.with({
|
|
@@ -227,7 +207,7 @@ export const AlephaPostgres = $module({
|
|
|
227
207
|
alepha.with({
|
|
228
208
|
optional: true,
|
|
229
209
|
provide: DatabaseProvider,
|
|
230
|
-
use: NodePostgresProvider,
|
|
210
|
+
use: isBun ? BunPostgresProvider : NodePostgresProvider,
|
|
231
211
|
});
|
|
232
212
|
return;
|
|
233
213
|
}
|
|
@@ -235,7 +215,7 @@ export const AlephaPostgres = $module({
|
|
|
235
215
|
alepha.with({
|
|
236
216
|
optional: true,
|
|
237
217
|
provide: DatabaseProvider,
|
|
238
|
-
use: NodeSqliteProvider,
|
|
218
|
+
use: isBun ? BunSqliteProvider : NodeSqliteProvider,
|
|
239
219
|
});
|
|
240
220
|
},
|
|
241
221
|
});
|
|
@@ -47,9 +47,7 @@ export class DrizzleKitProvider {
|
|
|
47
47
|
await this.saveDevMigrations(provider, snapshot, entry);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
this.log.info(
|
|
51
|
-
`Db '${provider.name}' synchronization OK [${Date.now() - now}ms]`,
|
|
52
|
-
);
|
|
50
|
+
this.log.info(`Sync with '${provider.name}' OK [${Date.now() - now}ms]`);
|
|
53
51
|
}
|
|
54
52
|
|
|
55
53
|
/**
|
|
@@ -81,8 +79,8 @@ export class DrizzleKitProvider {
|
|
|
81
79
|
};
|
|
82
80
|
}
|
|
83
81
|
|
|
84
|
-
const prev = prevSnapshot ??
|
|
85
|
-
const curr =
|
|
82
|
+
const prev = prevSnapshot ?? kit.generateDrizzleJson({});
|
|
83
|
+
const curr = kit.generateDrizzleJson(models);
|
|
86
84
|
return {
|
|
87
85
|
models,
|
|
88
86
|
statements: await kit.generateMigration(prev, curr),
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { $env, $hook, $inject, AlephaError, type Static, t } from "alepha";
|
|
2
2
|
import { $lock } from "alepha/lock";
|
|
3
3
|
import { $logger } from "alepha/logger";
|
|
4
|
-
import type { SQL as BunSQL } from "bun";
|
|
5
4
|
import { sql } from "drizzle-orm";
|
|
6
5
|
import type { BunSQLDatabase } from "drizzle-orm/bun-sql";
|
|
7
6
|
import type { PgDatabase } from "drizzle-orm/pg-core";
|
|
@@ -55,13 +54,13 @@ export class BunPostgresProvider extends DatabaseProvider {
|
|
|
55
54
|
protected readonly kit = $inject(DrizzleKitProvider);
|
|
56
55
|
protected readonly builder = $inject(PostgresModelBuilder);
|
|
57
56
|
|
|
58
|
-
protected client?:
|
|
57
|
+
protected client?: Bun.SQL;
|
|
59
58
|
protected bunDb?: BunSQLDatabase;
|
|
60
59
|
|
|
61
60
|
public readonly dialect = "postgresql";
|
|
62
61
|
|
|
63
62
|
public get name() {
|
|
64
|
-
return "
|
|
63
|
+
return "postgres";
|
|
65
64
|
}
|
|
66
65
|
|
|
67
66
|
/**
|
|
@@ -184,10 +183,9 @@ export class BunPostgresProvider extends DatabaseProvider {
|
|
|
184
183
|
}
|
|
185
184
|
|
|
186
185
|
const { drizzle } = await import("drizzle-orm/bun-sql");
|
|
187
|
-
const { SQL } = await import("bun");
|
|
188
186
|
|
|
189
187
|
// Create Bun SQL client
|
|
190
|
-
this.client = new SQL(this.url);
|
|
188
|
+
this.client = new Bun.SQL(this.url);
|
|
191
189
|
|
|
192
190
|
// Test connection
|
|
193
191
|
await this.client.unsafe("SELECT 1");
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
t,
|
|
12
12
|
} from "alepha";
|
|
13
13
|
import { type DateTime, DateTimeProvider } from "alepha/datetime";
|
|
14
|
+
import { $logger } from "alepha/logger";
|
|
14
15
|
import { asc, desc, isSQLWrapper, type SQL } from "drizzle-orm";
|
|
15
16
|
import type {
|
|
16
17
|
LockConfig,
|
|
@@ -62,11 +63,23 @@ export abstract class Repository<T extends TObject> {
|
|
|
62
63
|
public readonly entity: EntityPrimitive<T>;
|
|
63
64
|
public readonly provider: DatabaseProvider;
|
|
64
65
|
|
|
66
|
+
protected readonly log = $logger();
|
|
65
67
|
protected readonly relationManager = $inject(PgRelationManager);
|
|
66
68
|
protected readonly queryManager = $inject(QueryManager);
|
|
67
69
|
protected readonly dateTimeProvider = $inject(DateTimeProvider);
|
|
68
70
|
protected readonly alepha = $inject(Alepha);
|
|
69
71
|
|
|
72
|
+
static of<T extends TObject>(
|
|
73
|
+
entity: EntityPrimitive<T>,
|
|
74
|
+
provider = DatabaseProvider,
|
|
75
|
+
): new () => Repository<T> {
|
|
76
|
+
return class InlineRepository extends Repository<T> {
|
|
77
|
+
constructor() {
|
|
78
|
+
super(entity, provider);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
70
83
|
constructor(entity: EntityPrimitive<T>, provider = DatabaseProvider) {
|
|
71
84
|
this.entity = entity;
|
|
72
85
|
this.provider = this.alepha.inject(provider);
|
|
@@ -200,6 +213,12 @@ export abstract class Repository<T extends TObject> {
|
|
|
200
213
|
) => Promise<T>,
|
|
201
214
|
config?: PgTransactionConfig,
|
|
202
215
|
): Promise<T> {
|
|
216
|
+
if (this.provider.driver === "pglite") {
|
|
217
|
+
this.log.warn("Transactions are not supported with pglite driver");
|
|
218
|
+
return await transaction(null as any);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
this.log.debug(`Starting transaction on table ${this.tableName}`);
|
|
203
222
|
return await this.db.transaction(transaction, config);
|
|
204
223
|
}
|
|
205
224
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { $module, type Alepha } from "alepha";
|
|
2
|
+
import { BunRedisProvider } from "./providers/BunRedisProvider.ts";
|
|
3
|
+
import { BunRedisSubscriberProvider } from "./providers/BunRedisSubscriberProvider.ts";
|
|
4
|
+
import { RedisProvider } from "./providers/RedisProvider.ts";
|
|
5
|
+
import { RedisSubscriberProvider } from "./providers/RedisSubscriberProvider.ts";
|
|
6
|
+
|
|
7
|
+
// ---------------------------------------------------------------------------------------------------------------------
|
|
8
|
+
|
|
9
|
+
export * from "./providers/BunRedisProvider.ts";
|
|
10
|
+
export * from "./providers/BunRedisSubscriberProvider.ts";
|
|
11
|
+
export * from "./providers/RedisProvider.ts";
|
|
12
|
+
export * from "./providers/RedisSubscriberProvider.ts";
|
|
13
|
+
|
|
14
|
+
// ---------------------------------------------------------------------------------------------------------------------
|
|
15
|
+
|
|
16
|
+
export const AlephaRedis = $module({
|
|
17
|
+
name: "alepha.redis",
|
|
18
|
+
services: [
|
|
19
|
+
BunRedisProvider,
|
|
20
|
+
BunRedisSubscriberProvider,
|
|
21
|
+
RedisProvider,
|
|
22
|
+
RedisSubscriberProvider,
|
|
23
|
+
],
|
|
24
|
+
register: (alepha: Alepha) => {
|
|
25
|
+
alepha
|
|
26
|
+
.with({
|
|
27
|
+
provide: RedisProvider,
|
|
28
|
+
use: BunRedisProvider,
|
|
29
|
+
})
|
|
30
|
+
.with({
|
|
31
|
+
provide: RedisSubscriberProvider,
|
|
32
|
+
use: BunRedisSubscriberProvider,
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
});
|
|
@@ -8,18 +8,13 @@ import {
|
|
|
8
8
|
t,
|
|
9
9
|
} from "alepha";
|
|
10
10
|
import { $logger } from "alepha/logger";
|
|
11
|
-
import type { RedisClient as BunRedisClient } from "bun";
|
|
12
11
|
import { RedisProvider, type RedisSetOptions } from "./RedisProvider.ts";
|
|
13
12
|
|
|
14
13
|
const envSchema = t.object({
|
|
15
|
-
REDIS_URL: t.
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
REDIS_URL: t.text({
|
|
15
|
+
default: "redis://localhost:6379",
|
|
16
|
+
description: "Redis connection URL",
|
|
18
17
|
}),
|
|
19
|
-
REDIS_HOST: t.text({
|
|
20
|
-
default: "localhost",
|
|
21
|
-
}),
|
|
22
|
-
REDIS_PASSWORD: t.optional(t.text()),
|
|
23
18
|
});
|
|
24
19
|
|
|
25
20
|
declare module "alepha" {
|
|
@@ -34,10 +29,8 @@ declare module "alepha" {
|
|
|
34
29
|
*
|
|
35
30
|
* @example
|
|
36
31
|
* ```ts
|
|
37
|
-
* // Set REDIS_URL environment variable
|
|
38
|
-
* // REDIS_URL=redis
|
|
39
|
-
*
|
|
40
|
-
* // Or configure via REDIS_HOST, REDIS_PORT, REDIS_PASSWORD
|
|
32
|
+
* // Set REDIS_URL environment variable (default: redis://localhost:6379)
|
|
33
|
+
* // REDIS_URL=redis://:password@myredis.example.com:6379
|
|
41
34
|
*
|
|
42
35
|
* // Or configure programmatically
|
|
43
36
|
* alepha.with({
|
|
@@ -50,9 +43,9 @@ export class BunRedisProvider extends RedisProvider {
|
|
|
50
43
|
protected readonly log = $logger();
|
|
51
44
|
protected readonly alepha = $inject(Alepha);
|
|
52
45
|
protected readonly env = $env(envSchema);
|
|
53
|
-
protected client?:
|
|
46
|
+
protected client?: Bun.RedisClient;
|
|
54
47
|
|
|
55
|
-
public get publisher():
|
|
48
|
+
public get publisher(): Bun.RedisClient {
|
|
56
49
|
if (!this.client?.connected) {
|
|
57
50
|
throw new AlephaError("Redis client is not ready");
|
|
58
51
|
}
|
|
@@ -79,7 +72,7 @@ export class BunRedisProvider extends RedisProvider {
|
|
|
79
72
|
*/
|
|
80
73
|
public override async connect(): Promise<void> {
|
|
81
74
|
// Check if we're running in Bun
|
|
82
|
-
if (
|
|
75
|
+
if (!this.alepha.isBun()) {
|
|
83
76
|
throw new AlephaError(
|
|
84
77
|
"BunRedisProvider requires the Bun runtime. Use NodeRedisProvider for Node.js.",
|
|
85
78
|
);
|
|
@@ -87,9 +80,7 @@ export class BunRedisProvider extends RedisProvider {
|
|
|
87
80
|
|
|
88
81
|
this.log.debug("Connecting...");
|
|
89
82
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
this.client = new RedisClient(this.getUrl(), {
|
|
83
|
+
this.client = new Bun.RedisClient(this.getUrl(), {
|
|
93
84
|
autoReconnect: true,
|
|
94
85
|
enableAutoPipelining: true,
|
|
95
86
|
});
|
|
@@ -124,14 +115,12 @@ export class BunRedisProvider extends RedisProvider {
|
|
|
124
115
|
/**
|
|
125
116
|
* Create a duplicate connection for pub/sub or other isolated operations.
|
|
126
117
|
*/
|
|
127
|
-
public async duplicate(): Promise<
|
|
118
|
+
public async duplicate(): Promise<Bun.RedisClient> {
|
|
128
119
|
if (typeof Bun === "undefined") {
|
|
129
120
|
throw new AlephaError("BunRedisProvider requires the Bun runtime.");
|
|
130
121
|
}
|
|
131
122
|
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
const client = new RedisClient(this.getUrl(), {
|
|
123
|
+
const client = new Bun.RedisClient(this.getUrl(), {
|
|
135
124
|
autoReconnect: true,
|
|
136
125
|
enableAutoPipelining: true,
|
|
137
126
|
});
|
|
@@ -279,26 +268,6 @@ export class BunRedisProvider extends RedisProvider {
|
|
|
279
268
|
* Get the Redis connection URL.
|
|
280
269
|
*/
|
|
281
270
|
protected getUrl(): string {
|
|
282
|
-
|
|
283
|
-
if (this.env.REDIS_URL) {
|
|
284
|
-
return this.env.REDIS_URL;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
// Build URL from components
|
|
288
|
-
const url = new URL("redis://127.0.0.1:6379");
|
|
289
|
-
|
|
290
|
-
if (this.env.REDIS_PASSWORD) {
|
|
291
|
-
url.password = this.env.REDIS_PASSWORD;
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
if (this.env.REDIS_HOST) {
|
|
295
|
-
url.hostname = this.env.REDIS_HOST;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
if (this.env.REDIS_PORT) {
|
|
299
|
-
url.port = String(this.env.REDIS_PORT);
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
return url.toString();
|
|
271
|
+
return this.env.REDIS_URL;
|
|
303
272
|
}
|
|
304
273
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { $hook, $inject, Alepha, AlephaError } from "alepha";
|
|
2
2
|
import { $logger } from "alepha/logger";
|
|
3
|
-
import type { RedisClient as BunRedisClient } from "bun";
|
|
4
3
|
import { BunRedisProvider } from "./BunRedisProvider.ts";
|
|
5
4
|
import {
|
|
6
5
|
RedisSubscriberProvider,
|
|
@@ -25,9 +24,9 @@ export class BunRedisSubscriberProvider extends RedisSubscriberProvider {
|
|
|
25
24
|
protected readonly log = $logger();
|
|
26
25
|
protected readonly alepha = $inject(Alepha);
|
|
27
26
|
protected readonly redisProvider = $inject(BunRedisProvider);
|
|
28
|
-
protected client?:
|
|
27
|
+
protected client?: Bun.RedisClient;
|
|
29
28
|
|
|
30
|
-
public get subscriber():
|
|
29
|
+
public get subscriber(): Bun.RedisClient {
|
|
31
30
|
if (!this.client?.connected) {
|
|
32
31
|
throw new AlephaError("Redis subscriber client is not ready");
|
|
33
32
|
}
|
|
@@ -4,19 +4,23 @@ import {
|
|
|
4
4
|
type RedisClientType,
|
|
5
5
|
type SetOptions,
|
|
6
6
|
} from "@redis/client";
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
$env,
|
|
9
|
+
$hook,
|
|
10
|
+
$inject,
|
|
11
|
+
Alepha,
|
|
12
|
+
AlephaError,
|
|
13
|
+
type Static,
|
|
14
|
+
t,
|
|
15
|
+
} from "alepha";
|
|
8
16
|
import { $logger } from "alepha/logger";
|
|
9
17
|
import { RedisProvider, type RedisSetOptions } from "./RedisProvider.ts";
|
|
10
18
|
|
|
11
19
|
const envSchema = t.object({
|
|
12
|
-
REDIS_URL: t.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}),
|
|
16
|
-
REDIS_HOST: t.text({
|
|
17
|
-
default: "localhost",
|
|
20
|
+
REDIS_URL: t.text({
|
|
21
|
+
default: "redis://localhost:6379",
|
|
22
|
+
description: "Redis connection URL",
|
|
18
23
|
}),
|
|
19
|
-
REDIS_PASSWORD: t.optional(t.text()),
|
|
20
24
|
});
|
|
21
25
|
|
|
22
26
|
declare module "alepha" {
|
|
@@ -39,10 +43,8 @@ export type NodeRedisClientOptions = Parameters<typeof createClient>[0];
|
|
|
39
43
|
*
|
|
40
44
|
* @example
|
|
41
45
|
* ```ts
|
|
42
|
-
* // Set REDIS_URL environment variable
|
|
43
|
-
* // REDIS_URL=redis
|
|
44
|
-
*
|
|
45
|
-
* // Or configure via REDIS_HOST, REDIS_PORT, REDIS_PASSWORD
|
|
46
|
+
* // Set REDIS_URL environment variable (default: redis://localhost:6379)
|
|
47
|
+
* // REDIS_URL=redis://:password@myredis.example.com:6379
|
|
46
48
|
*
|
|
47
49
|
* // Or configure programmatically
|
|
48
50
|
* alepha.with({
|
|
@@ -59,7 +61,7 @@ export class NodeRedisProvider extends RedisProvider {
|
|
|
59
61
|
|
|
60
62
|
public get publisher(): NodeRedisClient {
|
|
61
63
|
if (!this.client.isReady) {
|
|
62
|
-
throw new
|
|
64
|
+
throw new AlephaError("Redis client is not ready");
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
return this.client;
|
|
@@ -235,27 +237,7 @@ export class NodeRedisProvider extends RedisProvider {
|
|
|
235
237
|
* Get the Redis connection URL.
|
|
236
238
|
*/
|
|
237
239
|
protected getUrl(): string {
|
|
238
|
-
|
|
239
|
-
if (this.env.REDIS_URL) {
|
|
240
|
-
return this.env.REDIS_URL;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
// Build URL from components
|
|
244
|
-
const url = new URL("redis://127.0.0.1:6379");
|
|
245
|
-
|
|
246
|
-
if (this.env.REDIS_PASSWORD) {
|
|
247
|
-
url.password = this.env.REDIS_PASSWORD;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
if (this.env.REDIS_HOST) {
|
|
251
|
-
url.hostname = this.env.REDIS_HOST;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
if (this.env.REDIS_PORT) {
|
|
255
|
-
url.port = String(this.env.REDIS_PORT);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
return url.toString();
|
|
240
|
+
return this.env.REDIS_URL;
|
|
259
241
|
}
|
|
260
242
|
|
|
261
243
|
/**
|
|
@@ -3,7 +3,7 @@ import { $action, AlephaServer } from "alepha/server";
|
|
|
3
3
|
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
4
4
|
import {
|
|
5
5
|
$basicAuth,
|
|
6
|
-
|
|
6
|
+
AlephaSecurity,
|
|
7
7
|
ServerBasicAuthProvider,
|
|
8
8
|
} from "../index.ts";
|
|
9
9
|
|
|
@@ -58,7 +58,7 @@ describe("Basic Authentication", () => {
|
|
|
58
58
|
beforeEach(async () => {
|
|
59
59
|
alepha = Alepha.create()
|
|
60
60
|
.with(AlephaServer)
|
|
61
|
-
.with(
|
|
61
|
+
.with(AlephaSecurity)
|
|
62
62
|
.with(TestApp);
|
|
63
63
|
|
|
64
64
|
await alepha.start();
|
|
@@ -269,7 +269,7 @@ describe("Basic Authentication", () => {
|
|
|
269
269
|
|
|
270
270
|
const edgeAlepha = Alepha.create()
|
|
271
271
|
.with(AlephaServer)
|
|
272
|
-
.with(
|
|
272
|
+
.with(AlephaSecurity)
|
|
273
273
|
.with(EdgeCaseApp);
|
|
274
274
|
|
|
275
275
|
await edgeAlepha.start();
|
|
@@ -301,7 +301,7 @@ describe("Basic Authentication", () => {
|
|
|
301
301
|
|
|
302
302
|
const emptyAlepha = Alepha.create()
|
|
303
303
|
.with(AlephaServer)
|
|
304
|
-
.with(
|
|
304
|
+
.with(AlephaSecurity)
|
|
305
305
|
.with(EmptyPasswordApp);
|
|
306
306
|
|
|
307
307
|
await emptyAlepha.start();
|
|
@@ -333,7 +333,7 @@ describe("Basic Authentication", () => {
|
|
|
333
333
|
|
|
334
334
|
const specialAlepha = Alepha.create()
|
|
335
335
|
.with(AlephaServer)
|
|
336
|
-
.with(
|
|
336
|
+
.with(AlephaSecurity)
|
|
337
337
|
.with(SpecialCharsApp);
|
|
338
338
|
|
|
339
339
|
await specialAlepha.start();
|
|
@@ -365,7 +365,7 @@ describe("Basic Authentication", () => {
|
|
|
365
365
|
|
|
366
366
|
const unicodeAlepha = Alepha.create()
|
|
367
367
|
.with(AlephaServer)
|
|
368
|
-
.with(
|
|
368
|
+
.with(AlephaSecurity)
|
|
369
369
|
.with(UnicodeApp);
|
|
370
370
|
|
|
371
371
|
await unicodeAlepha.start();
|
|
@@ -397,7 +397,7 @@ describe("Basic Authentication", () => {
|
|
|
397
397
|
|
|
398
398
|
const unicodeAlepha = Alepha.create()
|
|
399
399
|
.with(AlephaServer)
|
|
400
|
-
.with(
|
|
400
|
+
.with(AlephaSecurity)
|
|
401
401
|
.with(UnicodeApp);
|
|
402
402
|
|
|
403
403
|
await unicodeAlepha.start();
|
|
@@ -434,7 +434,7 @@ describe("Basic Authentication", () => {
|
|
|
434
434
|
|
|
435
435
|
const longAlepha = Alepha.create()
|
|
436
436
|
.with(AlephaServer)
|
|
437
|
-
.with(
|
|
437
|
+
.with(AlephaSecurity)
|
|
438
438
|
.with(LongCredsApp);
|
|
439
439
|
|
|
440
440
|
await longAlepha.start();
|
|
@@ -466,7 +466,7 @@ describe("Basic Authentication", () => {
|
|
|
466
466
|
|
|
467
467
|
const emptyUserAlepha = Alepha.create()
|
|
468
468
|
.with(AlephaServer)
|
|
469
|
-
.with(
|
|
469
|
+
.with(AlephaSecurity)
|
|
470
470
|
.with(EmptyUsernameApp);
|
|
471
471
|
|
|
472
472
|
await emptyUserAlepha.start();
|
|
@@ -549,7 +549,7 @@ describe("Basic Authentication", () => {
|
|
|
549
549
|
|
|
550
550
|
const wsAlepha = Alepha.create()
|
|
551
551
|
.with(AlephaServer)
|
|
552
|
-
.with(
|
|
552
|
+
.with(AlephaSecurity)
|
|
553
553
|
.with(WhitespaceApp);
|
|
554
554
|
|
|
555
555
|
await wsAlepha.start();
|
|
@@ -582,7 +582,7 @@ describe("Basic Authentication", () => {
|
|
|
582
582
|
|
|
583
583
|
const wsAlepha = Alepha.create()
|
|
584
584
|
.with(AlephaServer)
|
|
585
|
-
.with(
|
|
585
|
+
.with(AlephaSecurity)
|
|
586
586
|
.with(WhitespaceApp);
|
|
587
587
|
|
|
588
588
|
await wsAlepha.start();
|