@purveyors/sdk 0.32.0 → 0.33.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/dist/index.d.ts +1113 -72
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -2275,6 +2275,121 @@ interface paths {
|
|
|
2275
2275
|
patch?: never;
|
|
2276
2276
|
trace?: never;
|
|
2277
2277
|
};
|
|
2278
|
+
"/v1/catalog/map": {
|
|
2279
|
+
parameters: {
|
|
2280
|
+
query?: never;
|
|
2281
|
+
header?: never;
|
|
2282
|
+
path?: never;
|
|
2283
|
+
cookie?: never;
|
|
2284
|
+
};
|
|
2285
|
+
/**
|
|
2286
|
+
* Map projection over the caller-visible catalog
|
|
2287
|
+
* @description Returns deterministic lightweight clusters and place features after applying the canonical catalog visibility, filters, and entitlement policy. Global unique/unplaced totals remain separate from viewport placement totals; multi-origin placement counts are intentionally non-additive. Public/demo callers receive country/region-safe features, while canonical place navigation, bounding boxes, and elevation profiles require member or paid API access. These catalog routes require a Supabase session JWT or Parchment API key. For entitlement-gated params, strict callers (non-demo API keys, bearer-session JWTs) receive a 401/403; lenient callers (first-party cookie-session and the configured public-demo API key) get the params stripped with a `meta.notices` entry. Send `Prefer: handling=strict` to opt into strict enforcement; `Prefer: handling=lenient` is honored only for callers already lenient-eligible and cannot downgrade a strict caller's enforcement.
|
|
2288
|
+
*/
|
|
2289
|
+
get: {
|
|
2290
|
+
parameters: {
|
|
2291
|
+
query?: {
|
|
2292
|
+
stocked?: "true" | "false" | "all";
|
|
2293
|
+
showWholesale?: "true" | "false";
|
|
2294
|
+
wholesaleOnly?: "true" | "false";
|
|
2295
|
+
origin?: string;
|
|
2296
|
+
continent?: string;
|
|
2297
|
+
country?: string | string[];
|
|
2298
|
+
region?: string;
|
|
2299
|
+
source?: string | string[];
|
|
2300
|
+
name?: string;
|
|
2301
|
+
processing?: string;
|
|
2302
|
+
variety?: string;
|
|
2303
|
+
type?: string;
|
|
2304
|
+
grade?: string;
|
|
2305
|
+
appearance?: string;
|
|
2306
|
+
supplier?: string;
|
|
2307
|
+
dryingMethod?: string;
|
|
2308
|
+
flavorKeywords?: string | string[];
|
|
2309
|
+
arrivalDate?: string;
|
|
2310
|
+
stockedDate?: string;
|
|
2311
|
+
stockedDays?: number;
|
|
2312
|
+
coffeeIds?: string;
|
|
2313
|
+
scoreValueMin?: number | null;
|
|
2314
|
+
scoreValueMax?: number | null;
|
|
2315
|
+
pricePerLbMin?: number | null;
|
|
2316
|
+
pricePerLbMax?: number | null;
|
|
2317
|
+
elevationMinMasl?: number | null;
|
|
2318
|
+
elevationMaxMasl?: number | null;
|
|
2319
|
+
processing_base_method?: string;
|
|
2320
|
+
fermentation_type?: string;
|
|
2321
|
+
process_additive?: string;
|
|
2322
|
+
has_additives?: "true" | "false";
|
|
2323
|
+
processing_disclosure_level?: string;
|
|
2324
|
+
processing_confidence_min?: number | null;
|
|
2325
|
+
place_id?: string;
|
|
2326
|
+
bbox?: string;
|
|
2327
|
+
zoom?: number;
|
|
2328
|
+
lens?: "catalog" | "elevation";
|
|
2329
|
+
};
|
|
2330
|
+
header?: {
|
|
2331
|
+
Prefer?: string;
|
|
2332
|
+
};
|
|
2333
|
+
path?: never;
|
|
2334
|
+
cookie?: never;
|
|
2335
|
+
};
|
|
2336
|
+
requestBody?: never;
|
|
2337
|
+
responses: {
|
|
2338
|
+
/** @description Authorized catalog map projection and elevation profile */
|
|
2339
|
+
200: {
|
|
2340
|
+
headers: {
|
|
2341
|
+
[name: string]: unknown;
|
|
2342
|
+
};
|
|
2343
|
+
content: {
|
|
2344
|
+
"application/json": components["schemas"]["CatalogMapResponse"];
|
|
2345
|
+
};
|
|
2346
|
+
};
|
|
2347
|
+
/** @description Malformed map geometry, zoom, place id, or elevation range */
|
|
2348
|
+
400: {
|
|
2349
|
+
headers: {
|
|
2350
|
+
[name: string]: unknown;
|
|
2351
|
+
};
|
|
2352
|
+
content: {
|
|
2353
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2354
|
+
};
|
|
2355
|
+
};
|
|
2356
|
+
/** @description Authentication required */
|
|
2357
|
+
401: {
|
|
2358
|
+
headers: {
|
|
2359
|
+
[name: string]: unknown;
|
|
2360
|
+
};
|
|
2361
|
+
content: {
|
|
2362
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2363
|
+
};
|
|
2364
|
+
};
|
|
2365
|
+
/** @description Insufficient entitlement (plan or role) */
|
|
2366
|
+
403: {
|
|
2367
|
+
headers: {
|
|
2368
|
+
[name: string]: unknown;
|
|
2369
|
+
};
|
|
2370
|
+
content: {
|
|
2371
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2372
|
+
};
|
|
2373
|
+
};
|
|
2374
|
+
/** @description Canonical catalog map schema is not deployed or the bounded map capacity is exceeded */
|
|
2375
|
+
503: {
|
|
2376
|
+
headers: {
|
|
2377
|
+
[name: string]: unknown;
|
|
2378
|
+
};
|
|
2379
|
+
content: {
|
|
2380
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2381
|
+
};
|
|
2382
|
+
};
|
|
2383
|
+
};
|
|
2384
|
+
};
|
|
2385
|
+
put?: never;
|
|
2386
|
+
post?: never;
|
|
2387
|
+
delete?: never;
|
|
2388
|
+
options?: never;
|
|
2389
|
+
head?: never;
|
|
2390
|
+
patch?: never;
|
|
2391
|
+
trace?: never;
|
|
2392
|
+
};
|
|
2278
2393
|
"/v1/catalog/facets": {
|
|
2279
2394
|
parameters: {
|
|
2280
2395
|
query?: never;
|
|
@@ -5334,6 +5449,114 @@ interface paths {
|
|
|
5334
5449
|
patch?: never;
|
|
5335
5450
|
trace?: never;
|
|
5336
5451
|
};
|
|
5452
|
+
"/v1/roasts/batches": {
|
|
5453
|
+
parameters: {
|
|
5454
|
+
query?: never;
|
|
5455
|
+
header?: never;
|
|
5456
|
+
path?: never;
|
|
5457
|
+
cookie?: never;
|
|
5458
|
+
};
|
|
5459
|
+
get?: never;
|
|
5460
|
+
put?: never;
|
|
5461
|
+
/**
|
|
5462
|
+
* Create an owner roast batch
|
|
5463
|
+
* @description Create every roast profile in one named batch atomically. The Idempotency-Key is required and payload-bound: same-key/same-payload retries replay, while changed payloads conflict. Requires an authenticated session, or an owner-bound API key carrying the exact roast:write scope.
|
|
5464
|
+
*/
|
|
5465
|
+
post: {
|
|
5466
|
+
parameters: {
|
|
5467
|
+
query?: never;
|
|
5468
|
+
header: {
|
|
5469
|
+
"idempotency-key": string;
|
|
5470
|
+
};
|
|
5471
|
+
path?: never;
|
|
5472
|
+
cookie?: never;
|
|
5473
|
+
};
|
|
5474
|
+
requestBody: {
|
|
5475
|
+
content: {
|
|
5476
|
+
"application/json": components["schemas"]["RoastBatchCreateRequest"];
|
|
5477
|
+
};
|
|
5478
|
+
};
|
|
5479
|
+
responses: {
|
|
5480
|
+
/** @description The complete created roast batch */
|
|
5481
|
+
201: {
|
|
5482
|
+
headers: {
|
|
5483
|
+
[name: string]: unknown;
|
|
5484
|
+
};
|
|
5485
|
+
content: {
|
|
5486
|
+
"application/json": components["schemas"]["RoastBatchMutationResponse"];
|
|
5487
|
+
};
|
|
5488
|
+
};
|
|
5489
|
+
/** @description Invalid query parameter */
|
|
5490
|
+
400: {
|
|
5491
|
+
headers: {
|
|
5492
|
+
[name: string]: unknown;
|
|
5493
|
+
};
|
|
5494
|
+
content: {
|
|
5495
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5496
|
+
};
|
|
5497
|
+
};
|
|
5498
|
+
/** @description Authentication required */
|
|
5499
|
+
401: {
|
|
5500
|
+
headers: {
|
|
5501
|
+
[name: string]: unknown;
|
|
5502
|
+
};
|
|
5503
|
+
content: {
|
|
5504
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5505
|
+
};
|
|
5506
|
+
};
|
|
5507
|
+
/** @description Insufficient entitlement (plan or role) */
|
|
5508
|
+
403: {
|
|
5509
|
+
headers: {
|
|
5510
|
+
[name: string]: unknown;
|
|
5511
|
+
};
|
|
5512
|
+
content: {
|
|
5513
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5514
|
+
};
|
|
5515
|
+
};
|
|
5516
|
+
/** @description No such coffee lot owned by the caller */
|
|
5517
|
+
404: {
|
|
5518
|
+
headers: {
|
|
5519
|
+
[name: string]: unknown;
|
|
5520
|
+
};
|
|
5521
|
+
content: {
|
|
5522
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5523
|
+
};
|
|
5524
|
+
};
|
|
5525
|
+
/** @description Write conflict: an If-Match precondition failed */
|
|
5526
|
+
409: {
|
|
5527
|
+
headers: {
|
|
5528
|
+
[name: string]: unknown;
|
|
5529
|
+
};
|
|
5530
|
+
content: {
|
|
5531
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5532
|
+
};
|
|
5533
|
+
};
|
|
5534
|
+
/** @description Per-user mutation throttle exceeded; retry after a short wait */
|
|
5535
|
+
429: {
|
|
5536
|
+
headers: {
|
|
5537
|
+
[name: string]: unknown;
|
|
5538
|
+
};
|
|
5539
|
+
content: {
|
|
5540
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5541
|
+
};
|
|
5542
|
+
};
|
|
5543
|
+
/** @description Roast writes are not enabled in this environment */
|
|
5544
|
+
503: {
|
|
5545
|
+
headers: {
|
|
5546
|
+
[name: string]: unknown;
|
|
5547
|
+
};
|
|
5548
|
+
content: {
|
|
5549
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5550
|
+
};
|
|
5551
|
+
};
|
|
5552
|
+
};
|
|
5553
|
+
};
|
|
5554
|
+
delete?: never;
|
|
5555
|
+
options?: never;
|
|
5556
|
+
head?: never;
|
|
5557
|
+
patch?: never;
|
|
5558
|
+
trace?: never;
|
|
5559
|
+
};
|
|
5337
5560
|
"/v1/roasts/{id}": {
|
|
5338
5561
|
parameters: {
|
|
5339
5562
|
query?: never;
|
|
@@ -5587,7 +5810,7 @@ interface paths {
|
|
|
5587
5810
|
};
|
|
5588
5811
|
trace?: never;
|
|
5589
5812
|
};
|
|
5590
|
-
"/v1/roasts/
|
|
5813
|
+
"/v1/roasts/{id}/live-curve": {
|
|
5591
5814
|
parameters: {
|
|
5592
5815
|
query?: never;
|
|
5593
5816
|
header?: never;
|
|
@@ -5595,33 +5818,34 @@ interface paths {
|
|
|
5595
5818
|
cookie?: never;
|
|
5596
5819
|
};
|
|
5597
5820
|
get?: never;
|
|
5598
|
-
put?: never;
|
|
5599
5821
|
/**
|
|
5600
|
-
*
|
|
5601
|
-
* @description
|
|
5822
|
+
* Replace an owner roast live curve
|
|
5823
|
+
* @description Atomically replace live temperature samples and all event markers, derive milestone and phase fields upstream, and preserve non-live temperature samples. Optional If-Match protects against lost updates.
|
|
5602
5824
|
*/
|
|
5603
|
-
|
|
5825
|
+
put: {
|
|
5604
5826
|
parameters: {
|
|
5605
5827
|
query?: never;
|
|
5606
5828
|
header?: {
|
|
5607
|
-
"
|
|
5829
|
+
"if-match"?: string;
|
|
5830
|
+
};
|
|
5831
|
+
path: {
|
|
5832
|
+
id: number;
|
|
5608
5833
|
};
|
|
5609
|
-
path?: never;
|
|
5610
5834
|
cookie?: never;
|
|
5611
5835
|
};
|
|
5612
5836
|
requestBody: {
|
|
5613
5837
|
content: {
|
|
5614
|
-
"application/json": components["schemas"]["
|
|
5838
|
+
"application/json": components["schemas"]["RoastLiveCurveRequest"];
|
|
5615
5839
|
};
|
|
5616
5840
|
};
|
|
5617
5841
|
responses: {
|
|
5618
|
-
/** @description The
|
|
5619
|
-
|
|
5842
|
+
/** @description The roast with its replaced live curve */
|
|
5843
|
+
200: {
|
|
5620
5844
|
headers: {
|
|
5621
5845
|
[name: string]: unknown;
|
|
5622
5846
|
};
|
|
5623
5847
|
content: {
|
|
5624
|
-
"application/json": components["schemas"]["
|
|
5848
|
+
"application/json": components["schemas"]["RoastDetailResponse"];
|
|
5625
5849
|
};
|
|
5626
5850
|
};
|
|
5627
5851
|
/** @description Invalid query parameter */
|
|
@@ -5651,7 +5875,7 @@ interface paths {
|
|
|
5651
5875
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
5652
5876
|
};
|
|
5653
5877
|
};
|
|
5654
|
-
/** @description No such
|
|
5878
|
+
/** @description No such roast profile owned by the caller */
|
|
5655
5879
|
404: {
|
|
5656
5880
|
headers: {
|
|
5657
5881
|
[name: string]: unknown;
|
|
@@ -5689,13 +5913,14 @@ interface paths {
|
|
|
5689
5913
|
};
|
|
5690
5914
|
};
|
|
5691
5915
|
};
|
|
5916
|
+
post?: never;
|
|
5692
5917
|
delete?: never;
|
|
5693
5918
|
options?: never;
|
|
5694
5919
|
head?: never;
|
|
5695
5920
|
patch?: never;
|
|
5696
5921
|
trace?: never;
|
|
5697
5922
|
};
|
|
5698
|
-
"/v1/roasts/{
|
|
5923
|
+
"/v1/roasts/batches/{batchName}": {
|
|
5699
5924
|
parameters: {
|
|
5700
5925
|
query?: never;
|
|
5701
5926
|
header?: never;
|
|
@@ -5703,34 +5928,30 @@ interface paths {
|
|
|
5703
5928
|
cookie?: never;
|
|
5704
5929
|
};
|
|
5705
5930
|
get?: never;
|
|
5931
|
+
put?: never;
|
|
5932
|
+
post?: never;
|
|
5706
5933
|
/**
|
|
5707
|
-
*
|
|
5708
|
-
* @description
|
|
5934
|
+
* Delete an owner roast batch
|
|
5935
|
+
* @description Delete every roast profile carrying the exact batch name, plus nested temperature and event rows, in one transaction. This existing UI-level bulk action is restricted to authenticated sessions; API keys cannot call it.
|
|
5709
5936
|
*/
|
|
5710
|
-
|
|
5937
|
+
delete: {
|
|
5711
5938
|
parameters: {
|
|
5712
5939
|
query?: never;
|
|
5713
|
-
header?:
|
|
5714
|
-
"if-match"?: string;
|
|
5715
|
-
};
|
|
5940
|
+
header?: never;
|
|
5716
5941
|
path: {
|
|
5717
|
-
|
|
5942
|
+
batchName: string;
|
|
5718
5943
|
};
|
|
5719
5944
|
cookie?: never;
|
|
5720
5945
|
};
|
|
5721
|
-
requestBody
|
|
5722
|
-
content: {
|
|
5723
|
-
"application/json": components["schemas"]["RoastArtisanImportReplaceRequest"];
|
|
5724
|
-
};
|
|
5725
|
-
};
|
|
5946
|
+
requestBody?: never;
|
|
5726
5947
|
responses: {
|
|
5727
|
-
/** @description The
|
|
5948
|
+
/** @description The roast batch was deleted */
|
|
5728
5949
|
200: {
|
|
5729
5950
|
headers: {
|
|
5730
5951
|
[name: string]: unknown;
|
|
5731
5952
|
};
|
|
5732
5953
|
content: {
|
|
5733
|
-
"application/json": components["schemas"]["
|
|
5954
|
+
"application/json": components["schemas"]["RoastBatchDeleteResponse"];
|
|
5734
5955
|
};
|
|
5735
5956
|
};
|
|
5736
5957
|
/** @description Invalid query parameter */
|
|
@@ -5769,15 +5990,222 @@ interface paths {
|
|
|
5769
5990
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
5770
5991
|
};
|
|
5771
5992
|
};
|
|
5772
|
-
/** @description
|
|
5773
|
-
|
|
5774
|
-
headers: {
|
|
5775
|
-
[name: string]: unknown;
|
|
5776
|
-
};
|
|
5777
|
-
content: {
|
|
5778
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5779
|
-
};
|
|
5780
|
-
};
|
|
5993
|
+
/** @description Per-user mutation throttle exceeded; retry after a short wait */
|
|
5994
|
+
429: {
|
|
5995
|
+
headers: {
|
|
5996
|
+
[name: string]: unknown;
|
|
5997
|
+
};
|
|
5998
|
+
content: {
|
|
5999
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6000
|
+
};
|
|
6001
|
+
};
|
|
6002
|
+
/** @description Roast writes are not enabled in this environment */
|
|
6003
|
+
503: {
|
|
6004
|
+
headers: {
|
|
6005
|
+
[name: string]: unknown;
|
|
6006
|
+
};
|
|
6007
|
+
content: {
|
|
6008
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6009
|
+
};
|
|
6010
|
+
};
|
|
6011
|
+
};
|
|
6012
|
+
};
|
|
6013
|
+
options?: never;
|
|
6014
|
+
head?: never;
|
|
6015
|
+
patch?: never;
|
|
6016
|
+
trace?: never;
|
|
6017
|
+
};
|
|
6018
|
+
"/v1/roasts/imports": {
|
|
6019
|
+
parameters: {
|
|
6020
|
+
query?: never;
|
|
6021
|
+
header?: never;
|
|
6022
|
+
path?: never;
|
|
6023
|
+
cookie?: never;
|
|
6024
|
+
};
|
|
6025
|
+
get?: never;
|
|
6026
|
+
put?: never;
|
|
6027
|
+
/**
|
|
6028
|
+
* Create a roast from an Artisan file
|
|
6029
|
+
* @description Parse an Artisan `.alog` file, create a roast profile owned by the caller against one of their green-coffee lots, and persist the imported temperature curve, event markers, and an artisan_import_log entry atomically. Requires an authenticated session, or an owner-bound API key carrying the exact roast:write scope.
|
|
6030
|
+
*/
|
|
6031
|
+
post: {
|
|
6032
|
+
parameters: {
|
|
6033
|
+
query?: never;
|
|
6034
|
+
header?: {
|
|
6035
|
+
"idempotency-key"?: string;
|
|
6036
|
+
};
|
|
6037
|
+
path?: never;
|
|
6038
|
+
cookie?: never;
|
|
6039
|
+
};
|
|
6040
|
+
requestBody: {
|
|
6041
|
+
content: {
|
|
6042
|
+
"application/json": components["schemas"]["RoastImportCreateRequest"];
|
|
6043
|
+
};
|
|
6044
|
+
};
|
|
6045
|
+
responses: {
|
|
6046
|
+
/** @description The created roast profile plus import summary */
|
|
6047
|
+
201: {
|
|
6048
|
+
headers: {
|
|
6049
|
+
[name: string]: unknown;
|
|
6050
|
+
};
|
|
6051
|
+
content: {
|
|
6052
|
+
"application/json": components["schemas"]["RoastImportResponse"];
|
|
6053
|
+
};
|
|
6054
|
+
};
|
|
6055
|
+
/** @description Invalid query parameter */
|
|
6056
|
+
400: {
|
|
6057
|
+
headers: {
|
|
6058
|
+
[name: string]: unknown;
|
|
6059
|
+
};
|
|
6060
|
+
content: {
|
|
6061
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6062
|
+
};
|
|
6063
|
+
};
|
|
6064
|
+
/** @description Authentication required */
|
|
6065
|
+
401: {
|
|
6066
|
+
headers: {
|
|
6067
|
+
[name: string]: unknown;
|
|
6068
|
+
};
|
|
6069
|
+
content: {
|
|
6070
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6071
|
+
};
|
|
6072
|
+
};
|
|
6073
|
+
/** @description Insufficient entitlement (plan or role) */
|
|
6074
|
+
403: {
|
|
6075
|
+
headers: {
|
|
6076
|
+
[name: string]: unknown;
|
|
6077
|
+
};
|
|
6078
|
+
content: {
|
|
6079
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6080
|
+
};
|
|
6081
|
+
};
|
|
6082
|
+
/** @description No such coffee lot owned by the caller */
|
|
6083
|
+
404: {
|
|
6084
|
+
headers: {
|
|
6085
|
+
[name: string]: unknown;
|
|
6086
|
+
};
|
|
6087
|
+
content: {
|
|
6088
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6089
|
+
};
|
|
6090
|
+
};
|
|
6091
|
+
/** @description Write conflict: an If-Match precondition failed */
|
|
6092
|
+
409: {
|
|
6093
|
+
headers: {
|
|
6094
|
+
[name: string]: unknown;
|
|
6095
|
+
};
|
|
6096
|
+
content: {
|
|
6097
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6098
|
+
};
|
|
6099
|
+
};
|
|
6100
|
+
/** @description Per-user mutation throttle exceeded; retry after a short wait */
|
|
6101
|
+
429: {
|
|
6102
|
+
headers: {
|
|
6103
|
+
[name: string]: unknown;
|
|
6104
|
+
};
|
|
6105
|
+
content: {
|
|
6106
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6107
|
+
};
|
|
6108
|
+
};
|
|
6109
|
+
/** @description Roast writes are not enabled in this environment */
|
|
6110
|
+
503: {
|
|
6111
|
+
headers: {
|
|
6112
|
+
[name: string]: unknown;
|
|
6113
|
+
};
|
|
6114
|
+
content: {
|
|
6115
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6116
|
+
};
|
|
6117
|
+
};
|
|
6118
|
+
};
|
|
6119
|
+
};
|
|
6120
|
+
delete?: never;
|
|
6121
|
+
options?: never;
|
|
6122
|
+
head?: never;
|
|
6123
|
+
patch?: never;
|
|
6124
|
+
trace?: never;
|
|
6125
|
+
};
|
|
6126
|
+
"/v1/roasts/{id}/artisan-import": {
|
|
6127
|
+
parameters: {
|
|
6128
|
+
query?: never;
|
|
6129
|
+
header?: never;
|
|
6130
|
+
path?: never;
|
|
6131
|
+
cookie?: never;
|
|
6132
|
+
};
|
|
6133
|
+
get?: never;
|
|
6134
|
+
/**
|
|
6135
|
+
* Replace a roast's Artisan import
|
|
6136
|
+
* @description Re-derive one of the caller's existing roasts from an Artisan `.alog` file: replace its temperature curve, event markers, milestones, chart bounds, and computed metrics, and write an artisan_import_log entry atomically. The roast's identity (coffee, batch name, roast date, weights, and user notes) is preserved. Optional `If-Match: <last_updated>` enables optimistic concurrency (409 on mismatch). Requires an authenticated session, or an owner-bound API key carrying the exact roast:write scope.
|
|
6137
|
+
*/
|
|
6138
|
+
put: {
|
|
6139
|
+
parameters: {
|
|
6140
|
+
query?: never;
|
|
6141
|
+
header?: {
|
|
6142
|
+
"if-match"?: string;
|
|
6143
|
+
};
|
|
6144
|
+
path: {
|
|
6145
|
+
id: number;
|
|
6146
|
+
};
|
|
6147
|
+
cookie?: never;
|
|
6148
|
+
};
|
|
6149
|
+
requestBody: {
|
|
6150
|
+
content: {
|
|
6151
|
+
"application/json": components["schemas"]["RoastArtisanImportReplaceRequest"];
|
|
6152
|
+
};
|
|
6153
|
+
};
|
|
6154
|
+
responses: {
|
|
6155
|
+
/** @description The updated roast profile plus import summary */
|
|
6156
|
+
200: {
|
|
6157
|
+
headers: {
|
|
6158
|
+
[name: string]: unknown;
|
|
6159
|
+
};
|
|
6160
|
+
content: {
|
|
6161
|
+
"application/json": components["schemas"]["RoastImportResponse"];
|
|
6162
|
+
};
|
|
6163
|
+
};
|
|
6164
|
+
/** @description Invalid query parameter */
|
|
6165
|
+
400: {
|
|
6166
|
+
headers: {
|
|
6167
|
+
[name: string]: unknown;
|
|
6168
|
+
};
|
|
6169
|
+
content: {
|
|
6170
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6171
|
+
};
|
|
6172
|
+
};
|
|
6173
|
+
/** @description Authentication required */
|
|
6174
|
+
401: {
|
|
6175
|
+
headers: {
|
|
6176
|
+
[name: string]: unknown;
|
|
6177
|
+
};
|
|
6178
|
+
content: {
|
|
6179
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6180
|
+
};
|
|
6181
|
+
};
|
|
6182
|
+
/** @description Insufficient entitlement (plan or role) */
|
|
6183
|
+
403: {
|
|
6184
|
+
headers: {
|
|
6185
|
+
[name: string]: unknown;
|
|
6186
|
+
};
|
|
6187
|
+
content: {
|
|
6188
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6189
|
+
};
|
|
6190
|
+
};
|
|
6191
|
+
/** @description No such roast profile owned by the caller */
|
|
6192
|
+
404: {
|
|
6193
|
+
headers: {
|
|
6194
|
+
[name: string]: unknown;
|
|
6195
|
+
};
|
|
6196
|
+
content: {
|
|
6197
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6198
|
+
};
|
|
6199
|
+
};
|
|
6200
|
+
/** @description Write conflict: an If-Match precondition failed */
|
|
6201
|
+
409: {
|
|
6202
|
+
headers: {
|
|
6203
|
+
[name: string]: unknown;
|
|
6204
|
+
};
|
|
6205
|
+
content: {
|
|
6206
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6207
|
+
};
|
|
6208
|
+
};
|
|
5781
6209
|
/** @description Per-user mutation throttle exceeded; retry after a short wait */
|
|
5782
6210
|
429: {
|
|
5783
6211
|
headers: {
|
|
@@ -7037,35 +7465,164 @@ interface components {
|
|
|
7037
7465
|
}[];
|
|
7038
7466
|
};
|
|
7039
7467
|
};
|
|
7040
|
-
|
|
7041
|
-
|
|
7042
|
-
|
|
7043
|
-
|
|
7044
|
-
|
|
7045
|
-
|
|
7046
|
-
|
|
7047
|
-
|
|
7048
|
-
|
|
7049
|
-
|
|
7050
|
-
|
|
7051
|
-
|
|
7052
|
-
|
|
7053
|
-
|
|
7054
|
-
|
|
7055
|
-
|
|
7056
|
-
|
|
7057
|
-
|
|
7058
|
-
|
|
7059
|
-
|
|
7060
|
-
|
|
7061
|
-
|
|
7062
|
-
|
|
7063
|
-
|
|
7468
|
+
CatalogMapResponse: {
|
|
7469
|
+
data: ({
|
|
7470
|
+
/** @enum {string} */
|
|
7471
|
+
type: "cluster";
|
|
7472
|
+
id: string;
|
|
7473
|
+
longitude: number;
|
|
7474
|
+
latitude: number;
|
|
7475
|
+
bounds: {
|
|
7476
|
+
west: number;
|
|
7477
|
+
south: number;
|
|
7478
|
+
east: number;
|
|
7479
|
+
north: number;
|
|
7480
|
+
crossesAntimeridian: boolean;
|
|
7481
|
+
};
|
|
7482
|
+
placement_count: number;
|
|
7483
|
+
unique_coffee_count: number;
|
|
7484
|
+
catalog_ids: number[];
|
|
7485
|
+
} | {
|
|
7486
|
+
/** @enum {string} */
|
|
7487
|
+
type: "place";
|
|
7488
|
+
id: string;
|
|
7489
|
+
catalog_id: number;
|
|
7490
|
+
/** Format: uuid */
|
|
7491
|
+
place_id: string | null;
|
|
7492
|
+
canonical_name: string;
|
|
7493
|
+
/** @enum {string} */
|
|
7494
|
+
place_type: "continent" | "country" | "region" | "subregion" | "locality" | "site";
|
|
7495
|
+
longitude: number;
|
|
7496
|
+
latitude: number;
|
|
7497
|
+
/** @enum {string} */
|
|
7498
|
+
geographic_precision: "none" | "continent" | "country" | "region" | "subregion" | "locality" | "site" | "exact_site";
|
|
7499
|
+
/** @enum {string} */
|
|
7500
|
+
coordinate_kind: "none" | "centroid" | "exact_point";
|
|
7501
|
+
/** @enum {string} */
|
|
7502
|
+
place_provenance: "reference_dataset" | "source_evidence" | "deterministic_resolution" | "manual_review";
|
|
7503
|
+
/** @enum {string} */
|
|
7504
|
+
assignment_role: "primary" | "additional";
|
|
7505
|
+
/** @enum {string} */
|
|
7506
|
+
assignment_provenance: "reference_dataset" | "source_evidence" | "deterministic_resolution" | "manual_review";
|
|
7507
|
+
assignment_confidence: number;
|
|
7508
|
+
elevation_min_masl: number | null;
|
|
7509
|
+
elevation_max_masl: number | null;
|
|
7510
|
+
})[];
|
|
7511
|
+
elevation_profile: {
|
|
7512
|
+
/** @enum {string} */
|
|
7513
|
+
scope: "query" | "viewport";
|
|
7514
|
+
row_count: number;
|
|
7515
|
+
evidence_count: number;
|
|
7516
|
+
complete_bound_count: number;
|
|
7517
|
+
partial_bound_count: number;
|
|
7518
|
+
unknown_count: number;
|
|
7519
|
+
statistic_sample_count: number;
|
|
7520
|
+
median_masl: number | null;
|
|
7521
|
+
min_known_masl: number | null;
|
|
7522
|
+
max_known_masl: number | null;
|
|
7523
|
+
bands: {
|
|
7524
|
+
/** @enum {string} */
|
|
7525
|
+
key: "below_1000" | "1000_to_1399" | "1400_to_1799" | "1800_to_2199" | "2200_and_above";
|
|
7526
|
+
min_masl: number | null;
|
|
7527
|
+
max_masl_exclusive: number | null;
|
|
7064
7528
|
count: number;
|
|
7065
7529
|
}[];
|
|
7066
|
-
|
|
7067
|
-
|
|
7068
|
-
|
|
7530
|
+
} | null;
|
|
7531
|
+
meta: {
|
|
7532
|
+
/** @enum {string} */
|
|
7533
|
+
resource: "catalog-map";
|
|
7534
|
+
/** @enum {string} */
|
|
7535
|
+
namespace: "/v1/catalog/map";
|
|
7536
|
+
/** @enum {string} */
|
|
7537
|
+
version: "v1";
|
|
7538
|
+
auth: {
|
|
7539
|
+
/** @enum {string} */
|
|
7540
|
+
kind: "session" | "api-key";
|
|
7541
|
+
/** @enum {string|null} */
|
|
7542
|
+
role: "viewer" | "member" | "admin" | null;
|
|
7543
|
+
/** @enum {string|null} */
|
|
7544
|
+
apiPlan: "viewer" | "member" | "enterprise" | null;
|
|
7545
|
+
};
|
|
7546
|
+
access: {
|
|
7547
|
+
publicOnly: boolean;
|
|
7548
|
+
showWholesale: boolean;
|
|
7549
|
+
wholesaleOnly: boolean;
|
|
7550
|
+
rowLimit: number | null;
|
|
7551
|
+
limited: boolean;
|
|
7552
|
+
totalAvailable: number;
|
|
7553
|
+
fineGrainedPlaces: boolean;
|
|
7554
|
+
viewportSearch: boolean;
|
|
7555
|
+
elevationProfile: boolean;
|
|
7556
|
+
};
|
|
7557
|
+
effective: {
|
|
7558
|
+
zoom: number;
|
|
7559
|
+
/** @enum {string} */
|
|
7560
|
+
lens: "catalog" | "elevation";
|
|
7561
|
+
/** Format: uuid */
|
|
7562
|
+
place_id: string | null;
|
|
7563
|
+
bbox: {
|
|
7564
|
+
west: number;
|
|
7565
|
+
south: number;
|
|
7566
|
+
east: number;
|
|
7567
|
+
north: number;
|
|
7568
|
+
crossesAntimeridian: boolean;
|
|
7569
|
+
} | null;
|
|
7570
|
+
};
|
|
7571
|
+
totals: {
|
|
7572
|
+
unique_coffee_count: number;
|
|
7573
|
+
placed_unique_coffee_count: number;
|
|
7574
|
+
unplaced_unique_coffee_count: number;
|
|
7575
|
+
placement_count: number;
|
|
7576
|
+
mappable_placement_count: number;
|
|
7577
|
+
viewport_placed_unique_coffee_count: number;
|
|
7578
|
+
viewport_placement_count: number;
|
|
7579
|
+
};
|
|
7580
|
+
notices?: {
|
|
7581
|
+
status: 401 | 403;
|
|
7582
|
+
/** @enum {string} */
|
|
7583
|
+
code: "auth_required" | "entitlement_required";
|
|
7584
|
+
message: string;
|
|
7585
|
+
deniedParams: string[];
|
|
7586
|
+
}[];
|
|
7587
|
+
/** @description Freshness contract. `generatedAt` (ISO 8601) is the authoritative time this body was generated. `cacheStatus`/`ttlSeconds` are the resolved cache policy (ttl 0 for private/no-store); ttl is policy, not a promise — stale-while-revalidate may serve an older body, so trust `generatedAt` for actual age. */
|
|
7588
|
+
freshness: {
|
|
7589
|
+
/** Format: date-time */
|
|
7590
|
+
generatedAt: string;
|
|
7591
|
+
/** @enum {string} */
|
|
7592
|
+
cacheStatus: "public" | "private";
|
|
7593
|
+
ttlSeconds: number;
|
|
7594
|
+
};
|
|
7595
|
+
};
|
|
7596
|
+
};
|
|
7597
|
+
CatalogFacetsResponse: {
|
|
7598
|
+
/** @description Compatibility-friendly unique values for dropdown filters. Keys with no values are omitted. */
|
|
7599
|
+
values: {
|
|
7600
|
+
sources?: string[];
|
|
7601
|
+
continents?: string[];
|
|
7602
|
+
countries?: string[];
|
|
7603
|
+
regions?: string[];
|
|
7604
|
+
processing?: string[];
|
|
7605
|
+
cultivar_detail?: string[];
|
|
7606
|
+
type?: string[];
|
|
7607
|
+
grade?: string[];
|
|
7608
|
+
appearance?: string[];
|
|
7609
|
+
arrivalDates?: string[];
|
|
7610
|
+
drying_method?: string[];
|
|
7611
|
+
wholesale?: string[];
|
|
7612
|
+
processing_base_method?: string[];
|
|
7613
|
+
fermentation_type?: string[];
|
|
7614
|
+
process_additives?: string[];
|
|
7615
|
+
processing_disclosure_level?: string[];
|
|
7616
|
+
};
|
|
7617
|
+
/** @description Counted facet values for CLI/agent use. Counts are computed after visibility and entitled query filters are applied. */
|
|
7618
|
+
facets: {
|
|
7619
|
+
sources?: {
|
|
7620
|
+
value: string;
|
|
7621
|
+
count: number;
|
|
7622
|
+
}[];
|
|
7623
|
+
continents?: {
|
|
7624
|
+
value: string;
|
|
7625
|
+
count: number;
|
|
7069
7626
|
}[];
|
|
7070
7627
|
countries?: {
|
|
7071
7628
|
value: string;
|
|
@@ -9146,6 +9703,41 @@ interface components {
|
|
|
9146
9703
|
temperatures?: components["schemas"]["RoastTemperatureInput"][];
|
|
9147
9704
|
events?: components["schemas"]["RoastEventInput"][];
|
|
9148
9705
|
};
|
|
9706
|
+
RoastBatchMutationResponse: {
|
|
9707
|
+
data: {
|
|
9708
|
+
batchName: string;
|
|
9709
|
+
profiles: components["schemas"]["RoastDetailResource"][];
|
|
9710
|
+
};
|
|
9711
|
+
meta: {
|
|
9712
|
+
/** @enum {string} */
|
|
9713
|
+
resource: "roast-batches";
|
|
9714
|
+
/** @enum {string} */
|
|
9715
|
+
namespace: "/v1/roasts/batches";
|
|
9716
|
+
/** @enum {string} */
|
|
9717
|
+
version: "v1";
|
|
9718
|
+
auth: {
|
|
9719
|
+
/** @enum {string} */
|
|
9720
|
+
kind: "session" | "api-key";
|
|
9721
|
+
/** @enum {string|null} */
|
|
9722
|
+
role: "admin" | "member" | "viewer" | null;
|
|
9723
|
+
/** @enum {string|null} */
|
|
9724
|
+
apiPlan: "viewer" | "member" | "enterprise" | null;
|
|
9725
|
+
};
|
|
9726
|
+
};
|
|
9727
|
+
};
|
|
9728
|
+
RoastBatchItem: {
|
|
9729
|
+
coffeeId: number;
|
|
9730
|
+
coffeeName?: string;
|
|
9731
|
+
ozIn?: number;
|
|
9732
|
+
ozOut?: number;
|
|
9733
|
+
};
|
|
9734
|
+
RoastBatchCreateRequest: {
|
|
9735
|
+
batchName: string;
|
|
9736
|
+
roastDate?: string;
|
|
9737
|
+
notes?: string;
|
|
9738
|
+
targets?: string;
|
|
9739
|
+
items: components["schemas"]["RoastBatchItem"][];
|
|
9740
|
+
};
|
|
9149
9741
|
RoastUpdateRequest: {
|
|
9150
9742
|
coffeeName?: string;
|
|
9151
9743
|
batchName?: string;
|
|
@@ -9184,6 +9776,10 @@ interface components {
|
|
|
9184
9776
|
temperatures?: components["schemas"]["RoastTemperatureInput"][];
|
|
9185
9777
|
events?: components["schemas"]["RoastEventInput"][];
|
|
9186
9778
|
};
|
|
9779
|
+
RoastLiveCurveRequest: {
|
|
9780
|
+
temperatures: components["schemas"]["RoastTemperatureInput"][];
|
|
9781
|
+
events: components["schemas"]["RoastEventInput"][];
|
|
9782
|
+
};
|
|
9187
9783
|
RoastDeleteResponse: {
|
|
9188
9784
|
data: {
|
|
9189
9785
|
id: number;
|
|
@@ -9207,6 +9803,30 @@ interface components {
|
|
|
9207
9803
|
};
|
|
9208
9804
|
};
|
|
9209
9805
|
};
|
|
9806
|
+
RoastBatchDeleteResponse: {
|
|
9807
|
+
data: {
|
|
9808
|
+
batchName: string;
|
|
9809
|
+
ids: number[];
|
|
9810
|
+
/** @enum {boolean} */
|
|
9811
|
+
deleted: true;
|
|
9812
|
+
};
|
|
9813
|
+
meta: {
|
|
9814
|
+
/** @enum {string} */
|
|
9815
|
+
resource: "roast-batches";
|
|
9816
|
+
/** @enum {string} */
|
|
9817
|
+
namespace: "/v1/roasts/batches";
|
|
9818
|
+
/** @enum {string} */
|
|
9819
|
+
version: "v1";
|
|
9820
|
+
auth: {
|
|
9821
|
+
/** @enum {string} */
|
|
9822
|
+
kind: "session" | "api-key";
|
|
9823
|
+
/** @enum {string|null} */
|
|
9824
|
+
role: "admin" | "member" | "viewer" | null;
|
|
9825
|
+
/** @enum {string|null} */
|
|
9826
|
+
apiPlan: "viewer" | "member" | "enterprise" | null;
|
|
9827
|
+
};
|
|
9828
|
+
};
|
|
9829
|
+
};
|
|
9210
9830
|
ArtisanImportSummary: {
|
|
9211
9831
|
fileName: string;
|
|
9212
9832
|
fileSize: number;
|
|
@@ -9713,6 +10333,12 @@ type CatalogFacetsQuery = NonNullable<paths["/v1/catalog/facets"]["get"]["parame
|
|
|
9713
10333
|
* into strip-with-notice degradation instead of a 401/403 hard-deny.
|
|
9714
10334
|
*/
|
|
9715
10335
|
type CatalogListHeaders = NonNullable<paths["/v1/catalog"]["get"]["parameters"]["header"]>;
|
|
10336
|
+
/** Query parameters for {@link ParchmentClient.catalog.map}. */
|
|
10337
|
+
type CatalogMapQuery = NonNullable<paths["/v1/catalog/map"]["get"]["parameters"]["query"]>;
|
|
10338
|
+
/** Optional handling headers for {@link ParchmentClient.catalog.map}. */
|
|
10339
|
+
type CatalogMapHeaders = NonNullable<paths["/v1/catalog/map"]["get"]["parameters"]["header"]>;
|
|
10340
|
+
/** Lightweight map projection over the caller-visible catalog. */
|
|
10341
|
+
type CatalogMapResponse = components["schemas"]["CatalogMapResponse"];
|
|
9716
10342
|
/** Optional headers for {@link ParchmentClient.catalog.facets}; see {@link CatalogListHeaders}. */
|
|
9717
10343
|
type CatalogFacetsHeaders = NonNullable<paths["/v1/catalog/facets"]["get"]["parameters"]["header"]>;
|
|
9718
10344
|
/** Query parameters for {@link ParchmentClient.catalog.originPriceStats}. */
|
|
@@ -9799,8 +10425,12 @@ type RoastChartDataQuery = NonNullable<paths["/v1/roasts/{id}/chart-data"]["get"
|
|
|
9799
10425
|
type RoastClassificationRequest = NonNullable<paths["/v1/roasts/classify"]["post"]["requestBody"]>["content"]["application/json"];
|
|
9800
10426
|
/** Request body for {@link ParchmentClient.roasts.create}. */
|
|
9801
10427
|
type RoastCreateRequest = NonNullable<paths["/v1/roasts"]["post"]["requestBody"]>["content"]["application/json"];
|
|
10428
|
+
/** Atomic named-batch body for {@link ParchmentClient.roasts.createBatch}. */
|
|
10429
|
+
type RoastBatchCreateRequest = NonNullable<paths["/v1/roasts/batches"]["post"]["requestBody"]>["content"]["application/json"];
|
|
9802
10430
|
/** Request body for {@link ParchmentClient.roasts.update}. */
|
|
9803
10431
|
type RoastUpdateRequest = NonNullable<paths["/v1/roasts/{id}"]["patch"]["requestBody"]>["content"]["application/json"];
|
|
10432
|
+
/** Source-aware live curve body for {@link ParchmentClient.roasts.replaceLiveCurve}. */
|
|
10433
|
+
type RoastLiveCurveRequest = NonNullable<paths["/v1/roasts/{id}/live-curve"]["put"]["requestBody"]>["content"]["application/json"];
|
|
9804
10434
|
/** Request body for {@link ParchmentClient.roasts.import}. */
|
|
9805
10435
|
type RoastImportRequest = NonNullable<paths["/v1/roasts/imports"]["post"]["requestBody"]>["content"]["application/json"];
|
|
9806
10436
|
/** Request body for {@link ParchmentClient.roasts.replaceArtisanImport}. */
|
|
@@ -10622,7 +11252,9 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
|
|
|
10622
11252
|
request: (body: AccountDeletionRequest) => Promise<openapi_fetch.FetchResponse<{
|
|
10623
11253
|
parameters: {
|
|
10624
11254
|
query?: never;
|
|
10625
|
-
header
|
|
11255
|
+
header
|
|
11256
|
+
/** Optional headers for ranking endpoints; see {@link CatalogListHeaders}. */
|
|
11257
|
+
? /** Optional headers for ranking endpoints; see {@link CatalogListHeaders}. */: never;
|
|
10626
11258
|
path?: never;
|
|
10627
11259
|
cookie?: never;
|
|
10628
11260
|
};
|
|
@@ -10949,7 +11581,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
|
|
|
10949
11581
|
[name: string]: unknown;
|
|
10950
11582
|
};
|
|
10951
11583
|
content: {
|
|
10952
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
11584
|
+
"application/json": components["schemas"] /** Actionable market value signals. */["ErrorResponse"];
|
|
10953
11585
|
};
|
|
10954
11586
|
};
|
|
10955
11587
|
503: {
|
|
@@ -11005,7 +11637,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
|
|
|
11005
11637
|
[name: string]: unknown;
|
|
11006
11638
|
};
|
|
11007
11639
|
content: {
|
|
11008
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
11640
|
+
"application/json": components["schemas"] /** Actionable market value signals. */["ErrorResponse"];
|
|
11009
11641
|
};
|
|
11010
11642
|
};
|
|
11011
11643
|
503: {
|
|
@@ -11276,11 +11908,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
|
|
|
11276
11908
|
[name: string]: unknown;
|
|
11277
11909
|
};
|
|
11278
11910
|
content: {
|
|
11279
|
-
"application/json": components["schemas"]
|
|
11280
|
-
* Update one of the caller's own sales. The sales table carries no
|
|
11281
|
-
* `last_updated` column, so no If-Match optimistic concurrency is
|
|
11282
|
-
* offered.
|
|
11283
|
-
*/["ErrorResponse"];
|
|
11911
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
11284
11912
|
};
|
|
11285
11913
|
};
|
|
11286
11914
|
};
|
|
@@ -11872,6 +12500,143 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
|
|
|
11872
12500
|
} | undefined;
|
|
11873
12501
|
};
|
|
11874
12502
|
}, `${string}/${string}`>>;
|
|
12503
|
+
/** Deterministic clusters, canonical place features, and elevation profile. */
|
|
12504
|
+
map: (query?: CatalogMapQuery, headers?: CatalogMapHeaders) => Promise<openapi_fetch.FetchResponse<{
|
|
12505
|
+
parameters: {
|
|
12506
|
+
query?: {
|
|
12507
|
+
stocked?: "true" | "false" | "all";
|
|
12508
|
+
showWholesale?: "true" | "false";
|
|
12509
|
+
wholesaleOnly?: "true" | "false";
|
|
12510
|
+
origin?: string;
|
|
12511
|
+
continent?: string;
|
|
12512
|
+
country?: string | string[];
|
|
12513
|
+
region?: string;
|
|
12514
|
+
source?: string | string[];
|
|
12515
|
+
name?: string;
|
|
12516
|
+
processing?: string;
|
|
12517
|
+
variety?: string;
|
|
12518
|
+
type?: string;
|
|
12519
|
+
grade?: string;
|
|
12520
|
+
appearance?: string;
|
|
12521
|
+
supplier?: string;
|
|
12522
|
+
dryingMethod?: string;
|
|
12523
|
+
flavorKeywords?: string | string[];
|
|
12524
|
+
arrivalDate?: string;
|
|
12525
|
+
stockedDate?: string;
|
|
12526
|
+
stockedDays?: number;
|
|
12527
|
+
coffeeIds?: string;
|
|
12528
|
+
scoreValueMin?: number | null;
|
|
12529
|
+
scoreValueMax?: number | null;
|
|
12530
|
+
pricePerLbMin?: number | null;
|
|
12531
|
+
pricePerLbMax?: number | null;
|
|
12532
|
+
elevationMinMasl?: number | null;
|
|
12533
|
+
elevationMaxMasl?: number | null;
|
|
12534
|
+
processing_base_method?: string;
|
|
12535
|
+
fermentation_type?: string;
|
|
12536
|
+
process_additive?: string;
|
|
12537
|
+
has_additives?: "true" | "false";
|
|
12538
|
+
processing_disclosure_level?: string;
|
|
12539
|
+
processing_confidence_min?: number | null;
|
|
12540
|
+
place_id?: string;
|
|
12541
|
+
bbox?: string;
|
|
12542
|
+
zoom?: number;
|
|
12543
|
+
lens?: "catalog" | "elevation";
|
|
12544
|
+
};
|
|
12545
|
+
header?: {
|
|
12546
|
+
Prefer?: string;
|
|
12547
|
+
};
|
|
12548
|
+
path?: never;
|
|
12549
|
+
cookie?: never;
|
|
12550
|
+
};
|
|
12551
|
+
requestBody?: never;
|
|
12552
|
+
responses: {
|
|
12553
|
+
200: {
|
|
12554
|
+
headers: {
|
|
12555
|
+
[name: string]: unknown;
|
|
12556
|
+
};
|
|
12557
|
+
content: {
|
|
12558
|
+
"application/json": components["schemas"]["CatalogMapResponse"];
|
|
12559
|
+
};
|
|
12560
|
+
};
|
|
12561
|
+
400: {
|
|
12562
|
+
headers: {
|
|
12563
|
+
[name: string]: unknown;
|
|
12564
|
+
};
|
|
12565
|
+
content: {
|
|
12566
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
12567
|
+
};
|
|
12568
|
+
};
|
|
12569
|
+
401: {
|
|
12570
|
+
headers: {
|
|
12571
|
+
[name: string]: unknown;
|
|
12572
|
+
};
|
|
12573
|
+
content: {
|
|
12574
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
12575
|
+
};
|
|
12576
|
+
};
|
|
12577
|
+
403: {
|
|
12578
|
+
headers: {
|
|
12579
|
+
[name: string]: unknown;
|
|
12580
|
+
};
|
|
12581
|
+
content: {
|
|
12582
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
12583
|
+
};
|
|
12584
|
+
};
|
|
12585
|
+
503: {
|
|
12586
|
+
headers: {
|
|
12587
|
+
[name: string]: unknown;
|
|
12588
|
+
};
|
|
12589
|
+
content: {
|
|
12590
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
12591
|
+
};
|
|
12592
|
+
};
|
|
12593
|
+
};
|
|
12594
|
+
}, {
|
|
12595
|
+
params: {
|
|
12596
|
+
query: {
|
|
12597
|
+
stocked?: "true" | "false" | "all";
|
|
12598
|
+
showWholesale?: "true" | "false";
|
|
12599
|
+
wholesaleOnly?: "true" | "false";
|
|
12600
|
+
origin?: string;
|
|
12601
|
+
continent?: string;
|
|
12602
|
+
country?: string | string[];
|
|
12603
|
+
region?: string;
|
|
12604
|
+
source?: string | string[];
|
|
12605
|
+
name?: string;
|
|
12606
|
+
processing?: string;
|
|
12607
|
+
variety?: string;
|
|
12608
|
+
type?: string;
|
|
12609
|
+
grade?: string;
|
|
12610
|
+
appearance?: string;
|
|
12611
|
+
supplier?: string;
|
|
12612
|
+
dryingMethod?: string;
|
|
12613
|
+
flavorKeywords?: string | string[];
|
|
12614
|
+
arrivalDate?: string;
|
|
12615
|
+
stockedDate?: string;
|
|
12616
|
+
stockedDays?: number;
|
|
12617
|
+
coffeeIds?: string;
|
|
12618
|
+
scoreValueMin?: number | null;
|
|
12619
|
+
scoreValueMax?: number | null;
|
|
12620
|
+
pricePerLbMin?: number | null;
|
|
12621
|
+
pricePerLbMax?: number | null;
|
|
12622
|
+
elevationMinMasl?: number | null;
|
|
12623
|
+
elevationMaxMasl?: number | null;
|
|
12624
|
+
processing_base_method?: string;
|
|
12625
|
+
fermentation_type?: string;
|
|
12626
|
+
process_additive?: string;
|
|
12627
|
+
has_additives?: "true" | "false";
|
|
12628
|
+
processing_disclosure_level?: string;
|
|
12629
|
+
processing_confidence_min?: number | null;
|
|
12630
|
+
place_id?: string;
|
|
12631
|
+
bbox?: string;
|
|
12632
|
+
zoom?: number;
|
|
12633
|
+
lens?: "catalog" | "elevation";
|
|
12634
|
+
} | undefined;
|
|
12635
|
+
header: {
|
|
12636
|
+
Prefer?: string;
|
|
12637
|
+
} | undefined;
|
|
12638
|
+
};
|
|
12639
|
+
}, `${string}/${string}`>>;
|
|
11875
12640
|
/**
|
|
11876
12641
|
* Catalog filter metadata and counted facets. Pass `headers` to send the
|
|
11877
12642
|
* `Prefer: handling=lenient|strict` override (see {@link CatalogFacetsHeaders}).
|
|
@@ -15103,6 +15868,104 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
|
|
|
15103
15868
|
};
|
|
15104
15869
|
} | undefined;
|
|
15105
15870
|
}, `${string}/${string}`>>;
|
|
15871
|
+
/**
|
|
15872
|
+
* Create every profile in one named batch atomically. The required
|
|
15873
|
+
* payload-bound idempotency key makes transport retries safe.
|
|
15874
|
+
*/
|
|
15875
|
+
createBatch: (body: RoastBatchCreateRequest, idempotencyKey: string) => Promise<openapi_fetch.FetchResponse<{
|
|
15876
|
+
parameters: {
|
|
15877
|
+
query?: never;
|
|
15878
|
+
header: {
|
|
15879
|
+
"idempotency-key": string;
|
|
15880
|
+
};
|
|
15881
|
+
path?: never;
|
|
15882
|
+
cookie?: never;
|
|
15883
|
+
};
|
|
15884
|
+
requestBody: {
|
|
15885
|
+
content: {
|
|
15886
|
+
"application/json": components["schemas"]["RoastBatchCreateRequest"];
|
|
15887
|
+
};
|
|
15888
|
+
};
|
|
15889
|
+
responses: {
|
|
15890
|
+
201: {
|
|
15891
|
+
headers: {
|
|
15892
|
+
[name: string]: unknown;
|
|
15893
|
+
};
|
|
15894
|
+
content: {
|
|
15895
|
+
"application/json": components["schemas"]["RoastBatchMutationResponse"];
|
|
15896
|
+
};
|
|
15897
|
+
};
|
|
15898
|
+
400: {
|
|
15899
|
+
headers: {
|
|
15900
|
+
[name: string]: unknown;
|
|
15901
|
+
};
|
|
15902
|
+
content: {
|
|
15903
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
15904
|
+
};
|
|
15905
|
+
};
|
|
15906
|
+
401: {
|
|
15907
|
+
headers: {
|
|
15908
|
+
[name: string]: unknown;
|
|
15909
|
+
};
|
|
15910
|
+
content: {
|
|
15911
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
15912
|
+
};
|
|
15913
|
+
};
|
|
15914
|
+
403: {
|
|
15915
|
+
headers: {
|
|
15916
|
+
[name: string]: unknown;
|
|
15917
|
+
};
|
|
15918
|
+
content: {
|
|
15919
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
15920
|
+
};
|
|
15921
|
+
};
|
|
15922
|
+
404: {
|
|
15923
|
+
headers: {
|
|
15924
|
+
[name: string]: unknown;
|
|
15925
|
+
};
|
|
15926
|
+
content: {
|
|
15927
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
15928
|
+
};
|
|
15929
|
+
};
|
|
15930
|
+
409: {
|
|
15931
|
+
headers: {
|
|
15932
|
+
[name: string]: unknown;
|
|
15933
|
+
};
|
|
15934
|
+
content: {
|
|
15935
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
15936
|
+
};
|
|
15937
|
+
};
|
|
15938
|
+
429: {
|
|
15939
|
+
headers: {
|
|
15940
|
+
[name: string]: unknown;
|
|
15941
|
+
};
|
|
15942
|
+
content: {
|
|
15943
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
15944
|
+
};
|
|
15945
|
+
};
|
|
15946
|
+
503: {
|
|
15947
|
+
headers: {
|
|
15948
|
+
[name: string]: unknown;
|
|
15949
|
+
};
|
|
15950
|
+
content: {
|
|
15951
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
15952
|
+
};
|
|
15953
|
+
};
|
|
15954
|
+
};
|
|
15955
|
+
}, {
|
|
15956
|
+
body: {
|
|
15957
|
+
batchName: string;
|
|
15958
|
+
roastDate?: string;
|
|
15959
|
+
notes?: string;
|
|
15960
|
+
targets?: string;
|
|
15961
|
+
items: components["schemas"]["RoastBatchItem"][];
|
|
15962
|
+
};
|
|
15963
|
+
params: {
|
|
15964
|
+
header: {
|
|
15965
|
+
"idempotency-key": string;
|
|
15966
|
+
};
|
|
15967
|
+
};
|
|
15968
|
+
}, `${string}/${string}`>>;
|
|
15106
15969
|
/**
|
|
15107
15970
|
* Update one of the caller's own roast profiles. Pass `ifMatch` (the
|
|
15108
15971
|
* row's `last_updated`) to enable optimistic concurrency (409 on mismatch).
|
|
@@ -15314,6 +16177,184 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
|
|
|
15314
16177
|
};
|
|
15315
16178
|
};
|
|
15316
16179
|
}, `${string}/${string}`>>;
|
|
16180
|
+
/** Delete every owner roast carrying one exact batch name. Session-only. */
|
|
16181
|
+
deleteBatch: (batchName: string) => Promise<openapi_fetch.FetchResponse<{
|
|
16182
|
+
parameters: {
|
|
16183
|
+
query?: never;
|
|
16184
|
+
header?: never;
|
|
16185
|
+
path: {
|
|
16186
|
+
batchName: string;
|
|
16187
|
+
};
|
|
16188
|
+
cookie?: never;
|
|
16189
|
+
};
|
|
16190
|
+
requestBody?: never;
|
|
16191
|
+
responses: {
|
|
16192
|
+
200: {
|
|
16193
|
+
headers: {
|
|
16194
|
+
[name: string]: unknown;
|
|
16195
|
+
};
|
|
16196
|
+
content: {
|
|
16197
|
+
"application/json": components["schemas"]["RoastBatchDeleteResponse"];
|
|
16198
|
+
};
|
|
16199
|
+
};
|
|
16200
|
+
400: {
|
|
16201
|
+
headers: {
|
|
16202
|
+
[name: string]: unknown;
|
|
16203
|
+
};
|
|
16204
|
+
content: {
|
|
16205
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16206
|
+
};
|
|
16207
|
+
};
|
|
16208
|
+
401: {
|
|
16209
|
+
headers: {
|
|
16210
|
+
[name: string]: unknown;
|
|
16211
|
+
};
|
|
16212
|
+
content: {
|
|
16213
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16214
|
+
};
|
|
16215
|
+
};
|
|
16216
|
+
403: {
|
|
16217
|
+
headers: {
|
|
16218
|
+
[name: string]: unknown;
|
|
16219
|
+
};
|
|
16220
|
+
content: {
|
|
16221
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16222
|
+
};
|
|
16223
|
+
};
|
|
16224
|
+
404: {
|
|
16225
|
+
headers: {
|
|
16226
|
+
[name: string]: unknown;
|
|
16227
|
+
};
|
|
16228
|
+
content: {
|
|
16229
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16230
|
+
};
|
|
16231
|
+
};
|
|
16232
|
+
429: {
|
|
16233
|
+
headers: {
|
|
16234
|
+
[name: string]: unknown;
|
|
16235
|
+
};
|
|
16236
|
+
content: {
|
|
16237
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16238
|
+
};
|
|
16239
|
+
};
|
|
16240
|
+
503: {
|
|
16241
|
+
headers: {
|
|
16242
|
+
[name: string]: unknown;
|
|
16243
|
+
};
|
|
16244
|
+
content: {
|
|
16245
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16246
|
+
};
|
|
16247
|
+
};
|
|
16248
|
+
};
|
|
16249
|
+
}, {
|
|
16250
|
+
params: {
|
|
16251
|
+
path: {
|
|
16252
|
+
batchName: string;
|
|
16253
|
+
};
|
|
16254
|
+
};
|
|
16255
|
+
}, `${string}/${string}`>>;
|
|
16256
|
+
/**
|
|
16257
|
+
* Replace live temperature samples and all event markers atomically,
|
|
16258
|
+
* while preserving non-live temperatures and deriving milestone fields.
|
|
16259
|
+
*/
|
|
16260
|
+
replaceLiveCurve: (id: number, body: RoastLiveCurveRequest, options?: {
|
|
16261
|
+
ifMatch?: string;
|
|
16262
|
+
}) => Promise<openapi_fetch.FetchResponse<{
|
|
16263
|
+
parameters: {
|
|
16264
|
+
query?: never;
|
|
16265
|
+
header?: {
|
|
16266
|
+
"if-match"?: string;
|
|
16267
|
+
};
|
|
16268
|
+
path: {
|
|
16269
|
+
id: number;
|
|
16270
|
+
};
|
|
16271
|
+
cookie?: never;
|
|
16272
|
+
};
|
|
16273
|
+
requestBody: {
|
|
16274
|
+
content: {
|
|
16275
|
+
"application/json": components["schemas"]["RoastLiveCurveRequest"];
|
|
16276
|
+
};
|
|
16277
|
+
};
|
|
16278
|
+
responses: {
|
|
16279
|
+
200: {
|
|
16280
|
+
headers: {
|
|
16281
|
+
[name: string]: unknown;
|
|
16282
|
+
};
|
|
16283
|
+
content: {
|
|
16284
|
+
"application/json": components["schemas"]["RoastDetailResponse"];
|
|
16285
|
+
};
|
|
16286
|
+
};
|
|
16287
|
+
400: {
|
|
16288
|
+
headers: {
|
|
16289
|
+
[name: string]: unknown;
|
|
16290
|
+
};
|
|
16291
|
+
content: {
|
|
16292
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16293
|
+
};
|
|
16294
|
+
};
|
|
16295
|
+
401: {
|
|
16296
|
+
headers: {
|
|
16297
|
+
[name: string]: unknown;
|
|
16298
|
+
};
|
|
16299
|
+
content: {
|
|
16300
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16301
|
+
};
|
|
16302
|
+
};
|
|
16303
|
+
403: {
|
|
16304
|
+
headers: {
|
|
16305
|
+
[name: string]: unknown;
|
|
16306
|
+
};
|
|
16307
|
+
content: {
|
|
16308
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16309
|
+
};
|
|
16310
|
+
};
|
|
16311
|
+
404: {
|
|
16312
|
+
headers: {
|
|
16313
|
+
[name: string]: unknown;
|
|
16314
|
+
};
|
|
16315
|
+
content: {
|
|
16316
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16317
|
+
};
|
|
16318
|
+
};
|
|
16319
|
+
409: {
|
|
16320
|
+
headers: {
|
|
16321
|
+
[name: string]: unknown;
|
|
16322
|
+
};
|
|
16323
|
+
content: {
|
|
16324
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16325
|
+
};
|
|
16326
|
+
};
|
|
16327
|
+
429: {
|
|
16328
|
+
headers: {
|
|
16329
|
+
[name: string]: unknown;
|
|
16330
|
+
};
|
|
16331
|
+
content: {
|
|
16332
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16333
|
+
};
|
|
16334
|
+
};
|
|
16335
|
+
503: {
|
|
16336
|
+
headers: {
|
|
16337
|
+
[name: string]: unknown;
|
|
16338
|
+
};
|
|
16339
|
+
content: {
|
|
16340
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
16341
|
+
};
|
|
16342
|
+
};
|
|
16343
|
+
};
|
|
16344
|
+
}, {
|
|
16345
|
+
params: {
|
|
16346
|
+
path: {
|
|
16347
|
+
id: number;
|
|
16348
|
+
};
|
|
16349
|
+
header: {
|
|
16350
|
+
"if-match": string;
|
|
16351
|
+
} | undefined;
|
|
16352
|
+
};
|
|
16353
|
+
body: {
|
|
16354
|
+
temperatures: components["schemas"]["RoastTemperatureInput"][];
|
|
16355
|
+
events: components["schemas"]["RoastEventInput"][];
|
|
16356
|
+
};
|
|
16357
|
+
}, `${string}/${string}`>>;
|
|
15317
16358
|
/**
|
|
15318
16359
|
* Create a roast profile from an Artisan `.alog` file against one of the
|
|
15319
16360
|
* caller's green-coffee lots, persisting the imported curve, events, and
|
|
@@ -16143,4 +17184,4 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
|
|
|
16143
17184
|
};
|
|
16144
17185
|
type ParchmentClient = ReturnType<typeof createParchmentClient>;
|
|
16145
17186
|
|
|
16146
|
-
export { type AccountDeletionOperation, type AccountDeletionRequest, type BillingCheckoutCreateRequest, type BillingCheckoutSession, type BillingManualEntitlementsRequest, type BillingSubscriptionMutationRequest, type BillingSubscriptionOperation, type BriefMatchesQuery, type CatalogInventoryBatchLifecycle, type CatalogInventoryBatchReserveRequest, type CatalogInventoryBatchResult, type CatalogItem, type CatalogListQuery, type CatalogProofSummary, type CatalogSimilarQuery, type InventoryCreateRequest, type InventoryShareCatalog, type InventoryShareGrant, type InventoryShareGrantCreateRequest, type InventoryShareGrantRedeemRequest, type InventoryShareInventory, type InventoryShareRoastSummary, type InventoryUpdateRequest, type MarketOverview, type MarketSignalsQuery, type MetadataIndexQuery, type OwnerApiUsage, type OwnerApiUsageQuery, type ParchmentClient, type ParchmentClientOptions, type PriceIndexQuery, type PriceIndexStatsQuery, type ProfitItem, type ProfitListQuery, type RoastChartDataQuery, type SalesCreateRequest, type SalesListQuery, type SalesUpdateRequest, type SourcingBriefCreateRequest, type TrackedLotMutation, type TrackedLotSummary, type TrackedLotsListQuery, type components, createParchmentClient, type paths };
|
|
17187
|
+
export { type AccountDeletionOperation, type AccountDeletionRequest, type BillingCheckoutCreateRequest, type BillingCheckoutSession, type BillingManualEntitlementsRequest, type BillingSubscriptionMutationRequest, type BillingSubscriptionOperation, type BriefMatchesQuery, type CatalogInventoryBatchLifecycle, type CatalogInventoryBatchReserveRequest, type CatalogInventoryBatchResult, type CatalogItem, type CatalogListQuery, type CatalogMapHeaders, type CatalogMapQuery, type CatalogMapResponse, type CatalogProofSummary, type CatalogSimilarQuery, type InventoryCreateRequest, type InventoryShareCatalog, type InventoryShareGrant, type InventoryShareGrantCreateRequest, type InventoryShareGrantRedeemRequest, type InventoryShareInventory, type InventoryShareRoastSummary, type InventoryUpdateRequest, type MarketOverview, type MarketSignalsQuery, type MetadataIndexQuery, type OwnerApiUsage, type OwnerApiUsageQuery, type ParchmentClient, type ParchmentClientOptions, type PriceIndexQuery, type PriceIndexStatsQuery, type ProfitItem, type ProfitListQuery, type RoastBatchCreateRequest, type RoastChartDataQuery, type RoastLiveCurveRequest, type SalesCreateRequest, type SalesListQuery, type SalesUpdateRequest, type SourcingBriefCreateRequest, type TrackedLotMutation, type TrackedLotSummary, type TrackedLotsListQuery, type components, createParchmentClient, type paths };
|