@purveyors/cli 0.25.0 → 0.27.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 +19 -11
- package/dist/commands/catalog.d.ts.map +1 -1
- package/dist/commands/catalog.js +11 -47
- package/dist/commands/catalog.js.map +1 -1
- package/dist/commands/inventory.d.ts.map +1 -1
- package/dist/commands/inventory.js +17 -44
- package/dist/commands/inventory.js.map +1 -1
- package/dist/commands/market.d.ts.map +1 -1
- package/dist/commands/market.js +4 -2
- package/dist/commands/market.js.map +1 -1
- package/dist/commands/roast.d.ts +3 -0
- package/dist/commands/roast.d.ts.map +1 -1
- package/dist/commands/roast.js +15 -11
- package/dist/commands/roast.js.map +1 -1
- package/dist/commands/sales.d.ts.map +1 -1
- package/dist/commands/sales.js +15 -11
- package/dist/commands/sales.js.map +1 -1
- package/dist/commands/tasting.d.ts.map +1 -1
- package/dist/commands/tasting.js +1 -2
- package/dist/commands/tasting.js.map +1 -1
- package/dist/lib/auth-guard.d.ts.map +1 -1
- package/dist/lib/auth-guard.js +14 -6
- package/dist/lib/auth-guard.js.map +1 -1
- package/dist/lib/catalog.d.ts +12 -14
- package/dist/lib/catalog.d.ts.map +1 -1
- package/dist/lib/catalog.js +177 -520
- package/dist/lib/catalog.js.map +1 -1
- package/dist/lib/interactive/forms.d.ts +1 -1
- package/dist/lib/interactive/forms.d.ts.map +1 -1
- package/dist/lib/interactive/forms.js +3 -10
- package/dist/lib/interactive/forms.js.map +1 -1
- package/dist/lib/inventory.d.ts +8 -16
- package/dist/lib/inventory.d.ts.map +1 -1
- package/dist/lib/inventory.js +44 -227
- package/dist/lib/inventory.js.map +1 -1
- package/dist/lib/manifest.d.ts.map +1 -1
- package/dist/lib/manifest.js +7 -15
- package/dist/lib/manifest.js.map +1 -1
- package/dist/lib/market.d.ts +1 -1
- package/dist/lib/market.d.ts.map +1 -1
- package/dist/lib/parchment-base.d.ts +3 -0
- package/dist/lib/parchment-base.d.ts.map +1 -0
- package/dist/lib/parchment-base.js +9 -0
- package/dist/lib/parchment-base.js.map +1 -0
- package/dist/lib/parchment.d.ts +1 -1
- package/dist/lib/parchment.d.ts.map +1 -1
- package/dist/lib/parchment.js +5 -7
- package/dist/lib/parchment.js.map +1 -1
- package/dist/lib/roast.d.ts +16 -24
- package/dist/lib/roast.d.ts.map +1 -1
- package/dist/lib/roast.js +33 -224
- package/dist/lib/roast.js.map +1 -1
- package/dist/lib/sales.d.ts +12 -6
- package/dist/lib/sales.d.ts.map +1 -1
- package/dist/lib/sales.js +13 -27
- package/dist/lib/sales.js.map +1 -1
- package/dist/lib/supabase.d.ts.map +1 -1
- package/dist/lib/supabase.js +14 -9
- package/dist/lib/supabase.js.map +1 -1
- package/dist/lib/tasting.d.ts +1 -1
- package/dist/lib/tasting.d.ts.map +1 -1
- package/dist/lib/tasting.js +5 -53
- package/dist/lib/tasting.js.map +1 -1
- package/package.json +2 -2
package/dist/lib/tasting.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { AuthError, PrvrsError } from './errors.js';
|
|
3
|
+
import { createParchmentClient, unwrapParchment } from './parchment.js';
|
|
3
4
|
// ─── Zod schemas ──────────────────────────────────────────────────────────────
|
|
4
5
|
export const tastingFilterSchema = z.enum(['user', 'supplier', 'both']);
|
|
5
6
|
export const getTastingNotesSchema = z.object({
|
|
@@ -34,60 +35,11 @@ export function parseCuppingScore(raw, flag) {
|
|
|
34
35
|
* Get tasting notes for a bean by coffee_catalog ID.
|
|
35
36
|
* Combines supplier notes from coffee_catalog with user notes from green_coffee_inv.
|
|
36
37
|
*/
|
|
37
|
-
export async function getTastingNotes(
|
|
38
|
+
export async function getTastingNotes(id, filter = 'both') {
|
|
38
39
|
getTastingNotesSchema.parse({ bean_id: id, filter });
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
supplier: null,
|
|
43
|
-
user: null,
|
|
44
|
-
};
|
|
45
|
-
// ── Supplier notes (from coffee_catalog) ─────────────────────────
|
|
46
|
-
if (filter === 'supplier' || filter === 'both') {
|
|
47
|
-
const { data: catalogRow, error: catalogError } = await supabase
|
|
48
|
-
.from('coffee_catalog')
|
|
49
|
-
.select('id, name, processing, region, source, cupping_notes, ai_tasting_notes, ai_description')
|
|
50
|
-
.eq('id', id)
|
|
51
|
-
.single();
|
|
52
|
-
if (catalogError && catalogError.code !== 'PGRST116') {
|
|
53
|
-
throw catalogError;
|
|
54
|
-
}
|
|
55
|
-
if (catalogRow) {
|
|
56
|
-
result.supplier = {
|
|
57
|
-
source: 'supplier',
|
|
58
|
-
catalogId: catalogRow.id,
|
|
59
|
-
name: catalogRow.name ?? null,
|
|
60
|
-
processing: catalogRow.processing ?? null,
|
|
61
|
-
region: catalogRow.region ?? null,
|
|
62
|
-
cupping_notes: catalogRow.cupping_notes ?? null,
|
|
63
|
-
ai_tasting_notes: catalogRow.ai_tasting_notes ?? null,
|
|
64
|
-
ai_description: catalogRow.ai_description ?? null,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
// ── User notes (from green_coffee_inv) ───────────────────────────
|
|
69
|
-
if (filter === 'user' || filter === 'both') {
|
|
70
|
-
const { data: invRows, error: invError } = await supabase
|
|
71
|
-
.from('green_coffee_inv')
|
|
72
|
-
.select('id, catalog_id, cupping_notes, notes')
|
|
73
|
-
.eq('catalog_id', id)
|
|
74
|
-
.eq('user', userId)
|
|
75
|
-
.order('id', { ascending: false })
|
|
76
|
-
.limit(1);
|
|
77
|
-
if (invError)
|
|
78
|
-
throw invError;
|
|
79
|
-
if (invRows && invRows.length > 0) {
|
|
80
|
-
const row = invRows[0];
|
|
81
|
-
result.user = {
|
|
82
|
-
source: 'user',
|
|
83
|
-
inventoryId: row.id,
|
|
84
|
-
catalogId: row.catalog_id ?? null,
|
|
85
|
-
cupping_notes: row.cupping_notes ?? null,
|
|
86
|
-
notes: row.notes ?? null,
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return result;
|
|
40
|
+
const client = await createParchmentClient('member');
|
|
41
|
+
const envelope = unwrapParchment(await client.tasting.get(String(id), { filter }), 'Tasting notes');
|
|
42
|
+
return envelope.data;
|
|
91
43
|
}
|
|
92
44
|
/**
|
|
93
45
|
* Rate a coffee by storing cupping scores on the inventory item (must belong to userId).
|
package/dist/lib/tasting.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasting.js","sourceRoot":"","sources":["../../src/lib/tasting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"tasting.js","sourceRoot":"","sources":["../../src/lib/tasting.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@purveyors/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.0",
|
|
4
4
|
"description": "The official CLI for purveyors.io — coffee intelligence from your terminal",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"@clack/prompts": "^1.1.0",
|
|
60
|
-
"@purveyors/sdk": "^0.7.
|
|
60
|
+
"@purveyors/sdk": "^0.7.1",
|
|
61
61
|
"@supabase/supabase-js": "^2.49.1",
|
|
62
62
|
"chalk": "^5.4.1",
|
|
63
63
|
"commander": "^13.1.0",
|