@smess/networking 1.0.4 → 1.0.6

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.
Files changed (45) hide show
  1. package/dist/index.d.ts +9 -9
  2. package/dist/index.js +11 -31
  3. package/dist/scripts/real-test.js +60 -65
  4. package/dist/src/core/axios.d.ts +5 -12
  5. package/dist/src/core/axios.js +21 -24
  6. package/dist/src/core/axios.observable.d.ts +2 -2
  7. package/dist/src/core/axios.observable.js +14 -17
  8. package/dist/src/core/base.provider.advanced.test.js +3 -5
  9. package/dist/src/core/base.provider.d.ts +1 -1
  10. package/dist/src/core/base.provider.js +6 -6
  11. package/dist/src/core/base.provider.test.js +3 -5
  12. package/dist/src/core/base.service.wrapper.advanced.test.js +9 -11
  13. package/dist/src/core/base.service.wrapper.d.ts +1 -1
  14. package/dist/src/core/base.service.wrapper.js +3 -7
  15. package/dist/src/core/base.service.wrapper.test.js +6 -8
  16. package/dist/src/core/rx.http.service.d.ts +5 -12
  17. package/dist/src/core/rx.http.service.js +21 -24
  18. package/dist/src/services/auth.service.d.ts +2 -2
  19. package/dist/src/services/auth.service.js +10 -15
  20. package/dist/src/services/auth.service.test.js +37 -39
  21. package/dist/src/services/customer.service.d.ts +2 -2
  22. package/dist/src/services/customer.service.js +9 -14
  23. package/dist/src/services/customer.service.test.js +23 -25
  24. package/dist/src/services/logger.service.js +4 -8
  25. package/dist/src/services/logger.service.test.js +16 -18
  26. package/dist/src/services/order.service.d.ts +2 -2
  27. package/dist/src/services/order.service.js +9 -14
  28. package/dist/src/services/order.service.test.js +41 -43
  29. package/dist/src/services/product.service.d.ts +6 -6
  30. package/dist/src/services/product.service.js +4 -9
  31. package/dist/src/services/product.service.test.js +20 -21
  32. package/dist/src/services/smess.service.d.ts +2 -2
  33. package/dist/src/services/smess.service.js +26 -34
  34. package/dist/src/services/smess.service.test.js +21 -24
  35. package/dist/src/services/store.service.d.ts +2 -2
  36. package/dist/src/services/store.service.js +9 -14
  37. package/dist/src/services/store.service.test.js +35 -37
  38. package/dist/src/services/user.service.d.ts +5 -5
  39. package/dist/src/services/user.service.js +4 -9
  40. package/dist/src/services/user.service.test.js +17 -18
  41. package/dist/src/types/types.js +6 -13
  42. package/dist/src/types/types.test.js +5 -7
  43. package/dist/src/utils/networking-import.js +3 -43
  44. package/dist/src/utils/rxjs-import.js +5 -34
  45. package/package.json +1 -1
@@ -1,33 +1,31 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const logger_service_1 = require("./logger.service");
1
+ import { $logger, LogLevel } from './logger.service.js';
4
2
  describe('LoggerService', () => {
5
3
  beforeEach(() => {
6
- logger_service_1.$logger.clearLogs();
7
- logger_service_1.$logger.setLogLevel(logger_service_1.LogLevel.DEBUG);
4
+ $logger.clearLogs();
5
+ $logger.setLogLevel(LogLevel.DEBUG);
8
6
  });
9
7
  it('should log info', () => {
10
- logger_service_1.$logger.info('info message', { foo: 1 }, 'test');
11
- const logs = logger_service_1.$logger.getLogs();
12
- expect(logs[0].level).toBe(logger_service_1.LogLevel.INFO);
8
+ $logger.info('info message', { foo: 1 }, 'test');
9
+ const logs = $logger.getLogs();
10
+ expect(logs[0].level).toBe(LogLevel.INFO);
13
11
  expect(logs[0].message).toBe('info message');
14
12
  expect(logs[0].data).toEqual({ foo: 1 });
15
13
  expect(logs[0].context).toBe('test');
16
14
  });
17
15
  it('should log warn and error', () => {
18
- logger_service_1.$logger.warn('warn message');
19
- logger_service_1.$logger.error('error message', { bar: 2 });
20
- const logs = logger_service_1.$logger.getLogs();
21
- expect(logs[0].level).toBe(logger_service_1.LogLevel.WARN);
22
- expect(logs[1].level).toBe(logger_service_1.LogLevel.ERROR);
16
+ $logger.warn('warn message');
17
+ $logger.error('error message', { bar: 2 });
18
+ const logs = $logger.getLogs();
19
+ expect(logs[0].level).toBe(LogLevel.WARN);
20
+ expect(logs[1].level).toBe(LogLevel.ERROR);
23
21
  expect(logs[1].data).toEqual({ bar: 2 });
24
22
  });
25
23
  it('should respect log level', () => {
26
- logger_service_1.$logger.setLogLevel(logger_service_1.LogLevel.ERROR);
27
- logger_service_1.$logger.info('should not log');
28
- logger_service_1.$logger.error('should log');
29
- const logs = logger_service_1.$logger.getLogs();
24
+ $logger.setLogLevel(LogLevel.ERROR);
25
+ $logger.info('should not log');
26
+ $logger.error('should log');
27
+ const logs = $logger.getLogs();
30
28
  expect(logs.length).toBe(1);
31
- expect(logs[0].level).toBe(logger_service_1.LogLevel.ERROR);
29
+ expect(logs[0].level).toBe(LogLevel.ERROR);
32
30
  });
33
31
  });
@@ -1,5 +1,5 @@
1
- import { ProviderType, NetworkingConfig, NetworkingUIEventWrapped, HttpResponse } from '../types/types';
2
- import { SmessService } from './smess.service';
1
+ import { ProviderType, NetworkingConfig, NetworkingUIEventWrapped, HttpResponse } from '../types/types.js';
2
+ import { SmessService } from './smess.service.js';
3
3
  import { BehaviorSubject, Observable } from 'rxjs';
4
4
  export type OrderTarget = 'order-list' | 'order-create' | 'order-delete' | 'order-get-draft' | 'order-update' | 'order-get';
5
5
  export interface CreateOrderRequest extends UpdateOrderRequest {
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OrderService = exports.OrderProvider = void 0;
4
- const smess_service_1 = require("./smess.service");
5
- class OrderProvider {
1
+ import { Accept, SMESSHeader, SmessService } from './smess.service.js';
2
+ export class OrderProvider {
6
3
  constructor(config, target, $authToken) {
7
4
  this.config = config;
8
5
  this.target = target;
@@ -44,33 +41,32 @@ class OrderProvider {
44
41
  }
45
42
  }
46
43
  get headers() {
47
- let headers = smess_service_1.SmessService.getHeaders(smess_service_1.Accept.V1, this.$authToken.value);
44
+ let headers = SmessService.getHeaders(Accept.V1, this.$authToken.value);
48
45
  if (this.config.clientId) {
49
- headers[smess_service_1.SMESSHeader.ClientId] = this.config.clientId;
46
+ headers[SMESSHeader.ClientId] = this.config.clientId;
50
47
  }
51
48
  if (this.config.apiKey) {
52
- headers[smess_service_1.SMESSHeader.ApiKey] = this.config.apiKey;
49
+ headers[SMESSHeader.ApiKey] = this.config.apiKey;
53
50
  }
54
- return smess_service_1.SmessService.filterHeaders(headers);
51
+ return SmessService.filterHeaders(headers);
55
52
  }
56
53
  getPath(...queryParams) {
57
54
  let definedPath = this.path;
58
55
  const params = definedPath.match(/\$\{(.+?)\}/g);
59
- params === null || params === void 0 ? void 0 : params.forEach((value, index) => {
56
+ params?.forEach((value, index) => {
60
57
  definedPath = definedPath.replace(value, String(queryParams[index]));
61
58
  });
62
59
  return definedPath;
63
60
  }
64
61
  }
65
- exports.OrderProvider = OrderProvider;
66
- class OrderService {
62
+ export class OrderService {
67
63
  constructor(config, $authToken) {
68
64
  this.config = config;
69
65
  this.$authToken = $authToken;
70
66
  }
71
67
  provider(target) {
72
68
  const targetWrapper = new OrderProvider(this.config, target, this.$authToken);
73
- return new smess_service_1.SmessService(targetWrapper);
69
+ return new SmessService(targetWrapper);
74
70
  }
75
71
  list() {
76
72
  return this.provider('order-list').request();
@@ -91,4 +87,3 @@ class OrderService {
91
87
  return this.provider('order-get').request(null, undefined, id);
92
88
  }
93
89
  }
94
- exports.OrderService = OrderService;
@@ -1,8 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const order_service_1 = require("./order.service");
4
- const types_1 = require("../types/types");
5
- const rxjs_1 = require("rxjs");
1
+ import { OrderService } from './order.service.js';
2
+ import { NetworkingUIEventWrapped, AlertModel } from '../types/types.js';
3
+ import { of, BehaviorSubject } from 'rxjs';
6
4
  describe('OrderService', () => {
7
5
  const config = {
8
6
  baseUrl: 'https://api.example.com',
@@ -13,25 +11,25 @@ describe('OrderService', () => {
13
11
  let service;
14
12
  let $authToken;
15
13
  beforeEach(() => {
16
- $authToken = new rxjs_1.BehaviorSubject(null);
17
- service = new order_service_1.OrderService(config, $authToken);
14
+ $authToken = new BehaviorSubject(null);
15
+ service = new OrderService(config, $authToken);
18
16
  });
19
17
  it('list success', async () => {
20
18
  const response = { data: [{ id: '1', status: 'draft' }] };
21
19
  jest.spyOn(service, 'provider').mockReturnValue({
22
- request: () => (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.succeeded(response)),
20
+ request: () => of(NetworkingUIEventWrapped.succeeded(response)),
23
21
  });
24
22
  const result = await service.list().toPromise();
25
- expect(result === null || result === void 0 ? void 0 : result.hasSuccess).toBe(true);
26
- expect(result === null || result === void 0 ? void 0 : result.response).toEqual(response);
23
+ expect(result?.hasSuccess).toBe(true);
24
+ expect(result?.response).toEqual(response);
27
25
  });
28
26
  it('list error', async () => {
29
27
  jest.spyOn(service, 'provider').mockReturnValue({
30
- request: () => (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.failed(types_1.AlertModel.default())),
28
+ request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
31
29
  });
32
30
  const result = await service.list().toPromise();
33
- expect(result === null || result === void 0 ? void 0 : result.hasFailed).toBe(true);
34
- expect(result === null || result === void 0 ? void 0 : result.alertModel).toBeInstanceOf(types_1.AlertModel);
31
+ expect(result?.hasFailed).toBe(true);
32
+ expect(result?.alertModel).toBeInstanceOf(AlertModel);
35
33
  });
36
34
  it('create success', async () => {
37
35
  const payload = {
@@ -40,11 +38,11 @@ describe('OrderService', () => {
40
38
  };
41
39
  const response = { data: { id: '1', status: 'created' } };
42
40
  jest.spyOn(service, 'provider').mockReturnValue({
43
- request: () => (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.succeeded(response)),
41
+ request: () => of(NetworkingUIEventWrapped.succeeded(response)),
44
42
  });
45
43
  const result = await service.create(payload).toPromise();
46
- expect(result === null || result === void 0 ? void 0 : result.hasSuccess).toBe(true);
47
- expect(result === null || result === void 0 ? void 0 : result.response).toEqual(response);
44
+ expect(result?.hasSuccess).toBe(true);
45
+ expect(result?.response).toEqual(response);
48
46
  });
49
47
  it('create error', async () => {
50
48
  const payload = {
@@ -52,45 +50,45 @@ describe('OrderService', () => {
52
50
  order_items: [],
53
51
  };
54
52
  jest.spyOn(service, 'provider').mockReturnValue({
55
- request: () => (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.failed(types_1.AlertModel.default())),
53
+ request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
56
54
  });
57
55
  const result = await service.create(payload).toPromise();
58
- expect(result === null || result === void 0 ? void 0 : result.hasFailed).toBe(true);
59
- expect(result === null || result === void 0 ? void 0 : result.alertModel).toBeInstanceOf(types_1.AlertModel);
56
+ expect(result?.hasFailed).toBe(true);
57
+ expect(result?.alertModel).toBeInstanceOf(AlertModel);
60
58
  });
61
59
  it('delete success', async () => {
62
60
  const response = { data: { id: '1', status: 'deleted' } };
63
61
  jest.spyOn(service, 'provider').mockReturnValue({
64
- request: (_payload, _mockResponse, id) => (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.succeeded(response)),
62
+ request: (_payload, _mockResponse, id) => of(NetworkingUIEventWrapped.succeeded(response)),
65
63
  });
66
64
  const result = await service.delete('1').toPromise();
67
- expect(result === null || result === void 0 ? void 0 : result.hasSuccess).toBe(true);
68
- expect(result === null || result === void 0 ? void 0 : result.response).toEqual(response);
65
+ expect(result?.hasSuccess).toBe(true);
66
+ expect(result?.response).toEqual(response);
69
67
  });
70
68
  it('delete error', async () => {
71
69
  jest.spyOn(service, 'provider').mockReturnValue({
72
- request: (_payload, _mockResponse, id) => (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.failed(types_1.AlertModel.default())),
70
+ request: (_payload, _mockResponse, id) => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
73
71
  });
74
72
  const result = await service.delete('1').toPromise();
75
- expect(result === null || result === void 0 ? void 0 : result.hasFailed).toBe(true);
76
- expect(result === null || result === void 0 ? void 0 : result.alertModel).toBeInstanceOf(types_1.AlertModel);
73
+ expect(result?.hasFailed).toBe(true);
74
+ expect(result?.alertModel).toBeInstanceOf(AlertModel);
77
75
  });
78
76
  it('getDraft success', async () => {
79
77
  const response = { data: { id: 'draft', status: 'draft' } };
80
78
  jest.spyOn(service, 'provider').mockReturnValue({
81
- request: () => (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.succeeded(response)),
79
+ request: () => of(NetworkingUIEventWrapped.succeeded(response)),
82
80
  });
83
81
  const result = await service.getDraft().toPromise();
84
- expect(result === null || result === void 0 ? void 0 : result.hasSuccess).toBe(true);
85
- expect(result === null || result === void 0 ? void 0 : result.response).toEqual(response);
82
+ expect(result?.hasSuccess).toBe(true);
83
+ expect(result?.response).toEqual(response);
86
84
  });
87
85
  it('getDraft error', async () => {
88
86
  jest.spyOn(service, 'provider').mockReturnValue({
89
- request: () => (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.failed(types_1.AlertModel.default())),
87
+ request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
90
88
  });
91
89
  const result = await service.getDraft().toPromise();
92
- expect(result === null || result === void 0 ? void 0 : result.hasFailed).toBe(true);
93
- expect(result === null || result === void 0 ? void 0 : result.alertModel).toBeInstanceOf(types_1.AlertModel);
90
+ expect(result?.hasFailed).toBe(true);
91
+ expect(result?.alertModel).toBeInstanceOf(AlertModel);
94
92
  });
95
93
  it('update success', async () => {
96
94
  const payload = {
@@ -99,11 +97,11 @@ describe('OrderService', () => {
99
97
  };
100
98
  const response = { data: { id: '1', status: 'updated' } };
101
99
  jest.spyOn(service, 'provider').mockReturnValue({
102
- request: (_payload, _mockResponse, id) => (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.succeeded(response)),
100
+ request: (_payload, _mockResponse, id) => of(NetworkingUIEventWrapped.succeeded(response)),
103
101
  });
104
102
  const result = await service.update('1', payload).toPromise();
105
- expect(result === null || result === void 0 ? void 0 : result.hasSuccess).toBe(true);
106
- expect(result === null || result === void 0 ? void 0 : result.response).toEqual(response);
103
+ expect(result?.hasSuccess).toBe(true);
104
+ expect(result?.response).toEqual(response);
107
105
  });
108
106
  it('update error', async () => {
109
107
  const payload = {
@@ -111,27 +109,27 @@ describe('OrderService', () => {
111
109
  order_items: [],
112
110
  };
113
111
  jest.spyOn(service, 'provider').mockReturnValue({
114
- request: (_payload, _mockResponse, id) => (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.failed(types_1.AlertModel.default())),
112
+ request: (_payload, _mockResponse, id) => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
115
113
  });
116
114
  const result = await service.update('1', payload).toPromise();
117
- expect(result === null || result === void 0 ? void 0 : result.hasFailed).toBe(true);
118
- expect(result === null || result === void 0 ? void 0 : result.alertModel).toBeInstanceOf(types_1.AlertModel);
115
+ expect(result?.hasFailed).toBe(true);
116
+ expect(result?.alertModel).toBeInstanceOf(AlertModel);
119
117
  });
120
118
  it('get success', async () => {
121
119
  const response = { data: { id: '1', status: 'fetched' } };
122
120
  jest.spyOn(service, 'provider').mockReturnValue({
123
- request: (_payload, _mockResponse, id) => (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.succeeded(response)),
121
+ request: (_payload, _mockResponse, id) => of(NetworkingUIEventWrapped.succeeded(response)),
124
122
  });
125
123
  const result = await service.get('1').toPromise();
126
- expect(result === null || result === void 0 ? void 0 : result.hasSuccess).toBe(true);
127
- expect(result === null || result === void 0 ? void 0 : result.response).toEqual(response);
124
+ expect(result?.hasSuccess).toBe(true);
125
+ expect(result?.response).toEqual(response);
128
126
  });
129
127
  it('get error', async () => {
130
128
  jest.spyOn(service, 'provider').mockReturnValue({
131
- request: (_payload, _mockResponse, id) => (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.failed(types_1.AlertModel.default())),
129
+ request: (_payload, _mockResponse, id) => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
132
130
  });
133
131
  const result = await service.get('1').toPromise();
134
- expect(result === null || result === void 0 ? void 0 : result.hasFailed).toBe(true);
135
- expect(result === null || result === void 0 ? void 0 : result.alertModel).toBeInstanceOf(types_1.AlertModel);
132
+ expect(result?.hasFailed).toBe(true);
133
+ expect(result?.alertModel).toBeInstanceOf(AlertModel);
136
134
  });
137
135
  });
@@ -1,6 +1,6 @@
1
- import { BaseProvider } from '../core/base.provider';
2
- import { BaseServiceWrapper } from '../core/base.service.wrapper';
3
- import { NetworkingConfig } from '../types/types';
1
+ import { BaseProvider } from '../core/base.provider.js';
2
+ import { BaseServiceWrapper } from '../core/base.service.wrapper.js';
3
+ import { NetworkingConfig } from '../types/types.js';
4
4
  export interface Product {
5
5
  id: number;
6
6
  name: string;
@@ -15,7 +15,7 @@ export declare class ProductProvider extends BaseProvider {
15
15
  export declare class ProductService extends BaseServiceWrapper<ProductProvider> {
16
16
  private config;
17
17
  constructor(config: NetworkingConfig, productId?: number, method?: string);
18
- fetchProductById(id: number): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<Product>>;
19
- fetchAllProducts(): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<Product[]>>;
20
- createProduct(product: Omit<Product, 'id'>): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<Product>>;
18
+ fetchProductById(id: number): import("rxjs").Observable<import("../types/types.js").NetworkingUIEventWrapped<Product>>;
19
+ fetchAllProducts(): import("rxjs").Observable<import("../types/types.js").NetworkingUIEventWrapped<Product[]>>;
20
+ createProduct(product: Omit<Product, 'id'>): import("rxjs").Observable<import("../types/types.js").NetworkingUIEventWrapped<Product>>;
21
21
  }
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProductService = exports.ProductProvider = void 0;
4
- const base_provider_1 = require("../core/base.provider");
5
- const base_service_wrapper_1 = require("../core/base.service.wrapper");
1
+ import { BaseProvider } from '../core/base.provider.js';
2
+ import { BaseServiceWrapper } from '../core/base.service.wrapper.js';
6
3
  // ProductProvider implements ProviderType for product endpoints
7
- class ProductProvider extends base_provider_1.BaseProvider {
4
+ export class ProductProvider extends BaseProvider {
8
5
  constructor(config, { productId, method } = {}) {
9
6
  super({
10
7
  config,
@@ -15,9 +12,8 @@ class ProductProvider extends base_provider_1.BaseProvider {
15
12
  });
16
13
  }
17
14
  }
18
- exports.ProductProvider = ProductProvider;
19
15
  // ProductService provides high-level methods for product API
20
- class ProductService extends base_service_wrapper_1.BaseServiceWrapper {
16
+ export class ProductService extends BaseServiceWrapper {
21
17
  constructor(config, productId, method) {
22
18
  super(new ProductProvider(config, { productId, method }));
23
19
  this.config = config;
@@ -38,7 +34,6 @@ class ProductService extends base_service_wrapper_1.BaseServiceWrapper {
38
34
  return this.request(product);
39
35
  }
40
36
  }
41
- exports.ProductService = ProductService;
42
37
  // Example usage:
43
38
  // setNetworkingConfig({ baseUrl: 'https://fakestoreapi.com', isProd: false });
44
39
  // const productService = new ProductService();
@@ -1,9 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const product_service_1 = require("./product.service");
4
- const types_1 = require("../types/types");
5
- const rxjs_1 = require("rxjs");
6
- const base_service_wrapper_1 = require("../core/base.service.wrapper");
1
+ import { ProductService } from './product.service.js';
2
+ import { NetworkingUIEventWrapped } from '../types/types.js';
3
+ import { of, throwError } from 'rxjs';
4
+ import { BaseServiceWrapper } from '../core/base.service.wrapper.js';
7
5
  describe('ProductService', () => {
8
6
  const config = {
9
7
  baseUrl: 'https://jsonplaceholder.typicode.com',
@@ -14,37 +12,38 @@ describe('ProductService', () => {
14
12
  const product = { id: 1, name: 'Product', price: 10 };
15
13
  let requestSpy;
16
14
  beforeEach(() => {
17
- requestSpy = jest.spyOn(base_service_wrapper_1.BaseServiceWrapper.prototype, 'request').mockImplementation(() => (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.succeeded(product)));
15
+ requestSpy = jest.spyOn(BaseServiceWrapper.prototype, 'request').mockImplementation(() => of(NetworkingUIEventWrapped.succeeded(product)));
18
16
  });
19
17
  afterEach(() => {
20
18
  requestSpy.mockRestore();
21
19
  });
22
- it('should fetch product by id', done => {
23
- const service = new product_service_1.ProductService(config, 1);
24
- service.fetchProductById(1).subscribe(result => {
20
+ it('should fetch product by id', (done) => {
21
+ const service = new ProductService(config, 1);
22
+ service.fetchProductById(1).subscribe((result) => {
25
23
  expect(result.response).toEqual(product);
26
24
  done();
27
25
  });
28
26
  });
29
- it('should fetch all products', done => {
30
- const service = new product_service_1.ProductService(config);
31
- service.fetchAllProducts().subscribe(result => {
27
+ it('should fetch all products', (done) => {
28
+ const service = new ProductService(config);
29
+ service.fetchAllProducts().subscribe((result) => {
32
30
  expect(result.response).toEqual(product);
33
31
  done();
34
32
  });
35
33
  });
36
- it('should create a product', done => {
37
- const service = new product_service_1.ProductService(config);
38
- service.createProduct({ name: 'New Product', price: 99.99 }).subscribe(result => {
34
+ it('should create a product', (done) => {
35
+ const service = new ProductService(config);
36
+ service.createProduct({ name: 'New Product', price: 99.99 }).subscribe((result) => {
39
37
  expect(result.response).toEqual(product);
40
38
  done();
41
39
  });
42
40
  });
43
- it('request should handle error', done => {
44
- requestSpy.mockImplementationOnce(() => (0, rxjs_1.throwError)(() => new Error('Test error')));
45
- const service = new product_service_1.ProductService(config);
46
- service.request('error').subscribe({
47
- error: err => {
41
+ it('request should handle error', (done) => {
42
+ requestSpy.mockImplementationOnce(() => throwError(() => new Error('Test error')));
43
+ const service = new ProductService(config);
44
+ // Simulate error by calling a method that uses request
45
+ service.fetchProductById(1).subscribe({
46
+ error: (err) => {
48
47
  expect(err).toBeInstanceOf(Error);
49
48
  expect(err.message).toBe('Test error');
50
49
  done();
@@ -1,5 +1,5 @@
1
- import { HeaderType, NetworkingUIEventWrapped, ProviderType } from '../types/types';
2
- import { Observable } from '../utils/rxjs-import';
1
+ import { ProviderType, NetworkingUIEventWrapped, HeaderType } from '../types/types.js';
2
+ import { Observable } from '../utils/rxjs-import.js';
3
3
  export declare enum SMESSHeader {
4
4
  ContentType = "Content-Type",
5
5
  Authorization = "Authorization",
@@ -1,27 +1,21 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SmessService = exports.Accept = exports.ContentType = exports.SMESSHeader = void 0;
7
- const types_1 = require("../types/types");
8
- const rxjs_import_1 = require("../utils/rxjs-import");
9
- const rx_http_service_1 = __importDefault(require("../core/rx.http.service"));
10
- const logger_service_1 = require("../services/logger.service");
11
- var SMESSHeader;
1
+ import { NetworkingUIEventWrapped, AlertModel, AlertButtonModel } from '../types/types.js';
2
+ import { of, catchError, mergeMap, startWith } from '../utils/rxjs-import.js';
3
+ import HttpService from '../core/rx.http.service.js';
4
+ import { $logger } from '../services/logger.service.js';
5
+ export var SMESSHeader;
12
6
  (function (SMESSHeader) {
13
7
  SMESSHeader["ContentType"] = "Content-Type";
14
8
  SMESSHeader["Authorization"] = "Authorization";
15
9
  SMESSHeader["Accept"] = "Accept";
16
10
  SMESSHeader["ApiKey"] = "X-Api-Key";
17
11
  SMESSHeader["ClientId"] = "X-Client-Id";
18
- })(SMESSHeader || (exports.SMESSHeader = SMESSHeader = {}));
19
- var ContentType;
12
+ })(SMESSHeader || (SMESSHeader = {}));
13
+ export var ContentType;
20
14
  (function (ContentType) {
21
15
  ContentType["Json"] = "application/json";
22
16
  ContentType["FormURLEncoded"] = "application/x-www-form-urlencoded";
23
- })(ContentType || (exports.ContentType = ContentType = {}));
24
- var Accept;
17
+ })(ContentType || (ContentType = {}));
18
+ export var Accept;
25
19
  (function (Accept) {
26
20
  Accept["V1"] = "application/json";
27
21
  Accept["V2"] = "application/vnd.smess.v2+json";
@@ -33,28 +27,27 @@ var Accept;
33
27
  Accept["V8"] = "application/vnd.smess.v8+json";
34
28
  Accept["V9"] = "application/vnd.smess.v9+json";
35
29
  Accept["V10"] = "application/vnd.smess.v10+json";
36
- })(Accept || (exports.Accept = Accept = {}));
37
- class SmessService {
30
+ })(Accept || (Accept = {}));
31
+ export class SmessService {
38
32
  constructor(target) {
39
33
  this.target = target;
40
34
  // Set default headers
41
- logger_service_1.$logger.info('SmessService initialized', {
35
+ $logger.info('SmessService initialized', {
42
36
  target: this.target,
43
37
  baseURL: this.target.baseURL,
44
38
  method: this.target.method,
45
39
  headers: this.target.headers,
46
40
  }, 'SmessService');
47
- this.httpService = rx_http_service_1.default.create({
41
+ this.httpService = HttpService.create({
48
42
  baseURL: this.target.baseURL,
49
43
  headers: this.target.headers,
50
44
  method: this.target.method,
51
45
  });
52
46
  this.httpService.interceptors.response.use((response) => response, async (error) => {
53
- var _a;
54
47
  const originalRequest = error.config;
55
- if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && !originalRequest._retry) {
48
+ if (error.response?.status === 401 && !originalRequest._retry) {
56
49
  originalRequest._retry = true;
57
- logger_service_1.$logger.info('SmessService constructor - 401 retry', originalRequest, 'SmessService');
50
+ $logger.info('SmessService constructor - 401 retry', originalRequest, 'SmessService');
58
51
  // Implement token refresh logic here
59
52
  // Then retry the original request
60
53
  // return httpService.request(originalRequest);
@@ -74,7 +67,7 @@ class SmessService {
74
67
  return filteredHeaders;
75
68
  }
76
69
  static commonHeaders(version, options) {
77
- const { shouldAddClientIdHeader = true, } = options !== null && options !== void 0 ? options : {};
70
+ const { shouldAddClientIdHeader = true, } = options ?? {};
78
71
  const headers = {
79
72
  Accept: version,
80
73
  Authorization: '',
@@ -109,28 +102,27 @@ class SmessService {
109
102
  else {
110
103
  observable = this.httpService.request(config);
111
104
  }
112
- return observable.pipe((0, rxjs_import_1.catchError)((error) => this.transformAxiosError(error, mockResponse)), (0, rxjs_import_1.mergeMap)((data) => this.transformAxiosResponse(data)), (0, rxjs_import_1.startWith)(types_1.NetworkingUIEventWrapped.waiting()));
105
+ return observable.pipe(catchError((error) => this.transformAxiosError(error, mockResponse)), mergeMap((data) => this.transformAxiosResponse(data)), startWith(NetworkingUIEventWrapped.waiting()));
113
106
  }
114
107
  // MARK: - Private
115
108
  transformAxiosError(error, mockResponse) {
116
- logger_service_1.$logger.error('transformAxiosError', error, 'SmessService');
109
+ $logger.error('transformAxiosError', error, 'SmessService');
117
110
  const message = error instanceof Error ? error.message : String(error);
118
111
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Required for axios compatibility
119
112
  const response = error.response;
120
113
  const httpErrorCode = response ? response.status : 0;
121
- const title = response === null || response === void 0 ? void 0 : response.statusText;
122
- const alertModel = new types_1.AlertModel(message, httpErrorCode, true, title, response === null || response === void 0 ? void 0 : response.data, [types_1.AlertButtonModel.buttonYes()]);
114
+ const title = response?.statusText;
115
+ const alertModel = new AlertModel(message, httpErrorCode, true, title, response?.data, [AlertButtonModel.buttonYes()]);
123
116
  if (mockResponse) {
124
- return (0, rxjs_import_1.of)(types_1.NetworkingUIEventWrapped.succeeded(mockResponse));
117
+ return of(NetworkingUIEventWrapped.succeeded(mockResponse));
125
118
  }
126
- return (0, rxjs_import_1.of)(types_1.NetworkingUIEventWrapped.failed(alertModel));
119
+ return of(NetworkingUIEventWrapped.failed(alertModel));
127
120
  }
128
121
  transformAxiosResponse(response) {
129
- logger_service_1.$logger.info('transformAxiosResponse', response, 'SmessService');
130
- if (response instanceof types_1.NetworkingUIEventWrapped) {
131
- return (0, rxjs_import_1.of)(response);
122
+ $logger.info('transformAxiosResponse', response, 'SmessService');
123
+ if (response instanceof NetworkingUIEventWrapped) {
124
+ return of(response);
132
125
  }
133
- return (0, rxjs_import_1.of)(types_1.NetworkingUIEventWrapped.succeeded(response.data));
126
+ return of(NetworkingUIEventWrapped.succeeded(response.data));
134
127
  }
135
128
  }
136
- exports.SmessService = SmessService;