rollberry 0.1.0 → 0.1.3

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/CHANGELOG.md ADDED
@@ -0,0 +1,51 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on Keep a Changelog and the project stays on the `v0.x.x`
6
+ line until the CLI surface and capture behavior settle.
7
+
8
+ ## [0.1.3] - 2026-03-15
9
+
10
+ ### Changed
11
+
12
+ - README now includes a dedicated `Using With npx` section with version-pinned
13
+ examples and common usage patterns.
14
+
15
+ ## [0.1.2] - 2026-03-15
16
+
17
+ ### Added
18
+
19
+ - `SECURITY.md`, `CONTRIBUTING.md`, GitHub issue forms, and a pull request
20
+ template.
21
+ - Contact guidance pointing users to https://co-r-e.com/contact where private
22
+ contact is required.
23
+
24
+ ### Changed
25
+
26
+ - MIT copyright holder is now `CORe Inc.`.
27
+ - Branch protection policy now also covers `develop` and `release/*`, with
28
+ `mokuwaki` as the only bypass user.
29
+
30
+ ## [0.1.1] - 2026-03-15
31
+
32
+ ### Added
33
+
34
+ - MIT license metadata and `LICENSE` file for open source distribution.
35
+ - GitHub Actions trusted publishing workflow for npm releases on `v*` tags.
36
+ - Maintainer release process documentation for `npx rollberry ...` distribution.
37
+
38
+ ### Changed
39
+
40
+ - README rewritten around real `npx` usage, common capture examples, and
41
+ operational troubleshooting.
42
+ - Package metadata now includes repository, homepage, bug tracker, and keywords.
43
+
44
+ ## [0.1.0] - 2026-03-15
45
+
46
+ ### Added
47
+
48
+ - Initial public CLI release for smooth top-to-bottom page capture.
49
+ - `localhost`, `127.0.0.1`, and self-signed `https://localhost` support.
50
+ - Sidecar manifest and JSONL log output.
51
+ - Regression suite runner and fixture-backed integration tests.
@@ -0,0 +1,53 @@
1
+ # Contributing to Rollberry
2
+
3
+ Thank you for contributing to Rollberry.
4
+
5
+ ## Before You Start
6
+
7
+ - Open an issue for bugs, feature requests, or larger changes before starting
8
+ implementation.
9
+ - For security issues, do not open a public issue. Use
10
+ https://co-r-e.com/contact instead.
11
+ - By contributing, you agree that your changes will be distributed under the
12
+ MIT license used by this repository.
13
+
14
+ ## Development Setup
15
+
16
+ ```bash
17
+ corepack pnpm install
18
+ corepack pnpm exec playwright install chromium
19
+ corepack pnpm check
20
+ corepack pnpm test
21
+ ```
22
+
23
+ ## Pull Request Expectations
24
+
25
+ - Keep changes focused and avoid mixing unrelated work.
26
+ - Update docs when CLI behavior or release/operational workflow changes.
27
+ - Add or update tests when behavior changes.
28
+ - Keep `README.md`, `CHANGELOG.md`, and sample config files aligned with the
29
+ code when relevant.
30
+
31
+ ## Branch Protection and Reviews
32
+
33
+ The protected branches are:
34
+
35
+ - `main`
36
+ - `develop`
37
+ - `release/*`
38
+
39
+ For contributors other than `mokuwaki`:
40
+
41
+ - direct push is not allowed on protected branches
42
+ - merge requires at least one approval
43
+ - the latest push must still be approved by someone else
44
+
45
+ `mokuwaki` is the only configured bypass user for these protected branches.
46
+
47
+ ## Release Notes
48
+
49
+ Rollberry remains on the `v0.x.x` line for now. Release prep should update:
50
+
51
+ - `package.json`
52
+ - `CHANGELOG.md`
53
+ - any user-facing docs affected by the release
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CORe Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,21 +1,19 @@
1
1
  # Rollberry
2
2
 
3
- Rollberry は、指定した Web ページを上から下まで滑らかにスクロールさせた MP4 を生成する CLI です。`localhost`、`127.0.0.1`、`[::1]` の開発中 URL にも対応します。
3
+ Rollberry is an MIT-licensed open source CLI for turning a web page into a
4
+ smooth top-to-bottom scroll video. It is built for real browser capture, works
5
+ with normal URLs and `localhost`, and is published for direct `npx` usage.
4
6
 
5
- ## Requirements
7
+ Maintained by CORe Inc.
6
8
 
7
- - Node.js `24.12.0+`
8
- - `ffmpeg` / `ffprobe`
9
- - macOS を優先サポート
9
+ ## Quick Start
10
10
 
11
- ## Setup
11
+ Requirements:
12
12
 
13
- ```bash
14
- corepack pnpm install
15
- corepack pnpm exec playwright install chromium
16
- ```
13
+ - Node.js `24.12.0+`
14
+ - `ffmpeg` and `ffprobe` available on `PATH`
17
15
 
18
- ## Usage
16
+ Install nothing globally. Run it directly:
19
17
 
20
18
  ```bash
21
19
  npx rollberry capture http://localhost:3000 \
@@ -27,55 +25,185 @@ npx rollberry capture http://localhost:3000 \
27
25
  --hide-selector '#cookie-banner'
28
26
  ```
29
27
 
30
- リポジトリ内で開発実行する場合は次です。
28
+ On the first run, if Playwright Chromium is missing, Rollberry installs it
29
+ automatically. `ffmpeg` is not auto-installed.
30
+
31
+ ## Using With npx
32
+
33
+ The normal way to run Rollberry is `npx`.
34
+
35
+ Use the latest published version:
31
36
 
32
37
  ```bash
33
- corepack pnpm dev -- capture http://localhost:3000 \
34
- --out ./artifacts/demo.mp4 \
35
- --viewport 1440x900 \
36
- --fps 60 \
37
- --duration auto \
38
- --wait-for selector:body \
39
- --hide-selector '#cookie-banner'
38
+ npx rollberry capture http://localhost:3000 --out ./artifacts/demo.mp4
39
+ ```
40
+
41
+ Pin a specific version:
42
+
43
+ ```bash
44
+ npx rollberry@0.1.2 capture http://localhost:3000 --out ./artifacts/demo.mp4
40
45
  ```
41
46
 
42
- ビルド後は次でも実行できます。
47
+ Capture a local development server:
43
48
 
44
49
  ```bash
45
- node dist/cli.js capture https://example.com --out ./artifacts/example.mp4
50
+ npx rollberry capture http://localhost:3000 \
51
+ --out ./artifacts/local.mp4 \
52
+ --wait-for selector:body
46
53
  ```
47
54
 
48
- 初回の `npx rollberry ...` 実行時に Chromium が未導入なら、Rollberry が Playwright Chromium を自動インストールします。`ffmpeg` / `ffprobe` は自動導入しないので、事前に PATH 上で使える必要があります。
55
+ Capture a public page:
56
+
57
+ ```bash
58
+ npx rollberry capture https://playwright.dev \
59
+ --out ./artifacts/playwright.mp4 \
60
+ --duration 8
61
+ ```
62
+
63
+ Notes:
64
+
65
+ - `npx` downloads the published CLI package automatically
66
+ - on the first run, Rollberry installs Playwright Chromium if needed
67
+ - `ffmpeg` and `ffprobe` must already be available on your machine
68
+ - if you want reproducible automation, pin the package version with
69
+ `npx rollberry@<version> ...`
70
+
71
+ ## What You Get
72
+
73
+ Each run writes:
49
74
 
50
- ## Sidecar Outputs
75
+ - `video.mp4`: the rendered capture
76
+ - `video.manifest.json`: environment, options, result, and failure details
77
+ - `video.log.jsonl`: structured operational logs
51
78
 
52
- 各キャプチャのたびに次を出力します。
79
+ You can override the sidecar paths with `--manifest` and `--log-file`.
53
80
 
54
- - `video.mp4`: 本体動画
55
- - `video.manifest.json`: 実行結果、環境、オプション、失敗内容
56
- - `video.log.jsonl`: 1 行 1 JSON の運用ログ
81
+ ## Common Examples
57
82
 
58
- `--manifest` `--log-file` で出力先を個別に上書きできます。
83
+ Capture a development site:
84
+
85
+ ```bash
86
+ npx rollberry capture http://localhost:3000 --out ./artifacts/local.mp4
87
+ ```
88
+
89
+ Capture a public site at a fixed duration:
90
+
91
+ ```bash
92
+ npx rollberry capture https://playwright.dev \
93
+ --out ./artifacts/playwright.mp4 \
94
+ --duration 8 \
95
+ --fps 60
96
+ ```
97
+
98
+ Wait for a selector and hide overlays:
99
+
100
+ ```bash
101
+ npx rollberry capture https://example.com \
102
+ --wait-for selector:main \
103
+ --hide-selector '#cookie-banner' \
104
+ --hide-selector '.intercom-lightweight-app'
105
+ ```
106
+
107
+ Dump raw frames for debugging:
108
+
109
+ ```bash
110
+ npx rollberry capture http://localhost:3000 \
111
+ --out ./artifacts/debug.mp4 \
112
+ --debug-frames-dir ./artifacts/debug-frames
113
+ ```
114
+
115
+ ## CLI Options
116
+
117
+ ```text
118
+ rollberry capture <url>
119
+
120
+ --out <file> Output MP4 path
121
+ --viewport <WxH> Viewport size, example: 1440x900
122
+ --fps <n> Frames per second
123
+ --duration <seconds|auto> Explicit seconds or auto
124
+ --motion <curve> ease-in-out-sine | linear
125
+ --timeout <ms> Navigation timeout
126
+ --wait-for <mode> load | selector:<css> | ms:<n>
127
+ --hide-selector <css> Hide CSS selector before capture
128
+ --debug-frames-dir <dir> Save raw PNG frames
129
+ --manifest <file> Manifest JSON output path
130
+ --log-file <file> Log JSONL output path
131
+ ```
59
132
 
60
133
  ## Localhost Behavior
61
134
 
62
- - `http://localhost:*`、`https://localhost:*`、`http://127.0.0.1:*`、`http://[::1]:*` を許可
63
- - `localhost` 系では接続拒否を `--timeout` まで 500ms 間隔で再試行
64
- - `https://localhost` 系では自己署名証明書を許可
65
- - dev server の自動起動はしません。URL は事前に起動済みである前提です
135
+ - Supports `http://localhost:*`, `https://localhost:*`,
136
+ `http://127.0.0.1:*`, and `http://[::1]:*`
137
+ - Retries connection-refused errors until `--timeout`
138
+ - Accepts self-signed certificates for localhost targets only
139
+ - Does not start your dev server for you
140
+
141
+ ## Troubleshooting
142
+
143
+ If `ffmpeg` is missing:
144
+
145
+ ```bash
146
+ brew install ffmpeg
147
+ ```
148
+
149
+ If capture fails, inspect:
150
+
151
+ - `*.manifest.json` for final status and error details
152
+ - `*.log.jsonl` for per-step structured logs
153
+
154
+ If a site keeps shifting during capture:
155
+
156
+ - wait for a stable selector with `--wait-for selector:...`
157
+ - hide chat widgets, cookie banners, and sticky overlays with `--hide-selector`
158
+ - keep dynamic dev-only overlays out of the page when possible
66
159
 
67
- ## Recommended Operational Flow
160
+ ## Support and Contact
68
161
 
69
- 1. `regression.sample.json` をコピーして自分たちの `regression.sites.json` を作る
70
- 2. 重要な 10〜20 URL を登録する
71
- 3. リリース前に `corepack pnpm regression -- --config ./regression.sites.json` を実行する
72
- 4. `artifacts/regression/summary.json` と各 manifest を確認する
162
+ - General contact: https://co-r-e.com/contact
163
+ - Security issues: see [SECURITY.md](./SECURITY.md)
164
+ - Contribution guide: see [CONTRIBUTING.md](./CONTRIBUTING.md)
73
165
 
74
- ## Commands
166
+ ## Local Development
75
167
 
76
168
  ```bash
169
+ corepack pnpm install
170
+ corepack pnpm exec playwright install chromium
77
171
  corepack pnpm check
78
172
  corepack pnpm test
79
173
  corepack pnpm build
174
+ ```
175
+
176
+ Run from the repository:
177
+
178
+ ```bash
179
+ corepack pnpm dev -- capture http://localhost:3000 --out ./artifacts/demo.mp4
180
+ ```
181
+
182
+ Run the regression suite:
183
+
184
+ ```bash
185
+ cp regression.sample.json regression.sites.json
80
186
  corepack pnpm regression -- --config ./regression.sites.json
81
187
  ```
188
+
189
+ ## Release Flow
190
+
191
+ Rollberry stays on the `v0.x.x` line for now.
192
+
193
+ 1. Update `package.json` version and `CHANGELOG.md`
194
+ 2. Commit the release prep
195
+ 3. Create an annotated tag like `git tag -a v0.1.2 -m "Release v0.1.2"`
196
+ 4. Push `main` and the tag to GitHub
197
+ 5. GitHub Actions publishes to npm via trusted publishing
198
+
199
+ Trusted publishing setup expected by this repo:
200
+
201
+ - GitHub repository: `co-r-e/rollberry`
202
+ - Workflow filename: `.github/workflows/publish.yml`
203
+ - Trigger: push tag `v*`
204
+ - In npm package settings, add a trusted publisher that matches the repository
205
+ and workflow above
206
+
207
+ ## License
208
+
209
+ [MIT](./LICENSE)
package/SECURITY.md ADDED
@@ -0,0 +1,23 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ Security fixes are provided for the latest published `v0.x.x` release and the
6
+ current `main` branch on a best-effort basis.
7
+
8
+ ## Reporting a Vulnerability
9
+
10
+ Do not open a public GitHub issue for suspected security vulnerabilities.
11
+
12
+ Please contact us here instead:
13
+
14
+ - https://co-r-e.com/contact
15
+
16
+ Include as much detail as possible:
17
+
18
+ - affected version
19
+ - reproduction steps
20
+ - impact assessment
21
+ - proof of concept, if available
22
+
23
+ We will review the report privately and respond through the contact channel.
package/dist/cli.js CHANGED
File without changes
package/package.json CHANGED
@@ -1,12 +1,34 @@
1
1
  {
2
2
  "name": "rollberry",
3
- "version": "0.1.0",
3
+ "version": "0.1.3",
4
4
  "description": "CLI to capture smooth top-to-bottom scroll videos from web pages, including localhost URLs.",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.15.0",
7
+ "author": "CORe Inc.",
8
+ "license": "MIT",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/co-r-e/rollberry.git"
12
+ },
13
+ "homepage": "https://github.com/co-r-e/rollberry#readme",
14
+ "bugs": {
15
+ "url": "https://github.com/co-r-e/rollberry/issues"
16
+ },
17
+ "keywords": [
18
+ "cli",
19
+ "playwright",
20
+ "scroll",
21
+ "video",
22
+ "automation",
23
+ "localhost"
24
+ ],
7
25
  "files": [
8
26
  "dist",
27
+ "CHANGELOG.md",
28
+ "CONTRIBUTING.md",
29
+ "LICENSE",
9
30
  "README.md",
31
+ "SECURITY.md",
10
32
  "regression.sample.json"
11
33
  ],
12
34
  "bin": {