node-red-contrib-tdn-acuip 0.1.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/LICENSE +21 -0
- package/README.md +108 -0
- package/examples/01 - Poll camera list.json +10 -0
- package/examples/02 - Event modes.json +10 -0
- package/lib/drivers/index.js +1 -0
- package/lib/drivers/isapi.js +1 -0
- package/lib/drivers/rcp.js +1 -0
- package/lib/engine.js +1 -0
- package/lib/http-client.js +1 -0
- package/lib/onvif.js +1 -0
- package/lib/sources/isapi-common.js +1 -0
- package/lib/sources/isapi-push.js +1 -0
- package/lib/sources/isapi-stream.js +1 -0
- package/lib/sources/onvif-common.js +1 -0
- package/lib/sources/onvif-mqtt.js +1 -0
- package/lib/sources/onvif-pull.js +1 -0
- package/lib/sources/onvif-push.js +1 -0
- package/lib/sources/poll.js +1 -0
- package/lib/xml.js +1 -0
- package/package.json +41 -0
- package/tdn-acuip.html +182 -0
- package/tdn-acuip.js +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 letis009
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# node-red-contrib-tdn-acuip
|
|
2
|
+
|
|
3
|
+
Node-RED node that watches alarm inputs on a list of IP cameras and sends `SCD` (state change detected)
|
|
4
|
+
when one changes. Each camera uses one of six transports: polling, vendor push, or ONVIF events
|
|
5
|
+
(PullPoint, Base Notification, Profile M MQTT). All six feed the same SCD output.
|
|
6
|
+
|
|
7
|
+
No dependencies. Digest, Basic and WS-Security UsernameToken auth are built in.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
npm install node-red-contrib-tdn-acuip
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Modes
|
|
16
|
+
|
|
17
|
+
| mode | transport | catches short pulses | camera must reach Node-RED | notes |
|
|
18
|
+
|---|---|---|---|---|
|
|
19
|
+
| `poll` | GET input state every N ms (`type: isapi` or `rcp`) | only if ≥ confirm × interval | no | simplest; load grows with poll rate |
|
|
20
|
+
| `stream` | ISAPI alertStream (held-open multipart GET) | **yes**, the camera latches the edge | no | falling edge from a follow-poll every 300 ms |
|
|
21
|
+
| `http-push` | ISAPI HTTP host: the camera POSTs alerts | yes | **yes** | `configure: true` writes the URL to the camera (slot 1) |
|
|
22
|
+
| `onvif` | ONVIF PullPoint (long-poll) | yes | no | any ONVIF camera; works through NAT |
|
|
23
|
+
| `onvif-push` | ONVIF Base Notification: the camera POSTs Notify | yes | **yes** | lowest traffic |
|
|
24
|
+
| `mqtt` | ONVIF Profile M event broker | yes | camera reaches the broker | wire an `mqtt in` node into this node |
|
|
25
|
+
|
|
26
|
+
The push modes need the camera's input linkage set to "notify surveillance center" (ISAPI), or ONVIF enabled.
|
|
27
|
+
|
|
28
|
+
Verified 2026-11-05:
|
|
29
|
+
|
|
30
|
+
| | poll | stream | http-push | onvif | onvif-push | mqtt |
|
|
31
|
+
|---|---|---|---|---|---|---|
|
|
32
|
+
| ISAPI test camera | ✅ | ✅ IO + motion | endpoint ✅, camera write not tried | ✅ separate `onvif` account; input token `AlarmIn_1` | – | ❌ no Profile M (ActionNotSupported) |
|
|
33
|
+
| RCP+/ONVIF test camera (no alarm inputs) | ✅ digest; no inputs | – | – | ✅ create / pull / renew / unsubscribe | ✅ camera POSTed Notify | ❌ Profiles G/T only |
|
|
34
|
+
|
|
35
|
+
## Camera list
|
|
36
|
+
|
|
37
|
+
Send it once on the input. That loads the list and makes first contact (baseline, no SCD); the node runs by
|
|
38
|
+
itself from then on.
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"defaults": { "mode": "stream" },
|
|
43
|
+
"cameras": [
|
|
44
|
+
"cams.till1",
|
|
45
|
+
{ "host": "10.0.0.22", "cred": "creds.till2" },
|
|
46
|
+
{ "host": "10.0.0.23", "mode": "onvif", "onvifCred": "creds.onvif" },
|
|
47
|
+
{ "host": "10.0.0.24", "mode": "poll", "type": "rcp", "inputs": [1, 2], "user": "service", "pass": "..." },
|
|
48
|
+
{ "host": "10.0.0.25", "mode": "mqtt", "broker": "mqtt://10.0.0.5:1883", "topicPrefix": "onvif/cam25", "configure": true }
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
| field | notes |
|
|
54
|
+
|---|---|
|
|
55
|
+
| `host` | required |
|
|
56
|
+
| `mode` | see above; default from node settings (`poll`) |
|
|
57
|
+
| `type` | poll mode only: `isapi` or `rcp` |
|
|
58
|
+
| `inputs` | numbers, or ONVIF input tokens; default `[1]` (ONVIF/push: all inputs) |
|
|
59
|
+
| `user` / `pass` / `cred` | inline, or `cred` = global context key holding `{ user, pass }` |
|
|
60
|
+
| `onvifUser` / `onvifPass` / `onvifCred` / `onvifPort` | separate ONVIF account and port where the camera needs one |
|
|
61
|
+
| `configure` | let the node write push settings to the camera (`http-push`, `mqtt`) |
|
|
62
|
+
| `broker` / `topicPrefix` | `mqtt` mode |
|
|
63
|
+
| `id` | default: global context id, or else host |
|
|
64
|
+
|
|
65
|
+
Global context is re-read on every recheck, so credential changes apply without a redeploy.
|
|
66
|
+
|
|
67
|
+
## Control
|
|
68
|
+
|
|
69
|
+
| msg.topic | action |
|
|
70
|
+
|---|---|
|
|
71
|
+
| `stop` | stop everything (ONVIF subscriptions are unsubscribed) |
|
|
72
|
+
| `start` | restart with the loaded list; rechecks offline cameras |
|
|
73
|
+
| `status` | send running state now |
|
|
74
|
+
| under a `mqtt` camera's `topicPrefix` | decoded as a Profile M event |
|
|
75
|
+
|
|
76
|
+
## Outputs
|
|
77
|
+
|
|
78
|
+
1. **Running state**: after the first round, on online/offline changes, on stop and on status.
|
|
79
|
+
2. **SCD**: `{ topic: <id>, payload: "SCD", id, ip, input, state }`
|
|
80
|
+
3. **Other events** (node option *Events = all*): motion, analytics, tamper and so on, edges only:
|
|
81
|
+
`{ id, ip, source: "isapi"|"onvif", event, state, data }`
|
|
82
|
+
|
|
83
|
+
## Offline handling
|
|
84
|
+
|
|
85
|
+
After N failures in a row (default 3), or straight away on a login failure (to avoid account lockout), the
|
|
86
|
+
camera is marked offline and left alone. It is rechecked every 600 s (configurable) and on every `start`.
|
|
87
|
+
|
|
88
|
+
## Push endpoint
|
|
89
|
+
|
|
90
|
+
`POST <httpNodeRoot>/acuip/<camera id>` (the path is configurable). A POST without a known id is matched
|
|
91
|
+
by the sender's IP. The callback host defaults to this machine's IP on the route to each camera.
|
|
92
|
+
|
|
93
|
+
## Sizing (poll mode)
|
|
94
|
+
|
|
95
|
+
| | max polls/s per camera | p50 |
|
|
96
|
+
|---|---|---|
|
|
97
|
+
| ISAPI test camera | ~113 | 7 ms |
|
|
98
|
+
| RCP+ test camera | ~46 | 21 ms |
|
|
99
|
+
|
|
100
|
+
Client cost is about 100 µs of event loop per poll (desktop); an estimated 0.5–0.8 ms on a CM4. At 20
|
|
101
|
+
cameras × 100 ms that is about 10–16 % of one CM4 core. The practical ceiling is about 60–80 cameras on a
|
|
102
|
+
CM4 and 150–200 on a CM5. Event modes cost almost nothing while idle: one held connection or one long-poll
|
|
103
|
+
per camera.
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## License
|
|
107
|
+
|
|
108
|
+
MIT
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
[
|
|
2
|
+
{"id":"a1c0inject000009","type":"inject","name":"set credentials","props":[{"p":"payload"}],"repeat":"","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":140,"y":40,"wires":[["a1c0change000001"]]},
|
|
3
|
+
{"id":"a1c0change000001","type":"change","name":"global creds","rules":[{"t":"set","p":"creds.cam1","pt":"global","to":"{\"user\":\"admin\",\"pass\":\"changeme\"}","tot":"json"}],"x":360,"y":40,"wires":[[]]},
|
|
4
|
+
{"id":"a1c0inject000001","type":"inject","name":"camera list","props":[{"p":"payload"}],"repeat":"","once":false,"topic":"","payload":"{\"defaults\":{\"type\":\"isapi\"},\"cameras\":[{\"host\":\"192.168.1.64\",\"inputs\":[1],\"cred\":\"creds.cam1\"},{\"host\":\"192.168.1.65\",\"type\":\"rcp\",\"inputs\":[1],\"user\":\"service\",\"pass\":\"changeme\"}]}","payloadType":"json","x":130,"y":100,"wires":[["a1c0poll00000001"]]},
|
|
5
|
+
{"id":"a1c0inject000002","type":"inject","name":"stop","props":[{"p":"topic","vt":"str"}],"repeat":"","once":false,"topic":"stop","x":110,"y":150,"wires":[["a1c0poll00000001"]]},
|
|
6
|
+
{"id":"a1c0inject000003","type":"inject","name":"start","props":[{"p":"topic","vt":"str"}],"repeat":"","once":false,"topic":"start","x":110,"y":190,"wires":[["a1c0poll00000001"]]},
|
|
7
|
+
{"id":"a1c0poll00000001","type":"tdn-acuip","name":"","interval":100,"confirm":2,"edge":"both","timeout":1000,"failLimit":3,"recheck":600,"defaultType":"","allowSelfSigned":true,"x":340,"y":140,"wires":[["a1c0debug0000001"],["a1c0debug0000002"]]},
|
|
8
|
+
{"id":"a1c0debug0000001","type":"debug","name":"running state","active":true,"complete":"payload","x":560,"y":120,"wires":[]},
|
|
9
|
+
{"id":"a1c0debug0000002","type":"debug","name":"SCD","active":true,"complete":"true","x":540,"y":170,"wires":[]}
|
|
10
|
+
]
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
[
|
|
2
|
+
{"id":"a1c0inject000101","type":"inject","name":"set credentials","props":[{"p":"payload"}],"repeat":"","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":140,"y":40,"wires":[["a1c0change000101"]]},
|
|
3
|
+
{"id":"a1c0change000101","type":"change","name":"global creds","rules":[{"t":"set","p":"creds.isapi","pt":"global","to":"{\"user\":\"admin\",\"pass\":\"changeme\"}","tot":"json"},{"t":"set","p":"creds.onvif","pt":"global","to":"{\"user\":\"service\",\"pass\":\"changeme\"}","tot":"json"}],"x":360,"y":40,"wires":[[]]},
|
|
4
|
+
{"id":"a1c0inject000102","type":"inject","name":"camera list","props":[{"p":"payload"}],"repeat":"","once":false,"topic":"","payload":"{\"cameras\":[{\"host\":\"192.168.1.64\",\"mode\":\"stream\",\"cred\":\"creds.isapi\"},{\"host\":\"192.168.1.65\",\"mode\":\"onvif\",\"cred\":\"creds.onvif\"},{\"host\":\"192.168.1.66\",\"mode\":\"poll\",\"type\":\"rcp\",\"cred\":\"creds.onvif\"}]}","payloadType":"json","x":130,"y":100,"wires":[["a1c0node00000101"]]},
|
|
5
|
+
{"id":"a1c0mqttin000101","type":"mqtt in","name":"Profile M events","topic":"onvif/#","qos":"1","datatype":"auto-detect","broker":"","x":140,"y":160,"wires":[["a1c0node00000101"]]},
|
|
6
|
+
{"id":"a1c0node00000101","type":"tdn-acuip","name":"","defaultMode":"poll","interval":100,"confirm":2,"edge":"both","events":"all","timeout":1000,"failLimit":3,"recheck":600,"endpoint":"/acuip","callbackHost":"","callbackPort":"","defaultType":"","allowSelfSigned":true,"x":360,"y":120,"wires":[["a1c0debug0000101"],["a1c0debug0000102"],["a1c0debug0000103"]]},
|
|
7
|
+
{"id":"a1c0debug0000101","type":"debug","name":"running state","active":true,"complete":"payload","x":580,"y":80,"wires":[]},
|
|
8
|
+
{"id":"a1c0debug0000102","type":"debug","name":"SCD","active":true,"complete":"true","x":560,"y":120,"wires":[]},
|
|
9
|
+
{"id":"a1c0debug0000103","type":"debug","name":"other events","active":true,"complete":"payload","x":580,"y":160,"wires":[]}
|
|
10
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x4e9eae,_0x4a35df){const _0x471650=_0x4e9eae();while(!![]){try{const _0x663180=parseInt(_0x33b5(0x132))/0x1+-parseInt(_0x33b5(0x126))/0x2*(-parseInt(_0x33b5(0x12d))/0x3)+parseInt(_0x33b5(0x12a))/0x4*(parseInt(_0x33b5(0x12f))/0x5)+parseInt(_0x33b5(0x125))/0x6+-parseInt(_0x33b5(0x130))/0x7*(-parseInt(_0x33b5(0x12c))/0x8)+parseInt(_0x33b5(0x12e))/0x9*(-parseInt(_0x33b5(0x124))/0xa)+-parseInt(_0x33b5(0x133))/0xb;if(_0x663180===_0x4a35df)break;else _0x471650['push'](_0x471650['shift']());}catch(_0x3e46e6){_0x471650['push'](_0x471650['shift']());}}}(_0x10df,0x2c79d));const drivers={};for(const d of[require(_0x33b5(0x129)),require(_0x33b5(0x127))])drivers[d[_0x33b5(0x131)]]=d;module[_0x33b5(0x128)]={'get':_0xfa4dc7=>drivers[String(_0xfa4dc7||'')['toLowerCase']()]||null,'types':()=>Object[_0x33b5(0x12b)](drivers)};function _0x33b5(_0x51ce58,_0x570edd){const _0x10df9e=_0x10df();return _0x33b5=function(_0x33b5df,_0x451aa1){_0x33b5df=_0x33b5df-0x124;let _0x50f512=_0x10df9e[_0x33b5df];if(_0x33b5['iaYKOW']===undefined){var _0x18685a=function(_0xfa4dc7){const _0x8b74f1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x578908='',_0x5a3c8b='';for(let _0x3cf4d4=0x0,_0x51ae39,_0x55fd73,_0x6abeb4=0x0;_0x55fd73=_0xfa4dc7['charAt'](_0x6abeb4++);~_0x55fd73&&(_0x51ae39=_0x3cf4d4%0x4?_0x51ae39*0x40+_0x55fd73:_0x55fd73,_0x3cf4d4++%0x4)?_0x578908+=String['fromCharCode'](0xff&_0x51ae39>>(-0x2*_0x3cf4d4&0x6)):0x0){_0x55fd73=_0x8b74f1['indexOf'](_0x55fd73);}for(let _0x276640=0x0,_0x58a343=_0x578908['length'];_0x276640<_0x58a343;_0x276640++){_0x5a3c8b+='%'+('00'+_0x578908['charCodeAt'](_0x276640)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5a3c8b);};_0x33b5['BuLXOk']=_0x18685a,_0x51ce58=arguments,_0x33b5['iaYKOW']=!![];}const _0x3bf6d1=_0x10df9e[0x0],_0x1d4a92=_0x33b5df+_0x3bf6d1,_0x347a6b=_0x51ce58[_0x1d4a92];return!_0x347a6b?(_0x50f512=_0x33b5['BuLXOk'](_0x50f512),_0x51ce58[_0x1d4a92]=_0x50f512):_0x50f512=_0x347a6b,_0x50f512;},_0x33b5(_0x51ce58,_0x570edd);}function _0x10df(){const _0x3fdc21=['mJGYmdK0mK9fCwDMrq','nvr1shbdsW','mtrtzKDgt3K','A2v5','mZa0ndK2rxPtBhbj','ody2nJqXnKnev0zeDG','mtbcCeHuu1a','mtu1oduZnNrMzun6CW','ntKXmtzts1LtCNy','lI9Yy3a','zxHWB3j0CW','lI9PC2fWAq','nda1ntu2DNj4wgnM','A2v5CW','mte3mdC1mLrYBNLmqW','mZnUreP0vuW'];_0x10df=function(){return _0x3fdc21;};return _0x10df();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x28d452,_0x6e6725){const _0x197915=_0x28d452();while(!![]){try{const _0x46dc05=parseInt(_0x4c01(0x1ea))/0x1+-parseInt(_0x4c01(0x1e0))/0x2+-parseInt(_0x4c01(0x1e2))/0x3+-parseInt(_0x4c01(0x1e9))/0x4+-parseInt(_0x4c01(0x1e4))/0x5+parseInt(_0x4c01(0x1dc))/0x6*(parseInt(_0x4c01(0x1e5))/0x7)+-parseInt(_0x4c01(0x1e7))/0x8*(-parseInt(_0x4c01(0x1e8))/0x9);if(_0x46dc05===_0x6e6725)break;else _0x197915['push'](_0x197915['shift']());}catch(_0xed385b){_0x197915['push'](_0x197915['shift']());}}}(_0x35ec,0xb9b99));function _0x35ec(){const _0x1a33ee=['mZiZodG0mg1MAuHxEq','nda2BLHPuMry','zxHWB3j0CW','mZi4tKr5uxbV','nda1mte3A0DqDuvi','mZC0ndC2ofLfrezjva','mtm5mdG5n055yLnqDG','mtm2mJm2AeTwv2DQ','l0Ltqvbjl1n5C3rLBs9jtY9ZDgf0Dxm','zxHLyW','ywn0AxzL','mJe0mZGYnMzKEuPyyW','DgvZDa','mZqXmdmYogDODejzuq','AxnHCgK'];_0x35ec=function(){return _0x1a33ee;};return _0x35ec();}function _0x4c01(_0x559e12,_0x340463){const _0x35ec45=_0x35ec();return _0x4c01=function(_0x4c01f5,_0x41a87a){_0x4c01f5=_0x4c01f5-0x1dc;let _0xadbc0a=_0x35ec45[_0x4c01f5];if(_0x4c01['HmoSfE']===undefined){var _0xe46d69=function(_0x212486){const _0xf62190='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2b4c57='',_0x58e08f='';for(let _0x3335e5=0x0,_0x8061f9,_0x287e1a,_0x5642f7=0x0;_0x287e1a=_0x212486['charAt'](_0x5642f7++);~_0x287e1a&&(_0x8061f9=_0x3335e5%0x4?_0x8061f9*0x40+_0x287e1a:_0x287e1a,_0x3335e5++%0x4)?_0x2b4c57+=String['fromCharCode'](0xff&_0x8061f9>>(-0x2*_0x3335e5&0x6)):0x0){_0x287e1a=_0xf62190['indexOf'](_0x287e1a);}for(let _0x3673a8=0x0,_0x5d9411=_0x2b4c57['length'];_0x3673a8<_0x5d9411;_0x3673a8++){_0x58e08f+='%'+('00'+_0x2b4c57['charCodeAt'](_0x3673a8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x58e08f);};_0x4c01['FredGF']=_0xe46d69,_0x559e12=arguments,_0x4c01['HmoSfE']=!![];}const _0x4077e2=_0x35ec45[0x0],_0xbc8b33=_0x4c01f5+_0x4077e2,_0x4bf2a9=_0x559e12[_0xbc8b33];return!_0x4bf2a9?(_0xadbc0a=_0x4c01['FredGF'](_0xadbc0a),_0x559e12[_0xbc8b33]=_0xadbc0a):_0xadbc0a=_0x4bf2a9,_0xadbc0a;},_0x4c01(_0x559e12,_0x340463);}module[_0x4c01(0x1e6)]={'key':_0x4c01(0x1e3),'defaultPort':0x50,async 'readInputs'(_0x212486,_0xf62190){const _0x2b4c57=await _0x212486['get'](_0x4c01(0x1dd)),_0x58e08f={},_0x3335e5=/<IOPortStatus\b[^>]*>([\s\S]*?)<\/IOPortStatus>/gi;let _0x8061f9;while((_0x8061f9=_0x3335e5[_0x4c01(0x1de)](_0x2b4c57))!==null){const _0x5642f7=_0x8061f9[0x1];if(!/<ioPortType>\s*input\s*</i[_0x4c01(0x1e1)](_0x5642f7))continue;const _0x3673a8=/<ioPortID>\s*(\d+)\s*</i[_0x4c01(0x1de)](_0x5642f7),_0x5d9411=/<ioState>\s*(\w+)\s*</i['exec'](_0x5642f7);if(_0x3673a8&&_0x5d9411)_0x58e08f[_0x3673a8[0x1]]=_0x5d9411[0x1]['toLowerCase']()===_0x4c01(0x1df);}const _0x287e1a={};for(const _0x55832a of _0xf62190){if(_0x58e08f[_0x55832a]===undefined)throw new Error('input\x20'+_0x55832a+'\x20not\x20reported\x20by\x20device');_0x287e1a[_0x55832a]=_0x58e08f[_0x55832a];}return _0x287e1a;}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';function _0x203a(_0x3f5113,_0x19129f){const _0x200366=_0x2003();return _0x203a=function(_0x203a6f,_0x16ca33){_0x203a6f=_0x203a6f-0x17c;let _0x3add7e=_0x200366[_0x203a6f];if(_0x203a['ndCGnI']===undefined){var _0x4dad07=function(_0x3a58fa){const _0x3affdc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1cdcac='',_0x4cef43='';for(let _0x29c3c5=0x0,_0x416704,_0x13b68b,_0x3128bd=0x0;_0x13b68b=_0x3a58fa['charAt'](_0x3128bd++);~_0x13b68b&&(_0x416704=_0x29c3c5%0x4?_0x416704*0x40+_0x13b68b:_0x13b68b,_0x29c3c5++%0x4)?_0x1cdcac+=String['fromCharCode'](0xff&_0x416704>>(-0x2*_0x29c3c5&0x6)):0x0){_0x13b68b=_0x3affdc['indexOf'](_0x13b68b);}for(let _0x54b2fe=0x0,_0x2c45e8=_0x1cdcac['length'];_0x54b2fe<_0x2c45e8;_0x54b2fe++){_0x4cef43+='%'+('00'+_0x1cdcac['charCodeAt'](_0x54b2fe)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4cef43);};_0x203a['nkkYhl']=_0x4dad07,_0x3f5113=arguments,_0x203a['ndCGnI']=!![];}const _0x13aa44=_0x200366[0x0],_0x347b9c=_0x203a6f+_0x13aa44,_0x577452=_0x3f5113[_0x347b9c];return!_0x577452?(_0x3add7e=_0x203a['nkkYhl'](_0x3add7e),_0x3f5113[_0x347b9c]=_0x3add7e):_0x3add7e=_0x577452,_0x3add7e;},_0x203a(_0x3f5113,_0x19129f);}(function(_0x162ff3,_0x3c52ca){const _0x536d66=_0x162ff3();while(!![]){try{const _0x375ee2=-parseInt(_0x203a(0x18d))/0x1+parseInt(_0x203a(0x181))/0x2*(-parseInt(_0x203a(0x183))/0x3)+parseInt(_0x203a(0x18c))/0x4*(parseInt(_0x203a(0x17d))/0x5)+-parseInt(_0x203a(0x17f))/0x6*(parseInt(_0x203a(0x180))/0x7)+parseInt(_0x203a(0x184))/0x8+parseInt(_0x203a(0x188))/0x9*(-parseInt(_0x203a(0x18e))/0xa)+-parseInt(_0x203a(0x186))/0xb*(-parseInt(_0x203a(0x187))/0xc);if(_0x375ee2===_0x3c52ca)break;else _0x536d66['push'](_0x536d66['shift']());}catch(_0x34a4cc){_0x536d66['push'](_0x536d66['shift']());}}}(_0x2003,0x80852));function tag(_0x3a58fa,_0x3affdc){const _0x1cdcac=new RegExp('<'+_0x3affdc+_0x203a(0x192)+_0x3affdc+'>','i')[_0x203a(0x190)](_0x3a58fa);return _0x1cdcac?_0x1cdcac[0x1]['trim']():null;}function _0x2003(){const _0x1cbd11=['zxHWB3j0CW','Aw5WDxqG','mZeWnduXmKTUAvrWAW','mtaXmZu1mvjKCxvjAa','nJmYnJb6zgXlsg4','CMnW','zxHLyW','zxjY','pIHBxJXDkIK8lW','oIbsq1aGzxjYB3iG','nuDlBMXMra','icHUBYbZDwnOigLUChv0kq','odq2nLH2teXsAW','mZGYovjvqvDWtW','mtu1mtHkrhHMANe','z2v0','mte0txbRze93','mte5nZiWmfvXr0v3yG','mhG5ma','nZm3odH5CNrmv1K','nduXmLLuBLvYAW','mte5n3bMCvLKsq','l3jJCc54BwW/y29TBwfUzd0WEdaXyZaMDhLWzt1gx0zmquCMzgLYzwn0Aw9UpvjfquqMBNvTpq'];_0x2003=function(){return _0x1cbd11;};return _0x2003();}module[_0x203a(0x18a)]={'key':_0x203a(0x18f),'defaultPort':0x50,async 'readInputs'(_0x4cef43,_0x29c3c5){const _0x416704={};for(const _0x13b68b of _0x29c3c5){const _0x3128bd=await _0x4cef43[_0x203a(0x182)](_0x203a(0x189)+_0x13b68b),_0x54b2fe=tag(_0x3128bd,_0x203a(0x191));if(_0x54b2fe)throw new Error(_0x203a(0x18b)+_0x13b68b+_0x203a(0x17c)+_0x54b2fe+(_0x54b2fe===_0x203a(0x185)?_0x203a(0x17e):''));const _0x2c45e8=/<result>[\s\S]*?<dec>\s*(\d+)\s*<\/dec>/i[_0x203a(0x190)](_0x3128bd);if(!_0x2c45e8)throw new Error(_0x203a(0x18b)+_0x13b68b+':\x20no\x20value\x20in\x20response');_0x416704[_0x13b68b]=parseInt(_0x2c45e8[0x1],0xa)!==0x0;}return _0x416704;}};
|
package/lib/engine.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';function _0xf448(){const _0x50757d=['B252AwyTChvZAa','ihWG','yxnZAwDU','B25dAgfUz2u','zMLUzfb1C2HuyxjNzxq','Aw5WDxrlzxK','xtOGAg9ZDcbPCYbYzxf1AxjLza','C291CMnL','C3rYzwfT','lI9ZB3vYy2vZl2LZyxbPlxn0CMvHBq','B252AwzvC2vY','mZi3mdm5m1jLEfbusq','z2v0','oYbYzwnOzwnRigLUia','y2fT','B25SAw5Lia','C3rVCa','CNvUBMLUzW','yM90Aa','Aw5JBhvKzxm','B2zMBgLUzsa','Ahr0Cc1WDxnO','Bg9Hza','B25SAw5L','CMvZB2X2zq','Bwf0y2HLCW','oIb1BMTUB3DUihr5CguGiG','BgvUz3rO','DhjHy2S','y29UzMLNDxjL','rufvveG','B3b0CW','Bxf0Da','C3rHyMXL','Cg9SBa','Dg9mB3DLCKnHC2u','C3rHDgu','y3r4','B252AwzqyxnZ','nMTlBwzbzq','y29UzMLYBq','C3vTBwfYEq','BM93','otiWmtnoCM9tue4','BM8Gy2fTzxjHigXPC3qGBg9HzgvK','AM9PBG','lI9ZB3vYy2vZl29UDMLMlw1XDhq','y291BNq','Aw5WDxq','ig9MzMXPBMu6ia','Aw5WDxrZ','lI9ZB3vYy2vZl29UDMLMlxb1BgW','y2fUza','nvvnthvmBW','B25fDMvUDa','ywrK','B25qDxnO','B25jBMzV','Bwf4','zMLYC3rsB3vUzfbLBMrPBMC','nteYmZiWnMHxA1fwza','BwvZC2fNzq','Cg9YDa','y29Kzq','CMvJAgvJA01Z','zMfPBhvYzxm','zMLUza','AxnHCgK','oIbUBYb2ywXPzcbHBgfYBsbPBNb1Dhm','zxHWB3j0CW','Dg9ju09tDhjPBMC','A2v5CW','CMf3','BwfW','B2zMBgLUzq','zMfSBgLUzW','lI9ZB3vYy2vZl2LZyxbPlxb1C2G','lI9ZB3vYy2vZl3bVBgW','C3rHCNq','zgv2AwnLCW','DgvZDa','Dg9WAwnqCMvMAxG','Ag9ZDa','zMLSDgvY','B25nCxr0','C3rHCNrLza','lI9ZB3vYy2vZl29UDMLMlxb1C2G','B252Awy','y29UBMvJDa','y291BNrLza','BMv4DenOzwnR','mZiZnJiXnKzZAxDlEG','DhLWzxm','Bw9Kzq','zxjYB3i','iIaODxnLia','BwfYA1jVDw5K','AgfZ','Axnoyu4','oxjADvbpAW','nJyZntCZmgPKCvLADa','mJb5BwLovfi','AgfSDa','y3r4rM9Y','zwrNzq','B25tDgf0zq','CM91BMq','mty1mdK4CMn4tgPr','y2fTzxjHwW','mZqZnJuWBfverefi','zMLUze1XDhruyxjNzxq','BgfZDe9R','DgLTzxi','B25mB2C','DhLWzq','B252AwzqB3j0','CMvWBgfJzq','Aw5WDxrZrxHWBgLJAxq'];_0xf448=function(){return _0x50757d;};return _0xf448();}(function(_0x5b1601,_0x395224){const _0x68b851=_0x5b1601();while(!![]){try{const _0x1c1726=parseInt(_0x208a(0x139))/0x1*(parseInt(_0x208a(0x16f))/0x2)+-parseInt(_0x208a(0x12f))/0x3*(parseInt(_0x208a(0x169))/0x4)+parseInt(_0x208a(0x171))/0x5*(-parseInt(_0x208a(0x12b))/0x6)+-parseInt(_0x208a(0x185))/0x7+-parseInt(_0x208a(0x15f))/0x8*(parseInt(_0x208a(0x167))/0x9)+parseInt(_0x208a(0x168))/0xa+parseInt(_0x208a(0x140))/0xb;if(_0x1c1726===_0x395224)break;else _0x68b851['push'](_0x68b851['shift']());}catch(_0x1e582e){_0x68b851['push'](_0x68b851['shift']());}}}(_0xf448,0x6d6fd));function _0x208a(_0x39b883,_0x2767a3){const _0xf44899=_0xf448();return _0x208a=function(_0x208ae1,_0x5e8b8f){_0x208ae1=_0x208ae1-0x11a;let _0x180dcb=_0xf44899[_0x208ae1];if(_0x208a['GzUGLu']===undefined){var _0x713678=function(_0x356fc8){const _0x471eb0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x410ab3='',_0x1d3269='';for(let _0x3eaeb9=0x0,_0x6500bc,_0x3820f5,_0x122218=0x0;_0x3820f5=_0x356fc8['charAt'](_0x122218++);~_0x3820f5&&(_0x6500bc=_0x3eaeb9%0x4?_0x6500bc*0x40+_0x3820f5:_0x3820f5,_0x3eaeb9++%0x4)?_0x410ab3+=String['fromCharCode'](0xff&_0x6500bc>>(-0x2*_0x3eaeb9&0x6)):0x0){_0x3820f5=_0x471eb0['indexOf'](_0x3820f5);}for(let _0x195432=0x0,_0x296285=_0x410ab3['length'];_0x195432<_0x296285;_0x195432++){_0x1d3269+='%'+('00'+_0x410ab3['charCodeAt'](_0x195432)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1d3269);};_0x208a['vfxdpu']=_0x713678,_0x39b883=arguments,_0x208a['GzUGLu']=!![];}const _0x8bf47a=_0xf44899[0x0],_0x14e55c=_0x208ae1+_0x8bf47a,_0x308be5=_0x39b883[_0x14e55c];return!_0x308be5?(_0x180dcb=_0x208a['vfxdpu'](_0x180dcb),_0x39b883[_0x14e55c]=_0x180dcb):_0x180dcb=_0x308be5,_0x180dcb;},_0x208a(_0x39b883,_0x2767a3);}const drivers=require('./drivers'),SOURCES={'poll':require(_0x208a(0x151)),'stream':require(_0x208a(0x183)),'http-push':require(_0x208a(0x150)),'onvif':require(_0x208a(0x137)),'onvif-push':require(_0x208a(0x15a)),'mqtt':require(_0x208a(0x132))},ISAPI_MODES=new Set([_0x208a(0x182),_0x208a(0x18f)]),ONVIF_MODES=new Set([_0x208a(0x15b),_0x208a(0x17a),_0x208a(0x124)]);function normaliseCamera(_0x356fc8,_0x471eb0,_0x410ab3={}){if(!_0x356fc8||!_0x356fc8['host'])throw new Error(_0x208a(0x170)+_0x471eb0+_0x208a(0x180));const _0x1d3269=String(_0x356fc8[_0x208a(0x161)]||_0x410ab3['mode']||_0x208a(0x126))[_0x208a(0x127)]();if(!SOURCES[_0x1d3269])throw new Error(_0x208a(0x170)+_0x471eb0+']\x20'+_0x356fc8[_0x208a(0x156)]+':\x20unknown\x20mode\x20\x22'+_0x1d3269+_0x208a(0x163)+Object[_0x208a(0x14b)](SOURCES)[_0x208a(0x131)](_0x208a(0x17b))+')');let _0x3eaeb9=String(_0x356fc8[_0x208a(0x176)]||_0x410ab3[_0x208a(0x176)]||'')['toLowerCase']();if(ISAPI_MODES[_0x208a(0x165)](_0x1d3269))_0x3eaeb9=_0x208a(0x147);if(!ONVIF_MODES[_0x208a(0x165)](_0x1d3269)&&!drivers[_0x208a(0x186)](_0x3eaeb9))throw new Error(_0x208a(0x170)+_0x471eb0+']\x20'+_0x356fc8[_0x208a(0x156)]+_0x208a(0x11e)+_0x3eaeb9+_0x208a(0x163)+drivers[_0x208a(0x160)]()[_0x208a(0x131)](_0x208a(0x17b))+')');const _0x6500bc=_0x356fc8[_0x208a(0x136)]!==undefined?_0x356fc8[_0x208a(0x136)]:_0x356fc8[_0x208a(0x134)]!==undefined?_0x356fc8[_0x208a(0x134)]:_0x410ab3[_0x208a(0x136)],_0x3820f5=_0x6500bc!==undefined,_0x122218=[]['concat'](_0x3820f5?_0x6500bc:[0x1])[_0x208a(0x14d)](_0x296285=>/^\d+$/[_0x208a(0x154)](String(_0x296285))?parseInt(_0x296285,0xa):String(_0x296285))[_0x208a(0x157)](_0xc55a63=>_0xc55a63!==''&&!Number[_0x208a(0x166)](_0xc55a63));if(!_0x122218[_0x208a(0x11f)])throw new Error(_0x208a(0x170)+_0x471eb0+']\x20'+_0x356fc8['host']+_0x208a(0x148));const _0x195432=_0x423250=>_0x356fc8[_0x423250]!==undefined?_0x356fc8[_0x423250]:_0x410ab3[_0x423250];return{'id':String(_0x356fc8['id']||_0x356fc8[_0x208a(0x156)]),'host':_0x356fc8[_0x208a(0x156)],'port':_0x356fc8[_0x208a(0x142)]?parseInt(_0x356fc8[_0x208a(0x142)],0xa):undefined,'tls':!!_0x195432('tls'),'user':_0x195432('user')||'','pass':_0x195432('pass')||'','type':_0x3eaeb9,'mode':_0x1d3269,'inputs':_0x122218,'inputsExplicit':_0x3820f5,'onvifPort':_0x356fc8[_0x208a(0x177)]?parseInt(_0x356fc8[_0x208a(0x177)],0xa):undefined,'onvifUser':_0x356fc8[_0x208a(0x184)]!==undefined?_0x356fc8[_0x208a(0x184)]:undefined,'onvifPass':_0x356fc8[_0x208a(0x12a)]!==undefined?_0x356fc8[_0x208a(0x12a)]:undefined,'configure':!!_0x195432(_0x208a(0x121)),'broker':_0x195432('broker'),'topicPrefix':_0x195432(_0x208a(0x155))};}class Engine{constructor(_0x5bae54){this[_0x208a(0x123)]=Object[_0x208a(0x17c)]({'intervalMs':0x64,'timeoutMs':0x3e8,'confirm':0x2,'failLimit':0x3,'recheckMs':0x927c0,'allowSelfSigned':!![],'edge':_0x208a(0x18c),'events':_0x208a(0x136),'followMs':0x12c,'healthMs':0x7530,'callbackUrl':null},_0x5bae54),this[_0x208a(0x123)]['confirm']=Math[_0x208a(0x13e)](0x1,this[_0x208a(0x123)][_0x208a(0x12c)]),this[_0x208a(0x11c)]=_0x5bae54[_0x208a(0x11c)],this['onChange']=_0x5bae54[_0x208a(0x17d)]||(()=>{}),this[_0x208a(0x13a)]=_0x5bae54[_0x208a(0x13a)]||(()=>{}),this[_0x208a(0x16d)]=_0x5bae54[_0x208a(0x16d)]||(()=>{}),this[_0x208a(0x175)]=_0x5bae54[_0x208a(0x175)]||(()=>{}),this[_0x208a(0x13d)]=_0x5bae54['onInfo']||this[_0x208a(0x175)],this[_0x208a(0x153)]=[],this[_0x208a(0x18b)]=![],this['firstRoundPending']=0x0;}[_0x208a(0x11a)](_0x1bd1f6){this['close'](),this[_0x208a(0x153)]=_0x1bd1f6[_0x208a(0x14d)]((_0x49b858,_0x506990)=>({'raw':_0x49b858,'i':_0x506990,'cam':this['resolve'](_0x49b858,_0x506990),'source':null,'timer':null}));const _0xb158b1=new Set();for(const _0xfb220d of this[_0x208a(0x153)]){if(_0xb158b1[_0x208a(0x165)](_0xfb220d[_0x208a(0x188)]['id']))throw new Error('duplicate\x20camera\x20id\x20\x22'+_0xfb220d[_0x208a(0x188)]['id']+'\x22');_0xb158b1[_0x208a(0x13b)](_0xfb220d[_0x208a(0x188)]['id']);}}[_0x208a(0x152)](){if(!this[_0x208a(0x153)][_0x208a(0x11f)])throw new Error(_0x208a(0x130));this[_0x208a(0x18a)](!![]),this[_0x208a(0x18b)]=!![],this[_0x208a(0x13f)]=this[_0x208a(0x153)]['length'];for(const _0x42dd38 of this[_0x208a(0x153)]){_0x42dd38[_0x208a(0x15d)]=![],_0x42dd38[_0x208a(0x11b)]=undefined;}for(const _0x2eefe5 of this[_0x208a(0x153)])this[_0x208a(0x15c)](_0x2eefe5);}[_0x208a(0x18a)](_0x3ba4de){const _0x33b144=this[_0x208a(0x18b)];this[_0x208a(0x18b)]=![];for(const _0x37a9ed of this[_0x208a(0x153)])this[_0x208a(0x16a)](_0x37a9ed);if(_0x33b144&&!_0x3ba4de)this[_0x208a(0x16d)](this[_0x208a(0x12d)]('stopped'));}['close'](){this[_0x208a(0x18a)](!![]),this[_0x208a(0x153)]=[];}[_0x208a(0x16a)](_0x3e73c4){if(_0x3e73c4[_0x208a(0x174)])clearTimeout(_0x3e73c4[_0x208a(0x174)]);_0x3e73c4[_0x208a(0x174)]=null;if(_0x3e73c4[_0x208a(0x181)]){const _0x226a04=_0x3e73c4[_0x208a(0x181)];_0x3e73c4[_0x208a(0x181)]=null;try{_0x226a04[_0x208a(0x18a)]();}catch(_0xf6c7ae){}}}[_0x208a(0x15c)](_0x4dcadb){this[_0x208a(0x16a)](_0x4dcadb);try{_0x4dcadb[_0x208a(0x188)]=this[_0x208a(0x11c)](_0x4dcadb[_0x208a(0x14c)],_0x4dcadb['i']);}catch(_0x4056da){return this['offline'](_0x4dcadb,_0x4056da);}_0x4dcadb[_0x208a(0x125)]={},_0x4dcadb['cand']={},_0x4dcadb[_0x208a(0x145)]=0x0,_0x4dcadb[_0x208a(0x162)]=null;const _0x3cc4b5=SOURCES[_0x4dcadb[_0x208a(0x188)][_0x208a(0x161)]],_0x5ad728=this[_0x208a(0x16b)](_0x4dcadb);_0x4dcadb[_0x208a(0x181)]=new _0x3cc4b5(_0x4dcadb,_0x5ad728),_0x4dcadb[_0x208a(0x181)]['start']();}[_0x208a(0x16b)](_0x2bd304){const _0x421123=()=>this[_0x208a(0x18b)]&&_0x2bd304[_0x208a(0x181)]&&_0x2bd304[_0x208a(0x181)][_0x208a(0x129)]===_0x402e06,_0x402e06={'opts':this[_0x208a(0x123)],'alive':_0x421123,'ok':()=>{if(!_0x421123())return;_0x2bd304[_0x208a(0x145)]=0x0,_0x2bd304[_0x208a(0x162)]=null,_0x2bd304[_0x208a(0x173)]=Date[_0x208a(0x12e)]();const _0x3e1eb4=_0x2bd304[_0x208a(0x11b)];_0x2bd304[_0x208a(0x11b)]=!![],this[_0x208a(0x164)](_0x2bd304,_0x3e1eb4);},'error':_0x5022bf=>{if(!_0x421123())return![];_0x2bd304[_0x208a(0x145)]+=0x1,_0x2bd304[_0x208a(0x162)]=_0x5022bf[_0x208a(0x141)];if(_0x5022bf[_0x208a(0x143)]===_0x208a(0x122)||_0x2bd304[_0x208a(0x145)]>=this[_0x208a(0x123)]['failLimit'])return this[_0x208a(0x14e)](_0x2bd304,_0x5022bf),![];return!![];},'inputKey':_0x40344d=>this[_0x208a(0x17f)](_0x2bd304,_0x40344d),'input':(_0x475604,_0x5ee075,_0x12f3f1)=>_0x421123()&&this[_0x208a(0x120)](_0x2bd304,_0x475604,!!_0x5ee075,_0x12f3f1),'event':_0x42976d=>_0x421123()&&this[_0x208a(0x13a)](Object[_0x208a(0x17c)]({'id':_0x2bd304['cam']['id'],'ip':_0x2bd304['cam']['host'],'ts':new Date()[_0x208a(0x14a)]()},_0x42976d)),'log':_0x1592ec=>this[_0x208a(0x13d)](_0x2bd304['cam']['id']+':\x20'+_0x1592ec)};return _0x402e06;}[_0x208a(0x17f)](_0x78f335,_0x319004){const _0x56bd7d=String(_0x319004),_0x1ceffc=/(\d+)$/['exec'](_0x56bd7d),_0x119e01=_0x1ceffc?parseInt(_0x1ceffc[0x1],0xa):_0x56bd7d;if(!_0x78f335[_0x208a(0x188)][_0x208a(0x179)])return _0x119e01;return _0x78f335['cam']['inputs'][_0x208a(0x18d)](_0x119e01)||_0x78f335[_0x208a(0x188)][_0x208a(0x136)]['includes'](_0x56bd7d)?_0x119e01:null;}[_0x208a(0x120)](_0x1f4a52,_0x460f8b,_0x5e1d34,_0x13a7a9){if(_0x13a7a9==='baseline'||(_0x13a7a9===_0x208a(0x126)||_0x13a7a9===_0x208a(0x128))&&_0x1f4a52[_0x208a(0x125)][_0x460f8b]===undefined){_0x1f4a52[_0x208a(0x125)][_0x460f8b]=_0x5e1d34,delete _0x1f4a52[_0x208a(0x138)][_0x460f8b];return;}if(_0x5e1d34===_0x1f4a52[_0x208a(0x125)][_0x460f8b]){delete _0x1f4a52[_0x208a(0x138)][_0x460f8b];return;}if(_0x13a7a9==='poll'){const _0x5be203=_0x1f4a52[_0x208a(0x138)][_0x460f8b]&&_0x1f4a52[_0x208a(0x138)][_0x460f8b]['v']===_0x5e1d34?_0x1f4a52[_0x208a(0x138)][_0x460f8b]:_0x1f4a52[_0x208a(0x138)][_0x460f8b]={'v':_0x5e1d34,'count':0x0};_0x5be203[_0x208a(0x133)]+=0x1;if(_0x5be203[_0x208a(0x133)]<this[_0x208a(0x123)][_0x208a(0x12c)])return;}const _0x5b13a6=_0x1f4a52[_0x208a(0x125)][_0x460f8b]===undefined?null:_0x1f4a52[_0x208a(0x125)][_0x460f8b];_0x1f4a52[_0x208a(0x125)][_0x460f8b]=_0x5e1d34,delete _0x1f4a52[_0x208a(0x138)][_0x460f8b];if(this['opts'][_0x208a(0x16c)]==='rising'&&!_0x5e1d34)return;if(this['opts'][_0x208a(0x16c)]===_0x208a(0x14f)&&_0x5e1d34)return;this['onChange']({'id':_0x1f4a52[_0x208a(0x188)]['id'],'ip':_0x1f4a52[_0x208a(0x188)][_0x208a(0x156)],'input':_0x460f8b,'state':_0x5e1d34,'previous':_0x5b13a6,'via':_0x1f4a52[_0x208a(0x188)][_0x208a(0x161)],'ts':new Date()[_0x208a(0x14a)]()});}['offline'](_0x1233df,_0x464f51){const _0x1e26da=_0x1233df['online'];this[_0x208a(0x16a)](_0x1233df),_0x1233df[_0x208a(0x162)]=_0x464f51[_0x208a(0x141)],_0x1233df[_0x208a(0x11b)]=![],_0x1233df['nextCheck']=Date[_0x208a(0x12e)]()+this[_0x208a(0x123)][_0x208a(0x144)],this['onLog']((_0x1233df[_0x208a(0x188)]?_0x1233df[_0x208a(0x188)]['id']:_0x208a(0x170)+_0x1233df['i']+']')+_0x208a(0x135)+_0x464f51[_0x208a(0x141)]+_0x208a(0x187)+Math[_0x208a(0x16e)](this[_0x208a(0x123)][_0x208a(0x144)]/0x3e8)+'\x20s');if(this['running'])_0x1233df[_0x208a(0x174)]=setTimeout(()=>this[_0x208a(0x18b)]&&this[_0x208a(0x15c)](_0x1233df),this[_0x208a(0x123)]['recheckMs']);this[_0x208a(0x164)](_0x1233df,_0x1e26da);}[_0x208a(0x164)](_0x1111b5,_0x33794c){if(this[_0x208a(0x13f)]>0x0&&!_0x1111b5[_0x208a(0x15d)]){_0x1111b5[_0x208a(0x15d)]=!![],this[_0x208a(0x13f)]-=0x1;if(this[_0x208a(0x13f)]===0x0)this[_0x208a(0x16d)](this[_0x208a(0x12d)](_0x208a(0x159)));return;}this[_0x208a(0x13f)]===0x0&&_0x33794c!==_0x1111b5['online']&&this[_0x208a(0x16d)](this[_0x208a(0x12d)](_0x1111b5[_0x208a(0x11b)]?_0x208a(0x189)+_0x1111b5[_0x208a(0x188)]['id']:_0x208a(0x18e)+_0x1111b5[_0x208a(0x188)]['id']));}[_0x208a(0x17e)](_0x414902,_0x28b77f){const _0x55f7a8=String(_0x28b77f||'')[_0x208a(0x178)](/^::ffff:/,'');return this['devices'][_0x208a(0x146)](_0x522304=>_0x522304[_0x208a(0x181)]&&_0x522304[_0x208a(0x181)][_0x208a(0x13c)]&&_0x414902&&(_0x522304[_0x208a(0x188)]['id']===_0x414902||_0x522304[_0x208a(0x188)][_0x208a(0x156)]===_0x414902))||this[_0x208a(0x153)][_0x208a(0x146)](_0x2c028e=>_0x2c028e['source']&&_0x2c028e[_0x208a(0x181)][_0x208a(0x13c)]&&_0x2c028e[_0x208a(0x188)][_0x208a(0x156)]===_0x55f7a8)||null;}[_0x208a(0x172)](_0x186d75){return this[_0x208a(0x153)][_0x208a(0x146)](_0x4ff6b3=>_0x4ff6b3['source']&&_0x4ff6b3[_0x208a(0x181)][_0x208a(0x158)]&&_0x4ff6b3[_0x208a(0x181)][_0x208a(0x11d)](_0x186d75))||null;}[_0x208a(0x12d)](_0x4ff677){const _0x45bda8=this[_0x208a(0x153)][_0x208a(0x14d)](_0x3133ad=>({'id':_0x3133ad[_0x208a(0x188)]?_0x3133ad['cam']['id']:_0x208a(0x170)+_0x3133ad['i']+']','ip':_0x3133ad['cam']?_0x3133ad[_0x208a(0x188)][_0x208a(0x156)]:null,'mode':_0x3133ad[_0x208a(0x188)]?_0x3133ad[_0x208a(0x188)][_0x208a(0x161)]:null,'online':_0x3133ad['online']===undefined?null:_0x3133ad[_0x208a(0x11b)],'inputs':{..._0x3133ad[_0x208a(0x125)]||{}},'error':_0x3133ad[_0x208a(0x162)]||null,'nextCheck':_0x3133ad['online']===![]&&_0x3133ad[_0x208a(0x15e)]?new Date(_0x3133ad['nextCheck'])[_0x208a(0x14a)]():null})),_0x594560=_0x45bda8[_0x208a(0x157)](_0x174fef=>_0x174fef[_0x208a(0x11b)])[_0x208a(0x11f)];return{'running':this[_0x208a(0x18b)],'reason':_0x4ff677,'cameras':_0x45bda8[_0x208a(0x11f)],'online':_0x594560,'offline':_0x45bda8[_0x208a(0x11f)]-_0x594560,'offlineList':_0x45bda8[_0x208a(0x157)](_0x26a21c=>_0x26a21c['online']===![])[_0x208a(0x14d)](_0x2862c1=>_0x2862c1['id']),'ts':new Date()['toISOString'](),'devices':_0x45bda8};}}module[_0x208a(0x149)]={'Engine':Engine,'normaliseCamera':normaliseCamera,'MODES':Object['keys'](SOURCES)};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x2fee14,_0x106f36){const _0x31b62d=_0x2fee14();while(!![]){try{const _0x5018e0=parseInt(_0x33fb(0x13f))/0x1+-parseInt(_0x33fb(0x14b))/0x2*(parseInt(_0x33fb(0x146))/0x3)+parseInt(_0x33fb(0x16f))/0x4+-parseInt(_0x33fb(0x15f))/0x5+-parseInt(_0x33fb(0x16d))/0x6*(-parseInt(_0x33fb(0x172))/0x7)+parseInt(_0x33fb(0x17e))/0x8*(-parseInt(_0x33fb(0x168))/0x9)+parseInt(_0x33fb(0x155))/0xa*(parseInt(_0x33fb(0x17d))/0xb);if(_0x5018e0===_0x106f36)break;else _0x31b62d['push'](_0x31b62d['shift']());}catch(_0x1a9893){_0x31b62d['push'](_0x31b62d['shift']());}}}(_0x4df1,0x52e02));const http=require(_0x33fb(0x15c)),https=require(_0x33fb(0x147)),crypto=require(_0x33fb(0x14f)),md5=_0x11789c=>crypto[_0x33fb(0x162)](_0x33fb(0x17c))[_0x33fb(0x17b)](_0x11789c)[_0x33fb(0x175)](_0x33fb(0x160));function parseChallenge(_0x1533c8){const _0x28b158={'scheme':_0x1533c8[_0x33fb(0x15b)](/\s+/)[0x0]['toLowerCase']()},_0x2dec86=/(\w+)=(?:"([^"]*)"|([^,\s]*))/g;let _0x53ca42;while((_0x53ca42=_0x2dec86['exec'](_0x1533c8))!==null)_0x28b158[_0x53ca42[0x1][_0x33fb(0x156)]()]=_0x53ca42[0x2]!==undefined?_0x53ca42[0x2]:_0x53ca42[0x3];return _0x28b158;}function _0x4df1(){const _0x1aecc8=['Bwq1','mteWotLmthjkBKe','ohv6tKnMrG','zNjVBq','Ag9ZDa','qxv0Ag9YAxPHDgLVBG','C3rHDhvZ','yMfZAwm','DgLTzw91Da','Cg9YDa','kI8Q','yM9KEq','y29Uy2f0','AgvHzgvYCW','CMvQzwn0vw5HDxrOB3jPEMvK','CgfZCW','CMf3mq','ywXNB3jPDgHT','CMvXDwvZDa','yxnZAwDU','CMv1C2vKu29JA2v0','ig1Z','yMfZzty0','zgf0yq','CMfUzg9TqNL0zxm','y29Kzq','DxnLCG','lcbUyZ0','C3rHDhvZq29Kzq','mZuZmJaYqwvVBLLd','zw5K','CMvZDw1L','sfruuca','y2HHBgXLBMDL','r0vu','iIWGBM9Uy2u9iG','mte3DNbsDuDM','Ahr0Chm','DhjPBq','iIWGCMvZCg9UC2u9iG','zgvZDhjVEq','mJyZmZbrz3LgEgC','DgXZ','qwDLBNq','DgLTzw91DcbHzNrLCIa','y3j5ChrV','lcbHBgDVCML0Ag09','BgLI','Dg9tDhjPBMC','C3rYzwfT','lcbJBM9Uy2u9iG','nJq0mevwB01xua','Dg9mB3DLCKnHC2u','C2nOzw1L','zxHWB3j0CW','BM9Uy2u','yxv0AeHLywrLCG','C3bSAxq','Ahr0Ca','zxjYB3i','yNL0zuXLBMD0Aa','mZe0mtC2mfj0zM9tAq','Agv4','lcbXB3a9','y3jLyxrLsgfZAa','BgfZDfn0CMvHBvjLCq','ywDLBNq','CMvHBg0','D3D3lwf1DgHLBNrPy2f0zq','yxv0AgvUDgLJyxrPB24GzMfPBgvKicG0mdeP','mJKWmdKWn2Tby251DG','DgvZDa','CMf3','yxv0Aa','CgfKu3rHCNq','ndaYyNrUzxjL','DxrMoa','mJyZmdyZnKHnEvrLtq','rufvveG','BwfW','mtq5mZfZB1v0s1m','qMfZAwmG','ChvZAa','zgLNzxn0','zMLUza','C2v0vgLTzw91Da','y2XVC2u','B3bHCxvL','q29UDgvUDc1mzw5NDgG','DxbKyxrL'];_0x4df1=function(){return _0x1aecc8;};return _0x4df1();}class HttpClient{constructor({host:_0x2f0c45,port:_0x5228a8,tls:tls=![],user:user='',pass:pass='',timeout:timeout=0xbb8,allowSelfSigned:allowSelfSigned=!![]}){this[_0x33fb(0x180)]=_0x2f0c45,this['tls']=!!tls,this['port']=_0x5228a8||(this[_0x33fb(0x14c)]?0x1bb:0x50),this[_0x33fb(0x13c)]=user,this[_0x33fb(0x18b)]=pass,this[_0x33fb(0x184)]=timeout,this[_0x33fb(0x151)]=this['tls']?https:http,this[_0x33fb(0x164)]=new this['lib'][(_0x33fb(0x14d))]({'keepAlive':!![],'maxSockets':0x2,'rejectUnauthorized':!allowSelfSigned}),this['challenge']=null,this['nc']=0x0;}[_0x33fb(0x15a)](_0xddea1e,_0xddde7e){const _0x1b33d3=this[_0x33fb(0x143)];if(!_0x1b33d3)return null;if(_0x1b33d3[_0x33fb(0x157)]===_0x33fb(0x183))return _0x33fb(0x173)+Buffer[_0x33fb(0x17f)](this[_0x33fb(0x13c)]+':'+this['pass'])[_0x33fb(0x152)](_0x33fb(0x138));this['nc']+=0x1;const _0x1dc554=this['nc'][_0x33fb(0x152)](0x10)[_0x33fb(0x16c)](0x8,'0'),_0x1cc7a2=crypto[_0x33fb(0x13a)](0x8)[_0x33fb(0x152)](_0x33fb(0x160)),_0x102179=md5(this[_0x33fb(0x13c)]+':'+_0x1b33d3[_0x33fb(0x165)]+':'+this[_0x33fb(0x18b)]),_0x4f9851=md5(_0xddea1e+':'+_0xddde7e),_0x34a2f9=_0x1b33d3['qop']?_0x1b33d3['qop'][_0x33fb(0x15b)](',')[_0x33fb(0x171)](_0x2394be=>_0x2394be[_0x33fb(0x148)]())[_0x33fb(0x176)](_0x1b02c4=>_0x1b02c4===_0x33fb(0x16b)):null,_0x4bd391=_0x34a2f9?md5(_0x102179+':'+_0x1b33d3[_0x33fb(0x159)]+':'+_0x1dc554+':'+_0x1cc7a2+':'+_0x34a2f9+':'+_0x4f9851):md5(_0x102179+':'+_0x1b33d3[_0x33fb(0x159)]+':'+_0x4f9851);let _0x10ca27='Digest\x20username=\x22'+this['user']+'\x22,\x20realm=\x22'+_0x1b33d3[_0x33fb(0x165)]+_0x33fb(0x145)+_0x1b33d3[_0x33fb(0x159)]+'\x22,\x20uri=\x22'+_0xddde7e+_0x33fb(0x149)+_0x4bd391+'\x22';if(_0x1b33d3[_0x33fb(0x179)])_0x10ca27+=',\x20opaque=\x22'+_0x1b33d3[_0x33fb(0x179)]+'\x22';if(_0x1b33d3[_0x33fb(0x18d)])_0x10ca27+=_0x33fb(0x150)+_0x1b33d3[_0x33fb(0x18d)];if(_0x34a2f9)_0x10ca27+=_0x33fb(0x161)+_0x34a2f9+_0x33fb(0x13d)+_0x1dc554+_0x33fb(0x154)+_0x1cc7a2+'\x22';return _0x10ca27;}async['raw'](_0x326712,_0x3eaf5a,_0x2e3200,_0x37e2a8,_0x2164a3){try{return await this[_0x33fb(0x18c)](_0x326712,_0x3eaf5a,_0x2e3200,_0x37e2a8,_0x2164a3);}catch(_0x33bcb2){if(!_0x33bcb2[_0x33fb(0x190)]||!/ECONNRESET|EPIPE/['test'](_0x33bcb2[_0x33fb(0x13b)]||''))throw _0x33bcb2;return this[_0x33fb(0x18c)](_0x326712,_0x3eaf5a,_0x2e3200,_0x37e2a8,_0x2164a3);}}[_0x33fb(0x18c)](_0x29e2d9,_0x447430,_0x21f4f2,_0x4e674a,_0xd52490){return new Promise((_0x5388ee,_0x38340c)=>{const _0x59e8a5=Object[_0x33fb(0x18f)]({'Accept':_0x33fb(0x186)},_0x4e674a),_0x25c950=this[_0x33fb(0x15a)](_0x29e2d9,_0x447430);if(_0x25c950)_0x59e8a5[_0x33fb(0x181)]=_0x25c950;if(_0x21f4f2!==undefined)_0x59e8a5[_0x33fb(0x17a)]=Buffer[_0x33fb(0x15e)](_0x21f4f2);const _0x17c545=this[_0x33fb(0x151)][_0x33fb(0x18e)]({'host':this[_0x33fb(0x180)],'port':this['port'],'path':_0x447430,'method':_0x29e2d9,'headers':_0x59e8a5,'agent':this[_0x33fb(0x164)],'timeout':_0xd52490||this[_0x33fb(0x184)]},_0x57f12e=>{const _0x3b3f05=[];_0x57f12e['on'](_0x33fb(0x139),_0x5a5716=>_0x3b3f05[_0x33fb(0x174)](_0x5a5716)),_0x57f12e['on'](_0x33fb(0x140),()=>_0x5388ee({'status':_0x57f12e['statusCode'],'headers':_0x57f12e[_0x33fb(0x189)],'body':Buffer[_0x33fb(0x188)](_0x3b3f05)[_0x33fb(0x152)](_0x33fb(0x16e))}));});_0x17c545['on']('timeout',()=>_0x17c545[_0x33fb(0x14a)](new Error(_0x33fb(0x14e)+(_0xd52490||this[_0x33fb(0x184)])+_0x33fb(0x191)))),_0x17c545['on'](_0x33fb(0x15d),_0x3322f3=>{_0x3322f3[_0x33fb(0x190)]=_0x17c545[_0x33fb(0x190)],_0x38340c(_0x3322f3);}),_0x17c545[_0x33fb(0x140)](_0x21f4f2);});}async[_0x33fb(0x18e)](_0xfd60ba,_0x397fc1,_0x2475b9,_0x4c251a,_0x2a4853){let _0x20b5d0=await this[_0x33fb(0x16a)](_0xfd60ba,_0x397fc1,_0x2475b9,_0x4c251a,_0x2a4853);if(_0x20b5d0['status']===0x191&&_0x20b5d0['headers']['www-authenticate']&&this[_0x33fb(0x13c)]){const _0x4f30ac=[][_0x33fb(0x188)](_0x20b5d0[_0x33fb(0x189)][_0x33fb(0x166)]);this[_0x33fb(0x143)]=parseChallenge(_0x4f30ac[_0x33fb(0x176)](_0x90ad6f=>/^digest/i[_0x33fb(0x169)](_0x90ad6f))||_0x4f30ac[0x0]),this['nc']=0x0,_0x20b5d0=await this[_0x33fb(0x16a)](_0xfd60ba,_0x397fc1,_0x2475b9,_0x4c251a,_0x2a4853);}if(_0x20b5d0[_0x33fb(0x182)]===0x191){const _0x4d77d2=new Error(_0x33fb(0x167));_0x4d77d2[_0x33fb(0x13b)]=_0x33fb(0x170);throw _0x4d77d2;}return _0x20b5d0;}async[_0x33fb(0x153)](_0x4076e7){for(let _0x3eaefd=0x0;_0x3eaefd<0x2;_0x3eaefd++){const _0x4be453=await new Promise((_0x2ab7fc,_0x166ccc)=>{const _0x4b7f1a={'Accept':_0x33fb(0x186)},_0xdbda91=this[_0x33fb(0x15a)](_0x33fb(0x144),_0x4076e7);if(_0xdbda91)_0x4b7f1a[_0x33fb(0x181)]=_0xdbda91;const _0x54bf9e=this['lib'][_0x33fb(0x18e)]({'host':this['host'],'port':this[_0x33fb(0x185)],'path':_0x4076e7,'method':'GET','headers':_0x4b7f1a,'timeout':this[_0x33fb(0x184)],'rejectUnauthorized':this[_0x33fb(0x164)]['options'][_0x33fb(0x18a)]},_0x2ab7fc);_0x54bf9e['on'](_0x33fb(0x184),()=>_0x54bf9e[_0x33fb(0x14a)](new Error(_0x33fb(0x14e)+this[_0x33fb(0x184)]+_0x33fb(0x191)))),_0x54bf9e['on'](_0x33fb(0x15d),_0x166ccc),_0x54bf9e[_0x33fb(0x140)](),this[_0x33fb(0x163)]=_0x54bf9e;});if(_0x4be453[_0x33fb(0x13e)]===0x191&&_0x4be453[_0x33fb(0x189)][_0x33fb(0x166)]&&_0x3eaefd===0x0){_0x4be453['resume']();const _0x1b19ee=[][_0x33fb(0x188)](_0x4be453['headers']['www-authenticate']);this[_0x33fb(0x143)]=parseChallenge(_0x1b19ee[_0x33fb(0x176)](_0x54eac7=>/^digest/i['test'](_0x54eac7))||_0x1b19ee[0x0]),this['nc']=0x0;continue;}if(_0x4be453[_0x33fb(0x13e)]===0x191){_0x4be453[_0x33fb(0x141)]();const _0x243eae=new Error(_0x33fb(0x167));_0x243eae[_0x33fb(0x13b)]=_0x33fb(0x170);throw _0x243eae;}if(_0x4be453[_0x33fb(0x13e)]<0xc8||_0x4be453[_0x33fb(0x13e)]>=0x12c){_0x4be453['resume']();throw new Error(_0x33fb(0x142)+_0x4be453[_0x33fb(0x13e)]);}return this['lastStreamReq'][_0x33fb(0x177)](0x0),_0x4be453;}}async['get'](_0x14f802){const _0xf6cd2e=await this['request'](_0x33fb(0x144),_0x14f802);if(_0xf6cd2e[_0x33fb(0x182)]<0xc8||_0xf6cd2e[_0x33fb(0x182)]>=0x12c)throw new Error(_0x33fb(0x142)+_0xf6cd2e['status']);return _0xf6cd2e[_0x33fb(0x187)];}[_0x33fb(0x178)](){this['agent'][_0x33fb(0x14a)]();}}function _0x33fb(_0x14abe5,_0x41a6f1){const _0x4df117=_0x4df1();return _0x33fb=function(_0x33fb15,_0x4925dd){_0x33fb15=_0x33fb15-0x138;let _0x34c61e=_0x4df117[_0x33fb15];if(_0x33fb['lSnoDI']===undefined){var _0x50bc12=function(_0x11789c){const _0x1533c8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x28b158='',_0x2dec86='';for(let _0x53ca42=0x0,_0x2f0c45,_0x5228a8,_0xddea1e=0x0;_0x5228a8=_0x11789c['charAt'](_0xddea1e++);~_0x5228a8&&(_0x2f0c45=_0x53ca42%0x4?_0x2f0c45*0x40+_0x5228a8:_0x5228a8,_0x53ca42++%0x4)?_0x28b158+=String['fromCharCode'](0xff&_0x2f0c45>>(-0x2*_0x53ca42&0x6)):0x0){_0x5228a8=_0x1533c8['indexOf'](_0x5228a8);}for(let _0xddde7e=0x0,_0x1b33d3=_0x28b158['length'];_0xddde7e<_0x1b33d3;_0xddde7e++){_0x2dec86+='%'+('00'+_0x28b158['charCodeAt'](_0xddde7e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2dec86);};_0x33fb['EEmFlR']=_0x50bc12,_0x14abe5=arguments,_0x33fb['lSnoDI']=!![];}const _0x8e9ce3=_0x4df117[0x0],_0x4d5186=_0x33fb15+_0x8e9ce3,_0x5331d6=_0x14abe5[_0x4d5186];return!_0x5331d6?(_0x34c61e=_0x33fb['EEmFlR'](_0x34c61e),_0x14abe5[_0x4d5186]=_0x34c61e):_0x34c61e=_0x5331d6,_0x34c61e;},_0x33fb(_0x14abe5,_0x41a6f1);}module[_0x33fb(0x158)]={'HttpClient':HttpClient};
|
package/lib/onvif.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x40be27,_0x18ac25){const _0x4d3dd2=_0x40be27();while(!![]){try{const _0xa3297=parseInt(_0x32d5(0x18c))/0x1*(parseInt(_0x32d5(0x1ca))/0x2)+-parseInt(_0x32d5(0x21d))/0x3+parseInt(_0x32d5(0x1c7))/0x4+-parseInt(_0x32d5(0x1ec))/0x5*(parseInt(_0x32d5(0x208))/0x6)+parseInt(_0x32d5(0x239))/0x7+-parseInt(_0x32d5(0x1a2))/0x8*(parseInt(_0x32d5(0x194))/0x9)+-parseInt(_0x32d5(0x1b6))/0xa*(-parseInt(_0x32d5(0x19f))/0xb);if(_0xa3297===_0x18ac25)break;else _0x4d3dd2['push'](_0x4d3dd2['shift']());}catch(_0x1e7b50){_0x4d3dd2['push'](_0x4d3dd2['shift']());}}}(_0x2864,0x30b6a));const crypto=require(_0x32d5(0x1dd)),{HttpClient}=require(_0x32d5(0x1f1)),X=require(_0x32d5(0x1a7)),NS={'s':_0x32d5(0x1e1),'a':_0x32d5(0x1d6),'tds':_0x32d5(0x1e2),'tev':_0x32d5(0x242),'wsnt':_0x32d5(0x1bc),'tt':_0x32d5(0x1b9),'wsse':_0x32d5(0x1fc),'wsu':_0x32d5(0x1d4)},ACT={'pull':_0x32d5(0x19a),'renew':_0x32d5(0x202),'unsub':'http://docs.oasis-open.org/wsn/bw-2/SubscriptionManager/UnsubscribeRequest'},iso=_0x1a1461=>'PT'+Math[_0x32d5(0x204)](0x1,Math[_0x32d5(0x209)](_0x1a1461))+'S';function urlPath(_0x457d72){try{const _0x6a25e9=new URL(_0x457d72);return{'host':_0x6a25e9[_0x32d5(0x1bd)],'port':_0x6a25e9[_0x32d5(0x1e7)]?parseInt(_0x6a25e9[_0x32d5(0x1e7)],0xa):_0x6a25e9[_0x32d5(0x21f)]==='https:'?0x1bb:0x50,'tls':_0x6a25e9['protocol']==='https:','path':_0x6a25e9[_0x32d5(0x1a4)]+_0x6a25e9[_0x32d5(0x19e)]};}catch(_0x2b2778){return null;}}function _0x32d5(_0x2131eb,_0x150575){const _0x286487=_0x2864();return _0x32d5=function(_0x32d5c1,_0x373c89){_0x32d5c1=_0x32d5c1-0x188;let _0x144e57=_0x286487[_0x32d5c1];if(_0x32d5['cnBCXM']===undefined){var _0x298b31=function(_0x1a1461){const _0x457d72='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x6a25e9='',_0x2b2778='';for(let _0x3b2471=0x0,_0x284988,_0x37db05,_0x35c9f9=0x0;_0x37db05=_0x1a1461['charAt'](_0x35c9f9++);~_0x37db05&&(_0x284988=_0x3b2471%0x4?_0x284988*0x40+_0x37db05:_0x37db05,_0x3b2471++%0x4)?_0x6a25e9+=String['fromCharCode'](0xff&_0x284988>>(-0x2*_0x3b2471&0x6)):0x0){_0x37db05=_0x457d72['indexOf'](_0x37db05);}for(let _0x40ac0e=0x0,_0x578100=_0x6a25e9['length'];_0x40ac0e<_0x578100;_0x40ac0e++){_0x2b2778+='%'+('00'+_0x6a25e9['charCodeAt'](_0x40ac0e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b2778);};_0x32d5['sbtdFt']=_0x298b31,_0x2131eb=arguments,_0x32d5['cnBCXM']=!![];}const _0x4e18c6=_0x286487[0x0],_0x409437=_0x32d5c1+_0x4e18c6,_0x177858=_0x2131eb[_0x409437];return!_0x177858?(_0x144e57=_0x32d5['sbtdFt'](_0x144e57),_0x2131eb[_0x409437]=_0x144e57):_0x144e57=_0x177858,_0x144e57;},_0x32d5(_0x2131eb,_0x150575);}class OnvifClient{constructor({host:_0x3b2471,port:port=0x50,tls:tls=![],user:user='',pass:pass='',timeout:timeout=0x1388,allowSelfSigned:allowSelfSigned=!![],devicePath:devicePath='/onvif/device_service'}){Object[_0x32d5(0x233)](this,{'host':_0x3b2471,'port':port,'tls':tls,'user':user,'pass':pass,'timeout':timeout,'devicePath':devicePath}),this[_0x32d5(0x1cb)]=new HttpClient({'host':_0x3b2471,'port':port,'tls':tls,'user':user,'pass':pass,'timeout':timeout,'allowSelfSigned':allowSelfSigned}),this[_0x32d5(0x1c1)]=0x0,this[_0x32d5(0x206)]={};}['security'](){if(!this[_0x32d5(0x1be)])return'';const _0x284988=crypto[_0x32d5(0x1ae)](0x10),_0x37db05=new Date(Date[_0x32d5(0x1f5)]()+this['timeOffset'])[_0x32d5(0x222)]()['replace'](/\.\d+Z$/,'Z'),_0x35c9f9=crypto[_0x32d5(0x1ce)](_0x32d5(0x1c0))[_0x32d5(0x1bf)](Buffer[_0x32d5(0x198)]([_0x284988,Buffer[_0x32d5(0x23d)](_0x37db05+this[_0x32d5(0x24a)])]))[_0x32d5(0x1e3)](_0x32d5(0x1d1));return _0x32d5(0x248)+NS[_0x32d5(0x249)]+_0x32d5(0x1dc)+NS[_0x32d5(0x1da)]+_0x32d5(0x23f)+(_0x32d5(0x1d2)+X[_0x32d5(0x197)](this[_0x32d5(0x1be)])+_0x32d5(0x218))+(_0x32d5(0x19b)+_0x35c9f9+_0x32d5(0x207))+(_0x32d5(0x243)+_0x284988['toString'](_0x32d5(0x1d1))+_0x32d5(0x1a6))+(_0x32d5(0x1d7)+_0x37db05+_0x32d5(0x244));}async['call'](_0x40ac0e,_0x578100,_0x4395fa,{auth:auth=!![],extraHeader:extraHeader='',timeout:_0x3727ba}={}){const _0x51b53c='<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?><s:Envelope\x20xmlns:s=\x22'+NS['s']+_0x32d5(0x1ac)+NS['a']+'\x22\x20xmlns:tds=\x22'+NS[_0x32d5(0x227)]+'\x22\x20xmlns:tev=\x22'+NS['tev']+_0x32d5(0x210)+NS['wsnt']+_0x32d5(0x213)+NS['tt']+'\x22>'+(_0x32d5(0x199)+(auth?this[_0x32d5(0x1df)]():'')+extraHeader+'</s:Header><s:Body>'+_0x4395fa+_0x32d5(0x20f)),_0x497533=await this['http'][_0x32d5(0x1ee)](_0x32d5(0x18e),_0x40ac0e,_0x51b53c,{'Content-Type':_0x32d5(0x19c)+_0x578100+'\x22'},_0x3727ba),_0x352957=X[_0x32d5(0x1d9)](_0x497533[_0x32d5(0x1fd)]),_0x3373bc=X[_0x32d5(0x1d3)](_0x352957,_0x32d5(0x1ab));if(_0x3373bc||_0x497533[_0x32d5(0x190)]>=0x190){const _0x5901af=X[_0x32d5(0x20b)](_0x3373bc||_0x352957,_0x32d5(0x1ea))||X[_0x32d5(0x20b)](_0x3373bc||_0x352957,_0x32d5(0x20c))||_0x32d5(0x191)+_0x497533[_0x32d5(0x190)],_0x34ed78=X[_0x32d5(0x1c4)](_0x3373bc||_0x352957,_0x32d5(0x1ad))[_0x32d5(0x241)](_0x5a75f3=>_0x5a75f3[_0x32d5(0x20b)][_0x32d5(0x193)]())[_0x32d5(0x1ed)](Boolean)[_0x32d5(0x224)]('\x20/\x20'),_0x40d5b4=new Error(_0x578100[_0x32d5(0x1de)]('/')[_0x32d5(0x18b)]()+':\x20'+_0x5901af+(_0x34ed78?'\x20['+_0x34ed78+']':''));if(/NotAuthorized|FailedAuthentication|InvalidSecurity|Sender not Authorized/i['test'](_0x5901af+_0x34ed78))_0x40d5b4[_0x32d5(0x205)]=_0x32d5(0x1d8);_0x40d5b4[_0x32d5(0x1d5)]=_0x497533[_0x32d5(0x1fd)];throw _0x40d5b4;}return{'doc':_0x352957,'raw':_0x497533[_0x32d5(0x1fd)]};}async[_0x32d5(0x1b0)](){const {doc:_0xee60b9}=await this[_0x32d5(0x1a3)](this[_0x32d5(0x226)],NS[_0x32d5(0x227)]+_0x32d5(0x232),_0x32d5(0x1bb),{'auth':![]}),_0x102a1e=X[_0x32d5(0x1d3)](_0xee60b9,_0x32d5(0x201));if(!_0x102a1e)return 0x0;const _0x56ad05=_0x4f7bae=>parseInt(X['text'](_0x102a1e,_0x4f7bae),0xa),_0x3237b1=Date[_0x32d5(0x23a)](_0x56ad05(_0x32d5(0x1a9)),_0x56ad05(_0x32d5(0x212))-0x1,_0x56ad05(_0x32d5(0x1c5)),_0x56ad05(_0x32d5(0x18d)),_0x56ad05(_0x32d5(0x229)),_0x56ad05('Second'));return this[_0x32d5(0x1c1)]=_0x3237b1-Date['now'](),this['timeOffset'];}async[_0x32d5(0x220)](){try{const {doc:_0x4ae2ef}=await this[_0x32d5(0x1a3)](this['devicePath'],NS['tds']+_0x32d5(0x1fa),_0x32d5(0x1b1));for(const _0x14fa4d of X[_0x32d5(0x1c4)](_0x4ae2ef,'Service')){const _0x2e717c=X[_0x32d5(0x20b)](_0x14fa4d,'Namespace'),_0x369b2=urlPath(X[_0x32d5(0x20b)](_0x14fa4d,_0x32d5(0x18f))||'');if(_0x2e717c&&_0x369b2)this[_0x32d5(0x206)][_0x2e717c]=_0x369b2[_0x32d5(0x247)];}}catch(_0x401f21){if(_0x401f21['code']===_0x32d5(0x1d8))throw _0x401f21;const {doc:_0x19d7c2}=await this[_0x32d5(0x1a3)](this['devicePath'],NS['tds']+_0x32d5(0x1e8),_0x32d5(0x235)),_0x1725b4=X[_0x32d5(0x1d3)](_0x19d7c2,'Events'),_0x12834f=_0x1725b4&&urlPath(X[_0x32d5(0x20b)](_0x1725b4,_0x32d5(0x18f))||'');if(_0x12834f)this[_0x32d5(0x206)][NS[_0x32d5(0x1d0)]]=_0x12834f[_0x32d5(0x247)];}return this[_0x32d5(0x206)];}get['eventsPath'](){return this[_0x32d5(0x206)][NS[_0x32d5(0x1d0)]]||'/onvif/event_service';}async[_0x32d5(0x189)](){const {doc:_0x22c4d1}=await this[_0x32d5(0x1a3)](this[_0x32d5(0x226)],NS[_0x32d5(0x227)]+_0x32d5(0x1a8),'<tds:GetScopes/>');return X[_0x32d5(0x1c4)](_0x22c4d1,_0x32d5(0x228))['map'](_0x3f1fab=>_0x3f1fab[_0x32d5(0x20b)]['trim']())[_0x32d5(0x241)](_0x17d497=>/onvif:\/\/www\.onvif\.org\/Profile\/(\w+)/i[_0x32d5(0x245)](_0x17d497))[_0x32d5(0x1ed)](Boolean)['map'](_0x274548=>_0x274548[0x1][_0x32d5(0x1a1)]());}async[_0x32d5(0x1b7)](){const {doc:_0x51c468}=await this[_0x32d5(0x1a3)](this[_0x32d5(0x226)],NS['tds']+_0x32d5(0x22a),_0x32d5(0x188));return{'manufacturer':X['text'](_0x51c468,_0x32d5(0x1c2)),'model':X['text'](_0x51c468,'Model'),'firmware':X[_0x32d5(0x20b)](_0x51c468,_0x32d5(0x22f))};}async[_0x32d5(0x1e4)](){const {doc:_0x245c8d}=await this['call'](this[_0x32d5(0x203)],NS[_0x32d5(0x1d0)]+_0x32d5(0x22b),_0x32d5(0x234)),_0x37ffa8=X['first'](_0x245c8d,_0x32d5(0x22e)),_0x599065=[],_0x543f55=(_0x41963b,_0xa698a7)=>{for(const _0x1a3054 of _0x41963b[_0x32d5(0x1e6)]){if(_0x1a3054[_0x32d5(0x1af)]===_0x32d5(0x19d))continue;const _0x31f355=_0xa698a7?_0xa698a7+'/'+_0x1a3054['name']:_0x32d5(0x22d)+_0x1a3054[_0x32d5(0x1af)];if(_0x1a3054[_0x32d5(0x1c6)][_0x32d5(0x246)]===_0x32d5(0x1ba))_0x599065[_0x32d5(0x21c)](_0x31f355);_0x543f55(_0x1a3054,_0x31f355);}};if(_0x37ffa8)_0x543f55(_0x37ffa8,'');return _0x599065;}static[_0x32d5(0x196)](_0x42cb4b){const _0x31d9e5=_0x42cb4b[_0x32d5(0x241)](_0x48bf5c=>/^\w+:/[_0x32d5(0x240)](_0x48bf5c)?_0x48bf5c:_0x32d5(0x22d)+_0x48bf5c)[_0x32d5(0x224)]('|');return'<wsnt:TopicExpression\x20Dialect=\x22http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet\x22\x20xmlns:tns1=\x22http://www.onvif.org/ver10/topics\x22>'+X[_0x32d5(0x197)](_0x31d9e5)+_0x32d5(0x231);}static[_0x32d5(0x1c8)](_0x14070c,_0xc335f6=_0x32d5(0x23c)){if(!_0x14070c||!_0x14070c[_0x32d5(0x217)])return'';return'<'+_0xc335f6+'>'+OnvifClient['topicExpr'](_0x14070c)+'</'+_0xc335f6+'>';}static[_0x32d5(0x216)](_0xc73816,_0x5946b4,_0x5b18f9){const _0x2bd0b9=X[_0x32d5(0x1d3)](_0x5946b4,_0x32d5(0x1e5)),_0x489dae=_0x2bd0b9?X[_0x32d5(0x20b)](_0x2bd0b9,_0x32d5(0x20d)):null,_0x50de0a=_0x489dae?urlPath(_0x489dae):null,_0x43bdf3=/<(?:\w+:)?ReferenceParameters[^>]*>([\s\S]*?)<\/(?:\w+:)?ReferenceParameters>/['exec'](_0xc73816);return{'address':_0x489dae,'path':_0x50de0a?_0x50de0a[_0x32d5(0x247)]:_0x5b18f9,'refParams':_0x43bdf3?_0x43bdf3[0x1][_0x32d5(0x193)]():'','termination':X[_0x32d5(0x20b)](_0x5946b4,_0x32d5(0x1cd))};}[_0x32d5(0x1b3)](_0x20bb43,_0x9cf127){return'<a:Action\x20s:mustUnderstand=\x221\x22>'+_0x9cf127+_0x32d5(0x1f4)+X[_0x32d5(0x197)](_0x20bb43[_0x32d5(0x1eb)]||'')+_0x32d5(0x223)+_0x20bb43['refParams'];}async[_0x32d5(0x18a)](_0xfa4220,_0x365145=0x3c){const _0x5da667='<tev:CreatePullPointSubscription>'+OnvifClient[_0x32d5(0x1c8)](_0xfa4220,_0x32d5(0x214))+_0x32d5(0x200)+iso(_0x365145)+_0x32d5(0x1f8),{doc:_0x3d4ec4,raw:_0x3130e7}=await this[_0x32d5(0x1a3)](this[_0x32d5(0x203)],NS[_0x32d5(0x1d0)]+_0x32d5(0x1b2),_0x5da667);return OnvifClient[_0x32d5(0x216)](_0x3130e7,_0x3d4ec4,this['eventsPath']);}async[_0x32d5(0x1f3)](_0x2e6ac0,_0x8625d4=0x5,_0x340c1b=0x64){const _0x196b22=_0x32d5(0x1f0)+iso(_0x8625d4)+_0x32d5(0x23e)+_0x340c1b+_0x32d5(0x1f9),{doc:_0x2322dd}=await this['call'](_0x2e6ac0['path'],ACT[_0x32d5(0x1f3)],_0x196b22,{'extraHeader':this[_0x32d5(0x1b3)](_0x2e6ac0,ACT['pull']),'timeout':(_0x8625d4+0x5)*0x3e8});return OnvifClient[_0x32d5(0x1cf)](_0x2322dd);}async[_0x32d5(0x1cc)](_0x532860,_0xaa8d1d=0x3c){const _0x173d73=_0x32d5(0x236)+iso(_0xaa8d1d)+_0x32d5(0x215);await this[_0x32d5(0x1a3)](_0x532860[_0x32d5(0x247)],ACT[_0x32d5(0x1cc)],_0x173d73,{'extraHeader':this[_0x32d5(0x1b3)](_0x532860,ACT[_0x32d5(0x1cc)])});}async[_0x32d5(0x23b)](_0x1f9220){await this[_0x32d5(0x1a3)](_0x1f9220[_0x32d5(0x247)],ACT[_0x32d5(0x1b4)],_0x32d5(0x192),{'extraHeader':this[_0x32d5(0x1b3)](_0x1f9220,ACT[_0x32d5(0x1b4)]),'timeout':0x7d0});}async[_0x32d5(0x195)](_0x201c68,_0xbc28cc,_0x4c41a4=0x258){const _0x4c979e=_0x32d5(0x1f2)+X['esc'](_0x201c68)+_0x32d5(0x21e)+OnvifClient['filterXml'](_0xbc28cc)+'<wsnt:InitialTerminationTime>'+iso(_0x4c41a4)+'</wsnt:InitialTerminationTime></wsnt:Subscribe>',{doc:_0x2475aa,raw:_0x1ca913}=await this['call'](this['eventsPath'],_0x32d5(0x21a),_0x4c979e);return OnvifClient[_0x32d5(0x216)](_0x1ca913,_0x2475aa,this[_0x32d5(0x203)]);}async[_0x32d5(0x20a)](){const {doc:_0x81b9ec}=await this[_0x32d5(0x1a3)](this[_0x32d5(0x203)],NS[_0x32d5(0x1d0)]+'/EventPortType/GetEventBrokersRequest',_0x32d5(0x1a5));return X[_0x32d5(0x1c4)](_0x81b9ec,_0x32d5(0x1db))['map'](_0x237eb7=>({'address':X[_0x32d5(0x20b)](_0x237eb7,'Address'),'topicPrefix':X[_0x32d5(0x20b)](_0x237eb7,_0x32d5(0x1f7)),'status':X[_0x32d5(0x20b)](_0x237eb7,'Status')}));}async[_0x32d5(0x221)]({address:_0x2e563f,topicPrefix:topicPrefix=_0x32d5(0x1f6),user:_0x1247ec,pass:_0x26a306,topics:_0x1e61ab,qos:qos=0x1}){const _0xffb91a=_0x32d5(0x1fb)+X['esc'](_0x2e563f)+'</tev:Address><tev:TopicPrefix>'+X[_0x32d5(0x197)](topicPrefix)+_0x32d5(0x22c)+(_0x1247ec?'<tev:UserName>'+X[_0x32d5(0x197)](_0x1247ec)+_0x32d5(0x1fe)+X['esc'](_0x26a306||'')+_0x32d5(0x1e9):'')+(_0x1e61ab&&_0x1e61ab[_0x32d5(0x217)]?_0x32d5(0x1e0)+OnvifClient[_0x32d5(0x196)](_0x1e61ab)+_0x32d5(0x1a0):'')+('<tev:QoS>'+qos+'</tev:QoS></tev:EventBroker></tev:AddEventBroker>');await this[_0x32d5(0x1a3)](this[_0x32d5(0x203)],NS[_0x32d5(0x1d0)]+_0x32d5(0x1c9),_0xffb91a);}async[_0x32d5(0x1aa)](_0x12531b){await this['call'](this[_0x32d5(0x203)],NS[_0x32d5(0x1d0)]+_0x32d5(0x1b5),_0x32d5(0x1ff)+X['esc'](_0x12531b)+_0x32d5(0x20e));}static['normTopic'](_0x1a3ae4){const _0x52ca69=/^(\w+):(.*)$/['exec'](_0x1a3ae4['trim']());if(!_0x52ca69)return _0x32d5(0x22d)+_0x1a3ae4['trim']();return/^(tns\d*|tt|onvif)$/i[_0x32d5(0x240)](_0x52ca69[0x1])?_0x32d5(0x22d)+_0x52ca69[0x2]:_0x1a3ae4[_0x32d5(0x193)]();}static[_0x32d5(0x1cf)](_0x5c6d0a){return X[_0x32d5(0x1c4)](_0x5c6d0a,_0x32d5(0x238))[_0x32d5(0x241)](_0x151f41=>{const _0x59d47c=X[_0x32d5(0x1d3)](_0x151f41,_0x32d5(0x1ef)),_0xf1f43d=_0x59d47c&&_0x59d47c[_0x32d5(0x1e6)][_0x32d5(0x219)](_0x420eb2=>_0x420eb2['name']===_0x32d5(0x1ef)),_0x423180=_0xf1f43d||_0x59d47c||{'attrs':{},'children':[]},_0x17cd0b=_0x322580=>{const _0x2764ea=X[_0x32d5(0x1d3)](_0x423180,_0x322580),_0x43f840={};if(_0x2764ea){for(const _0x446ba5 of X[_0x32d5(0x1c4)](_0x2764ea,'SimpleItem'))_0x43f840[_0x446ba5[_0x32d5(0x1c6)][_0x32d5(0x211)]]=_0x446ba5[_0x32d5(0x1c6)][_0x32d5(0x1ad)];}return _0x43f840;};return{'topic':OnvifClient['normTopic'](X[_0x32d5(0x20b)](_0x151f41,_0x32d5(0x1b8))||''),'op':_0x423180[_0x32d5(0x1c6)][_0x32d5(0x1c3)]||null,'utc':_0x423180[_0x32d5(0x1c6)][_0x32d5(0x225)]||null,'source':_0x17cd0b(_0x32d5(0x21b)),'data':_0x17cd0b(_0x32d5(0x24b))};});}[_0x32d5(0x230)](){this[_0x32d5(0x1cb)][_0x32d5(0x230)]();}}function _0x2864(){const _0x456be6=['u3vIC2nYAxb0Aw9UuMvMzxjLBMnL','y2HPBgrYzw4','Cg9YDa','l0DLDenHCgfIAwXPDgLLCW','pc90zxy6ugfZC3DVCMq+','vgv4Da','ywrKCMvZCW','mZbpz2jTvhi','zMLSDgvY','CMvXDwvZDa','twvZC2fNzq','phrLDJPqDwXStwvZC2fNzxm+phrLDJPuAw1LB3v0pG','lI9ODhrWlwnSAwvUDa','phDZBNq6u3vIC2nYAwjLpJX3C250oKnVBNn1BwvYuMvMzxjLBMnLpJXHoKfKzhjLC3m+','ChvSBa','pc9HoKfJDgLVBJ48ytPuBYbZoM11C3rvBMrLCNn0yw5KpsiXiJ4','BM93','B252Awy','vg9WAwnqCMvMAxG','pc90zxy6sw5PDgLHBfrLCM1PBMf0Aw9UvgLTzt48l3rLDJPdCMvHDgvqDwXSug9PBNrtDwjZy3jPChrPB24+','pc90zxy6twvZC2fNzuXPBwL0pJWVDgv2oLb1BgXnzxnZywDLCZ4','l0DLDfnLCNzPy2vZ','phrLDJPbzgrfDMvUDejYB2TLCJ48Dgv2oKv2zw50qNjVA2vYpJX0zxy6qwrKCMvZCZ4','Ahr0CdOVl2rVy3mUB2fZAxmTB3bLBI5VCMCVD3nZlZiWmdqVmdeVB2fZAxmTmJaWndaXlxDZCY13C3nLy3vYAxr5lxnLy2v4Dc0XlJaUEhnK','yM9KEq','pc90zxy6vxnLCK5HBwu+phrLDJPqyxnZD29Yzd4','phrLDJPezwXLDgvfDMvUDejYB2TLCJ48Dgv2oKfKzhjLC3m+','phrLDJPjBML0AwfSvgvYBwLUyxrPB25uAw1LpG','vvrdrgf0zvrPBwu','Ahr0CdOVl2rVy3mUB2fZAxmTB3bLBI5VCMCVD3nUl2j3ltiVu3vIC2nYAxb0Aw9UtwfUywDLCI9szw5LD1jLCxvLC3q','zxzLBNrZugf0Aa','Bwf4','y29Kzq','EgfKzhi','pc93C3nLoLbHC3n3B3jKpG','mZK3mZm4sePSz3Pl','CM91BMq','z2v0rxzLBNrcCM9RzxjZ','Dgv4Da','zMf1BhrZDhjPBMC','qwrKCMvZCW','pc90zxy6qwrKCMvZCZ48l3rLDJPezwXLDgvfDMvUDejYB2TLCJ4','pc9ZoKjVzhK+pc9ZoKvUDMvSB3bLpG','iIb4BwXUCZP3C250psi','tMfTzq','tw9UDgG','iIb4BwXUCZP0Dd0I','Dgv2oKzPBhrLCG','pc93C250oLrLCM1PBMf0Aw9UvgLTzt48l3DZBNq6uMvUzxC+','C3vIC2nYAxb0Aw9UrNjVBq','BgvUz3rO','pc93C3nLoLvZzxjUyw1LpG','zMLUza','Ahr0CdOVl2rVy3mUB2fZAxmTB3bLBI5VCMCVD3nUl2j3ltiVtM90AwzPy2f0Aw9UuhjVzhvJzxiVu3vIC2nYAwjLuMvXDwvZDa','u291CMnL','ChvZAa','ntC2nJCYyK1WEfjy','pc9HoKfKzhjLC3m+pc93C250oKnVBNn1BwvYuMvMzxjLBMnLpG','ChjVDg9JB2W','z2v0u2vYDMLJzxm','ywrKrxzLBNrcCM9Rzxi','Dg9ju09tDhjPBMC','pc9HoLrVpG','AM9PBG','vxrJvgLTzq','zgv2AwnLugf0Aa','DgrZ','u2nVCgvjDgvT','twLUDxrL','l0DLDerLDMLJzuLUzM9YBwf0Aw9U','l0v2zw50ug9YDfr5CguVr2v0rxzLBNrqCM9Wzxj0AwvZuMvXDwvZDa','pc90zxy6vg9WAwnqCMvMAxG+','Dg5ZmtO','vg9WAwntzxq','rMLYBxDHCMvwzxjZAw9U','y2XVC2u','pc93C250oLrVCgLJrxHWCMvZC2LVBJ4','l0DLDfn5C3rLBurHDgvbBMruAw1L','yxnZAwDU','phrLDJPhzxrfDMvUDfbYB3bLCNrPzxmVpG','phrKCZPhzxrdyxbHyMLSAxrPzxm+phrKCZPdyxrLz29YEt5bBgW8l3rKCZPdyxrLz29YEt48l3rKCZPhzxrdyxbHyMLSAxrPzxm+','phDZBNq6uMvUzxC+phDZBNq6vgvYBwLUyxrPB25uAw1LpG','zxHWB3j0CW','tM90AwzPy2f0Aw9UtwvZC2fNzq','mtiYodvcDvLbsxC','vvrd','Dw5ZDwjZy3jPyMu','D3nUDdPgAwX0zxi','zNjVBq','pc90zxy6vgLTzw91Dd48Dgv2oK1LC3nHz2vmAw1PDd4','iJ48D3nZztPvC2vYBMfTzvrVA2vUpG','DgvZDa','BwfW','Ahr0CdOVl3D3DY5VBNzPzI5VCMCVDMvYmtaVzxzLBNrZl3DZzgW','phDZC2u6tM9Uy2uGrw5JB2rPBMDuExbLpsjODhrWoI8Vzg9JCY5VyxnPCY1VCgvUlM9YzY93C3mVmJaWnc8Wms9VyxnPCY0Ymda0mdeTD3nZlxnVyxaTBwvZC2fNzs1Zzwn1CML0Es0XlJaJqMfZzty0qMLUyxj5iJ4','pc93C3u6q3jLyxrLzd48l3DZC2u6vxnLCM5HBwvuB2TLBJ48l3DZC2u6u2vJDxjPDhK+','zxHLyW','Dg9WAwm','Cgf0Aa','phDZC2u6u2vJDxjPDhKGCZPTDxn0vw5KzxjZDgfUzd0ImsiGEg1SBNm6D3nZzt0I','D3nZzq','CgfZCW','rgf0yq','phrKCZPhzxrezxzPy2vjBMzVCM1HDgLVBI8+','z2v0uhjVzMLSzxm','y3jLyxrLuhvSBfbVAw50','Cg9W','mJy0m1PRzMHYqG','sg91CG','ue9tva','wefKzhi','C3rHDhvZ','sfruuca','phDZBNq6vw5ZDwjZy3jPyMuVpG','DhjPBq','oxrPu3PhCa','C3vIC2nYAwjLuhvZAa','Dg9WAwnfEhbY','zxnJ','y29Uy2f0','phm6sgvHzgvYpG','Ahr0CdOVl3D3DY5VBNzPzI5VCMCVDMvYmtaVzxzLBNrZl3DZzgWVuhvSBfbVAw50u3vIC2nYAxb0Aw9Ul1b1BgXnzxnZywDLC1jLCxvLC3q','phDZC2u6ugfZC3DVCMqGvhLWzt0IAhr0CdOVl2rVy3mUB2fZAxmTB3bLBI5VCMCVD3nZlZiWmdqVmdeVB2fZAxmTmJaWndaXlxDZCY11C2vYBMfTzs10B2TLBI1WCM9MAwXLlteUmcnqyxnZD29YzerPz2vZDci+','yxbWBgLJyxrPB24VC29HCcT4BwW7ignOyxjZzxq9DxrMltG7igfJDgLVBJ0I','twvZC2fNzurLC2nYAxb0Aw9U','C2vHCMnO','mtm5n011CenRsW','pc90zxy6uhvIBgLZAezPBhrLCJ4','Dg9vChbLCKnHC2u','mtCWmJqWoeXxsu1yta','y2fSBa','Cgf0Ag5HBwu','phrLDJPhzxrfDMvUDejYB2TLCNmVpG','pc93C3nLoK5VBMnLpG','lI94BwW','l0DLDfnJB3bLCW','wwvHCG','zgvSzxrLrxzLBNrcCM9Rzxi','rMf1Bhq','iIb4BwXUCZPHpsi','vMfSDwu','CMfUzg9TqNL0zxm','BMfTzq','C3LUy1rPBwu','phrKCZPhzxrtzxj2AwnLCZ48DgrZoKLUy2X1zgvdyxbHyMLSAxr5pMzHBhnLpc90zhm6sw5JBhvKzunHCgfIAwXPDhK+pc90zhm6r2v0u2vYDMLJzxm+','l0v2zw50ug9YDfr5CguVq3jLyxrLuhvSBfbVAw50u3vIC2nYAxb0Aw9UuMvXDwvZDa','C3vIsgvHzgvY','Dw5ZDwi','l0v2zw50ug9YDfr5CguVrgvSzxrLrxzLBNrcCM9Rzxjszxf1zxn0','ndiZnZb4qw1UsxK','z2v0rgv2AwnLsw5MBW','vg9WAwm','Ahr0CdOVl3D3DY5VBNzPzI5VCMCVDMvYmtaVC2nOzw1H','Dhj1zq','phrKCZPhzxrtExn0zw1eyxrLqw5KvgLTzs8+','Ahr0CdOVl2rVy3mUB2fZAxmTB3bLBI5VCMCVD3nUl2iTmG','Ag9ZDg5HBwu','DxnLCG','DxbKyxrL','C2HHmq','DgLTzu9MzNnLDa','twfUDwzHy3r1CMvY','uhjVCgvYDhLpCgvYyxrPB24','ywXS','rgf5','yxr0CNm','mta1nti1nLDxswLYDa','zMLSDgvYwg1S','l0v2zw50ug9YDfr5CguVqwrKrxzLBNrcCM9Rzxjszxf1zxn0','mtuWC2XyyMDt','Ahr0Ca','CMvUzxC','vgvYBwLUyxrPB25uAw1L','y3jLyxrLsgfZAa','BM90AwzPy2f0Aw9UCW','Dgv2','yMfZzty0','phDZC2u6vxnLCM5HBwu+','zMLYC3q','Ahr0CdOVl2rVy3mUB2fZAxmTB3bLBI5VCMCVD3nZlZiWmdqVmdeVB2fZAxmTmJaWndaXlxDZCY13C3nLy3vYAxr5lxv0AwXPDhKTms4WlNHZza','CMf3','Ahr0CdOVl3D3DY53mY5VCMCVmJaWns8Woc9HzgrYzxnZAw5N','phDZDtPdCMvHDgvKpG','rufvveG','CgfYC2u','D3n1','rxzLBNrcCM9Rzxi','iIb4BwXUCZP3C3u9iG','y3j5ChrV','C3bSAxq','C2vJDxjPDhK','phrLDJPqDwjSAxnOrMLSDgvYpG','Ahr0CdOVl3D3DY53mY5VCMCVmJaWmY8Wns9ZB2fWlwvUDMvSB3bL','Ahr0CdOVl3D3DY5VBNzPzI5VCMCVDMvYmtaVzgv2AwnLl3DZzgW','zgLNzxn0','z2v0rxzLBNruB3bPy3m'];_0x2864=function(){return _0x456be6;};return _0x2864();}module[_0x32d5(0x237)]={'OnvifClient':OnvifClient,'NS':NS};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x343c87,_0x1e54b4){const _0xb576fa=_0x343c87();while(!![]){try{const _0x146674=parseInt(_0x3ac6(0x165))/0x1*(parseInt(_0x3ac6(0x14e))/0x2)+parseInt(_0x3ac6(0x172))/0x3+-parseInt(_0x3ac6(0x157))/0x4*(-parseInt(_0x3ac6(0x160))/0x5)+parseInt(_0x3ac6(0x151))/0x6*(-parseInt(_0x3ac6(0x17e))/0x7)+-parseInt(_0x3ac6(0x17f))/0x8*(parseInt(_0x3ac6(0x154))/0x9)+-parseInt(_0x3ac6(0x170))/0xa+parseInt(_0x3ac6(0x17a))/0xb;if(_0x146674===_0x1e54b4)break;else _0xb576fa['push'](_0xb576fa['shift']());}catch(_0x2da44d){_0xb576fa['push'](_0xb576fa['shift']());}}}(_0x2449,0x4c391));function _0x3ac6(_0x36acfb,_0x57f487){const _0x2449a7=_0x2449();return _0x3ac6=function(_0x3ac603,_0x47e202){_0x3ac603=_0x3ac603-0x14d;let _0x47b858=_0x2449a7[_0x3ac603];if(_0x3ac6['ORmOOr']===undefined){var _0x149c7b=function(_0x310a53){const _0x48794a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x148042='',_0x23c39d='';for(let _0x354ea2=0x0,_0x2bf4bc,_0xd2a68,_0x19c827=0x0;_0xd2a68=_0x310a53['charAt'](_0x19c827++);~_0xd2a68&&(_0x2bf4bc=_0x354ea2%0x4?_0x2bf4bc*0x40+_0xd2a68:_0xd2a68,_0x354ea2++%0x4)?_0x148042+=String['fromCharCode'](0xff&_0x2bf4bc>>(-0x2*_0x354ea2&0x6)):0x0){_0xd2a68=_0x48794a['indexOf'](_0xd2a68);}for(let _0x3038f3=0x0,_0x5793a6=_0x148042['length'];_0x3038f3<_0x5793a6;_0x3038f3++){_0x23c39d+='%'+('00'+_0x148042['charCodeAt'](_0x3038f3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x23c39d);};_0x3ac6['FRVvMu']=_0x149c7b,_0x36acfb=arguments,_0x3ac6['ORmOOr']=!![];}const _0x3ea4a7=_0x2449a7[0x0],_0x44e885=_0x3ac603+_0x3ea4a7,_0x515049=_0x36acfb[_0x44e885];return!_0x515049?(_0x47b858=_0x3ac6['FRVvMu'](_0x47b858),_0x36acfb[_0x44e885]=_0x47b858):_0x47b858=_0x515049,_0x47b858;},_0x3ac6(_0x36acfb,_0x57f487);}const {HttpClient}=require(_0x3ac6(0x16b)),isapi=require('../drivers/isapi'),X=require('../xml'),HEARTBEAT=new Set([_0x3ac6(0x15c)]);class IsapiBase{constructor(_0x310a53,_0x48794a){this['d']=_0x310a53,this[_0x3ac6(0x17d)]=_0x48794a,this[_0x3ac6(0x177)]={},this[_0x3ac6(0x16a)]=![];}[_0x3ac6(0x176)](_0x148042){const {cam:_0x23c39d}=this['d'];return new HttpClient({'host':_0x23c39d[_0x3ac6(0x182)],'port':_0x23c39d['port']||0x50,'tls':_0x23c39d[_0x3ac6(0x167)],'user':_0x23c39d[_0x3ac6(0x163)],'pass':_0x23c39d[_0x3ac6(0x156)],'timeout':_0x148042||this[_0x3ac6(0x17d)][_0x3ac6(0x15b)][_0x3ac6(0x174)],'allowSelfSigned':this['ctx'][_0x3ac6(0x15b)][_0x3ac6(0x14f)]});}async[_0x3ac6(0x173)](){const _0x354ea2=await isapi[_0x3ac6(0x153)](this['client'],this['d'][_0x3ac6(0x155)][_0x3ac6(0x16c)]);this[_0x3ac6(0x17d)]['ok']();for(const _0x2bf4bc of this['d']['cam'][_0x3ac6(0x16c)])this[_0x3ac6(0x17d)][_0x3ac6(0x158)](_0x2bf4bc,_0x354ea2[_0x2bf4bc],_0x3ac6(0x173));}[_0x3ac6(0x175)](_0xd2a68){const _0x19c827=/<EventNotificationAlert\b[\s\S]*?<\/EventNotificationAlert>/g;let _0x3038f3,_0x5793a6=0x0;while((_0x3038f3=_0x19c827[_0x3ac6(0x161)](_0xd2a68))!==null){_0x5793a6+=0x1,this[_0x3ac6(0x184)](X[_0x3ac6(0x159)](_0x3038f3[0x0]));}return _0x5793a6;}[_0x3ac6(0x184)](_0x4d706d){const _0x431ab2=(X[_0x3ac6(0x178)](_0x4d706d,_0x3ac6(0x15a))||'')[_0x3ac6(0x166)](),_0x4eeafd=(X['text'](_0x4d706d,_0x3ac6(0x164))||'')['toLowerCase']()===_0x3ac6(0x17c);this[_0x3ac6(0x17d)]['ok']();if(_0x431ab2==='io'){const _0x5298dc=X[_0x3ac6(0x178)](_0x4d706d,_0x3ac6(0x179))||X['text'](_0x4d706d,_0x3ac6(0x181))||'1',_0x150a89=this[_0x3ac6(0x17d)][_0x3ac6(0x171)](_0x5298dc);if(_0x150a89===null)return;_0x4eeafd?(this[_0x3ac6(0x17d)][_0x3ac6(0x158)](_0x150a89,!![],'event'),this[_0x3ac6(0x168)](_0x150a89)):(this[_0x3ac6(0x15f)](_0x150a89),this[_0x3ac6(0x17d)]['input'](_0x150a89,![],_0x3ac6(0x16e)));return;}if(HEARTBEAT[_0x3ac6(0x152)](_0x431ab2)&&!_0x4eeafd)return;if(this['ctx'][_0x3ac6(0x15b)][_0x3ac6(0x15d)]!==_0x3ac6(0x183))return;const _0x148da7=X[_0x3ac6(0x178)](_0x4d706d,'channelID')||X[_0x3ac6(0x178)](_0x4d706d,_0x3ac6(0x169))||'',_0x258604=_0x431ab2+'/'+_0x148da7,_0x2b7c49={'channel':_0x148da7,'description':X[_0x3ac6(0x178)](_0x4d706d,_0x3ac6(0x162))},_0x5cda45=_0x17ce0c=>this[_0x3ac6(0x17d)][_0x3ac6(0x16e)]({'source':'isapi','event':_0x431ab2,'state':_0x17ce0c,'data':_0x2b7c49});this[_0x3ac6(0x14d)]=this[_0x3ac6(0x14d)]||{};const _0xbd8d9=this[_0x3ac6(0x14d)][_0x258604];if(_0x4eeafd){if(!_0xbd8d9)_0x5cda45(!![]);else clearTimeout(_0xbd8d9);this['held'][_0x258604]=setTimeout(()=>{delete this[_0x3ac6(0x14d)][_0x258604],_0x5cda45(![]);},this[_0x3ac6(0x17d)]['opts']['holdMs']||0x9c4);}else _0xbd8d9&&(clearTimeout(_0xbd8d9),delete this['held'][_0x258604],_0x5cda45(![]));}[_0x3ac6(0x168)](_0x56d1a8){if(this['follow'][_0x56d1a8])return;const _0x2174be=async()=>{if(this[_0x3ac6(0x16a)]||!this[_0x3ac6(0x17d)][_0x3ac6(0x17b)]())return;try{const _0x406e6f=await isapi['readInputs'](this['client'],[_0x56d1a8]);this[_0x3ac6(0x17d)]['ok']();if(!_0x406e6f[_0x56d1a8]){delete this['follow'][_0x56d1a8],this[_0x3ac6(0x17d)][_0x3ac6(0x158)](_0x56d1a8,![],_0x3ac6(0x16e));return;}}catch(_0x3289a5){if(!this[_0x3ac6(0x17d)][_0x3ac6(0x15e)](_0x3289a5))return;}this[_0x3ac6(0x177)][_0x56d1a8]=setTimeout(_0x2174be,this[_0x3ac6(0x17d)][_0x3ac6(0x15b)][_0x3ac6(0x150)]);};this['follow'][_0x56d1a8]=setTimeout(_0x2174be,this[_0x3ac6(0x17d)][_0x3ac6(0x15b)][_0x3ac6(0x150)]);}[_0x3ac6(0x15f)](_0x36144f){if(this[_0x3ac6(0x177)][_0x36144f])clearTimeout(this[_0x3ac6(0x177)][_0x36144f]);delete this[_0x3ac6(0x177)][_0x36144f];}['stopBase'](){this[_0x3ac6(0x16a)]=!![];for(const _0xfe5d85 of Object[_0x3ac6(0x16d)](this[_0x3ac6(0x177)]))this['stopFollow'](_0xfe5d85);for(const _0x35bb97 of Object[_0x3ac6(0x16d)](this['held']||{}))clearTimeout(this[_0x3ac6(0x14d)][_0x35bb97]);this[_0x3ac6(0x14d)]={};if(this[_0x3ac6(0x180)])this[_0x3ac6(0x180)]['close']();}}module[_0x3ac6(0x16f)]={'IsapiBase':IsapiBase};function _0x2449(){const _0x251173=['C3rVChbLza','lI4VAhr0Cc1JBgLLBNq','Aw5WDxrZ','A2v5CW','zxzLBNq','zxHWB3j0CW','mZK5mtiZmer6q0zrCW','Aw5WDxrlzxK','ndi4ndz1Bw1Su0u','yMfZzwXPBMu','DgLTzw91De1Z','AgfUzgXLqM9KEq','BwfRzunSAwvUDa','zM9SBg93','Dgv4Da','Aw5WDxrjt1bVCNrjra','odmYmdqXmwzNCxHRCa','ywXPDMu','ywn0AxzL','y3r4','mte5wLL6DNDg','mZm3ndC5mKnkwKvqqW','y2XPzw50','zhLUsw5WDxrjt1bVCNrjra','Ag9ZDa','ywXS','AgfUzgXLqwXLCNq','AgvSza','mZqYmZrMBfjgy1y','ywXSB3DtzwXMu2LNBMvK','zM9SBg93txm','mtK5nZiYyw90qLHe','AgfZ','CMvHzeLUChv0CW','oxrYBxbuEG','y2fT','CgfZCW','nfvlwLfxBG','Aw5WDxq','CgfYC2u','zxzLBNruExbL','B3b0CW','DMLKzw9SB3nZ','zxzLBNrZ','zxjYB3i','C3rVCezVBgXVDW','mJi0ntuWnxnbzhPjEG','zxHLyW','zxzLBNrezxnJCMLWDgLVBG','DxnLCG','zxzLBNrtDgf0zq','mJHOCNPnvgK','Dg9mB3DLCKnHC2u','DgXZ','C3rHCNrgB2XSB3C','zhLUq2HHBM5LBeLe'];_0x2449=function(){return _0x251173;};return _0x2449();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x59bb16,_0x751753){const _0x5d9bb8=_0x59bb16();while(!![]){try{const _0x4acd02=-parseInt(_0x1750(0x107))/0x1*(-parseInt(_0x1750(0x11e))/0x2)+-parseInt(_0x1750(0x122))/0x3*(parseInt(_0x1750(0x116))/0x4)+parseInt(_0x1750(0x130))/0x5*(-parseInt(_0x1750(0x12a))/0x6)+-parseInt(_0x1750(0x11d))/0x7*(parseInt(_0x1750(0x117))/0x8)+parseInt(_0x1750(0x125))/0x9+parseInt(_0x1750(0x111))/0xa+parseInt(_0x1750(0x110))/0xb;if(_0x4acd02===_0x751753)break;else _0x5d9bb8['push'](_0x5d9bb8['shift']());}catch(_0x1f1466){_0x5d9bb8['push'](_0x5d9bb8['shift']());}}}(_0x5b36,0xe539e));const {IsapiBase}=require(_0x1750(0x104)),isapi=require('../drivers/isapi'),X=require(_0x1750(0x12d));function _0x5b36(){const _0x1735ed=['C3rHDhvZ','mZmXCejkzezT','ywXPDMu','zM9SBg93','pc9WB3j0tM8+','AgfUzgXLqM9KEq','zxjYB3i','CMv0CNK','pd94BwWGDMvYC2LVBJ0Ims4WiIbLBMnVzgLUzZ0IvvrgltGIpZ48shr0CeHVC3roB3rPzMLJyxrPB24GDMvYC2LVBJ0ImI4WiIb4BwXUCZ0IAhr0CdOVl3D3DY5PC2fWAs5VCMCVDMvYmJaVwe1mu2nOzw1HiJ4','Bg9N','nty5mZK5nLbmwufktW','mte3mtu5nZbPq3LvzuS','C3rVChbLza','zxnJ','pgH0DhbbDxrOzw50AwnHDgLVBK1LDgHVzd5UB25Lpc9ODhrWqxv0AgvUDgLJyxrPB25nzxrOB2q+pc9iDhrWsg9ZDe5VDgLMAwnHDgLVBJ4','Cg9YDa','mJi5ntC2z2nszgDI','nJi0qNfPqMH4','CNvU','pc9PCefKzhjLC3m+phbVCNroBZ4','C3rHCNq','AgvHBhrOtxm','y29UzMLNDxjL','ota0mdvXzKfuvfu','ndy4ner5ww1uwa','pgLKpJe8l2LKpJX1CMW+','y2fT','yMfZzwXPBMu','ntfxqvLLtvG','Aw5WDxrZ','Aw5WDxq','ntqYmZK0ovjes3zRCa','y3r4','zxzLBNq','Cgf0Ag5HBwu','y2XPzw50','nK9YAuPezW','y2fSBgjHy2TvCMW','BwfRzunSAwvUDa','lI4VEg1S','yM9KEq','CgfYC2u','nZi1ntKWsfLeEerj','B3b0CW','AfrPBwvY','Ahr0CeHVC3rZifbvvdOGsfruuca','yxbWBgLJyxrPB24VEg1S','AhjLzG','C3rVCejHC2u','C3vIu3rHDhvZq29Kzq','zxHWB3j0CW','pgfKzhjLC3nPBMDgB3jTyxruExbLpMLWywrKCMvZCZWVywrKCMvZC2LUz0zVCM1HDfr5Cgu+pgLWqwrKCMvZCZ4','CMvHzeLUChv0CW','Dgv4Da','pc91CMW+phbYB3rVy29SvhLWzt5ivfrqpc9WCM90B2nVBfr5Cgu+phbHCMfTzxrLCKzVCM1HDfr5Cgu+we1mpc9WyxjHBwv0zxjgB3jTyxruExbLpG','CMvXDwvZDa','Ag9ZDg5HBwu','lI9PC2fWAs1JB21TB24','AgvHBhrO'];_0x5b36=function(){return _0x1735ed;};return _0x5b36();}function _0x1750(_0x2e4ff7,_0x668836){const _0x5b366a=_0x5b36();return _0x1750=function(_0x1750c0,_0x52b067){_0x1750c0=_0x1750c0-0xfd;let _0x2e9b43=_0x5b366a[_0x1750c0];if(_0x1750['lqoSxD']===undefined){var _0x2a474e=function(_0x398905){const _0x560a29='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x378e27='',_0x2eeda6='';for(let _0x195ac4=0x0,_0x5761f4,_0xc4fbb5,_0x2dde0f=0x0;_0xc4fbb5=_0x398905['charAt'](_0x2dde0f++);~_0xc4fbb5&&(_0x5761f4=_0x195ac4%0x4?_0x5761f4*0x40+_0xc4fbb5:_0xc4fbb5,_0x195ac4++%0x4)?_0x378e27+=String['fromCharCode'](0xff&_0x5761f4>>(-0x2*_0x195ac4&0x6)):0x0){_0xc4fbb5=_0x560a29['indexOf'](_0xc4fbb5);}for(let _0x302844=0x0,_0x58e50d=_0x378e27['length'];_0x302844<_0x58e50d;_0x302844++){_0x2eeda6+='%'+('00'+_0x378e27['charCodeAt'](_0x302844)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2eeda6);};_0x1750['mUEZoA']=_0x2a474e,_0x2e4ff7=arguments,_0x1750['lqoSxD']=!![];}const _0x7f6139=_0x5b366a[0x0],_0x20a0f4=_0x1750c0+_0x7f6139,_0x3373e9=_0x2e4ff7[_0x20a0f4];return!_0x3373e9?(_0x2e9b43=_0x1750['mUEZoA'](_0x2e9b43),_0x2e4ff7[_0x20a0f4]=_0x2e9b43):_0x2e9b43=_0x3373e9,_0x2e9b43;},_0x1750(_0x2e4ff7,_0x668836);}class IsapiPushSource extends IsapiBase{[_0x1750(0x11a)](){this[_0x1750(0x129)]=this[_0x1750(0x12c)](),this[_0x1750(0x118)]();}async[_0x1750(0x118)](){try{await this[_0x1750(0x121)]();if(this['d'][_0x1750(0x120)]['configure'])await this[_0x1750(0x11c)]();this[_0x1750(0x105)]();}catch(_0x398905){if(this[_0x1750(0x126)][_0x1750(0x10c)](_0x398905))this[_0x1750(0x10d)]=setTimeout(()=>this[_0x1750(0x118)](),0x7d0);}}async[_0x1750(0x11c)](){const _0x560a29=await this[_0x1750(0x126)][_0x1750(0x131)][_0x1750(0x12b)](this['d']),_0x378e27=new URL(_0x560a29+'/'+encodeURIComponent(this['d'][_0x1750(0x120)]['id'])),_0x2eeda6=_0x1750(0x10e)+(_0x1750(0x11f)+X[_0x1750(0x113)](_0x378e27[_0x1750(0x128)])+_0x1750(0x101))+(_0x1750(0xfe)+X[_0x1750(0x113)](_0x378e27[_0x1750(0x103)])+_0x1750(0x119)+(_0x378e27[_0x1750(0x115)]||0x50)+_0x1750(0x10a))+_0x1750(0x114),_0x195ac4=await this[_0x1750(0x129)][_0x1750(0x102)]('PUT','/ISAPI/Event/notification/httpHosts/1',_0x2eeda6,{'Content-Type':_0x1750(0x134)});if(_0x195ac4[_0x1750(0x106)]>=0x12c)throw new Error(_0x1750(0x133)+_0x195ac4[_0x1750(0x106)]+'\x20'+(X[_0x1750(0x100)](X[_0x1750(0x12f)](_0x195ac4[_0x1750(0x12e)]),_0x1750(0x137))||''));this[_0x1750(0x126)][_0x1750(0x10f)]('push\x20target\x20set\x20to\x20'+_0x378e27[_0x1750(0x135)]);}[_0x1750(0x105)](){this[_0x1750(0x132)]=setTimeout(async()=>{if(this[_0x1750(0x112)]||!this[_0x1750(0x126)][_0x1750(0x108)]())return;try{const _0x5761f4=await isapi[_0x1750(0xff)](this[_0x1750(0x129)],this['d'][_0x1750(0x120)][_0x1750(0x123)]);this['ctx']['ok']();for(const _0xc4fbb5 of this['d']['cam'][_0x1750(0x123)])if(!this[_0x1750(0x109)][_0xc4fbb5])this[_0x1750(0x126)][_0x1750(0x124)](_0xc4fbb5,_0x5761f4[_0xc4fbb5],_0x1750(0x127));}catch(_0x2dde0f){if(!this[_0x1750(0x126)][_0x1750(0x10c)](_0x2dde0f))return;}this[_0x1750(0x105)]();},this[_0x1750(0x126)][_0x1750(0x131)][_0x1750(0x11b)]);}['onPush'](_0x302844){if(!this[_0x1750(0x112)])this[_0x1750(0x10b)](_0x302844);}['stop'](){this[_0x1750(0x136)](),clearTimeout(this[_0x1750(0x132)]),clearTimeout(this[_0x1750(0x10d)]);}}module[_0x1750(0xfd)]=IsapiPushSource;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';function _0x3e9f(){const _0xb1ce5a=['zw5K','C3rVCejHC2u','zxHWB3j0CW','mJm3mdi5oe9rCvPLwa','l0Ltqvbjl0v2zw50l25VDgLMAwnHDgLVBI9HBgvYDfn0CMvHBq','C3rYzwfTignSB3nLzcbIEsbJyw1LCMe','BgvUz3rO','y2XVC2u','ndiYodGWm1bkCwfHtq','yMfZzwXPBMu','mta2mJuZnM94AfjYvG','mtjdvunJvMm','zgvZDhjVEq','C2v0rw5JB2rPBMC','AgfUzgXLqM9KEq','odmYntmYohfjCKTJsa','DxrMoa','B3b0CW','C2XPy2u','mtKZnJC2ng15t0jPyG','nwXUCLvVzq','AwrSzq','B3bLBG','ode3nZm0nxrotvr2qq','BgfZDeLUzgv4t2y','C3rVChbLza','mtbMDeDuqwO','C3rVCa','C3rYzwfT','BM8Gzgf0ysbMB3iG','CMvZ','CMv0CNK','zgf0yq','ywXPDMu','lI9PC2fWAs1JB21TB24','mtC5nZGYy2fRzuzY','nMXVrNroAq','C3rYzwfTswrSzu1Z','y3r4','y2XPzw50','C3rHCNq','BwfRzunSAwvUDa','pc9fDMvUDe5VDgLMAwnHDgLVBKfSzxj0pG','zxjYB3i'];_0x3e9f=function(){return _0xb1ce5a;};return _0x3e9f();}function _0x3bae(_0x4f10c7,_0x43cbda){const _0x3e9ff4=_0x3e9f();return _0x3bae=function(_0x3bae75,_0x3d5f00){_0x3bae75=_0x3bae75-0xc3;let _0x176137=_0x3e9ff4[_0x3bae75];if(_0x3bae['mfjYwp']===undefined){var _0x31ed61=function(_0x3f69cd){const _0x5a12c4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1e0961='',_0x2e9959='';for(let _0x36012b=0x0,_0x1c2310,_0x5b4ef6,_0x241468=0x0;_0x5b4ef6=_0x3f69cd['charAt'](_0x241468++);~_0x5b4ef6&&(_0x1c2310=_0x36012b%0x4?_0x1c2310*0x40+_0x5b4ef6:_0x5b4ef6,_0x36012b++%0x4)?_0x1e0961+=String['fromCharCode'](0xff&_0x1c2310>>(-0x2*_0x36012b&0x6)):0x0){_0x5b4ef6=_0x5a12c4['indexOf'](_0x5b4ef6);}for(let _0x1faa28=0x0,_0x904da5=_0x1e0961['length'];_0x1faa28<_0x904da5;_0x1faa28++){_0x2e9959+='%'+('00'+_0x1e0961['charCodeAt'](_0x1faa28)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e9959);};_0x3bae['yMybJy']=_0x31ed61,_0x4f10c7=arguments,_0x3bae['mfjYwp']=!![];}const _0x49ecdd=_0x3e9ff4[0x0],_0x5caa16=_0x3bae75+_0x49ecdd,_0x2451f8=_0x4f10c7[_0x5caa16];return!_0x2451f8?(_0x176137=_0x3bae['yMybJy'](_0x176137),_0x4f10c7[_0x5caa16]=_0x176137):_0x176137=_0x2451f8,_0x176137;},_0x3bae(_0x4f10c7,_0x43cbda);}(function(_0x4c94a3,_0x22f7fb){const _0x5434d6=_0x4c94a3();while(!![]){try{const _0x3c391f=parseInt(_0x3bae(0xd2))/0x1*(-parseInt(_0x3bae(0xd1))/0x2)+-parseInt(_0x3bae(0xed))/0x3+-parseInt(_0x3bae(0xe4))/0x4*(parseInt(_0x3bae(0xee))/0x5)+-parseInt(_0x3bae(0xe5))/0x6*(-parseInt(_0x3bae(0xdd))/0x7)+parseInt(_0x3bae(0xe9))/0x8+-parseInt(_0x3bae(0xe2))/0x9*(parseInt(_0x3bae(0xc8))/0xa)+parseInt(_0x3bae(0xc5))/0xb;if(_0x3c391f===_0x22f7fb)break;else _0x5434d6['push'](_0x5434d6['shift']());}catch(_0x4d63c2){_0x5434d6['push'](_0x5434d6['shift']());}}}(_0x3e9f,0x840b6));const {IsapiBase}=require(_0x3bae(0xd0));class IsapiStreamSource extends IsapiBase{[_0x3bae(0xd6)](){this[_0x3bae(0xd5)]=this[_0x3bae(0xd7)](),this[_0x3bae(0xc4)]();}async[_0x3bae(0xc4)](){if(this['stopped']||!this[_0x3bae(0xd4)][_0x3bae(0xcf)]())return;try{await this[_0x3bae(0xe3)]();const _0x3f69cd=await this[_0x3bae(0xd5)][_0x3bae(0xca)](_0x3bae(0xde));if(this[_0x3bae(0xc7)])return _0x3f69cd[_0x3bae(0xe6)]();this[_0x3bae(0xcc)]=_0x3f69cd;let _0x5a12c4='';const _0x1e0961=this[_0x3bae(0xd4)][_0x3bae(0xeb)][_0x3bae(0xd3)]||0x7530,_0x2e9959=()=>{clearTimeout(this[_0x3bae(0xc3)]),this['idle']=setTimeout(()=>_0x3f69cd['destroy'](new Error(_0x3bae(0xcb)+_0x1e0961/0x3e8+'\x20s')),_0x1e0961);};_0x2e9959(),_0x3f69cd[_0x3bae(0xe7)](_0x3bae(0xea)),_0x3f69cd['on'](_0x3bae(0xce),_0x1c2310=>{_0x2e9959(),_0x5a12c4+=_0x1c2310;const _0x5b4ef6=_0x5a12c4[_0x3bae(0xc6)](_0x3bae(0xd8));if(_0x5b4ef6<0x0){if(_0x5a12c4[_0x3bae(0xe0)]>0xf4240)_0x5a12c4=_0x5a12c4['slice'](-0x10000);return;}const _0x241468=_0x5b4ef6+'</EventNotificationAlert>'['length'];this[_0x3bae(0xe8)](_0x5a12c4[_0x3bae(0xec)](0x0,_0x241468)),_0x5a12c4=_0x5a12c4['slice'](_0x241468);});const _0x36012b=_0x1faa28=>{clearTimeout(this[_0x3bae(0xc3)]);if(this[_0x3bae(0xc7)]||this[_0x3bae(0xcc)]!==_0x3f69cd)return;this[_0x3bae(0xcc)]=null;if(this['ctx'][_0x3bae(0xd9)](_0x1faa28||new Error(_0x3bae(0xdf))))this[_0x3bae(0xcd)]=setTimeout(()=>this[_0x3bae(0xc4)](),0x3e8);};_0x3f69cd['on'](_0x3bae(0xda),()=>_0x36012b()),_0x3f69cd['on']('error',_0x36012b),_0x3f69cd['on'](_0x3bae(0xe1),()=>_0x36012b());}catch(_0x904da5){if(this[_0x3bae(0xd4)][_0x3bae(0xd9)](_0x904da5))this['retry']=setTimeout(()=>this[_0x3bae(0xc4)](),0x3e8);}}[_0x3bae(0xc9)](){this[_0x3bae(0xdb)](),clearTimeout(this[_0x3bae(0xc3)]),clearTimeout(this[_0x3bae(0xcd)]);if(this[_0x3bae(0xcc)]){const _0x16816c=this[_0x3bae(0xcc)];this['res']=null,_0x16816c[_0x3bae(0xe6)]();}}}module[_0x3bae(0xdc)]=IsapiStreamSource;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x2e3f60,_0x31c8f4){const _0x2f35da=_0x2e3f60();while(!![]){try{const _0x4e74b5=-parseInt(_0x244f(0x86))/0x1*(-parseInt(_0x244f(0x98))/0x2)+-parseInt(_0x244f(0x8f))/0x3+-parseInt(_0x244f(0x93))/0x4+-parseInt(_0x244f(0x76))/0x5*(parseInt(_0x244f(0x75))/0x6)+-parseInt(_0x244f(0x85))/0x7+parseInt(_0x244f(0x90))/0x8+parseInt(_0x244f(0x7e))/0x9*(parseInt(_0x244f(0x6e))/0xa);if(_0x4e74b5===_0x31c8f4)break;else _0x2f35da['push'](_0x2f35da['shift']());}catch(_0x54611f){_0x2f35da['push'](_0x2f35da['shift']());}}}(_0x56c9,0x538ed));function _0x56c9(){const _0x133045=['B3b0CW','mtu3nZuWmg5ru0vQDW','B252AwzvC2vY','vg9Rzw4','BwfRzunSAwvUDa','zMLUza','rufvveG','Bwf4','nLvqseHzqq','mZe5nZe0nwvZEfvKDW','AgfUzgXL','zxzLBNq','yMfZzwXPBMu','i3n0yxrL','Cg9YDa','Aw5WDxrlzxK','DxnLCG','oxHetKvktG','ywXSB3DtzwXMu2LNBMvK','D2L0AezPBhrLCKzHBgXIywnR','C3LUy1rPBwu','sw5WDxruB2TLBG','zMLSDgvY','zgf0yq','mJy1mJy1C0LWCLzj','nJeYmty5BNDiBMnn','B252AwzqB3j0','DgvZDa','tg9NAwnHBfn0yxrL','y3r4','Dg9WAwm','y2XPzw50','DxrJ','Dg9WAwmGzMLSDgvYihjLAMvJDgvKicG','nJu5ndmWzhzbtevu','nta3nJy0mgvisvbvBW','y2XVC2u','vMfSDwu','nJyWndq4zgnRB3bb','Ag9ZDa','zxzLBNrZ','ksWGC3vIC2nYAwjPBMCGDw5MAwX0zxjLza','sxnuyw1Wzxi','mKvoyNHvuq','sxnjBNnPzgu','C3rHDgu','DMfSDwvZ','u3rHDgu','BwvZC2fNzq','sxnnB3rPB24','CgfZCW','ywXS','C291CMnL','DgLTzw91De1Z','Bg9N','C3rVChbLza','z2v0u2vYDMLJzxm','y29Kzq'];_0x56c9=function(){return _0x133045;};return _0x56c9();}const {OnvifClient}=require('../onvif'),INPUT_TOPIC=/DigitalInput/i,INPUT_FILTER=['tns1:Device/Trigger/DigitalInput'],truthy=_0x3b260e=>/^(true|1|active|on|high)$/i[_0x244f(0x88)](String(_0x3b260e));class OnvifBase{constructor(_0x4a8ff8,_0x41673d){this['d']=_0x4a8ff8,this[_0x244f(0x8a)]=_0x41673d,this['stopped']=![];}[_0x244f(0x71)](){const {cam:_0x3b7484}=this['d'];return new OnvifClient({'host':_0x3b7484[_0x244f(0x94)],'port':_0x3b7484[_0x244f(0x87)]||_0x3b7484[_0x244f(0x7b)]||0x50,'tls':_0x3b7484['tls'],'user':_0x3b7484[_0x244f(0x6f)]!==undefined?_0x3b7484[_0x244f(0x6f)]:_0x3b7484[_0x244f(0x7d)],'pass':_0x3b7484['onvifPass']!==undefined?_0x3b7484['onvifPass']:_0x3b7484[_0x244f(0x9f)],'timeout':Math[_0x244f(0x74)](this[_0x244f(0x8a)][_0x244f(0x6d)][_0x244f(0x68)],0xbb8),'allowSelfSigned':this[_0x244f(0x8a)][_0x244f(0x6d)][_0x244f(0x7f)]});}async['prepare'](){this['client']=this['makeClient'](),await this['client'][_0x244f(0x81)](),await this[_0x244f(0x8c)][_0x244f(0x6b)]();}get[_0x244f(0x83)](){return this[_0x244f(0x8a)]['opts'][_0x244f(0x95)]===_0x244f(0x66)?null:INPUT_FILTER;}[_0x244f(0x77)](_0x2ace73){for(const _0x2ec307 of _0x2ace73){if(INPUT_TOPIC[_0x244f(0x88)](_0x2ec307[_0x244f(0x8b)])){const _0x224888=_0x2ec307[_0x244f(0x67)][_0x244f(0x82)]||_0x2ec307['source']['Index']||_0x2ec307['source'][_0x244f(0x70)]||Object[_0x244f(0x9b)](_0x2ec307['source'])[0x0]||'1',_0x446716=this[_0x244f(0x8a)][_0x244f(0x7c)](_0x224888);if(_0x446716===null)continue;const _0x19ee88=_0x2ec307[_0x244f(0x84)][_0x244f(0x89)]!==undefined?_0x2ec307[_0x244f(0x84)]['LogicalState']:_0x2ec307[_0x244f(0x84)][_0x244f(0x9c)]!==undefined?_0x2ec307[_0x244f(0x84)][_0x244f(0x9c)]:Object[_0x244f(0x9b)](_0x2ec307[_0x244f(0x84)])[0x0];this[_0x244f(0x8a)]['input'](_0x446716,truthy(_0x19ee88),_0x2ec307['op']==='Initialized'?_0x244f(0x79):_0x2ec307['op']===_0x244f(0x7a)?_0x244f(0x9a):_0x244f(0x78));continue;}if(this[_0x244f(0x8a)][_0x244f(0x6d)]['events']!==_0x244f(0x66)||_0x2ec307['op']==='Initialized'||_0x2ec307['op']===_0x244f(0x7a)&&_0x2ec307['retained'])continue;const _0x277ae8=['State',_0x244f(0x9e),_0x244f(0x97),_0x244f(0x99),_0x244f(0x92)][_0x244f(0x72)](_0x16b1b=>_0x2ec307[_0x244f(0x84)][_0x16b1b]!==undefined);this[_0x244f(0x8a)][_0x244f(0x78)]({'source':'onvif','event':_0x2ec307['topic'],'state':_0x277ae8?truthy(_0x2ec307[_0x244f(0x84)][_0x277ae8]):null,'op':_0x2ec307['op']===_0x244f(0x7a)?null:_0x2ec307['op'],'items':_0x2ec307['source'],'data':_0x2ec307['data'],'utc':_0x2ec307[_0x244f(0x8d)]});}}async[_0x244f(0x80)](_0x3d2e15){try{return await _0x3d2e15(this['filter']);}catch(_0x4b0cff){if(_0x4b0cff[_0x244f(0x6c)]===_0x244f(0x73)||!this[_0x244f(0x83)])throw _0x4b0cff;return this['ctx'][_0x244f(0x69)](_0x244f(0x8e)+_0x4b0cff[_0x244f(0x9d)]+_0x244f(0x96)),_0x3d2e15(null);}}['stopBase'](){this[_0x244f(0x6a)]=!![];if(this['client'])this[_0x244f(0x8c)][_0x244f(0x91)]();}}function _0x244f(_0x3c6430,_0x19163b){const _0x56c9ec=_0x56c9();return _0x244f=function(_0x244f01,_0x42e349){_0x244f01=_0x244f01-0x66;let _0x47c59a=_0x56c9ec[_0x244f01];if(_0x244f['DpFTjQ']===undefined){var _0x31c10c=function(_0x3b260e){const _0x4a8ff8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x41673d='',_0x3b7484='';for(let _0x2ace73=0x0,_0x2ec307,_0x277ae8,_0x224888=0x0;_0x277ae8=_0x3b260e['charAt'](_0x224888++);~_0x277ae8&&(_0x2ec307=_0x2ace73%0x4?_0x2ec307*0x40+_0x277ae8:_0x277ae8,_0x2ace73++%0x4)?_0x41673d+=String['fromCharCode'](0xff&_0x2ec307>>(-0x2*_0x2ace73&0x6)):0x0){_0x277ae8=_0x4a8ff8['indexOf'](_0x277ae8);}for(let _0x446716=0x0,_0x19ee88=_0x41673d['length'];_0x446716<_0x19ee88;_0x446716++){_0x3b7484+='%'+('00'+_0x41673d['charCodeAt'](_0x446716)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b7484);};_0x244f['PLjDfN']=_0x31c10c,_0x3c6430=arguments,_0x244f['DpFTjQ']=!![];}const _0x2f7647=_0x56c9ec[0x0],_0x21101e=_0x244f01+_0x2f7647,_0x57ac50=_0x3c6430[_0x21101e];return!_0x57ac50?(_0x47c59a=_0x244f['PLjDfN'](_0x47c59a),_0x3c6430[_0x21101e]=_0x47c59a):_0x47c59a=_0x57ac50,_0x47c59a;},_0x244f(_0x3c6430,_0x19163b);}module['exports']={'OnvifBase':OnvifBase,'truthy':truthy};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x4a393a,_0x4eea49){const _0x530cb3=_0x4a393a();while(!![]){try{const _0x3ec45b=parseInt(_0x3594(0x1b7))/0x1*(-parseInt(_0x3594(0x1b9))/0x2)+parseInt(_0x3594(0x1bc))/0x3+-parseInt(_0x3594(0x18c))/0x4*(-parseInt(_0x3594(0x17f))/0x5)+-parseInt(_0x3594(0x18f))/0x6*(-parseInt(_0x3594(0x1a0))/0x7)+-parseInt(_0x3594(0x193))/0x8+-parseInt(_0x3594(0x189))/0x9+parseInt(_0x3594(0x1b8))/0xa;if(_0x3ec45b===_0x4eea49)break;else _0x530cb3['push'](_0x530cb3['shift']());}catch(_0x4130ac){_0x530cb3['push'](_0x530cb3['shift']());}}}(_0x2ec4,0x9cbb9));function _0x2ec4(){const _0x2b9861=['DxrMoa','zxjYB3i','Dg9WAwm','zMLSDgvY','C3rHCNrZv2L0Aa','zxzLBNqGyNjVA2vYignVBMzPz3vYyxrPB24GCMvTB3zLzcbMCM9TignHBwvYyq','mJy2ndq4nvHLBNj2EG','y2fT','CNvU','y3r4','zNjVBuvUDhjPzxm','ig5VDcbYzwDPC3rLCMvKig9UignHBwvYysaOC2v0ignVBMzPz3vYztP0CNvLihrVigfKzcbPDcK','BgvUz3rO','ywn1AxaV','vxrJvgLTzq','AgvHBhrOtxm','ody4nJq1ogLyD2ncvW','yNjVA2vYia','Cgf5Bg9Hza','ngjwANDmrq','CMv0ywLU','i3n0yxrL','nMLtt2ToBW','zxzLBNqGyNjVA2vYia','Dg9WAwnqCMvMAxG','u291CMnL','odKWntqZmMTqEwPNDq','B25nCxr0','AfrPBwvY','BwfW','B3b0CW','rgf0yq','C2XPy2u','q29UBMvJDgvK','ChjLzML4','lI9VBNzPzI1JB21TB24','CMvWBgfJzq','zxHWB3j0CW','Dg5ZmtO','ndy4nJKXm1bst1HHua','zw50CMLLCW','ywrKCMvZCW','y2fTzxjHihrVigjYB2TLCJOG','ywrKrxzLBNrcCM9Rzxi','AxncDwzMzxi','AgfUzgXL','yNjVA2vY','C3LUy1rPBwu','CgfYC2vuB3bPyW','y29UzMLNDxjL','zMLUza','ywXPDMu','z2v0rxzLBNrcCM9RzxjZ','C29Tzq','CgfYC2u','C3rYAw5N','Dg9tDhjPBMC','C3rHDhvZ','AgvHBhrO','B2jQzwn0','ChjLCgfYzq','C3rVCa','mJzoD1vPD1O','mti5ote5mZbiAMPKBu8','nJyZofPdExP4ua','DgvZDa','y2XPzw50','ote0odG5rfrjEuXq','Aw5KzxHpzG','C3rVChbLza','CMv0CNK'];_0x2ec4=function(){return _0x2b9861;};return _0x2ec4();}function _0x3594(_0x5886e2,_0x91d816){const _0x2ec496=_0x2ec4();return _0x3594=function(_0x359404,_0x434b2b){_0x359404=_0x359404-0x17a;let _0x309d41=_0x2ec496[_0x359404];if(_0x3594['PKjxWI']===undefined){var _0x301b56=function(_0x301383){const _0x4a9890='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56fb6b='',_0x447c5d='';for(let _0x314c01=0x0,_0x37b6d4,_0x5a7693,_0x39accd=0x0;_0x5a7693=_0x301383['charAt'](_0x39accd++);~_0x5a7693&&(_0x37b6d4=_0x314c01%0x4?_0x37b6d4*0x40+_0x5a7693:_0x5a7693,_0x314c01++%0x4)?_0x56fb6b+=String['fromCharCode'](0xff&_0x37b6d4>>(-0x2*_0x314c01&0x6)):0x0){_0x5a7693=_0x4a9890['indexOf'](_0x5a7693);}for(let _0x24194e=0x0,_0x500841=_0x56fb6b['length'];_0x24194e<_0x500841;_0x24194e++){_0x447c5d+='%'+('00'+_0x56fb6b['charCodeAt'](_0x24194e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x447c5d);};_0x3594['fbRCDr']=_0x301b56,_0x5886e2=arguments,_0x3594['PKjxWI']=!![];}const _0x40aa85=_0x2ec496[0x0],_0x270390=_0x359404+_0x40aa85,_0x557bab=_0x5886e2[_0x270390];return!_0x557bab?(_0x309d41=_0x3594['fbRCDr'](_0x309d41),_0x5886e2[_0x270390]=_0x309d41):_0x309d41=_0x557bab,_0x309d41;},_0x3594(_0x5886e2,_0x91d816);}const {OnvifBase}=require(_0x3594(0x19c));class OnvifMqttSource extends OnvifBase{['start'](){this[_0x3594(0x19b)]=String(this['d'][_0x3594(0x180)][_0x3594(0x191)]||_0x3594(0x186)+this['d'][_0x3594(0x180)]['id'])[_0x3594(0x19d)](/\/+$/,''),this[_0x3594(0x181)]();}async[_0x3594(0x181)](){if(this[_0x3594(0x1be)]||!this['ctx'][_0x3594(0x1ac)]())return;try{if(!this[_0x3594(0x1bb)])await this[_0x3594(0x1b5)]();const _0x301383=this['d']['cam'][_0x3594(0x1a7)];if(_0x301383){const _0x4a9890=await this[_0x3594(0x1bb)][_0x3594(0x1ad)]();if(!_0x4a9890[_0x3594(0x1ae)](_0x56fb6b=>_0x56fb6b['address']===_0x301383)){if(!this['d']['cam'][_0x3594(0x1aa)])throw new Error(_0x3594(0x18a)+_0x301383+_0x3594(0x184));await this[_0x3594(0x1bb)][_0x3594(0x1a4)]({'address':_0x301383,'topicPrefix':this['prefix'],'topics':this[_0x3594(0x17c)]}),this[_0x3594(0x182)]['log'](_0x3594(0x190)+_0x301383+'\x20added,\x20prefix\x20'+this[_0x3594(0x19b)]);}}this['ctx']['ok'](),this[_0x3594(0x1b3)]();}catch(_0x447c5d){if(this[_0x3594(0x182)][_0x3594(0x17a)](_0x447c5d))this[_0x3594(0x1bf)]=setTimeout(()=>this[_0x3594(0x181)](),0x1388);}}[_0x3594(0x1b3)](){this[_0x3594(0x195)]=setTimeout(async()=>{if(this['stopped']||!this[_0x3594(0x182)][_0x3594(0x1ac)]())return;try{if(this['d'][_0x3594(0x180)][_0x3594(0x1a7)]){const _0x314c01=(await this[_0x3594(0x1bb)]['getEventBrokers']())[_0x3594(0x1ab)](_0x37b6d4=>_0x37b6d4[_0x3594(0x1a2)]===this['d'][_0x3594(0x180)]['broker']);if(!_0x314c01)throw new Error(_0x3594(0x17e));if(_0x314c01['status']&&_0x314c01[_0x3594(0x1b2)]!==_0x3594(0x19a))throw new Error(_0x3594(0x1a3)+_0x314c01[_0x3594(0x1b2)]);}else await this[_0x3594(0x1bb)][_0x3594(0x1a8)]();this[_0x3594(0x182)]['ok']();}catch(_0x5a7693){if(!this[_0x3594(0x182)][_0x3594(0x17a)](_0x5a7693))return;}this[_0x3594(0x1b3)]();},this[_0x3594(0x182)][_0x3594(0x197)][_0x3594(0x188)]);}['matches'](_0x39accd){return typeof _0x39accd===_0x3594(0x1b0)&&_0x39accd[_0x3594(0x17d)](this[_0x3594(0x19b)]+'/');}static[_0x3594(0x1a9)](_0x24194e){let _0x500841=_0x24194e[_0x3594(0x19d)](/^onvif-ej\//,'');const _0x1a5d13=_0x500841[_0x3594(0x1bd)]('/&');if(_0x1a5d13>=0x0)_0x500841=_0x500841[_0x3594(0x199)](0x0,_0x1a5d13);return/^\w+:/[_0x3594(0x1ba)](_0x500841)?_0x500841:_0x3594(0x19f)+_0x500841;}[_0x3594(0x194)](_0x15be56){if(this[_0x3594(0x1be)])return;let _0x3ad555=_0x15be56[_0x3594(0x18b)];if(Buffer[_0x3594(0x1a5)](_0x3ad555))_0x3ad555=_0x3ad555[_0x3594(0x1b1)](_0x3594(0x1c0));if(_0x3ad555===undefined||_0x3ad555===null||_0x3ad555==='')return;if(typeof _0x3ad555==='string')_0x3ad555=JSON[_0x3594(0x1af)](_0x3ad555);const _0x581358=_0x45784c=>Object[_0x3594(0x183)](Object[_0x3594(0x1a1)](_0x45784c||{})[_0x3594(0x196)](([_0xee6e19,_0x697530])=>[_0xee6e19,typeof _0x697530===_0x3594(0x1b4)&&_0x697530!==null?_0x697530:String(_0x697530)])),_0x1f300c={'topic':OnvifMqttSource[_0x3594(0x1a9)](_0x15be56[_0x3594(0x17b)]['slice'](this[_0x3594(0x19b)][_0x3594(0x185)]+0x1)),'op':_0x3594(0x18e),'retained':!!_0x15be56[_0x3594(0x18d)],'utc':_0x3ad555[_0x3594(0x187)]||null,'source':_0x581358(_0x3ad555[_0x3594(0x192)]),'data':_0x581358(_0x3ad555[_0x3594(0x198)])};this[_0x3594(0x182)]['ok'](),this[_0x3594(0x1a6)]([_0x1f300c]);}[_0x3594(0x1b6)](){this['stopBase'](),clearTimeout(this[_0x3594(0x1bf)]),clearTimeout(this[_0x3594(0x195)]);}}module[_0x3594(0x19e)]=OnvifMqttSource;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x10f328,_0x5bbdd3){const _0x25eb75=_0x10f328();while(!![]){try{const _0x53f253=-parseInt(_0x397f(0xdd))/0x1*(-parseInt(_0x397f(0xdf))/0x2)+-parseInt(_0x397f(0xfa))/0x3+parseInt(_0x397f(0xea))/0x4+parseInt(_0x397f(0xed))/0x5+parseInt(_0x397f(0xf7))/0x6+-parseInt(_0x397f(0xf8))/0x7+-parseInt(_0x397f(0xf5))/0x8*(parseInt(_0x397f(0xe7))/0x9);if(_0x53f253===_0x5bbdd3)break;else _0x25eb75['push'](_0x25eb75['shift']());}catch(_0x2d7167){_0x25eb75['push'](_0x25eb75['shift']());}}}(_0x13ca,0xdeeb4));function _0x13ca(){const _0x32602b=['ywXPDMu','ChvSBfDHAxrtzwm','mZDOEKr3q2q','CMvUzxC','nZyYodzKBLzlEu4','zxHWB3j0CW','ChjLCgfYzq','CNvU','Bg9VCa','y2f0y2G','y3r4','DgHLBG','mJu3mJjpyNLyB1q','C3rVChbLza','Dw5ZDwjZy3jPyMu','mtKZnte4mhbdrM9jqq','C3vI','zxjYB3i','nZa3ndmZnunlCevwDW','y3jLyxrLuhvSBfbVAw50','D2L0AezPBhrLCKzHBgXIywnR','BM93','C3rVCa','y2XPzw50','CMvUzxDbDa','C3rHCNq','ntu5mLDWyMnWDG','lI9VBNzPzI1JB21TB24','nJC2nda3mfDnrgDgsG','mJGWntmXm09vr2HHuq','CMv0CNK','mZm3nZe2m1PXCLjoyG'];_0x13ca=function(){return _0x32602b;};return _0x13ca();}const {OnvifBase}=require(_0x397f(0xf6)),TTL=0x3c;class OnvifPullSource extends OnvifBase{[_0x397f(0xf4)](){this[_0x397f(0xe2)]();}async[_0x397f(0xe2)](){if(this['stopped']||!this[_0x397f(0xe5)][_0x397f(0xfb)]())return;try{if(!this[_0x397f(0xf2)])await this[_0x397f(0xe1)]();this[_0x397f(0xeb)]=await this[_0x397f(0xef)](_0x135b8e=>this['client'][_0x397f(0xee)](_0x135b8e,TTL)),this[_0x397f(0xf3)]=Date[_0x397f(0xf0)]()+TTL/0x2*0x3e8,this[_0x397f(0xe5)]['ok'](),this[_0x397f(0xe3)]();}catch(_0x45b191){this[_0x397f(0xeb)]=null;if(this[_0x397f(0xe5)][_0x397f(0xec)](_0x45b191))this[_0x397f(0xf9)]=setTimeout(()=>this[_0x397f(0xe2)](),0x3e8);}}async[_0x397f(0xe3)](){while(!this[_0x397f(0xe8)]&&this[_0x397f(0xe5)][_0x397f(0xfb)]()&&this[_0x397f(0xeb)]){try{Date[_0x397f(0xf0)]()>=this[_0x397f(0xf3)]&&(await this[_0x397f(0xf2)][_0x397f(0xde)](this['sub'],TTL),this[_0x397f(0xf3)]=Date[_0x397f(0xf0)]()+TTL/0x2*0x3e8);const _0x51c7af=await this[_0x397f(0xf2)]['pull'](this[_0x397f(0xeb)],this['ctx']['opts'][_0x397f(0xfc)]||0x5,0x64);if(this[_0x397f(0xe8)])return;this[_0x397f(0xe5)]['ok'](),this['handle'](_0x51c7af);}catch(_0x4fcd21){if(this[_0x397f(0xe8)])return;this[_0x397f(0xeb)]=null;if(this[_0x397f(0xe5)][_0x397f(0xec)](_0x4fcd21))this[_0x397f(0xf9)]=setTimeout(()=>this[_0x397f(0xe2)](),0x3e8);return;}}}[_0x397f(0xf1)](){const {client:_0x4b28f1,sub:_0x5aafdd}=this;this[_0x397f(0xe8)]=!![],clearTimeout(this[_0x397f(0xf9)]);if(_0x4b28f1&&_0x5aafdd)_0x4b28f1[_0x397f(0xe9)](_0x5aafdd)[_0x397f(0xe4)](()=>{})[_0x397f(0xe6)](()=>_0x4b28f1['close']());else{if(_0x4b28f1)_0x4b28f1['close']();}}}function _0x397f(_0x47766f,_0x27b32c){const _0x13ca02=_0x13ca();return _0x397f=function(_0x397f42,_0x5b817f){_0x397f42=_0x397f42-0xdd;let _0x3dcb0a=_0x13ca02[_0x397f42];if(_0x397f['zBsuzo']===undefined){var _0x320ed1=function(_0x135b8e){const _0x45b191='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x51c7af='',_0x4fcd21='';for(let _0x4b28f1=0x0,_0x5aafdd,_0x562852,_0x54892b=0x0;_0x562852=_0x135b8e['charAt'](_0x54892b++);~_0x562852&&(_0x5aafdd=_0x4b28f1%0x4?_0x5aafdd*0x40+_0x562852:_0x562852,_0x4b28f1++%0x4)?_0x51c7af+=String['fromCharCode'](0xff&_0x5aafdd>>(-0x2*_0x4b28f1&0x6)):0x0){_0x562852=_0x45b191['indexOf'](_0x562852);}for(let _0x124c0d=0x0,_0x3c51e2=_0x51c7af['length'];_0x124c0d<_0x3c51e2;_0x124c0d++){_0x4fcd21+='%'+('00'+_0x51c7af['charCodeAt'](_0x124c0d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4fcd21);};_0x397f['JZSeHi']=_0x320ed1,_0x47766f=arguments,_0x397f['zBsuzo']=!![];}const _0x4f25de=_0x13ca02[0x0],_0x3a163f=_0x397f42+_0x4f25de,_0x260aab=_0x47766f[_0x3a163f];return!_0x260aab?(_0x3dcb0a=_0x397f['JZSeHi'](_0x3dcb0a),_0x47766f[_0x3a163f]=_0x3dcb0a):_0x3dcb0a=_0x260aab,_0x3dcb0a;},_0x397f(_0x47766f,_0x27b32c);}module[_0x397f(0xe0)]=OnvifPullSource;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x335ad5,_0x4c1166){const _0xd66ae7=_0x335ad5();while(!![]){try{const _0x30b1be=parseInt(_0x337b(0xe2))/0x1+-parseInt(_0x337b(0xd9))/0x2*(parseInt(_0x337b(0xdd))/0x3)+parseInt(_0x337b(0xd5))/0x4*(-parseInt(_0x337b(0xeb))/0x5)+-parseInt(_0x337b(0xdc))/0x6*(-parseInt(_0x337b(0xce))/0x7)+-parseInt(_0x337b(0xe1))/0x8+parseInt(_0x337b(0xe7))/0x9+parseInt(_0x337b(0xe8))/0xa*(-parseInt(_0x337b(0xe3))/0xb);if(_0x30b1be===_0x4c1166)break;else _0xd66ae7['push'](_0xd66ae7['shift']());}catch(_0x9c317f){_0xd66ae7['push'](_0xd66ae7['shift']());}}}(_0x23d6,0x4e6eb));function _0x337b(_0x4d8e0b,_0x5e0aaf){const _0x23d6e7=_0x23d6();return _0x337b=function(_0x337bdc,_0x53ac6b){_0x337bdc=_0x337bdc-0xcc;let _0x5c7f6f=_0x23d6e7[_0x337bdc];if(_0x337b['feOUsB']===undefined){var _0x165b60=function(_0x1c012c){const _0x732ed='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x19766e='',_0x5d5acd='';for(let _0x413173=0x0,_0x3315b9,_0x4c166,_0x8cfebd=0x0;_0x4c166=_0x1c012c['charAt'](_0x8cfebd++);~_0x4c166&&(_0x3315b9=_0x413173%0x4?_0x3315b9*0x40+_0x4c166:_0x4c166,_0x413173++%0x4)?_0x19766e+=String['fromCharCode'](0xff&_0x3315b9>>(-0x2*_0x413173&0x6)):0x0){_0x4c166=_0x732ed['indexOf'](_0x4c166);}for(let _0x1773e1=0x0,_0x4af193=_0x19766e['length'];_0x1773e1<_0x4af193;_0x1773e1++){_0x5d5acd+='%'+('00'+_0x19766e['charCodeAt'](_0x1773e1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5d5acd);};_0x337b['iraBWz']=_0x165b60,_0x4d8e0b=arguments,_0x337b['feOUsB']=!![];}const _0x5f2132=_0x23d6e7[0x0],_0x371c02=_0x337bdc+_0x5f2132,_0x57cd01=_0x4d8e0b[_0x371c02];return!_0x57cd01?(_0x5c7f6f=_0x337b['iraBWz'](_0x5c7f6f),_0x4d8e0b[_0x371c02]=_0x5c7f6f):_0x5c7f6f=_0x57cd01,_0x5c7f6f;},_0x337b(_0x4d8e0b,_0x5e0aaf);}const {OnvifBase}=require('./onvif-common'),{OnvifClient}=require(_0x337b(0xed)),X=require(_0x337b(0xe6)),TTL=0x12c;class OnvifPushSource extends OnvifBase{['start'](){this[_0x337b(0xcf)]();}async['run'](){if(this[_0x337b(0xd4)]||!this[_0x337b(0xd8)][_0x337b(0xd1)]())return;try{if(!this[_0x337b(0xdb)])await this[_0x337b(0xd6)]();const _0x1c012c=await this[_0x337b(0xd8)][_0x337b(0xde)]['callbackUrl'](this['d']),_0x732ed=_0x1c012c+'/'+encodeURIComponent(this['d']['cam']['id']);this[_0x337b(0xef)]=await this[_0x337b(0xcc)](_0x19766e=>this[_0x337b(0xdb)][_0x337b(0xea)](_0x732ed,_0x19766e,TTL)),this[_0x337b(0xd8)]['ok'](),this[_0x337b(0xd8)][_0x337b(0xd2)]('push\x20subscription\x20to\x20'+_0x732ed),this[_0x337b(0xda)]();}catch(_0x5d5acd){this[_0x337b(0xef)]=null;if(this[_0x337b(0xd8)][_0x337b(0xe5)](_0x5d5acd))this[_0x337b(0xe0)]=setTimeout(()=>this[_0x337b(0xcf)](),0x7d0);}}[_0x337b(0xda)](){this[_0x337b(0xd0)]=setTimeout(async()=>{if(this[_0x337b(0xd4)]||!this[_0x337b(0xd8)][_0x337b(0xd1)]())return;try{await this[_0x337b(0xdb)][_0x337b(0xd3)](this[_0x337b(0xef)],TTL),this['ctx']['ok'](),this[_0x337b(0xda)]();}catch(_0x413173){this['sub']=null;if(this[_0x337b(0xd8)][_0x337b(0xe5)](_0x413173))this['retry']=setTimeout(()=>this[_0x337b(0xcf)](),0x3e8);}},TTL/0x2*0x3e8);}[_0x337b(0xe4)](_0x3315b9){if(this[_0x337b(0xd4)])return;this['ctx']['ok'](),this[_0x337b(0xe9)](OnvifClient['notifications'](X[_0x337b(0xdf)](_0x3315b9)));}[_0x337b(0xcd)](){const {client:_0x4c166,sub:_0x8cfebd}=this;this[_0x337b(0xd4)]=!![],clearTimeout(this[_0x337b(0xe0)]),clearTimeout(this[_0x337b(0xd0)]);if(_0x4c166&&_0x8cfebd)_0x4c166[_0x337b(0xee)](_0x8cfebd)[_0x337b(0xd7)](()=>{})['then'](()=>_0x4c166[_0x337b(0xec)]());else{if(_0x4c166)_0x4c166[_0x337b(0xec)]();}}}module[_0x337b(0xf0)]=OnvifPushSource;function _0x23d6(){const _0x14ea44=['mZy3mJG5wMrzuMPZ','mJa5odu4tvHPuu5w','B25qDxnO','zxjYB3i','lI4VEg1S','ndG3mJC0ng1Ls1P6zq','ntbvuxfbtha','AgfUzgXL','C3vIC2nYAwjLuhvZAa','nufiwvbJuq','y2XVC2u','lI4VB252Awy','Dw5ZDwjZy3jPyMu','C3vI','zxHWB3j0CW','D2L0AezPBhrLCKzHBgXIywnR','C3rVCa','ntCYmdrXwunSr3O','CNvU','CLrPBwvY','ywXPDMu','Bg9N','CMvUzxC','C3rVChbLza','ndi2ota4wLvHAu54','ChjLCgfYzq','y2f0y2G','y3r4','mZCZmdbVufHRv1C','C2nOzwr1Bgu','y2XPzw50','mtu2shfJrMfv','mtHMz3HpuuO','B3b0CW','CgfYC2u','CMv0CNK','mZG4nZiWoezuuffXEq'];_0x23d6=function(){return _0x14ea44;};return _0x23d6();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x3b7a6c,_0x54422e){const _0x2dc00e=_0x3b7a6c();while(!![]){try{const _0x340879=parseInt(_0xac69(0x14e))/0x1+-parseInt(_0xac69(0x148))/0x2+parseInt(_0xac69(0x164))/0x3+parseInt(_0xac69(0x156))/0x4*(parseInt(_0xac69(0x15c))/0x5)+-parseInt(_0xac69(0x15f))/0x6+-parseInt(_0xac69(0x15e))/0x7+parseInt(_0xac69(0x16b))/0x8;if(_0x340879===_0x54422e)break;else _0x2dc00e['push'](_0x2dc00e['shift']());}catch(_0x386db7){_0x2dc00e['push'](_0x2dc00e['shift']());}}}(_0x7d6d,0xc16d2));function _0xac69(_0x47f21e,_0xcb9c13){const _0x7d6d60=_0x7d6d();return _0xac69=function(_0xac69a5,_0x1d0662){_0xac69a5=_0xac69a5-0x148;let _0x2b34d0=_0x7d6d60[_0xac69a5];if(_0xac69['lWolrk']===undefined){var _0x5f430d=function(_0x124fc7){const _0x211213='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5c2c07='',_0x10e838='';for(let _0x5c8c95=0x0,_0x4f0123,_0x5133fc,_0x3e0b2c=0x0;_0x5133fc=_0x124fc7['charAt'](_0x3e0b2c++);~_0x5133fc&&(_0x4f0123=_0x5c8c95%0x4?_0x4f0123*0x40+_0x5133fc:_0x5133fc,_0x5c8c95++%0x4)?_0x5c2c07+=String['fromCharCode'](0xff&_0x4f0123>>(-0x2*_0x5c8c95&0x6)):0x0){_0x5133fc=_0x211213['indexOf'](_0x5133fc);}for(let _0x495baf=0x0,_0x35445a=_0x5c2c07['length'];_0x495baf<_0x35445a;_0x495baf++){_0x10e838+='%'+('00'+_0x5c2c07['charCodeAt'](_0x495baf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x10e838);};_0xac69['PPcWhd']=_0x5f430d,_0x47f21e=arguments,_0xac69['lWolrk']=!![];}const _0x34ee04=_0x7d6d60[0x0],_0x208041=_0xac69a5+_0x34ee04,_0x268a36=_0x47f21e[_0x208041];return!_0x268a36?(_0x2b34d0=_0xac69['PPcWhd'](_0x2b34d0),_0x47f21e[_0x208041]=_0x2b34d0):_0x2b34d0=_0x268a36,_0x2b34d0;},_0xac69(_0x47f21e,_0xcb9c13);}const {HttpClient}=require('../http-client'),drivers=require(_0xac69(0x16e));class PollSource{constructor(_0x124fc7,_0x211213){this['d']=_0x124fc7,this[_0xac69(0x160)]=_0x211213,this[_0xac69(0x165)]=null;}[_0xac69(0x15a)](){const {cam:_0x5c2c07}=this['d'],_0x10e838=this[_0xac69(0x160)][_0xac69(0x150)];this[_0xac69(0x162)]=drivers[_0xac69(0x15d)](_0x5c2c07[_0xac69(0x16c)]),this[_0xac69(0x159)]=new HttpClient({'host':_0x5c2c07[_0xac69(0x151)],'port':_0x5c2c07[_0xac69(0x155)]||this[_0xac69(0x162)][_0xac69(0x14a)],'tls':_0x5c2c07[_0xac69(0x154)],'user':_0x5c2c07[_0xac69(0x14d)],'pass':_0x5c2c07[_0xac69(0x163)],'timeout':_0x10e838[_0xac69(0x15b)],'allowSelfSigned':_0x10e838[_0xac69(0x14c)]}),this[_0xac69(0x168)]();}async[_0xac69(0x168)](){if(!this[_0xac69(0x160)][_0xac69(0x14f)]())return;const _0x5c8c95=Date[_0xac69(0x14b)]();try{const _0x4f0123=await this[_0xac69(0x162)][_0xac69(0x152)](this['client'],this['d'][_0xac69(0x149)][_0xac69(0x157)]);if(!this[_0xac69(0x160)][_0xac69(0x14f)]())return;this[_0xac69(0x160)]['ok']();for(const _0x5133fc of this['d'][_0xac69(0x149)][_0xac69(0x157)])this[_0xac69(0x160)][_0xac69(0x158)](_0x5133fc,_0x4f0123[_0x5133fc],_0xac69(0x166));}catch(_0x3e0b2c){if(!this['ctx'][_0xac69(0x169)](_0x3e0b2c))return;}if(this[_0xac69(0x160)][_0xac69(0x14f)]())this[_0xac69(0x165)]=setTimeout(()=>this['loop'](),Math[_0xac69(0x153)](0x0,this[_0xac69(0x160)][_0xac69(0x150)][_0xac69(0x167)]-(Date[_0xac69(0x14b)]()-_0x5c8c95)));}[_0xac69(0x16d)](){if(this[_0xac69(0x165)])clearTimeout(this[_0xac69(0x165)]);if(this[_0xac69(0x159)])this[_0xac69(0x159)][_0xac69(0x16a)]();}}module[_0xac69(0x161)]=PollSource;function _0x7d6d(){const _0x491b3d=['DgLTzw91De1Z','mZv0DhP4uxu','z2v0','mZe1ntq1m1nzs1HIDG','mZG0mJuZmLPhshrrvG','y3r4','zxHWB3j0CW','zhjPDMvY','CgfZCW','mZaWntq1ngv3yvjXvW','DgLTzxi','Cg9SBa','Aw50zxj2ywXnCW','Bg9VCa','zxjYB3i','y2XVC2u','mta1otq0mdb1ChDTC3e','DhLWzq','C3rVCa','lI4VzhjPDMvYCW','mJK0otGZofjyt2zmEG','y2fT','zgvMyxvSDfbVCNq','BM93','ywXSB3DtzwXMu2LNBMvK','DxnLCG','mtG1mZK1AgHTEero','ywXPDMu','B3b0CW','Ag9ZDa','CMvHzeLUChv0CW','Bwf4','DgXZ','Cg9YDa','ndGZotmYu0nmr05p','Aw5WDxrZ','Aw5WDxq','y2XPzw50','C3rHCNq'];_0x7d6d=function(){return _0x491b3d;};return _0x7d6d();}
|
package/lib/xml.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x4315d9,_0x403cd9){const _0x513ce0=_0x4315d9();while(!![]){try{const _0x4408b0=parseInt(_0x55f2(0x1ed))/0x1*(-parseInt(_0x55f2(0x1dd))/0x2)+parseInt(_0x55f2(0x1dc))/0x3*(parseInt(_0x55f2(0x1f2))/0x4)+-parseInt(_0x55f2(0x1e8))/0x5+parseInt(_0x55f2(0x1f3))/0x6+parseInt(_0x55f2(0x1e2))/0x7+-parseInt(_0x55f2(0x1e9))/0x8+-parseInt(_0x55f2(0x1e0))/0x9*(parseInt(_0x55f2(0x1e3))/0xa);if(_0x4408b0===_0x403cd9)break;else _0x513ce0['push'](_0x513ce0['shift']());}catch(_0x490df7){_0x513ce0['push'](_0x513ce0['shift']());}}}(_0x2c72,0x92a7c));const ENT={'lt':'<','gt':'>','amp':'&','quot':'\x22','apos':'\x27'},decode=_0x3ccfff=>_0x3ccfff[_0x55f2(0x1ea)](/&(#x[0-9a-f]+|#\d+|\w+);/gi,(_0x269fc1,_0x1eed23)=>_0x1eed23[0x0]==='#'?String[_0x55f2(0x1e1)](_0x1eed23[0x1][_0x55f2(0x1de)]()==='x'?parseInt(_0x1eed23['slice'](0x2),0x10):parseInt(_0x1eed23[_0x55f2(0x1e5)](0x1),0xa)):ENT[_0x1eed23]||_0x269fc1),local=_0x1b928b=>_0x1b928b[_0x55f2(0x1e5)](_0x1b928b[_0x55f2(0x1e4)](':')+0x1);function _0x55f2(_0x1c600a,_0x45a078){const _0x2c72dc=_0x2c72();return _0x55f2=function(_0x55f2bb,_0x4d9f86){_0x55f2bb=_0x55f2bb-0x1d9;let _0xf90b39=_0x2c72dc[_0x55f2bb];if(_0x55f2['ODhvdZ']===undefined){var _0x1d6e0c=function(_0x3ccfff){const _0x269fc1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1eed23='',_0x1b928b='';for(let _0xe27698=0x0,_0x5917b5,_0x2f6e63,_0x3fdbed=0x0;_0x2f6e63=_0x3ccfff['charAt'](_0x3fdbed++);~_0x2f6e63&&(_0x5917b5=_0xe27698%0x4?_0x5917b5*0x40+_0x2f6e63:_0x2f6e63,_0xe27698++%0x4)?_0x1eed23+=String['fromCharCode'](0xff&_0x5917b5>>(-0x2*_0xe27698&0x6)):0x0){_0x2f6e63=_0x269fc1['indexOf'](_0x2f6e63);}for(let _0x1dd082=0x0,_0x37a203=_0x1eed23['length'];_0x1dd082<_0x37a203;_0x1dd082++){_0x1b928b+='%'+('00'+_0x1eed23['charCodeAt'](_0x1dd082)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b928b);};_0x55f2['Irtwhv']=_0x1d6e0c,_0x1c600a=arguments,_0x55f2['ODhvdZ']=!![];}const _0x2eae70=_0x2c72dc[0x0],_0x411b0b=_0x55f2bb+_0x2eae70,_0x524735=_0x1c600a[_0x411b0b];return!_0x524735?(_0xf90b39=_0x55f2['Irtwhv'](_0xf90b39),_0x1c600a[_0x411b0b]=_0xf90b39):_0xf90b39=_0x524735,_0xf90b39;},_0x55f2(_0x1c600a,_0x45a078);}function parse(_0xe27698){const _0x5917b5={'name':_0x55f2(0x1e7),'attrs':{},'children':[],'text':''},_0x2f6e63=[_0x5917b5],_0x3fdbed=/<!\[CDATA\[([\s\S]*?)\]\]>|<!--[\s\S]*?-->|<\?[\s\S]*?\?>|<!DOCTYPE[^>]*>|<\/([^\s>]+)\s*>|<([^\s/>]+)((?:\s+[^\s=]+\s*=\s*(?:"[^"]*"|'[^']*'))*)\s*(\/?)>|([^<]+)/gi;let _0x1dd082;while((_0x1dd082=_0x3fdbed[_0x55f2(0x1eb)](_0xe27698))!==null){const _0x37a203=_0x2f6e63[_0x2f6e63['length']-0x1];if(_0x1dd082[0x1]!==undefined)_0x37a203['text']+=_0x1dd082[0x1];else{if(_0x1dd082[0x2]){if(_0x2f6e63[_0x55f2(0x1ef)]>0x1)_0x2f6e63[_0x55f2(0x1db)]();}else{if(_0x1dd082[0x3]){const _0x253c2d={};(_0x1dd082[0x4]||'')[_0x55f2(0x1ea)](/([^\s=]+)\s*=\s*(?:"([^"]*)"|'([^']*)')/g,(_0x468531,_0x3dd089,_0x1e3113,_0x4a9330)=>{_0x253c2d[local(_0x3dd089)]=decode(_0x1e3113!==undefined?_0x1e3113:_0x4a9330);});const _0x4b897c={'name':local(_0x1dd082[0x3]),'attrs':_0x253c2d,'children':[],'text':''};_0x37a203[_0x55f2(0x1da)]['push'](_0x4b897c);if(!_0x1dd082[0x5])_0x2f6e63[_0x55f2(0x1df)](_0x4b897c);}else{if(_0x1dd082[0x6])_0x37a203[_0x55f2(0x1ee)]+=decode(_0x1dd082[0x6]);}}}}return _0x5917b5;}function _0x2c72(){const _0x4bd825=['mZuXnte2tKnMvfP4','ndeZmJq2wuDgDhHt','Dg9mB3DLCKnHC2u','ChvZAa','ntu5odLdEgDxzei','zNjVBunVzgvqB2LUDa','nJCWnJC0mMvVz2jmAa','nZKWBhjSv25x','Aw5KzxHpzG','C2XPy2u','jMD0oW','i3jVB3q','mJeZmZe1nwHOuu9sBa','ndaZntm2D0rlz0Dy','CMvWBgfJzq','zxHLyW','jMfWB3m7','muvezgX0ua','Dgv4Da','BgvUz3rO','jMX0oW','jNf1B3q7','mJbXyMfNz1C','mtm5mtmZneXpwgj6Aa','DhjPBq','y2HPBgrYzw4','Cg9W'];_0x2c72=function(){return _0x4bd825;};return _0x2c72();}function all(_0xf984e4,_0x4d26a0,_0xb2cd45=[]){for(const _0x26eb3b of _0xf984e4[_0x55f2(0x1da)]){if(_0x26eb3b['name']===_0x4d26a0)_0xb2cd45[_0x55f2(0x1df)](_0x26eb3b);all(_0x26eb3b,_0x4d26a0,_0xb2cd45);}return _0xb2cd45;}const first=(_0x3145ec,_0x45598c)=>all(_0x3145ec,_0x45598c)[0x0]||null,text=(_0x1f19ff,_0x1f8772)=>{const _0x3f9ae3=_0x1f8772?first(_0x1f19ff,_0x1f8772):_0x1f19ff;return _0x3f9ae3?_0x3f9ae3[_0x55f2(0x1ee)][_0x55f2(0x1d9)]():null;},esc=_0x375243=>String(_0x375243)[_0x55f2(0x1ea)](/[<>&"']/g,_0x486056=>({'<':_0x55f2(0x1f0),'>':_0x55f2(0x1e6),'&':'&','\x22':_0x55f2(0x1f1),'\x27':_0x55f2(0x1ec)}[_0x486056]));module['exports']={'parse':parse,'all':all,'first':first,'text':text,'esc':esc};
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "node-red-contrib-tdn-acuip",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Node-RED node that watches IP camera alarm inputs by polling, push streams or ONVIF events (PullPoint, Base Notification, Profile M) and reports state changes",
|
|
5
|
+
"main": "tdn-acuip.js",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"node-red",
|
|
8
|
+
"ip-camera",
|
|
9
|
+
"alarm-input",
|
|
10
|
+
"digital-input",
|
|
11
|
+
"polling",
|
|
12
|
+
"isapi",
|
|
13
|
+
"rcp",
|
|
14
|
+
"onvif",
|
|
15
|
+
"onvif-events",
|
|
16
|
+
"profile-m",
|
|
17
|
+
"cctv"
|
|
18
|
+
],
|
|
19
|
+
"author": {
|
|
20
|
+
"name": "Switch Point",
|
|
21
|
+
"url": "https://github.com/letis009"
|
|
22
|
+
},
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"files": [
|
|
25
|
+
"tdn-acuip.js",
|
|
26
|
+
"tdn-acuip.html",
|
|
27
|
+
"lib/",
|
|
28
|
+
"examples/",
|
|
29
|
+
"README.md",
|
|
30
|
+
"LICENSE"
|
|
31
|
+
],
|
|
32
|
+
"engines": {
|
|
33
|
+
"node": ">=14"
|
|
34
|
+
},
|
|
35
|
+
"node-red": {
|
|
36
|
+
"nodes": {
|
|
37
|
+
"tdn-acuip": "tdn-acuip.js"
|
|
38
|
+
},
|
|
39
|
+
"version": ">=2.0.0"
|
|
40
|
+
}
|
|
41
|
+
}
|
package/tdn-acuip.html
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
<script type="text/javascript">
|
|
2
|
+
RED.nodes.registerType('tdn-acuip', {
|
|
3
|
+
category: 'network',
|
|
4
|
+
color: '#C7E9C0',
|
|
5
|
+
defaults: {
|
|
6
|
+
name: { value: '' },
|
|
7
|
+
defaultMode: { value: 'poll' },
|
|
8
|
+
interval: { value: 100, required: true, validate: RED.validators.number() },
|
|
9
|
+
confirm: { value: 2, required: true, validate: RED.validators.number() },
|
|
10
|
+
edge: { value: 'both' },
|
|
11
|
+
events: { value: 'inputs' },
|
|
12
|
+
timeout: { value: 1000, required: true, validate: RED.validators.number() },
|
|
13
|
+
failLimit: { value: 3, required: true, validate: RED.validators.number() },
|
|
14
|
+
recheck: { value: 600, required: true, validate: RED.validators.number() },
|
|
15
|
+
endpoint: { value: '/acuip' },
|
|
16
|
+
callbackHost: { value: '' },
|
|
17
|
+
callbackPort: { value: '' },
|
|
18
|
+
pushCheckIp: { value: true },
|
|
19
|
+
defaultType: { value: '' },
|
|
20
|
+
allowSelfSigned: { value: true },
|
|
21
|
+
},
|
|
22
|
+
credentials: {
|
|
23
|
+
user: { type: 'text' },
|
|
24
|
+
pass: { type: 'password' },
|
|
25
|
+
},
|
|
26
|
+
inputs: 1,
|
|
27
|
+
outputs: 3,
|
|
28
|
+
outputLabels: ['running state', 'SCD', 'other events'],
|
|
29
|
+
icon: 'alert.svg',
|
|
30
|
+
label: function () {
|
|
31
|
+
return this.name || 'acuip';
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
</script>
|
|
35
|
+
|
|
36
|
+
<script type="text/html" data-template-name="tdn-acuip">
|
|
37
|
+
<div class="form-row">
|
|
38
|
+
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
|
39
|
+
<input type="text" id="node-input-name" placeholder="acuip">
|
|
40
|
+
</div>
|
|
41
|
+
<div class="form-row">
|
|
42
|
+
<label for="node-input-defaultMode"><i class="fa fa-plug"></i> Default mode</label>
|
|
43
|
+
<select id="node-input-defaultMode">
|
|
44
|
+
<option value="poll">poll: read inputs on a timer</option>
|
|
45
|
+
<option value="stream">stream: ISAPI alertStream</option>
|
|
46
|
+
<option value="http-push">http-push: ISAPI HTTP host</option>
|
|
47
|
+
<option value="onvif">onvif: ONVIF PullPoint</option>
|
|
48
|
+
<option value="onvif-push">onvif-push: ONVIF Base Notification</option>
|
|
49
|
+
<option value="mqtt">mqtt: ONVIF Profile M event broker</option>
|
|
50
|
+
</select>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="form-row">
|
|
53
|
+
<label for="node-input-events"><i class="fa fa-filter"></i> Events</label>
|
|
54
|
+
<select id="node-input-events">
|
|
55
|
+
<option value="inputs">alarm inputs only</option>
|
|
56
|
+
<option value="all">inputs + motion / analytics / tamper on output 3</option>
|
|
57
|
+
</select>
|
|
58
|
+
</div>
|
|
59
|
+
<div class="form-row">
|
|
60
|
+
<label for="node-input-edge"><i class="fa fa-exchange"></i> SCD on</label>
|
|
61
|
+
<select id="node-input-edge">
|
|
62
|
+
<option value="both">any change</option>
|
|
63
|
+
<option value="rising">inactive → active only</option>
|
|
64
|
+
<option value="falling">active → inactive only</option>
|
|
65
|
+
</select>
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
<h4>Poll mode</h4>
|
|
69
|
+
<div class="form-row">
|
|
70
|
+
<label for="node-input-interval"><i class="fa fa-clock-o"></i> Poll every</label>
|
|
71
|
+
<input type="text" id="node-input-interval" style="width:80px"> ms per camera
|
|
72
|
+
</div>
|
|
73
|
+
<div class="form-row">
|
|
74
|
+
<label for="node-input-confirm"><i class="fa fa-check-square-o"></i> Confirm</label>
|
|
75
|
+
<input type="text" id="node-input-confirm" style="width:80px"> consecutive polls before SCD
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
<h4>Connection</h4>
|
|
79
|
+
<div class="form-row">
|
|
80
|
+
<label for="node-input-timeout"><i class="fa fa-hourglass-half"></i> Timeout</label>
|
|
81
|
+
<input type="text" id="node-input-timeout" style="width:80px"> ms
|
|
82
|
+
</div>
|
|
83
|
+
<div class="form-row">
|
|
84
|
+
<label for="node-input-failLimit"><i class="fa fa-chain-broken"></i> Offline after</label>
|
|
85
|
+
<input type="text" id="node-input-failLimit" style="width:80px"> failures in a row
|
|
86
|
+
</div>
|
|
87
|
+
<div class="form-row">
|
|
88
|
+
<label for="node-input-recheck"><i class="fa fa-refresh"></i> Recheck</label>
|
|
89
|
+
<input type="text" id="node-input-recheck" style="width:80px"> s for offline cameras
|
|
90
|
+
</div>
|
|
91
|
+
<div class="form-row">
|
|
92
|
+
<label for="node-input-allowSelfSigned"> </label>
|
|
93
|
+
<input type="checkbox" id="node-input-allowSelfSigned" style="width:auto">
|
|
94
|
+
<span>Allow self-signed HTTPS</span>
|
|
95
|
+
</div>
|
|
96
|
+
|
|
97
|
+
<h4>Push endpoint (http-push, onvif-push)</h4>
|
|
98
|
+
<div class="form-row">
|
|
99
|
+
<label for="node-input-endpoint"><i class="fa fa-globe"></i> Path</label>
|
|
100
|
+
<input type="text" id="node-input-endpoint" placeholder="/acuip">
|
|
101
|
+
</div>
|
|
102
|
+
<div class="form-row">
|
|
103
|
+
<label for="node-input-callbackHost"><i class="fa fa-server"></i> Callback host</label>
|
|
104
|
+
<input type="text" id="node-input-callbackHost" placeholder="auto: this machine's IP towards each camera">
|
|
105
|
+
</div>
|
|
106
|
+
<div class="form-row">
|
|
107
|
+
<label for="node-input-callbackPort"><i class="fa fa-hashtag"></i> Callback port</label>
|
|
108
|
+
<input type="text" id="node-input-callbackPort" placeholder="Node-RED port" style="width:80px">
|
|
109
|
+
</div>
|
|
110
|
+
<div class="form-row">
|
|
111
|
+
<label for="node-input-pushCheckIp"> </label>
|
|
112
|
+
<input type="checkbox" id="node-input-pushCheckIp" style="width:auto">
|
|
113
|
+
<span>Only accept pushes from the camera's own IP (untick behind NAT)</span>
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
<h4>Defaults, used when a camera entry leaves them out</h4>
|
|
117
|
+
<div class="form-row">
|
|
118
|
+
<label for="node-input-defaultType"><i class="fa fa-cog"></i> Poll type</label>
|
|
119
|
+
<select id="node-input-defaultType">
|
|
120
|
+
<option value="">(set per camera)</option>
|
|
121
|
+
<option value="isapi">isapi</option>
|
|
122
|
+
<option value="rcp">rcp</option>
|
|
123
|
+
</select>
|
|
124
|
+
</div>
|
|
125
|
+
<div class="form-row">
|
|
126
|
+
<label for="node-input-user"><i class="fa fa-user"></i> User</label>
|
|
127
|
+
<input type="text" id="node-input-user">
|
|
128
|
+
</div>
|
|
129
|
+
<div class="form-row">
|
|
130
|
+
<label for="node-input-pass"><i class="fa fa-lock"></i> Password</label>
|
|
131
|
+
<input type="password" id="node-input-pass">
|
|
132
|
+
</div>
|
|
133
|
+
</script>
|
|
134
|
+
|
|
135
|
+
<script type="text/html" data-help-name="tdn-acuip">
|
|
136
|
+
<p>Watches alarm inputs (and optionally other events) on a list of IP cameras and sends <code>SCD</code>
|
|
137
|
+
(state change detected) on input changes. Each camera uses one <i>mode</i>, and every mode feeds the
|
|
138
|
+
same SCD output.</p>
|
|
139
|
+
|
|
140
|
+
<h3>Modes</h3>
|
|
141
|
+
<table>
|
|
142
|
+
<tr><th>mode</th><th>how</th><th>needs</th></tr>
|
|
143
|
+
<tr><td><code>poll</code></td><td>GET input state every <i>Poll every</i> ms; <i>Confirm</i> equal reads per change</td><td><code>type</code>: <code>isapi</code> or <code>rcp</code></td></tr>
|
|
144
|
+
<tr><td><code>stream</code></td><td>ISAPI alertStream, events pushed over a held-open GET. The rising edge is latched by the camera, so even very short pulses are caught.</td><td>input linkage "notify surveillance center"</td></tr>
|
|
145
|
+
<tr><td><code>http-push</code></td><td>ISAPI HTTP host: the camera POSTs to this node</td><td>camera reaches Node-RED; <code>configure:true</code> lets the node set the URL</td></tr>
|
|
146
|
+
<tr><td><code>onvif</code></td><td>ONVIF PullPoint (event service, Profiles S/T/G/M)</td><td>ONVIF enabled on the camera</td></tr>
|
|
147
|
+
<tr><td><code>onvif-push</code></td><td>ONVIF Base Notification: the camera POSTs Notify to this node</td><td>ONVIF + camera reaches Node-RED</td></tr>
|
|
148
|
+
<tr><td><code>mqtt</code></td><td>ONVIF Profile M event broker: the camera publishes to MQTT; wire an <i>mqtt in</i> node into this node</td><td>Profile M device, <code>broker</code>, <code>configure:true</code> to register it</td></tr>
|
|
149
|
+
</table>
|
|
150
|
+
|
|
151
|
+
<h3>Inputs</h3>
|
|
152
|
+
<dl class="message-properties">
|
|
153
|
+
<dt>payload <span class="property-type">array | object</span></dt>
|
|
154
|
+
<dd>Camera list, or <code>{ cameras: [...], defaults: {...} }</code>. Loading replaces the old list and
|
|
155
|
+
starts. The first contact sets the baseline and does not send SCD.</dd>
|
|
156
|
+
<dt class="optional">topic <span class="property-type">string</span></dt>
|
|
157
|
+
<dd><code>stop</code>, <code>start</code> (also rechecks offline cameras), <code>status</code>.
|
|
158
|
+
Messages whose topic falls under a <code>mqtt</code> camera's <code>topicPrefix</code> are decoded as
|
|
159
|
+
Profile M events.</dd>
|
|
160
|
+
</dl>
|
|
161
|
+
<pre>"cams.till1" // camera object in global context
|
|
162
|
+
{ "host": "10.0.0.21", "mode": "stream", "inputs": [1], "cred": "creds.till1" }
|
|
163
|
+
{ "host": "10.0.0.22", "mode": "onvif", "onvifCred": "creds.onvif" }
|
|
164
|
+
{ "host": "10.0.0.23", "mode": "poll", "type": "rcp", "user": "service", "pass": "..." }</pre>
|
|
165
|
+
<p>ONVIF can use its own account and port: <code>onvifUser</code>/<code>onvifPass</code>,
|
|
166
|
+
<code>onvifCred</code>, <code>onvifPort</code>. ONVIF inputs match on the trailing number of the
|
|
167
|
+
input token, or on the token string itself.</p>
|
|
168
|
+
|
|
169
|
+
<h3>Outputs</h3>
|
|
170
|
+
<ol class="node-ports">
|
|
171
|
+
<li>Running state: after the first round, on online/offline changes, stop and status.</li>
|
|
172
|
+
<li>SCD: <code>payload: "SCD"</code>, <code>topic</code> = id (global context id or IP), <code>ip</code>,
|
|
173
|
+
<code>input</code>, <code>state</code>.</li>
|
|
174
|
+
<li>Other events (only with <i>Events = all</i>): motion, analytics, tamper and so on, as
|
|
175
|
+
<code>{ id, ip, source, event, state, data }</code>. Edges only.</li>
|
|
176
|
+
</ol>
|
|
177
|
+
|
|
178
|
+
<h3>Push endpoint</h3>
|
|
179
|
+
<p>POST <code><httpNodeRoot><Path>/<camera id></code>. A POST without a known id is matched by
|
|
180
|
+
sender IP. The callback host is worked out per camera unless you set it. By default a push is only accepted
|
|
181
|
+
from the IP in the camera's <code>host</code> field, so other machines cannot inject events.</p>
|
|
182
|
+
</script>
|
package/tdn-acuip.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x465f8e,_0x2c1a16){const _0x4597a0=_0x465f8e();while(!![]){try{const _0x3453a0=parseInt(_0x1df6(0x169))/0x1+-parseInt(_0x1df6(0x1ba))/0x2+parseInt(_0x1df6(0x1ab))/0x3+-parseInt(_0x1df6(0x166))/0x4+parseInt(_0x1df6(0x19e))/0x5*(parseInt(_0x1df6(0x172))/0x6)+-parseInt(_0x1df6(0x1b4))/0x7+parseInt(_0x1df6(0x1b5))/0x8*(parseInt(_0x1df6(0x14a))/0x9);if(_0x3453a0===_0x2c1a16)break;else _0x4597a0['push'](_0x4597a0['shift']());}catch(_0x2b361a){_0x4597a0['push'](_0x4597a0['shift']());}}}(_0x46fc,0x36811));function _0x1df6(_0x8bab7f,_0x3a28ca){const _0x46fc1f=_0x46fc();return _0x1df6=function(_0x1df678,_0x5387c0){_0x1df678=_0x1df678-0x13a;let _0x599ce4=_0x46fc1f[_0x1df678];if(_0x1df6['aPXbXT']===undefined){var _0x28fc9e=function(_0x230fa4){const _0x2c5915='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4ac08b='',_0x2e73c5='';for(let _0x435d8f=0x0,_0xf3ac2,_0x433036,_0x251aae=0x0;_0x433036=_0x230fa4['charAt'](_0x251aae++);~_0x433036&&(_0xf3ac2=_0x435d8f%0x4?_0xf3ac2*0x40+_0x433036:_0x433036,_0x435d8f++%0x4)?_0x4ac08b+=String['fromCharCode'](0xff&_0xf3ac2>>(-0x2*_0x435d8f&0x6)):0x0){_0x433036=_0x2c5915['indexOf'](_0x433036);}for(let _0x33a7d3=0x0,_0x3c14fd=_0x4ac08b['length'];_0x33a7d3<_0x3c14fd;_0x33a7d3++){_0x2e73c5+='%'+('00'+_0x4ac08b['charCodeAt'](_0x33a7d3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e73c5);};_0x1df6['efUEoO']=_0x28fc9e,_0x8bab7f=arguments,_0x1df6['aPXbXT']=!![];}const _0x3b94c5=_0x46fc1f[0x0],_0x44c953=_0x1df678+_0x3b94c5,_0x357030=_0x8bab7f[_0x44c953];return!_0x357030?(_0x599ce4=_0x1df6['efUEoO'](_0x599ce4),_0x8bab7f[_0x44c953]=_0x599ce4):_0x599ce4=_0x357030,_0x599ce4;},_0x1df6(_0x8bab7f,_0x3a28ca);}const dgram=require(_0x1df6(0x149)),net=require(_0x1df6(0x17b)),{Engine,normaliseCamera}=require('./lib/engine');function _0x46fc(){const _0x4c16fe=['C29JA2v0','Cgf0Aa','B252AwzqyxnZ','y29UBMvJDa','xtOGz2XVyMfSici','C2v0DgLUz3m','zxzLBNrZ','ywXSB3DtzwXMu2LNBMvK','y2fT','B252AwzdCMvK','Cgf5Bg9HzcbTDxn0igjLigeGy2fTzxjHigfYCMf5ig9YihSGy2fTzxjHCZOGwY4UlL0GFq','AxncDwzMzxi','y3jLyxrLu29JA2v0','odi2otKYsNrQqML3','ig9UBgLUzq','C3rVChbLzcaO','nde0mdDxzvryBgu','ifndra','AxnbCNjHEq','ihjLAMvJDgvKicHJyw1LCMeGAxmG','ywn1AxaVC3rHDgu','z3jLEq','zxjYB3i','zgvMyxvSDfr5Cgu','CM91BMq','mJm1mtyZnfPgAurUDG','Bwf4','yM90Aa','y2fSBgjHy2TqB3j0','ChvZAcbMCM9Tia','DwLqB3j0','Dgv4Da','DgrUlwfJDwLW','zgvMyxvSDhm','BMv0','BgvUz3rO','igLZigfSCMvHzhKGDxnLzcbIEsbHBM90AgvYig5Vzgu7igDPDMuGDgHPCYbUB2rLigL0CYbVD24GiLbHDgGIig9YigL0CYbWDxnOzxmGz28GDg8GDgHLig90AgvYig9Uzq','Aw5WDxrZ','y29UDgv4Da','zxHWB3j0CW','ChvZAa','CgfYyw1Z','CMvJAgvJAW','C3bSAwnL','zgvIDwC','ChvZAenOzwnRsxa','zgf0yq','z2v0','Dg9mB3DLCKnHC2u','zMfPBeXPBwL0','Aw5JBhvKzxm','C291CMnL','y29Uy2f0','Cg9ZDa','C3rHy2S','y3jLza','CMvTB3rLqwrKCMvZCW','Ahr0Ce5Vzgu','EwvSBg93','zMLUzfb1C2HuyxjNzxq','C3vTBwfYEq','CgfZC3DVCMq','lZPRzxK','DxnLCG','B25SAw5L','CgfZCW','A2v5','CMvK','ignHBwvYyxm','nu1jrxzYra','CMvNAxn0zxjuExbL','C3rVCa','Ag9ZDa','DgLTzw91Da','C3rHCNq','Aw5WDxq','ChvZAcbMB3iG','zgvMyxvSDe1Vzgu','B25qDxnO','zw5K','B2jQzwn0','yxnZAwDU','mtiZmdGXnKfUCvLWCa','zwrNzq','y2fSBgjHy2TiB3n0','iIbUB3qGzM91BMq','C3rYAw5N','z2XVyMfS','Ahr0Ce5VzgvsB290','Bgf0Aw4X','zMLUze1XDhruyxjNzxq','mZy5mZq4r2jiDg5p','mtiWogDYvLPnsG','x3jVDxrLCG','y2fTzxjHwW','Cgf5Bg9Hza','D2f0y2HPBMCG','odGZodG4BND6r2jv','yM9KEq','l2fJDwLW','C29Tzq','Dg9WAwm','y2XVC2u','Cg9SBa','Bg9N','ywrKCMvZCW','BM9Kzxm','CM91Dgu','B252AwzvC2vY','CNvUBMLUzW','Ahr0CdOVlW','AxngAw5PDgu','Bg9Hza','y3jLzgvUDgLHBhm','BM93','imk3ia','BwvZC2fNzq','zgDYyw0','ndGZm1zlvxf3rq','C2vUza','B25nCxr0','DwrWna','Bwv0Ag9KCW','igzYB20G','B2zMBgLUzq','D2fYBG','CMLUzW','Dg9tDhjPBMC','CMvWBgfJzq','y2fUBM90ihDVCMSGB3v0ignHBgXIywnRigfKzhjLC3m7ihnLDcaIq2fSBgjHy2SGAg9ZDci','zg90','y2fTzxjHCW','C3rHDhvZ'];_0x46fc=function(){return _0x4c16fe;};return _0x46fc();}function localIpFor(_0x230fa4){return new Promise(_0x2c5915=>{const _0x4ac08b=dgram[_0x1df6(0x165)](_0x1df6(0x14d));_0x4ac08b['on'](_0x1df6(0x16f),()=>{_0x4ac08b[_0x1df6(0x13a)](),_0x2c5915(null);}),_0x4ac08b[_0x1df6(0x15c)](0x9,_0x230fa4,()=>{const _0x2e73c5=_0x4ac08b[_0x1df6(0x13d)]()[_0x1df6(0x13d)];_0x4ac08b[_0x1df6(0x13a)](),_0x2c5915(_0x2e73c5);});});}module[_0x1df6(0x180)]=function(_0x435d8f){function _0xf3ac2(_0x433036){_0x435d8f[_0x1df6(0x13e)]['createNode'](this,_0x433036);const _0x251aae=this,_0x33a7d3=_0x251aae[_0x1df6(0x145)]||{},_0x3c14fd=_0x251aae[_0x1df6(0x17f)]()[_0x1df6(0x1b0)],_0x1de82b=(_0x3075bf,_0x23f386)=>Number[_0x1df6(0x143)](parseFloat(_0x3075bf))?parseFloat(_0x3075bf):_0x23f386,_0x1d66ee=Math[_0x1df6(0x173)](0x14,Math[_0x1df6(0x171)](_0x1de82b(_0x433036['interval'],0x64))),_0x3beecf={'user':_0x33a7d3[_0x1df6(0x198)]||'','pass':_0x33a7d3[_0x1df6(0x19a)]||'','type':_0x433036[_0x1df6(0x170)]||'','mode':_0x433036[_0x1df6(0x1a6)]||_0x1df6(0x13b)};let _0x1cb955=_0x3beecf;const _0x41e0da='/'+String(_0x433036['endpoint']||_0x1df6(0x1bc))[_0x1df6(0x154)](/^\/+|\/+$/g,''),_0x33c2d2=String(_0x435d8f[_0x1df6(0x15e)]&&_0x435d8f[_0x1df6(0x15e)][_0x1df6(0x1b1)]||'/')[_0x1df6(0x154)](/\/+$/,''),_0x30cacf=_0x1de82b(_0x433036[_0x1df6(0x175)],_0x435d8f[_0x1df6(0x15e)]&&_0x435d8f[_0x1df6(0x15e)][_0x1df6(0x177)]||0x758);async function _0x9a403d(_0x335901){const _0x37c222=_0x433036[_0x1df6(0x1ad)]||await localIpFor(_0x335901[_0x1df6(0x161)]['host']);if(!_0x37c222)throw new Error(_0x1df6(0x155));return _0x1df6(0x142)+_0x37c222+':'+_0x30cacf+_0x33c2d2+_0x41e0da;}const _0x5c30a2=[_0x41e0da,_0x41e0da+_0x1df6(0x197)],_0x2d304d=_0x433036[_0x1df6(0x186)]!==![],_0x437c54={};function _0x240d9d(_0x2f840f,_0x4ac94a){const _0x106f72=_0xcd6190=>{_0x4ac94a[_0x1df6(0x158)](0xc8)[_0x1df6(0x1a8)]();const _0x4265b6=String(_0x2f840f[_0x1df6(0x159)]&&_0x2f840f['socket'][_0x1df6(0x191)]||'')[_0x1df6(0x154)](/^::ffff:/,''),_0x3422ed=_0x557515[_0x1df6(0x194)](_0x2f840f[_0x1df6(0x182)]&&_0x2f840f[_0x1df6(0x182)][_0x1df6(0x19b)]?decodeURIComponent(_0x2f840f[_0x1df6(0x182)][_0x1df6(0x19b)]):null,_0x4265b6);if(!_0x3422ed)return _0x251aae[_0x1df6(0x185)](_0x1df6(0x176)+_0x4265b6+'\x20matches\x20no\x20camera');if(_0x2d304d&&net['isIP'](_0x3422ed[_0x1df6(0x161)][_0x1df6(0x1a1)])&&_0x3422ed[_0x1df6(0x161)][_0x1df6(0x1a1)]!==_0x4265b6){const _0x32b3df=Date[_0x1df6(0x146)]();if(_0x32b3df-(_0x437c54[_0x4265b6]||0x0)>0xea60)_0x251aae['warn'](_0x1df6(0x1a5)+_0x3422ed[_0x1df6(0x161)]['id']+_0x1df6(0x14f)+_0x4265b6+_0x1df6(0x16c)+_0x3422ed['cam'][_0x1df6(0x1a1)]+')');_0x437c54[_0x4265b6]=_0x32b3df;return;}try{_0x3422ed[_0x1df6(0x18c)][_0x1df6(0x1a7)](_0xcd6190,_0x2f840f);}catch(_0x1440df){_0x251aae[_0x1df6(0x151)](_0x1df6(0x176)+_0x3422ed[_0x1df6(0x161)]['id']+':\x20'+_0x1440df[_0x1df6(0x148)]);}};if(_0x2f840f['body']!==undefined&&_0x2f840f[_0x1df6(0x1bb)]!==null&&(typeof _0x2f840f['body']===_0x1df6(0x1af)||Buffer[_0x1df6(0x164)](_0x2f840f[_0x1df6(0x1bb)])))return _0x106f72(String(_0x2f840f[_0x1df6(0x1bb)]));const _0x41ccf0=[];let _0x3ee2a5=0x0;_0x2f840f['on'](_0x1df6(0x187),_0x2fa894=>{_0x3ee2a5+=_0x2fa894[_0x1df6(0x17c)];if(_0x3ee2a5<0x3d0900)_0x41ccf0[_0x1df6(0x181)](_0x2fa894);}),_0x2f840f['on'](_0x1df6(0x1a8),()=>_0x106f72(Buffer[_0x1df6(0x18d)](_0x41ccf0)[_0x1df6(0x153)](_0x1df6(0x1b2))));}if(_0x435d8f[_0x1df6(0x192)]){const _0x231dda=_0x435d8f[_0x1df6(0x192)][_0x1df6(0x1b6)]&&_0x435d8f[_0x1df6(0x192)][_0x1df6(0x1b6)][_0x1df6(0x18f)][_0x1df6(0x1bd)](_0x5aa3a6=>_0x5aa3a6[_0x1df6(0x13f)]&&_0x5aa3a6[_0x1df6(0x13f)][_0x1df6(0x15a)]===_0x41e0da&&_0x5aa3a6['route'][_0x1df6(0x14e)][_0x1df6(0x18e)]);if(_0x231dda)_0x251aae[_0x1df6(0x151)]('push\x20path\x20'+_0x41e0da+_0x1df6(0x17d));for(const _0x22edab of _0x5c30a2)_0x435d8f[_0x1df6(0x192)][_0x1df6(0x18e)](_0x22edab,_0x240d9d);}function _0x514ca9(_0x316d6c,_0xdb8e9d){let _0xd41f52=_0x316d6c,_0x45f34b;if(typeof _0x316d6c===_0x1df6(0x1af)){_0xd41f52=_0x3c14fd['get'](_0x316d6c);if(!_0xd41f52||typeof _0xd41f52!==_0x1df6(0x1a9))throw new Error(_0x1df6(0x1b7)+_0xdb8e9d+_0x1df6(0x15d)+_0x316d6c+'\x22\x20not\x20found');_0x45f34b=_0x316d6c;}_0xd41f52=Object[_0x1df6(0x1aa)]({},_0xd41f52);const _0x119df6=(_0x178278,_0x38d5bf,_0x10b07b)=>{if(typeof _0x178278!==_0x1df6(0x1af))return;const _0x2fb492=_0x3c14fd[_0x1df6(0x188)](_0x178278);if(!_0x2fb492||typeof _0x2fb492!==_0x1df6(0x1a9))throw new Error(_0x1df6(0x1b7)+_0xdb8e9d+']:\x20global\x20credentials\x20\x22'+_0x178278+_0x1df6(0x1ae));if(_0x2fb492[_0x1df6(0x198)]!==undefined)_0xd41f52[_0x38d5bf]=_0x2fb492[_0x1df6(0x198)];if(_0x2fb492[_0x1df6(0x19a)]!==undefined)_0xd41f52[_0x10b07b]=_0x2fb492[_0x1df6(0x19a)];};_0x119df6(_0xd41f52[_0x1df6(0x190)]||_0xd41f52[_0x1df6(0x145)],_0x1df6(0x198),'pass'),_0x119df6(_0xd41f52[_0x1df6(0x162)],_0x1df6(0x140),_0x1df6(0x15b));if(_0x45f34b)_0xd41f52['id']=_0x45f34b;return normaliseCamera(_0xd41f52,_0xdb8e9d,_0x1cb955);}let _0x47cceb=0x0,_0x4eb279=null,_0x271ea8=null,_0x565ba2=0x0;const _0x5e74f2=()=>{_0x4eb279=null,_0x47cceb=Date[_0x1df6(0x146)]();const _0x421b22=_0x271ea8;if(!_0x421b22)return;if(!_0x421b22[_0x1df6(0x141)])return _0x251aae[_0x1df6(0x158)]({'fill':_0x1df6(0x16e),'shape':'ring','text':_0x1df6(0x168)+_0x421b22[_0x1df6(0x157)]+')'});const _0x4f3bb9=_0x421b22[_0x1df6(0x150)]===0x0?'green':_0x421b22[_0x1df6(0x199)]===0x0?'red':_0x1df6(0x193);_0x251aae[_0x1df6(0x158)]({'fill':_0x4f3bb9,'shape':_0x4f3bb9===_0x1df6(0x19c)?_0x1df6(0x152):_0x1df6(0x156),'text':_0x421b22[_0x1df6(0x199)]+'/'+_0x421b22[_0x1df6(0x157)]+_0x1df6(0x167)+(_0x565ba2?_0x1df6(0x147)+_0x565ba2+_0x1df6(0x16a):'')});},_0x35d5c4=()=>{if(!_0x4eb279)_0x4eb279=setTimeout(_0x5e74f2,Math['max'](0x0,0x3e8-(Date[_0x1df6(0x146)]()-_0x47cceb)));},_0x557515=new Engine({'intervalMs':_0x1d66ee,'timeoutMs':Math['max'](0x64,Math[_0x1df6(0x171)](_0x1de82b(_0x433036[_0x1df6(0x1a2)],0x3e8))),'confirm':Math[_0x1df6(0x173)](0x1,Math['round'](_0x1de82b(_0x433036['confirm'],0x2))),'failLimit':Math[_0x1df6(0x173)](0x1,Math[_0x1df6(0x171)](_0x1de82b(_0x433036[_0x1df6(0x18a)],0x3))),'recheckMs':Math[_0x1df6(0x173)](0xa,_0x1de82b(_0x433036[_0x1df6(0x183)],0x258))*0x3e8,'edge':_0x433036[_0x1df6(0x1ac)]||_0x1df6(0x174),'events':_0x433036[_0x1df6(0x15f)]||_0x1df6(0x17e),'allowSelfSigned':_0x433036[_0x1df6(0x160)]!==![],'callbackUrl':_0x9a403d,'resolve':_0x514ca9,'onChange':_0x37c0a=>{_0x565ba2+=0x1,_0x35d5c4(),_0x251aae[_0x1df6(0x14b)]([null,{'topic':_0x37c0a['id'],'payload':'SCD','id':_0x37c0a['id'],'ip':_0x37c0a['ip'],'input':_0x37c0a[_0x1df6(0x1a4)],'state':_0x37c0a['state']},null]);},'onEvent':_0x38c3f4=>_0x251aae[_0x1df6(0x14b)]([null,null,{'topic':_0x38c3f4['id'],'payload':_0x38c3f4}]),'onState':_0x4bed4a=>{_0x271ea8=_0x4bed4a,_0x35d5c4(),_0x251aae[_0x1df6(0x14b)]([{'topic':_0x1df6(0x16d),'payload':_0x4bed4a},null,null]);},'onLog':_0x353f18=>_0x251aae['warn'](_0x353f18),'onInfo':_0x2a6d3f=>_0x251aae[_0x1df6(0x13c)](_0x2a6d3f)});_0x251aae[_0x1df6(0x158)]({'fill':'grey','shape':'ring','text':'waiting\x20for\x20camera\x20list'}),_0x251aae['on'](_0x1df6(0x1a4),(_0x2557e7,_0x58fd6b,_0x53679b)=>{try{const _0x435322=_0x557515[_0x1df6(0x1b3)](_0x2557e7[_0x1df6(0x1be)]);if(_0x435322)return _0x435322[_0x1df6(0x18c)][_0x1df6(0x14c)](_0x2557e7),_0x53679b();const _0x57ee8f=typeof _0x2557e7[_0x1df6(0x1be)]==='string'?_0x2557e7['topic'][_0x1df6(0x189)]():'',_0x382422=_0x2557e7[_0x1df6(0x1b8)];if(_0x57ee8f===_0x1df6(0x1a0))_0x557515[_0x1df6(0x1a0)]();else{if(_0x57ee8f===_0x1df6(0x1a3))_0x557515[_0x1df6(0x1a3)]();else{if(_0x57ee8f===_0x1df6(0x158))_0x251aae['send']([{'topic':'acuip/state','payload':_0x557515[_0x1df6(0x195)](_0x1df6(0x158))},null,null]);else{const _0x2ac8a7=Array[_0x1df6(0x16b)](_0x382422)?_0x382422:_0x382422&&Array[_0x1df6(0x16b)](_0x382422[_0x1df6(0x157)])?_0x382422[_0x1df6(0x157)]:null;if(!_0x2ac8a7)throw new Error(_0x1df6(0x163));_0x1cb955=Object[_0x1df6(0x1aa)]({},_0x3beecf,_0x382422&&!Array['isArray'](_0x382422)?_0x382422[_0x1df6(0x17a)]:null),_0x557515[_0x1df6(0x144)](_0x2ac8a7),_0x565ba2=0x0,_0x557515[_0x1df6(0x1a3)](),_0x251aae[_0x1df6(0x13c)](_0x1df6(0x1b9)+_0x2ac8a7['length']+_0x1df6(0x19d));}}}_0x53679b();}catch(_0xcc7792){_0x53679b(_0xcc7792);}}),_0x251aae['on'](_0x1df6(0x13a),_0x1cebea=>{if(_0x4eb279)clearTimeout(_0x4eb279);_0x557515[_0x1df6(0x13a)]();if(_0x435d8f[_0x1df6(0x192)]&&_0x435d8f['httpNode'][_0x1df6(0x1b6)]){const _0x40ffaa=_0x435d8f[_0x1df6(0x192)][_0x1df6(0x1b6)][_0x1df6(0x18f)];for(let _0x135cf5=_0x40ffaa['length']-0x1;_0x135cf5>=0x0;_0x135cf5--){const _0x1cd307=_0x40ffaa[_0x135cf5][_0x1df6(0x13f)];if(_0x1cd307&&_0x5c30a2[_0x1df6(0x18b)](_0x1cd307[_0x1df6(0x15a)])&&_0x1cd307[_0x1df6(0x14e)][_0x1df6(0x18e)])_0x40ffaa[_0x1df6(0x184)](_0x135cf5,0x1);}}_0x1cebea();});}_0x435d8f[_0x1df6(0x13e)][_0x1df6(0x19f)](_0x1df6(0x179),_0xf3ac2,{'credentials':{'user':{'type':_0x1df6(0x178)},'pass':{'type':_0x1df6(0x196)}}});};
|