node-hp-scan-to 1.2.1 → 1.3.0
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 +49 -10
- package/dist/Destination.js +36 -84
- package/dist/Destination.js.map +1 -1
- package/dist/DeviceCapabilities.d.ts +4 -0
- package/dist/DeviceCapabilities.js +3 -0
- package/dist/DeviceCapabilities.js.map +1 -0
- package/dist/DiscoveryTree.d.ts +16 -0
- package/dist/DiscoveryTree.js +38 -0
- package/dist/DiscoveryTree.js.map +1 -0
- package/dist/Event.d.ts +1 -1
- package/dist/Event.js +24 -39
- package/dist/Event.js.map +1 -1
- package/dist/EventTable.d.ts +5 -0
- package/dist/EventTable.js +24 -18
- package/dist/EventTable.js.map +1 -1
- package/dist/HPApi.d.ts +26 -18
- package/dist/HPApi.js +386 -461
- package/dist/HPApi.js.map +1 -1
- package/dist/Job.d.ts +8 -7
- package/dist/Job.js +69 -86
- package/dist/Job.js.map +1 -1
- package/dist/JpegUtil.js +73 -82
- package/dist/JpegUtil.js.map +1 -1
- package/dist/KnownShortcut.d.ts +1 -0
- package/dist/KnownShortcut.js +3 -0
- package/dist/KnownShortcut.js.map +1 -0
- package/dist/PathHelper.d.ts +2 -1
- package/dist/PathHelper.js +41 -68
- package/dist/PathHelper.js.map +1 -1
- package/dist/ScanCaps.d.ts +7 -0
- package/dist/ScanCaps.js +17 -0
- package/dist/ScanCaps.js.map +1 -0
- package/dist/ScanContent.js +18 -73
- package/dist/ScanContent.js.map +1 -1
- package/dist/ScanJobManifest.d.ts +23 -0
- package/dist/ScanJobManifest.js +24 -0
- package/dist/ScanJobManifest.js.map +1 -0
- package/dist/ScanJobSettings.d.ts +3 -1
- package/dist/ScanJobSettings.js +48 -88
- package/dist/ScanJobSettings.js.map +1 -1
- package/dist/ScanStatus.d.ts +1 -0
- package/dist/ScanStatus.js +27 -28
- package/dist/ScanStatus.js.map +1 -1
- package/dist/WalkupScanDestination.d.ts +11 -13
- package/dist/WalkupScanDestination.js +32 -35
- package/dist/WalkupScanDestination.js.map +1 -1
- package/dist/WalkupScanDestinations.d.ts +1 -0
- package/dist/WalkupScanDestinations.js +21 -18
- package/dist/WalkupScanDestinations.js.map +1 -1
- package/dist/WalkupScanManifest.d.ts +23 -0
- package/dist/WalkupScanManifest.js +25 -0
- package/dist/WalkupScanManifest.js.map +1 -0
- package/dist/WalkupScanToCompCaps.d.ts +12 -0
- package/dist/WalkupScanToCompCaps.js +20 -0
- package/dist/WalkupScanToCompCaps.js.map +1 -0
- package/dist/WalkupScanToCompDestination.d.ts +10 -14
- package/dist/WalkupScanToCompDestination.js +32 -38
- package/dist/WalkupScanToCompDestination.js.map +1 -1
- package/dist/WalkupScanToCompDestinations.d.ts +1 -0
- package/dist/WalkupScanToCompDestinations.js +21 -18
- package/dist/WalkupScanToCompDestinations.js.map +1 -1
- package/dist/WalkupScanToCompEvent.d.ts +2 -1
- package/dist/WalkupScanToCompEvent.js +14 -11
- package/dist/WalkupScanToCompEvent.js.map +1 -1
- package/dist/WalkupScanToCompManifest.d.ts +23 -0
- package/dist/WalkupScanToCompManifest.js +25 -0
- package/dist/WalkupScanToCompManifest.js.map +1 -0
- package/dist/delay.d.ts +1 -0
- package/dist/delay.js +10 -0
- package/dist/delay.js.map +1 -0
- package/dist/fixJpegSize.d.ts +19 -0
- package/dist/fixJpegSize.js +292 -0
- package/dist/fixJpegSize.js.map +1 -0
- package/dist/index.js +209 -607
- package/dist/index.js.map +1 -1
- package/dist/listening.d.ts +9 -0
- package/dist/listening.js +108 -0
- package/dist/listening.js.map +1 -0
- package/dist/readDeviceCapabilities.d.ts +2 -0
- package/dist/readDeviceCapabilities.js +41 -0
- package/dist/readDeviceCapabilities.js.map +1 -0
- package/dist/scanProcess.d.ts +19 -0
- package/dist/scanProcess.js +292 -0
- package/dist/scanProcess.js.map +1 -0
- package/dist/scanProcessing.d.ts +20 -0
- package/dist/scanProcessing.js +320 -0
- package/dist/scanProcessing.js.map +1 -0
- package/dist/src/Destination.d.ts +8 -0
- package/dist/src/Destination.js +68 -0
- package/dist/src/Destination.js.map +1 -0
- package/dist/src/DiscoveryTree.d.ts +16 -0
- package/dist/src/DiscoveryTree.js +38 -0
- package/dist/src/DiscoveryTree.js.map +1 -0
- package/dist/src/Event.d.ts +21 -0
- package/dist/src/Event.js +32 -0
- package/dist/src/Event.js.map +1 -0
- package/dist/src/EventTable.d.ts +16 -0
- package/dist/src/EventTable.js +33 -0
- package/dist/src/EventTable.js.map +1 -0
- package/dist/src/HPApi.d.ts +50 -0
- package/dist/src/HPApi.js +454 -0
- package/dist/src/HPApi.js.map +1 -0
- package/dist/src/Job.d.ts +37 -0
- package/dist/src/Job.js +78 -0
- package/dist/src/Job.js.map +1 -0
- package/dist/src/JpegUtil.d.ts +26 -0
- package/dist/src/JpegUtil.js +229 -0
- package/dist/src/JpegUtil.js.map +1 -0
- package/dist/src/KnownShortcut.d.ts +1 -0
- package/dist/src/KnownShortcut.js +3 -0
- package/dist/src/KnownShortcut.js.map +1 -0
- package/dist/src/PathHelper.d.ts +6 -0
- package/dist/src/PathHelper.js +52 -0
- package/dist/src/PathHelper.js.map +1 -0
- package/dist/src/ScanCaps.d.ts +7 -0
- package/dist/src/ScanCaps.js +17 -0
- package/dist/src/ScanCaps.js.map +1 -0
- package/dist/src/ScanJobManifest.d.ts +23 -0
- package/dist/src/ScanJobManifest.js +24 -0
- package/dist/src/ScanJobManifest.js.map +1 -0
- package/dist/src/ScanJobSettings.d.ts +8 -0
- package/dist/src/ScanJobSettings.js +56 -0
- package/dist/src/ScanJobSettings.js.map +1 -0
- package/dist/src/ScanStatus.d.ts +19 -0
- package/dist/src/ScanStatus.js +35 -0
- package/dist/src/ScanStatus.js.map +1 -0
- package/dist/src/WalkupScanDestination.d.ts +22 -0
- package/dist/src/WalkupScanDestination.js +38 -0
- package/dist/src/WalkupScanDestination.js.map +1 -0
- package/dist/src/WalkupScanDestinations.d.ts +12 -0
- package/dist/src/WalkupScanDestinations.js +30 -0
- package/dist/src/WalkupScanDestinations.js.map +1 -0
- package/dist/src/WalkupScanManifest.d.ts +23 -0
- package/dist/src/WalkupScanManifest.js +25 -0
- package/dist/src/WalkupScanManifest.js.map +1 -0
- package/dist/src/WalkupScanToCompCaps.d.ts +12 -0
- package/dist/src/WalkupScanToCompCaps.js +20 -0
- package/dist/src/WalkupScanToCompCaps.js.map +1 -0
- package/dist/src/WalkupScanToCompDestination.d.ts +22 -0
- package/dist/src/WalkupScanToCompDestination.js +38 -0
- package/dist/src/WalkupScanToCompDestination.js.map +1 -0
- package/dist/src/WalkupScanToCompDestinations.d.ts +12 -0
- package/dist/src/WalkupScanToCompDestinations.js +30 -0
- package/dist/src/WalkupScanToCompDestinations.js.map +1 -0
- package/dist/src/WalkupScanToCompEvent.d.ts +11 -0
- package/dist/src/WalkupScanToCompEvent.js +20 -0
- package/dist/src/WalkupScanToCompEvent.js.map +1 -0
- package/dist/src/WalkupScanToCompManifest.d.ts +23 -0
- package/dist/src/WalkupScanToCompManifest.js +25 -0
- package/dist/src/WalkupScanToCompManifest.js.map +1 -0
- package/dist/src/delay.d.ts +1 -0
- package/dist/src/delay.js +10 -0
- package/dist/src/delay.js.map +1 -0
- package/dist/test/DiscoveryTree.test.d.ts +1 -0
- package/dist/test/DiscoveryTree.test.js +68 -0
- package/dist/test/DiscoveryTree.test.js.map +1 -0
- package/dist/test/EtagEventTable.test.d.ts +1 -0
- package/dist/test/EtagEventTable.test.js +93 -0
- package/dist/test/EtagEventTable.test.js.map +1 -0
- package/dist/test/Job.test.d.ts +1 -0
- package/dist/test/Job.test.js +104 -0
- package/dist/test/Job.test.js.map +1 -0
- package/dist/test/JpegUtil.test.d.ts +1 -0
- package/dist/test/JpegUtil.test.js +51 -0
- package/dist/test/JpegUtil.test.js.map +1 -0
- package/dist/test/PathHelper.test.d.ts +1 -0
- package/dist/test/PathHelper.test.js +99 -0
- package/dist/test/PathHelper.test.js.map +1 -0
- package/dist/test/ScanJobManifest.test.d.ts +1 -0
- package/dist/test/ScanJobManifest.test.js +56 -0
- package/dist/test/ScanJobManifest.test.js.map +1 -0
- package/dist/test/ScanJobSettings.test.d.ts +1 -0
- package/dist/test/ScanJobSettings.test.js +53 -0
- package/dist/test/ScanJobSettings.test.js.map +1 -0
- package/dist/test/ScanStatus.test.d.ts +1 -0
- package/dist/test/ScanStatus.test.js +75 -0
- package/dist/test/ScanStatus.test.js.map +1 -0
- package/dist/test/WalkupScanDestination.test.d.ts +1 -0
- package/dist/test/WalkupScanDestination.test.js +80 -0
- package/dist/test/WalkupScanDestination.test.js.map +1 -0
- package/dist/test/WalkupScanDestinations.test.d.ts +1 -0
- package/dist/test/WalkupScanDestinations.test.js +68 -0
- package/dist/test/WalkupScanDestinations.test.js.map +1 -0
- package/dist/test/WalkupScanManifest.test.d.ts +1 -0
- package/dist/test/WalkupScanManifest.test.js +46 -0
- package/dist/test/WalkupScanManifest.test.js.map +1 -0
- package/dist/test/WalkupScanToCompCaps.test.d.ts +1 -0
- package/dist/test/WalkupScanToCompCaps.test.js +56 -0
- package/dist/test/WalkupScanToCompCaps.test.js.map +1 -0
- package/dist/test/WalkupScanToCompDestination.test.d.ts +1 -0
- package/dist/test/WalkupScanToCompDestination.test.js +58 -0
- package/dist/test/WalkupScanToCompDestination.test.js.map +1 -0
- package/dist/test/WalkupScanToCompDestinations.test.d.ts +1 -0
- package/dist/test/WalkupScanToCompDestinations.test.js +58 -0
- package/dist/test/WalkupScanToCompDestinations.test.js.map +1 -0
- package/dist/test/WalkupScanToCompEvent.test.d.ts +1 -0
- package/dist/test/WalkupScanToCompEvent.test.js +46 -0
- package/dist/test/WalkupScanToCompEvent.test.js.map +1 -0
- package/dist/test/WalkupScanToCompManifest.test.d.ts +1 -0
- package/dist/test/WalkupScanToCompManifest.test.js +46 -0
- package/dist/test/WalkupScanToCompManifest.test.js.map +1 -0
- package/dist/test/clean.d.ts +1 -0
- package/dist/test/clean.js +21 -0
- package/dist/test/clean.js.map +1 -0
- package/package.json +27 -18
- package/src/Destination.ts +1 -1
- package/src/DeviceCapabilities.ts +4 -0
- package/src/DiscoveryTree.ts +56 -0
- package/src/Event.ts +17 -7
- package/src/EventTable.ts +20 -0
- package/src/HPApi.ts +245 -103
- package/src/Job.ts +51 -29
- package/src/JpegUtil.ts +8 -4
- package/src/KnownShortcut.ts +6 -0
- package/src/PathHelper.ts +47 -13
- package/src/ScanCaps.ts +19 -0
- package/src/ScanContent.ts +4 -1
- package/src/ScanJobManifest.ts +55 -0
- package/src/ScanJobSettings.ts +18 -3
- package/src/ScanStatus.ts +9 -0
- package/src/WalkupScanDestination.ts +42 -18
- package/src/WalkupScanDestinations.ts +12 -0
- package/src/WalkupScanManifest.ts +59 -0
- package/src/WalkupScanToCompCaps.ts +36 -0
- package/src/WalkupScanToCompDestination.ts +38 -24
- package/src/WalkupScanToCompDestinations.ts +12 -0
- package/src/WalkupScanToCompEvent.ts +15 -3
- package/src/WalkupScanToCompManifest.ts +59 -0
- package/src/delay.ts +5 -0
- package/src/index.ts +267 -465
- package/src/listening.ts +145 -0
- package/src/readDeviceCapabilities.ts +46 -0
- package/src/scanProcessing.ts +535 -0
- package/tsconfig.json +1 -1
package/src/PathHelper.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import dateformat from "dateformat";
|
|
3
|
-
|
|
3
|
+
const { promises: Fs } = require("fs");
|
|
4
|
+
const fs = require("fs");
|
|
4
5
|
import os from "os";
|
|
5
6
|
|
|
6
7
|
export default class PathHelper {
|
|
@@ -8,36 +9,69 @@ export default class PathHelper {
|
|
|
8
9
|
folder: string,
|
|
9
10
|
scanCount: number,
|
|
10
11
|
currentPageNumber: number,
|
|
11
|
-
filePattern
|
|
12
|
+
filePattern: string | undefined,
|
|
12
13
|
extension: string
|
|
13
14
|
): string {
|
|
14
|
-
|
|
15
15
|
if (filePattern) {
|
|
16
|
-
return path.join(
|
|
16
|
+
return path.join(
|
|
17
|
+
folder,
|
|
18
|
+
`${dateformat(new Date(), filePattern)}.${extension}`
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return path.join(
|
|
23
|
+
folder,
|
|
24
|
+
`scan${scanCount}_page${currentPageNumber}.${extension}`
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static makeUnique(filePath: string): string {
|
|
29
|
+
if (!fs.existsSync(filePath)) {
|
|
30
|
+
return filePath;
|
|
17
31
|
}
|
|
18
32
|
|
|
19
|
-
|
|
33
|
+
let parsed = path.parse(filePath);
|
|
34
|
+
let tryName = `${parsed.dir}${path.sep}${parsed.name}${dateformat(
|
|
35
|
+
new Date(),
|
|
36
|
+
"yyyymmdd"
|
|
37
|
+
)}${parsed.ext}`;
|
|
38
|
+
if (!fs.existsSync(tryName)) {
|
|
39
|
+
return tryName;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
parsed = path.parse(tryName);
|
|
43
|
+
let i = "a";
|
|
44
|
+
while (i <= "z") {
|
|
45
|
+
tryName = `${parsed.dir}${path.sep}${parsed.name}_${i}${parsed.ext}`;
|
|
46
|
+
if (!fs.existsSync(tryName)) {
|
|
47
|
+
return tryName;
|
|
48
|
+
}
|
|
49
|
+
i = String.fromCharCode(i.charCodeAt(0) + 1);
|
|
50
|
+
}
|
|
51
|
+
throw new Error(
|
|
52
|
+
`Can not create unique file: ${filePath} iterated until: ${tryName}`
|
|
53
|
+
);
|
|
20
54
|
}
|
|
21
55
|
|
|
22
56
|
static getFileForScan(
|
|
23
57
|
folder: string,
|
|
24
58
|
scanCount: number,
|
|
25
|
-
filePattern
|
|
59
|
+
filePattern: string | undefined,
|
|
26
60
|
extension: string
|
|
27
61
|
): string {
|
|
28
|
-
|
|
29
62
|
if (filePattern) {
|
|
30
|
-
return path.join(
|
|
63
|
+
return path.join(
|
|
64
|
+
folder,
|
|
65
|
+
`${dateformat(new Date(), filePattern)}.${extension}`
|
|
66
|
+
);
|
|
31
67
|
}
|
|
32
68
|
|
|
33
69
|
return path.join(folder, `scan${scanCount}.${extension}`);
|
|
34
70
|
}
|
|
35
71
|
|
|
36
|
-
static async getOutputFolder(folder
|
|
37
|
-
if (
|
|
38
|
-
|
|
39
|
-
path.join(os.tmpdir(), "scan-to-pc")
|
|
40
|
-
);
|
|
72
|
+
static async getOutputFolder(folder?: string | undefined): Promise<string> {
|
|
73
|
+
if (typeof folder !== "string") {
|
|
74
|
+
return Fs.mkdtemp(path.join(os.tmpdir(), "scan-to-pc"));
|
|
41
75
|
}
|
|
42
76
|
return folder;
|
|
43
77
|
}
|
package/src/ScanCaps.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { Parser } from "xml2js";
|
|
3
|
+
const parser = new Parser();
|
|
4
|
+
import { promisify } from "util";
|
|
5
|
+
const parseString = promisify<string, ScanCapsData>(parser.parseString);
|
|
6
|
+
export interface ScanCapsData {}
|
|
7
|
+
|
|
8
|
+
export default class ScanCaps {
|
|
9
|
+
private readonly data: ScanCapsData;
|
|
10
|
+
|
|
11
|
+
constructor(data: ScanCapsData) {
|
|
12
|
+
this.data = data;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
static async createScanCaps(content: string): Promise<ScanCaps> {
|
|
16
|
+
const parsed = await parseString(content);
|
|
17
|
+
return new ScanCaps(parsed);
|
|
18
|
+
}
|
|
19
|
+
}
|
package/src/ScanContent.ts
CHANGED
|
@@ -14,7 +14,10 @@ export interface ScanPage {
|
|
|
14
14
|
yResolution: number;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
export async function createPdfFrom(
|
|
17
|
+
export async function createPdfFrom(
|
|
18
|
+
scanContent: ScanContent,
|
|
19
|
+
destination: string
|
|
20
|
+
) {
|
|
18
21
|
let doc: jsPDF | null = null;
|
|
19
22
|
for (const element of scanContent.elements) {
|
|
20
23
|
const widthInInches = element.width / element.xResolution;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { Parser } from "xml2js";
|
|
3
|
+
const parser = new Parser();
|
|
4
|
+
import { promisify } from "util";
|
|
5
|
+
const parseString = promisify<string, ScanJobManifestData>(parser.parseString);
|
|
6
|
+
|
|
7
|
+
export interface ScanJobManifestData {
|
|
8
|
+
"man:Manifest": {
|
|
9
|
+
"map:ResourceMap": {
|
|
10
|
+
"map:ResourceLink": {
|
|
11
|
+
"dd:ResourceURI": string[];
|
|
12
|
+
}[];
|
|
13
|
+
"map:ResourceNode": {
|
|
14
|
+
"map:ResourceLink": {
|
|
15
|
+
"dd:ResourceURI": string[];
|
|
16
|
+
}[];
|
|
17
|
+
"map:ResourceType": {
|
|
18
|
+
"scan:ScanResourceType": string[];
|
|
19
|
+
}[];
|
|
20
|
+
}[];
|
|
21
|
+
}[];
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default class ScanJobManifest {
|
|
26
|
+
private readonly data: ScanJobManifestData;
|
|
27
|
+
|
|
28
|
+
constructor(data: ScanJobManifestData) {
|
|
29
|
+
this.data = data;
|
|
30
|
+
}
|
|
31
|
+
static async createScanJobManifest(
|
|
32
|
+
content: string
|
|
33
|
+
): Promise<ScanJobManifest> {
|
|
34
|
+
const parsed = await parseString(content);
|
|
35
|
+
return new ScanJobManifest(parsed);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
get ScanCapsURI(): string | null {
|
|
39
|
+
const scanCaps = this.data["man:Manifest"]["map:ResourceMap"]["0"][
|
|
40
|
+
"map:ResourceNode"
|
|
41
|
+
].find(
|
|
42
|
+
(x) => x["map:ResourceType"][0]["scan:ScanResourceType"][0] === "ScanCaps"
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
if (scanCaps === undefined) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
this.data["man:Manifest"]["map:ResourceMap"]["0"]["map:ResourceLink"][0][
|
|
51
|
+
"dd:ResourceURI"
|
|
52
|
+
][0] + scanCaps["map:ResourceLink"][0]["dd:ResourceURI"][0]
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
}
|
package/src/ScanJobSettings.ts
CHANGED
|
@@ -3,12 +3,21 @@ const parser = new xml2js.Parser();
|
|
|
3
3
|
const util = require("util");
|
|
4
4
|
|
|
5
5
|
export default class ScanJobSettings {
|
|
6
|
-
private readonly inputSource:
|
|
7
|
-
private readonly contentType:
|
|
6
|
+
private readonly inputSource: "Adf" | "Platen";
|
|
7
|
+
private readonly contentType: "Document" | "Photo";
|
|
8
|
+
private readonly resolution: number;
|
|
9
|
+
private readonly isDuplex: boolean;
|
|
8
10
|
|
|
9
|
-
constructor(
|
|
11
|
+
constructor(
|
|
12
|
+
inputSource: "Adf" | "Platen",
|
|
13
|
+
contentType: "Document" | "Photo",
|
|
14
|
+
resolution: number,
|
|
15
|
+
isDuplex: boolean
|
|
16
|
+
) {
|
|
10
17
|
this.inputSource = inputSource;
|
|
11
18
|
this.contentType = contentType;
|
|
19
|
+
this.resolution = resolution;
|
|
20
|
+
this.isDuplex = isDuplex;
|
|
12
21
|
}
|
|
13
22
|
|
|
14
23
|
async toXML(): Promise<string> {
|
|
@@ -42,7 +51,13 @@ export default class ScanJobSettings {
|
|
|
42
51
|
|
|
43
52
|
const parsed = await util.promisify(parser.parseString)(rawJob);
|
|
44
53
|
|
|
54
|
+
parsed.ScanSettings.XResolution[0] = this.resolution;
|
|
55
|
+
parsed.ScanSettings.YResolution[0] = this.resolution;
|
|
56
|
+
|
|
45
57
|
parsed.ScanSettings.InputSource[0] = this.inputSource;
|
|
58
|
+
if (this.inputSource === "Adf" && this.isDuplex) {
|
|
59
|
+
parsed.ScanSettings["AdfOptions"] = [{ AdfOption: ["Duplex"] }];
|
|
60
|
+
}
|
|
46
61
|
parsed.ScanSettings.ContentType[0] = this.contentType;
|
|
47
62
|
|
|
48
63
|
let builder = new xml2js.Builder({
|
package/src/ScanStatus.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
import { Parser } from "xml2js";
|
|
3
|
+
const parser = new Parser();
|
|
4
|
+
import { promisify } from "util";
|
|
5
|
+
const parseString = promisify<string, ScanStatusData>(parser.parseString);
|
|
2
6
|
|
|
3
7
|
export interface ScanStatusData {
|
|
4
8
|
ScanStatus: {
|
|
@@ -13,6 +17,11 @@ export default class ScanStatus {
|
|
|
13
17
|
this.data = data;
|
|
14
18
|
}
|
|
15
19
|
|
|
20
|
+
static async createScanStatus(content: string): Promise<ScanStatus> {
|
|
21
|
+
const parsed = await parseString(content);
|
|
22
|
+
return new ScanStatus(parsed);
|
|
23
|
+
}
|
|
24
|
+
|
|
16
25
|
get scannerState(): string {
|
|
17
26
|
return this.data["ScanStatus"].ScannerState["0"];
|
|
18
27
|
}
|
|
@@ -1,19 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
import { Parser } from "xml2js";
|
|
3
|
+
import { promisify } from "util";
|
|
4
|
+
import { KnownShortcut } from "./KnownShortcut";
|
|
5
|
+
|
|
6
|
+
const parser = new Parser();
|
|
7
|
+
const parseString = promisify<string, WalkupScanDestinationsData>(
|
|
8
|
+
parser.parseString
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
interface WalkupScanDestinationsData {
|
|
12
|
+
"wus:WalkupScanDestinations": {
|
|
13
|
+
"wus:WalkupScanDestination": WalkupScanDestinationData[];
|
|
14
|
+
};
|
|
15
|
+
}
|
|
2
16
|
|
|
3
17
|
export interface WalkupScanDestinationData {
|
|
4
18
|
"dd:Name": string[];
|
|
19
|
+
"dd3:Hostname": string[];
|
|
5
20
|
"dd:ResourceURI": string[];
|
|
6
|
-
"wus:
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
};
|
|
21
|
+
"wus:WalkupScanSettings": {
|
|
22
|
+
"scantype:ScanSettings": {
|
|
23
|
+
"dd:ScanPlexMode": string[];
|
|
24
|
+
}[];
|
|
25
|
+
"wus:Shortcut": KnownShortcut[];
|
|
26
|
+
}[];
|
|
17
27
|
}
|
|
18
28
|
|
|
19
29
|
export default class WalkupScanDestination {
|
|
@@ -21,26 +31,40 @@ export default class WalkupScanDestination {
|
|
|
21
31
|
constructor(data: WalkupScanDestinationData) {
|
|
22
32
|
this.data = data;
|
|
23
33
|
}
|
|
34
|
+
static async createWalkupScanDestination(
|
|
35
|
+
content: string
|
|
36
|
+
): Promise<WalkupScanDestination> {
|
|
37
|
+
const parsed = await parseString(content);
|
|
38
|
+
return new WalkupScanDestination(
|
|
39
|
+
parsed["wus:WalkupScanDestinations"]["wus:WalkupScanDestination"][0]
|
|
40
|
+
);
|
|
41
|
+
}
|
|
24
42
|
|
|
25
43
|
get name(): string {
|
|
26
44
|
return this.data["dd:Name"][0];
|
|
27
45
|
}
|
|
28
46
|
|
|
29
47
|
get hostname(): string {
|
|
30
|
-
return this.data["
|
|
48
|
+
return this.data["dd3:Hostname"][0];
|
|
31
49
|
}
|
|
32
50
|
|
|
33
51
|
get resourceURI(): string {
|
|
34
52
|
return this.data["dd:ResourceURI"][0];
|
|
35
53
|
}
|
|
36
54
|
|
|
37
|
-
get shortcut():
|
|
38
|
-
|
|
39
|
-
"0"
|
|
40
|
-
|
|
55
|
+
get shortcut(): null | KnownShortcut {
|
|
56
|
+
if (this.data.hasOwnProperty("wus:WalkupScanSettings")) {
|
|
57
|
+
return this.data["wus:WalkupScanSettings"]["0"]["wus:Shortcut"][0];
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
41
60
|
}
|
|
42
61
|
|
|
43
|
-
|
|
44
|
-
|
|
62
|
+
get scanPlexMode(): string | null {
|
|
63
|
+
if (this.data.hasOwnProperty("wus:WalkupScanSettings")) {
|
|
64
|
+
return this.data["wus:WalkupScanSettings"]["0"][
|
|
65
|
+
"scantype:ScanSettings"
|
|
66
|
+
][0]["dd:ScanPlexMode"][0];
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
45
69
|
}
|
|
46
70
|
}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
import { Parser } from "xml2js";
|
|
3
|
+
const parser = new Parser();
|
|
4
|
+
import { promisify } from "util";
|
|
5
|
+
const parseString = promisify<string, WalkupScanDestinationsData>(
|
|
6
|
+
parser.parseString
|
|
7
|
+
);
|
|
2
8
|
|
|
3
9
|
import WalkupScanDestination, {
|
|
4
10
|
WalkupScanDestinationData,
|
|
@@ -15,6 +21,12 @@ export default class WalkupScanDestinations {
|
|
|
15
21
|
constructor(data: WalkupScanDestinationsData) {
|
|
16
22
|
this.data = data;
|
|
17
23
|
}
|
|
24
|
+
static async createWalkupScanDestinations(
|
|
25
|
+
content: string
|
|
26
|
+
): Promise<WalkupScanDestinations> {
|
|
27
|
+
const parsed = await parseString(content);
|
|
28
|
+
return new WalkupScanDestinations(parsed);
|
|
29
|
+
}
|
|
18
30
|
|
|
19
31
|
get destinations(): WalkupScanDestination[] {
|
|
20
32
|
let walkupScanDestinations = this.data["wus:WalkupScanDestinations"];
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { Parser } from "xml2js";
|
|
3
|
+
const parser = new Parser();
|
|
4
|
+
import { promisify } from "util";
|
|
5
|
+
const parseString = promisify<string, WalkupScanManifestData>(
|
|
6
|
+
parser.parseString
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
export interface WalkupScanManifestData {
|
|
10
|
+
"man:Manifest": {
|
|
11
|
+
"map:ResourceMap": {
|
|
12
|
+
"map:ResourceLink": {
|
|
13
|
+
"dd:ResourceURI": string[];
|
|
14
|
+
}[];
|
|
15
|
+
"map:ResourceNode": {
|
|
16
|
+
"map:ResourceLink": {
|
|
17
|
+
"dd:ResourceURI": string[];
|
|
18
|
+
}[];
|
|
19
|
+
"map:ResourceType": {
|
|
20
|
+
"wus:WalkupScanResourceType": string[];
|
|
21
|
+
}[];
|
|
22
|
+
}[];
|
|
23
|
+
}[];
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export default class WalkupScanManifest {
|
|
28
|
+
private readonly data: WalkupScanManifestData;
|
|
29
|
+
|
|
30
|
+
constructor(data: WalkupScanManifestData) {
|
|
31
|
+
this.data = data;
|
|
32
|
+
}
|
|
33
|
+
static async createWalkupScanManifest(
|
|
34
|
+
content: string
|
|
35
|
+
): Promise<WalkupScanManifest> {
|
|
36
|
+
const parsed = await parseString(content);
|
|
37
|
+
return new WalkupScanManifest(parsed);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
get walkupScanDestinationsURI(): string | null {
|
|
41
|
+
const walkupScanToCompCaps = this.data["man:Manifest"]["map:ResourceMap"][
|
|
42
|
+
"0"
|
|
43
|
+
]["map:ResourceNode"].find(
|
|
44
|
+
(x) =>
|
|
45
|
+
x["map:ResourceType"][0]["wus:WalkupScanResourceType"][0] ===
|
|
46
|
+
"WalkupScanDestinations"
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
if (walkupScanToCompCaps === undefined) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
this.data["man:Manifest"]["map:ResourceMap"]["0"]["map:ResourceLink"][0][
|
|
55
|
+
"dd:ResourceURI"
|
|
56
|
+
][0] + walkupScanToCompCaps["map:ResourceLink"][0]["dd:ResourceURI"][0]
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { Parser } from "xml2js";
|
|
3
|
+
const parser = new Parser();
|
|
4
|
+
import { promisify } from "util";
|
|
5
|
+
const parseString = promisify<string, WalkupScanToCompCapsData>(
|
|
6
|
+
parser.parseString
|
|
7
|
+
);
|
|
8
|
+
export interface WalkupScanToCompCapsData {
|
|
9
|
+
"wus:WalkupScanToCompCaps": {
|
|
10
|
+
"wus:MaxNetworkDestinations": string[];
|
|
11
|
+
"wus:SupportsMultiItemScanFromPlaten": string[];
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export default class WalkupScanToCompCaps {
|
|
16
|
+
private readonly data: WalkupScanToCompCapsData;
|
|
17
|
+
|
|
18
|
+
constructor(data: WalkupScanToCompCapsData) {
|
|
19
|
+
this.data = data;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
static async createWalkupScanToCompCaps(
|
|
23
|
+
content: string
|
|
24
|
+
): Promise<WalkupScanToCompCaps> {
|
|
25
|
+
const parsed = await parseString(content);
|
|
26
|
+
return new WalkupScanToCompCaps(parsed);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
get supportsMultiItemScanFromPlaten(): boolean {
|
|
30
|
+
return (
|
|
31
|
+
this.data["wus:WalkupScanToCompCaps"][
|
|
32
|
+
"wus:SupportsMultiItemScanFromPlaten"
|
|
33
|
+
]["0"] === "true"
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
import { Parser } from "xml2js";
|
|
3
|
+
const parser = new Parser();
|
|
4
|
+
import { promisify } from "util";
|
|
5
|
+
import { KnownShortcut } from "./KnownShortcut";
|
|
6
|
+
const parseString = promisify<string, WalkupScanToCompDestinationRoot>(
|
|
7
|
+
parser.parseString
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
interface WalkupScanToCompDestinationRoot {
|
|
11
|
+
"wus:WalkupScanToCompDestination": WalkupScanToCompDestinationData;
|
|
12
|
+
}
|
|
2
13
|
|
|
3
14
|
export interface WalkupScanToCompDestinationData {
|
|
4
15
|
"dd:Name": string[];
|
|
5
16
|
"dd:ResourceURI": string[];
|
|
6
17
|
"dd3:Hostname": string[];
|
|
7
|
-
"wus:
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
"wus:Shortcut": string[]; //can be 'SaveDocument1' or 'SavePhoto1'
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
};
|
|
18
|
+
"wus:WalkupScanToCompSettings": {
|
|
19
|
+
"scantype:ScanSettings": {
|
|
20
|
+
"dd:ScanPlexMode": string[];
|
|
21
|
+
}[];
|
|
22
|
+
"wus:Shortcut": KnownShortcut[];
|
|
23
|
+
}[];
|
|
19
24
|
}
|
|
20
25
|
|
|
21
26
|
export default class WalkupScanToCompDestination {
|
|
@@ -23,6 +28,14 @@ export default class WalkupScanToCompDestination {
|
|
|
23
28
|
constructor(data: WalkupScanToCompDestinationData) {
|
|
24
29
|
this.data = data;
|
|
25
30
|
}
|
|
31
|
+
static async createWalkupScanToCompDestination(
|
|
32
|
+
content: string
|
|
33
|
+
): Promise<WalkupScanToCompDestination> {
|
|
34
|
+
const parsed = await parseString(content);
|
|
35
|
+
return new WalkupScanToCompDestination(
|
|
36
|
+
parsed["wus:WalkupScanToCompDestination"]
|
|
37
|
+
);
|
|
38
|
+
}
|
|
26
39
|
|
|
27
40
|
get name(): string {
|
|
28
41
|
return this.data["dd:Name"][0];
|
|
@@ -36,20 +49,21 @@ export default class WalkupScanToCompDestination {
|
|
|
36
49
|
return this.data["dd:ResourceURI"][0];
|
|
37
50
|
}
|
|
38
51
|
|
|
39
|
-
get shortcut():
|
|
40
|
-
if (
|
|
41
|
-
this.data["wus:
|
|
42
|
-
"wus:WalkupScanToCompSettings"
|
|
43
|
-
)
|
|
44
|
-
) {
|
|
45
|
-
return this.data["wus:WalkupScanToCompDestination"][
|
|
46
|
-
"wus:WalkupScanToCompSettings"
|
|
47
|
-
]["0"]["wus:Shortcut"][0];
|
|
52
|
+
get shortcut(): null | KnownShortcut {
|
|
53
|
+
if (this.data.hasOwnProperty("wus:WalkupScanToCompSettings")) {
|
|
54
|
+
return this.data["wus:WalkupScanToCompSettings"]["0"]["wus:Shortcut"][0];
|
|
48
55
|
}
|
|
49
|
-
return
|
|
56
|
+
return null;
|
|
50
57
|
}
|
|
51
58
|
|
|
52
|
-
|
|
53
|
-
|
|
59
|
+
get scanPlexMode(): string | null {
|
|
60
|
+
if (this.data.hasOwnProperty("wus:WalkupScanToCompSettings")) {
|
|
61
|
+
return (
|
|
62
|
+
this.data["wus:WalkupScanToCompSettings"]["0"]["scantype:ScanSettings"][
|
|
63
|
+
"0"
|
|
64
|
+
]["dd:ScanPlexMode"][0] || null
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
54
68
|
}
|
|
55
69
|
}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
import { Parser } from "xml2js";
|
|
3
|
+
const parser = new Parser();
|
|
4
|
+
import { promisify } from "util";
|
|
5
|
+
const parseString = promisify<string, WalkupScanToCompDestinationsData>(
|
|
6
|
+
parser.parseString
|
|
7
|
+
);
|
|
2
8
|
|
|
3
9
|
import WalkupScanToCompDestination, {
|
|
4
10
|
WalkupScanToCompDestinationData,
|
|
@@ -15,6 +21,12 @@ export default class WalkupScanToCompDestinations {
|
|
|
15
21
|
constructor(data: WalkupScanToCompDestinationsData) {
|
|
16
22
|
this.data = data;
|
|
17
23
|
}
|
|
24
|
+
static async createWalkupScanToCompDestinations(
|
|
25
|
+
content: string
|
|
26
|
+
): Promise<WalkupScanToCompDestinations> {
|
|
27
|
+
const parsed = await parseString(content);
|
|
28
|
+
return new WalkupScanToCompDestinations(parsed);
|
|
29
|
+
}
|
|
18
30
|
|
|
19
31
|
get destinations(): WalkupScanToCompDestination[] {
|
|
20
32
|
let walkupScanToCompDestinations =
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
import { Parser } from "xml2js";
|
|
3
|
+
const parser = new Parser();
|
|
4
|
+
import { promisify } from "util";
|
|
5
|
+
const parseString = promisify<string, WalkupScanToCompEventData>(
|
|
6
|
+
parser.parseString
|
|
7
|
+
);
|
|
2
8
|
|
|
3
9
|
export interface WalkupScanToCompEventData {
|
|
4
10
|
"wus:WalkupScanToCompEvent": {
|
|
5
|
-
|
|
6
|
-
}
|
|
11
|
+
"wus:WalkupScanToCompEventType": string[];
|
|
12
|
+
};
|
|
7
13
|
}
|
|
8
14
|
|
|
9
15
|
export default class WalkupScanToCompEvent {
|
|
@@ -11,8 +17,14 @@ export default class WalkupScanToCompEvent {
|
|
|
11
17
|
constructor(data: WalkupScanToCompEventData) {
|
|
12
18
|
this.data = data;
|
|
13
19
|
}
|
|
20
|
+
static async createWalkupScanToCompEvent(content: string) {
|
|
21
|
+
const parsed = await parseString(content);
|
|
22
|
+
return new WalkupScanToCompEvent(parsed);
|
|
23
|
+
}
|
|
14
24
|
|
|
15
25
|
get eventType(): string {
|
|
16
|
-
return this.data["wus:WalkupScanToCompEvent"][
|
|
26
|
+
return this.data["wus:WalkupScanToCompEvent"][
|
|
27
|
+
"wus:WalkupScanToCompEventType"
|
|
28
|
+
][0];
|
|
17
29
|
}
|
|
18
30
|
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { Parser } from "xml2js";
|
|
3
|
+
const parser = new Parser();
|
|
4
|
+
import { promisify } from "util";
|
|
5
|
+
const parseString = promisify<string, WalkupScanToCompManifestData>(
|
|
6
|
+
parser.parseString
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
export interface WalkupScanToCompManifestData {
|
|
10
|
+
"man:Manifest": {
|
|
11
|
+
"map:ResourceMap": {
|
|
12
|
+
"map:ResourceLink": {
|
|
13
|
+
"dd:ResourceURI": string[];
|
|
14
|
+
}[];
|
|
15
|
+
"map:ResourceNode": {
|
|
16
|
+
"map:ResourceLink": {
|
|
17
|
+
"dd:ResourceURI": string[];
|
|
18
|
+
}[];
|
|
19
|
+
"map:ResourceType": {
|
|
20
|
+
"wus:WalkupScanToCompResourceType": string[];
|
|
21
|
+
}[];
|
|
22
|
+
}[];
|
|
23
|
+
}[];
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export default class WalkupScanToCompManifest {
|
|
28
|
+
private readonly data: WalkupScanToCompManifestData;
|
|
29
|
+
|
|
30
|
+
constructor(data: WalkupScanToCompManifestData) {
|
|
31
|
+
this.data = data;
|
|
32
|
+
}
|
|
33
|
+
static async createWalkupScanToCompManifest(
|
|
34
|
+
content: string
|
|
35
|
+
): Promise<WalkupScanToCompManifest> {
|
|
36
|
+
const parsed = await parseString(content);
|
|
37
|
+
return new WalkupScanToCompManifest(parsed);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
get WalkupScanToCompCapsURI(): string | null {
|
|
41
|
+
const walkupScanToCompCaps = this.data["man:Manifest"]["map:ResourceMap"][
|
|
42
|
+
"0"
|
|
43
|
+
]["map:ResourceNode"].find(
|
|
44
|
+
(x) =>
|
|
45
|
+
x["map:ResourceType"][0]["wus:WalkupScanToCompResourceType"][0] ===
|
|
46
|
+
"WalkupScanToCompCaps"
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
if (walkupScanToCompCaps === undefined) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
this.data["man:Manifest"]["map:ResourceMap"]["0"]["map:ResourceLink"][0][
|
|
55
|
+
"dd:ResourceURI"
|
|
56
|
+
][0] + walkupScanToCompCaps["map:ResourceLink"][0]["dd:ResourceURI"][0]
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
}
|