saferoute-api 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -119,7 +119,7 @@ yarn add saferoute-api
119
119
 
120
120
  #### APIDataResponse
121
121
 
122
- Тип для запросов, в которых сервер возвращает какие-либо данные.
122
+ Тип для запросов, в которых сервер возвращает какие-либо данные без постраничной навигации.
123
123
 
124
124
  ```typescript
125
125
  type APIDataResponse<D> =
@@ -146,6 +146,41 @@ type APIDataResponse<D> =
146
146
  };
147
147
  ```
148
148
 
149
+ Тип для запросов, в которых сервер возвращает список с постраничной навигацией.
150
+
151
+ ```typescript
152
+ type APIDataPaginatedResponse<D> =
153
+ // Получен успешный ответ от сервера
154
+ | {
155
+ status: SuccessStatuses; // HTTP-статус ответа сервера
156
+ data: D[]; // Полученный список
157
+ pagination: {
158
+ currentPage: number; // Текущая запрошенная страница
159
+ pageCount: number; // Общее количество страниц в текущем списке
160
+ perPage: number; // Количество выводимых на страницу результатов
161
+ totalCount: number; // Общее количество результатов в списке
162
+ };
163
+ error: null;
164
+ }
165
+ // От сервера получены код и текстовое описание ошибки
166
+ | {
167
+ status: ErrorWithCodeStatuses;
168
+ data: null;
169
+ pagination: null;
170
+ error: {
171
+ code: ERROR_CODES;
172
+ message: string;
173
+ };
174
+ }
175
+ // Запрос завершился ошибкой, сервер не отдал код ошибки
176
+ | {
177
+ status: ErrorWithoutCodeStatuses;
178
+ data: null;
179
+ pagination: null;
180
+ error: null;
181
+ };
182
+ ```
183
+
149
184
  #### APIBoolResponse
150
185
 
151
186
  Тип для запросов, в которых требуется вернуть результат выполнения запроса "успешно" / "не успешно".
@@ -259,21 +294,68 @@ _В разработке_
259
294
 
260
295
  ### Заборы
261
296
 
297
+ [Документация к API заборов](https://wiki.saferoute.ru/ru/api/endpoints/pickups)
298
+
262
299
  #### Получение списка заборов
263
300
 
264
- разработке_
301
+ Пример использования.
302
+
303
+ ```typescript
304
+ import api, { APIDataPaginatedResponse, GetPickupsParams, Pickup } from 'saferoute-api';
305
+
306
+ const token = '******************';
307
+ const params: GetPickupsParams = { archive: true };
308
+
309
+ const res: APIDataPaginatedResponse<Pickup> = await api.pickups.getPickups(token, params);
310
+ ```
265
311
 
266
312
  #### Создание забора
267
313
 
268
- разработке_
314
+ Пример использования.
315
+
316
+ ```typescript
317
+ import api, { APIDataResponse, PickupCreateParams, PICKUP_TYPES } from 'saferoute-api';
318
+
319
+ const token = '******************';
320
+ const params: PickupCreateParams = {
321
+ date: '2024-02-01',
322
+ type: PICKUP_TYPES.COURIER_MERGED,
323
+ companyId: 1,
324
+ warehouseId: 2,
325
+ comment: null,
326
+ };
327
+
328
+ const res: APIDataResponse<{ id: number }> = await api.pickups.createPickup(token, params);
329
+ ```
269
330
 
270
331
  #### Отмена забора
271
332
 
272
- разработке_
333
+ Пример использования.
334
+
335
+ ```typescript
336
+ import api, { APIBoolResponse } from 'saferoute-api';
337
+
338
+ const token = '******************';
339
+ const id = 15; // ID забора
340
+
341
+ const res: APIBoolResponse = await api.pickups.cancelPickup(token, id);
342
+ ```
273
343
 
274
344
  #### Получение списка компаний забора
275
345
 
276
- разработке_
346
+ Пример использования.
347
+
348
+ ```typescript
349
+ import api, { APIDataResponse, GetPickupCompaniesParams, PickupCompany, PICKUP_TYPES } from 'saferoute-api';
350
+
351
+ const token = '******************';
352
+ const params: GetPickupCompaniesParams = {
353
+ type: PICKUP_TYPES.COURIER_MERGED,
354
+ warehouseId: 1,
355
+ };
356
+
357
+ const res: APIDataResponse<PickupCompany> = await api.pickups.getPickupCompanies(token, params);
358
+ ```
277
359
 
278
360
  ### Товары
279
361
 
@@ -437,33 +519,33 @@ _В разработке_
437
519
 
438
520
  #### Список счетов
439
521
 
440
- Пример кода:
522
+ Пример использования.
441
523
 
442
524
  ```typescript
443
- import api, { APIDataResponse, GetBillsParams, Bill } from 'saferoute-api';
525
+ import api, { APIDataPaginatedResponse, GetBillsParams, Bill } from 'saferoute-api';
444
526
 
445
527
  const token = '******************';
446
528
  const params: GetBillsParams = { from: '2023-01-01', to: '2023-03-01' };
447
529
 
448
- const res: APIDataResponse<Bill[]> = await api.reports.getBills(token, params);
530
+ const res: APIDataPaginatedResponse<Bill> = await api.reports.getBills(token, params);
449
531
  ```
450
532
 
451
533
  #### Список отчётов агента/исполнителя
452
534
 
453
- Пример кода:
535
+ Пример использования.
454
536
 
455
537
  ```typescript
456
- import api, { APIDataResponse, GetAgentReportsParams, AgentReport, REPORTS_TYPES } from 'saferoute-api';
538
+ import api, { APIDataPaginatedResponse, GetAgentReportsParams, AgentReport, REPORTS_TYPES } from 'saferoute-api';
457
539
 
458
540
  const token = '******************';
459
541
  const params: GetAgentReportsParams = { from: '2023-01-01', to: '2023-03-01', type: REPORTS_TYPES.DAILY };
460
542
 
461
- const res: APIDataResponse<AgentReport[]> = await api.reports.getAgentReports(token, params);
543
+ const res: APIDataPaginatedResponse<AgentReport> = await api.reports.getAgentReports(token, params);
462
544
  ```
463
545
 
464
546
  #### Подтверждение отчёта агента
465
547
 
466
- Пример кода:
548
+ Пример использования.
467
549
 
468
550
  ```typescript
469
551
  import api, { APIBoolResponse } from 'saferoute-api';
@@ -476,20 +558,20 @@ const res: APIBoolResponse = await api.reports.confirmAgentReport(token, id);
476
558
 
477
559
  #### Список аналитических отчётов
478
560
 
479
- Пример кода:
561
+ Пример использования.
480
562
 
481
563
  ```typescript
482
- import api, { APIDataResponse, GetAnalyticalReportsParams, AnalyticalReport, ANALYTICAL_REPORTS_TYPES } from 'saferoute-api';
564
+ import api, { APIDataPaginatedResponse, GetAnalyticalReportsParams, AnalyticalReport, ANALYTICAL_REPORTS_TYPES } from 'saferoute-api';
483
565
 
484
566
  const token = '******************';
485
567
  const params: GetAnalyticalReportsParams = { from: '2023-01-01', to: '2023-03-01', type: ANALYTICAL_REPORTS_TYPES.CONSOLIDATED };
486
568
 
487
- const res: APIDataResponse<AnalyticalReport[]> = await api.reports.getAnalyticalReports(token, params);
569
+ const res: APIDataPaginatedResponse<AnalyticalReport> = await api.reports.getAnalyticalReports(token, params);
488
570
  ```
489
571
 
490
572
  #### Генерация аналитических отчётов
491
573
 
492
- Пример кода:
574
+ Пример использования.
493
575
 
494
576
  ```typescript
495
577
  import api, { APIDataResponse, AnalyticalReportGenerateParams, ANALYTICAL_REPORTS_TYPES } from 'saferoute-api';
@@ -692,6 +774,11 @@ type WidgetsConfirmOrderResponse =
692
774
 
693
775
  * `ERROR_CODES` - Коды ошибок API
694
776
 
777
+ ### Заборы
778
+
779
+ * `PICKUP_TYPES` - Типы заборов
780
+ * `PICKUP_STATUSES` - Статусы заборов
781
+
695
782
  ### Отчёты
696
783
 
697
784
  * `BILLS_STATUSES` - Статусы счетов
@@ -0,0 +1,15 @@
1
+ import { Pickup, PickupCreateParams, GetPickupCompaniesParams, PickupCompany } from '../types/pickups';
2
+ import { APIDataResponse, APIDataPaginatedResponse, APIBoolResponse } from '../request';
3
+ declare const _default: {
4
+ getPickups: (token: string, params?: Partial<{
5
+ archive: boolean;
6
+ page: number;
7
+ perPage: number;
8
+ }> | undefined) => Promise<APIDataPaginatedResponse<Pickup>>;
9
+ createPickup: (token: string, params: PickupCreateParams) => Promise<APIDataResponse<{
10
+ id: number;
11
+ }>>;
12
+ cancelPickup: (token: string, id: number) => Promise<APIBoolResponse>;
13
+ getPickupCompanies: (token: string, params: GetPickupCompaniesParams) => Promise<APIDataResponse<PickupCompany>>;
14
+ };
15
+ export default _default;
@@ -1,19 +1,19 @@
1
1
  import { Bill, AgentReport, AnalyticalReport, AnalyticalReportGenerateParams } from '../types/reports';
2
- import { APIDataResponse, APIBoolResponse } from '../request';
2
+ import { APIDataResponse, APIDataPaginatedResponse, APIBoolResponse } from '../request';
3
3
  declare const _default: {
4
4
  getBills: (token: string, params?: Partial<{
5
5
  from: string;
6
6
  to: string;
7
7
  page: number;
8
8
  perPage: number;
9
- }> | undefined) => Promise<APIDataResponse<Bill[]>>;
9
+ }> | undefined) => Promise<APIDataPaginatedResponse<Bill[]>>;
10
10
  getAgentReports: (token: string, params?: Partial<{
11
11
  from: string;
12
12
  to: string;
13
13
  type: import("..").REPORTS_TYPES;
14
14
  page: number;
15
15
  perPage: number;
16
- }> | undefined) => Promise<APIDataResponse<AgentReport[]>>;
16
+ }> | undefined) => Promise<APIDataPaginatedResponse<AgentReport[]>>;
17
17
  confirmAgentReport: (token: string, id: number) => Promise<APIBoolResponse>;
18
18
  getAnalyticalReports: (token: string, params?: Partial<{
19
19
  from: string;
@@ -21,7 +21,7 @@ declare const _default: {
21
21
  type: import("..").ANALYTICAL_REPORTS_TYPES;
22
22
  page: number;
23
23
  perPage: number;
24
- }> | undefined) => Promise<APIDataResponse<AnalyticalReport[]>>;
24
+ }> | undefined) => Promise<APIDataPaginatedResponse<AnalyticalReport[]>>;
25
25
  generateAnalyticalReport: (token: string, params: AnalyticalReportGenerateParams) => Promise<APIDataResponse<{
26
26
  file: string;
27
27
  }>>;
package/dist/const.d.ts CHANGED
@@ -1,3 +1,21 @@
1
+ /**
2
+ * Типы заборов
3
+ */
4
+ export declare enum PICKUP_TYPES {
5
+ SELF_TO_DELIVERY = 1,// Самостоятельный подвоз в службы доставки
6
+ SELF_TO_MERGED_WAREHOUSE = 2,// Самостоятельный подвоз до склада единого забора
7
+ COURIER_MERGED = 3,// Единый забор курьером
8
+ COURIER_TO_DELIVERY = 4
9
+ }
10
+ /**
11
+ * Статусы заборов
12
+ */
13
+ export declare enum PICKUP_STATUSES {
14
+ NEW = 1,
15
+ CONFIRMED = 2,
16
+ CANCELLED = 3,
17
+ ERROR = 4
18
+ }
1
19
  /**
2
20
  * Статусы счетов
3
21
  */
package/dist/index.d.ts CHANGED
@@ -1,22 +1,30 @@
1
- export { ERROR_CODES, BILLS_STATUSES, REPORTS_TYPES, ANALYTICAL_REPORTS_TYPES, WIDGETS_RESPONSE_STATUS_CODES, WIDGETS_UPDATE_ORDER_ERRORS, WIDGETS_CONFIRM_ORDER_ERRORS, } from './const';
2
- export { APIDataResponse, APIBoolResponse } from './request';
3
- export { GetBillsParams, Bill, GetAgentReportsParams, AgentReport, GetAnalyticalReportsParams, AnalyticalReport, AnalyticalReportGenerateParams, } from './types/reports';
4
- export { WidgetsApiResponse, WidgetsUpdateOrderParams, WidgetsUpdateOrderResponse, WidgetsConfirmOrderResponse, } from './types/widgets';
5
1
  declare const _default: {
2
+ pickups: {
3
+ getPickups: (token: string, params?: Partial<{
4
+ archive: boolean;
5
+ page: number;
6
+ perPage: number;
7
+ }> | undefined) => Promise<import("./request").APIDataPaginatedResponse<import("./types/pickups").Pickup>>;
8
+ createPickup: (token: string, params: import("./types/pickups").PickupCreateParams) => Promise<import("./request").APIDataResponse<{
9
+ id: number;
10
+ }>>;
11
+ cancelPickup: (token: string, id: number) => Promise<import("./request").APIBoolResponse>;
12
+ getPickupCompanies: (token: string, params: import("./types/pickups").GetPickupCompaniesParams) => Promise<import("./request").APIDataResponse<import("./types/pickups").PickupCompany>>;
13
+ };
6
14
  reports: {
7
15
  getBills: (token: string, params?: Partial<{
8
16
  from: string;
9
17
  to: string;
10
18
  page: number;
11
19
  perPage: number;
12
- }> | undefined) => Promise<import("./request").APIDataResponse<import("./types/reports").Bill[]>>;
20
+ }> | undefined) => Promise<import("./request").APIDataPaginatedResponse<import("./types/reports").Bill[]>>;
13
21
  getAgentReports: (token: string, params?: Partial<{
14
22
  from: string;
15
23
  to: string;
16
24
  type: import("./const").REPORTS_TYPES;
17
25
  page: number;
18
26
  perPage: number;
19
- }> | undefined) => Promise<import("./request").APIDataResponse<import("./types/reports").AgentReport[]>>;
27
+ }> | undefined) => Promise<import("./request").APIDataPaginatedResponse<import("./types/reports").AgentReport[]>>;
20
28
  confirmAgentReport: (token: string, id: number) => Promise<import("./request").APIBoolResponse>;
21
29
  getAnalyticalReports: (token: string, params?: Partial<{
22
30
  from: string;
@@ -24,7 +32,7 @@ declare const _default: {
24
32
  type: import("./const").ANALYTICAL_REPORTS_TYPES;
25
33
  page: number;
26
34
  perPage: number;
27
- }> | undefined) => Promise<import("./request").APIDataResponse<import("./types/reports").AnalyticalReport[]>>;
35
+ }> | undefined) => Promise<import("./request").APIDataPaginatedResponse<import("./types/reports").AnalyticalReport[]>>;
28
36
  generateAnalyticalReport: (token: string, params: import("./types/reports").AnalyticalReportGenerateParams) => Promise<import("./request").APIDataResponse<{
29
37
  file: string;
30
38
  }>>;
@@ -51,3 +59,8 @@ declare const _default: {
51
59
  };
52
60
  };
53
61
  export default _default;
62
+ export { ERROR_CODES, PICKUP_TYPES, PICKUP_STATUSES, BILLS_STATUSES, REPORTS_TYPES, ANALYTICAL_REPORTS_TYPES, WIDGETS_RESPONSE_STATUS_CODES, WIDGETS_UPDATE_ORDER_ERRORS, WIDGETS_CONFIRM_ORDER_ERRORS, } from './const';
63
+ export { APIDataResponse, APIDataPaginatedResponse, APIBoolResponse } from './request';
64
+ export { GetPickupsParams, Pickup, PickupCreateParams, GetPickupCompaniesParams, PickupCompany, } from './types/pickups';
65
+ export { GetBillsParams, Bill, GetAgentReportsParams, AgentReport, GetAnalyticalReportsParams, AnalyticalReport, AnalyticalReportGenerateParams, } from './types/reports';
66
+ export { WidgetsApiResponse, WidgetsUpdateOrderParams, WidgetsUpdateOrderResponse, WidgetsConfirmOrderResponse, } from './types/widgets';
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- !function(R,_){if("object"==typeof exports&&"object"==typeof module)module.exports=_();else if("function"==typeof define&&define.amd)define([],_);else{var E=_();for(var O in E)("object"==typeof exports?exports:R)[O]=E[O]}}(this,(()=>(()=>{"use strict";var R={496:(R,_,E)=>{const{isIP:O,isIPv4:e}=E(256),{createSocket:t}=E(696),{ADDRCONFIG:D}=E(880),{lookup:T}=E(880).promises,S=new RegExp(`^(${[/^(:{2}f{4}:)?10(?:\.\d{1,3}){3}$/,/^(:{2}f{4}:)?127(?:\.\d{1,3}){3}$/,/^(::f{4}:)?169\.254\.([1-9]|1?\d\d|2[0-4]\d|25[0-4])\.\d{1,3}$/,/^(:{2}f{4}:)?(172\.1[6-9]|172\.2\d|172\.3[01])(?:\.\d{1,3}){2}$/,/^(:{2}f{4}:)?192\.168(?:\.\d{1,3}){2}$/,/^f[cd][\da-f]{2}(::1$|:[\da-f]{1,4}){1,7}$/,/^fe[89ab][\da-f](::1$|:[\da-f]{1,4}){1,7}$/].map((R=>R.source)).join("|")})$`),A=/(?![\w-]{64})((^(?=[-\w.]{1,253}\.?$)((\w{1,63}|(\w[-\w]{0,61}\w))\.?)+$)(?<!\.{2}))/;R.exports=async function R(_,E=!1){if("string"!=typeof _)return!1;if(O(_))return!(!S.test(_)||E)||async function(R){const _=t(e(R)?"udp4":"udp6");return new Promise((E=>{try{_.once("error",(()=>_.close((()=>E(!1))))).once("listening",(()=>_.close((()=>E(!0))))).unref().bind(0,R)}catch{_.close((()=>E(!1)))}}))}(_);if(!A.test(_))return!1;try{const O=await T(_,{all:!0,family:0,verbatim:!0,hints:D});if(!Array.isArray(O))return!1;for(const{address:_}of O)if(await R(_,E))return!0}catch{}return!1},R.exports.VALID_HOSTNAME=A},484:function(R,_,E){var O=this&&this.__createBinding||(Object.create?function(R,_,E,O){void 0===O&&(O=E);var e=Object.getOwnPropertyDescriptor(_,E);e&&!("get"in e?!_.__esModule:e.writable||e.configurable)||(e={enumerable:!0,get:function(){return _[E]}}),Object.defineProperty(R,O,e)}:function(R,_,E,O){void 0===O&&(O=E),R[O]=_[E]}),e=this&&this.__setModuleDefault||(Object.create?function(R,_){Object.defineProperty(R,"default",{enumerable:!0,value:_})}:function(R,_){R.default=_}),t=this&&this.__importStar||function(R){if(R&&R.__esModule)return R;var _={};if(null!=R)for(var E in R)"default"!==E&&Object.prototype.hasOwnProperty.call(R,E)&&O(_,R,E);return e(_,R),_};Object.defineProperty(_,"__esModule",{value:!0});const D=t(E(792));_.default={getBills:async(R,_)=>(0,D.prepareDataResponse)(await(0,D.default)({url:"reports/bill",method:"GET",data:_,token:R})),getAgentReports:async(R,_)=>(0,D.prepareDataResponse)(await(0,D.default)({url:"reports/agent",method:"GET",data:_,token:R})),confirmAgentReport:async(R,_)=>(0,D.prepareBoolResponse)(await(0,D.default)({url:`reports/agent-accept/${_}`,method:"PUT",token:R})),getAnalyticalReports:async(R,_)=>(0,D.prepareDataResponse)(await(0,D.default)({url:"reports/analytical",method:"GET",data:_,token:R})),generateAnalyticalReport:async(R,_)=>(0,D.prepareDataResponse)(await(0,D.default)({url:"reports/analytical",method:"POST",data:_,token:R}))}},412:function(R,_,E){var O=this&&this.__importDefault||function(R){return R&&R.__esModule?R:{default:R}};Object.defineProperty(_,"__esModule",{value:!0});const e=O(E(496)),t=E(884),D=O(E(792));_.default={widgetApi:async(R,_,E,O,t)=>{if(!/\w+\.saferoute\.ru$/.test(new URL(R).host))return"";if(R.endsWith(".html"))return(await(0,D.default)({url:R,method:"GET"})).text();E&&"ip"in E&&!E.ip&&t&&(await(0,e.default)(t)||(E.ip=t));const T=await(0,D.default)({url:R,method:_,data:E,...O,headers:{"From-Widget":"1"}}),S=await T.json();return 200===T.status?{status:T.status,data:S}:{status:T.status,code:S&&"code"in S?S.code:null}},updateOrder:async(R,{COD:_,...E},O)=>{const e=await(0,D.default)({url:"widgets/update-order",method:"POST",data:{id:R,...E,nppOption:_},...O}),T=await e.json();return e.status===t.WIDGETS_RESPONSE_STATUS_CODES.SUCCESS||e.status===t.WIDGETS_RESPONSE_STATUS_CODES.REQUEST_ERROR?{status:e.status,data:T}:{status:e.status}},confirmOrder:async(R,_)=>{const E=await(0,D.default)({url:"widgets/confirm-order",method:"POST",data:{checkoutSessId:R},..._});return E.status===t.WIDGETS_RESPONSE_STATUS_CODES.REQUEST_ERROR?{status:E.status,data:{code:(await E.json()).code}}:{status:E.status}}}},884:(R,_)=>{var E,O,e,t,D,T,S;Object.defineProperty(_,"__esModule",{value:!0}),_.ERROR_CODES=_.WIDGETS_CONFIRM_ORDER_ERRORS=_.WIDGETS_UPDATE_ORDER_ERRORS=_.WIDGETS_RESPONSE_STATUS_CODES=_.ANALYTICAL_REPORTS_TYPES=_.REPORTS_TYPES=_.BILLS_STATUSES=void 0,function(R){R[R.PAID=1]="PAID",R[R.NOT_PAID=2]="NOT_PAID",R[R.PARTIALLY_PAID=3]="PARTIALLY_PAID",R[R.DEBT=4]="DEBT"}(E||(_.BILLS_STATUSES=E={})),function(R){R[R.DAILY=1]="DAILY",R[R.MONTHLY=2]="MONTHLY"}(O||(_.REPORTS_TYPES=O={})),function(R){R[R.CONSOLIDATED=1]="CONSOLIDATED",R[R.BY_ORDERS=2]="BY_ORDERS",R[R.MARK_CODES_DISPOSAL=3]="MARK_CODES_DISPOSAL"}(e||(_.ANALYTICAL_REPORTS_TYPES=e={})),function(R){R[R.SUCCESS=200]="SUCCESS",R[R.REQUEST_ERROR=400]="REQUEST_ERROR",R[R.AUTH_ERROR=401]="AUTH_ERROR",R[R.SERVER_ERROR=500]="SERVER_ERROR"}(t||(_.WIDGETS_RESPONSE_STATUS_CODES=t={})),function(R){R[R.NO_ORDER_ID=0]="NO_ORDER_ID",R[R.ORDER_NOT_FOUND=1001]="ORDER_NOT_FOUND",R[R.INVALID_SHOP_ID=2001]="INVALID_SHOP_ID",R[R.ORDER_CREATION_ERROR=1002]="ORDER_CREATION_ERROR",R[R.ORDER_UPDATE_ERROR=1003]="ORDER_UPDATE_ERROR"}(D||(_.WIDGETS_UPDATE_ORDER_ERRORS=D={})),function(R){R[R.INVALID_SHOP_ID=2001]="INVALID_SHOP_ID",R[R.PAY_SYSTEM_TRANSACTION_CONFIRM_ERROR=7001]="PAY_SYSTEM_TRANSACTION_CONFIRM_ERROR",R[R.INVALID_SESSION_ID=7003]="INVALID_SESSION_ID"}(T||(_.WIDGETS_CONFIRM_ORDER_ERRORS=T={})),function(R){R[R.ACCOUNT_BANNED=103]="ACCOUNT_BANNED",R[R.ORDER_NOT_FOUND=1001]="ORDER_NOT_FOUND",R[R.ORDER_CREATION_ERROR=1002]="ORDER_CREATION_ERROR",R[R.ORDER_UPDATE_ERROR=1003]="ORDER_UPDATE_ERROR",R[R.ORDER_CONFIRM_ERROR=1004]="ORDER_CONFIRM_ERROR",R[R.ORDER_CANCEL_ERROR=1005]="ORDER_CANCEL_ERROR",R[R.ORDER_PICKUP_ERROR=1006]="ORDER_PICKUP_ERROR",R[R.ORDER_RETURN_ERROR=1007]="ORDER_RETURN_ERROR",R[R.ORDER_STORAGE_EXTENSION_ERROR=1008]="ORDER_STORAGE_EXTENSION_ERROR",R[R.ORDER_CLONE_ERROR=1009]="ORDER_CLONE_ERROR",R[R.ORDER_PACK_ERROR=1010]="ORDER_PACK_ERROR",R[R.ORDER_UNPACK_ERROR=1011]="ORDER_UNPACK_ERROR",R[R.ORDER_INVALID_PICKUP_DATE=1016]="ORDER_INVALID_PICKUP_DATE",R[R.ORDER_PICKUP_POINT_REQUIRED=1017]="ORDER_PICKUP_POINT_REQUIRED",R[R.ORDERS_IDS_NOT_PASSED=1020]="ORDERS_IDS_NOT_PASSED",R[R.ORDER_REQUIRED_PARAMS_NOT_PASSED=1021]="ORDER_REQUIRED_PARAMS_NOT_PASSED",R[R.ORDER_PICKUP_POINT_NOT_FOUND=1022]="ORDER_PICKUP_POINT_NOT_FOUND",R[R.ORDER_COURIER_DELIVERY_PARAMS_NOT_PASSED=1023]="ORDER_COURIER_DELIVERY_PARAMS_NOT_PASSED",R[R.ORDER_DELIVERY_TYPE_INVALID=1024]="ORDER_DELIVERY_TYPE_INVALID",R[R.USER_BANNED_BY_DELIVERY_COMPANY=1025]="USER_BANNED_BY_DELIVERY_COMPANY",R[R.INVALID_PHONE_IN_ORDER=1026]="INVALID_PHONE_IN_ORDER",R[R.ORDER_PRODUCT_NOT_FOUND=1027]="ORDER_PRODUCT_NOT_FOUND",R[R.ORDER_PRODUCTS_NAMES_MUST_BE_LATIN=1028]="ORDER_PRODUCTS_NAMES_MUST_BE_LATIN",R[R.FULL_NAME_REQUIRED_FOR_SELECTED_DELIVERY=1029]="FULL_NAME_REQUIRED_FOR_SELECTED_DELIVERY",R[R.LEAVE_AT_DOOR_NOT_SUPPORTED=1030]="LEAVE_AT_DOOR_NOT_SUPPORTED",R[R.ORDER_CONFIRM_UNAVAILABLE_FOR_USER=1031]="ORDER_CONFIRM_UNAVAILABLE_FOR_USER",R[R.ORDER_COD_AND_PREPAY_TOGETHER=1032]="ORDER_COD_AND_PREPAY_TOGETHER",R[R.ORDER_PREPAY_REQUIRED_FOR_ACQUIRING=1033]="ORDER_PREPAY_REQUIRED_FOR_ACQUIRING",R[R.ORDER_PRODUCTS_TNVED_REQUIRED=1034]="ORDER_PRODUCTS_TNVED_REQUIRED",R[R.ORDER_EDITING_UNAVAILABLE=1035]="ORDER_EDITING_UNAVAILABLE",R[R.CARGO_SPACE_BARCODES_REQUIRED=1036]="CARGO_SPACE_BARCODES_REQUIRED",R[R.ORDER_COD_NOT_AVAILABLE_FOR_USER=1037]="ORDER_COD_NOT_AVAILABLE_FOR_USER",R[R.ORDER_COD_BY_PRODUCTS_REQUIRED=1038]="ORDER_COD_BY_PRODUCTS_REQUIRED",R[R.RETURN_ORDER_INVALID_ID=1039]="RETURN_ORDER_INVALID_ID",R[R.STICKERS_GENERATION_ERROR=1041]="STICKERS_GENERATION_ERROR",R[R.ORDER_COD_NOT_AVAILABLE_FOR_LEGAL_ENTITY=1042]="ORDER_COD_NOT_AVAILABLE_FOR_LEGAL_ENTITY",R[R.INVALID_ASSEMBLY_LIST_GENERATION=1051]="INVALID_ASSEMBLY_LIST_GENERATION",R[R.ORDER_TASK_CREATION_ERROR=1061]="ORDER_TASK_CREATION_ERROR",R[R.NO_ORDER_CHANGES_FOR_TASK=1062]="NO_ORDER_CHANGES_FOR_TASK",R[R.ORDER_STORAGE_EXTENDED_ALREADY=1063]="ORDER_STORAGE_EXTENDED_ALREADY",R[R.ORDERS_WITHOUT_SHOP_NOT_AVAILABLE=1090]="ORDERS_WITHOUT_SHOP_NOT_AVAILABLE",R[R.SHOP_NOT_FOUND=2001]="SHOP_NOT_FOUND",R[R.SHOP_CREATION_ERROR=2004]="SHOP_CREATION_ERROR",R[R.SHOP_UPDATE_ERROR=2005]="SHOP_UPDATE_ERROR",R[R.SHOP_DELETE_ERROR=2006]="SHOP_DELETE_ERROR",R[R.SHOP_NO_HAS_PRODUCTS=2008]="SHOP_NO_HAS_PRODUCTS",R[R.CALCULATOR_INVALID_PRAMS=4001]="CALCULATOR_INVALID_PRAMS",R[R.COURIER_SCHEDULE_REQUEST_ERROR=5001]="COURIER_SCHEDULE_REQUEST_ERROR",R[R.PRODUCT_NOT_FOUND=6001]="PRODUCT_NOT_FOUND",R[R.PRODUCT_CREATION_ERROR=6003]="PRODUCT_CREATION_ERROR",R[R.PRODUCT_UPDATE_ERROR=6004]="PRODUCT_UPDATE_ERROR",R[R.PRODUCT_DELETE_ERROR=6005]="PRODUCT_DELETE_ERROR",R[R.PRODUCT_VENDOR_CODE_ALREADY_EXISTS=6006]="PRODUCT_VENDOR_CODE_ALREADY_EXISTS",R[R.PRODUCTS_IMPORT_ERROR=6007]="PRODUCTS_IMPORT_ERROR",R[R.WAYBILL_GENERATION_ERROR=6008]="WAYBILL_GENERATION_ERROR",R[R.WAYBILL_BOX_ID_EXCEEDS_PLACES=6009]="WAYBILL_BOX_ID_EXCEEDS_PLACES",R[R.PRODUCTS_MOVE_REPORT_GENERATION_ERROR=6010]="PRODUCTS_MOVE_REPORT_GENERATION_ERROR",R[R.PRODUCTS_MOVE_NOT_FOUND=6011]="PRODUCTS_MOVE_NOT_FOUND",R[R.BOX_NOT_FOUND=8001]="BOX_NOT_FOUND",R[R.BOX_CREATION_ERROR=8002]="BOX_CREATION_ERROR",R[R.BOX_UPDATE_ERROR=8003]="BOX_UPDATE_ERROR",R[R.BOX_DELETE_ERROR=8004]="BOX_DELETE_ERROR",R[R.CMS_API_PAH_NOT_SET=10001]="CMS_API_PAH_NOT_SET",R[R.CMS_API_ERROR=10002]="CMS_API_ERROR",R[R.KIT_NOT_FOUND=11001]="KIT_NOT_FOUND",R[R.KIT_VENDOR_CODE_ALREADY_EXISTS=11002]="KIT_VENDOR_CODE_ALREADY_EXISTS",R[R.KIT_CREATION_ERROR=11003]="KIT_CREATION_ERROR",R[R.KIT_UPDATE_ERROR=11004]="KIT_UPDATE_ERROR",R[R.KIT_DELETE_ERROR=11005]="KIT_DELETE_ERROR",R[R.PICKUP_NOT_FOUND=13001]="PICKUP_NOT_FOUND",R[R.PICKUP_CREATION_ERROR=13003]="PICKUP_CREATION_ERROR",R[R.PICKUP_FOR_DATE_ALREADY_EXISTS=13004]="PICKUP_FOR_DATE_ALREADY_EXISTS",R[R.INVALID_PICKUP_TYPE=13005]="INVALID_PICKUP_TYPE",R[R.INVALID_PICKUP_DATE=13009]="INVALID_PICKUP_DATE",R[R.PICKUP_CANCEL_ERROR=13010]="PICKUP_CANCEL_ERROR",R[R.PICKUP_CREATION_NOT_AVAILABLE_FOR_USER=13013]="PICKUP_CREATION_NOT_AVAILABLE_FOR_USER",R[R.INVALID_PICKUP_COMPANY=13014]="INVALID_PICKUP_COMPANY",R[R.WAREHOUSE_NOT_FOUND=14001]="WAREHOUSE_NOT_FOUND",R[R.WAREHOUSE_CREATION_ERROR=14002]="WAREHOUSE_CREATION_ERROR",R[R.WAREHOUSE_UPDATE_ERROR=14003]="WAREHOUSE_UPDATE_ERROR",R[R.WAREHOUSE_DELETE_ERROR=14004]="WAREHOUSE_DELETE_ERROR",R[R.WAREHOUSE_FF_ALREADY_EXISTS=14007]="WAREHOUSE_FF_ALREADY_EXISTS",R[R.INVALID_WAREHOUSE_ADDRESS=14008]="INVALID_WAREHOUSE_ADDRESS",R[R.USED_WAREHOUSE_DELETE_ERROR=14009]="USED_WAREHOUSE_DELETE_ERROR",R[R.REPORT_REQUIRED_PARAMS_NOT_PASSED=17001]="REPORT_REQUIRED_PARAMS_NOT_PASSED",R[R.REPORT_GENERATION_ERROR=17002]="REPORT_GENERATION_ERROR",R[R.AGENT_REPORT_ACCEPT_ERROR=17003]="AGENT_REPORT_ACCEPT_ERROR",R[R.INVALID_SCHEDULE_FORMAT=30001]="INVALID_SCHEDULE_FORMAT",R[R.EMPLOYEE_ACCESS_ERROR=6e4]="EMPLOYEE_ACCESS_ERROR"}(S||(_.ERROR_CODES=S={}))},740:function(R,_,E){var O=this&&this.__importDefault||function(R){return R&&R.__esModule?R:{default:R}};Object.defineProperty(_,"__esModule",{value:!0}),_.WIDGETS_CONFIRM_ORDER_ERRORS=_.WIDGETS_UPDATE_ORDER_ERRORS=_.WIDGETS_RESPONSE_STATUS_CODES=_.ANALYTICAL_REPORTS_TYPES=_.REPORTS_TYPES=_.BILLS_STATUSES=_.ERROR_CODES=void 0;const e=O(E(484)),t=O(E(412));var D=E(884);Object.defineProperty(_,"ERROR_CODES",{enumerable:!0,get:function(){return D.ERROR_CODES}}),Object.defineProperty(_,"BILLS_STATUSES",{enumerable:!0,get:function(){return D.BILLS_STATUSES}}),Object.defineProperty(_,"REPORTS_TYPES",{enumerable:!0,get:function(){return D.REPORTS_TYPES}}),Object.defineProperty(_,"ANALYTICAL_REPORTS_TYPES",{enumerable:!0,get:function(){return D.ANALYTICAL_REPORTS_TYPES}}),Object.defineProperty(_,"WIDGETS_RESPONSE_STATUS_CODES",{enumerable:!0,get:function(){return D.WIDGETS_RESPONSE_STATUS_CODES}}),Object.defineProperty(_,"WIDGETS_UPDATE_ORDER_ERRORS",{enumerable:!0,get:function(){return D.WIDGETS_UPDATE_ORDER_ERRORS}}),Object.defineProperty(_,"WIDGETS_CONFIRM_ORDER_ERRORS",{enumerable:!0,get:function(){return D.WIDGETS_CONFIRM_ORDER_ERRORS}}),_.default={reports:e.default,widgets:t.default}},792:function(R,_,E){var O=this&&this.__importDefault||function(R){return R&&R.__esModule?R:{default:R}};Object.defineProperty(_,"__esModule",{value:!0}),_.prepareBoolResponse=_.prepareDataResponse=void 0;const e=O(E(832));_.default=({url:R,method:_,data:E,headers:O,token:t,shopId:D})=>{const T=new URL(R.startsWith("https://")?R:(0,e.default)("https://api.saferoute.ru/v2",R));if(("GET"===_||"DELETE"===_)&&E)for(const[R,_]of Object.entries(E))T.searchParams.set(R,_??"");return fetch(T.toString(),{method:_,body:"POST"===_?JSON.stringify(E):null,headers:{...O,..."POST"===_?{"Content-Type":"application/json"}:null,...t?{Authorization:`Bearer ${t}`}:null,...D?{"Shop-Id":String(D)}:null}})},_.prepareDataResponse=async R=>{const _=await R.json();return R.status<300?{status:R.status,data:_,error:null}:_.code?{status:R.status,data:null,error:{code:_.code,message:_.message||""}}:{status:R.status,data:null,error:null}},_.prepareBoolResponse=async R=>{const _=await R.json();return R.status<300?{status:R.status,success:!0,error:null}:_.code?{status:R.status,success:!1,error:{code:_.code,message:_.message||""}}:{status:R.status,success:!1,error:null}}},696:R=>{R.exports=require("dgram")},880:R=>{R.exports=require("dns")},256:R=>{R.exports=require("net")},832:(R,_,E)=>{function O(){return function(R){var _=[];if(0===R.length)return"";if("string"!=typeof R[0])throw new TypeError("Url must be a string. Received "+R[0]);if(R[0].match(/^[^/:]+:\/*$/)&&R.length>1){var E=R.shift();R[0]=E+R[0]}R[0].match(/^file:\/\/\//)?R[0]=R[0].replace(/^([^/:]+):\/*/,"$1:///"):R[0]=R[0].replace(/^([^/:]+):\/*/,"$1://");for(var O=0;O<R.length;O++){var e=R[O];if("string"!=typeof e)throw new TypeError("Url must be a string. Received "+e);""!==e&&(O>0&&(e=e.replace(/^[\/]+/,"")),e=O<R.length-1?e.replace(/[\/]+$/,""):e.replace(/[\/]+$/,"/"),_.push(e))}var t=_.join("/"),D=(t=t.replace(/\/(\?|&|#[^!])/g,"$1")).split("?");return D.shift()+(D.length>0?"?":"")+D.join("&")}("object"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}E.r(_),E.d(_,{default:()=>O})}},_={};function E(O){var e=_[O];if(void 0!==e)return e.exports;var t=_[O]={exports:{}};return R[O].call(t.exports,t,t.exports,E),t.exports}return E.d=(R,_)=>{for(var O in _)E.o(_,O)&&!E.o(R,O)&&Object.defineProperty(R,O,{enumerable:!0,get:_[O]})},E.o=(R,_)=>Object.prototype.hasOwnProperty.call(R,_),E.r=R=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(R,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(R,"__esModule",{value:!0})},E(740)})()));
1
+ !function(R,E){if("object"==typeof exports&&"object"==typeof module)module.exports=E();else if("function"==typeof define&&define.amd)define([],E);else{var _=E();for(var e in _)("object"==typeof exports?exports:R)[e]=_[e]}}(this,(()=>(()=>{"use strict";var R={496:(R,E,_)=>{const{isIP:e,isIPv4:O}=_(256),{createSocket:t}=_(696),{ADDRCONFIG:D}=_(880),{lookup:r}=_(880).promises,T=new RegExp(`^(${[/^(:{2}f{4}:)?10(?:\.\d{1,3}){3}$/,/^(:{2}f{4}:)?127(?:\.\d{1,3}){3}$/,/^(::f{4}:)?169\.254\.([1-9]|1?\d\d|2[0-4]\d|25[0-4])\.\d{1,3}$/,/^(:{2}f{4}:)?(172\.1[6-9]|172\.2\d|172\.3[01])(?:\.\d{1,3}){2}$/,/^(:{2}f{4}:)?192\.168(?:\.\d{1,3}){2}$/,/^f[cd][\da-f]{2}(::1$|:[\da-f]{1,4}){1,7}$/,/^fe[89ab][\da-f](::1$|:[\da-f]{1,4}){1,7}$/].map((R=>R.source)).join("|")})$`),S=/(?![\w-]{64})((^(?=[-\w.]{1,253}\.?$)((\w{1,63}|(\w[-\w]{0,61}\w))\.?)+$)(?<!\.{2}))/;R.exports=async function R(E,_=!1){if("string"!=typeof E)return!1;if(e(E))return!(!T.test(E)||_)||async function(R){const E=t(O(R)?"udp4":"udp6");return new Promise((_=>{try{E.once("error",(()=>E.close((()=>_(!1))))).once("listening",(()=>E.close((()=>_(!0))))).unref().bind(0,R)}catch{E.close((()=>_(!1)))}}))}(E);if(!S.test(E))return!1;try{const e=await r(E,{all:!0,family:0,verbatim:!0,hints:D});if(!Array.isArray(e))return!1;for(const{address:E}of e)if(await R(E,_))return!0}catch{}return!1},R.exports.VALID_HOSTNAME=S},204:function(R,E,_){var e=this&&this.__createBinding||(Object.create?function(R,E,_,e){void 0===e&&(e=_);var O=Object.getOwnPropertyDescriptor(E,_);O&&!("get"in O?!E.__esModule:O.writable||O.configurable)||(O={enumerable:!0,get:function(){return E[_]}}),Object.defineProperty(R,e,O)}:function(R,E,_,e){void 0===e&&(e=_),R[e]=E[_]}),O=this&&this.__setModuleDefault||(Object.create?function(R,E){Object.defineProperty(R,"default",{enumerable:!0,value:E})}:function(R,E){R.default=E}),t=this&&this.__importStar||function(R){if(R&&R.__esModule)return R;var E={};if(null!=R)for(var _ in R)"default"!==_&&Object.prototype.hasOwnProperty.call(R,_)&&e(E,R,_);return O(E,R),E};Object.defineProperty(E,"__esModule",{value:!0});const D=t(_(792));E.default={getPickups:async(R,E)=>(0,D.prepareDataResponse)(await(0,D.default)({url:"pickups",method:"GET",data:E,token:R}),!0),createPickup:async(R,E)=>(0,D.prepareDataResponse)(await(0,D.default)({url:"pickups",method:"POST",data:E,token:R})),cancelPickup:async(R,E)=>(0,D.prepareBoolResponse)(await(0,D.default)({url:"pickups/cancel",method:"POST",data:{id:E},token:R})),getPickupCompanies:async(R,E)=>(0,D.prepareDataResponse)(await(0,D.default)({url:"pickups/companies",method:"GET",data:E,token:R}))}},484:function(R,E,_){var e=this&&this.__createBinding||(Object.create?function(R,E,_,e){void 0===e&&(e=_);var O=Object.getOwnPropertyDescriptor(E,_);O&&!("get"in O?!E.__esModule:O.writable||O.configurable)||(O={enumerable:!0,get:function(){return E[_]}}),Object.defineProperty(R,e,O)}:function(R,E,_,e){void 0===e&&(e=_),R[e]=E[_]}),O=this&&this.__setModuleDefault||(Object.create?function(R,E){Object.defineProperty(R,"default",{enumerable:!0,value:E})}:function(R,E){R.default=E}),t=this&&this.__importStar||function(R){if(R&&R.__esModule)return R;var E={};if(null!=R)for(var _ in R)"default"!==_&&Object.prototype.hasOwnProperty.call(R,_)&&e(E,R,_);return O(E,R),E};Object.defineProperty(E,"__esModule",{value:!0});const D=t(_(792));E.default={getBills:async(R,E)=>(0,D.prepareDataResponse)(await(0,D.default)({url:"reports/bill",method:"GET",data:E,token:R}),!0),getAgentReports:async(R,E)=>(0,D.prepareDataResponse)(await(0,D.default)({url:"reports/agent",method:"GET",data:E,token:R}),!0),confirmAgentReport:async(R,E)=>(0,D.prepareBoolResponse)(await(0,D.default)({url:`reports/agent-accept/${E}`,method:"PUT",token:R})),getAnalyticalReports:async(R,E)=>(0,D.prepareDataResponse)(await(0,D.default)({url:"reports/analytical",method:"GET",data:E,token:R}),!0),generateAnalyticalReport:async(R,E)=>(0,D.prepareDataResponse)(await(0,D.default)({url:"reports/analytical",method:"POST",data:E,token:R}))}},412:function(R,E,_){var e=this&&this.__importDefault||function(R){return R&&R.__esModule?R:{default:R}};Object.defineProperty(E,"__esModule",{value:!0});const O=e(_(496)),t=_(884),D=e(_(792));E.default={widgetApi:async(R,E,_,e,t)=>{if(!/\w+\.saferoute\.ru$/.test(new URL(R).host))return"";if(R.endsWith(".html"))return(await(0,D.default)({url:R,method:"GET"})).text();_&&"ip"in _&&!_.ip&&t&&(await(0,O.default)(t)||(_.ip=t));const r=await(0,D.default)({url:R,method:E,data:_,...e,headers:{"From-Widget":"1"}}),T=await r.json();return 200===r.status?{status:r.status,data:T}:{status:r.status,code:T&&"code"in T?T.code:null}},updateOrder:async(R,{COD:E,..._},e)=>{const O=await(0,D.default)({url:"widgets/update-order",method:"POST",data:{id:R,..._,nppOption:E},...e}),r=await O.json();return O.status===t.WIDGETS_RESPONSE_STATUS_CODES.SUCCESS||O.status===t.WIDGETS_RESPONSE_STATUS_CODES.REQUEST_ERROR?{status:O.status,data:r}:{status:O.status}},confirmOrder:async(R,E)=>{const _=await(0,D.default)({url:"widgets/confirm-order",method:"POST",data:{checkoutSessId:R},...E});return _.status===t.WIDGETS_RESPONSE_STATUS_CODES.REQUEST_ERROR?{status:_.status,data:{code:(await _.json()).code}}:{status:_.status}}}},884:(R,E)=>{var _,e,O,t,D,r,T,S,a;Object.defineProperty(E,"__esModule",{value:!0}),E.ERROR_CODES=E.WIDGETS_CONFIRM_ORDER_ERRORS=E.WIDGETS_UPDATE_ORDER_ERRORS=E.WIDGETS_RESPONSE_STATUS_CODES=E.ANALYTICAL_REPORTS_TYPES=E.REPORTS_TYPES=E.BILLS_STATUSES=E.PICKUP_STATUSES=E.PICKUP_TYPES=void 0,function(R){R[R.SELF_TO_DELIVERY=1]="SELF_TO_DELIVERY",R[R.SELF_TO_MERGED_WAREHOUSE=2]="SELF_TO_MERGED_WAREHOUSE",R[R.COURIER_MERGED=3]="COURIER_MERGED",R[R.COURIER_TO_DELIVERY=4]="COURIER_TO_DELIVERY"}(_||(E.PICKUP_TYPES=_={})),function(R){R[R.NEW=1]="NEW",R[R.CONFIRMED=2]="CONFIRMED",R[R.CANCELLED=3]="CANCELLED",R[R.ERROR=4]="ERROR"}(e||(E.PICKUP_STATUSES=e={})),function(R){R[R.PAID=1]="PAID",R[R.NOT_PAID=2]="NOT_PAID",R[R.PARTIALLY_PAID=3]="PARTIALLY_PAID",R[R.DEBT=4]="DEBT"}(O||(E.BILLS_STATUSES=O={})),function(R){R[R.DAILY=1]="DAILY",R[R.MONTHLY=2]="MONTHLY"}(t||(E.REPORTS_TYPES=t={})),function(R){R[R.CONSOLIDATED=1]="CONSOLIDATED",R[R.BY_ORDERS=2]="BY_ORDERS",R[R.MARK_CODES_DISPOSAL=3]="MARK_CODES_DISPOSAL"}(D||(E.ANALYTICAL_REPORTS_TYPES=D={})),function(R){R[R.SUCCESS=200]="SUCCESS",R[R.REQUEST_ERROR=400]="REQUEST_ERROR",R[R.AUTH_ERROR=401]="AUTH_ERROR",R[R.SERVER_ERROR=500]="SERVER_ERROR"}(r||(E.WIDGETS_RESPONSE_STATUS_CODES=r={})),function(R){R[R.NO_ORDER_ID=0]="NO_ORDER_ID",R[R.ORDER_NOT_FOUND=1001]="ORDER_NOT_FOUND",R[R.INVALID_SHOP_ID=2001]="INVALID_SHOP_ID",R[R.ORDER_CREATION_ERROR=1002]="ORDER_CREATION_ERROR",R[R.ORDER_UPDATE_ERROR=1003]="ORDER_UPDATE_ERROR"}(T||(E.WIDGETS_UPDATE_ORDER_ERRORS=T={})),function(R){R[R.INVALID_SHOP_ID=2001]="INVALID_SHOP_ID",R[R.PAY_SYSTEM_TRANSACTION_CONFIRM_ERROR=7001]="PAY_SYSTEM_TRANSACTION_CONFIRM_ERROR",R[R.INVALID_SESSION_ID=7003]="INVALID_SESSION_ID"}(S||(E.WIDGETS_CONFIRM_ORDER_ERRORS=S={})),function(R){R[R.ACCOUNT_BANNED=103]="ACCOUNT_BANNED",R[R.ORDER_NOT_FOUND=1001]="ORDER_NOT_FOUND",R[R.ORDER_CREATION_ERROR=1002]="ORDER_CREATION_ERROR",R[R.ORDER_UPDATE_ERROR=1003]="ORDER_UPDATE_ERROR",R[R.ORDER_CONFIRM_ERROR=1004]="ORDER_CONFIRM_ERROR",R[R.ORDER_CANCEL_ERROR=1005]="ORDER_CANCEL_ERROR",R[R.ORDER_PICKUP_ERROR=1006]="ORDER_PICKUP_ERROR",R[R.ORDER_RETURN_ERROR=1007]="ORDER_RETURN_ERROR",R[R.ORDER_STORAGE_EXTENSION_ERROR=1008]="ORDER_STORAGE_EXTENSION_ERROR",R[R.ORDER_CLONE_ERROR=1009]="ORDER_CLONE_ERROR",R[R.ORDER_PACK_ERROR=1010]="ORDER_PACK_ERROR",R[R.ORDER_UNPACK_ERROR=1011]="ORDER_UNPACK_ERROR",R[R.ORDER_INVALID_PICKUP_DATE=1016]="ORDER_INVALID_PICKUP_DATE",R[R.ORDER_PICKUP_POINT_REQUIRED=1017]="ORDER_PICKUP_POINT_REQUIRED",R[R.ORDERS_IDS_NOT_PASSED=1020]="ORDERS_IDS_NOT_PASSED",R[R.ORDER_REQUIRED_PARAMS_NOT_PASSED=1021]="ORDER_REQUIRED_PARAMS_NOT_PASSED",R[R.ORDER_PICKUP_POINT_NOT_FOUND=1022]="ORDER_PICKUP_POINT_NOT_FOUND",R[R.ORDER_COURIER_DELIVERY_PARAMS_NOT_PASSED=1023]="ORDER_COURIER_DELIVERY_PARAMS_NOT_PASSED",R[R.ORDER_DELIVERY_TYPE_INVALID=1024]="ORDER_DELIVERY_TYPE_INVALID",R[R.USER_BANNED_BY_DELIVERY_COMPANY=1025]="USER_BANNED_BY_DELIVERY_COMPANY",R[R.INVALID_PHONE_IN_ORDER=1026]="INVALID_PHONE_IN_ORDER",R[R.ORDER_PRODUCT_NOT_FOUND=1027]="ORDER_PRODUCT_NOT_FOUND",R[R.ORDER_PRODUCTS_NAMES_MUST_BE_LATIN=1028]="ORDER_PRODUCTS_NAMES_MUST_BE_LATIN",R[R.FULL_NAME_REQUIRED_FOR_SELECTED_DELIVERY=1029]="FULL_NAME_REQUIRED_FOR_SELECTED_DELIVERY",R[R.LEAVE_AT_DOOR_NOT_SUPPORTED=1030]="LEAVE_AT_DOOR_NOT_SUPPORTED",R[R.ORDER_CONFIRM_UNAVAILABLE_FOR_USER=1031]="ORDER_CONFIRM_UNAVAILABLE_FOR_USER",R[R.ORDER_COD_AND_PREPAY_TOGETHER=1032]="ORDER_COD_AND_PREPAY_TOGETHER",R[R.ORDER_PREPAY_REQUIRED_FOR_ACQUIRING=1033]="ORDER_PREPAY_REQUIRED_FOR_ACQUIRING",R[R.ORDER_PRODUCTS_TNVED_REQUIRED=1034]="ORDER_PRODUCTS_TNVED_REQUIRED",R[R.ORDER_EDITING_UNAVAILABLE=1035]="ORDER_EDITING_UNAVAILABLE",R[R.CARGO_SPACE_BARCODES_REQUIRED=1036]="CARGO_SPACE_BARCODES_REQUIRED",R[R.ORDER_COD_NOT_AVAILABLE_FOR_USER=1037]="ORDER_COD_NOT_AVAILABLE_FOR_USER",R[R.ORDER_COD_BY_PRODUCTS_REQUIRED=1038]="ORDER_COD_BY_PRODUCTS_REQUIRED",R[R.RETURN_ORDER_INVALID_ID=1039]="RETURN_ORDER_INVALID_ID",R[R.STICKERS_GENERATION_ERROR=1041]="STICKERS_GENERATION_ERROR",R[R.ORDER_COD_NOT_AVAILABLE_FOR_LEGAL_ENTITY=1042]="ORDER_COD_NOT_AVAILABLE_FOR_LEGAL_ENTITY",R[R.INVALID_ASSEMBLY_LIST_GENERATION=1051]="INVALID_ASSEMBLY_LIST_GENERATION",R[R.ORDER_TASK_CREATION_ERROR=1061]="ORDER_TASK_CREATION_ERROR",R[R.NO_ORDER_CHANGES_FOR_TASK=1062]="NO_ORDER_CHANGES_FOR_TASK",R[R.ORDER_STORAGE_EXTENDED_ALREADY=1063]="ORDER_STORAGE_EXTENDED_ALREADY",R[R.ORDERS_WITHOUT_SHOP_NOT_AVAILABLE=1090]="ORDERS_WITHOUT_SHOP_NOT_AVAILABLE",R[R.SHOP_NOT_FOUND=2001]="SHOP_NOT_FOUND",R[R.SHOP_CREATION_ERROR=2004]="SHOP_CREATION_ERROR",R[R.SHOP_UPDATE_ERROR=2005]="SHOP_UPDATE_ERROR",R[R.SHOP_DELETE_ERROR=2006]="SHOP_DELETE_ERROR",R[R.SHOP_NO_HAS_PRODUCTS=2008]="SHOP_NO_HAS_PRODUCTS",R[R.CALCULATOR_INVALID_PRAMS=4001]="CALCULATOR_INVALID_PRAMS",R[R.COURIER_SCHEDULE_REQUEST_ERROR=5001]="COURIER_SCHEDULE_REQUEST_ERROR",R[R.PRODUCT_NOT_FOUND=6001]="PRODUCT_NOT_FOUND",R[R.PRODUCT_CREATION_ERROR=6003]="PRODUCT_CREATION_ERROR",R[R.PRODUCT_UPDATE_ERROR=6004]="PRODUCT_UPDATE_ERROR",R[R.PRODUCT_DELETE_ERROR=6005]="PRODUCT_DELETE_ERROR",R[R.PRODUCT_VENDOR_CODE_ALREADY_EXISTS=6006]="PRODUCT_VENDOR_CODE_ALREADY_EXISTS",R[R.PRODUCTS_IMPORT_ERROR=6007]="PRODUCTS_IMPORT_ERROR",R[R.WAYBILL_GENERATION_ERROR=6008]="WAYBILL_GENERATION_ERROR",R[R.WAYBILL_BOX_ID_EXCEEDS_PLACES=6009]="WAYBILL_BOX_ID_EXCEEDS_PLACES",R[R.PRODUCTS_MOVE_REPORT_GENERATION_ERROR=6010]="PRODUCTS_MOVE_REPORT_GENERATION_ERROR",R[R.PRODUCTS_MOVE_NOT_FOUND=6011]="PRODUCTS_MOVE_NOT_FOUND",R[R.BOX_NOT_FOUND=8001]="BOX_NOT_FOUND",R[R.BOX_CREATION_ERROR=8002]="BOX_CREATION_ERROR",R[R.BOX_UPDATE_ERROR=8003]="BOX_UPDATE_ERROR",R[R.BOX_DELETE_ERROR=8004]="BOX_DELETE_ERROR",R[R.CMS_API_PAH_NOT_SET=10001]="CMS_API_PAH_NOT_SET",R[R.CMS_API_ERROR=10002]="CMS_API_ERROR",R[R.KIT_NOT_FOUND=11001]="KIT_NOT_FOUND",R[R.KIT_VENDOR_CODE_ALREADY_EXISTS=11002]="KIT_VENDOR_CODE_ALREADY_EXISTS",R[R.KIT_CREATION_ERROR=11003]="KIT_CREATION_ERROR",R[R.KIT_UPDATE_ERROR=11004]="KIT_UPDATE_ERROR",R[R.KIT_DELETE_ERROR=11005]="KIT_DELETE_ERROR",R[R.PICKUP_NOT_FOUND=13001]="PICKUP_NOT_FOUND",R[R.PICKUP_CREATION_ERROR=13003]="PICKUP_CREATION_ERROR",R[R.PICKUP_FOR_DATE_ALREADY_EXISTS=13004]="PICKUP_FOR_DATE_ALREADY_EXISTS",R[R.INVALID_PICKUP_TYPE=13005]="INVALID_PICKUP_TYPE",R[R.INVALID_PICKUP_DATE=13009]="INVALID_PICKUP_DATE",R[R.PICKUP_CANCEL_ERROR=13010]="PICKUP_CANCEL_ERROR",R[R.PICKUP_CREATION_NOT_AVAILABLE_FOR_USER=13013]="PICKUP_CREATION_NOT_AVAILABLE_FOR_USER",R[R.INVALID_PICKUP_COMPANY=13014]="INVALID_PICKUP_COMPANY",R[R.WAREHOUSE_NOT_FOUND=14001]="WAREHOUSE_NOT_FOUND",R[R.WAREHOUSE_CREATION_ERROR=14002]="WAREHOUSE_CREATION_ERROR",R[R.WAREHOUSE_UPDATE_ERROR=14003]="WAREHOUSE_UPDATE_ERROR",R[R.WAREHOUSE_DELETE_ERROR=14004]="WAREHOUSE_DELETE_ERROR",R[R.WAREHOUSE_FF_ALREADY_EXISTS=14007]="WAREHOUSE_FF_ALREADY_EXISTS",R[R.INVALID_WAREHOUSE_ADDRESS=14008]="INVALID_WAREHOUSE_ADDRESS",R[R.USED_WAREHOUSE_DELETE_ERROR=14009]="USED_WAREHOUSE_DELETE_ERROR",R[R.REPORT_REQUIRED_PARAMS_NOT_PASSED=17001]="REPORT_REQUIRED_PARAMS_NOT_PASSED",R[R.REPORT_GENERATION_ERROR=17002]="REPORT_GENERATION_ERROR",R[R.AGENT_REPORT_ACCEPT_ERROR=17003]="AGENT_REPORT_ACCEPT_ERROR",R[R.INVALID_SCHEDULE_FORMAT=30001]="INVALID_SCHEDULE_FORMAT",R[R.EMPLOYEE_ACCESS_ERROR=6e4]="EMPLOYEE_ACCESS_ERROR"}(a||(E.ERROR_CODES=a={}))},740:function(R,E,_){var e=this&&this.__importDefault||function(R){return R&&R.__esModule?R:{default:R}};Object.defineProperty(E,"__esModule",{value:!0}),E.WIDGETS_CONFIRM_ORDER_ERRORS=E.WIDGETS_UPDATE_ORDER_ERRORS=E.WIDGETS_RESPONSE_STATUS_CODES=E.ANALYTICAL_REPORTS_TYPES=E.REPORTS_TYPES=E.BILLS_STATUSES=E.PICKUP_STATUSES=E.PICKUP_TYPES=E.ERROR_CODES=void 0;const O=e(_(204)),t=e(_(484)),D=e(_(412));E.default={pickups:O.default,reports:t.default,widgets:D.default};var r=_(884);Object.defineProperty(E,"ERROR_CODES",{enumerable:!0,get:function(){return r.ERROR_CODES}}),Object.defineProperty(E,"PICKUP_TYPES",{enumerable:!0,get:function(){return r.PICKUP_TYPES}}),Object.defineProperty(E,"PICKUP_STATUSES",{enumerable:!0,get:function(){return r.PICKUP_STATUSES}}),Object.defineProperty(E,"BILLS_STATUSES",{enumerable:!0,get:function(){return r.BILLS_STATUSES}}),Object.defineProperty(E,"REPORTS_TYPES",{enumerable:!0,get:function(){return r.REPORTS_TYPES}}),Object.defineProperty(E,"ANALYTICAL_REPORTS_TYPES",{enumerable:!0,get:function(){return r.ANALYTICAL_REPORTS_TYPES}}),Object.defineProperty(E,"WIDGETS_RESPONSE_STATUS_CODES",{enumerable:!0,get:function(){return r.WIDGETS_RESPONSE_STATUS_CODES}}),Object.defineProperty(E,"WIDGETS_UPDATE_ORDER_ERRORS",{enumerable:!0,get:function(){return r.WIDGETS_UPDATE_ORDER_ERRORS}}),Object.defineProperty(E,"WIDGETS_CONFIRM_ORDER_ERRORS",{enumerable:!0,get:function(){return r.WIDGETS_CONFIRM_ORDER_ERRORS}})},792:function(R,E,_){var e=this&&this.__importDefault||function(R){return R&&R.__esModule?R:{default:R}};Object.defineProperty(E,"__esModule",{value:!0}),E.prepareBoolResponse=E.prepareDataResponse=void 0;const O=e(_(832));E.default=({url:R,method:E,data:_,headers:e,token:t,shopId:D})=>{const r=new URL(R.startsWith("https://")?R:(0,O.default)("https://api.saferoute.ru/v2",R));if(("GET"===E||"DELETE"===E)&&_)for(const[R,E]of Object.entries(_))r.searchParams.set(R,E??"");return fetch(r.toString(),{method:E,body:"POST"===E?JSON.stringify(_):null,headers:{...e,..."POST"===E?{"Content-Type":"application/json"}:null,...t?{Authorization:`Bearer ${t}`}:null,...D?{"Shop-Id":String(D)}:null}})},E.prepareDataResponse=async function(R,E){const _=await R.json();return R.status<300?{status:R.status,data:_,...E?{pagination:{currentPage:Number(R.headers.get("X-Pagination-Current-Page")),pageCount:Number(R.headers.get("X-Pagination-Page-Count")),perPage:Number(R.headers.get("X-Pagination-Per-Page")),totalCount:Number(R.headers.get("X-Pagination-Total-Count"))}}:null,error:null}:_.code?{status:R.status,data:null,...E?{pagination:null}:null,error:{code:_.code,message:_.message||""}}:{status:R.status,data:null,...E?{pagination:null}:null,error:null}},E.prepareBoolResponse=async R=>{if(R.status<300)return{status:R.status,success:!0,error:null};const E=await R.json();return E.code?{status:R.status,success:!1,error:{code:E.code,message:E.message||""}}:{status:R.status,success:!1,error:null}}},696:R=>{R.exports=require("dgram")},880:R=>{R.exports=require("dns")},256:R=>{R.exports=require("net")},832:(R,E,_)=>{function e(){return function(R){var E=[];if(0===R.length)return"";if("string"!=typeof R[0])throw new TypeError("Url must be a string. Received "+R[0]);if(R[0].match(/^[^/:]+:\/*$/)&&R.length>1){var _=R.shift();R[0]=_+R[0]}R[0].match(/^file:\/\/\//)?R[0]=R[0].replace(/^([^/:]+):\/*/,"$1:///"):R[0]=R[0].replace(/^([^/:]+):\/*/,"$1://");for(var e=0;e<R.length;e++){var O=R[e];if("string"!=typeof O)throw new TypeError("Url must be a string. Received "+O);""!==O&&(e>0&&(O=O.replace(/^[\/]+/,"")),O=e<R.length-1?O.replace(/[\/]+$/,""):O.replace(/[\/]+$/,"/"),E.push(O))}var t=E.join("/"),D=(t=t.replace(/\/(\?|&|#[^!])/g,"$1")).split("?");return D.shift()+(D.length>0?"?":"")+D.join("&")}("object"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}_.r(E),_.d(E,{default:()=>e})}},E={};function _(e){var O=E[e];if(void 0!==O)return O.exports;var t=E[e]={exports:{}};return R[e].call(t.exports,t,t.exports,_),t.exports}return _.d=(R,E)=>{for(var e in E)_.o(E,e)&&!_.o(R,e)&&Object.defineProperty(R,e,{enumerable:!0,get:E[e]})},_.o=(R,E)=>Object.prototype.hasOwnProperty.call(R,E),_.r=R=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(R,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(R,"__esModule",{value:!0})},_(740)})()));
package/dist/request.d.ts CHANGED
@@ -18,6 +18,30 @@ export type APIDataResponse<D> = {
18
18
  data: null;
19
19
  error: null;
20
20
  };
21
+ export type APIDataPaginatedResponse<D> = {
22
+ status: SuccessStatuses;
23
+ data: D[];
24
+ pagination: {
25
+ currentPage: number;
26
+ pageCount: number;
27
+ perPage: number;
28
+ totalCount: number;
29
+ };
30
+ error: null;
31
+ } | {
32
+ status: ErrorWithCodeStatuses;
33
+ data: null;
34
+ pagination: null;
35
+ error: {
36
+ code: ERROR_CODES;
37
+ message: string;
38
+ };
39
+ } | {
40
+ status: ErrorWithoutCodeStatuses;
41
+ data: null;
42
+ pagination: null;
43
+ error: null;
44
+ };
21
45
  export type APIBoolResponse = {
22
46
  status: SuccessStatuses;
23
47
  success: true;
@@ -47,5 +71,6 @@ declare const _default: ({ url, method, data, headers, token, shopId, }: {
47
71
  shopId?: number | undefined;
48
72
  }) => Promise<Response>;
49
73
  export default _default;
50
- export declare const prepareDataResponse: <D>(res: Response) => Promise<APIDataResponse<D>>;
74
+ export declare function prepareDataResponse<D>(res: Response): Promise<APIDataResponse<D>>;
75
+ export declare function prepareDataResponse<D>(res: Response, paginated: true): Promise<APIDataPaginatedResponse<D>>;
51
76
  export declare const prepareBoolResponse: (res: Response) => Promise<APIBoolResponse>;
@@ -0,0 +1,58 @@
1
+ import { Warehouse } from './warehouses';
2
+ import { PICKUP_TYPES, PICKUP_STATUSES } from '../const';
3
+ /**
4
+ * Параметры запроса списка заборов
5
+ */
6
+ export type GetPickupsParams = Partial<{
7
+ archive: boolean;
8
+ page: number;
9
+ perPage: number;
10
+ }>;
11
+ /**
12
+ * Забор
13
+ */
14
+ export type Pickup = {
15
+ id: number;
16
+ type: PICKUP_TYPES;
17
+ status: PICKUP_STATUSES;
18
+ number: number | string | null;
19
+ date: string;
20
+ time: {
21
+ from: string;
22
+ to: string;
23
+ };
24
+ price: number;
25
+ file: string | null;
26
+ countOrders: number;
27
+ warehouse: Warehouse;
28
+ companyName: string;
29
+ comment: string | null;
30
+ error: string | null;
31
+ };
32
+ /**
33
+ * Параметры для создания забора
34
+ */
35
+ export type PickupCreateParams = {
36
+ warehouseId: number;
37
+ companyId: number;
38
+ type: PICKUP_TYPES.COURIER_MERGED | PICKUP_TYPES.COURIER_TO_DELIVERY;
39
+ date: string;
40
+ comment?: string | null;
41
+ };
42
+ /**
43
+ * Параметры запроса списка компаний забора
44
+ */
45
+ export type GetPickupCompaniesParams = {
46
+ warehouseId: number;
47
+ type: PICKUP_TYPES.COURIER_MERGED | PICKUP_TYPES.COURIER_TO_DELIVERY;
48
+ };
49
+ /**
50
+ * Компания забора
51
+ */
52
+ export type PickupCompany = {
53
+ id: number;
54
+ name: string;
55
+ price: number;
56
+ countFree: number;
57
+ commentAvailable: boolean;
58
+ };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Склад
3
+ */
4
+ export type Warehouse = {
5
+ id: number;
6
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "saferoute-api",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Пакет для работы с API агрегатора служб доставки SafeRoute.",
5
5
  "main": "dist/index.js",
6
6
  "files": [