PageSourceSearch

https://shop.latinopizza.de/main-lib/api_client_js/APIClient.min.js

js latinopizza.de collected 2026-09-24 11:06:19 UTC 41,026 bytes, 1,505 lines download raw bytes

1(function(global, factory) {
2  typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, global.APIClient = factory());
3})(this, function() {
4  "use strict";
5  class BasicResponseHandler {
6    /**
7     * Handle the response
8     * @param {Response} response
9     * @return {Promise<*>}
10     */
11    handle(response) {
12      throw new Error("'handle' not implemented.");
13    }
14    /**
15     * Handle the download response
16     * @param {Response} response
17     * @return {Promise<*>}
18     */
19    handleDownload(response) {
20      throw new Error("'handleDownload' not implemented.");
21    }
22  }
23  class SimpleResponseHandler extends BasicResponseHandler {
24    /**
25     * Handle the response
26     * @param {Response} response
27     */
28    handle(response) {
29      if (!response.ok) {
30        return Promise.reject(response);
31      }
32      if (response.status !== 204) {
33        return response.json();
34      }
35    }
36    /**
37     * Handle the download response
38     * @param {Response} response
39     */
40    handleDownload(response) {
41      if (!response.ok) {
42        return Promise.reject(response);
43      }
44      if (response.status !== 204) {
45        return response.blob();
46      }
47    }
48  }
49  class Basic {
50    constructor(apiClient) {
51      this.apiClient = apiClient;
52      this.responseHandler = this.getResponseHandler();
53    }
54    /**
55     * Transforms filters to parameter string and appends it to the url
56     * @param {string} url
57     * @param {GlobalFilter} filters
58     * @return {string}
59     */
60    addFiltersAsParameters(url, filters) {
61      const parameters = filters.getParameterString();
62      return parameters ? `${url}?${parameters}` : url;
63    }
64    /**
65     * Returns the response handler
66     * @returns {BasicResponseHandler}
67     */
68    getResponseHandler() {
69      return new SimpleResponseHandler();
70    }
71    /**
72     * Returns url part for project
73     * @param {GlobalFilter} filters
74     * @return {string}
75     */
76    getProjectUrl(filters) {
77      return `project/${filters.projectId}`;
78    }
79    /**
80     * Returns url part for shop
81     * @param {GlobalFilter} filters
82     * @return {string}
83     */
84    getShopUrl(filters) {
85      return `shop/${filters.shopId}`;
86    }
87    /**
88     * Execute delete request
89     * @param {string} url
90     * @return {Promise<*>}
91     */
92    async deleteRequest(url) {
93      const response = await this.apiClient.request("DELETE", url);
94      return this.responseHandler.handle(response);
95    }
96    /**
97     * Execute get request
98     * @param {string} url
99     * @return {Promise<*>}
100     */
101    async getRequest(url) {
102      const response = await this.apiClient.request("GET", url);
103      return this.responseHandler.handle(response);
104    }
105    /**
106     * Execute post request
107     * @param {string} url
108     * @param {Object} data
109     * @return {Promise<*>}
110     */
111    async postRequest(url, data) {
112      const response = await this.apiClient.request("POST", url, data);
113      return this.responseHandler.handle(response);
114    }
115    /**
116     * Execute put request
117     * @param {string} url
118     * @param {Object} data
119     * @return {Promise<*>}
120     */
121    async putRequest(url, data) {
122      const response = await this.apiClient.request("PUT", url, data);
123      return this.responseHandler.handle(response);
124    }
125  }
126  class Account extends Basic {
127    /**
128     * Returns systems, shops and privileges for the current user
129     * @return {Promise<*>}
130     */
131    async get() {
132      const url = `${this.apiClient.getBaseUrl()}/account`;
133      return await this.getRequest(url);
134    }
135  }
136  class Endpoint extends Basic {
137    /**
138     * Returns all items in an array
139     * @param {GlobalFilter} filters
140     * @return {Promise<*[]>}
141     */
142    async getAll(filters) {
143      return await this.apiClient.getAll(await this.list(filters));
144    }
145    /**
146     * Return url in specific endpoint
147     * @param {GlobalFilter} filters
148     * @return {string}
149     */
150    getUrl(filters) {
151      throw new Error("'getUrl' not implemented.");
152    }
153    /**
154     * Returns list of objects for the given page or page 1 in case no page is defined
155     * @param {GlobalFilter} filters
156     * @param {boolean} asPostRequest
157     * @return {Promise<*>}
158     */
159    async list(filters, asPostRequest = false) {
160      let url = `${this.apiClient.getBaseUrl()}/${this.getUrl(filters)}`;
161      if (asPostRequest) {
162        return await this.postRequest(url, filters.filters);
163      }
164      url = this.addFiltersAsParameters(url, filters);
165      return await this.getRequest(url);
166    }
167    /**
168     * Downloads a file with the given filters and output format.
169     *
170     * @param {GlobalFilter} filters
171     * @param {string} outputFormat
172     * @param {boolean} asPostRequest
173     * @return {Promise<*>}
174     */
175    async print(filters, outputFormat, asPostRequest = false) {
176      let url = `${this.apiClient.getBaseUrl()}/${this.getUrl(filters)}/${outputFormat}`;
177      url = this.addFiltersAsParameters(url, filters);
178      return await this.apiClient.download("GET", url);
179    }
180    /**
181     * Returns all items with the given search parameters.
182     *
183     * @param {GlobalFilter} filters
184     * @param {boolean} asPostRequest
185     * @return {Promise<*>}
186     */
187    async search(filters, asPostRequest = false) {
188      let url = `${this.apiClient.getBaseUrl()}/${this.getUrl(filters)}/search`;
189      if (asPostRequest) {
190        return await this.postRequest(url, filters.filters);
191      }
192      url = this.addFiltersAsParameters(url, filters);
193      return await this.getRequest(url);
194    }
195  }
196  let Cancellation$1 = class Cancellation extends Endpoint {
197    /**
198     * Return url for cancellation endpoint
199     * @override
200     * @param {GlobalFilter} filters
201     * @return {string}
202     */
203    getUrl(filters) {
204      return `${this.getShopUrl(filters)}/accounting/cancellation`;
205    }
206  };
207  class ComplaintVoucherClearing extends Endpoint {
208    /**
209     * Return url for complaint voucher clearing endpoint.
210     * @override
211     * @param {GlobalFilter} filters
212     * @return {string}
213     */
214    getUrl(filters) {
215      return `${this.getProjectUrl(filters)}/voucher_clearing/complaint`;
216    }
217  }
218  class DailyReportEndpoint extends Endpoint {
219    /**
220     * Returns the same as list, because no pagination is available
221     * @override
222     * @param {GlobalFilter} filters
223     * @return {Promise<*>}
224     */
225    async getAll(filters) {
226      return await this.list(filters);
227    }
228  }
229  class Cancellation extends DailyReportEndpoint {
230    /**
231     * Return url for cancellation endpoint
232     * @override
233     * @param {GlobalFilter} filters
234     * @return {string}
235     */
236    getUrl(filters) {
237      return `${this.getShopUrl(filters)}/dailyreport/cancellation`;
238    }
239  }
240  class Cashbook extends DailyReportEndpoint {
241    /**
242     * Return url for cashbook endpoint
243     * @override
244     * @param {GlobalFilter} filters
245     * @return {string}
246     */
247    getUrl(filters) {
248      return `${this.getShopUrl(filters)}/dailyreport/cashbook`;
249    }
250  }
251  class Coins extends DailyReportEndpoint {
252    /**
253     * Return url for coins endpoint
254     * @override
255     * @param {GlobalFilter} filters
256     * @return {string}
257     */
258    getUrl(filters) {
259      return `${this.getShopUrl(filters)}/dailyreport/coins`;
260    }
261  }
262  class Customer extends DailyReportEndpoint {
263    /**
264     * Return url for customer endpoint
265     * @override
266     * @param {GlobalFilter} filters
267     * @return {string}
268     */
269    getUrl(filters) {
270      return `${this.getShopUrl(filters)}/dailyreport/customer`;
271    }
272  }
273  class DailyClosing extends DailyReportEndpoint {
274    /**
275     * Return url for daily closing endpoint
276     * @override
277     * @param {GlobalFilter} filters
278     * @return {string}
279     */
280    getUrl(filters) {
281      return `${this.getShopUrl(filters)}/dailyreport/daily_closing`;
282    }
283  }
284  class Download extends DailyReportEndpoint {
285    /**
286     * Return url for download endpoint
287     * @override
288     * @param {GlobalFilter} filters
289     * @return {string}
290     */
291    getUrl(filters) {
292      return `${this.getShopUrl(filters)}/dailyreport`;
293    }
294  }
295  class DeliveryData extends Basic {
296    /**
297     * Returns delivery data for dailyClosing
298     * @param {GlobalFilter} filters
299     * @param {int} dailyClosing
300     * @returns {Promise<*>}
301     */
302    async get(filters, dailyClosing) {
303      const url = `${this.apiClient.getBaseUrl()}/${this.getShopUrl(filters)}/dailyreport/delivery_data/${dailyClosing}`;
304      return await this.getRequest(url);
305    }
306  }
307  class Evaluation extends DailyReportEndpoint {
308    /**
309     * Return url for evaluation endpoint
310     * @override
311     * @param {GlobalFilter} filters
312     * @return {string}
313     */
314    getUrl(filters) {
315      return `${this.getShopUrl(filters)}/dailyreport/evaluation`;
316    }
317  }
318  class SimpleRating extends DailyReportEndpoint {
319    /**
320     * Return url for simple rating endpoint
321     * @override
322     * @param {GlobalFilter} filters
323     * @return {string}
324     */
325    getUrl(filters) {
326      return `${this.getShopUrl(filters)}/dailyreport/simple_rating`;
327    }
328  }
329  class RevenueData extends Basic {
330    /**
331     * Returns revenue data for dailyClosing
332     * @param {GlobalFilter} filters
333     * @param {int} dailyClosing
334     * @returns {Promise<*>}
335     */
336    async get(filters, dailyClosing) {
337      const url = `${this.apiClient.getBaseUrl()}/${this.getShopUrl(filters)}/dailyreport/revenue_data/${dailyClosing}`;
338      return await this.getRequest(url);
339    }
340  }
341  class Staff extends DailyReportEndpoint {
342    /**
343     * Return url for staff endpoint
344     * @override
345     * @param {GlobalFilter} filters
346     * @return {string}
347     */
348    getUrl(filters) {
349      return `${this.getShopUrl(filters)}/dailyreport/staff`;
350    }
351  }
352  class Voucher extends DailyReportEndpoint {
353    /**
354     * Return url for voucher endpoint
355     * @override
356     * @param {GlobalFilter} filters
357     * @return {string}
358     */
359    getUrl(filters) {
360      return `${this.getShopUrl(filters)}/dailyreport/voucher`;
361    }
362  }
363  class DailyReport extends Basic {
364    cancellation() {
365      return new Cancellation(this.apiClient);
366    }
367    cashbook() {
368      return new Cashbook(this.apiClient);
369    }
370    coins() {
371      return new Coins(this.apiClient);
372    }
373    customer() {
374      return new Customer(this.apiClient);
375    }
376    dailyClosing() {
377      return new DailyClosing(this.apiClient);
378    }
379    download() {
380      return new Download(this.apiClient);
381    }
382    deliveryData() {
383      return new DeliveryData(this.apiClient);
384    }
385    evaluation() {
386      return new Evaluation(this.apiClient);
387    }
388    simpleRating() {
389      return new SimpleRating(this.apiClient);
390    }
391    revenueData() {
392      return new RevenueData(this.apiClient);
393    }
394    staff() {
395      return new Staff(this.apiClient);
396    }
397    voucher() {
398      return new Voucher(this.apiClient);
399    }
400  }
401  class GiftVoucher extends Endpoint {
402    /**
403     * Return url for complaint voucher clearing endpoint.
404     * @override
405     * @param {GlobalFilter} filters
406     * @return {string}
407     */
408    getUrl(filters) {
409      return `${this.getProjectUrl(filters)}/accounting/gift_voucher`;
410    }
411  }
412  class MovedOrders extends Endpoint {
413    /**
414     * Return url for moved orders endpoint
415     * @override
416     * @param {GlobalFilter} filters
417     * @return {string}
418     */
419    getUrl(filters) {
420      return `${this.getShopUrl(filters)}/moved_orders/from_shop`;
421    }
422  }
423  class OnlinePayment extends Endpoint {
424    /**
425     * Return url for online payment endpoint
426     * @override
427     * @param {GlobalFilter} filters
428     * @return {string}
429     */
430    getUrl(filters) {
431      return `${this.getProjectUrl(filters)}/accounting/onlinepayment`;
432    }
433  }
434  class ReceivedOrders extends Endpoint {
435    /**
436     * Return url for received orders endpoint
437     * @override
438     * @param {GlobalFilter} filters
439     * @return {string}
440     */
441    getUrl(filters) {
442      return `${this.getShopUrl(filters)}/moved_orders/to_shop`;
443    }
444  }
445  class GiftVoucherClearing extends Endpoint {
446    /**
447     * Return url for complaint voucher clearing endpoint.
448     * @override
449     * @param {GlobalFilter} filters
450     * @return {string}
451     */
452    getUrl(filters) {
453      return `${this.getProjectUrl(filters)}/voucher_clearing/gift`;
454    }
455  }
456  class Accounting extends Basic {
457    cancellation() {
458      return new Cancellation$1(this.apiClient);
459    }
460    complaintVoucherClearing() {
461      return new ComplaintVoucherClearing(this.apiClient);
462    }
463    dailyReport() {
464      return new DailyReport(this.apiClient);
465    }
466    giftVoucher() {
467      return new GiftVoucher(this.apiClient);
468    }
469    giftVoucherClearing() {
470      return new GiftVoucherClearing(this.apiClient);
471    }
472    movedOrder() {
473      return new MovedOrders(this.apiClient);
474    }
475    onlinePayment() {
476      return new OnlinePayment(this.apiClient);
477    }
478    receivedOrder() {
479      return new ReceivedOrders(this.apiClient);
480    }
481  }
482  class CrudEndpoint extends Endpoint {
483    /**
484     * Returns an addon
485     * @param {GlobalFilter} filters
486     * @param {string | int} item
487     * @returns {Promise<*>}
488     */
489    async get(filters, item) {
490      const parameters = filters.getParameterString();
491      const url = `${this.apiClient.getBaseUrl()}/${this.getUrl(filters)}/${item}?${parameters}`;
492      return await this.getRequest(url);
493    }
494    /**
495     * creates an item
496     * @param {GlobalFilter} filters
497     * @param {Object} data
498     * @returns {Promise<*>}
499     */
500    async create(filters, data) {
501      const url = `${this.apiClient.getBaseUrl()}/${this.getUrl(filters)}`;
502      return await this.postRequest(url, data);
503    }
504    /**
505     * Returns data needed for creating a new item
506     * @param filters
507     * @return {Promise<*>}
508     */
509    async getCreate(filters) {
510      const parameters = filters.getParameterString();
511      const url = `${this.apiClient.getBaseUrl()}/${this.getUrl(filters)}/create?${parameters}`;
512      return await this.getRequest(url);
513    }
514    /**
515     * updates an item
516     * @param {GlobalFilter} filters
517     * @param {string | int} item
518     * @param {Object} data
519     * @returns {Promise<*>}
520     */
521    async update(filters, item, data) {
522      const url = `${this.apiClient.getBaseUrl()}/${this.getUrl(filters)}/${item}`;
523      return await this.putRequest(url, data);
524    }
525    /**
526     * updates all given items
527     * @param {GlobalFilter} filters
528     * @param {Array.<Object>} data
529     * @return {Promise<*>}
530     */
531    async updateAll(filters, data) {
532      const url = `${this.apiClient.getBaseUrl()}/${this.getUrl(filters)}`;
533      return await this.putRequest(url, data);
534    }
535    /**
536     * deletes an item
537     * @param {GlobalFilter} filters
538     * @param {string | int} item
539     * @returns {Promise<*>}
540     */
541    async delete(filters, item) {
542      const url = `${this.apiClient.getBaseUrl()}/${this.getUrl(filters)}/${item}`;
543      return await this.deleteRequest(url);
544    }
545  }
546  class AddCoins extends CrudEndpoint {
547    /**
548     * Return url for rules endpoint
549     * @override
550     * @param {GlobalFilter} filters
551     * @return {string}
552     */
553    getUrl(filters) {
554      return `${this.getProjectUrl(filters)}/coin`;
555    }
556  }
557  class CoinRules extends CrudEndpoint {
558    /**
559     * Return url for rules endpoint
560     * @override
561     * @param {GlobalFilter} filters
562     * @return {string}
563     */
564    getUrl(filters) {
565      return `${this.getProjectUrl(filters)}/coin-rules`;
566    }
567  }
568  class PortalUser extends Endpoint {
569    /**
570     * Return url for rules endpoint
571     * @override
572     * @param {GlobalFilter} filters
573     * @return {string}
574     */
575    getUrl(filters) {
576      return `${this.getProjectUrl(filters)}/portaluser`;
577    }
578  }
579  class VoucherCombinations extends Endpoint {
580    /**
581     * Return url for voucher combinations endpoint
582     * @override
583     * @param {GlobalFilter} filters
584     * @return {string}
585     */
586    getUrl(filters) {
587      return `${this.getProjectUrl(filters)}/voucher`;
588    }
589    /**
590     * Returns a voucher
591     * @param {GlobalFilter} filters
592     * @param {int} voucher
593     * @returns {Promise<*>}
594     */
595    async get(filters, voucher) {
596      const url = `${this.apiClient.getBaseUrl()}/${this.getUrl(filters)}/${voucher}`;
597      return await this.getRequest(url);
598    }
599    /**
600     * Link vouchers to a voucher
601     * @param {GlobalFilter} filters
602     * @param {int} voucher
603     * @param {Array.<int>} voucherIds
604     * @returns {Promise<*>}
605     */
606    async createLink(filters, voucher, voucherIds) {
607      const data = {
608        voucherIds
609      };
610      const url = `${this.apiClient.getBaseUrl()}/${this.getUrl(filters)}/${voucher}/link`;
611      return await this.postRequest(url, data);
612    }
613    /**
614     * Unlink vouchers from a voucher
615     * @param {GlobalFilter} filters
616     * @param {int} voucher
617     * @param {int} unlinkId
618     * @returns {Promise<*>}
619     */
620    async deleteLink(filters, voucher, unlinkId) {
621      const url = `${this.apiClient.getBaseUrl()}/${this.getUrl(filters)}/${voucher}/${unlinkId}`;
622      return await this.deleteRequest(url);
623    }
624  }
625  class CoinClearing extends Endpoint {
626    /**
627    * Return url for coin clearing endpoint
628    * @override
629    * @param {GlobalFilter} filters
630    * @return {string}
631    */
632    getUrl(filters) {
633      return `${this.getProjectUrl(filters)}/coinclearing`;
634    }
635  }
636  class Marketing extends Basic {
637    addCoin() {
638      return new AddCoins(this.apiClient);
639    }
640    coinClearing() {
641      return new CoinClearing(this.apiClient);
642    }
643    coinRule() {
644      return new CoinRules(this.apiClient);
645    }
646    portalUser() {
647      return new PortalUser(this.apiClient);
648    }
649    voucherCombination() {
650      return new VoucherCombinations(this.apiClient);
651    }
652  }
653  class AddonGroup extends CrudEndpoint {
654    /**
655     * Return url for addon group endpoint
656     * @override
657     * @param {GlobalFilter} filters
658     * @return {string}
659     */
660    getUrl(filters) {
661      return `${this.getProjectUrl(filters)}/addongroup`;
662    }
663  }
664  class AddonManagement extends CrudEndpoint {
665    /**
666     * Return url for addon management endpoint
667     * @param filters
668     * @return {string}
669     */
670    getAddonManagementUrl(filters) {
671      return `${this.getProjectUrl(filters)}/addonmanagement`;
672    }
673    /**
674     * Return url for addon management / addon endpoint
675     * @override
676     * @param {GlobalFilter} filters
677     * @return {string}
678     */
679    getUrl(filters) {
680      return `${this.getAddonManagementUrl(filters)}/addon`;
681    }
682    /**
683     * Returns list of objects for the given page or page 1 in case no page is defined
684     * @override
685     * @param {GlobalFilter} filters
686     * @return {Promise<*>}
687     */
688    async list(filters) {
689      const parameters = filters.getParameterString();
690      const url = `${this.apiClient.getBaseUrl()}/${this.getAddonManagementUrl(filters)}?${parameters}`;
691      return await this.getRequest(url);
692    }
693    /**
694     * updates all given items
695     * @override
696     * @param {GlobalFilter} filters
697     * @param {Array.<Object>} data
698     * @return {Promise<*>}
699     */
700    async updateAll(filters, data) {
701      const url = `${this.apiClient.getBaseUrl()}/${this.getAddonManagementUrl(filters)}`;
702      return await this.putRequest(url, data);
703    }
704    /**
705     * Returns all items with the given search parameters.
706     *
707     * @param {GlobalFilter} filters
708     * @return {Promise<*>}
709     */
710    async search(filters) {
711      const parameters = filters.getParameterString();
712      const url = `${this.apiClient.getBaseUrl()}/${this.getAddonManagementUrl(filters)}/search?${parameters}`;
713      return await this.getRequest(url);
714    }
715  }
716  class AddonSize extends Basic {
717    /**
718     * Returns a list of addonSizes for the given page or page 1 in case no page is defined
719     * @param filters {GlobalFilter} shop, page
720     * @param {string} addon
721     * @returns {Promise<*>}
722     */
723    async list(filters, addon) {
724      const parameters = filters.getParameterString();
725      const url = `${this.getUrl(filters, addon)}?${parameters}`;
726      return await this.getRequest(url);
727    }
728    /**
729     * Returns an addonSize
730     * @param {GlobalFilter} filters shop
731     * @param {string} addon
732     * @param {string} addonSize
733     * @returns {Promise<*>}
734     */
735    async get(filters, addon, addonSize) {
736      const url = `${this.getUrl(filters, addon)}/${addonSize}`;
737      return await this.getRequest(url);
738    }
739    /**
740     * returns all addonSizes in an array
741     * @param filters {GlobalFilter} shop
742     * @param {string} addon
743     * @returns {Promise<*>}
744     */
745    async getAll(filters, addon) {
746      return await this.apiClient.getAll(await this.list(filters, addon));
747    }
748    /**
749     * Return url in specific endpoint
750     *
751     * @param {GlobalFilter} filters
752     * @param {string} addon name of the addon
753     * @return {string}
754     */
755    getUrl(filters, addon) {
756      return `${this.apiClient.getBaseUrl()}/${this.getProjectUrl(filters)}/addon/${addon}/addonsize`;
757    }
758    /**
759     * creates an addonSize
760     * @param {GlobalFilter} filters shop
761     * @param {string} addon
762     * @param {Object} data
763     * @returns {Promise<*>}
764     */
765    async create(filters, addon, data) {
766      const url = this.getUrl(filters, addon);
767      return await this.postRequest(url, data);
768    }
769    /**
770     * updates an addonSize
771     * @param {GlobalFilter} filters
772     * @param {string} addon
773     * @param {string} addonSize
774     * @param {Object} data
775     * @returns {Promise<*>}
776     */
777    async update(filters, addon, addonSize, data) {
778      const url = `${this.getUrl(filters, addon)}/${addonSize}`;
779      return await this.putRequest(url, data);
780    }
781    /**
782     * deletes an addonSize
783     * @param {GlobalFilter} filters
784     * @param {string} addon
785     * @param {string} addonSize
786     * @returns {Promise<*>}
787     */
788    async delete(filters, addon, addonSize) {
789      const parameters = filters.getParameterString();
790      const url = `${this.getUrl(filters, addon)}/${addonSize}?${parameters}`;
791      return await this.deleteRequest(url);
792    }
793  }
794  class LMIV extends Endpoint {
795    /**
796     * Return url for lmiv endpoint
797     * @overwrite
798     * @param {GlobalFilter} filters
799     * @return {string}
800     */
801    getUrl(filters) {
802      return `${this.getProjectUrl(filters)}/lmiv`;
803    }
804  }
805  class LMIVLocal extends CrudEndpoint {
806    /**
807     * Return url for lmiv local endpoint
808     * @override
809     * @param {GlobalFilter} filters
810     * @return {string}
811     */
812    getUrl(filters) {
813      return `${this.getProjectUrl(filters)}/lmivlocal`;
814    }
815  }
816  class ProductManagement extends CrudEndpoint {
817    /**
818     * Return url for product management endpoint
819     * @override
820     * @param {GlobalFilter} filters
821     * @return {string}
822     */
823    getUrl(filters) {
824      return `${this.getProjectUrl(filters)}/productmanagement`;
825    }
826  }
827  class Recipe extends CrudEndpoint {
828    /**
829     * Return url for recipe endpoint
830     * @override
831     * @param {GlobalFilter} filters
832     * @return {string}
833     */
834    getUrl(filters) {
835      return `${this.getProjectUrl(filters)}/recipe`;
836    }
837  }
838  class Resource extends CrudEndpoint {
839    /**
840     * Return url for resource endpoint
841     * @override
842     * @param {GlobalFilter} filters
843     * @return {string}
844     */
845    getUrl(filters) {
846      return `${this.getProjectUrl(filters)}/resource`;
847    }
848  }
849  class Menu extends Basic {
850    addonGroup() {
851      return new AddonGroup(this.apiClient);
852    }
853    addonManagement() {
854      return new AddonManagement(this.apiClient);
855    }
856    addonSize() {
857      return new AddonSize(this.apiClient);
858    }
859    lmiv() {
860      return new LMIV(this.apiClient);
861    }
862    lmivLocal() {
863      return new LMIVLocal(this.apiClient);
864    }
865    productManagement() {
866      return new ProductManagement(this.apiClient);
867    }
868    recipe() {
869      return new Recipe(this.apiClient);
870    }
871    resource() {
872      return new Resource(this.apiClient);
873    }
874  }
875  class Status extends Endpoint {
876    /**
877     * Returns OAuth status for mollie connect
878     * @returns {Promise<*>}
879     */
880    async get() {
881      const url = `${this.apiClient.getBaseUrl()}/oauth/mollie`;
882      return await this.getRequest(url) ?? null;
883    }
884  }
885  class AuthUrl extends Endpoint {
886    /**
887     * Returns OAuth auth url for mollie connect
888     * @returns {Promise<*>}
889     */
890    async get() {
891      const url = `${this.apiClient.getBaseUrl()}/oauth/mollie/request`;
892      return await this.getRequest(url);
893    }
894  }
895  class Link extends Endpoint {
896    /**
897     * Links a shopId to a mollie account
898     * @param {string} code   the still valid mollie auth code
899     * @param {string} stete  mollie salted state verification
900     * @returns {Promise<*>}
901     */
902    async connect(code, state) {
903      const data = {
904        code: code ?? null,
905        state: state ?? null
906      };
907      const url = `${this.apiClient.getBaseUrl()}/oauth/mollie`;
908      return await this.postRequest(url, data);
909    }
910    /**
911     * unlinks a shopId from a mollie account
912     * @returns {Promise<*>}
913     */
914    async disconnect() {
915      const url = `${this.apiClient.getBaseUrl()}/oauth/mollie`;
916      return await this.deleteRequest(url);
917    }
918  }
919  class MollieConnect extends Basic {
920    status() {
921      return new Status(this.apiClient);
922    }
923    authUrl() {
924      return new AuthUrl(this.apiClient);
925    }
926    link() {
927      return new Link(this.apiClient);
928    }
929  }
930  class OAuth extends Basic {
931    mollieConnect() {
932      return new MollieConnect(this.apiClient);
933    }
934  }
935  class StatusDataResponseHandler extends BasicResponseHandler {
936    /**
937     * Handle the response
938     * @param {Response} response
939     * @return {Promise<*>|{name: string, json: object}}
940     */
941    async handle(response) {
942      if (!response.ok) {
943        return Promise.reject(response);
944      }
945      let json = null;
946      if (![202, 204].includes(response.status)) {
947        json = await response.json();
948      }
949      return {
950        status: response.status,
951        json
952      };
953    }
954    async handleDownload(response) {
955      if (!response.ok) {
956        return Promise.reject(response);
957      }
958      if (response.status !== 204) {
959        return response.blob();
960      }
961    }
962  }
963  class Revenues extends Endpoint {
964    /**
965     * Return url for daily sales endpoint
966     * @override
967     * @param {GlobalFilter} filters
968     * @return {string}
969     */
970    getUrl(filters) {
971      return `${this.getProjectUrl(filters)}/statistics/daily_analytics/revenue`;
972    }
973    /**
974     * Return the response handler
975     * @return {BasicResponseHandler}
976     */
977    getResponseHandler() {
978      return new StatusDataResponseHandler();
979    }
980  }
981  class OrderPlatforms extends Endpoint {
982    /**
983     * Return url for daily sales endpoint
984     * @override
985     * @param {GlobalFilter} filters
986     * @return {string}
987     */
988    getUrl(filters) {
989      return `${this.getProjectUrl(filters)}/statistics/daily_analytics/order_platform`;
990    }
991    /**
992     * Return the response handler
993     * @return {BasicResponseHandler}
994     */
995    getResponseHandler() {
996      return new StatusDataResponseHandler();
997    }
998  }
999  let DeliveryTimes$1 = class DeliveryTimes extends Endpoint {
1000    /**
1001     * Return url for daily sales endpoint
1002     * @override
1003     * @param {GlobalFilter} filters
1004     * @return {string}
1005     */
1006    getUrl(filters) {
1007      return `${this.getProjectUrl(filters)}/statistics/daily_analytics/delivery_time`;
1008    }
1009    /**
1010     * Return the response handler
1011     * @return {BasicResponseHandler}
1012     */
1013    getResponseHandler() {
1014      return new StatusDataResponseHandler();
1015    }
1016  };
1017  let Productivity$1 = class Productivity extends Endpoint {
1018    /**
1019     * Return url for daily sales endpoint
1020     * @override
1021     * @param {GlobalFilter} filters
1022     * @return {string}
1023     */
1024    getUrl(filters) {
1025      return `${this.getProjectUrl(filters)}
1025/statistics/daily_analytics/productivity`;
1026    }
1027    /**
1028     * Return the response handler
1029     * @return {BasicResponseHandler}
1030     */
1031    getResponseHandler() {
1032      return new StatusDataResponseHandler();
1033    }
1034  };
1035  class DeliveryAreas extends Endpoint {
1036    /**
1037     * Return url for daily sales endpoint
1038     * @override
1039     * @param {GlobalFilter} filters
1040     * @return {string}
1041     */
1042    getUrl(filters) {
1043      return `${this.getProjectUrl(filters)}/statistics/daily_analytics/delivery_area`;
1044    }
1045    /**
1046     * Return the response handler
1047     * @return {BasicResponseHandler}
1048     */
1049    getResponseHandler() {
1050      return new StatusDataResponseHandler();
1051    }
1052  }
1053  class DeliveriesPerHour extends Endpoint {
1054    /**
1055     * Return url for daily sales endpoint
1056     * @override
1057     * @param {GlobalFilter} filters
1058     * @return {string}
1059     */
1060    getUrl(filters) {
1061      return `${this.getProjectUrl(filters)}/statistics/daily_analytics/deliveries_per_hour`;
1062    }
1063    /**
1064     * Return the response handler
1065     * @return {BasicResponseHandler}
1066     */
1067    getResponseHandler() {
1068      return new StatusDataResponseHandler();
1069    }
1070  }
1071  class CustomerEvaluations extends Endpoint {
1072    /**
1073     * Return url for daily sales endpoint
1074     * @override
1075     * @param {GlobalFilter} filters
1076     * @return {string}
1077     */
1078    getUrl(filters) {
1079      return `${this.getProjectUrl(filters)}/statistics/daily_analytics/customer_evaluation`;
1080    }
1081    /**
1082     * Return the response handler
1083     * @return {BasicResponseHandler}
1084     */
1085    getResponseHandler() {
1086      return new StatusDataResponseHandler();
1087    }
1088  }
1089  class Profitability extends Endpoint {
1090    /**
1091     * Return url for daily sales endpoint
1092     * @override
1093     * @param {GlobalFilter} filters
1094     * @return {string}
1095     */
1096    getUrl(filters) {
1097      return `${this.getProjectUrl(filters)}/statistics/daily_analytics/profitability`;
1098    }
1099    /**
1100     * Return the response handler
1101     * @return {BasicResponseHandler}
1102     */
1103    getResponseHandler() {
1104      return new StatusDataResponseHandler();
1105    }
1106  }
1107  class ProductCategories extends Endpoint {
1108    /**
1109     * Return url for product categories statistics
1110     * @override
1111     * @param {GlobalFilter} filters
1112     * @return {string}
1113     */
1114    getUrl(filters) {
1115      return `${this.getProjectUrl(filters)}/statistics/daily_analytics/product_category`;
1116    }
1117    /**
1118     * Return the response handler
1119     * @return {BasicResponseHandler}
1120     */
1121    getResponseHandler() {
1122      return new StatusDataResponseHandler();
1123    }
1124  }
1125  class DailyAnalytics extends Basic {
1126    revenues() {
1127      return new Revenues(this.apiClient);
1128    }
1129    productCategories() {
1130      return new ProductCategories(this.apiClient);
1131    }
1132    orderPlatforms() {
1133      return new OrderPlatforms(this.apiClient);
1134    }
1135    deliveryTimes() {
1136      return new DeliveryTimes$1(this.apiClient);
1137    }
1138    productivity() {
1139      return new Productivity$1(this.apiClient);
1140    }
1141    deliveryAreas() {
1142      return new DeliveryAreas(this.apiClient);
1143    }
1144    deliveriesPerHour() {
1145      return new DeliveriesPerHour(this.apiClient);
1146    }
1147    customerEvaluations() {
1148      return new CustomerEvaluations(this.apiClient);
1149    }
1150    profitability() {
1151      return new Profitability(this.apiClient);
1152    }
1153  }
1154  class Heatmap extends Endpoint {
1155    /**
1156     * Return url for heatmap endpoint
1157     * @override
1158     * @param {GlobalFilter} filters
1159     * @return {string}
1160     */
1161    getUrl(filters) {
1162      return `${this.getProjectUrl(filters)}/statistics/heatmap`;
1163    }
1164  }
1165  class Productivity extends Endpoint {
1166    /**
1167     * Return url for productivity endpoint
1168     * @override
1169     * @param {GlobalFilter} filters
1170     * @return {string}
1171     */
1172    getUrl(filters) {
1173      return `${this.getProjectUrl(filters)}/statistics/productivity`;
1174    }
1175  }
1176  class ComplaintVouchers extends Endpoint {
1177    /**
1178     * Return url for complaint vouchers endpoint
1179     * @override
1180     * @param {GlobalFilter} filters
1181     * @return {string}
1182     */
1183    getUrl(filters) {
1184      return `${this.getProjectUrl(filters)}/statistics/efficiency/complaint_vouchers`;
1185    }
1186  }
1187  class DailySales extends Endpoint {
1188    /**
1189     * Return url for daily sales endpoint
1190     * @override
1191     * @param {GlobalFilter} filters
1192     * @return {string}
1193     */
1194    getUrl(filters) {
1195      return `${this.getProjectUrl(filters)}/statistics/sales/daily`;
1196    }
1197  }
1198  class DeliveryTimes extends Endpoint {
1199    /**
1200     * Return url for delivery times endpoint
1201     * @override
1202     * @param {GlobalFilter} filters
1203     * @return {string}
1204     */
1205    getUrl(filters) {
1206      return `${this.getProjectUrl(filters)}/statistics/deliverytimes`;
1207    }
1208  }
1209  class DriverStatistic extends Endpoint {
1210    /**
1211     * Return url for driver statistics endpoint
1212     * @override
1213     * @param {GlobalFilter} filters
1214     * @return {string}
1215     */
1216    getUrl(filters) {
1217      return `${this.getProjectUrl(filters)}/statistics/efficiency/driver`;
1218    }
1219  }
1220  class OrderFrequency extends Endpoint {
1221    /**
1222     * Return url for order frequency endpoint
1223     * @override
1224     * @param {GlobalFilter} filters
1225     * @return {string}
1226     */
1227    getUrl(filters) {
1228      return `${this.getProjectUrl(filters)}/statistics/efficiency/order_frequency`;
1229    }
1230  }
1231  class StoreComparison extends Endpoint {
1232    /**
1233     * Return url for store comparison endpoint
1234     * @override
1235     * @param {GlobalFilter} filters
1236     * @return {string}
1237     */
1238    getUrl(filters) {
1239      return `${this.getProjectUrl(filters)}/statistics/efficiency/storecomparison`;
1240    }
1241    /**
1242     * Return the response handler
1243     * @return {BasicResponseHandler}
1244     */
1245    getResponseHandler() {
1246      return new StatusDataResponseHandler();
1247    }
1248  }
1249  class TimeInKitchen extends Endpoint {
1250    /**
1251     * Return url for time in kitchen endpoint
1252     * @override
1253     * @param {GlobalFilter} filters
1254     * @return {string}
1255     */
1256    getUrl(filters) {
1257      return `${this.getProjectUrl(filters)}/statistics/efficiency/kitchen_time`;
1258    }
1259  }
1260  class DeliveryTimeComparison extends Endpoint {
1261    /**
1262     * Return url for delivery time setting endpoint
1263     * @override
1264     * @param {GlobalFilter} filters
1265     * @return {string}
1266     */
1267    getUrl(filters) {
1268      return `${this.getProjectUrl(filters)}/statistics/efficiency/delivery_times_comparison`;
1269    }
1270  }
1271  class Efficiency extends Basic {
1272    complaintVouchers() {
1273      return new ComplaintVouchers(this.apiClient);
1274    }
1275    dailySales() {
1276      return new DailySales(this.apiClient);
1277    }
1278    deliveryTimes() {
1279      return new DeliveryTimes(this.apiClient);
1280    }
1281    deliveryTimeComparison() {
1282      return new DeliveryTimeComparison(this.apiClient);
1283    }
1284    driverStatistics() {
1285      return new DriverStatistic(this.apiClient);
1286    }
1287    orderFrequency() {
1288      return new OrderFrequency(this.apiClient);
1289    }
1290    storeComparison() {
1291      return new StoreComparison(this.apiClient);
1292    }
1293    timeInKitchen() {
1294      return new TimeInKitchen(this.apiClient);
1295    }
1296  }
1297  class LiveRanking extends Endpoint {
1298    /**
1299     * Returns statistics ranking data for liveRanking
1300     * @param {GlobalFilter} filters
1301     * @returns {Promise<*>}
1302     */
1303    async get(filters) {
1304      const url = `${this.apiClient.getBaseUrl()}/${this.getProjectUrl(filters)}/statistics/live_ranking?shop_id=${filters.shopId}`;
1305      return await this.getRequest(url);
1306    }
1307  }
1308  class VoucherStatistic extends Endpoint {
1309    /**
1310     * Return url for voucher endpoint
1311     * @override
1312     * @param {GlobalFilter} filters
1313     * @return {string}
1314     */
1315    getUrl(filters) {
1316      return `${this.getProjectUrl(filters)}/statistics/voucher`;
1317    }
1318  }
1319  class Statistics extends CrudEndpoint {
1320    dailyAnalytics() {
1321      return new DailyAnalytics(this.apiClient);
1322    }
1323    efficiency() {
1324      return new Efficiency(this.apiClient);
1325    }
1326    heatmap() {
1327      return new Heatmap(this.apiClient);
1328    }
1329    productivity() {
1330      return new Productivity(this.apiClient);
1331    }
1332    liveRanking() {
1333      return new LiveRanking(this.apiClient);
1334    }
1335    voucher() {
1336      return new VoucherStatistic(this.apiClient);
1337    }
1338    /**
1339     * Return url for statistics endpoint
1340     * @override
1341     * @param {GlobalFilter} filters
1342     * @return {string}
1343     */
1344    getUrl(filters) {
1345      return `${this.getProjectUrl(filters)}/statistics`;
1346    }
1347  }
1348  class Supplier extends CrudEndpoint {
1349    /**
1350     * Return url for supplier endpoint
1351     * @override
1352     * @param {GlobalFilter} filters
1353     * @return {string}
1354     */
1355    getUrl(filters) {
1356      return `${this.getProjectUrl(filters)}/supplier`;
1357    }
1358  }
1359  class Stock extends Basic {
1360    supplier() {
1361      return new Supplier(this.apiClient);
1362    }
1363  }
1364  class GlobalFilter {
1365    constructor(filters) {
1366      this.filters = filters;
1367    }
1368    /**
1369     * Transforms the filters object into a string that can be appended to the url
1370     * @return {string}
1371     */
1372    getParameterString() {
1373      return Object.entries(this.filters).filter(([key, value]) => value !== null).map(([key, value]) => `${key}=${value}`).join("&");
1374    }
1375    /**
1376     * Return the project id from the filters
1377     * @return {number|null}
1378     */
1379    get projectId() {
1380      var _a;
1381      return ((_a = this.filters) == null ? void 0 : _a.project_id) ?? null;
1382    }
1383    /**
1384     * Return the shop id from the filters
1385     * @return {*|null}
1386     */
1387    get shopId() {
1388      var _a;
1389      return ((_a = this.filters) == null ? void 0 : _a.shop_id) ?? null;
1390    }
1391  }
1392  class APIClient {
1393    constructor(baseUrl = "", bearerToken = "", apiVersion = "v1", timeout = 1e4) {
1394      this.baseUrl = baseUrl.endsWith("/api") ? baseUrl : `${baseUrl}/api`;
1395      this.bearerToken = bearerToken;
1396      this.apiVersion = apiVersion;
1397      this.timeout = timeout;
1398    }
1399    getBaseUrl() {
1400      return `${this.baseUrl}/${this.apiVersion}`;
1401    }
1402    setApiVersion(version) {
1403      this.apiVersion = version;
1404    }
1405    setBearerToken(token) {
1406      this.bearerToken = token;
1407    }
1408    /**
1409     * returns all data for an endpoint while additionally checking for next links
1410     * and getting data from those as well
1411     * @param result
1412     * @returns {Promise<{data: *[]}>}
1413     */
1414    async getAll(result) {
1415      let data = [];
1416      if (typeof result.data !== "undefined") {
1417        data = data.concat(result.data);
1418      }
1419      while (result.links.next !== null) {
1420        result = await this.next(result);
1421        if (typeof result.data !== "undefined") {
1422          data = data.concat(result.data);
1423        }
1424      }
1425      return { "data": data };
1426    }
1427    /**
1428     * calls the next link in the result
1429     * @param result
1430     * @returns {Promise<*[]>}
1431     */
1432    async next(result) {
1433      const response = await this.request("GET", result.links.next);
1434      return response.json();
1435    }
1436    async download(method, url) {
1437      const headers = new Headers();
1438      if (this.bearerToken) {
1439        headers.append("Authorization", `Bearer ${this.bearerToken}`);
1440      }
1441      const options = {
1442        method,
1443        headers
1444      };
1445      const response = await fetch(url, options);
1446      if (!response.ok) {
1447        throw new Error(`HTTP error ${response.status}`);
1448      }
1449      return await response.blob();
1450    }
1451    /**
1452     * Execute a request
1453     * @param {string} method
1454     * @param {string} url
1455     * @param {*} data
1456     * @param {boolean} isDownload
1457     * @returns {Promise<Response>}
1458     */
1459    async request(method, url, data = null, isDownload = false) {
1460      const headers = new Headers();
1461      if (!isDownload) {
1462        headers.append("Content-Type", "application/json");
1463        headers.append("Accept-Charset", "application/json");
1464        headers.append("Accept", "application/json");
1465      }
1466      if (this.bearerToken) {
1467        headers.append("Authorization", `Bearer ${this.bearerToken}`);
1468      }
1469      const options = {
1470        method,
1471        headers,
1472        timeout: this.timeout
1473      };
1474      if (data) {
1475        options.body = JSON.stringify(data);
1476      }
1477      return await fetch(url, options);
1478    }
1479    account() {
1480      return new Account(this);
1481    }
1482    accounting() {
1483      return new Accounting(this);
1484    }
1485    marketing() {
1486      return new Marketing(this);
1487    }
1488    menu() {
1489      return new Menu(this);
1490    }
1491    oAuth() {
1492      return new OAuth(this);
1493    }
1494    statistics() {
1495      return new Statistics(this);
1496    }
1497    stock() {
1498      return new Stock(this);
1499    }
1500    createFilter(filterObject) {
1501      return new GlobalFilter(filterObject);
1502    }
1503  }
1504  return APIClient;
1505});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.