feat(storage): add comprehensive tests for StorageManager with memory, filesystem, and custom function backends
Some checks failed
CI / Type Check & Lint (push) Failing after 3s
CI / Build Test (Current Platform) (push) Failing after 3s
CI / Build All Platforms (push) Failing after 3s

feat(email): implement EmailSendJob class for robust email delivery with retry logic and MX record resolution

feat(mail): restructure mail module exports for simplified access to core and delivery functionalities
This commit is contained in:
2025-10-28 19:46:17 +00:00
parent 6523c55516
commit 17f5661636
271 changed files with 61736 additions and 6222 deletions

View File

@@ -1,51 +1,95 @@
/**
* Plugin dependencies for the mailer package
* Imports both Deno standard library and Node.js compatibility
*/
// node native
import * as dns from 'dns';
import * as fs from 'fs';
import * as crypto from 'crypto';
import * as http from 'http';
import * as net from 'net';
import * as os from 'os';
import * as path from 'path';
import * as tls from 'tls';
import * as util from 'util';
// Deno standard library
export * as path from '@std/path';
export * as colors from '@std/fmt/colors';
export * as cli from '@std/cli';
export { serveDir } from '@std/http/file-server';
export * as denoCrypto from '@std/crypto';
export {
dns,
fs,
crypto,
http,
net,
os,
path,
tls,
util,
}
// Node.js built-in modules (needed for SMTP and email processing)
import { EventEmitter } from 'node:events';
import * as net from 'node:net';
import * as tls from 'node:tls';
import * as dns from 'node:dns';
import * as fs from 'node:fs';
import * as os from 'node:os';
import * as process from 'node:process';
import * as buffer from 'node:buffer';
import * as util from 'node:util';
import * as crypto from 'node:crypto';
// @serve.zone scope
import * as servezoneInterfaces from '@serve.zone/interfaces';
export { EventEmitter, net, tls, dns, fs, os, process, buffer, util, crypto };
export const Buffer = buffer.Buffer;
export {
servezoneInterfaces
}
// Cloudflare API client
import * as cloudflareImport from '@apiclient.xyz/cloudflare';
export const cloudflare = cloudflareImport;
// @api.global scope
import * as typedrequest from '@api.global/typedrequest';
import * as typedserver from '@api.global/typedserver';
import * as typedsocket from '@api.global/typedsocket';
// @push.rocks packages
import * as smartfile from '@push.rocks/smartfile';
export {
typedrequest,
typedserver,
typedsocket,
}
// @push.rocks scope
import * as projectinfo from '@push.rocks/projectinfo';
import * as qenv from '@push.rocks/qenv';
import * as smartacme from '@push.rocks/smartacme';
import * as smartdata from '@push.rocks/smartdata';
import * as smartdns from '@push.rocks/smartdns';
import * as smartfile from '@push.rocks/smartfile';
import * as smartguard from '@push.rocks/smartguard';
import * as smartjwt from '@push.rocks/smartjwt';
import * as smartlog from '@push.rocks/smartlog';
import * as smartmail from '@push.rocks/smartmail';
import * as smartmetrics from '@push.rocks/smartmetrics';
import * as smartnetwork from '@push.rocks/smartnetwork';
import * as smartpath from '@push.rocks/smartpath';
import * as smartproxy from '@push.rocks/smartproxy';
import * as smartpromise from '@push.rocks/smartpromise';
import * as smartrequest from '@push.rocks/smartrequest';
import * as smartrule from '@push.rocks/smartrule';
import * as smartrx from '@push.rocks/smartrx';
import * as smartunique from '@push.rocks/smartunique';
export { smartfile, smartdns, smartmail };
export { projectinfo, qenv, smartacme, smartdata, smartdns, smartfile, smartguard, smartjwt, smartlog, smartmail, smartmetrics, smartnetwork, smartpath, smartproxy, smartpromise, smartrequest, smartrule, smartrx, smartunique };
// @tsclass packages
// Define SmartLog types for use in error handling
export type TLogLevel = 'error' | 'warn' | 'info' | 'success' | 'debug';
// apiclient.xyz scope
import * as cloudflare from '@apiclient.xyz/cloudflare';
export {
cloudflare,
}
// tsclass scope
import * as tsclass from '@tsclass/tsclass';
export { tsclass };
export {
tsclass,
}
// Third-party libraries
// third party
import * as mailauth from 'mailauth';
import { dkimSign } from 'mailauth/lib/dkim/sign.js';
import mailparser from 'mailparser';
import * as uuid from 'uuid';
import * as ip from 'ip';
import { LRUCache } from 'lru-cache';
export { mailauth, dkimSign, uuid, ip, LRUCache };
export {
mailauth,
dkimSign,
mailparser,
uuid,
ip,
}