/** * Node-only filesystem byte-source helpers for `apply`. * * `fileSetFromDir(path)` walks a directory and emits a path-keyed `FileSet` * of `FsFileSource` markers. The SDK normalizer reads each file's bytes * lazily during the plan/upload phases — never loaded into memory at * collection time. Suitable for multi-GB build outputs. */ import type { FileSet } from "../namespaces/deploy.types.js"; export interface FileSetFromDirOptions { /** Additional names to skip at any depth. Merged with the default ignore * list (`.git`, `node_modules`, `.DS_Store`) and, unless * `includeSensitive` is true, common secret-bearing filenames. */ ignore?: Iterable; /** Include dotenv, npmrc, and private-key-like files that are skipped by * default. Use only when these files are intentional deploy artifacts. */ includeSensitive?: boolean; } /** * Walk a directory and return a `FileSet` whose values are `FsFileSource` * markers. Each marker holds an absolute path and an extension-derived * content-type; the deploy normalizer hashes and uploads each file from * disk on demand. * * Skips `.git`, `node_modules`, `.DS_Store`, common secret-bearing filenames * like `.env`, `.npmrc`, and private-key material (plus any names in * `opts.ignore`) at every depth. Pass `{ includeSensitive: true }` to opt in * to collecting those sensitive filenames deliberately. Rejects symlinks. * Throws `LocalError` if the directory does not exist, is not a directory, or * contains no deployable files after the ignore list is applied. * * @example * import { run402 } from "@run402/sdk/node"; * import { fileSetFromDir } from "@run402/sdk/node"; * const r = run402(); * await r.project(id).apply({ * project, * site: { replace: fileSetFromDir("./dist") }, * }); */ export declare function fileSetFromDir(root: string, opts?: FileSetFromDirOptions): Promise; /** Normalize a relative path to POSIX forward slashes. Exposed for tests. */ export declare function normalizeRelPath(rel: string): string; //# sourceMappingURL=files.d.ts.map