Files
skills/docs/media/audio-ir/audio-ir-room-plugin-pool/src/manifest/manifest.md
2026-05-29 08:20:56 +01:00

3.6 KiB

manifest — single-entry IrManifest for the outdoor-swimming-pool IR

(no submodules)

Purpose

Declares the lone IrManifestEntry shipped by @suaveplan/audio-ir-room-plugin-pool. The entry's uri is a fallback://?u=<bundle>&u=<https> URI built at module load by buildFallbackUri from @suaveplan/storage-uri-plugin-fallback — when the consuming resolver has both a bundle:// plugin and an https:// plugin wired, the shipped fallback:// walk hits the in-package WAV first and only reaches for the CDN copy when the local file is absent.

The manifest also pins the decoded channels and sampleRate of the bundled WAV (channels = 1, sampleRate = 48000) so the loader's validateAndFinalize step can reject any subsequent re-encode that drifts from those values. Both numbers were obtained by feeding files/outdoor-swimming-pool.wav through decodeWav once at manifest-authoring time.

Features

  • Round-trips through IrManifestSchema at module load — any drift in the schema fails the build before dist/ is emitted.
  • BUNDLE_PACKAGE_SLUG, BUNDLE_URI, CDN_URI, ENTRY_ID, CHANNELS, SAMPLE_RATE exported as named const literals so consumers can refer to them without re-deriving from manifest.entries[0].
  • Frozen at runtime (IrManifestSchema applies Object.freeze to the parsed manifest + every entry).

Usage: Basic

import { manifest } from "@suaveplan/audio-ir-room-plugin-pool/manifest";

console.log(manifest.packageSlug); // "pool"
console.log(manifest.entries[0].id); // "pool-outdoor-swimming-pool"

Usage: Advanced

import {
    BUNDLE_URI,
    CDN_URI,
    ENTRY_ID,
    manifest,
} from "@suaveplan/audio-ir-room-plugin-pool/manifest";
import { parseFallbackUri } from "@suaveplan/storage-uri-plugin-fallback";

const entry = manifest.entries[0];
const parsed = parseFallbackUri(entry.uri);
console.log(parsed.candidates); // [BUNDLE_URI, CDN_URI]
console.log(entry.id === ENTRY_ID); // true

API Reference

Symbol Kind Description
manifest IrManifest Frozen single-entry manifest.
BUNDLE_PACKAGE_SLUG "audio-ir-room-plugin-pool" Slug expected by the bundle plugin.
BUNDLE_URI string literal Bundle-local URI for the WAV.
CDN_URI string literal HTTPS CDN URI for the WAV.
ENTRY_ID "pool-outdoor-swimming-pool" Entry id within the registry.
CHANNELS 1 Decoded channel count of the WAV.
SAMPLE_RATE 48000 Decoded sample rate of the WAV (Hz).

Implementation Notes

The manifest constants are NOT optional — the spec for this package requires them to equal the values measured by decoding files/outdoor-swimming-pool.wav at authoring time. If the bundled WAV is ever re-mastered, both CHANNELS and SAMPLE_RATE MUST be updated to match the new decode result, and the file-presence integration test SHOULD re-run as part of that change to assert the new constants.

buildFallbackUri([BUNDLE_URI, CDN_URI]) runs at module load. The ordering of candidates IS the failover policy — bundle wins when present, CDN wins when bundle reports BUNDLE_URI.NOT_FOUND. Reversing the array would silently flip that policy without a separate spec change, so the constants are kept verbose and explicit rather than inlined.

The license field intentionally says "All Rights Reserved — Suaveplan internal media library" because the source media library has no public license attached. Consumers SHOULD NOT redistribute the bundled WAV outside the Suaveplan distribution.