Skip to content

@lastshotlabs/slingshot-assets

npm install @lastshotlabs/slingshot-assets

Public contract for slingshot-assets.

Cross-package consumers resolve capabilities through ctx.capabilities.require(...):

  • AssetsRuntimeCap — bundled assets adapter, storage adapter, and config.
  • AssetsHealthCap — aggregated health snapshot getter.
  • AssetsOrphanedKeysCap — recovery-API snapshot of orphaned storage keys.

Source: packages/slingshot-assets/src/public.ts

Public contract for slingshot-assets.

Cross-package consumers resolve capabilities through ctx.capabilities.require(...):

  • AssetsRuntimeCap — bundled assets adapter, storage adapter, and config.
  • AssetsHealthCap — aggregated health snapshot getter.
  • AssetsOrphanedKeysCap — recovery-API snapshot of orphaned storage keys.

Source: packages/slingshot-assets/src/public.ts

Public contract for slingshot-assets.

Cross-package consumers resolve capabilities through ctx.capabilities.require(...):

  • AssetsRuntimeCap — bundled assets adapter, storage adapter, and config.
  • AssetsHealthCap — aggregated health snapshot getter.
  • AssetsOrphanedKeysCap — recovery-API snapshot of orphaned storage keys.

Source: packages/slingshot-assets/src/public.ts

Public contract for slingshot-assets.

Cross-package consumers resolve capabilities through ctx.capabilities.require(...):

  • AssetsRuntimeCap — bundled assets adapter, storage adapter, and config.
  • AssetsHealthCap — aggregated health snapshot getter.
  • AssetsOrphanedKeysCap — recovery-API snapshot of orphaned storage keys.

Source: packages/slingshot-assets/src/public.ts

Assets package factory.

Creates a SlingshotPackageDefinition that mounts the Asset entity through the definePackage authoring path, wires storage / image cache / S3 circuit breaker, registers the storage-delete middleware that cascades to the object store on entity delete, and publishes capabilities for the runtime, health snapshot, and orphaned-key recovery API.

Every adapter ref, middleware closure, and registry instance is owned by the factory’s closure (Rule 3) — multiple package instances in the same process do not share state.

function createAssetsPackage(rawConfig: AssetsPluginConfig, deps: AssetsPackageDeps = {},): SlingshotPackageDefinition

Source: packages/slingshot-assets/src/plugin.ts

Recovery API for orphaned-key reconciliation. Apps can fetch the in-memory orphan list to re-attempt manual cleanup or to expose a dashboard view.

The list is bounded — the oldest entries are evicted once maxRecords is exceeded — so this is not durable storage. Apps that need persistence MUST wire onOrphanedKey to push records onto an external queue.

function createOrphanedKeyRegistry(maxRecords = 1000): OrphanedKeyRegistry

Source: packages/slingshot-assets/src/middleware/deleteStorageFile.ts

Default RuntimeFs implementation using Bun’s file APIs.

function localStorage(config: LocalStorageConfig): LocalStorageAdapter

Source: packages/slingshot-assets/src/adapters/local.ts

Structured error thrown when the memory storage circuit breaker is open. Callers can pattern-match on code === 'MEMORY_CIRCUIT_OPEN' to fail fast.

function memoryStorage(options: { /** * Circuit breaker — number of consecutive operation failures before the * breaker opens and short-circuits subsequent calls. Default: 5. */ readonly circuitBreakerThreshold?: number; /** * Circuit breaker — cooldown duration in ms before allowing a half-open * probe after the breaker opens. Default: 30 000 ms. */ readonly circuitBreakerCooldownMs?: number; /** * Circuit breaker — clock used for cooldown comparisons. Override in tests * for deterministic state machines. Default: `Date.now`. */ readonly now?: () => number; } = {},): MemoryStorageAdapter

Source: packages/slingshot-assets/src/adapters/memory.ts

Optional override options for built-in adapter resolution.

function resolveStorageAdapter(ref: StorageAdapter | StorageAdapterRef, options?: ResolveStorageAdapterOptions,): StorageAdapter

Source: packages/slingshot-assets/src/adapters/index.ts

Static AWS credentials object. Use this only when credentials never change during the process lifetime. For long-running services prefer a AwsCredentialProvider so STS/EC2/ECS rotation is honored.

function s3Storage(config: S3StorageConfig): S3StorageAdapter

Source: packages/slingshot-assets/src/adapters/s3.ts

Supported output image formats for the asset image handler.

Source: packages/slingshot-assets/src/image/types.ts

Supported output image formats for the asset image handler.

Source: packages/slingshot-assets/src/image/types.ts

Default RuntimeFs implementation using Bun’s file APIs.

Source: packages/slingshot-assets/src/adapters/local.ts

Structured error thrown when the memory storage circuit breaker is open. Callers can pattern-match on code === 'MEMORY_CIRCUIT_OPEN' to fail fast.

Source: packages/slingshot-assets/src/adapters/memory.ts

Static AWS credentials object. Use this only when credentials never change during the process lifetime. For long-running services prefer a AwsCredentialProvider so STS/EC2/ECS rotation is honored.

Source: packages/slingshot-assets/src/adapters/s3.ts

Reference to a built-in storage adapter resolved by name.

Use this shape in config-driven mode to resolve a built-in storage adapter without passing a runtime object instance.

Source: packages/slingshot-assets/src/types.ts

Reference to a built-in storage adapter resolved by name.

Use this shape in config-driven mode to resolve a built-in storage adapter without passing a runtime object instance.

Source: packages/slingshot-assets/src/types.ts

Reference to a built-in storage adapter resolved by name.

Use this shape in config-driven mode to resolve a built-in storage adapter without passing a runtime object instance.

Source: packages/slingshot-assets/src/types.ts

Reference to a built-in storage adapter resolved by name.

Use this shape in config-driven mode to resolve a built-in storage adapter without passing a runtime object instance.

Source: packages/slingshot-assets/src/types.ts

Reference to a built-in storage adapter resolved by name.

Use this shape in config-driven mode to resolve a built-in storage adapter without passing a runtime object instance.

Source: packages/slingshot-assets/src/types.ts

Assets package factory.

Creates a SlingshotPackageDefinition that mounts the Asset entity through the definePackage authoring path, wires storage / image cache / S3 circuit breaker, registers the storage-delete middleware that cascades to the object store on entity delete, and publishes capabilities for the runtime, health snapshot, and orphaned-key recovery API.

Every adapter ref, middleware closure, and registry instance is owned by the factory’s closure (Rule 3) — multiple package instances in the same process do not share state.

Source: packages/slingshot-assets/src/plugin.ts

Reference to a built-in storage adapter resolved by name.

Use this shape in config-driven mode to resolve a built-in storage adapter without passing a runtime object instance.

Source: packages/slingshot-assets/src/types.ts

Reference to a built-in storage adapter resolved by name.

Use this shape in config-driven mode to resolve a built-in storage adapter without passing a runtime object instance.

Source: packages/slingshot-assets/src/types.ts

Static AWS credentials object. Use this only when credentials never change during the process lifetime. For long-running services prefer a AwsCredentialProvider so STS/EC2/ECS rotation is honored.

Source: packages/slingshot-assets/src/adapters/s3.ts

Reference to a built-in storage adapter resolved by name.

Use this shape in config-driven mode to resolve a built-in storage adapter without passing a runtime object instance.

Source: packages/slingshot-assets/src/types.ts

Reference to a built-in storage adapter resolved by name.

Use this shape in config-driven mode to resolve a built-in storage adapter without passing a runtime object instance.

Source: packages/slingshot-assets/src/types.ts

Default RuntimeFs implementation using Bun’s file APIs.

Source: packages/slingshot-assets/src/adapters/local.ts

Default RuntimeFs implementation using Bun’s file APIs.

Source: packages/slingshot-assets/src/adapters/local.ts

Default RuntimeFs implementation using Bun’s file APIs.

Source: packages/slingshot-assets/src/adapters/local.ts

Structured error thrown when the memory storage circuit breaker is open. Callers can pattern-match on code === 'MEMORY_CIRCUIT_OPEN' to fail fast.

Source: packages/slingshot-assets/src/adapters/memory.ts

Structured error thrown when the memory storage circuit breaker is open. Callers can pattern-match on code === 'MEMORY_CIRCUIT_OPEN' to fail fast.

Source: packages/slingshot-assets/src/adapters/memory.ts

Reference to a built-in storage adapter resolved by name.

Use this shape in config-driven mode to resolve a built-in storage adapter without passing a runtime object instance.

Source: packages/slingshot-assets/src/types.ts

Recovery API for orphaned-key reconciliation. Apps can fetch the in-memory orphan list to re-attempt manual cleanup or to expose a dashboard view.

The list is bounded — the oldest entries are evicted once maxRecords is exceeded — so this is not durable storage. Apps that need persistence MUST wire onOrphanedKey to push records onto an external queue.

Source: packages/slingshot-assets/src/middleware/deleteStorageFile.ts

Reference to a built-in storage adapter resolved by name.

Use this shape in config-driven mode to resolve a built-in storage adapter without passing a runtime object instance.

Source: packages/slingshot-assets/src/types.ts

Static AWS credentials object. Use this only when credentials never change during the process lifetime. For long-running services prefer a AwsCredentialProvider so STS/EC2/ECS rotation is honored.

Source: packages/slingshot-assets/src/adapters/s3.ts

Static AWS credentials object. Use this only when credentials never change during the process lifetime. For long-running services prefer a AwsCredentialProvider so STS/EC2/ECS rotation is honored.

Source: packages/slingshot-assets/src/adapters/s3.ts

Static AWS credentials object. Use this only when credentials never change during the process lifetime. For long-running services prefer a AwsCredentialProvider so STS/EC2/ECS rotation is honored.

Source: packages/slingshot-assets/src/adapters/s3.ts

Reference to a built-in storage adapter resolved by name.

Use this shape in config-driven mode to resolve a built-in storage adapter without passing a runtime object instance.

Source: packages/slingshot-assets/src/types.ts

Reference to a built-in storage adapter resolved by name.

Use this shape in config-driven mode to resolve a built-in storage adapter without passing a runtime object instance.

Source: packages/slingshot-assets/src/types.ts

Reference to a built-in storage adapter resolved by name.

Use this shape in config-driven mode to resolve a built-in storage adapter without passing a runtime object instance.

Source: packages/slingshot-assets/src/types.ts

Static AWS credentials object. Use this only when credentials never change during the process lifetime. For long-running services prefer a AwsCredentialProvider so STS/EC2/ECS rotation is honored.

Source: packages/slingshot-assets/src/adapters/s3.ts