saferoute-api 0.0.1 → 0.0.3

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
@@ -93,8 +93,8 @@
93
93
  - [Данные по доступным вариантам отгрузки](#данные-по-доступным-вариантам-отгрузки)
94
94
  - [Виджеты](#виджеты)
95
95
  - [apiScript](#apiScript)
96
- - [widgets/update-order](#widgets-update-order)
97
- - [widgets/confirm-order](#widgets-confirm-order)
96
+ - [widgets/update-order](#widgetsupdate-order)
97
+ - [widgets/confirm-order](#widgetsconfirm-order)
98
98
  - [Константы](#константы)
99
99
 
100
100
  ## Установка
@@ -121,12 +121,12 @@ yarn add saferoute-api
121
121
 
122
122
  Реализация API-скрипта виджетов для nodejs.
123
123
 
124
- Пример подключения с использованием NestJS.
124
+ #### Пример подключения с использованием NestJS.
125
125
 
126
126
  ```typescript
127
127
  import { Body, Controller, Get, Post, Query, HttpCode, HttpStatus, Ip } from '@nestjs/common';
128
128
 
129
- import api from 'saferoute-api';
129
+ import api, { WidgetsApiResponse } from 'saferoute-api';
130
130
 
131
131
  const token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
132
132
  const shopId = 777777;
@@ -134,13 +134,13 @@ const shopId = 777777;
134
134
  @Controller('widgets')
135
135
  export default class WidgetsController {
136
136
  @Get('api')
137
- getApiRequest(@Query() query, @Ip() ip: string) {
137
+ getApiRequest(@Query() query, @Ip() ip: string): Promise<WidgetsApiResponse> {
138
138
  return api.widgets.widgetApi(query.url, 'GET', query.data, { token, shopId }, ip);
139
139
  }
140
140
 
141
141
  @Post('api')
142
142
  @HttpCode(HttpStatus.OK)
143
- postApiRequest(@Body('url') url: string, @Body('data') data, @Ip() ip: string) {
143
+ postApiRequest(@Body('url') url: string, @Body('data') data, @Ip() ip: string): Promise<WidgetsApiResponse> {
144
144
  return api.widgets.widgetApi(url, 'POST', data, { token, shopId }, ip);
145
145
  }
146
146
  }
@@ -152,40 +152,102 @@ export default class WidgetsController {
152
152
 
153
153
  См. [изменение параметров заказа после его создания](https://wiki.saferoute.ru/ru/widgets/cart#%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2-%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5-%D0%B5%D0%B3%D0%BE-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F).
154
154
 
155
+ #### Пример использования.
156
+
155
157
  ```typescript
156
158
  import api, { WidgetsUpdateOrderResponse } from 'saferoute-api';
157
159
 
158
160
  const token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
159
161
  const shopId = 777777;
160
162
 
163
+ // ID заказа, полученный из виджета, либо возвращённый предыдущим вызовом api.widgets.updateOrder() в data.cabinetId
161
164
  const orderId = '';
162
165
 
163
166
  const res: Promise<WidgetsUpdateOrderResponse> = api.widgets.updateOrder(orderId, {
164
- status: 'confirmed',
165
- paymentMethod: 'cod',
166
- calcCOD: true,
167
- cmsId: '656565',
168
- payment: false,
167
+ status: 'confirmed', // Код статуса заказа
168
+ paymentMethod: 'cod', // Код способа оплаты заказа
169
+ COD: true, // Наличие наложенного платежа (nppOption из документации к виджету)
170
+ cmsId: '656565', // ID заказа в CMS
171
+ payment: false, // Флаг совершения оплаты
169
172
  }, { token, shopId });
170
173
  ```
171
174
 
175
+ #### Описание ответа `WidgetsUpdateOrderResponse`.
176
+
177
+ ```typescript
178
+ type WidgetsUpdateOrderResponse =
179
+ // Заказ обновлён успешно
180
+ // Если заказ был отправлен в Личный кабинет, data.cabinetId будет содержать его ID в Личном кабинете
181
+ | {
182
+ status: WIDGETS_RESPONSE_STATUS_CODES.SUCCESS;
183
+ data: {
184
+ cabinetId: number | null;
185
+ };
186
+ }
187
+ // Ошибка
188
+ // data.code содержит код ошибки (см. документацию к виджету), data.message - текстовую расшифровку (опционально)
189
+ | {
190
+ status: WIDGETS_RESPONSE_STATUS_CODES.REQUEST_ERROR;
191
+ data: {
192
+ code: WIDGETS_UPDATE_ORDER_ERRORS;
193
+ message: string;
194
+ };
195
+ }
196
+ // Ошибка авторизации - передан некорректный токен
197
+ | {
198
+ status: WIDGETS_RESPONSE_STATUS_CODES.AUTH_ERROR;
199
+ }
200
+ // Ошибка сервера - обратитесь в техподдержку
201
+ | {
202
+ status: WIDGETS_RESPONSE_STATUS_CODES.SERVER_ERROR;
203
+ };
204
+ ```
205
+
172
206
  ### widgets/confirm-order
173
207
 
174
208
  Функция подтверждения оформления заказа на сайте при оплате через эквайринг корзинного виджета.
175
209
 
176
210
  См. [встроенный эквайринг](https://wiki.saferoute.ru/ru/widgets/cart#%D0%B2%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%8D%D0%BA%D0%B2%D0%B0%D0%B9%D1%80%D0%B8%D0%BD%D0%B3).
177
211
 
212
+ #### Пример использования.
213
+
178
214
  ```typescript
179
215
  import api, { WidgetsConfirmOrderResponse } from 'saferoute-api';
180
216
 
181
217
  const token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
182
218
  const shopId = 777777;
183
219
 
220
+ // ID сессии чекаута, полученный из виджета после оформления заказа
184
221
  const checkoutSessId = '';
185
222
 
186
223
  const res: Promise<WidgetsConfirmOrderResponse> = api.widgets.confirmOrder(checkoutSessId, { token, shopId });
187
224
  ```
188
225
 
226
+ #### Описание ответа `WidgetsConfirmOrderResponse`.
227
+
228
+ ```typescript
229
+ type WidgetsConfirmOrderResponse =
230
+ // Заказ успешно подтверждён
231
+ | {
232
+ status: WIDGETS_RESPONSE_STATUS_CODES_SUCCESS;
233
+ }
234
+ // Ошибка, data.code содержит код ошибки (см. документацию к виджету)
235
+ | {
236
+ status: WIDGETS_RESPONSE_STATUS_CODES_REQUEST_ERROR;
237
+ data: {
238
+ code: WIDGETS_CONFIRM_ORDER_ERRORS;
239
+ };
240
+ }
241
+ // Ошибка авторизации - передан некорректный токен
242
+ | {
243
+ status: WIDGETS_RESPONSE_STATUS_CODES_AUTH_ERROR;
244
+ }
245
+ // Ошибка сервера - обратитесь в техподдержку
246
+ | {
247
+ status: WIDGETS_RESPONSE_STATUS_CODES_SERVER_ERROR;
248
+ };
249
+ ```
250
+
189
251
  ## Константы
190
252
 
191
253
  ### Общие
@@ -195,5 +257,5 @@ const res: Promise<WidgetsConfirmOrderResponse> = api.widgets.confirmOrder(check
195
257
  ### Виджеты
196
258
 
197
259
  * `WIDGETS_RESPONSE_STATUS_CODES` - Статусы ответа API виджета
198
- * `WIDGETS_UPDATE_ORDER_ERRORS` - Коды ошибок [API обновления заказа](#widgets-update-order) из виджета
199
- * `WIDGETS_CONFIRM_ORDER_ERRORS` - Коды ошибок [API подтверждения оформления заказа](#widgets-confirm-order) в виджете (при оплате через эквайринг виджета)
260
+ * `WIDGETS_UPDATE_ORDER_ERRORS` - Коды ошибок [API обновления заказа](#widgetsupdate-order) из виджета
261
+ * `WIDGETS_CONFIRM_ORDER_ERRORS` - Коды ошибок [API подтверждения оформления заказа](#widgetsconfirm-order) в виджете (при оплате через эквайринг виджета)
@@ -3,11 +3,11 @@ import { WidgetsApiResponse, WidgetsConfirmOrderResponse, WidgetsUpdateOrderPara
3
3
  * Обновляет заказ, переданный из виджета
4
4
  *
5
5
  * @param id ID заказа
6
- * @param calcCOD Считать ли наложенный платёж
6
+ * @param COD Наличие наложенного платежа
7
7
  * @param params Параметры, которые требуется обновить
8
8
  * @param credentials Токен аккаунта и ID магазина
9
9
  */
10
- export declare const updateOrder: (id: string | number, { calcCOD, ...params }: WidgetsUpdateOrderParams, credentials: {
10
+ export declare const updateOrder: (id: string | number, { COD, ...params }: WidgetsUpdateOrderParams, credentials: {
11
11
  token: string;
12
12
  shopId: number;
13
13
  }) => Promise<WidgetsUpdateOrderResponse>;
@@ -26,12 +26,12 @@ declare const _default: {
26
26
  token: string;
27
27
  shopId: number;
28
28
  }, ip?: string | undefined) => Promise<WidgetsApiResponse>;
29
- updateOrder: (id: string | number, { calcCOD, ...params }: Partial<{
29
+ updateOrder: (id: string | number, { COD, ...params }: Partial<{
30
30
  status: string;
31
31
  payment: boolean;
32
32
  cmsId: string | number;
33
33
  paymentMethod: string;
34
- calcCOD: boolean;
34
+ COD: boolean;
35
35
  }>, credentials: {
36
36
  token: string;
37
37
  shopId: number;
package/dist/index.d.ts CHANGED
@@ -7,12 +7,12 @@ declare const _default: {
7
7
  token: string;
8
8
  shopId: number;
9
9
  }, ip?: string | undefined) => Promise<WidgetsApiResponse>;
10
- updateOrder: (id: string | number, { calcCOD, ...params }: Partial<{
10
+ updateOrder: (id: string | number, { COD, ...params }: Partial<{
11
11
  status: string;
12
12
  payment: boolean;
13
13
  cmsId: string | number;
14
14
  paymentMethod: string;
15
- calcCOD: boolean;
15
+ COD: boolean;
16
16
  }>, credentials: {
17
17
  token: string;
18
18
  shopId: number;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(this,(()=>(()=>{"use strict";var e={496:(e,t,r)=>{const{isIP:n,isIPv4:o}=r(256),{createSocket:a}=r(696),{ADDRCONFIG:R}=r(880),{lookup:s}=r(880).promises,i=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((e=>e.source)).join("|")})$`),u=/(?![\w-]{64})((^(?=[-\w.]{1,253}\.?$)((\w{1,63}|(\w[-\w]{0,61}\w))\.?)+$)(?<!\.{2}))/;e.exports=async function e(t,r=!1){if("string"!=typeof t)return!1;if(n(t))return!(!i.test(t)||r)||async function(e){const t=a(o(e)?"udp4":"udp6");return new Promise((r=>{try{t.once("error",(()=>t.close((()=>r(!1))))).once("listening",(()=>t.close((()=>r(!0))))).unref().bind(0,e)}catch{t.close((()=>r(!1)))}}))}(t);if(!u.test(t))return!1;try{const n=await s(t,{all:!0,family:0,verbatim:!0,hints:R});if(!Array.isArray(n))return!1;for(const{address:t}of n)if(await e(t,r))return!0}catch{}return!1},e.exports.VALID_HOSTNAME=u},412:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.confirmOrder=t.updateOrder=void 0;const o=n(r(496)),a=r(884),R=n(r(792));t.updateOrder=async(e,{calcCOD:t,...r},n)=>{const o=await(0,R.default)({url:"widgets/update-order",method:"POST",data:{id:e,...r,nppOption:t},...n}),s=await o.json();return o.status===a.WIDGETS_RESPONSE_STATUS_CODES.SUCCESS||o.status===a.WIDGETS_RESPONSE_STATUS_CODES.REQUEST_ERROR?{status:o.status,data:s}:{status:o.status}},t.confirmOrder=async(e,t)=>{const r=await(0,R.default)({url:"widgets/confirm-order",method:"POST",data:{checkoutSessId:e},...t});return r.status===a.WIDGETS_RESPONSE_STATUS_CODES.REQUEST_ERROR?{status:r.status,data:{code:(await r.json()).code}}:{status:r.status}},t.default={widgetApi:async(e,t,r,n,a)=>{if(!/\w+\.saferoute\.ru$/.test(new URL(e).host))return"";if(e.endsWith(".html"))return(await(0,R.default)({url:e,method:"GET"})).text();r&&"ip"in r&&!r.ip&&a&&(await(0,o.default)(a)||(r.ip=a));const s=await(0,R.default)({url:e,method:t,data:r,...n,headers:{"From-Widget":"1"}}),i=await s.json();return 200===s.status?{status:s.status,data:i}:{status:s.status,code:i&&"code"in i?i.code:null}},updateOrder:t.updateOrder,confirmOrder:t.confirmOrder}},884:(e,t)=>{var r,n,o;Object.defineProperty(t,"__esModule",{value:!0}),t.WIDGETS_CONFIRM_ORDER_ERRORS=t.WIDGETS_UPDATE_ORDER_ERRORS=t.WIDGETS_RESPONSE_STATUS_CODES=void 0,function(e){e[e.SUCCESS=200]="SUCCESS",e[e.REQUEST_ERROR=400]="REQUEST_ERROR",e[e.AUTH_ERROR=401]="AUTH_ERROR",e[e.SERVER_ERROR=500]="SERVER_ERROR"}(r||(t.WIDGETS_RESPONSE_STATUS_CODES=r={})),function(e){e[e.NO_ORDER_ID=0]="NO_ORDER_ID",e[e.ORDER_NOT_FOUND=1001]="ORDER_NOT_FOUND",e[e.INVALID_SHOP_ID=2001]="INVALID_SHOP_ID",e[e.ORDER_CREATION_ERROR=1002]="ORDER_CREATION_ERROR",e[e.ORDER_UPDATE_ERROR=1003]="ORDER_UPDATE_ERROR"}(n||(t.WIDGETS_UPDATE_ORDER_ERRORS=n={})),function(e){e[e.INVALID_SHOP_ID=2001]="INVALID_SHOP_ID",e[e.PAY_SYSTEM_TRANSACTION_CONFIRM_ERROR=7001]="PAY_SYSTEM_TRANSACTION_CONFIRM_ERROR",e[e.INVALID_SESSION_ID=7003]="INVALID_SESSION_ID"}(o||(t.WIDGETS_CONFIRM_ORDER_ERRORS=o={}))},740:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.WIDGETS_CONFIRM_ORDER_ERRORS=t.WIDGETS_UPDATE_ORDER_ERRORS=t.WIDGETS_RESPONSE_STATUS_CODES=void 0;const o=r(884);Object.defineProperty(t,"WIDGETS_RESPONSE_STATUS_CODES",{enumerable:!0,get:function(){return o.WIDGETS_RESPONSE_STATUS_CODES}}),Object.defineProperty(t,"WIDGETS_UPDATE_ORDER_ERRORS",{enumerable:!0,get:function(){return o.WIDGETS_UPDATE_ORDER_ERRORS}}),Object.defineProperty(t,"WIDGETS_CONFIRM_ORDER_ERRORS",{enumerable:!0,get:function(){return o.WIDGETS_CONFIRM_ORDER_ERRORS}});const a=n(r(412));t.default={widgets:a.default}},792:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(r(832));t.default=({url:e,method:t,data:r,headers:n,token:a,shopId:R})=>{const s=new URL(e.startsWith("https://")?e:(0,o.default)("https://api.saferoute.ru/v2",e));if("GET"===t&&r)for(const[e,t]of Object.entries(r))s.searchParams.set(e,t??"");return fetch(s.toString(),{method:t,body:"POST"===t?JSON.stringify(r):null,headers:{...n,..."POST"===t?{"Content-Type":"application/json"}:null,...a?{Authorization:`Bearer ${a}`}:null,...R?{"Shop-Id":String(R)}:null}})}},696:e=>{e.exports=require("dgram")},880:e=>{e.exports=require("dns")},256:e=>{e.exports=require("net")},832:(e,t,r)=>{function n(){return function(e){var t=[];if(0===e.length)return"";if("string"!=typeof e[0])throw new TypeError("Url must be a string. Received "+e[0]);if(e[0].match(/^[^/:]+:\/*$/)&&e.length>1){var r=e.shift();e[0]=r+e[0]}e[0].match(/^file:\/\/\//)?e[0]=e[0].replace(/^([^/:]+):\/*/,"$1:///"):e[0]=e[0].replace(/^([^/:]+):\/*/,"$1://");for(var n=0;n<e.length;n++){var o=e[n];if("string"!=typeof o)throw new TypeError("Url must be a string. Received "+o);""!==o&&(n>0&&(o=o.replace(/^[\/]+/,"")),o=n<e.length-1?o.replace(/[\/]+$/,""):o.replace(/[\/]+$/,"/"),t.push(o))}var a=t.join("/"),R=(a=a.replace(/\/(\?|&|#[^!])/g,"$1")).split("?");return R.shift()+(R.length>0?"?":"")+R.join("&")}("object"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}r.r(t),r.d(t,{default:()=>n})}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,r),a.exports}return r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r(740)})()));
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(this,(()=>(()=>{"use strict";var e={496:(e,t,r)=>{const{isIP:n,isIPv4:o}=r(256),{createSocket:a}=r(696),{ADDRCONFIG:R}=r(880),{lookup:s}=r(880).promises,i=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((e=>e.source)).join("|")})$`),u=/(?![\w-]{64})((^(?=[-\w.]{1,253}\.?$)((\w{1,63}|(\w[-\w]{0,61}\w))\.?)+$)(?<!\.{2}))/;e.exports=async function e(t,r=!1){if("string"!=typeof t)return!1;if(n(t))return!(!i.test(t)||r)||async function(e){const t=a(o(e)?"udp4":"udp6");return new Promise((r=>{try{t.once("error",(()=>t.close((()=>r(!1))))).once("listening",(()=>t.close((()=>r(!0))))).unref().bind(0,e)}catch{t.close((()=>r(!1)))}}))}(t);if(!u.test(t))return!1;try{const n=await s(t,{all:!0,family:0,verbatim:!0,hints:R});if(!Array.isArray(n))return!1;for(const{address:t}of n)if(await e(t,r))return!0}catch{}return!1},e.exports.VALID_HOSTNAME=u},412:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.confirmOrder=t.updateOrder=void 0;const o=n(r(496)),a=r(884),R=n(r(792));t.updateOrder=async(e,{COD:t,...r},n)=>{const o=await(0,R.default)({url:"widgets/update-order",method:"POST",data:{id:e,...r,nppOption:t},...n}),s=await o.json();return o.status===a.WIDGETS_RESPONSE_STATUS_CODES.SUCCESS||o.status===a.WIDGETS_RESPONSE_STATUS_CODES.REQUEST_ERROR?{status:o.status,data:s}:{status:o.status}},t.confirmOrder=async(e,t)=>{const r=await(0,R.default)({url:"widgets/confirm-order",method:"POST",data:{checkoutSessId:e},...t});return r.status===a.WIDGETS_RESPONSE_STATUS_CODES.REQUEST_ERROR?{status:r.status,data:{code:(await r.json()).code}}:{status:r.status}},t.default={widgetApi:async(e,t,r,n,a)=>{if(!/\w+\.saferoute\.ru$/.test(new URL(e).host))return"";if(e.endsWith(".html"))return(await(0,R.default)({url:e,method:"GET"})).text();r&&"ip"in r&&!r.ip&&a&&(await(0,o.default)(a)||(r.ip=a));const s=await(0,R.default)({url:e,method:t,data:r,...n,headers:{"From-Widget":"1"}}),i=await s.json();return 200===s.status?{status:s.status,data:i}:{status:s.status,code:i&&"code"in i?i.code:null}},updateOrder:t.updateOrder,confirmOrder:t.confirmOrder}},884:(e,t)=>{var r,n,o;Object.defineProperty(t,"__esModule",{value:!0}),t.WIDGETS_CONFIRM_ORDER_ERRORS=t.WIDGETS_UPDATE_ORDER_ERRORS=t.WIDGETS_RESPONSE_STATUS_CODES=void 0,function(e){e[e.SUCCESS=200]="SUCCESS",e[e.REQUEST_ERROR=400]="REQUEST_ERROR",e[e.AUTH_ERROR=401]="AUTH_ERROR",e[e.SERVER_ERROR=500]="SERVER_ERROR"}(r||(t.WIDGETS_RESPONSE_STATUS_CODES=r={})),function(e){e[e.NO_ORDER_ID=0]="NO_ORDER_ID",e[e.ORDER_NOT_FOUND=1001]="ORDER_NOT_FOUND",e[e.INVALID_SHOP_ID=2001]="INVALID_SHOP_ID",e[e.ORDER_CREATION_ERROR=1002]="ORDER_CREATION_ERROR",e[e.ORDER_UPDATE_ERROR=1003]="ORDER_UPDATE_ERROR"}(n||(t.WIDGETS_UPDATE_ORDER_ERRORS=n={})),function(e){e[e.INVALID_SHOP_ID=2001]="INVALID_SHOP_ID",e[e.PAY_SYSTEM_TRANSACTION_CONFIRM_ERROR=7001]="PAY_SYSTEM_TRANSACTION_CONFIRM_ERROR",e[e.INVALID_SESSION_ID=7003]="INVALID_SESSION_ID"}(o||(t.WIDGETS_CONFIRM_ORDER_ERRORS=o={}))},740:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.WIDGETS_CONFIRM_ORDER_ERRORS=t.WIDGETS_UPDATE_ORDER_ERRORS=t.WIDGETS_RESPONSE_STATUS_CODES=void 0;const o=r(884);Object.defineProperty(t,"WIDGETS_RESPONSE_STATUS_CODES",{enumerable:!0,get:function(){return o.WIDGETS_RESPONSE_STATUS_CODES}}),Object.defineProperty(t,"WIDGETS_UPDATE_ORDER_ERRORS",{enumerable:!0,get:function(){return o.WIDGETS_UPDATE_ORDER_ERRORS}}),Object.defineProperty(t,"WIDGETS_CONFIRM_ORDER_ERRORS",{enumerable:!0,get:function(){return o.WIDGETS_CONFIRM_ORDER_ERRORS}});const a=n(r(412));t.default={widgets:a.default}},792:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(r(832));t.default=({url:e,method:t,data:r,headers:n,token:a,shopId:R})=>{const s=new URL(e.startsWith("https://")?e:(0,o.default)("https://api.saferoute.ru/v2",e));if("GET"===t&&r)for(const[e,t]of Object.entries(r))s.searchParams.set(e,t??"");return fetch(s.toString(),{method:t,body:"POST"===t?JSON.stringify(r):null,headers:{...n,..."POST"===t?{"Content-Type":"application/json"}:null,...a?{Authorization:`Bearer ${a}`}:null,...R?{"Shop-Id":String(R)}:null}})}},696:e=>{e.exports=require("dgram")},880:e=>{e.exports=require("dns")},256:e=>{e.exports=require("net")},832:(e,t,r)=>{function n(){return function(e){var t=[];if(0===e.length)return"";if("string"!=typeof e[0])throw new TypeError("Url must be a string. Received "+e[0]);if(e[0].match(/^[^/:]+:\/*$/)&&e.length>1){var r=e.shift();e[0]=r+e[0]}e[0].match(/^file:\/\/\//)?e[0]=e[0].replace(/^([^/:]+):\/*/,"$1:///"):e[0]=e[0].replace(/^([^/:]+):\/*/,"$1://");for(var n=0;n<e.length;n++){var o=e[n];if("string"!=typeof o)throw new TypeError("Url must be a string. Received "+o);""!==o&&(n>0&&(o=o.replace(/^[\/]+/,"")),o=n<e.length-1?o.replace(/[\/]+$/,""):o.replace(/[\/]+$/,"/"),t.push(o))}var a=t.join("/"),R=(a=a.replace(/\/(\?|&|#[^!])/g,"$1")).split("?");return R.shift()+(R.length>0?"?":"")+R.join("&")}("object"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}r.r(t),r.d(t,{default:()=>n})}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,r),a.exports}return r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r(740)})()));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "saferoute-api",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "Пакет для работы с API агрегатора служб доставки SafeRoute.",
5
5
  "main": "dist/index.js",
6
6
  "files": [