node-hp-scan-to 1.6.1 → 1.7.2

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 (170) hide show
  1. package/README.md +247 -143
  2. package/dist/Destination.js +17 -7
  3. package/dist/Destination.js.map +1 -1
  4. package/dist/DeviceCapabilities.d.ts +2 -0
  5. package/dist/DeviceCapabilities.js.map +1 -1
  6. package/dist/DiscoveryTree.js.map +1 -1
  7. package/dist/Event.js.map +1 -1
  8. package/dist/EventTable.js.map +1 -1
  9. package/dist/HPApi.js +23 -15
  10. package/dist/HPApi.js.map +1 -1
  11. package/dist/InputSource.js +1 -1
  12. package/dist/InputSource.js.map +1 -1
  13. package/dist/Job.js +6 -6
  14. package/dist/Job.js.map +1 -1
  15. package/dist/JpegUtil.d.ts +0 -2
  16. package/dist/JpegUtil.js.map +1 -1
  17. package/dist/KnownShortcut.js.map +1 -1
  18. package/dist/PathHelper.js +2 -0
  19. package/dist/PathHelper.js.map +1 -1
  20. package/dist/ScanCaps.d.ts +6 -0
  21. package/dist/ScanCaps.js +18 -0
  22. package/dist/ScanCaps.js.map +1 -1
  23. package/dist/ScanContent.js.map +1 -1
  24. package/dist/ScanJobManifest.js.map +1 -1
  25. package/dist/ScanJobSettings.js.map +1 -1
  26. package/dist/ScanStatus.js.map +1 -1
  27. package/dist/WalkupScanDestination.js.map +1 -1
  28. package/dist/WalkupScanDestinations.js.map +1 -1
  29. package/dist/WalkupScanManifest.js.map +1 -1
  30. package/dist/WalkupScanToCompCaps.js.map +1 -1
  31. package/dist/WalkupScanToCompDestination.js.map +1 -1
  32. package/dist/WalkupScanToCompDestinations.js.map +1 -1
  33. package/dist/WalkupScanToCompEvent.js.map +1 -1
  34. package/dist/WalkupScanToCompManifest.js.map +1 -1
  35. package/dist/commitInfo.json +1 -1
  36. package/dist/delay.js +1 -2
  37. package/dist/delay.js.map +1 -1
  38. package/dist/healthcheck.js +1 -2
  39. package/dist/healthcheck.js.map +1 -1
  40. package/dist/index.js +22 -12
  41. package/dist/index.js.map +1 -1
  42. package/dist/listening.js +5 -6
  43. package/dist/listening.js.map +1 -1
  44. package/dist/nextcloud/NextcloudConfig.js.map +1 -1
  45. package/dist/nextcloud/nextcloud.js +4 -6
  46. package/dist/nextcloud/nextcloud.js.map +1 -1
  47. package/dist/paperless/PaperlessConfig.js.map +1 -1
  48. package/dist/paperless/paperless.js +4 -5
  49. package/dist/paperless/paperless.js.map +1 -1
  50. package/dist/pdfProcessing.js +4 -5
  51. package/dist/pdfProcessing.js.map +1 -1
  52. package/dist/postProcessing.js +2 -4
  53. package/dist/postProcessing.js.map +1 -1
  54. package/dist/readDeviceCapabilities.js +24 -20
  55. package/dist/readDeviceCapabilities.js.map +1 -1
  56. package/dist/scanProcessing.d.ts +2 -2
  57. package/dist/scanProcessing.js +28 -30
  58. package/dist/scanProcessing.js.map +1 -1
  59. package/package.json +19 -17
  60. package/dist/PaperlessCOnfig.d.ts +0 -7
  61. package/dist/PaperlessCOnfig.js +0 -3
  62. package/dist/PaperlessCOnfig.js.map +0 -1
  63. package/dist/PaperlessConfig.d.ts +0 -7
  64. package/dist/PaperlessConfig.js +0 -3
  65. package/dist/PaperlessConfig.js.map +0 -1
  66. package/dist/paperless.d.ts +0 -7
  67. package/dist/paperless.js +0 -83
  68. package/dist/paperless.js.map +0 -1
  69. package/dist/test/DiscoveryTree.test.d.ts +0 -1
  70. package/dist/test/DiscoveryTree.test.js +0 -68
  71. package/dist/test/DiscoveryTree.test.js.map +0 -1
  72. package/dist/test/EtagEventTable.test.d.ts +0 -1
  73. package/dist/test/EtagEventTable.test.js +0 -93
  74. package/dist/test/EtagEventTable.test.js.map +0 -1
  75. package/dist/test/Job.test.d.ts +0 -1
  76. package/dist/test/Job.test.js +0 -104
  77. package/dist/test/Job.test.js.map +0 -1
  78. package/dist/test/JpegUtil.test.d.ts +0 -1
  79. package/dist/test/JpegUtil.test.js +0 -53
  80. package/dist/test/JpegUtil.test.js.map +0 -1
  81. package/dist/test/PathHelper.test.d.ts +0 -1
  82. package/dist/test/PathHelper.test.js +0 -98
  83. package/dist/test/PathHelper.test.js.map +0 -1
  84. package/dist/test/ScanCaps.test.d.ts +0 -1
  85. package/dist/test/ScanCaps.test.js +0 -96
  86. package/dist/test/ScanCaps.test.js.map +0 -1
  87. package/dist/test/ScanJobManifest.test.d.ts +0 -1
  88. package/dist/test/ScanJobManifest.test.js +0 -56
  89. package/dist/test/ScanJobManifest.test.js.map +0 -1
  90. package/dist/test/ScanJobSettings.test.d.ts +0 -1
  91. package/dist/test/ScanJobSettings.test.js +0 -59
  92. package/dist/test/ScanJobSettings.test.js.map +0 -1
  93. package/dist/test/ScanStatus.test.d.ts +0 -1
  94. package/dist/test/ScanStatus.test.js +0 -75
  95. package/dist/test/ScanStatus.test.js.map +0 -1
  96. package/dist/test/WalkupScanDestination.test.d.ts +0 -1
  97. package/dist/test/WalkupScanDestination.test.js +0 -80
  98. package/dist/test/WalkupScanDestination.test.js.map +0 -1
  99. package/dist/test/WalkupScanDestinations.test.d.ts +0 -1
  100. package/dist/test/WalkupScanDestinations.test.js +0 -68
  101. package/dist/test/WalkupScanDestinations.test.js.map +0 -1
  102. package/dist/test/WalkupScanManifest.test.d.ts +0 -1
  103. package/dist/test/WalkupScanManifest.test.js +0 -46
  104. package/dist/test/WalkupScanManifest.test.js.map +0 -1
  105. package/dist/test/WalkupScanToCompCaps.test.d.ts +0 -1
  106. package/dist/test/WalkupScanToCompCaps.test.js +0 -56
  107. package/dist/test/WalkupScanToCompCaps.test.js.map +0 -1
  108. package/dist/test/WalkupScanToCompDestination.test.d.ts +0 -1
  109. package/dist/test/WalkupScanToCompDestination.test.js +0 -58
  110. package/dist/test/WalkupScanToCompDestination.test.js.map +0 -1
  111. package/dist/test/WalkupScanToCompDestinations.test.d.ts +0 -1
  112. package/dist/test/WalkupScanToCompDestinations.test.js +0 -58
  113. package/dist/test/WalkupScanToCompDestinations.test.js.map +0 -1
  114. package/dist/test/WalkupScanToCompEvent.test.d.ts +0 -1
  115. package/dist/test/WalkupScanToCompEvent.test.js +0 -46
  116. package/dist/test/WalkupScanToCompEvent.test.js.map +0 -1
  117. package/dist/test/WalkupScanToCompManifest.test.d.ts +0 -1
  118. package/dist/test/WalkupScanToCompManifest.test.js +0 -46
  119. package/dist/test/WalkupScanToCompManifest.test.js.map +0 -1
  120. package/dist/test/clean.d.ts +0 -1
  121. package/dist/test/clean.js +0 -21
  122. package/dist/test/clean.js.map +0 -1
  123. package/dist/test/nextcloud.test.d.ts +0 -1
  124. package/dist/test/nextcloud.test.js +0 -165
  125. package/dist/test/nextcloud.test.js.map +0 -1
  126. package/dist/test/scanProcessing.test.d.ts +0 -1
  127. package/dist/test/scanProcessing.test.js +0 -105
  128. package/dist/test/scanProcessing.test.js.map +0 -1
  129. package/dist/test-bonjour.d.ts +0 -1
  130. package/dist/test-bonjour.js +0 -20
  131. package/dist/test-bonjour.js.map +0 -1
  132. package/nodemon.json +0 -6
  133. package/src/Destination.ts +0 -63
  134. package/src/DeviceCapabilities.ts +0 -8
  135. package/src/DiscoveryTree.ts +0 -56
  136. package/src/Event.ts +0 -55
  137. package/src/EventTable.ts +0 -45
  138. package/src/HPApi.ts +0 -510
  139. package/src/InputSource.ts +0 -4
  140. package/src/Job.ts +0 -134
  141. package/src/JpegUtil.ts +0 -327
  142. package/src/KnownShortcut.ts +0 -6
  143. package/src/PathHelper.ts +0 -106
  144. package/src/ScanCaps.ts +0 -81
  145. package/src/ScanContent.ts +0 -15
  146. package/src/ScanJobManifest.ts +0 -56
  147. package/src/ScanJobSettings.ts +0 -84
  148. package/src/ScanStatus.ts +0 -48
  149. package/src/WalkupScanDestination.ts +0 -74
  150. package/src/WalkupScanDestinations.ts +0 -46
  151. package/src/WalkupScanManifest.ts +0 -59
  152. package/src/WalkupScanToCompCaps.ts +0 -36
  153. package/src/WalkupScanToCompDestination.ts +0 -79
  154. package/src/WalkupScanToCompDestinations.ts +0 -47
  155. package/src/WalkupScanToCompEvent.ts +0 -30
  156. package/src/WalkupScanToCompManifest.ts +0 -59
  157. package/src/commitInfo.json +0 -3
  158. package/src/delay.ts +0 -5
  159. package/src/healthcheck.ts +0 -17
  160. package/src/index.ts +0 -588
  161. package/src/listening.ts +0 -144
  162. package/src/nextcloud/NextcloudConfig.ts +0 -7
  163. package/src/nextcloud/nextcloud.ts +0 -146
  164. package/src/paperless/PaperlessConfig.ts +0 -7
  165. package/src/paperless/paperless.ts +0 -110
  166. package/src/pdfProcessing.ts +0 -67
  167. package/src/postProcessing.ts +0 -165
  168. package/src/readDeviceCapabilities.ts +0 -52
  169. package/src/scanProcessing.ts +0 -570
  170. package/tsconfig.json +0 -34
@@ -1 +0,0 @@
1
- export {};
@@ -1,46 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const mocha_1 = require("mocha");
30
- const chai_1 = require("chai");
31
- const path_1 = __importDefault(require("path"));
32
- const fs = __importStar(require("fs/promises"));
33
- const WalkupScanToCompEvent_1 = __importDefault(require("../src/WalkupScanToCompEvent"));
34
- (0, mocha_1.describe)("WalkupScanToCompEvent", () => {
35
- (0, mocha_1.describe)("Parsing walkupScanToCompEvent.xml", async () => {
36
- let compEvent;
37
- before(async () => {
38
- const content = await fs.readFile(path_1.default.resolve(__dirname, "./asset/walkupScanToCompEvent.xml"), { encoding: "utf8" });
39
- compEvent = await WalkupScanToCompEvent_1.default.createWalkupScanToCompEvent(content);
40
- });
41
- it("Parse eventType", async () => {
42
- (0, chai_1.expect)(compEvent.eventType).to.be.eq("HostSelected");
43
- });
44
- });
45
- });
46
- //# sourceMappingURL=WalkupScanToCompEvent.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WalkupScanToCompEvent.test.js","sourceRoot":"","sources":["../../test/WalkupScanToCompEvent.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,+BAA8B;AAC9B,gDAAwB;AACxB,gDAAkC;AAClC,yFAAiE;AAEjE,IAAA,gBAAQ,EAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAA,gBAAQ,EAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACvD,IAAI,SAAgC,CAAC;QAErC,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,OAAO,GAAW,MAAM,EAAE,CAAC,QAAQ,CACvC,cAAI,CAAC,OAAO,CACV,SAAS,EACT,mCAAmC,CACpC,EACD,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;YACF,SAAS,GAAG,MAAM,+BAAqB,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;YAC/B,IAAA,aAAM,EAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe } from \"mocha\";\nimport { expect } from \"chai\";\nimport path from \"path\";\nimport * as fs from \"fs/promises\";\nimport WalkupScanToCompEvent from \"../src/WalkupScanToCompEvent\";\n\ndescribe(\"WalkupScanToCompEvent\", () => {\n describe(\"Parsing walkupScanToCompEvent.xml\", async () => {\n let compEvent: WalkupScanToCompEvent;\n\n before(async () => {\n const content: string = await fs.readFile(\n path.resolve(\n __dirname,\n \"./asset/walkupScanToCompEvent.xml\"\n ),\n { encoding: \"utf8\" }\n );\n compEvent = await WalkupScanToCompEvent.createWalkupScanToCompEvent(content);\n });\n\n it(\"Parse eventType\", async () => {\n expect(compEvent.eventType).to.be.eq(\"HostSelected\");\n });\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,46 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const mocha_1 = require("mocha");
30
- const chai_1 = require("chai");
31
- const path_1 = __importDefault(require("path"));
32
- const fs = __importStar(require("fs/promises"));
33
- const WalkupScanToCompManifest_1 = __importDefault(require("../src/WalkupScanToCompManifest"));
34
- (0, mocha_1.describe)("WalkupScanToCompManifest", () => {
35
- (0, mocha_1.describe)("Parsing walkupScanToCompManifest.xml", async () => {
36
- let walkupScanToCompManifest;
37
- before(async () => {
38
- const content = await fs.readFile(path_1.default.resolve(__dirname, "./asset/walkupScanToCompManifest.xml"), { encoding: "utf8" });
39
- walkupScanToCompManifest = await WalkupScanToCompManifest_1.default.createWalkupScanToCompManifest(content);
40
- });
41
- it("Parse WalkupScanToCompCaps uri", async () => {
42
- (0, chai_1.expect)(walkupScanToCompManifest.WalkupScanToCompCapsURI).to.be.eq("/WalkupScanToComp/WalkupScanToCompCaps");
43
- });
44
- });
45
- });
46
- //# sourceMappingURL=WalkupScanToCompManifest.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WalkupScanToCompManifest.test.js","sourceRoot":"","sources":["../../test/WalkupScanToCompManifest.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,+BAA8B;AAC9B,gDAAwB;AACxB,gDAAkC;AAClC,+FAAuE;AAEvE,IAAA,gBAAQ,EAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAA,gBAAQ,EAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QAC1D,IAAI,wBAAkD,CAAC;QAEvD,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,OAAO,GAAW,MAAM,EAAE,CAAC,QAAQ,CACvC,cAAI,CAAC,OAAO,CACV,SAAS,EACT,sCAAsC,CACvC,EACD,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;YACF,wBAAwB,GAAG,MAAM,kCAAwB,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACpG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,IAAA,aAAM,EAAC,wBAAwB,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,wCAAwC,CAAC,CAAC;QAC9G,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AAEL,CAAC,CAAC,CAAC","sourcesContent":["import { describe } from \"mocha\";\nimport { expect } from \"chai\";\nimport path from \"path\";\nimport * as fs from \"fs/promises\";\nimport WalkupScanToCompManifest from \"../src/WalkupScanToCompManifest\";\n\ndescribe(\"WalkupScanToCompManifest\", () => {\n describe(\"Parsing walkupScanToCompManifest.xml\", async () => {\n let walkupScanToCompManifest: WalkupScanToCompManifest;\n\n before(async () => {\n const content: string = await fs.readFile(\n path.resolve(\n __dirname,\n \"./asset/walkupScanToCompManifest.xml\"\n ),\n { encoding: \"utf8\" }\n );\n walkupScanToCompManifest = await WalkupScanToCompManifest.createWalkupScanToCompManifest(content);\n });\n\n it(\"Parse WalkupScanToCompCaps uri\", async () => {\n expect(walkupScanToCompManifest.WalkupScanToCompCapsURI).to.be.eq(\"/WalkupScanToComp/WalkupScanToCompCaps\");\n });\n });\n\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const mocha_1 = require("mocha");
7
- const HPApi_1 = __importDefault(require("../src/HPApi"));
8
- (0, mocha_1.describe)("EtagEventTable", () => {
9
- (0, mocha_1.describe)("Parsing eventTable.xml", async () => {
10
- before(async () => {
11
- HPApi_1.default.setDeviceIP("192.168.1.53");
12
- });
13
- it("Clean all destinations", async () => {
14
- const dests = await HPApi_1.default.getWalkupScanToCompDestinations();
15
- for (let i = 0; i < dests.destinations.length; i++) {
16
- await HPApi_1.default.removeDestination(dests.destinations[i]);
17
- }
18
- });
19
- });
20
- });
21
- //# sourceMappingURL=clean.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../test/clean.ts"],"names":[],"mappings":";;;;;AAAA,iCAAiC;AAEjC,yDAAiC;AAEjC,IAAA,gBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAA,gBAAQ,EAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,eAAK,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,KAAK,GAAG,MAAM,eAAK,CAAC,+BAA+B,EAAE,CAAC;YAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,MAAM,eAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aACtD;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe } from \"mocha\";\nimport { EtagEventTable } from \"../src/EventTable\";\nimport HPApi from \"../src/HPApi\";\n\ndescribe(\"EtagEventTable\", () => {\n describe(\"Parsing eventTable.xml\", async () => {\n before(async () => {\n HPApi.setDeviceIP(\"192.168.1.53\");\n });\n\n it(\"Clean all destinations\", async () => {\n const dests = await HPApi.getWalkupScanToCompDestinations();\n for (let i = 0; i < dests.destinations.length; i++) {\n await HPApi.removeDestination(dests.destinations[i]);\n }\n });\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,165 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const mocha_1 = require("mocha");
7
- const path_1 = __importDefault(require("path"));
8
- const nextcloud_1 = require("../src/nextcloud/nextcloud");
9
- const pdfProcessing_1 = require("../src/pdfProcessing");
10
- const fs_1 = __importDefault(require("fs"));
11
- const nock_1 = __importDefault(require("nock"));
12
- (0, mocha_1.describe)("nextcloud", () => {
13
- // prepare test data
14
- const fileName = "sample.jpg";
15
- const filePath = path_1.default.resolve(__dirname, "./asset/" + fileName);
16
- const nextcloudUrl = "https://nextcloud.example.test";
17
- const username = "scanner";
18
- const password = "pa$$word";
19
- const uploadFolder = "scan";
20
- let scanJobContent;
21
- let scanPage;
22
- let nextcloudConfig;
23
- beforeEach(async () => {
24
- nock_1.default.disableNetConnect();
25
- nock_1.default.enableNetConnect(nextcloudUrl);
26
- (0, nock_1.default)(nextcloudUrl, { allowUnmocked: true })
27
- .get(/.*/)
28
- .reply(503, 'Service Unavailable');
29
- scanJobContent = { elements: [] };
30
- scanPage = {
31
- pageNumber: 1,
32
- path: filePath,
33
- width: 400,
34
- height: 300,
35
- xResolution: 96,
36
- yResolution: 96,
37
- };
38
- nextcloudConfig = {
39
- baseUrl: nextcloudUrl,
40
- username: username,
41
- password: password,
42
- uploadFolder: uploadFolder,
43
- keepFiles: false,
44
- };
45
- });
46
- (0, mocha_1.describe)("upload images to Nextcloud", () => {
47
- it('success upload single image', async () => {
48
- (0, nock_1.default)(nextcloudUrl)
49
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')
50
- .basicAuth({ user: username, pass: password })
51
- .reply(207, "<?xml version=\"1.0\"?>\n" +
52
- "<d:multistatus xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\" xmlns:oc=\"http://owncloud.org/ns\" xmlns:nc=\"http://nextcloud.org/ns\"><d:response><d:propstat><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>")
53
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}/${fileName}`, 'PUT')
54
- .basicAuth({ user: username, pass: password })
55
- .reply(201);
56
- scanJobContent.elements.push(scanPage);
57
- await (0, nextcloud_1.uploadImagesToNextcloud)(scanJobContent, nextcloudConfig);
58
- });
59
- it('success upload multiple images', async () => {
60
- const fileName1 = "sample1.jpg";
61
- const fileName2 = "sample2.jpg";
62
- const filePath1 = path_1.default.resolve(__dirname, "./asset/" + fileName1);
63
- const filePath2 = path_1.default.resolve(__dirname, "./asset/" + fileName2);
64
- (0, nock_1.default)(nextcloudUrl)
65
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')
66
- .basicAuth({ user: username, pass: password })
67
- .reply(207, "<?xml version=\"1.0\"?>\n" +
68
- "<d:multistatus xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\" xmlns:oc=\"http://owncloud.org/ns\" xmlns:nc=\"http://nextcloud.org/ns\"><d:response><d:propstat><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>")
69
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}/${fileName}`, 'PUT')
70
- .basicAuth({ user: username, pass: password })
71
- .reply(201)
72
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}/${fileName1}`, 'PUT')
73
- .basicAuth({ user: username, pass: password })
74
- .reply(201)
75
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}/${fileName2}`, 'PUT')
76
- .basicAuth({ user: username, pass: password })
77
- .reply(201);
78
- fs_1.default.copyFileSync(filePath, filePath1);
79
- fs_1.default.copyFileSync(filePath, filePath2);
80
- scanJobContent.elements.push(scanPage);
81
- const scanPage2 = { ...scanPage };
82
- scanPage2.pageNumber = 2;
83
- scanPage2.path = filePath1;
84
- scanJobContent.elements.push(scanPage2);
85
- const scanPage3 = { ...scanPage };
86
- scanPage3.pageNumber = 3;
87
- scanPage3.path = filePath2;
88
- scanJobContent.elements.push(scanPage3);
89
- await (0, nextcloud_1.uploadImagesToNextcloud)(scanJobContent, nextcloudConfig);
90
- });
91
- it('user not authorized', async () => {
92
- (0, nock_1.default)(nextcloudUrl)
93
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')
94
- .basicAuth({ user: username, pass: password })
95
- .reply(401, "Unauthorized");
96
- scanJobContent = { elements: [] };
97
- await (0, nextcloud_1.uploadImagesToNextcloud)(scanJobContent, nextcloudConfig);
98
- });
99
- it('upload path does not exist', async () => {
100
- (0, nock_1.default)(nextcloudUrl)
101
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')
102
- .basicAuth({ user: username, pass: password })
103
- .reply(404, "No such file or directory");
104
- scanJobContent = { elements: [] };
105
- await (0, nextcloud_1.uploadImagesToNextcloud)(scanJobContent, nextcloudConfig);
106
- });
107
- it('upload file failed', async () => {
108
- (0, nock_1.default)(nextcloudUrl)
109
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')
110
- .basicAuth({ user: username, pass: password })
111
- .reply(207, "<?xml version=\"1.0\"?>\n" +
112
- "<d:multistatus xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\" xmlns:oc=\"http://owncloud.org/ns\" xmlns:nc=\"http://nextcloud.org/ns\"><d:response><d:propstat><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>")
113
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}/${fileName}`, 'PUT')
114
- .basicAuth({ user: username, pass: password })
115
- .reply(404);
116
- scanJobContent.elements.push(scanPage);
117
- await (0, nextcloud_1.uploadImagesToNextcloud)(scanJobContent, nextcloudConfig);
118
- });
119
- it('upload file not found', async () => {
120
- const unknownFilePath = path_1.default.resolve(__dirname, "./asset/unknown.jpg");
121
- (0, nock_1.default)(nextcloudUrl)
122
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')
123
- .basicAuth({ user: username, pass: password })
124
- .reply(207, "<?xml version=\"1.0\"?>\n" +
125
- "<d:multistatus xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\" xmlns:oc=\"http://owncloud.org/ns\" xmlns:nc=\"http://nextcloud.org/ns\"><d:response><d:propstat><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>")
126
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}/${fileName}`, 'PUT')
127
- .basicAuth({ user: username, pass: password })
128
- .reply(201);
129
- const scanPage = {
130
- pageNumber: 1,
131
- path: unknownFilePath,
132
- width: 400,
133
- height: 300,
134
- xResolution: 96,
135
- yResolution: 96,
136
- };
137
- scanJobContent.elements.push(scanPage);
138
- await (0, nextcloud_1.uploadImagesToNextcloud)(scanJobContent, nextcloudConfig);
139
- });
140
- });
141
- (0, mocha_1.describe)("uploadPdfToNextcloud", () => {
142
- it('success upload pdf document', async () => {
143
- const pdfFilePath = await (0, pdfProcessing_1.convertToPdf)(scanPage, false);
144
- const pdfFileName = "sample.pdf";
145
- (0, nock_1.default)(nextcloudUrl)
146
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')
147
- .basicAuth({ user: username, pass: password })
148
- .reply(207, "<?xml version=\"1.0\"?>\n" +
149
- "<d:multistatus xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\" xmlns:oc=\"http://owncloud.org/ns\" xmlns:nc=\"http://nextcloud.org/ns\"><d:response><d:propstat><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>")
150
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}/${pdfFileName}`, 'PUT')
151
- .basicAuth({ user: username, pass: password })
152
- .reply(201);
153
- await (0, nextcloud_1.uploadPdfToNextcloud)(pdfFilePath, nextcloudConfig);
154
- });
155
- it('pdf document not set', async () => {
156
- (0, nock_1.default)(nextcloudUrl)
157
- .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')
158
- .basicAuth({ user: username, pass: password })
159
- .reply(207, "<?xml version=\"1.0\"?>\n" +
160
- "<d:multistatus xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\" xmlns:oc=\"http://owncloud.org/ns\" xmlns:nc=\"http://nextcloud.org/ns\"><d:response><d:propstat><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>");
161
- await (0, nextcloud_1.uploadPdfToNextcloud)(null, nextcloudConfig);
162
- });
163
- });
164
- });
165
- //# sourceMappingURL=nextcloud.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nextcloud.test.js","sourceRoot":"","sources":["../../test/nextcloud.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe } from \"mocha\";\nimport path from \"path\";\nimport {\n ScanContent,\n ScanPage\n} from \"../src/ScanContent\";\nimport {\n uploadImagesToNextcloud,\n uploadPdfToNextcloud\n} from \"../src/nextcloud/nextcloud\";\nimport { NextcloudConfig } from \"../src/nextcloud/NextcloudConfig\";\nimport { convertToPdf } from \"../src/pdfProcessing\";\nimport fs from \"fs\";\nimport nock from \"nock\";\n\ndescribe(\"nextcloud\", () => {\n // prepare test data\n const fileName = \"sample.jpg\";\n const filePath = path.resolve(__dirname, \"./asset/\" + fileName);\n const nextcloudUrl = \"https://nextcloud.example.test\";\n const username = \"scanner\";\n const password = \"pa$$word\";\n const uploadFolder = \"scan\";\n\n let scanJobContent: ScanContent;\n let scanPage: ScanPage;\n let nextcloudConfig: NextcloudConfig;\n\n beforeEach(async () => {\n nock.disableNetConnect()\n nock.enableNetConnect(nextcloudUrl)\n\n nock(nextcloudUrl, { allowUnmocked: true })\n .get(/.*/)\n .reply(503, 'Service Unavailable');\n\n scanJobContent = { elements: [] };\n scanPage = {\n pageNumber: 1,\n path: filePath,\n width: 400,\n height: 300,\n xResolution: 96,\n yResolution: 96,\n };\n\n nextcloudConfig = {\n baseUrl: nextcloudUrl,\n username: username,\n password: password,\n uploadFolder: uploadFolder,\n keepFiles: false,\n }\n });\n\n describe(\"upload images to Nextcloud\", () => {\n it('success upload single image', async () => {\n nock(nextcloudUrl)\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')\n .basicAuth({user: username, pass: password})\n .reply(207, \"<?xml version=\\\"1.0\\\"?>\\n\" +\n \"<d:multistatus xmlns:d=\\\"DAV:\\\" xmlns:s=\\\"http://sabredav.org/ns\\\" xmlns:oc=\\\"http://owncloud.org/ns\\\" xmlns:nc=\\\"http://nextcloud.org/ns\\\"><d:response><d:propstat><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>\")\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}/${fileName}`, 'PUT')\n .basicAuth({user: username, pass: password})\n .reply(201);\n\n scanJobContent.elements.push(scanPage);\n\n await uploadImagesToNextcloud(scanJobContent, nextcloudConfig);\n });\n\n it('success upload multiple images', async () => {\n const fileName1 = \"sample1.jpg\";\n const fileName2 = \"sample2.jpg\";\n const filePath1 = path.resolve(__dirname, \"./asset/\" + fileName1);\n const filePath2 = path.resolve(__dirname, \"./asset/\" + fileName2);\n\n nock(nextcloudUrl)\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')\n .basicAuth({user: username, pass: password})\n .reply(207, \"<?xml version=\\\"1.0\\\"?>\\n\" +\n \"<d:multistatus xmlns:d=\\\"DAV:\\\" xmlns:s=\\\"http://sabredav.org/ns\\\" xmlns:oc=\\\"http://owncloud.org/ns\\\" xmlns:nc=\\\"http://nextcloud.org/ns\\\"><d:response><d:propstat><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>\")\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}/${fileName}`, 'PUT')\n .basicAuth({user: username, pass: password})\n .reply(201)\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}/${fileName1}`, 'PUT')\n .basicAuth({user: username, pass: password})\n .reply(201)\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}/${fileName2}`, 'PUT')\n .basicAuth({user: username, pass: password})\n .reply(201);\n\n fs.copyFileSync(filePath, filePath1);\n fs.copyFileSync(filePath, filePath2);\n\n scanJobContent.elements.push(scanPage);\n\n const scanPage2 = {...scanPage};\n scanPage2.pageNumber = 2;\n scanPage2.path = filePath1;\n scanJobContent.elements.push(scanPage2);\n\n const scanPage3 = {...scanPage};\n scanPage3.pageNumber = 3;\n scanPage3.path = filePath2;\n scanJobContent.elements.push(scanPage3);\n\n await uploadImagesToNextcloud(scanJobContent, nextcloudConfig);\n });\n\n it('user not authorized', async () => {\n nock(nextcloudUrl)\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')\n .basicAuth({user: username, pass: password})\n .reply(401, \"Unauthorized\");\n scanJobContent = { elements: [] };\n\n await uploadImagesToNextcloud(scanJobContent, nextcloudConfig);\n });\n\n it('upload path does not exist', async () => {\n nock(nextcloudUrl)\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')\n .basicAuth({user: username, pass: password})\n .reply(404, \"No such file or directory\");\n scanJobContent = { elements: [] };\n\n await uploadImagesToNextcloud(scanJobContent, nextcloudConfig);\n });\n\n it('upload file failed', async () => {\n nock(nextcloudUrl)\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')\n .basicAuth({user: username, pass: password})\n .reply(207, \"<?xml version=\\\"1.0\\\"?>\\n\" +\n \"<d:multistatus xmlns:d=\\\"DAV:\\\" xmlns:s=\\\"http://sabredav.org/ns\\\" xmlns:oc=\\\"http://owncloud.org/ns\\\" xmlns:nc=\\\"http://nextcloud.org/ns\\\"><d:response><d:propstat><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>\")\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}/${fileName}`, 'PUT')\n .basicAuth({user: username, pass: password})\n .reply(404);\n\n scanJobContent.elements.push(scanPage);\n\n await uploadImagesToNextcloud(scanJobContent, nextcloudConfig);\n });\n\n it('upload file not found', async () => {\n const unknownFilePath = path.resolve(__dirname, \"./asset/unknown.jpg\");\n nock(nextcloudUrl)\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')\n .basicAuth({user: username, pass: password})\n .reply(207, \"<?xml version=\\\"1.0\\\"?>\\n\" +\n \"<d:multistatus xmlns:d=\\\"DAV:\\\" xmlns:s=\\\"http://sabredav.org/ns\\\" xmlns:oc=\\\"http://owncloud.org/ns\\\" xmlns:nc=\\\"http://nextcloud.org/ns\\\"><d:response><d:propstat><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>\")\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}/${fileName}`, 'PUT')\n .basicAuth({user: username, pass: password})\n .reply(201);\n\n const scanPage = {\n pageNumber: 1,\n path: unknownFilePath,\n width: 400,\n height: 300,\n xResolution: 96,\n yResolution: 96,\n };\n scanJobContent.elements.push(scanPage);\n\n await uploadImagesToNextcloud(scanJobContent, nextcloudConfig);\n });\n });\n\n describe(\"uploadPdfToNextcloud\", () => {\n it('success upload pdf document', async () => {\n const pdfFilePath = await convertToPdf(scanPage, false);\n const pdfFileName = \"sample.pdf\";\n\n nock(nextcloudUrl)\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')\n .basicAuth({user: username, pass: password})\n .reply(207, \"<?xml version=\\\"1.0\\\"?>\\n\" +\n \"<d:multistatus xmlns:d=\\\"DAV:\\\" xmlns:s=\\\"http://sabredav.org/ns\\\" xmlns:oc=\\\"http://owncloud.org/ns\\\" xmlns:nc=\\\"http://nextcloud.org/ns\\\"><d:response><d:propstat><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>\")\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}/${pdfFileName}`, 'PUT')\n .basicAuth({user: username, pass: password})\n .reply(201);\n\n await uploadPdfToNextcloud(pdfFilePath, nextcloudConfig);\n });\n\n it('pdf document not set', async () => {\n nock(nextcloudUrl)\n .intercept(`/remote.php/dav/files/${username}/${uploadFolder}`, 'PROPFIND')\n .basicAuth({user: username, pass: password})\n .reply(207, \"<?xml version=\\\"1.0\\\"?>\\n\" +\n \"<d:multistatus xmlns:d=\\\"DAV:\\\" xmlns:s=\\\"http://sabredav.org/ns\\\" xmlns:oc=\\\"http://owncloud.org/ns\\\" xmlns:nc=\\\"http://nextcloud.org/ns\\\"><d:response><d:propstat><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>\");\n\n await uploadPdfToNextcloud(null, nextcloudConfig);\n });\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,105 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const mocha_1 = require("mocha");
4
- const chai_1 = require("chai");
5
- const scanProcessing_1 = require("../src/scanProcessing");
6
- const InputSource_1 = require("../src/InputSource");
7
- (0, mocha_1.describe)("scanProcessing", () => {
8
- let scanConfig;
9
- let deviceCapabilities;
10
- beforeEach(async () => {
11
- scanConfig = {
12
- resolution: 200,
13
- width: null,
14
- height: null,
15
- directoryConfig: {
16
- directory: undefined,
17
- tempDirectory: undefined,
18
- filePattern: undefined,
19
- },
20
- paperlessConfig: undefined,
21
- nextcloudConfig: undefined
22
- };
23
- deviceCapabilities = {
24
- supportsMultiItemScanFromPlaten: false,
25
- useWalkupScanToComp: false,
26
- platenMaxWidth: null,
27
- platenMaxHeight: null,
28
- adfMaxWidth: null,
29
- adfMaxHeight: null,
30
- };
31
- });
32
- (0, mocha_1.describe)("getScanWidth", async () => {
33
- const inputSource = InputSource_1.InputSource.Adf;
34
- (0, mocha_1.describe)("Adf", async () => {
35
- it("Does not define a value if nothing provided", async () => {
36
- const width = (0, scanProcessing_1.getScanWidth)(scanConfig, inputSource, deviceCapabilities);
37
- (0, chai_1.expect)(width).to.be.eq(null);
38
- });
39
- it("Does not define a value if negative provided", async () => {
40
- scanConfig.width = -1;
41
- const width = (0, scanProcessing_1.getScanWidth)(scanConfig, inputSource, deviceCapabilities);
42
- (0, chai_1.expect)(width).to.be.eq(null);
43
- });
44
- it("Define the value if no max available from device", async () => {
45
- scanConfig.width = 2583;
46
- const width = (0, scanProcessing_1.getScanWidth)(scanConfig, inputSource, deviceCapabilities);
47
- (0, chai_1.expect)(width).to.be.eq(2583);
48
- });
49
- });
50
- (0, mocha_1.describe)("Platen", async () => {
51
- const inputSource = InputSource_1.InputSource.Platen;
52
- it("Does not define a value if nothing provided", async () => {
53
- const width = (0, scanProcessing_1.getScanWidth)(scanConfig, inputSource, deviceCapabilities);
54
- (0, chai_1.expect)(width).to.be.eq(null);
55
- });
56
- it("Does not define a value if negative provided", async () => {
57
- scanConfig.width = -1;
58
- const width = (0, scanProcessing_1.getScanWidth)(scanConfig, inputSource, deviceCapabilities);
59
- (0, chai_1.expect)(width).to.be.eq(null);
60
- });
61
- it("Define the value if no max available from device", async () => {
62
- scanConfig.width = 2583;
63
- const width = (0, scanProcessing_1.getScanWidth)(scanConfig, inputSource, deviceCapabilities);
64
- (0, chai_1.expect)(width).to.be.eq(2583);
65
- });
66
- });
67
- });
68
- (0, mocha_1.describe)("getScanHeight", async () => {
69
- const inputSource = InputSource_1.InputSource.Adf;
70
- (0, mocha_1.describe)("Adf", async () => {
71
- it("Does not define a value if nothing provided", async () => {
72
- const height = (0, scanProcessing_1.getScanHeight)(scanConfig, inputSource, deviceCapabilities);
73
- (0, chai_1.expect)(height).to.be.eq(null);
74
- });
75
- it("Does not define a value if negative provided", async () => {
76
- scanConfig.height = -1;
77
- const height = (0, scanProcessing_1.getScanHeight)(scanConfig, inputSource, deviceCapabilities);
78
- (0, chai_1.expect)(height).to.be.eq(null);
79
- });
80
- it("Define the value if no max available from device", async () => {
81
- scanConfig.height = 1269;
82
- const width = (0, scanProcessing_1.getScanHeight)(scanConfig, inputSource, deviceCapabilities);
83
- (0, chai_1.expect)(width).to.be.eq(1269);
84
- });
85
- });
86
- (0, mocha_1.describe)("Platen", async () => {
87
- const inputSource = InputSource_1.InputSource.Platen;
88
- it("Does not define a value if nothing provided", async () => {
89
- const height = (0, scanProcessing_1.getScanHeight)(scanConfig, inputSource, deviceCapabilities);
90
- (0, chai_1.expect)(height).to.be.eq(null);
91
- });
92
- it("Does not define a value if negative provided", async () => {
93
- scanConfig.height = -1;
94
- const height = (0, scanProcessing_1.getScanHeight)(scanConfig, inputSource, deviceCapabilities);
95
- (0, chai_1.expect)(height).to.be.eq(null);
96
- });
97
- it("Define the value if no max available from device", async () => {
98
- scanConfig.height = 1269;
99
- const height = (0, scanProcessing_1.getScanHeight)(scanConfig, inputSource, deviceCapabilities);
100
- (0, chai_1.expect)(height).to.be.eq(1269);
101
- });
102
- });
103
- });
104
- });
105
- //# sourceMappingURL=scanProcessing.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scanProcessing.test.js","sourceRoot":"","sources":["../../test/scanProcessing.test.ts"],"names":[],"mappings":";;AAAA,iCAAiC;AACjC,+BAA8B;AAC9B,0DAI+B;AAE/B,oDAAiD;AAEjD,IAAA,gBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAI,UAAsB,CAAC;IAC3B,IAAI,kBAAsC,CAAC;IAE3C,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,UAAU,GAAG;YACX,UAAU,EAAE,GAAG;YACf,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE;gBACf,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,SAAS;gBACxB,WAAW,EAAE,SAAS;aACvB;YACD,eAAe,EAAE,SAAS;YAC1B,eAAe,EAAE,SAAS;SAC3B,CAAC;QACF,kBAAkB,GAAG;YACnB,+BAA+B,EAAE,KAAK;YACtC,mBAAmB,EAAE,KAAK;YAC1B,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAQ,EAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,WAAW,GAAG,yBAAW,CAAC,GAAG,CAAC;QACpC,IAAA,gBAAQ,EAAC,KAAK,EAAE,KAAK,IAAI,EAAE;YACzB,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;gBAC3D,MAAM,KAAK,GAAG,IAAA,6BAAY,EAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBACxE,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;gBAC5D,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACtB,MAAM,KAAK,GAAG,IAAA,6BAAY,EAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBACxE,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;gBAChE,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;gBACxB,MAAM,KAAK,GAAG,IAAA,6BAAY,EAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBACxE,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAA,gBAAQ,EAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC5B,MAAM,WAAW,GAAG,yBAAW,CAAC,MAAM,CAAC;YACvC,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;gBAC3D,MAAM,KAAK,GAAG,IAAA,6BAAY,EAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBACxE,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;gBAC5D,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACtB,MAAM,KAAK,GAAG,IAAA,6BAAY,EAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBACxE,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;gBAChE,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;gBACxB,MAAM,KAAK,GAAG,IAAA,6BAAY,EAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBACxE,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAQ,EAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,WAAW,GAAG,yBAAW,CAAC,GAAG,CAAC;QACpC,IAAA,gBAAQ,EAAC,KAAK,EAAE,KAAK,IAAI,EAAE;YACzB,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;gBAC3D,MAAM,MAAM,GAAG,IAAA,8BAAa,EAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBAC1E,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;gBAC5D,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACvB,MAAM,MAAM,GAAG,IAAA,8BAAa,EAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBAC1E,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;gBAChE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;gBACzB,MAAM,KAAK,GAAG,IAAA,8BAAa,EAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBACzE,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAA,gBAAQ,EAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC5B,MAAM,WAAW,GAAG,yBAAW,CAAC,MAAM,CAAC;YACvC,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;gBAC3D,MAAM,MAAM,GAAG,IAAA,8BAAa,EAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBAC1E,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;gBAC5D,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACvB,MAAM,MAAM,GAAG,IAAA,8BAAa,EAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBAC1E,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;gBAChE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;gBACzB,MAAM,MAAM,GAAG,IAAA,8BAAa,EAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBAC1E,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe } from \"mocha\";\nimport { expect } from \"chai\";\nimport {\n getScanWidth,\n getScanHeight,\n ScanConfig,\n} from \"../src/scanProcessing\";\nimport { DeviceCapabilities } from \"../src/DeviceCapabilities\";\nimport { InputSource } from \"../src/InputSource\";\n\ndescribe(\"scanProcessing\", () => {\n let scanConfig: ScanConfig;\n let deviceCapabilities: DeviceCapabilities;\n\n beforeEach(async () => {\n scanConfig = {\n resolution: 200,\n width: null,\n height: null,\n directoryConfig: {\n directory: undefined,\n tempDirectory: undefined,\n filePattern: undefined,\n },\n paperlessConfig: undefined,\n nextcloudConfig: undefined\n };\n deviceCapabilities = {\n supportsMultiItemScanFromPlaten: false,\n useWalkupScanToComp: false,\n platenMaxWidth: null,\n platenMaxHeight: null,\n adfMaxWidth: null,\n adfMaxHeight: null,\n };\n });\n\n describe(\"getScanWidth\", async () => {\n const inputSource = InputSource.Adf;\n describe(\"Adf\", async () => {\n it(\"Does not define a value if nothing provided\", async () => {\n const width = getScanWidth(scanConfig, inputSource, deviceCapabilities);\n expect(width).to.be.eq(null);\n });\n it(\"Does not define a value if negative provided\", async () => {\n scanConfig.width = -1;\n const width = getScanWidth(scanConfig, inputSource, deviceCapabilities);\n expect(width).to.be.eq(null);\n });\n it(\"Define the value if no max available from device\", async () => {\n scanConfig.width = 2583;\n const width = getScanWidth(scanConfig, inputSource, deviceCapabilities);\n expect(width).to.be.eq(2583);\n });\n });\n describe(\"Platen\", async () => {\n const inputSource = InputSource.Platen;\n it(\"Does not define a value if nothing provided\", async () => {\n const width = getScanWidth(scanConfig, inputSource, deviceCapabilities);\n expect(width).to.be.eq(null);\n });\n it(\"Does not define a value if negative provided\", async () => {\n scanConfig.width = -1;\n const width = getScanWidth(scanConfig, inputSource, deviceCapabilities);\n expect(width).to.be.eq(null);\n });\n it(\"Define the value if no max available from device\", async () => {\n scanConfig.width = 2583;\n const width = getScanWidth(scanConfig, inputSource, deviceCapabilities);\n expect(width).to.be.eq(2583);\n });\n });\n });\n\n describe(\"getScanHeight\", async () => {\n const inputSource = InputSource.Adf;\n describe(\"Adf\", async () => {\n it(\"Does not define a value if nothing provided\", async () => {\n const height = getScanHeight(scanConfig, inputSource, deviceCapabilities);\n expect(height).to.be.eq(null);\n });\n it(\"Does not define a value if negative provided\", async () => {\n scanConfig.height = -1;\n const height = getScanHeight(scanConfig, inputSource, deviceCapabilities);\n expect(height).to.be.eq(null);\n });\n it(\"Define the value if no max available from device\", async () => {\n scanConfig.height = 1269;\n const width = getScanHeight(scanConfig, inputSource, deviceCapabilities);\n expect(width).to.be.eq(1269);\n });\n });\n describe(\"Platen\", async () => {\n const inputSource = InputSource.Platen;\n it(\"Does not define a value if nothing provided\", async () => {\n const height = getScanHeight(scanConfig, inputSource, deviceCapabilities);\n expect(height).to.be.eq(null);\n });\n it(\"Does not define a value if negative provided\", async () => {\n scanConfig.height = -1;\n const height = getScanHeight(scanConfig, inputSource, deviceCapabilities);\n expect(height).to.be.eq(null);\n });\n it(\"Define the value if no max available from device\", async () => {\n scanConfig.height = 1269;\n const height = getScanHeight(scanConfig, inputSource, deviceCapabilities);\n expect(height).to.be.eq(1269);\n });\n });\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const bonjour_1 = __importDefault(require("bonjour"));
7
- // advertise an HTTP server on port 3000
8
- //instance.publish({ name: 'My Web Server', type: 'http', port: 3000 })
9
- const bonjour0 = (0, bonjour_1.default)();
10
- console.log("Searching device...");
11
- const browser = bonjour0.find({
12
- type: "http",
13
- }, (service) => {
14
- console.log(`Found: ${service.name}`);
15
- });
16
- // browse for all http services
17
- // instance.find({ type: 'http'}, function (service) {
18
- // console.log('Found an HTTP server:', service)
19
- // })
20
- //# sourceMappingURL=test-bonjour.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-bonjour.js","sourceRoot":"","sources":["../test-bonjour.ts"],"names":[],"mappings":";;;;;AACA,sDAA+B;AAG/B,wCAAwC;AACxC,uEAAuE;AAEvE,MAAM,QAAQ,GAAG,IAAA,iBAAQ,GAAE,CAAC;AAC5B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAC3B;IACE,IAAI,EAAE,MAAM;CACb,EACD,CAAC,OAAO,EAAE,EAAE;IACV,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEL,+BAA+B;AAC/B,sDAAsD;AACtD,kDAAkD;AAClD,KAAK","sourcesContent":["\nimport Bonjour0 from \"bonjour\";\n\n\n// advertise an HTTP server on port 3000\n//instance.publish({ name: 'My Web Server', type: 'http', port: 3000 })\n\nconst bonjour0 = Bonjour0();\nconsole.log(\"Searching device...\");\nconst browser = bonjour0.find(\n {\n type: \"http\",\n },\n (service) => {\n console.log(`Found: ${service.name}`);\n });\n\n// browse for all http services\n// instance.find({ type: 'http'}, function (service) {\n// console.log('Found an HTTP server:', service)\n// })"]}
package/nodemon.json DELETED
@@ -1,6 +0,0 @@
1
- {
2
- "watch": ["src"],
3
- "ext": "ts",
4
- "ignore": ["src/**/*.spec.ts"],
5
- "exec": "ts-node ./src/index.ts"
6
- }
@@ -1,63 +0,0 @@
1
- "use strict";
2
-
3
- import { Parser, Builder } from "xml2js";
4
- import * as util from "util";
5
-
6
- const parser = new Parser();
7
-
8
- type WalkupScanDestinationData = {
9
- WalkupScanDestination: {
10
- Hostname: { _: string }[];
11
- Name: { _: string }[];
12
- LinkType: string[];
13
- };
14
- };
15
-
16
- export default class Destination {
17
- private readonly name: string;
18
- private readonly hostname: string;
19
- private readonly linkType: string;
20
- private readonly toComp: boolean;
21
-
22
- constructor(name: string, hostname: string, toComp: boolean) {
23
- this.name = name;
24
- this.hostname = hostname;
25
- this.linkType = "Network";
26
- this.toComp = toComp;
27
- }
28
-
29
- async toXML() {
30
- let rawDestination: string = '<?xml version="1.0" encoding="UTF-8"?>\n';
31
- if (this.toComp) {
32
- rawDestination +=
33
- '<WalkupScanDestination xmlns="http://www.hp.com/schemas/imaging/con/ledm/walkupscan/2010/09/28" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
34
- 'xsi:schemaLocation="http://www.hp.com/schemas/imaging/con/ledm/walkupscan/2010/09/28 WalkupScan.xsd">\n';
35
- } else {
36
- rawDestination +=
37
- '<WalkupScanDestination xmlns="http://www.hp.com/schemas/imaging/con/rest/walkupscan/2009/09/21" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \n' +
38
- 'xsi:schemaLocation="http://www.hp.com/schemas/imaging/con/rest/walkupscan/2009/09/21 WalkupScanDestinations.xsd">\n';
39
- }
40
-
41
- rawDestination +=
42
- '\t<Hostname xmlns="http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06"></Hostname>\n' +
43
- '\t<Name xmlns="http://www.hp.com/schemas/imaging/con/dictionaries/1.0/"></Name>\n' +
44
- "\t<LinkType>Network</LinkType>\n" +
45
- "</WalkupScanDestination>";
46
-
47
- const parsed = await util.promisify<string, WalkupScanDestinationData>(
48
- parser.parseString,
49
- )(rawDestination);
50
-
51
- parsed.WalkupScanDestination.Hostname[0]._ = this.hostname;
52
- parsed.WalkupScanDestination.Name[0]._ = this.name;
53
- parsed.WalkupScanDestination.LinkType[0] = this.linkType;
54
-
55
- const builder = new Builder();
56
- const xml = builder.buildObject(parsed);
57
- if (this.toComp) {
58
- return xml.replace(/WalkupScan/g, "WalkupScanToComp");
59
- } else {
60
- return xml;
61
- }
62
- }
63
- }
@@ -1,8 +0,0 @@
1
- export interface DeviceCapabilities {
2
- supportsMultiItemScanFromPlaten: boolean;
3
- useWalkupScanToComp: boolean;
4
- platenMaxWidth: number | null;
5
- platenMaxHeight: number | null;
6
- adfMaxWidth: number | null;
7
- adfMaxHeight: number | null;
8
- }