screenci 0.0.62 → 0.0.63
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.
- package/README.md +15 -4
- package/bin/screenci.js +2 -2
- package/dist/cli.d.ts +29 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +310 -207
- package/dist/cli.js.map +1 -1
- package/dist/docs/manifest.d.ts +51 -20
- package/dist/docs/manifest.d.ts.map +1 -1
- package/dist/docs/manifest.js +17 -6
- package/dist/docs/manifest.js.map +1 -1
- package/dist/e2e/instrument.e2e.js +11 -11
- package/dist/e2e/instrument.e2e.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/src/asset.d.ts +27 -0
- package/dist/src/asset.d.ts.map +1 -1
- package/dist/src/asset.js +46 -0
- package/dist/src/asset.js.map +1 -1
- package/dist/src/changeFocus.d.ts.map +1 -1
- package/dist/src/changeFocus.js +3 -3
- package/dist/src/changeFocus.js.map +1 -1
- package/dist/src/cue.d.ts +60 -13
- package/dist/src/cue.d.ts.map +1 -1
- package/dist/src/cue.js +153 -47
- package/dist/src/cue.js.map +1 -1
- package/dist/src/events.d.ts +56 -8
- package/dist/src/events.d.ts.map +1 -1
- package/dist/src/events.js +47 -1
- package/dist/src/events.js.map +1 -1
- package/dist/src/git.d.ts +15 -0
- package/dist/src/git.d.ts.map +1 -0
- package/dist/src/git.js +43 -0
- package/dist/src/git.js.map +1 -0
- package/dist/src/init.d.ts.map +1 -1
- package/dist/src/init.js +1 -4
- package/dist/src/init.js.map +1 -1
- package/dist/src/instrument.d.ts.map +1 -1
- package/dist/src/instrument.js +49 -125
- package/dist/src/instrument.js.map +1 -1
- package/dist/src/mouse.d.ts +1 -0
- package/dist/src/mouse.d.ts.map +1 -1
- package/dist/src/mouse.js +9 -3
- package/dist/src/mouse.js.map +1 -1
- package/dist/src/recording.d.ts +1 -1
- package/dist/src/recording.d.ts.map +1 -1
- package/dist/src/recordingData.d.ts +43 -1
- package/dist/src/recordingData.d.ts.map +1 -1
- package/dist/src/studio.d.ts +36 -0
- package/dist/src/studio.d.ts.map +1 -0
- package/dist/src/studio.js +39 -0
- package/dist/src/studio.js.map +1 -0
- package/dist/src/types.d.ts +141 -125
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +1 -0
- package/dist/src/types.js.map +1 -1
- package/dist/src/video.d.ts +2 -1
- package/dist/src/video.d.ts.map +1 -1
- package/dist/src/video.js.map +1 -1
- package/dist/src/voices.d.ts +3 -3
- package/dist/src/voices.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/skills/screenci/SKILL.md +4 -7
- package/skills/screenci/references/init.md +1 -2
- package/skills/screenci/references/record.md +2 -9
package/README.md
CHANGED
|
@@ -89,13 +89,15 @@ Playwright without starting the final recording and upload path.
|
|
|
89
89
|
## Record the final output
|
|
90
90
|
|
|
91
91
|
```bash
|
|
92
|
-
npx screenci login
|
|
93
92
|
npx screenci record
|
|
94
93
|
```
|
|
95
94
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
95
|
+
On the first run without `SCREENCI_SECRET`, `record` prints a one-time ScreenCI
|
|
96
|
+
link, waits for you to finish sign-in in the browser, saves the secret into the
|
|
97
|
+
project env file, and then continues. Pending auth state is cached in
|
|
98
|
+
`.screenci/link-session.json`, so rerunning `record` reuses the same link until
|
|
99
|
+
it expires or completes. Recorded artifacts still live in
|
|
100
|
+
`.screenci/<video-name>/`.
|
|
99
101
|
|
|
100
102
|
## Configure
|
|
101
103
|
|
|
@@ -123,6 +125,11 @@ export default defineConfig({
|
|
|
123
125
|
ScreenCI manages `testDir`, `testMatch`, and `retries` for you. Most other
|
|
124
126
|
Playwright config still passes through.
|
|
125
127
|
|
|
128
|
+
If you keep local runtime secrets in an env file, point `envFile` at it or use
|
|
129
|
+
the project `.env`. ScreenCI loads that file automatically for CLI commands.
|
|
130
|
+
That is also the right place for BYOK-style secrets such as
|
|
131
|
+
`ELEVENLABS_API_KEY`. ScreenCI does not store raw API keys from your env file.
|
|
132
|
+
|
|
126
133
|
## Authoring helpers
|
|
127
134
|
|
|
128
135
|
| Export | What it does |
|
|
@@ -149,3 +156,7 @@ Playwright config still passes through.
|
|
|
149
156
|
|
|
150
157
|
When `SCREENCI_SECRET` is configured, `screenci record` uploads the output to
|
|
151
158
|
ScreenCI for rendering, narration generation, and hosted delivery.
|
|
159
|
+
|
|
160
|
+
For narration authoring, keep cues short and usually one sentence at a time.
|
|
161
|
+
That makes overlap timing easier to manage and should reduce TTS regeneration
|
|
162
|
+
cost when only one line changes.
|
package/bin/screenci.js
CHANGED
package/dist/cli.d.ts
CHANGED
|
@@ -17,7 +17,32 @@ type PreparedUploadAsset = {
|
|
|
17
17
|
fileBuffer?: Buffer;
|
|
18
18
|
contentType?: string;
|
|
19
19
|
};
|
|
20
|
+
export type StudioAppliedChange = {
|
|
21
|
+
kind?: string;
|
|
22
|
+
label?: string;
|
|
23
|
+
cue?: string;
|
|
24
|
+
language?: string;
|
|
25
|
+
from?: string;
|
|
26
|
+
to?: string;
|
|
27
|
+
};
|
|
28
|
+
export type UploadStudioInfo = {
|
|
29
|
+
held: true;
|
|
30
|
+
} | {
|
|
31
|
+
appliedChanges: StudioAppliedChange[];
|
|
32
|
+
};
|
|
33
|
+
export type StudioUploadNotice = {
|
|
34
|
+
videoName: string;
|
|
35
|
+
videoId: string | null;
|
|
36
|
+
studio: UploadStudioInfo;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* One-line summary of Studio overrides for CLI output, e.g.
|
|
40
|
+
* `recording.size (1 → 0.8), narration "intro" (en)`.
|
|
41
|
+
*/
|
|
42
|
+
export declare function formatStudioChangeSummary(changes: StudioAppliedChange[]): string;
|
|
43
|
+
export declare function formatStudioUrl(appUrl: string, projectId: string, videoId: string): string;
|
|
20
44
|
export declare function attachUploadAbortStdinListener(input: Pick<NodeJS.ReadStream, 'on' | 'off' | 'pause'>, onAbort: (signal: NodeJS.Signals) => void): () => void;
|
|
45
|
+
export declare function collectUploadAssets(data: RecordingData, configDir: string): Promise<PreparedUploadAsset[]>;
|
|
21
46
|
export declare function stripVoicePath(voice: VoiceKey | RecordingCustomVoiceRef): VoiceKey | RecordingCustomVoiceRef;
|
|
22
47
|
export declare function annotateRecordingDataWithAssetHashes(data: RecordingData, assets: PreparedUploadAsset[]): RecordingData;
|
|
23
48
|
export declare function formatUploadStartFailureMessage(videoName: string, status: number, responseText: string, secret: string): string;
|
|
@@ -25,20 +50,24 @@ export declare function formatFailedVideoMessage(videoName: string, message: str
|
|
|
25
50
|
export declare function printUploadStartFailureMessage(videoName: string, status: number, responseText: string, secret: string): void;
|
|
26
51
|
export declare function uploadRecordings(screenciDir: string, projectName: string, apiUrl: string, secret: string, specificEntry?: string, verbose?: boolean): Promise<{
|
|
27
52
|
projectId: string | null;
|
|
53
|
+
recordId: string | null;
|
|
28
54
|
hadFailures: boolean;
|
|
29
55
|
failedVideoNames: string[];
|
|
30
56
|
failedVideoMessages: Array<{
|
|
31
57
|
videoName: string;
|
|
32
58
|
message: string;
|
|
33
59
|
}>;
|
|
60
|
+
studioNotices: StudioUploadNotice[];
|
|
34
61
|
}>;
|
|
35
62
|
export declare function getDevBackendUrl(): string;
|
|
36
63
|
export declare function getDevFrontendUrl(): string;
|
|
64
|
+
export declare function getCliLinkSessionApiUrl(): string;
|
|
37
65
|
export declare function extractConfigStringLiteral(configSource: string, property: 'projectName' | 'envFile'): string | undefined;
|
|
38
66
|
export declare function extractRecordUploadPolicyLiteral(configSource: string): RecordUploadPolicy | undefined;
|
|
39
67
|
export declare function extractMockRecordLiteral(configSource: string): boolean | undefined;
|
|
40
68
|
export declare function getConfigModuleSpecifier(resolvedConfigPath: string): string;
|
|
41
69
|
export declare function ensureScreenciSecret(resolvedConfigPath?: string): Promise<string | undefined>;
|
|
42
70
|
export declare function main(): Promise<void>;
|
|
71
|
+
export declare function logCliError(error: unknown): void;
|
|
43
72
|
export {};
|
|
44
73
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
|