Skip to content

Commit 8d51fcf

Browse files
committed
docs: add README to npm package, fix CHANGELOG
1 parent 118fc4a commit 8d51fcf

4 files changed

Lines changed: 162 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.9.7] - 2025-12-17
11+
12+
### Added
13+
- Add README.md to npm package for better documentation on npmjs.com
14+
15+
## [0.9.6] - 2025-12-17
16+
17+
### Fixed
18+
- Fix npm publish authentication (use Granular Access Token with 2FA bypass)
19+
1020
## [0.9.5] - 2025-12-17
1121

22+
### Changed
23+
- First public release attempt on npm
24+
25+
## [0.9.4] - 2025-12-17
26+
1227
### Changed
1328
- Rename package from `@csvms/cli` to `csvms` for simpler installation
14-
- First public release on npm
1529

1630
## [0.9.3] - 2025-12-17
1731

@@ -47,7 +61,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4761
- Path traversal protection
4862
- Workspace boundary enforcement
4963

50-
[Unreleased]: https://github.com/foo-ogawa/csvms/compare/v0.9.5...HEAD
64+
[Unreleased]: https://github.com/foo-ogawa/csvms/compare/v0.9.7...HEAD
65+
[0.9.7]: https://github.com/foo-ogawa/csvms/compare/v0.9.6...v0.9.7
66+
[0.9.6]: https://github.com/foo-ogawa/csvms/compare/v0.9.5...v0.9.6
5167
[0.9.5]: https://github.com/foo-ogawa/csvms/compare/v0.9.4...v0.9.5
5268
[0.9.4]: https://github.com/foo-ogawa/csvms/compare/v0.9.3...v0.9.4
5369
[0.9.3]: https://github.com/foo-ogawa/csvms/compare/v0.9.2...v0.9.3

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@csvms/monorepo",
33
"private": true,
4-
"version": "0.9.6",
4+
"version": "0.9.7",
55
"description": "CSVMS - Edit CSV files with a CMS-like UI",
66
"author": "foo-ogawa",
77
"license": "MIT",

server/README.md

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
# CSVMS
2+
3+
Edit local CSV files with a **CMS-like UI** (list view + detail form).
4+
5+
CSV files are normalized on save (column order, newlines, quoting, sorting) to ensure clean and stable Git diffs.
6+
7+
![Dataset Editor](https://raw.githubusercontent.com/foo-ogawa/csvms/main/docs/images/datasets.png)
8+
9+
## Features
10+
11+
- 🖥️ **CMS-like UI** - Edit CSV files with intuitive list and detail form views
12+
- 📋 **Schema Definition** - Define forms, validation, and normalization rules in YAML/JSON
13+
- 🔄 **Stable Git Diffs** - CSV normalization minimizes unnecessary changes
14+
- 🔒 **Security** - Workspace boundary enforcement, path traversal protection
15+
-**Easy Start** - Single `npx` command (no clone required)
16+
17+
## Quick Start
18+
19+
```bash
20+
# Run in the directory containing your CSV files
21+
npx csvms
22+
```
23+
24+
That's it! A browser will open with the CMS-like UI.
25+
26+
## Screenshots
27+
28+
### Home Screen
29+
30+
![Home](https://raw.githubusercontent.com/foo-ogawa/csvms/main/docs/images/home.png)
31+
32+
### Dataset Editor
33+
34+
Table/tile view with detail form. Supports drag-and-drop reordering and keyboard navigation.
35+
36+
![Dataset Editor](https://raw.githubusercontent.com/foo-ogawa/csvms/main/docs/images/datasets.png)
37+
38+
### Single Dataset Mode
39+
40+
Use `--schema` option for editing a single dataset without a config file.
41+
42+
```bash
43+
npx csvms --schema schemas/product.schema.yaml --allow-write
44+
```
45+
46+
![Single Mode](https://raw.githubusercontent.com/foo-ogawa/csvms/main/docs/images/single-dataset.png)
47+
48+
## CLI Options
49+
50+
```bash
51+
csvms [options]
52+
53+
Options:
54+
--config <path> Config file path (default: search in CWD)
55+
--port <number> Port number (default: auto)
56+
--host <host> Bind host (default: 127.0.0.1)
57+
--no-open Don't open browser automatically
58+
--read-only Read-only mode
59+
--allow-write Allow write operations
60+
--workspace <path> Workspace root path (default: CWD)
61+
--log-level <level> Log level (debug|info|warn|error)
62+
--schema <path> Single dataset mode with schema file
63+
```
64+
65+
## Configuration
66+
67+
Create `csvms.config.yaml` in your project root:
68+
69+
```yaml
70+
version: 1
71+
workspace:
72+
root: "."
73+
allowWrite: true
74+
75+
datasets:
76+
- id: "product_master"
77+
title: "Product Master"
78+
csvPath: "data/products.csv"
79+
schemaPath: "schemas/product.schema.yaml"
80+
```
81+
82+
## Schema Definition
83+
84+
Example `schemas/product.schema.yaml`:
85+
86+
```yaml
87+
schemaVersion: 1
88+
id: product_master
89+
title: Product Master
90+
91+
csv:
92+
delimiter: ","
93+
header: true
94+
primaryKey: "product_id"
95+
normalize:
96+
quotePolicy: "minimal"
97+
newline: "lf"
98+
99+
columns:
100+
- key: product_id
101+
label: Product ID
102+
type: string
103+
required: true
104+
unique: true
105+
ui: { widget: text, readonlyOnEdit: true }
106+
107+
- key: name
108+
label: Product Name
109+
type: string
110+
required: true
111+
ui: { widget: text }
112+
113+
- key: price
114+
label: Price
115+
type: integer
116+
required: true
117+
min: 0
118+
ui: { widget: number }
119+
120+
ui:
121+
list:
122+
columns:
123+
- { key: product_id, width: 160 }
124+
- { key: name, width: 280 }
125+
- { key: price, width: 120, align: right }
126+
```
127+
128+
## Documentation
129+
130+
- [Configuration Guide](https://github.com/foo-ogawa/csvms/blob/main/docs/CONFIGURATION.md) - Full schema and config reference
131+
- [API Reference](https://github.com/foo-ogawa/csvms/blob/main/docs/API.md) - REST API documentation
132+
133+
## Requirements
134+
135+
- Node.js >= 20.0.0
136+
137+
## License
138+
139+
MIT
140+

server/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
{
22
"name": "csvms",
3-
"version": "0.9.6",
3+
"version": "0.9.7",
44
"description": "CSVMS - Edit CSV files with a CMS-like UI",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",
77
"bin": {
88
"csvms": "./dist/cli.js"
99
},
1010
"files": [
11-
"dist"
11+
"dist",
12+
"README.md"
1213
],
1314
"scripts": {
1415
"dev": "tsx watch src/cli.ts",

0 commit comments

Comments
 (0)