rollberry 0.1.0 → 0.1.2

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,44 @@
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.2] - 2026-03-15
9
+
10
+ ### Added
11
+
12
+ - `SECURITY.md`, `CONTRIBUTING.md`, GitHub issue forms, and a pull request
13
+ template.
14
+ - Contact guidance pointing users to https://co-r-e.com/contact where private
15
+ contact is required.
16
+
17
+ ### Changed
18
+
19
+ - MIT copyright holder is now `CORe Inc.`.
20
+ - Branch protection policy now also covers `develop` and `release/*`, with
21
+ `mokuwaki` as the only bypass user.
22
+
23
+ ## [0.1.1] - 2026-03-15
24
+
25
+ ### Added
26
+
27
+ - MIT license metadata and `LICENSE` file for open source distribution.
28
+ - GitHub Actions trusted publishing workflow for npm releases on `v*` tags.
29
+ - Maintainer release process documentation for `npx rollberry ...` distribution.
30
+
31
+ ### Changed
32
+
33
+ - README rewritten around real `npx` usage, common capture examples, and
34
+ operational troubleshooting.
35
+ - Package metadata now includes repository, homepage, bug tracker, and keywords.
36
+
37
+ ## [0.1.0] - 2026-03-15
38
+
39
+ ### Added
40
+
41
+ - Initial public CLI release for smooth top-to-bottom page capture.
42
+ - `localhost`, `127.0.0.1`, and self-signed `https://localhost` support.
43
+ - Sidecar manifest and JSONL log output.
44
+ - 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,145 @@ 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
+ ## What You Get
32
+
33
+ Each run writes:
34
+
35
+ - `video.mp4`: the rendered capture
36
+ - `video.manifest.json`: environment, options, result, and failure details
37
+ - `video.log.jsonl`: structured operational logs
38
+
39
+ You can override the sidecar paths with `--manifest` and `--log-file`.
40
+
41
+ ## Common Examples
42
+
43
+ Capture a development site:
31
44
 
32
45
  ```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'
46
+ npx rollberry capture http://localhost:3000 --out ./artifacts/local.mp4
40
47
  ```
41
48
 
42
- ビルド後は次でも実行できます。
49
+ Capture a public site at a fixed duration:
43
50
 
44
51
  ```bash
45
- node dist/cli.js capture https://example.com --out ./artifacts/example.mp4
52
+ npx rollberry capture https://playwright.dev \
53
+ --out ./artifacts/playwright.mp4 \
54
+ --duration 8 \
55
+ --fps 60
46
56
  ```
47
57
 
48
- 初回の `npx rollberry ...` 実行時に Chromium が未導入なら、Rollberry が Playwright Chromium を自動インストールします。`ffmpeg` / `ffprobe` は自動導入しないので、事前に PATH 上で使える必要があります。
58
+ Wait for a selector and hide overlays:
49
59
 
50
- ## Sidecar Outputs
60
+ ```bash
61
+ npx rollberry capture https://example.com \
62
+ --wait-for selector:main \
63
+ --hide-selector '#cookie-banner' \
64
+ --hide-selector '.intercom-lightweight-app'
65
+ ```
51
66
 
52
- 各キャプチャのたびに次を出力します。
67
+ Dump raw frames for debugging:
53
68
 
54
- - `video.mp4`: 本体動画
55
- - `video.manifest.json`: 実行結果、環境、オプション、失敗内容
56
- - `video.log.jsonl`: 1 行 1 JSON の運用ログ
69
+ ```bash
70
+ npx rollberry capture http://localhost:3000 \
71
+ --out ./artifacts/debug.mp4 \
72
+ --debug-frames-dir ./artifacts/debug-frames
73
+ ```
57
74
 
58
- `--manifest` `--log-file` で出力先を個別に上書きできます。
75
+ ## CLI Options
76
+
77
+ ```text
78
+ rollberry capture <url>
79
+
80
+ --out <file> Output MP4 path
81
+ --viewport <WxH> Viewport size, example: 1440x900
82
+ --fps <n> Frames per second
83
+ --duration <seconds|auto> Explicit seconds or auto
84
+ --motion <curve> ease-in-out-sine | linear
85
+ --timeout <ms> Navigation timeout
86
+ --wait-for <mode> load | selector:<css> | ms:<n>
87
+ --hide-selector <css> Hide CSS selector before capture
88
+ --debug-frames-dir <dir> Save raw PNG frames
89
+ --manifest <file> Manifest JSON output path
90
+ --log-file <file> Log JSONL output path
91
+ ```
59
92
 
60
93
  ## Localhost Behavior
61
94
 
62
- - `http://localhost:*`、`https://localhost:*`、`http://127.0.0.1:*`、`http://[::1]:*` を許可
63
- - `localhost` 系では接続拒否を `--timeout` まで 500ms 間隔で再試行
64
- - `https://localhost` 系では自己署名証明書を許可
65
- - dev server の自動起動はしません。URL は事前に起動済みである前提です
95
+ - Supports `http://localhost:*`, `https://localhost:*`,
96
+ `http://127.0.0.1:*`, and `http://[::1]:*`
97
+ - Retries connection-refused errors until `--timeout`
98
+ - Accepts self-signed certificates for localhost targets only
99
+ - Does not start your dev server for you
100
+
101
+ ## Troubleshooting
66
102
 
67
- ## Recommended Operational Flow
103
+ If `ffmpeg` is missing:
68
104
 
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 を確認する
105
+ ```bash
106
+ brew install ffmpeg
107
+ ```
108
+
109
+ If capture fails, inspect:
110
+
111
+ - `*.manifest.json` for final status and error details
112
+ - `*.log.jsonl` for per-step structured logs
113
+
114
+ If a site keeps shifting during capture:
115
+
116
+ - wait for a stable selector with `--wait-for selector:...`
117
+ - hide chat widgets, cookie banners, and sticky overlays with `--hide-selector`
118
+ - keep dynamic dev-only overlays out of the page when possible
119
+
120
+ ## Support and Contact
73
121
 
74
- ## Commands
122
+ - General contact: https://co-r-e.com/contact
123
+ - Security issues: see [SECURITY.md](./SECURITY.md)
124
+ - Contribution guide: see [CONTRIBUTING.md](./CONTRIBUTING.md)
125
+
126
+ ## Local Development
75
127
 
76
128
  ```bash
129
+ corepack pnpm install
130
+ corepack pnpm exec playwright install chromium
77
131
  corepack pnpm check
78
132
  corepack pnpm test
79
133
  corepack pnpm build
134
+ ```
135
+
136
+ Run from the repository:
137
+
138
+ ```bash
139
+ corepack pnpm dev -- capture http://localhost:3000 --out ./artifacts/demo.mp4
140
+ ```
141
+
142
+ Run the regression suite:
143
+
144
+ ```bash
145
+ cp regression.sample.json regression.sites.json
80
146
  corepack pnpm regression -- --config ./regression.sites.json
81
147
  ```
148
+
149
+ ## Release Flow
150
+
151
+ Rollberry stays on the `v0.x.x` line for now.
152
+
153
+ 1. Update `package.json` version and `CHANGELOG.md`
154
+ 2. Commit the release prep
155
+ 3. Create an annotated tag like `git tag -a v0.1.2 -m "Release v0.1.2"`
156
+ 4. Push `main` and the tag to GitHub
157
+ 5. GitHub Actions publishes to npm via trusted publishing
158
+
159
+ Trusted publishing setup expected by this repo:
160
+
161
+ - GitHub repository: `co-r-e/rollberry`
162
+ - Workflow filename: `.github/workflows/publish.yml`
163
+ - Trigger: push tag `v*`
164
+ - In npm package settings, add a trusted publisher that matches the repository
165
+ and workflow above
166
+
167
+ ## License
168
+
169
+ [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.2",
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": {