@@ -1 +1,7 @@ | |||
language: node_js | |||
node_js: | |||
"9.3.0" | |||
before_install: | |||
- git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" | |||
- git fetch |
@@ -3,7 +3,7 @@ | |||
"version": "1.0.0", | |||
"description": "*Manifest repository for VCV Rack plugins*", | |||
"scripts": { | |||
"test": "echo \"Error: no tests yet\" && exit 0" | |||
"test": "jasmine" | |||
}, | |||
"repository": { | |||
"type": "git", | |||
@@ -14,6 +14,11 @@ | |||
}, | |||
"homepage": "https://github.com/VCVRack/community#readme", | |||
"devDependencies": { | |||
"node-virustotal": "^2.4.2" | |||
"adm-zip": "^0.4.7", | |||
"ajv": "^5.5.2", | |||
"hash-files": "^1.1.1", | |||
"jasmine": "^2.8.0", | |||
"node-virustotal": "^2.4.2", | |||
"request": "^2.83.0" | |||
} | |||
} |
@@ -0,0 +1,25 @@ | |||
{ | |||
"slug": "AS", | |||
"name": "AS", | |||
"author": "Alfredo Santamaria", | |||
"license": "CC0 1.0 Universal", | |||
"version": "0.5.0", | |||
"homepage": "https://github.com/AScustomWorks/AS", | |||
"donation": "https://www.paypal.me/frederius/", | |||
"manual": "https://github.com/AScustomWorks/AS/blob/master/README.md", | |||
"source": "https://github.com/AScustomWorks/AS", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/AScustomWorks/AS/releases/download/0.5.0/AS-0.5.0-win.zip", | |||
"sha256": "7478ccd81b32d332abb99e3f259bb5cb9fd00a196f4598cd8bd8dec4ac7f6780" | |||
}, | |||
"lin": { | |||
"download": "https://github.com/AScustomWorks/AS/releases/download/0.5.0/AS-0.5.0-lin.zip", | |||
"sha256": "db6c77f01b5527e2e1a513b5153fac880676e1a2cc02a1ee04ded36b9e954b65" | |||
}, | |||
"mac": { | |||
"download": "https://github.com/AScustomWorks/AS/releases/download/0.5.0/AS-0.5.0-mac.zip", | |||
"sha256": "45d871d19d884ebfb085a511c8bb8e3ad8cafdcab34a9e5fcc122a551c26f759" | |||
} | |||
} | |||
} |
@@ -1,6 +1,8 @@ | |||
{ | |||
"slug": "AnimatedCircuits", | |||
"name": "Animated Circuits", | |||
"version": "0.5.0", | |||
"author": "Animated Circuits", | |||
"version": "0.5.1", | |||
"manual": "https://drive.google.com/open?id=15_buBKqEdGkuTn9EOeZuFqE2m4qH-xUu", | |||
"homepage": "https://gumroad.com/animatedcircuits" | |||
} | |||
} |
@@ -0,0 +1,21 @@ | |||
{ | |||
"slug": "Autodafe-DrumKit", | |||
"name": "Autodafe Drum Kit", | |||
"author": "Autodafe", | |||
"version": "0.5.1", | |||
"donation": "https://www.paypal.me/autodafe", | |||
"downloads": { | |||
"win": { | |||
"download": "http://www.autodafe.net/VCVRack/Autodafe-DrumKit-0.5.1-win.zip", | |||
"sha256": "462655bd8e3489b225dd2dc7eb88d51ebc0d274cc60a3dce0d02edf1bfce4119" | |||
}, | |||
"lin": { | |||
"download": "http://www.autodafe.net/VCVRack/Autodafe-DrumKit-0.5.1-lin.zip", | |||
"sha256": "1aeb402c5aab360222dfda0898852f4056f08d0a97f1beba72f8704299ec377b" | |||
}, | |||
"mac": { | |||
"download": "http://www.autodafe.net/VCVRack/Autodafe-DrumKit-0.5.1-mac.zip", | |||
"sha256": "f3d00d2cb9a0af45bcff657c99cb4acafddff0e07c0fb3f463ee7e340e301232" | |||
} | |||
} | |||
} |
@@ -0,0 +1,9 @@ | |||
{ | |||
"slug": "Autodafe-REDs", | |||
"name": "Autodafe - REDs", | |||
"author": "Autodafe", | |||
"version": "0.5.1", | |||
"homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules/autodafe-reds-modules-for-vcv-rack.html", | |||
"manual": "https://www.autodafe.net/media/com_eshop/attachments/autodafe-reds-collection-manual.pdf" | |||
} |
@@ -0,0 +1,23 @@ | |||
{ | |||
"slug": "Autodafe-REDsFREE", | |||
"name": "Autodafe - REDs FREE", | |||
"author": "Autodafe", | |||
"version": "0.5.2", | |||
"homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules.html", | |||
"manual": "https://www.autodafe.net/media/com_eshop/attachments/autodafe-reds-collection-manual.pdf", | |||
"donation": "https://www.paypal.me/autodafe", | |||
"downloads": { | |||
"win": { | |||
"download": "http://www.autodafe.net/VCVRack/Autodafe-REDsFREE-0.5.2-win.zip", | |||
"sha256": "ce34d273085ded0d90d083b080ee1360817bab78b88d0a89165a77615eaf576c" | |||
}, | |||
"lin": { | |||
"download": "http://www.autodafe.net/VCVRack/Autodafe-REDsFREE-0.5.2-lin.zip", | |||
"sha256": "3af4575b5f364824f826090b1b3e14f444448e109d180f6517ad2255b5701249" | |||
}, | |||
"mac": { | |||
"download": "http://www.autodafe.net/VCVRack/Autodafe-REDsFREE-0.5.2-mac.zip", | |||
"sha256": "29b118c81b18a15c11052f40aadd28f694ebf3a0ef834c76dd7eb705a275062d" | |||
} | |||
} | |||
} |
@@ -0,0 +1,25 @@ | |||
{ | |||
"slug": "Autodafe", | |||
"name": "Autodafe Module Pack", | |||
"author": "Autodafe", | |||
"version": "0.5.1", | |||
"source": "https://github.com/antoniograzioli/Autodafe", | |||
"homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules.html", | |||
"manual": "https://www.autodafe.net/media/com_eshop/attachments/autodafe-reds-collection-manual.pdf", | |||
"donation": "https://www.paypal.me/autodafe", | |||
"downloads": { | |||
"win": { | |||
"download": "http://www.autodafe.net/VCVRack/Autodafe-0.5.1-win.zip", | |||
"sha256": "93d75bd954299fa2f0fad6c7945b7d1182cc8efd5a4276446a8b283f90484e2b" | |||
}, | |||
"lin": { | |||
"download": "http://www.autodafe.net/VCVRack/Autodafe-0.5.1-lin.zip", | |||
"sha256": "01cc8f37db5d4c572d739520b375847e5f18132b0cedfbae3b3474669e50e77c" | |||
}, | |||
"mac": { | |||
"download": "http://www.autodafe.net/VCVRack/Autodafe-0.5.1-mac.zip", | |||
"sha256": "a071ca35661ecd125d2955c1501137188338304400b1a515d4bc34f018a344fc" | |||
} | |||
} | |||
} |
@@ -1,23 +0,0 @@ | |||
{ | |||
"slug": "AutodafeDrumKit", | |||
"name": "Autodafe Drum Kit", | |||
"author": "Autodafe", | |||
"version": "0.5.0", | |||
"source": "https://github.com/antoniograzioli/Autodafe-Drums", | |||
"homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules.html", | |||
"donation": "https://www.paypal.me/autodafe", | |||
"downloads": { | |||
"win": { | |||
"download": "https://www.autodafe.net/VCVRack/Autodafe-Drum-Kit-VCV-Rack.zip", | |||
"sha256": "939015f7124da305183d5aeeef18d32828e3fe4f4da81c9b1fd6105b1f61ec18" | |||
}, | |||
"lin": { | |||
"download": "https://www.autodafe.net/VCVRack/Autodafe-Drum-Kit-VCV-Rack.zip", | |||
"sha256": "939015f7124da305183d5aeeef18d32828e3fe4f4da81c9b1fd6105b1f61ec18" | |||
}, | |||
"mac": { | |||
"download": "https://www.autodafe.net/VCVRack/Autodafe-Drum-Kit-VCV-Rack.zip", | |||
"sha256": "939015f7124da305183d5aeeef18d32828e3fe4f4da81c9b1fd6105b1f61ec18" | |||
} | |||
} | |||
} |
@@ -1,23 +0,0 @@ | |||
{ | |||
"slug": "AutodafeModulePack", | |||
"name": "Autodafe Module Pack", | |||
"author": "Autodafe", | |||
"version": "0.5.0", | |||
"source": "https://github.com/antoniograzioli/Autodafe", | |||
"homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules.html", | |||
"donation": "https://www.paypal.me/autodafe", | |||
"downloads": { | |||
"win": { | |||
"download": "https://www.autodafe.net/VCVRack/Autodafe-Modules-Pack-VCV-Rack.zip", | |||
"sha256": "2d8f53c5ae8eaf70e0188d188aee432c1f26e4042f272c9a76d84bb10e9c5477" | |||
}, | |||
"lin": { | |||
"download": "https://www.autodafe.net/VCVRack/Autodafe-Modules-Pack-VCV-Rack.zip", | |||
"sha256": "2d8f53c5ae8eaf70e0188d188aee432c1f26e4042f272c9a76d84bb10e9c5477" | |||
}, | |||
"mac": { | |||
"download": "https://www.autodafe.net/VCVRack/Autodafe-Modules-Pack-VCV-Rack.zip", | |||
"sha256": "2d8f53c5ae8eaf70e0188d188aee432c1f26e4042f272c9a76d84bb10e9c5477" | |||
} | |||
} | |||
} |
@@ -1,22 +0,0 @@ | |||
{ | |||
"slug": "AutodafeREDsFREE", | |||
"name": "Autodafe - REDs FREE", | |||
"author": "Autodafe", | |||
"version": "0.5.0", | |||
"homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules.html", | |||
"donation": "https://www.paypal.me/autodafe", | |||
"downloads": { | |||
"win": { | |||
"download": "https://www.autodafe.net/VCVRack/Autodafe-REDs-FREE.zip", | |||
"sha256": "14f87483ed7b67cc45b52db21f99665b4b9dbc044351e404a37201ffb440c47f" | |||
}, | |||
"lin": { | |||
"download": "https://www.autodafe.net/VCVRack/Autodafe-REDs-FREE.zip", | |||
"sha256": "14f87483ed7b67cc45b52db21f99665b4b9dbc044351e404a37201ffb440c47f" | |||
}, | |||
"mac": { | |||
"download": "https://www.autodafe.net/VCVRack/Autodafe-REDs-FREE.zip", | |||
"sha256": "14f87483ed7b67cc45b52db21f99665b4b9dbc044351e404a37201ffb440c47f" | |||
} | |||
} | |||
} |
@@ -4,9 +4,9 @@ | |||
"author": "sebastien-bouffier", | |||
"version": "0.5.10", | |||
"license": "BSD 3-clause", | |||
"source": "https://github.com/sebastien-bouffier/Bidoo", | |||
"manual": "https://github.com/sebastien-bouffier/Bidoo/wiki", | |||
"donation": "https://paypal.me/sebastienbouffier", | |||
"manual": "https://github.com/sebastien-bouffier/Bidoo/wiki", | |||
"source": "https://github.com/sebastien-bouffier/Bidoo", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/sebastien-bouffier/Bidoo/files/1587168/Bidoo-0.5.10-win.zip", | |||
@@ -3,7 +3,7 @@ | |||
"name": "Bogaudio", | |||
"author": "bogaudio", | |||
"license": "BSD 3-clause", | |||
"version": "0.5.1b", | |||
"version": "0.5.1", | |||
"homepage": "https://github.com/bogaudio/BogaudioModules", | |||
"manual": "https://github.com/bogaudio/BogaudioModules/blob/master/README.md", | |||
"source": "https://github.com/bogaudio/BogaudioModules", | |||
@@ -3,7 +3,7 @@ | |||
"name": "Fundamental", | |||
"author": "VCV", | |||
"license": "BSD 3-clause", | |||
"version": "0.5.0", | |||
"version": "0.5.1", | |||
"manual": "https://vcvrack.com/manual/Fundamental.html", | |||
"source": "https://github.com/VCVRack/Fundamental" | |||
} |
@@ -2,10 +2,9 @@ | |||
"slug": "Grayscale", | |||
"name": "Grayscale", | |||
"author": "VCV", | |||
"license": "BSD 3-clause", | |||
"license": "proprietary", | |||
"version": "0.5.0", | |||
"manual": "https://vcvrack.com/manual/Grayscale.html", | |||
"source": "https://github.com/VCVRack/Grayscale", | |||
"downloads": { | |||
"win": { | |||
"download": "https://vcvrack.com/downloads/plugins/Grayscale-0.5.0.zip", | |||
@@ -4,17 +4,17 @@ | |||
"author": "Michael Hetrick", | |||
"homepage": "https://github.com/mhetrick/hetrickcv", | |||
"donation": "https://paypal.me/MHetrick", | |||
"version": "0.5.3", | |||
"version": "0.5.4", | |||
"source": "https://github.com/mhetrick/hetrickcv", | |||
"manual": "https://github.com/mhetrick/hetrickcv/blob/master/README.md", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/mhetrick/hetrickcv/releases/download/0.5.3/HetrickCV-0.5.3-win.zip", | |||
"sha256": "4afb040dcfdc72e8ae8146f0978b28d1da7331bbd2857e7b3f4a2abf4dc86e8e" | |||
"download": "https://github.com/mhetrick/hetrickcv/releases/download/0.5.4/HetrickCV-0.5.4-win.zip", | |||
"sha256": "6d5db0b532a5252e866d2cd12a955c8fcf78e22cb127c70ebacd418e8b1689da" | |||
}, | |||
"mac": { | |||
"download": "https://github.com/mhetrick/hetrickcv/releases/download/0.5.3/HetrickCV-0.5.3-mac.zip", | |||
"sha256": "187feeb66cf84e13ea1dd3df02b3a2871c88387709903c69be8feaeca9a998f0" | |||
"download": "https://github.com/mhetrick/hetrickcv/releases/download/0.5.4/HetrickCV-0.5.4-mac.zip", | |||
"sha256": "5e8ef433ee03c30fa0a46699c60a2293868b458a0e60aeae7964091e6f8c4342" | |||
} | |||
} | |||
} |
@@ -1,5 +1,5 @@ | |||
{ | |||
"slug": "Simplemodulepack", | |||
"slug": "IO-Simple", | |||
"name": "Simple module pack", | |||
"author": "IohannRabeson", | |||
"version": "0.5.0", |
@@ -20,4 +20,4 @@ | |||
"sha256": "327a11fed6f2299e87d799a58c0e5b2c026649c1c863367e8a54a116ac258c06" | |||
} | |||
} | |||
} | |||
} |
@@ -3,7 +3,7 @@ | |||
"name": "KarateSnoopy", | |||
"author": "KarateSnoopy", | |||
"license": "MIT", | |||
"version": "0.5.0", | |||
"version": "0.5", | |||
"homepage": "https://github.com/KarateSnoopy/vcv-karatesnoopy", | |||
"source": "https://github.com/KarateSnoopy/vcv-karatesnoopy", | |||
"manual": "https://github.com/KarateSnoopy/vcv-karatesnoopy/blob/master/README.md", | |||
@@ -2,20 +2,21 @@ | |||
"slug": "LOGinstruments", | |||
"name": "LOGinstruments", | |||
"author": "leopard86", | |||
"version": "0.5.5", | |||
"source": "https://github.com/leopard86/LOGinstruments", | |||
"manual": "https://github.com/leopard86/LOGinstruments/blob/master/README.md", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/leopard86/LOGinstruments/releases/download/v0_5_3/LOGinstruments-all-platforms-v053.zip", | |||
"sha256": "e2bae5c98097f337af2ac1e3f4c914bffb4aa0a75906ffdd45e76a98a90cfd8e" | |||
"download": "https://github.com/leopard86/LOGinstruments/releases/download/v0_5_5/LOGinstruments-0.5.5-win.zip", | |||
"sha256": "34783266e8cebd27d796211ad6afe545ef3ff2beba5674110d8bd552507f9e37" | |||
}, | |||
"mac": { | |||
"download": "https://github.com/leopard86/LOGinstruments/releases/download/v0_5_3/LOGinstruments-all-platforms-v053.zip", | |||
"sha256": "e2bae5c98097f337af2ac1e3f4c914bffb4aa0a75906ffdd45e76a98a90cfd8e" | |||
"download": "https://github.com/leopard86/LOGinstruments/releases/download/v0_5_5/LOGinstruments-0.5.5-mac.zip", | |||
"sha256": "d324044b8a88244d1a57f909b02017ad8a251da899ff3e3a646a1cb9643bf4da" | |||
}, | |||
"lin": { | |||
"download": "https://github.com/leopard86/LOGinstruments/releases/download/v0_5_3/LOGinstruments-all-platforms-v053.zip", | |||
"sha256": "e2bae5c98097f337af2ac1e3f4c914bffb4aa0a75906ffdd45e76a98a90cfd8e" | |||
"download": "https://github.com/leopard86/LOGinstruments/releases/download/v0_5_5/LOGinstruments-0.5.5-lin.zip", | |||
"sha256": "ceb58af00ff6822dd3d9c5232eca593ab27fd6a929d081fb00a8abaa7060d5d1" | |||
} | |||
} | |||
} | |||
} |
@@ -1,21 +1,21 @@ | |||
{ | |||
"slug": "NYSTHI", | |||
"name": "NYSTHI", | |||
"version": "0.5.8", | |||
"version": "0.5.10", | |||
"homepage": "https://github.com/nysthi/nysthi", | |||
"manual": "https://github.com/nysthi/nysthi/blob/master/README.md", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/nysthi/nysthi/releases/download/v0.5.8/nysthi.zip", | |||
"sha256": "2af97913c1074d0c989b2ecbcfc62b4c90fe03746ff8d30d9c9e423fc7bc9f17" | |||
"download": "https://github.com/nysthi/nysthi/releases/download/v0.5.10/nysthi.zip", | |||
"sha256": "af5be01fd555cdab79d467b14f58f8aa13c7d32500dbc393064194279169c306" | |||
}, | |||
"mac": { | |||
"download": "https://github.com/nysthi/nysthi/releases/download/v0.5.8/nysthi.zip", | |||
"sha256": "2af97913c1074d0c989b2ecbcfc62b4c90fe03746ff8d30d9c9e423fc7bc9f17" | |||
"download": "https://github.com/nysthi/nysthi/releases/download/v0.5.10/nysthi.zip", | |||
"sha256": "af5be01fd555cdab79d467b14f58f8aa13c7d32500dbc393064194279169c306" | |||
}, | |||
"lin": { | |||
"download": "https://github.com/nysthi/nysthi/releases/download/v0.5.8/nysthi.zip", | |||
"sha256": "2af97913c1074d0c989b2ecbcfc62b4c90fe03746ff8d30d9c9e423fc7bc9f17" | |||
"download": "https://github.com/nysthi/nysthi/releases/download/v0.5.10/nysthi.zip", | |||
"sha256": "af5be01fd555cdab79d467b14f58f8aa13c7d32500dbc393064194279169c306" | |||
} | |||
} | |||
} | |||
} |
@@ -3,18 +3,22 @@ | |||
"name": "Non Linear Instruments", | |||
"author": "NonLinearInstruments", | |||
"license": "BSD 3-clause", | |||
"version": "0.5.0", | |||
"version": "0.5.1", | |||
"homepage": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins", | |||
"manual": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins/blob/master/README.md", | |||
"source": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins", | |||
"downloads": { | |||
"mac": { | |||
"download": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins/releases/download/0.5.0/NonLinearInstruments-0.5.0-mac.zip", | |||
"sha256": "955813b84e85a249134b709ceb5adddc1ea94c14d077e519057b97ffdc88d098" | |||
"download": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins/releases/download/0.5.1/NonLinearInstruments-0.5.1-mac.zip", | |||
"sha256": "a1151486477c70644210c5229cb15a29894065ba3495d8bf83a2541e3a3cdeb3" | |||
}, | |||
"win": { | |||
"download": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins/releases/download/0.5.0/NonLinearInstruments-0.5.0-win.zip", | |||
"sha256": "354cfd04a8bb48993a07b13b8fc6ab68e39c2967fc356c988ac6f520902619d9" | |||
"download": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins/releases/download/0.5.1/NonLinearInstruments-0.5.1-win.zip", | |||
"sha256": "fbec569b54d21dcd70cd64ac676ff7aa80c5e96806da25851a6ee8995ef78b3e" | |||
}, | |||
"lin": { | |||
"download": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins/releases/download/0.5.1/NonLinearInstruments-0.5.1-lin.zip", | |||
"sha256": "fa6be52825bed83df002b431ebc8dd6f4cd799ef45c4e6808be02b998990e95a" | |||
} | |||
} | |||
} | |||
} |
@@ -4,15 +4,5 @@ | |||
"author": "phdsg", | |||
"version": "0.5.1", | |||
"source": "https://github.com/phdsg/PvC", | |||
"manual": "https://github.com/phdsg/PvC/blob/master/README.md", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/phdsg/PvC/releases/download/0.5.1/PvC-0.5.1-win.zip", | |||
"sha256": "c47593ea6ecc33ca6d181518890c4df4b53dbca3fd2174b87ce56178fac5614b" | |||
}, | |||
"lin": { | |||
"download": "https://github.com/phdsg/PvC/releases/download/0.5.1/PvC-0.5.1-lin.zip", | |||
"sha256": "f4886b085e91afd183eed7f6d1b47e5587841e4011347841a1db3d916e28fe37" | |||
} | |||
} | |||
"manual": "https://github.com/phdsg/PvC/blob/master/README.md" | |||
} |
@@ -2,7 +2,7 @@ | |||
"slug": "Qwelk", | |||
"name": "Qwelk", | |||
"author": "raincheque", | |||
"version": "0.5.4", | |||
"version": "", | |||
"source": "https://github.com/raincheque/qwelk", | |||
"manual": "https://github.com/raincheque/qwelk/blob/master/README.md", | |||
"downloads": { | |||
@@ -3,11 +3,5 @@ | |||
"name": "RODENTMODULES", | |||
"author": "RODENTCAT", | |||
"version": "0.5.0", | |||
"source": "https://github.com/RODENTCAT/RODENTMODULES", | |||
"downloads": { | |||
"mac": { | |||
"download": "https://github.com/RODENTCAT/RODENTMODULES/releases/download/0.5.0/RODENTMODULES.zip", | |||
"sha256": "ed59da71379acf593623b6df24c83d050ea3d8f37b099a3f3039c3dbffd8e2d2" | |||
} | |||
} | |||
"source": "https://github.com/RODENTCAT/RODENTMODULES" | |||
} |
@@ -0,0 +1,25 @@ | |||
{ | |||
"slug": "StellareModular-Link", | |||
"name": "Stellare Link", | |||
"author": "Stellare Modular", | |||
"license": "GPL-3", | |||
"version": "0.5.1", | |||
"homepage": "https://www.facebook.com/stellaremodular", | |||
"donation": "https://paypal.me/stellaremodular", | |||
"manual": "https://github.com/stellare-modular/vcv-link/blob/master/README.md", | |||
"source": "https://github.com/stellare-modular/vcv-link", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/stellare-modular/vcv-link/releases/download/0.5.1/StellareModular-Link-0.5.1.zip", | |||
"sha256": "ebe352951876af91d9139bf51491c94d45bbebd94bc9b906d05f4621ed7f0d77" | |||
}, | |||
"mac": { | |||
"download": "https://github.com/stellare-modular/vcv-link/releases/download/0.5.1/StellareModular-Link-0.5.1.zip", | |||
"sha256": "ebe352951876af91d9139bf51491c94d45bbebd94bc9b906d05f4621ed7f0d77" | |||
}, | |||
"lin": { | |||
"download": "https://github.com/stellare-modular/vcv-link/releases/download/0.5.1/StellareModular-Link-0.5.1.zip", | |||
"sha256": "ebe352951876af91d9139bf51491c94d45bbebd94bc9b906d05f4621ed7f0d77" | |||
} | |||
} | |||
} |
@@ -1,22 +1,24 @@ | |||
{ | |||
"slug": "StellareModular", | |||
"name": "Stellare Modular", | |||
"name": "Turing Machine + Blank", | |||
"author": "Stellare Modular", | |||
"license": "MIT", | |||
"homepage": "https://www.facebook.com/stellaremodular/", | |||
"version": "0.5.1", | |||
"homepage": "https://www.facebook.com/stellaremodular", | |||
"donation": "https://paypal.me/stellaremodular", | |||
"manual": "https://github.com/stellare-modular/vcv-rack/blob/master/README.md", | |||
"source": "https://github.com/stellare-modular", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/stellare-modular/vcv-rack/releases/download/0.5.0/Stellare-Modular.zip", | |||
"sha256": "83241b5560d3db9a57f16230b650109d3aab6a6bb7086badf9f07e01a628c3d7" | |||
"download": "https://github.com/stellare-modular/vcv-rack/releases/download/0.5.1/Stellare-Modular-0.5.1.zip", | |||
"sha256": "406fe11b1e908709226a9014590d72871e8de8301a3b0239e8ddd85d02baefc5" | |||
}, | |||
"mac": { | |||
"download": "https://github.com/stellare-modular/vcv-rack/releases/download/0.5.0/Stellare-Modular.zip", | |||
"sha256": "83241b5560d3db9a57f16230b650109d3aab6a6bb7086badf9f07e01a628c3d7" | |||
"download": "https://github.com/stellare-modular/vcv-rack/releases/download/0.5.1/Stellare-Modular-0.5.1.zip", | |||
"sha256": "406fe11b1e908709226a9014590d72871e8de8301a3b0239e8ddd85d02baefc5" | |||
}, | |||
"lin": { | |||
"download": "https://github.com/stellare-modular/vcv-rack/releases/download/0.5.0/Stellare-Modular.zip", | |||
"sha256": "83241b5560d3db9a57f16230b650109d3aab6a6bb7086badf9f07e01a628c3d7" | |||
"download": "https://github.com/stellare-modular/vcv-rack/releases/download/0.5.1/Stellare-Modular-0.5.1.zip", | |||
"sha256": "406fe11b1e908709226a9014590d72871e8de8301a3b0239e8ddd85d02baefc5" | |||
} | |||
} | |||
} | |||
} |
@@ -4,6 +4,7 @@ | |||
"author": "ValleyAudio", | |||
"license": "GPL-3.0 and BSD-3-Clause", | |||
"version": "0.5.3", | |||
"donation" : "https://www.paypal.me/valleyvcv", | |||
"manual": "https://github.com/ValleyAudio/ValleyRackFree/", | |||
"source": "https://github.com/ValleyAudio/ValleyRackFree/", | |||
"downloads": { | |||
@@ -2,22 +2,22 @@ | |||
"slug": "VultModules", | |||
"name": "VultModules", | |||
"author": "modlfo", | |||
"version": "0.5.3", | |||
"homepage": "https://modlfo.github.io/VultModules", | |||
"manual": "https://modlfo.github.io/VultModules", | |||
"donation": "https://www.paypal.me/VultModules", | |||
"source": "https://github.com/modlfo/VultModules", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/modlfo/VultModules/releases/download/v0.5.2/VultModules.zip", | |||
"sha256": "0e130d414ed76630118fe63eff9f586b93f982b0b972d0251266dc818a7229cb" | |||
"download": "https://github.com/modlfo/VultModules/releases/download/v0.5.3/Vult-0.5.3-win.zip", | |||
"sha256": "7d2560aa197aac48efc8e7a0327ff0d1af13db036e1caca2cd053835962208c1" | |||
}, | |||
"mac": { | |||
"download": "https://github.com/modlfo/VultModules/releases/download/v0.5.2/VultModules.zip", | |||
"sha256": "0e130d414ed76630118fe63eff9f586b93f982b0b972d0251266dc818a7229cb" | |||
"download": "https://github.com/modlfo/VultModules/releases/download/v0.5.3/Vult-0.5.3-mac.zip", | |||
"sha256": "1c8039c0e69704e979e4e77a3fb35773bbabef352f1c47e4712878d9823f0bc2" | |||
}, | |||
"lin": { | |||
"download": "https://github.com/modlfo/VultModules/releases/download/v0.5.2/VultModules.zip", | |||
"sha256": "0e130d414ed76630118fe63eff9f586b93f982b0b972d0251266dc818a7229cb" | |||
"download": "https://github.com/modlfo/VultModules/releases/download/v0.5.3/Vult-0.5.3-lin.zip", | |||
"sha256": "b950914ff6ecd3aad05c7f56fbd08839e2ddf52a7a7d57bae653f547d396fe5e" | |||
} | |||
} | |||
} | |||
} |
@@ -1,21 +1,23 @@ | |||
{ | |||
"slug": "cf", | |||
"name": "cf", | |||
"author": "cfoulc", | |||
"author": "clément foulc", | |||
"version": "0.5.10", | |||
"donation": "https://www.paypal.me/cfoulc", | |||
"source": "https://github.com/cfoulc/cf", | |||
"manual": "https://github.com/cfoulc/cf/blob/master/README.md", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/cfoulc/cf/releases/download/0.5.10/cf_0510.zip", | |||
"sha256": "16294b0f04f6ab703b1d07894b8030ac10d3f8850c632fbc90c360149b54d667" | |||
"download": "https://github.com/cfoulc/cf/releases/download/0.5.10/cf-0.5.10-win.zip", | |||
"sha256": "63509b786eb86d28464b1f553ca14804f1ddf570219676c43b7b932d156775ed" | |||
}, | |||
"mac": { | |||
"download": "https://github.com/cfoulc/cf/releases/download/0.5.10/cf_0510.zip", | |||
"sha256": "16294b0f04f6ab703b1d07894b8030ac10d3f8850c632fbc90c360149b54d667" | |||
"download": "https://github.com/cfoulc/cf/releases/download/0.5.10/cf-0.5.10-mac.zip", | |||
"sha256": "296df530b0a3be648c3b94d9da6832e46aa86b432514862117014755916f20d2" | |||
}, | |||
"lin": { | |||
"download": "https://github.com/cfoulc/cf/releases/download/0.5.10/cf_0510.zip", | |||
"sha256": "16294b0f04f6ab703b1d07894b8030ac10d3f8850c632fbc90c360149b54d667" | |||
"download": "https://github.com/cfoulc/cf/releases/download/0.5.10/cf-0.5.10-lin.zip", | |||
"sha256": "92927fa7fbd2a917de0f601dd77a9ab0d3a8e053778f92f8fb36547955ace2dd" | |||
} | |||
} | |||
} |
@@ -7,8 +7,8 @@ | |||
"manual": "https://github.com/dBiz/dBiz/blob/master/README.md", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/dBiz/dBiz/files/1513107/dBiz--win.zip", | |||
"sha256": "b2da8c7711d85da8ba99cc683b05f6f7dc6c3f634e28010aff0693e3002af99b" | |||
"download": "https://github.com/dBiz/dBiz/releases/download/v0.5.2/dBiz-0.5.1-win.zip", | |||
"sha256": "120378b562ff7a74e96f09314a3d9de0a69574b87edddc6cf52ea37957e6fa43" | |||
} | |||
} | |||
} | |||
} |
@@ -3,20 +3,5 @@ | |||
"name": "dekstop", | |||
"author": "dekstop", | |||
"source": "https://github.com/dekstop/vcvrackplugins_dekstop", | |||
"manual": "https://github.com/dekstop/vcvrackplugins_dekstop/blob/master/README.md", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/dekstop/vcvrackplugins_dekstop/releases/download/v0.5.0/dekstop-dev_f4526cb-win.zip", | |||
"sha256": "077def4bfba3f325b5cd5c45f5d4b33b3ce5bc4a3dfe5211a209af69636f3dae" | |||
}, | |||
"mac": { | |||
"download": "https://github.com/dekstop/vcvrackplugins_dekstop/releases/download/v0.5.0/dekstop-v0.5.0-osx.zip", | |||
"sha256": "fed59c5023f9e0409f7bae1215a5607064cfb0e1252cc8dc4d35c5f86a9a1f93" | |||
}, | |||
"lin": { | |||
"download": "https://github.com/dekstop/vcvrackplugins_dekstop/releases/download/v0.5.0/dekstop-devf4526cb-lin.zip", | |||
"sha256": "2435c5d6054b46ac07465aefb2b057e64d0728044db43f441c40631a0e63f6a2" | |||
} | |||
}, | |||
"disabled": true | |||
"manual": "https://github.com/dekstop/vcvrackplugins_dekstop/blob/master/README.md" | |||
} |
@@ -2,13 +2,18 @@ | |||
"slug": "luckyxxl", | |||
"name": "luckyxxl", | |||
"author": "luckyxxl", | |||
"version": "0.5.0", | |||
"license": "zlib", | |||
"version": "0.5.1", | |||
"source": "https://github.com/luckyxxl/vcv_luckyxxl", | |||
"manual": "https://github.com/luckyxxl/vcv_luckyxxl/blob/master/README.md", | |||
"manual": "https://github.com/luckyxxl/vcv_luckyxxl/blob/v0.5.1/README.md", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/luckyxxl/vcv_luckyxxl/releases/download/v0.5.0/luckyxxl-0.5.0-win.zip", | |||
"sha256": "02b2864d78b95b749e83d5aebddd00733520f2e6dcc0fa92e551a2432f835620" | |||
"download": "https://github.com/luckyxxl/vcv_luckyxxl/releases/download/v0.5.1/luckyxxl-0.5.1-win.zip", | |||
"sha256": "8a45268ee60280c06edb86e0d346c5c55ba5da828bb89d9ffd30c6057c43c6d8" | |||
}, | |||
"lin": { | |||
"download": "https://github.com/luckyxxl/vcv_luckyxxl/releases/download/v0.5.1/luckyxxl-0.5.1-lin.zip", | |||
"sha256": "ccebdc79571c06542f27374a802b550535053bbe2cc8d0fbc668e0bd83cd1924" | |||
} | |||
} | |||
} | |||
} |
@@ -4,19 +4,5 @@ | |||
"author": "Strum", | |||
"version": "0.5b", | |||
"source": "https://github.com/Strum/Strums_Mental_VCV_Modules", | |||
"manual": "https://github.com/Strum/Strums_Mental_VCV_Modules/wiki/Mental-Modules-WIKI/", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/Strum/Strums_Mental_VCV_Modules/releases/download/v0.5b/Strums_Mental_VCV_Modules_v05b_winx64.zip", | |||
"sha256": "d68ce8d61d2ca761c60806623d965ae897de156ab140d2f6ce34353662daab53" | |||
}, | |||
"mac": { | |||
"download": "https://github.com/Strum/Strums_Mental_VCV_Modules/releases/download/v0.5b/Strums_Mental_VCV_Modules_v05b_Mac.zip", | |||
"sha256": "1bb2d75cde48b129e23a650ecde6052fe3b8e6c4d8b24fafcb01aeea8cd2f2d3" | |||
}, | |||
"lin": { | |||
"download": "https://github.com/Strum/Strums_Mental_VCV_Modules/releases/download/v0.5b/Strums_Mental_VCV_Modules_05b_linux.zip", | |||
"sha256": "4782481e26fd3d50a900eaaeb2a0ce173c0ff8fe14f7aa82b3669fe6dd454c44" | |||
} | |||
} | |||
"manual": "https://github.com/Strum/Strums_Mental_VCV_Modules/wiki/Mental-Modules-WIKI/" | |||
} |
@@ -1,19 +1,19 @@ | |||
{ | |||
"slug": "moDllz", | |||
"name": "moDllz", | |||
"author": "Pablo DeLaLoza", | |||
"author": "Pablo Delaloza", | |||
"license": "BSD 3-clause", | |||
"version": "0.5.1", | |||
"version": "0.5.2", | |||
"manual": "https://github.com/dllmusic/VCV_moDllz/blob/master/README.md", | |||
"source": "https://github.com/dllmusic/VCV_moDllz", | |||
"downloads": { | |||
"win": { | |||
"download": "https://github.com/dllmusic/VCV_moDllz/blob/master/moDllz-0.5.1-win.zip?raw=true", | |||
"sha256": "ee7f24f89798411c5d1a09c097edee29bc369dc55c02a1975a31a200c5aa3545" | |||
} | |||
"mac": { | |||
"download": "https://github.com/dllmusic/VCV_moDllz/blob/master/moDllz-0.5.1-mac.zip?raw=true", | |||
"sha256": "2147932276f7b737184064dde43733b2801223c46113190affef1c4292ff872a" | |||
"download": "https://github.com/dllmusic/VCV_moDllz/blob/master/dist/moDllz-0.5.2-win.zip?raw=true", | |||
"sha256": "991296d60f03893c4325b7b2077ef84c4cf1f4d4651137ea877ae865cb7501cd" | |||
}, | |||
"mac": { | |||
"download": "https://github.com/dllmusic/VCV_moDllz/blob/master/dist/moDllz-0.5.2-mac.zip?raw=true", | |||
"sha256": "664064185007b09cf7394a48e071ce0254f4e296c23abf945f1c0daf86af6c62" | |||
} | |||
} | |||
} |
@@ -2,7 +2,7 @@ | |||
"slug": "mscHack", | |||
"name": "mscHack", | |||
"author": "mschack", | |||
"version": "0.5.0", | |||
"version": "", | |||
"source": "https://github.com/mschack/VCV-Rack-Plugins", | |||
"manual": "https://github.com/mschack/VCV-Rack-Plugins/blob/master/README.md#demo-vids", | |||
"downloads": { | |||
@@ -2,7 +2,7 @@ | |||
"slug": "s-ol", | |||
"name": "s-ol", | |||
"author": "s-ol", | |||
"version": "0.5.0", | |||
"version": "", | |||
"source": "https://github.com/s-ol/vcvmods", | |||
"manual": "https://github.com/s-ol/vcvmods/blob/master/README.md", | |||
"downloads": { | |||
@@ -2,7 +2,7 @@ | |||
"slug": "trowaSoft", | |||
"name": "trowaSoft", | |||
"author": "j4s0n-c", | |||
"version": "0.5.5", | |||
"version": "", | |||
"homepage": "http://www.geekasaurusrex.net/page/trowaSoft-Sequencer-Modules-for-VCV-Rack.aspx", | |||
"source": "https://github.com/j4s0n-c/trowaSoft-VCV", | |||
"downloads": { | |||
@@ -0,0 +1,36 @@ | |||
# Tests | |||
## Jasmine | |||
[Jasmine Intro](https://jasmine.github.io/2.8/introduction.html) | |||
Tests only run on changed manifests files. | |||
To run all tests: | |||
``` | |||
npm test | |||
``` | |||
To force the tests to run for certain manifest files: | |||
``` | |||
TEST_MANIFEST=plugins/JW-Modules.json npm test | |||
``` | |||
## Schema Validation | |||
Our schema is [here](./manifest.json) | |||
We use [ajv](https://github.com/epoberezkin/ajv) to validate manifests against that schema. | |||
## Virus Total | |||
*Currently Disabled because they are slow and annoying* | |||
**Rate Limit: 4 per minute** | |||
`VT_API_KEY` env var is required and already set in travisci settings | |||
[Public API](https://www.virustotal.com/en/documentation/public-api/v2/) | |||
@@ -0,0 +1,116 @@ | |||
{ | |||
"id": "manifest.json", | |||
"type": "object", | |||
"additionalProperties": false, | |||
"required": [ | |||
"slug", | |||
"version" | |||
], | |||
"description": "A plugin manifest file for VCV Rack.", | |||
"properties": { | |||
"slug": { | |||
"type": "string", | |||
"description": "SEE README" | |||
}, | |||
"name": { | |||
"type": "string", | |||
"description": "SEE README" | |||
}, | |||
"author": { | |||
"type": "string", | |||
"description": "SEE README" | |||
}, | |||
"license": { | |||
"type": "string", | |||
"description": "SEE README" | |||
}, | |||
"version": { | |||
"type": "string", | |||
"description": "SEE README" | |||
}, | |||
"homepage": { | |||
"type": "string", | |||
"description": "SEE README" | |||
}, | |||
"donation": { | |||
"type": "string", | |||
"description": "SEE README" | |||
}, | |||
"manual": { | |||
"type": "string", | |||
"description": "SEE README" | |||
}, | |||
"source": { | |||
"type": "string", | |||
"description": "SEE README" | |||
}, | |||
"disabled": { | |||
"type": "boolean", | |||
"description": "used when a plugin needs to be disabled" | |||
}, | |||
"productId": { | |||
"type": "number", | |||
"description": "only used by vcv rack website" | |||
}, | |||
"downloads": { | |||
"type": "object", | |||
"additionalProperties": false, | |||
"properties": { | |||
"win": { | |||
"type": "object", | |||
"additionalProperties": false, | |||
"required": [ | |||
"download", | |||
"sha256" | |||
], | |||
"properties": { | |||
"download": { | |||
"type": "string", | |||
"description": "SEE README" | |||
}, | |||
"sha256": { | |||
"type": "string", | |||
"description": "SEE README" | |||
} | |||
} | |||
}, | |||
"lin": { | |||
"type": "object", | |||
"additionalProperties": false, | |||
"required": [ | |||
"download", | |||
"sha256" | |||
], | |||
"properties": { | |||
"download": { | |||
"type": "string", | |||
"description": "SEE README" | |||
}, | |||
"sha256": { | |||
"type": "string", | |||
"description": "SEE README" | |||
} | |||
} | |||
}, | |||
"mac": { | |||
"type": "object", | |||
"additionalProperties": false, | |||
"required": [ | |||
"download", | |||
"sha256" | |||
], | |||
"properties": { | |||
"download": { | |||
"type": "string", | |||
"description": "SEE README" | |||
}, | |||
"sha256": { | |||
"type": "string", | |||
"description": "SEE README" | |||
} | |||
} | |||
} | |||
} | |||
} | |||
} | |||
} |
@@ -0,0 +1,156 @@ | |||
const TEMP_DIR = ".tmp-zips/"; | |||
const CUR_VER_PREFIX = '0.5'; | |||
const MF_DIR = 'plugins'; | |||
const fs = require("fs"); | |||
const Ajv = require('ajv'); //https://github.com/epoberezkin/ajv | |||
const ajv = new Ajv({allErrors:true}); | |||
const validate = ajv.compile(require('./manifest.json')); | |||
const request = require("request"); | |||
const { execSync } = require('child_process'); | |||
const AdmZip = require('adm-zip'); //https://github.com/cthackers/adm-zip | |||
const hashFiles = require('hash-files'); //https://github.com/mac-/hash-files | |||
const manifestsToTest = getManifestsThatApply(); | |||
if(manifestsToTest.length === 0){ | |||
console.log("No manifest files to test."); | |||
return; | |||
} | |||
//virus total stuff | |||
const VIRUS_TOTAL_ENABLED = false; | |||
const vt = require("node-virustotal"); //https://github.com/natewatson999/node-virustotal | |||
const con = vt.MakePublicConnection(); | |||
if(VIRUS_TOTAL_ENABLED){ | |||
con.setKey(process.env.VT_API_KEY); | |||
con.setDelay(15000); | |||
jasmine.DEFAULT_TIMEOUT_INTERVAL = manifestsToTest.length * 4 * con.getDelay(); | |||
} | |||
describe("test manifests", function() { | |||
beforeEach(()=>{ | |||
execSync(`mkdir -p ${TEMP_DIR}`) | |||
}); | |||
afterEach(()=>{ | |||
execSync(`rm ${TEMP_DIR}/*.zip`) | |||
fs.rmdirSync(TEMP_DIR); | |||
}); | |||
const testMF = (filePath) => { | |||
it("valid properties and zip files", function(done) { | |||
try { | |||
if (!filePath.toLowerCase().endsWith('.json')) { | |||
fail("manifests should have .json extension"); | |||
} | |||
const fileContent = fs.readFileSync(filePath, 'utf8'); | |||
const mfObj = JSON.parse(fileContent); | |||
const valid = validate(mfObj); | |||
if (!valid) { | |||
validate.errors.map(e => e.message += ` in ${filePath}`) | |||
fail(validate.errors); | |||
} | |||
if (!(/^[a-zA-Z0-9_\-]*$/).test(mfObj.slug)) { | |||
fail(`slug does not match regex in ${filePath}`); | |||
} | |||
const fileName = filePath.replace('plugins/', ''); | |||
if (fileName.replace('.json', '') !== mfObj.slug) { | |||
fail(`slug '${mfObj.slug}' does not match fileName: ${fileName}`); | |||
} | |||
if (mfObj.version && !mfObj.version.startsWith(CUR_VER_PREFIX)) { | |||
fail(`version '${mfObj.version}' must start with '${CUR_VER_PREFIX}'`); | |||
} | |||
if(mfObj.downloads){ | |||
const urlsChecked = []; | |||
let lastSha256; | |||
['win', 'lin', 'mac'].map(os => { | |||
const osObj = mfObj.downloads[os]; | |||
if(osObj && osObj.download && osObj.sha256){ | |||
const zipUrl = osObj.download; | |||
if(urlsChecked.includes(zipUrl)){ | |||
if(lastSha256 !== osObj.sha256){ | |||
fail("SHA256 should be the same if the download URL is the same"); | |||
} | |||
} else { | |||
urlsChecked.push(zipUrl); | |||
lastSha256 = osObj.sha256; | |||
testOneZip(mfObj.slug, osObj, done); | |||
} | |||
} | |||
}); | |||
} | |||
} catch(err){ | |||
fail(`Error while trying to validate manifest: ${filePath}\n${err}`); | |||
} | |||
}); | |||
}; | |||
manifestsToTest.map(testMF); | |||
}); | |||
function testOneZip(expectedRootDir, osObj, done) { | |||
const urlParts = osObj.download.split('/'); | |||
const zipName = urlParts[urlParts.length - 1].split('\?')[0]; | |||
request(osObj.download).pipe(fs.createWriteStream(TEMP_DIR+zipName)).on('finish', ()=>{ | |||
console.log(`Downloaded ${TEMP_DIR+zipName}`); | |||
const zip = new AdmZip(TEMP_DIR+zipName); | |||
const zipEntries = zip.getEntries(); | |||
// zipEntries.map(ze=>console.log(ze.toString())); | |||
const slugDirFound = zipEntries.find(ze => ze.isDirectory && | |||
(ze.entryName === expectedRootDir+'/' || ze.entryName === expectedRootDir+'\\') | |||
); | |||
if(!slugDirFound){ | |||
fail(`Zip should have one dir named ${expectedRootDir}`); | |||
} | |||
const invalidEntry = zipEntries.find(ze => !ze.entryName.startsWith(slugDirFound.entryName)); | |||
if(invalidEntry){ | |||
fail(`Zip entries should all be under a dir named ${expectedRootDir} but this entry was found: ${invalidEntry.entryName}`); | |||
} | |||
if(VIRUS_TOTAL_ENABLED){ | |||
con.FileEvaluation(zipName, "application/zip", fs.readFileSync(TEMP_DIR+zipName), function(data) { | |||
console.log(data); | |||
if(osObj.sha256 !== data.sha256){ | |||
throw new Error(`Invalid sha256 value. manifest:${osObj.sha256} virustotal:${data.sha256}`); | |||
} | |||
if(data.positives > 2){ | |||
throw new Error(`Too many positives from virustotal.`); | |||
} | |||
done(); | |||
}, function(err) { | |||
if (err){ throw err; } | |||
done(); | |||
}); | |||
} else { | |||
hashFiles({files:[TEMP_DIR+zipName], algorithm:'sha256'}, function(error, hash) { | |||
if(osObj.sha256 !== hash){ | |||
throw new Error(`Invalid sha256 value. manifest:${osObj.sha256} hash:${hash}`); | |||
} | |||
done(); | |||
}); | |||
} | |||
}); | |||
} | |||
function getManifestsThatApply(){ | |||
let paths = ""; | |||
if(process.env.TEST_MANIFEST){ | |||
paths = process.env.TEST_MANIFEST; | |||
} else { | |||
paths = execSync(`git diff -w --stat --name-only origin/master -- ${MF_DIR}/`, {encoding:'utf8'}); | |||
} | |||
return paths.trim().split('\n').filter(s=>s.trim() !== ''); | |||
} | |||
@@ -0,0 +1,11 @@ | |||
{ | |||
"spec_dir": "spec", | |||
"spec_files": [ | |||
"**/*[sS]pec.js" | |||
], | |||
"helpers": [ | |||
"helpers/**/*.js" | |||
], | |||
"stopSpecOnExpectationFailure": false, | |||
"random": false | |||
} |