@ncukondo/reference-manager 0.1.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.
- package/README.md +167 -0
- package/bin/reference-manager.js +5 -0
- package/dist/chunks/detector-BF8Mcc72.js +1415 -0
- package/dist/chunks/detector-BF8Mcc72.js.map +1 -0
- package/dist/cli/commands/add.d.ts +22 -0
- package/dist/cli/commands/add.d.ts.map +1 -0
- package/dist/cli/commands/index.d.ts +16 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/list.d.ts +15 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/remove.d.ts +19 -0
- package/dist/cli/commands/remove.d.ts.map +1 -0
- package/dist/cli/commands/search.d.ts +16 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/server.d.ts +32 -0
- package/dist/cli/commands/server.d.ts.map +1 -0
- package/dist/cli/commands/update.d.ts +20 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/helpers.d.ts +61 -0
- package/dist/cli/helpers.d.ts.map +1 -0
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/output/bibtex.d.ts +6 -0
- package/dist/cli/output/bibtex.d.ts.map +1 -0
- package/dist/cli/output/index.d.ts +7 -0
- package/dist/cli/output/index.d.ts.map +1 -0
- package/dist/cli/output/json.d.ts +6 -0
- package/dist/cli/output/json.d.ts.map +1 -0
- package/dist/cli/output/pretty.d.ts +6 -0
- package/dist/cli/output/pretty.d.ts.map +1 -0
- package/dist/cli/server-client.d.ts +38 -0
- package/dist/cli/server-client.d.ts.map +1 -0
- package/dist/cli/server-detection.d.ts +27 -0
- package/dist/cli/server-detection.d.ts.map +1 -0
- package/dist/cli.js +981 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/defaults.d.ts +29 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/index.d.ts +10 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/loader.d.ts +27 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/schema.d.ts +129 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/core/csl-json/parser.d.ts +9 -0
- package/dist/core/csl-json/parser.d.ts.map +1 -0
- package/dist/core/csl-json/serializer.d.ts +15 -0
- package/dist/core/csl-json/serializer.d.ts.map +1 -0
- package/dist/core/csl-json/types.d.ts +124 -0
- package/dist/core/csl-json/types.d.ts.map +1 -0
- package/dist/core/csl-json/validator.d.ts +19 -0
- package/dist/core/csl-json/validator.d.ts.map +1 -0
- package/dist/core/identifier/generator.d.ts +17 -0
- package/dist/core/identifier/generator.d.ts.map +1 -0
- package/dist/core/identifier/normalize.d.ts +20 -0
- package/dist/core/identifier/normalize.d.ts.map +1 -0
- package/dist/core/identifier/uuid.d.ts +24 -0
- package/dist/core/identifier/uuid.d.ts.map +1 -0
- package/dist/core/index.d.ts +15 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/library.d.ts +73 -0
- package/dist/core/library.d.ts.map +1 -0
- package/dist/core/reference.d.ts +86 -0
- package/dist/core/reference.d.ts.map +1 -0
- package/dist/features/duplicate/detector.d.ts +19 -0
- package/dist/features/duplicate/detector.d.ts.map +1 -0
- package/dist/features/duplicate/index.d.ts +6 -0
- package/dist/features/duplicate/index.d.ts.map +1 -0
- package/dist/features/duplicate/types.d.ts +45 -0
- package/dist/features/duplicate/types.d.ts.map +1 -0
- package/dist/features/file-watcher/file-watcher.d.ts +83 -0
- package/dist/features/file-watcher/file-watcher.d.ts.map +1 -0
- package/dist/features/file-watcher/index.d.ts +2 -0
- package/dist/features/file-watcher/index.d.ts.map +1 -0
- package/dist/features/merge/index.d.ts +8 -0
- package/dist/features/merge/index.d.ts.map +1 -0
- package/dist/features/merge/three-way.d.ts +16 -0
- package/dist/features/merge/three-way.d.ts.map +1 -0
- package/dist/features/merge/types.d.ts +74 -0
- package/dist/features/merge/types.d.ts.map +1 -0
- package/dist/features/search/index.d.ts +9 -0
- package/dist/features/search/index.d.ts.map +1 -0
- package/dist/features/search/matcher.d.ts +18 -0
- package/dist/features/search/matcher.d.ts.map +1 -0
- package/dist/features/search/normalizer.d.ts +12 -0
- package/dist/features/search/normalizer.d.ts.map +1 -0
- package/dist/features/search/sorter.d.ts +11 -0
- package/dist/features/search/sorter.d.ts.map +1 -0
- package/dist/features/search/tokenizer.d.ts +6 -0
- package/dist/features/search/tokenizer.d.ts.map +1 -0
- package/dist/features/search/types.d.ts +77 -0
- package/dist/features/search/types.d.ts.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +559 -0
- package/dist/index.js.map +1 -0
- package/dist/server/index.d.ts +9 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/portfile.d.ts +43 -0
- package/dist/server/portfile.d.ts.map +1 -0
- package/dist/server/routes/health.d.ts +7 -0
- package/dist/server/routes/health.d.ts.map +1 -0
- package/dist/server/routes/references.d.ts +9 -0
- package/dist/server/routes/references.d.ts.map +1 -0
- package/dist/server.js +91 -0
- package/dist/server.js.map +1 -0
- package/dist/utils/backup.d.ts +21 -0
- package/dist/utils/backup.d.ts.map +1 -0
- package/dist/utils/file.d.ts +9 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/hash.d.ts +9 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +8 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/package.json +72 -0
package/README.md
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# reference-manager
|
|
2
|
+
|
|
3
|
+
A local reference management tool using CSL-JSON as the single source of truth.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **CSL-JSON Native**: Uses CSL-JSON format as the primary data model
|
|
8
|
+
- **Command-line Interface**: Comprehensive CLI with search, add, update, remove commands
|
|
9
|
+
- **HTTP Server**: Optional background server for improved performance
|
|
10
|
+
- **Duplicate Detection**: Automatic detection via DOI, PMID, or title+author+year
|
|
11
|
+
- **Smart Search**: Full-text search with field-specific queries
|
|
12
|
+
- **File Monitoring**: Automatic reload on external changes
|
|
13
|
+
- **Backup Management**: Automatic backups with retention policies
|
|
14
|
+
- **Pandoc Compatible**: Works seamlessly with Pandoc's bibliography system
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
### Requirements
|
|
19
|
+
|
|
20
|
+
- Node.js 22 or later
|
|
21
|
+
|
|
22
|
+
### From npm (when published)
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install -g reference-manager
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### From source
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
git clone https://github.com/ncukondo/reference-manager.git
|
|
32
|
+
cd reference-manager
|
|
33
|
+
npm install
|
|
34
|
+
npm run build
|
|
35
|
+
npm link
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Usage
|
|
39
|
+
|
|
40
|
+
The command `ref` is available after installation (alias: `reference-manager`).
|
|
41
|
+
|
|
42
|
+
### Basic Commands
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# List all references
|
|
46
|
+
ref list
|
|
47
|
+
|
|
48
|
+
# Search references
|
|
49
|
+
ref search "author:smith machine learning"
|
|
50
|
+
|
|
51
|
+
# Add a new reference (from JSON file)
|
|
52
|
+
ref add reference.json
|
|
53
|
+
|
|
54
|
+
# Add from stdin
|
|
55
|
+
cat reference.json | ref add
|
|
56
|
+
|
|
57
|
+
# Update a reference
|
|
58
|
+
ref update smith-2020 updates.json
|
|
59
|
+
|
|
60
|
+
# Remove a reference
|
|
61
|
+
ref remove smith-2020
|
|
62
|
+
|
|
63
|
+
# Server management
|
|
64
|
+
ref server start
|
|
65
|
+
ref server status
|
|
66
|
+
ref server stop
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Output Formats
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Pretty format (default)
|
|
73
|
+
ref list
|
|
74
|
+
|
|
75
|
+
# JSON format
|
|
76
|
+
ref list --format json
|
|
77
|
+
|
|
78
|
+
# BibTeX format
|
|
79
|
+
ref list --format bibtex
|
|
80
|
+
|
|
81
|
+
# IDs only
|
|
82
|
+
ref list --format ids-only
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Configuration
|
|
86
|
+
|
|
87
|
+
Configuration file: `.reference-manager.config.toml`
|
|
88
|
+
|
|
89
|
+
```toml
|
|
90
|
+
library = "~/references.json"
|
|
91
|
+
log_level = "info"
|
|
92
|
+
|
|
93
|
+
[backup]
|
|
94
|
+
enabled = true
|
|
95
|
+
max_count = 10
|
|
96
|
+
max_age_days = 30
|
|
97
|
+
|
|
98
|
+
[server]
|
|
99
|
+
auto_start = true
|
|
100
|
+
auto_stop_minutes = 60
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
See `spec/architecture/cli.md` for full configuration options.
|
|
104
|
+
|
|
105
|
+
## Development
|
|
106
|
+
|
|
107
|
+
### Build
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
npm run build
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Test
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# Run all tests
|
|
117
|
+
npm test
|
|
118
|
+
|
|
119
|
+
# Watch mode
|
|
120
|
+
npm run test:watch
|
|
121
|
+
|
|
122
|
+
# Coverage
|
|
123
|
+
npm run test:coverage
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Quality Checks
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
# Type checking
|
|
130
|
+
npm run typecheck
|
|
131
|
+
|
|
132
|
+
# Linting
|
|
133
|
+
npm run lint
|
|
134
|
+
|
|
135
|
+
# Format
|
|
136
|
+
npm run format
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Project Status
|
|
140
|
+
|
|
141
|
+
✅ **All phases completed** (Phase 1-5)
|
|
142
|
+
|
|
143
|
+
- 606 tests passing
|
|
144
|
+
- Full TypeScript type coverage
|
|
145
|
+
- Multi-platform support (Linux, macOS, Windows)
|
|
146
|
+
- Ready for distribution
|
|
147
|
+
|
|
148
|
+
## Architecture
|
|
149
|
+
|
|
150
|
+
The project is organized into modular components:
|
|
151
|
+
|
|
152
|
+
- **Core**: CSL-JSON processing, Reference/Library management, Identifier generation
|
|
153
|
+
- **Features**: Search, Duplicate detection, 3-way merge, File monitoring
|
|
154
|
+
- **CLI**: Command-line interface with Commander.js
|
|
155
|
+
- **Server**: HTTP server with Hono
|
|
156
|
+
- **Utils**: Logging, File operations, Backup management
|
|
157
|
+
- **Config**: TOML-based configuration
|
|
158
|
+
|
|
159
|
+
See `spec/_index.md` for detailed architecture documentation.
|
|
160
|
+
|
|
161
|
+
## License
|
|
162
|
+
|
|
163
|
+
MIT
|
|
164
|
+
|
|
165
|
+
## Repository
|
|
166
|
+
|
|
167
|
+
https://github.com/ncukondo/reference-manager
|