saferoute-api 0.1.0 → 0.2.1

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
@@ -6,6 +6,7 @@
6
6
  - [Работа с API](#работа-с-api)
7
7
  - [Описание типов APIDataResponse и APIBoolResponse](#описание-типов-apidataresponse-и-apiboolresponse)
8
8
  - [APIDataResponse](#apidataresponse)
9
+ - [APIDataPaginatedResponse](#apidatapaginatedresponse)
9
10
  - [APIBoolResponse](#apiboolresponse)
10
11
  - [Авторизация, профиль и настройки](#авторизация-профиль-и-настройки)
11
12
  - [Авторизация по E-mail и паролю](#авторизация-по-e-mail-и-паролю)
@@ -119,7 +120,7 @@ yarn add saferoute-api
119
120
 
120
121
  #### APIDataResponse
121
122
 
122
- Тип для запросов, в которых сервер возвращает какие-либо данные.
123
+ Тип для запросов, в которых сервер возвращает какие-либо данные без постраничной навигации.
123
124
 
124
125
  ```typescript
125
126
  type APIDataResponse<D> =
@@ -146,6 +147,41 @@ type APIDataResponse<D> =
146
147
  };
147
148
  ```
148
149
 
150
+ Тип для запросов, в которых сервер возвращает список с постраничной навигацией.
151
+
152
+ ```typescript
153
+ type APIDataPaginatedResponse<D> =
154
+ // Получен успешный ответ от сервера
155
+ | {
156
+ status: SuccessStatuses; // HTTP-статус ответа сервера
157
+ data: D[]; // Полученный список
158
+ pagination: {
159
+ currentPage: number; // Текущая запрошенная страница
160
+ pageCount: number; // Общее количество страниц в текущем списке
161
+ perPage: number; // Количество выводимых на страницу результатов
162
+ totalCount: number; // Общее количество результатов в списке
163
+ };
164
+ error: null;
165
+ }
166
+ // От сервера получены код и текстовое описание ошибки
167
+ | {
168
+ status: ErrorWithCodeStatuses;
169
+ data: null;
170
+ pagination: null;
171
+ error: {
172
+ code: ERROR_CODES;
173
+ message: string;
174
+ };
175
+ }
176
+ // Запрос завершился ошибкой, сервер не отдал код ошибки
177
+ | {
178
+ status: ErrorWithoutCodeStatuses;
179
+ data: null;
180
+ pagination: null;
181
+ error: null;
182
+ };
183
+ ```
184
+
149
185
  #### APIBoolResponse
150
186
 
151
187
  Тип для запросов, в которых требуется вернуть результат выполнения запроса "успешно" / "не успешно".
@@ -259,21 +295,68 @@ _В разработке_
259
295
 
260
296
  ### Заборы
261
297
 
298
+ [Документация к API заборов](https://wiki.saferoute.ru/ru/api/endpoints/pickups)
299
+
262
300
  #### Получение списка заборов
263
301
 
264
- разработке_
302
+ Пример использования.
303
+
304
+ ```typescript
305
+ import api, { APIDataPaginatedResponse, GetPickupsParams, Pickup } from 'saferoute-api';
306
+
307
+ const token = '******************';
308
+ const params: GetPickupsParams = { archive: true };
309
+
310
+ const res: APIDataPaginatedResponse<Pickup> = await api.pickups.getPickups(token, params);
311
+ ```
265
312
 
266
313
  #### Создание забора
267
314
 
268
- разработке_
315
+ Пример использования.
316
+
317
+ ```typescript
318
+ import api, { APIDataResponse, PickupCreateParams, PICKUP_TYPES } from 'saferoute-api';
319
+
320
+ const token = '******************';
321
+ const params: PickupCreateParams = {
322
+ date: '2024-02-01',
323
+ type: PICKUP_TYPES.COURIER_MERGED,
324
+ companyId: 1,
325
+ warehouseId: 2,
326
+ comment: null,
327
+ };
328
+
329
+ const res: APIDataResponse<{ id: number }> = await api.pickups.createPickup(token, params);
330
+ ```
269
331
 
270
332
  #### Отмена забора
271
333
 
272
- разработке_
334
+ Пример использования.
335
+
336
+ ```typescript
337
+ import api, { APIBoolResponse } from 'saferoute-api';
338
+
339
+ const token = '******************';
340
+ const id = 15; // ID забора
341
+
342
+ const res: APIBoolResponse = await api.pickups.cancelPickup(token, id);
343
+ ```
273
344
 
274
345
  #### Получение списка компаний забора
275
346
 
276
- разработке_
347
+ Пример использования.
348
+
349
+ ```typescript
350
+ import api, { APIDataResponse, GetPickupCompaniesParams, PickupCompany, PICKUP_TYPES } from 'saferoute-api';
351
+
352
+ const token = '******************';
353
+ const params: GetPickupCompaniesParams = {
354
+ type: PICKUP_TYPES.COURIER_MERGED,
355
+ warehouseId: 1,
356
+ };
357
+
358
+ const res: APIDataResponse<PickupCompany> = await api.pickups.getPickupCompanies(token, params);
359
+ ```
277
360
 
278
361
  ### Товары
279
362
 
@@ -437,33 +520,33 @@ _В разработке_
437
520
 
438
521
  #### Список счетов
439
522
 
440
- Пример кода:
523
+ Пример использования.
441
524
 
442
525
  ```typescript
443
- import api, { APIDataResponse, GetBillsParams, Bill } from 'saferoute-api';
526
+ import api, { APIDataPaginatedResponse, GetBillsParams, Bill } from 'saferoute-api';
444
527
 
445
528
  const token = '******************';
446
529
  const params: GetBillsParams = { from: '2023-01-01', to: '2023-03-01' };
447
530
 
448
- const res: APIDataResponse<Bill[]> = await api.reports.getBills(token, params);
531
+ const res: APIDataPaginatedResponse<Bill> = await api.reports.getBills(token, params);
449
532
  ```
450
533
 
451
534
  #### Список отчётов агента/исполнителя
452
535
 
453
- Пример кода:
536
+ Пример использования.
454
537
 
455
538
  ```typescript
456
- import api, { APIDataResponse, GetAgentReportsParams, AgentReport, REPORTS_TYPES } from 'saferoute-api';
539
+ import api, { APIDataPaginatedResponse, GetAgentReportsParams, AgentReport, REPORTS_TYPES } from 'saferoute-api';
457
540
 
458
541
  const token = '******************';
459
542
  const params: GetAgentReportsParams = { from: '2023-01-01', to: '2023-03-01', type: REPORTS_TYPES.DAILY };
460
543
 
461
- const res: APIDataResponse<AgentReport[]> = await api.reports.getAgentReports(token, params);
544
+ const res: APIDataPaginatedResponse<AgentReport> = await api.reports.getAgentReports(token, params);
462
545
  ```
463
546
 
464
547
  #### Подтверждение отчёта агента
465
548
 
466
- Пример кода:
549
+ Пример использования.
467
550
 
468
551
  ```typescript
469
552
  import api, { APIBoolResponse } from 'saferoute-api';
@@ -476,20 +559,20 @@ const res: APIBoolResponse = await api.reports.confirmAgentReport(token, id);
476
559
 
477
560
  #### Список аналитических отчётов
478
561
 
479
- Пример кода:
562
+ Пример использования.
480
563
 
481
564
  ```typescript
482
- import api, { APIDataResponse, GetAnalyticalReportsParams, AnalyticalReport, ANALYTICAL_REPORTS_TYPES } from 'saferoute-api';
565
+ import api, { APIDataPaginatedResponse, GetAnalyticalReportsParams, AnalyticalReport, ANALYTICAL_REPORTS_TYPES } from 'saferoute-api';
483
566
 
484
567
  const token = '******************';
485
568
  const params: GetAnalyticalReportsParams = { from: '2023-01-01', to: '2023-03-01', type: ANALYTICAL_REPORTS_TYPES.CONSOLIDATED };
486
569
 
487
- const res: APIDataResponse<AnalyticalReport[]> = await api.reports.getAnalyticalReports(token, params);
570
+ const res: APIDataPaginatedResponse<AnalyticalReport> = await api.reports.getAnalyticalReports(token, params);
488
571
  ```
489
572
 
490
573
  #### Генерация аналитических отчётов
491
574
 
492
- Пример кода:
575
+ Пример использования.
493
576
 
494
577
  ```typescript
495
578
  import api, { APIDataResponse, AnalyticalReportGenerateParams, ANALYTICAL_REPORTS_TYPES } from 'saferoute-api';
@@ -692,6 +775,11 @@ type WidgetsConfirmOrderResponse =
692
775
 
693
776
  * `ERROR_CODES` - Коды ошибок API
694
777
 
778
+ ### Заборы
779
+
780
+ * `PICKUP_TYPES` - Типы заборов
781
+ * `PICKUP_STATUSES` - Статусы заборов
782
+
695
783
  ### Отчёты
696
784
 
697
785
  * `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.1",
4
4
  "description": "Пакет для работы с API агрегатора служб доставки SafeRoute.",
5
5
  "main": "dist/index.js",
6
6
  "files": [