@purveyors/cli 0.27.0 → 0.31.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 (76) hide show
  1. package/README.md +42 -46
  2. package/dist/commands/auth.d.ts +6 -2
  3. package/dist/commands/auth.d.ts.map +1 -1
  4. package/dist/commands/auth.js +119 -71
  5. package/dist/commands/auth.js.map +1 -1
  6. package/dist/commands/inventory.js +1 -1
  7. package/dist/commands/inventory.js.map +1 -1
  8. package/dist/commands/roast.d.ts +3 -3
  9. package/dist/commands/roast.d.ts.map +1 -1
  10. package/dist/commands/roast.js +15 -18
  11. package/dist/commands/roast.js.map +1 -1
  12. package/dist/commands/sales.d.ts +17 -1
  13. package/dist/commands/sales.d.ts.map +1 -1
  14. package/dist/commands/sales.js +23 -20
  15. package/dist/commands/sales.js.map +1 -1
  16. package/dist/commands/tasting.d.ts.map +1 -1
  17. package/dist/commands/tasting.js +19 -7
  18. package/dist/commands/tasting.js.map +1 -1
  19. package/dist/lib/ai.d.ts +6 -9
  20. package/dist/lib/ai.d.ts.map +1 -1
  21. package/dist/lib/ai.js +8 -27
  22. package/dist/lib/ai.js.map +1 -1
  23. package/dist/lib/auth-client.d.ts +33 -0
  24. package/dist/lib/auth-client.d.ts.map +1 -0
  25. package/dist/lib/auth-client.js +63 -0
  26. package/dist/lib/auth-client.js.map +1 -0
  27. package/dist/lib/auth-guard.d.ts +3 -3
  28. package/dist/lib/auth-guard.d.ts.map +1 -1
  29. package/dist/lib/auth-guard.js +2 -2
  30. package/dist/lib/auth-guard.js.map +1 -1
  31. package/dist/lib/catalog.js +2 -2
  32. package/dist/lib/catalog.js.map +1 -1
  33. package/dist/lib/config.d.ts.map +1 -1
  34. package/dist/lib/config.js +23 -2
  35. package/dist/lib/config.js.map +1 -1
  36. package/dist/lib/interactive/forms.d.ts +3 -4
  37. package/dist/lib/interactive/forms.d.ts.map +1 -1
  38. package/dist/lib/interactive/forms.js +15 -36
  39. package/dist/lib/interactive/forms.js.map +1 -1
  40. package/dist/lib/interactive/watch.d.ts +5 -2
  41. package/dist/lib/interactive/watch.d.ts.map +1 -1
  42. package/dist/lib/interactive/watch.js +35 -15
  43. package/dist/lib/interactive/watch.js.map +1 -1
  44. package/dist/lib/inventory.d.ts +2 -2
  45. package/dist/lib/inventory.d.ts.map +1 -1
  46. package/dist/lib/inventory.js +4 -4
  47. package/dist/lib/inventory.js.map +1 -1
  48. package/dist/lib/manifest.d.ts.map +1 -1
  49. package/dist/lib/manifest.js +14 -12
  50. package/dist/lib/manifest.js.map +1 -1
  51. package/dist/lib/market.d.ts.map +1 -1
  52. package/dist/lib/parchment-base.d.ts.map +1 -1
  53. package/dist/lib/parchment-base.js +1 -3
  54. package/dist/lib/parchment-base.js.map +1 -1
  55. package/dist/lib/parchment.d.ts +6 -6
  56. package/dist/lib/parchment.js +6 -6
  57. package/dist/lib/sales.d.ts +6 -17
  58. package/dist/lib/sales.d.ts.map +1 -1
  59. package/dist/lib/sales.js +87 -129
  60. package/dist/lib/sales.js.map +1 -1
  61. package/dist/lib/tasting.d.ts +3 -4
  62. package/dist/lib/tasting.d.ts.map +1 -1
  63. package/dist/lib/tasting.js +9 -41
  64. package/dist/lib/tasting.js.map +1 -1
  65. package/dist/program.js +1 -1
  66. package/dist/types/index.d.ts +3 -3
  67. package/dist/types/index.d.ts.map +1 -1
  68. package/package.json +3 -5
  69. package/dist/lib/supabase.d.ts +0 -22
  70. package/dist/lib/supabase.d.ts.map +0 -1
  71. package/dist/lib/supabase.js +0 -108
  72. package/dist/lib/supabase.js.map +0 -1
  73. package/dist/types/database.types.d.ts +0 -13
  74. package/dist/types/database.types.d.ts.map +0 -1
  75. package/dist/types/database.types.js +0 -8
  76. package/dist/types/database.types.js.map +0 -1
@@ -1,6 +1,5 @@
1
1
  import { z } from 'zod';
2
- import type { SupabaseClient } from '@supabase/supabase-js';
3
- import type { InventoryItem } from './inventory.js';
2
+ import { type InventoryItem } from './inventory.js';
4
3
  export type TastingFilter = 'user' | 'supplier' | 'both';
5
4
  export interface SupplierTastingNotes {
6
5
  source: 'supplier';
@@ -70,7 +69,7 @@ export declare function parseCuppingScore(raw: string, flag: string): number;
70
69
  */
71
70
  export declare function getTastingNotes(id: number, filter?: TastingFilter): Promise<TastingData>;
72
71
  /**
73
- * Rate a coffee by storing cupping scores on the inventory item (must belong to userId).
72
+ * Rate an owned inventory lot through the canonical Parchment API.
74
73
  */
75
- export declare function rateCoffee(supabase: SupabaseClient, userId: string, id: number, input: RateCoffeeInput): Promise<InventoryItem>;
74
+ export declare function rateCoffee(id: number, input: RateCoffeeInput, tokenOverride?: string): Promise<InventoryItem>;
76
75
  //# sourceMappingURL=tasting.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasting.d.ts","sourceRoot":"","sources":["../../src/lib/tasting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAKpD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACtC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,eAAO,MAAM,mBAAmB;;;;EAAuC,CAAC;AAExE,eAAO,MAAM,qBAAqB;;;;;;;iBAGhC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,eAAO,MAAM,kBAAkB,aAAiC,CAAC;AAEjE,eAAO,MAAM,gBAAgB;;;;;;;;iBAQ3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAI/D,wDAAwD;AACxD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CASnE;AAID;;;GAGG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,MAAM,EACV,MAAM,GAAE,aAAsB,GAC7B,OAAO,CAAC,WAAW,CAAC,CAQtB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,aAAa,CAAC,CA6CxB"}
1
+ {"version":3,"file":"tasting.d.ts","sourceRoot":"","sources":["../../src/lib/tasting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAKlE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACtC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,eAAO,MAAM,mBAAmB;;;;EAAuC,CAAC;AAExE,eAAO,MAAM,qBAAqB;;;;;;;iBAGhC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,eAAO,MAAM,kBAAkB,aAAiC,CAAC;AAEjE,eAAO,MAAM,gBAAgB;;;;;;;;iBAQ3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAI/D,wDAAwD;AACxD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CASnE;AAID;;;GAGG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,MAAM,EACV,MAAM,GAAE,aAAsB,GAC7B,OAAO,CAAC,WAAW,CAAC,CAQtB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,eAAe,EACtB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,CAOxB"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { AuthError, PrvrsError } from './errors.js';
2
+ import { PrvrsError } from './errors.js';
3
+ import { getInventory } from './inventory.js';
3
4
  import { createParchmentClient, unwrapParchment } from './parchment.js';
4
5
  // ─── Zod schemas ──────────────────────────────────────────────────────────────
5
6
  export const tastingFilterSchema = z.enum(['user', 'supplier', 'both']);
@@ -42,47 +43,14 @@ export async function getTastingNotes(id, filter = 'both') {
42
43
  return envelope.data;
43
44
  }
44
45
  /**
45
- * Rate a coffee by storing cupping scores on the inventory item (must belong to userId).
46
+ * Rate an owned inventory lot through the canonical Parchment API.
46
47
  */
47
- export async function rateCoffee(supabase, userId, id, input) {
48
+ export async function rateCoffee(id, input, tokenOverride) {
48
49
  const parsed = rateCoffeeSchema.parse(input);
49
- // Verify ownership of the inventory item
50
- const { data: existing, error: fetchError } = await supabase
51
- .from('green_coffee_inv')
52
- .select('id, catalog_id')
53
- .eq('id', id)
54
- .eq('user', userId)
55
- .single();
56
- if (fetchError || !existing) {
57
- throw new AuthError(`Inventory item ${id} not found or does not belong to you.`);
58
- }
59
- const cupping = {
60
- aroma: parsed.aroma,
61
- body: parsed.body,
62
- acidity: parsed.acidity,
63
- sweetness: parsed.sweetness,
64
- aftertaste: parsed.aftertaste,
65
- rated_at: new Date().toISOString(),
66
- };
67
- if (parsed.brewMethod !== undefined)
68
- cupping.brew_method = parsed.brewMethod;
69
- if (parsed.notes !== undefined)
70
- cupping.notes = parsed.notes;
71
- const { error: updateError } = await supabase
72
- .from('green_coffee_inv')
73
- .update({ cupping_notes: cupping })
74
- .eq('id', id)
75
- .eq('user', userId);
76
- if (updateError)
77
- throw updateError;
78
- // Re-fetch the updated row
79
- const { data, error } = await supabase
80
- .from('green_coffee_inv')
81
- .select('id, catalog_id, cupping_notes, notes, last_updated')
82
- .eq('id', id)
83
- .single();
84
- if (error)
85
- throw error;
86
- return data;
50
+ const client = await createParchmentClient('member', tokenOverride);
51
+ unwrapParchment(await client.tasting.rate(id, parsed), 'Tasting rate');
52
+ // Preserve the public CLI/helper output contract: callers historically receive
53
+ // the refreshed inventory row rather than the mutation-specific API payload.
54
+ return getInventory(id, tokenOverride);
87
55
  }
88
56
  //# sourceMappingURL=tasting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasting.js","sourceRoot":"","sources":["../../src/lib/tasting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasting.js","sourceRoot":"","sources":["../../src/lib/tasting.ts"],"names":[],"mappings":"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"}
package/dist/program.js CHANGED
@@ -96,7 +96,7 @@ Market intelligence (canonical API; entitled slices require Parchment Intelligen
96
96
  procurement get Get a saved sourcing brief by id
97
97
  procurement matches Page through catalog matches for a brief
98
98
 
99
- Local and reference commands (no pre-existing session required):
99
+ Local and reference commands (no pre-existing credentials required):
100
100
  config list Show all config values
101
101
  config get Get a config value
102
102
  config set Set a config value
@@ -7,9 +7,9 @@ export interface GlobalOptions {
7
7
  json?: boolean;
8
8
  }
9
9
  export interface StoredCredentials {
10
- accessToken: string;
11
- refreshToken: string;
12
- expiresAt: number;
10
+ apiKey: string;
11
+ keyId: string;
12
+ createdAt: string;
13
13
  user: {
14
14
  id: string;
15
15
  email: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,KAAK,EAAE,IAAI,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,KAAK,EAAE,IAAI,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purveyors/cli",
3
- "version": "0.27.0",
3
+ "version": "0.31.0",
4
4
  "description": "The official CLI for purveyors.io — coffee intelligence from your terminal",
5
5
  "type": "module",
6
6
  "bin": {
@@ -33,8 +33,7 @@
33
33
  "cli",
34
34
  "purveyors",
35
35
  "green-coffee",
36
- "roasting",
37
- "supabase"
36
+ "roasting"
38
37
  ],
39
38
  "author": "Reed Whetstone",
40
39
  "license": "SEE LICENSE IN LICENSE.md",
@@ -57,8 +56,7 @@
57
56
  },
58
57
  "dependencies": {
59
58
  "@clack/prompts": "^1.1.0",
60
- "@purveyors/sdk": "^0.7.1",
61
- "@supabase/supabase-js": "^2.49.1",
59
+ "@purveyors/sdk": "^0.10.0",
62
60
  "chalk": "^5.4.1",
63
61
  "commander": "^13.1.0",
64
62
  "ora": "^8.2.0",
@@ -1,22 +0,0 @@
1
- import { type SupabaseClient } from '@supabase/supabase-js';
2
- /**
3
- * Create a Supabase client with no session (anonymous/unauthenticated).
4
- * Used for login flows before we have a token.
5
- */
6
- export declare function createAnonClient(): SupabaseClient;
7
- /**
8
- * Create a Supabase client initialized with stored credentials.
9
- * Throws AuthError if no credentials are found.
10
- */
11
- export declare function createAuthenticatedClient(): Promise<SupabaseClient>;
12
- /**
13
- * Validate stored credentials by making a lightweight Supabase auth call.
14
- * Returns the user object if valid, null if expired/invalid.
15
- */
16
- export declare function validateSession(): Promise<{
17
- id: string;
18
- email?: string;
19
- role?: string;
20
- expiresAt: number;
21
- } | null>;
22
- //# sourceMappingURL=supabase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/lib/supabase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAiB1E;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAOjD;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,cAAc,CAAC,CAuCzE;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAAC,CA+CR"}
@@ -1,108 +0,0 @@
1
- import { createClient } from '@supabase/supabase-js';
2
- import { readCredentials, writeCredentials, deleteCredentials } from './config.js';
3
- import { AuthError } from './errors.js';
4
- import { createParchmentClient } from '@purveyors/sdk';
5
- import { getParchmentBaseUrl } from './parchment-base.js';
6
- /**
7
- * Public Supabase values — identical to what ships in every purveyors.io client bundle.
8
- * These are NOT secrets. The anon key only grants access through RLS policies.
9
- * Override via environment variables for dev/staging.
10
- */
11
- const SUPABASE_URL = process.env.PURVEYORS_SUPABASE_URL || 'https://bjblfzfdtfvuitqdbodn.supabase.co';
12
- const SUPABASE_ANON_KEY = process.env.PURVEYORS_SUPABASE_ANON_KEY ||
13
- 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImJqYmxmemZkdGZ2dWl0cWRib2RuIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MzgwMTQ2OTAsImV4cCI6MjA1MzU5MDY5MH0.v1YcBAxFSvEthKPp4PkV3BCAsXYJn9Z2nuJBcEfnJFo';
14
- /**
15
- * Create a Supabase client with no session (anonymous/unauthenticated).
16
- * Used for login flows before we have a token.
17
- */
18
- export function createAnonClient() {
19
- return createClient(SUPABASE_URL, SUPABASE_ANON_KEY, {
20
- auth: {
21
- persistSession: false,
22
- autoRefreshToken: false,
23
- },
24
- });
25
- }
26
- /**
27
- * Create a Supabase client initialized with stored credentials.
28
- * Throws AuthError if no credentials are found.
29
- */
30
- export async function createAuthenticatedClient() {
31
- const creds = await readCredentials();
32
- if (!creds) {
33
- throw new AuthError('Not logged in. Run `purvey auth login` first.');
34
- }
35
- const client = createClient(SUPABASE_URL, SUPABASE_ANON_KEY, {
36
- auth: {
37
- persistSession: false,
38
- autoRefreshToken: false,
39
- },
40
- });
41
- const { data, error } = await client.auth.setSession({
42
- access_token: creds.accessToken,
43
- refresh_token: creds.refreshToken,
44
- });
45
- // If the session was refreshed (access token rotated), persist the new tokens
46
- if (!error && data.session && data.session.access_token !== creds.accessToken) {
47
- await writeCredentials({
48
- ...creds, // preserve user info
49
- accessToken: data.session.access_token,
50
- refreshToken: data.session.refresh_token,
51
- expiresAt: (data.session.expires_at ?? 0) * 1000,
52
- });
53
- }
54
- if (error || !data.session) {
55
- // Refresh failed — both access and refresh tokens are expired/revoked
56
- await deleteCredentials();
57
- throw new AuthError('Session expired. Run `purvey auth login` to re-authenticate.\n' +
58
- (error ? ` Reason: ${error.message}` : ''));
59
- }
60
- return client;
61
- }
62
- /**
63
- * Validate stored credentials by making a lightweight Supabase auth call.
64
- * Returns the user object if valid, null if expired/invalid.
65
- */
66
- export async function validateSession() {
67
- const creds = await readCredentials();
68
- if (!creds)
69
- return null;
70
- // Even if access token is expired, try refreshing via createAuthenticatedClient
71
- // (it uses setSession which handles refresh automatically)
72
- try {
73
- const client = await createAuthenticatedClient();
74
- const { data: { user }, error, } = await client.auth.getUser();
75
- if (error || !user)
76
- return null;
77
- // Resolve app-level roles through the canonical API rather than reading the
78
- // authorization table directly from the CLI.
79
- let appRoles = [];
80
- try {
81
- const { data: { session }, } = await client.auth.getSession();
82
- if (session?.access_token) {
83
- const result = await createParchmentClient({
84
- baseUrl: getParchmentBaseUrl(),
85
- token: session.access_token,
86
- }).me();
87
- if (result.response.ok && !result.error && result.data?.authenticated) {
88
- appRoles = result.data.appRoles;
89
- }
90
- }
91
- }
92
- catch {
93
- // API entitlement lookup failed — fall back to the Supabase auth role.
94
- }
95
- // Re-read credentials (may have been refreshed by createAuthenticatedClient)
96
- const freshCreds = await readCredentials();
97
- return {
98
- id: user.id,
99
- email: user.email,
100
- role: appRoles.length > 0 ? appRoles.join(', ') : (user.role ?? 'authenticated'),
101
- expiresAt: freshCreds?.expiresAt ?? creds.expiresAt,
102
- };
103
- }
104
- catch {
105
- return null;
106
- }
107
- }
108
- //# sourceMappingURL=supabase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../src/lib/supabase.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- export type Json = string | number | boolean | null | {
2
- [key: string]: Json | undefined;
3
- } | Json[];
4
- export type Database = {
5
- public: {
6
- Tables: Record<string, never>;
7
- Views: Record<string, never>;
8
- Functions: Record<string, never>;
9
- Enums: Record<string, never>;
10
- CompositeTypes: Record<string, never>;
11
- };
12
- };
13
- //# sourceMappingURL=database.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database.types.d.ts","sourceRoot":"","sources":["../../src/types/database.types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,GAAG,IAAI,EAAE,CAAC;AAEnG,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KACvC,CAAC;CACH,CAAC"}
@@ -1,8 +0,0 @@
1
- // This file is auto-generated by the Supabase Type Generation workflow.
2
- // Do NOT edit manually. Run the "Supabase Type Generation" GitHub Actions
3
- // workflow to regenerate from the live schema.
4
- //
5
- // To regenerate locally (requires SUPABASE_ACCESS_TOKEN env var):
6
- // npx supabase gen types typescript --project-id bjblfzfdtfvuitqdbodn > src/types/database.types.ts
7
- export {};
8
- //# sourceMappingURL=database.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database.types.js","sourceRoot":"","sources":["../../src/types/database.types.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,0EAA0E;AAC1E,+CAA+C;AAC/C,EAAE;AACF,kEAAkE;AAClE,sGAAsG"}