Skip to content

Commit 986bfb0

Browse files
feat: rewrite (#28)
BREAKING CHANGE: complete rewrite
1 parent c72be2a commit 986bfb0

31 files changed

+7860
-2936
lines changed

.node-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
12.4.0
1+
12.11.0

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
12.4.0
1+
12.11.0

README.md

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,57 @@
1-
<h1 align="center" style="border-bottom: none;">onvif-probe-rx</h1>
2-
<h3 align="center">Continous monitoring of ONVIF IP cameras.</h3>
1+
<h1 align="center" style="border-bottom: none;">camera-probe</h1>
2+
<h3 align="center">Realtime scanning and discovery of networked cameras.</h3>
33
<p align="center">
4-
<a href="https://circleci.com/gh/patrickmichalina/onvif-probe-rx">
5-
<img alt="circeci" src="https://circleci.com/gh/patrickmichalina/onvif-probe-rx.svg?style=shield">
4+
<a href="https://circleci.com/gh/patrickmichalina/camera-probe">
5+
<img alt="circeci" src="https://circleci.com/gh/patrickmichalina/camera-probe.svg?style=shield">
66
</a>
7-
<!-- <a href="https://codeclimate.com/github/patrickmichalina/onvif-probe-rx/test_coverage">
7+
<a href="https://codeclimate.com/github/patrickmichalina/camera-probe/test_coverage">
88
<img src="https://api.codeclimate.com/v1/badges/f40c9fff2927e49c3ea2/test_coverage" />
99
</a>
10-
<a href="https://codeclimate.com/github/patrickmichalina/onvif-probe-rx/maintainability">
10+
<a href="https://codeclimate.com/github/patrickmichalina/camera-probe/maintainability">
1111
<img alt="codeclimate" src="https://api.codeclimate.com/v1/badges/f40c9fff2927e49c3ea2/maintainability">
12-
</a> -->
12+
</a>
1313
</p>
1414
<p align="center">
1515
<a href="https://greenkeeper.io">
1616
<img alt="greenkeeper" src="https://badges.greenkeeper.io/semantic-release/semantic-release.svg">
1717
</a>
18-
<a href="https://david-dm.org/patrickmichalina/onvif-probe-rx">
19-
<img alt="greenkeeper" src="https://david-dm.org/patrickmichalina/onvif-probe-rx/status.svg">
18+
<a href="https://david-dm.org/patrickmichalina/camera-probe">
19+
<img alt="greenkeeper" src="https://david-dm.org/patrickmichalina/camera-probe/status.svg">
2020
</a>
21-
<a href="https://david-dm.org/patrickmichalina/onvif-probe-rx?type=dev">
22-
<img alt="greenkeeper" src="https://david-dm.org/patrickmichalina/onvif-probe-rx/dev-status.svg">
21+
<a href="https://david-dm.org/patrickmichalina/camera-probe?type=dev">
22+
<img alt="greenkeeper" src="https://david-dm.org/patrickmichalina/camera-probe/dev-status.svg">
2323
</a>
2424
</p>
2525
<p align="center">
2626
<a href="https://github.com/semantic-release/semantic-release">
2727
<img alt="semantic-release" src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg">
2828
</a>
29-
<a href="https://www.npmjs.com/package/onvif-probe-rx">
30-
<img alt="npm latest version" src="https://img.shields.io/npm/v/onvif-probe-rx/latest.svg">
29+
<a href="https://www.npmjs.com/package/camera-probe">
30+
<img alt="npm latest version" src="https://img.shields.io/npm/v/camera-probe/latest.svg">
3131
</a>
3232
</p>
3333

34-
3534
## Installation
36-
This package is designed to be run in a Node environment. For the best developer experience use Typescript.
35+
This package is designed to be run in Node. For the best developer experience use Typescript.
3736
```sh
38-
$ npm i onvif-probe-rx
37+
$ npm i camera-probe
3938
```
4039

4140
## CLI
4241
For CLI usage its easier to install globally like so:
4342
```sh
44-
$ npm i -g onvif-probe-rx
43+
$ npm i -g camera-probe
4544

4645
// starting listening
47-
$ onvif-probe
46+
$ camera-probe
4847
```
4948

5049
## Usage
5150
Starts probing the network using the default configuration.
5251
```ts
53-
import { startProbingONVIFDevices } from 'onvif-probe-rx'
52+
import { devices$ } from 'camera-probe'
5453

55-
startProbingONVIFDevices()
56-
.subscribe(console.info)
54+
devices$().subscribe(console.info)
5755
```
5856

5957
```js
@@ -98,9 +96,9 @@ startProbingONVIFDevices()
9896
If you'd like to tweak default settings feel free to override in the `.run()` method.
9997

10098
```ts
101-
import { probeONVIFDevices } from 'onvif-probe-rx'
99+
import { probe } from 'camera-probe'
102100

103-
probeONVIFDevices()
101+
probe()
104102
.run({
105103
PORTS: [3702],
106104
PROBE_NETWORK_TIMEOUT_MS: 20000
@@ -111,18 +109,16 @@ probeONVIFDevices()
111109
## Default Configuration
112110
```ts
113111
export const DEFAULT_CONFIG: IProbeConfig = {
114-
PORTS: [139, 445, 1124, 3702],
115-
IP_SCANNER: {
116-
ENABLED: true,
117-
IP_ADDRESSES: [],
118-
PREFIXES: []
112+
DOM_PARSER: new DOMParser(),
113+
PORTS: {
114+
UPNP: [1900],
115+
WS_DISCOVERY: [3702]
119116
},
120117
MULTICAST_ADDRESS: '239.255.255.250',
121118
PROBE_SAMPLE_TIME_MS: 2000,
122-
PROBE_SAMPLE_START_DELAY_TIME_MS: 0,
123119
PROBE_NETWORK_TIMEOUT_MS: 2000 * 1.5,
120+
PROBE_SAMPLE_START_DELAY_TIME_MS: 0,
124121
ONVIF_DEVICES: ['NetworkVideoTransmitter', 'Device', 'NetworkVideoDisplay'],
125-
DOM_PARSER: new DOMParser(),
126122
NOT_FOUND_STRING: 'unknown'
127123
}
128124
```

circle.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
defaults: &defaults
22
docker:
3-
- image: circleci/node:11.13.0
3+
- image: circleci/node:12.9.1
44

55
version: 2
66
jobs:
@@ -20,6 +20,9 @@ jobs:
2020
- run:
2121
name: Lint
2222
command: npm run lint
23+
- run:
24+
name: Unit Test
25+
command: npm test
2326
- run:
2427
name: Rollup
2528
command: npm run rollup

cli.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
import { writeFileSync, chmodSync } from 'fs'
1+
import { writeFileSync, chmodSync, existsSync, mkdirSync } from 'fs'
22
import { resolve } from 'path'
3-
import { ensureDirSync } from 'fs-extra'
43

54
const dir = resolve('dist')
6-
const outPath = resolve(dir, 'onvif-probe')
5+
const outPath = resolve(dir, 'camera-probe')
76

8-
ensureDirSync(dir)
9-
writeFileSync(outPath, '#!/usr/bin/env node\nrequire(\'../\').startProbingONVIFDevicesCli()')
7+
// tslint:disable-next-line: no-if-statement
8+
if (!existsSync(dir)){
9+
mkdirSync(dir)
10+
}
11+
12+
writeFileSync(outPath, '#!/usr/bin/env node\nrequire(\'../\').startCli()')
1013
chmodSync(outPath, '755')

0 commit comments

Comments
 (0)