@playdrop/playdrop-cli 0.8.8 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,137 @@
1
+ export declare const MARKETING_SURFACES: readonly ["desktop", "mobile-landscape", "mobile-portrait"];
2
+ export declare const MARKETING_AUDIO_POLICIES: readonly ["music-and-sfx", "sfx-only", "silent"];
3
+ type MarketingSurface = typeof MARKETING_SURFACES[number];
4
+ type MarketingAudioPolicy = typeof MARKETING_AUDIO_POLICIES[number];
5
+ type MarketingPlatform = NodeJS.Platform;
6
+ type MarketingCaptureOptions = {
7
+ app?: string;
8
+ surfaces?: string;
9
+ duration?: string | number;
10
+ fps?: string | number;
11
+ audioPolicy?: string;
12
+ seed?: string;
13
+ outputDir?: string;
14
+ screenDevice?: string;
15
+ keepRaw?: boolean;
16
+ };
17
+ type ParsedMarketingCaptureOptions = {
18
+ targetArg?: string;
19
+ appName?: string;
20
+ surfaces: MarketingSurface[];
21
+ durationSeconds: number;
22
+ fps: number;
23
+ audioPolicy: MarketingAudioPolicy;
24
+ seed: string;
25
+ outputDir: string | null;
26
+ screenDevice: string | null;
27
+ keepRaw: boolean;
28
+ };
29
+ type CaptureRect = {
30
+ x: number;
31
+ y: number;
32
+ width: number;
33
+ height: number;
34
+ };
35
+ type MarketingOutputPaths = {
36
+ rootDir: string;
37
+ capturesDir: string;
38
+ playdropDir: string;
39
+ socialDir: string;
40
+ thumbnailsDir: string;
41
+ screenshotsDir: string;
42
+ manifestPath: string;
43
+ reportPath: string;
44
+ };
45
+ type MarketingFfmpegArgsInput = {
46
+ platform: MarketingPlatform;
47
+ fps: number;
48
+ durationSeconds: number;
49
+ inputDevice?: string | null;
50
+ crop: CaptureRect;
51
+ output: {
52
+ width: number;
53
+ height: number;
54
+ path: string;
55
+ };
56
+ };
57
+ type MarketingCaptureManifestInput = {
58
+ appName: string;
59
+ createdAt: string;
60
+ audioPolicy: MarketingAudioPolicy;
61
+ seed: string;
62
+ captureEngine: 'avfoundation' | 'gdigrab';
63
+ captures: MarketingCaptureManifest['captures'];
64
+ };
65
+ export type MarketingCaptureManifest = {
66
+ appName: string;
67
+ createdAt: string;
68
+ captureSource: 'playdrop-cli-local-screen';
69
+ captureEngine: 'avfoundation' | 'gdigrab';
70
+ audioPolicy: MarketingAudioPolicy;
71
+ seed: string;
72
+ captures: Array<{
73
+ surface: MarketingSurface;
74
+ path: string;
75
+ width: number;
76
+ height: number;
77
+ fps: number;
78
+ durationSeconds: number;
79
+ hasAudio: boolean;
80
+ audio: {
81
+ policy: MarketingAudioPolicy;
82
+ backgroundMusic: boolean;
83
+ sfx: boolean;
84
+ peakDb?: number | null;
85
+ integratedLufs?: number | null;
86
+ };
87
+ validation: {
88
+ previewFrameSimilarity: number;
89
+ };
90
+ }>;
91
+ };
92
+ type MarketingReport = {
93
+ appName: string;
94
+ createdAt: string;
95
+ status: 'passed' | 'failed';
96
+ durationSeconds: number;
97
+ gates: Array<{
98
+ id: string;
99
+ status: 'passed' | 'failed';
100
+ summary: string;
101
+ }>;
102
+ assetCounts: {
103
+ captures: number;
104
+ videos: number;
105
+ images: number;
106
+ listingArt: number;
107
+ };
108
+ captureValidation: {
109
+ surfaces: MarketingSurface[];
110
+ fps: number;
111
+ audioValidated: boolean;
112
+ excitingMomentValidated: boolean;
113
+ };
114
+ timings: {
115
+ captureSeconds: number;
116
+ assetRenderSeconds: number;
117
+ documentationSeconds: number;
118
+ };
119
+ warnings: string[];
120
+ };
121
+ export declare function parseMarketingCaptureOptions(targetArg: string | undefined, options?: MarketingCaptureOptions): ParsedMarketingCaptureOptions;
122
+ export declare function assertSupportedMarketingCapturePlatform(platform?: MarketingPlatform): void;
123
+ export declare function resolveMarketingOutputPaths(projectRoot: string, _appName: string, explicitOutputDir: string | null): MarketingOutputPaths;
124
+ export declare function validateMarketingPreviewConfig(rawApp: unknown): string[];
125
+ export declare function buildMarketingFfmpegArgs(input: MarketingFfmpegArgsInput): string[];
126
+ export declare function buildMarketingCaptureManifest(input: MarketingCaptureManifestInput): MarketingCaptureManifest;
127
+ export declare function createMarketingReport(input: {
128
+ appName: string;
129
+ startedAt: number;
130
+ createdAt: string;
131
+ surfaces: MarketingSurface[];
132
+ fps: number;
133
+ audioValidated: boolean;
134
+ }): MarketingReport;
135
+ export declare function marketingDoctor(targetArg: string | undefined, options?: MarketingCaptureOptions): Promise<void>;
136
+ export declare function marketingCapture(targetArg: string | undefined, options?: MarketingCaptureOptions): Promise<void>;
137
+ export {};