feat(rust): scaffold Rust workspace and fix TypeScript build errors

- Add @git.zone/tsrust with linux_amd64/linux_arm64 cross-compilation
- Scaffold Rust workspace with 5 crates: mailer-core, mailer-smtp, mailer-security, mailer-napi, mailer-bin
- Fix all TypeScript compilation errors for upgraded dependencies (smartfile v13, mailauth v4.13, smartproxy v23)
- Replace smartfile.fs/memory with @push.rocks/smartfs throughout codebase
- Fix .ts import extensions to .js for NodeNext module resolution
- Update DKIMSignOptions usage to match mailauth v4.13 API
- Add MTA error classes with permissive signatures for legacy SMTP client
- Replace removed DcRouter/StorageManager/deliverability imports with local interfaces
This commit is contained in:
2026-02-10 15:31:31 +00:00
parent bcde137332
commit 237dba3bab
86 changed files with 6518 additions and 2869 deletions

View File

@@ -32,17 +32,17 @@ export const configPath = process.env.CONFIG_PATH
: plugins.path.join(baseDir, 'config.json');
// Create directories if they don't exist
export function ensureDirectories() {
export async function ensureDirectories() {
// Ensure data directories
plugins.smartfile.fs.ensureDirSync(dataDir);
plugins.smartfile.fs.ensureDirSync(keysDir);
plugins.smartfile.fs.ensureDirSync(dnsRecordsDir);
plugins.smartfile.fs.ensureDirSync(sentEmailsDir);
plugins.smartfile.fs.ensureDirSync(receivedEmailsDir);
plugins.smartfile.fs.ensureDirSync(failedEmailsDir);
plugins.smartfile.fs.ensureDirSync(logsDir);
await plugins.smartfs.directory(dataDir).recursive().create();
await plugins.smartfs.directory(keysDir).recursive().create();
await plugins.smartfs.directory(dnsRecordsDir).recursive().create();
await plugins.smartfs.directory(sentEmailsDir).recursive().create();
await plugins.smartfs.directory(receivedEmailsDir).recursive().create();
await plugins.smartfs.directory(failedEmailsDir).recursive().create();
await plugins.smartfs.directory(logsDir).recursive().create();
// Ensure email template directories
plugins.smartfile.fs.ensureDirSync(emailTemplatesDir);
plugins.smartfile.fs.ensureDirSync(MtaAttachmentsDir);
await plugins.smartfs.directory(emailTemplatesDir).recursive().create();
await plugins.smartfs.directory(MtaAttachmentsDir).recursive().create();
}