alepha 0.15.2 → 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 +332 -332
- package/dist/api/audits/index.d.ts.map +1 -1
- package/dist/api/files/index.d.ts +170 -170
- package/dist/api/files/index.d.ts.map +1 -1
- package/dist/api/jobs/index.d.ts +151 -151
- package/dist/api/keys/index.d.ts +195 -195
- package/dist/api/keys/index.d.ts.map +1 -1
- package/dist/api/parameters/index.d.ts +260 -260
- package/dist/api/users/index.d.ts +22 -11
- package/dist/api/users/index.d.ts.map +1 -1
- package/dist/api/users/index.js +7 -2
- package/dist/api/users/index.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/bucket/index.d.ts +8 -0
- package/dist/bucket/index.d.ts.map +1 -1
- package/dist/bucket/index.js +7 -2
- package/dist/bucket/index.js.map +1 -1
- package/dist/cli/index.d.ts +191 -74
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +215 -48
- package/dist/cli/index.js.map +1 -1
- package/dist/command/index.d.ts +10 -0
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +67 -13
- package/dist/command/index.js.map +1 -1
- package/dist/core/index.browser.js +28 -21
- package/dist/core/index.browser.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +28 -21
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.native.js +28 -21
- package/dist/core/index.native.js.map +1 -1
- package/dist/email/index.d.ts +8 -0
- package/dist/email/index.d.ts.map +1 -1
- package/dist/email/index.js +7 -2
- package/dist/email/index.js.map +1 -1
- package/dist/mcp/index.d.ts +5 -5
- package/dist/orm/index.bun.js +32 -16
- package/dist/orm/index.bun.js.map +1 -1
- package/dist/orm/index.d.ts +4 -1
- package/dist/orm/index.d.ts.map +1 -1
- package/dist/orm/index.js +34 -22
- package/dist/orm/index.js.map +1 -1
- package/dist/react/router/index.browser.js +9 -15
- package/dist/react/router/index.browser.js.map +1 -1
- package/dist/react/router/index.d.ts +295 -407
- package/dist/react/router/index.d.ts.map +1 -1
- package/dist/react/router/index.js +566 -776
- package/dist/react/router/index.js.map +1 -1
- package/dist/redis/index.d.ts +19 -19
- package/dist/security/index.d.ts +42 -42
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +8 -7
- package/dist/security/index.js.map +1 -1
- package/dist/server/auth/index.d.ts +167 -167
- package/dist/server/core/index.d.ts +9 -9
- package/dist/server/health/index.d.ts +17 -17
- package/dist/server/links/index.d.ts +39 -39
- package/dist/server/static/index.js +7 -2
- package/dist/server/static/index.js.map +1 -1
- package/dist/server/swagger/index.d.ts +8 -0
- package/dist/server/swagger/index.d.ts.map +1 -1
- package/dist/server/swagger/index.js +7 -2
- package/dist/server/swagger/index.js.map +1 -1
- package/dist/sms/index.d.ts +8 -0
- package/dist/sms/index.d.ts.map +1 -1
- package/dist/sms/index.js +7 -2
- package/dist/sms/index.js.map +1 -1
- package/dist/system/index.browser.js +734 -12
- package/dist/system/index.browser.js.map +1 -1
- package/dist/system/index.d.ts +8 -0
- package/dist/system/index.d.ts.map +1 -1
- package/dist/system/index.js +7 -2
- package/dist/system/index.js.map +1 -1
- package/dist/vite/index.d.ts +1 -1
- package/dist/vite/index.js +15 -7
- package/dist/vite/index.js.map +1 -1
- package/package.json +4 -2
- package/src/api/logs/TODO.md +13 -10
- package/src/cli/apps/AlephaPackageBuilderCli.ts +9 -0
- package/src/cli/atoms/buildOptions.ts +99 -9
- package/src/cli/commands/build.ts +149 -32
- package/src/cli/commands/db.ts +5 -7
- package/src/cli/commands/init.spec.ts +50 -6
- package/src/cli/commands/init.ts +28 -5
- package/src/cli/providers/ViteDevServerProvider.ts +1 -10
- package/src/cli/services/AlephaCliUtils.ts +16 -0
- package/src/cli/services/PackageManagerUtils.ts +2 -0
- package/src/cli/services/ProjectScaffolder.spec.ts +97 -0
- package/src/cli/services/ProjectScaffolder.ts +28 -6
- package/src/cli/templates/agentMd.ts +6 -1
- package/src/cli/templates/apiAppSecurityTs.ts +11 -0
- package/src/cli/templates/apiIndexTs.ts +18 -4
- package/src/cli/templates/webAppRouterTs.ts +25 -1
- package/src/cli/templates/webHelloComponentTsx.ts +15 -5
- package/src/command/helpers/Runner.spec.ts +135 -0
- package/src/command/helpers/Runner.ts +4 -1
- package/src/command/providers/CliProvider.spec.ts +325 -0
- package/src/command/providers/CliProvider.ts +117 -7
- package/src/core/Alepha.ts +32 -25
- package/src/orm/index.bun.ts +1 -1
- package/src/orm/index.ts +2 -6
- package/src/orm/providers/drivers/BunSqliteProvider.ts +4 -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/react/router/hooks/useActive.ts +1 -1
- package/src/react/router/hooks/useRouter.ts +1 -1
- package/src/react/router/index.ts +4 -0
- package/src/react/router/primitives/$page.browser.spec.tsx +24 -24
- package/src/react/router/primitives/$page.spec.tsx +0 -32
- package/src/react/router/primitives/$page.ts +6 -14
- package/src/react/router/providers/ReactBrowserProvider.ts +6 -3
- package/src/react/router/providers/ReactPageProvider.ts +1 -1
- 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.ts +7 -78
- package/src/react/router/providers/ReactServerTemplateProvider.spec.ts +210 -0
- package/src/react/router/providers/ReactServerTemplateProvider.ts +228 -665
- package/src/react/router/services/ReactRouter.ts +13 -13
- package/src/security/__tests__/ServerSecurityProvider.spec.ts +77 -0
- package/src/security/providers/ServerSecurityProvider.ts +30 -22
- package/src/server/core/providers/NodeHttpServerProvider.spec.ts +9 -3
- package/src/system/index.browser.ts +25 -0
- package/src/system/index.workerd.ts +1 -0
- package/src/system/providers/FileSystemProvider.ts +8 -0
- package/src/system/providers/NodeFileSystemProvider.ts +11 -2
- package/src/vite/tasks/buildServer.ts +2 -12
- package/src/vite/tasks/generateCloudflare.ts +10 -7
- package/src/vite/tasks/generateDocker.ts +4 -0
package/dist/mcp/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as alepha3 from "alepha";
|
|
2
2
|
import { Alepha, AlephaError, Async, KIND, Primitive, Static, TObject, TSchema } from "alepha";
|
|
3
3
|
import * as alepha_logger0 from "alepha/logger";
|
|
4
4
|
import * as alepha_server0 from "alepha/server";
|
|
@@ -732,7 +732,7 @@ declare class SseMcpTransport {
|
|
|
732
732
|
* POST endpoint for client-to-server JSON-RPC messages.
|
|
733
733
|
*/
|
|
734
734
|
message: alepha_server0.RoutePrimitive<{
|
|
735
|
-
body:
|
|
735
|
+
body: alepha3.TRecord<string, alepha3.TAny>;
|
|
736
736
|
}>;
|
|
737
737
|
/**
|
|
738
738
|
* Format a message as an SSE event.
|
|
@@ -771,8 +771,8 @@ declare class StdioMcpTransport {
|
|
|
771
771
|
protected readonly mcpServer: McpServerProvider;
|
|
772
772
|
protected rl?: readline.Interface;
|
|
773
773
|
protected started: boolean;
|
|
774
|
-
onStart:
|
|
775
|
-
onStop:
|
|
774
|
+
onStart: alepha3.HookPrimitive<"start">;
|
|
775
|
+
onStop: alepha3.HookPrimitive<"stop">;
|
|
776
776
|
/**
|
|
777
777
|
* Start the stdio transport.
|
|
778
778
|
*/
|
|
@@ -812,7 +812,7 @@ declare class StdioMcpTransport {
|
|
|
812
812
|
*
|
|
813
813
|
* @module alepha.mcp
|
|
814
814
|
*/
|
|
815
|
-
declare const AlephaMcp:
|
|
815
|
+
declare const AlephaMcp: alepha3.Service<alepha3.Module>;
|
|
816
816
|
//#endregion
|
|
817
817
|
export { $prompt, $resource, $tool, AlephaMcp, JSONRPC_VERSION, type JsonRpcError, JsonRpcErrorCodes, type JsonRpcNotification, JsonRpcParseError, type JsonRpcRequest, type JsonRpcResponse, MCP_PROTOCOL_VERSION, type McpCapabilities, type McpClientInfo, type McpContent, type McpContext, McpError, McpErrorCodes, McpForbiddenError, type McpInitializeParams, type McpInitializeResult, McpInvalidParamsError, type McpJsonSchema, McpMethodNotFoundError, type McpPromptArgument, type McpPromptContent, type McpPromptDescriptor, type McpPromptGetParams, type McpPromptGetResult, type McpPromptMessage, McpPromptNotFoundError, type McpResourceContent, type McpResourceDescriptor, McpResourceNotFoundError, type McpResourceReadParams, type McpResourceReadResult, type McpServerInfo, McpServerProvider, type McpToolCallParams, type McpToolCallResult, type McpToolDescriptor, McpToolNotFoundError, McpUnauthorizedError, type PromptHandler, type PromptHandlerArgs, type PromptMessage, PromptPrimitive, type PromptPrimitiveOptions, type ResourceContent, type ResourceHandler, type ResourceHandlerArgs, ResourcePrimitive, type ResourcePrimitiveOptions, SseMcpTransport, StdioMcpTransport, type ToolHandler, type ToolHandlerArgs, type ToolHandlerResult, ToolPrimitive, type ToolPrimitiveOptions, type ToolPrimitiveSchema, createErrorResponse, createInternalError, createInvalidParamsError, createInvalidRequestError, createMethodNotFoundError, createNotification, createParseError, createResponse, isNotification, isValidJsonRpcRequest, parseMessage };
|
|
818
818
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/orm/index.bun.js
CHANGED
|
@@ -209,9 +209,13 @@ var DatabaseProvider = class {
|
|
|
209
209
|
return `migrations/${this.name}`;
|
|
210
210
|
}
|
|
211
211
|
/**
|
|
212
|
-
* Base migration orchestration - handles environment logic
|
|
212
|
+
* Base migration orchestration - handles environment logic.
|
|
213
|
+
*
|
|
214
|
+
* Never runs in serverless mode - migrations should be applied during
|
|
215
|
+
* deployment, not at runtime (to avoid race conditions and timeouts).
|
|
213
216
|
*/
|
|
214
217
|
async migrate() {
|
|
218
|
+
if (this.alepha.isServerless()) return;
|
|
215
219
|
const migrationsFolder = this.getMigrationsFolder();
|
|
216
220
|
if (this.alepha.isProduction()) await this.runProductionMigration(migrationsFolder);
|
|
217
221
|
else if (this.alepha.isTest()) await this.runTestMigration();
|
|
@@ -1075,7 +1079,7 @@ var BunSqliteProvider = class extends DatabaseProvider {
|
|
|
1075
1079
|
this.log.trace(query, { params });
|
|
1076
1080
|
} }
|
|
1077
1081
|
});
|
|
1078
|
-
await this.migrate();
|
|
1082
|
+
if (!this.alepha.isServerless()) await this.migrate();
|
|
1079
1083
|
this.log.info(`Using Bun SQLite database at ${filepath}`);
|
|
1080
1084
|
}
|
|
1081
1085
|
});
|
|
@@ -1116,7 +1120,7 @@ var CloudflareD1Provider = class extends DatabaseProvider {
|
|
|
1116
1120
|
kit = $inject(DrizzleKitProvider);
|
|
1117
1121
|
log = $logger();
|
|
1118
1122
|
builder = $inject(SqliteModelBuilder);
|
|
1119
|
-
env = $env(t.object({ DATABASE_URL: t.string({ description: "Expect to be '
|
|
1123
|
+
env = $env(t.object({ DATABASE_URL: t.string({ description: "Expect to be 'd1://name:id'" }) }));
|
|
1120
1124
|
d1;
|
|
1121
1125
|
drizzleDb;
|
|
1122
1126
|
get name() {
|
|
@@ -1140,21 +1144,33 @@ var CloudflareD1Provider = class extends DatabaseProvider {
|
|
|
1140
1144
|
onStart = $hook({
|
|
1141
1145
|
on: "start",
|
|
1142
1146
|
handler: async () => {
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1147
|
+
try {
|
|
1148
|
+
const [bindingName] = this.env.DATABASE_URL.replace("d1://", "").split(":");
|
|
1149
|
+
const cloudflareEnv = this.alepha.store.get("cloudflare.env");
|
|
1150
|
+
if (!cloudflareEnv) throw new AlephaError("Cloudflare Workers environment not found in Alepha store under 'cloudflare.env'.");
|
|
1151
|
+
const binding = cloudflareEnv[bindingName];
|
|
1152
|
+
if (!binding) throw new AlephaError(`D1 binding '${bindingName}' not found in Cloudflare Workers environment.`);
|
|
1153
|
+
this.d1 = binding;
|
|
1154
|
+
const { drizzle } = await import("drizzle-orm/d1");
|
|
1155
|
+
this.drizzleDb = drizzle(this.d1);
|
|
1156
|
+
if (!this.alepha.isServerless()) await this.migrate();
|
|
1157
|
+
this.log.info("Using Cloudflare D1 database");
|
|
1158
|
+
} catch (error) {
|
|
1159
|
+
const errorMessage = error instanceof Error ? `${error.message}${error.stack ? `\n${error.stack}` : ""}` : String(error);
|
|
1160
|
+
this.log.error(`D1 initialization failed: ${errorMessage}`);
|
|
1161
|
+
throw error;
|
|
1162
|
+
}
|
|
1153
1163
|
}
|
|
1154
1164
|
});
|
|
1155
1165
|
async executeMigrations(migrationsFolder) {
|
|
1156
|
-
|
|
1157
|
-
|
|
1166
|
+
this.log.debug(`Running D1 migrations from '${migrationsFolder}'...`);
|
|
1167
|
+
try {
|
|
1168
|
+
const { migrate } = await import("drizzle-orm/d1/migrator");
|
|
1169
|
+
await migrate(this.db, { migrationsFolder });
|
|
1170
|
+
this.log.debug("D1 migrations completed successfully");
|
|
1171
|
+
} catch (error) {
|
|
1172
|
+
throw new AlephaError(`D1 migration failed from '${migrationsFolder}': ${error instanceof Error ? `${error.name}: ${error.message}` : String(error)}`, { cause: error });
|
|
1173
|
+
}
|
|
1158
1174
|
}
|
|
1159
1175
|
/**
|
|
1160
1176
|
* Override development migration to skip sync (not supported on D1).
|
|
@@ -2795,7 +2811,7 @@ const AlephaOrm = $module({
|
|
|
2795
2811
|
alepha.with(RepositoryProvider);
|
|
2796
2812
|
const url = env.DATABASE_URL;
|
|
2797
2813
|
const isPostgres = url?.startsWith("postgres:");
|
|
2798
|
-
if (url?.startsWith("
|
|
2814
|
+
if (url?.startsWith("d1:")) {
|
|
2799
2815
|
alepha.with({
|
|
2800
2816
|
optional: true,
|
|
2801
2817
|
provide: DatabaseProvider,
|