Skip to Content

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): FunnelManifest

Compile 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