// 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'; export { dns, fs, crypto, http, net, os, path, tls, util, } // @serve.zone scope import * as servezoneInterfaces from '@serve.zone/interfaces'; export { servezoneInterfaces } // @api.global scope import * as typedrequest from '@api.global/typedrequest'; import * as typedserver from '@api.global/typedserver'; import * as typedsocket from '@api.global/typedsocket'; 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 { projectinfo, qenv, smartacme, smartdata, smartdns, smartfile, smartguard, smartjwt, smartlog, smartmail, smartmetrics, smartnetwork, smartpath, smartproxy, smartpromise, smartrequest, smartrule, smartrx, smartunique }; // 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, } // 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'; export { mailauth, dkimSign, mailparser, uuid, ip, } // Filesystem utilities (compatibility helpers for smartfile v13+) export const fsUtils = { /** * Ensure a directory exists, creating it recursively if needed (sync) */ ensureDirSync: (dirPath: string): void => { fs.mkdirSync(dirPath, { recursive: true }); }, /** * Ensure a directory exists, creating it recursively if needed (async) */ ensureDir: async (dirPath: string): Promise => { await fs.promises.mkdir(dirPath, { recursive: true }); }, /** * Write JSON content to a file synchronously */ toFsSync: (content: any, filePath: string): void => { const data = typeof content === 'string' ? content : JSON.stringify(content, null, 2); fs.writeFileSync(filePath, data); }, /** * Write JSON content to a file asynchronously */ toFs: async (content: any, filePath: string): Promise => { const data = typeof content === 'string' ? content : JSON.stringify(content, null, 2); await fs.promises.writeFile(filePath, data); }, /** * Check if a file or directory exists */ fileExistsSync: (filePath: string): boolean => { return fs.existsSync(filePath); }, /** * Check if a file or directory exists (async) */ fileExists: async (filePath: string): Promise => { try { await fs.promises.access(filePath); return true; } catch { return false; } }, /** * Read a JSON file synchronously */ toObjectSync: (filePath: string): T => { const content = fs.readFileSync(filePath, 'utf8'); return JSON.parse(content) as T; }, /** * Read a JSON file asynchronously */ toObject: async (filePath: string): Promise => { const content = await fs.promises.readFile(filePath, 'utf8'); return JSON.parse(content) as T; }, };