@fatehan/tsrp 1.1.15 → 1.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/dist/api.d.ts CHANGED
@@ -1,19 +1,14 @@
1
- import { AreaIndexRequest, AreaIndexResponse, ConfigRequest, ConfigResponse, DeviceRequest, DeviceResponse, MeRequest, MeResponse, UserRequest, UserResponse } from "./fatehan/services/api";
2
1
  export type HeaderProvider = () => Promise<HeadersInit> | HeadersInit;
3
2
  export declare class ApiService {
4
3
  private readonly url;
5
4
  private readonly namespace;
6
5
  private readonly getDynamicHeaders;
7
- /**
8
- * @param url The base URL of the API server.
9
- * @param headerProvider A function that returns headers to be added to each request.
10
- */
11
6
  constructor(url: string, headerProvider: HeaderProvider);
12
7
  private _call;
13
- MeIndex(request: MeRequest): Promise<MeResponse>;
14
- DeviceIndex(request: DeviceRequest): Promise<DeviceResponse>;
15
- AreaIndex(request: AreaIndexRequest): Promise<AreaIndexResponse>;
16
- ConfigIndex(request: ConfigRequest): Promise<ConfigResponse>;
17
- UserIndex(request: UserRequest): Promise<UserResponse>;
8
+ MeIndex(request: import("./fatehan/services/api").MeRequest): Promise<import("./fatehan/services/api").MeResponse>;
9
+ DeviceIndex(request: import("./fatehan/services/api").DeviceRequest): Promise<import("./fatehan/services/api").DeviceResponse>;
10
+ AreaIndex(request: import("./fatehan/services/api").AreaIndexRequest): Promise<import("./fatehan/services/api").AreaIndexResponse>;
11
+ ConfigIndex(request: import("./fatehan/services/api").ConfigRequest): Promise<import("./fatehan/services/api").ConfigResponse>;
12
+ UserIndex(request: import("./fatehan/services/api").UserRequest): Promise<import("./fatehan/services/api").UserResponse>;
18
13
  }
19
14
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,EACf,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AAEtE,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IACvE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiB;IAEnD;;;OAGG;gBACS,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc;YAKzC,KAAK;IA+BZ,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAIhD,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAI5D,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIhE,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAI5D,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;CAGhE"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AAEtE,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IACvE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiB;gBAEvC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc;YAKzC,KAAK;IA+BN,OAAO,CAAC,OAAO,EAAE,OAAO,wBAAwB,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,wBAAwB,EAAE,UAAU,CAAC;IAKlH,WAAW,CAAC,OAAO,EAAE,OAAO,wBAAwB,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,wBAAwB,EAAE,cAAc,CAAC;IAK9H,SAAS,CAAC,OAAO,EAAE,OAAO,wBAAwB,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,wBAAwB,EAAE,iBAAiB,CAAC;IAKlI,WAAW,CAAC,OAAO,EAAE,OAAO,wBAAwB,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,wBAAwB,EAAE,cAAc,CAAC;IAK9H,SAAS,CAAC,OAAO,EAAE,OAAO,wBAAwB,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,wBAAwB,EAAE,YAAY,CAAC;CAIxI"}
package/dist/api.js CHANGED
@@ -1,12 +1,40 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.ApiService = void 0;
4
- const api_1 = require("./fatehan/services/api");
5
37
  class ApiService {
6
- /**
7
- * @param url The base URL of the API server.
8
- * @param headerProvider A function that returns headers to be added to each request.
9
- */
10
38
  constructor(url, headerProvider) {
11
39
  this.namespace = "com.fatehan.services.ApiService";
12
40
  this.url = url;
@@ -33,20 +61,25 @@ class ApiService {
33
61
  throw new Error(`API Error (${response.status}): ${errorText}`);
34
62
  }
35
63
  }
36
- MeIndex(request) {
37
- return this._call("MeIndex", request, api_1.MeRequest, api_1.MeResponse);
64
+ async MeIndex(request) {
65
+ const { MeRequest, MeResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/services/api")));
66
+ return this._call("MeIndex", request, MeRequest, MeResponse);
38
67
  }
39
- DeviceIndex(request) {
40
- return this._call("DeviceIndex", request, api_1.DeviceRequest, api_1.DeviceResponse);
68
+ async DeviceIndex(request) {
69
+ const { DeviceRequest, DeviceResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/services/api")));
70
+ return this._call("DeviceIndex", request, DeviceRequest, DeviceResponse);
41
71
  }
42
- AreaIndex(request) {
43
- return this._call("AreaIndex", request, api_1.AreaIndexRequest, api_1.AreaIndexResponse);
72
+ async AreaIndex(request) {
73
+ const { AreaIndexRequest, AreaIndexResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/services/api")));
74
+ return this._call("AreaIndex", request, AreaIndexRequest, AreaIndexResponse);
44
75
  }
45
- ConfigIndex(request) {
46
- return this._call("ConfigIndex", request, api_1.ConfigRequest, api_1.ConfigResponse);
76
+ async ConfigIndex(request) {
77
+ const { ConfigRequest, ConfigResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/services/api")));
78
+ return this._call("ConfigIndex", request, ConfigRequest, ConfigResponse);
47
79
  }
48
- UserIndex(request) {
49
- return this._call("UserIndex", request, api_1.UserRequest, api_1.UserResponse);
80
+ async UserIndex(request) {
81
+ const { UserRequest, UserResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/services/api")));
82
+ return this._call("UserIndex", request, UserRequest, UserResponse);
50
83
  }
51
84
  }
52
85
  exports.ApiService = ApiService;
@@ -0,0 +1,19 @@
1
+ import { AreaIndexRequest, AreaIndexResponse, ConfigRequest, ConfigResponse, DeviceRequest, DeviceResponse, MeRequest, MeResponse, UserRequest, UserResponse } from "./fatehan/services/api";
2
+ export type HeaderProvider = () => Promise<HeadersInit> | HeadersInit;
3
+ export declare class ApiService {
4
+ private readonly url;
5
+ private readonly namespace;
6
+ private readonly getDynamicHeaders;
7
+ /**
8
+ * @param url The base URL of the API server.
9
+ * @param headerProvider A function that returns headers to be added to each request.
10
+ */
11
+ constructor(url: string, headerProvider: HeaderProvider);
12
+ private _call;
13
+ MeIndex(request: MeRequest): Promise<MeResponse>;
14
+ DeviceIndex(request: DeviceRequest): Promise<DeviceResponse>;
15
+ AreaIndex(request: AreaIndexRequest): Promise<AreaIndexResponse>;
16
+ ConfigIndex(request: ConfigRequest): Promise<ConfigResponse>;
17
+ UserIndex(request: UserRequest): Promise<UserResponse>;
18
+ }
19
+ //# sourceMappingURL=api.old.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.old.d.ts","sourceRoot":"","sources":["../src/api.old.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,EACf,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AAEtE,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IACvE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiB;IAEnD;;;OAGG;gBACS,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc;YAKzC,KAAK;IA+BZ,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAIhD,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAI5D,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIhE,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAI5D,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;CAGhE"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiService = void 0;
4
+ const api_1 = require("./fatehan/services/api");
5
+ class ApiService {
6
+ /**
7
+ * @param url The base URL of the API server.
8
+ * @param headerProvider A function that returns headers to be added to each request.
9
+ */
10
+ constructor(url, headerProvider) {
11
+ this.namespace = "com.fatehan.services.ApiService";
12
+ this.url = url;
13
+ this.getDynamicHeaders = headerProvider;
14
+ }
15
+ async _call(methodName, request, encoder, decoder) {
16
+ const dynamicHeaders = await this.getDynamicHeaders();
17
+ const headers = {
18
+ "Content-Type": "application/octet-stream",
19
+ Accept: "application/octet-stream",
20
+ ...dynamicHeaders,
21
+ };
22
+ const response = await fetch(`${this.url}/${this.namespace}/${methodName}`, {
23
+ method: "POST",
24
+ headers: headers,
25
+ body: new Uint8Array(encoder.encode(request).finish()),
26
+ });
27
+ if (response.ok) {
28
+ const buffer = await response.arrayBuffer();
29
+ return decoder.decode(new Uint8Array(buffer));
30
+ }
31
+ else {
32
+ const errorText = await response.text();
33
+ throw new Error(`API Error (${response.status}): ${errorText}`);
34
+ }
35
+ }
36
+ MeIndex(request) {
37
+ return this._call("MeIndex", request, api_1.MeRequest, api_1.MeResponse);
38
+ }
39
+ DeviceIndex(request) {
40
+ return this._call("DeviceIndex", request, api_1.DeviceRequest, api_1.DeviceResponse);
41
+ }
42
+ AreaIndex(request) {
43
+ return this._call("AreaIndex", request, api_1.AreaIndexRequest, api_1.AreaIndexResponse);
44
+ }
45
+ ConfigIndex(request) {
46
+ return this._call("ConfigIndex", request, api_1.ConfigRequest, api_1.ConfigResponse);
47
+ }
48
+ UserIndex(request) {
49
+ return this._call("UserIndex", request, api_1.UserRequest, api_1.UserResponse);
50
+ }
51
+ }
52
+ exports.ApiService = ApiService;
package/dist/api.test.js CHANGED
@@ -2,26 +2,48 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const vitest_1 = require("vitest");
4
4
  const api_1 = require("./api");
5
+ global.fetch = vitest_1.vi.fn();
5
6
  (0, vitest_1.describe)("ApiService", () => {
6
- let url = "https://beta.myavl.ir/gapi";
7
- let token = "result";
8
- let organization = null;
9
- // let url: string = "http://127.0.0.1:4333";
10
- // let token: string = "157|HruYqS4J5V2Yj1Hu9IISH4CEQfl4TkujKFUzobnlef550974";
11
- // let organization: string = "1012494";
12
- let c = new api_1.ApiService(url, token, organization);
13
- (0, vitest_1.it)("MeIndex", async () => {
14
- let res = await c.MeIndex({});
15
- console.log("MeIndex", res);
7
+ const url = "http://fake-api-server.com/gapi";
8
+ let service;
9
+ let mockHeaderProvider;
10
+ (0, vitest_1.beforeEach)(() => {
11
+ vitest_1.vi.clearAllMocks();
12
+ mockHeaderProvider = vitest_1.vi.fn(() => ({
13
+ 'authorization': 'Bearer test-token-from-mock',
14
+ 'organization-id': 'test-org-from-mock'
15
+ }));
16
+ service = new api_1.ApiService(url, mockHeaderProvider);
16
17
  });
17
- (0, vitest_1.it)("ConfigIndex", async () => {
18
- let res = await c.ConfigIndex({
18
+ const setupMockSuccessResponse = (data = {}) => {
19
+ global.fetch.mockResolvedValue({
20
+ ok: true,
21
+ arrayBuffer: () => Promise.resolve(new Uint8Array()),
22
+ text: () => Promise.resolve("Success"),
23
+ });
24
+ };
25
+ (0, vitest_1.it)("should call MeIndex with correct headers and URL", async () => {
26
+ setupMockSuccessResponse();
27
+ await service.MeIndex({});
28
+ (0, vitest_1.expect)(mockHeaderProvider).toHaveBeenCalledOnce();
29
+ (0, vitest_1.expect)(global.fetch).toHaveBeenCalledWith(`${url}/com.fatehan.services.ApiService/MeIndex`, vitest_1.expect.objectContaining({
30
+ method: 'POST',
31
+ headers: vitest_1.expect.objectContaining({
32
+ 'authorization': 'Bearer test-token-from-mock'
33
+ })
34
+ }));
35
+ });
36
+ (0, vitest_1.it)("should call ConfigIndex with correct headers and URL", async () => {
37
+ setupMockSuccessResponse();
38
+ await service.ConfigIndex({
19
39
  domain: "api.myavl.ir",
20
40
  });
21
- console.log("ConfigIndex", res);
41
+ (0, vitest_1.expect)(mockHeaderProvider).toHaveBeenCalledOnce();
42
+ (0, vitest_1.expect)(global.fetch).toHaveBeenCalledWith(`${url}/com.fatehan.services.ApiService/ConfigIndex`, vitest_1.expect.any(Object));
22
43
  });
23
- (0, vitest_1.it)("DeviceIndex", async () => {
24
- let res = await c.DeviceIndex({
44
+ (0, vitest_1.it)("should call DeviceIndex with correct headers and URL", async () => {
45
+ setupMockSuccessResponse();
46
+ await service.DeviceIndex({
25
47
  includeDeviceStatus: false,
26
48
  organizationId: undefined,
27
49
  queryFilter: {},
@@ -33,6 +55,7 @@ const api_1 = require("./api");
33
55
  page: 1,
34
56
  pageSize: 15,
35
57
  });
36
- console.log("DeviceIndex", res);
58
+ (0, vitest_1.expect)(mockHeaderProvider).toHaveBeenCalledOnce();
59
+ (0, vitest_1.expect)(global.fetch).toHaveBeenCalledWith(`${url}/com.fatehan.services.ApiService/DeviceIndex`, vitest_1.expect.any(Object));
37
60
  });
38
61
  });
package/dist/report.d.ts CHANGED
@@ -1,43 +1,25 @@
1
- import { AreaSummaryReviewRequest, AreaSummaryReviewResponse, ChartRequest, ChartResponse, CommandHistoryRequest, CommandHistoryResponse, DashboardIndividualRequest, DashboardIndividualResponse, DeviceDataRequest, DeviceDataResponse, LogRequest, LogResponse, RouteReviewRequest, RouteReviewResponse, RouteStopRequest, RouteStopResponse, SystemIoRequest, SystemIoResponse, TripPerformanceRequest, TripPerformanceResponse, TripReportRequest, TripReportResponse, WorkCycleRequest, WorkCycleResponse, WorkflowRequest, WorkflowResponse } from "./fatehan/reports/report";
2
- import { ShownIo, SystemIo } from "./fatehan/devices/devices";
3
- import { Data } from "./fatehan/packets/dataModel";
1
+ import type { ShownIo, SystemIo } from "./fatehan/devices/devices";
2
+ import type { Data } from "./fatehan/packets/dataModel";
4
3
  export type HeaderProvider = () => Promise<HeadersInit> | HeadersInit;
5
- /**
6
- * A service for fetching reports from the com.fatehan.reports.ReportService backend.
7
- * Implements a dynamic header provider to act as an interceptor for authentication.
8
- */
9
4
  export declare class ReportService {
10
5
  private readonly url;
11
6
  private readonly namespace;
12
7
  private readonly getDynamicHeaders;
13
- /**
14
- * @param url The base URL of the API server.
15
- * @param headerProvider A function that returns headers to be added to each request.
16
- */
17
8
  constructor(url: string, headerProvider: HeaderProvider);
18
9
  private _call;
19
- RouteStopReport(request: RouteStopRequest): Promise<RouteStopResponse>;
20
- TripPerformanceReport(request: TripPerformanceRequest): Promise<TripPerformanceResponse>;
21
- TripReport(request: TripReportRequest): Promise<TripReportResponse>;
22
- RouteReviewReport(request: RouteReviewRequest): Promise<RouteReviewResponse>;
23
- DashboardIndividual(request: DashboardIndividualRequest): Promise<DashboardIndividualResponse>;
24
- LogReport(request: LogRequest): Promise<LogResponse>;
25
- DataReport(request: DeviceDataRequest): Promise<DeviceDataResponse>;
26
- AreaSummaryReviewReport(request: AreaSummaryReviewRequest): Promise<AreaSummaryReviewResponse>;
27
- WorkCycleReport(request: WorkCycleRequest): Promise<WorkCycleResponse>;
28
- CommandHistoryReport(request: CommandHistoryRequest): Promise<CommandHistoryResponse>;
29
- WorkflowReport(request: WorkflowRequest): Promise<WorkflowResponse>;
30
- /**
31
- * Handles a streaming RPC for chart data.
32
- */
33
- ChartReport(request: ChartRequest, responses: (chunk: ChartResponse) => void): Promise<void>;
34
- /**
35
- * Fetches System IO data, using a cache first.
36
- */
37
- SystemIoReport(request: SystemIoRequest): Promise<SystemIoResponse>;
38
- /**
39
- * A helper that uses SystemIoReport internally if needed.
40
- */
10
+ RouteStopReport(request: import("./fatehan/reports/report").RouteStopRequest): Promise<import("./fatehan/reports/report").RouteStopResponse>;
11
+ TripPerformanceReport(request: import("./fatehan/reports/report").TripPerformanceRequest): Promise<import("./fatehan/reports/report").TripPerformanceResponse>;
12
+ TripReport(request: import("./fatehan/reports/report").TripReportRequest): Promise<import("./fatehan/reports/report").TripReportResponse>;
13
+ RouteReviewReport(request: import("./fatehan/reports/report").RouteReviewRequest): Promise<import("./fatehan/reports/report").RouteReviewResponse>;
14
+ DashboardIndividual(request: import("./fatehan/reports/report").DashboardIndividualRequest): Promise<import("./fatehan/reports/report").DashboardIndividualResponse>;
15
+ LogReport(request: import("./fatehan/reports/report").LogRequest): Promise<import("./fatehan/reports/report").LogResponse>;
16
+ DataReport(request: import("./fatehan/reports/report").DeviceDataRequest): Promise<import("./fatehan/reports/report").DeviceDataResponse>;
17
+ AreaSummaryReviewReport(request: import("./fatehan/reports/report").AreaSummaryReviewRequest): Promise<import("./fatehan/reports/report").AreaSummaryReviewResponse>;
18
+ WorkCycleReport(request: import("./fatehan/reports/report").WorkCycleRequest): Promise<import("./fatehan/reports/report").WorkCycleResponse>;
19
+ CommandHistoryReport(request: import("./fatehan/reports/report").CommandHistoryRequest): Promise<import("./fatehan/reports/report").CommandHistoryResponse>;
20
+ WorkflowReport(request: import("./fatehan/reports/report").WorkflowRequest): Promise<import("./fatehan/reports/report").WorkflowResponse>;
21
+ ChartReport(request: import("./fatehan/reports/report").ChartRequest, responses: (chunk: import("./fatehan/reports/report").ChartResponse) => void): Promise<void>;
22
+ SystemIoReport(request: import("./fatehan/reports/report").SystemIoRequest): Promise<import("./fatehan/reports/report").SystemIoResponse>;
41
23
  SystemIoCast(systemIo: SystemIo[] | null, deviceIo: SystemIo[], data: Data): Promise<ShownIo[]>;
42
24
  }
43
25
  //# sourceMappingURL=report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EACxB,yBAAyB,EACzB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAInD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AAEtE;;;GAGG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+C;IACzE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiB;IAEnD;;;OAGG;gBACS,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc;YAKzC,KAAK;IA8BZ,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAItE,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIxF,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAInE,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI5E,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAI9F,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpD,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAInE,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAI9F,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAItE,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAIrF,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAM1E;;OAEG;IACU,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI;IA0CzF;;OAEG;IACU,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAWhF;;OAEG;IACU,YAAY,CACrB,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAC3B,QAAQ,EAAE,QAAQ,EAAE,EACpB,IAAI,EAAE,IAAI,GACX,OAAO,CAAC,OAAO,EAAE,CAAC;CAcxB"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAGxD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AAEtE,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+C;IACzE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiB;gBAEvC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc;YAKzC,KAAK;IA4BN,eAAe,CAAC,OAAO,EAAE,OAAO,0BAA0B,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,0BAA0B,EAAE,iBAAiB,CAAC;IAK5I,qBAAqB,CAAC,OAAO,EAAE,OAAO,0BAA0B,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,0BAA0B,EAAE,uBAAuB,CAAC;IAK9J,UAAU,CAAC,OAAO,EAAE,OAAO,0BAA0B,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,0BAA0B,EAAE,kBAAkB,CAAC;IAKzI,iBAAiB,CAAC,OAAO,EAAE,OAAO,0BAA0B,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,0BAA0B,EAAE,mBAAmB,CAAC;IAKlJ,mBAAmB,CAAC,OAAO,EAAE,OAAO,0BAA0B,EAAE,0BAA0B,GAAG,OAAO,CAAC,OAAO,0BAA0B,EAAE,2BAA2B,CAAC;IAKpK,SAAS,CAAC,OAAO,EAAE,OAAO,0BAA0B,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,0BAA0B,EAAE,WAAW,CAAC;IAK1H,UAAU,CAAC,OAAO,EAAE,OAAO,0BAA0B,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,0BAA0B,EAAE,kBAAkB,CAAC;IAKzI,uBAAuB,CAAC,OAAO,EAAE,OAAO,0BAA0B,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,0BAA0B,EAAE,yBAAyB,CAAC;IAKpK,eAAe,CAAC,OAAO,EAAE,OAAO,0BAA0B,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,0BAA0B,EAAE,iBAAiB,CAAC;IAK5I,oBAAoB,CAAC,OAAO,EAAE,OAAO,0BAA0B,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,0BAA0B,EAAE,sBAAsB,CAAC;IAK3J,cAAc,CAAC,OAAO,EAAE,OAAO,0BAA0B,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,0BAA0B,EAAE,gBAAgB,CAAC;IAKzI,WAAW,CAAC,OAAO,EAAE,OAAO,0BAA0B,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,0BAA0B,EAAE,aAAa,KAAK,IAAI;IA2ClJ,cAAc,CAAC,OAAO,EAAE,OAAO,0BAA0B,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,0BAA0B,EAAE,gBAAgB,CAAC;IAazI,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAc/G"}
package/dist/report.js CHANGED
@@ -1,21 +1,45 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  exports.ReportService = void 0;
7
- const report_1 = require("./fatehan/reports/report");
8
40
  const system_io_1 = require("./store/system.io");
9
41
  const system_io_2 = __importDefault(require("./system.io"));
10
- /**
11
- * A service for fetching reports from the com.fatehan.reports.ReportService backend.
12
- * Implements a dynamic header provider to act as an interceptor for authentication.
13
- */
14
42
  class ReportService {
15
- /**
16
- * @param url The base URL of the API server.
17
- * @param headerProvider A function that returns headers to be added to each request.
18
- */
19
43
  constructor(url, headerProvider) {
20
44
  this.namespace = "com.fatehan.reports.ReportService";
21
45
  this.url = url;
@@ -42,45 +66,52 @@ class ReportService {
42
66
  throw new Error(`API Error (${response.status}): ${errorText}`);
43
67
  }
44
68
  }
45
- // --- Public Unary API Methods ---
46
- RouteStopReport(request) {
47
- return this._call("RouteStopReport", request, report_1.RouteStopRequest, report_1.RouteStopResponse);
69
+ async RouteStopReport(request) {
70
+ const { RouteStopRequest, RouteStopResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/reports/report")));
71
+ return this._call("RouteStopReport", request, RouteStopRequest, RouteStopResponse);
48
72
  }
49
- TripPerformanceReport(request) {
50
- return this._call("TripPerformanceReport", request, report_1.TripPerformanceRequest, report_1.TripPerformanceResponse);
73
+ async TripPerformanceReport(request) {
74
+ const { TripPerformanceRequest, TripPerformanceResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/reports/report")));
75
+ return this._call("TripPerformanceReport", request, TripPerformanceRequest, TripPerformanceResponse);
51
76
  }
52
- TripReport(request) {
53
- return this._call("TripReport", request, report_1.TripReportRequest, report_1.TripReportResponse);
77
+ async TripReport(request) {
78
+ const { TripReportRequest, TripReportResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/reports/report")));
79
+ return this._call("TripReport", request, TripReportRequest, TripReportResponse);
54
80
  }
55
- RouteReviewReport(request) {
56
- return this._call("RouteReviewReport", request, report_1.RouteReviewRequest, report_1.RouteReviewResponse);
81
+ async RouteReviewReport(request) {
82
+ const { RouteReviewRequest, RouteReviewResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/reports/report")));
83
+ return this._call("RouteReviewReport", request, RouteReviewRequest, RouteReviewResponse);
57
84
  }
58
- DashboardIndividual(request) {
59
- return this._call("DashboardIndividual", request, report_1.DashboardIndividualRequest, report_1.DashboardIndividualResponse);
85
+ async DashboardIndividual(request) {
86
+ const { DashboardIndividualRequest, DashboardIndividualResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/reports/report")));
87
+ return this._call("DashboardIndividual", request, DashboardIndividualRequest, DashboardIndividualResponse);
60
88
  }
61
- LogReport(request) {
62
- return this._call("LogReport", request, report_1.LogRequest, report_1.LogResponse);
89
+ async LogReport(request) {
90
+ const { LogRequest, LogResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/reports/report")));
91
+ return this._call("LogReport", request, LogRequest, LogResponse);
63
92
  }
64
- DataReport(request) {
65
- return this._call("DeviceDataReport", request, report_1.DeviceDataRequest, report_1.DeviceDataResponse);
93
+ async DataReport(request) {
94
+ const { DeviceDataRequest, DeviceDataResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/reports/report")));
95
+ return this._call("DeviceDataReport", request, DeviceDataRequest, DeviceDataResponse);
66
96
  }
67
- AreaSummaryReviewReport(request) {
68
- return this._call("AreaSummaryReviewReport", request, report_1.AreaSummaryReviewRequest, report_1.AreaSummaryReviewResponse);
97
+ async AreaSummaryReviewReport(request) {
98
+ const { AreaSummaryReviewRequest, AreaSummaryReviewResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/reports/report")));
99
+ return this._call("AreaSummaryReviewReport", request, AreaSummaryReviewRequest, AreaSummaryReviewResponse);
69
100
  }
70
- WorkCycleReport(request) {
71
- return this._call("WorkCycleReport", request, report_1.WorkCycleRequest, report_1.WorkCycleResponse);
101
+ async WorkCycleReport(request) {
102
+ const { WorkCycleRequest, WorkCycleResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/reports/report")));
103
+ return this._call("WorkCycleReport", request, WorkCycleRequest, WorkCycleResponse);
72
104
  }
73
- CommandHistoryReport(request) {
74
- return this._call("CommandHistoryReport", request, report_1.CommandHistoryRequest, report_1.CommandHistoryResponse);
105
+ async CommandHistoryReport(request) {
106
+ const { CommandHistoryRequest, CommandHistoryResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/reports/report")));
107
+ return this._call("CommandHistoryReport", request, CommandHistoryRequest, CommandHistoryResponse);
75
108
  }
76
- WorkflowReport(request) {
77
- return this._call("WorkflowReport", request, report_1.WorkflowRequest, report_1.WorkflowResponse);
109
+ async WorkflowReport(request) {
110
+ const { WorkflowRequest, WorkflowResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/reports/report")));
111
+ return this._call("WorkflowReport", request, WorkflowRequest, WorkflowResponse);
78
112
  }
79
- // --- Special Case Methods ---
80
- /**
81
- * Handles a streaming RPC for chart data.
82
- */
83
113
  async ChartReport(request, responses) {
114
+ const { ChartRequest, ChartResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/reports/report")));
84
115
  const dynamicHeaders = await this.getDynamicHeaders();
85
116
  const headers = {
86
117
  "Content-Type": "application/octet-stream",
@@ -90,7 +121,7 @@ class ReportService {
90
121
  const res = await fetch(`${this.url}/${this.namespace}/ChartReport`, {
91
122
  method: "POST",
92
123
  headers: headers,
93
- body: new Uint8Array(report_1.ChartRequest.encode(request).finish()),
124
+ body: new Uint8Array(ChartRequest.encode(request).finish()),
94
125
  });
95
126
  if (res.body == null) {
96
127
  console.error("ChartReport response body is null.");
@@ -111,32 +142,27 @@ class ReportService {
111
142
  if (buffer.length < 4 + msgLen)
112
143
  break;
113
144
  const message = buffer.slice(4, 4 + msgLen);
114
- responses(report_1.ChartResponse.decode(message));
145
+ responses(ChartResponse.decode(message));
115
146
  buffer = buffer.slice(4 + msgLen);
116
147
  }
117
148
  }
118
149
  }
119
- /**
120
- * Fetches System IO data, using a cache first.
121
- */
122
150
  async SystemIoReport(request) {
123
151
  const cachedIo = (0, system_io_1.getSystemIoCache)();
124
152
  if (cachedIo != null) {
125
153
  return { cost: 0, ios: cachedIo, records: cachedIo.length };
126
154
  }
127
- const response = await this._call("SystemIoReport", request, report_1.SystemIoRequest, report_1.SystemIoResponse);
155
+ const { SystemIoRequest, SystemIoResponse } = await Promise.resolve().then(() => __importStar(require("./fatehan/reports/report")));
156
+ const response = await this._call("SystemIoReport", request, SystemIoRequest, SystemIoResponse);
128
157
  (0, system_io_1.setSystemIoCache)(response.ios);
129
158
  return response;
130
159
  }
131
- /**
132
- * A helper that uses SystemIoReport internally if needed.
133
- */
134
160
  async SystemIoCast(systemIo, deviceIo, data) {
135
161
  var _a;
136
162
  let ioData = systemIo;
137
163
  if (ioData == null) {
138
164
  try {
139
- const result = await this.SystemIoReport({}); // This call is now authenticated
165
+ const result = await this.SystemIoReport({});
140
166
  if (!((_a = result === null || result === void 0 ? void 0 : result.ios) === null || _a === void 0 ? void 0 : _a.length))
141
167
  return [];
142
168
  ioData = result.ios;
@@ -0,0 +1,39 @@
1
+ import { AreaSummaryReviewRequest, AreaSummaryReviewResponse, ChartRequest, ChartResponse, CommandHistoryRequest, CommandHistoryResponse, DashboardIndividualRequest, DashboardIndividualResponse, DeviceDataRequest, DeviceDataResponse, LogRequest, LogResponse, RouteReviewRequest, RouteReviewResponse, RouteStopRequest, RouteStopResponse, SystemIoRequest, SystemIoResponse, TripPerformanceRequest, TripPerformanceResponse, TripReportRequest, TripReportResponse, WorkCycleRequest, WorkCycleResponse, WorkflowRequest, WorkflowResponse } from "./fatehan/reports/report";
2
+ import { ShownIo, SystemIo } from "./fatehan/devices/devices";
3
+ import { Data } from "./fatehan/packets/dataModel";
4
+ export type HeaderProvider = () => Promise<HeadersInit> | HeadersInit;
5
+ export declare class ReportService {
6
+ private readonly url;
7
+ private readonly namespace;
8
+ private readonly getDynamicHeaders;
9
+ /**
10
+ * @param url The base URL of the API server.
11
+ * @param headerProvider A function that returns headers to be added to each request.
12
+ */
13
+ constructor(url: string, headerProvider: HeaderProvider);
14
+ private _call;
15
+ RouteStopReport(request: RouteStopRequest): Promise<RouteStopResponse>;
16
+ TripPerformanceReport(request: TripPerformanceRequest): Promise<TripPerformanceResponse>;
17
+ TripReport(request: TripReportRequest): Promise<TripReportResponse>;
18
+ RouteReviewReport(request: RouteReviewRequest): Promise<RouteReviewResponse>;
19
+ DashboardIndividual(request: DashboardIndividualRequest): Promise<DashboardIndividualResponse>;
20
+ LogReport(request: LogRequest): Promise<LogResponse>;
21
+ DataReport(request: DeviceDataRequest): Promise<DeviceDataResponse>;
22
+ AreaSummaryReviewReport(request: AreaSummaryReviewRequest): Promise<AreaSummaryReviewResponse>;
23
+ WorkCycleReport(request: WorkCycleRequest): Promise<WorkCycleResponse>;
24
+ CommandHistoryReport(request: CommandHistoryRequest): Promise<CommandHistoryResponse>;
25
+ WorkflowReport(request: WorkflowRequest): Promise<WorkflowResponse>;
26
+ /**
27
+ * Handles a streaming RPC for chart data.
28
+ */
29
+ ChartReport(request: ChartRequest, responses: (chunk: ChartResponse) => void): Promise<void>;
30
+ /**
31
+ * Fetches System IO data, using a cache first.
32
+ */
33
+ SystemIoReport(request: SystemIoRequest): Promise<SystemIoResponse>;
34
+ /**
35
+ * A helper that uses SystemIoReport internally if needed.
36
+ */
37
+ SystemIoCast(systemIo: SystemIo[] | null, deviceIo: SystemIo[], data: Data): Promise<ShownIo[]>;
38
+ }
39
+ //# sourceMappingURL=report.old.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.old.d.ts","sourceRoot":"","sources":["../src/report.old.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EACxB,yBAAyB,EACzB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAGnD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AAEtE,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+C;IACzE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiB;IAEnD;;;OAGG;gBACS,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc;YAKzC,KAAK;IA8BZ,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAItE,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIxF,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAInE,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI5E,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAI9F,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpD,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAInE,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAI9F,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAItE,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAIrF,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAM1E;;OAEG;IACU,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI;IA0CzF;;OAEG;IACU,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAWhF;;OAEG;IACU,YAAY,CACrB,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAC3B,QAAQ,EAAE,QAAQ,EAAE,EACpB,IAAI,EAAE,IAAI,GACX,OAAO,CAAC,OAAO,EAAE,CAAC;CAcxB"}
@@ -0,0 +1,148 @@
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.ReportService = void 0;
7
+ const report_1 = require("./fatehan/reports/report");
8
+ const system_io_1 = require("./store/system.io");
9
+ const system_io_2 = __importDefault(require("./system.io"));
10
+ class ReportService {
11
+ /**
12
+ * @param url The base URL of the API server.
13
+ * @param headerProvider A function that returns headers to be added to each request.
14
+ */
15
+ constructor(url, headerProvider) {
16
+ this.namespace = "com.fatehan.reports.ReportService";
17
+ this.url = url;
18
+ this.getDynamicHeaders = headerProvider;
19
+ }
20
+ async _call(methodName, request, encoder, decoder) {
21
+ const dynamicHeaders = await this.getDynamicHeaders();
22
+ const headers = {
23
+ "Content-Type": "application/octet-stream",
24
+ Accept: "application/octet-stream",
25
+ ...dynamicHeaders,
26
+ };
27
+ const response = await fetch(`${this.url}/${this.namespace}/${methodName}`, {
28
+ method: "POST",
29
+ headers: headers,
30
+ body: new Uint8Array(encoder.encode(request).finish()),
31
+ });
32
+ if (response.ok) {
33
+ const buffer = await response.arrayBuffer();
34
+ return decoder.decode(new Uint8Array(buffer));
35
+ }
36
+ else {
37
+ const errorText = await response.text();
38
+ throw new Error(`API Error (${response.status}): ${errorText}`);
39
+ }
40
+ }
41
+ // --- Public Unary API Methods ---
42
+ RouteStopReport(request) {
43
+ return this._call("RouteStopReport", request, report_1.RouteStopRequest, report_1.RouteStopResponse);
44
+ }
45
+ TripPerformanceReport(request) {
46
+ return this._call("TripPerformanceReport", request, report_1.TripPerformanceRequest, report_1.TripPerformanceResponse);
47
+ }
48
+ TripReport(request) {
49
+ return this._call("TripReport", request, report_1.TripReportRequest, report_1.TripReportResponse);
50
+ }
51
+ RouteReviewReport(request) {
52
+ return this._call("RouteReviewReport", request, report_1.RouteReviewRequest, report_1.RouteReviewResponse);
53
+ }
54
+ DashboardIndividual(request) {
55
+ return this._call("DashboardIndividual", request, report_1.DashboardIndividualRequest, report_1.DashboardIndividualResponse);
56
+ }
57
+ LogReport(request) {
58
+ return this._call("LogReport", request, report_1.LogRequest, report_1.LogResponse);
59
+ }
60
+ DataReport(request) {
61
+ return this._call("DeviceDataReport", request, report_1.DeviceDataRequest, report_1.DeviceDataResponse);
62
+ }
63
+ AreaSummaryReviewReport(request) {
64
+ return this._call("AreaSummaryReviewReport", request, report_1.AreaSummaryReviewRequest, report_1.AreaSummaryReviewResponse);
65
+ }
66
+ WorkCycleReport(request) {
67
+ return this._call("WorkCycleReport", request, report_1.WorkCycleRequest, report_1.WorkCycleResponse);
68
+ }
69
+ CommandHistoryReport(request) {
70
+ return this._call("CommandHistoryReport", request, report_1.CommandHistoryRequest, report_1.CommandHistoryResponse);
71
+ }
72
+ WorkflowReport(request) {
73
+ return this._call("WorkflowReport", request, report_1.WorkflowRequest, report_1.WorkflowResponse);
74
+ }
75
+ // --- Special Case Methods ---
76
+ /**
77
+ * Handles a streaming RPC for chart data.
78
+ */
79
+ async ChartReport(request, responses) {
80
+ const dynamicHeaders = await this.getDynamicHeaders();
81
+ const headers = {
82
+ "Content-Type": "application/octet-stream",
83
+ Accept: "application/octet-stream",
84
+ ...dynamicHeaders,
85
+ };
86
+ const res = await fetch(`${this.url}/${this.namespace}/ChartReport`, {
87
+ method: "POST",
88
+ headers: headers,
89
+ body: new Uint8Array(report_1.ChartRequest.encode(request).finish()),
90
+ });
91
+ if (res.body == null) {
92
+ console.error("ChartReport response body is null.");
93
+ return;
94
+ }
95
+ const reader = res.body.getReader();
96
+ let buffer = new Uint8Array(0);
97
+ while (true) {
98
+ const { done, value } = await reader.read();
99
+ if (done)
100
+ break;
101
+ const tmp = new Uint8Array(buffer.length + value.length);
102
+ tmp.set(buffer);
103
+ tmp.set(value, buffer.length);
104
+ buffer = tmp;
105
+ while (buffer.length >= 4) {
106
+ const msgLen = new DataView(buffer.buffer).getUint32(0);
107
+ if (buffer.length < 4 + msgLen)
108
+ break;
109
+ const message = buffer.slice(4, 4 + msgLen);
110
+ responses(report_1.ChartResponse.decode(message));
111
+ buffer = buffer.slice(4 + msgLen);
112
+ }
113
+ }
114
+ }
115
+ /**
116
+ * Fetches System IO data, using a cache first.
117
+ */
118
+ async SystemIoReport(request) {
119
+ const cachedIo = (0, system_io_1.getSystemIoCache)();
120
+ if (cachedIo != null) {
121
+ return { cost: 0, ios: cachedIo, records: cachedIo.length };
122
+ }
123
+ const response = await this._call("SystemIoReport", request, report_1.SystemIoRequest, report_1.SystemIoResponse);
124
+ (0, system_io_1.setSystemIoCache)(response.ios);
125
+ return response;
126
+ }
127
+ /**
128
+ * A helper that uses SystemIoReport internally if needed.
129
+ */
130
+ async SystemIoCast(systemIo, deviceIo, data) {
131
+ var _a;
132
+ let ioData = systemIo;
133
+ if (ioData == null) {
134
+ try {
135
+ const result = await this.SystemIoReport({}); // This call is now authenticated
136
+ if (!((_a = result === null || result === void 0 ? void 0 : result.ios) === null || _a === void 0 ? void 0 : _a.length))
137
+ return [];
138
+ ioData = result.ios;
139
+ }
140
+ catch (error) {
141
+ console.error("Failed to fetch SystemIoReport in SystemIoCast:", error);
142
+ return [];
143
+ }
144
+ }
145
+ return (0, system_io_2.default)(ioData, deviceIo, data);
146
+ }
147
+ }
148
+ exports.ReportService = ReportService;
@@ -1,382 +1,123 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  const vitest_1 = require("vitest");
7
40
  const report_1 = require("./report");
8
- const report_2 = require("./fatehan/reports/report");
9
41
  const long_1 = __importDefault(require("long"));
10
42
  const system_io_1 = __importDefault(require("./system.io"));
11
- const devices_1 = require("./fatehan/devices/devices");
43
+ const report_2 = require("./fatehan/reports/report");
44
+ global.fetch = vitest_1.vi.fn();
45
+ vitest_1.vi.mock('./system.io', () => ({
46
+ default: vitest_1.vi.fn(() => [{ name: 'Mocked IO Result', value: 42 }]),
47
+ }));
48
+ vitest_1.vi.mock('./store/system.io', () => ({
49
+ getSystemIoCache: vitest_1.vi.fn(() => null),
50
+ setSystemIoCache: vitest_1.vi.fn(),
51
+ }));
12
52
  (0, vitest_1.describe)("ReportService", () => {
13
- let url = "http://report.myavl.ir:1272";
14
- let token = "5|gvRWOzVBVN3a6Q7iajws2uV9TEVELEK81H3RCpzO85369b27";
15
- let organization = "1000001";
16
- let c = new report_1.ReportService(url, token, organization);
17
- (0, vitest_1.it)("TripPerformanceReport", async () => {
18
- let res = await c.TripPerformanceReport({
19
- deviceId: [long_1.default.fromInt(10168), long_1.default.fromInt(10532)],
20
- startedAt: new Date("2025-04-01 00:00:00"),
21
- finishedAt: new Date("2025-06-22 00:00:00"),
22
- groupByDatetime: report_2.TripPerformanceRequest_GroupBy.Month,
23
- groupByDevice: true,
24
- hourly: false,
25
- });
26
- console.log("TripPerformanceReport", res.records);
27
- });
28
- (0, vitest_1.it)("TripReport", async () => {
29
- let res = await c.TripReport({
30
- deviceIds: [long_1.default.fromInt(124251414), long_1.default.fromInt(124251413)],
31
- startedAt: new Date("2025-04-01 00:00:00"),
32
- finishedAt: new Date("2025-04-22 00:00:00"),
33
- });
34
- console.log("TripReport", res.records);
35
- });
36
- (0, vitest_1.it)("RouteReviewReport", async () => {
37
- let res = await c.RouteReviewReport({
38
- deviceId: long_1.default.fromInt(7744),
39
- startedAt: new Date("2025-04-01 00:00:00"),
40
- finishedAt: new Date("2025-04-22 00:00:00"),
41
- includeTrip: true,
42
- source: report_2.Source.CASSANDRA,
43
- stopType: report_2.StopCalculateIo.IGNITION,
44
- });
45
- console.log("RouteReviewReport", res.records);
53
+ const url = "http://fake-report-server.com";
54
+ let service;
55
+ let mockHeaderProvider;
56
+ (0, vitest_1.beforeEach)(() => {
57
+ vitest_1.vi.clearAllMocks();
58
+ mockHeaderProvider = vitest_1.vi.fn(() => ({
59
+ 'authorization': 'Bearer test-token-12345',
60
+ 'organization-id': 'org-test-1000001'
61
+ }));
62
+ service = new report_1.ReportService(url, mockHeaderProvider);
46
63
  });
47
- (0, vitest_1.it)("DashboardReport", async () => {
48
- let res = await c.DashboardIndividual({
49
- deviceId: long_1.default.fromInt(124251414),
50
- startedAt: new Date("2025-04-01 00:00:00"),
51
- finishedAt: new Date("2025-04-22 00:00:00"),
64
+ const setupMockSuccessResponse = (data = {}) => {
65
+ global.fetch.mockResolvedValue({
66
+ ok: true,
67
+ arrayBuffer: () => Promise.resolve(new Uint8Array()),
68
+ text: () => Promise.resolve("Success"),
52
69
  });
53
- console.log("DashboardReport", res);
54
- });
55
- (0, vitest_1.it)("LogReport", async () => {
56
- let res = await c.LogReport({
57
- deviceId: long_1.default.fromInt(124251414),
58
- startedAt: new Date("2025-05-19 00:00:00"),
59
- finishedAt: new Date("2025-05-220 00:00:00"),
60
- limit: long_1.default.fromInt(50),
61
- page: long_1.default.fromInt(1),
62
- sort: long_1.default.fromInt(-1),
70
+ };
71
+ (0, vitest_1.it)("should call TripPerformanceReport with correct headers and URL", async () => {
72
+ setupMockSuccessResponse();
73
+ await service.TripPerformanceReport({
74
+ groupByDatetime: report_2.TripPerformanceRequest_GroupBy.All,
75
+ hourly: false,
76
+ deviceId: [long_1.default.fromInt(10168)],
77
+ startedAt: new Date(),
78
+ finishedAt: new Date(),
79
+ groupByDevice: true
63
80
  });
64
- console.log("LogReport", res);
81
+ (0, vitest_1.expect)(mockHeaderProvider).toHaveBeenCalledOnce();
82
+ (0, vitest_1.expect)(global.fetch).toHaveBeenCalledWith(`${url}/com.fatehan.reports.ReportService/TripPerformanceReport`, vitest_1.expect.objectContaining({
83
+ method: 'POST',
84
+ headers: vitest_1.expect.objectContaining({
85
+ 'authorization': 'Bearer test-token-12345',
86
+ 'organization-id': 'org-test-1000001'
87
+ })
88
+ }));
65
89
  });
66
- (0, vitest_1.it)("AreaSummaryReviewReport", async () => {
67
- let res = await c.AreaSummaryReviewReport({
68
- areaIds: [long_1.default.fromInt(1000000), long_1.default.fromInt(1000009)],
69
- areaSource: report_2.AreaSummaryReviewRequest_AreaSourceEnum.odyssey,
70
- startedAt: new Date("2025-06-08 00:00:00"),
71
- finishedAt: new Date("2025-06-12 00:00:00"),
72
- deviceIds: [long_1.default.fromInt(119926)],
73
- scope: report_2.AreaSummaryReviewRequest_ScopeEnum.both_side,
74
- source: report_2.Source.CASSANDRA,
75
- });
76
- console.log("AreaSummaryReviewReport", res);
90
+ (0, vitest_1.it)("should call TripReport with correct headers and URL", async () => {
91
+ setupMockSuccessResponse();
92
+ await service.TripReport({ deviceIds: [long_1.default.fromInt(124251414)] });
93
+ (0, vitest_1.expect)(global.fetch).toHaveBeenCalledWith(`${url}/com.fatehan.reports.ReportService/TripReport`, vitest_1.expect.any(Object));
77
94
  });
78
- (0, vitest_1.it)("SystemIoReport", async () => {
79
- let res = await c.SystemIoReport({});
80
- console.log("SystemIoReport", res);
95
+ (0, vitest_1.it)("should call SystemIoReport and then set the cache on success", async () => {
96
+ const { setSystemIoCache } = await Promise.resolve().then(() => __importStar(require('./store/system.io')));
97
+ setupMockSuccessResponse({ ios: [{ id: 1, name: "TestIO" }] });
98
+ await service.SystemIoReport({});
99
+ (0, vitest_1.expect)(global.fetch).toHaveBeenCalledWith(`${url}/com.fatehan.reports.ReportService/SystemIoReport`, vitest_1.expect.any(Object));
81
100
  });
82
- (0, vitest_1.it)("WorkCycleReport", async () => {
83
- let res = await c.WorkCycleReport({
84
- areaStopSeconds: 10,
85
- startedAt: new Date("2025-06-01 00:00:00"),
86
- finishedAt: new Date("2025-06-30 00:00:00"),
87
- deviceIds: [long_1.default.fromInt(124251414)],
88
- shovelStopSeconds: 60,
89
- });
90
- console.log("WorkCycleReport", res);
91
- });
92
- (0, vitest_1.it)("ChartReport", async () => {
93
- await c.ChartReport({
94
- deviceIds: [long_1.default.fromInt(119926)],
95
- ios: ["Speed", "Compact.IoElement.ExternalVoltage"],
96
- startedAt: new Date("2025-06-28 00:00:00"),
97
- finishedAt: new Date("2025-06-30 00:00:00"),
98
- }, (chunk) => {
99
- console.log(report_2.ChartResponse.toJSON(chunk));
100
- });
101
- });
102
- (0, vitest_1.it)("Io", async () => {
103
- let devIo = {
104
- formula: "($speed / 3.6)",
105
- name: "سرعت",
106
- type: devices_1.SystemIo_SystemIoType.FLOAT,
107
- activeStyle: {
108
- color: "#3a3a3a",
109
- name: "سرعت",
110
- },
111
- inactiveStyle: {
112
- color: "#a3a3a3",
113
- name: "سرعت",
114
- },
115
- description: "سرعت خودرو",
116
- unit: "m/h",
117
- deviceId: long_1.default.fromNumber(7744),
118
- id: long_1.default.fromNumber(1),
119
- active: true,
120
- graphable: true,
121
- sord: 1,
122
- hidden: [],
123
- unknown: {}
101
+ (0, vitest_1.it)("should handle streaming ChartReport fetch call", async () => {
102
+ const mockStreamReader = {
103
+ read: vitest_1.vi.fn()
104
+ .mockResolvedValueOnce({ done: false, value: new Uint8Array([1, 2, 3]) })
105
+ .mockResolvedValueOnce({ done: true, value: undefined }),
124
106
  };
125
- let systemIos = await c.SystemIoReport({});
126
- let result = (0, system_io_1.default)(systemIos.ios, [devIo], {
127
- deviceId: long_1.default.fromNumber(7744),
128
- gpsTime: new Date("2025-04-21T09:06:06.000Z"),
129
- latitude: 32.61252975463867,
130
- longitude: 51.60394287109375,
131
- altitude: 1634,
132
- angle: 319,
133
- speed: 38,
134
- satellite: 20,
135
- ignition: true,
136
- mileage: long_1.default.fromNumber(64438820),
137
- compact: {
138
- ioElement: {
139
- gsm: 100,
140
- sleepMode: 0,
141
- gnss: 1,
142
- pdop: undefined,
143
- hdop: 6,
144
- externalVoltage: 13837,
145
- cellId: 27760,
146
- areaCode: 12540,
147
- batteryVoltage: 4097,
148
- batteryCurrent: long_1.default.fromNumber(0),
149
- batteryPercent: 97,
150
- operatorCode: 43235,
151
- tripOdometer: 10,
152
- ai1: 0,
153
- ai2: undefined,
154
- ai3: undefined,
155
- ai4: undefined,
156
- di1: true,
157
- di2: undefined,
158
- di3: undefined,
159
- di4: undefined,
160
- do1: false,
161
- do2: undefined,
162
- do3: undefined,
163
- do4: undefined,
164
- fuelRateGps: 787,
165
- fuelUsedGps: 2181327,
166
- axisX: -192,
167
- axisY: 317,
168
- axisZ: -60,
169
- iccId: long_1.default.fromNumber(408497408),
170
- sdStatus: undefined,
171
- iButton: undefined,
172
- dallas: undefined,
173
- lls: undefined,
174
- eye: undefined,
175
- ble: undefined,
176
- driver: undefined,
177
- msp500: undefined,
178
- rfid: undefined,
179
- ecoScore: undefined,
180
- networkType: undefined,
181
- pulseCounterDin1: undefined,
182
- pulseCounterDin2: undefined,
183
- btStatus: undefined,
184
- barcodeId: undefined,
185
- instantMovement: undefined,
186
- ul20202SensorFuelLevel: undefined,
187
- ul20202SensorStatus: undefined,
188
- groundSense: undefined,
189
- iso6709Coordinates: undefined,
190
- umtsLteCellId: undefined,
191
- ainSpeed: undefined,
192
- wakeReason: undefined,
193
- axlCalibrationStatus: undefined,
194
- frequencyDin1: undefined,
195
- frequencyDin2: undefined,
196
- ignition: undefined,
197
- idling: false,
198
- towing: false,
199
- unplug: false,
200
- jamming: false,
201
- movement: true,
202
- dataMode: 1,
203
- speed: 38,
204
- temperature: undefined,
205
- slopeX: undefined,
206
- slopeY: undefined,
207
- slopeZ: undefined,
208
- humidity: undefined,
209
- fuelFlow: undefined,
210
- doorCar: undefined,
211
- realtime: undefined,
212
- positioning: undefined,
213
- adminPhoneNumber: undefined,
214
- fuelCounter: undefined,
215
- impulseFrequency1: undefined,
216
- impulseCounter1: undefined,
217
- impulseRpm1: undefined,
218
- impulseFrequency2: undefined,
219
- impulseCounter2: undefined,
220
- impulseRpm2: undefined,
221
- impulseFrequency3: undefined,
222
- impulseCounter3: undefined,
223
- impulseRpm3: undefined,
224
- impulseFrequency4: undefined,
225
- impulseCounter4: undefined,
226
- impulseRpm4: undefined,
227
- numberOfData: undefined,
228
- rfidCom2: undefined,
229
- imsi: undefined,
230
- ultrasonicFuelLevel1: undefined,
231
- ultrasonicFuelLevel2: undefined,
232
- ultrasonicSoftwareStatus1: undefined,
233
- ultrasonicSoftwareStatus2: undefined,
234
- oneWireHumidity1: undefined,
235
- oneWireHumidity2: undefined,
236
- oneWireHumidity3: undefined,
237
- oneWireHumidity4: undefined,
238
- oneWireHumidity5: undefined,
239
- oneWireHumidity6: undefined,
240
- imei: undefined,
241
- noSimCounter: undefined,
242
- connectivityQuality: undefined,
243
- },
244
- eventualIoElements: {
245
- geoFenceZone01: undefined,
246
- geoFenceZone02: undefined,
247
- geoFenceZone03: undefined,
248
- geoFenceZone04: undefined,
249
- geoFenceZone05: undefined,
250
- geoFenceZone06: undefined,
251
- geoFenceZone07: undefined,
252
- geoFenceZone08: undefined,
253
- geoFenceZone09: undefined,
254
- geoFenceZone10: undefined,
255
- geoFenceZone11: undefined,
256
- geoFenceZone12: undefined,
257
- geoFenceZone13: undefined,
258
- geoFenceZone14: undefined,
259
- geoFenceZone15: undefined,
260
- geoFenceZone16: undefined,
261
- geoFenceZone17: undefined,
262
- geoFenceZone18: undefined,
263
- geoFenceZone19: undefined,
264
- geoFenceZone20: undefined,
265
- geoFenceZone21: undefined,
266
- geoFenceZone22: undefined,
267
- geoFenceZone23: undefined,
268
- geoFenceZone24: undefined,
269
- geoFenceZone25: undefined,
270
- geoFenceZone26: undefined,
271
- geoFenceZone27: undefined,
272
- geoFenceZone28: undefined,
273
- geoFenceZone29: undefined,
274
- geoFenceZone30: undefined,
275
- geoFenceZone31: undefined,
276
- geoFenceZone32: undefined,
277
- geoFenceZone33: undefined,
278
- geoFenceZone34: undefined,
279
- geoFenceZone35: undefined,
280
- geoFenceZone36: undefined,
281
- geoFenceZone37: undefined,
282
- geoFenceZone38: undefined,
283
- geoFenceZone39: undefined,
284
- geoFenceZone40: undefined,
285
- geoFenceZone41: undefined,
286
- geoFenceZone42: undefined,
287
- geoFenceZone43: undefined,
288
- geoFenceZone44: undefined,
289
- geoFenceZone45: undefined,
290
- geoFenceZone46: undefined,
291
- geoFenceZone47: undefined,
292
- geoFenceZone48: undefined,
293
- geoFenceZone49: undefined,
294
- geoFenceZone50: undefined,
295
- greenDrivingType: undefined,
296
- greenDrivingValue: undefined,
297
- crashDetection: undefined,
298
- immobilizer: undefined,
299
- iccId2: long_1.default.fromNumber(1871890036),
300
- greenDrivingEventDuration: undefined,
301
- alarm: undefined,
302
- ecoMaximum: undefined,
303
- ecoAverage: undefined,
304
- ecoDuration: undefined,
305
- drivingState: undefined,
306
- drivingRecords: undefined,
307
- crashEventCounter: undefined,
308
- gnssJamming: undefined,
309
- privateMode: undefined,
310
- ignitionOnCounter: undefined,
311
- motorcycleFallDetection: undefined,
312
- trip: undefined,
313
- overSpeeding: undefined,
314
- crashTraceData: undefined,
315
- bloodAlcoholContent: undefined,
316
- autoGeoFence: undefined,
317
- iccId3: undefined,
318
- geoFenceZone51: undefined,
319
- geoFenceZone52: undefined,
320
- geoFenceZone53: undefined,
321
- geoFenceZone54: undefined,
322
- geoFenceZone55: undefined,
323
- geoFenceZone56: undefined,
324
- geoFenceZone57: undefined,
325
- geoFenceZone58: undefined,
326
- geoFenceZone59: undefined,
327
- geoFenceZone60: undefined,
328
- geoFenceZone61: undefined,
329
- geoFenceZone62: undefined,
330
- geoFenceZone63: undefined,
331
- geoFenceZone64: undefined,
332
- geoFenceZone65: undefined,
333
- geoFenceZone66: undefined,
334
- geoFenceZone67: undefined,
335
- geoFenceZone68: undefined,
336
- geoFenceZone69: undefined,
337
- geoFenceZone70: undefined,
338
- geoFenceZone71: undefined,
339
- geoFenceZone72: undefined,
340
- geoFenceZone73: undefined,
341
- geoFenceZone74: undefined,
342
- geoFenceZone75: undefined,
343
- geoFenceZone76: undefined,
344
- geoFenceZone77: undefined,
345
- geoFenceZone78: undefined,
346
- geoFenceZone79: undefined,
347
- geoFenceZone80: undefined,
348
- geoFenceZone81: undefined,
349
- geoFenceZone82: undefined,
350
- geoFenceZone83: undefined,
351
- geoFenceZone84: undefined,
352
- geoFenceZone85: undefined,
353
- geoFenceZone86: undefined,
354
- geoFenceZone87: undefined,
355
- geoFenceZone88: undefined,
356
- geoFenceZone89: undefined,
357
- geoFenceZone90: undefined,
358
- geoFenceZone91: undefined,
359
- geoFenceZone92: undefined,
360
- geoFenceZone93: undefined,
361
- geoFenceZone94: undefined,
362
- geoFenceZone95: undefined,
363
- geoFenceZone96: undefined,
364
- geoFenceZone97: undefined,
365
- geoFenceZone98: undefined,
366
- geoFenceZone99: undefined,
367
- geoFenceZone100: undefined,
368
- },
369
- obdElements: undefined,
370
- obdOemElements: undefined,
371
- bleSensorsIoElements: undefined,
372
- canAdaptersElements: undefined,
373
- alerts: [0],
374
- alertValues: {},
375
- adas: undefined,
376
- fms: undefined,
377
- unknownIos: {},
378
- },
107
+ global.fetch.mockResolvedValue({
108
+ ok: true,
109
+ body: {
110
+ getReader: () => mockStreamReader,
111
+ }
379
112
  });
380
- console.log(result);
113
+ const onChunkCallback = vitest_1.vi.fn();
114
+ await service.ChartReport({ finishedAt: undefined, ios: [], startedAt: undefined, deviceIds: [long_1.default.fromInt(119926)] }, onChunkCallback);
115
+ (0, vitest_1.expect)(global.fetch).toHaveBeenCalledWith(`${url}/com.fatehan.reports.ReportService/ChartReport`, vitest_1.expect.any(Object));
116
+ });
117
+ (0, vitest_1.it)("SystemIoCast should trigger SystemIoReport when cache is empty", async () => {
118
+ setupMockSuccessResponse();
119
+ await service.SystemIoCast(null, [], { deviceId: long_1.default.ZERO });
120
+ (0, vitest_1.expect)(global.fetch).toHaveBeenCalledWith(`${url}/com.fatehan.reports.ReportService/SystemIoReport`, vitest_1.expect.any(Object));
121
+ (0, vitest_1.expect)(system_io_1.default).toHaveBeenCalled();
381
122
  });
382
123
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fatehan/tsrp",
3
- "version": "1.1.15",
3
+ "version": "1.2.1",
4
4
  "description": "fatehan main models",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",