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.
Files changed (235) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +49 -10
  3. package/dist/Destination.js +36 -84
  4. package/dist/Destination.js.map +1 -1
  5. package/dist/DeviceCapabilities.d.ts +4 -0
  6. package/dist/DeviceCapabilities.js +3 -0
  7. package/dist/DeviceCapabilities.js.map +1 -0
  8. package/dist/DiscoveryTree.d.ts +16 -0
  9. package/dist/DiscoveryTree.js +38 -0
  10. package/dist/DiscoveryTree.js.map +1 -0
  11. package/dist/Event.d.ts +1 -1
  12. package/dist/Event.js +24 -39
  13. package/dist/Event.js.map +1 -1
  14. package/dist/EventTable.d.ts +5 -0
  15. package/dist/EventTable.js +24 -18
  16. package/dist/EventTable.js.map +1 -1
  17. package/dist/HPApi.d.ts +26 -18
  18. package/dist/HPApi.js +386 -461
  19. package/dist/HPApi.js.map +1 -1
  20. package/dist/Job.d.ts +8 -7
  21. package/dist/Job.js +69 -86
  22. package/dist/Job.js.map +1 -1
  23. package/dist/JpegUtil.js +73 -82
  24. package/dist/JpegUtil.js.map +1 -1
  25. package/dist/KnownShortcut.d.ts +1 -0
  26. package/dist/KnownShortcut.js +3 -0
  27. package/dist/KnownShortcut.js.map +1 -0
  28. package/dist/PathHelper.d.ts +2 -1
  29. package/dist/PathHelper.js +41 -68
  30. package/dist/PathHelper.js.map +1 -1
  31. package/dist/ScanCaps.d.ts +7 -0
  32. package/dist/ScanCaps.js +17 -0
  33. package/dist/ScanCaps.js.map +1 -0
  34. package/dist/ScanContent.js +18 -73
  35. package/dist/ScanContent.js.map +1 -1
  36. package/dist/ScanJobManifest.d.ts +23 -0
  37. package/dist/ScanJobManifest.js +24 -0
  38. package/dist/ScanJobManifest.js.map +1 -0
  39. package/dist/ScanJobSettings.d.ts +3 -1
  40. package/dist/ScanJobSettings.js +48 -88
  41. package/dist/ScanJobSettings.js.map +1 -1
  42. package/dist/ScanStatus.d.ts +1 -0
  43. package/dist/ScanStatus.js +27 -28
  44. package/dist/ScanStatus.js.map +1 -1
  45. package/dist/WalkupScanDestination.d.ts +11 -13
  46. package/dist/WalkupScanDestination.js +32 -35
  47. package/dist/WalkupScanDestination.js.map +1 -1
  48. package/dist/WalkupScanDestinations.d.ts +1 -0
  49. package/dist/WalkupScanDestinations.js +21 -18
  50. package/dist/WalkupScanDestinations.js.map +1 -1
  51. package/dist/WalkupScanManifest.d.ts +23 -0
  52. package/dist/WalkupScanManifest.js +25 -0
  53. package/dist/WalkupScanManifest.js.map +1 -0
  54. package/dist/WalkupScanToCompCaps.d.ts +12 -0
  55. package/dist/WalkupScanToCompCaps.js +20 -0
  56. package/dist/WalkupScanToCompCaps.js.map +1 -0
  57. package/dist/WalkupScanToCompDestination.d.ts +10 -14
  58. package/dist/WalkupScanToCompDestination.js +32 -38
  59. package/dist/WalkupScanToCompDestination.js.map +1 -1
  60. package/dist/WalkupScanToCompDestinations.d.ts +1 -0
  61. package/dist/WalkupScanToCompDestinations.js +21 -18
  62. package/dist/WalkupScanToCompDestinations.js.map +1 -1
  63. package/dist/WalkupScanToCompEvent.d.ts +2 -1
  64. package/dist/WalkupScanToCompEvent.js +14 -11
  65. package/dist/WalkupScanToCompEvent.js.map +1 -1
  66. package/dist/WalkupScanToCompManifest.d.ts +23 -0
  67. package/dist/WalkupScanToCompManifest.js +25 -0
  68. package/dist/WalkupScanToCompManifest.js.map +1 -0
  69. package/dist/delay.d.ts +1 -0
  70. package/dist/delay.js +10 -0
  71. package/dist/delay.js.map +1 -0
  72. package/dist/fixJpegSize.d.ts +19 -0
  73. package/dist/fixJpegSize.js +292 -0
  74. package/dist/fixJpegSize.js.map +1 -0
  75. package/dist/index.js +209 -607
  76. package/dist/index.js.map +1 -1
  77. package/dist/listening.d.ts +9 -0
  78. package/dist/listening.js +108 -0
  79. package/dist/listening.js.map +1 -0
  80. package/dist/readDeviceCapabilities.d.ts +2 -0
  81. package/dist/readDeviceCapabilities.js +41 -0
  82. package/dist/readDeviceCapabilities.js.map +1 -0
  83. package/dist/scanProcess.d.ts +19 -0
  84. package/dist/scanProcess.js +292 -0
  85. package/dist/scanProcess.js.map +1 -0
  86. package/dist/scanProcessing.d.ts +20 -0
  87. package/dist/scanProcessing.js +320 -0
  88. package/dist/scanProcessing.js.map +1 -0
  89. package/dist/src/Destination.d.ts +8 -0
  90. package/dist/src/Destination.js +68 -0
  91. package/dist/src/Destination.js.map +1 -0
  92. package/dist/src/DiscoveryTree.d.ts +16 -0
  93. package/dist/src/DiscoveryTree.js +38 -0
  94. package/dist/src/DiscoveryTree.js.map +1 -0
  95. package/dist/src/Event.d.ts +21 -0
  96. package/dist/src/Event.js +32 -0
  97. package/dist/src/Event.js.map +1 -0
  98. package/dist/src/EventTable.d.ts +16 -0
  99. package/dist/src/EventTable.js +33 -0
  100. package/dist/src/EventTable.js.map +1 -0
  101. package/dist/src/HPApi.d.ts +50 -0
  102. package/dist/src/HPApi.js +454 -0
  103. package/dist/src/HPApi.js.map +1 -0
  104. package/dist/src/Job.d.ts +37 -0
  105. package/dist/src/Job.js +78 -0
  106. package/dist/src/Job.js.map +1 -0
  107. package/dist/src/JpegUtil.d.ts +26 -0
  108. package/dist/src/JpegUtil.js +229 -0
  109. package/dist/src/JpegUtil.js.map +1 -0
  110. package/dist/src/KnownShortcut.d.ts +1 -0
  111. package/dist/src/KnownShortcut.js +3 -0
  112. package/dist/src/KnownShortcut.js.map +1 -0
  113. package/dist/src/PathHelper.d.ts +6 -0
  114. package/dist/src/PathHelper.js +52 -0
  115. package/dist/src/PathHelper.js.map +1 -0
  116. package/dist/src/ScanCaps.d.ts +7 -0
  117. package/dist/src/ScanCaps.js +17 -0
  118. package/dist/src/ScanCaps.js.map +1 -0
  119. package/dist/src/ScanJobManifest.d.ts +23 -0
  120. package/dist/src/ScanJobManifest.js +24 -0
  121. package/dist/src/ScanJobManifest.js.map +1 -0
  122. package/dist/src/ScanJobSettings.d.ts +8 -0
  123. package/dist/src/ScanJobSettings.js +56 -0
  124. package/dist/src/ScanJobSettings.js.map +1 -0
  125. package/dist/src/ScanStatus.d.ts +19 -0
  126. package/dist/src/ScanStatus.js +35 -0
  127. package/dist/src/ScanStatus.js.map +1 -0
  128. package/dist/src/WalkupScanDestination.d.ts +22 -0
  129. package/dist/src/WalkupScanDestination.js +38 -0
  130. package/dist/src/WalkupScanDestination.js.map +1 -0
  131. package/dist/src/WalkupScanDestinations.d.ts +12 -0
  132. package/dist/src/WalkupScanDestinations.js +30 -0
  133. package/dist/src/WalkupScanDestinations.js.map +1 -0
  134. package/dist/src/WalkupScanManifest.d.ts +23 -0
  135. package/dist/src/WalkupScanManifest.js +25 -0
  136. package/dist/src/WalkupScanManifest.js.map +1 -0
  137. package/dist/src/WalkupScanToCompCaps.d.ts +12 -0
  138. package/dist/src/WalkupScanToCompCaps.js +20 -0
  139. package/dist/src/WalkupScanToCompCaps.js.map +1 -0
  140. package/dist/src/WalkupScanToCompDestination.d.ts +22 -0
  141. package/dist/src/WalkupScanToCompDestination.js +38 -0
  142. package/dist/src/WalkupScanToCompDestination.js.map +1 -0
  143. package/dist/src/WalkupScanToCompDestinations.d.ts +12 -0
  144. package/dist/src/WalkupScanToCompDestinations.js +30 -0
  145. package/dist/src/WalkupScanToCompDestinations.js.map +1 -0
  146. package/dist/src/WalkupScanToCompEvent.d.ts +11 -0
  147. package/dist/src/WalkupScanToCompEvent.js +20 -0
  148. package/dist/src/WalkupScanToCompEvent.js.map +1 -0
  149. package/dist/src/WalkupScanToCompManifest.d.ts +23 -0
  150. package/dist/src/WalkupScanToCompManifest.js +25 -0
  151. package/dist/src/WalkupScanToCompManifest.js.map +1 -0
  152. package/dist/src/delay.d.ts +1 -0
  153. package/dist/src/delay.js +10 -0
  154. package/dist/src/delay.js.map +1 -0
  155. package/dist/test/DiscoveryTree.test.d.ts +1 -0
  156. package/dist/test/DiscoveryTree.test.js +68 -0
  157. package/dist/test/DiscoveryTree.test.js.map +1 -0
  158. package/dist/test/EtagEventTable.test.d.ts +1 -0
  159. package/dist/test/EtagEventTable.test.js +93 -0
  160. package/dist/test/EtagEventTable.test.js.map +1 -0
  161. package/dist/test/Job.test.d.ts +1 -0
  162. package/dist/test/Job.test.js +104 -0
  163. package/dist/test/Job.test.js.map +1 -0
  164. package/dist/test/JpegUtil.test.d.ts +1 -0
  165. package/dist/test/JpegUtil.test.js +51 -0
  166. package/dist/test/JpegUtil.test.js.map +1 -0
  167. package/dist/test/PathHelper.test.d.ts +1 -0
  168. package/dist/test/PathHelper.test.js +99 -0
  169. package/dist/test/PathHelper.test.js.map +1 -0
  170. package/dist/test/ScanJobManifest.test.d.ts +1 -0
  171. package/dist/test/ScanJobManifest.test.js +56 -0
  172. package/dist/test/ScanJobManifest.test.js.map +1 -0
  173. package/dist/test/ScanJobSettings.test.d.ts +1 -0
  174. package/dist/test/ScanJobSettings.test.js +53 -0
  175. package/dist/test/ScanJobSettings.test.js.map +1 -0
  176. package/dist/test/ScanStatus.test.d.ts +1 -0
  177. package/dist/test/ScanStatus.test.js +75 -0
  178. package/dist/test/ScanStatus.test.js.map +1 -0
  179. package/dist/test/WalkupScanDestination.test.d.ts +1 -0
  180. package/dist/test/WalkupScanDestination.test.js +80 -0
  181. package/dist/test/WalkupScanDestination.test.js.map +1 -0
  182. package/dist/test/WalkupScanDestinations.test.d.ts +1 -0
  183. package/dist/test/WalkupScanDestinations.test.js +68 -0
  184. package/dist/test/WalkupScanDestinations.test.js.map +1 -0
  185. package/dist/test/WalkupScanManifest.test.d.ts +1 -0
  186. package/dist/test/WalkupScanManifest.test.js +46 -0
  187. package/dist/test/WalkupScanManifest.test.js.map +1 -0
  188. package/dist/test/WalkupScanToCompCaps.test.d.ts +1 -0
  189. package/dist/test/WalkupScanToCompCaps.test.js +56 -0
  190. package/dist/test/WalkupScanToCompCaps.test.js.map +1 -0
  191. package/dist/test/WalkupScanToCompDestination.test.d.ts +1 -0
  192. package/dist/test/WalkupScanToCompDestination.test.js +58 -0
  193. package/dist/test/WalkupScanToCompDestination.test.js.map +1 -0
  194. package/dist/test/WalkupScanToCompDestinations.test.d.ts +1 -0
  195. package/dist/test/WalkupScanToCompDestinations.test.js +58 -0
  196. package/dist/test/WalkupScanToCompDestinations.test.js.map +1 -0
  197. package/dist/test/WalkupScanToCompEvent.test.d.ts +1 -0
  198. package/dist/test/WalkupScanToCompEvent.test.js +46 -0
  199. package/dist/test/WalkupScanToCompEvent.test.js.map +1 -0
  200. package/dist/test/WalkupScanToCompManifest.test.d.ts +1 -0
  201. package/dist/test/WalkupScanToCompManifest.test.js +46 -0
  202. package/dist/test/WalkupScanToCompManifest.test.js.map +1 -0
  203. package/dist/test/clean.d.ts +1 -0
  204. package/dist/test/clean.js +21 -0
  205. package/dist/test/clean.js.map +1 -0
  206. package/package.json +27 -18
  207. package/src/Destination.ts +1 -1
  208. package/src/DeviceCapabilities.ts +4 -0
  209. package/src/DiscoveryTree.ts +56 -0
  210. package/src/Event.ts +17 -7
  211. package/src/EventTable.ts +20 -0
  212. package/src/HPApi.ts +245 -103
  213. package/src/Job.ts +51 -29
  214. package/src/JpegUtil.ts +8 -4
  215. package/src/KnownShortcut.ts +6 -0
  216. package/src/PathHelper.ts +47 -13
  217. package/src/ScanCaps.ts +19 -0
  218. package/src/ScanContent.ts +4 -1
  219. package/src/ScanJobManifest.ts +55 -0
  220. package/src/ScanJobSettings.ts +18 -3
  221. package/src/ScanStatus.ts +9 -0
  222. package/src/WalkupScanDestination.ts +42 -18
  223. package/src/WalkupScanDestinations.ts +12 -0
  224. package/src/WalkupScanManifest.ts +59 -0
  225. package/src/WalkupScanToCompCaps.ts +36 -0
  226. package/src/WalkupScanToCompDestination.ts +38 -24
  227. package/src/WalkupScanToCompDestinations.ts +12 -0
  228. package/src/WalkupScanToCompEvent.ts +15 -3
  229. package/src/WalkupScanToCompManifest.ts +59 -0
  230. package/src/delay.ts +5 -0
  231. package/src/index.ts +267 -465
  232. package/src/listening.ts +145 -0
  233. package/src/readDeviceCapabilities.ts +46 -0
  234. package/src/scanProcessing.ts +535 -0
  235. package/tsconfig.json +1 -1
package/dist/HPApi.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"HPApi.js","sourceRoot":"","sources":["../src/HPApi.ts"],"names":[],"mappings":"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","sourcesContent":["\"use strict\";\n\nimport WalkupScanDestination, {\n WalkupScanDestinationData,\n} from \"./WalkupScanDestination\";\nimport WalkupScanToCompDestination, {\n WalkupScanToCompDestinationData,\n} from \"./WalkupScanToCompDestination\";\nimport { promisify } from \"util\";\nimport fs from \"fs\";\nimport axios, {\n AxiosError,\n AxiosRequestConfig,\n AxiosRequestHeaders,\n AxiosResponse,\n} from \"axios\";\nimport { URL } from \"url\";\nimport { Parser } from \"xml2js\";\nimport * as stream from 'stream/promises';\nimport EventTable, { EventTableData } from \"./EventTable\";\nimport Job, { JobData } from \"./Job\";\nimport ScanStatus, { ScanStatusData } from \"./ScanStatus\";\nimport WalkupScanDestinations, {\n WalkupScanDestinationsData,\n} from \"./WalkupScanDestinations\";\nimport WalkupScanToCompDestinations, {\n WalkupScanToCompDestinationsData,\n} from \"./WalkupScanToCompDestinations\";\nimport ScanJobSettings from \"./ScanJobSettings\";\nimport Destination from \"./Destination\";\nimport { Stream } from \"stream\";\nimport WalkupScanToCompEvent, {\n WalkupScanToCompEventData,\n} from \"./WalkupScanToCompEvent\";\n\nconst parser = new Parser();\nconst parseString = promisify<string, any>(parser.parseString);\nlet printerIP = \"192.168.1.11\";\nlet debug = false;\nlet callCount = 0;\n\nexport default class HPApi {\n static setPrinterIP(ip: string) {\n printerIP = ip;\n }\n\n static setDebug(dbg: boolean) {\n debug = dbg;\n }\n\n private static logDebug(callId: number, isRequest: boolean, msg: any) {\n if (debug) {\n const id = String(callId).padStart(4, \"0\");\n const content = typeof msg === \"string\" ? msg : JSON.stringify(msg);\n console.log(id + (isRequest ? \" -> \" : \" <- \") + content);\n }\n }\n\n private static async callAxios(request: AxiosRequestConfig) {\n callCount++;\n HPApi.logDebug(callCount, true, request);\n try {\n const response = (await axios(request)) as AxiosResponse<string>;\n HPApi.logDebug(callCount, false, {\n status: response.status,\n data: response.data,\n headers: response.headers,\n statusText: response.statusText,\n });\n return response;\n } catch (error) {\n const axiosError = error as AxiosError;\n\n if (axiosError.isAxiosError) {\n HPApi.logDebug(callCount, false, {\n status: axiosError.response?.status,\n data: axiosError.response?.data,\n headers: axiosError.response?.headers,\n statusText: axiosError.response?.statusText,\n });\n }\n throw error;\n }\n }\n\n static async getWalkupScanDestinations(): Promise<WalkupScanDestinations> {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: \"/WalkupScan/WalkupScanDestinations\",\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw new Error(response.statusText);\n } else {\n const parsed = (await parseString(\n response.data\n )) as WalkupScanDestinationsData;\n return new WalkupScanDestinations(parsed);\n }\n }\n\n static async getWalkupScanToCompDestinations(): Promise<WalkupScanToCompDestinations> {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: \"/WalkupScanToComp/WalkupScanToCompDestinations\",\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw new Error(response.statusText);\n } else {\n const parsed = (await parseString(\n response.data\n )) as WalkupScanToCompDestinationsData;\n return new WalkupScanToCompDestinations(parsed);\n }\n }\n\n static async getWalkupScanToCompCaps(): Promise<boolean> {\n return HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: \"/WalkupScanToComp/WalkupScanToCompCaps\",\n method: \"GET\",\n responseType: \"text\",\n }).then(\n (response) => response.status == 200,\n () => false\n );\n }\n\n static async getWalkupScanToCompEvent(compEventURI: string): Promise<WalkupScanToCompEvent> {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: compEventURI,\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw response;\n } else {\n return HPApi.createWalkupScanToCompEvent(response.data);\n }\n }\n\n static async removeDestination(walkupScanDestination: WalkupScanDestination) {\n let urlInfo = new URL(walkupScanDestination.resourceURI);\n\n if (urlInfo.pathname === null) {\n throw new Error(\n `invalid walkupScanDestination.resourceURI: ${walkupScanDestination.resourceURI}`\n );\n }\n\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: urlInfo.pathname,\n method: \"DELETE\",\n responseType: \"text\",\n });\n if (response.status === 204) {\n return true;\n } else {\n throw response;\n }\n }\n\n static async registerDestination(destination: Destination, toComp: boolean) {\n let xml = await destination.toXML();\n let url = \"/WalkupScan/WalkupScanDestinations\";\n if (toComp) {\n url = \"/WalkupScanToComp/WalkupScanToCompDestinations\";\n }\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: url,\n method: \"POST\",\n headers: { \"Content-Type\": \"text/xml\" },\n data: xml,\n responseType: \"text\",\n });\n\n if (response.status === 201) {\n return new URL(response.headers.location).pathname;\n } else {\n throw response;\n }\n }\n\n static async getEvents(\n etag = \"\",\n timeout = 0\n ): Promise<{ etag: string; eventTable: EventTable }> {\n let url = this.appendTimeout(\"/EventMgmt/EventTable\", timeout);\n\n let headers = this.placeETagHeader(etag, {});\n\n let response: AxiosResponse<string>;\n try {\n response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: url,\n method: \"GET\",\n responseType: \"text\",\n headers: headers,\n });\n } catch (error) {\n const axiosError = error as AxiosError;\n\n if (!axiosError.isAxiosError) throw error;\n\n if (axiosError.response?.status === 304) {\n return {\n etag: etag,\n eventTable: new EventTable({}),\n };\n }\n throw error;\n }\n\n const parsed = await parseString(response.data);\n return {\n etag: response.headers[\"etag\"],\n eventTable: new EventTable(parsed as EventTableData),\n };\n }\n\n static placeETagHeader(etag: string, headers: AxiosRequestHeaders) {\n if (etag !== \"\") {\n headers = {\n \"If-None-Match\": etag,\n };\n }\n return headers;\n }\n\n static appendTimeout(url: string, timeout: number | null = null): string {\n if (timeout == null) {\n timeout = 1200;\n }\n if (timeout > 0) {\n url += \"?timeout=\" + timeout;\n }\n return url;\n }\n\n static async getDestination(destinationURL: string) {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: destinationURL,\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw response;\n } else {\n const content = response.data;\n if (destinationURL.includes(\"WalkupScanToComp\")) {\n return this.createWalkupScanToCompDestination(content);\n } else {\n return this.createWalkupScanDestination(content);\n }\n }\n }\n\n static async createWalkupScanDestination(content: string) {\n const parsed = (await parseString(content)) as WalkupScanDestinationData;\n return new WalkupScanDestination(parsed);\n }\n\n static async createWalkupScanToCompDestination(content: string) {\n const parsed = (await parseString(\n content\n )) as WalkupScanToCompDestinationData;\n return new WalkupScanToCompDestination(parsed);\n }\n\n static async createWalkupScanToCompEvent(content: string) {\n const parsed = (await parseString(content)) as WalkupScanToCompEventData;\n return new WalkupScanToCompEvent(parsed);\n }\n\n static async getScanStatus() {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: \"/Scan/Status\",\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw response;\n } else {\n const parsed = (await parseString(response.data)) as ScanStatusData;\n return new ScanStatus(parsed);\n }\n }\n\n static delay(t: number) {\n return new Promise(function (resolve) {\n setTimeout(resolve, t);\n });\n }\n\n static async postJob(job: ScanJobSettings) {\n await HPApi.delay(500);\n const xml = await job.toXML();\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}:8080`,\n url: \"/Scan/Jobs\",\n method: \"POST\",\n headers: { \"Content-Type\": \"text/xml\" },\n data: xml,\n responseType: \"text\",\n });\n\n if (response.status === 201) {\n return response.headers.location;\n } else {\n throw response;\n }\n }\n\n /**\n * @param jobURL\n * @return {Promise<Job|*>}\n */\n static async getJob(jobURL: string) {\n const response = await HPApi.callAxios({\n url: jobURL,\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw response;\n } else {\n const parsed = (await parseString(response.data)) as JobData;\n return new Job(parsed);\n }\n }\n\n static async downloadPage(\n binaryURL: string,\n destination: string\n ): Promise<string> {\n const { data }: AxiosResponse<Stream> = await axios.request<Stream>({\n baseURL: `http://${printerIP}:8080`,\n url: binaryURL,\n method: \"GET\",\n responseType: \"stream\",\n });\n\n const destinationFileStream = fs.createWriteStream(destination);\n data.pipe(destinationFileStream);\n\n await stream.finished(destinationFileStream);\n\n return destination;\n }\n}\n"]}
1
+ {"version":3,"file":"HPApi.js","sourceRoot":"","sources":["../src/HPApi.ts"],"names":[],"mappings":"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","sourcesContent":["\"use strict\";\n\nimport { promisify } from \"util\";\nimport fs from \"fs\";\nimport axios, {\n AxiosError,\n AxiosRequestConfig,\n AxiosResponse,\n RawAxiosRequestHeaders,\n} from \"axios\";\nimport { URL } from \"url\";\nimport * as stream from \"stream\";\nimport { Stream } from \"stream\";\nimport EventTable, { EtagEventTable } from \"./EventTable\";\nimport Job from \"./Job\";\nimport ScanStatus from \"./ScanStatus\";\nimport WalkupScanDestination from \"./WalkupScanDestination\";\nimport WalkupScanToCompDestination from \"./WalkupScanToCompDestination\";\nimport WalkupScanDestinations from \"./WalkupScanDestinations\";\nimport WalkupScanToCompDestinations from \"./WalkupScanToCompDestinations\";\nimport ScanJobSettings from \"./ScanJobSettings\";\nimport Destination from \"./Destination\";\nimport WalkupScanToCompEvent from \"./WalkupScanToCompEvent\";\nimport DiscoveryTree from \"./DiscoveryTree\";\nimport WalkupScanToCompManifest from \"./WalkupScanToCompManifest\";\nimport WalkupScanToCompCaps from \"./WalkupScanToCompCaps\";\nimport WalkupScanManifest from \"./WalkupScanManifest\";\nimport ScanJobManifest from \"./ScanJobManifest\";\nimport ScanCaps from \"./ScanCaps\";\nimport { delay } from \"./delay\";\nimport * as net from \"net\";\n\nlet printerIP = \"192.168.1.11\";\nlet debug = false;\nlet callCount = 0;\n\nexport default class HPApi {\n static setDeviceIP(ip: string): void {\n printerIP = ip;\n }\n\n static setDebug(dbg: boolean): void {\n debug = dbg;\n }\n\n private static logDebug(\n callId: number,\n isRequest: boolean,\n msg: object | string\n ): void {\n if (debug) {\n const id = String(callId).padStart(4, \"0\");\n const content = typeof msg === \"string\" ? msg : JSON.stringify(msg);\n console.log(id + (isRequest ? \" -> \" : \" <- \") + content);\n }\n }\n\n private static async callAxios(\n request: AxiosRequestConfig\n ): Promise<AxiosResponse<string>> {\n callCount++;\n if (request.timeout === 0) {\n request.timeout = 100_000;\n }\n HPApi.logDebug(callCount, true, request);\n try {\n const response = await axios(request);\n HPApi.logDebug(callCount, false, {\n status: response.status,\n data: response.data,\n headers: response.headers,\n statusText: response.statusText,\n });\n return response;\n } catch (error) {\n const axiosError = error as AxiosError;\n\n if (axiosError.isAxiosError) {\n HPApi.logDebug(callCount, false, {\n status: axiosError.response?.status,\n data: axiosError.response?.data,\n headers: axiosError.response?.headers,\n statusText: axiosError.response?.statusText,\n });\n }\n throw error;\n }\n }\n\n static async isAlive(timeout: number | null = null): Promise<boolean> {\n const definedTimeout = timeout || 10000; // default of 10 seconds\n return new Promise((resolve) => {\n const socket = net.createConnection(80, printerIP, () => {\n clearTimeout(timer);\n resolve(true);\n socket.end();\n });\n const timer = setTimeout(() => {\n resolve(false);\n socket.end();\n }, definedTimeout);\n socket.on(\"error\", () => {\n clearTimeout(timer);\n resolve(false);\n });\n });\n }\n\n static async waitDeviceUp(deviceUpPollingInterval: number): Promise<void> {\n let first = true;\n while (!(await HPApi.isAlive())) {\n if (first) {\n console.log(\n `Device ip: ${printerIP} is down! [${new Date().toISOString()}]`\n );\n }\n first = false;\n await delay(deviceUpPollingInterval);\n }\n if (!first) {\n console.log(\n `Device ip: ${printerIP} is up again! [${new Date().toISOString()}]`\n );\n }\n }\n\n static async getDiscoveryTree(): Promise<DiscoveryTree> {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: \"/DevMgmt/DiscoveryTree.xml\",\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw new Error(response.statusText);\n } else {\n return DiscoveryTree.createDiscoveryTree(response.data);\n }\n }\n\n static async getWalkupScanDestinations(\n uri: string = \"/WalkupScan/WalkupScanDestinations\"\n ): Promise<WalkupScanDestinations> {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: uri,\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw new Error(response.statusText);\n } else {\n return WalkupScanDestinations.createWalkupScanDestinations(response.data);\n }\n }\n\n static async getWalkupScanToCompDestinations(): Promise<WalkupScanToCompDestinations> {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: \"/WalkupScanToComp/WalkupScanToCompDestinations\",\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw new Error(response.statusText);\n } else {\n return WalkupScanToCompDestinations.createWalkupScanToCompDestinations(\n response.data\n );\n }\n }\n\n static async getWalkupScanManifest(uri: string): Promise<WalkupScanManifest> {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: uri,\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw new Error(response.statusText);\n } else {\n return WalkupScanManifest.createWalkupScanManifest(response.data);\n }\n }\n static async getWalkupScanToCompManifest(\n uri: string\n ): Promise<WalkupScanToCompManifest> {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: uri,\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw new Error(response.statusText);\n } else {\n return WalkupScanToCompManifest.createWalkupScanToCompManifest(\n response.data\n );\n }\n }\n\n static async getScanJobManifest(uri: string): Promise<ScanJobManifest> {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: uri,\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw new Error(response.statusText);\n } else {\n return ScanJobManifest.createScanJobManifest(response.data);\n }\n }\n\n static async getScanCaps(uri: string): Promise<ScanCaps> {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: uri,\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw new Error(response.statusText);\n } else {\n return ScanCaps.createScanCaps(response.data);\n }\n }\n\n static async getWalkupScanToCompCaps(\n uri: string\n ): Promise<WalkupScanToCompCaps> {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: uri,\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw new Error(response.statusText);\n } else {\n return WalkupScanToCompCaps.createWalkupScanToCompCaps(response.data);\n }\n }\n\n static async getWalkupScanToCompEvent(\n compEventURI: string\n ): Promise<WalkupScanToCompEvent> {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: compEventURI,\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw response;\n } else {\n return WalkupScanToCompEvent.createWalkupScanToCompEvent(response.data);\n }\n }\n\n static async removeDestination(\n walkupScanDestination: WalkupScanDestination | WalkupScanToCompDestination\n ): Promise<boolean> {\n let path: string;\n\n if (walkupScanDestination.resourceURI.startsWith(\"http\")) {\n let urlInfo = new URL(walkupScanDestination.resourceURI);\n if (urlInfo.pathname === null) {\n throw new Error(\n `invalid walkupScanDestination.resourceURI: ${walkupScanDestination.resourceURI}`\n );\n }\n path = urlInfo.pathname;\n } else {\n path = walkupScanDestination.resourceURI;\n }\n\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: path,\n method: \"DELETE\",\n responseType: \"text\",\n });\n if (response.status === 204 || response.status == 200) {\n return true;\n } else {\n throw response;\n }\n }\n\n static async registerWalkupScanDestination(\n destination: Destination\n ): Promise<string> {\n const xml = await destination.toXML();\n const url = \"/WalkupScan/WalkupScanDestinations\";\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: url,\n method: \"POST\",\n headers: { \"Content-Type\": \"text/xml\" },\n data: xml,\n responseType: \"text\",\n });\n\n if (response.status === 201 && response.headers.location != null) {\n return new URL(response.headers.location).pathname;\n } else {\n throw response;\n }\n }\n static async registerWalkupScanToCompDestination(\n destination: Destination\n ): Promise<string> {\n const xml = await destination.toXML();\n const url = \"/WalkupScanToComp/WalkupScanToCompDestinations\";\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: url,\n method: \"POST\",\n headers: { \"Content-Type\": \"text/xml\" },\n data: xml,\n responseType: \"text\",\n });\n\n if (response.status === 201 && response.headers.location != null) {\n return new URL(response.headers.location).pathname;\n } else {\n throw response;\n }\n }\n\n static async getEvents(\n etag = \"\",\n decisecondTimeout = 0\n ): Promise<EtagEventTable> {\n let url = this.appendTimeout(\"/EventMgmt/EventTable\", decisecondTimeout);\n\n let headers = this.placeETagHeader(etag, {});\n\n let response: AxiosResponse<string>;\n try {\n response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: url,\n method: \"GET\",\n responseType: \"text\",\n headers: headers,\n timeout: decisecondTimeout * 100 * 1.1,\n });\n } catch (error) {\n const axiosError = error as AxiosError;\n\n if (!axiosError.isAxiosError) throw error;\n\n if (axiosError.response?.status === 304) {\n return {\n etag: etag,\n eventTable: new EventTable({}),\n };\n }\n throw error;\n }\n\n const etagReceived = response.headers[\"etag\"];\n if (etagReceived == null) {\n throw response;\n }\n\n const content = response.data;\n return EventTable.createEtagEventTable(content, etagReceived);\n }\n\n static placeETagHeader(\n etag: string,\n headers: RawAxiosRequestHeaders\n ): RawAxiosRequestHeaders {\n if (etag !== \"\") {\n headers[\"If-None-Match\"] = etag;\n }\n return headers;\n }\n\n static appendTimeout(url: string, timeout: number | null = null): string {\n if (timeout == null) {\n timeout = 1200;\n }\n if (timeout > 0) {\n url += \"?timeout=\" + timeout;\n }\n return url;\n }\n\n static async getDestination(\n destinationURL: string\n ): Promise<WalkupScanDestination | WalkupScanToCompDestination> {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: destinationURL,\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw response;\n } else {\n const content = response.data;\n if (destinationURL.includes(\"WalkupScanToComp\")) {\n return WalkupScanToCompDestination.createWalkupScanToCompDestination(\n content\n );\n } else {\n return WalkupScanDestination.createWalkupScanDestination(content);\n }\n }\n }\n\n static async getScanStatus(): Promise<ScanStatus> {\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}`,\n url: \"/Scan/Status\",\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw response;\n } else {\n let content = response.data;\n return ScanStatus.createScanStatus(content);\n }\n }\n\n static delay(t: number): Promise<void> {\n return new Promise(function (resolve) {\n setTimeout(resolve, t);\n });\n }\n\n static async postJob(job: ScanJobSettings): Promise<string> {\n await HPApi.delay(500);\n const xml = await job.toXML();\n const response = await HPApi.callAxios({\n baseURL: `http://${printerIP}:8080`,\n url: \"/Scan/Jobs\",\n method: \"POST\",\n headers: { \"Content-Type\": \"text/xml\" },\n data: xml,\n responseType: \"text\",\n });\n\n if (response.status === 201 && response.headers.location != null) {\n return response.headers.location;\n } else {\n throw response;\n }\n }\n\n /**\n * @param jobURL\n * @return {Promise<Job|*>}\n */\n static async getJob(jobURL: string) {\n const response = await HPApi.callAxios({\n url: jobURL,\n method: \"GET\",\n responseType: \"text\",\n });\n\n if (response.status !== 200) {\n throw response;\n } else {\n const content = response.data;\n return Job.createJob(content);\n }\n }\n\n static async downloadPage(\n binaryURL: string,\n destination: string\n ): Promise<string> {\n const { data }: AxiosResponse<Stream> = await axios.request<Stream>({\n baseURL: `http://${printerIP}:8080`,\n url: binaryURL,\n method: \"GET\",\n responseType: \"stream\",\n });\n\n const destinationFileStream = fs.createWriteStream(destination);\n data.pipe(destinationFileStream);\n\n await promisify(stream.finished)(destinationFileStream);\n\n return destination;\n }\n}\n"]}
package/dist/Job.d.ts CHANGED
@@ -14,7 +14,7 @@ export interface JobData {
14
14
  }[];
15
15
  }[];
16
16
  }[];
17
- PostScanPage: {
17
+ PostScanPage?: {
18
18
  PageNumber: string[];
19
19
  }[];
20
20
  }[];
@@ -24,13 +24,14 @@ export interface JobData {
24
24
  export default class Job {
25
25
  private readonly data;
26
26
  constructor(data: JobData);
27
+ static createJob(content: string): Promise<Job>;
27
28
  get currentPageNumber(): string | null;
28
- get totalPageNumber(): number;
29
+ get totalPageNumber(): number | null;
29
30
  get jobState(): "Completed" | "Processing" | "ReadyToUpload" | "Canceled" | string;
30
- get pageState(): string;
31
+ get pageState(): string | null;
31
32
  get binaryURL(): string | null;
32
- get imageWidth(): number;
33
- get imageHeight(): number;
34
- get xResolution(): number;
35
- get yResolution(): number;
33
+ get imageWidth(): number | null;
34
+ get imageHeight(): number | null;
35
+ get xResolution(): number | null;
36
+ get yResolution(): number | null;
36
37
  }
package/dist/Job.js CHANGED
@@ -1,95 +1,78 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var Job = /** @class */ (function () {
4
- function Job(data) {
3
+ const xml2js_1 = require("xml2js");
4
+ const parser = new xml2js_1.Parser();
5
+ const util_1 = require("util");
6
+ const parseString = (0, util_1.promisify)(parser.parseString);
7
+ class Job {
8
+ constructor(data) {
5
9
  this.data = data;
6
10
  }
7
- Object.defineProperty(Job.prototype, "currentPageNumber", {
8
- get: function () {
9
- var preScanPage = this.data["j:Job"].ScanJob[0].PreScanPage;
10
- if (preScanPage) {
11
- return preScanPage[0].PageNumber[0];
12
- }
13
- else {
14
- return null;
15
- }
16
- },
17
- enumerable: false,
18
- configurable: true
19
- });
20
- Object.defineProperty(Job.prototype, "totalPageNumber", {
21
- get: function () {
11
+ static async createJob(content) {
12
+ const parsed = await parseString(content);
13
+ return new Job(parsed);
14
+ }
15
+ get currentPageNumber() {
16
+ let preScanPage = this.data["j:Job"].ScanJob[0].PreScanPage;
17
+ if (preScanPage) {
18
+ return preScanPage[0].PageNumber[0];
19
+ }
20
+ else {
21
+ return null;
22
+ }
23
+ }
24
+ get totalPageNumber() {
25
+ if (this.data["j:Job"].ScanJob[0].PostScanPage) {
22
26
  return parseInt(this.data["j:Job"].ScanJob[0].PostScanPage[0].PageNumber[0], 10);
23
- },
24
- enumerable: false,
25
- configurable: true
26
- });
27
- Object.defineProperty(Job.prototype, "jobState", {
28
- get: function () {
29
- return this.data["j:Job"]["j:JobState"][0];
30
- },
31
- enumerable: false,
32
- configurable: true
33
- });
34
- Object.defineProperty(Job.prototype, "pageState", {
35
- get: function () {
36
- var preScanPage = this.data["j:Job"].ScanJob[0].PreScanPage;
37
- if (preScanPage) {
38
- return preScanPage[0].PageState[0];
39
- }
40
- else {
41
- return "";
42
- }
43
- },
44
- enumerable: false,
45
- configurable: true
46
- });
47
- Object.defineProperty(Job.prototype, "binaryURL", {
48
- get: function () {
49
- var preScanPage = this.data["j:Job"].ScanJob[0].PreScanPage;
50
- if (preScanPage) {
51
- return preScanPage[0].BinaryURL[0];
52
- }
53
- else {
54
- return null;
55
- }
56
- },
57
- enumerable: false,
58
- configurable: true
59
- });
60
- Object.defineProperty(Job.prototype, "imageWidth", {
61
- get: function () {
62
- var _a, _b, _c, _d, _e;
63
- return parseInt((_e = (_d = (_c = (_b = (_a = this.data["j:Job"].ScanJob[0].PreScanPage) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.BufferInfo) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.ImageWidth[0]) !== null && _e !== void 0 ? _e : "");
64
- },
65
- enumerable: false,
66
- configurable: true
67
- });
68
- Object.defineProperty(Job.prototype, "imageHeight", {
69
- get: function () {
70
- var _a, _b, _c, _d, _e;
71
- return parseInt((_e = (_d = (_c = (_b = (_a = this.data["j:Job"].ScanJob[0].PreScanPage) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.BufferInfo) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.ImageHeight[0]) !== null && _e !== void 0 ? _e : "");
72
- },
73
- enumerable: false,
74
- configurable: true
75
- });
76
- Object.defineProperty(Job.prototype, "xResolution", {
77
- get: function () {
78
- var _a, _b, _c, _d, _e, _f, _g;
27
+ }
28
+ return null;
29
+ }
30
+ get jobState() {
31
+ return this.data["j:Job"]["j:JobState"][0];
32
+ }
33
+ get pageState() {
34
+ let preScanPage = this.data["j:Job"].ScanJob[0].PreScanPage;
35
+ if (preScanPage) {
36
+ return preScanPage[0].PageState[0];
37
+ }
38
+ else {
39
+ return null;
40
+ }
41
+ }
42
+ get binaryURL() {
43
+ if (this.data["j:Job"].ScanJob[0].PreScanPage) {
44
+ return this.data["j:Job"].ScanJob[0].PreScanPage[0].BinaryURL[0];
45
+ }
46
+ return null;
47
+ }
48
+ get imageWidth() {
49
+ var _a, _b, _c, _d, _e;
50
+ if (!this.data["j:Job"].ScanJob[0].hasOwnProperty("PreScanPage")) {
51
+ return null;
52
+ }
53
+ return parseInt((_e = (_d = (_c = (_b = (_a = this.data["j:Job"].ScanJob[0].PreScanPage) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.BufferInfo) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.ImageWidth[0]) !== null && _e !== void 0 ? _e : "");
54
+ }
55
+ get imageHeight() {
56
+ if (this.data["j:Job"].ScanJob[0].PreScanPage) {
57
+ return parseInt(this.data["j:Job"].ScanJob[0].PreScanPage[0].BufferInfo[0]
58
+ .ImageHeight[0]);
59
+ }
60
+ return null;
61
+ }
62
+ get xResolution() {
63
+ var _a, _b, _c, _d, _e, _f, _g;
64
+ if (this.data["j:Job"].ScanJob[0].PreScanPage) {
79
65
  return parseInt((_g = (_f = (_e = (_d = (_c = (_b = (_a = this.data["j:Job"].ScanJob[0].PreScanPage) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.BufferInfo) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.ScanSettings) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.XResolution[0]) !== null && _g !== void 0 ? _g : "");
80
- },
81
- enumerable: false,
82
- configurable: true
83
- });
84
- Object.defineProperty(Job.prototype, "yResolution", {
85
- get: function () {
86
- var _a, _b, _c, _d, _e, _f, _g;
66
+ }
67
+ return null;
68
+ }
69
+ get yResolution() {
70
+ var _a, _b, _c, _d, _e, _f, _g;
71
+ if (this.data["j:Job"].ScanJob[0].hasOwnProperty("PreScanPage")) {
87
72
  return parseInt((_g = (_f = (_e = (_d = (_c = (_b = (_a = this.data["j:Job"].ScanJob[0].PreScanPage) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.BufferInfo) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.ScanSettings) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.YResolution[0]) !== null && _g !== void 0 ? _g : "");
88
- },
89
- enumerable: false,
90
- configurable: true
91
- });
92
- return Job;
93
- }());
73
+ }
74
+ return null;
75
+ }
76
+ }
94
77
  exports.default = Job;
95
78
  //# sourceMappingURL=Job.js.map
package/dist/Job.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Job.js","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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","sourcesContent":["\"use strict\";\n\nexport interface JobData {\n \"j:Job\": {\n ScanJob: {\n PreScanPage?: {\n PageState: string[];\n BinaryURL: string[];\n PageNumber: string[];\n BufferInfo: {\n ImageWidth: string[];\n ImageHeight: string[];\n ScanSettings: {\n XResolution: string[];\n YResolution: string[];\n }[];\n }[];\n }[];\n PostScanPage: {\n PageNumber: string[];\n }[];\n }[];\n \"j:JobState\": string[];\n };\n}\n\nexport default class Job {\n private readonly data: JobData;\n constructor(data: JobData) {\n this.data = data;\n }\n\n get currentPageNumber(): string | null {\n let preScanPage = this.data[\"j:Job\"].ScanJob[0].PreScanPage;\n if (preScanPage) {\n return preScanPage[0].PageNumber[0];\n } else {\n return null;\n }\n }\n\n get totalPageNumber(): number {\n return parseInt(\n this.data[\"j:Job\"].ScanJob[0].PostScanPage[0].PageNumber[0],\n 10\n );\n }\n\n get jobState():\n | \"Completed\"\n | \"Processing\"\n | \"ReadyToUpload\"\n | \"Canceled\"\n | string {\n return this.data[\"j:Job\"][\"j:JobState\"][0];\n }\n\n get pageState(): string {\n let preScanPage = this.data[\"j:Job\"].ScanJob[0].PreScanPage;\n if (preScanPage) {\n return preScanPage[0].PageState[0];\n } else {\n return \"\";\n }\n }\n\n get binaryURL(): string | null {\n let preScanPage = this.data[\"j:Job\"].ScanJob[0].PreScanPage;\n if (preScanPage) {\n return preScanPage[0].BinaryURL[0];\n } else {\n return null;\n }\n }\n\n get imageWidth(): number {\n return parseInt(\n this.data[\"j:Job\"].ScanJob[0].PreScanPage?.[0]?.BufferInfo?.[0]\n ?.ImageWidth[0] ?? \"\"\n );\n }\n get imageHeight(): number {\n return parseInt(\n this.data[\"j:Job\"].ScanJob[0].PreScanPage?.[0]?.BufferInfo?.[0]\n ?.ImageHeight[0] ?? \"\"\n );\n }\n get xResolution(): number {\n return parseInt(\n this.data[\"j:Job\"].ScanJob[0].PreScanPage?.[0]?.BufferInfo?.[0]\n ?.ScanSettings?.[0]?.XResolution[0] ?? \"\"\n );\n }\n get yResolution(): number {\n return parseInt(\n this.data[\"j:Job\"].ScanJob[0].PreScanPage?.[0]?.BufferInfo?.[0]\n ?.ScanSettings?.[0]?.YResolution[0] ?? \"\"\n );\n }\n}\n"]}
1
+ {"version":3,"file":"Job.js","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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","sourcesContent":["\"use strict\";\nimport { Parser } from \"xml2js\";\nconst parser = new Parser();\nimport { promisify } from \"util\";\nconst parseString = promisify<string, JobData>(parser.parseString);\n\nexport interface JobData {\n \"j:Job\": {\n ScanJob: {\n PreScanPage?: {\n PageState: string[];\n BinaryURL: string[];\n PageNumber: string[];\n BufferInfo: {\n ImageWidth: string[];\n ImageHeight: string[];\n ScanSettings: {\n XResolution: string[];\n YResolution: string[];\n }[];\n }[];\n }[];\n PostScanPage?: {\n PageNumber: string[];\n }[];\n }[];\n \"j:JobState\": string[];\n };\n}\n\nexport default class Job {\n private readonly data: JobData;\n constructor(data: JobData) {\n this.data = data;\n }\n\n static async createJob(content: string): Promise<Job> {\n const parsed = await parseString(content);\n return new Job(parsed);\n }\n\n get currentPageNumber(): string | null {\n let preScanPage = this.data[\"j:Job\"].ScanJob[0].PreScanPage;\n if (preScanPage) {\n return preScanPage[0].PageNumber[0];\n } else {\n return null;\n }\n }\n\n get totalPageNumber(): number | null {\n if (this.data[\"j:Job\"].ScanJob[0].PostScanPage) {\n return parseInt(\n this.data[\"j:Job\"].ScanJob[0].PostScanPage[0].PageNumber[0],\n 10\n );\n }\n return null;\n }\n\n get jobState():\n | \"Completed\"\n | \"Processing\"\n | \"ReadyToUpload\"\n | \"Canceled\"\n | string {\n return this.data[\"j:Job\"][\"j:JobState\"][0];\n }\n\n get pageState(): string | null {\n let preScanPage = this.data[\"j:Job\"].ScanJob[0].PreScanPage;\n if (preScanPage) {\n return preScanPage[0].PageState[0];\n } else {\n return null;\n }\n }\n\n get binaryURL(): string | null {\n if (this.data[\"j:Job\"].ScanJob[0].PreScanPage) {\n return this.data[\"j:Job\"].ScanJob[0].PreScanPage[0].BinaryURL[0];\n }\n return null;\n }\n\n get imageWidth(): number | null {\n if (!this.data[\"j:Job\"].ScanJob[0].hasOwnProperty(\"PreScanPage\")) {\n return null;\n }\n return parseInt(\n this.data[\"j:Job\"].ScanJob[0].PreScanPage?.[0]?.BufferInfo?.[0]\n ?.ImageWidth[0] ?? \"\"\n );\n }\n get imageHeight(): number | null {\n if (this.data[\"j:Job\"].ScanJob[0].PreScanPage) {\n return parseInt(\n this.data[\"j:Job\"].ScanJob[0].PreScanPage[0].BufferInfo[0]\n .ImageHeight[0]\n );\n }\n return null;\n }\n get xResolution(): number | null {\n if (this.data[\"j:Job\"].ScanJob[0].PreScanPage) {\n return parseInt(\n this.data[\"j:Job\"].ScanJob[0].PreScanPage?.[0]?.BufferInfo?.[0]\n ?.ScanSettings?.[0]?.XResolution[0] ?? \"\"\n );\n }\n return null;\n }\n get yResolution(): number | null {\n if (this.data[\"j:Job\"].ScanJob[0].hasOwnProperty(\"PreScanPage\")) {\n return parseInt(\n this.data[\"j:Job\"].ScanJob[0].PreScanPage?.[0]?.BufferInfo?.[0]\n ?.ScanSettings?.[0]?.YResolution[0] ?? \"\"\n );\n }\n return null;\n }\n}\n"]}
package/dist/JpegUtil.js CHANGED
@@ -1,52 +1,48 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var debug = false;
4
- var start_of_Frame_0 = "FFC0";
5
- var define_number_of_lines = "FFDC";
6
- var JpegUtil = /** @class */ (function () {
7
- function JpegUtil() {
8
- }
9
- JpegUtil.setDebug = function (dbg) {
3
+ let debug = false;
4
+ const start_of_Frame_0 = "FFC0";
5
+ const define_number_of_lines = "FFDC";
6
+ class JpegUtil {
7
+ static setDebug(dbg) {
10
8
  debug = dbg;
11
- };
12
- JpegUtil.logDebug = function (msg) {
9
+ }
10
+ static logDebug(msg) {
13
11
  if (debug) {
14
12
  console.log(msg);
15
13
  }
16
- };
17
- JpegUtil.numToHex = function (s) {
14
+ }
15
+ static numToHex(s) {
18
16
  return s.toString(16).padStart(2, "0").toUpperCase();
19
- };
20
- JpegUtil.GetJpgSize = function (buffer) {
21
- var _a;
22
- var size = null;
23
- this.parse(buffer, (_a = {},
24
- _a[start_of_Frame_0] = function (start, length) {
17
+ }
18
+ static GetJpgSize(buffer) {
19
+ let size = null;
20
+ this.parse(buffer, {
21
+ [start_of_Frame_0]: (start, length) => {
25
22
  // read the the "Start of frame" marker which contains the file size
26
23
  if (6 < length) {
27
- var pHeight = buffer[start + 3] * 256 + buffer[start + 4];
28
- var pWidth = buffer[start + 5] * 256 + buffer[start + 6];
24
+ const pHeight = buffer[start + 3] * 256 + buffer[start + 4];
25
+ const pWidth = buffer[start + 5] * 256 + buffer[start + 6];
29
26
  size = { height: pHeight, width: pWidth };
30
27
  }
31
28
  // stop processing
32
29
  return true;
33
30
  },
34
- _a));
31
+ });
35
32
  return size;
36
- };
37
- JpegUtil.setJpgSize = function (buffer, size) {
38
- var _a;
39
- var sizeWritten = false;
40
- var parsingSucceed = this.parse(buffer, (_a = {},
41
- _a[start_of_Frame_0] = function (start, length) {
33
+ }
34
+ static setJpgSize(buffer, size) {
35
+ let sizeWritten = false;
36
+ const parsingSucceed = this.parse(buffer, {
37
+ [start_of_Frame_0]: (start, length) => {
42
38
  // read the the "Start of frame" marker which contains the file size
43
39
  // write the picture size
44
40
  if (6 < length) {
45
- var height = Buffer.from([0x00, 0x00]);
41
+ const height = Buffer.from([0x00, 0x00]);
46
42
  height.writeInt16BE(size.height);
47
43
  buffer[start + 3] = height[0];
48
44
  buffer[start + 4] = height[1];
49
- var width = Buffer.from([0x00, 0x00]);
45
+ const width = Buffer.from([0x00, 0x00]);
50
46
  width.writeInt16BE(size.width);
51
47
  buffer[start + 5] = width[0];
52
48
  buffer[start + 6] = width[1];
@@ -55,47 +51,43 @@ var JpegUtil = /** @class */ (function () {
55
51
  // stop processing
56
52
  return true;
57
53
  },
58
- _a));
54
+ });
59
55
  if (!parsingSucceed) {
60
56
  return false;
61
57
  }
62
58
  return sizeWritten;
63
- };
64
- JpegUtil.setJpgHeight = function (buffer, height) {
65
- var _a;
66
- var _this = this;
67
- var heightWritten = false;
68
- var parsingSucceed = this.parse(buffer, (_a = {},
69
- _a[start_of_Frame_0] = function (start, length) {
59
+ }
60
+ static setJpgHeight(buffer, height) {
61
+ let heightWritten = false;
62
+ const parsingSucceed = this.parse(buffer, {
63
+ [start_of_Frame_0]: (start, length) => {
70
64
  // read the the "Start of frame" marker which contains the file size
71
65
  // write the picture size
72
- heightWritten = _this.writeHeightInStartOfFrame(buffer, start, length, height);
66
+ heightWritten = this.writeHeightInStartOfFrame(buffer, start, length, height);
73
67
  // stop processing
74
68
  return true;
75
69
  },
76
- _a));
70
+ });
77
71
  if (!parsingSucceed) {
78
72
  return false;
79
73
  }
80
74
  return heightWritten;
81
- };
82
- JpegUtil.fixSizeWithDNL = function (buffer) {
83
- var _a;
84
- var _this = this;
85
- var numberOfLine = null;
86
- var startOfStartOfFrame = null;
87
- var lengthOfStartOfFrame = null;
88
- this.parse(buffer, (_a = {},
89
- _a[define_number_of_lines] = function (start, length) {
90
- numberOfLine = _this.readNumberOfLineFromDNL(buffer, start, length);
75
+ }
76
+ static fixSizeWithDNL(buffer) {
77
+ let numberOfLine = null;
78
+ let startOfStartOfFrame = null;
79
+ let lengthOfStartOfFrame = null;
80
+ this.parse(buffer, {
81
+ [define_number_of_lines]: (start, length) => {
82
+ numberOfLine = this.readNumberOfLineFromDNL(buffer, start, length);
91
83
  return false; // don't stop
92
84
  },
93
- _a[start_of_Frame_0] = function (start, length) {
85
+ [start_of_Frame_0]: (start, length) => {
94
86
  startOfStartOfFrame = start;
95
87
  lengthOfStartOfFrame = length;
96
88
  return false; // don't stop
97
89
  },
98
- _a));
90
+ });
99
91
  if (numberOfLine == null) {
100
92
  this.logDebug("DNL marker not found impossible to fix height");
101
93
  return null;
@@ -108,28 +100,28 @@ var JpegUtil = /** @class */ (function () {
108
100
  return numberOfLine;
109
101
  }
110
102
  return null;
111
- };
112
- JpegUtil.writeHeightInStartOfFrame = function (buffer, startOfStartOfFrame, lengthOfStartOfFrame, numberOfLine) {
103
+ }
104
+ static writeHeightInStartOfFrame(buffer, startOfStartOfFrame, lengthOfStartOfFrame, numberOfLine) {
113
105
  // write the picture height
114
106
  if (6 < lengthOfStartOfFrame) {
115
- var heightBuffer = Buffer.from([0x00, 0x00]);
107
+ const heightBuffer = Buffer.from([0x00, 0x00]);
116
108
  heightBuffer.writeInt16BE(numberOfLine);
117
109
  buffer[startOfStartOfFrame + 3] = heightBuffer[0];
118
110
  buffer[startOfStartOfFrame + 4] = heightBuffer[1];
119
111
  return true;
120
112
  }
121
113
  return false;
122
- };
123
- JpegUtil.readNumberOfLineFromDNL = function (buffer, start, length) {
124
- var numberOfLine = null;
114
+ }
115
+ static readNumberOfLineFromDNL(buffer, start, length) {
116
+ let numberOfLine = null;
125
117
  // read the number of line
126
118
  if (3 < length) {
127
119
  numberOfLine = buffer[start + 2] * 256 + buffer[start + 3];
128
120
  }
129
121
  return numberOfLine;
130
- };
131
- JpegUtil.parse = function (buffer, markerHandler) {
132
- var i = 0;
122
+ }
123
+ static parse(buffer, markerHandler) {
124
+ let i = 0;
133
125
  if (!this.isSOIHeader(i, buffer)) {
134
126
  this.logDebug("Not a valid SOI header");
135
127
  return false;
@@ -141,23 +133,23 @@ var JpegUtil = /** @class */ (function () {
141
133
  return false;
142
134
  }
143
135
  return this.parseMarker(buffer, i, markerHandler);
144
- };
145
- JpegUtil.isValidJpegHeader = function (i, buffer) {
136
+ }
137
+ static isValidJpegHeader(i, buffer) {
146
138
  return (i + 6 < buffer.length &&
147
139
  buffer[i + 2] == "J".charCodeAt(0) &&
148
140
  buffer[i + 3] == "F".charCodeAt(0) &&
149
141
  buffer[i + 4] == "I".charCodeAt(0) &&
150
142
  buffer[i + 5] == "F".charCodeAt(0) &&
151
143
  buffer[i + 6] == 0x00);
152
- };
153
- JpegUtil.isSOIHeader = function (i, buffer) {
144
+ }
145
+ static isSOIHeader(i, buffer) {
154
146
  return (i + 3 < buffer.length &&
155
147
  buffer[i] == 0xff &&
156
148
  buffer[i + 1] == 0xd8 &&
157
149
  buffer[i + 2] == 0xff &&
158
150
  buffer[i + 3] == 0xe0);
159
- };
160
- JpegUtil.getBlockLength = function (buffer, i, marker) {
151
+ }
152
+ static getBlockLength(buffer, i, marker) {
161
153
  if (marker === "FFDA" ||
162
154
  marker === "FFD0" ||
163
155
  marker === "FFD1" ||
@@ -171,13 +163,13 @@ var JpegUtil = /** @class */ (function () {
171
163
  }
172
164
  else {
173
165
  // read the new block length
174
- var blockLength = buffer[i + 2] * 256 + buffer[i + 3];
175
- this.logDebug("block size for ".concat(marker, " is ").concat(blockLength));
166
+ const blockLength = buffer[i + 2] * 256 + buffer[i + 3];
167
+ this.logDebug(`block size for ${marker} is ${blockLength}`);
176
168
  return blockLength;
177
169
  }
178
- };
179
- JpegUtil.findCurrentBlockSize = function (buffer, i, current_marker) {
180
- for (var j = 0; i + j < buffer.length; j++) {
170
+ }
171
+ static findCurrentBlockSize(buffer, i, current_marker) {
172
+ for (let j = 0; i + j < buffer.length; j++) {
181
173
  if (buffer[i + j] === 0xff) {
182
174
  if (i + j + 1 < buffer.length) {
183
175
  if (buffer[i + j + 1] == 0x00) {
@@ -189,17 +181,17 @@ var JpegUtil = /** @class */ (function () {
189
181
  }
190
182
  }
191
183
  else {
192
- this.logDebug("Premature end of stream reach while searching for the block size inside marker ".concat(current_marker));
184
+ this.logDebug(`Premature end of stream reach while searching for the block size inside marker ${current_marker}`);
193
185
  return null;
194
186
  }
195
187
  }
196
188
  }
197
189
  return null;
198
- };
199
- JpegUtil.parseMarker = function (buffer, i, markerHandler) {
200
- var marker = "";
190
+ }
191
+ static parseMarker(buffer, i, markerHandler) {
192
+ let marker = "";
201
193
  //Retrieve the block length of the first block since the first block will not contain the size of file
202
- var blockLength = buffer[i] * 256 + buffer[i + 1];
194
+ let blockLength = buffer[i] * 256 + buffer[i + 1];
203
195
  //Increase the file index to get to the next block
204
196
  i += blockLength;
205
197
  while (i < buffer.length) {
@@ -213,17 +205,17 @@ var JpegUtil = /** @class */ (function () {
213
205
  return false;
214
206
  }
215
207
  if (buffer[i + 1] == 0x00) {
216
- this.logDebug("Bad marker at ".concat(i, " 0x00 just after marker ").concat(marker));
208
+ this.logDebug(`Bad marker at ${i} 0x00 just after marker ${marker}`);
217
209
  return false;
218
210
  }
219
211
  marker = this.numToHex(buffer[i]) + this.numToHex(buffer[i + 1]);
220
- var foundBlockLength = this.getBlockLength(buffer, i, marker);
212
+ const foundBlockLength = this.getBlockLength(buffer, i, marker);
221
213
  if (foundBlockLength == null) {
222
- this.logDebug("Was not able to determine block size for marker ".concat(marker));
214
+ this.logDebug(`Was not able to determine block size for marker ${marker}`);
223
215
  return false;
224
216
  }
225
217
  blockLength = foundBlockLength;
226
- var handler = markerHandler[marker];
218
+ const handler = markerHandler[marker];
227
219
  if (handler != null && handler(i + 2, blockLength)) {
228
220
  return true;
229
221
  }
@@ -231,8 +223,7 @@ var JpegUtil = /** @class */ (function () {
231
223
  }
232
224
  this.logDebug("End of payload reached");
233
225
  return true;
234
- };
235
- return JpegUtil;
236
- }());
226
+ }
227
+ }
237
228
  exports.default = JpegUtil;
238
229
  //# sourceMappingURL=JpegUtil.js.map