Skip to content

Commit 5a61773

Browse files
committed
release: v1.4.0
1 parent f2486a1 commit 5a61773

40 files changed

+16168
-8883
lines changed

README.md

Lines changed: 239 additions & 96 deletions
Large diffs are not rendered by default.

dev-server/index.js

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ app.use("/dist", express.static(distPath));
3636
app.use("/assets", express.static(path.join(__dirname, "../samples/demo/assets")));
3737
app.use("/css", express.static(path.join(__dirname, "../samples/demo/css")));
3838
app.use("/font", express.static(path.join(__dirname, "../samples/demo/font")));
39+
app.use("/samples", express.static(path.join(__dirname, "../samples")));
3940

4041
// Routes
4142
app.get("/", (req, res) => {
@@ -50,8 +51,16 @@ app.get("/hello-world", (req, res) => {
5051
res.sendFile(path.join(__dirname, "../samples/hello-world.html"));
5152
});
5253

53-
app.get("/scenarios/use-file-input", (req, res) => {
54-
res.sendFile(path.join(__dirname, "../samples/scenarios/use-file-input.html"));
54+
app.get("/multi-page-scanning", (req, res) => {
55+
res.sendFile(path.join(__dirname, "../samples/scenarios/multi-page-scanning.html"));
56+
});
57+
58+
app.get("/scanning-to-pdf", (req, res) => {
59+
res.sendFile(path.join(__dirname, "../samples/scenarios/scanning-to-pdf.html"));
60+
});
61+
62+
app.get("/image-file-scanning", (req, res) => {
63+
res.sendFile(path.join(__dirname, "../samples/scenarios/image-file-scanning.html"));
5564
});
5665

5766
// Allow upload feature
@@ -74,11 +83,9 @@ app.post("/upload", function (req, res) {
7483
return res.status(400).json({ success: false, message: "No file uploaded" });
7584
}
7685

77-
// Get current timestamp
78-
let dt = new Date();
79-
80-
const fileSavePath = path.join(__dirname, "\\");
81-
const newFileName = uploadedFile.originalFilename;
86+
// Sanitize filename to prevent path traversal
87+
const newFileName = path.basename(uploadedFile.originalFilename);
88+
const fileSavePath = __dirname;
8289
const newFilePath = path.join(fileSavePath, newFileName);
8390

8491
// Move the uploaded file to the desired directory
@@ -88,11 +95,11 @@ app.post("/upload", function (req, res) {
8895
return res.status(500).send("Error saving the file.");
8996
}
9097
console.log(`\x1b[33m ${newFileName} \x1b[0m uploaded successfully!`);
91-
});
92-
res.status(200).json({
93-
success: true,
94-
message: `${newFileName} uploaded successfully`,
95-
filename: newFileName,
98+
res.status(200).json({
99+
success: true,
100+
message: `${newFileName} uploaded successfully`,
101+
filename: newFileName,
102+
});
96103
});
97104
});
98105
} catch (error) {
@@ -151,7 +158,7 @@ httpsServer.on("error", (error) => {
151158
console.log(`2. Close any other applications using port ${httpsPort}`);
152159
console.log(`3. Wait a few moments and try again - the port might be in a cleanup state\n`);
153160
} else {
154-
console.error("\x1b[31mHTTP Server error:\x1b[0m", error);
161+
console.error("\x1b[31mHTTPS Server error:\x1b[0m", error);
155162
}
156163
process.exit(1);
157164
});
@@ -161,8 +168,12 @@ httpServer.listen(httpPort, () => {
161168
console.log("\n\x1b[1m Dynamsoft Document Scanner Samples\x1b[0m\n");
162169
console.log("\x1b[36m HTTP URLs:\x1b[0m");
163170
console.log("\x1b[90m-------------------\x1b[0m");
164-
console.log("\x1b[33m Hello World:\x1b[0m http://localhost:" + httpPort + "/hello-world");
165-
console.log("\x1b[33m Demo:\x1b[0m http://localhost:" + httpPort + "/demo");
171+
console.log("\x1b[1m\x1b[35m → Samples Index:\x1b[0m \x1b[1mhttp://localhost:" + httpPort + "/samples\x1b[0m");
172+
console.log("\x1b[33m Hello World:\x1b[0m http://localhost:" + httpPort + "/hello-world");
173+
console.log("\x1b[33m Scanning to PDF:\x1b[0m http://localhost:" + httpPort + "/scanning-to-pdf");
174+
console.log("\x1b[33m Demo:\x1b[0m http://localhost:" + httpPort + "/demo");
175+
console.log("\x1b[33m Multi-Page Scanning:\x1b[0m http://localhost:" + httpPort + "/multi-page-scanning");
176+
console.log("\x1b[33m Image File Scanning:\x1b[0m http://localhost:" + httpPort + "/image-file-scanning");
166177
});
167178

168179
httpsServer.listen(httpsPort, "0.0.0.0", () => {
@@ -179,9 +190,15 @@ httpsServer.listen(httpsPort, "0.0.0.0", () => {
179190
console.log("\n");
180191
console.log("\x1b[36m HTTPS URLs:\x1b[0m");
181192
console.log("\x1b[90m-------------------\x1b[0m");
182-
ipv4Addresses.forEach((localIP) => {
183-
console.log("\x1b[32m Hello World:\x1b[0m https://" + localIP + ":" + httpsPort + "/hello-world");
184-
console.log("\x1b[32m Demo:\x1b[0m https://" + localIP + ":" + httpsPort + "/demo");
193+
ipv4Addresses.forEach((localIP, index) => {
194+
if (index > 0) console.log(""); // Add spacing between different IPs
195+
console.log("\x1b[32m----IP[" + index + "]: " + localIP + "----\x1b");
196+
console.log("\x1b[1m\x1b[35m → Samples Index:\x1b[0m \x1b[1mhttps://" + localIP + ":" + httpsPort + "/samples\x1b[0m");
197+
console.log("\x1b[32m Hello World:\x1b[0m https://" + localIP + ":" + httpsPort + "/hello-world");
198+
console.log("\x1b[32m Scanning to PDF:\x1b[0m https://" + localIP + ":" + httpsPort + "/scanning-to-pdf");
199+
console.log("\x1b[32m Demo:\x1b[0m https://" + localIP + ":" + httpsPort + "/demo");
200+
console.log("\x1b[32m Multi-Page Scanning:\x1b[0m https://" + localIP + ":" + httpsPort + "/multi-page-scanning");
201+
console.log("\x1b[32m Image File Scanning:\x1b[0m https://" + localIP + ":" + httpsPort + "/image-file-scanning");
185202
});
186203
console.log("\n");
187204
console.log("\x1b[90mPress Ctrl+C to stop the server\x1b[0m\n");

dev-server/pem/cert.pem

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
-----BEGIN CERTIFICATE-----
2-
MIICDDCCAXUCFGlprxUW7YsQSmqXwS3fjySQwexCMA0GCSqGSIb3DQEBCwUAMEUx
3-
CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
4-
cm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjAwMTE3MDE0OTM0WhcNMjAwMjE2MDE0
5-
OTM0WjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UE
6-
CgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GN
7-
ADCBiQKBgQCt3L/syEyB8B9O8Xhf3/SJOfTsoSs+3+/ELvFd07QEP0mySRjh9hUL
8-
BjB1bWJXBshn9JBzlfGUjRtNkc54VF1JfjFgi7UzqqyAlAwfEMBbp8jUX1Hh9iU7
9-
ctTAHxcAicTWTkRmToXJBUhbgTH+eF/GfQTdnByrncprQfuqdPg2KwIDAQABMA0G
10-
CSqGSIb3DQEBCwUAA4GBAKRRbXBhTS95IimKoIZq3RtVrjXpcsBn5ncyvFULc6Y5
11-
OkOxum5TO++XHVOJyalqyWpAQuz6i348hxTW6wqt5Js0UPGLGIb4Kq965QKKT+yJ
12-
WnHOnzZzJxiTs/1uGFjPAKgdvuDhcx36YsvSQ/UnJvF0rttjLKOGI5SkFMgz1Ufz
2+
MIIBrjCCAVOgAwIBAgIUCp1iPS8I82nAYLY6urLJIebD6v0wCgYIKoZIzj0EAwIw
3+
RTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGElu
4+
dGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTEwMjAyMTMwMjFaFw0yNTExMTky
5+
MTMwMjFaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD
6+
VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwWTATBgcqhkjOPQIBBggqhkjO
7+
PQMBBwNCAAQSioVTYrJS1oJNQhaj5gr6M63uppPpaB5biwHIRkBBL4b/q/SDVDjR
8+
/YP2Ed8RrU2WrFyGsh5yhDJAZSWWUHAHoyEwHzAdBgNVHQ4EFgQUNrng2xZm0ouA
9+
NfGi8k96E6Mhb1IwCgYIKoZIzj0EAwIDSQAwRgIhALmnSAtb4UbcyFkWRZOlnkpk
10+
9QcukssrIyzFNElPM9jPAiEA9uJRNWFE/elq/P8cBB+Avx6bj3mDoww7DMZxiaeS
11+
fZQ=
1312
-----END CERTIFICATE-----

dev-server/pem/csr.pem

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
-----BEGIN CERTIFICATE REQUEST-----
2-
MIIBhDCB7gIBADBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEh
3-
MB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEB
4-
AQUAA4GNADCBiQKBgQCt3L/syEyB8B9O8Xhf3/SJOfTsoSs+3+/ELvFd07QEP0my
5-
SRjh9hULBjB1bWJXBshn9JBzlfGUjRtNkc54VF1JfjFgi7UzqqyAlAwfEMBbp8jU
6-
X1Hh9iU7ctTAHxcAicTWTkRmToXJBUhbgTH+eF/GfQTdnByrncprQfuqdPg2KwID
7-
AQABoAAwDQYJKoZIhvcNAQELBQADgYEAgwEY90gQQzxIonWEgDxGRBHxSk0h3UE4
8-
rTP3JggV6h0vXMndOrDXC2qrh20fJaWIHqbBtmfOF4NmPhQTSZOZ2fIjPBeHZqLq
9-
8+K9iZPeyjnVIRyWkXfCPacoddTw2FcykRobgL6Wi/RoldutOnIDlTawo5Y/eXvm
10-
JI0428mqYU4=
2+
MIIBADCBpwIBADBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEh
3+
MB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMFkwEwYHKoZIzj0CAQYI
4+
KoZIzj0DAQcDQgAEEoqFU2KyUtaCTUIWo+YK+jOt7qaT6WgeW4sByEZAQS+G/6v0
5+
g1Q40f2D9hHfEa1NlqxchrIecoQyQGUlllBwB6AAMAoGCCqGSM49BAMCA0gAMEUC
6+
IBUmLzT9IpVjQ4R5IYGakzwyXUjg2HI8E7jvfdcxpCFfAiEAnvHcm0pSnpIjESHc
7+
gfs4yMDzyJr0HJs1sH2MVr+X070=
118
-----END CERTIFICATE REQUEST-----

dev-server/pem/key.pem

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,5 @@
1-
-----BEGIN RSA PRIVATE KEY-----
2-
MIICXAIBAAKBgQCt3L/syEyB8B9O8Xhf3/SJOfTsoSs+3+/ELvFd07QEP0mySRjh
3-
9hULBjB1bWJXBshn9JBzlfGUjRtNkc54VF1JfjFgi7UzqqyAlAwfEMBbp8jUX1Hh
4-
9iU7ctTAHxcAicTWTkRmToXJBUhbgTH+eF/GfQTdnByrncprQfuqdPg2KwIDAQAB
5-
AoGAO6O6zm2TGQuWoczhPvoi9yPDaZyLqiDFLaXws//YA5D2Jcs/VtvEMijoXI+u
6-
KS4xdr+FAbFQ0mVpFT3L9qjx6p/lSVKzJ1tlVlp7klJzK0VOWmMojLrhsstp44ah
7-
jZQdxcnlEDgeBwXj5m09fr7YFfIiyHef+r9ORqn00F7K+xkCQQDhy5k00dsfL5MY
8-
oy70Ikb70n90qktnFXrgsgEeojG0j0OmJUdNLV6gXbkD4lEeh6iK5XdAEuso+Qw1
9-
5Ksa3d11AkEAxR6yMXPIbl+4y24TbIGAZwb44Lyn9DAnLm5qgFvMgJARz+kqlYyr
10-
tpZ6cD1JY3fuF+umDlNPYzxGxy3kz/sxHwJBAJNiLDzYBmmSyjc4vPtKLH9PZTan
11-
udQtpylnx2dRg5RSN1wJ1ULBLJUM2Cl63mxJLHCNW4uNTcZO2fOLsUw2KckCQBFp
12-
dboSjSjawbsOfR6/jbUME53ebEOQoVVjoXq3IShWEYy4/u743w4g2q3hbAMiS+DH
13-
CwMG7uNIJsRfVG/es2cCQD7R6ebztt858vYZzfLMLMsJTF2YQs1YG91x76lZLhNp
14-
tcTTENHD4g9v/Q5MV+fhN0UuJ2ikrXULAgDmJMvAVyk=
15-
-----END RSA PRIVATE KEY-----
1+
-----BEGIN EC PRIVATE KEY-----
2+
MHcCAQEEILIGf02Od9J9c/16X11u7XOplP0lBfoLwmlf0QOnF1jroAoGCCqGSM49
3+
AwEHoUQDQgAEEoqFU2KyUtaCTUIWo+YK+jOt7qaT6WgeW4sByEZAQS+G/6v0g1Q4
4+
0f2D9hHfEa1NlqxchrIecoQyQGUlllBwBw==
5+
-----END EC PRIVATE KEY-----

0 commit comments

Comments
 (0)