run402-mcp
Version:
MCP server for Run402 — full-stack backend infrastructure for AI agents: Postgres, auth, storage, serverless functions and atomic deploys. Paid with x402/MPP. Includes $0.03 image generation.
50 lines • 2.46 kB
TypeScript
/**
* 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<string>;
/** 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<FileSet>;
/**
* Synchronous twin of {@link fileSetFromDir}: the same ignore rules, symlink
* refusal, and errors. For local previews that must not go async, such as the
* `run402 up --check` site summary, so they count exactly what deploy uploads.
*/
export declare function fileSetFromDirSync(root: string, opts?: FileSetFromDirOptions): FileSet;
/** Normalize a relative path to POSIX forward slashes. Exposed for tests. */
export declare function normalizeRelPath(rel: string): string;
//# sourceMappingURL=files.d.ts.map