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
IrManifestSchemaat module load — any drift in the schema fails the build beforedist/is emitted. BUNDLE_PACKAGE_SLUG,BUNDLE_URI,CDN_URI,ENTRY_ID,CHANNELS,SAMPLE_RATEexported as namedconstliterals so consumers can refer to them without re-deriving frommanifest.entries[0].- Frozen at runtime (
IrManifestSchemaappliesObject.freezeto 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.