@fmsim/api 2.0.0-beta.75 → 2.0.0-beta.84
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/custom-elements.json +108 -0
- package/dist/src/graphql/playback.d.ts +24 -0
- package/dist/src/graphql/playback.js +26 -0
- package/dist/src/graphql/playback.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +10 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/restful/playback.d.ts +14 -1
- package/dist/src/restful/playback.js +22 -0
- package/dist/src/restful/playback.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
package/custom-elements.json
CHANGED
|
@@ -86,6 +86,30 @@
|
|
|
86
86
|
}
|
|
87
87
|
]
|
|
88
88
|
},
|
|
89
|
+
{
|
|
90
|
+
"kind": "function",
|
|
91
|
+
"name": "fetchCarrierLocationHistory",
|
|
92
|
+
"parameters": [
|
|
93
|
+
{
|
|
94
|
+
"name": "startTime",
|
|
95
|
+
"type": {
|
|
96
|
+
"text": "string"
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"name": "endTime",
|
|
101
|
+
"type": {
|
|
102
|
+
"text": "string"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"name": "carrierName",
|
|
107
|
+
"type": {
|
|
108
|
+
"text": "string"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
},
|
|
89
113
|
{
|
|
90
114
|
"kind": "function",
|
|
91
115
|
"name": "fetchBoardById",
|
|
@@ -214,6 +238,14 @@
|
|
|
214
238
|
"module": "src/index.ts"
|
|
215
239
|
}
|
|
216
240
|
},
|
|
241
|
+
{
|
|
242
|
+
"kind": "js",
|
|
243
|
+
"name": "fetchCarrierLocationHistory",
|
|
244
|
+
"declaration": {
|
|
245
|
+
"name": "fetchCarrierLocationHistory",
|
|
246
|
+
"module": "src/index.ts"
|
|
247
|
+
}
|
|
248
|
+
},
|
|
217
249
|
{
|
|
218
250
|
"kind": "js",
|
|
219
251
|
"name": "fetchBoardById",
|
|
@@ -862,6 +894,36 @@
|
|
|
862
894
|
}
|
|
863
895
|
}
|
|
864
896
|
]
|
|
897
|
+
},
|
|
898
|
+
{
|
|
899
|
+
"kind": "function",
|
|
900
|
+
"name": "fetchCarrierLocationHistory",
|
|
901
|
+
"return": {
|
|
902
|
+
"type": {
|
|
903
|
+
"text": "Promise<CarrierLocationHistoryResult>"
|
|
904
|
+
}
|
|
905
|
+
},
|
|
906
|
+
"parameters": [
|
|
907
|
+
{
|
|
908
|
+
"name": "startTime",
|
|
909
|
+
"type": {
|
|
910
|
+
"text": "string"
|
|
911
|
+
}
|
|
912
|
+
},
|
|
913
|
+
{
|
|
914
|
+
"name": "endTime",
|
|
915
|
+
"type": {
|
|
916
|
+
"text": "string"
|
|
917
|
+
}
|
|
918
|
+
},
|
|
919
|
+
{
|
|
920
|
+
"name": "carrierName",
|
|
921
|
+
"type": {
|
|
922
|
+
"text": "string"
|
|
923
|
+
}
|
|
924
|
+
}
|
|
925
|
+
],
|
|
926
|
+
"description": "GraphQL — 단일 carrier 의 시계열 위치 이력 조회.\nRESTful 의 GET /mcs/lv/playback/carrier-location 미러.\n\n요청 시간 포맷: \"YYYY-MM-DD HH:mm:ss\" (스페이스 구분자, 기존 playback 동일).\n응답 time 포맷: \"YYYY-MM-DDTHH:mm:ss[.SSS]\" (T 구분자, 가변 ms).\n양쪽 모두 timezone suffix 없음 — 로컬타임 기준."
|
|
865
927
|
}
|
|
866
928
|
],
|
|
867
929
|
"exports": [
|
|
@@ -872,6 +934,14 @@
|
|
|
872
934
|
"name": "fetchPlayback",
|
|
873
935
|
"module": "src/graphql/playback.ts"
|
|
874
936
|
}
|
|
937
|
+
},
|
|
938
|
+
{
|
|
939
|
+
"kind": "js",
|
|
940
|
+
"name": "fetchCarrierLocationHistory",
|
|
941
|
+
"declaration": {
|
|
942
|
+
"name": "fetchCarrierLocationHistory",
|
|
943
|
+
"module": "src/graphql/playback.ts"
|
|
944
|
+
}
|
|
875
945
|
}
|
|
876
946
|
]
|
|
877
947
|
},
|
|
@@ -2108,6 +2178,36 @@
|
|
|
2108
2178
|
}
|
|
2109
2179
|
],
|
|
2110
2180
|
"description": "RESTful 플레이백 데이터 조회 — 명세에 따라 URL 이 2가지로 분리됨.\n\nv1 범위 조회:\n GET /mcs/lv/playback?startTime=...&endTime=...&includeSnapshot=...\n\nv2 개수 조회:\n GET /mcs/lv/playback/count?startTime=...&count=...&includeSnapshot=...\n\nendTime 이 주어지면 v1, count 가 주어지면 v2 로 라우팅.\n둘 다 주어지면 endTime 우선 (범위 우선 원칙).\n둘 다 없으면 파라미터 에러지만 서버가 처리."
|
|
2181
|
+
},
|
|
2182
|
+
{
|
|
2183
|
+
"kind": "function",
|
|
2184
|
+
"name": "fetchCarrierLocationHistory",
|
|
2185
|
+
"return": {
|
|
2186
|
+
"type": {
|
|
2187
|
+
"text": "Promise<CarrierLocationHistoryResult>"
|
|
2188
|
+
}
|
|
2189
|
+
},
|
|
2190
|
+
"parameters": [
|
|
2191
|
+
{
|
|
2192
|
+
"name": "startTime",
|
|
2193
|
+
"type": {
|
|
2194
|
+
"text": "string"
|
|
2195
|
+
}
|
|
2196
|
+
},
|
|
2197
|
+
{
|
|
2198
|
+
"name": "endTime",
|
|
2199
|
+
"type": {
|
|
2200
|
+
"text": "string"
|
|
2201
|
+
}
|
|
2202
|
+
},
|
|
2203
|
+
{
|
|
2204
|
+
"name": "carrierName",
|
|
2205
|
+
"type": {
|
|
2206
|
+
"text": "string"
|
|
2207
|
+
}
|
|
2208
|
+
}
|
|
2209
|
+
],
|
|
2210
|
+
"description": "RESTful — 단일 carrier 의 시계열 위치 이력 조회.\n\n GET /mcs/lv/playback/carrier-location\n ?startTime=YYYY-MM-DD HH:mm:ss\n &endTime=YYYY-MM-DD HH:mm:ss\n &carrierName=...\n\n요청 시간 포맷: \"YYYY-MM-DD HH:mm:ss\" (스페이스 구분자, 기존 /playback 동일).\n응답 time 포맷: \"YYYY-MM-DDTHH:mm:ss[.SSS]\" (T 구분자, 가변 ms).\n양쪽 모두 timezone suffix 없음 — 로컬타임 기준."
|
|
2111
2211
|
}
|
|
2112
2212
|
],
|
|
2113
2213
|
"exports": [
|
|
@@ -2118,6 +2218,14 @@
|
|
|
2118
2218
|
"name": "fetchPlayback",
|
|
2119
2219
|
"module": "src/restful/playback.ts"
|
|
2120
2220
|
}
|
|
2221
|
+
},
|
|
2222
|
+
{
|
|
2223
|
+
"kind": "js",
|
|
2224
|
+
"name": "fetchCarrierLocationHistory",
|
|
2225
|
+
"declaration": {
|
|
2226
|
+
"name": "fetchCarrierLocationHistory",
|
|
2227
|
+
"module": "src/restful/playback.ts"
|
|
2228
|
+
}
|
|
2121
2229
|
}
|
|
2122
2230
|
]
|
|
2123
2231
|
},
|
|
@@ -15,3 +15,27 @@ export interface PlaybackResult {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
export declare function fetchPlayback(startTime: string, endTime?: string, includeSnapshot?: boolean, count?: number): Promise<PlaybackResult>;
|
|
18
|
+
export interface CarrierLocation {
|
|
19
|
+
/**
|
|
20
|
+
* "YYYY-MM-DDTHH:mm:ss[.SSS]" — T 구분자, ms 정밀도 가변.
|
|
21
|
+
* timezone suffix 없음 — 기존 /playback 과 동일 (서버=클라 로컬타임 가정).
|
|
22
|
+
*/
|
|
23
|
+
time: string;
|
|
24
|
+
/** 머신 이름. 추적 불가 구간은 "NA". */
|
|
25
|
+
machineName: string;
|
|
26
|
+
/** 유닛 이름. 추적 불가 구간은 "NA". */
|
|
27
|
+
unitName: string;
|
|
28
|
+
}
|
|
29
|
+
export interface CarrierLocationHistoryResult {
|
|
30
|
+
errorMessage: string | null;
|
|
31
|
+
carrierLocHistory: CarrierLocation[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* GraphQL — 단일 carrier 의 시계열 위치 이력 조회.
|
|
35
|
+
* RESTful 의 GET /mcs/lv/playback/carrier-location 미러.
|
|
36
|
+
*
|
|
37
|
+
* 요청 시간 포맷: "YYYY-MM-DD HH:mm:ss" (스페이스 구분자, 기존 playback 동일).
|
|
38
|
+
* 응답 time 포맷: "YYYY-MM-DDTHH:mm:ss[.SSS]" (T 구분자, 가변 ms).
|
|
39
|
+
* 양쪽 모두 timezone suffix 없음 — 로컬타임 기준.
|
|
40
|
+
*/
|
|
41
|
+
export declare function fetchCarrierLocationHistory(startTime: string, endTime: string, carrierName: string): Promise<CarrierLocationHistoryResult>;
|
|
@@ -41,4 +41,30 @@ export async function fetchPlayback(startTime, endTime, includeSnapshot = true,
|
|
|
41
41
|
}
|
|
42
42
|
return result;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* GraphQL — 단일 carrier 의 시계열 위치 이력 조회.
|
|
46
|
+
* RESTful 의 GET /mcs/lv/playback/carrier-location 미러.
|
|
47
|
+
*
|
|
48
|
+
* 요청 시간 포맷: "YYYY-MM-DD HH:mm:ss" (스페이스 구분자, 기존 playback 동일).
|
|
49
|
+
* 응답 time 포맷: "YYYY-MM-DDTHH:mm:ss[.SSS]" (T 구분자, 가변 ms).
|
|
50
|
+
* 양쪽 모두 timezone suffix 없음 — 로컬타임 기준.
|
|
51
|
+
*/
|
|
52
|
+
export async function fetchCarrierLocationHistory(startTime, endTime, carrierName) {
|
|
53
|
+
const { data } = await client.query({
|
|
54
|
+
query: gql `
|
|
55
|
+
query ($startTime: String!, $endTime: String!, $carrierName: String!) {
|
|
56
|
+
carrierLocationHistory(startTime: $startTime, endTime: $endTime, carrierName: $carrierName) {
|
|
57
|
+
errorMessage
|
|
58
|
+
carrierLocHistory {
|
|
59
|
+
time
|
|
60
|
+
machineName
|
|
61
|
+
unitName
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
`,
|
|
66
|
+
variables: { startTime, endTime, carrierName }
|
|
67
|
+
});
|
|
68
|
+
return data.carrierLocationHistory;
|
|
69
|
+
}
|
|
44
70
|
//# sourceMappingURL=playback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playback.js","sourceRoot":"","sources":["../../../src/graphql/playback.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAqBzC,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,OAAgB,EAChB,kBAA2B,IAAI,EAC/B,KAAc;;IAEd,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;KAiBT;QACD,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE;KAC1D,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,QAA0B,CAAA;IAE9C,+BAA+B;IAC/B,IAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,0CAAE,SAAS,EAAE,CAAC;QAChC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YACjD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACnC,IAAI,CAAC;wBAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAAC,CAAC;oBAAC,WAAM,CAAC;wBAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAA;oBAAC,CAAC;gBACvE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["import gql from 'graphql-tag'\nimport { client } from '@operato/graphql'\n\nexport interface PlaybackFrame {\n type: 'snapshot' | 'diff'\n time: string\n data: any[]\n}\n\nexport interface PlaybackScenario {\n scenarioName: string\n snapshots: PlaybackFrame[]\n}\n\nexport interface PlaybackResult {\n status: boolean\n errorMessage?: string\n playback?: {\n scenarios: PlaybackScenario[]\n }\n}\n\nexport async function fetchPlayback(\n startTime: string,\n endTime?: string,\n includeSnapshot: boolean = true,\n count?: number\n): Promise<PlaybackResult> {\n const { data } = await client.query({\n query: gql`\n query ($startTime: String!, $endTime: String, $count: Int, $includeSnapshot: Boolean) {\n playback(startTime: $startTime, endTime: $endTime, count: $count, includeSnapshot: $includeSnapshot) {\n status\n errorMessage\n playback {\n scenarios {\n scenarioName\n snapshots {\n type\n time\n data\n }\n }\n }\n }\n }\n `,\n variables: { startTime, endTime, count, includeSnapshot }\n })\n\n const result = data.playback as PlaybackResult\n\n // data가 JSON string으로 전달되므로 파싱\n if (result?.playback?.scenarios) {\n for (const scenario of result.playback.scenarios) {\n for (const frame of scenario.snapshots) {\n if (typeof frame.data === 'string') {\n try { frame.data = JSON.parse(frame.data) } catch { frame.data = [] }\n }\n }\n }\n }\n\n return result\n}\n"]}
|
|
1
|
+
{"version":3,"file":"playback.js","sourceRoot":"","sources":["../../../src/graphql/playback.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAqBzC,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,OAAgB,EAChB,kBAA2B,IAAI,EAC/B,KAAc;;IAEd,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;KAiBT;QACD,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE;KAC1D,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,QAA0B,CAAA;IAE9C,+BAA+B;IAC/B,IAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,0CAAE,SAAS,EAAE,CAAC;QAChC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YACjD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACnC,IAAI,CAAC;wBAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAAC,CAAC;oBAAC,WAAM,CAAC;wBAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAA;oBAAC,CAAC;gBACvE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAqBD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,SAAiB,EACjB,OAAe,EACf,WAAmB;IAEnB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;;KAWT;QACD,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE;KAC/C,CAAC,CAAA;IAEF,OAAO,IAAI,CAAC,sBAAsD,CAAA;AACpE,CAAC","sourcesContent":["import gql from 'graphql-tag'\nimport { client } from '@operato/graphql'\n\nexport interface PlaybackFrame {\n type: 'snapshot' | 'diff'\n time: string\n data: any[]\n}\n\nexport interface PlaybackScenario {\n scenarioName: string\n snapshots: PlaybackFrame[]\n}\n\nexport interface PlaybackResult {\n status: boolean\n errorMessage?: string\n playback?: {\n scenarios: PlaybackScenario[]\n }\n}\n\nexport async function fetchPlayback(\n startTime: string,\n endTime?: string,\n includeSnapshot: boolean = true,\n count?: number\n): Promise<PlaybackResult> {\n const { data } = await client.query({\n query: gql`\n query ($startTime: String!, $endTime: String, $count: Int, $includeSnapshot: Boolean) {\n playback(startTime: $startTime, endTime: $endTime, count: $count, includeSnapshot: $includeSnapshot) {\n status\n errorMessage\n playback {\n scenarios {\n scenarioName\n snapshots {\n type\n time\n data\n }\n }\n }\n }\n }\n `,\n variables: { startTime, endTime, count, includeSnapshot }\n })\n\n const result = data.playback as PlaybackResult\n\n // data가 JSON string으로 전달되므로 파싱\n if (result?.playback?.scenarios) {\n for (const scenario of result.playback.scenarios) {\n for (const frame of scenario.snapshots) {\n if (typeof frame.data === 'string') {\n try { frame.data = JSON.parse(frame.data) } catch { frame.data = [] }\n }\n }\n }\n }\n\n return result\n}\n\n// ── Carrier Location History ─────────────────────────────────────────\n\nexport interface CarrierLocation {\n /**\n * \"YYYY-MM-DDTHH:mm:ss[.SSS]\" — T 구분자, ms 정밀도 가변.\n * timezone suffix 없음 — 기존 /playback 과 동일 (서버=클라 로컬타임 가정).\n */\n time: string\n /** 머신 이름. 추적 불가 구간은 \"NA\". */\n machineName: string\n /** 유닛 이름. 추적 불가 구간은 \"NA\". */\n unitName: string\n}\n\nexport interface CarrierLocationHistoryResult {\n errorMessage: string | null\n carrierLocHistory: CarrierLocation[]\n}\n\n/**\n * GraphQL — 단일 carrier 의 시계열 위치 이력 조회.\n * RESTful 의 GET /mcs/lv/playback/carrier-location 미러.\n *\n * 요청 시간 포맷: \"YYYY-MM-DD HH:mm:ss\" (스페이스 구분자, 기존 playback 동일).\n * 응답 time 포맷: \"YYYY-MM-DDTHH:mm:ss[.SSS]\" (T 구분자, 가변 ms).\n * 양쪽 모두 timezone suffix 없음 — 로컬타임 기준.\n */\nexport async function fetchCarrierLocationHistory(\n startTime: string,\n endTime: string,\n carrierName: string\n): Promise<CarrierLocationHistoryResult> {\n const { data } = await client.query({\n query: gql`\n query ($startTime: String!, $endTime: String!, $carrierName: String!) {\n carrierLocationHistory(startTime: $startTime, endTime: $endTime, carrierName: $carrierName) {\n errorMessage\n carrierLocHistory {\n time\n machineName\n unitName\n }\n }\n }\n `,\n variables: { startTime, endTime, carrierName }\n })\n\n return data.carrierLocationHistory as CarrierLocationHistoryResult\n}\n"]}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare function fetchGroupList(): Promise<any>;
|
|
|
5
5
|
export declare function fetchBoardList(listParam?: any): Promise<any>;
|
|
6
6
|
export declare function reorderBoard(id: string, prevId?: string, nextId?: string): Promise<any>;
|
|
7
7
|
export declare function fetchPlayback(startTime: string, endTime?: string, includeSnapshot?: boolean, count?: number): Promise<import("./graphql").PlaybackResult>;
|
|
8
|
+
export declare function fetchCarrierLocationHistory(startTime: string, endTime: string, carrierName: string): Promise<import("./graphql").CarrierLocationHistoryResult>;
|
|
8
9
|
export declare function fetchBoardById(id: string, cachedUpdatedAt?: string): Promise<any>;
|
|
9
10
|
export declare function fetchBoardNameById(id: string): Promise<string>;
|
|
10
11
|
export declare function createBoard(board: Board): Promise<any>;
|
package/dist/src/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * from './graphql';
|
|
2
2
|
import { themesColorMap as graphqlThemesColorMap, themesColorRange as graphqlThemesColorRange, themesAnimationMap as graphqlThemesAnimationMap } from './graphql';
|
|
3
3
|
import { getPopupData as restfulGetPopupData, themesColorMap as restfulThemesColorMap, themesColorRange as restfulThemesColorRange, themesAnimationMap as restfulThemesAnimationMap } from './restful';
|
|
4
|
-
import { fetchGroupList as restfulFetchGroupList, fetchBoardList as restfulFetchBoardList, createBoard as restfulCreateBoard, fetchBoardById as restfulFetchBoardById, fetchBoardNameById as restfulFetchBoardNameById, reorderBoard as restfulReorderBoard, fetchPlayback as restfulFetchPlayback } from './restful';
|
|
5
|
-
import { fetchGroupList as graphqlFetchGroupList, fetchBoardList as graphqlFetchBoardList, createBoard as graphqlCreateBoard, fetchBoardById as graphqlFetchBoardById, fetchBoardNameById as graphqlFetchBoardNameById, reorderBoard as graphqlReorderBoard, fetchPlayback as graphqlFetchPlayback } from './graphql';
|
|
4
|
+
import { fetchGroupList as restfulFetchGroupList, fetchBoardList as restfulFetchBoardList, createBoard as restfulCreateBoard, fetchBoardById as restfulFetchBoardById, fetchBoardNameById as restfulFetchBoardNameById, reorderBoard as restfulReorderBoard, fetchPlayback as restfulFetchPlayback, fetchCarrierLocationHistory as restfulFetchCarrierLocationHistory } from './restful';
|
|
5
|
+
import { fetchGroupList as graphqlFetchGroupList, fetchBoardList as graphqlFetchBoardList, createBoard as graphqlCreateBoard, fetchBoardById as graphqlFetchBoardById, fetchBoardNameById as graphqlFetchBoardNameById, reorderBoard as graphqlReorderBoard, fetchPlayback as graphqlFetchPlayback, fetchCarrierLocationHistory as graphqlFetchCarrierLocationHistory } from './graphql';
|
|
6
6
|
export function isRestfulAvailable() {
|
|
7
7
|
return sessionStorage.getItem('lv_server_ip_port');
|
|
8
8
|
}
|
|
@@ -38,6 +38,14 @@ export async function fetchPlayback(startTime, endTime, includeSnapshot = true,
|
|
|
38
38
|
return await graphqlFetchPlayback(startTime, endTime, includeSnapshot, count);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
+
export async function fetchCarrierLocationHistory(startTime, endTime, carrierName) {
|
|
42
|
+
if (isRestfulAvailable()) {
|
|
43
|
+
return await restfulFetchCarrierLocationHistory(startTime, endTime, carrierName);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return await graphqlFetchCarrierLocationHistory(startTime, endTime, carrierName);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
41
49
|
export async function fetchBoardById(id, cachedUpdatedAt) {
|
|
42
50
|
if (isRestfulAvailable()) {
|
|
43
51
|
return await restfulFetchBoardById(id, cachedUpdatedAt);
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AAEzB,OAAO,EACL,cAAc,IAAI,qBAAqB,EACvC,gBAAgB,IAAI,uBAAuB,EAC3C,kBAAkB,IAAI,yBAAyB,EAChD,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,YAAY,IAAI,mBAAmB,EACnC,cAAc,IAAI,qBAAqB,EACvC,gBAAgB,IAAI,uBAAuB,EAC3C,kBAAkB,IAAI,yBAAyB,EAChD,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,cAAc,IAAI,qBAAqB,EACvC,cAAc,IAAI,qBAAqB,EACvC,WAAW,IAAI,kBAAkB,EACjC,cAAc,IAAI,qBAAqB,EACvC,kBAAkB,IAAI,yBAAyB,EAC/C,YAAY,IAAI,mBAAmB,EACnC,aAAa,IAAI,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export * from './graphql'\n\nimport {\n themesColorMap as graphqlThemesColorMap,\n themesColorRange as graphqlThemesColorRange,\n themesAnimationMap as graphqlThemesAnimationMap\n} from './graphql'\n\nimport {\n getPopupData as restfulGetPopupData,\n themesColorMap as restfulThemesColorMap,\n themesColorRange as restfulThemesColorRange,\n themesAnimationMap as restfulThemesAnimationMap\n} from './restful'\n\nimport {\n fetchGroupList as restfulFetchGroupList,\n fetchBoardList as restfulFetchBoardList,\n createBoard as restfulCreateBoard,\n fetchBoardById as restfulFetchBoardById,\n fetchBoardNameById as restfulFetchBoardNameById,\n reorderBoard as restfulReorderBoard,\n fetchPlayback as restfulFetchPlayback,\n fetchCarrierLocationHistory as restfulFetchCarrierLocationHistory\n} from './restful'\n\nimport {\n fetchGroupList as graphqlFetchGroupList,\n fetchBoardList as graphqlFetchBoardList,\n createBoard as graphqlCreateBoard,\n fetchBoardById as graphqlFetchBoardById,\n fetchBoardNameById as graphqlFetchBoardNameById,\n reorderBoard as graphqlReorderBoard,\n fetchPlayback as graphqlFetchPlayback,\n fetchCarrierLocationHistory as graphqlFetchCarrierLocationHistory\n} from './graphql'\n\nimport { Board } from './types'\n\nexport function isRestfulAvailable() {\n return sessionStorage.getItem('lv_server_ip_port')\n}\n\nexport async function fetchGroupList() {\n if (isRestfulAvailable()) {\n return await restfulFetchGroupList()\n } else {\n return await graphqlFetchGroupList()\n }\n}\n\nexport async function fetchBoardList(listParam: any = {}) {\n if (isRestfulAvailable()) {\n return await restfulFetchBoardList(listParam)\n } else {\n return await graphqlFetchBoardList(listParam)\n }\n}\n\nexport async function reorderBoard(id: string, prevId?: string, nextId?: string) {\n if (isRestfulAvailable()) {\n return await restfulReorderBoard(id, prevId, nextId)\n } else {\n return await graphqlReorderBoard(id, prevId, nextId)\n }\n}\n\nexport async function fetchPlayback(\n startTime: string,\n endTime?: string,\n includeSnapshot: boolean = true,\n count?: number\n) {\n if (isRestfulAvailable()) {\n return await restfulFetchPlayback(startTime, endTime, includeSnapshot, count)\n } else {\n return await graphqlFetchPlayback(startTime, endTime, includeSnapshot, count)\n }\n}\n\nexport async function fetchCarrierLocationHistory(\n startTime: string,\n endTime: string,\n carrierName: string\n) {\n if (isRestfulAvailable()) {\n return await restfulFetchCarrierLocationHistory(startTime, endTime, carrierName)\n } else {\n return await graphqlFetchCarrierLocationHistory(startTime, endTime, carrierName)\n }\n}\n\nexport async function fetchBoardById(id: string, cachedUpdatedAt?: string) {\n if (isRestfulAvailable()) {\n return await restfulFetchBoardById(id, cachedUpdatedAt)\n } else {\n return await graphqlFetchBoardById(id, cachedUpdatedAt)\n }\n}\n\nexport async function fetchBoardNameById(id: string): Promise<string> {\n if (isRestfulAvailable()) {\n return await restfulFetchBoardNameById(id)\n } else {\n return await graphqlFetchBoardNameById(id)\n }\n}\n\nexport async function createBoard(board: Board) {\n if (isRestfulAvailable()) {\n return await restfulCreateBoard(board)\n } else {\n return await graphqlCreateBoard(board)\n }\n}\n\nexport async function themesColorMap() {\n if (isRestfulAvailable()) {\n return await restfulThemesColorMap()\n } else {\n return await graphqlThemesColorMap()\n }\n}\n\nexport async function themesColorRange() {\n if (isRestfulAvailable()) {\n return await restfulThemesColorRange()\n } else {\n return await graphqlThemesColorRange()\n }\n}\n\nexport async function themesAnimationMap() {\n if (isRestfulAvailable()) {\n return await restfulThemesAnimationMap()\n } else {\n return await graphqlThemesAnimationMap()\n }\n}\n\nexport async function getPopupData(type: string, id: string) {\n if (isRestfulAvailable()) {\n const response = (await restfulGetPopupData(type, id))?.data\n\n if (!response || !response.status) {\n document.dispatchEvent(\n new CustomEvent('notify', {\n detail: {\n level: 'error',\n message: 'Error : getPopupData'\n }\n })\n )\n throw new Error('Error : getPopupData')\n }\n\n return response.popupData\n } else {\n await new Promise(resolve => setTimeout(resolve, 1000))\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PlaybackResult } from '../graphql/playback';
|
|
1
|
+
import type { PlaybackResult, CarrierLocationHistoryResult } from '../graphql/playback';
|
|
2
2
|
export interface PlaybackParams {
|
|
3
3
|
/** 시작 시점 "YYYY-MM-DD HH:mm:ss" */
|
|
4
4
|
startTime: string;
|
|
@@ -23,3 +23,16 @@ export interface PlaybackParams {
|
|
|
23
23
|
* 둘 다 없으면 파라미터 에러지만 서버가 처리.
|
|
24
24
|
*/
|
|
25
25
|
export declare function fetchPlayback(startTime: string, endTime?: string, includeSnapshot?: boolean, count?: number): Promise<PlaybackResult>;
|
|
26
|
+
/**
|
|
27
|
+
* RESTful — 단일 carrier 의 시계열 위치 이력 조회.
|
|
28
|
+
*
|
|
29
|
+
* GET /mcs/lv/playback/carrier-location
|
|
30
|
+
* ?startTime=YYYY-MM-DD HH:mm:ss
|
|
31
|
+
* &endTime=YYYY-MM-DD HH:mm:ss
|
|
32
|
+
* &carrierName=...
|
|
33
|
+
*
|
|
34
|
+
* 요청 시간 포맷: "YYYY-MM-DD HH:mm:ss" (스페이스 구분자, 기존 /playback 동일).
|
|
35
|
+
* 응답 time 포맷: "YYYY-MM-DDTHH:mm:ss[.SSS]" (T 구분자, 가변 ms).
|
|
36
|
+
* 양쪽 모두 timezone suffix 없음 — 로컬타임 기준.
|
|
37
|
+
*/
|
|
38
|
+
export declare function fetchCarrierLocationHistory(startTime: string, endTime: string, carrierName: string): Promise<CarrierLocationHistoryResult>;
|
|
@@ -47,4 +47,26 @@ export async function fetchPlayback(startTime, endTime, includeSnapshot = true,
|
|
|
47
47
|
}
|
|
48
48
|
return result;
|
|
49
49
|
}
|
|
50
|
+
// ── Carrier Location History ─────────────────────────────────────────
|
|
51
|
+
/**
|
|
52
|
+
* RESTful — 단일 carrier 의 시계열 위치 이력 조회.
|
|
53
|
+
*
|
|
54
|
+
* GET /mcs/lv/playback/carrier-location
|
|
55
|
+
* ?startTime=YYYY-MM-DD HH:mm:ss
|
|
56
|
+
* &endTime=YYYY-MM-DD HH:mm:ss
|
|
57
|
+
* &carrierName=...
|
|
58
|
+
*
|
|
59
|
+
* 요청 시간 포맷: "YYYY-MM-DD HH:mm:ss" (스페이스 구분자, 기존 /playback 동일).
|
|
60
|
+
* 응답 time 포맷: "YYYY-MM-DDTHH:mm:ss[.SSS]" (T 구분자, 가변 ms).
|
|
61
|
+
* 양쪽 모두 timezone suffix 없음 — 로컬타임 기준.
|
|
62
|
+
*/
|
|
63
|
+
export async function fetchCarrierLocationHistory(startTime, endTime, carrierName) {
|
|
64
|
+
const query = new URLSearchParams();
|
|
65
|
+
query.set('startTime', startTime);
|
|
66
|
+
query.set('endTime', endTime);
|
|
67
|
+
query.set('carrierName', carrierName);
|
|
68
|
+
const url = getRestServiceFullPath() + '/playback/carrier-location?' + query.toString();
|
|
69
|
+
const response = await callApi(url, 'get', null, null);
|
|
70
|
+
return ((response === null || response === void 0 ? void 0 : response.data) || { errorMessage: 'No response', carrierLocHistory: [] });
|
|
71
|
+
}
|
|
50
72
|
//# sourceMappingURL=playback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playback.js","sourceRoot":"","sources":["../../../src/restful/playback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAcjD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,OAAgB,EAChB,kBAA2B,IAAI,EAC/B,KAAc;;IAEd,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAA;IACnC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAEjC,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,KAAK,IAAI,IAAI,CAAA;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAA;IAE7D,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACnC,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC/B,CAAC;IACD,IAAI,eAAe,IAAI,IAAI;QAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAA;IAElF,MAAM,GAAG,GAAG,sBAAsB,EAAE,GAAG,UAAU,GAAG,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC1E,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAEtD,MAAM,MAAM,GAAG,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,KAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAmB,CAAA;IAEtE,sCAAsC;IACtC,IAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,0CAAE,SAAS,EAAE,CAAC;QAChC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YACjD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACnC,IAAI,CAAC;wBAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAAC,CAAC;oBAAC,WAAM,CAAC;wBAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAA;oBAAC,CAAC;gBACvE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["import { callApi } from './common'\nimport { getRestServiceFullPath } from './common'\nimport type { PlaybackResult } from '../graphql/playback'\n\nexport interface PlaybackParams {\n /** 시작 시점 \"YYYY-MM-DD HH:mm:ss\" */\n startTime: string\n /** 종료 시점 (범위 조회) */\n endTime?: string\n /** 시작 시점부터 조회할 프레임 수 (개수 조회) */\n count?: number\n /** 시작 시점의 전체 상태(snapshot) 포함 여부 */\n includeSnapshot?: boolean\n}\n\n/**\n * RESTful 플레이백 데이터 조회 — 명세에 따라 URL 이 2가지로 분리됨.\n *\n * v1 범위 조회:\n * GET /mcs/lv/playback?startTime=...&endTime=...&includeSnapshot=...\n *\n * v2 개수 조회:\n * GET /mcs/lv/playback/count?startTime=...&count=...&includeSnapshot=...\n *\n * endTime 이 주어지면 v1, count 가 주어지면 v2 로 라우팅.\n * 둘 다 주어지면 endTime 우선 (범위 우선 원칙).\n * 둘 다 없으면 파라미터 에러지만 서버가 처리.\n */\nexport async function fetchPlayback(\n startTime: string,\n endTime?: string,\n includeSnapshot: boolean = true,\n count?: number\n): Promise<PlaybackResult> {\n const query = new URLSearchParams()\n query.set('startTime', startTime)\n\n const useCount = !endTime && count != null\n const pathSuffix = useCount ? '/playback/count' : '/playback'\n\n if (useCount) {\n query.set('count', String(count))\n } else if (endTime) {\n query.set('endTime', endTime)\n }\n if (includeSnapshot != null) query.set('includeSnapshot', String(includeSnapshot))\n\n const url = getRestServiceFullPath() + pathSuffix + '?' + query.toString()\n const response = await callApi(url, 'get', null, null)\n\n const result = (response?.data || { status: false }) as PlaybackResult\n\n // data가 JSON string으로 전달되면 파싱 (서버 호환)\n if (result?.playback?.scenarios) {\n for (const scenario of result.playback.scenarios) {\n for (const frame of scenario.snapshots) {\n if (typeof frame.data === 'string') {\n try { frame.data = JSON.parse(frame.data) } catch { frame.data = [] }\n }\n }\n }\n }\n\n return result\n}\n"]}
|
|
1
|
+
{"version":3,"file":"playback.js","sourceRoot":"","sources":["../../../src/restful/playback.ts"],"names":[],"mappings":"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","sourcesContent":["import { callApi } from './common'\nimport { getRestServiceFullPath } from './common'\nimport type { PlaybackResult, CarrierLocationHistoryResult } from '../graphql/playback'\n\nexport interface PlaybackParams {\n /** 시작 시점 \"YYYY-MM-DD HH:mm:ss\" */\n startTime: string\n /** 종료 시점 (범위 조회) */\n endTime?: string\n /** 시작 시점부터 조회할 프레임 수 (개수 조회) */\n count?: number\n /** 시작 시점의 전체 상태(snapshot) 포함 여부 */\n includeSnapshot?: boolean\n}\n\n/**\n * RESTful 플레이백 데이터 조회 — 명세에 따라 URL 이 2가지로 분리됨.\n *\n * v1 범위 조회:\n * GET /mcs/lv/playback?startTime=...&endTime=...&includeSnapshot=...\n *\n * v2 개수 조회:\n * GET /mcs/lv/playback/count?startTime=...&count=...&includeSnapshot=...\n *\n * endTime 이 주어지면 v1, count 가 주어지면 v2 로 라우팅.\n * 둘 다 주어지면 endTime 우선 (범위 우선 원칙).\n * 둘 다 없으면 파라미터 에러지만 서버가 처리.\n */\nexport async function fetchPlayback(\n startTime: string,\n endTime?: string,\n includeSnapshot: boolean = true,\n count?: number\n): Promise<PlaybackResult> {\n const query = new URLSearchParams()\n query.set('startTime', startTime)\n\n const useCount = !endTime && count != null\n const pathSuffix = useCount ? '/playback/count' : '/playback'\n\n if (useCount) {\n query.set('count', String(count))\n } else if (endTime) {\n query.set('endTime', endTime)\n }\n if (includeSnapshot != null) query.set('includeSnapshot', String(includeSnapshot))\n\n const url = getRestServiceFullPath() + pathSuffix + '?' + query.toString()\n const response = await callApi(url, 'get', null, null)\n\n const result = (response?.data || { status: false }) as PlaybackResult\n\n // data가 JSON string으로 전달되면 파싱 (서버 호환)\n if (result?.playback?.scenarios) {\n for (const scenario of result.playback.scenarios) {\n for (const frame of scenario.snapshots) {\n if (typeof frame.data === 'string') {\n try { frame.data = JSON.parse(frame.data) } catch { frame.data = [] }\n }\n }\n }\n }\n\n return result\n}\n\n// ── Carrier Location History ─────────────────────────────────────────\n\n/**\n * RESTful — 단일 carrier 의 시계열 위치 이력 조회.\n *\n * GET /mcs/lv/playback/carrier-location\n * ?startTime=YYYY-MM-DD HH:mm:ss\n * &endTime=YYYY-MM-DD HH:mm:ss\n * &carrierName=...\n *\n * 요청 시간 포맷: \"YYYY-MM-DD HH:mm:ss\" (스페이스 구분자, 기존 /playback 동일).\n * 응답 time 포맷: \"YYYY-MM-DDTHH:mm:ss[.SSS]\" (T 구분자, 가변 ms).\n * 양쪽 모두 timezone suffix 없음 — 로컬타임 기준.\n */\nexport async function fetchCarrierLocationHistory(\n startTime: string,\n endTime: string,\n carrierName: string\n): Promise<CarrierLocationHistoryResult> {\n const query = new URLSearchParams()\n query.set('startTime', startTime)\n query.set('endTime', endTime)\n query.set('carrierName', carrierName)\n\n const url = getRestServiceFullPath() + '/playback/carrier-location?' + query.toString()\n const response = await callApi(url, 'get', null, null)\n\n return (response?.data || { errorMessage: 'No response', carrierLocHistory: [] }) as CarrierLocationHistoryResult\n}\n"]}
|