Teleforge API Reference - v0.1.0
    Preparing search index...

    Variable manifestSchemaConst

    manifestSchema: ZodEffects<
        ZodObject<
            {
                $schema: ZodOptional<ZodString>;
                bot: ZodObject<
                    {
                        commands: ZodOptional<
                            ZodArray<
                                ZodObject<
                                    {
                                        command: ZodString;
                                        description: ZodOptional<ZodString>;
                                        handler: ZodOptional<ZodString>;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    { command: string; description?: string; handler?: string },
                                    { command: string; description?: string; handler?: string },
                                >,
                                "many",
                            >,
                        >;
                        tokenEnv: ZodDefault<ZodString>;
                        username: ZodString;
                        webhook: ZodObject<
                            { path: ZodString; secretEnv: ZodString },
                            "strict",
                            ZodTypeAny,
                            { path: string; secretEnv: string },
                            { path: string; secretEnv: string },
                        >;
                    },
                    "strict",
                    ZodTypeAny,
                    {
                        commands?: {
                            command: string;
                            description?: string;
                            handler?: string;
                        }[];
                        tokenEnv: string;
                        username: string;
                        webhook: { path: string; secretEnv: string };
                    },
                    {
                        commands?: {
                            command: string;
                            description?: string;
                            handler?: string;
                        }[];
                        tokenEnv?: string;
                        username: string;
                        webhook: { path: string; secretEnv: string };
                    },
                >;
                build: ZodOptional<
                    ZodObject<
                        {
                            outDir: ZodOptional<ZodString>;
                            publicDir: ZodOptional<ZodString>;
                        },
                        "strict",
                        ZodTypeAny,
                        { outDir?: string; publicDir?: string },
                        { outDir?: string; publicDir?: string },
                    >,
                >;
                dev: ZodOptional<
                    ZodObject<
                        {
                            httpsPort: ZodOptional<ZodNumber>;
                            port: ZodOptional<ZodNumber>;
                            tunnel: ZodOptional<ZodBoolean>;
                        },
                        "strict",
                        ZodTypeAny,
                        { httpsPort?: number; port?: number; tunnel?: boolean },
                        { httpsPort?: number; port?: number; tunnel?: boolean },
                    >,
                >;
                features: ZodOptional<
                    ZodObject<
                        {
                            backButton: ZodOptional<ZodBoolean>;
                            cloudStorage: ZodOptional<ZodBoolean>;
                            hapticFeedback: ZodOptional<ZodBoolean>;
                            payments: ZodOptional<ZodBoolean>;
                            settingsButton: ZodOptional<ZodBoolean>;
                        },
                        "strict",
                        ZodTypeAny,
                        {
                            backButton?: boolean;
                            cloudStorage?: boolean;
                            hapticFeedback?: boolean;
                            payments?: boolean;
                            settingsButton?: boolean;
                        },
                        {
                            backButton?: boolean;
                            cloudStorage?: boolean;
                            hapticFeedback?: boolean;
                            payments?: boolean;
                            settingsButton?: boolean;
                        },
                    >,
                >;
                id: ZodString;
                miniApp: ZodEffects<
                    ZodObject<
                        {
                            capabilities: ZodArray<ZodString, "many">;
                            defaultMode: ZodEnum<["inline", "compact", "fullscreen"]>;
                            entryPoint: ZodString;
                            launchModes: ZodArray<
                                ZodEnum<["inline", "compact", "fullscreen"]>,
                                "many",
                            >;
                            url: ZodOptional<ZodString>;
                        },
                        "strict",
                        ZodTypeAny,
                        {
                            capabilities: string[];
                            defaultMode: "inline"
                            | "compact"
                            | "fullscreen";
                            entryPoint: string;
                            launchModes: ("inline" | "compact" | "fullscreen")[];
                            url?: string;
                        },
                        {
                            capabilities: string[];
                            defaultMode: "inline"
                            | "compact"
                            | "fullscreen";
                            entryPoint: string;
                            launchModes: ("inline" | "compact" | "fullscreen")[];
                            url?: string;
                        },
                    >,
                    {
                        capabilities: string[];
                        defaultMode: "inline"
                        | "compact"
                        | "fullscreen";
                        entryPoint: string;
                        launchModes: ("inline" | "compact" | "fullscreen")[];
                        url?: string;
                    },
                    {
                        capabilities: string[];
                        defaultMode: "inline"
                        | "compact"
                        | "fullscreen";
                        entryPoint: string;
                        launchModes: ("inline" | "compact" | "fullscreen")[];
                        url?: string;
                    },
                >;
                name: ZodString;
                permissions: ZodOptional<
                    ZodArray<
                        ZodEffects<
                            ZodObject<
                                {
                                    capability: ZodOptional<ZodString>;
                                    description: ZodOptional<ZodString>;
                                    scope: ZodOptional<ZodString>;
                                },
                                "strict",
                                ZodTypeAny,
                                { capability?: string; description?: string; scope?: string },
                                { capability?: string; description?: string; scope?: string },
                            >,
                            { capability?: string; description?: string; scope?: string },
                            { capability?: string; description?: string; scope?: string },
                        >,
                        "many",
                    >,
                >;
                routes: ZodArray<
                    ZodObject<
                        {
                            capabilities: ZodOptional<
                                ZodObject<
                                    {
                                        auth: ZodOptional<ZodBoolean>;
                                        launchMode: ZodOptional<ZodEnum<(...)>>;
                                        payments: ZodOptional<ZodBoolean>;
                                    },
                                    "strict",
                                    ZodTypeAny,
                                    {
                                        auth?: boolean;
                                        launchMode?: "inline"
                                        | "compact"
                                        | "fullscreen";
                                        payments?: boolean;
                                    },
                                    {
                                        auth?: boolean;
                                        launchMode?: "inline"
                                        | "compact"
                                        | "fullscreen";
                                        payments?: boolean;
                                    },
                                >,
                            >;
                            component: ZodOptional<ZodString>;
                            coordination: ZodOptional<
                                ZodObject<
                                    {
                                        entryPoints: ZodArray<ZodUnion<(...)>, "many">;
                                        flow: ZodOptional<ZodObject<(...), (...), (...), (...), (...)>>;
                                        returnToChat: ZodOptional<
                                            ZodObject<(...), (...), (...), (...), (...)>,
                                        >;
                                    },
                                    "strict",
                                    ZodTypeAny,
                                    {
                                        entryPoints: ((...) | (...) | (...) | (...))[];
                                        flow?: { entryStep: ...; flowId: ...; requestWriteAccess?: ... };
                                        returnToChat?: { stayInChat?: ...; text: ... };
                                    },
                                    {
                                        entryPoints: ((...) | (...) | (...) | (...))[];
                                        flow?: { entryStep: ...; flowId: ...; requestWriteAccess?: ... };
                                        returnToChat?: { stayInChat?: ...; text: ... };
                                    },
                                >,
                            >;
                            description: ZodOptional<ZodString>;
                            guards: ZodOptional<ZodArray<ZodString, "many">>;
                            launchModes: ZodOptional<
                                ZodArray<ZodEnum<["inline", "compact", "fullscreen"]>, "many">,
                            >;
                            meta: ZodOptional<
                                ZodObject<
                                    {
                                        description: ZodOptional<ZodString>;
                                        title: ZodOptional<ZodString>;
                                    },
                                    "strict",
                                    ZodTypeAny,
                                    { description?: string; title?: string },
                                    { description?: string; title?: string },
                                >,
                            >;
                            path: ZodString;
                            title: ZodOptional<ZodString>;
                            ui: ZodOptional<
                                ZodObject<
                                    {
                                        header: ZodOptional<
                                            ZodObject<(...), (...), (...), (...), (...)>,
                                        >;
                                        mainButton: ZodOptional<
                                            ZodObject<(...), (...), (...), (...), (...)>,
                                        >;
                                    },
                                    "strict",
                                    ZodTypeAny,
                                    {
                                        header?: { hideBackButton?: ...; title?: ... };
                                        mainButton?: { text: ...; visible?: ... };
                                    },
                                    {
                                        header?: { hideBackButton?: ...; title?: ... };
                                        mainButton?: { text: ...; visible?: ... };
                                    },
                                >,
                            >;
                        },
                        "strict",
                        ZodTypeAny,
                        {
                            capabilities?: {
                                auth?: boolean;
                                launchMode?: "inline"
                                | "compact"
                                | "fullscreen";
                                payments?: boolean;
                            };
                            component?: string;
                            coordination?: {
                                entryPoints: (
                                    | { startParam?: ...; type: ... }
                                    | { command: ...; type: ... }
                                    | { text: ...; type: ... }
                                    | { type: ...; url: ... }
                                )[];
                                flow?: {
                                    entryStep: string;
                                    flowId: string;
                                    requestWriteAccess?: (...) | (...) | (...);
                                };
                                returnToChat?: { stayInChat?: (...)
                                | (...)
                                | (...); text: string };
                            };
                            description?: string;
                            guards?: string[];
                            launchModes?: ("inline" | "compact" | "fullscreen")[];
                            meta?: { description?: string; title?: string };
                            path: string;
                            title?: string;
                            ui?: {
                                header?: {
                                    hideBackButton?: (...) | (...) | (...);
                                    title?: (...) | (...);
                                };
                                mainButton?: { text: string; visible?: (...)
                                | (...)
                                | (...) };
                            };
                        },
                        {
                            capabilities?: {
                                auth?: boolean;
                                launchMode?: "inline"
                                | "compact"
                                | "fullscreen";
                                payments?: boolean;
                            };
                            component?: string;
                            coordination?: {
                                entryPoints: (
                                    | { startParam?: ...; type: ... }
                                    | { command: ...; type: ... }
                                    | { text: ...; type: ... }
                                    | { type: ...; url: ... }
                                )[];
                                flow?: {
                                    entryStep: string;
                                    flowId: string;
                                    requestWriteAccess?: (...) | (...) | (...);
                                };
                                returnToChat?: { stayInChat?: (...)
                                | (...)
                                | (...); text: string };
                            };
                            description?: string;
                            guards?: string[];
                            launchModes?: ("inline" | "compact" | "fullscreen")[];
                            meta?: { description?: string; title?: string };
                            path: string;
                            title?: string;
                            ui?: {
                                header?: {
                                    hideBackButton?: (...) | (...) | (...);
                                    title?: (...) | (...);
                                };
                                mainButton?: { text: string; visible?: (...)
                                | (...)
                                | (...) };
                            };
                        },
                    >,
                    "many",
                >;
                runtime: ZodObject<
                    {
                        apiPrefix: ZodOptional<ZodString>;
                        apiRoutes: ZodOptional<ZodString>;
                        build: ZodOptional<
                            ZodObject<
                                {
                                    basePath: ZodOptional<ZodString>;
                                    outDir: ZodOptional<ZodString>;
                                },
                                "strict",
                                ZodTypeAny,
                                { basePath?: string; outDir?: string },
                                { basePath?: string; outDir?: string },
                            >,
                        >;
                        mode: ZodEnum<["spa", "bff"]>;
                        ssr: ZodOptional<ZodBoolean>;
                        webFramework: ZodEnum<["vite", "nextjs", "custom"]>;
                    },
                    "strict",
                    ZodTypeAny,
                    {
                        apiPrefix?: string;
                        apiRoutes?: string;
                        build?: { basePath?: string; outDir?: string };
                        mode: "spa" | "bff";
                        ssr?: boolean;
                        webFramework: "vite" | "nextjs" | "custom";
                    },
                    {
                        apiPrefix?: string;
                        apiRoutes?: string;
                        build?: { basePath?: string; outDir?: string };
                        mode: "spa" | "bff";
                        ssr?: boolean;
                        webFramework: "vite" | "nextjs" | "custom";
                    },
                >;
                security: ZodOptional<
                    ZodObject<
                        {
                            allowedOrigins: ZodOptional<ZodArray<ZodString, "many">>;
                            validateInitData: ZodOptional<ZodBoolean>;
                            webhookSecret: ZodOptional<ZodString>;
                        },
                        "strict",
                        ZodTypeAny,
                        {
                            allowedOrigins?: string[];
                            validateInitData?: boolean;
                            webhookSecret?: string;
                        },
                        {
                            allowedOrigins?: string[];
                            validateInitData?: boolean;
                            webhookSecret?: string;
                        },
                    >,
                >;
                version: ZodString;
            },
            "strict",
            ZodTypeAny,
            {
                $schema?: string;
                bot: {
                    commands?: {
                        command: string;
                        description?: string;
                        handler?: string;
                    }[];
                    tokenEnv: string;
                    username: string;
                    webhook: { path: string; secretEnv: string };
                };
                build?: { outDir?: string; publicDir?: string };
                dev?: { httpsPort?: number; port?: number; tunnel?: boolean };
                features?: {
                    backButton?: boolean;
                    cloudStorage?: boolean;
                    hapticFeedback?: boolean;
                    payments?: boolean;
                    settingsButton?: boolean;
                };
                id: string;
                miniApp: {
                    capabilities: string[];
                    defaultMode: "inline"
                    | "compact"
                    | "fullscreen";
                    entryPoint: string;
                    launchModes: ("inline" | "compact" | "fullscreen")[];
                    url?: string;
                };
                name: string;
                permissions?: {
                    capability?: string;
                    description?: string;
                    scope?: string;
                }[];
                routes: {
                    capabilities?: {
                        auth?: boolean;
                        launchMode?: "inline"
                        | "compact"
                        | "fullscreen";
                        payments?: boolean;
                    };
                    component?: string;
                    coordination?: {
                        entryPoints: (
                            | { startParam?: (...)
                            | (...); type: "miniapp" }
                            | { command: string; type: "bot_command" }
                            | { text: string; type: "bot_button" }
                            | { type: "deep_link"; url: string }
                        )[];
                        flow?: {
                            entryStep: string;
                            flowId: string;
                            requestWriteAccess?: boolean;
                        };
                        returnToChat?: { stayInChat?: boolean; text: string };
                    };
                    description?: string;
                    guards?: string[];
                    launchModes?: ("inline" | "compact" | "fullscreen")[];
                    meta?: { description?: string; title?: string };
                    path: string;
                    title?: string;
                    ui?: {
                        header?: { hideBackButton?: boolean; title?: string };
                        mainButton?: { text: string; visible?: boolean };
                    };
                }[];
                runtime: {
                    apiPrefix?: string;
                    apiRoutes?: string;
                    build?: { basePath?: string; outDir?: string };
                    mode: "spa" | "bff";
                    ssr?: boolean;
                    webFramework: "vite" | "nextjs" | "custom";
                };
                security?: {
                    allowedOrigins?: string[];
                    validateInitData?: boolean;
                    webhookSecret?: string;
                };
                version: string;
            },
            {
                $schema?: string;
                bot: {
                    commands?: {
                        command: string;
                        description?: string;
                        handler?: string;
                    }[];
                    tokenEnv?: string;
                    username: string;
                    webhook: { path: string; secretEnv: string };
                };
                build?: { outDir?: string; publicDir?: string };
                dev?: { httpsPort?: number; port?: number; tunnel?: boolean };
                features?: {
                    backButton?: boolean;
                    cloudStorage?: boolean;
                    hapticFeedback?: boolean;
                    payments?: boolean;
                    settingsButton?: boolean;
                };
                id: string;
                miniApp: {
                    capabilities: string[];
                    defaultMode: "inline"
                    | "compact"
                    | "fullscreen";
                    entryPoint: string;
                    launchModes: ("inline" | "compact" | "fullscreen")[];
                    url?: string;
                };
                name: string;
                permissions?: {
                    capability?: string;
                    description?: string;
                    scope?: string;
                }[];
                routes: {
                    capabilities?: {
                        auth?: boolean;
                        launchMode?: "inline"
                        | "compact"
                        | "fullscreen";
                        payments?: boolean;
                    };
                    component?: string;
                    coordination?: {
                        entryPoints: (
                            | { startParam?: (...)
                            | (...); type: "miniapp" }
                            | { command: string; type: "bot_command" }
                            | { text: string; type: "bot_button" }
                            | { type: "deep_link"; url: string }
                        )[];
                        flow?: {
                            entryStep: string;
                            flowId: string;
                            requestWriteAccess?: boolean;
                        };
                        returnToChat?: { stayInChat?: boolean; text: string };
                    };
                    description?: string;
                    guards?: string[];
                    launchModes?: ("inline" | "compact" | "fullscreen")[];
                    meta?: { description?: string; title?: string };
                    path: string;
                    title?: string;
                    ui?: {
                        header?: { hideBackButton?: boolean; title?: string };
                        mainButton?: { text: string; visible?: boolean };
                    };
                }[];
                runtime: {
                    apiPrefix?: string;
                    apiRoutes?: string;
                    build?: { basePath?: string; outDir?: string };
                    mode: "spa" | "bff";
                    ssr?: boolean;
                    webFramework: "vite" | "nextjs" | "custom";
                };
                security?: {
                    allowedOrigins?: string[];
                    validateInitData?: boolean;
                    webhookSecret?: string;
                };
                version: string;
            },
        >,
        {
            $schema?: string;
            bot: {
                commands?: { command: string; description?: string; handler?: string }[];
                tokenEnv: string;
                username: string;
                webhook: { path: string; secretEnv: string };
            };
            build?: { outDir?: string; publicDir?: string };
            dev?: { httpsPort?: number; port?: number; tunnel?: boolean };
            features?: {
                backButton?: boolean;
                cloudStorage?: boolean;
                hapticFeedback?: boolean;
                payments?: boolean;
                settingsButton?: boolean;
            };
            id: string;
            miniApp: {
                capabilities: string[];
                defaultMode: "inline"
                | "compact"
                | "fullscreen";
                entryPoint: string;
                launchModes: ("inline" | "compact" | "fullscreen")[];
                url?: string;
            };
            name: string;
            permissions?: {
                capability?: string;
                description?: string;
                scope?: string;
            }[];
            routes: {
                capabilities?: {
                    auth?: boolean;
                    launchMode?: "inline"
                    | "compact"
                    | "fullscreen";
                    payments?: boolean;
                };
                component?: string;
                coordination?: {
                    entryPoints: (
                        | { startParam?: string; type: "miniapp" }
                        | { command: string; type: "bot_command" }
                        | { text: string; type: "bot_button" }
                        | { type: "deep_link"; url: string }
                    )[];
                    flow?: {
                        entryStep: string;
                        flowId: string;
                        requestWriteAccess?: boolean;
                    };
                    returnToChat?: { stayInChat?: boolean; text: string };
                };
                description?: string;
                guards?: string[];
                launchModes?: ("inline" | "compact" | "fullscreen")[];
                meta?: { description?: string; title?: string };
                path: string;
                title?: string;
                ui?: {
                    header?: { hideBackButton?: boolean; title?: string };
                    mainButton?: { text: string; visible?: boolean };
                };
            }[];
            runtime: {
                apiPrefix?: string;
                apiRoutes?: string;
                build?: { basePath?: string; outDir?: string };
                mode: "spa" | "bff";
                ssr?: boolean;
                webFramework: "vite" | "nextjs" | "custom";
            };
            security?: {
                allowedOrigins?: string[];
                validateInitData?: boolean;
                webhookSecret?: string;
            };
            version: string;
        },
        {
            $schema?: string;
            bot: {
                commands?: { command: string; description?: string; handler?: string }[];
                tokenEnv?: string;
                username: string;
                webhook: { path: string; secretEnv: string };
            };
            build?: { outDir?: string; publicDir?: string };
            dev?: { httpsPort?: number; port?: number; tunnel?: boolean };
            features?: {
                backButton?: boolean;
                cloudStorage?: boolean;
                hapticFeedback?: boolean;
                payments?: boolean;
                settingsButton?: boolean;
            };
            id: string;
            miniApp: {
                capabilities: string[];
                defaultMode: "inline"
                | "compact"
                | "fullscreen";
                entryPoint: string;
                launchModes: ("inline" | "compact" | "fullscreen")[];
                url?: string;
            };
            name: string;
            permissions?: {
                capability?: string;
                description?: string;
                scope?: string;
            }[];
            routes: {
                capabilities?: {
                    auth?: boolean;
                    launchMode?: "inline"
                    | "compact"
                    | "fullscreen";
                    payments?: boolean;
                };
                component?: string;
                coordination?: {
                    entryPoints: (
                        | { startParam?: string; type: "miniapp" }
                        | { command: string; type: "bot_command" }
                        | { text: string; type: "bot_button" }
                        | { type: "deep_link"; url: string }
                    )[];
                    flow?: {
                        entryStep: string;
                        flowId: string;
                        requestWriteAccess?: boolean;
                    };
                    returnToChat?: { stayInChat?: boolean; text: string };
                };
                description?: string;
                guards?: string[];
                launchModes?: ("inline" | "compact" | "fullscreen")[];
                meta?: { description?: string; title?: string };
                path: string;
                title?: string;
                ui?: {
                    header?: { hideBackButton?: boolean; title?: string };
                    mainButton?: { text: string; visible?: boolean };
                };
            }[];
            runtime: {
                apiPrefix?: string;
                apiRoutes?: string;
                build?: { basePath?: string; outDir?: string };
                mode: "spa" | "bff";
                ssr?: boolean;
                webFramework: "vite" | "nextjs" | "custom";
            };
            security?: {
                allowedOrigins?: string[];
                validateInitData?: boolean;
                webhookSecret?: string;
            };
            version: string;
        },
    > = ...