@emilgroup/billing-sdk-node 1.1.0 → 1.3.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
@@ -17,11 +17,11 @@ Although this package can be used in both TypeScript and JavaScript, it is inten
17
17
  Navigate to the folder of your consuming project and run one of the following commands:
18
18
 
19
19
  ```
20
- npm install @emilgroup/billing-sdk-node@1.1.0 --save
20
+ npm install @emilgroup/billing-sdk-node@1.3.0 --save
21
21
  ```
22
22
  or
23
23
  ```
24
- yarn add @emilgroup/billing-sdk-node@1.1.0
24
+ yarn add @emilgroup/billing-sdk-node@1.3.0
25
25
  ```
26
26
 
27
27
  And then you can import `InvoicesApi`.
package/base.ts CHANGED
@@ -42,7 +42,6 @@ export const COLLECTION_FORMATS = {
42
42
  export interface LoginClass {
43
43
  accessToken: string;
44
44
  permissions: Array<string>;
45
- newPasswordRequired: boolean;
46
45
  }
47
46
 
48
47
  export enum Environment {
@@ -50,6 +49,13 @@ export enum Environment {
50
49
  Test = 'https://apiv2-test.emil.de',
51
50
  }
52
51
 
52
+ let _retry_count = 0
53
+ let _retry = null
54
+
55
+ export function resetRetry() {
56
+ _retry_count = 0
57
+ }
58
+
53
59
  /**
54
60
  *
55
61
  * @export
@@ -69,7 +75,6 @@ const NETWORK_ERROR_MESSAGE = "Network Error";
69
75
  */
70
76
  export class BaseAPI {
71
77
  protected configuration: Configuration;
72
- private lastRequestConfig?: AxiosRequestConfig;
73
78
  private username?: string;
74
79
  private password?: string;
75
80
 
@@ -182,6 +187,7 @@ export class BaseAPI {
182
187
  data: { username: username },
183
188
  withCredentials: true,
184
189
  };
190
+
185
191
  const { data: { accessToken } } = await globalAxios.request<LoginClass>(options);
186
192
 
187
193
  return accessToken;
@@ -202,13 +208,6 @@ export class BaseAPI {
202
208
  }
203
209
 
204
210
  private attachInterceptor(axios: AxiosInstance) {
205
- axios.interceptors.request.use((config) => {
206
- if (config.url?.indexOf('refresh-token') === -1) {
207
- this.lastRequestConfig = config;
208
- }
209
-
210
- return config;
211
- });
212
211
  axios.interceptors.response.use(
213
212
  (res) => {
214
213
  return res;
@@ -223,17 +222,11 @@ export class BaseAPI {
223
222
  const tokenString = await this.refreshToken();
224
223
  const accessToken = `Bearer ${tokenString}`;
225
224
 
226
- const localVarHeaderParameter = {} as any;
227
- localVarHeaderParameter['Authorization'] = accessToken;
228
-
229
- originalConfig.headers = {
230
- ...originalConfig.headers,
231
- ...localVarHeaderParameter,
232
- };
225
+ originalConfig.headers['Authorization'] = `Bearer ${accessToken}`
233
226
 
234
227
  this.configuration.accessToken = accessToken;
235
228
 
236
- return axios(originalConfig);
229
+ return axios.request(originalConfig);
237
230
  } catch (_error) {
238
231
  if (_error.response && _error.response.data) {
239
232
  return Promise.reject(_error.response.data);
@@ -244,28 +237,24 @@ export class BaseAPI {
244
237
  if (err.response.status === 403 && err.response.data) {
245
238
  return Promise.reject(err.response.data);
246
239
  }
247
- } else if (err.message === NETWORK_ERROR_MESSAGE && !originalConfig._retry) {
240
+ } else if(err.message === NETWORK_ERROR_MESSAGE
241
+ && err.isAxiosError
242
+ && originalConfig.headers.hasOwnProperty('Authorization')
243
+ && _retry_count < 4
244
+ ){
245
+ _retry_count++;
248
246
  try {
249
247
  const tokenString = await this.refreshToken();
250
248
  const accessToken = `Bearer ${tokenString}`;
251
249
 
252
- const localVarHeaderParameter = {} as any;
253
- localVarHeaderParameter['Authorization'] = accessToken;
254
-
255
- this.lastRequestConfig.headers = {
256
- ...originalConfig.headers,
257
- ...localVarHeaderParameter,
258
- };
259
-
260
- originalConfig = {
261
- ...this.lastRequestConfig,
262
- }
263
-
264
- originalConfig._retry = true;
250
+ _retry = true;
251
+ originalConfig.headers['Authorization'] = accessToken;
265
252
 
266
253
  this.configuration.accessToken = accessToken;
267
254
 
268
- return axios(originalConfig);
255
+ return axios.request({
256
+ ...originalConfig,
257
+ });
269
258
  } catch (_error) {
270
259
  if (_error.response && _error.response.data) {
271
260
  return Promise.reject(_error.response.data);
@@ -291,3 +280,4 @@ export class RequiredError extends Error {
291
280
  super(msg);
292
281
  }
293
282
  }
283
+
package/common.ts CHANGED
@@ -136,3 +136,64 @@ export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxi
136
136
  return axios.request<T, R>(axiosRequestArgs);
137
137
  };
138
138
  }
139
+
140
+ /* tslint:disable */
141
+ /* eslint-disable */
142
+ /**
143
+ * EMIL BillingService
144
+ * The EMIL BillingService API description
145
+ *
146
+ * The version of the OpenAPI document: 1.0
147
+ *
148
+ *
149
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
150
+ * https://openapi-generator.tech
151
+ * Do not edit the class manually.
152
+ */
153
+
154
+
155
+ export interface IStorageConverter<D, SD> {
156
+ toStorageData( data: D ): SD;
157
+ fromStorageData( storageData: SD ): D;
158
+ }
159
+
160
+ export interface IStorage {
161
+ get<T>( key: string, converter?: IStorageConverter<T, any> ): T | null;
162
+ set<T>( key: string, value: T, converter?: IStorageConverter<T, any> ): void;
163
+ }
164
+
165
+ export class LocalStorage implements IStorage {
166
+ readonly storage: Storage;
167
+
168
+ constructor() {
169
+ this.storage = localStorage;
170
+ }
171
+
172
+ get<T>( key: string, converter?: IStorageConverter<T, any> ): T | null {
173
+ const jsonValue = this.storage.getItem( key );
174
+ if ( jsonValue === null ) {
175
+ return null;
176
+ }
177
+ const value = JSON.parse( jsonValue );
178
+ if ( converter !== undefined ) {
179
+ return converter.fromStorageData( value );
180
+ } else {
181
+ return value as T;
182
+ }
183
+ }
184
+
185
+ set<T>( key: string, value: T, converter?: IStorageConverter<T, any> ): void {
186
+ let valueToStore: any = value;
187
+ if ( converter !== undefined ) {
188
+ valueToStore = converter.toStorageData( value );
189
+ }
190
+ const jsonValue = JSON.stringify( valueToStore );
191
+ this.storage.setItem( key, jsonValue );
192
+ }
193
+ }
194
+
195
+ let _defaultStorage: IStorage = null;
196
+
197
+ export const defaultStorage = (): IStorage => {
198
+ return _defaultStorage || (_defaultStorage = new LocalStorage());
199
+ };
@@ -53,7 +53,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
53
53
  function verb(n) { return function (v) { return step([n, v]); }; }
54
54
  function step(op) {
55
55
  if (f) throw new TypeError("Generator is already executing.");
56
- while (_) try {
56
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
57
57
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
58
58
  if (y = 0, t) op = [op[0] & 2, t.value];
59
59
  switch (op[0]) {
@@ -53,7 +53,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
53
53
  function verb(n) { return function (v) { return step([n, v]); }; }
54
54
  function step(op) {
55
55
  if (f) throw new TypeError("Generator is already executing.");
56
- while (_) try {
56
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
57
57
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
58
58
  if (y = 0, t) op = [op[0] & 2, t.value];
59
59
  switch (op[0]) {
@@ -53,7 +53,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
53
53
  function verb(n) { return function (v) { return step([n, v]); }; }
54
54
  function step(op) {
55
55
  if (f) throw new TypeError("Generator is already executing.");
56
- while (_) try {
56
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
57
57
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
58
58
  if (y = 0, t) op = [op[0] & 2, t.value];
59
59
  switch (op[0]) {
@@ -53,7 +53,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
53
53
  function verb(n) { return function (v) { return step([n, v]); }; }
54
54
  function step(op) {
55
55
  if (f) throw new TypeError("Generator is already executing.");
56
- while (_) try {
56
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
57
57
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
58
58
  if (y = 0, t) op = [op[0] & 2, t.value];
59
59
  switch (op[0]) {
@@ -53,7 +53,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
53
53
  function verb(n) { return function (v) { return step([n, v]); }; }
54
54
  function step(op) {
55
55
  if (f) throw new TypeError("Generator is already executing.");
56
- while (_) try {
56
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
57
57
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
58
58
  if (y = 0, t) op = [op[0] & 2, t.value];
59
59
  switch (op[0]) {
package/dist/base.d.ts CHANGED
@@ -25,12 +25,12 @@ export declare const COLLECTION_FORMATS: {
25
25
  export interface LoginClass {
26
26
  accessToken: string;
27
27
  permissions: Array<string>;
28
- newPasswordRequired: boolean;
29
28
  }
30
29
  export declare enum Environment {
31
30
  Production = "https://apiv2.emil.de",
32
31
  Test = "https://apiv2-test.emil.de"
33
32
  }
33
+ export declare function resetRetry(): void;
34
34
  /**
35
35
  *
36
36
  * @export
@@ -49,7 +49,6 @@ export declare class BaseAPI {
49
49
  protected basePath: string;
50
50
  protected axios: AxiosInstance;
51
51
  protected configuration: Configuration;
52
- private lastRequestConfig?;
53
52
  private username?;
54
53
  private password?;
55
54
  constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance);
package/dist/base.js CHANGED
@@ -76,7 +76,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
76
76
  function verb(n) { return function (v) { return step([n, v]); }; }
77
77
  function step(op) {
78
78
  if (f) throw new TypeError("Generator is already executing.");
79
- while (_) try {
79
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
80
80
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
81
81
  if (y = 0, t) op = [op[0] & 2, t.value];
82
82
  switch (op[0]) {
@@ -101,7 +101,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
101
101
  return (mod && mod.__esModule) ? mod : { "default": mod };
102
102
  };
103
103
  Object.defineProperty(exports, "__esModule", { value: true });
104
- exports.RequiredError = exports.BaseAPI = exports.Environment = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0;
104
+ exports.RequiredError = exports.BaseAPI = exports.resetRetry = exports.Environment = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0;
105
105
  var configuration_1 = require("./configuration");
106
106
  // Some imports not used depending on template conditions
107
107
  // @ts-ignore
@@ -130,6 +130,12 @@ var Environment;
130
130
  Environment["Production"] = "https://apiv2.emil.de";
131
131
  Environment["Test"] = "https://apiv2-test.emil.de";
132
132
  })(Environment = exports.Environment || (exports.Environment = {}));
133
+ var _retry_count = 0;
134
+ var _retry = null;
135
+ function resetRetry() {
136
+ _retry_count = 0;
137
+ }
138
+ exports.resetRetry = resetRetry;
133
139
  var NETWORK_ERROR_MESSAGE = "Network Error";
134
140
  /**
135
141
  *
@@ -303,17 +309,10 @@ var BaseAPI = /** @class */ (function () {
303
309
  };
304
310
  BaseAPI.prototype.attachInterceptor = function (axios) {
305
311
  var _this = this;
306
- axios.interceptors.request.use(function (config) {
307
- var _a;
308
- if (((_a = config.url) === null || _a === void 0 ? void 0 : _a.indexOf('refresh-token')) === -1) {
309
- _this.lastRequestConfig = config;
310
- }
311
- return config;
312
- });
313
312
  axios.interceptors.response.use(function (res) {
314
313
  return res;
315
314
  }, function (err) { return __awaiter(_this, void 0, void 0, function () {
316
- var originalConfig, tokenString, accessToken, localVarHeaderParameter, _error_1, tokenString, accessToken, localVarHeaderParameter, _error_2;
315
+ var originalConfig, tokenString, accessToken, _error_1, tokenString, accessToken, _error_2;
317
316
  return __generator(this, function (_a) {
318
317
  switch (_a.label) {
319
318
  case 0:
@@ -328,11 +327,9 @@ var BaseAPI = /** @class */ (function () {
328
327
  case 2:
329
328
  tokenString = _a.sent();
330
329
  accessToken = "Bearer ".concat(tokenString);
331
- localVarHeaderParameter = {};
332
- localVarHeaderParameter['Authorization'] = accessToken;
333
- originalConfig.headers = __assign(__assign({}, originalConfig.headers), localVarHeaderParameter);
330
+ originalConfig.headers['Authorization'] = "Bearer ".concat(accessToken);
334
331
  this.configuration.accessToken = accessToken;
335
- return [2 /*return*/, axios(originalConfig)];
332
+ return [2 /*return*/, axios.request(originalConfig)];
336
333
  case 3:
337
334
  _error_1 = _a.sent();
338
335
  if (_error_1.response && _error_1.response.data) {
@@ -345,7 +342,11 @@ var BaseAPI = /** @class */ (function () {
345
342
  }
346
343
  return [3 /*break*/, 9];
347
344
  case 5:
348
- if (!(err.message === NETWORK_ERROR_MESSAGE && !originalConfig._retry)) return [3 /*break*/, 9];
345
+ if (!(err.message === NETWORK_ERROR_MESSAGE
346
+ && err.isAxiosError
347
+ && originalConfig.headers.hasOwnProperty('Authorization')
348
+ && _retry_count < 4)) return [3 /*break*/, 9];
349
+ _retry_count++;
349
350
  _a.label = 6;
350
351
  case 6:
351
352
  _a.trys.push([6, 8, , 9]);
@@ -353,13 +354,10 @@ var BaseAPI = /** @class */ (function () {
353
354
  case 7:
354
355
  tokenString = _a.sent();
355
356
  accessToken = "Bearer ".concat(tokenString);
356
- localVarHeaderParameter = {};
357
- localVarHeaderParameter['Authorization'] = accessToken;
358
- this.lastRequestConfig.headers = __assign(__assign({}, originalConfig.headers), localVarHeaderParameter);
359
- originalConfig = __assign({}, this.lastRequestConfig);
360
- originalConfig._retry = true;
357
+ _retry = true;
358
+ originalConfig.headers['Authorization'] = accessToken;
361
359
  this.configuration.accessToken = accessToken;
362
- return [2 /*return*/, axios(originalConfig)];
360
+ return [2 /*return*/, axios.request(__assign({}, originalConfig))];
363
361
  case 8:
364
362
  _error_2 = _a.sent();
365
363
  if (_error_2.response && _error_2.response.data) {
package/dist/common.d.ts CHANGED
@@ -64,3 +64,29 @@ export declare const toPathString: (url: URL) => string;
64
64
  * @export
65
65
  */
66
66
  export declare const createRequestFunction: (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) => <T = unknown, R = AxiosResponse<T, any>>(axios?: AxiosInstance, basePath?: string) => Promise<R>;
67
+ /**
68
+ * EMIL BillingService
69
+ * The EMIL BillingService API description
70
+ *
71
+ * The version of the OpenAPI document: 1.0
72
+ *
73
+ *
74
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
75
+ * https://openapi-generator.tech
76
+ * Do not edit the class manually.
77
+ */
78
+ export interface IStorageConverter<D, SD> {
79
+ toStorageData(data: D): SD;
80
+ fromStorageData(storageData: SD): D;
81
+ }
82
+ export interface IStorage {
83
+ get<T>(key: string, converter?: IStorageConverter<T, any>): T | null;
84
+ set<T>(key: string, value: T, converter?: IStorageConverter<T, any>): void;
85
+ }
86
+ export declare class LocalStorage implements IStorage {
87
+ readonly storage: Storage;
88
+ constructor();
89
+ get<T>(key: string, converter?: IStorageConverter<T, any>): T | null;
90
+ set<T>(key: string, value: T, converter?: IStorageConverter<T, any>): void;
91
+ }
92
+ export declare const defaultStorage: () => IStorage;
package/dist/common.js CHANGED
@@ -38,7 +38,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
38
38
  function verb(n) { return function (v) { return step([n, v]); }; }
39
39
  function step(op) {
40
40
  if (f) throw new TypeError("Generator is already executing.");
41
- while (_) try {
41
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
42
42
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
43
43
  if (y = 0, t) op = [op[0] & 2, t.value];
44
44
  switch (op[0]) {
@@ -60,7 +60,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
60
60
  }
61
61
  };
62
62
  Object.defineProperty(exports, "__esModule", { value: true });
63
- exports.createRequestFunction = exports.toPathString = exports.serializeDataIfNeeded = exports.setSearchParams = exports.setOAuthToObject = exports.setBearerAuthToObject = exports.setBasicAuthToObject = exports.setApiKeyToObject = exports.assertParamExists = exports.DUMMY_BASE_URL = void 0;
63
+ exports.defaultStorage = exports.LocalStorage = exports.createRequestFunction = exports.toPathString = exports.serializeDataIfNeeded = exports.setSearchParams = exports.setOAuthToObject = exports.setBearerAuthToObject = exports.setBasicAuthToObject = exports.setApiKeyToObject = exports.assertParamExists = exports.DUMMY_BASE_URL = void 0;
64
64
  var base_1 = require("./base");
65
65
  var url_1 = require("url");
66
66
  /**
@@ -242,3 +242,36 @@ var createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configu
242
242
  };
243
243
  };
244
244
  exports.createRequestFunction = createRequestFunction;
245
+ var LocalStorage = /** @class */ (function () {
246
+ function LocalStorage() {
247
+ this.storage = localStorage;
248
+ }
249
+ LocalStorage.prototype.get = function (key, converter) {
250
+ var jsonValue = this.storage.getItem(key);
251
+ if (jsonValue === null) {
252
+ return null;
253
+ }
254
+ var value = JSON.parse(jsonValue);
255
+ if (converter !== undefined) {
256
+ return converter.fromStorageData(value);
257
+ }
258
+ else {
259
+ return value;
260
+ }
261
+ };
262
+ LocalStorage.prototype.set = function (key, value, converter) {
263
+ var valueToStore = value;
264
+ if (converter !== undefined) {
265
+ valueToStore = converter.toStorageData(value);
266
+ }
267
+ var jsonValue = JSON.stringify(valueToStore);
268
+ this.storage.setItem(key, jsonValue);
269
+ };
270
+ return LocalStorage;
271
+ }());
272
+ exports.LocalStorage = LocalStorage;
273
+ var _defaultStorage = null;
274
+ var defaultStorage = function () {
275
+ return _defaultStorage || (_defaultStorage = new LocalStorage());
276
+ };
277
+ exports.defaultStorage = defaultStorage;
@@ -32,4 +32,4 @@ export declare const CreateCustomEstimatedInvoiceRequestDtoProviderEnum: {
32
32
  readonly Squarelife: "squarelife";
33
33
  readonly Janitos: "janitos";
34
34
  };
35
- export declare type CreateCustomEstimatedInvoiceRequestDtoProviderEnum = typeof CreateCustomEstimatedInvoiceRequestDtoProviderEnum[keyof typeof CreateCustomEstimatedInvoiceRequestDtoProviderEnum];
35
+ export type CreateCustomEstimatedInvoiceRequestDtoProviderEnum = typeof CreateCustomEstimatedInvoiceRequestDtoProviderEnum[keyof typeof CreateCustomEstimatedInvoiceRequestDtoProviderEnum];
@@ -72,4 +72,4 @@ export declare const CreateInvoiceRequestDtoTypeEnum: {
72
72
  readonly Penalty: "penalty";
73
73
  readonly Other: "other";
74
74
  };
75
- export declare type CreateInvoiceRequestDtoTypeEnum = typeof CreateInvoiceRequestDtoTypeEnum[keyof typeof CreateInvoiceRequestDtoTypeEnum];
75
+ export type CreateInvoiceRequestDtoTypeEnum = typeof CreateInvoiceRequestDtoTypeEnum[keyof typeof CreateInvoiceRequestDtoTypeEnum];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emilgroup/billing-sdk-node",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "OpenAPI client for @emilgroup/billing-sdk-node",
5
5
  "author": "OpenAPI-Generator Contributors",
6
6
  "keywords": [
@@ -18,8 +18,7 @@
18
18
  "prepare": "npm run build"
19
19
  },
20
20
  "dependencies": {
21
- "axios": "^0.26.1"
22
- ,
21
+ "axios": "^0.27.2",
23
22
  "form-data": "^4.0.0",
24
23
  "url": "^0.11.0"
25
24
  },