- JWT auth with bcrypt password hashing, cookie sessions, forgot/reset password - Per-user encrypted credential storage (Redis + AES-256-GCM) for all 9 platforms - Usage tracking with monthly limits per plan (free/starter/growth/enterprise) - Invoice generation and retrieval (admin + user views) - Admin panel with customer listing (role-based access) - Web app UI at app.squaremcp.com — login, dashboard, connections, usage, invoices - Unified auth middleware: API key, OAuth Bearer, and JWT cookie support - Facebook Graph API fixes: published_posts endpoint, photo/video post support - TikTok sandbox compliance: SELF_ONLY privacy for unaudited apps - URL verification files for TikTok app review
82 lines
1.8 KiB
TypeScript
82 lines
1.8 KiB
TypeScript
import type { ReactNode } from "react";
|
|
import { AbsoluteFill, Sequence, useVideoConfig } from "remotion";
|
|
import { TikTokBackground } from "./scenes/tiktok/TikTokBackground";
|
|
import { TikTokCTA } from "./scenes/tiktok/TikTokCTA";
|
|
import { TikTokDemo } from "./scenes/tiktok/TikTokDemo";
|
|
import { TikTokHook } from "./scenes/tiktok/TikTokHook";
|
|
import { TikTokProblem } from "./scenes/tiktok/TikTokProblem";
|
|
import { TikTokProof } from "./scenes/tiktok/TikTokProof";
|
|
|
|
const TikTokShell = ({ children }: { children: ReactNode }) => {
|
|
return (
|
|
<AbsoluteFill>
|
|
<TikTokBackground />
|
|
{children}
|
|
</AbsoluteFill>
|
|
);
|
|
};
|
|
|
|
export const SquareMCPTikTokFull = () => {
|
|
const { fps } = useVideoConfig();
|
|
|
|
return (
|
|
<TikTokShell>
|
|
<Sequence durationInFrames={3 * fps}>
|
|
<TikTokHook />
|
|
</Sequence>
|
|
<Sequence from={3 * fps} durationInFrames={5 * fps}>
|
|
<TikTokProblem />
|
|
</Sequence>
|
|
<Sequence from={8 * fps} durationInFrames={12 * fps}>
|
|
<TikTokDemo />
|
|
</Sequence>
|
|
<Sequence from={20 * fps} durationInFrames={5 * fps}>
|
|
<TikTokProof />
|
|
</Sequence>
|
|
<Sequence from={25 * fps} durationInFrames={5 * fps}>
|
|
<TikTokCTA />
|
|
</Sequence>
|
|
</TikTokShell>
|
|
);
|
|
};
|
|
|
|
export const SquareMCPTikTokHook = () => {
|
|
return (
|
|
<TikTokShell>
|
|
<TikTokHook />
|
|
</TikTokShell>
|
|
);
|
|
};
|
|
|
|
export const SquareMCPTikTokProblem = () => {
|
|
return (
|
|
<TikTokShell>
|
|
<TikTokProblem />
|
|
</TikTokShell>
|
|
);
|
|
};
|
|
|
|
export const SquareMCPTikTokDemo = () => {
|
|
return (
|
|
<TikTokShell>
|
|
<TikTokDemo />
|
|
</TikTokShell>
|
|
);
|
|
};
|
|
|
|
export const SquareMCPTikTokProof = () => {
|
|
return (
|
|
<TikTokShell>
|
|
<TikTokProof />
|
|
</TikTokShell>
|
|
);
|
|
};
|
|
|
|
export const SquareMCPTikTokCTA = () => {
|
|
return (
|
|
<TikTokShell>
|
|
<TikTokCTA />
|
|
</TikTokShell>
|
|
);
|
|
};
|