@purveyors/cli 0.5.2 → 0.6.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 +292 -32
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +35 -4
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/catalog.d.ts +1 -1
- package/dist/commands/catalog.d.ts.map +1 -1
- package/dist/commands/catalog.js +41 -5
- package/dist/commands/catalog.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +26 -0
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context.d.ts +8 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +282 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/inventory.d.ts +1 -1
- package/dist/commands/inventory.d.ts.map +1 -1
- package/dist/commands/inventory.js +78 -41
- package/dist/commands/inventory.js.map +1 -1
- package/dist/commands/roast.d.ts +1 -1
- package/dist/commands/roast.d.ts.map +1 -1
- package/dist/commands/roast.js +112 -63
- package/dist/commands/roast.js.map +1 -1
- package/dist/commands/sales.d.ts +1 -1
- package/dist/commands/sales.d.ts.map +1 -1
- package/dist/commands/sales.js +59 -34
- package/dist/commands/sales.js.map +1 -1
- package/dist/commands/tasting.d.ts +1 -1
- package/dist/commands/tasting.d.ts.map +1 -1
- package/dist/commands/tasting.js +46 -25
- package/dist/commands/tasting.js.map +1 -1
- package/dist/index.js +57 -28
- package/dist/index.js.map +1 -1
- package/dist/lib/auth-guard.d.ts +14 -0
- package/dist/lib/auth-guard.d.ts.map +1 -0
- package/dist/lib/auth-guard.js +44 -0
- package/dist/lib/auth-guard.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
> Coffee intelligence from your terminal.
|
|
4
4
|
|
|
5
|
-
`purvey` is the official command-line interface for [purveyors.io](https://purveyors.io). It gives coffee professionals direct terminal access to the Purveyors platform: search green coffee availability, track pricing tiers, monitor inventory, and
|
|
5
|
+
`purvey` is the official command-line interface for [purveyors.io](https://purveyors.io). It gives coffee professionals direct terminal access to the Purveyors platform: search green coffee availability, track pricing tiers, monitor inventory, record roasts, log sales, and capture tasting notes — all from your terminal or scripts.
|
|
6
|
+
|
|
7
|
+
**Designed for both humans and AI agents.** Run `purvey context` for instant agent onboarding.
|
|
6
8
|
|
|
7
9
|
---
|
|
8
10
|
|
|
@@ -31,8 +33,14 @@ purvey auth login
|
|
|
31
33
|
# 2. Confirm your session
|
|
32
34
|
purvey auth status
|
|
33
35
|
|
|
34
|
-
# 3.
|
|
35
|
-
purvey --
|
|
36
|
+
# 3. Search the catalog (no login required)
|
|
37
|
+
purvey catalog search --origin "Ethiopia" --stocked --pretty
|
|
38
|
+
|
|
39
|
+
# 4. Check your inventory
|
|
40
|
+
purvey inventory list --stocked --pretty
|
|
41
|
+
|
|
42
|
+
# 5. Import a roast from Artisan
|
|
43
|
+
purvey roast import ~/artisan/my-roast.alog --coffee-id 7 --pretty
|
|
36
44
|
```
|
|
37
45
|
|
|
38
46
|
---
|
|
@@ -41,26 +49,39 @@ purvey --help
|
|
|
41
49
|
|
|
42
50
|
`purvey` authenticates via Google OAuth, using the same account as your purveyors.io web session.
|
|
43
51
|
|
|
44
|
-
### Login
|
|
52
|
+
### Browser Login (interactive)
|
|
45
53
|
|
|
46
54
|
```bash
|
|
47
55
|
purvey auth login
|
|
48
56
|
```
|
|
49
57
|
|
|
50
|
-
Opens your browser. Complete Google sign-in, then return to the terminal. Credentials are stored at `~/.config/purvey/credentials.json` (owner-readable only, mode 0600).
|
|
58
|
+
Opens your default browser. Complete Google sign-in, then return to the terminal. Credentials are stored at `~/.config/purvey/credentials.json` (owner-readable only, mode 0600).
|
|
59
|
+
|
|
60
|
+
### Headless Login (agents, CI, servers)
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
purvey auth login --headless
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
No browser required. The CLI prints a Google OAuth URL — open it in any browser, sign in, then copy the full callback URL and paste it back at the prompt.
|
|
51
67
|
|
|
52
68
|
### Status
|
|
53
69
|
|
|
54
70
|
```bash
|
|
55
71
|
purvey auth status
|
|
72
|
+
purvey auth status --pretty
|
|
56
73
|
```
|
|
57
74
|
|
|
58
75
|
```
|
|
59
76
|
✔ Logged in as you@example.com
|
|
60
|
-
ℹ Role:
|
|
61
|
-
ℹ Token expires: 2026-
|
|
77
|
+
ℹ Role: member
|
|
78
|
+
ℹ Token expires: 2026-04-01T08:00:00.000Z
|
|
62
79
|
```
|
|
63
80
|
|
|
81
|
+
### Token Refresh
|
|
82
|
+
|
|
83
|
+
Tokens refresh automatically. No need to re-login between sessions.
|
|
84
|
+
|
|
64
85
|
### Logout
|
|
65
86
|
|
|
66
87
|
```bash
|
|
@@ -71,60 +92,270 @@ Clears stored credentials from disk.
|
|
|
71
92
|
|
|
72
93
|
---
|
|
73
94
|
|
|
74
|
-
## Commands
|
|
75
|
-
|
|
76
|
-
### `purvey auth`
|
|
77
|
-
|
|
78
|
-
| Command | Description |
|
|
79
|
-
| -------------------- | --------------------------------------- |
|
|
80
|
-
| `purvey auth login` | Log in via Google OAuth (opens browser) |
|
|
81
|
-
| `purvey auth status` | Show current authentication state |
|
|
82
|
-
| `purvey auth logout` | Clear stored credentials |
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
95
|
## Output Formats
|
|
87
96
|
|
|
88
97
|
All `purvey` commands default to **compact JSON** — one line, no colors, machine-readable. This makes `purvey` pipeable into `jq`, `csvkit`, or any script.
|
|
89
98
|
|
|
90
|
-
###
|
|
99
|
+
### Compact JSON (default)
|
|
91
100
|
|
|
92
101
|
```bash
|
|
93
102
|
purvey auth status
|
|
94
|
-
# → {"authenticated":true,"email":"you@example.com","role":"
|
|
103
|
+
# → {"authenticated":true,"email":"you@example.com","role":"member","tokenExpires":"..."}
|
|
95
104
|
```
|
|
96
105
|
|
|
97
106
|
### Pretty JSON (`--pretty`)
|
|
98
107
|
|
|
99
108
|
```bash
|
|
100
|
-
purvey
|
|
109
|
+
purvey catalog search --origin "Ethiopia" --pretty
|
|
101
110
|
# → indented, colorized JSON
|
|
102
111
|
```
|
|
103
112
|
|
|
104
113
|
### CSV (`--csv`)
|
|
105
114
|
|
|
106
115
|
```bash
|
|
107
|
-
purvey
|
|
116
|
+
purvey inventory list --csv > inventory.csv
|
|
117
|
+
purvey catalog search --stocked --csv | head -5
|
|
108
118
|
```
|
|
109
119
|
|
|
110
120
|
### Piping with jq
|
|
111
121
|
|
|
112
122
|
```bash
|
|
113
|
-
purvey
|
|
114
|
-
|
|
123
|
+
purvey inventory list | jq '.[].id'
|
|
124
|
+
purvey catalog search --origin "Colombia" | jq '.[].cost_lb'
|
|
125
|
+
purvey auth status | jq -r '.email'
|
|
115
126
|
```
|
|
116
127
|
|
|
117
|
-
User feedback messages (spinners, success/error) go to **stderr
|
|
128
|
+
User feedback messages (spinners, success/error) go to **stderr** only — stdout is always clean data, safe to pipe.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Command Reference
|
|
133
|
+
|
|
134
|
+
### Authentication
|
|
135
|
+
|
|
136
|
+
| Command | Description |
|
|
137
|
+
| ------------------------------ | --------------------------------------------- |
|
|
138
|
+
| `purvey auth login` | Log in via Google OAuth (browser) |
|
|
139
|
+
| `purvey auth login --headless` | Log in without a browser (paste callback URL) |
|
|
140
|
+
| `purvey auth status` | Show current authentication state and role |
|
|
141
|
+
| `purvey auth logout` | Clear stored credentials |
|
|
142
|
+
|
|
143
|
+
### Catalog (no authentication required)
|
|
144
|
+
|
|
145
|
+
| Command | Description |
|
|
146
|
+
| ------------------------- | --------------------------------------------------- |
|
|
147
|
+
| `purvey catalog search` | Search coffees by origin, process, price, or flavor |
|
|
148
|
+
| `purvey catalog get <id>` | Get details for a specific coffee by catalog ID |
|
|
149
|
+
| `purvey catalog stats` | Aggregate statistics for the full catalog |
|
|
150
|
+
|
|
151
|
+
**catalog search options:**
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
--origin <text> country or region (e.g. "Ethiopia", "Colombia")
|
|
155
|
+
--process <method> natural, washed, honey
|
|
156
|
+
--price-min <n> min USD/lb
|
|
157
|
+
--price-max <n> max USD/lb
|
|
158
|
+
--flavor <keywords> comma-separated (e.g. "blueberry,citrus")
|
|
159
|
+
--stocked only currently stocked coffees
|
|
160
|
+
--limit <n> max results (default: 10)
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Inventory (member role required)
|
|
164
|
+
|
|
165
|
+
| Command | Description |
|
|
166
|
+
| ------------------------------ | -------------------------------- |
|
|
167
|
+
| `purvey inventory list` | List your green coffee inventory |
|
|
168
|
+
| `purvey inventory get <id>` | Get a single inventory item |
|
|
169
|
+
| `purvey inventory add` | Add a bean to your inventory |
|
|
170
|
+
| `purvey inventory update <id>` | Update an inventory item |
|
|
171
|
+
| `purvey inventory delete <id>` | Delete an inventory item |
|
|
172
|
+
|
|
173
|
+
**inventory add** — required flags: `--catalog-id`, `--qty`
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
purvey inventory add --catalog-id 128 --qty 10 --cost 8.50
|
|
177
|
+
purvey inventory add --form # interactive wizard
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Roast Profiles (member role required)
|
|
181
|
+
|
|
182
|
+
| Command | Description |
|
|
183
|
+
| ---------------------------- | ------------------------------------- |
|
|
184
|
+
| `purvey roast list` | List your roast profiles |
|
|
185
|
+
| `purvey roast get <id>` | Get a single roast profile |
|
|
186
|
+
| `purvey roast create` | Create a new roast profile |
|
|
187
|
+
| `purvey roast delete <id>` | Delete a roast profile |
|
|
188
|
+
| `purvey roast import [file]` | Import an Artisan .alog roast file |
|
|
189
|
+
| `purvey roast watch [dir]` | Watch a directory for new .alog files |
|
|
190
|
+
|
|
191
|
+
**roast import** — required: `<file>`, `--coffee-id`
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
purvey roast import ~/artisan/ethiopia.alog --coffee-id 7
|
|
195
|
+
purvey roast import --form # interactive wizard
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**roast watch** — required: `<directory>`, `--coffee-id` (or `--auto-match`)
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
purvey roast watch ~/artisan/ --coffee-id 7
|
|
202
|
+
purvey roast watch ~/artisan/ --auto-match # AI matches beans per file
|
|
203
|
+
purvey roast watch --resume # continue previous session
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Sales (member role required)
|
|
207
|
+
|
|
208
|
+
| Command | Description |
|
|
209
|
+
| -------------------------- | ----------------------- |
|
|
210
|
+
| `purvey sales list` | List your sales records |
|
|
211
|
+
| `purvey sales record` | Record a new sale |
|
|
212
|
+
| `purvey sales update <id>` | Update a sale record |
|
|
213
|
+
| `purvey sales delete <id>` | Delete a sale record |
|
|
214
|
+
|
|
215
|
+
**sales record** — required flags: `--roast-id`, `--oz`, `--price`
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
purvey sales record --roast-id 123 --oz 12 --price 22.00
|
|
219
|
+
purvey sales record --form # interactive wizard
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Tasting Notes (member role required)
|
|
223
|
+
|
|
224
|
+
| Command | Description |
|
|
225
|
+
| ------------------------------------ | -------------------------------------- |
|
|
226
|
+
| `purvey tasting get <catalog-id>` | Get tasting notes for a catalog coffee |
|
|
227
|
+
| `purvey tasting rate [inventory-id]` | Rate a coffee with cupping scores |
|
|
228
|
+
|
|
229
|
+
**tasting rate** — required (flag mode): `<inventory-id>` + all five score flags
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
purvey tasting rate 7 --aroma 4 --body 3 --acidity 5 --sweetness 4 --aftertaste 4
|
|
233
|
+
purvey tasting rate --form # interactive wizard
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Configuration
|
|
237
|
+
|
|
238
|
+
| Command | Description |
|
|
239
|
+
| --------------------------------- | ---------------------------- |
|
|
240
|
+
| `purvey config list` | Show all config values |
|
|
241
|
+
| `purvey config get <key>` | Get a single config value |
|
|
242
|
+
| `purvey config set <key> <value>` | Set a config value |
|
|
243
|
+
| `purvey config reset` | Reset all config to defaults |
|
|
244
|
+
|
|
245
|
+
**Supported config keys:**
|
|
246
|
+
|
|
247
|
+
| Key | Values | Description |
|
|
248
|
+
| ----------- | ---------------- | ------------------------------------------------------------------------------------ |
|
|
249
|
+
| `form-mode` | `true` / `false` | When true, write commands auto-enter interactive wizard if required args are missing |
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
purvey config set form-mode true
|
|
253
|
+
purvey config get form-mode
|
|
254
|
+
purvey config list
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Common Workflows
|
|
260
|
+
|
|
261
|
+
### Buy green coffee, roast it, record a sale
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
# Find a coffee
|
|
265
|
+
purvey catalog search --origin "Ethiopia" --process "natural" --stocked --pretty
|
|
266
|
+
|
|
267
|
+
# Add to inventory (catalog-id from search results)
|
|
268
|
+
purvey inventory add --catalog-id 128 --qty 10 --cost 8.50
|
|
269
|
+
|
|
270
|
+
# Get your inventory id
|
|
271
|
+
purvey inventory list --stocked --pretty
|
|
272
|
+
|
|
273
|
+
# Import a roast from Artisan (inventory id = 7)
|
|
274
|
+
purvey roast import ~/artisan/guji-light.alog --coffee-id 7 --pretty
|
|
275
|
+
|
|
276
|
+
# Rate the coffee after brewing
|
|
277
|
+
purvey tasting rate 7 --aroma 5 --body 3 --acidity 5 --sweetness 4 --aftertaste 4
|
|
278
|
+
|
|
279
|
+
# Record a sale (roast_id from import output)
|
|
280
|
+
purvey sales record --roast-id 123 --oz 12 --price 22.00 --buyer "Jane Smith"
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Continuous watch mode for Artisan
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
# Watch a directory — auto-imports every new .alog file
|
|
287
|
+
purvey roast watch ~/Library/Application\ Support/Artisan-Scope/artisan/ --coffee-id 7
|
|
288
|
+
|
|
289
|
+
# Resume a watch session after restart
|
|
290
|
+
purvey roast watch --resume
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Export data for spreadsheets
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
purvey inventory list --csv > inventory.csv
|
|
297
|
+
purvey roast list --csv > roasts.csv
|
|
298
|
+
purvey sales list --csv > sales.csv
|
|
299
|
+
```
|
|
118
300
|
|
|
119
301
|
---
|
|
120
302
|
|
|
121
303
|
## Environment Variables
|
|
122
304
|
|
|
123
|
-
| Variable | Description
|
|
124
|
-
| ----------------------------- |
|
|
125
|
-
| `PURVEYORS_SUPABASE_URL` | Override the Supabase project URL (
|
|
126
|
-
| `PURVEYORS_SUPABASE_ANON_KEY` | Override the Supabase anon key
|
|
127
|
-
| `PURVEY_DEBUG` | Set to any value to enable verbose error output
|
|
305
|
+
| Variable | Description |
|
|
306
|
+
| ----------------------------- | ----------------------------------------------- |
|
|
307
|
+
| `PURVEYORS_SUPABASE_URL` | Override the Supabase project URL (dev/staging) |
|
|
308
|
+
| `PURVEYORS_SUPABASE_ANON_KEY` | Override the Supabase anon key |
|
|
309
|
+
| `PURVEY_DEBUG` | Set to any value to enable verbose error output |
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## For AI Agents
|
|
314
|
+
|
|
315
|
+
`purvey` is built with AI agents in mind. Every command has structured JSON output, clear error messages, and an `--headless` auth flow.
|
|
316
|
+
|
|
317
|
+
### Agent Onboarding
|
|
318
|
+
|
|
319
|
+
Run this once to get complete CLI knowledge:
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
purvey context
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
This outputs a comprehensive, token-efficient reference covering all commands, required vs optional flags, data model relationships, common workflows, and error recovery. Designed for agents to read once and use every command correctly.
|
|
326
|
+
|
|
327
|
+
### Agent Auth Flow
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
purvey auth login --headless
|
|
331
|
+
# → prints OAuth URL
|
|
332
|
+
# → user opens URL, signs in, pastes callback URL back
|
|
333
|
+
# Token auto-refreshes; no further auth action needed.
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### Agent Usage Pattern
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
# Check auth before any write operations
|
|
340
|
+
purvey auth status
|
|
341
|
+
|
|
342
|
+
# Always use JSON output (default) for scripting
|
|
343
|
+
purvey catalog search --origin "Ethiopia" | jq '.[0].catalog_id'
|
|
344
|
+
purvey inventory list | jq '.[] | select(.stocked == true) | .id'
|
|
345
|
+
|
|
346
|
+
# Use --yes to skip confirmation prompts in automated flows
|
|
347
|
+
purvey inventory delete 7 --yes
|
|
348
|
+
purvey sales delete 5 --yes
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### ID Types (avoid confusion)
|
|
352
|
+
|
|
353
|
+
| ID | Table | Used with |
|
|
354
|
+
| -------------- | ------------------ | ------------------------------------------------------------------ |
|
|
355
|
+
| `catalog_id` | `coffee_catalog` | `catalog get`, `inventory add --catalog-id`, `tasting get` |
|
|
356
|
+
| `inventory_id` | `green_coffee_inv` | `inventory get/update/delete`, `roast --coffee-id`, `tasting rate` |
|
|
357
|
+
| `roast_id` | `roast_data` | `roast get/delete`, `sales --roast-id` |
|
|
358
|
+
| `sale_id` | `coffee_sales` | `sales update/delete` |
|
|
128
359
|
|
|
129
360
|
---
|
|
130
361
|
|
|
@@ -147,6 +378,7 @@ Run locally:
|
|
|
147
378
|
|
|
148
379
|
```bash
|
|
149
380
|
pnpm dev -- auth status
|
|
381
|
+
pnpm dev -- catalog search --origin Ethiopia --pretty
|
|
150
382
|
pnpm dev -- --help
|
|
151
383
|
```
|
|
152
384
|
|
|
@@ -164,7 +396,35 @@ pnpm check
|
|
|
164
396
|
pnpm test
|
|
165
397
|
```
|
|
166
398
|
|
|
167
|
-
|
|
399
|
+
### Architecture
|
|
400
|
+
|
|
401
|
+
```
|
|
402
|
+
src/
|
|
403
|
+
index.ts Entry point — registers all subcommands
|
|
404
|
+
commands/ One file per command group
|
|
405
|
+
auth.ts OAuth login/status/logout
|
|
406
|
+
catalog.ts Public coffee catalog search
|
|
407
|
+
config.ts CLI configuration
|
|
408
|
+
context.ts Agent onboarding reference
|
|
409
|
+
inventory.ts Green coffee inventory management
|
|
410
|
+
roast.ts Roast profiles + Artisan .alog import
|
|
411
|
+
sales.ts Sales recording
|
|
412
|
+
tasting.ts Cupping notes and scoring
|
|
413
|
+
lib/ Business logic (no Commander dependencies)
|
|
414
|
+
supabase.ts Auth client + session management
|
|
415
|
+
catalog.ts Catalog query functions
|
|
416
|
+
inventory.ts Inventory CRUD
|
|
417
|
+
roast.ts Roast profile CRUD + import pipeline
|
|
418
|
+
sales.ts Sales CRUD
|
|
419
|
+
tasting.ts Tasting notes + cupping score logic
|
|
420
|
+
artisan/ Artisan .alog parser
|
|
421
|
+
interactive/ Interactive form prompts + watch mode
|
|
422
|
+
output.ts JSON/CSV output formatting
|
|
423
|
+
errors.ts Error handling + withErrorHandling wrapper
|
|
424
|
+
config.ts Local config read/write
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
See [AGENTS.md](./AGENTS.md) for the full contributor guide including code conventions and PR requirements.
|
|
168
428
|
|
|
169
429
|
---
|
|
170
430
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgUpC;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgUpC;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CA2E1C"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -275,20 +275,51 @@ export function buildAuthCommand() {
|
|
|
275
275
|
});
|
|
276
276
|
login.addHelpText('after', `
|
|
277
277
|
Examples:
|
|
278
|
-
${chalk.dim('# Browser login (interactive, opens Google OAuth)')}
|
|
278
|
+
${chalk.dim('# Browser login (interactive, opens Google OAuth in default browser)')}
|
|
279
279
|
purvey auth login
|
|
280
280
|
|
|
281
|
-
${chalk.dim('# Headless login (agents, CI, servers — no browser
|
|
281
|
+
${chalk.dim('# Headless login (agents, CI, servers — no browser required)')}
|
|
282
282
|
purvey auth login --headless
|
|
283
|
-
${chalk.dim('#
|
|
283
|
+
${chalk.dim('# → prints a Google OAuth URL')}
|
|
284
|
+
${chalk.dim('# → open URL, sign in with Google')}
|
|
285
|
+
${chalk.dim('# → copy the full callback URL from the browser')}
|
|
286
|
+
${chalk.dim('# → paste it back at the prompt')}
|
|
287
|
+
|
|
288
|
+
Notes:
|
|
289
|
+
Credentials are stored at ~/.config/purvey/credentials.json (mode 0600).
|
|
290
|
+
Tokens auto-refresh; no need to re-login between sessions.
|
|
291
|
+
Uses Google OAuth via Supabase — same account as purveyors.io web app.
|
|
284
292
|
`);
|
|
285
293
|
auth
|
|
286
294
|
.command('status')
|
|
287
295
|
.description('Show current authentication status')
|
|
288
296
|
.option('--pretty', 'Pretty-print JSON output')
|
|
289
297
|
.option('--csv', 'Output as CSV')
|
|
298
|
+
.addHelpText('after', `
|
|
299
|
+
Examples:
|
|
300
|
+
purvey auth status
|
|
301
|
+
purvey auth status --pretty
|
|
302
|
+
purvey auth status | jq '.email'
|
|
303
|
+
|
|
304
|
+
Output fields:
|
|
305
|
+
authenticated boolean — true if a valid session exists
|
|
306
|
+
email your Google account email
|
|
307
|
+
role your purveyors.io role (viewer or member)
|
|
308
|
+
tokenExpires ISO timestamp when the access token expires
|
|
309
|
+
`)
|
|
290
310
|
.action(statusAction);
|
|
291
|
-
auth
|
|
311
|
+
auth
|
|
312
|
+
.command('logout')
|
|
313
|
+
.description('Clear stored credentials')
|
|
314
|
+
.addHelpText('after', `
|
|
315
|
+
Examples:
|
|
316
|
+
purvey auth logout
|
|
317
|
+
|
|
318
|
+
Notes:
|
|
319
|
+
Deletes ~/.config/purvey/credentials.json.
|
|
320
|
+
Run 'purvey auth login' to authenticate again.
|
|
321
|
+
`)
|
|
322
|
+
.action(logoutAction);
|
|
292
323
|
return auth;
|
|
293
324
|
}
|
|
294
325
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,qBAAqB,GAAG,WAAW,CAAC;AAC1C,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAavC;;;;;;GAMG;AACH,SAAS,mBAAmB;IAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,YAA4C,CAAC;QACjD,IAAI,WAAkC,CAAC;QAEvC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5D,YAAY,GAAG,GAAG,CAAC;YACnB,WAAW,GAAG,GAAG,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,UAAU,qBAAqB,EAAE,CAAC,CAAC;YAEvE,IAAI,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;gBACnC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;gBACpD,GAAG,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;QAsBR,CAAC,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IAAI,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5D,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;gBAC3C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACd,MAAM,CAAC,KAAK,EAAE,CAAC;oBAEf,IAAI,CAAC;wBACH,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAIlE,CAAC;wBAEF,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;4BACpC,WAAW,CAAC,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC,CAAC;4BAChF,OAAO;wBACT,CAAC;wBAED,YAAY,CAAC;4BACX,WAAW,EAAE,YAAY;4BACzB,YAAY,EAAE,aAAa;4BAC3B,SAAS,EAAE,QAAQ,CAAC,UAAU,IAAI,MAAM,EAAE,EAAE,CAAC;yBAC9C,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACP,WAAW,CAAC,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC,CAAC;oBACzE,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;YAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC,CAAC;gBAC1D,OAAO;YACT,CAAC;YACD,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,IAAI,EAAE;IAC/C,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC3D,MAAM,UAAU,GAAG,UAAU,qBAAqB,IAAI,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7E,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;QAC1D,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,EAAE,UAAU,EAAE;KACxB,CAAC,CAAC;IAEH,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,SAAS,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAElF,+DAA+D;IAC/D,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAChD,MAAM,OAAO,GACX,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/F,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,2EAA2E;QAC7E,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,mDAAmD;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7D,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,MAAM,YAAY,CAAC;IACpE,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAE3C,sCAAsC;IACtC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;IACzF,MAAM,EACJ,IAAI,EAAE,EAAE,IAAI,EAAE,GACf,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAEhC,MAAM,KAAK,GAAsB;QAC/B,WAAW;QACX,YAAY;QACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI;QACxC,IAAI,EAAE;YACJ,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,SAAS;YACzB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS;YAC/B,IAAI,EAAE,IAAI,EAAE,IAAI;SACjB;KACF,CAAC;IAEF,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAU,EAAE,GAAY,EAAE,EAAE;IACxE,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,EAAyC,CAAC;IAC1E,MAAM,OAAO,GAAG,GAAG,CAAC,mCAAmC,CAAC,CAAC,KAAK,EAAE,CAAC;IACjE,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;IACxC,OAAO,CAAC,IAAI,EAAE,CAAC;IAEf,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,MAAM,GAAG;YACb,aAAa,EAAE,KAAK;YACpB,OAAO,EAAE,yDAAyD;SACnE,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG;QACb,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,eAAe;QACrC,YAAY,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;KACxD,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,OAAO,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,kBAAkB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,IAAI,EAAE;IACvD,iEAAiE;IACjE,MAAM,UAAU,GAAG,wCAAwC,CAAC;IAC5D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;QAC1D,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE;KACnD,CAAC,CAAC;IAEH,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IAErE,mCAAmC;IACnC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE7E,MAAM,WAAW,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACxD,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3D,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IAED,uDAAuD;IACvD,0EAA0E;IAC1E,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;SAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,2CAA2C;QAC3C,QAAQ,GAAG,WAAW,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE3C,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,IAAI,SAAS,CACjB,0CAA0C;YACxC,oFAAoF,CACvF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IACrD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,EACJ,IAAI,EAAE,EAAE,IAAI,EAAE,EACd,KAAK,EAAE,SAAS,GACjB,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE3C,IAAI,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACxC,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,KAAK,GAAsB;QAC/B,WAAW;QACX,YAAY;QACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,IAAI,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI;QAChE,IAAI,EAAE;YACJ,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB;KACF,CAAC;IAEF,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,CAAC,OAAO,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,IAAI,EAAE;IAChD,MAAM,iBAAiB,EAAE,CAAC;IAC1B,OAAO,CAAC,0BAA0B,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC;IAExF,MAAM,KAAK,GAAG,IAAI;SACf,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,YAAY,EAAE,0DAA0D,CAAC;SAChF,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,mBAAmB,EAAE,CAAC;QAC/B,CAAC;QACD,8BAA8B;QAC9B,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEL,KAAK,CAAC,WAAW,CACf,OAAO,EACP;;IAEA,KAAK,CAAC,GAAG,CAAC,sEAAsE,CAAC;;;IAGjF,KAAK,CAAC,GAAG,CAAC,8DAA8D,CAAC;;IAEzE,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC;IAC1C,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC;IAC9C,KAAK,CAAC,GAAG,CAAC,iDAAiD,CAAC;IAC5D,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC;;;;;;CAM/C,CACE,CAAC;IAEF,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,UAAU,EAAE,0BAA0B,CAAC;SAC9C,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC;SAChC,WAAW,CACV,OAAO,EACP;;;;;;;;;;;CAWL,CACI;SACA,MAAM,CAAC,YAAY,CAAC,CAAC;IAExB,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,0BAA0B,CAAC;SACvC,WAAW,CACV,OAAO,EACP;;;;;;;CAOL,CACI;SACA,MAAM,CAAC,YAAY,CAAC,CAAC;IAExB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -5,7 +5,7 @@ export type { CatalogItem, CatalogStats };
|
|
|
5
5
|
export { sanitizeFilterValue, computeCatalogStats };
|
|
6
6
|
/**
|
|
7
7
|
* `purvey catalog` — Browse the public coffee catalog.
|
|
8
|
-
*
|
|
8
|
+
* Requires authentication (viewer+).
|
|
9
9
|
*/
|
|
10
10
|
export declare function buildCatalogCommand(): Command;
|
|
11
11
|
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/commands/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAIL,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAInE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;AAIpD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/commands/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAIL,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAInE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;AAIpD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAgH7C"}
|
package/dist/commands/catalog.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import { createAnonClient } from '../lib/supabase.js';
|
|
3
2
|
import { outputData, info } from '../lib/output.js';
|
|
4
3
|
import { withErrorHandling } from '../lib/errors.js';
|
|
4
|
+
import { requireAuth } from '../lib/auth-guard.js';
|
|
5
5
|
import { searchCatalog, getCatalog, getCatalogStats, computeCatalogStats, sanitizeFilterValue, } from '../lib/catalog.js';
|
|
6
6
|
export { sanitizeFilterValue, computeCatalogStats };
|
|
7
7
|
// ─── Command builder ──────────────────────────────────────────────────────────
|
|
8
8
|
/**
|
|
9
9
|
* `purvey catalog` — Browse the public coffee catalog.
|
|
10
|
-
*
|
|
10
|
+
* Requires authentication (viewer+).
|
|
11
11
|
*/
|
|
12
12
|
export function buildCatalogCommand() {
|
|
13
13
|
const catalog = new Command('catalog').description('Browse the public coffee catalog');
|
|
@@ -22,9 +22,23 @@ export function buildCatalogCommand() {
|
|
|
22
22
|
.option('--flavor <keywords>', 'Flavor keywords, comma-separated (e.g. "berry,chocolate")')
|
|
23
23
|
.option('--stocked', 'Only show currently stocked coffees')
|
|
24
24
|
.option('--limit <n>', 'Maximum results to return', '10')
|
|
25
|
+
.addHelpText('after', `
|
|
26
|
+
Examples:
|
|
27
|
+
purvey catalog search --origin "Ethiopia" --pretty
|
|
28
|
+
purvey catalog search --origin "Colombia" --process "honey" --pretty
|
|
29
|
+
purvey catalog search --process "natural" --flavor "blueberry,citrus" --stocked
|
|
30
|
+
purvey catalog search --price-min 5 --price-max 12 --stocked --limit 20
|
|
31
|
+
purvey catalog search --origin "Ethiopia" --csv > ethiopia.csv
|
|
32
|
+
purvey catalog search --stocked --limit 50 | jq '.[].name'
|
|
33
|
+
|
|
34
|
+
Notes:
|
|
35
|
+
All filters are optional. Without flags, returns up to --limit results.
|
|
36
|
+
--origin accepts partial matches (e.g. "Ethiopia" matches "Ethiopia Guji").
|
|
37
|
+
No authentication required — catalog is publicly readable.
|
|
38
|
+
`)
|
|
25
39
|
.action(withErrorHandling(async (opts, cmd) => {
|
|
26
40
|
const globalOpts = cmd.optsWithGlobals();
|
|
27
|
-
const supabase =
|
|
41
|
+
const { supabase } = await requireAuth('viewer');
|
|
28
42
|
const data = await searchCatalog(supabase, {
|
|
29
43
|
origin: opts.origin,
|
|
30
44
|
process: opts.process,
|
|
@@ -44,9 +58,20 @@ export function buildCatalogCommand() {
|
|
|
44
58
|
catalog
|
|
45
59
|
.command('get <id>')
|
|
46
60
|
.description('Fetch a single coffee by ID')
|
|
61
|
+
.addHelpText('after', `
|
|
62
|
+
Examples:
|
|
63
|
+
purvey catalog get 128 --pretty
|
|
64
|
+
purvey catalog get 42 | jq '{name, origin, process, cost_lb}'
|
|
65
|
+
purvey catalog get 77 --csv
|
|
66
|
+
|
|
67
|
+
Notes:
|
|
68
|
+
<id> is the coffee_catalog.catalog_id (integer).
|
|
69
|
+
Use 'purvey catalog search' to find IDs.
|
|
70
|
+
No authentication required.
|
|
71
|
+
`)
|
|
47
72
|
.action(withErrorHandling(async (id, _opts, cmd) => {
|
|
48
73
|
const globalOpts = cmd.optsWithGlobals();
|
|
49
|
-
const supabase =
|
|
74
|
+
const { supabase } = await requireAuth('viewer');
|
|
50
75
|
const data = await getCatalog(supabase, parseInt(id, 10));
|
|
51
76
|
outputData(data, globalOpts);
|
|
52
77
|
}));
|
|
@@ -54,9 +79,20 @@ export function buildCatalogCommand() {
|
|
|
54
79
|
catalog
|
|
55
80
|
.command('stats')
|
|
56
81
|
.description('Aggregate statistics for the coffee catalog')
|
|
82
|
+
.addHelpText('after', `
|
|
83
|
+
Examples:
|
|
84
|
+
purvey catalog stats --pretty
|
|
85
|
+
purvey catalog stats | jq '.totalCoffees'
|
|
86
|
+
purvey catalog stats --csv
|
|
87
|
+
|
|
88
|
+
Notes:
|
|
89
|
+
Returns aggregated data: total count, average price, unique origins,
|
|
90
|
+
processing method breakdown, and stocked count.
|
|
91
|
+
No authentication required.
|
|
92
|
+
`)
|
|
57
93
|
.action(withErrorHandling(async (_opts, cmd) => {
|
|
58
94
|
const globalOpts = cmd.optsWithGlobals();
|
|
59
|
-
const supabase =
|
|
95
|
+
const { supabase } = await requireAuth('viewer');
|
|
60
96
|
const stats = await getCatalogStats(supabase);
|
|
61
97
|
outputData(stats, globalOpts);
|
|
62
98
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/commands/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/commands/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAuI5C"}
|