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/listening.ts
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import HPApi from "./HPApi";
|
|
2
|
+
import Event from "./Event";
|
|
3
|
+
import Destination from "./Destination";
|
|
4
|
+
import { DeviceCapabilities } from "./DeviceCapabilities";
|
|
5
|
+
|
|
6
|
+
export async function waitScanRequest(compEventURI: string): Promise<boolean> {
|
|
7
|
+
const waitMax = 50;
|
|
8
|
+
for (let i = 0; i < waitMax; i++) {
|
|
9
|
+
let walkupScanToCompEvent = await HPApi.getWalkupScanToCompEvent(
|
|
10
|
+
compEventURI
|
|
11
|
+
);
|
|
12
|
+
let message = walkupScanToCompEvent.eventType;
|
|
13
|
+
if (message === "HostSelected") {
|
|
14
|
+
// this ok to wait
|
|
15
|
+
} else if (message === "ScanRequested") {
|
|
16
|
+
break;
|
|
17
|
+
} else if (message === "ScanNewPageRequested") {
|
|
18
|
+
break;
|
|
19
|
+
} else if (message === "ScanPagesComplete") {
|
|
20
|
+
console.log("no more page to scan, scan is finished");
|
|
21
|
+
return false;
|
|
22
|
+
} else {
|
|
23
|
+
console.log(`Unknown eventType: ${message}`);
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
console.log(`Waiting user input: ${i + 1}/${waitMax}`);
|
|
28
|
+
await new Promise((resolve) => setTimeout(resolve, 1000)); //wait 1s
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export async function waitForScanEvent(
|
|
34
|
+
resourceURI: string,
|
|
35
|
+
afterEtag: string | null = null
|
|
36
|
+
): Promise<Event> {
|
|
37
|
+
console.log("Start listening for new ScanEvent");
|
|
38
|
+
|
|
39
|
+
let eventTable = await HPApi.getEvents(afterEtag ?? "");
|
|
40
|
+
let acceptedScanEvent = null;
|
|
41
|
+
let currentEtag = eventTable.etag;
|
|
42
|
+
while (acceptedScanEvent == null) {
|
|
43
|
+
eventTable = await HPApi.getEvents(currentEtag, 1200);
|
|
44
|
+
currentEtag = eventTable.etag;
|
|
45
|
+
|
|
46
|
+
acceptedScanEvent = eventTable.eventTable.events.find(
|
|
47
|
+
(ev) =>
|
|
48
|
+
ev.isScanEvent &&
|
|
49
|
+
ev.destinationURI &&
|
|
50
|
+
ev.destinationURI.indexOf(resourceURI) >= 0
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
return acceptedScanEvent;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async function registerWalkupScanToCompDestination(
|
|
57
|
+
registrationConfig: RegistrationConfig
|
|
58
|
+
): Promise<string> {
|
|
59
|
+
const walkupScanDestinations = await HPApi.getWalkupScanToCompDestinations();
|
|
60
|
+
const destinations = walkupScanDestinations.destinations;
|
|
61
|
+
|
|
62
|
+
console.log(
|
|
63
|
+
"Host destinations fetched:",
|
|
64
|
+
destinations.map((d) => d.name).join(", ")
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
const hostname = registrationConfig.label;
|
|
68
|
+
const destination = destinations.find((x) => x.name === hostname);
|
|
69
|
+
|
|
70
|
+
let resourceURI;
|
|
71
|
+
if (destination) {
|
|
72
|
+
console.log(
|
|
73
|
+
`Re-using existing destination: ${hostname} - ${destination.resourceURI}`
|
|
74
|
+
);
|
|
75
|
+
resourceURI = destination.resourceURI;
|
|
76
|
+
} else {
|
|
77
|
+
resourceURI = await HPApi.registerWalkupScanToCompDestination(
|
|
78
|
+
new Destination(hostname, hostname, true)
|
|
79
|
+
);
|
|
80
|
+
console.log(`New Destination registered: ${hostname} - ${resourceURI}`);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
console.log(`Using: ${hostname}`);
|
|
84
|
+
|
|
85
|
+
return resourceURI;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
async function registerWalkupScanDestination(
|
|
89
|
+
registrationConfig: RegistrationConfig
|
|
90
|
+
): Promise<string> {
|
|
91
|
+
const walkupScanDestinations = await HPApi.getWalkupScanDestinations();
|
|
92
|
+
const destinations = walkupScanDestinations.destinations;
|
|
93
|
+
|
|
94
|
+
console.log(
|
|
95
|
+
"Host destinations fetched:",
|
|
96
|
+
destinations.map((d) => d.name).join(", ")
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
const hostname = registrationConfig.label;
|
|
100
|
+
const destination = destinations.find((x) => x.name === hostname);
|
|
101
|
+
|
|
102
|
+
let resourceURI;
|
|
103
|
+
if (destination) {
|
|
104
|
+
console.log(
|
|
105
|
+
`Re-using existing destination: ${hostname} - ${destination.resourceURI}`
|
|
106
|
+
);
|
|
107
|
+
resourceURI = destination.resourceURI;
|
|
108
|
+
} else {
|
|
109
|
+
resourceURI = await HPApi.registerWalkupScanDestination(
|
|
110
|
+
new Destination(hostname, hostname, false)
|
|
111
|
+
);
|
|
112
|
+
console.log(`New Destination registered: ${hostname} - ${resourceURI}`);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
console.log(`Using: ${hostname}`);
|
|
116
|
+
|
|
117
|
+
return resourceURI;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export type RegistrationConfig = {
|
|
121
|
+
label: string;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
export async function waitScanEvent(
|
|
125
|
+
deviceCapabilities: DeviceCapabilities,
|
|
126
|
+
registrationConfig: RegistrationConfig
|
|
127
|
+
): Promise<Event> {
|
|
128
|
+
let resourceURI: string;
|
|
129
|
+
if (deviceCapabilities.useWalkupScanToComp) {
|
|
130
|
+
resourceURI = await registerWalkupScanToCompDestination(registrationConfig);
|
|
131
|
+
} else {
|
|
132
|
+
resourceURI = await registerWalkupScanDestination(registrationConfig);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
console.log("Waiting scan event for:", resourceURI);
|
|
136
|
+
return await waitForScanEvent(resourceURI);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export async function clearRegistrations() {
|
|
140
|
+
const dests = await HPApi.getWalkupScanToCompDestinations();
|
|
141
|
+
for (let i = 0; i < dests.destinations.length; i++) {
|
|
142
|
+
console.log(`Removing: ${dests.destinations[i].name}`);
|
|
143
|
+
await HPApi.removeDestination(dests.destinations[i]);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { DeviceCapabilities } from "./DeviceCapabilities";
|
|
2
|
+
import HPApi from "./HPApi";
|
|
3
|
+
import WalkupScanToCompCaps from "./WalkupScanToCompCaps";
|
|
4
|
+
|
|
5
|
+
export async function readDeviceCapabilities(): Promise<DeviceCapabilities> {
|
|
6
|
+
let supportsMultiItemScanFromPlaten = true;
|
|
7
|
+
const discoveryTree = await HPApi.getDiscoveryTree();
|
|
8
|
+
let walkupScanToCompCaps: WalkupScanToCompCaps | null = null;
|
|
9
|
+
if (discoveryTree.WalkupScanToCompManifestURI != null) {
|
|
10
|
+
const walkupScanToCompManifest = await HPApi.getWalkupScanToCompManifest(
|
|
11
|
+
discoveryTree.WalkupScanToCompManifestURI
|
|
12
|
+
);
|
|
13
|
+
if (walkupScanToCompManifest.WalkupScanToCompCapsURI != null) {
|
|
14
|
+
walkupScanToCompCaps = await HPApi.getWalkupScanToCompCaps(
|
|
15
|
+
walkupScanToCompManifest.WalkupScanToCompCapsURI
|
|
16
|
+
);
|
|
17
|
+
supportsMultiItemScanFromPlaten =
|
|
18
|
+
walkupScanToCompCaps.supportsMultiItemScanFromPlaten;
|
|
19
|
+
}
|
|
20
|
+
} else if (discoveryTree.WalkupScanManifestURI != null) {
|
|
21
|
+
const walkupScanManifest = await HPApi.getWalkupScanManifest(
|
|
22
|
+
discoveryTree.WalkupScanManifestURI
|
|
23
|
+
);
|
|
24
|
+
if (walkupScanManifest.walkupScanDestinationsURI != null) {
|
|
25
|
+
await HPApi.getWalkupScanDestinations(
|
|
26
|
+
walkupScanManifest.walkupScanDestinationsURI
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
} else {
|
|
30
|
+
console.log("Unknown device!");
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (discoveryTree.ScanJobManifestURI != null) {
|
|
34
|
+
const scanJobManifest = await HPApi.getScanJobManifest(
|
|
35
|
+
discoveryTree.ScanJobManifestURI
|
|
36
|
+
);
|
|
37
|
+
if (scanJobManifest.ScanCapsURI != null) {
|
|
38
|
+
await HPApi.getScanCaps(scanJobManifest.ScanCapsURI);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
supportsMultiItemScanFromPlaten,
|
|
44
|
+
useWalkupScanToComp: walkupScanToCompCaps != null,
|
|
45
|
+
};
|
|
46
|
+
}
|