node-hp-scan-to 1.3.1 → 1.4.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/README.md +76 -15
- package/dist/Destination.js.map +1 -1
- package/dist/DeviceCapabilities.d.ts +4 -0
- package/dist/DeviceCapabilities.js.map +1 -1
- package/dist/DiscoveryTree.js.map +1 -1
- package/dist/Event.js +2 -2
- package/dist/Event.js.map +1 -1
- package/dist/EventTable.js.map +1 -1
- package/dist/HPApi.js.map +1 -1
- package/dist/InputSource.d.ts +4 -0
- package/dist/InputSource.js +9 -0
- package/dist/InputSource.js.map +1 -0
- package/dist/Job.d.ts +2 -0
- package/dist/Job.js +2 -2
- package/dist/Job.js.map +1 -1
- package/dist/JpegUtil.js +1 -1
- package/dist/JpegUtil.js.map +1 -1
- package/dist/PathHelper.d.ts +4 -3
- package/dist/PathHelper.js +28 -13
- package/dist/PathHelper.js.map +1 -1
- package/dist/ScanCaps.d.ts +18 -0
- package/dist/ScanCaps.js +22 -0
- package/dist/ScanCaps.js.map +1 -1
- package/dist/ScanContent.js.map +1 -1
- package/dist/ScanJobManifest.js.map +1 -1
- package/dist/ScanJobSettings.d.ts +4 -1
- package/dist/ScanJobSettings.js +19 -8
- package/dist/ScanJobSettings.js.map +1 -1
- package/dist/ScanStatus.d.ts +2 -1
- package/dist/ScanStatus.js +3 -2
- package/dist/ScanStatus.js.map +1 -1
- package/dist/WalkupScanDestination.js +2 -2
- package/dist/WalkupScanDestination.js.map +1 -1
- package/dist/WalkupScanDestinations.js +1 -1
- package/dist/WalkupScanDestinations.js.map +1 -1
- package/dist/WalkupScanManifest.js.map +1 -1
- package/dist/WalkupScanToCompCaps.js.map +1 -1
- package/dist/WalkupScanToCompDestination.js +2 -2
- package/dist/WalkupScanToCompDestination.js.map +1 -1
- package/dist/WalkupScanToCompDestinations.js +1 -1
- package/dist/WalkupScanToCompDestinations.js.map +1 -1
- package/dist/WalkupScanToCompEvent.js.map +1 -1
- package/dist/WalkupScanToCompManifest.js.map +1 -1
- package/dist/index.js +26 -5
- package/dist/index.js.map +1 -1
- package/dist/listening.js.map +1 -1
- package/dist/readDeviceCapabilities.js +6 -1
- package/dist/readDeviceCapabilities.js.map +1 -1
- package/dist/scanProcessing.d.ts +6 -1
- package/dist/scanProcessing.js +61 -21
- package/dist/scanProcessing.js.map +1 -1
- package/dist/test/JpegUtil.test.js +10 -8
- package/dist/test/JpegUtil.test.js.map +1 -1
- package/dist/test/PathHelper.test.js +10 -11
- package/dist/test/PathHelper.test.js.map +1 -1
- package/dist/test/ScanCaps.test.d.ts +1 -0
- package/dist/test/ScanCaps.test.js +76 -0
- package/dist/test/ScanCaps.test.js.map +1 -0
- package/dist/test/ScanJobSettings.test.js +9 -3
- package/dist/test/ScanJobSettings.test.js.map +1 -1
- package/dist/test/scanProcessing.test.d.ts +1 -0
- package/dist/test/scanProcessing.test.js +103 -0
- package/dist/test/scanProcessing.test.js.map +1 -0
- package/package.json +7 -7
- package/src/Destination.ts +1 -1
- package/src/DeviceCapabilities.ts +4 -0
- package/src/DiscoveryTree.ts +1 -1
- package/src/Event.ts +4 -4
- package/src/EventTable.ts +1 -1
- package/src/HPApi.ts +19 -19
- package/src/InputSource.ts +4 -0
- package/src/Job.ts +19 -7
- package/src/JpegUtil.ts +18 -14
- package/src/PathHelper.ts +48 -20
- package/src/ScanCaps.ts +53 -1
- package/src/ScanContent.ts +1 -1
- package/src/ScanJobManifest.ts +3 -2
- package/src/ScanJobSettings.ts +23 -9
- package/src/ScanStatus.ts +6 -3
- package/src/WalkupScanDestination.ts +9 -5
- package/src/WalkupScanDestinations.ts +9 -4
- package/src/WalkupScanManifest.ts +3 -3
- package/src/WalkupScanToCompCaps.ts +2 -2
- package/src/WalkupScanToCompDestination.ts +15 -5
- package/src/WalkupScanToCompDestinations.ts +5 -4
- package/src/WalkupScanToCompEvent.ts +1 -1
- package/src/WalkupScanToCompManifest.ts +3 -3
- package/src/index.ts +90 -33
- package/src/listening.ts +14 -15
- package/src/readDeviceCapabilities.ts +12 -6
- package/src/scanProcessing.ts +129 -52
- package/dist/fixJpegSize.d.ts +0 -19
- package/dist/fixJpegSize.js +0 -292
- package/dist/fixJpegSize.js.map +0 -1
- package/dist/models/Destination.d.ts +0 -8
- package/dist/models/Destination.js +0 -68
- package/dist/models/Destination.js.map +0 -1
- package/dist/models/DiscoveryTree.d.ts +0 -16
- package/dist/models/DiscoveryTree.js +0 -38
- package/dist/models/DiscoveryTree.js.map +0 -1
- package/dist/models/Event.d.ts +0 -21
- package/dist/models/Event.js +0 -32
- package/dist/models/Event.js.map +0 -1
- package/dist/models/EventTable.d.ts +0 -16
- package/dist/models/EventTable.js +0 -33
- package/dist/models/EventTable.js.map +0 -1
- package/dist/models/Job.d.ts +0 -37
- package/dist/models/Job.js +0 -78
- package/dist/models/Job.js.map +0 -1
- package/dist/models/ScanCaps.d.ts +0 -7
- package/dist/models/ScanCaps.js +0 -17
- package/dist/models/ScanCaps.js.map +0 -1
- package/dist/models/ScanJobManifest.d.ts +0 -23
- package/dist/models/ScanJobManifest.js +0 -24
- package/dist/models/ScanJobManifest.js.map +0 -1
- package/dist/models/ScanJobSettings.d.ts +0 -8
- package/dist/models/ScanJobSettings.js +0 -56
- package/dist/models/ScanJobSettings.js.map +0 -1
- package/dist/models/WalkupScanDestination.d.ts +0 -22
- package/dist/models/WalkupScanDestination.js +0 -38
- package/dist/models/WalkupScanDestination.js.map +0 -1
- package/dist/models/WalkupScanDestinations.d.ts +0 -12
- package/dist/models/WalkupScanDestinations.js +0 -30
- package/dist/models/WalkupScanDestinations.js.map +0 -1
- package/dist/models/WalkupScanManifest.d.ts +0 -23
- package/dist/models/WalkupScanManifest.js +0 -25
- package/dist/models/WalkupScanManifest.js.map +0 -1
- package/dist/models/WalkupScanToCompCaps.d.ts +0 -12
- package/dist/models/WalkupScanToCompCaps.js +0 -20
- package/dist/models/WalkupScanToCompCaps.js.map +0 -1
- package/dist/models/WalkupScanToCompDestination.d.ts +0 -22
- package/dist/models/WalkupScanToCompDestination.js +0 -38
- package/dist/models/WalkupScanToCompDestination.js.map +0 -1
- package/dist/models/WalkupScanToCompDestinations.d.ts +0 -12
- package/dist/models/WalkupScanToCompDestinations.js +0 -30
- package/dist/models/WalkupScanToCompDestinations.js.map +0 -1
- package/dist/models/WalkupScanToCompEvent.d.ts +0 -11
- package/dist/models/WalkupScanToCompEvent.js +0 -20
- package/dist/models/WalkupScanToCompEvent.js.map +0 -1
- package/dist/models/WalkupScanToCompManifest.d.ts +0 -23
- package/dist/models/WalkupScanToCompManifest.js +0 -25
- package/dist/models/WalkupScanToCompManifest.js.map +0 -1
- package/dist/scanProcess.d.ts +0 -19
- package/dist/scanProcess.js +0 -292
- package/dist/scanProcess.js.map +0 -1
- package/dist/src/Destination.d.ts +0 -8
- package/dist/src/Destination.js +0 -68
- package/dist/src/Destination.js.map +0 -1
- package/dist/src/DiscoveryTree.d.ts +0 -16
- package/dist/src/DiscoveryTree.js +0 -38
- package/dist/src/DiscoveryTree.js.map +0 -1
- package/dist/src/Event.d.ts +0 -21
- package/dist/src/Event.js +0 -32
- package/dist/src/Event.js.map +0 -1
- package/dist/src/EventTable.d.ts +0 -16
- package/dist/src/EventTable.js +0 -33
- package/dist/src/EventTable.js.map +0 -1
- package/dist/src/HPApi.d.ts +0 -50
- package/dist/src/HPApi.js +0 -454
- package/dist/src/HPApi.js.map +0 -1
- package/dist/src/Job.d.ts +0 -37
- package/dist/src/Job.js +0 -78
- package/dist/src/Job.js.map +0 -1
- package/dist/src/JpegUtil.d.ts +0 -26
- package/dist/src/JpegUtil.js +0 -229
- package/dist/src/JpegUtil.js.map +0 -1
- package/dist/src/KnownShortcut.d.ts +0 -1
- package/dist/src/KnownShortcut.js +0 -3
- package/dist/src/KnownShortcut.js.map +0 -1
- package/dist/src/PathHelper.d.ts +0 -6
- package/dist/src/PathHelper.js +0 -52
- package/dist/src/PathHelper.js.map +0 -1
- package/dist/src/ScanCaps.d.ts +0 -7
- package/dist/src/ScanCaps.js +0 -17
- package/dist/src/ScanCaps.js.map +0 -1
- package/dist/src/ScanJobManifest.d.ts +0 -23
- package/dist/src/ScanJobManifest.js +0 -24
- package/dist/src/ScanJobManifest.js.map +0 -1
- package/dist/src/ScanJobSettings.d.ts +0 -8
- package/dist/src/ScanJobSettings.js +0 -56
- package/dist/src/ScanJobSettings.js.map +0 -1
- package/dist/src/ScanStatus.d.ts +0 -19
- package/dist/src/ScanStatus.js +0 -35
- package/dist/src/ScanStatus.js.map +0 -1
- package/dist/src/WalkupScanDestination.d.ts +0 -22
- package/dist/src/WalkupScanDestination.js +0 -38
- package/dist/src/WalkupScanDestination.js.map +0 -1
- package/dist/src/WalkupScanDestinations.d.ts +0 -12
- package/dist/src/WalkupScanDestinations.js +0 -30
- package/dist/src/WalkupScanDestinations.js.map +0 -1
- package/dist/src/WalkupScanManifest.d.ts +0 -23
- package/dist/src/WalkupScanManifest.js +0 -25
- package/dist/src/WalkupScanManifest.js.map +0 -1
- package/dist/src/WalkupScanToCompCaps.d.ts +0 -12
- package/dist/src/WalkupScanToCompCaps.js +0 -20
- package/dist/src/WalkupScanToCompCaps.js.map +0 -1
- package/dist/src/WalkupScanToCompDestination.d.ts +0 -22
- package/dist/src/WalkupScanToCompDestination.js +0 -38
- package/dist/src/WalkupScanToCompDestination.js.map +0 -1
- package/dist/src/WalkupScanToCompDestinations.d.ts +0 -12
- package/dist/src/WalkupScanToCompDestinations.js +0 -30
- package/dist/src/WalkupScanToCompDestinations.js.map +0 -1
- package/dist/src/WalkupScanToCompEvent.d.ts +0 -11
- package/dist/src/WalkupScanToCompEvent.js +0 -20
- package/dist/src/WalkupScanToCompEvent.js.map +0 -1
- package/dist/src/WalkupScanToCompManifest.d.ts +0 -23
- package/dist/src/WalkupScanToCompManifest.js +0 -25
- package/dist/src/WalkupScanToCompManifest.js.map +0 -1
- package/dist/src/delay.d.ts +0 -1
- package/dist/src/delay.js +0 -10
- package/dist/src/delay.js.map +0 -1
package/dist/PathHelper.js
CHANGED
|
@@ -5,45 +5,60 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const path_1 = __importDefault(require("path"));
|
|
7
7
|
const dateformat_1 = __importDefault(require("dateformat"));
|
|
8
|
-
const { promises: Fs } = require("fs");
|
|
9
|
-
const fs = require("fs");
|
|
10
8
|
const os_1 = __importDefault(require("os"));
|
|
9
|
+
const fs_1 = require("fs");
|
|
10
|
+
const fs_2 = __importDefault(require("fs"));
|
|
11
11
|
class PathHelper {
|
|
12
|
-
static getFileForPage(folder, scanCount, currentPageNumber, filePattern, extension) {
|
|
12
|
+
static getFileForPage(folder, scanCount, currentPageNumber, filePattern, extension, date) {
|
|
13
13
|
if (filePattern) {
|
|
14
|
-
return path_1.default.join(folder, `${(0, dateformat_1.default)(
|
|
14
|
+
return path_1.default.join(folder, `${(0, dateformat_1.default)(date, filePattern)}.${extension}`);
|
|
15
15
|
}
|
|
16
|
-
return path_1.default.join(folder, `scan${scanCount}_page${currentPageNumber}.${extension}`);
|
|
16
|
+
return this.makeUnique(path_1.default.join(folder, `scan${scanCount}_page${currentPageNumber}.${extension}`), date);
|
|
17
17
|
}
|
|
18
|
-
static
|
|
19
|
-
if (
|
|
18
|
+
static async getNextScanNumber(folder, currentScanCount, filePattern) {
|
|
19
|
+
if (filePattern) {
|
|
20
|
+
return currentScanCount++;
|
|
21
|
+
}
|
|
22
|
+
const files = await fs_1.promises.readdir(folder);
|
|
23
|
+
for (let i = currentScanCount + 1; i < Number.MAX_SAFE_INTEGER; i++) {
|
|
24
|
+
const currentScanCountProbe = `scan${i}`;
|
|
25
|
+
if (!(files.some((x) => x.startsWith(currentScanCountProbe)) &&
|
|
26
|
+
files.some((x) => x.startsWith(currentScanCountProbe + "_") ||
|
|
27
|
+
files.some((x) => x.startsWith(currentScanCountProbe + "."))))) {
|
|
28
|
+
return i;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return Promise.reject(`Unable to find the valid scan number in folder ${folder}`);
|
|
32
|
+
}
|
|
33
|
+
static makeUnique(filePath, date) {
|
|
34
|
+
if (!fs_2.default.existsSync(filePath)) {
|
|
20
35
|
return filePath;
|
|
21
36
|
}
|
|
22
37
|
let parsed = path_1.default.parse(filePath);
|
|
23
|
-
let tryName = `${parsed.dir}${path_1.default.sep}${parsed.name}${(0, dateformat_1.default)(
|
|
24
|
-
if (!
|
|
38
|
+
let tryName = `${parsed.dir}${path_1.default.sep}${parsed.name}_${(0, dateformat_1.default)(date, "yyyymmdd")}${parsed.ext}`;
|
|
39
|
+
if (!fs_2.default.existsSync(tryName)) {
|
|
25
40
|
return tryName;
|
|
26
41
|
}
|
|
27
42
|
parsed = path_1.default.parse(tryName);
|
|
28
43
|
let i = "a";
|
|
29
44
|
while (i <= "z") {
|
|
30
45
|
tryName = `${parsed.dir}${path_1.default.sep}${parsed.name}_${i}${parsed.ext}`;
|
|
31
|
-
if (!
|
|
46
|
+
if (!fs_2.default.existsSync(tryName)) {
|
|
32
47
|
return tryName;
|
|
33
48
|
}
|
|
34
49
|
i = String.fromCharCode(i.charCodeAt(0) + 1);
|
|
35
50
|
}
|
|
36
51
|
throw new Error(`Can not create unique file: ${filePath} iterated until: ${tryName}`);
|
|
37
52
|
}
|
|
38
|
-
static getFileForScan(folder, scanCount, filePattern, extension) {
|
|
53
|
+
static getFileForScan(folder, scanCount, filePattern, extension, date) {
|
|
39
54
|
if (filePattern) {
|
|
40
|
-
return path_1.default.join(folder, `${(0, dateformat_1.default)(
|
|
55
|
+
return path_1.default.join(folder, `${(0, dateformat_1.default)(date, filePattern)}.${extension}`);
|
|
41
56
|
}
|
|
42
57
|
return path_1.default.join(folder, `scan${scanCount}.${extension}`);
|
|
43
58
|
}
|
|
44
59
|
static async getOutputFolder(folder) {
|
|
45
60
|
if (typeof folder !== "string") {
|
|
46
|
-
return
|
|
61
|
+
return fs_1.promises.mkdtemp(path_1.default.join(os_1.default.tmpdir(), "scan-to-pc"));
|
|
47
62
|
}
|
|
48
63
|
return folder;
|
|
49
64
|
}
|
package/dist/PathHelper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PathHelper.js","sourceRoot":"","sources":["../src/PathHelper.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,4DAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"PathHelper.js","sourceRoot":"","sources":["../src/PathHelper.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,4DAAoC;AACpC,4CAAoB;AACpB,2BAAoC;AACpC,4CAAoB;AAEpB,MAAqB,UAAU;IAC7B,MAAM,CAAC,cAAc,CACnB,MAAc,EACd,SAAiB,EACjB,iBAAyB,EACzB,WAA+B,EAC/B,SAAiB,EACjB,IAAU;QAEV,IAAI,WAAW,EAAE;YACf,OAAO,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAA,oBAAU,EAAC,IAAI,EAAE,WAAW,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;SAC3E;QAED,OAAO,IAAI,CAAC,UAAU,CACpB,cAAI,CAAC,IAAI,CACP,MAAM,EACN,OAAO,SAAS,QAAQ,iBAAiB,IAAI,SAAS,EAAE,CACzD,EACD,IAAI,CACL,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAC5B,MAAc,EACd,gBAAwB,EACxB,WAA+B;QAE/B,IAAI,WAAW,EAAE;YACf,OAAO,gBAAgB,EAAE,CAAC;SAC3B;QACD,MAAM,KAAK,GAAG,MAAM,aAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,gBAAgB,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE;YACnE,MAAM,qBAAqB,GAAG,OAAO,CAAC,EAAE,CAAC;YACzC,IACE,CAAC,CACC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;gBACtD,KAAK,CAAC,IAAI,CACR,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,UAAU,CAAC,qBAAqB,GAAG,GAAG,CAAC;oBACzC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,qBAAqB,GAAG,GAAG,CAAC,CAAC,CAC/D,CACF,EACD;gBACA,OAAO,CAAC,CAAC;aACV;SACF;QACD,OAAO,OAAO,CAAC,MAAM,CACnB,kDAAkD,MAAM,EAAE,CAC3D,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,QAAgB,EAAE,IAAU;QAC5C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC5B,OAAO,QAAQ,CAAC;SACjB;QAED,IAAI,MAAM,GAAG,cAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,cAAI,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,IAAA,oBAAU,EAChE,IAAI,EACJ,UAAU,CACX,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC3B,OAAO,OAAO,CAAC;SAChB;QAED,MAAM,GAAG,cAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,CAAC;QACZ,OAAO,CAAC,IAAI,GAAG,EAAE;YACf,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,cAAI,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YACrE,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBAC3B,OAAO,OAAO,CAAC;aAChB;YACD,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC9C;QACD,MAAM,IAAI,KAAK,CACb,+BAA+B,QAAQ,oBAAoB,OAAO,EAAE,CACrE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,cAAc,CACnB,MAAc,EACd,SAAiB,EACjB,WAA+B,EAC/B,SAAiB,EACjB,IAAU;QAEV,IAAI,WAAW,EAAE;YACf,OAAO,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAA,oBAAU,EAAC,IAAI,EAAE,WAAW,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;SAC3E;QAED,OAAO,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAA2B;QACtD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,OAAO,aAAE,CAAC,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;SACzD;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAnGD,6BAmGC","sourcesContent":["import path from \"path\";\nimport dateformat from \"dateformat\";\nimport os from \"os\";\nimport { promises as Fs } from \"fs\";\nimport fs from \"fs\";\n\nexport default class PathHelper {\n static getFileForPage(\n folder: string,\n scanCount: number,\n currentPageNumber: number,\n filePattern: string | undefined,\n extension: string,\n date: Date,\n ): string {\n if (filePattern) {\n return path.join(folder, `${dateformat(date, filePattern)}.${extension}`);\n }\n\n return this.makeUnique(\n path.join(\n folder,\n `scan${scanCount}_page${currentPageNumber}.${extension}`,\n ),\n date,\n );\n }\n\n static async getNextScanNumber(\n folder: string,\n currentScanCount: number,\n filePattern: string | undefined,\n ): Promise<number> {\n if (filePattern) {\n return currentScanCount++;\n }\n const files = await Fs.readdir(folder);\n for (let i = currentScanCount + 1; i < Number.MAX_SAFE_INTEGER; i++) {\n const currentScanCountProbe = `scan${i}`;\n if (\n !(\n files.some((x) => x.startsWith(currentScanCountProbe)) &&\n files.some(\n (x) =>\n x.startsWith(currentScanCountProbe + \"_\") ||\n files.some((x) => x.startsWith(currentScanCountProbe + \".\")),\n )\n )\n ) {\n return i;\n }\n }\n return Promise.reject(\n `Unable to find the valid scan number in folder ${folder}`,\n );\n }\n\n static makeUnique(filePath: string, date: Date): string {\n if (!fs.existsSync(filePath)) {\n return filePath;\n }\n\n let parsed = path.parse(filePath);\n let tryName = `${parsed.dir}${path.sep}${parsed.name}_${dateformat(\n date,\n \"yyyymmdd\",\n )}${parsed.ext}`;\n if (!fs.existsSync(tryName)) {\n return tryName;\n }\n\n parsed = path.parse(tryName);\n let i = \"a\";\n while (i <= \"z\") {\n tryName = `${parsed.dir}${path.sep}${parsed.name}_${i}${parsed.ext}`;\n if (!fs.existsSync(tryName)) {\n return tryName;\n }\n i = String.fromCharCode(i.charCodeAt(0) + 1);\n }\n throw new Error(\n `Can not create unique file: ${filePath} iterated until: ${tryName}`,\n );\n }\n\n static getFileForScan(\n folder: string,\n scanCount: number,\n filePattern: string | undefined,\n extension: string,\n date: Date,\n ): string {\n if (filePattern) {\n return path.join(folder, `${dateformat(date, filePattern)}.${extension}`);\n }\n\n return path.join(folder, `scan${scanCount}.${extension}`);\n }\n\n static async getOutputFolder(folder?: string | undefined): Promise<string> {\n if (typeof folder !== \"string\") {\n return Fs.mkdtemp(path.join(os.tmpdir(), \"scan-to-pc\"));\n }\n return folder;\n }\n}\n"]}
|
package/dist/ScanCaps.d.ts
CHANGED
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
export interface ScanCapsData {
|
|
2
|
+
ScanCaps: {
|
|
3
|
+
Platen: {
|
|
4
|
+
InputSourceCaps: {
|
|
5
|
+
MaxWidth: string[];
|
|
6
|
+
MaxHeight: string[];
|
|
7
|
+
}[];
|
|
8
|
+
}[];
|
|
9
|
+
Adf: {
|
|
10
|
+
InputSourceCaps: {
|
|
11
|
+
MaxWidth: string[];
|
|
12
|
+
MaxHeight: string[];
|
|
13
|
+
}[];
|
|
14
|
+
}[];
|
|
15
|
+
};
|
|
2
16
|
}
|
|
3
17
|
export default class ScanCaps {
|
|
4
18
|
private readonly data;
|
|
5
19
|
constructor(data: ScanCapsData);
|
|
6
20
|
static createScanCaps(content: string): Promise<ScanCaps>;
|
|
21
|
+
get platenMaxWidth(): number | null;
|
|
22
|
+
get platenMaxHeight(): number | null;
|
|
23
|
+
get adfMaxWidth(): number | null;
|
|
24
|
+
get adfMaxHeight(): number | null;
|
|
7
25
|
}
|
package/dist/ScanCaps.js
CHANGED
|
@@ -12,6 +12,28 @@ class ScanCaps {
|
|
|
12
12
|
const parsed = await parseString(content);
|
|
13
13
|
return new ScanCaps(parsed);
|
|
14
14
|
}
|
|
15
|
+
get platenMaxWidth() {
|
|
16
|
+
return Number.parseInt(this.data["ScanCaps"]["Platen"][0]["InputSourceCaps"][0]["MaxWidth"][0], 10);
|
|
17
|
+
}
|
|
18
|
+
get platenMaxHeight() {
|
|
19
|
+
return Number.parseInt(this.data["ScanCaps"]["Platen"][0]["InputSourceCaps"][0]["MaxHeight"][0], 10);
|
|
20
|
+
}
|
|
21
|
+
get adfMaxWidth() {
|
|
22
|
+
if (Object.prototype.hasOwnProperty.call(this.data["ScanCaps"], "Adf")) {
|
|
23
|
+
return Number.parseInt(this.data["ScanCaps"]["Adf"][0]["InputSourceCaps"][0]["MaxWidth"][0], 10);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
get adfMaxHeight() {
|
|
30
|
+
if (Object.prototype.hasOwnProperty.call(this.data["ScanCaps"], "Adf")) {
|
|
31
|
+
return Number.parseInt(this.data["ScanCaps"]["Adf"][0]["InputSourceCaps"][0]["MaxHeight"][0], 10);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
15
37
|
}
|
|
16
38
|
exports.default = ScanCaps;
|
|
17
39
|
//# sourceMappingURL=ScanCaps.js.map
|
package/dist/ScanCaps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScanCaps.js","sourceRoot":"","sources":["../src/ScanCaps.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAuB,MAAM,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ScanCaps.js","sourceRoot":"","sources":["../src/ScanCaps.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAuB,MAAM,CAAC,WAAW,CAAC,CAAC;AAmBxE,MAAqB,QAAQ;IAG3B,YAAY,IAAkB;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,OAAe;QACzC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,MAAM,CAAC,QAAQ,CACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACvE,EAAE,CACH,CAAC;IACJ,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,MAAM,CAAC,QAAQ,CACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACxE,EAAE,CACH,CAAC;IACJ,CAAC;IAED,IAAI,WAAW;QACb,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,EAAE;YACtE,OAAO,MAAM,CAAC,QAAQ,CACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACpE,EAAE,CACH,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,IAAI,YAAY;QACd,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,EAAE;YACtE,OAAO,MAAM,CAAC,QAAQ,CACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACrE,EAAE,CACH,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC;SACb;IACH,CAAC;CACF;AA/CD,2BA+CC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nconst parseString = promisify<string, ScanCapsData>(parser.parseString);\n\nexport interface ScanCapsData {\n ScanCaps: {\n Platen: {\n InputSourceCaps: {\n MaxWidth: string[];\n MaxHeight: string[];\n }[];\n }[];\n Adf: {\n InputSourceCaps: {\n MaxWidth: string[];\n MaxHeight: string[];\n }[];\n }[];\n };\n}\n\nexport default class ScanCaps {\n private readonly data: ScanCapsData;\n\n constructor(data: ScanCapsData) {\n this.data = data;\n }\n\n static async createScanCaps(content: string): Promise<ScanCaps> {\n const parsed = await parseString(content);\n return new ScanCaps(parsed);\n }\n\n get platenMaxWidth(): number | null {\n return Number.parseInt(\n this.data[\"ScanCaps\"][\"Platen\"][0][\"InputSourceCaps\"][0][\"MaxWidth\"][0],\n 10,\n );\n }\n\n get platenMaxHeight(): number | null {\n return Number.parseInt(\n this.data[\"ScanCaps\"][\"Platen\"][0][\"InputSourceCaps\"][0][\"MaxHeight\"][0],\n 10,\n );\n }\n\n get adfMaxWidth(): number | null {\n if (Object.prototype.hasOwnProperty.call(this.data[\"ScanCaps\"], \"Adf\")) {\n return Number.parseInt(\n this.data[\"ScanCaps\"][\"Adf\"][0][\"InputSourceCaps\"][0][\"MaxWidth\"][0],\n 10,\n );\n } else {\n return null;\n }\n }\n\n get adfMaxHeight(): number | null {\n if (Object.prototype.hasOwnProperty.call(this.data[\"ScanCaps\"], \"Adf\")) {\n return Number.parseInt(\n this.data[\"ScanCaps\"][\"Adf\"][0][\"InputSourceCaps\"][0][\"MaxHeight\"][0],\n 10,\n );\n } else {\n return null;\n }\n }\n}\n"]}
|
package/dist/ScanContent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScanContent.js","sourceRoot":"","sources":["../src/ScanContent.ts"],"names":[],"mappings":";;;;;;AAAA,2DAA6B;AAE7B,iCAA8B;AAcvB,KAAK,UAAU,aAAa,CACjC,WAAwB,EACxB,WAAmB;IAEnB,IAAI,GAAG,GAAiB,IAAI,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE;QAC1C,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;QAC1D,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAC5D,MAAM,MAAM,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAE/C,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,GAAG,GAAG,IAAI,aAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;SAC5D;aAAM;YACL,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACrB;QAED,MAAM,eAAe,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;KAC5E;IACD,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACzB,CAAC;AApBD,sCAoBC","sourcesContent":["import fs from \"fs/promises\";\n\nimport { jsPDF } from \"jspdf\";\n\nexport interface ScanContent {\n elements: ScanPage[];\n}\nexport interface ScanPage {\n path: string;\n pageNumber: number;\n width: number;\n height: number;\n xResolution: number;\n yResolution: number;\n}\n\nexport async function createPdfFrom(\n scanContent: ScanContent,\n destination: string
|
|
1
|
+
{"version":3,"file":"ScanContent.js","sourceRoot":"","sources":["../src/ScanContent.ts"],"names":[],"mappings":";;;;;;AAAA,2DAA6B;AAE7B,iCAA8B;AAcvB,KAAK,UAAU,aAAa,CACjC,WAAwB,EACxB,WAAmB;IAEnB,IAAI,GAAG,GAAiB,IAAI,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE;QAC1C,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;QAC1D,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAC5D,MAAM,MAAM,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAE/C,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,GAAG,GAAG,IAAI,aAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;SAC5D;aAAM;YACL,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACrB;QAED,MAAM,eAAe,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;KAC5E;IACD,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACzB,CAAC;AApBD,sCAoBC","sourcesContent":["import fs from \"fs/promises\";\n\nimport { jsPDF } from \"jspdf\";\n\nexport interface ScanContent {\n elements: ScanPage[];\n}\nexport interface ScanPage {\n path: string;\n pageNumber: number;\n width: number;\n height: number;\n xResolution: number;\n yResolution: number;\n}\n\nexport async function createPdfFrom(\n scanContent: ScanContent,\n destination: string,\n) {\n let doc: jsPDF | null = null;\n for (const element of scanContent.elements) {\n const widthInInches = element.width / element.xResolution;\n const heightInInches = element.height / element.yResolution;\n const format = [widthInInches, heightInInches];\n\n if (doc == null) {\n doc = new jsPDF({ unit: \"in\", floatPrecision: 3, format });\n } else {\n doc.addPage(format);\n }\n\n const imageByteBuffer = await fs.readFile(element.path);\n doc.addImage(imageByteBuffer, \"JPEG\", 0, 0, widthInInches, heightInInches);\n }\n doc?.save(destination);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScanJobManifest.js","sourceRoot":"","sources":["../src/ScanJobManifest.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAA8B,MAAM,CAAC,WAAW,CAAC,CAAC;AAoB/E,MAAqB,eAAe;IAGlC,YAAY,IAAyB;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAChC,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,WAAW;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAChE,kBAAkB,CACnB,CAAC,IAAI,CACJ,CAAC,CAAC,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"ScanJobManifest.js","sourceRoot":"","sources":["../src/ScanJobManifest.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAA8B,MAAM,CAAC,WAAW,CAAC,CAAC;AAoB/E,MAAqB,eAAe;IAGlC,YAAY,IAAyB;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAChC,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,WAAW;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAChE,kBAAkB,CACnB,CAAC,IAAI,CACJ,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CACtE,CAAC;QAEF,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CACtE,gBAAgB,CACjB,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAC5D,CAAC;IACJ,CAAC;CACF;AA/BD,kCA+BC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nconst parseString = promisify<string, ScanJobManifestData>(parser.parseString);\n\nexport interface ScanJobManifestData {\n \"man:Manifest\": {\n \"map:ResourceMap\": {\n \"map:ResourceLink\": {\n \"dd:ResourceURI\": string[];\n }[];\n \"map:ResourceNode\": {\n \"map:ResourceLink\": {\n \"dd:ResourceURI\": string[];\n }[];\n \"map:ResourceType\": {\n \"scan:ScanResourceType\": string[];\n }[];\n }[];\n }[];\n };\n}\n\nexport default class ScanJobManifest {\n private readonly data: ScanJobManifestData;\n\n constructor(data: ScanJobManifestData) {\n this.data = data;\n }\n static async createScanJobManifest(\n content: string,\n ): Promise<ScanJobManifest> {\n const parsed = await parseString(content);\n return new ScanJobManifest(parsed);\n }\n\n get ScanCapsURI(): string | null {\n const scanCaps = this.data[\"man:Manifest\"][\"map:ResourceMap\"][\"0\"][\n \"map:ResourceNode\"\n ].find(\n (x) =>\n x[\"map:ResourceType\"][0][\"scan:ScanResourceType\"][0] === \"ScanCaps\",\n );\n\n if (scanCaps === undefined) {\n return null;\n }\n\n return (\n this.data[\"man:Manifest\"][\"map:ResourceMap\"][\"0\"][\"map:ResourceLink\"][0][\n \"dd:ResourceURI\"\n ][0] + scanCaps[\"map:ResourceLink\"][0][\"dd:ResourceURI\"][0]\n );\n }\n}\n"]}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { InputSource } from "./InputSource";
|
|
1
2
|
export default class ScanJobSettings {
|
|
2
3
|
private readonly inputSource;
|
|
3
4
|
private readonly contentType;
|
|
4
5
|
private readonly resolution;
|
|
6
|
+
private readonly width;
|
|
7
|
+
private readonly height;
|
|
5
8
|
private readonly isDuplex;
|
|
6
|
-
constructor(inputSource:
|
|
9
|
+
constructor(inputSource: InputSource, contentType: "Document" | "Photo", resolution: number, width: number | null, height: number | null, isDuplex: boolean);
|
|
7
10
|
toXML(): Promise<string>;
|
|
8
11
|
}
|
package/dist/ScanJobSettings.js
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
+
const xml2js_1 = __importDefault(require("xml2js"));
|
|
7
|
+
const InputSource_1 = require("./InputSource");
|
|
8
|
+
const parser = new xml2js_1.default.Parser();
|
|
6
9
|
class ScanJobSettings {
|
|
7
|
-
constructor(inputSource, contentType, resolution, isDuplex) {
|
|
10
|
+
constructor(inputSource, contentType, resolution, width, height, isDuplex) {
|
|
8
11
|
this.inputSource = inputSource;
|
|
9
12
|
this.contentType = contentType;
|
|
10
13
|
this.resolution = resolution;
|
|
14
|
+
this.width = width;
|
|
15
|
+
this.height = height;
|
|
11
16
|
this.isDuplex = isDuplex;
|
|
12
17
|
}
|
|
13
18
|
async toXML() {
|
|
@@ -15,7 +20,7 @@ class ScanJobSettings {
|
|
|
15
20
|
'<ScanSettings xmlns="http://www.hp.com/schemas/imaging/con/cnx/scan/2008/08/19" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.hp.com/schemas/imaging/con/cnx/scan/2008/08/19 Scan Schema - 0.26.xsd">\n' +
|
|
16
21
|
"\t<XResolution>200</XResolution>\n" +
|
|
17
22
|
"\t<YResolution>200</YResolution>\n" +
|
|
18
|
-
"\t<XStart>
|
|
23
|
+
"\t<XStart>0</XStart>\n" +
|
|
19
24
|
"\t<YStart>0</YStart>\n" +
|
|
20
25
|
"\t<Width>2481</Width>\n" +
|
|
21
26
|
"\t<Height>3507</Height>\n" +
|
|
@@ -37,15 +42,21 @@ class ScanJobSettings {
|
|
|
37
42
|
"\t<NoiseRemoval>0</NoiseRemoval>\n" +
|
|
38
43
|
"\t<ContentType>Document</ContentType>\n" +
|
|
39
44
|
"</ScanSettings>";
|
|
40
|
-
const parsed = await
|
|
45
|
+
const parsed = await parser.parseStringPromise(rawJob);
|
|
41
46
|
parsed.ScanSettings.XResolution[0] = this.resolution;
|
|
42
47
|
parsed.ScanSettings.YResolution[0] = this.resolution;
|
|
48
|
+
if (this.width !== null) {
|
|
49
|
+
parsed.ScanSettings.Width = this.width;
|
|
50
|
+
}
|
|
51
|
+
if (this.height !== null) {
|
|
52
|
+
parsed.ScanSettings.Height = this.height;
|
|
53
|
+
}
|
|
43
54
|
parsed.ScanSettings.InputSource[0] = this.inputSource;
|
|
44
|
-
if (this.inputSource ===
|
|
55
|
+
if (this.inputSource === InputSource_1.InputSource.Adf && this.isDuplex) {
|
|
45
56
|
parsed.ScanSettings["AdfOptions"] = [{ AdfOption: ["Duplex"] }];
|
|
46
57
|
}
|
|
47
58
|
parsed.ScanSettings.ContentType[0] = this.contentType;
|
|
48
|
-
let builder = new
|
|
59
|
+
let builder = new xml2js_1.default.Builder({
|
|
49
60
|
xmldec: { version: "1.0", encoding: "UTF-8", standalone: false },
|
|
50
61
|
renderOpts: { pretty: true, indent: "\t", newline: "\n" },
|
|
51
62
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScanJobSettings.js","sourceRoot":"","sources":["../src/ScanJobSettings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScanJobSettings.js","sourceRoot":"","sources":["../src/ScanJobSettings.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,+CAA4C;AAE5C,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC,MAAM,EAAE,CAAC;AACnC,MAAqB,eAAe;IAQlC,YACE,WAAwB,EACxB,WAAiC,EACjC,UAAkB,EAClB,KAAoB,EACpB,MAAqB,EACrB,QAAiB;QAEjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,MAAM,GACR,0CAA0C;YAC1C,gPAAgP;YAChP,oCAAoC;YACpC,oCAAoC;YACpC,wBAAwB;YACxB,wBAAwB;YACxB,yBAAyB;YACzB,2BAA2B;YAC3B,2BAA2B;YAC3B,gDAAgD;YAChD,oCAAoC;YACpC,4BAA4B;YAC5B,oCAAoC;YACpC,yCAAyC;YACzC,eAAe;YACf,2BAA2B;YAC3B,qCAAqC;YACrC,iCAAiC;YACjC,gCAAgC;YAChC,2BAA2B;YAC3B,gCAAgC;YAChC,gBAAgB;YAChB,4CAA4C;YAC5C,oCAAoC;YACpC,yCAAyC;YACzC,iBAAiB,CAAC;QAEpB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEvD,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACrD,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAErD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YACvB,MAAM,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SACxC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;YACxB,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;SAC1C;QAED,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QACtD,IAAI,IAAI,CAAC,WAAW,KAAK,yBAAW,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;YACzD,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACjE;QACD,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAEtD,IAAI,OAAO,GAAG,IAAI,gBAAM,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE;YAChE,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;SAC1D,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;CACF;AA/ED,kCA+EC","sourcesContent":["import xml2js from \"xml2js\";\nimport { InputSource } from \"./InputSource\";\n\nconst parser = new xml2js.Parser();\nexport default class ScanJobSettings {\n private readonly inputSource: InputSource;\n private readonly contentType: \"Document\" | \"Photo\";\n private readonly resolution: number;\n private readonly width: number | null;\n private readonly height: number | null;\n private readonly isDuplex: boolean;\n\n constructor(\n inputSource: InputSource,\n contentType: \"Document\" | \"Photo\",\n resolution: number,\n width: number | null,\n height: number | null,\n isDuplex: boolean,\n ) {\n this.inputSource = inputSource;\n this.contentType = contentType;\n this.resolution = resolution;\n this.width = width;\n this.height = height;\n this.isDuplex = isDuplex;\n }\n\n async toXML(): Promise<string> {\n let rawJob =\n '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n' +\n '<ScanSettings xmlns=\"http://www.hp.com/schemas/imaging/con/cnx/scan/2008/08/19\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.hp.com/schemas/imaging/con/cnx/scan/2008/08/19 Scan Schema - 0.26.xsd\">\\n' +\n \"\\t<XResolution>200</XResolution>\\n\" +\n \"\\t<YResolution>200</YResolution>\\n\" +\n \"\\t<XStart>0</XStart>\\n\" +\n \"\\t<YStart>0</YStart>\\n\" +\n \"\\t<Width>2481</Width>\\n\" +\n \"\\t<Height>3507</Height>\\n\" +\n \"\\t<Format>Jpeg</Format>\\n\" +\n \"\\t<CompressionQFactor>0</CompressionQFactor>\\n\" +\n \"\\t<ColorSpace>Color</ColorSpace>\\n\" +\n \"\\t<BitDepth>8</BitDepth>\\n\" +\n \"\\t<InputSource>Adf</InputSource>\\n\" +\n \"\\t<GrayRendering>NTSC</GrayRendering>\\n\" +\n \"\\t<ToneMap>\\n\" +\n \"\\t\\t<Gamma>1000</Gamma>\\n\" +\n \"\\t\\t<Brightness>1000</Brightness>\\n\" +\n \"\\t\\t<Contrast>1000</Contrast>\\n\" +\n \"\\t\\t<Highlite>179</Highlite>\\n\" +\n \"\\t\\t<Shadow>25</Shadow>\\n\" +\n \"\\t\\t<Threshold>0</Threshold>\\n\" +\n \"\\t</ToneMap>\\n\" +\n \"\\t<SharpeningLevel>128</SharpeningLevel>\\n\" +\n \"\\t<NoiseRemoval>0</NoiseRemoval>\\n\" +\n \"\\t<ContentType>Document</ContentType>\\n\" +\n \"</ScanSettings>\";\n\n const parsed = await parser.parseStringPromise(rawJob);\n\n parsed.ScanSettings.XResolution[0] = this.resolution;\n parsed.ScanSettings.YResolution[0] = this.resolution;\n\n if (this.width !== null) {\n parsed.ScanSettings.Width = this.width;\n }\n\n if (this.height !== null) {\n parsed.ScanSettings.Height = this.height;\n }\n\n parsed.ScanSettings.InputSource[0] = this.inputSource;\n if (this.inputSource === InputSource.Adf && this.isDuplex) {\n parsed.ScanSettings[\"AdfOptions\"] = [{ AdfOption: [\"Duplex\"] }];\n }\n parsed.ScanSettings.ContentType[0] = this.contentType;\n\n let builder = new xml2js.Builder({\n xmldec: { version: \"1.0\", encoding: \"UTF-8\", standalone: false },\n renderOpts: { pretty: true, indent: \"\\t\", newline: \"\\n\" },\n });\n\n return builder.buildObject(parsed);\n }\n}\n"]}
|
package/dist/ScanStatus.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { InputSource } from "./InputSource";
|
|
1
2
|
export interface ScanStatusData {
|
|
2
3
|
ScanStatus: {
|
|
3
4
|
ScannerState: {
|
|
@@ -15,5 +16,5 @@ export default class ScanStatus {
|
|
|
15
16
|
get scannerState(): string;
|
|
16
17
|
get adfState(): string;
|
|
17
18
|
isLoaded(): boolean;
|
|
18
|
-
getInputSource():
|
|
19
|
+
getInputSource(): InputSource;
|
|
19
20
|
}
|
package/dist/ScanStatus.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const xml2js_1 = require("xml2js");
|
|
4
4
|
const parser = new xml2js_1.Parser();
|
|
5
5
|
const util_1 = require("util");
|
|
6
|
+
const InputSource_1 = require("./InputSource");
|
|
6
7
|
const parseString = (0, util_1.promisify)(parser.parseString);
|
|
7
8
|
class ScanStatus {
|
|
8
9
|
constructor(data) {
|
|
@@ -16,7 +17,7 @@ class ScanStatus {
|
|
|
16
17
|
return this.data["ScanStatus"].ScannerState["0"];
|
|
17
18
|
}
|
|
18
19
|
get adfState() {
|
|
19
|
-
if (this.data["ScanStatus"]
|
|
20
|
+
if (Object.prototype.hasOwnProperty.call(this.data["ScanStatus"], "AdfState")) {
|
|
20
21
|
//not all printers have an automatic document feeder
|
|
21
22
|
return this.data["ScanStatus"].AdfState["0"];
|
|
22
23
|
}
|
|
@@ -28,7 +29,7 @@ class ScanStatus {
|
|
|
28
29
|
return this.adfState === "Loaded";
|
|
29
30
|
}
|
|
30
31
|
getInputSource() {
|
|
31
|
-
return this.isLoaded() ?
|
|
32
|
+
return this.isLoaded() ? InputSource_1.InputSource.Adf : InputSource_1.InputSource.Platen;
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
exports.default = ScanStatus;
|
package/dist/ScanStatus.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScanStatus.js","sourceRoot":"","sources":["../src/ScanStatus.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAyB,MAAM,CAAC,WAAW,CAAC,CAAC;AAS1E,MAAqB,UAAU;IAE7B,YAAY,IAAoB;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAe;QAC3C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ;QACV,
|
|
1
|
+
{"version":3,"file":"ScanStatus.js","sourceRoot":"","sources":["../src/ScanStatus.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,+CAA4C;AAC5C,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAyB,MAAM,CAAC,WAAW,CAAC,CAAC;AAS1E,MAAqB,UAAU;IAE7B,YAAY,IAAoB;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAe;QAC3C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ;QACV,IACE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,EACzE;YACA,oDAAoD;YACpD,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC9C;aAAM;YACL,OAAO,EAAE,CAAC;SACX;IACH,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC;IACpC,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,yBAAW,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAW,CAAC,MAAM,CAAC;IAChE,CAAC;CACF;AAjCD,6BAiCC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nimport { InputSource } from \"./InputSource\";\nconst parseString = promisify<string, ScanStatusData>(parser.parseString);\n\nexport interface ScanStatusData {\n ScanStatus: {\n ScannerState: { \"0\": string };\n AdfState: { \"0\": string };\n };\n}\n\nexport default class ScanStatus {\n private readonly data: ScanStatusData;\n constructor(data: ScanStatusData) {\n this.data = data;\n }\n\n static async createScanStatus(content: string): Promise<ScanStatus> {\n const parsed = await parseString(content);\n return new ScanStatus(parsed);\n }\n\n get scannerState(): string {\n return this.data[\"ScanStatus\"].ScannerState[\"0\"];\n }\n\n get adfState(): string {\n if (\n Object.prototype.hasOwnProperty.call(this.data[\"ScanStatus\"], \"AdfState\")\n ) {\n //not all printers have an automatic document feeder\n return this.data[\"ScanStatus\"].AdfState[\"0\"];\n } else {\n return \"\";\n }\n }\n\n isLoaded(): boolean {\n return this.adfState === \"Loaded\";\n }\n\n getInputSource(): InputSource {\n return this.isLoaded() ? InputSource.Adf : InputSource.Platen;\n }\n}\n"]}
|
|
@@ -22,13 +22,13 @@ class WalkupScanDestination {
|
|
|
22
22
|
return this.data["dd:ResourceURI"][0];
|
|
23
23
|
}
|
|
24
24
|
get shortcut() {
|
|
25
|
-
if (
|
|
25
|
+
if (Object.prototype.hasOwnProperty.call(this.data, "wus:WalkupScanSettings")) {
|
|
26
26
|
return this.data["wus:WalkupScanSettings"]["0"]["wus:Shortcut"][0];
|
|
27
27
|
}
|
|
28
28
|
return null;
|
|
29
29
|
}
|
|
30
30
|
get scanPlexMode() {
|
|
31
|
-
if (
|
|
31
|
+
if (Object.prototype.hasOwnProperty.call(this.data, "wus:WalkupScanSettings")) {
|
|
32
32
|
return this.data["wus:WalkupScanSettings"]["0"]["scantype:ScanSettings"][0]["dd:ScanPlexMode"][0];
|
|
33
33
|
}
|
|
34
34
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalkupScanDestination.js","sourceRoot":"","sources":["../src/WalkupScanDestination.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,+BAAiC;AAGjC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAoBF,MAAqB,qBAAqB;IAExC,YAAY,IAA+B;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,2BAA2B,CACtC,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,qBAAqB,CAC9B,MAAM,CAAC,4BAA4B,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,QAAQ;QACV,
|
|
1
|
+
{"version":3,"file":"WalkupScanDestination.js","sourceRoot":"","sources":["../src/WalkupScanDestination.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,+BAAiC;AAGjC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAoBF,MAAqB,qBAAqB;IAExC,YAAY,IAA+B;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,2BAA2B,CACtC,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,qBAAqB,CAC9B,MAAM,CAAC,4BAA4B,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,QAAQ;QACV,IACE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,EACzE;YACA,OAAO,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;SACpE;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,YAAY;QACd,IACE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,EACzE;YACA,OAAO,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAC7C,uBAAuB,CACxB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5B;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA7CD,wCA6CC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nimport { promisify } from \"util\";\nimport { KnownShortcut } from \"./KnownShortcut\";\n\nconst parser = new Parser();\nconst parseString = promisify<string, WalkupScanDestinationsData>(\n parser.parseString,\n);\n\ninterface WalkupScanDestinationsData {\n \"wus:WalkupScanDestinations\": {\n \"wus:WalkupScanDestination\": WalkupScanDestinationData[];\n };\n}\n\nexport interface WalkupScanDestinationData {\n \"dd:Name\": string[];\n \"dd3:Hostname\": string[];\n \"dd:ResourceURI\": string[];\n \"wus:WalkupScanSettings\": {\n \"scantype:ScanSettings\": {\n \"dd:ScanPlexMode\": string[];\n }[];\n \"wus:Shortcut\": KnownShortcut[];\n }[];\n}\n\nexport default class WalkupScanDestination {\n private readonly data: WalkupScanDestinationData;\n constructor(data: WalkupScanDestinationData) {\n this.data = data;\n }\n static async createWalkupScanDestination(\n content: string,\n ): Promise<WalkupScanDestination> {\n const parsed = await parseString(content);\n return new WalkupScanDestination(\n parsed[\"wus:WalkupScanDestinations\"][\"wus:WalkupScanDestination\"][0],\n );\n }\n\n get name(): string {\n return this.data[\"dd:Name\"][0];\n }\n\n get hostname(): string {\n return this.data[\"dd3:Hostname\"][0];\n }\n\n get resourceURI(): string {\n return this.data[\"dd:ResourceURI\"][0];\n }\n\n get shortcut(): null | KnownShortcut {\n if (\n Object.prototype.hasOwnProperty.call(this.data, \"wus:WalkupScanSettings\")\n ) {\n return this.data[\"wus:WalkupScanSettings\"][\"0\"][\"wus:Shortcut\"][0];\n }\n return null;\n }\n\n get scanPlexMode(): string | null {\n if (\n Object.prototype.hasOwnProperty.call(this.data, \"wus:WalkupScanSettings\")\n ) {\n return this.data[\"wus:WalkupScanSettings\"][\"0\"][\n \"scantype:ScanSettings\"\n ][0][\"dd:ScanPlexMode\"][0];\n }\n return null;\n }\n}\n"]}
|
|
@@ -18,7 +18,7 @@ class WalkupScanDestinations {
|
|
|
18
18
|
}
|
|
19
19
|
get destinations() {
|
|
20
20
|
let walkupScanDestinations = this.data["wus:WalkupScanDestinations"];
|
|
21
|
-
if (
|
|
21
|
+
if (Object.prototype.hasOwnProperty.call(walkupScanDestinations, "wus:WalkupScanDestination")) {
|
|
22
22
|
return walkupScanDestinations["wus:WalkupScanDestination"].map((x) => new WalkupScanDestination_1.default(x));
|
|
23
23
|
}
|
|
24
24
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalkupScanDestinations.js","sourceRoot":"","sources":["../src/WalkupScanDestinations.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAEF,oFAEiC;AAQjC,MAAqB,sBAAsB;IAEzC,YAAY,IAAgC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,4BAA4B,CACvC,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,YAAY;QACd,IAAI,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACrE,
|
|
1
|
+
{"version":3,"file":"WalkupScanDestinations.js","sourceRoot":"","sources":["../src/WalkupScanDestinations.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAEF,oFAEiC;AAQjC,MAAqB,sBAAsB;IAEzC,YAAY,IAAgC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,4BAA4B,CACvC,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,YAAY;QACd,IAAI,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACrE,IACE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAClC,sBAAsB,EACtB,2BAA2B,CAC5B,EACD;YACA,OAAO,sBAAsB,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAC5D,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,+BAAqB,CAAC,CAAC,CAAC,CACpC,CAAC;SACH;aAAM;YACL,OAAO,EAAE,CAAC;SACX;IACH,CAAC;CACF;AA3BD,yCA2BC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nconst parseString = promisify<string, WalkupScanDestinationsData>(\n parser.parseString,\n);\n\nimport WalkupScanDestination, {\n WalkupScanDestinationData,\n} from \"./WalkupScanDestination\";\n\nexport interface WalkupScanDestinationsData {\n \"wus:WalkupScanDestinations\": {\n \"wus:WalkupScanDestination\": WalkupScanDestinationData[];\n };\n}\n\nexport default class WalkupScanDestinations {\n private readonly data: WalkupScanDestinationsData;\n constructor(data: WalkupScanDestinationsData) {\n this.data = data;\n }\n static async createWalkupScanDestinations(\n content: string,\n ): Promise<WalkupScanDestinations> {\n const parsed = await parseString(content);\n return new WalkupScanDestinations(parsed);\n }\n\n get destinations(): WalkupScanDestination[] {\n let walkupScanDestinations = this.data[\"wus:WalkupScanDestinations\"];\n if (\n Object.prototype.hasOwnProperty.call(\n walkupScanDestinations,\n \"wus:WalkupScanDestination\",\n )\n ) {\n return walkupScanDestinations[\"wus:WalkupScanDestination\"].map(\n (x) => new WalkupScanDestination(x),\n );\n } else {\n return [];\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalkupScanManifest.js","sourceRoot":"","sources":["../src/WalkupScanManifest.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAoBF,MAAqB,kBAAkB;IAGrC,YAAY,IAA4B;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,wBAAwB,CACnC,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,yBAAyB;QAC3B,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,CACvE,GAAG,CACJ,CAAC,kBAAkB,CAAC,CAAC,IAAI,CACxB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;YACzD,wBAAwB,CAC3B,CAAC;QAEF,IAAI,oBAAoB,KAAK,SAAS,EAAE;YACtC,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CACtE,gBAAgB,CACjB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CACxE,CAAC;IACJ,CAAC;CACF;AAhCD,qCAgCC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nconst parseString = promisify<string, WalkupScanManifestData>(\n parser.parseString
|
|
1
|
+
{"version":3,"file":"WalkupScanManifest.js","sourceRoot":"","sources":["../src/WalkupScanManifest.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAoBF,MAAqB,kBAAkB;IAGrC,YAAY,IAA4B;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,wBAAwB,CACnC,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,yBAAyB;QAC3B,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,CACvE,GAAG,CACJ,CAAC,kBAAkB,CAAC,CAAC,IAAI,CACxB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;YACzD,wBAAwB,CAC3B,CAAC;QAEF,IAAI,oBAAoB,KAAK,SAAS,EAAE;YACtC,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CACtE,gBAAgB,CACjB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CACxE,CAAC;IACJ,CAAC;CACF;AAhCD,qCAgCC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nconst parseString = promisify<string, WalkupScanManifestData>(\n parser.parseString,\n);\n\nexport interface WalkupScanManifestData {\n \"man:Manifest\": {\n \"map:ResourceMap\": {\n \"map:ResourceLink\": {\n \"dd:ResourceURI\": string[];\n }[];\n \"map:ResourceNode\": {\n \"map:ResourceLink\": {\n \"dd:ResourceURI\": string[];\n }[];\n \"map:ResourceType\": {\n \"wus:WalkupScanResourceType\": string[];\n }[];\n }[];\n }[];\n };\n}\n\nexport default class WalkupScanManifest {\n private readonly data: WalkupScanManifestData;\n\n constructor(data: WalkupScanManifestData) {\n this.data = data;\n }\n static async createWalkupScanManifest(\n content: string,\n ): Promise<WalkupScanManifest> {\n const parsed = await parseString(content);\n return new WalkupScanManifest(parsed);\n }\n\n get walkupScanDestinationsURI(): string | null {\n const walkupScanToCompCaps = this.data[\"man:Manifest\"][\"map:ResourceMap\"][\n \"0\"\n ][\"map:ResourceNode\"].find(\n (x) =>\n x[\"map:ResourceType\"][0][\"wus:WalkupScanResourceType\"][0] ===\n \"WalkupScanDestinations\",\n );\n\n if (walkupScanToCompCaps === undefined) {\n return null;\n }\n\n return (\n this.data[\"man:Manifest\"][\"map:ResourceMap\"][\"0\"][\"map:ResourceLink\"][0][\n \"dd:ResourceURI\"\n ][0] + walkupScanToCompCaps[\"map:ResourceLink\"][0][\"dd:ResourceURI\"][0]\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalkupScanToCompCaps.js","sourceRoot":"","sources":["../src/WalkupScanToCompCaps.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAQF,MAAqB,oBAAoB;IAGvC,YAAY,IAA8B;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,0BAA0B,CACrC,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,+BAA+B;QACjC,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CACnC,qCAAqC,CACtC,CAAC,GAAG,CAAC,KAAK,MAAM,CAClB,CAAC;IACJ,CAAC;CACF;AArBD,uCAqBC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nconst parseString = promisify<string, WalkupScanToCompCapsData>(\n parser.parseString
|
|
1
|
+
{"version":3,"file":"WalkupScanToCompCaps.js","sourceRoot":"","sources":["../src/WalkupScanToCompCaps.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAQF,MAAqB,oBAAoB;IAGvC,YAAY,IAA8B;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,0BAA0B,CACrC,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,+BAA+B;QACjC,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CACnC,qCAAqC,CACtC,CAAC,GAAG,CAAC,KAAK,MAAM,CAClB,CAAC;IACJ,CAAC;CACF;AArBD,uCAqBC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nconst parseString = promisify<string, WalkupScanToCompCapsData>(\n parser.parseString,\n);\nexport interface WalkupScanToCompCapsData {\n \"wus:WalkupScanToCompCaps\": {\n \"wus:MaxNetworkDestinations\": string[];\n \"wus:SupportsMultiItemScanFromPlaten\": string[];\n };\n}\n\nexport default class WalkupScanToCompCaps {\n private readonly data: WalkupScanToCompCapsData;\n\n constructor(data: WalkupScanToCompCapsData) {\n this.data = data;\n }\n\n static async createWalkupScanToCompCaps(\n content: string,\n ): Promise<WalkupScanToCompCaps> {\n const parsed = await parseString(content);\n return new WalkupScanToCompCaps(parsed);\n }\n\n get supportsMultiItemScanFromPlaten(): boolean {\n return (\n this.data[\"wus:WalkupScanToCompCaps\"][\n \"wus:SupportsMultiItemScanFromPlaten\"\n ][\"0\"] === \"true\"\n );\n }\n}\n"]}
|
|
@@ -22,13 +22,13 @@ class WalkupScanToCompDestination {
|
|
|
22
22
|
return this.data["dd:ResourceURI"][0];
|
|
23
23
|
}
|
|
24
24
|
get shortcut() {
|
|
25
|
-
if (
|
|
25
|
+
if (Object.prototype.hasOwnProperty.call(this.data, "wus:WalkupScanToCompSettings")) {
|
|
26
26
|
return this.data["wus:WalkupScanToCompSettings"]["0"]["wus:Shortcut"][0];
|
|
27
27
|
}
|
|
28
28
|
return null;
|
|
29
29
|
}
|
|
30
30
|
get scanPlexMode() {
|
|
31
|
-
if (
|
|
31
|
+
if (Object.prototype.hasOwnProperty.call(this.data, "wus:WalkupScanToCompSettings")) {
|
|
32
32
|
return (this.data["wus:WalkupScanToCompSettings"]["0"]["scantype:ScanSettings"]["0"]["dd:ScanPlexMode"][0] || null);
|
|
33
33
|
}
|
|
34
34
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalkupScanToCompDestination.js","sourceRoot":"","sources":["../src/WalkupScanToCompDestination.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AAEjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAkBF,MAAqB,2BAA2B;IAE9C,YAAY,IAAqC;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAC5C,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,2BAA2B,CACpC,MAAM,CAAC,iCAAiC,CAAC,CAC1C,CAAC;IACJ,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,QAAQ;QACV,
|
|
1
|
+
{"version":3,"file":"WalkupScanToCompDestination.js","sourceRoot":"","sources":["../src/WalkupScanToCompDestination.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AAEjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAkBF,MAAqB,2BAA2B;IAE9C,YAAY,IAAqC;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAC5C,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,2BAA2B,CACpC,MAAM,CAAC,iCAAiC,CAAC,CAC1C,CAAC;IACJ,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,QAAQ;QACV,IACE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAClC,IAAI,CAAC,IAAI,EACT,8BAA8B,CAC/B,EACD;YACA,OAAO,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1E;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,YAAY;QACd,IACE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAClC,IAAI,CAAC,IAAI,EACT,8BAA8B,CAC/B,EACD;YACA,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,CAAC,uBAAuB,CAAC,CACrE,GAAG,CACJ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAChC,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AArDD,8CAqDC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nimport { KnownShortcut } from \"./KnownShortcut\";\nconst parseString = promisify<string, WalkupScanToCompDestinationRoot>(\n parser.parseString,\n);\n\ninterface WalkupScanToCompDestinationRoot {\n \"wus:WalkupScanToCompDestination\": WalkupScanToCompDestinationData;\n}\n\nexport interface WalkupScanToCompDestinationData {\n \"dd:Name\": string[];\n \"dd:ResourceURI\": string[];\n \"dd3:Hostname\": string[];\n \"wus:WalkupScanToCompSettings\": {\n \"scantype:ScanSettings\": {\n \"dd:ScanPlexMode\": string[];\n }[];\n \"wus:Shortcut\": KnownShortcut[];\n }[];\n}\n\nexport default class WalkupScanToCompDestination {\n private readonly data: WalkupScanToCompDestinationData;\n constructor(data: WalkupScanToCompDestinationData) {\n this.data = data;\n }\n static async createWalkupScanToCompDestination(\n content: string,\n ): Promise<WalkupScanToCompDestination> {\n const parsed = await parseString(content);\n return new WalkupScanToCompDestination(\n parsed[\"wus:WalkupScanToCompDestination\"],\n );\n }\n\n get name(): string {\n return this.data[\"dd:Name\"][0];\n }\n\n get hostname(): string {\n return this.data[\"dd3:Hostname\"][0];\n }\n\n get resourceURI(): string {\n return this.data[\"dd:ResourceURI\"][0];\n }\n\n get shortcut(): null | KnownShortcut {\n if (\n Object.prototype.hasOwnProperty.call(\n this.data,\n \"wus:WalkupScanToCompSettings\",\n )\n ) {\n return this.data[\"wus:WalkupScanToCompSettings\"][\"0\"][\"wus:Shortcut\"][0];\n }\n return null;\n }\n\n get scanPlexMode(): string | null {\n if (\n Object.prototype.hasOwnProperty.call(\n this.data,\n \"wus:WalkupScanToCompSettings\",\n )\n ) {\n return (\n this.data[\"wus:WalkupScanToCompSettings\"][\"0\"][\"scantype:ScanSettings\"][\n \"0\"\n ][\"dd:ScanPlexMode\"][0] || null\n );\n }\n return null;\n }\n}\n"]}
|
|
@@ -18,7 +18,7 @@ class WalkupScanToCompDestinations {
|
|
|
18
18
|
}
|
|
19
19
|
get destinations() {
|
|
20
20
|
let walkupScanToCompDestinations = this.data["wus:WalkupScanToCompDestinations"];
|
|
21
|
-
if (
|
|
21
|
+
if (Object.prototype.hasOwnProperty.call(walkupScanToCompDestinations, "wus:WalkupScanToCompDestination")) {
|
|
22
22
|
return walkupScanToCompDestinations["wus:WalkupScanToCompDestination"].map((x) => new WalkupScanToCompDestination_1.default(x));
|
|
23
23
|
}
|
|
24
24
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalkupScanToCompDestinations.js","sourceRoot":"","sources":["../src/WalkupScanToCompDestinations.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAEF,gGAEuC;AAQvC,MAAqB,4BAA4B;IAE/C,YAAY,IAAsC;QAChD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAC7C,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,YAAY;QACd,IAAI,4BAA4B,GAC9B,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChD,IACE,
|
|
1
|
+
{"version":3,"file":"WalkupScanToCompDestinations.js","sourceRoot":"","sources":["../src/WalkupScanToCompDestinations.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAEF,gGAEuC;AAQvC,MAAqB,4BAA4B;IAE/C,YAAY,IAAsC;QAChD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAC7C,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,YAAY;QACd,IAAI,4BAA4B,GAC9B,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChD,IACE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAClC,4BAA4B,EAC5B,iCAAiC,CAClC,EACD;YACA,OAAO,4BAA4B,CACjC,iCAAiC,CAClC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,qCAA2B,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD;aAAM;YACL,OAAO,EAAE,CAAC;SACX;IACH,CAAC;CACF;AA5BD,+CA4BC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nconst parseString = promisify<string, WalkupScanToCompDestinationsData>(\n parser.parseString,\n);\n\nimport WalkupScanToCompDestination, {\n WalkupScanToCompDestinationData,\n} from \"./WalkupScanToCompDestination\";\n\nexport interface WalkupScanToCompDestinationsData {\n \"wus:WalkupScanToCompDestinations\": {\n \"wus:WalkupScanToCompDestination\": WalkupScanToCompDestinationData[];\n };\n}\n\nexport default class WalkupScanToCompDestinations {\n private readonly data: WalkupScanToCompDestinationsData;\n constructor(data: WalkupScanToCompDestinationsData) {\n this.data = data;\n }\n static async createWalkupScanToCompDestinations(\n content: string,\n ): Promise<WalkupScanToCompDestinations> {\n const parsed = await parseString(content);\n return new WalkupScanToCompDestinations(parsed);\n }\n\n get destinations(): WalkupScanToCompDestination[] {\n let walkupScanToCompDestinations =\n this.data[\"wus:WalkupScanToCompDestinations\"];\n if (\n Object.prototype.hasOwnProperty.call(\n walkupScanToCompDestinations,\n \"wus:WalkupScanToCompDestination\",\n )\n ) {\n return walkupScanToCompDestinations[\n \"wus:WalkupScanToCompDestination\"\n ].map((x) => new WalkupScanToCompDestination(x));\n } else {\n return [];\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalkupScanToCompEvent.js","sourceRoot":"","sources":["../src/WalkupScanToCompEvent.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAQF,MAAqB,qBAAqB;IAExC,YAAY,IAA+B;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,OAAe;QACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAC3C,+BAA+B,CAChC,CAAC,CAAC,CAAC,CAAC;IACP,CAAC;CACF;AAfD,wCAeC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nconst parseString = promisify<string, WalkupScanToCompEventData>(\n parser.parseString
|
|
1
|
+
{"version":3,"file":"WalkupScanToCompEvent.js","sourceRoot":"","sources":["../src/WalkupScanToCompEvent.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAQF,MAAqB,qBAAqB;IAExC,YAAY,IAA+B;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,OAAe;QACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAC3C,+BAA+B,CAChC,CAAC,CAAC,CAAC,CAAC;IACP,CAAC;CACF;AAfD,wCAeC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nconst parseString = promisify<string, WalkupScanToCompEventData>(\n parser.parseString,\n);\n\nexport interface WalkupScanToCompEventData {\n \"wus:WalkupScanToCompEvent\": {\n \"wus:WalkupScanToCompEventType\": string[];\n };\n}\n\nexport default class WalkupScanToCompEvent {\n private readonly data: WalkupScanToCompEventData;\n constructor(data: WalkupScanToCompEventData) {\n this.data = data;\n }\n static async createWalkupScanToCompEvent(content: string) {\n const parsed = await parseString(content);\n return new WalkupScanToCompEvent(parsed);\n }\n\n get eventType(): string {\n return this.data[\"wus:WalkupScanToCompEvent\"][\n \"wus:WalkupScanToCompEventType\"\n ][0];\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalkupScanToCompManifest.js","sourceRoot":"","sources":["../src/WalkupScanToCompManifest.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAoBF,MAAqB,wBAAwB;IAG3C,YAAY,IAAkC;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,8BAA8B,CACzC,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,uBAAuB;QACzB,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,CACvE,GAAG,CACJ,CAAC,kBAAkB,CAAC,CAAC,IAAI,CACxB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC;YAC/D,sBAAsB,CACzB,CAAC;QAEF,IAAI,oBAAoB,KAAK,SAAS,EAAE;YACtC,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CACtE,gBAAgB,CACjB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CACxE,CAAC;IACJ,CAAC;CACF;AAhCD,2CAgCC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nconst parseString = promisify<string, WalkupScanToCompManifestData>(\n parser.parseString
|
|
1
|
+
{"version":3,"file":"WalkupScanToCompManifest.js","sourceRoot":"","sources":["../src/WalkupScanToCompManifest.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,mCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;AAC5B,+BAAiC;AACjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAC3B,MAAM,CAAC,WAAW,CACnB,CAAC;AAoBF,MAAqB,wBAAwB;IAG3C,YAAY,IAAkC;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,8BAA8B,CACzC,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,uBAAuB;QACzB,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,CACvE,GAAG,CACJ,CAAC,kBAAkB,CAAC,CAAC,IAAI,CACxB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC;YAC/D,sBAAsB,CACzB,CAAC;QAEF,IAAI,oBAAoB,KAAK,SAAS,EAAE;YACtC,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CACtE,gBAAgB,CACjB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CACxE,CAAC;IACJ,CAAC;CACF;AAhCD,2CAgCC","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nconst parseString = promisify<string, WalkupScanToCompManifestData>(\n parser.parseString,\n);\n\nexport interface WalkupScanToCompManifestData {\n \"man:Manifest\": {\n \"map:ResourceMap\": {\n \"map:ResourceLink\": {\n \"dd:ResourceURI\": string[];\n }[];\n \"map:ResourceNode\": {\n \"map:ResourceLink\": {\n \"dd:ResourceURI\": string[];\n }[];\n \"map:ResourceType\": {\n \"wus:WalkupScanToCompResourceType\": string[];\n }[];\n }[];\n }[];\n };\n}\n\nexport default class WalkupScanToCompManifest {\n private readonly data: WalkupScanToCompManifestData;\n\n constructor(data: WalkupScanToCompManifestData) {\n this.data = data;\n }\n static async createWalkupScanToCompManifest(\n content: string,\n ): Promise<WalkupScanToCompManifest> {\n const parsed = await parseString(content);\n return new WalkupScanToCompManifest(parsed);\n }\n\n get WalkupScanToCompCapsURI(): string | null {\n const walkupScanToCompCaps = this.data[\"man:Manifest\"][\"map:ResourceMap\"][\n \"0\"\n ][\"map:ResourceNode\"].find(\n (x) =>\n x[\"map:ResourceType\"][0][\"wus:WalkupScanToCompResourceType\"][0] ===\n \"WalkupScanToCompCaps\",\n );\n\n if (walkupScanToCompCaps === undefined) {\n return null;\n }\n\n return (\n this.data[\"man:Manifest\"][\"map:ResourceMap\"][\"0\"][\"map:ResourceLink\"][0][\n \"dd:ResourceURI\"\n ][0] + walkupScanToCompCaps[\"map:ResourceLink\"][0][\"dd:ResourceURI\"][0]\n );\n }\n}\n"]}
|