node-hp-scan-to 1.8.0 → 1.9.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.
Files changed (131) hide show
  1. package/README.md +272 -51
  2. package/dist/HPApi.d.ts +13 -3
  3. package/dist/HPApi.js +106 -28
  4. package/dist/HPApi.js.map +1 -1
  5. package/dist/PathHelper.d.ts +7 -4
  6. package/dist/PathHelper.js +108 -31
  7. package/dist/PathHelper.js.map +1 -1
  8. package/dist/commands/adfAutoscanCmd.js +2 -2
  9. package/dist/commands/adfAutoscanCmd.js.map +1 -1
  10. package/dist/commands/listenCmd.d.ts +3 -0
  11. package/dist/commands/listenCmd.js +75 -42
  12. package/dist/commands/listenCmd.js.map +1 -1
  13. package/dist/commands/singleScanCmd.js +1 -1
  14. package/dist/commands/singleScanCmd.js.map +1 -1
  15. package/dist/commitInfo.json +1 -1
  16. package/dist/healthcheck.d.ts +2 -1
  17. package/dist/healthcheck.js +1 -0
  18. package/dist/healthcheck.js.map +1 -1
  19. package/dist/hpModels/AdfState.d.ts +4 -0
  20. package/dist/hpModels/AdfState.js +9 -0
  21. package/dist/hpModels/AdfState.js.map +1 -0
  22. package/dist/hpModels/Destination.js +2 -36
  23. package/dist/hpModels/Destination.js.map +1 -1
  24. package/dist/hpModels/EnumUtils.d.ts +3 -0
  25. package/dist/hpModels/EnumUtils.js +13 -0
  26. package/dist/hpModels/EnumUtils.js.map +1 -0
  27. package/dist/hpModels/EsclManifest.d.ts +45 -0
  28. package/dist/hpModels/EsclManifest.js +43 -0
  29. package/dist/hpModels/EsclManifest.js.map +1 -0
  30. package/dist/hpModels/EsclScanCaps.d.ts +37 -0
  31. package/dist/hpModels/EsclScanCaps.js +83 -0
  32. package/dist/hpModels/EsclScanCaps.js.map +1 -0
  33. package/dist/hpModels/EsclScanImageInfo.d.ts +17 -0
  34. package/dist/hpModels/EsclScanImageInfo.js +26 -0
  35. package/dist/hpModels/EsclScanImageInfo.js.map +1 -0
  36. package/dist/hpModels/EsclScanJobSettings.d.ts +16 -0
  37. package/dist/hpModels/EsclScanJobSettings.js +95 -0
  38. package/dist/hpModels/EsclScanJobSettings.js.map +1 -0
  39. package/dist/hpModels/EsclScanStatus.d.ts +75 -0
  40. package/dist/hpModels/EsclScanStatus.js +98 -0
  41. package/dist/hpModels/EsclScanStatus.js.map +1 -0
  42. package/dist/hpModels/EventTable.js +2 -5
  43. package/dist/hpModels/EventTable.js.map +1 -1
  44. package/dist/hpModels/IScanJobSettings.d.ts +5 -0
  45. package/dist/hpModels/IScanJobSettings.js +3 -0
  46. package/dist/hpModels/IScanJobSettings.js.map +1 -0
  47. package/dist/hpModels/IScanStatus.d.ts +9 -0
  48. package/dist/hpModels/IScanStatus.js +3 -0
  49. package/dist/hpModels/IScanStatus.js.map +1 -0
  50. package/dist/hpModels/Job.d.ts +11 -2
  51. package/dist/hpModels/Job.js +18 -7
  52. package/dist/hpModels/Job.js.map +1 -1
  53. package/dist/hpModels/ParseXmlString.d.ts +1 -0
  54. package/dist/hpModels/ParseXmlString.js +17 -0
  55. package/dist/hpModels/ParseXmlString.js.map +1 -0
  56. package/dist/hpModels/ScanCaps.d.ts +1 -0
  57. package/dist/hpModels/ScanCaps.js +5 -5
  58. package/dist/hpModels/ScanCaps.js.map +1 -1
  59. package/dist/hpModels/ScanJobManifest.d.ts +1 -0
  60. package/dist/hpModels/ScanJobManifest.js +9 -5
  61. package/dist/hpModels/ScanJobManifest.js.map +1 -1
  62. package/dist/hpModels/ScanJobSettings.d.ts +7 -2
  63. package/dist/hpModels/ScanJobSettings.js +19 -3
  64. package/dist/hpModels/ScanJobSettings.js.map +1 -1
  65. package/dist/hpModels/ScanPlexMode.d.ts +4 -0
  66. package/dist/hpModels/ScanPlexMode.js +9 -0
  67. package/dist/hpModels/ScanPlexMode.js.map +1 -0
  68. package/dist/hpModels/ScanStatus.d.ts +6 -3
  69. package/dist/hpModels/ScanStatus.js +9 -10
  70. package/dist/hpModels/ScanStatus.js.map +1 -1
  71. package/dist/hpModels/ScannerState.d.ts +4 -0
  72. package/dist/hpModels/ScannerState.js +9 -0
  73. package/dist/hpModels/ScannerState.js.map +1 -0
  74. package/dist/hpModels/WalkupScanDestination.d.ts +2 -1
  75. package/dist/hpModels/WalkupScanDestination.js +5 -6
  76. package/dist/hpModels/WalkupScanDestination.js.map +1 -1
  77. package/dist/hpModels/WalkupScanDestinations.js +2 -5
  78. package/dist/hpModels/WalkupScanDestinations.js.map +1 -1
  79. package/dist/hpModels/WalkupScanManifest.js +2 -5
  80. package/dist/hpModels/WalkupScanManifest.js.map +1 -1
  81. package/dist/hpModels/WalkupScanToCompCaps.js +2 -5
  82. package/dist/hpModels/WalkupScanToCompCaps.js.map +1 -1
  83. package/dist/hpModels/WalkupScanToCompDestination.d.ts +2 -1
  84. package/dist/hpModels/WalkupScanToCompDestination.js +5 -6
  85. package/dist/hpModels/WalkupScanToCompDestination.js.map +1 -1
  86. package/dist/hpModels/WalkupScanToCompDestinations.js +2 -5
  87. package/dist/hpModels/WalkupScanToCompDestinations.js.map +1 -1
  88. package/dist/hpModels/WalkupScanToCompEvent.d.ts +7 -1
  89. package/dist/hpModels/WalkupScanToCompEvent.js +13 -6
  90. package/dist/hpModels/WalkupScanToCompEvent.js.map +1 -1
  91. package/dist/hpModels/WalkupScanToCompManifest.js +2 -5
  92. package/dist/hpModels/WalkupScanToCompManifest.js.map +1 -1
  93. package/dist/index.js +13 -300
  94. package/dist/index.js.map +1 -1
  95. package/dist/listening.js +8 -6
  96. package/dist/listening.js.map +1 -1
  97. package/dist/pdfProcessing.js +1 -1
  98. package/dist/pdfProcessing.js.map +1 -1
  99. package/dist/postProcessing.js +9 -3
  100. package/dist/postProcessing.js.map +1 -1
  101. package/dist/program.d.ts +10 -0
  102. package/dist/program.js +346 -0
  103. package/dist/program.js.map +1 -0
  104. package/dist/readDeviceCapabilities.d.ts +1 -1
  105. package/dist/readDeviceCapabilities.js +56 -4
  106. package/dist/readDeviceCapabilities.js.map +1 -1
  107. package/dist/scanJobHandlers.d.ts +4 -3
  108. package/dist/scanJobHandlers.js +139 -48
  109. package/dist/scanJobHandlers.js.map +1 -1
  110. package/dist/scanProcessing.d.ts +10 -5
  111. package/dist/scanProcessing.js +19 -16
  112. package/dist/scanProcessing.js.map +1 -1
  113. package/dist/type/DeviceCapabilities.d.ts +8 -0
  114. package/dist/type/DiscoveryTree.d.ts +2 -0
  115. package/dist/type/DiscoveryTree.js +12 -20
  116. package/dist/type/DiscoveryTree.js.map +1 -1
  117. package/dist/type/DuplexAssemblyMode.d.ts +33 -0
  118. package/dist/type/DuplexAssemblyMode.js +38 -0
  119. package/dist/type/DuplexAssemblyMode.js.map +1 -0
  120. package/dist/type/FileConfig.d.ts +47 -0
  121. package/dist/type/FileConfig.js +88 -0
  122. package/dist/type/FileConfig.js.map +1 -0
  123. package/dist/type/helpGroupsHeadings.d.ts +10 -0
  124. package/dist/type/helpGroupsHeadings.js +15 -0
  125. package/dist/type/helpGroupsHeadings.js.map +1 -0
  126. package/dist/type/scanConfigs.d.ts +3 -0
  127. package/dist/type/scanMode.d.ts +4 -0
  128. package/dist/type/scanMode.js +9 -0
  129. package/dist/type/scanMode.js.map +1 -0
  130. package/dist/type/scanTargetDefinitions.d.ts +2 -0
  131. package/package.json +35 -28
@@ -0,0 +1,346 @@
1
+ #!/usr/bin/env node
2
+ // noinspection XmlDeprecatedElement,HtmlDeprecatedTag
3
+ "use strict";
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.setupProgram = setupProgram;
9
+ const os_1 = __importDefault(require("os"));
10
+ const bonjour_service_1 = require("bonjour-service");
11
+ const HPApi_1 = __importDefault(require("./HPApi"));
12
+ const healthcheck_1 = require("./healthcheck");
13
+ const fs_1 = __importDefault(require("fs"));
14
+ const extra_typings_1 = require("@commander-js/extra-typings");
15
+ const listenCmd_1 = require("./commands/listenCmd");
16
+ const adfAutoscanCmd_1 = require("./commands/adfAutoscanCmd");
17
+ const singleScanCmd_1 = require("./commands/singleScanCmd");
18
+ const clearRegistrationsCmd_1 = require("./commands/clearRegistrationsCmd");
19
+ const helpGroupsHeadings_1 = require("./type/helpGroupsHeadings");
20
+ const scanMode_1 = require("./type/scanMode");
21
+ const DuplexAssemblyMode_1 = require("./type/DuplexAssemblyMode");
22
+ function findOfficejetIp(deviceNamePrefix) {
23
+ return new Promise((resolve) => {
24
+ const bonjour = new bonjour_service_1.Bonjour();
25
+ console.log("Searching device...");
26
+ const browser = bonjour.find({
27
+ type: "http",
28
+ }, (service) => {
29
+ console.log(".");
30
+ if (service.name.startsWith(deviceNamePrefix) &&
31
+ service.port === 80 &&
32
+ service.type === "http" &&
33
+ service.addresses != null) {
34
+ browser.stop();
35
+ bonjour.destroy();
36
+ console.log(`Found: ${service.name}`);
37
+ resolve(service.addresses[0]);
38
+ }
39
+ });
40
+ browser.start();
41
+ });
42
+ }
43
+ function setupScanParameters(commandName) {
44
+ return new extra_typings_1.Command(commandName)
45
+ .addOption(new extra_typings_1.Option("-d, --directory <dir>", "Directory where scans are saved (default: /tmp/scan-to-pcRANDOM)").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.ouput))
46
+ .addOption(new extra_typings_1.Option("-p, --pattern <pattern>", 'Pattern for filename (i.e. "scan"_dd.mm.yyyy_hh:MM:ss, default would be scanPageNUMBER), make sure that the pattern is enclosed in extra quotes').helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.ouput))
47
+ .addOption(new extra_typings_1.Option("-r, --resolution <dpi>", "Resolution in DPI of the scans (default: 200)").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.scan))
48
+ .addOption(new extra_typings_1.Option("--mode <mode>", "Selects the scan mode (default: Color)")
49
+ .choices(["Gray", "Color"])
50
+ .helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.scan))
51
+ .addOption(new extra_typings_1.Option("-w, --width <width>", "Width in pixels of the scans (default: max)").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.scan))
52
+ .addOption(new extra_typings_1.Option("-h, --height <height>", "Height in pixels of the scans (default: max)").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.scan))
53
+ .addOption(new extra_typings_1.Option("-t, --temp-directory <dir>", "Temp directory used for processing (default: /tmp/scan-to-pcRANDOM)").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.scan))
54
+ .addOption(new extra_typings_1.Option("--prefer-eSCL", "Prefer eSCL protocol if available").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.scan))
55
+ .option("--device-up-polling-interval <deviceUpPollingInterval>", "Device up polling interval in milliseconds", parseFloat)
56
+ .addOption(new extra_typings_1.Option("-s, --paperless-post-document-url <paperless_post_document_url>", "The paperless post document url (example: https://domain.tld/api/documents/post_document/)").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.paperless))
57
+ .addOption(new extra_typings_1.Option("-o, --paperless-token <paperless_token>", "The paperless token").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.paperless))
58
+ .addOption(new extra_typings_1.Option("--paperless-group-multi-page-scan-into-a-pdf", "Combine multiple scanned images into a single PDF document").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.paperless))
59
+ .addOption(new extra_typings_1.Option("--paperless-always-send-as-pdf-file", "Always convert scan job to pdf before sending to paperless").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.paperless))
60
+ .addOption(new extra_typings_1.Option("-k, --keep-files", "Keep the scan files on the file system when sent to external systems for local backup and easy access (default: false)").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.ouput))
61
+ .addOption(new extra_typings_1.Option("--nextcloud-url <nextcloud_url>", "The nextcloud url (example: https://domain.tld)").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.nextcloud))
62
+ .addOption(new extra_typings_1.Option("--nextcloud-username <nextcloud_username>", "The nextcloud username").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.nextcloud))
63
+ .addOption(new extra_typings_1.Option("--nextcloud-password <nextcloud_app_password>", "The nextcloud app password for username. Either this or nextcloud-password-file is required").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.nextcloud))
64
+ .addOption(new extra_typings_1.Option("--nextcloud-password-file <nextcloud_app_password_file>", "File name that contains the nextcloud app password for username. Either this or nextcloud-password is required").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.nextcloud))
65
+ .addOption(new extra_typings_1.Option("--nextcloud-upload-folder <nextcloud_upload_folder>", "The upload folder where documents or images are uploaded (default: scan)").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.nextcloud));
66
+ }
67
+ async function getDeviceIp(options, configFile) {
68
+ let ip = getOptConfiguredValue(options.address, configFile.ip);
69
+ if (!ip) {
70
+ const name = getConfiguredValue(options.name, configFile.name, "HP Smart Tank Plus 570 series");
71
+ ip = await findOfficejetIp(name);
72
+ }
73
+ console.log(`Using device ip: ${ip}`);
74
+ return ip;
75
+ }
76
+ function getIsDebug(options, configFile) {
77
+ const debug = getConfiguredValue(options.debug, configFile.debug, false);
78
+ if (debug) {
79
+ console.log(`IsDebug: ${debug}`);
80
+ }
81
+ return debug;
82
+ }
83
+ function getPaperlessConfig(options, fileConfig) {
84
+ const paperlessPostDocumentUrl = getOptConfiguredValue(options.paperlessPostDocumentUrl, fileConfig.paperless_post_document_url);
85
+ const configPaperlessToken = getOptConfiguredValue(options.paperlessToken, fileConfig.paperless_token);
86
+ if (paperlessPostDocumentUrl && configPaperlessToken) {
87
+ const configPaperlessKeepFiles = getConfiguredValue(options.keepFiles, fileConfig.keep_files, false);
88
+ const groupMultiPageScanIntoAPdf = getConfiguredValue(options.paperlessGroupMultiPageScanIntoAPdf, fileConfig.paperless_group_multi_page_scan_into_a_pdf, false);
89
+ const alwaysSendAsPdfFile = getConfiguredValue(options.paperlessAlwaysSendAsPdfFile, fileConfig.paperless_always_send_as_pdf_file, false);
90
+ console.log(`Paperless configuration provided, post document url: ${paperlessPostDocumentUrl}, the token length: ${configPaperlessToken.length}, keepFiles: ${configPaperlessKeepFiles}`);
91
+ return {
92
+ postDocumentUrl: paperlessPostDocumentUrl,
93
+ authToken: configPaperlessToken,
94
+ keepFiles: configPaperlessKeepFiles,
95
+ groupMultiPageScanIntoAPdf: groupMultiPageScanIntoAPdf,
96
+ alwaysSendAsPdfFile: alwaysSendAsPdfFile,
97
+ };
98
+ }
99
+ else {
100
+ return undefined;
101
+ }
102
+ }
103
+ function getNextcloudConfig(options, fileConfig) {
104
+ const configNextcloudUrl = getOptConfiguredValue(options.nextcloudUrl, fileConfig.nextcloud_url);
105
+ const configNextcloudUsername = getOptConfiguredValue(options.nextcloudUsername, fileConfig.nextcloud_username);
106
+ const configNextcloudPassword = getOptConfiguredValue(options.nextcloudPassword, fileConfig.nextcloud_password);
107
+ const configNextcloudPasswordFile = getOptConfiguredValue(options.nextcloudPasswordFile, fileConfig.nextcloud_password_file);
108
+ if (configNextcloudUrl &&
109
+ configNextcloudUsername &&
110
+ (configNextcloudPassword || configNextcloudPasswordFile)) {
111
+ const configNextcloudUploadFolder = getConfiguredValue(options.nextcloudUploadFolder, fileConfig.nextcloud_upload_folder, "scan");
112
+ const configNextcloudKeepFiles = getConfiguredValue(options.keepFiles, fileConfig.keep_files, false);
113
+ let nextcloudPassword;
114
+ if (configNextcloudPasswordFile) {
115
+ nextcloudPassword = fs_1.default
116
+ .readFileSync(configNextcloudPasswordFile, "utf8")
117
+ .trimEnd();
118
+ }
119
+ else {
120
+ nextcloudPassword = configNextcloudPassword ?? "";
121
+ }
122
+ const passLength = configNextcloudPassword?.length;
123
+ const usernameLength = configNextcloudUsername.length;
124
+ console.log(`Nextcloud configuration provided, url: ${configNextcloudUrl}, username length: ${usernameLength}, password length: ${passLength}, upload folder: ${configNextcloudUploadFolder}, keepFiles: ${configNextcloudKeepFiles}`);
125
+ return {
126
+ baseUrl: configNextcloudUrl,
127
+ username: configNextcloudUsername,
128
+ password: nextcloudPassword,
129
+ uploadFolder: configNextcloudUploadFolder,
130
+ keepFiles: configNextcloudKeepFiles,
131
+ };
132
+ }
133
+ else {
134
+ return undefined;
135
+ }
136
+ }
137
+ /**
138
+ * Retrieves the configured value based on the provided options.
139
+ * This function prioritizes the configuration from the command line if it is provided.
140
+ * If the command line option is not defined, it checks the value from the config file.
141
+ * Finally, if neither the command line nor the config file provides a value,
142
+ * it returns the default value defined in the code.
143
+ */
144
+ function getConfiguredValue(cliOption, fileConfig, defaultValue) {
145
+ if (cliOption !== undefined) {
146
+ return cliOption;
147
+ }
148
+ if (fileConfig !== undefined) {
149
+ return fileConfig;
150
+ }
151
+ return defaultValue;
152
+ }
153
+ function getOptConfiguredValue(option, config) {
154
+ return getConfiguredValue(option, config, undefined);
155
+ }
156
+ function getHealthCheckSetting(options, configFile) {
157
+ const healthCheckEnabled = getConfiguredValue(options.healthCheck, configFile.enableHealthCheck, false);
158
+ const healthCheckPort = parseInt(getConfiguredValue(options.healthCheckPort, configFile.healthCheckPort?.toString(), "3000"), 10);
159
+ return {
160
+ isHealthCheckEnabled: healthCheckEnabled,
161
+ healthCheckPort: healthCheckPort,
162
+ };
163
+ }
164
+ function getScanConfiguration(options, fileConfig) {
165
+ const directoryConfig = {
166
+ directory: getOptConfiguredValue(options.directory, fileConfig.directory),
167
+ tempDirectory: getOptConfiguredValue(options.tempDirectory, fileConfig.tempDirectory),
168
+ filePattern: getOptConfiguredValue(options.pattern, fileConfig.pattern),
169
+ };
170
+ const configWidth = getConfiguredValue(options.width, fileConfig.width?.toString(), "0");
171
+ const width = configWidth.toLowerCase() === "max"
172
+ ? Number.MAX_SAFE_INTEGER
173
+ : parseInt(configWidth, 10);
174
+ const configHeight = getConfiguredValue(options.height, fileConfig.height?.toString(), "0");
175
+ const height = configHeight.toLowerCase() === "max"
176
+ ? Number.MAX_SAFE_INTEGER
177
+ : parseInt(configHeight, 10);
178
+ const paperlessConfig = getPaperlessConfig(options, fileConfig);
179
+ const nextcloudConfig = getNextcloudConfig(options, fileConfig);
180
+ const resolution = parseInt(getConfiguredValue(options.resolution, fileConfig.resolution?.toString(), "200"), 10);
181
+ const mode = getConfiguredValue(options.mode, fileConfig.mode, scanMode_1.ScanMode.Color);
182
+ const preferEscl = getConfiguredValue(options.preferESCL, fileConfig.prefer_escl, false);
183
+ const scanConfig = {
184
+ resolution,
185
+ mode,
186
+ width: width,
187
+ height: height,
188
+ directoryConfig,
189
+ paperlessConfig,
190
+ nextcloudConfig,
191
+ preferEscl,
192
+ };
193
+ return scanConfig;
194
+ }
195
+ function getDeviceUpPollingInterval(options, configFile) {
196
+ return getConfiguredValue(options.deviceUpPollingInterval, configFile.deviceUpPollingInterval, 1000);
197
+ }
198
+ function createListenCliCmd(configFile) {
199
+ return setupScanParameters("listen")
200
+ .description("Listen the device for new scan job to save to this target")
201
+ .addOption(new extra_typings_1.Option("-l, --label <label>", "The label to display on the device (the default is the hostname)").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.deviceControlScreen))
202
+ .addOption(new extra_typings_1.Option("--add-emulated-duplex [mode]", "Enable emulated duplex scanning, with optional assembly mode (default: document-wise)")
203
+ .choices(Object.values(DuplexAssemblyMode_1.DuplexAssemblyMode))
204
+ .helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.deviceControlScreen))
205
+ .addOption(new extra_typings_1.Option("--emulated-duplex-label <label>", "The emulated duplex label to display on the device (the default is to suffix the main label with duplex)").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.deviceControlScreen))
206
+ .action(async (_, cmd) => {
207
+ const options = cmd.optsWithGlobals();
208
+ const ip = await getDeviceIp(options, configFile);
209
+ HPApi_1.default.setDeviceIP(ip);
210
+ const isDebug = getIsDebug(options, configFile);
211
+ HPApi_1.default.setDebug(isDebug);
212
+ const registrationConfigs = [];
213
+ const registrationConfig = {
214
+ label: getConfiguredValue(options.label, configFile.label, os_1.default.hostname()),
215
+ isDuplexSingleSide: false,
216
+ };
217
+ registrationConfigs.push(registrationConfig);
218
+ if (getConfiguredValue(options.addEmulatedDuplex == undefined ? undefined : true, configFile.add_emulated_duplex, false)) {
219
+ registrationConfigs.push({
220
+ label: getConfiguredValue(options.emulatedDuplexLabel, configFile.emulated_duplex_label, `${registrationConfig.label} duplex`),
221
+ isDuplexSingleSide: true,
222
+ duplexAssemblyMode: getConfiguredValue(options.addEmulatedDuplex == true
223
+ ? DuplexAssemblyMode_1.DuplexAssemblyMode.DOCUMENT_WISE
224
+ : options.addEmulatedDuplex, configFile.emulated_duplex_assembly_mode, DuplexAssemblyMode_1.DuplexAssemblyMode.DOCUMENT_WISE),
225
+ });
226
+ }
227
+ const deviceUpPollingInterval = getDeviceUpPollingInterval(options, configFile);
228
+ let healthCheckSrv = null;
229
+ const healthCheckSetting = getHealthCheckSetting(options, configFile);
230
+ if (healthCheckSetting.isHealthCheckEnabled) {
231
+ healthCheckSrv = (0, healthcheck_1.startHealthCheckServer)(healthCheckSetting.healthCheckPort);
232
+ }
233
+ const scanConfig = getScanConfiguration(options, configFile);
234
+ await (0, listenCmd_1.listenCmd)(registrationConfigs, scanConfig, deviceUpPollingInterval);
235
+ healthCheckSrv?.close();
236
+ });
237
+ }
238
+ function createAdfAutoscanCliCmd(fileConfig) {
239
+ return setupScanParameters("adf-autoscan")
240
+ .description("Automatically trigger a new scan job to this target once paper is detected in the automatic document feeder (adf)")
241
+ .addOption(new extra_typings_1.Option("--duplex", "If specified, all the scans will be in duplex if the device support it").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.scan))
242
+ .addOption(new extra_typings_1.Option("--pdf", "If specified, the scan result will always be a pdf document, the default depends on the device choice").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.ouput))
243
+ .addOption(new extra_typings_1.Option("--pollingInterval <pollingInterval>", "Time interval in millisecond between each lookup for content in the automatic document feeder").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.adfAutoScan))
244
+ .addOption(new extra_typings_1.Option("--start-scan-delay <startScanDelay>", "Once document are detected to be in the adf, this specify the wait delay in millisecond before triggering the scan").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.adfAutoScan))
245
+ .action(async (_, cmd) => {
246
+ const options = cmd.optsWithGlobals();
247
+ const ip = await getDeviceIp(options, fileConfig);
248
+ HPApi_1.default.setDeviceIP(ip);
249
+ const isDebug = getIsDebug(options, fileConfig);
250
+ HPApi_1.default.setDebug(isDebug);
251
+ const deviceUpPollingInterval = getDeviceUpPollingInterval(options, fileConfig);
252
+ let healthCheckSrv = null;
253
+ const healthCheckSetting = getHealthCheckSetting(options, fileConfig);
254
+ if (healthCheckSetting.isHealthCheckEnabled) {
255
+ healthCheckSrv = (0, healthcheck_1.startHealthCheckServer)(healthCheckSetting.healthCheckPort);
256
+ }
257
+ const scanConfig = getScanConfiguration(options, fileConfig);
258
+ const adfScanConfig = {
259
+ ...scanConfig,
260
+ isDuplex: getConfiguredValue(options.duplex, fileConfig.autoscan_duplex, false),
261
+ generatePdf: getConfiguredValue(options.pdf, fileConfig.autoscan_pdf, false),
262
+ pollingInterval: (options.pollingInterval
263
+ ? parseInt(options.pollingInterval, 10)
264
+ : undefined) ||
265
+ fileConfig.autoscan_pollingInterval ||
266
+ 1000,
267
+ startScanDelay: (options.startScanDelay
268
+ ? parseInt(options.startScanDelay, 10)
269
+ : undefined) ||
270
+ fileConfig.autoscan_startScanDelay ||
271
+ 5000,
272
+ };
273
+ await (0, adfAutoscanCmd_1.adfAutoscanCmd)(adfScanConfig, deviceUpPollingInterval);
274
+ healthCheckSrv?.close();
275
+ });
276
+ }
277
+ function createSingleScanCliCmd(fileConfig) {
278
+ return setupScanParameters("single-scan")
279
+ .description("Trigger a new scan job")
280
+ .addOption(new extra_typings_1.Option("--duplex", "If specified, all the scans will be in duplex if the device support it").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.scan))
281
+ .addOption(new extra_typings_1.Option("--pdf", "If specified, the scan result will always be a pdf document, the default depends on the device choice").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.ouput))
282
+ .action(async (_, cmd) => {
283
+ const options = cmd.optsWithGlobals();
284
+ const ip = await getDeviceIp(options, fileConfig);
285
+ HPApi_1.default.setDeviceIP(ip);
286
+ const isDebug = getIsDebug(options, fileConfig);
287
+ HPApi_1.default.setDebug(isDebug);
288
+ let healthCheckSrv = null;
289
+ const healthCheckSetting = getHealthCheckSetting(options, fileConfig);
290
+ if (healthCheckSetting.isHealthCheckEnabled) {
291
+ healthCheckSrv = (0, healthcheck_1.startHealthCheckServer)(healthCheckSetting.healthCheckPort);
292
+ }
293
+ const deviceUpPollingInterval = getDeviceUpPollingInterval(options, fileConfig);
294
+ const scanConfig = getScanConfiguration(options, fileConfig);
295
+ const singleScanConfig = {
296
+ ...scanConfig,
297
+ isDuplex: getConfiguredValue(options.duplex, fileConfig.single_scan_duplex, false),
298
+ generatePdf: getConfiguredValue(options.pdf, fileConfig.single_scan_pdf, false),
299
+ };
300
+ await (0, singleScanCmd_1.singleScanCmd)(singleScanConfig, deviceUpPollingInterval);
301
+ healthCheckSrv?.close();
302
+ });
303
+ }
304
+ function createClearRegistrationsCliCmd(fileConfig) {
305
+ return new extra_typings_1.Command("clear-registrations")
306
+ .description("Clear the list or registered target on the device")
307
+ .action(async (_, cmd) => {
308
+ const options = cmd.optsWithGlobals();
309
+ const ip = await getDeviceIp(options, fileConfig);
310
+ HPApi_1.default.setDeviceIP(ip);
311
+ const isDebug = getIsDebug(options, fileConfig);
312
+ HPApi_1.default.setDebug(isDebug);
313
+ let healthCheckSrv = null;
314
+ const healthCheckSetting = getHealthCheckSetting(options, fileConfig);
315
+ if (healthCheckSetting.isHealthCheckEnabled) {
316
+ healthCheckSrv = (0, healthcheck_1.startHealthCheckServer)(healthCheckSetting.healthCheckPort);
317
+ }
318
+ await (0, clearRegistrationsCmd_1.clearRegistrationsCmd)();
319
+ healthCheckSrv?.close();
320
+ });
321
+ }
322
+ function createProgram() {
323
+ return new extra_typings_1.Command()
324
+ .option("-a, --address <ip>", "IP address of the device, when specified, the ip will be used instead of the name")
325
+ .option("-n, --name <name>", "Name of the device to lookup for on the network")
326
+ .option("-D, --debug", "Enable debug")
327
+ .addOption(new extra_typings_1.Option("--health-check", "Start an http health check endpoint").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.healthCheck))
328
+ .addOption(new extra_typings_1.Option("--health-check-port <health-check-port>", "Define the port for the HTTP health check endpoint").helpGroup(helpGroupsHeadings_1.HelpGroupsHeadings.healthCheck));
329
+ }
330
+ function setupProgram(fileConfig) {
331
+ const program = createProgram();
332
+ const cmdListen = createListenCliCmd(fileConfig);
333
+ cmdListen.optsWithGlobals();
334
+ program.addCommand(cmdListen, { isDefault: true });
335
+ const cmdAdfAutoscan = createAdfAutoscanCliCmd(fileConfig);
336
+ cmdAdfAutoscan.optsWithGlobals();
337
+ program.addCommand(cmdAdfAutoscan);
338
+ const cmdSingleScan = createSingleScanCliCmd(fileConfig);
339
+ cmdSingleScan.optsWithGlobals();
340
+ program.addCommand(cmdSingleScan);
341
+ const cmdClearRegistrations = createClearRegistrationsCliCmd(fileConfig);
342
+ cmdClearRegistrations.optsWithGlobals();
343
+ program.addCommand(cmdClearRegistrations);
344
+ return program;
345
+ }
346
+ //# sourceMappingURL=program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import { DeviceCapabilities } from "./type/DeviceCapabilities";
2
- export declare function readDeviceCapabilities(): Promise<DeviceCapabilities>;
2
+ export declare function readDeviceCapabilities(preferEscl: boolean): Promise<DeviceCapabilities>;
@@ -5,7 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.readDeviceCapabilities = readDeviceCapabilities;
7
7
  const HPApi_1 = __importDefault(require("./HPApi"));
8
- async function getScanCaps(discoveryTree) {
8
+ const EsclScanJobSettings_1 = __importDefault(require("./hpModels/EsclScanJobSettings"));
9
+ const ScanJobSettings_1 = __importDefault(require("./hpModels/ScanJobSettings"));
10
+ async function getScanCaps(discoveryTree, preferEscl) {
9
11
  let scanCaps = null;
10
12
  if (discoveryTree.ScanJobManifestURI != null) {
11
13
  const scanJobManifest = await HPApi_1.default.getScanJobManifest(discoveryTree.ScanJobManifestURI);
@@ -13,9 +15,22 @@ async function getScanCaps(discoveryTree) {
13
15
  scanCaps = await HPApi_1.default.getScanCaps(scanJobManifest.ScanCapsURI);
14
16
  }
15
17
  }
16
- return scanCaps;
18
+ let eSclScanCaps = null;
19
+ if (discoveryTree.EsclManifestURI != null) {
20
+ const scanJobManifest = await HPApi_1.default.getEsclScanJobManifest(discoveryTree.EsclManifestURI);
21
+ if (scanJobManifest.scanCapsURI != null) {
22
+ eSclScanCaps = await HPApi_1.default.getEsclScanCaps(scanJobManifest.scanCapsURI);
23
+ }
24
+ }
25
+ if (preferEscl && eSclScanCaps != null) {
26
+ return eSclScanCaps;
27
+ }
28
+ if (scanCaps != null) {
29
+ return scanCaps;
30
+ }
31
+ return eSclScanCaps;
17
32
  }
18
- async function readDeviceCapabilities() {
33
+ async function readDeviceCapabilities(preferEscl) {
19
34
  let supportsMultiItemScanFromPlaten = true;
20
35
  let useWalkupScanToComp = false;
21
36
  const discoveryTree = await HPApi_1.default.getDiscoveryTree();
@@ -35,7 +50,40 @@ async function readDeviceCapabilities() {
35
50
  else {
36
51
  console.log("WARNING: No compatible device capabilities detected. The device may not support the listen command, and while the application will continue to run, it is likely to encounter a crash. If your device has an automatic document feeder, you may want to try using the adf-autoscan command.");
37
52
  }
38
- const scanCaps = await getScanCaps(discoveryTree);
53
+ const scanCaps = await getScanCaps(discoveryTree, preferEscl);
54
+ if (scanCaps == null) {
55
+ console.log("WARNING: No scan capabilities found on the device, the device is likely not well supported");
56
+ }
57
+ const getScanStatus = async () => {
58
+ let scanStatus;
59
+ if (scanCaps?.isEscl) {
60
+ scanStatus = await HPApi_1.default.getEsclScanStatus();
61
+ }
62
+ else {
63
+ scanStatus = await HPApi_1.default.getScanStatus();
64
+ }
65
+ return scanStatus;
66
+ };
67
+ const createScanJobSettings = (inputSource, contentType, resolution, mode, width, height, isDuplex) => {
68
+ let scanJobSettings;
69
+ if (scanCaps?.isEscl) {
70
+ scanJobSettings = new EsclScanJobSettings_1.default(inputSource, contentType, resolution, mode, width, height, isDuplex);
71
+ }
72
+ else {
73
+ scanJobSettings = new ScanJobSettings_1.default(inputSource, contentType, resolution, mode, width, height, isDuplex);
74
+ }
75
+ return scanJobSettings;
76
+ };
77
+ const submitScanJob = async (scanJobSettings) => {
78
+ let jobUrl;
79
+ if (scanCaps?.isEscl) {
80
+ jobUrl = await HPApi_1.default.postEsclJob(scanJobSettings);
81
+ }
82
+ else {
83
+ jobUrl = await HPApi_1.default.postJob(scanJobSettings);
84
+ }
85
+ return jobUrl;
86
+ };
39
87
  return {
40
88
  supportsMultiItemScanFromPlaten,
41
89
  useWalkupScanToComp,
@@ -47,6 +95,10 @@ async function readDeviceCapabilities() {
47
95
  adfDuplexMaxHeight: scanCaps?.adfDuplexMaxHeight || null,
48
96
  hasAdfDuplex: scanCaps?.hasAdfDuplex || false,
49
97
  hasAdfDetectPaperLoaded: scanCaps?.hasAdfDetectPaperLoaded || false,
98
+ isEscl: scanCaps?.isEscl || false,
99
+ getScanStatus,
100
+ createScanJobSettings,
101
+ submitScanJob,
50
102
  };
51
103
  }
52
104
  //# sourceMappingURL=readDeviceCapabilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readDeviceCapabilities.js","sourceRoot":"","sources":["../src/readDeviceCapabilities.ts"],"names":[],"mappings":";;;;;AAoBA,wDAsCC;AAzDD,oDAA4B;AAI5B,KAAK,UAAU,WAAW,CACxB,aAA4B;IAE5B,IAAI,QAAQ,GAAoB,IAAI,CAAC;IACrC,IAAI,aAAa,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC;QAC7C,MAAM,eAAe,GAAG,MAAM,eAAK,CAAC,kBAAkB,CACpD,aAAa,CAAC,kBAAkB,CACjC,CAAC;QACF,IAAI,eAAe,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;YACxC,QAAQ,GAAG,MAAM,eAAK,CAAC,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,sBAAsB;IAC1C,IAAI,+BAA+B,GAAG,IAAI,CAAC;IAC3C,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAEhC,MAAM,aAAa,GAAG,MAAM,eAAK,CAAC,gBAAgB,EAAE,CAAC;IAErD,IAAI,aAAa,CAAC,2BAA2B,IAAI,IAAI,EAAE,CAAC;QACtD,mBAAmB,GAAG,IAAI,CAAC;QAC3B,MAAM,wBAAwB,GAAG,MAAM,eAAK,CAAC,2BAA2B,CACtE,aAAa,CAAC,2BAA2B,CAC1C,CAAC;QACF,IAAI,wBAAwB,CAAC,uBAAuB,IAAI,IAAI,EAAE,CAAC;YAC7D,MAAM,oBAAoB,GAAG,MAAM,eAAK,CAAC,uBAAuB,CAC9D,wBAAwB,CAAC,uBAAuB,CACjD,CAAC;YACF,+BAA+B;gBAC7B,oBAAoB,CAAC,+BAA+B,CAAC;QACzD,CAAC;IACH,CAAC;SAAM,IAAI,aAAa,CAAC,qBAAqB,IAAI,IAAI,EAAE,CAAC;QACvD,oEAAoE;QACpE,MAAM,eAAK,CAAC,qBAAqB,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,6RAA6R,CAAC,CAAC;IAC7S,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;IAElD,OAAO;QACL,+BAA+B;QAC/B,mBAAmB;QACnB,cAAc,EAAE,QAAQ,EAAE,cAAc,IAAI,IAAI;QAChD,eAAe,EAAE,QAAQ,EAAE,eAAe,IAAI,IAAI;QAClD,WAAW,EAAE,QAAQ,EAAE,WAAW,IAAI,IAAI;QAC1C,YAAY,EAAE,QAAQ,EAAE,YAAY,IAAI,IAAI;QAC5C,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,IAAI,IAAI;QACtD,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB,IAAI,IAAI;QACxD,YAAY,EAAE,QAAQ,EAAE,YAAY,IAAI,KAAK;QAC7C,uBAAuB,EAAE,QAAQ,EAAE,uBAAuB,IAAI,KAAK;KACpE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"readDeviceCapabilities.js","sourceRoot":"","sources":["../src/readDeviceCapabilities.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { DeviceCapabilities } from "./type/DeviceCapabilities";
2
- import ScanJobSettings from "./hpModels/ScanJobSettings";
3
2
  import { ScanContent } from "./type/ScanContent";
3
+ import { JobState } from "./hpModels/Job";
4
4
  import { InputSource } from "./type/InputSource";
5
5
  import { SelectedScanTarget } from "./type/scanTargetDefinitions";
6
6
  import { PageCountingStrategy } from "./type/pageCountingStrategy";
7
- export declare function executeScanJob(scanJobSettings: ScanJobSettings, inputSource: InputSource, folder: string, scanCount: number, scanJobContent: ScanContent, filePattern: string | undefined, pageCountingStrategy: PageCountingStrategy): Promise<"Completed" | "Canceled">;
8
- export declare function executeScanJobs(scanJobSettings: ScanJobSettings, inputSource: InputSource, folder: string, scanCount: number, scanJobContent: ScanContent, selectedScanTarget: SelectedScanTarget, deviceCapabilities: DeviceCapabilities, filePattern: string | undefined, pageCountingStrategy: PageCountingStrategy): Promise<void>;
7
+ import { IScanJobSettings } from "./hpModels/IScanJobSettings";
8
+ export declare function executeScanJob(scanJobSettings: IScanJobSettings, inputSource: InputSource, folder: string, scanCount: number, scanJobContent: ScanContent, filePattern: string | undefined, pageCountingStrategy: PageCountingStrategy, deviceCapabilities: DeviceCapabilities): Promise<JobState>;
9
+ export declare function executeScanJobs(scanJobSettings: IScanJobSettings, inputSource: InputSource, folder: string, scanCount: number, scanJobContent: ScanContent, selectedScanTarget: SelectedScanTarget, deviceCapabilities: DeviceCapabilities, filePattern: string | undefined, pageCountingStrategy: PageCountingStrategy): Promise<void>;