diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f6ad62..46fe5ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,7 +18,7 @@ ## 2.3.2 - - Requre node 8.0 + - Require node 8.0 ## 2.3.1 diff --git a/README.md b/README.md index abf1acc..d7a508d 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,7 @@ A script to run a simple ftp server (using [ftp-srv](https://github.com/trs/ftp- To use open a console to run the ftp server: ``` +cd test npm run server ``` diff --git a/package-lock.json b/package-lock.json index a9279ef..ff7f27d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,23 +1,23 @@ { "name": "ftp-deploy", - "version": "2.4.3", + "version": "2.4.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "ftp-deploy", - "version": "2.4.3", + "version": "2.4.4", "license": "MIT", "dependencies": { "bluebird": "^3.7.2", - "minimatch": "5.0.1", + "minimatch": "9.0.0", "promise-ftp": "^1.3.5", - "read": "^1.0.7", + "read": "^2.1.0", "ssh2-sftp-client": "^7.2.1", "upath": "^2.0.1" }, "devDependencies": { - "chai": "^4.3.6", + "chai": "^4.3.7", "delete": "^1.1.0", "ftp-srv": "^4.6.2", "mocha": "^9.1.3" @@ -145,7 +145,7 @@ "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dependencies": { "tweetnacl": "^0.14.3" } @@ -195,6 +195,15 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, + "node_modules/buildcheck": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.6.tgz", + "integrity": "sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==", + "optional": true, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/bunyan": { "version": "1.8.15", "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz", @@ -226,14 +235,14 @@ } }, "node_modules/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", - "deep-eql": "^3.0.1", + "deep-eql": "^4.1.2", "get-func-name": "^2.0.0", "loupe": "^2.3.1", "pathval": "^1.1.1", @@ -394,6 +403,20 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, + "node_modules/cpu-features": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.7.tgz", + "integrity": "sha512-fjzFmsUKKCrC9GrM1eQTvQx18e+kjXFzjRLvJPNEDjk31+bJ6ZiV6uchv/hzbzXVIgbWdrEyyX1IFKwse65+8w==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "buildcheck": "~0.0.6", + "nan": "^2.17.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", @@ -427,15 +450,15 @@ } }, "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "dependencies": { "type-detect": "^4.0.0" }, "engines": { - "node": ">=0.12" + "node": ">=6" } }, "node_modules/delete": { @@ -1042,14 +1065,17 @@ } }, "node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { @@ -1208,9 +1234,12 @@ "dev": true }, "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/mv": { "version": "2.1.1", @@ -1282,9 +1311,9 @@ } }, "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", "optional": true }, "node_modules/nanoid": { @@ -1460,14 +1489,14 @@ } }, "node_modules/read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/read/-/read-2.1.0.tgz", + "integrity": "sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ==", "dependencies": { - "mute-stream": "~0.0.4" + "mute-stream": "~1.0.0" }, "engines": { - "node": ">=0.8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/readable-stream": { @@ -1588,9 +1617,9 @@ "dev": true }, "node_modules/ssh2": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.5.0.tgz", - "integrity": "sha512-iUmRkhH9KGeszQwDW7YyyqjsMTf4z+0o48Cp4xOwlY5LjtbIAvyd3fwnsoUZW/hXmTCRA3yt7S/Jb9uVjErVlA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.12.0.tgz", + "integrity": "sha512-7mcLu8biO6/BjQQ1iCjCmuBiF0hXxo+JlHpJBPDTVsxU7evscWWiRUgYF5XIs4gLKmiPRHA0maund11QLWyDJg==", "hasInstallScript": true, "dependencies": { "asn1": "^0.2.4", @@ -1600,18 +1629,18 @@ "node": ">=10.16.0" }, "optionalDependencies": { - "cpu-features": "0.0.2", - "nan": "^2.15.0" + "cpu-features": "~0.0.6", + "nan": "^2.17.0" } }, "node_modules/ssh2-sftp-client": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/ssh2-sftp-client/-/ssh2-sftp-client-7.2.1.tgz", - "integrity": "sha512-kr5QFL+d8Ta28wGhlRqkHo812PjMhKrBK7oTaYGNHqTvXAUjxZR6SeWRXbwKASE3dh2xeDz5aXHcg01bzfAeCA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/ssh2-sftp-client/-/ssh2-sftp-client-7.2.3.tgz", + "integrity": "sha512-Bmq4Uewu3e0XOwu5bnPbiS5KRQYv+dff5H6+85V4GZrPrt0Fkt1nUH+uXanyAkoNxUpzjnAPEEoLdOaBO9c3xw==", "dependencies": { "concat-stream": "^2.0.0", "promise-retry": "^2.0.1", - "ssh2": "^1.5.0" + "ssh2": "^1.8.0" }, "engines": { "node": ">=10.24.1" @@ -1690,7 +1719,7 @@ "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, "node_modules/type-detect": { "version": "4.0.8", @@ -1990,7 +2019,7 @@ "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "requires": { "tweetnacl": "^0.14.3" } @@ -2034,6 +2063,12 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, + "buildcheck": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.6.tgz", + "integrity": "sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==", + "optional": true + }, "bunyan": { "version": "1.8.15", "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz", @@ -2053,14 +2088,14 @@ "dev": true }, "chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", - "deep-eql": "^3.0.1", + "deep-eql": "^4.1.2", "get-func-name": "^2.0.0", "loupe": "^2.3.1", "pathval": "^1.1.1", @@ -2189,6 +2224,16 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, + "cpu-features": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.7.tgz", + "integrity": "sha512-fjzFmsUKKCrC9GrM1eQTvQx18e+kjXFzjRLvJPNEDjk31+bJ6ZiV6uchv/hzbzXVIgbWdrEyyX1IFKwse65+8w==", + "optional": true, + "requires": { + "buildcheck": "~0.0.6", + "nan": "^2.17.0" + } + }, "debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", @@ -2213,9 +2258,9 @@ "dev": true }, "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "requires": { "type-detect": "^4.0.0" @@ -2672,9 +2717,9 @@ } }, "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "requires": { "brace-expansion": "^2.0.1" } @@ -2805,9 +2850,9 @@ "dev": true }, "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==" }, "mv": { "version": "2.1.1", @@ -2869,9 +2914,9 @@ } }, "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", "optional": true }, "nanoid": { @@ -2997,11 +3042,11 @@ } }, "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/read/-/read-2.1.0.tgz", + "integrity": "sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ==", "requires": { - "mute-stream": "~0.0.4" + "mute-stream": "~1.0.0" } }, "readable-stream": { @@ -3093,24 +3138,24 @@ "dev": true }, "ssh2": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.5.0.tgz", - "integrity": "sha512-iUmRkhH9KGeszQwDW7YyyqjsMTf4z+0o48Cp4xOwlY5LjtbIAvyd3fwnsoUZW/hXmTCRA3yt7S/Jb9uVjErVlA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.12.0.tgz", + "integrity": "sha512-7mcLu8biO6/BjQQ1iCjCmuBiF0hXxo+JlHpJBPDTVsxU7evscWWiRUgYF5XIs4gLKmiPRHA0maund11QLWyDJg==", "requires": { "asn1": "^0.2.4", "bcrypt-pbkdf": "^1.0.2", - "cpu-features": "0.0.2", - "nan": "^2.15.0" + "cpu-features": "~0.0.6", + "nan": "^2.17.0" } }, "ssh2-sftp-client": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/ssh2-sftp-client/-/ssh2-sftp-client-7.2.1.tgz", - "integrity": "sha512-kr5QFL+d8Ta28wGhlRqkHo812PjMhKrBK7oTaYGNHqTvXAUjxZR6SeWRXbwKASE3dh2xeDz5aXHcg01bzfAeCA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/ssh2-sftp-client/-/ssh2-sftp-client-7.2.3.tgz", + "integrity": "sha512-Bmq4Uewu3e0XOwu5bnPbiS5KRQYv+dff5H6+85V4GZrPrt0Fkt1nUH+uXanyAkoNxUpzjnAPEEoLdOaBO9c3xw==", "requires": { "concat-stream": "^2.0.0", "promise-retry": "^2.0.1", - "ssh2": "^1.5.0" + "ssh2": "^1.8.0" } }, "string_decoder": { @@ -3165,7 +3210,7 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, "type-detect": { "version": "4.0.8", diff --git a/package.json b/package.json index 4e49373..32a16ec 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ftp-deploy", - "version": "2.4.3", + "version": "2.4.4", "author": "Simon Hampton", "description": "Ftp a folder from your local disk to an ftp destination", "main": "src/ftp-deploy", @@ -10,14 +10,14 @@ }, "dependencies": { "bluebird": "^3.7.2", - "minimatch": "5.0.1", + "minimatch": "9.0.0", "promise-ftp": "^1.3.5", - "read": "^1.0.7", + "read": "^2.1.0", "ssh2-sftp-client": "^7.2.1", "upath": "^2.0.1" }, "devDependencies": { - "chai": "^4.3.6", + "chai": "^4.3.7", "delete": "^1.1.0", "ftp-srv": "^4.6.2", "mocha": "^9.1.3" @@ -35,7 +35,7 @@ "url": "https://github.com/simonh1000/ftp-deploy/issues" }, "engines": { - "node": ">=10" + "node": ">=12" }, "contributors": [ { diff --git a/playground/test_script.js b/playground/test_script.js deleted file mode 100644 index 56038ba..0000000 --- a/playground/test_script.js +++ /dev/null @@ -1,30 +0,0 @@ -// works with the test server -const path = require("path"); - -const FtpDeploy = require("../src/ftp-deploy"); - -const config = { - user: "anonymous", - password: "anon", // Optional, prompted if none given - host: "localhost", - port: 2121, - localRoot: path.join(__dirname, "local"), - remoteRoot: "/f", - deleteRemote: true, - exclude: [], - include: ["test-inside-root.txt"] - // include: ["**/*", "*", ".*"] -}; - -const ftpDeploy = new FtpDeploy(); - -// use with promises -ftpDeploy - .deploy(config) - .then(res => console.log("finished: ", res)) - .catch(err => console.log("err", err)); - -ftpDeploy.on("log", data => console.log("[log]", data)); -ftpDeploy.on("uploading", data => console.log("[uploading]", data)); -ftpDeploy.on("uploaded", data => console.log("[uploaded]", data)); -ftpDeploy.on("upload-error", data => console.log("[upload-error]", data)); diff --git a/src/ftp-deploy.spec.js b/src/ftp-deploy.spec.js index 12fa60b..022fac7 100644 --- a/src/ftp-deploy.spec.js +++ b/src/ftp-deploy.spec.js @@ -1,4 +1,5 @@ "use strict"; +// Mocha tests. https://mochajs.org/#working-with-promises const path = require("path"); const fs = require("fs"); @@ -10,11 +11,12 @@ const statP = utils.promisify(fs.stat); const del = require("delete"); const FtpDeploy = require("./ftp-deploy"); +const { assert } = require("console"); const config = { user: "anonymous", password: "anon", // Optional, prompted if none given - host: "localhost", + host: "127.0.0.1", port: 2121, localRoot: path.join(__dirname, "../test/local"), remoteRoot: "/ftp", @@ -64,10 +66,9 @@ describe("ftp-deploy.spec: deploy tests", () => { return d.deploy(config); }) .then(() => { - // Should reject if file does not exist + // Will reject if file does not exist return statP(remoteDir + "/test-inside-root.txt"); - }) - .catch((err) => done(err)); + }); }); it("should put a dot file", () => { const d = new FtpDeploy(); @@ -77,7 +78,7 @@ describe("ftp-deploy.spec: deploy tests", () => { return d.deploy(config); }) .then(() => { - // Should reject if file does not exist + // Will reject if file does not exist return statP(remoteDir + "/.testfile"); }); }); diff --git a/src/lib.js b/src/lib.js index 8d66eb1..99b240b 100644 --- a/src/lib.js +++ b/src/lib.js @@ -6,7 +6,7 @@ const Promise = require("bluebird"); const read = require("read"); const readP = util.promisify(read); -const minimatch = require("minimatch"); +const { minimatch } = require("minimatch"); // P H A S E 0 @@ -15,7 +15,7 @@ function checkIncludes(config) { if (!config.include || !config.include.length) { return Promise.reject({ code: "NoIncludes", - message: "You need to specify files to upload - e.g. ['*', '**/*']" + message: "You need to specify files to upload - e.g. ['*', '**/*']", }); } else { return Promise.resolve(config); @@ -34,9 +34,9 @@ function getPassword(config) { config.host + " (ENTER for none): ", default: "", - silent: true + silent: true, }; - return readP(options).then(res => { + return readP(options).then((res) => { let config2 = Object.assign(config, { password: res }); return config2; }); @@ -66,7 +66,7 @@ function canIncludePath(includes, excludes, filePath) { // A method for parsing the source location and storing the information into a suitably formated object function parseLocal(includes, excludes, localRootDir, relDir) { // reducer - let handleItem = function(acc, item) { + let handleItem = function (acc, item) { const currItem = path.join(fullDir, item); const newRelDir = path.relative(localRootDir, currItem); @@ -112,26 +112,26 @@ function countFiles(filemap) { } function deleteDir(ftp, dir) { - return ftp.list(dir).then(lst => { + return ftp.list(dir).then((lst) => { let dirNames = lst - .filter(f => f.type == "d" && f.name != ".." && f.name != ".") - .map(f => path.posix.join(dir, f.name)); + .filter((f) => f.type == "d" && f.name != ".." && f.name != ".") + .map((f) => path.posix.join(dir, f.name)); let fnames = lst - .filter(f => f.type != "d") - .map(f => path.posix.join(dir, f.name)); + .filter((f) => f.type != "d") + .map((f) => path.posix.join(dir, f.name)); // delete sub-directories and then all files - return Promise.mapSeries(dirNames, dirName => { + return Promise.mapSeries(dirNames, (dirName) => { // deletes everything in sub-directory, and then itself return deleteDir(ftp, dirName).then(() => ftp.rmdir(dirName)); - }).then(() => Promise.mapSeries(fnames, fname => ftp.delete(fname))); + }).then(() => Promise.mapSeries(fnames, (fname) => ftp.delete(fname))); }); } mkDirExists = (ftp, dir) => { // Make the directory using recursive expand - return ftp.mkdir(dir, true).catch(err => { + return ftp.mkdir(dir, true).catch((err) => { if (err.message.startsWith("EEXIST")) { return Promise.resolve(); } else { @@ -149,5 +149,5 @@ module.exports = { canIncludePath: canIncludePath, countFiles: countFiles, mkDirExists: mkDirExists, - deleteDir: deleteDir + deleteDir: deleteDir, }; diff --git a/test/server.js b/test/server.js index a87984d..a7a4bd7 100644 --- a/test/server.js +++ b/test/server.js @@ -4,13 +4,13 @@ const FtpSrv = require("ftp-srv"); const port = 2121; const homeDir = require("os").homedir() + "/code/projects/ftp-deploy/test/remote"; -console.log("serving", homeDir); +// console.log("serving", homeDir); const options = { - greeting: ["test ftp server", homeDir], + url: "ftp://127.0.0.1:" + port, anonymous: true, + greeting: ["test ftp server", homeDir], pasv_url: "127.0.0.1", - url: "ftp://127.0.0.1:" + port, }; const ftpServer = new FtpSrv(options);