@fatehan/tsrp 1.1.6 → 1.1.8
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 +5 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +46 -0
- package/dist/api.test.js +10 -4
- package/dist/fatehan/activities/workflow.d.ts +117 -0
- package/dist/fatehan/activities/workflow.d.ts.map +1 -0
- package/dist/fatehan/activities/workflow.js +1286 -0
- package/dist/fatehan/devices/devices.d.ts +0 -32
- package/dist/fatehan/devices/devices.d.ts.map +1 -1
- package/dist/fatehan/devices/devices.js +1 -108
- package/dist/fatehan/packets/dataModel.d.ts +4 -1
- package/dist/fatehan/packets/dataModel.d.ts.map +1 -1
- package/dist/fatehan/packets/dataModel.js +35 -5
- package/dist/fatehan/services/api.d.ts +32 -1
- package/dist/fatehan/services/api.d.ts.map +1 -1
- package/dist/fatehan/services/api.js +426 -5
- package/package.json +1 -1
- package/readme.md +1 -1
package/dist/api.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Workflow } from "./fatehan/activities/workflow";
|
|
2
|
+
import { AreaIndexRequest, AreaIndexResponse, ConfigRequest, ConfigResponse, DeviceRequest, DeviceResponse, MeRequest, MeResponse, WorkflowRequest, WorkflowResponse } from "./fatehan/services/api";
|
|
2
3
|
export declare class ApiService {
|
|
3
4
|
private readonly url;
|
|
4
5
|
private readonly namespace;
|
|
@@ -8,5 +9,8 @@ export declare class ApiService {
|
|
|
8
9
|
DeviceIndex(request: DeviceRequest): Promise<DeviceResponse>;
|
|
9
10
|
AreaIndex(request: AreaIndexRequest): Promise<AreaIndexResponse>;
|
|
10
11
|
ConfigIndex(request: ConfigRequest): Promise<ConfigResponse>;
|
|
12
|
+
WorkflowIndex(request: WorkflowRequest): Promise<WorkflowResponse>;
|
|
13
|
+
WorkflowUpdate(request: Workflow): Promise<Workflow>;
|
|
14
|
+
WorkflowStore(request: Workflow): Promise<Workflow>;
|
|
11
15
|
}
|
|
12
16
|
//# 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,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,SAAS,EACT,UAAU,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAE1B,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;IAcjE,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAoBhD,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAuB5D,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyBhE,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAuB5D,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyBlE,cAAc,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuBpD,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;CAsB3D"}
|
package/dist/api.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ApiService = void 0;
|
|
4
|
+
const workflow_1 = require("./fatehan/activities/workflow");
|
|
4
5
|
const api_1 = require("./fatehan/services/api");
|
|
5
6
|
class ApiService {
|
|
6
7
|
constructor(url, authorization, organizationId) {
|
|
@@ -77,5 +78,50 @@ class ApiService {
|
|
|
77
78
|
}
|
|
78
79
|
});
|
|
79
80
|
}
|
|
81
|
+
WorkflowIndex(request) {
|
|
82
|
+
return new Promise(async (resolve, reject) => {
|
|
83
|
+
const response = await fetch(`${this.url}/${this.namespace}/WorkflowIndex`, {
|
|
84
|
+
method: "POST",
|
|
85
|
+
headers: this.headers,
|
|
86
|
+
body: new Uint8Array(api_1.WorkflowRequest.encode(request).finish()),
|
|
87
|
+
});
|
|
88
|
+
if (response.ok) {
|
|
89
|
+
resolve(api_1.WorkflowResponse.decode(new Uint8Array(await response.arrayBuffer())));
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
reject(await response.text());
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
WorkflowUpdate(request) {
|
|
97
|
+
return new Promise(async (resolve, reject) => {
|
|
98
|
+
const response = await fetch(`${this.url}/${this.namespace}/WorkflowUpdate`, {
|
|
99
|
+
method: "POST",
|
|
100
|
+
headers: this.headers,
|
|
101
|
+
body: new Uint8Array(workflow_1.Workflow.encode(request).finish()),
|
|
102
|
+
});
|
|
103
|
+
if (response.ok) {
|
|
104
|
+
resolve(workflow_1.Workflow.decode(new Uint8Array(await response.arrayBuffer())));
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
reject(await response.text());
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
WorkflowStore(request) {
|
|
112
|
+
return new Promise(async (resolve, reject) => {
|
|
113
|
+
const response = await fetch(`${this.url}/${this.namespace}/WorkflowStore`, {
|
|
114
|
+
method: "POST",
|
|
115
|
+
headers: this.headers,
|
|
116
|
+
body: new Uint8Array(workflow_1.Workflow.encode(request).finish()),
|
|
117
|
+
});
|
|
118
|
+
if (response.ok) {
|
|
119
|
+
resolve(workflow_1.Workflow.decode(new Uint8Array(await response.arrayBuffer())));
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
reject(await response.text());
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
80
126
|
}
|
|
81
127
|
exports.ApiService = ApiService;
|
package/dist/api.test.js
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
const vitest_1 = require("vitest");
|
|
4
7
|
const api_1 = require("./api");
|
|
8
|
+
const long_1 = __importDefault(require("long"));
|
|
5
9
|
(0, vitest_1.describe)("ApiService", () => {
|
|
6
10
|
let url = "https://beta.myavl.ir/gapi";
|
|
7
|
-
let token = "
|
|
11
|
+
let token = "122|ivvRIydzLKkOxOLbcllFcOqu1LOJu99MDaE1n8Ci25ab37fd";
|
|
8
12
|
let organization = "1000001";
|
|
9
13
|
let c = new api_1.ApiService(url, token, organization);
|
|
10
14
|
(0, vitest_1.it)("MeIndex", async () => {
|
|
11
|
-
let res = await c.MeIndex({
|
|
15
|
+
let res = await c.MeIndex({
|
|
16
|
+
deviceId: long_1.default.fromInt(119926),
|
|
17
|
+
});
|
|
12
18
|
console.log("MeIndex", res);
|
|
13
19
|
});
|
|
14
20
|
(0, vitest_1.it)("ConfigIndex", async () => {
|
|
15
21
|
let res = await c.ConfigIndex({
|
|
16
|
-
domain: "api.myavl.ir"
|
|
22
|
+
domain: "api.myavl.ir",
|
|
17
23
|
});
|
|
18
24
|
console.log("ConfigIndex", res);
|
|
19
25
|
});
|
|
@@ -28,7 +34,7 @@ const api_1 = require("./api");
|
|
|
28
34
|
trackerId: undefined,
|
|
29
35
|
disablePagination: false,
|
|
30
36
|
page: 1,
|
|
31
|
-
pageSize: 15
|
|
37
|
+
pageSize: 15,
|
|
32
38
|
});
|
|
33
39
|
console.log("DeviceIndex", res);
|
|
34
40
|
});
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
|
+
import Long from "long";
|
|
3
|
+
export declare const protobufPackage = "com.fatehan.activities";
|
|
4
|
+
export declare enum WorkflowStat {
|
|
5
|
+
PENDING = 0,
|
|
6
|
+
RUNNING = 1,
|
|
7
|
+
FINISHED = 2,
|
|
8
|
+
EXPIRED = 3,
|
|
9
|
+
UNRECOGNIZED = -1
|
|
10
|
+
}
|
|
11
|
+
export declare function workflowStatFromJSON(object: any): WorkflowStat;
|
|
12
|
+
export declare function workflowStatToJSON(object: WorkflowStat): string;
|
|
13
|
+
export interface Workflow {
|
|
14
|
+
id: Long;
|
|
15
|
+
organizationId: Long;
|
|
16
|
+
createdBy: Long;
|
|
17
|
+
name: string;
|
|
18
|
+
description?: string | undefined;
|
|
19
|
+
flow?: Flow | undefined;
|
|
20
|
+
createdAt?: Date | undefined;
|
|
21
|
+
updatedAt?: Date | undefined;
|
|
22
|
+
}
|
|
23
|
+
export interface WorkflowTask {
|
|
24
|
+
id: Long;
|
|
25
|
+
organizationId: Long;
|
|
26
|
+
workflowId: Long;
|
|
27
|
+
deviceId: Long;
|
|
28
|
+
flow?: Flow | undefined;
|
|
29
|
+
pointer: number;
|
|
30
|
+
status: WorkflowStat;
|
|
31
|
+
startsAt?: Date | undefined;
|
|
32
|
+
expiresAt?: Date | undefined;
|
|
33
|
+
createdAt?: Date | undefined;
|
|
34
|
+
updatedAt?: Date | undefined;
|
|
35
|
+
}
|
|
36
|
+
export interface Flow {
|
|
37
|
+
defaultReport?: DefaultReportModule | undefined;
|
|
38
|
+
notificationTrigger?: NotificationTrigger | undefined;
|
|
39
|
+
events: Event[];
|
|
40
|
+
}
|
|
41
|
+
export interface Event {
|
|
42
|
+
notificationTrigger?: NotificationTrigger | undefined;
|
|
43
|
+
areaModule?: AreaModule | undefined;
|
|
44
|
+
shovelModule?: ShovelModule | undefined;
|
|
45
|
+
}
|
|
46
|
+
export interface AreaModule {
|
|
47
|
+
starts: AreaModule_Event;
|
|
48
|
+
finishes: AreaModule_Event;
|
|
49
|
+
areaId: Long;
|
|
50
|
+
/** do not change, these are changing by gowf * */
|
|
51
|
+
running: boolean;
|
|
52
|
+
startedAt?: Date | undefined;
|
|
53
|
+
finishedAt?: Date | undefined;
|
|
54
|
+
totalMileageOnStart?: Long | undefined;
|
|
55
|
+
totalMileageOnFinish?: Long | undefined;
|
|
56
|
+
maxSpeed: number;
|
|
57
|
+
totalSpeed: number;
|
|
58
|
+
countSpeed: number;
|
|
59
|
+
duration: number;
|
|
60
|
+
/** these are only accepted when both starts and finishes are not none * */
|
|
61
|
+
minimumAcceptedDuration?: number | undefined;
|
|
62
|
+
}
|
|
63
|
+
export declare enum AreaModule_Event {
|
|
64
|
+
NONE = 0,
|
|
65
|
+
ENTER = 1,
|
|
66
|
+
EXIT = 2,
|
|
67
|
+
UNRECOGNIZED = -1
|
|
68
|
+
}
|
|
69
|
+
export declare function areaModule_EventFromJSON(object: any): AreaModule_Event;
|
|
70
|
+
export declare function areaModule_EventToJSON(object: AreaModule_Event): string;
|
|
71
|
+
export interface ShovelModule {
|
|
72
|
+
inside: boolean;
|
|
73
|
+
shovelId: Long;
|
|
74
|
+
minActiveSec?: number | undefined;
|
|
75
|
+
maxActiveSec?: number | undefined;
|
|
76
|
+
minMileageSec?: number | undefined;
|
|
77
|
+
maxMileageSec?: number | undefined;
|
|
78
|
+
}
|
|
79
|
+
export interface DefaultReportModule {
|
|
80
|
+
deviceId: Long;
|
|
81
|
+
duration: number;
|
|
82
|
+
mileage: number;
|
|
83
|
+
startedAt?: Date | undefined;
|
|
84
|
+
finishedAt?: Date | undefined;
|
|
85
|
+
}
|
|
86
|
+
export interface NotificationTrigger {
|
|
87
|
+
title: string;
|
|
88
|
+
body: string;
|
|
89
|
+
}
|
|
90
|
+
export declare const Workflow: MessageFns<Workflow>;
|
|
91
|
+
export declare const WorkflowTask: MessageFns<WorkflowTask>;
|
|
92
|
+
export declare const Flow: MessageFns<Flow>;
|
|
93
|
+
export declare const Event: MessageFns<Event>;
|
|
94
|
+
export declare const AreaModule: MessageFns<AreaModule>;
|
|
95
|
+
export declare const ShovelModule: MessageFns<ShovelModule>;
|
|
96
|
+
export declare const DefaultReportModule: MessageFns<DefaultReportModule>;
|
|
97
|
+
export declare const NotificationTrigger: MessageFns<NotificationTrigger>;
|
|
98
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
99
|
+
export type DeepPartial<T> = T extends Builtin ? T : T extends Long ? string | number | Long : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
|
|
100
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
101
|
+
} : Partial<T>;
|
|
102
|
+
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
103
|
+
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
|
|
104
|
+
[K in keyof P]: Exact<P[K], I[K]>;
|
|
105
|
+
} & {
|
|
106
|
+
[K in Exclude<keyof I, KeysOfUnion<P>>]: never;
|
|
107
|
+
};
|
|
108
|
+
export interface MessageFns<T> {
|
|
109
|
+
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
110
|
+
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
111
|
+
fromJSON(object: any): T;
|
|
112
|
+
toJSON(message: T): unknown;
|
|
113
|
+
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
|
|
114
|
+
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
|
|
115
|
+
}
|
|
116
|
+
export {};
|
|
117
|
+
//# sourceMappingURL=workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../../src/fatehan/activities/workflow.ts"],"names":[],"mappings":"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"}
|