Manifest
Every manifest export of @appfunnel-dev/sdk, generated from the SDK source. Signatures and
descriptions are exact; for how these fit together, see the guides.
compileManifest
function · manifest/manifest.ts
compileManifest(input: CompileInput): FunnelManifestCompile a funnel’s spine into its declarative FunnelManifest IR.
CompileInput
interface · manifest/manifest.ts
export interface CompileInput {
funnel: FunnelDefinition
pages: { key: string; meta?: PageMeta }[]
offeringRefs?: string[]
checkoutRefs?: CheckoutUsageScan
}FunnelManifest
interface · manifest/manifest.ts
export interface FunnelManifest {
id: string
pages: ManifestPage[]
flow: { start: string | null; nodes: string[]; edges: ManifestEdge[] }
offerings: string[]
offeringSlots: OfferingSlot[]
offeringRefs?: string[]
checkout?: 'stripe' | 'paddle'
checkoutRefs?: CheckoutUsageScan
locales?: FunnelLocales
validation: ManifestValidation
}ManifestEdge
interface · manifest/manifest.ts
export interface ManifestEdge {
from: string
to: string
kind: 'branch' | 'linear'
condition?: EdgeCondition
variant?: true
}ManifestPage
interface · manifest/manifest.ts
export interface ManifestPage {
id: string
key: string
type: PageType
slug: string
index: number
group?: string
variantOf?: string
entryGuard?: EdgeCondition
dynamic?: boolean
}ManifestValidation
interface · manifest/manifest.ts
export interface ManifestValidation {
ok: boolean
deadEnds: string[]
unreachable: string[]
badTargets: { from: string; to: string }[]
missingEmailCapture: boolean
duplicateKeys: string[]
slugCollisions: { slug: string; pages: string[] }[]
orphanVariants: string[]
noReachableFinish: boolean
unknownOfferingRefs: string[]
unassignedSlots: string[]
}EdgeCondition
type · manifest/manifest.ts
export type EdgeCondition =
| { kind: 'declarative'; condition: Condition }
| { kind: 'predicate'; label?: string }Last updated on