// node native scope import * as path from 'node:path'; import * as stream from 'node:stream'; import * as fs from 'node:fs'; import * as fsPromises from 'node:fs/promises'; export { path, stream, fs, fsPromises }; /** * List files in a directory recursively, returning relative paths */ export async function listFileTree(dirPath: string, _pattern: string = '**/*'): Promise { const results: string[] = []; async function walkDir(currentPath: string, relativePath: string = '') { const entries = await fsPromises.readdir(currentPath, { withFileTypes: true }); for (const entry of entries) { const entryRelPath = relativePath ? path.join(relativePath, entry.name) : entry.name; const entryFullPath = path.join(currentPath, entry.name); if (entry.isDirectory()) { await walkDir(entryFullPath, entryRelPath); } else if (entry.isFile()) { results.push(entryRelPath); } } } await walkDir(dirPath); return results; } // @pushrocks scope import * as smartfile from '@push.rocks/smartfile'; import * as smartdelay from '@push.rocks/smartdelay'; import * as smartpath from '@push.rocks/smartpath'; import * as smartpromise from '@push.rocks/smartpromise'; import * as smartrequest from '@push.rocks/smartrequest'; import * as smartunique from '@push.rocks/smartunique'; import * as smartstream from '@push.rocks/smartstream'; import * as smartrx from '@push.rocks/smartrx'; import * as smarturl from '@push.rocks/smarturl'; export { smartfile, smartdelay, smartpath, smartpromise, smartrequest, smartunique, smartstream, smartrx, smarturl, }; // third party scope import * as fileType from 'file-type'; import * as fflate from 'fflate'; import tarStream from 'tar-stream'; export { fileType, fflate, tarStream };