raindrop-cli 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.
Files changed (78) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +422 -0
  3. package/dist/client.d.ts +7 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/commands/auth.d.ts +3 -0
  6. package/dist/commands/auth.d.ts.map +1 -0
  7. package/dist/commands/bookmarks.d.ts +3 -0
  8. package/dist/commands/bookmarks.d.ts.map +1 -0
  9. package/dist/commands/collections.d.ts +3 -0
  10. package/dist/commands/collections.d.ts.map +1 -0
  11. package/dist/commands/favorites.d.ts +3 -0
  12. package/dist/commands/favorites.d.ts.map +1 -0
  13. package/dist/commands/filters.d.ts +3 -0
  14. package/dist/commands/filters.d.ts.map +1 -0
  15. package/dist/commands/highlights.d.ts +3 -0
  16. package/dist/commands/highlights.d.ts.map +1 -0
  17. package/dist/commands/index.d.ts +9 -0
  18. package/dist/commands/index.d.ts.map +1 -0
  19. package/dist/commands/tags.d.ts +3 -0
  20. package/dist/commands/tags.d.ts.map +1 -0
  21. package/dist/commands/trash.d.ts +3 -0
  22. package/dist/commands/trash.d.ts.map +1 -0
  23. package/dist/config.d.ts +44 -0
  24. package/dist/config.d.ts.map +1 -0
  25. package/dist/index.d.ts +2 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +28827 -0
  28. package/dist/output/index.d.ts +23 -0
  29. package/dist/output/index.d.ts.map +1 -0
  30. package/dist/output/json.d.ts +6 -0
  31. package/dist/output/json.d.ts.map +1 -0
  32. package/dist/output/plain.d.ts +16 -0
  33. package/dist/output/plain.d.ts.map +1 -0
  34. package/dist/output/table.d.ts +3 -0
  35. package/dist/output/table.d.ts.map +1 -0
  36. package/dist/output/tree.d.ts +23 -0
  37. package/dist/output/tree.d.ts.map +1 -0
  38. package/dist/output/tsv.d.ts +3 -0
  39. package/dist/output/tsv.d.ts.map +1 -0
  40. package/dist/output/utils.d.ts +3 -0
  41. package/dist/output/utils.d.ts.map +1 -0
  42. package/dist/types/index.d.ts +13 -0
  43. package/dist/types/index.d.ts.map +1 -0
  44. package/dist/utils/axios-interceptors.d.ts +44 -0
  45. package/dist/utils/axios-interceptors.d.ts.map +1 -0
  46. package/dist/utils/collections.d.ts +18 -0
  47. package/dist/utils/collections.d.ts.map +1 -0
  48. package/dist/utils/colors.d.ts +61 -0
  49. package/dist/utils/colors.d.ts.map +1 -0
  50. package/dist/utils/command-options.d.ts +15 -0
  51. package/dist/utils/command-options.d.ts.map +1 -0
  52. package/dist/utils/debug.d.ts +45 -0
  53. package/dist/utils/debug.d.ts.map +1 -0
  54. package/dist/utils/errors.d.ts +38 -0
  55. package/dist/utils/errors.d.ts.map +1 -0
  56. package/dist/utils/help-formatter.d.ts +80 -0
  57. package/dist/utils/help-formatter.d.ts.map +1 -0
  58. package/dist/utils/output-streams.d.ts +35 -0
  59. package/dist/utils/output-streams.d.ts.map +1 -0
  60. package/dist/utils/pagination.d.ts +13 -0
  61. package/dist/utils/pagination.d.ts.map +1 -0
  62. package/dist/utils/progress.d.ts +29 -0
  63. package/dist/utils/progress.d.ts.map +1 -0
  64. package/dist/utils/prompt.d.ts +32 -0
  65. package/dist/utils/prompt.d.ts.map +1 -0
  66. package/dist/utils/spinner.d.ts +69 -0
  67. package/dist/utils/spinner.d.ts.map +1 -0
  68. package/dist/utils/stdin.d.ts +31 -0
  69. package/dist/utils/stdin.d.ts.map +1 -0
  70. package/dist/utils/timeout.d.ts +35 -0
  71. package/dist/utils/timeout.d.ts.map +1 -0
  72. package/dist/utils/tree.d.ts +51 -0
  73. package/dist/utils/tree.d.ts.map +1 -0
  74. package/dist/utils/tty.d.ts +32 -0
  75. package/dist/utils/tty.d.ts.map +1 -0
  76. package/dist/utils/validation.d.ts +28 -0
  77. package/dist/utils/validation.d.ts.map +1 -0
  78. package/package.json +87 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Christian Catalan
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 ADDED
@@ -0,0 +1,422 @@
1
+ # raindrop-cli
2
+
3
+ [![npm version](https://img.shields.io/npm/v/raindrop-cli)](https://npmjs.com/package/raindrop-cli)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
5
+
6
+ A fast, scriptable command-line interface for [Raindrop.io](https://raindrop.io) — the all-in-one bookmark manager.
7
+
8
+ Built for power users, automation workflows, and AI agent integration.
9
+
10
+ > **Disclaimer:** This is an unofficial, community-built tool and is not affiliated with or endorsed by Raindrop.io.
11
+
12
+ ## Features
13
+
14
+ - **Full CRUD Operations** — Create, read, update, and delete bookmarks with ease
15
+ - **Powerful Search** — Use Raindrop's full search syntax from the command line
16
+ - **Batch Operations** — Update or delete multiple bookmarks at once via stdin piping
17
+ - **Multiple Output Formats** — JSON, table, TSV, or plain text for any workflow
18
+ - **AI-Friendly** — Structured output designed for LLM and agent consumption
19
+ - **Scriptable** — Quiet mode, stdin support, and composable commands
20
+ - **Collection Management** — Organize bookmarks with hierarchical collections
21
+ - **Tag Operations** — Bulk rename, delete, and manage tags
22
+ - **Fast** — Built with Bun for quick startup and execution
23
+
24
+ ## Requirements
25
+
26
+ - Node.js 20+
27
+
28
+ ## Installation
29
+
30
+ ```bash
31
+ npm install -g raindrop-cli
32
+ ```
33
+
34
+ Or use without installing:
35
+ ```bash
36
+ npx raindrop-cli --help
37
+ ```
38
+
39
+ This installs `rd` as the primary command. An `rdcli` alias is also available if `rd` conflicts with another tool:
40
+
41
+ - **Windows**: `rd` is a built-in command (remove directory)
42
+ - **oh-my-zsh**: `rd` is aliased to `rmdir` — add `unalias rd` to your `~/.zshrc` or use `rdcli`
43
+
44
+ ## Quick Start
45
+
46
+ ### 1. Get Your API Token
47
+
48
+ Get a test token from [Raindrop.io Integrations Settings](https://app.raindrop.io/settings/integrations).
49
+
50
+ ### 2. Authenticate
51
+
52
+ ```bash
53
+ rd auth set-token
54
+ # Paste your token when prompted
55
+ ```
56
+
57
+ Or set via environment variable:
58
+
59
+ ```bash
60
+ export RAINDROP_TOKEN=your-token-here
61
+ ```
62
+
63
+ ### 3. Start Using
64
+
65
+ ```bash
66
+ # List your bookmarks
67
+ rd list
68
+
69
+ # Add a bookmark
70
+ rd add https://example.com --tags "reading,tech"
71
+
72
+ # Search your bookmarks
73
+ rd search "typescript"
74
+
75
+ # Get help
76
+ rd --help
77
+ ```
78
+
79
+ ## Commands
80
+
81
+ ### Bookmarks
82
+
83
+ The primary resource. Most bookmark commands have convenient shortcuts at the root level.
84
+
85
+ ```bash
86
+ # List bookmarks
87
+ rd list # or: rd bookmarks list
88
+ rd list --limit 50 # limit results
89
+ rd list --tag javascript # filter by tag
90
+ rd list --type article # filter by type
91
+ rd list --favorites # show only favorites
92
+ rd list 12345 # list from specific collection
93
+
94
+ # Search
95
+ rd search "typescript" # full-text search
96
+ rd search "#javascript" # search by tag
97
+ rd search "domain:github.com" # search by domain
98
+ rd search "type:article created:2024-01" # combine filters
99
+
100
+ # Show details
101
+ rd show 12345 # show bookmark by ID
102
+
103
+ # Add bookmarks
104
+ rd add https://example.com # basic add
105
+ rd add https://example.com --title "My Title" --tags "dev,reading"
106
+ rd add https://example.com --favorite # add as favorite
107
+ rd add https://example.com --collection 12345
108
+
109
+ # Update bookmarks
110
+ rd update 12345 --title "New Title"
111
+ rd update 12345 --tags "new,tags" # replace all tags
112
+ rd update 12345 --favorite # mark as favorite
113
+ rd update 12345 --favorite false # remove favorite
114
+
115
+ # Delete bookmarks
116
+ rd delete 12345 # prompts for confirmation
117
+ rd delete 12345 --force # skip confirmation
118
+
119
+ # Batch operations
120
+ rd list -q | rd batch-update --favorite # favorite all bookmarks
121
+ rd list -q --tag old | rd batch-delete # delete by tag
122
+ rd batch-update --ids 123,456,789 --tags "archived"
123
+ ```
124
+
125
+ ### Collections
126
+
127
+ Organize bookmarks into folders with optional nesting.
128
+
129
+ ```bash
130
+ rd collections list # show collection tree
131
+ rd collections list --flat # flat list with IDs
132
+ rd collections show 12345 # collection details
133
+ rd collections add "My Collection" # create collection
134
+ rd collections add "Sub" --parent 12345 # create nested collection
135
+ rd collections delete 12345 --force # delete collection
136
+ rd collections stats # show system collection counts
137
+ ```
138
+
139
+ ### Tags
140
+
141
+ Manage tags across your bookmarks.
142
+
143
+ ```bash
144
+ rd tags list # list all tags with counts
145
+ rd tags list 12345 # tags in specific collection
146
+ rd tags rename "old-tag" "new-tag" -f # rename (merges if exists)
147
+ rd tags delete "unused-tag" -f # remove tag from all bookmarks
148
+ ```
149
+
150
+ ### Favorites
151
+
152
+ Quick access to your starred bookmarks.
153
+
154
+ ```bash
155
+ rd favorites list # list all favorites
156
+ rd favorites list 12345 # favorites in collection
157
+ rd favorites list -s "#javascript" # filter favorites
158
+ ```
159
+
160
+ ### Highlights
161
+
162
+ View your annotations and highlights.
163
+
164
+ ```bash
165
+ rd highlights list # list all highlights
166
+ rd highlights list -c 12345 # highlights in collection
167
+ rd highlights show 12345 # highlights for bookmark
168
+ ```
169
+
170
+ ### Filters
171
+
172
+ Discover available filter values for search.
173
+
174
+ ```bash
175
+ rd filters list # show types, tags, dates
176
+ rd filters list 12345 # filters for collection
177
+ ```
178
+
179
+ ### Trash
180
+
181
+ Manage deleted bookmarks.
182
+
183
+ ```bash
184
+ rd trash list # list trashed items
185
+ rd trash empty --dry-run # preview deletion
186
+ rd trash empty --force # permanently delete all
187
+ ```
188
+
189
+ ### Auth
190
+
191
+ Manage authentication.
192
+
193
+ ```bash
194
+ rd auth status # check auth status
195
+ rd auth set-token # set new token (interactive)
196
+ rd auth clear # remove stored token
197
+ ```
198
+
199
+ ## Output Formats
200
+
201
+ Control output format for different use cases:
202
+
203
+ ```bash
204
+ # Table (default for terminals)
205
+ rd list
206
+
207
+ # JSON (default when piped, great for jq)
208
+ rd list --json
209
+ rd list -f json | jq '.[].title'
210
+
211
+ # TSV (spreadsheet-friendly)
212
+ rd list -f tsv > bookmarks.tsv
213
+
214
+ # Plain text (human-readable)
215
+ rd list -f plain
216
+
217
+ # Quiet mode (just IDs, for scripting)
218
+ rd list -q
219
+ rd list -q | xargs -I {} rd show {}
220
+ ```
221
+
222
+ ## Scripting Examples
223
+
224
+ ### Backup All Bookmarks
225
+
226
+ ```bash
227
+ rd list --limit 50 --format json > backup.json
228
+ ```
229
+
230
+ ### Tag All Unsorted Bookmarks
231
+
232
+ ```bash
233
+ rd list unsorted -q | rd batch-update --tags "needs-review"
234
+ ```
235
+
236
+ ### Delete Old Bookmarks
237
+
238
+ ```bash
239
+ rd list --created 2020-01 -q | rd batch-delete
240
+ ```
241
+
242
+ ### Export to TSV for Spreadsheet
243
+
244
+ ```bash
245
+ rd list --limit 100 -f tsv > bookmarks.tsv
246
+ ```
247
+
248
+ ### Find Broken Links
249
+
250
+ ```bash
251
+ rd list --broken -f json | jq '.[] | {title, link}'
252
+ ```
253
+
254
+ ### Migrate Tags
255
+
256
+ ```bash
257
+ rd tags rename "javascript" "js" -f
258
+ ```
259
+
260
+ ## Global Options
261
+
262
+ ```
263
+ -V, --version Output version number
264
+ --format <format> Output format: json, table, tsv, plain
265
+ --json Shorthand for --format json
266
+ -q, --quiet Minimal output (just IDs)
267
+ -v, --verbose Show operational details
268
+ -d, --debug Show debug info
269
+ --no-color Disable colored output
270
+ -t, --timeout <seconds> Request timeout (default: 30, env: RDCLI_TIMEOUT)
271
+ -h, --help Display help
272
+ ```
273
+
274
+ ## Configuration
275
+
276
+ ### Token Storage
277
+
278
+ Tokens can be provided via:
279
+
280
+ 1. **Environment variable** (takes precedence): `RAINDROP_TOKEN`
281
+ 2. **Config file**: `~/.config/raindrop-cli/config.json` (set via `rd auth set-token`)
282
+
283
+ ### Environment Variables
284
+
285
+ | Variable | Description |
286
+ |----------|-------------|
287
+ | `RAINDROP_TOKEN` | API token (overrides config file) |
288
+ | `RDCLI_TIMEOUT` | Request timeout in seconds (default: 30) |
289
+ | `RDCLI_API_DELAY_MS` | Delay between API calls (milliseconds) |
290
+ | `NO_COLOR` | Disable colored output |
291
+
292
+ ## Development
293
+
294
+ ```bash
295
+ # Install dependencies
296
+ bun install
297
+
298
+ # Run in development
299
+ bun run dev -- list
300
+
301
+ # Run tests
302
+ bun run test # unit tests
303
+ bun run test:live # live API tests (requires token)
304
+
305
+ # Lint and format
306
+ bun run lint
307
+ bun run format
308
+
309
+ # Type check
310
+ bun run typecheck
311
+
312
+ # Build
313
+ bun run build
314
+
315
+ # Run all checks
316
+ bun run verify
317
+ ```
318
+
319
+ ### Verbose Commands
320
+
321
+ Most commands have a `:verbose` variant with human-friendly output (e.g., `bun run test:verbose`). The defaults are optimized for AI agents with minimal output.
322
+
323
+ ### Live Tests in CI
324
+
325
+ Live tests run against the real Raindrop.io API and require a token. In CI, maintainers and collaborators can trigger them by commenting `/run-live-tests` on a PR.
326
+
327
+ > **Note:** Live tests only work on PRs from the same repository, not forks (secrets aren't available to forks for security).
328
+
329
+ ### Project Structure
330
+
331
+ ```
332
+ src/
333
+ ├── index.ts # CLI entry point
334
+ ├── commands/ # Command implementations
335
+ ├── output/ # Output formatters (json, table, tsv, plain)
336
+ ├── utils/ # Shared utilities
337
+ └── types/ # TypeScript types
338
+ ```
339
+
340
+ ## Releasing
341
+
342
+ For maintainers publishing a new version to npm.
343
+
344
+ ### Prerequisites
345
+
346
+ - Push access to the repository
347
+ - npm account with publish rights to `raindrop-cli`
348
+ - Logged in to npm (`npm whoami` to verify)
349
+ - ggshield installed and authenticated (`ggshield auth status`)
350
+
351
+ ### Release Process
352
+
353
+ ```bash
354
+ # 1. Ensure you're on main with latest changes
355
+ git checkout main
356
+ git pull
357
+
358
+ # 2. Update CHANGELOG.md
359
+ # - Move items from "Unreleased" to new version section
360
+ # - Set the release date (e.g., ## [0.2.0] - 2026-01-15)
361
+
362
+ # 3. Commit the changelog
363
+ git add CHANGELOG.md
364
+ git commit -m "chore: update changelog for vX.Y.Z"
365
+
366
+ # 4. Bump version (creates commit + git tag automatically)
367
+ npm version patch # or: minor, major
368
+ # This updates package.json and creates a vX.Y.Z tag
369
+
370
+ # 5. Dry run to verify package contents
371
+ npm publish --dry-run --access public
372
+
373
+ # 6. Publish to npm
374
+ npm publish --access public
375
+
376
+ # 7. Push commits and tags to GitHub
377
+ git push && git push --tags
378
+
379
+ # 8. Verify installation works
380
+ npm info raindrop-cli
381
+ npx raindrop-cli@latest --version
382
+ ```
383
+
384
+ ### What Happens During Publish
385
+
386
+ The `prepublishOnly` script runs automatically before upload:
387
+
388
+ 1. **Verify** — runs tests, lint, typecheck, format
389
+ 2. **Build** — compiles to `dist/`
390
+ 3. **Secret scan** — ggshield scans source and `dist/` for leaked secrets
391
+ 4. **Package** — creates tarball with only: `dist/*`, `README.md`, `LICENSE`, `package.json`
392
+
393
+ No need to run `bun run build` manually — it's all handled automatically.
394
+
395
+ ### Notes
396
+
397
+ - **Immutable** — published versions cannot be changed, only deprecated
398
+ - **Tags** — `npm version` creates the git tag; just remember to `git push --tags`
399
+ - **Secrets** — publish will fail if ggshield detects secrets in the bundle
400
+
401
+ ## Contributing
402
+
403
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
404
+
405
+ Quick start:
406
+
407
+ 1. Fork the repository
408
+ 2. Create a feature branch
409
+ 3. Make your changes
410
+ 4. Run `bun run verify` to ensure tests pass
411
+ 5. Submit a pull request
412
+
413
+ ## License
414
+
415
+ [MIT](LICENSE)
416
+
417
+ ## Links
418
+
419
+ - [Raindrop.io](https://raindrop.io)
420
+ - [Raindrop.io API Documentation](https://developer.raindrop.io)
421
+ - [Changelog](CHANGELOG.md)
422
+ - [Report Issues](https://github.com/crcatala/raindrop-cli-spike/issues)
@@ -0,0 +1,7 @@
1
+ import { client } from "@lasuillard/raindrop-client";
2
+ declare const Raindrop: typeof client.Raindrop;
3
+ type RaindropClient = InstanceType<typeof Raindrop>;
4
+ export declare function getClient(): RaindropClient;
5
+ export declare function resetClient(): void;
6
+ export {};
7
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,MAAM,6BAA6B,CAAC;AAOhE,QAAA,MAAQ,QAAQ,wBAAW,CAAC;AAG5B,KAAK,cAAc,GAAG,YAAY,CAAC,OAAO,QAAQ,CAAC,CAAC;AAIpD,wBAAgB,SAAS,IAAI,cAAc,CA2B1C;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createAuthCommand(): Command;
3
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwEpC,wBAAgB,iBAAiB,IAAI,OAAO,CAuL3C"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createBookmarksCommand(): Command;
3
+ //# sourceMappingURL=bookmarks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bookmarks.d.ts","sourceRoot":"","sources":["../../src/commands/bookmarks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8PpC,wBAAgB,sBAAsB,IAAI,OAAO,CAkvChD"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createCollectionsCommand(): Command;
3
+ //# sourceMappingURL=collections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../src/commands/collections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+FpC,wBAAgB,wBAAwB,IAAI,OAAO,CAkTlD"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createFavoritesCommand(): Command;
3
+ //# sourceMappingURL=favorites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"favorites.d.ts","sourceRoot":"","sources":["../../src/commands/favorites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsEpC,wBAAgB,sBAAsB,IAAI,OAAO,CAwHhD"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createFiltersCommand(): Command;
3
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/commands/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsFpC,wBAAgB,oBAAoB,IAAI,OAAO,CAmF9C"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createHighlightsCommand(): Command;
3
+ //# sourceMappingURL=highlights.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlights.d.ts","sourceRoot":"","sources":["../../src/commands/highlights.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmDpC,wBAAgB,uBAAuB,IAAI,OAAO,CAiIjD"}
@@ -0,0 +1,9 @@
1
+ export { createAuthCommand } from "./auth.js";
2
+ export { createBookmarksCommand } from "./bookmarks.js";
3
+ export { createCollectionsCommand } from "./collections.js";
4
+ export { createFavoritesCommand } from "./favorites.js";
5
+ export { createHighlightsCommand } from "./highlights.js";
6
+ export { createTagsCommand } from "./tags.js";
7
+ export { createFiltersCommand } from "./filters.js";
8
+ export { createTrashCommand } from "./trash.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createTagsCommand(): Command;
3
+ //# sourceMappingURL=tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/commands/tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsCpC,wBAAgB,iBAAiB,IAAI,OAAO,CAwL3C"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createTrashCommand(): Command;
3
+ //# sourceMappingURL=trash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trash.d.ts","sourceRoot":"","sources":["../../src/commands/trash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwDpC,wBAAgB,kBAAkB,IAAI,OAAO,CAoL5C"}
@@ -0,0 +1,44 @@
1
+ export interface StoredConfig {
2
+ token?: string;
3
+ defaultFormat?: "json" | "table" | "tsv";
4
+ defaultCollection?: number;
5
+ }
6
+ export interface ResolvedConfig {
7
+ token: string | null;
8
+ tokenSource: "env" | "config" | null;
9
+ defaultFormat: "json" | "table" | "tsv";
10
+ defaultCollection: number;
11
+ }
12
+ /**
13
+ * Get the stored token from config file (not env var).
14
+ */
15
+ export declare function getStoredToken(): string | null;
16
+ /**
17
+ * Store token in config file.
18
+ */
19
+ export declare function setStoredToken(token: string): void;
20
+ /**
21
+ * Clear token from config file.
22
+ */
23
+ export declare function clearStoredToken(): void;
24
+ /**
25
+ * Check if a token is configured (either env or config file).
26
+ */
27
+ export declare function hasToken(): boolean;
28
+ /**
29
+ * Get token source for display purposes.
30
+ */
31
+ export declare function getTokenSource(): "env" | "config" | null;
32
+ /**
33
+ * Get resolved config with precedence: env > config file.
34
+ */
35
+ export declare function getConfig(): ResolvedConfig;
36
+ /**
37
+ * Reset cached config (useful for testing or after token changes).
38
+ */
39
+ export declare function resetConfig(): void;
40
+ /**
41
+ * Get the config file path (for display purposes).
42
+ */
43
+ export declare function getConfigFilePath(): string;
44
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IACrC,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IACxC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAwCD;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAG9C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAIlD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAQxD;AAID;;GAEG;AACH,wBAAgB,SAAS,IAAI,cAAc,CA2B1C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}