@cloudflare/sandbox 0.13.0-next.738.2 → 0.13.0-next.751.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bridge/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../errors-CXR0xBpw.js";
|
|
2
2
|
import "../errors-QYlSkVGz.js";
|
|
3
3
|
import "../dist-Duor5GbS.js";
|
|
4
|
-
import { g as validateTunnelName, h as validatePort, m as SandboxSecurityError, n as getSandbox$1, x as streamFile } from "../sandbox-
|
|
4
|
+
import { g as validateTunnelName, h as validatePort, m as SandboxSecurityError, n as getSandbox$1, x as streamFile } from "../sandbox-Bk7fzLpy.js";
|
|
5
5
|
import "../extensions-CFB2xHqY.js";
|
|
6
6
|
import { DurableObject, env } from "cloudflare:workers";
|
|
7
7
|
import { Hono } from "hono";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-Bs4bqXDR.d.ts","names":["BackupCompressionOptions","ReadFileRequest","WriteFileRequest","DeleteFileRequest","RenameFileRequest","MoveFileRequest","MkdirRequest","FileExistsRequest","ListFilesRequest","CreateBackupRequest","UploadPart","UploadPartsRequest","UploadedPart","UploadPartsResponse","CreateBackupResponse","RestoreBackupRequest","RestoreBackupResponse","SandboxProcessesAPI","SandboxTerminalsAPI","CreateBackupResponse","RestoreBackupResponse","UploadedPart","UploadPartsResponse","BackupCompressionOptions","CheckChangesRequest","CheckChangesResult","DeleteFileResult","FileEncoding","FileExistsResult","ListFilesOptions","ListFilesResult","MkdirResult","MoveFileResult","PortWatchRPCOptions","PortWatchSubscriptionAPI","ReadFileResult","ReadFileStreamResult","RenameFileResult","WatchRequest","WriteFileResult","S3FSOptionValue","MountCommandResult","MountS3FSRequest","Record","RemoveMountDirectoryRequest","SandboxAPI","SandboxFilesAPI","SandboxPortsAPI","SandboxUtilsAPI","SandboxBackupAPI","SandboxWatchAPI","SandboxTunnelsAPI","SandboxMountsAPI","SandboxWorkspaceAPI","SandboxExtensionsAPI","ReadFileStreamOptions","ReadFileBinaryOptions","ReadFileOptions","Exclude","WriteFileOptions","MkdirOptions","Promise","Uint8Array","ReadableStream","RuntimeMetadata","CreateWorkspaceArchiveRequest","CreateWorkspaceArchiveResult","ExtractWorkspaceArchiveRequest","BackupUploadArchiveRequest","BackupDownloadArchiveRequest","Array","BackupPrepareRestoreRequest","BackupUploadPartsRequest","BackupCreateArchiveOptions","WatchSubscriptionAPI","TunnelInfo","QuickTunnelInfo","NamedTunnelInfo","TunnelOptions","TunnelRunMode","TunnelRunIdentity","TunnelRunRef","EnsureQuickTunnelRunRequest","EnsureNamedTunnelRunRequest","EnsureTunnelRunRequest","QuickTunnelRunSnapshot","NamedTunnelRunSnapshot","TunnelRunSnapshot","EnsureTunnelRunResult","StopTunnelRunRequest","StopTunnelRunResult","TunnelRunExitEvent","ExtensionPackage","ExtensionRegistration","ExtensionHealth","ExtensionConnectRequest","EXTENSION_TARBALL_REQUIRED","SandboxControlCallback"],"sources":["../../shared/dist/request-types.d.ts","../../shared/dist/rpc-types.d.ts","../src/processes/rpc-types.ts","../src/extensions/index.ts"],"sourcesContent":["import type { BackupCompressionOptions } from './types.js';\n/**\n * Request types for API calls to the container\n * Single source of truth for the contract between SDK clients and container handlers\n */\n/**\n * Request to read a file\n */\nexport interface ReadFileRequest {\n path: string;\n encoding?: string;\n}\n/**\n * Request to write a file\n */\nexport interface WriteFileRequest {\n path: string;\n content: string;\n encoding?: string;\n}\n/**\n * Request to delete a file\n */\nexport interface DeleteFileRequest {\n path: string;\n}\n/**\n * Request to rename a file\n */\nexport interface RenameFileRequest {\n oldPath: string;\n newPath: string;\n}\n/**\n * Request to move a file\n */\nexport interface MoveFileRequest {\n sourcePath: string;\n destinationPath: string;\n}\n/**\n * Request to create a directory\n */\nexport interface MkdirRequest {\n path: string;\n recursive?: boolean;\n}\n/**\n * Request to check if a file or directory exists\n */\nexport interface FileExistsRequest {\n path: string;\n}\n/**\n * Request to list files in a directory\n */\nexport interface ListFilesRequest {\n path: string;\n options?: {\n recursive?: boolean;\n includeHidden?: boolean;\n };\n}\n/**\n * Request to create a backup archive from a directory.\n * The container creates a squashfs archive at archivePath.\n * The DO then reads it and uploads to R2.\n */\nexport interface CreateBackupRequest {\n /** Directory to back up */\n dir: string;\n /** Path where the container should write the archive */\n archivePath: string;\n /** Respect git ignore rules when the directory is inside a git repository */\n gitignore?: boolean;\n /** Glob patterns to exclude from the backup */\n excludes?: string[];\n compression?: BackupCompressionOptions;\n}\n/**\n * A single part to upload in a multipart upload.\n * The container reads the byte range from the local archive and PUTs it\n * to the presigned URL.\n */\nexport interface UploadPart {\n partNumber: number;\n /** Presigned PUT URL for this part */\n url: string;\n /** Byte offset within the archive file */\n offset: number;\n /** Number of bytes in this part */\n size: number;\n}\n/**\n * Request to upload parts of a backup archive directly from the container to R2.\n * Used for parallel multipart upload of large archives.\n */\nexport interface UploadPartsRequest {\n /** Path to the archive file in the container */\n archivePath: string;\n /** Parts to upload in parallel */\n parts: UploadPart[];\n}\n/**\n * Result for a single uploaded part (ETag returned by R2).\n */\nexport interface UploadedPart {\n partNumber: number;\n etag: string;\n}\n/**\n * Response after the container has uploaded all parts.\n */\nexport interface UploadPartsResponse {\n success: boolean;\n parts: UploadedPart[];\n}\n/**\n * Response from the container after creating a backup archive\n */\nexport interface CreateBackupResponse {\n success: boolean;\n /** Size of the archive in bytes */\n sizeBytes: number;\n /** Path to the archive file in the container */\n archivePath: string;\n}\n/**\n * Request to restore a backup from an archive file.\n * The DO writes the archive to archivePath first, then tells the container to extract it.\n */\nexport interface RestoreBackupRequest {\n /** Directory to restore into */\n dir: string;\n /** Path to the archive file in the container */\n archivePath: string;\n}\n/**\n * Response from the container after restoring a backup\n */\nexport interface RestoreBackupResponse {\n success: boolean;\n /** Directory that was restored */\n dir: string;\n}\n//# sourceMappingURL=request-types.d.ts.map","/**\n * Shared interface types for the container-control path.\n *\n * Defines the contract between the SDK control client and the container\n * control-plane API. The current wire implementation uses capnweb RPC.\n */\nimport type { SandboxProcessesAPI } from './process-types.js';\nimport type { SandboxTerminalsAPI } from './pty-types.js';\nimport type { CreateBackupResponse, RestoreBackupResponse, UploadedPart, UploadPartsResponse } from './request-types.js';\nimport type { BackupCompressionOptions, CheckChangesRequest, CheckChangesResult, DeleteFileResult, FileEncoding, FileExistsResult, ListFilesOptions, ListFilesResult, MkdirResult, MoveFileResult, PortWatchRPCOptions, PortWatchSubscriptionAPI, ReadFileResult, ReadFileStreamResult, RenameFileResult, WatchRequest, WriteFileResult } from './types.js';\nexport type S3FSOptionValue = string | boolean;\nexport interface MountCommandResult {\n success: boolean;\n exitCode: number;\n stdout: string;\n stderr: string;\n}\nexport interface MountS3FSRequest {\n source: string;\n mountPath: string;\n options: Record<string, S3FSOptionValue>;\n}\nexport interface RemoveMountDirectoryRequest {\n path: string;\n onlyIfNotMountpoint: boolean;\n}\nexport interface SandboxAPI {\n files: SandboxFilesAPI;\n ports: SandboxPortsAPI;\n utils: SandboxUtilsAPI;\n backup: SandboxBackupAPI;\n watch: SandboxWatchAPI;\n tunnels: SandboxTunnelsAPI;\n terminals: SandboxTerminalsAPI;\n processes: SandboxProcessesAPI;\n mounts: SandboxMountsAPI;\n workspace: SandboxWorkspaceAPI;\n extensions: SandboxExtensionsAPI;\n}\nexport type ReadFileStreamOptions = object;\nexport interface ReadFileBinaryOptions {\n encoding: 'none';\n}\nexport interface ReadFileOptions {\n encoding?: Exclude<FileEncoding, 'none'>;\n}\nexport interface WriteFileOptions {\n encoding?: string;\n permissions?: string;\n}\nexport interface MkdirOptions {\n recursive?: boolean;\n}\nexport interface SandboxFilesAPI {\n readFile(path: string, options: ReadFileBinaryOptions): Promise<ReadFileStreamResult>;\n readFile(path: string, options?: ReadFileOptions): Promise<ReadFileResult>;\n readFileStream(path: string, options?: ReadFileStreamOptions): Promise<ReadableStream<Uint8Array>>;\n writeFile(path: string, content: string, options?: WriteFileOptions): Promise<WriteFileResult>;\n writeFileStream(path: string, stream: ReadableStream<Uint8Array>, options?: Record<string, never>): Promise<{\n success: boolean;\n path: string;\n bytesWritten: number;\n timestamp: string;\n }>;\n deleteFile(path: string, options?: Record<string, never>): Promise<DeleteFileResult>;\n renameFile(oldPath: string, newPath: string, options?: Record<string, never>): Promise<RenameFileResult>;\n moveFile(sourcePath: string, destinationPath: string, options?: Record<string, never>): Promise<MoveFileResult>;\n mkdir(path: string, options?: MkdirOptions): Promise<MkdirResult>;\n listFiles(path: string, options?: ListFilesOptions): Promise<ListFilesResult>;\n exists(path: string, options?: Record<string, never>): Promise<FileExistsResult>;\n}\nexport interface SandboxPortsAPI {\n openWatch(port: number, options?: PortWatchRPCOptions): Promise<PortWatchSubscriptionAPI>;\n}\nexport interface RuntimeMetadata {\n runtimeIncarnationID: string;\n sandboxVersion: string;\n controlProtocolVersion: 1;\n}\nexport interface SandboxUtilsAPI {\n ping(): Promise<string>;\n getRuntimeMetadata(): Promise<RuntimeMetadata>;\n activateControlSession(expectedRuntimeIncarnationID: string): Promise<RuntimeMetadata>;\n}\nexport interface CreateWorkspaceArchiveRequest {\n root: string;\n excludes: readonly string[];\n}\nexport interface CreateWorkspaceArchiveResult {\n archivePath: string;\n}\nexport interface ExtractWorkspaceArchiveRequest {\n root: string;\n archivePath: string;\n}\nexport interface SandboxWorkspaceAPI {\n createArchive(request: CreateWorkspaceArchiveRequest): Promise<CreateWorkspaceArchiveResult>;\n extractArchive(request: ExtractWorkspaceArchiveRequest): Promise<void>;\n cleanupArchive(archivePath: string): Promise<void>;\n}\nexport interface SandboxMountsAPI {\n pathExists(path: string): Promise<boolean>;\n ensureDirectory(path: string): Promise<void>;\n chmodOwnerOnly(path: string): Promise<void>;\n deleteFile(path: string): Promise<void>;\n mountS3FS(request: MountS3FSRequest): Promise<MountCommandResult>;\n mountS3FSAndVerify(request: MountS3FSRequest): Promise<MountCommandResult>;\n isMountpoint(path: string): Promise<boolean>;\n unmountFuse(path: string): Promise<MountCommandResult>;\n unmountFuseIfMounted(path: string): Promise<void>;\n removeMountDirectory(request: RemoveMountDirectoryRequest): Promise<MountCommandResult>;\n}\nexport interface BackupUploadArchiveRequest {\n archivePath: string;\n url: string;\n timeoutMs: number;\n}\nexport interface BackupDownloadArchiveRequest {\n archivePath: string;\n expectedSize: number;\n parts: Array<{\n url: string;\n offset: number;\n range?: string;\n }>;\n timeoutMs: number;\n}\nexport interface BackupPrepareRestoreRequest {\n dir: string;\n backupId: string;\n archivePath: string;\n}\nexport interface BackupUploadPartsRequest {\n archivePath: string;\n parts: Array<{\n partNumber: number;\n url: string;\n offset: number;\n size: number;\n }>;\n}\nexport interface BackupCreateArchiveOptions {\n excludes?: string[];\n gitignore?: boolean;\n compression?: BackupCompressionOptions;\n}\nexport interface SandboxBackupAPI {\n createArchive(dir: string, archivePath: string, options?: BackupCreateArchiveOptions): Promise<CreateBackupResponse>;\n restoreArchive(dir: string, archivePath: string): Promise<RestoreBackupResponse>;\n uploadArchive(request: BackupUploadArchiveRequest): Promise<void>;\n uploadParts(request: BackupUploadPartsRequest): Promise<UploadPartsResponse>;\n prepareRestore(request: BackupPrepareRestoreRequest): Promise<{\n existingSize: number;\n }>;\n downloadArchive(request: BackupDownloadArchiveRequest): Promise<void>;\n extractArchive(dir: string, archivePath: string): Promise<void>;\n cleanupArchive(archivePath: string): Promise<void>;\n}\nexport type { UploadedPart, UploadPartsResponse };\nexport interface WatchSubscriptionAPI {\n stream(): Promise<ReadableStream<Uint8Array>>;\n cancel(): Promise<void>;\n [Symbol.dispose](): void;\n}\nexport interface SandboxWatchAPI {\n watch(request: WatchRequest): Promise<WatchSubscriptionAPI>;\n checkChanges(request: CheckChangesRequest): Promise<CheckChangesResult>;\n}\n/**\n * Public-facing tunnel record. Discriminated on the presence of `name`:\n * quick tunnels (`*.trycloudflare.com`) omit it, named tunnels carry the\n * label that was passed to `get(port, { name })`.\n */\nexport type TunnelInfo = QuickTunnelInfo | NamedTunnelInfo;\nexport interface QuickTunnelInfo {\n id: string;\n port: number;\n /** `https://<random>.trycloudflare.com`. */\n url: string;\n /** Hostname portion of `url`. */\n hostname: string;\n createdAt: string;\n /** Absent on quick tunnels; narrows the union. */\n name?: never;\n}\nexport interface NamedTunnelInfo {\n /** Cloudflare tunnel UUID (8-4-4-4-12). */\n id: string;\n port: number;\n /** `https://<hostname>`. */\n url: string;\n /** Full hostname bound to the tunnel (without scheme). */\n hostname: string;\n createdAt: string;\n /** Label originally passed via `TunnelOptions.name`. */\n name: string;\n}\n/**\n * Options accepted by `sandbox.tunnels.get(port, options)`. Omitting\n * `name` (or omitting the options object) selects the zero-config quick\n * tunnel; setting `name` selects the named-tunnel flow.\n */\nexport interface TunnelOptions {\n /**\n * Single DNS label under the configured zone. The full hostname is\n * `<name>.<zone-name>`. See `validateTunnelName` for the format rules.\n */\n name?: string;\n}\nexport type TunnelRunMode = 'quick' | 'named';\nexport interface TunnelRunIdentity {\n tunnelId: string;\n runId: string;\n}\nexport type TunnelRunRef = TunnelRunIdentity;\nexport interface EnsureQuickTunnelRunRequest extends TunnelRunIdentity {\n mode: 'quick';\n port: number;\n readyTimeoutMs?: number;\n stopGraceMs?: number;\n}\nexport interface EnsureNamedTunnelRunRequest extends TunnelRunIdentity {\n mode: 'named';\n port: number;\n cloudflaredToken: string;\n readyTimeoutMs?: number;\n stopGraceMs?: number;\n}\nexport type EnsureTunnelRunRequest = EnsureQuickTunnelRunRequest | EnsureNamedTunnelRunRequest;\nexport interface QuickTunnelRunSnapshot extends TunnelRunIdentity {\n mode: 'quick';\n port: number;\n url: string;\n hostname: string;\n startedAt: string;\n}\nexport interface NamedTunnelRunSnapshot extends TunnelRunIdentity {\n mode: 'named';\n port: number;\n startedAt: string;\n}\nexport type TunnelRunSnapshot = QuickTunnelRunSnapshot | NamedTunnelRunSnapshot;\nexport interface EnsureTunnelRunResult {\n run: TunnelRunSnapshot;\n started: boolean;\n}\nexport type StopTunnelRunRequest = TunnelRunRef;\nexport interface StopTunnelRunResult {\n stopped: boolean;\n}\nexport interface TunnelRunExitEvent extends TunnelRunIdentity {\n mode: TunnelRunMode;\n port: number;\n exitCode: number | null;\n}\nexport interface SandboxTunnelsAPI {\n /** Ensure a runtime-local cloudflared process for a DO-issued run id. */\n ensureTunnelRun(request: EnsureTunnelRunRequest): Promise<EnsureTunnelRunResult>;\n /** Stop the matching runtime-local cloudflared process. */\n stopTunnelRun(request: StopTunnelRunRequest): Promise<StopTunnelRunResult>;\n}\n/**\n * Author-facing description of a sidecar extension. An extension is an\n * npm-style package: an `.tgz` whose embedded `package.json` declares the\n * sidecar entrypoint (via `bin`) and any extension metadata (under the\n * `sandboxExtension` key).\n *\n * The SDK ships the tarball bytes; the container hashes them, provisions a\n * dedicated directory keyed by content hash, derives identity from the\n * embedded `package.json`, installs the package with `bun add`, and spawns\n * the declared bin under Bun.\n *\n * `ExtensionPackage` carries tarball bytes produced by an extension build.\n * The SDK sends those bytes only when the container has not provisioned the\n * package hash yet.\n */\nexport interface ExtensionPackage {\n /** Raw `.tgz` bytes. */\n tarball: Uint8Array;\n /**\n * Bin entry to run when the embedded `package.json` declares more than one.\n * Defaults to the value of `sandboxExtension.bin` in `package.json`, then\n * to the single bin entry if there is exactly one.\n */\n bin?: string;\n /**\n * Max time to wait for the sidecar to accept a capnweb connection on its\n * unix socket. Falls back to `sandboxExtension.readinessTimeoutMs` in\n * `package.json`, then to a host default.\n */\n readinessTimeoutMs?: number;\n /**\n * Run lifecycle scripts during `bun add`. Defaults to false — provisioning\n * happens before the sidecar is supervised, so install-time side effects\n * are deliberately opt-in.\n */\n allowInstallScripts?: boolean;\n}\n/**\n * Container-derived identity for a provisioned extension package. Not\n * authored — produced by the host after extracting the embedded\n * `package.json` from a tarball.\n */\nexport interface ExtensionRegistration {\n /** Slugified package name (e.g. `@acme/foo` → `acme-foo`). */\n id: string;\n packageName: string;\n version: string;\n /** Hex sha256 of the tarball bytes. */\n packageHash: string;\n /** Resolved bin entry the host spawns. */\n bin: string;\n readinessTimeoutMs: number;\n}\n/** Health snapshot for a provisioned extension. */\nexport interface ExtensionHealth {\n packageHash: string;\n id: string;\n version: string;\n /** Tarball is on disk and the package.json has been read. */\n provisioned: boolean;\n /** Sidecar process is currently running. */\n running: boolean;\n pid: number | null;\n /** Whether a `__ping__` round-tripped over capnweb. */\n responsive: boolean;\n}\n/**\n * Connect request payload. The SDK hashes the tarball locally and first sends\n * only the hash. If the current host process has not provisioned that hash,\n * it responds with an `ExtensionTarballRequired` error and the SDK retries\n * with `tarball` populated.\n */\nexport interface ExtensionConnectRequest {\n packageHash: string;\n /** Only sent when the host has not seen this hash yet. */\n tarball?: Uint8Array;\n bin?: string;\n readinessTimeoutMs?: number;\n allowInstallScripts?: boolean;\n}\n/**\n * Error name thrown by the host's `connect` when it has not yet provisioned\n * the requested hash and the request did not carry tarball bytes. The SDK\n * recognises this name via `Error.name` and retries the connect with the\n * bytes attached. Kept as a string constant so it survives capnweb\n * cross-realm error reconstruction.\n */\nexport declare const EXTENSION_TARBALL_REQUIRED = \"ExtensionTarballRequired\";\n/**\n * Control surface for container sidecar extensions.\n *\n * `connect` is the only entry point: it provisions on first use, supervises\n * lazily, and returns the sidecar's capnweb remote main as a stub. Calls on\n * the stub are proxied through the container's capnweb session to the\n * sidecar's capnweb session — callback parameters (including streaming\n * handlers) round-trip across both hops.\n */\nexport interface SandboxExtensionsAPI {\n /**\n * Provision the package (if new) and return the sidecar's typed remote\n * main. The result is a capnweb stub whose methods correspond to the\n * sidecar's `RpcTarget` surface.\n */\n connect(req: ExtensionConnectRequest): Promise<unknown>;\n /** Health snapshot, probing the sidecar with a `__ping__` when running. */\n health(packageHash: string): Promise<ExtensionHealth>;\n /** Stop a sidecar and release its capnweb session. */\n stop(packageHash: string): Promise<void>;\n}\n/**\n * RPC surface the Sandbox DO exposes to the container over the existing\n * capnweb session. The container reaches it via\n * `session.getRemoteMain<SandboxControlCallback>()` and invokes methods\n * to push control-plane events (today: tunnel exits) back to the DO.\n *\n * One stable target per sandbox; not per-tunnel. Reusable seam for\n * future container→DO events.\n */\nexport interface SandboxControlCallback {\n /** Called by the container when a runtime-local tunnel run exits. */\n onTunnelRunExit(event: TunnelRunExitEvent): Promise<void>;\n}\n//# sourceMappingURL=rpc-types.d.ts.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-Bs4bqXDR.d.ts","names":["BackupCompressionOptions","ReadFileRequest","WriteFileRequest","DeleteFileRequest","RenameFileRequest","MoveFileRequest","MkdirRequest","FileExistsRequest","ListFilesRequest","CreateBackupRequest","UploadPart","UploadPartsRequest","UploadedPart","UploadPartsResponse","CreateBackupResponse","RestoreBackupRequest","RestoreBackupResponse","SandboxProcessesAPI","SandboxTerminalsAPI","CreateBackupResponse","RestoreBackupResponse","UploadedPart","UploadPartsResponse","BackupCompressionOptions","CheckChangesRequest","CheckChangesResult","DeleteFileResult","FileEncoding","FileExistsResult","ListFilesOptions","ListFilesResult","MkdirResult","MoveFileResult","PortWatchRPCOptions","PortWatchSubscriptionAPI","ReadFileResult","ReadFileStreamResult","RenameFileResult","WatchRequest","WriteFileResult","S3FSOptionValue","MountCommandResult","MountS3FSRequest","Record","RemoveMountDirectoryRequest","SandboxAPI","SandboxFilesAPI","SandboxPortsAPI","SandboxUtilsAPI","SandboxBackupAPI","SandboxWatchAPI","SandboxTunnelsAPI","SandboxMountsAPI","SandboxWorkspaceAPI","SandboxExtensionsAPI","ReadFileStreamOptions","ReadFileBinaryOptions","ReadFileOptions","Exclude","WriteFileOptions","MkdirOptions","Promise","Uint8Array","ReadableStream","RuntimeMetadata","CreateWorkspaceArchiveRequest","CreateWorkspaceArchiveResult","ExtractWorkspaceArchiveRequest","BackupUploadArchiveRequest","BackupDownloadArchiveRequest","Array","BackupPrepareRestoreRequest","BackupUploadPartsRequest","BackupCreateArchiveOptions","WatchSubscriptionAPI","TunnelInfo","QuickTunnelInfo","NamedTunnelInfo","TunnelOptions","TunnelRunMode","TunnelRunIdentity","TunnelRunRef","EnsureQuickTunnelRunRequest","EnsureNamedTunnelRunRequest","EnsureTunnelRunRequest","QuickTunnelRunSnapshot","NamedTunnelRunSnapshot","TunnelRunSnapshot","EnsureTunnelRunResult","StopTunnelRunRequest","StopTunnelRunResult","TunnelRunExitEvent","ExtensionPackage","ExtensionRegistration","ExtensionHealth","ExtensionConnectRequest","EXTENSION_TARBALL_REQUIRED","SandboxControlCallback"],"sources":["../../shared/dist/request-types.d.ts","../../shared/dist/rpc-types.d.ts","../src/processes/rpc-types.ts","../src/extensions/index.ts"],"sourcesContent":["import type { BackupCompressionOptions } from './types.js';\n/**\n * Request types for API calls to the container\n * Single source of truth for the contract between SDK clients and container handlers\n */\n/**\n * Request to read a file\n */\nexport interface ReadFileRequest {\n path: string;\n encoding?: string;\n}\n/**\n * Request to write a file\n */\nexport interface WriteFileRequest {\n path: string;\n content: string;\n encoding?: string;\n}\n/**\n * Request to delete a file\n */\nexport interface DeleteFileRequest {\n path: string;\n}\n/**\n * Request to rename a file\n */\nexport interface RenameFileRequest {\n oldPath: string;\n newPath: string;\n}\n/**\n * Request to move a file\n */\nexport interface MoveFileRequest {\n sourcePath: string;\n destinationPath: string;\n}\n/**\n * Request to create a directory\n */\nexport interface MkdirRequest {\n path: string;\n recursive?: boolean;\n}\n/**\n * Request to check if a file or directory exists\n */\nexport interface FileExistsRequest {\n path: string;\n}\n/**\n * Request to list files in a directory\n */\nexport interface ListFilesRequest {\n path: string;\n options?: {\n recursive?: boolean;\n includeHidden?: boolean;\n };\n}\n/**\n * Request to create a backup archive from a directory.\n * The container creates a squashfs archive at archivePath.\n * The DO then reads it and uploads to R2.\n */\nexport interface CreateBackupRequest {\n /** Directory to back up */\n dir: string;\n /** Path where the container should write the archive */\n archivePath: string;\n /** Respect git ignore rules when the directory is inside a git repository */\n gitignore?: boolean;\n /** Glob patterns to exclude from the backup */\n excludes?: string[];\n compression?: BackupCompressionOptions;\n}\n/**\n * A single part to upload in a multipart upload.\n * The container reads the byte range from the local archive and PUTs it\n * to the presigned URL.\n */\nexport interface UploadPart {\n partNumber: number;\n /** Presigned PUT URL for this part */\n url: string;\n /** Byte offset within the archive file */\n offset: number;\n /** Number of bytes in this part */\n size: number;\n}\n/**\n * Request to upload parts of a backup archive directly from the container to R2.\n * Used for parallel multipart upload of large archives.\n */\nexport interface UploadPartsRequest {\n /** Path to the archive file in the container */\n archivePath: string;\n /** Parts to upload in parallel */\n parts: UploadPart[];\n}\n/**\n * Result for a single uploaded part (ETag returned by R2).\n */\nexport interface UploadedPart {\n partNumber: number;\n etag: string;\n}\n/**\n * Response after the container has uploaded all parts.\n */\nexport interface UploadPartsResponse {\n success: boolean;\n parts: UploadedPart[];\n}\n/**\n * Response from the container after creating a backup archive\n */\nexport interface CreateBackupResponse {\n success: boolean;\n /** Size of the archive in bytes */\n sizeBytes: number;\n /** Path to the archive file in the container */\n archivePath: string;\n}\n/**\n * Request to restore a backup from an archive file.\n * The DO writes the archive to archivePath first, then tells the container to extract it.\n */\nexport interface RestoreBackupRequest {\n /** Directory to restore into */\n dir: string;\n /** Path to the archive file in the container */\n archivePath: string;\n}\n/**\n * Response from the container after restoring a backup\n */\nexport interface RestoreBackupResponse {\n success: boolean;\n /** Directory that was restored */\n dir: string;\n}\n//# sourceMappingURL=request-types.d.ts.map","/**\n * Shared interface types for the container-control path.\n *\n * Defines the contract between the SDK control client and the container\n * control-plane API. The current wire implementation uses capnweb RPC.\n */\nimport type { SandboxProcessesAPI } from './process-types.js';\nimport type { SandboxTerminalsAPI } from './pty-types.js';\nimport type { CreateBackupResponse, RestoreBackupResponse, UploadedPart, UploadPartsResponse } from './request-types.js';\nimport type { BackupCompressionOptions, CheckChangesRequest, CheckChangesResult, DeleteFileResult, FileEncoding, FileExistsResult, ListFilesOptions, ListFilesResult, MkdirResult, MoveFileResult, PortWatchRPCOptions, PortWatchSubscriptionAPI, ReadFileResult, ReadFileStreamResult, RenameFileResult, WatchRequest, WriteFileResult } from './types.js';\nexport type S3FSOptionValue = string | boolean;\nexport interface MountCommandResult {\n success: boolean;\n exitCode: number;\n stdout: string;\n stderr: string;\n}\nexport interface MountS3FSRequest {\n source: string;\n mountPath: string;\n options: Record<string, S3FSOptionValue>;\n}\nexport interface RemoveMountDirectoryRequest {\n path: string;\n onlyIfNotMountpoint: boolean;\n}\nexport interface SandboxAPI {\n files: SandboxFilesAPI;\n ports: SandboxPortsAPI;\n utils: SandboxUtilsAPI;\n backup: SandboxBackupAPI;\n watch: SandboxWatchAPI;\n tunnels: SandboxTunnelsAPI;\n terminals: SandboxTerminalsAPI;\n processes: SandboxProcessesAPI;\n mounts: SandboxMountsAPI;\n workspace: SandboxWorkspaceAPI;\n extensions: SandboxExtensionsAPI;\n}\nexport type ReadFileStreamOptions = object;\nexport interface ReadFileBinaryOptions {\n encoding: 'none';\n}\nexport interface ReadFileOptions {\n encoding?: Exclude<FileEncoding, 'none'>;\n}\nexport interface WriteFileOptions {\n encoding?: string;\n permissions?: string;\n}\nexport interface MkdirOptions {\n recursive?: boolean;\n}\nexport interface SandboxFilesAPI {\n readFile(path: string, options: ReadFileBinaryOptions): Promise<ReadFileStreamResult>;\n readFile(path: string, options?: ReadFileOptions): Promise<ReadFileResult>;\n readFileStream(path: string, options?: ReadFileStreamOptions): Promise<ReadableStream<Uint8Array>>;\n writeFile(path: string, content: string, options?: WriteFileOptions): Promise<WriteFileResult>;\n writeFileStream(path: string, stream: ReadableStream<Uint8Array>, options?: Record<string, never>): Promise<{\n success: boolean;\n path: string;\n bytesWritten: number;\n timestamp: string;\n }>;\n deleteFile(path: string, options?: Record<string, never>): Promise<DeleteFileResult>;\n renameFile(oldPath: string, newPath: string, options?: Record<string, never>): Promise<RenameFileResult>;\n moveFile(sourcePath: string, destinationPath: string, options?: Record<string, never>): Promise<MoveFileResult>;\n mkdir(path: string, options?: MkdirOptions): Promise<MkdirResult>;\n listFiles(path: string, options?: ListFilesOptions): Promise<ListFilesResult>;\n exists(path: string, options?: Record<string, never>): Promise<FileExistsResult>;\n}\nexport interface SandboxPortsAPI {\n openWatch(port: number, options?: PortWatchRPCOptions): Promise<PortWatchSubscriptionAPI>;\n}\nexport interface RuntimeMetadata {\n runtimeIncarnationID: string;\n sandboxVersion: string;\n controlProtocolVersion: 1;\n}\nexport interface SandboxUtilsAPI {\n ping(): Promise<string>;\n getRuntimeMetadata(): Promise<RuntimeMetadata>;\n activateControlSession(expectedRuntimeIncarnationID: string): Promise<RuntimeMetadata>;\n}\nexport interface CreateWorkspaceArchiveRequest {\n root: string;\n excludes: readonly string[];\n}\nexport interface CreateWorkspaceArchiveResult {\n archivePath: string;\n}\nexport interface ExtractWorkspaceArchiveRequest {\n root: string;\n archivePath: string;\n}\nexport interface SandboxWorkspaceAPI {\n createArchive(request: CreateWorkspaceArchiveRequest): Promise<CreateWorkspaceArchiveResult>;\n extractArchive(request: ExtractWorkspaceArchiveRequest): Promise<void>;\n cleanupArchive(archivePath: string): Promise<void>;\n}\nexport interface SandboxMountsAPI {\n pathExists(path: string): Promise<boolean>;\n ensureDirectory(path: string): Promise<void>;\n chmodOwnerOnly(path: string): Promise<void>;\n deleteFile(path: string): Promise<void>;\n mountS3FS(request: MountS3FSRequest): Promise<MountCommandResult>;\n mountS3FSAndVerify(request: MountS3FSRequest): Promise<MountCommandResult>;\n isMountpoint(path: string): Promise<boolean>;\n unmountFuse(path: string): Promise<MountCommandResult>;\n unmountFuseIfMounted(path: string): Promise<void>;\n removeMountDirectory(request: RemoveMountDirectoryRequest): Promise<MountCommandResult>;\n}\nexport interface BackupUploadArchiveRequest {\n archivePath: string;\n url: string;\n timeoutMs: number;\n}\nexport interface BackupDownloadArchiveRequest {\n archivePath: string;\n expectedSize: number;\n parts: Array<{\n url: string;\n offset: number;\n range?: string;\n }>;\n timeoutMs: number;\n}\nexport interface BackupPrepareRestoreRequest {\n dir: string;\n backupId: string;\n archivePath: string;\n}\nexport interface BackupUploadPartsRequest {\n archivePath: string;\n parts: Array<{\n partNumber: number;\n url: string;\n offset: number;\n size: number;\n }>;\n}\nexport interface BackupCreateArchiveOptions {\n excludes?: string[];\n gitignore?: boolean;\n compression?: BackupCompressionOptions;\n}\nexport interface SandboxBackupAPI {\n createArchive(dir: string, archivePath: string, options?: BackupCreateArchiveOptions): Promise<CreateBackupResponse>;\n restoreArchive(dir: string, archivePath: string): Promise<RestoreBackupResponse>;\n uploadArchive(request: BackupUploadArchiveRequest): Promise<void>;\n uploadParts(request: BackupUploadPartsRequest): Promise<UploadPartsResponse>;\n prepareRestore(request: BackupPrepareRestoreRequest): Promise<{\n existingSize: number;\n }>;\n downloadArchive(request: BackupDownloadArchiveRequest): Promise<void>;\n extractArchive(dir: string, archivePath: string): Promise<void>;\n cleanupArchive(archivePath: string): Promise<void>;\n}\nexport type { UploadedPart, UploadPartsResponse };\nexport interface WatchSubscriptionAPI {\n stream(): Promise<ReadableStream<Uint8Array>>;\n cancel(): Promise<void>;\n [Symbol.dispose](): void;\n}\nexport interface SandboxWatchAPI {\n watch(request: WatchRequest): Promise<WatchSubscriptionAPI>;\n checkChanges(request: CheckChangesRequest): Promise<CheckChangesResult>;\n}\n/**\n * Public-facing tunnel record. Discriminated on the presence of `name`:\n * quick tunnels (`*.trycloudflare.com`) omit it, named tunnels carry the\n * label that was passed to `get(port, { name })`.\n */\nexport type TunnelInfo = QuickTunnelInfo | NamedTunnelInfo;\nexport interface QuickTunnelInfo {\n id: string;\n port: number;\n /** `https://<random>.trycloudflare.com`. */\n url: string;\n /** Hostname portion of `url`. */\n hostname: string;\n createdAt: string;\n /** Absent on quick tunnels; narrows the union. */\n name?: never;\n}\nexport interface NamedTunnelInfo {\n /** Cloudflare tunnel UUID (8-4-4-4-12). */\n id: string;\n port: number;\n /** `https://<hostname>`. */\n url: string;\n /** Full hostname bound to the tunnel (without scheme). */\n hostname: string;\n createdAt: string;\n /** Label originally passed via `TunnelOptions.name`. */\n name: string;\n}\n/**\n * Options accepted by `sandbox.tunnels.get(port, options)`. Omitting\n * `name` (or omitting the options object) selects the zero-config quick\n * tunnel; setting `name` selects the named-tunnel flow.\n */\nexport interface TunnelOptions {\n /**\n * Single DNS label under the configured zone. The full hostname is\n * `<name>.<zone-name>`. See `validateTunnelName` for the format rules.\n */\n name?: string;\n}\nexport type TunnelRunMode = 'quick' | 'named';\nexport interface TunnelRunIdentity {\n tunnelId: string;\n runId: string;\n}\nexport type TunnelRunRef = TunnelRunIdentity;\nexport interface EnsureQuickTunnelRunRequest extends TunnelRunIdentity {\n mode: 'quick';\n port: number;\n readyTimeoutMs?: number;\n stopGraceMs?: number;\n}\nexport interface EnsureNamedTunnelRunRequest extends TunnelRunIdentity {\n mode: 'named';\n port: number;\n cloudflaredToken: string;\n readyTimeoutMs?: number;\n stopGraceMs?: number;\n}\nexport type EnsureTunnelRunRequest = EnsureQuickTunnelRunRequest | EnsureNamedTunnelRunRequest;\nexport interface QuickTunnelRunSnapshot extends TunnelRunIdentity {\n mode: 'quick';\n port: number;\n url: string;\n hostname: string;\n startedAt: string;\n}\nexport interface NamedTunnelRunSnapshot extends TunnelRunIdentity {\n mode: 'named';\n port: number;\n startedAt: string;\n}\nexport type TunnelRunSnapshot = QuickTunnelRunSnapshot | NamedTunnelRunSnapshot;\nexport interface EnsureTunnelRunResult {\n run: TunnelRunSnapshot;\n started: boolean;\n}\nexport type StopTunnelRunRequest = TunnelRunRef;\nexport interface StopTunnelRunResult {\n stopped: boolean;\n}\nexport interface TunnelRunExitEvent extends TunnelRunIdentity {\n mode: TunnelRunMode;\n port: number;\n exitCode: number | null;\n}\nexport interface SandboxTunnelsAPI {\n /** Ensure a runtime-local cloudflared process for a DO-issued run id. */\n ensureTunnelRun(request: EnsureTunnelRunRequest): Promise<EnsureTunnelRunResult>;\n /** Stop the matching runtime-local cloudflared process. */\n stopTunnelRun(request: StopTunnelRunRequest): Promise<StopTunnelRunResult>;\n}\n/**\n * Author-facing description of a sidecar extension. An extension is an\n * npm-style package: an `.tgz` whose embedded `package.json` declares the\n * sidecar entrypoint (via `bin`) and any extension metadata (under the\n * `sandboxExtension` key).\n *\n * The SDK ships the tarball bytes; the container hashes them, provisions a\n * dedicated directory keyed by content hash, derives identity from the\n * embedded `package.json`, installs the package with `bun add`, and spawns\n * the declared bin under Bun.\n *\n * `ExtensionPackage` carries tarball bytes produced by an extension build.\n * The SDK sends those bytes only when the container has not provisioned the\n * package hash yet.\n */\nexport interface ExtensionPackage {\n /** Raw `.tgz` bytes. */\n tarball: Uint8Array;\n /**\n * Bin entry to run when the embedded `package.json` declares more than one.\n * Defaults to the value of `sandboxExtension.bin` in `package.json`, then\n * to the single bin entry if there is exactly one.\n */\n bin?: string;\n /**\n * Max time to wait for the sidecar to accept a capnweb connection on its\n * unix socket. Falls back to `sandboxExtension.readinessTimeoutMs` in\n * `package.json`, then to a host default.\n */\n readinessTimeoutMs?: number;\n /**\n * Run lifecycle scripts during `bun add`. Defaults to false — provisioning\n * happens before the sidecar is supervised, so install-time side effects\n * are deliberately opt-in.\n */\n allowInstallScripts?: boolean;\n}\n/**\n * Container-derived identity for a provisioned extension package. Not\n * authored — produced by the host after extracting the embedded\n * `package.json` from a tarball.\n */\nexport interface ExtensionRegistration {\n /** Slugified package name (e.g. `@acme/foo` → `acme-foo`). */\n id: string;\n packageName: string;\n version: string;\n /** Hex sha256 of the tarball bytes. */\n packageHash: string;\n /** Resolved bin entry the host spawns. */\n bin: string;\n readinessTimeoutMs: number;\n}\n/** Health snapshot for a provisioned extension. */\nexport interface ExtensionHealth {\n packageHash: string;\n id: string;\n version: string;\n /** Tarball is on disk and the package.json has been read. */\n provisioned: boolean;\n /** Sidecar process is currently running. */\n running: boolean;\n pid: number | null;\n /** Whether a `__ping__` round-tripped over capnweb. */\n responsive: boolean;\n}\n/**\n * Connect request payload. The SDK hashes the tarball locally and first sends\n * only the hash. If the current host process has not provisioned that hash,\n * it responds with an `ExtensionTarballRequired` error and the SDK retries\n * with `tarball` populated.\n */\nexport interface ExtensionConnectRequest {\n packageHash: string;\n /** Only sent when the host has not seen this hash yet. */\n tarball?: Uint8Array;\n bin?: string;\n readinessTimeoutMs?: number;\n allowInstallScripts?: boolean;\n}\n/**\n * Error name thrown by the host's `connect` when it has not yet provisioned\n * the requested hash and the request did not carry tarball bytes. The SDK\n * recognises this name via `Error.name` and retries the connect with the\n * bytes attached. Kept as a string constant so it survives capnweb\n * cross-realm error reconstruction.\n */\nexport declare const EXTENSION_TARBALL_REQUIRED = \"ExtensionTarballRequired\";\n/**\n * Control surface for container sidecar extensions.\n *\n * `connect` is the only entry point: it provisions on first use, supervises\n * lazily, and returns the sidecar's capnweb remote main as a stub. Calls on\n * the stub are proxied through the container's capnweb session to the\n * sidecar's capnweb session — callback parameters (including streaming\n * handlers) round-trip across both hops.\n */\nexport interface SandboxExtensionsAPI {\n /**\n * Provision the package (if new) and return the sidecar's typed remote\n * main. The result is a capnweb stub whose methods correspond to the\n * sidecar's `RpcTarget` surface.\n */\n connect(req: ExtensionConnectRequest): Promise<unknown>;\n /** Health snapshot, probing the sidecar with a `__ping__` when running. */\n health(packageHash: string): Promise<ExtensionHealth>;\n /** Stop a sidecar and release its capnweb session. */\n stop(packageHash: string): Promise<void>;\n}\n/**\n * RPC surface the Sandbox DO exposes to the container over the existing\n * capnweb session. The container reaches it via\n * `session.getRemoteMain<SandboxControlCallback>()` and invokes methods\n * to push control-plane events (today: tunnel exits) back to the DO.\n *\n * One stable target per sandbox; not per-tunnel. Reusable seam for\n * future container→DO events.\n */\nexport interface SandboxControlCallback {\n /** Called by the container when a runtime-local tunnel run exits. */\n onTunnelRunExit(event: TunnelRunExitEvent): Promise<void>;\n}\n//# sourceMappingURL=rpc-types.d.ts.map"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./errors-CXR0xBpw.js";
|
|
2
2
|
import { $ as TerminalControlError, G as BackupRestoreError, H as BackupCreateError, J as InvalidTerminalCursorError, K as ContainerUnavailableError, Q as StaleTerminalHandleError, U as BackupExpiredError, W as BackupNotFoundError, X as OperationInterruptedError, Y as InvalidTerminalCwdError, Z as RPCTransportError, _ as StaleProcessHandleError, c as InvalidProcessEnvironmentError, d as ProcessExitedBeforeLogError, et as TerminalNotFoundError, f as ProcessExitedBeforeReadyError, g as ProcessWaitTimeoutError, h as ProcessSpawnFailedError, l as ProcessAbortedError, m as ProcessReadyTimeoutError, n as RuntimeIdentityInactiveError, o as InvalidProcessCursorError, p as ProcessNotFoundError, q as InvalidBackupConfigError, r as RuntimeControlProtocolError, s as InvalidProcessCwdError, u as ProcessError } from "./errors-QYlSkVGz.js";
|
|
3
3
|
import { a as TraceContext, r as createLogger } from "./dist-Duor5GbS.js";
|
|
4
|
-
import { _ as proxyTerminal, a as responseToAsyncIterable, b as collectFile, c as BucketUnmountError, d as S3FSMountError, f as parsePreviewRoute, i as parseSSEStream, l as InvalidMountConfigError, n as getSandbox, o as ContainerProxy, p as withPreviewProxyMetadata, r as asyncIterableToSSEStream, s as BucketMountError, t as Sandbox, u as MissingCredentialsError, v as isDurableObjectCodeUpdateReset, x as streamFile, y as isPlatformTransientError } from "./sandbox-
|
|
4
|
+
import { _ as proxyTerminal, a as responseToAsyncIterable, b as collectFile, c as BucketUnmountError, d as S3FSMountError, f as parsePreviewRoute, i as parseSSEStream, l as InvalidMountConfigError, n as getSandbox, o as ContainerProxy, p as withPreviewProxyMetadata, r as asyncIterableToSSEStream, s as BucketMountError, t as Sandbox, u as MissingCredentialsError, v as isDurableObjectCodeUpdateReset, x as streamFile, y as isPlatformTransientError } from "./sandbox-Bk7fzLpy.js";
|
|
5
5
|
import "./extensions-CFB2xHqY.js";
|
|
6
6
|
|
|
7
7
|
//#region src/request-handler.ts
|
|
@@ -714,11 +714,22 @@ function xmlResponse(body, status = 200) {
|
|
|
714
714
|
function normalizeObjectKey(value) {
|
|
715
715
|
return value.replace(/^\/+/, "");
|
|
716
716
|
}
|
|
717
|
+
function decodeObjectKey(value) {
|
|
718
|
+
try {
|
|
719
|
+
return decodeURIComponent(value);
|
|
720
|
+
} catch {
|
|
721
|
+
return value;
|
|
722
|
+
}
|
|
723
|
+
}
|
|
717
724
|
function trimTrailingSlashes(s) {
|
|
718
725
|
let end = s.length;
|
|
719
726
|
while (end > 0 && s[end - 1] === "/") end--;
|
|
720
727
|
return s.slice(0, end);
|
|
721
728
|
}
|
|
729
|
+
function normalizeMountPrefix(prefix) {
|
|
730
|
+
if (!prefix) return void 0;
|
|
731
|
+
return trimTrailingSlashes(normalizeObjectKey(prefix)) || void 0;
|
|
732
|
+
}
|
|
722
733
|
function parsePath(pathname) {
|
|
723
734
|
const stripped = pathname.startsWith("/") ? pathname.slice(1) : pathname;
|
|
724
735
|
if (!stripped) return null;
|
|
@@ -916,15 +927,17 @@ async function handleGetObject(r2, key, request) {
|
|
|
916
927
|
headers
|
|
917
928
|
});
|
|
918
929
|
}
|
|
919
|
-
async function handlePutObject(r2, bucketName, key, request, env$1,
|
|
930
|
+
async function handlePutObject(r2, bucketName, key, request, env$1, buckets) {
|
|
920
931
|
const copySourceHeader = request.headers.get("x-amz-copy-source");
|
|
921
932
|
if (copySourceHeader) {
|
|
922
933
|
const copySource = parseCopySource(copySourceHeader);
|
|
923
934
|
if (!copySource || !copySource.key) return new Response("Bad Request: invalid x-amz-copy-source", { status: 400 });
|
|
924
|
-
if (!
|
|
935
|
+
if (!Object.hasOwn(buckets, copySource.bucket)) return new Response(`Access to R2 bucket "${copySource.bucket}" is not permitted. Call mountBucket() with this bucket before accessing it.`, { status: 403 });
|
|
936
|
+
const sourceParams = buckets[copySource.bucket];
|
|
925
937
|
const sourceBucket = copySource.bucket === bucketName ? r2 : resolveR2Bucket(env$1, copySource.bucket);
|
|
926
938
|
if (!sourceBucket) return new Response(`R2 binding "${copySource.bucket}" not found in Worker env. Ensure the binding name matches the bucket name passed to mountBucket().`, { status: 500 });
|
|
927
|
-
const
|
|
939
|
+
const sourcePrefix = normalizeMountPrefix(sourceParams.prefix);
|
|
940
|
+
const sourceKey = sourcePrefix ? `${sourcePrefix}/${copySource.key}` : copySource.key;
|
|
928
941
|
const sourceObject = await sourceBucket.get(sourceKey);
|
|
929
942
|
if (!sourceObject) return new Response(null, { status: 404 });
|
|
930
943
|
const httpMetadata = request.headers.get("x-amz-metadata-directive")?.toUpperCase() === "REPLACE" ? extractHttpMetadata(request) : sourceObject.httpMetadata;
|
|
@@ -995,11 +1008,11 @@ const r2EgressHandler = async (request, env$1, ctx) => {
|
|
|
995
1008
|
const url = new URL(request.url);
|
|
996
1009
|
const parsed = parsePath(url.pathname);
|
|
997
1010
|
if (!parsed) return new Response("Bad Request: empty path", { status: 400 });
|
|
998
|
-
const { bucket: bucketName, key } = parsed;
|
|
1011
|
+
const { bucket: bucketName, key: encodedKey } = parsed;
|
|
1012
|
+
const key = decodeObjectKey(encodedKey);
|
|
999
1013
|
if (!ctx.params?.buckets || !(bucketName in ctx.params.buckets)) return new Response(`Access to R2 bucket "${bucketName}" is not permitted. Call mountBucket() with this bucket before accessing it.`, { status: 403 });
|
|
1000
1014
|
const bucketParams = ctx.params.buckets[bucketName];
|
|
1001
|
-
const
|
|
1002
|
-
const mountPrefix = rawPrefix ? trimTrailingSlashes(normalizeObjectKey(rawPrefix)) : void 0;
|
|
1015
|
+
const mountPrefix = normalizeMountPrefix(bucketParams.prefix);
|
|
1003
1016
|
const readOnly = bucketParams.readOnly ?? false;
|
|
1004
1017
|
const r2 = resolveR2Bucket(env$1, bucketName);
|
|
1005
1018
|
if (!r2) return new Response(`R2 binding "${bucketName}" not found in Worker env. Ensure the binding name matches the bucket name passed to mountBucket().`, { status: 500 });
|
|
@@ -1011,7 +1024,6 @@ const r2EgressHandler = async (request, env$1, ctx) => {
|
|
|
1011
1024
|
return new Response("Method Not Allowed", { status: 405 });
|
|
1012
1025
|
}
|
|
1013
1026
|
const fullKey = mountPrefix ? `${mountPrefix}/${key}` : key;
|
|
1014
|
-
const permitted = new Set(Object.keys(ctx.params.buckets));
|
|
1015
1027
|
if (readOnly && (method === "PUT" || method === "DELETE" || method === "POST" && (url.searchParams.has("uploads") || url.searchParams.has("uploadId")))) return new Response("Forbidden: bucket mount is read-only", { status: 403 });
|
|
1016
1028
|
if (method === "POST" && url.searchParams.has("uploads")) return handleCreateMultipartUpload(r2, bucketName, fullKey, request);
|
|
1017
1029
|
if (method === "POST" && url.searchParams.has("uploadId")) return handleCompleteMultipartUpload(r2, bucketName, fullKey, url, request);
|
|
@@ -1020,7 +1032,7 @@ const r2EgressHandler = async (request, env$1, ctx) => {
|
|
|
1020
1032
|
switch (method) {
|
|
1021
1033
|
case "HEAD": return handleHeadObject(r2, fullKey);
|
|
1022
1034
|
case "GET": return handleGetObject(r2, fullKey, request);
|
|
1023
|
-
case "PUT": return handlePutObject(r2, bucketName, fullKey, request, env$1,
|
|
1035
|
+
case "PUT": return handlePutObject(r2, bucketName, fullKey, request, env$1, ctx.params.buckets);
|
|
1024
1036
|
case "DELETE": return handleDeleteObject(r2, fullKey);
|
|
1025
1037
|
default: return new Response("Method Not Allowed", { status: 405 });
|
|
1026
1038
|
}
|
|
@@ -10036,4 +10048,4 @@ var Sandbox = class extends Container {
|
|
|
10036
10048
|
|
|
10037
10049
|
//#endregion
|
|
10038
10050
|
export { proxyTerminal as _, responseToAsyncIterable as a, collectFile as b, BucketUnmountError as c, S3FSMountError as d, parsePreviewRoute as f, validateTunnelName as g, validatePort as h, parseSSEStream as i, InvalidMountConfigError as l, SandboxSecurityError as m, getSandbox as n, ContainerProxy$1 as o, withPreviewProxyMetadata as p, asyncIterableToSSEStream as r, BucketMountError as s, Sandbox as t, MissingCredentialsError as u, isDurableObjectCodeUpdateReset as v, streamFile as x, isPlatformTransientError as y };
|
|
10039
|
-
//# sourceMappingURL=sandbox-
|
|
10051
|
+
//# sourceMappingURL=sandbox-Bk7fzLpy.js.map
|