order3000 0.20.0 → 0.22.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/client.cjs +145 -0
- package/dist/client.d.cts +218 -9
- package/dist/client.d.mts +218 -9
- package/dist/client.mjs +145 -0
- package/dist/schemas.cjs +16 -2
- package/dist/schemas.d.cts +355 -44
- package/dist/schemas.d.mts +355 -44
- package/dist/schemas.mjs +16 -2
- package/package.json +3 -3
package/dist/client.cjs
CHANGED
|
@@ -134,6 +134,38 @@ class BaseResource {
|
|
|
134
134
|
}
|
|
135
135
|
return response.json();
|
|
136
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Multipart counterpart to `request`. Skips the JSON Content-Type
|
|
139
|
+
* default — `fetch` sets `multipart/form-data; boundary=…`
|
|
140
|
+
* automatically when the body is a `FormData`. Use for binary uploads
|
|
141
|
+
* (e.g. article feature image).
|
|
142
|
+
*/
|
|
143
|
+
async requestMultipart(method, path, formData) {
|
|
144
|
+
const token = await this.tokenManager.getToken();
|
|
145
|
+
const venueId = this.tokenManager.getVenueId();
|
|
146
|
+
const url = `${this.baseUrl}/venues/${venueId}${this.resourcePath}${path}`;
|
|
147
|
+
const response = await fetch(url, {
|
|
148
|
+
method,
|
|
149
|
+
headers: {
|
|
150
|
+
Authorization: `Bearer ${token}`
|
|
151
|
+
// Intentionally NO Content-Type — fetch sets the boundary.
|
|
152
|
+
},
|
|
153
|
+
body: formData,
|
|
154
|
+
cache: "no-store",
|
|
155
|
+
signal: AbortSignal.timeout(36e4)
|
|
156
|
+
});
|
|
157
|
+
if (!response.ok) {
|
|
158
|
+
let body = "";
|
|
159
|
+
try {
|
|
160
|
+
body = await response.text();
|
|
161
|
+
} catch {
|
|
162
|
+
}
|
|
163
|
+
throw new Error(
|
|
164
|
+
`HTTP ${response.status}: ${response.statusText}${body ? ` \u2014 ${body}` : ""}`
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
return response.json();
|
|
168
|
+
}
|
|
137
169
|
}
|
|
138
170
|
|
|
139
171
|
class AreasResource extends BaseResource {
|
|
@@ -211,6 +243,79 @@ class ArticlesResource extends BaseResource {
|
|
|
211
243
|
const path = qs ? `?${qs}` : "";
|
|
212
244
|
return this.request("GET", path);
|
|
213
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* Fetch a single article by id or accessor within the active venue.
|
|
248
|
+
* Returns the full row including the TipTap `content` document.
|
|
249
|
+
*/
|
|
250
|
+
async getByAccessor(idOrAccessor) {
|
|
251
|
+
return this.request("GET", `/${encodeURIComponent(idOrAccessor)}`);
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Partial-update an article. Locale-keyed fields (slug, title, excerpt)
|
|
255
|
+
* merge at the locale level — `{ slug: { en: 'foo' } }` updates `en`
|
|
256
|
+
* without touching `de`. Plain scalar / array fields fully replace.
|
|
257
|
+
* Returns the resulting article.
|
|
258
|
+
*/
|
|
259
|
+
async patch(idOrAccessor, body) {
|
|
260
|
+
return this.request(
|
|
261
|
+
"PATCH",
|
|
262
|
+
`/${encodeURIComponent(idOrAccessor)}`,
|
|
263
|
+
body
|
|
264
|
+
);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Read the article's resolved feature image — asset id, public URL,
|
|
268
|
+
* matched locale, plus the FULL per-locale caption + alt records.
|
|
269
|
+
* Returns null when the article has no feature image yet (the wire
|
|
270
|
+
* 404 is mapped here for ergonomic null-checking on the caller side).
|
|
271
|
+
*/
|
|
272
|
+
async getFeatureImage(idOrAccessor, options) {
|
|
273
|
+
const params = new URLSearchParams();
|
|
274
|
+
if (options?.locale) params.set("locale", options.locale);
|
|
275
|
+
const qs = params.toString();
|
|
276
|
+
const path = `/${encodeURIComponent(idOrAccessor)}/feature-image${qs ? `?${qs}` : ""}`;
|
|
277
|
+
try {
|
|
278
|
+
return await this.request("GET", path);
|
|
279
|
+
} catch (err) {
|
|
280
|
+
if (err instanceof Error && err.message.includes("HTTP 404")) {
|
|
281
|
+
return null;
|
|
282
|
+
}
|
|
283
|
+
throw err;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Upload a new feature image. Replaces any existing feature image
|
|
288
|
+
* for the venue's primary locale (the previous one is demoted to
|
|
289
|
+
* `role='inline'`). The SDK builds the multipart body internally —
|
|
290
|
+
* pass a Buffer/Uint8Array, the original filename, and the MIME
|
|
291
|
+
* type.
|
|
292
|
+
*/
|
|
293
|
+
async uploadFeatureImage(idOrAccessor, file) {
|
|
294
|
+
const form = new FormData();
|
|
295
|
+
form.append(
|
|
296
|
+
"file",
|
|
297
|
+
new Blob([new Uint8Array(file.data)], { type: file.contentType }),
|
|
298
|
+
file.filename
|
|
299
|
+
);
|
|
300
|
+
return this.requestMultipart(
|
|
301
|
+
"POST",
|
|
302
|
+
`/${encodeURIComponent(idOrAccessor)}/feature-image`,
|
|
303
|
+
form
|
|
304
|
+
);
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Update per-locale caption / alt on the article's feature image.
|
|
308
|
+
* Locale-keyed merge — `{ caption: { en: '…' } }` does not touch
|
|
309
|
+
* `de`. Plain-string locale values are server-side wrapped into
|
|
310
|
+
* minimal TipTap docs (the storage shape).
|
|
311
|
+
*/
|
|
312
|
+
async patchFeatureImage(idOrAccessor, body) {
|
|
313
|
+
return this.request(
|
|
314
|
+
"PATCH",
|
|
315
|
+
`/${encodeURIComponent(idOrAccessor)}/feature-image`,
|
|
316
|
+
body
|
|
317
|
+
);
|
|
318
|
+
}
|
|
214
319
|
}
|
|
215
320
|
|
|
216
321
|
class BasketsResource extends BaseResource {
|
|
@@ -796,6 +901,44 @@ class TeamOrdersResource {
|
|
|
796
901
|
}
|
|
797
902
|
}
|
|
798
903
|
|
|
904
|
+
class VenuesResource {
|
|
905
|
+
constructor(tokenManager, baseUrl) {
|
|
906
|
+
this.tokenManager = tokenManager;
|
|
907
|
+
this.baseUrl = baseUrl;
|
|
908
|
+
}
|
|
909
|
+
/**
|
|
910
|
+
* Fetch a venue by its UUID or its accessor (slug). The path accepts
|
|
911
|
+
* either form; the server resolves transparently.
|
|
912
|
+
*
|
|
913
|
+
* Powers the order3000-cli's `venues use <accessor>` validation step
|
|
914
|
+
* — the CLI hits this to prove the accessor exists and to cache the
|
|
915
|
+
* resolved UUID + display fields locally.
|
|
916
|
+
*/
|
|
917
|
+
async getByAccessor(idOrAccessor) {
|
|
918
|
+
const token = await this.tokenManager.getToken();
|
|
919
|
+
const url = `${this.baseUrl}/venues/${encodeURIComponent(idOrAccessor)}`;
|
|
920
|
+
const response = await fetch(url, {
|
|
921
|
+
method: "GET",
|
|
922
|
+
headers: {
|
|
923
|
+
Authorization: `Bearer ${token}`,
|
|
924
|
+
"Content-Type": "application/json"
|
|
925
|
+
},
|
|
926
|
+
cache: "no-store"
|
|
927
|
+
});
|
|
928
|
+
if (!response.ok) {
|
|
929
|
+
let body = "";
|
|
930
|
+
try {
|
|
931
|
+
body = await response.text();
|
|
932
|
+
} catch {
|
|
933
|
+
}
|
|
934
|
+
throw new Error(
|
|
935
|
+
`HTTP ${response.status}: ${response.statusText}${body ? ` \u2014 ${body}` : ""}`
|
|
936
|
+
);
|
|
937
|
+
}
|
|
938
|
+
return response.json();
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
|
|
799
942
|
var __defProp$2 = Object.defineProperty;
|
|
800
943
|
var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
801
944
|
var __publicField$2 = (obj, key, value) => __defNormalProp$2(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
@@ -1130,6 +1273,7 @@ class Order3000Client {
|
|
|
1130
1273
|
__publicField(this, "reservations");
|
|
1131
1274
|
__publicField(this, "subscriptions");
|
|
1132
1275
|
__publicField(this, "teamOrders");
|
|
1276
|
+
__publicField(this, "venues");
|
|
1133
1277
|
__publicField(this, "realtime");
|
|
1134
1278
|
__publicField(this, "baseUrl");
|
|
1135
1279
|
__publicField(this, "tokenManager");
|
|
@@ -1160,6 +1304,7 @@ class Order3000Client {
|
|
|
1160
1304
|
this.baseUrl
|
|
1161
1305
|
);
|
|
1162
1306
|
this.teamOrders = new TeamOrdersResource(this.tokenManager, this.baseUrl);
|
|
1307
|
+
this.venues = new VenuesResource(this.tokenManager, this.baseUrl);
|
|
1163
1308
|
this.realtime = new RealtimeManager(this.tokenManager, this.baseUrl);
|
|
1164
1309
|
}
|
|
1165
1310
|
}
|
package/dist/client.d.cts
CHANGED
|
@@ -50,7 +50,14 @@ declare abstract class BaseResource {
|
|
|
50
50
|
protected readonly baseUrl: string;
|
|
51
51
|
protected readonly resourcePath: string;
|
|
52
52
|
constructor(tokenManager: TokenManager, baseUrl: string, resourcePath: string);
|
|
53
|
-
protected request<T>(method: 'GET' | 'POST' | 'DELETE', path: string, data?: unknown, cacheOptions?: RequestCacheOptions): Promise<T>;
|
|
53
|
+
protected request<T>(method: 'GET' | 'POST' | 'PATCH' | 'DELETE', path: string, data?: unknown, cacheOptions?: RequestCacheOptions): Promise<T>;
|
|
54
|
+
/**
|
|
55
|
+
* Multipart counterpart to `request`. Skips the JSON Content-Type
|
|
56
|
+
* default — `fetch` sets `multipart/form-data; boundary=…`
|
|
57
|
+
* automatically when the body is a `FormData`. Use for binary uploads
|
|
58
|
+
* (e.g. article feature image).
|
|
59
|
+
*/
|
|
60
|
+
protected requestMultipart<T>(method: 'POST' | 'PATCH' | 'PUT', path: string, formData: FormData): Promise<T>;
|
|
54
61
|
}
|
|
55
62
|
|
|
56
63
|
interface components {
|
|
@@ -218,9 +225,24 @@ interface components {
|
|
|
218
225
|
createdAt: string | null;
|
|
219
226
|
updatedAt: string | null;
|
|
220
227
|
};
|
|
228
|
+
/**
|
|
229
|
+
* FeatureImage
|
|
230
|
+
* @description An article's resolved feature image. `caption` / `alt` are per-locale TipTap docs (PATCH accepts plain strings — server normalises).
|
|
231
|
+
*/
|
|
232
|
+
FeatureImage: {
|
|
233
|
+
id: string;
|
|
234
|
+
publicUrl: string | null;
|
|
235
|
+
locale: string;
|
|
236
|
+
caption: {
|
|
237
|
+
[key: string]: unknown;
|
|
238
|
+
} | null;
|
|
239
|
+
alt: {
|
|
240
|
+
[key: string]: unknown;
|
|
241
|
+
} | null;
|
|
242
|
+
};
|
|
221
243
|
/**
|
|
222
244
|
* Article
|
|
223
|
-
* @description A venue's article. `content` is a TipTap JSON document; treat it as opaque on the wire.
|
|
245
|
+
* @description A venue's article. `content` is a TipTap JSON document; treat it as opaque on the wire. `featureImage` is resolved per-locale with a fallback to the venue's primary locale.
|
|
224
246
|
*/
|
|
225
247
|
Article: {
|
|
226
248
|
id: string;
|
|
@@ -234,21 +256,115 @@ interface components {
|
|
|
234
256
|
};
|
|
235
257
|
excerpt: {
|
|
236
258
|
[key: string]: string;
|
|
237
|
-
};
|
|
259
|
+
} | null;
|
|
238
260
|
content: {
|
|
239
261
|
[key: string]: unknown;
|
|
240
|
-
};
|
|
262
|
+
} | null;
|
|
241
263
|
tags: string[];
|
|
242
|
-
featuredImageId: string | null;
|
|
243
264
|
isActive: boolean;
|
|
244
265
|
isFeatured: boolean;
|
|
245
266
|
priority: number;
|
|
246
|
-
publishedAt:
|
|
247
|
-
createdAt:
|
|
248
|
-
updatedAt:
|
|
267
|
+
publishedAt: unknown;
|
|
268
|
+
createdAt: unknown;
|
|
269
|
+
updatedAt: unknown;
|
|
270
|
+
featureImage: components["schemas"]["FeatureImage"] | null;
|
|
249
271
|
};
|
|
250
272
|
/** ListArticlesResponse */
|
|
251
273
|
ListArticlesResponse: components["schemas"]["Article"][];
|
|
274
|
+
/**
|
|
275
|
+
* GetArticleResponse
|
|
276
|
+
* @description A venue's article. `content` is a TipTap JSON document; treat it as opaque on the wire. `featureImage` is resolved per-locale with a fallback to the venue's primary locale.
|
|
277
|
+
*/
|
|
278
|
+
GetArticleResponse: {
|
|
279
|
+
id: string;
|
|
280
|
+
venueId: string;
|
|
281
|
+
accessor: string;
|
|
282
|
+
slug: {
|
|
283
|
+
[key: string]: string;
|
|
284
|
+
};
|
|
285
|
+
title: {
|
|
286
|
+
[key: string]: string;
|
|
287
|
+
};
|
|
288
|
+
excerpt: {
|
|
289
|
+
[key: string]: string;
|
|
290
|
+
} | null;
|
|
291
|
+
content: {
|
|
292
|
+
[key: string]: unknown;
|
|
293
|
+
} | null;
|
|
294
|
+
tags: string[];
|
|
295
|
+
isActive: boolean;
|
|
296
|
+
isFeatured: boolean;
|
|
297
|
+
priority: number;
|
|
298
|
+
publishedAt: unknown;
|
|
299
|
+
createdAt: unknown;
|
|
300
|
+
updatedAt: unknown;
|
|
301
|
+
featureImage: components["schemas"]["FeatureImage"] | null;
|
|
302
|
+
};
|
|
303
|
+
/** PatchArticleRequest */
|
|
304
|
+
PatchArticleRequest: {
|
|
305
|
+
slug?: {
|
|
306
|
+
[key: string]: string;
|
|
307
|
+
};
|
|
308
|
+
title?: {
|
|
309
|
+
[key: string]: string;
|
|
310
|
+
};
|
|
311
|
+
excerpt?: {
|
|
312
|
+
[key: string]: string;
|
|
313
|
+
};
|
|
314
|
+
content?: {
|
|
315
|
+
[key: string]: unknown;
|
|
316
|
+
};
|
|
317
|
+
tags?: string[];
|
|
318
|
+
isActive?: boolean;
|
|
319
|
+
isFeatured?: boolean;
|
|
320
|
+
priority?: number;
|
|
321
|
+
};
|
|
322
|
+
/**
|
|
323
|
+
* PatchArticleResponse
|
|
324
|
+
* @description A venue's article. `content` is a TipTap JSON document; treat it as opaque on the wire. `featureImage` is resolved per-locale with a fallback to the venue's primary locale.
|
|
325
|
+
*/
|
|
326
|
+
PatchArticleResponse: {
|
|
327
|
+
id: string;
|
|
328
|
+
venueId: string;
|
|
329
|
+
accessor: string;
|
|
330
|
+
slug: {
|
|
331
|
+
[key: string]: string;
|
|
332
|
+
};
|
|
333
|
+
title: {
|
|
334
|
+
[key: string]: string;
|
|
335
|
+
};
|
|
336
|
+
excerpt: {
|
|
337
|
+
[key: string]: string;
|
|
338
|
+
} | null;
|
|
339
|
+
content: {
|
|
340
|
+
[key: string]: unknown;
|
|
341
|
+
} | null;
|
|
342
|
+
tags: string[];
|
|
343
|
+
isActive: boolean;
|
|
344
|
+
isFeatured: boolean;
|
|
345
|
+
priority: number;
|
|
346
|
+
publishedAt: unknown;
|
|
347
|
+
createdAt: unknown;
|
|
348
|
+
updatedAt: unknown;
|
|
349
|
+
featureImage: components["schemas"]["FeatureImage"] | null;
|
|
350
|
+
};
|
|
351
|
+
/** UploadFeatureImageRequest */
|
|
352
|
+
UploadFeatureImageRequest: {
|
|
353
|
+
/** @description Image file (multipart/form-data field) */
|
|
354
|
+
file: unknown;
|
|
355
|
+
};
|
|
356
|
+
/**
|
|
357
|
+
* PatchFeatureImageRequest
|
|
358
|
+
* @description Locale-keyed merge of the asset-side `caption` and `alt` records. Each locale value may be a plain string OR a TipTap doc; strings are wrapped server-side. Setting `en` does not touch `de`.
|
|
359
|
+
*/
|
|
360
|
+
PatchFeatureImageRequest: {
|
|
361
|
+
caption?: {
|
|
362
|
+
[key: string]: unknown;
|
|
363
|
+
};
|
|
364
|
+
alt?: {
|
|
365
|
+
[key: string]: unknown;
|
|
366
|
+
};
|
|
367
|
+
};
|
|
252
368
|
/**
|
|
253
369
|
* AddToBasketRequest
|
|
254
370
|
* @description Add an item to the shopping basket
|
|
@@ -1097,6 +1213,23 @@ interface components {
|
|
|
1097
1213
|
teamOrderId: string;
|
|
1098
1214
|
deliveryAddressId: string;
|
|
1099
1215
|
};
|
|
1216
|
+
/**
|
|
1217
|
+
* GetVenueResponse
|
|
1218
|
+
* @description A venue. The public API exposes only the minimal id + accessor + naming + locale fields the CLI's `venues use` / `auth whoami` consume.
|
|
1219
|
+
*/
|
|
1220
|
+
GetVenueResponse: {
|
|
1221
|
+
id: string;
|
|
1222
|
+
accessor: string;
|
|
1223
|
+
officialName: string;
|
|
1224
|
+
legalName: string;
|
|
1225
|
+
shortName: string;
|
|
1226
|
+
brandName: string;
|
|
1227
|
+
primaryLocale: string;
|
|
1228
|
+
supportedLocales: string[];
|
|
1229
|
+
timezone: string;
|
|
1230
|
+
createdAt: unknown;
|
|
1231
|
+
updatedAt: unknown;
|
|
1232
|
+
};
|
|
1100
1233
|
};
|
|
1101
1234
|
responses: never;
|
|
1102
1235
|
parameters: never;
|
|
@@ -1110,6 +1243,22 @@ type CreateEventRequest = schemas['CreateEventRequest'];
|
|
|
1110
1243
|
type CreateEventResponse = schemas['CreateEventResponse'];
|
|
1111
1244
|
type Article = schemas['Article'];
|
|
1112
1245
|
type ListArticlesResponse = schemas['ListArticlesResponse'];
|
|
1246
|
+
type GetArticleResponse = schemas['GetArticleResponse'];
|
|
1247
|
+
type PatchArticleRequest = schemas['PatchArticleRequest'];
|
|
1248
|
+
type PatchArticleResponse = schemas['PatchArticleResponse'];
|
|
1249
|
+
type FeatureImage = schemas['FeatureImage'];
|
|
1250
|
+
type PatchFeatureImageRequest = schemas['PatchFeatureImageRequest'];
|
|
1251
|
+
/**
|
|
1252
|
+
* Args for `client.articles.uploadFeatureImage()`. The SDK accepts a
|
|
1253
|
+
* `Buffer` or `Uint8Array` payload + filename + content-type — it
|
|
1254
|
+
* builds the FormData internally so callers don't have to know about
|
|
1255
|
+
* multipart wire encoding.
|
|
1256
|
+
*/
|
|
1257
|
+
interface UploadFeatureImageArgs {
|
|
1258
|
+
data: Buffer | Uint8Array;
|
|
1259
|
+
filename: string;
|
|
1260
|
+
contentType: string;
|
|
1261
|
+
}
|
|
1113
1262
|
interface ListArticlesOptions {
|
|
1114
1263
|
/** Only return articles whose `tags` array contains this value. */
|
|
1115
1264
|
tag?: string;
|
|
@@ -1118,6 +1267,8 @@ interface ListArticlesOptions {
|
|
|
1118
1267
|
/** When `true`, include articles whose `isActive` is `false`. Default `false`. */
|
|
1119
1268
|
includeInactive?: boolean;
|
|
1120
1269
|
}
|
|
1270
|
+
type Venue = schemas['Venue'];
|
|
1271
|
+
type GetVenueResponse = schemas['GetVenueResponse'];
|
|
1121
1272
|
/**
|
|
1122
1273
|
* Order fulfillment type - matches order_fulfillment_type enum in order3000 database.
|
|
1123
1274
|
* Keep in sync with apps/order3000/src/drizzle/enums.ts
|
|
@@ -1907,6 +2058,42 @@ declare class ArticlesResource extends BaseResource {
|
|
|
1907
2058
|
* for human-friendly node addressing.
|
|
1908
2059
|
*/
|
|
1909
2060
|
list(options?: ListArticlesOptions): Promise<ListArticlesResponse>;
|
|
2061
|
+
/**
|
|
2062
|
+
* Fetch a single article by id or accessor within the active venue.
|
|
2063
|
+
* Returns the full row including the TipTap `content` document.
|
|
2064
|
+
*/
|
|
2065
|
+
getByAccessor(idOrAccessor: string): Promise<Article>;
|
|
2066
|
+
/**
|
|
2067
|
+
* Partial-update an article. Locale-keyed fields (slug, title, excerpt)
|
|
2068
|
+
* merge at the locale level — `{ slug: { en: 'foo' } }` updates `en`
|
|
2069
|
+
* without touching `de`. Plain scalar / array fields fully replace.
|
|
2070
|
+
* Returns the resulting article.
|
|
2071
|
+
*/
|
|
2072
|
+
patch(idOrAccessor: string, body: PatchArticleRequest): Promise<Article>;
|
|
2073
|
+
/**
|
|
2074
|
+
* Read the article's resolved feature image — asset id, public URL,
|
|
2075
|
+
* matched locale, plus the FULL per-locale caption + alt records.
|
|
2076
|
+
* Returns null when the article has no feature image yet (the wire
|
|
2077
|
+
* 404 is mapped here for ergonomic null-checking on the caller side).
|
|
2078
|
+
*/
|
|
2079
|
+
getFeatureImage(idOrAccessor: string, options?: {
|
|
2080
|
+
locale?: string;
|
|
2081
|
+
}): Promise<FeatureImage | null>;
|
|
2082
|
+
/**
|
|
2083
|
+
* Upload a new feature image. Replaces any existing feature image
|
|
2084
|
+
* for the venue's primary locale (the previous one is demoted to
|
|
2085
|
+
* `role='inline'`). The SDK builds the multipart body internally —
|
|
2086
|
+
* pass a Buffer/Uint8Array, the original filename, and the MIME
|
|
2087
|
+
* type.
|
|
2088
|
+
*/
|
|
2089
|
+
uploadFeatureImage(idOrAccessor: string, file: UploadFeatureImageArgs): Promise<FeatureImage>;
|
|
2090
|
+
/**
|
|
2091
|
+
* Update per-locale caption / alt on the article's feature image.
|
|
2092
|
+
* Locale-keyed merge — `{ caption: { en: '…' } }` does not touch
|
|
2093
|
+
* `de`. Plain-string locale values are server-side wrapped into
|
|
2094
|
+
* minimal TipTap docs (the storage shape).
|
|
2095
|
+
*/
|
|
2096
|
+
patchFeatureImage(idOrAccessor: string, body: PatchFeatureImageRequest): Promise<FeatureImage>;
|
|
1910
2097
|
}
|
|
1911
2098
|
|
|
1912
2099
|
declare class BasketsResource extends BaseResource {
|
|
@@ -2592,6 +2779,27 @@ declare class TeamOrdersResource {
|
|
|
2592
2779
|
}): Promise<UpdateDeliveryAddressResponse>;
|
|
2593
2780
|
}
|
|
2594
2781
|
|
|
2782
|
+
/**
|
|
2783
|
+
* Reads at the venue level. Doesn't extend `BaseResource` because that
|
|
2784
|
+
* class hard-codes a `/venues/{venueId}/<resourcePath>` URL template,
|
|
2785
|
+
* which assumes a venue-scoped sub-resource. Venues themselves are AT
|
|
2786
|
+
* `/venues/:venueIdOrAccessor` directly.
|
|
2787
|
+
*/
|
|
2788
|
+
declare class VenuesResource {
|
|
2789
|
+
private readonly tokenManager;
|
|
2790
|
+
private readonly baseUrl;
|
|
2791
|
+
constructor(tokenManager: TokenManager, baseUrl: string);
|
|
2792
|
+
/**
|
|
2793
|
+
* Fetch a venue by its UUID or its accessor (slug). The path accepts
|
|
2794
|
+
* either form; the server resolves transparently.
|
|
2795
|
+
*
|
|
2796
|
+
* Powers the order3000-cli's `venues use <accessor>` validation step
|
|
2797
|
+
* — the CLI hits this to prove the accessor exists and to cache the
|
|
2798
|
+
* resolved UUID + display fields locally.
|
|
2799
|
+
*/
|
|
2800
|
+
getByAccessor(idOrAccessor: string): Promise<Venue>;
|
|
2801
|
+
}
|
|
2802
|
+
|
|
2595
2803
|
type RealtimeEvent = 'INSERT' | 'UPDATE' | 'DELETE' | '*';
|
|
2596
2804
|
type RealtimeRow = {
|
|
2597
2805
|
[key: string]: any;
|
|
@@ -2763,6 +2971,7 @@ declare class Order3000Client {
|
|
|
2763
2971
|
reservations: ReservationsResource;
|
|
2764
2972
|
subscriptions: SubscriptionsResource;
|
|
2765
2973
|
teamOrders: TeamOrdersResource;
|
|
2974
|
+
venues: VenuesResource;
|
|
2766
2975
|
realtime: RealtimeManager;
|
|
2767
2976
|
private readonly baseUrl;
|
|
2768
2977
|
private readonly tokenManager;
|
|
@@ -2770,4 +2979,4 @@ declare class Order3000Client {
|
|
|
2770
2979
|
}
|
|
2771
2980
|
|
|
2772
2981
|
export { Order3000Client, fulfillmentTypeEnum, getScheduleInfo, participantStatusEnum, paymentMethodEnum, teamOrderStatusEnum };
|
|
2773
|
-
export type { AddToBasketRequest, AddToBasketResponse, Area, AreaAsset, AreaAvailabilityResponse, AreaAvailabilityWindow, AreaBookingMode, AreaBookingRequestResponse, AreaBookingRequestSource, AreaBookingRequestStatus, AreaBookingStatus, AreaFeature, Article, Basket, BasketItem, BasketItemDeposit, BasketItemMenuItemRef, BasketItemMetadata, BasketStatus, BasketTotals, CancelTeamOrderResponse, ConfirmOrderRequest, ConfirmOrderResponse, CreateDeltaPaymentIntentRequest, CreateDeltaPaymentIntentResponse, CreatePaymentIntentRequest, CreatePaymentIntentResponse, CreateTeamOrderRequest, CreateTeamOrderResponse, CropArea, Currency, DayOfWeek, DeclaredReturn, Event, EventByAccessor, EventMenu, EventPoster, EventRow, ExtendDeadlineResponse as ExtendTeamOrderDeadlineResponse, FetchTeamOrderResponse, GetAreaAvailabilityOptions, GetAreaOptions, GetEventOptions, GetMenuOptions, JoinTeamOrderRequest, JoinTeamOrderResponse, LatestOrder, ListArticlesOptions, ListArticlesResponse, ListEventsOptions, ListEventsResponse, Menu, MenuAsset, MenuBeverage, MenuBundle, MenuBundleDeposit, MenuDish, MenuItem, MenuItemRow, MenuItemType, MenuSubscription, MenuSubscriptionPoster, Order3000ClientConfig, OrderFulfillmentType, OrderStatus, PaymentStatus, PlaceOrderRequest, Promotion, RealtimeConfig, RealtimeEvent, RealtimeSubscription, RemoveFromBasketResponse, Schedule, ScheduleInfo, ScheduleOverride, ScheduleOverrideRow, ScheduleRow, ScheduleTimeSlot, ScheduleWithTimeSlots, SubmitAreaBookingRequestPayload, SubmitTeamOrderResponse, SubscribeRequest, SubscribeResponse, SubscriberStatus, SubscriptionCredit, SubscriptionCreditStatus, SubscriptionOptions, SubscriptionPeriod, SwitchFulfillmentResponse as SwitchTeamOrderFulfillmentResponse, TeamDeliveryAddress, TeamOrderBasketItem, TeamOrderBasketItemMenuItemRef, FulfillmentType as TeamOrderFulfillmentType, TeamOrderParticipant, ParticipantStatus as TeamOrderParticipantStatus, PaymentMethod as TeamOrderPaymentMethod, TeamOrderStatus, ThresholdCheck as TeamOrderThresholdCheck, TimeSlot, Unit, UpdateDeliveryAddressResponse as UpdateTeamOrderDeliveryAddressResponse };
|
|
2982
|
+
export type { AddToBasketRequest, AddToBasketResponse, Area, AreaAsset, AreaAvailabilityResponse, AreaAvailabilityWindow, AreaBookingMode, AreaBookingRequestResponse, AreaBookingRequestSource, AreaBookingRequestStatus, AreaBookingStatus, AreaFeature, Article, Basket, BasketItem, BasketItemDeposit, BasketItemMenuItemRef, BasketItemMetadata, BasketStatus, BasketTotals, CancelTeamOrderResponse, ConfirmOrderRequest, ConfirmOrderResponse, CreateDeltaPaymentIntentRequest, CreateDeltaPaymentIntentResponse, CreatePaymentIntentRequest, CreatePaymentIntentResponse, CreateTeamOrderRequest, CreateTeamOrderResponse, CropArea, Currency, DayOfWeek, DeclaredReturn, Event, EventByAccessor, EventMenu, EventPoster, EventRow, ExtendDeadlineResponse as ExtendTeamOrderDeadlineResponse, FeatureImage, FetchTeamOrderResponse, GetAreaAvailabilityOptions, GetAreaOptions, GetArticleResponse, GetEventOptions, GetMenuOptions, GetVenueResponse, JoinTeamOrderRequest, JoinTeamOrderResponse, LatestOrder, ListArticlesOptions, ListArticlesResponse, ListEventsOptions, ListEventsResponse, Menu, MenuAsset, MenuBeverage, MenuBundle, MenuBundleDeposit, MenuDish, MenuItem, MenuItemRow, MenuItemType, MenuSubscription, MenuSubscriptionPoster, Order3000ClientConfig, OrderFulfillmentType, OrderStatus, PatchArticleRequest, PatchArticleResponse, PatchFeatureImageRequest, PaymentStatus, PlaceOrderRequest, Promotion, RealtimeConfig, RealtimeEvent, RealtimeSubscription, RemoveFromBasketResponse, Schedule, ScheduleInfo, ScheduleOverride, ScheduleOverrideRow, ScheduleRow, ScheduleTimeSlot, ScheduleWithTimeSlots, SubmitAreaBookingRequestPayload, SubmitTeamOrderResponse, SubscribeRequest, SubscribeResponse, SubscriberStatus, SubscriptionCredit, SubscriptionCreditStatus, SubscriptionOptions, SubscriptionPeriod, SwitchFulfillmentResponse as SwitchTeamOrderFulfillmentResponse, TeamDeliveryAddress, TeamOrderBasketItem, TeamOrderBasketItemMenuItemRef, FulfillmentType as TeamOrderFulfillmentType, TeamOrderParticipant, ParticipantStatus as TeamOrderParticipantStatus, PaymentMethod as TeamOrderPaymentMethod, TeamOrderStatus, ThresholdCheck as TeamOrderThresholdCheck, TimeSlot, Unit, UpdateDeliveryAddressResponse as UpdateTeamOrderDeliveryAddressResponse, UploadFeatureImageArgs, Venue };
|