From 249303359881a8f696d2a73f9b68bb6f65571391 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Tue, 19 Dec 2017 22:34:54 -0500 Subject: [PATCH 01/90] testing the test on it's own branch --- package.json | 3 +- test.js | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 test.js diff --git a/package.json b/package.json index c523dc71..af62226c 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ }, "homepage": "https://github.com/VCVRack/community#readme", "devDependencies": { - "node-virustotal": "^2.4.2" + "node-virustotal": "^2.4.2", + "request": "^2.83.0" } } diff --git a/test.js b/test.js new file mode 100644 index 00000000..e5a5213b --- /dev/null +++ b/test.js @@ -0,0 +1,102 @@ +const fs = require("fs"); +const request = require("request"); +const { exec } = require('child_process'); +const vt = require("node-virustotal");//https://github.com/natewatson999/node-virustotal +const con = vt.MakePublicConnection(); +const archArr = ['win', 'lin', 'mac']; +const verbose = true; + +//VT_API_KEY is set in travisci (or set when run locally) +con.setKey(process.env.VT_API_KEY); +if(verbose){console.log('key', con.getKey());} + +//15 seconds between calls is required by virus total (4 per minute) +//https://www.virustotal.com/en/documentation/public-api/v2/ +con.setDelay(15000); +if(verbose){console.log('delay', con.getDelay());} + +//We always just check all JSON because it's easy. +//However, we only want to check zip files of manifests that have changed. +exec('git diff -w --stat --name-only origin/master -- plugins/', (error, stdout, stderr) => { + if (error) { + console.error(`exec error: ${error}`); + return; + } + const changedManifestFiles = stdout.trim().split('\n'); + testAllManifests(changedManifestFiles); +}); + +function testAllManifests(changedManifestFiles){ + console.log("changedManifestFiles", changedManifestFiles); + fs.readdir('plugins', function(err, files) { + if (err){ throw err; } + + for (let index in files) { + const filePath = `plugins/${files[index]}`; + if(!filePath.toLowerCase().endsWith('.json')){ + throw new Error("manifests should have .json extension"); + } + fs.readFile(filePath, 'utf8', (err, data) => { + if (err){ throw err; } + if(verbose){console.log("testing: ", filePath);} + + const shouldTestZip = changedManifestFiles.includes(filePath); + testOneManifest(filePath, data, shouldTestZip); + }); + } + }); +} + +function testOneManifest(filePath, fileContent, shouldTestZip = false) { + let manifestObj; + try { + manifestObj = JSON.parse(fileContent); + } catch(err){ + console.error(`Invalid JSON: ${filePath}`); + throw err; + } + + if (manifestObj.downloads) { + let zipUrlsChecked = []; + let lastSha256; + + archArr.map(arch => { + const archObj = manifestObj.downloads[arch]; + if (archObj && archObj.download) { + if(zipUrlsChecked.includes(archObj.download)){ + if(lastSha256 !== archObj.sha256){ + throw new Error('SHA256 should be the same if the download URL is the same.'); + } + } else { + zipUrlsChecked.push(archObj.download); + lastSha256 = archObj.sha256; + + if(shouldTestZip){ + testOneArch(archObj); + } else { + if(verbose){console.log("not testing zip because the manifest hasn't changed: ", filePath);} + } + } + } + }); + } +} + +function testOneArch(archObj) { + const urlParts = archObj.download.split('/'); + const zipName = urlParts[urlParts.length - 1].split('\?')[0]; + if(verbose){console.log(`Downloading ${archObj.download}`);} + request(archObj.download).pipe(fs.createWriteStream(zipName)).on('finish', ()=>{ + con.FileEvaluation(zipName, "application/zip", fs.readFileSync(zipName), function(data) { + console.log(data); + if(archObj.sha256 !== data.sha256){ + throw new Error(`Invalid sha256 value. manifest:${archObj.sha256} virustotal:${data.sha256}`); + } + if(data.positives > 2){ + throw new Error(`Too many positives from virustotal.`); + } + }, function(err) { + if (err){ throw err; } + }); + }); +} From 465ab7e7ed40656e073b6bf7598987ac77250992 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Tue, 19 Dec 2017 22:38:21 -0500 Subject: [PATCH 02/90] npm test now runs test.js --- package.json | 2 +- test.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index af62226c..d57bb914 100644 --- a/package.json +++ b/package.json @@ -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": "node test.js" }, "repository": { "type": "git", diff --git a/test.js b/test.js index e5a5213b..768c6932 100644 --- a/test.js +++ b/test.js @@ -4,7 +4,7 @@ const { exec } = require('child_process'); const vt = require("node-virustotal");//https://github.com/natewatson999/node-virustotal const con = vt.MakePublicConnection(); const archArr = ['win', 'lin', 'mac']; -const verbose = true; +const verbose = false; //VT_API_KEY is set in travisci (or set when run locally) con.setKey(process.env.VT_API_KEY); @@ -27,7 +27,7 @@ exec('git diff -w --stat --name-only origin/master -- plugins/', (error, stdout, }); function testAllManifests(changedManifestFiles){ - console.log("changedManifestFiles", changedManifestFiles); + if(verbose){console.log("changedManifestFiles", changedManifestFiles);} fs.readdir('plugins', function(err, files) { if (err){ throw err; } From 1aa89c0a621ce1e185e13c2eed1bb0a4fc42b421 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Tue, 19 Dec 2017 22:41:03 -0500 Subject: [PATCH 03/90] node version --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 587bd3e0..28c24c79 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1 +1,3 @@ language: node_js +node_js: + "6.2.0" \ No newline at end of file From 2b152f2d0049d0b16e30e95ad93c78cef946ce3b Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Wed, 20 Dec 2017 10:39:40 -0500 Subject: [PATCH 04/90] Fix moDllz invalid JSON --- plugins/moDllz.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/moDllz.json b/plugins/moDllz.json index ffd76625..95e1e9cb 100644 --- a/plugins/moDllz.json +++ b/plugins/moDllz.json @@ -10,8 +10,8 @@ "win": { "download": "https://github.com/dllmusic/VCV_moDllz/blob/master/moDllz-0.5.1-win.zip?raw=true", "sha256": "ee7f24f89798411c5d1a09c097edee29bc369dc55c02a1975a31a200c5aa3545" - } - "mac": { + }, + "mac": { "download": "https://github.com/dllmusic/VCV_moDllz/blob/master/moDllz-0.5.1-mac.zip?raw=true", "sha256": "2147932276f7b737184064dde43733b2801223c46113190affef1c4292ff872a" } From 9188c40e6a1bdefbad15ad0b639329ac100b7e8e Mon Sep 17 00:00:00 2001 From: Animated Circuits <33923788+AnimatedCircuits@users.noreply.github.com> Date: Wed, 20 Dec 2017 17:44:07 +0100 Subject: [PATCH 05/90] Updated author, version and manual --- plugins/AnimatedCircuits.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/AnimatedCircuits.json b/plugins/AnimatedCircuits.json index 92660921..fbbe3002 100644 --- a/plugins/AnimatedCircuits.json +++ b/plugins/AnimatedCircuits.json @@ -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" -} \ No newline at end of file +} From 4e72385d56f283d1746d0beabb585723442986cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foulc?= <33777744+cfoulc@users.noreply.github.com> Date: Wed, 20 Dec 2017 18:42:10 +0100 Subject: [PATCH 06/90] Update cf.json --- plugins/cf.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/cf.json b/plugins/cf.json index 0da325dd..99eeeac3 100644 --- a/plugins/cf.json +++ b/plugins/cf.json @@ -6,16 +6,16 @@ "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" } } } From 4724825831059eb3b607ce3cd8878fdd63755d3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foulc?= <33777744+cfoulc@users.noreply.github.com> Date: Wed, 20 Dec 2017 19:06:07 +0100 Subject: [PATCH 07/90] Update cf.json --- plugins/cf.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cf.json b/plugins/cf.json index 99eeeac3..b1083005 100644 --- a/plugins/cf.json +++ b/plugins/cf.json @@ -15,7 +15,7 @@ }, "lin": { "download": "https://github.com/cfoulc/cf/releases/download/0.5.10/cf-0.5.10-lin.zip", - "sha256": " 92927fa7fbd2a917de0f601dd77a9ab0d3a8e053778f92f8fb36547955ace2dd" + "sha256": "92927fa7fbd2a917de0f601dd77a9ab0d3a8e053778f92f8fb36547955ace2dd" } } } From f2a8a911845a94a60aa56529ec3d2e518467fe7e Mon Sep 17 00:00:00 2001 From: luckyxxl Date: Wed, 20 Dec 2017 21:11:40 +0100 Subject: [PATCH 08/90] Update luckyxxl.json --- plugins/luckyxxl.json | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/plugins/luckyxxl.json b/plugins/luckyxxl.json index 1bf621d5..d44da399 100644 --- a/plugins/luckyxxl.json +++ b/plugins/luckyxxl.json @@ -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" } } -} \ No newline at end of file +} From ffa5a7fcdf1348ea3fc4825c36d405b0b62d4df2 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Wed, 20 Dec 2017 15:48:30 -0500 Subject: [PATCH 09/90] added comments --- test.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/test.js b/test.js index 768c6932..b9911afe 100644 --- a/test.js +++ b/test.js @@ -1,3 +1,24 @@ +/* + +check valid JSON +check valid SHA256 +upload to VirusTotal and assert less than 3 or so engines return suspicious for each ZIP + +ZIP must not contain a __MACOSX directory at root level. +ZIP must not be a tarbomb. Yes, I know the first is a subset of this one, but it's better to have more feedback. +We might even want to assert that the single folder at root level is named as the slug of the plugin. I'm for this. + +schema validation + +slug required +if we could have a "soft" warning for slugs matching /[a-zA-Z0-9_\-]/+, that'd be great, although I'd rather their slugs break this than change. +version required +version must begin with "0.5." (this will be changed with each version bump.) + +*/ + + + const fs = require("fs"); const request = require("request"); const { exec } = require('child_process'); @@ -17,6 +38,12 @@ if(verbose){console.log('delay', con.getDelay());} //We always just check all JSON because it's easy. //However, we only want to check zip files of manifests that have changed. + + + +//TODO FIX - travis doesn't have master +// https://github.com/travis-ci/travis-ci/issues/6069 +// todo check diff to see if "download" or "sha256" changed exec('git diff -w --stat --name-only origin/master -- plugins/', (error, stdout, stderr) => { if (error) { console.error(`exec error: ${error}`); From 60976cf67b4d2fb4b14b35afae7e968453a780f0 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Wed, 20 Dec 2017 16:25:06 -0500 Subject: [PATCH 10/90] add jasmine test --- .travis.yml | 6 +- package.json | 3 +- spec/basics.spec.js | 35 +++++++++++ spec/support/jasmine.json | 11 ++++ test.js | 129 -------------------------------------- 5 files changed, 53 insertions(+), 131 deletions(-) create mode 100644 spec/basics.spec.js create mode 100644 spec/support/jasmine.json delete mode 100644 test.js diff --git a/.travis.yml b/.travis.yml index 28c24c79..c11d00f5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,7 @@ language: node_js node_js: - "6.2.0" \ No newline at end of file + "6.2.0" + +before_install: +- git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" +- git fetch \ No newline at end of file diff --git a/package.json b/package.json index d57bb914..b6ee41b0 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "description": "*Manifest repository for VCV Rack plugins*", "scripts": { - "test": "node test.js" + "test": "jasmine" }, "repository": { "type": "git", @@ -14,6 +14,7 @@ }, "homepage": "https://github.com/VCVRack/community#readme", "devDependencies": { + "jasmine": "^2.8.0", "node-virustotal": "^2.4.2", "request": "^2.83.0" } diff --git a/spec/basics.spec.js b/spec/basics.spec.js new file mode 100644 index 00000000..4e926e80 --- /dev/null +++ b/spec/basics.spec.js @@ -0,0 +1,35 @@ +//Jasmine Test - https://jasmine.github.io/2.8/introduction.html +const fs = require("fs"); + +describe("json", function() { + + it("simply valid parsable json", function(done) { + fs.readdir('plugins', function(err, files) { + if (err){ + fail("unable to read plugins dir"); + } + + for (let index in files) { + const filePath = `plugins/${files[index]}`; + if(!filePath.toLowerCase().endsWith('.json')){ + fail("manifests should have .json extension"); + } + + fs.readFile(filePath, 'utf8', (err, fileContent) => { + if (err){ + fail("unable to read manifest file"); + } + + let manifestObj; + try { + manifestObj = JSON.parse(fileContent+"FAIL"); + done(); + } catch(err){ + fail(`Invalid JSON: ${filePath}\n${err}`); + } + }); + } + }); + }); + +}); diff --git a/spec/support/jasmine.json b/spec/support/jasmine.json new file mode 100644 index 00000000..3ea31669 --- /dev/null +++ b/spec/support/jasmine.json @@ -0,0 +1,11 @@ +{ + "spec_dir": "spec", + "spec_files": [ + "**/*[sS]pec.js" + ], + "helpers": [ + "helpers/**/*.js" + ], + "stopSpecOnExpectationFailure": false, + "random": false +} diff --git a/test.js b/test.js deleted file mode 100644 index b9911afe..00000000 --- a/test.js +++ /dev/null @@ -1,129 +0,0 @@ -/* - -check valid JSON -check valid SHA256 -upload to VirusTotal and assert less than 3 or so engines return suspicious for each ZIP - -ZIP must not contain a __MACOSX directory at root level. -ZIP must not be a tarbomb. Yes, I know the first is a subset of this one, but it's better to have more feedback. -We might even want to assert that the single folder at root level is named as the slug of the plugin. I'm for this. - -schema validation - -slug required -if we could have a "soft" warning for slugs matching /[a-zA-Z0-9_\-]/+, that'd be great, although I'd rather their slugs break this than change. -version required -version must begin with "0.5." (this will be changed with each version bump.) - -*/ - - - -const fs = require("fs"); -const request = require("request"); -const { exec } = require('child_process'); -const vt = require("node-virustotal");//https://github.com/natewatson999/node-virustotal -const con = vt.MakePublicConnection(); -const archArr = ['win', 'lin', 'mac']; -const verbose = false; - -//VT_API_KEY is set in travisci (or set when run locally) -con.setKey(process.env.VT_API_KEY); -if(verbose){console.log('key', con.getKey());} - -//15 seconds between calls is required by virus total (4 per minute) -//https://www.virustotal.com/en/documentation/public-api/v2/ -con.setDelay(15000); -if(verbose){console.log('delay', con.getDelay());} - -//We always just check all JSON because it's easy. -//However, we only want to check zip files of manifests that have changed. - - - -//TODO FIX - travis doesn't have master -// https://github.com/travis-ci/travis-ci/issues/6069 -// todo check diff to see if "download" or "sha256" changed -exec('git diff -w --stat --name-only origin/master -- plugins/', (error, stdout, stderr) => { - if (error) { - console.error(`exec error: ${error}`); - return; - } - const changedManifestFiles = stdout.trim().split('\n'); - testAllManifests(changedManifestFiles); -}); - -function testAllManifests(changedManifestFiles){ - if(verbose){console.log("changedManifestFiles", changedManifestFiles);} - fs.readdir('plugins', function(err, files) { - if (err){ throw err; } - - for (let index in files) { - const filePath = `plugins/${files[index]}`; - if(!filePath.toLowerCase().endsWith('.json')){ - throw new Error("manifests should have .json extension"); - } - fs.readFile(filePath, 'utf8', (err, data) => { - if (err){ throw err; } - if(verbose){console.log("testing: ", filePath);} - - const shouldTestZip = changedManifestFiles.includes(filePath); - testOneManifest(filePath, data, shouldTestZip); - }); - } - }); -} - -function testOneManifest(filePath, fileContent, shouldTestZip = false) { - let manifestObj; - try { - manifestObj = JSON.parse(fileContent); - } catch(err){ - console.error(`Invalid JSON: ${filePath}`); - throw err; - } - - if (manifestObj.downloads) { - let zipUrlsChecked = []; - let lastSha256; - - archArr.map(arch => { - const archObj = manifestObj.downloads[arch]; - if (archObj && archObj.download) { - if(zipUrlsChecked.includes(archObj.download)){ - if(lastSha256 !== archObj.sha256){ - throw new Error('SHA256 should be the same if the download URL is the same.'); - } - } else { - zipUrlsChecked.push(archObj.download); - lastSha256 = archObj.sha256; - - if(shouldTestZip){ - testOneArch(archObj); - } else { - if(verbose){console.log("not testing zip because the manifest hasn't changed: ", filePath);} - } - } - } - }); - } -} - -function testOneArch(archObj) { - const urlParts = archObj.download.split('/'); - const zipName = urlParts[urlParts.length - 1].split('\?')[0]; - if(verbose){console.log(`Downloading ${archObj.download}`);} - request(archObj.download).pipe(fs.createWriteStream(zipName)).on('finish', ()=>{ - con.FileEvaluation(zipName, "application/zip", fs.readFileSync(zipName), function(data) { - console.log(data); - if(archObj.sha256 !== data.sha256){ - throw new Error(`Invalid sha256 value. manifest:${archObj.sha256} virustotal:${data.sha256}`); - } - if(data.positives > 2){ - throw new Error(`Too many positives from virustotal.`); - } - }, function(err) { - if (err){ throw err; } - }); - }); -} From bed72e4f1c43afc2eec0fc3d0dc798ee6f400054 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Wed, 20 Dec 2017 16:26:57 -0500 Subject: [PATCH 11/90] basic test should pass now --- spec/basics.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/basics.spec.js b/spec/basics.spec.js index 4e926e80..a8eadc95 100644 --- a/spec/basics.spec.js +++ b/spec/basics.spec.js @@ -22,7 +22,7 @@ describe("json", function() { let manifestObj; try { - manifestObj = JSON.parse(fileContent+"FAIL"); + manifestObj = JSON.parse(fileContent); done(); } catch(err){ fail(`Invalid JSON: ${filePath}\n${err}`); From d07529146ee4b08f9e08d403ac4b46315098045a Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Wed, 20 Dec 2017 16:31:15 -0500 Subject: [PATCH 12/90] rename test --- spec/basics.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/basics.spec.js b/spec/basics.spec.js index a8eadc95..8ba5ef2b 100644 --- a/spec/basics.spec.js +++ b/spec/basics.spec.js @@ -3,7 +3,7 @@ const fs = require("fs"); describe("json", function() { - it("simply valid parsable json", function(done) { + it("manifest files should be valid parsable json", function(done) { fs.readdir('plugins', function(err, files) { if (err){ fail("unable to read plugins dir"); From 1bb72209715f8caaa3e5ea9c14a7858ebd76c98e Mon Sep 17 00:00:00 2001 From: Leonardo Laguna Ruiz Date: Wed, 20 Dec 2017 16:10:55 -0600 Subject: [PATCH 13/90] Fixes version problems - Adds the version in the C++ code - Separates the binaries by platform --- plugins/VultModules.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/VultModules.json b/plugins/VultModules.json index 21a87567..4922d107 100644 --- a/plugins/VultModules.json +++ b/plugins/VultModules.json @@ -8,16 +8,16 @@ "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": "0c32fb89f6c80a8a70cd5b51e916553ca00819ccf99f2bf8b654c1278a509f35" }, "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": "52d5a59c7db23a830c3874c519b46125cb2e6eb89a8e7278bc388de34615fe05" }, "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": "e101f49f289a3dd6e5342e27f68389458d031ecc1a51604f835426afd47009de" } } -} \ No newline at end of file +} From 493e4370ad56ed303b3fa027991b9d349d21bdf3 Mon Sep 17 00:00:00 2001 From: Stellare Modular <33414770+stellare-modular@users.noreply.github.com> Date: Wed, 20 Dec 2017 23:11:58 +0100 Subject: [PATCH 14/90] Update StellareModular.json --- plugins/StellareModular.json | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/plugins/StellareModular.json b/plugins/StellareModular.json index 108523c7..df9ec4ca 100644 --- a/plugins/StellareModular.json +++ b/plugins/StellareModular.json @@ -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" } } -} \ No newline at end of file +} From 4b955aff918a65fce09cb47b5ff5719754e861aa Mon Sep 17 00:00:00 2001 From: Stellare Modular <33414770+stellare-modular@users.noreply.github.com> Date: Wed, 20 Dec 2017 23:19:04 +0100 Subject: [PATCH 15/90] Create VCV-Link.json --- plugins/VCV-Link.json | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/VCV-Link.json diff --git a/plugins/VCV-Link.json b/plugins/VCV-Link.json new file mode 100644 index 00000000..c1099c63 --- /dev/null +++ b/plugins/VCV-Link.json @@ -0,0 +1,25 @@ +{ + "slug": "VCV-Link", + "name": "VCV-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/VCV-Link-0.5.1.zip", + "sha256": "b584edbf2a759c4bb615e2bd2cc146d31c292bbe5a7f34c672a439e0f65f4105" + }, + "mac": { + "download": "https://github.com/stellare-modular/vcv-link/releases/download/0.5.1/VCV-Link-0.5.1.zip", + "sha256": "b584edbf2a759c4bb615e2bd2cc146d31c292bbe5a7f34c672a439e0f65f4105" + }, + "lin": { + "download": "https://github.com/stellare-modular/vcv-link/releases/download/0.5.1/VCV-Link-0.5.1.zip", + "sha256": "b584edbf2a759c4bb615e2bd2cc146d31c292bbe5a7f34c672a439e0f65f4105" + } + } +} From 5c0e82bc30135c700809b3fa7d055353b3bb7bd8 Mon Sep 17 00:00:00 2001 From: Stellare Modular <33414770+stellare-modular@users.noreply.github.com> Date: Wed, 20 Dec 2017 23:19:58 +0100 Subject: [PATCH 16/90] Update VCV-Link.json --- plugins/VCV-Link.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/VCV-Link.json b/plugins/VCV-Link.json index c1099c63..da1b30eb 100644 --- a/plugins/VCV-Link.json +++ b/plugins/VCV-Link.json @@ -5,9 +5,9 @@ "license": "GPL-3", "version": "0.5.1", "homepage": "https://www.facebook.com/stellaremodular", - "donation": "https://paypal.me/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" + "source": "https://github.com/stellare-modular/vcv-link", "downloads": { "win": { "download": "https://github.com/stellare-modular/vcv-link/releases/download/0.5.1/VCV-Link-0.5.1.zip", From c19d609ac864856ae68168fcf11dca58728da577 Mon Sep 17 00:00:00 2001 From: Stellare Modular <33414770+stellare-modular@users.noreply.github.com> Date: Wed, 20 Dec 2017 23:23:38 +0100 Subject: [PATCH 17/90] Update StellareModular.json --- plugins/StellareModular.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/StellareModular.json b/plugins/StellareModular.json index df9ec4ca..56968737 100644 --- a/plugins/StellareModular.json +++ b/plugins/StellareModular.json @@ -5,7 +5,7 @@ "license": "MIT", "version": "0.5.1", "homepage": "https://www.facebook.com/stellaremodular", - "donation": "https://paypal.me/stellaremodular" + "donation": "https://paypal.me/stellaremodular", "manual": "https://github.com/stellare-modular/vcv-rack/blob/master/README.md", "downloads": { "win": { From a0c2f0bea31fa68b191237f2c632c20970e54ae7 Mon Sep 17 00:00:00 2001 From: Antonio Tuzzi Date: Wed, 20 Dec 2017 23:42:14 +0100 Subject: [PATCH 18/90] update to support Rack 0.5.1 done the scan on https://www.virustotal.com/#/file/cdba68f3c5fa59af37ea0f4eb271c9ade583c2dea35fa3a0a56288fec142dca3/details --- plugins/NYSTHI.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/NYSTHI.json b/plugins/NYSTHI.json index 7a134a67..8874a2af 100644 --- a/plugins/NYSTHI.json +++ b/plugins/NYSTHI.json @@ -1,21 +1,21 @@ { "slug": "NYSTHI", "name": "NYSTHI", - "version": "0.5.8", + "version": "0.5.9", "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.9/nysthi.zip", + "sha256": "cdba68f3c5fa59af37ea0f4eb271c9ade583c2dea35fa3a0a56288fec142dca3" }, "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.9/nysthi.zip", + "sha256": "cdba68f3c5fa59af37ea0f4eb271c9ade583c2dea35fa3a0a56288fec142dca3" }, "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.9/nysthi.zip", + "sha256": "cdba68f3c5fa59af37ea0f4eb271c9ade583c2dea35fa3a0a56288fec142dca3" } } -} \ No newline at end of file +} From f87fa1f63b72bb0dc48c4776ae20d3aed1b90df2 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Wed, 20 Dec 2017 17:52:51 -0500 Subject: [PATCH 19/90] added jasmine tests --- package.json | 1 + spec/README.md | 27 +++++++++++ spec/basic.tests.spec.js | 59 +++++++++++++++++++++++ spec/basics.spec.js | 35 -------------- spec/manifest.json | 100 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 187 insertions(+), 35 deletions(-) create mode 100644 spec/README.md create mode 100644 spec/basic.tests.spec.js delete mode 100644 spec/basics.spec.js create mode 100644 spec/manifest.json diff --git a/package.json b/package.json index b6ee41b0..fd2e3b5c 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ }, "homepage": "https://github.com/VCVRack/community#readme", "devDependencies": { + "ajv": "^5.5.2", "jasmine": "^2.8.0", "node-virustotal": "^2.4.2", "request": "^2.83.0" diff --git a/spec/README.md b/spec/README.md new file mode 100644 index 00000000..04880fc4 --- /dev/null +++ b/spec/README.md @@ -0,0 +1,27 @@ +# Jasmine Tests + +[Jasmine Intro](https://jasmine.github.io/2.8/introduction.html) + +To run all tests: + +``` +npm test +``` + +To run only the zip tests for example: + +``` +./node_modules/.bin/jasmine --filter=zip +``` + +# Virus Total + +**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/) + +[Node Module](https://github.com/natewatson999/node-virustotal) + + diff --git a/spec/basic.tests.spec.js b/spec/basic.tests.spec.js new file mode 100644 index 00000000..702464f8 --- /dev/null +++ b/spec/basic.tests.spec.js @@ -0,0 +1,59 @@ +const CUR_VER_PREFIX = '0.5'; +const fs = require("fs"); +const Ajv = require('ajv'); //https://github.com/epoberezkin/ajv +const ajv = new Ajv({}); +const validate = ajv.compile(require('./manifest.json')); + +describe("json", function() { + + it("manifest files should be valid against the schema", function(done) { + fs.readdir('plugins', function(err, files) { + if (err){ + fail("unable to read plugins dir"); + } + + for (let index in files) { + const fileName = files[index]; + const filePath = `plugins/${fileName}`; + if(!filePath.toLowerCase().endsWith('.json')){ + fail("manifests should have .json extension"); + } + + fs.readFile(filePath, 'utf8', (err, fileContent) => { + if (err){ + fail("unable to read manifest file"); + } + + let manifestObj; + try { + + const obj = JSON.parse(fileContent); + const valid = validate(obj); + + if (!valid) { + validate.errors.map(e=>e.message+=` in ${filePath}`) + fail(validate.errors); + } + + if(!(/^[a-zA-Z0-9_\-]*$/).test(obj.slug)){ + fail(`slug does not match regex in ${filePath}`); + } + + if(fileName.replace('.json','') !== obj.slug){ + fail(`slug '${obj.slug}' does not match fileName: ${fileName}`); + } + + if(obj.version && !obj.version.startsWith(CUR_VER_PREFIX)){ + fail(`version '${obj.version}' must start with '${CUR_VER_PREFIX}'`); + } + + done(); + } catch(err){ + fail(`Invalid JSON: ${filePath}\n${err}`); + } + }); + } + }); + }); + +}); diff --git a/spec/basics.spec.js b/spec/basics.spec.js deleted file mode 100644 index 8ba5ef2b..00000000 --- a/spec/basics.spec.js +++ /dev/null @@ -1,35 +0,0 @@ -//Jasmine Test - https://jasmine.github.io/2.8/introduction.html -const fs = require("fs"); - -describe("json", function() { - - it("manifest files should be valid parsable json", function(done) { - fs.readdir('plugins', function(err, files) { - if (err){ - fail("unable to read plugins dir"); - } - - for (let index in files) { - const filePath = `plugins/${files[index]}`; - if(!filePath.toLowerCase().endsWith('.json')){ - fail("manifests should have .json extension"); - } - - fs.readFile(filePath, 'utf8', (err, fileContent) => { - if (err){ - fail("unable to read manifest file"); - } - - let manifestObj; - try { - manifestObj = JSON.parse(fileContent); - done(); - } catch(err){ - fail(`Invalid JSON: ${filePath}\n${err}`); - } - }); - } - }); - }); - -}); diff --git a/spec/manifest.json b/spec/manifest.json new file mode 100644 index 00000000..c80165bf --- /dev/null +++ b/spec/manifest.json @@ -0,0 +1,100 @@ +{ + "id": "manifest.json", + "type": "object", + "required": [ + "slug", + "version" + ], + "description": "A plugin manifest file for VCV Rack.", + "properties": { + "slug": { + "type": "string", + "description": "" + }, + "name": { + "type": "string", + "description": "" + }, + "author": { + "type": "string", + "description": "" + }, + "license": { + "type": "string", + "description": "" + }, + "version": { + "type": "string", + "description": "" + }, + "homepage": { + "type": "string", + "description": "" + }, + "donation": { + "type": "string", + "description": "" + }, + "manual": { + "type": "string", + "description": "" + }, + "source": { + "type": "string", + "description": "" + }, + "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", + "properties": { + "win": { + "type": "object", + "properties": { + "download": { + "type": "string", + "description": "" + }, + "sha256": { + "type": "string", + "description": "" + } + } + }, + "lin": { + "type": "object", + "properties": { + "download": { + "type": "string", + "description": "" + }, + "sha256": { + "type": "string", + "description": "" + } + } + }, + "mac": { + "type": "object", + "properties": { + "download": { + "type": "string", + "description": "" + }, + "sha256": { + "type": "string", + "description": "" + } + } + } + } + } + }, + "additionalProperties": false +} \ No newline at end of file From c2cabb91b6366324219229cdb93d8ec3276d3684 Mon Sep 17 00:00:00 2001 From: Leonardo Laguna Ruiz Date: Wed, 20 Dec 2017 17:10:50 -0600 Subject: [PATCH 20/90] Fixes a mistake in my previous release --- plugins/VultModules.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/VultModules.json b/plugins/VultModules.json index 4922d107..48787223 100644 --- a/plugins/VultModules.json +++ b/plugins/VultModules.json @@ -9,15 +9,15 @@ "downloads": { "win": { "download": "https://github.com/modlfo/VultModules/releases/download/v0.5.3/Vult-0.5.3-win.zip", - "sha256": "0c32fb89f6c80a8a70cd5b51e916553ca00819ccf99f2bf8b654c1278a509f35" + "sha256": "7d2560aa197aac48efc8e7a0327ff0d1af13db036e1caca2cd053835962208c1" }, "mac": { "download": "https://github.com/modlfo/VultModules/releases/download/v0.5.3/Vult-0.5.3-mac.zip", - "sha256": "52d5a59c7db23a830c3874c519b46125cb2e6eb89a8e7278bc388de34615fe05" + "sha256": "1c8039c0e69704e979e4e77a3fb35773bbabef352f1c47e4712878d9823f0bc2" }, "lin": { "download": "https://github.com/modlfo/VultModules/releases/download/v0.5.3/Vult-0.5.3-lin.zip", - "sha256": "e101f49f289a3dd6e5342e27f68389458d031ecc1a51604f835426afd47009de" + "sha256": "b950914ff6ecd3aad05c7f56fbd08839e2ddf52a7a7d57bae653f547d396fe5e" } } } From 61c53a94297d2cd067b1f29f2075854c18e3ca36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foulc?= <33777744+cfoulc@users.noreply.github.com> Date: Thu, 21 Dec 2017 08:11:23 +0100 Subject: [PATCH 21/90] Update cf.json --- plugins/cf.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/cf.json b/plugins/cf.json index b1083005..8f5a9c44 100644 --- a/plugins/cf.json +++ b/plugins/cf.json @@ -1,7 +1,9 @@ { "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": { From 5fec7f4209b25ee7e8ee06d3bd8ba7923cdeddfd Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Thu, 21 Dec 2017 06:39:16 -0500 Subject: [PATCH 22/90] fixed schema, test is a WIP --- spec/basic.tests.spec.js | 4 ++-- spec/manifest.json | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/spec/basic.tests.spec.js b/spec/basic.tests.spec.js index 702464f8..64a796d4 100644 --- a/spec/basic.tests.spec.js +++ b/spec/basic.tests.spec.js @@ -6,7 +6,7 @@ const validate = ajv.compile(require('./manifest.json')); describe("json", function() { - it("manifest files should be valid against the schema", function(done) { + it("manifest files should be valid against the schema", function(/*done*/) {//TODO fix fs.readdir('plugins', function(err, files) { if (err){ fail("unable to read plugins dir"); @@ -47,12 +47,12 @@ describe("json", function() { fail(`version '${obj.version}' must start with '${CUR_VER_PREFIX}'`); } - done(); } catch(err){ fail(`Invalid JSON: ${filePath}\n${err}`); } }); } + // done(); //TODO use promises }); }); diff --git a/spec/manifest.json b/spec/manifest.json index c80165bf..c1ef1786 100644 --- a/spec/manifest.json +++ b/spec/manifest.json @@ -6,6 +6,7 @@ "version" ], "description": "A plugin manifest file for VCV Rack.", + "additionalProperties": false, "properties": { "slug": { "type": "string", @@ -53,6 +54,7 @@ }, "downloads": { "type": "object", + "additionalProperties": false, "properties": { "win": { "type": "object", @@ -95,6 +97,5 @@ } } } - }, - "additionalProperties": false + } } \ No newline at end of file From 2c128cae8fef4f56089728c3cca3376059621630 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Thu, 21 Dec 2017 07:01:29 -0500 Subject: [PATCH 23/90] comment --- spec/basic.tests.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/basic.tests.spec.js b/spec/basic.tests.spec.js index 64a796d4..46e723be 100644 --- a/spec/basic.tests.spec.js +++ b/spec/basic.tests.spec.js @@ -6,7 +6,7 @@ const validate = ajv.compile(require('./manifest.json')); describe("json", function() { - it("manifest files should be valid against the schema", function(/*done*/) {//TODO fix + it("manifest files should be valid against the schema", function(/*done*/) {//TODO call done on Promise.all done fs.readdir('plugins', function(err, files) { if (err){ fail("unable to read plugins dir"); From 88aba0de7638739989e575dc196ebd2e8e9f98ab Mon Sep 17 00:00:00 2001 From: Giovanni Ghisleni Date: Thu, 21 Dec 2017 19:44:10 +0100 Subject: [PATCH 24/90] Updated with correct SHA --- plugins/dBiz.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/dBiz.json b/plugins/dBiz.json index 52a67f5d..c4e472bf 100644 --- a/plugins/dBiz.json +++ b/plugins/dBiz.json @@ -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" } } -} \ No newline at end of file +} From 05afdd95b3331f28386f0cc85014134ae0b7e9c9 Mon Sep 17 00:00:00 2001 From: Dale Johnson Date: Fri, 22 Dec 2017 11:22:44 +0000 Subject: [PATCH 25/90] Update Valley Free.json Added comma to donation entry --- plugins/Valley Free.json | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/Valley Free.json b/plugins/Valley Free.json index ccfa2f1a..8d69a6c8 100644 --- a/plugins/Valley Free.json +++ b/plugins/Valley Free.json @@ -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": { From 83e919e8d5435460af4f31c07f81f95dd4a80355 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Fri, 22 Dec 2017 09:23:30 -0500 Subject: [PATCH 26/90] Correct license and source URL of Grayscale --- plugins/Grayscale.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/Grayscale.json b/plugins/Grayscale.json index 07dcea29..8ed27a56 100644 --- a/plugins/Grayscale.json +++ b/plugins/Grayscale.json @@ -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", From 7e141c2ef4ff4dc14f16ccb5e2cade6474be8e77 Mon Sep 17 00:00:00 2001 From: Stellare Modular <33414770+stellare-modular@users.noreply.github.com> Date: Fri, 22 Dec 2017 15:57:34 +0100 Subject: [PATCH 27/90] Update and rename VCV-Link.json to StellareModular-Link.json --- .../{VCV-Link.json => StellareModular-Link.json} | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) rename plugins/{VCV-Link.json => StellareModular-Link.json} (55%) diff --git a/plugins/VCV-Link.json b/plugins/StellareModular-Link.json similarity index 55% rename from plugins/VCV-Link.json rename to plugins/StellareModular-Link.json index da1b30eb..882e56a2 100644 --- a/plugins/VCV-Link.json +++ b/plugins/StellareModular-Link.json @@ -1,6 +1,6 @@ { - "slug": "VCV-Link", - "name": "VCV-Link", + "slug": "StellareModular-Link", + "name": "Stellare Link", "author": "Stellare Modular", "license": "GPL-3", "version": "0.5.1", @@ -10,16 +10,16 @@ "source": "https://github.com/stellare-modular/vcv-link", "downloads": { "win": { - "download": "https://github.com/stellare-modular/vcv-link/releases/download/0.5.1/VCV-Link-0.5.1.zip", - "sha256": "b584edbf2a759c4bb615e2bd2cc146d31c292bbe5a7f34c672a439e0f65f4105" + "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/VCV-Link-0.5.1.zip", - "sha256": "b584edbf2a759c4bb615e2bd2cc146d31c292bbe5a7f34c672a439e0f65f4105" + "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/VCV-Link-0.5.1.zip", - "sha256": "b584edbf2a759c4bb615e2bd2cc146d31c292bbe5a7f34c672a439e0f65f4105" + "download": "https://github.com/stellare-modular/vcv-link/releases/download/0.5.1/StellareModular-Link-0.5.1.zip", + "sha256": "ebe352951876af91d9139bf51491c94d45bbebd94bc9b906d05f4621ed7f0d77" } } } From fc434b02248f03d71879e4e009955a74dfff0f39 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Fri, 22 Dec 2017 12:47:45 -0500 Subject: [PATCH 28/90] change to node 9.3 to make tests work consistently --- .travis.yml | 2 +- package-lock.json | 896 +++++++++++++++++++++++++++++++++++++++ spec/README.md | 9 +- spec/basic.tests.spec.js | 78 ++-- 4 files changed, 937 insertions(+), 48 deletions(-) create mode 100644 package-lock.json diff --git a/.travis.yml b/.travis.yml index c11d00f5..076963c7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: node_js node_js: - "6.2.0" + "9.3.0" before_install: - git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..e390742a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,896 @@ +{ + "name": "community", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "addressparser": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-0.3.2.tgz", + "integrity": "sha1-WYc/Nej89sc2HBAjkmHXbhU0i7I=", + "dev": true + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "dev": true, + "requires": { + "hoek": "4.2.0" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "bufferjs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bufferjs/-/bufferjs-1.1.0.tgz", + "integrity": "sha1-CV/6OcXmtAoheKEWnJ7/xYSnMgE=", + "dev": true, + "optional": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "dev": true, + "requires": { + "graceful-readlink": "1.0.1" + } + }, + "compressjs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/compressjs/-/compressjs-1.0.3.tgz", + "integrity": "sha1-ldt03VuQOM+AvKMhqw7eJxtJWbY=", + "dev": true, + "requires": { + "amdefine": "1.0.1", + "commander": "2.8.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "dev": true, + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "dev": true, + "requires": { + "hoek": "4.2.0" + } + } + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "emailjs": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/emailjs/-/emailjs-1.0.12.tgz", + "integrity": "sha1-vWVZxRxJYxJSGGJtoJi+ci96HHI=", + "dev": true, + "requires": { + "addressparser": "0.3.2", + "bufferjs": "1.1.0", + "mimelib": "0.2.14", + "moment": "2.15.2", + "starttls": "1.0.1" + }, + "dependencies": { + "moment": { + "version": "2.15.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.15.2.tgz", + "integrity": "sha1-G/3t9qbjRfMi/pVtXfW9CKjOhNw=", + "dev": true + } + } + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "0.4.19" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "dev": true, + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.1.0" + } + }, + "hoek": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true + }, + "imap": { + "version": "0.8.19", + "resolved": "https://registry.npmjs.org/imap/-/imap-0.8.19.tgz", + "integrity": "sha1-NniHOTSrCc6mukh0HyhNoq9Z2NU=", + "dev": true, + "requires": { + "readable-stream": "1.1.14", + "utf7": "1.0.2" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "7.1.2", + "jasmine-core": "2.8.0" + } + }, + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "mail-notifier": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mail-notifier/-/mail-notifier-0.3.0.tgz", + "integrity": "sha1-drhsopga0Ws8fLXz7r9lZr9HeqU=", + "dev": true, + "requires": { + "debug": "2.6.9", + "imap": "0.8.19", + "mailparser": "0.4.9" + } + }, + "mailparser": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/mailparser/-/mailparser-0.4.9.tgz", + "integrity": "sha1-HQpI1vqqovCawTmO0CPY746xnis=", + "dev": true, + "requires": { + "encoding": "0.1.12", + "mime": "2.0.3", + "mimelib": "0.3.1", + "uue": "1.0.0" + }, + "dependencies": { + "addressparser": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz", + "integrity": "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=", + "dev": true + }, + "mimelib": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/mimelib/-/mimelib-0.3.1.tgz", + "integrity": "sha1-eHrdJBXYJ6yzr27EvKHqlZZBiFM=", + "dev": true, + "requires": { + "addressparser": "1.0.1", + "encoding": "0.1.12" + } + } + } + }, + "mime": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.0.3.tgz", + "integrity": "sha512-TrpAd/vX3xaLPDgVRm6JkZwLR0KHfukMdU2wTEbqMDdCnY6Yo3mE+mjs9YE6oMNw2QRfXVeBEYpmpO94BIqiug==", + "dev": true + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", + "dev": true + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "dev": true, + "requires": { + "mime-db": "1.30.0" + } + }, + "mimelib": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/mimelib/-/mimelib-0.2.14.tgz", + "integrity": "sha1-KhqnJL0ZC4W9Um5jF6thBu39aDE=", + "dev": true, + "requires": { + "addressparser": "0.2.1", + "encoding": "0.1.12" + }, + "dependencies": { + "addressparser": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-0.2.1.tgz", + "integrity": "sha1-0RpbLu2gTP7+vfMZbBCuE9ts1gc=", + "dev": true + } + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "moment": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz", + "integrity": "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node-virustotal": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/node-virustotal/-/node-virustotal-2.4.2.tgz", + "integrity": "sha1-Rxqko6YnEVcy3aR0Hleu/jiR8ek=", + "dev": true, + "requires": { + "compressjs": "1.0.3", + "emailjs": "1.0.12", + "mail-notifier": "0.3.0", + "moment": "2.20.1", + "request": "2.83.0", + "shelljs": "0.7.8", + "speedconcat": "1.0.2", + "tar": "2.2.1" + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "1.5.0" + } + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "dev": true, + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } + }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + }, + "shelljs": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", + "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "dev": true, + "requires": { + "glob": "7.1.2", + "interpret": "1.1.0", + "rechoir": "0.6.2" + } + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "dev": true, + "requires": { + "hoek": "4.2.0" + } + }, + "speedconcat": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/speedconcat/-/speedconcat-1.0.2.tgz", + "integrity": "sha1-1PVSp712PK1ywY4tnwjclB8AK+I=", + "dev": true + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dev": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + } + }, + "starttls": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/starttls/-/starttls-1.0.1.tgz", + "integrity": "sha1-5ggcJd5rF49adfjyccFIdEkYO0I=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "dev": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "utf7": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utf7/-/utf7-1.0.2.tgz", + "integrity": "sha1-lV9JCq5lO6IguUVqCod2wZk2CZE=", + "dev": true, + "requires": { + "semver": "5.3.0" + } + }, + "uue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uue/-/uue-1.0.0.tgz", + "integrity": "sha1-ITuUSLmLmLnQPK9gGiI1ib2IZDA=", + "dev": true + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/spec/README.md b/spec/README.md index 04880fc4..98302cc6 100644 --- a/spec/README.md +++ b/spec/README.md @@ -1,4 +1,6 @@ -# Jasmine Tests +# Tests + +## Jasmine [Jasmine Intro](https://jasmine.github.io/2.8/introduction.html) @@ -14,7 +16,7 @@ To run only the zip tests for example: ./node_modules/.bin/jasmine --filter=zip ``` -# Virus Total +## Virus Total **Rate Limit: 4 per minute** @@ -25,3 +27,6 @@ To run only the zip tests for example: [Node Module](https://github.com/natewatson999/node-virustotal) +## Schema Validation + +[AJV](https://github.com/epoberezkin/ajv) diff --git a/spec/basic.tests.spec.js b/spec/basic.tests.spec.js index 46e723be..83fdf6ee 100644 --- a/spec/basic.tests.spec.js +++ b/spec/basic.tests.spec.js @@ -1,59 +1,47 @@ 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({}); + +const Ajv = require('ajv'); +const ajv = new Ajv({allErrors:true}); const validate = ajv.compile(require('./manifest.json')); describe("json", function() { - it("manifest files should be valid against the schema", function(/*done*/) {//TODO call done on Promise.all done - fs.readdir('plugins', function(err, files) { - if (err){ - fail("unable to read plugins dir"); - } - - for (let index in files) { - const fileName = files[index]; - const filePath = `plugins/${fileName}`; - if(!filePath.toLowerCase().endsWith('.json')){ - fail("manifests should have .json extension"); - } - - fs.readFile(filePath, 'utf8', (err, fileContent) => { - if (err){ - fail("unable to read manifest file"); + let testMF = (fileName) => { + it("manifest file should be valid", () => { + try { + const filePath = `${MF_DIR}/${fileName}`; + if (!filePath.toLowerCase().endsWith('.json')) { + fail("manifests should have .json extension"); } - - let manifestObj; - try { - - const obj = JSON.parse(fileContent); - const valid = validate(obj); - if (!valid) { - validate.errors.map(e=>e.message+=` in ${filePath}`) - fail(validate.errors); - } - - if(!(/^[a-zA-Z0-9_\-]*$/).test(obj.slug)){ - fail(`slug does not match regex in ${filePath}`); - } + 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(fileName.replace('.json','') !== obj.slug){ - fail(`slug '${obj.slug}' does not match fileName: ${fileName}`); - } + if (!(/^[a-zA-Z0-9_\-]*$/).test(mfObj.slug)) { + fail(`slug does not match regex in ${filePath}`); + } - if(obj.version && !obj.version.startsWith(CUR_VER_PREFIX)){ - fail(`version '${obj.version}' must start with '${CUR_VER_PREFIX}'`); - } + if (fileName.replace('.json', '') !== mfObj.slug) { + fail(`slug '${mfObj.slug}' does not match fileName: ${fileName}`); + } - } catch(err){ - fail(`Invalid JSON: ${filePath}\n${err}`); + if (mfObj.version && !mfObj.version.startsWith(CUR_VER_PREFIX)) { + fail(`version '${mfObj.version}' must start with '${CUR_VER_PREFIX}'`); } - }); - } - // done(); //TODO use promises - }); - }); + + } catch(err){ + fail(`Error while trying to validate manifest: ${fileName}\n${err}`); + } + }); + }; + + fs.readdirSync(MF_DIR).map(testMF); }); From 4b82c598d5bbec72c1a723ad58fd61a3c4e14fa0 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Fri, 22 Dec 2017 14:34:40 -0500 Subject: [PATCH 29/90] improved tests --- package-lock.json | 160 +++++++++++++++++++++++++++++++++++++++ package.json | 2 + spec/README.md | 14 ++-- spec/basic.tests.spec.js | 2 +- spec/manifest.json | 17 ++++- spec/zip.tests.spec.js | 110 +++++++++++++++++++++++++++ 6 files changed, 295 insertions(+), 10 deletions(-) create mode 100644 spec/zip.tests.spec.js diff --git a/package-lock.json b/package-lock.json index e390742a..cbadd441 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,12 @@ "integrity": "sha1-WYc/Nej89sc2HBAjkmHXbhU0i7I=", "dev": true }, + "adm-zip": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz", + "integrity": "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=", + "dev": true + }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", @@ -28,6 +34,15 @@ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", @@ -40,6 +55,12 @@ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -245,6 +266,12 @@ "iconv-lite": "0.4.19" } }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -333,6 +360,16 @@ "path-is-absolute": "1.0.1" } }, + "glob-all": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.1.0.tgz", + "integrity": "sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs=", + "dev": true, + "requires": { + "glob": "7.1.2", + "yargs": "1.2.6" + } + }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", @@ -361,6 +398,19 @@ "har-schema": "2.0.0" } }, + "hash-files": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/hash-files/-/hash-files-1.1.1.tgz", + "integrity": "sha1-X4nGTvIezmnIJhJUt2Wb1A6R2N4=", + "dev": true, + "requires": { + "async": "1.5.2", + "glob-all": "3.1.0", + "opter": "1.1.0", + "read-files": "0.1.0", + "underscore": "1.8.3" + } + }, "hawk": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", @@ -463,6 +513,16 @@ "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", "dev": true }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", @@ -500,6 +560,18 @@ "verror": "1.10.0" } }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", + "dev": true + }, "mail-notifier": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/mail-notifier/-/mail-notifier-0.3.0.tgz", @@ -638,6 +710,12 @@ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "dev": true }, + "object-path": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz", + "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=", + "dev": true + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -647,6 +725,20 @@ "wrappy": "1.0.2" } }, + "opter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/opter/-/opter-1.1.0.tgz", + "integrity": "sha1-JZiuu2Cz8acyKvEJcIb055jISnY=", + "dev": true, + "requires": { + "commander": "2.8.1", + "js-yaml": "3.10.0", + "object-path": "0.11.4", + "underscore": "1.8.3", + "z-schema": "3.19.0", + "z-schema-errors": "0.0.1" + } + }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -677,6 +769,12 @@ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", "dev": true }, + "read-files": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/read-files/-/read-files-0.1.0.tgz", + "integrity": "sha1-YGu3oBd5Utai+YPVmAlglDFNMh4=", + "dev": true + }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -784,6 +882,12 @@ "integrity": "sha1-1PVSp712PK1ywY4tnwjclB8AK+I=", "dev": true }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, "sshpk": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", @@ -854,6 +958,12 @@ "dev": true, "optional": true }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", + "dev": true + }, "utf7": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/utf7/-/utf7-1.0.2.tgz", @@ -875,6 +985,12 @@ "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", "dev": true }, + "validator": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-9.2.0.tgz", + "integrity": "sha512-6Ij4Eo0KM4LkR0d0IegOwluG5453uqT5QyF5SV5Ezvm8/zmkKI/L4eoraafZGlZPC9guLkwKzgypcw8VGWWnGA==", + "dev": true + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -891,6 +1007,50 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "yargs": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz", + "integrity": "sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s=", + "dev": true, + "requires": { + "minimist": "0.1.0" + }, + "dependencies": { + "minimist": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", + "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=", + "dev": true + } + } + }, + "z-schema": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-3.19.0.tgz", + "integrity": "sha512-V94f3ODuluBS4kQLLjNhwoMek0dyIXCsvNu/A17dAyJ6sMhT5KkJQwSn07R0naByLIXJWMDk+ruMfI/3G3hS4Q==", + "dev": true, + "requires": { + "commander": "2.8.1", + "lodash.get": "4.4.2", + "lodash.isequal": "4.5.0", + "validator": "9.2.0" + } + }, + "z-schema-errors": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/z-schema-errors/-/z-schema-errors-0.0.1.tgz", + "integrity": "sha1-4GJwpMpDklcp8ldkeJyp9Gv/D30=", + "dev": true, + "requires": { + "xtend": "4.0.1" + } } } } diff --git a/package.json b/package.json index fd2e3b5c..c4b3fde1 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,9 @@ }, "homepage": "https://github.com/VCVRack/community#readme", "devDependencies": { + "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" diff --git a/spec/README.md b/spec/README.md index 98302cc6..ed22a3ac 100644 --- a/spec/README.md +++ b/spec/README.md @@ -5,15 +5,18 @@ [Jasmine Intro](https://jasmine.github.io/2.8/introduction.html) To run all tests: - ``` npm test ``` -To run only the zip tests for example: +To run one set of tests: +``` +npm test spec/basic.tests.spec.js +``` +To force the zip tests to run for certain manifest files: ``` -./node_modules/.bin/jasmine --filter=zip +TEST_MANIFEST_ZIPS=plugins/JW-Modules.json npm test ``` ## Virus Total @@ -24,9 +27,4 @@ To run only the zip tests for example: [Public API](https://www.virustotal.com/en/documentation/public-api/v2/) -[Node Module](https://github.com/natewatson999/node-virustotal) - - -## Schema Validation -[AJV](https://github.com/epoberezkin/ajv) diff --git a/spec/basic.tests.spec.js b/spec/basic.tests.spec.js index 83fdf6ee..ca754a71 100644 --- a/spec/basic.tests.spec.js +++ b/spec/basic.tests.spec.js @@ -2,7 +2,7 @@ const CUR_VER_PREFIX = '0.5'; const MF_DIR = 'plugins'; const fs = require("fs"); -const Ajv = require('ajv'); +const Ajv = require('ajv'); //https://github.com/epoberezkin/ajv const ajv = new Ajv({allErrors:true}); const validate = ajv.compile(require('./manifest.json')); diff --git a/spec/manifest.json b/spec/manifest.json index c1ef1786..e60088ac 100644 --- a/spec/manifest.json +++ b/spec/manifest.json @@ -1,12 +1,12 @@ { "id": "manifest.json", "type": "object", + "additionalProperties": false, "required": [ "slug", "version" ], "description": "A plugin manifest file for VCV Rack.", - "additionalProperties": false, "properties": { "slug": { "type": "string", @@ -58,6 +58,11 @@ "properties": { "win": { "type": "object", + "additionalProperties": false, + "required": [ + "download", + "sha256" + ], "properties": { "download": { "type": "string", @@ -71,6 +76,11 @@ }, "lin": { "type": "object", + "additionalProperties": false, + "required": [ + "download", + "sha256" + ], "properties": { "download": { "type": "string", @@ -84,6 +94,11 @@ }, "mac": { "type": "object", + "additionalProperties": false, + "required": [ + "download", + "sha256" + ], "properties": { "download": { "type": "string", diff --git a/spec/zip.tests.spec.js b/spec/zip.tests.spec.js new file mode 100644 index 00000000..c613c92e --- /dev/null +++ b/spec/zip.tests.spec.js @@ -0,0 +1,110 @@ +const TEMP_DIR = ".tmp-zip-downloads/"; +const fs = require("fs"); +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 zip files to test."); + process.exit(0); +} + +//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("zips", function() { + + beforeEach(()=>{ + execSync(`mkdir -p ${TEMP_DIR}`) + }); + + afterEach(()=>{ + execSync(`rm ${TEMP_DIR}/*.zip`) + fs.rmdirSync(TEMP_DIR); + }); + + const testZipsInMF = (filePath) => { + it("valid zips in manifest", function(done) { + const mfObj = JSON.parse(fs.readFileSync(filePath, 'utf8')); + 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); + } + } + }); + } + }); + }; + + manifestsToTest.map(testZipsInMF); +}); + +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(); + const invalidEntry = zipEntries.find(ze => !ze.entryName.startsWith(expectedRootDir)); + 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_ZIPS){ + paths = process.env.TEST_MANIFEST_ZIPS; + } else { + paths = execSync('git diff -w --stat --name-only origin/master -- plugins/', {encoding:'utf8'}); + } + return paths.trim().split('\n').filter(s=>s.trim() !== ''); +} + From d46aea814776917d70b71169c0895a0312d2d5f7 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Fri, 22 Dec 2017 14:36:56 -0500 Subject: [PATCH 30/90] manifest descriptions --- spec/manifest.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/spec/manifest.json b/spec/manifest.json index e60088ac..cb208a40 100644 --- a/spec/manifest.json +++ b/spec/manifest.json @@ -10,39 +10,39 @@ "properties": { "slug": { "type": "string", - "description": "" + "description": "SEE README" }, "name": { "type": "string", - "description": "" + "description": "SEE README" }, "author": { "type": "string", - "description": "" + "description": "SEE README" }, "license": { "type": "string", - "description": "" + "description": "SEE README" }, "version": { "type": "string", - "description": "" + "description": "SEE README" }, "homepage": { "type": "string", - "description": "" + "description": "SEE README" }, "donation": { "type": "string", - "description": "" + "description": "SEE README" }, "manual": { "type": "string", - "description": "" + "description": "SEE README" }, "source": { "type": "string", - "description": "" + "description": "SEE README" }, "disabled": { "type": "boolean", @@ -66,11 +66,11 @@ "properties": { "download": { "type": "string", - "description": "" + "description": "SEE README" }, "sha256": { "type": "string", - "description": "" + "description": "SEE README" } } }, @@ -84,11 +84,11 @@ "properties": { "download": { "type": "string", - "description": "" + "description": "SEE README" }, "sha256": { "type": "string", - "description": "" + "description": "SEE README" } } }, @@ -102,11 +102,11 @@ "properties": { "download": { "type": "string", - "description": "" + "description": "SEE README" }, "sha256": { "type": "string", - "description": "" + "description": "SEE README" } } } From 39c781611ff550c366c40ae1a4749c78ccd95458 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Fri, 22 Dec 2017 14:46:04 -0500 Subject: [PATCH 31/90] added slug dir test --- spec/zip.tests.spec.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/spec/zip.tests.spec.js b/spec/zip.tests.spec.js index c613c92e..dde16a1a 100644 --- a/spec/zip.tests.spec.js +++ b/spec/zip.tests.spec.js @@ -1,4 +1,4 @@ -const TEMP_DIR = ".tmp-zip-downloads/"; +const TEMP_DIR = ".tmp-zips/"; const fs = require("fs"); const request = require("request"); const { execSync } = require('child_process'); @@ -33,7 +33,7 @@ describe("zips", function() { }); const testZipsInMF = (filePath) => { - it("valid zips in manifest", function(done) { + it("valid zip files in manifest", function(done) { const mfObj = JSON.parse(fs.readFileSync(filePath, 'utf8')); if(mfObj.downloads){ const urlsChecked = []; @@ -68,7 +68,14 @@ function testOneZip(expectedRootDir, osObj, done) { console.log(`Downloaded ${TEMP_DIR+zipName}`); const zip = new AdmZip(TEMP_DIR+zipName); const zipEntries = zip.getEntries(); - const invalidEntry = zipEntries.find(ze => !ze.entryName.startsWith(expectedRootDir)); + // zipEntries.map(ze=>console.log(ze.toString())); + + const slugDirFound = zipEntries.find(ze => ze.isDirectory && ze.entryName === expectedRootDir+'/'); + if(!slugDirFound){ + fail(`Zip should have one dir named ${expectedRootDir}`); + } + + const invalidEntry = zipEntries.find(ze => !ze.entryName.startsWith(expectedRootDir+'/')); if(invalidEntry){ fail(`Zip entries should all be under a dir named ${expectedRootDir} but this entry was found: ${invalidEntry.entryName}`); } From bbc668b0cfa5f72a92cb2b0b9f0b5166c671bdc8 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Fri, 22 Dec 2017 14:49:17 -0500 Subject: [PATCH 32/90] fixed test --- spec/zip.tests.spec.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/spec/zip.tests.spec.js b/spec/zip.tests.spec.js index dde16a1a..19626450 100644 --- a/spec/zip.tests.spec.js +++ b/spec/zip.tests.spec.js @@ -70,12 +70,14 @@ function testOneZip(expectedRootDir, osObj, done) { const zipEntries = zip.getEntries(); // zipEntries.map(ze=>console.log(ze.toString())); - const slugDirFound = zipEntries.find(ze => ze.isDirectory && ze.entryName === expectedRootDir+'/'); + 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(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}`); } From a6f8f636b0d1f26584dc376f551c2db1031b6233 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Fri, 22 Dec 2017 14:53:26 -0500 Subject: [PATCH 33/90] updated readme --- spec/README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/spec/README.md b/spec/README.md index ed22a3ac..a1464bfb 100644 --- a/spec/README.md +++ b/spec/README.md @@ -14,13 +14,24 @@ To run one set of tests: npm test spec/basic.tests.spec.js ``` +By default the zip tests only run on manifest files which have changed. + To force the zip tests to run for certain manifest files: ``` -TEST_MANIFEST_ZIPS=plugins/JW-Modules.json npm test +TEST_MANIFEST_ZIPS=plugins/JW-Modules.json npm test spec/zip.tests.spec.js ``` +## 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 From c9d1ba71f4fbc60684ce7505c33d607a1895c51e Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Fri, 22 Dec 2017 14:54:22 -0500 Subject: [PATCH 34/90] updated readme --- spec/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/README.md b/spec/README.md index a1464bfb..4da194b6 100644 --- a/spec/README.md +++ b/spec/README.md @@ -14,7 +14,7 @@ To run one set of tests: npm test spec/basic.tests.spec.js ``` -By default the zip tests only run on manifest files which have changed. +By default the **zip** tests only run on manifest files which have changed. To force the zip tests to run for certain manifest files: ``` From 50f9f3682b038be841b9419087ae36c23a36e11a Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Fri, 22 Dec 2017 14:55:53 -0500 Subject: [PATCH 35/90] updated readme --- spec/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spec/README.md b/spec/README.md index 4da194b6..47ce35d0 100644 --- a/spec/README.md +++ b/spec/README.md @@ -4,6 +4,9 @@ [Jasmine Intro](https://jasmine.github.io/2.8/introduction.html) +* the **basic** tests run on every manifest on any change. +* the **zip** tests only run on manifest files which are different than master. + To run all tests: ``` npm test @@ -14,8 +17,6 @@ To run one set of tests: npm test spec/basic.tests.spec.js ``` -By default the **zip** tests only run on manifest files which have changed. - To force the zip tests to run for certain manifest files: ``` TEST_MANIFEST_ZIPS=plugins/JW-Modules.json npm test spec/zip.tests.spec.js From 844991cf14bb1d180736cee83a10afd49ddd5476 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Fri, 22 Dec 2017 16:11:54 -0500 Subject: [PATCH 36/90] merged tests, now we only test changed files --- spec/README.md | 12 +-- spec/basic.tests.spec.js | 47 ---------- ...p.tests.spec.js => manifest.tests.spec.js} | 89 +++++++++++++------ 3 files changed, 66 insertions(+), 82 deletions(-) delete mode 100644 spec/basic.tests.spec.js rename spec/{zip.tests.spec.js => manifest.tests.spec.js} (53%) diff --git a/spec/README.md b/spec/README.md index 47ce35d0..b760f514 100644 --- a/spec/README.md +++ b/spec/README.md @@ -4,22 +4,16 @@ [Jasmine Intro](https://jasmine.github.io/2.8/introduction.html) -* the **basic** tests run on every manifest on any change. -* the **zip** tests only run on manifest files which are different than master. +Tests only run on changed manifests files. To run all tests: ``` npm test ``` -To run one set of tests: +To force the tests to run for certain manifest files: ``` -npm test spec/basic.tests.spec.js -``` - -To force the zip tests to run for certain manifest files: -``` -TEST_MANIFEST_ZIPS=plugins/JW-Modules.json npm test spec/zip.tests.spec.js +TEST_MANIFEST=plugins/JW-Modules.json npm test spec/zip.tests.spec.js ``` ## Schema Validation diff --git a/spec/basic.tests.spec.js b/spec/basic.tests.spec.js deleted file mode 100644 index ca754a71..00000000 --- a/spec/basic.tests.spec.js +++ /dev/null @@ -1,47 +0,0 @@ -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')); - -describe("json", function() { - - let testMF = (fileName) => { - it("manifest file should be valid", () => { - try { - const filePath = `${MF_DIR}/${fileName}`; - 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}`); - } - - 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}'`); - } - - } catch(err){ - fail(`Error while trying to validate manifest: ${fileName}\n${err}`); - } - }); - }; - - fs.readdirSync(MF_DIR).map(testMF); - -}); diff --git a/spec/zip.tests.spec.js b/spec/manifest.tests.spec.js similarity index 53% rename from spec/zip.tests.spec.js rename to spec/manifest.tests.spec.js index 19626450..f3c8ab33 100644 --- a/spec/zip.tests.spec.js +++ b/spec/manifest.tests.spec.js @@ -1,5 +1,12 @@ 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 @@ -7,8 +14,8 @@ const hashFiles = require('hash-files'); //https://github.com/mac-/hash-files const manifestsToTest = getManifestsThatApply(); if(manifestsToTest.length === 0){ - console.log("No manifest zip files to test."); - process.exit(0); + console.log("No manifest files to test."); + return; } //virus total stuff @@ -21,7 +28,7 @@ if(VIRUS_TOTAL_ENABLED){ jasmine.DEFAULT_TIMEOUT_INTERVAL = manifestsToTest.length * 4 * con.getDelay(); } -describe("zips", function() { +describe("test manifests", function() { beforeEach(()=>{ execSync(`mkdir -p ${TEMP_DIR}`) @@ -32,32 +39,62 @@ describe("zips", function() { fs.rmdirSync(TEMP_DIR); }); - const testZipsInMF = (filePath) => { - it("valid zip files in manifest", function(done) { - const mfObj = JSON.parse(fs.readFileSync(filePath, 'utf8')); - 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"); + 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); } - } else { - urlsChecked.push(zipUrl); - lastSha256 = osObj.sha256; - testOneZip(mfObj.slug, osObj, done); } - } - }); + }); + } + + } catch(err){ + fail(`Error while trying to validate manifest: ${fileName}\n${err}`); } }); }; - manifestsToTest.map(testZipsInMF); + manifestsToTest.map(testMF); }); function testOneZip(expectedRootDir, osObj, done) { @@ -109,10 +146,10 @@ function testOneZip(expectedRootDir, osObj, done) { function getManifestsThatApply(){ let paths = ""; - if(process.env.TEST_MANIFEST_ZIPS){ - paths = process.env.TEST_MANIFEST_ZIPS; + if(process.env.TEST_MANIFEST){ + paths = process.env.TEST_MANIFEST; } else { - paths = execSync('git diff -w --stat --name-only origin/master -- plugins/', {encoding:'utf8'}); + paths = execSync(`git diff -w --stat --name-only origin/master -- ${MF_DIR}/`, {encoding:'utf8'}); } return paths.trim().split('\n').filter(s=>s.trim() !== ''); } From 11c9275eb5f6311049c7395b06216f281d0ef646 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Fri, 22 Dec 2017 16:12:32 -0500 Subject: [PATCH 37/90] fixed readme --- spec/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/README.md b/spec/README.md index b760f514..7800878e 100644 --- a/spec/README.md +++ b/spec/README.md @@ -13,7 +13,7 @@ npm test To force the tests to run for certain manifest files: ``` -TEST_MANIFEST=plugins/JW-Modules.json npm test spec/zip.tests.spec.js +TEST_MANIFEST=plugins/JW-Modules.json npm test ``` ## Schema Validation From 08ec1ed581e896c0ef0d34f295f71d8236b6a8d9 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Fri, 22 Dec 2017 16:17:51 -0500 Subject: [PATCH 38/90] testing failure --- plugins/JW-Modules.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/JW-Modules.json b/plugins/JW-Modules.json index 4938c4e7..86dc21c5 100644 --- a/plugins/JW-Modules.json +++ b/plugins/JW-Modules.json @@ -7,7 +7,7 @@ "manual": "https://github.com/jeremywen/JW-Modules/blob/master/README.md", "source": "https://github.com/jeremywen/JW-Modules", "downloads": { - "win": { + "THIS_SHOULD_FAIL": { "download": "https://github.com/jeremywen/JW-Modules/releases/download/v0.5.7/JW-Modules-0.5.7.zip", "sha256": "327a11fed6f2299e87d799a58c0e5b2c026649c1c863367e8a54a116ac258c06" }, @@ -20,4 +20,4 @@ "sha256": "327a11fed6f2299e87d799a58c0e5b2c026649c1c863367e8a54a116ac258c06" } } -} \ No newline at end of file +} From 6344838494cfd8edf7e61913d97f707a3453b5f6 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Fri, 22 Dec 2017 16:18:01 -0500 Subject: [PATCH 39/90] Update JW-Modules.json --- plugins/JW-Modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/JW-Modules.json b/plugins/JW-Modules.json index 86dc21c5..7b9ad51e 100644 --- a/plugins/JW-Modules.json +++ b/plugins/JW-Modules.json @@ -7,7 +7,7 @@ "manual": "https://github.com/jeremywen/JW-Modules/blob/master/README.md", "source": "https://github.com/jeremywen/JW-Modules", "downloads": { - "THIS_SHOULD_FAIL": { + "win": { "download": "https://github.com/jeremywen/JW-Modules/releases/download/v0.5.7/JW-Modules-0.5.7.zip", "sha256": "327a11fed6f2299e87d799a58c0e5b2c026649c1c863367e8a54a116ac258c06" }, From 8d687d729f8960ebd050bf279d661617ffed0ae2 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Sat, 23 Dec 2017 12:36:44 -0500 Subject: [PATCH 40/90] Removed source --- plugins/VultModules.json | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/VultModules.json b/plugins/VultModules.json index 48787223..e3b5fcff 100644 --- a/plugins/VultModules.json +++ b/plugins/VultModules.json @@ -5,7 +5,6 @@ "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.3/Vult-0.5.3-win.zip", From bce89a3bb4b8dadb936a4f90e26c1f977bbc0a71 Mon Sep 17 00:00:00 2001 From: Jeremy Wentworth Date: Sat, 23 Dec 2017 13:38:11 -0500 Subject: [PATCH 41/90] fixed error msg in test --- spec/manifest.tests.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/manifest.tests.spec.js b/spec/manifest.tests.spec.js index f3c8ab33..6cd04e73 100644 --- a/spec/manifest.tests.spec.js +++ b/spec/manifest.tests.spec.js @@ -89,7 +89,7 @@ describe("test manifests", function() { } } catch(err){ - fail(`Error while trying to validate manifest: ${fileName}\n${err}`); + fail(`Error while trying to validate manifest: ${filePath}\n${err}`); } }); }; From cd0ea8a691599a442670452ba7e8370b0be530b1 Mon Sep 17 00:00:00 2001 From: Autodafe Date: Sat, 23 Dec 2017 20:29:32 +0100 Subject: [PATCH 42/90] updated slug and version --- plugins/AutodafeModulePack.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/AutodafeModulePack.json b/plugins/AutodafeModulePack.json index 5cca3e95..2af129d6 100644 --- a/plugins/AutodafeModulePack.json +++ b/plugins/AutodafeModulePack.json @@ -1,23 +1,23 @@ { - "slug": "AutodafeModulePack", + "slug": "Autodafe", "name": "Autodafe Module Pack", "author": "Autodafe", - "version": "0.5.0", + "version": "0.5.1", "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" + "sha256": "3a81299e9d6fe3a620f2cf570181d98f531ee0333a8ca3df8592cf420a0ba94b" }, "lin": { "download": "https://www.autodafe.net/VCVRack/Autodafe-Modules-Pack-VCV-Rack.zip", - "sha256": "2d8f53c5ae8eaf70e0188d188aee432c1f26e4042f272c9a76d84bb10e9c5477" + "sha256": "3a81299e9d6fe3a620f2cf570181d98f531ee0333a8ca3df8592cf420a0ba94b" }, "mac": { "download": "https://www.autodafe.net/VCVRack/Autodafe-Modules-Pack-VCV-Rack.zip", - "sha256": "2d8f53c5ae8eaf70e0188d188aee432c1f26e4042f272c9a76d84bb10e9c5477" + "sha256": "3a81299e9d6fe3a620f2cf570181d98f531ee0333a8ca3df8592cf420a0ba94b" } } } From 008866194f6be0cac578ed7644edd41869e2c076 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Sat, 23 Dec 2017 14:33:04 -0500 Subject: [PATCH 43/90] Rename Autodafe --- plugins/{AutodafeModulePack.json => Autodafe.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/{AutodafeModulePack.json => Autodafe.json} (100%) diff --git a/plugins/AutodafeModulePack.json b/plugins/Autodafe.json similarity index 100% rename from plugins/AutodafeModulePack.json rename to plugins/Autodafe.json From b8e2187aed966211e9f290dca479fbde1f8d4a37 Mon Sep 17 00:00:00 2001 From: Autodafe Date: Sat, 23 Dec 2017 20:59:48 +0100 Subject: [PATCH 44/90] updated slug and version (#84) --- plugins/AutodafeDrumKit.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/AutodafeDrumKit.json b/plugins/AutodafeDrumKit.json index ae221923..ef22c509 100644 --- a/plugins/AutodafeDrumKit.json +++ b/plugins/AutodafeDrumKit.json @@ -1,23 +1,23 @@ { - "slug": "AutodafeDrumKit", + "slug": "Autodafe - Drum Kit", "name": "Autodafe Drum Kit", "author": "Autodafe", - "version": "0.5.0", + "version": "0.5.1", "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" + "sha256": "9bcf29c85665f9e9ab3bf976bf12b47b1adc5a485cbcbf8bd0dd0ff2be2e1895" }, "lin": { "download": "https://www.autodafe.net/VCVRack/Autodafe-Drum-Kit-VCV-Rack.zip", - "sha256": "939015f7124da305183d5aeeef18d32828e3fe4f4da81c9b1fd6105b1f61ec18" + "sha256": "9bcf29c85665f9e9ab3bf976bf12b47b1adc5a485cbcbf8bd0dd0ff2be2e1895" }, "mac": { "download": "https://www.autodafe.net/VCVRack/Autodafe-Drum-Kit-VCV-Rack.zip", - "sha256": "939015f7124da305183d5aeeef18d32828e3fe4f4da81c9b1fd6105b1f61ec18" + "sha256": "9bcf29c85665f9e9ab3bf976bf12b47b1adc5a485cbcbf8bd0dd0ff2be2e1895" } } } From fab647db6fb8026147bf79226db56ef1b3ddd848 Mon Sep 17 00:00:00 2001 From: Autodafe Date: Sat, 23 Dec 2017 21:02:46 +0100 Subject: [PATCH 45/90] updated slug and version (#85) updated slug and version - couldn't generate SHA with Virustotal.com... ??? can you ??? --- plugins/AutodafeREDsFREE.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/AutodafeREDsFREE.json b/plugins/AutodafeREDsFREE.json index 4cac1232..f50697ca 100644 --- a/plugins/AutodafeREDsFREE.json +++ b/plugins/AutodafeREDsFREE.json @@ -1,8 +1,8 @@ { - "slug": "AutodafeREDsFREE", + "slug": "Autodafe - REDs FREE", "name": "Autodafe - REDs FREE", "author": "Autodafe", - "version": "0.5.0", + "version": "0.5.1", "homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules.html", "donation": "https://www.paypal.me/autodafe", "downloads": { @@ -19,4 +19,4 @@ "sha256": "14f87483ed7b67cc45b52db21f99665b4b9dbc044351e404a37201ffb440c47f" } } -} \ No newline at end of file +} From 178a5c3f927440b5664027e2c4f7f3801d00059b Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Sat, 23 Dec 2017 15:03:08 -0500 Subject: [PATCH 46/90] Fix SHA256 --- plugins/AutodafeREDsFREE.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/AutodafeREDsFREE.json b/plugins/AutodafeREDsFREE.json index f50697ca..358e3103 100644 --- a/plugins/AutodafeREDsFREE.json +++ b/plugins/AutodafeREDsFREE.json @@ -8,15 +8,15 @@ "downloads": { "win": { "download": "https://www.autodafe.net/VCVRack/Autodafe-REDs-FREE.zip", - "sha256": "14f87483ed7b67cc45b52db21f99665b4b9dbc044351e404a37201ffb440c47f" + "sha256": "bc60a3e28e27dcb867b37c4cd352b5f6970dcf8efbdd00d4628488f69b7d2611" }, "lin": { "download": "https://www.autodafe.net/VCVRack/Autodafe-REDs-FREE.zip", - "sha256": "14f87483ed7b67cc45b52db21f99665b4b9dbc044351e404a37201ffb440c47f" + "sha256": "bc60a3e28e27dcb867b37c4cd352b5f6970dcf8efbdd00d4628488f69b7d2611" }, "mac": { "download": "https://www.autodafe.net/VCVRack/Autodafe-REDs-FREE.zip", - "sha256": "14f87483ed7b67cc45b52db21f99665b4b9dbc044351e404a37201ffb440c47f" + "sha256": "bc60a3e28e27dcb867b37c4cd352b5f6970dcf8efbdd00d4628488f69b7d2611" } } } From d5e6bf5d33eb0b74628e8d06cd8e6ccfecc3c74f Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Sat, 23 Dec 2017 15:32:11 -0500 Subject: [PATCH 47/90] Bump Fundamental version --- plugins/Fundamental.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Fundamental.json b/plugins/Fundamental.json index c3477189..b713adb7 100644 --- a/plugins/Fundamental.json +++ b/plugins/Fundamental.json @@ -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" } \ No newline at end of file From bb92a91b2a1d7b0aa040224539223f707621a31b Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Sat, 23 Dec 2017 16:28:15 -0500 Subject: [PATCH 48/90] Disable broken plugins, rename Autodafe REDs FREE --- ...todafeREDsFREE.json => Autodafe - REDs FREE.json} | 0 plugins/PvC.json | 12 +----------- plugins/mental.json | 3 ++- 3 files changed, 3 insertions(+), 12 deletions(-) rename plugins/{AutodafeREDsFREE.json => Autodafe - REDs FREE.json} (100%) diff --git a/plugins/AutodafeREDsFREE.json b/plugins/Autodafe - REDs FREE.json similarity index 100% rename from plugins/AutodafeREDsFREE.json rename to plugins/Autodafe - REDs FREE.json diff --git a/plugins/PvC.json b/plugins/PvC.json index 8ba59574..f0e46636 100644 --- a/plugins/PvC.json +++ b/plugins/PvC.json @@ -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" } \ No newline at end of file diff --git a/plugins/mental.json b/plugins/mental.json index 668a5e0c..b637181a 100644 --- a/plugins/mental.json +++ b/plugins/mental.json @@ -18,5 +18,6 @@ "download": "https://github.com/Strum/Strums_Mental_VCV_Modules/releases/download/v0.5b/Strums_Mental_VCV_Modules_05b_linux.zip", "sha256": "4782481e26fd3d50a900eaaeb2a0ce173c0ff8fe14f7aa82b3669fe6dd454c44" } - } + }, + "disabled": true } \ No newline at end of file From 3698a58959b1141feacecce719ada2c84a9c99a6 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Sat, 23 Dec 2017 16:29:55 -0500 Subject: [PATCH 49/90] Reenable mental but remove download links --- plugins/mental.json | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/plugins/mental.json b/plugins/mental.json index b637181a..376c9c08 100644 --- a/plugins/mental.json +++ b/plugins/mental.json @@ -4,20 +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" - } - }, - "disabled": true + "manual": "https://github.com/Strum/Strums_Mental_VCV_Modules/wiki/Mental-Modules-WIKI/" } \ No newline at end of file From 28e448bb2208cf720847d93d31a59fcaf909e7a5 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Sat, 23 Dec 2017 16:43:29 -0500 Subject: [PATCH 50/90] Remove downloads for RODENTMODULES --- plugins/RODENTMODULES.json | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/plugins/RODENTMODULES.json b/plugins/RODENTMODULES.json index 8842b266..2a8b6a8d 100644 --- a/plugins/RODENTMODULES.json +++ b/plugins/RODENTMODULES.json @@ -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" } \ No newline at end of file From a7f1a2d205f0869272a947a0ca381c8be2256bd2 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Sat, 23 Dec 2017 16:48:46 -0500 Subject: [PATCH 51/90] Remove downloads from Autodafe manifests --- plugins/Autodafe - REDs FREE.json | 16 +--------------- plugins/Autodafe.json | 16 +--------------- plugins/AutodafeDrumKit.json | 16 +--------------- 3 files changed, 3 insertions(+), 45 deletions(-) diff --git a/plugins/Autodafe - REDs FREE.json b/plugins/Autodafe - REDs FREE.json index 358e3103..929d02c6 100644 --- a/plugins/Autodafe - REDs FREE.json +++ b/plugins/Autodafe - REDs FREE.json @@ -4,19 +4,5 @@ "author": "Autodafe", "version": "0.5.1", "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": "bc60a3e28e27dcb867b37c4cd352b5f6970dcf8efbdd00d4628488f69b7d2611" - }, - "lin": { - "download": "https://www.autodafe.net/VCVRack/Autodafe-REDs-FREE.zip", - "sha256": "bc60a3e28e27dcb867b37c4cd352b5f6970dcf8efbdd00d4628488f69b7d2611" - }, - "mac": { - "download": "https://www.autodafe.net/VCVRack/Autodafe-REDs-FREE.zip", - "sha256": "bc60a3e28e27dcb867b37c4cd352b5f6970dcf8efbdd00d4628488f69b7d2611" - } - } + "donation": "https://www.paypal.me/autodafe" } diff --git a/plugins/Autodafe.json b/plugins/Autodafe.json index 2af129d6..87030e60 100644 --- a/plugins/Autodafe.json +++ b/plugins/Autodafe.json @@ -5,19 +5,5 @@ "version": "0.5.1", "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": "3a81299e9d6fe3a620f2cf570181d98f531ee0333a8ca3df8592cf420a0ba94b" - }, - "lin": { - "download": "https://www.autodafe.net/VCVRack/Autodafe-Modules-Pack-VCV-Rack.zip", - "sha256": "3a81299e9d6fe3a620f2cf570181d98f531ee0333a8ca3df8592cf420a0ba94b" - }, - "mac": { - "download": "https://www.autodafe.net/VCVRack/Autodafe-Modules-Pack-VCV-Rack.zip", - "sha256": "3a81299e9d6fe3a620f2cf570181d98f531ee0333a8ca3df8592cf420a0ba94b" - } - } + "donation": "https://www.paypal.me/autodafe" } diff --git a/plugins/AutodafeDrumKit.json b/plugins/AutodafeDrumKit.json index ef22c509..0c96e38d 100644 --- a/plugins/AutodafeDrumKit.json +++ b/plugins/AutodafeDrumKit.json @@ -5,19 +5,5 @@ "version": "0.5.1", "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": "9bcf29c85665f9e9ab3bf976bf12b47b1adc5a485cbcbf8bd0dd0ff2be2e1895" - }, - "lin": { - "download": "https://www.autodafe.net/VCVRack/Autodafe-Drum-Kit-VCV-Rack.zip", - "sha256": "9bcf29c85665f9e9ab3bf976bf12b47b1adc5a485cbcbf8bd0dd0ff2be2e1895" - }, - "mac": { - "download": "https://www.autodafe.net/VCVRack/Autodafe-Drum-Kit-VCV-Rack.zip", - "sha256": "9bcf29c85665f9e9ab3bf976bf12b47b1adc5a485cbcbf8bd0dd0ff2be2e1895" - } - } + "donation": "https://www.paypal.me/autodafe" } From 775d9681c9cbacf8732678950b06ec676e8dce6b Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Sat, 23 Dec 2017 16:51:43 -0500 Subject: [PATCH 52/90] Reenable dekstop, remove downloads --- plugins/dekstop.json | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/plugins/dekstop.json b/plugins/dekstop.json index 1cbd57c0..610fe5f4 100644 --- a/plugins/dekstop.json +++ b/plugins/dekstop.json @@ -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" } \ No newline at end of file From bc03eb515d4b4e30ec9a6da8c505e440c5e7e969 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Sat, 23 Dec 2017 17:49:48 -0500 Subject: [PATCH 53/90] Fixing broken versions --- plugins/Bidoo.json | 2 +- plugins/Bogaudio.json | 2 +- plugins/HetrickCV.json | 2 +- plugins/{Simplemodulepack.json => IO-Simple.json} | 2 +- plugins/KarateSnoopy.json | 2 +- plugins/NonLinearInstruments.json | 2 +- plugins/Qwelk.json | 2 +- plugins/VultModules.json | 1 + plugins/moDllz.json | 2 +- plugins/mscHack.json | 2 +- plugins/s-ol.json | 2 +- plugins/trowaSoft.json | 2 +- 12 files changed, 12 insertions(+), 11 deletions(-) rename plugins/{Simplemodulepack.json => IO-Simple.json} (95%) diff --git a/plugins/Bidoo.json b/plugins/Bidoo.json index f5fa6717..83744cb1 100644 --- a/plugins/Bidoo.json +++ b/plugins/Bidoo.json @@ -2,7 +2,7 @@ "slug": "Bidoo", "name": "bid°°", "author": "sebastien-bouffier", - "version": "0.5.9", + "version": "0.5.8", "license": "BSD 3-clause", "source": "https://github.com/sebastien-bouffier/Bidoo", "manual": "https://github.com/sebastien-bouffier/Bidoo/wiki", diff --git a/plugins/Bogaudio.json b/plugins/Bogaudio.json index ab1932b5..e3e1c15f 100644 --- a/plugins/Bogaudio.json +++ b/plugins/Bogaudio.json @@ -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", diff --git a/plugins/HetrickCV.json b/plugins/HetrickCV.json index 56d969e9..3032b60a 100644 --- a/plugins/HetrickCV.json +++ b/plugins/HetrickCV.json @@ -4,7 +4,7 @@ "author": "Michael Hetrick", "homepage": "https://github.com/mhetrick/hetrickcv", "donation": "https://paypal.me/MHetrick", - "version": "0.5.3", + "version": "", "source": "https://github.com/mhetrick/hetrickcv", "manual": "https://github.com/mhetrick/hetrickcv/blob/master/README.md", "downloads": { diff --git a/plugins/Simplemodulepack.json b/plugins/IO-Simple.json similarity index 95% rename from plugins/Simplemodulepack.json rename to plugins/IO-Simple.json index 366139ef..27973693 100644 --- a/plugins/Simplemodulepack.json +++ b/plugins/IO-Simple.json @@ -1,5 +1,5 @@ { - "slug": "Simplemodulepack", + "slug": "IO-Simple", "name": "Simple module pack", "author": "IohannRabeson", "version": "0.5.0", diff --git a/plugins/KarateSnoopy.json b/plugins/KarateSnoopy.json index 7e8166e3..4b800b46 100644 --- a/plugins/KarateSnoopy.json +++ b/plugins/KarateSnoopy.json @@ -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", diff --git a/plugins/NonLinearInstruments.json b/plugins/NonLinearInstruments.json index 8fd17ecb..9d31eb6c 100644 --- a/plugins/NonLinearInstruments.json +++ b/plugins/NonLinearInstruments.json @@ -3,7 +3,7 @@ "name": "Non Linear Instruments", "author": "NonLinearInstruments", "license": "BSD 3-clause", - "version": "0.5.0", + "version": "", "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", diff --git a/plugins/Qwelk.json b/plugins/Qwelk.json index 5147e0d9..cafdde41 100644 --- a/plugins/Qwelk.json +++ b/plugins/Qwelk.json @@ -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": { diff --git a/plugins/VultModules.json b/plugins/VultModules.json index e3b5fcff..f88e7e90 100644 --- a/plugins/VultModules.json +++ b/plugins/VultModules.json @@ -2,6 +2,7 @@ "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", diff --git a/plugins/moDllz.json b/plugins/moDllz.json index 95e1e9cb..dd8c043a 100644 --- a/plugins/moDllz.json +++ b/plugins/moDllz.json @@ -3,7 +3,7 @@ "name": "moDllz", "author": "Pablo DeLaLoza", "license": "BSD 3-clause", - "version": "0.5.1", + "version": "", "manual": "https://github.com/dllmusic/VCV_moDllz/blob/master/README.md", "source": "https://github.com/dllmusic/VCV_moDllz", "downloads": { diff --git a/plugins/mscHack.json b/plugins/mscHack.json index 8c07a236..52c5f86c 100644 --- a/plugins/mscHack.json +++ b/plugins/mscHack.json @@ -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": { diff --git a/plugins/s-ol.json b/plugins/s-ol.json index 4d2bcd43..ea03002f 100644 --- a/plugins/s-ol.json +++ b/plugins/s-ol.json @@ -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": { diff --git a/plugins/trowaSoft.json b/plugins/trowaSoft.json index 0110624c..a81d8267 100644 --- a/plugins/trowaSoft.json +++ b/plugins/trowaSoft.json @@ -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": { From fe0d41005f8e3a1693f8a1dc3b90bf98d69d2f64 Mon Sep 17 00:00:00 2001 From: Phal-anx <31989694+Phal-anx@users.noreply.github.com> Date: Sun, 24 Dec 2017 04:37:20 +0100 Subject: [PATCH 54/90] Update Bidoo.json --- plugins/Bidoo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Bidoo.json b/plugins/Bidoo.json index 83744cb1..f5fa6717 100644 --- a/plugins/Bidoo.json +++ b/plugins/Bidoo.json @@ -2,7 +2,7 @@ "slug": "Bidoo", "name": "bid°°", "author": "sebastien-bouffier", - "version": "0.5.8", + "version": "0.5.9", "license": "BSD 3-clause", "source": "https://github.com/sebastien-bouffier/Bidoo", "manual": "https://github.com/sebastien-bouffier/Bidoo/wiki", From 1848139315a69bfbcaae7ac28e56c2882fc606c7 Mon Sep 17 00:00:00 2001 From: Phal-anx <31989694+Phal-anx@users.noreply.github.com> Date: Sun, 24 Dec 2017 04:43:40 +0100 Subject: [PATCH 55/90] Update Bidoo.json --- plugins/Bidoo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Bidoo.json b/plugins/Bidoo.json index f5fa6717..a918f822 100644 --- a/plugins/Bidoo.json +++ b/plugins/Bidoo.json @@ -10,7 +10,7 @@ "downloads": { "win": { "download": "https://github.com/sebastien-bouffier/Bidoo/files/1580630/Bidoo-0.5.9-win.zip", - "sha256": "ff1c15c3095e40bf275a05725574db248568bf3ecc6fe3dc409add54bcab1d38" + "sha256": "e77cb9883dd8851bfb515e4416e13b1d9b568d3ed016cb509706d059226251b7" } } } From e33a941aa2f99889f3117be324e0f1155447f73e Mon Sep 17 00:00:00 2001 From: Phal-anx <31989694+Phal-anx@users.noreply.github.com> Date: Sun, 24 Dec 2017 04:49:35 +0100 Subject: [PATCH 56/90] Update Bidoo.json --- plugins/Bidoo.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/Bidoo.json b/plugins/Bidoo.json index a918f822..f9f4e54e 100644 --- a/plugins/Bidoo.json +++ b/plugins/Bidoo.json @@ -4,9 +4,9 @@ "author": "sebastien-bouffier", "version": "0.5.9", "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/1580630/Bidoo-0.5.9-win.zip", From 5ed1c222fb5b5ace1b124ba19ca45b877ce71343 Mon Sep 17 00:00:00 2001 From: Autodafe Date: Sun, 24 Dec 2017 07:49:01 +0100 Subject: [PATCH 57/90] updated download links download links are now separate ZIPs and made using "make dist" --- plugins/Autodafe.json | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/plugins/Autodafe.json b/plugins/Autodafe.json index 87030e60..a7a3b3f6 100644 --- a/plugins/Autodafe.json +++ b/plugins/Autodafe.json @@ -5,5 +5,20 @@ "version": "0.5.1", "source": "https://github.com/antoniograzioli/Autodafe", "homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules.html", - "donation": "https://www.paypal.me/autodafe" + "donation": "https://www.paypal.me/autodafe", + "downloads": { + "win": { + "download": "www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-win.zip", + "sha256": "e75e476dab756075468b31e82f0b7a0538ce66f606f62217c244de6050b71baa" + }, + "lin": { + "download": "www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-lin.zip", + "sha256": "2810d3fbeb643f993d27416ed32f10904ceebaafe3a9e75255334b756c94fa52" + }, + "mac": { + "download": "www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-mac.zip", + "sha256": "e79e7ec9142073a7e560cde07c0db6c9ef6c26f35c147f08ed46f8f43d001418" + } + } + } From 4b7d13dcc75738e6e934846ea2443325daa8e550 Mon Sep 17 00:00:00 2001 From: Autodafe Date: Sun, 24 Dec 2017 07:51:41 +0100 Subject: [PATCH 58/90] http added --- plugins/Autodafe.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/Autodafe.json b/plugins/Autodafe.json index a7a3b3f6..4a86c986 100644 --- a/plugins/Autodafe.json +++ b/plugins/Autodafe.json @@ -8,15 +8,15 @@ "donation": "https://www.paypal.me/autodafe", "downloads": { "win": { - "download": "www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-win.zip", + "download": "http://www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-win.zip", "sha256": "e75e476dab756075468b31e82f0b7a0538ce66f606f62217c244de6050b71baa" }, "lin": { - "download": "www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-lin.zip", + "download": "http://www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-lin.zip", "sha256": "2810d3fbeb643f993d27416ed32f10904ceebaafe3a9e75255334b756c94fa52" }, "mac": { - "download": "www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-mac.zip", + "download": "http://www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-mac.zip", "sha256": "e79e7ec9142073a7e560cde07c0db6c9ef6c26f35c147f08ed46f8f43d001418" } } From bdd0962007220db2e79d71287ef0a6a75300b9c8 Mon Sep 17 00:00:00 2001 From: Freddy <34798768+AScustomWorks@users.noreply.github.com> Date: Sun, 24 Dec 2017 00:52:41 -0600 Subject: [PATCH 59/90] Create AS.json The slug for my modules, I hope I got everything right! --- plugins/AS.json | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/AS.json diff --git a/plugins/AS.json b/plugins/AS.json new file mode 100644 index 00000000..4fa0bef5 --- /dev/null +++ b/plugins/AS.json @@ -0,0 +1,25 @@ +{ + "slug": "AS", + "name": "AS", + "author": "Alfredo Santamaria", + "license": "CC0 1.0 Universal", + "version": "0.5.0", + "homepage": "https://www.hakken.com.mx/", + "donation": "paypal.me/frederius", + "manual": "", + "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": "008f4edf0f034045bacabcc9f7549814aed5c3c4e0c664519749519a356f3061" + }, + "lin": { + "download": "", + "sha256": "" + }, + "mac": { + "download": "https://github.com/AScustomWorks/AS/releases/download/0.5.0/AS-0.5.0-mac.zip", + "sha256": "45d871d19d884ebfb085a511c8bb8e3ad8cafdcab34a9e5fcc122a551c26f759" + } + } +} From 1dff4d8a7cf375ea72d671de5550e4e018136bd5 Mon Sep 17 00:00:00 2001 From: Autodafe Date: Sun, 24 Dec 2017 07:54:21 +0100 Subject: [PATCH 60/90] updated download links download links are now separate ZIPs and made using "make dist" --- plugins/AutodafeDrumKit.json | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/AutodafeDrumKit.json b/plugins/AutodafeDrumKit.json index 0c96e38d..215cb395 100644 --- a/plugins/AutodafeDrumKit.json +++ b/plugins/AutodafeDrumKit.json @@ -5,5 +5,19 @@ "version": "0.5.1", "source": "https://github.com/antoniograzioli/Autodafe-Drums", "homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules.html", - "donation": "https://www.paypal.me/autodafe" + "donation": "https://www.paypal.me/autodafe", + "downloads": { + "win": { + "download": "http://www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-win.zip", + "sha256": "e75e476dab756075468b31e82f0b7a0538ce66f606f62217c244de6050b71baa" + }, + "lin": { + "download": "http://www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-lin.zip", + "sha256": "2810d3fbeb643f993d27416ed32f10904ceebaafe3a9e75255334b756c94fa52" + }, + "mac": { + "download": "http://www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-mac.zip", + "sha256": "e79e7ec9142073a7e560cde07c0db6c9ef6c26f35c147f08ed46f8f43d001418" + } + } } From 0c42fc2d2402aa7a2ab405d9c542799874866214 Mon Sep 17 00:00:00 2001 From: Autodafe Date: Sun, 24 Dec 2017 07:58:18 +0100 Subject: [PATCH 61/90] updated download links download links are now separate ZIPs and made using "make dist" --- plugins/Autodafe - REDs FREE.json | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/Autodafe - REDs FREE.json b/plugins/Autodafe - REDs FREE.json index 929d02c6..d74d3ac0 100644 --- a/plugins/Autodafe - REDs FREE.json +++ b/plugins/Autodafe - REDs FREE.json @@ -4,5 +4,19 @@ "author": "Autodafe", "version": "0.5.1", "homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules.html", - "donation": "https://www.paypal.me/autodafe" + "donation": "https://www.paypal.me/autodafe", + "downloads": { + "win": { + "download": "http://www.autodafe.net/VCVRack/Autodafe - REDs FREE-0.5.1-win.zip", + "sha256": "f6216a33e401783db79244b2a24209360ed96c760cf15638658a2e73ef84f34e" + }, + "lin": { + "download": "http://www.autodafe.net/VCVRack/Autodafe - REDs FREE-0.5.1-lin.zip", + "sha256": "9a18db57a893833c0cbe54f19de31d126c3a85ce60527cbfa12ab870a52fd3fe" + }, + "mac": { + "download": "http://www.autodafe.net/VCVRack/Autodafe - REDs FREE-0.5.1-mac.zip", + "sha256": "7cabcd9e32dbc11b7fcd1fe4bf71eda1d1a3f863630352ce2b137a4960e788b1" + } + } } From 9719044d2c7ee06469f1245f070f1221a32c04ee Mon Sep 17 00:00:00 2001 From: Autodafe Date: Sun, 24 Dec 2017 12:32:37 +0100 Subject: [PATCH 62/90] fixed wrong links I had to fix a couple of download links, I messed them up---sorry --- plugins/Autodafe.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/Autodafe.json b/plugins/Autodafe.json index 4a86c986..321bfbd4 100644 --- a/plugins/Autodafe.json +++ b/plugins/Autodafe.json @@ -8,16 +8,16 @@ "donation": "https://www.paypal.me/autodafe", "downloads": { "win": { - "download": "http://www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-win.zip", - "sha256": "e75e476dab756075468b31e82f0b7a0538ce66f606f62217c244de6050b71baa" + "download": "http://www.autodafe.net/VCVRack/Autodafe-0.5.1-win.zip", + "sha256": "93d75bd954299fa2f0fad6c7945b7d1182cc8efd5a4276446a8b283f90484e2b" }, "lin": { - "download": "http://www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-lin.zip", - "sha256": "2810d3fbeb643f993d27416ed32f10904ceebaafe3a9e75255334b756c94fa52" + "download": "http://www.autodafe.net/VCVRack/Autodafe-0.5.1-lin.zip", + "sha256": "01cc8f37db5d4c572d739520b375847e5f18132b0cedfbae3b3474669e50e77c" }, "mac": { - "download": "http://www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-mac.zip", - "sha256": "e79e7ec9142073a7e560cde07c0db6c9ef6c26f35c147f08ed46f8f43d001418" + "download": "http://www.autodafe.net/VCVRack/Autodafe-0.5.1-mac.zip", + "sha256": "a071ca35661ecd125d2955c1501137188338304400b1a515d4bc34f018a344fc" } } From 943fe6751e6cb27cade879a12e59cd87a0ce1e5d Mon Sep 17 00:00:00 2001 From: Autodafe Date: Sun, 24 Dec 2017 13:18:13 +0100 Subject: [PATCH 63/90] updated removed spaces form slug and download urls --- plugins/Autodafe - REDs FREE.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/Autodafe - REDs FREE.json b/plugins/Autodafe - REDs FREE.json index d74d3ac0..a4b24cc3 100644 --- a/plugins/Autodafe - REDs FREE.json +++ b/plugins/Autodafe - REDs FREE.json @@ -1,5 +1,5 @@ { - "slug": "Autodafe - REDs FREE", + "slug": "Autodafe-REDsFREE", "name": "Autodafe - REDs FREE", "author": "Autodafe", "version": "0.5.1", @@ -7,16 +7,16 @@ "donation": "https://www.paypal.me/autodafe", "downloads": { "win": { - "download": "http://www.autodafe.net/VCVRack/Autodafe - REDs FREE-0.5.1-win.zip", - "sha256": "f6216a33e401783db79244b2a24209360ed96c760cf15638658a2e73ef84f34e" + "download": "http://www.autodafe.net/VCVRack/Autodafe-REDsFREE-0.5.1-win.zip", + "sha256": "d4963bed85aee17f18daa8aafd10aaab575151e0ad6dc6dfa816f2d1d4d9e059" }, "lin": { - "download": "http://www.autodafe.net/VCVRack/Autodafe - REDs FREE-0.5.1-lin.zip", - "sha256": "9a18db57a893833c0cbe54f19de31d126c3a85ce60527cbfa12ab870a52fd3fe" + "download": "http://www.autodafe.net/VCVRack/Autodafe-REDsFREE-0.5.1-lin.zip", + "sha256": "d9e76dd810da41a53456747a799dfcad6ab5805031b62838e3368b8e03d784f7" }, "mac": { - "download": "http://www.autodafe.net/VCVRack/Autodafe - REDs FREE-0.5.1-mac.zip", - "sha256": "7cabcd9e32dbc11b7fcd1fe4bf71eda1d1a3f863630352ce2b137a4960e788b1" + "download": "http://www.autodafe.net/VCVRack/Autodafe-REDsFREE-0.5.1-mac.zip", + "sha256": "57ae6f9e7b4844a0a6715948a7a46e8c38fa3823cdcfa1e45f6660a23cb1225f" } } } From 38ab6ce991865a04d39b3460e6de80344680af4a Mon Sep 17 00:00:00 2001 From: Phal-anx <31989694+Phal-anx@users.noreply.github.com> Date: Sun, 24 Dec 2017 13:18:21 +0100 Subject: [PATCH 64/90] Rename AutodafeDrumKit.json to Autodafe-DrumKit.json --- plugins/{AutodafeDrumKit.json => Autodafe-DrumKit.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/{AutodafeDrumKit.json => Autodafe-DrumKit.json} (100%) diff --git a/plugins/AutodafeDrumKit.json b/plugins/Autodafe-DrumKit.json similarity index 100% rename from plugins/AutodafeDrumKit.json rename to plugins/Autodafe-DrumKit.json From dd57e3290b598c0b41deed844caa2fce7adf121b Mon Sep 17 00:00:00 2001 From: Phal-anx <31989694+Phal-anx@users.noreply.github.com> Date: Sun, 24 Dec 2017 13:21:24 +0100 Subject: [PATCH 65/90] Update and rename Autodafe - REDs FREE.json to Autodafe-REDs FREE.json --- plugins/{Autodafe - REDs FREE.json => Autodafe-REDs FREE.json} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename plugins/{Autodafe - REDs FREE.json => Autodafe-REDs FREE.json} (95%) diff --git a/plugins/Autodafe - REDs FREE.json b/plugins/Autodafe-REDs FREE.json similarity index 95% rename from plugins/Autodafe - REDs FREE.json rename to plugins/Autodafe-REDs FREE.json index d74d3ac0..64f7fff9 100644 --- a/plugins/Autodafe - REDs FREE.json +++ b/plugins/Autodafe-REDs FREE.json @@ -1,5 +1,5 @@ { - "slug": "Autodafe - REDs FREE", + "slug": "Autodafe-REDs FREE", "name": "Autodafe - REDs FREE", "author": "Autodafe", "version": "0.5.1", From 0abfb3d9470ef8b5ff24b85f39b3c929eec5057a Mon Sep 17 00:00:00 2001 From: Phal-anx <31989694+Phal-anx@users.noreply.github.com> Date: Sun, 24 Dec 2017 13:21:58 +0100 Subject: [PATCH 66/90] Rename Autodafe-DrumKit.json to Autodafe - DrumKit.json --- plugins/{Autodafe-DrumKit.json => Autodafe - DrumKit.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/{Autodafe-DrumKit.json => Autodafe - DrumKit.json} (100%) diff --git a/plugins/Autodafe-DrumKit.json b/plugins/Autodafe - DrumKit.json similarity index 100% rename from plugins/Autodafe-DrumKit.json rename to plugins/Autodafe - DrumKit.json From bf3653c345b8c9511caca2b52181497bbea5e4a2 Mon Sep 17 00:00:00 2001 From: Phal-anx <31989694+Phal-anx@users.noreply.github.com> Date: Sun, 24 Dec 2017 13:22:08 +0100 Subject: [PATCH 67/90] Update and rename Autodafe-REDs FREE.json to Autodafe - REDs FREE.json --- plugins/{Autodafe-REDs FREE.json => Autodafe - REDs FREE.json} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename plugins/{Autodafe-REDs FREE.json => Autodafe - REDs FREE.json} (95%) diff --git a/plugins/Autodafe-REDs FREE.json b/plugins/Autodafe - REDs FREE.json similarity index 95% rename from plugins/Autodafe-REDs FREE.json rename to plugins/Autodafe - REDs FREE.json index 64f7fff9..d74d3ac0 100644 --- a/plugins/Autodafe-REDs FREE.json +++ b/plugins/Autodafe - REDs FREE.json @@ -1,5 +1,5 @@ { - "slug": "Autodafe-REDs FREE", + "slug": "Autodafe - REDs FREE", "name": "Autodafe - REDs FREE", "author": "Autodafe", "version": "0.5.1", From 396771f97a26cec5d15c5a4c3986d786d1f0319a Mon Sep 17 00:00:00 2001 From: Phal-anx <31989694+Phal-anx@users.noreply.github.com> Date: Sun, 24 Dec 2017 13:26:08 +0100 Subject: [PATCH 68/90] Rename Autodafe - DrumKit.json to Autodafe-DrumKit.json --- plugins/{Autodafe - DrumKit.json => Autodafe-DrumKit.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/{Autodafe - DrumKit.json => Autodafe-DrumKit.json} (100%) diff --git a/plugins/Autodafe - DrumKit.json b/plugins/Autodafe-DrumKit.json similarity index 100% rename from plugins/Autodafe - DrumKit.json rename to plugins/Autodafe-DrumKit.json From b80e40baeb952552a24e46aa2923642252ad41d4 Mon Sep 17 00:00:00 2001 From: Phal-anx <31989694+Phal-anx@users.noreply.github.com> Date: Sun, 24 Dec 2017 13:32:29 +0100 Subject: [PATCH 69/90] Rename Autodafe-DrumKit.json to Autodafe - Drum Kit.json --- plugins/{Autodafe-DrumKit.json => Autodafe - Drum Kit.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/{Autodafe-DrumKit.json => Autodafe - Drum Kit.json} (100%) diff --git a/plugins/Autodafe-DrumKit.json b/plugins/Autodafe - Drum Kit.json similarity index 100% rename from plugins/Autodafe-DrumKit.json rename to plugins/Autodafe - Drum Kit.json From 045dc1927c10fe8dd01f9ae0246aa3d50c044158 Mon Sep 17 00:00:00 2001 From: Phal-anx <31989694+Phal-anx@users.noreply.github.com> Date: Sun, 24 Dec 2017 13:33:41 +0100 Subject: [PATCH 70/90] Delete Autodafe - Drum Kit.json --- plugins/Autodafe - Drum Kit.json | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 plugins/Autodafe - Drum Kit.json diff --git a/plugins/Autodafe - Drum Kit.json b/plugins/Autodafe - Drum Kit.json deleted file mode 100644 index 215cb395..00000000 --- a/plugins/Autodafe - Drum Kit.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "slug": "Autodafe - Drum Kit", - "name": "Autodafe Drum Kit", - "author": "Autodafe", - "version": "0.5.1", - "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": "http://www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-win.zip", - "sha256": "e75e476dab756075468b31e82f0b7a0538ce66f606f62217c244de6050b71baa" - }, - "lin": { - "download": "http://www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-lin.zip", - "sha256": "2810d3fbeb643f993d27416ed32f10904ceebaafe3a9e75255334b756c94fa52" - }, - "mac": { - "download": "http://www.autodafe.net/VCVRack/Autodafe - Drum Kit-0.5.1-mac.zip", - "sha256": "e79e7ec9142073a7e560cde07c0db6c9ef6c26f35c147f08ed46f8f43d001418" - } - } -} From 44c0972f2e6f8aab54ef129c6115b8ecd27b521a Mon Sep 17 00:00:00 2001 From: Phal-anx <31989694+Phal-anx@users.noreply.github.com> Date: Sun, 24 Dec 2017 13:35:30 +0100 Subject: [PATCH 71/90] Create Autodafe-DrumKit.json --- plugins/Autodafe-DrumKit.json | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 plugins/Autodafe-DrumKit.json diff --git a/plugins/Autodafe-DrumKit.json b/plugins/Autodafe-DrumKit.json new file mode 100644 index 00000000..4a4ad7ce --- /dev/null +++ b/plugins/Autodafe-DrumKit.json @@ -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" + } + } +} From 36e34b73b2128274d38eeffbe0d642363ea2fb77 Mon Sep 17 00:00:00 2001 From: Autodafe Date: Sun, 24 Dec 2017 13:37:38 +0100 Subject: [PATCH 72/90] created link for my REDs full paid collection. --- plugins/Autodafe-REDs | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/Autodafe-REDs diff --git a/plugins/Autodafe-REDs b/plugins/Autodafe-REDs new file mode 100644 index 00000000..2d5edac5 --- /dev/null +++ b/plugins/Autodafe-REDs @@ -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" + +} From 5d9251bcb771c9b16b4b7e7297d48928e0ded7c1 Mon Sep 17 00:00:00 2001 From: Phal-anx <31989694+Phal-anx@users.noreply.github.com> Date: Sun, 24 Dec 2017 13:53:41 +0100 Subject: [PATCH 73/90] Update Autodafe - REDs FREE.json --- plugins/Autodafe - REDs FREE.json | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/Autodafe - REDs FREE.json b/plugins/Autodafe - REDs FREE.json index a4b24cc3..d2fb2772 100644 --- a/plugins/Autodafe - REDs FREE.json +++ b/plugins/Autodafe - REDs FREE.json @@ -4,6 +4,7 @@ "author": "Autodafe", "version": "0.5.1", "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": { From 95fb169b601c7d75d36191f4a852d5fc3ed94cf4 Mon Sep 17 00:00:00 2001 From: Phal-anx <31989694+Phal-anx@users.noreply.github.com> Date: Sun, 24 Dec 2017 13:53:55 +0100 Subject: [PATCH 74/90] Update Autodafe - REDs FREE.json --- plugins/Autodafe - REDs FREE.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Autodafe - REDs FREE.json b/plugins/Autodafe - REDs FREE.json index d2fb2772..97030075 100644 --- a/plugins/Autodafe - REDs FREE.json +++ b/plugins/Autodafe - REDs FREE.json @@ -4,7 +4,7 @@ "author": "Autodafe", "version": "0.5.1", "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" + "manual": "https://www.autodafe.net/media/com_eshop/attachments/autodafe-reds-collection-manual.pdf", "donation": "https://www.paypal.me/autodafe", "downloads": { "win": { From a7d66803292d118731183367f6772274272b2656 Mon Sep 17 00:00:00 2001 From: Phal-anx <31989694+Phal-anx@users.noreply.github.com> Date: Sun, 24 Dec 2017 13:57:35 +0100 Subject: [PATCH 75/90] Update Autodafe.json --- plugins/Autodafe.json | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/Autodafe.json b/plugins/Autodafe.json index 321bfbd4..79e851a4 100644 --- a/plugins/Autodafe.json +++ b/plugins/Autodafe.json @@ -5,6 +5,7 @@ "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": { From f126bd7b80f5988b27938adfcd4f657b8e9c1820 Mon Sep 17 00:00:00 2001 From: NLNRi <34134965+NonLinearInstruments@users.noreply.github.com> Date: Sun, 24 Dec 2017 17:30:22 +0100 Subject: [PATCH 76/90] Update NonLinearInstruments.json with all its "," ;) --- plugins/NonLinearInstruments.json | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/plugins/NonLinearInstruments.json b/plugins/NonLinearInstruments.json index 9d31eb6c..74de2484 100644 --- a/plugins/NonLinearInstruments.json +++ b/plugins/NonLinearInstruments.json @@ -3,18 +3,22 @@ "name": "Non Linear Instruments", "author": "NonLinearInstruments", "license": "BSD 3-clause", - "version": "", + "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" } } -} \ No newline at end of file +} From 1d29bdbec98fc90f9590c34d71fbff33c49f8849 Mon Sep 17 00:00:00 2001 From: Freddy <34798768+AScustomWorks@users.noreply.github.com> Date: Sun, 24 Dec 2017 12:11:15 -0600 Subject: [PATCH 77/90] Update AS.json --- plugins/AS.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/AS.json b/plugins/AS.json index 4fa0bef5..b95289c7 100644 --- a/plugins/AS.json +++ b/plugins/AS.json @@ -4,7 +4,7 @@ "author": "Alfredo Santamaria", "license": "CC0 1.0 Universal", "version": "0.5.0", - "homepage": "https://www.hakken.com.mx/", + "homepage": "https://github.com/AScustomWorks/AS", "donation": "paypal.me/frederius", "manual": "", "source": "https://github.com/AScustomWorks/AS", @@ -14,8 +14,8 @@ "sha256": "008f4edf0f034045bacabcc9f7549814aed5c3c4e0c664519749519a356f3061" }, "lin": { - "download": "", - "sha256": "" + "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", From 2568bc27052553be2f58ffb40ccf9b25f0290e6e Mon Sep 17 00:00:00 2001 From: dllmusic <34119160+dllmusic@users.noreply.github.com> Date: Sun, 24 Dec 2017 13:20:33 -0500 Subject: [PATCH 78/90] New version + Corrected makefile Version 0.5.2 Corrected makefile to include version on binaries --- plugins/moDllz.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/moDllz.json b/plugins/moDllz.json index dd8c043a..9a5239ea 100644 --- a/plugins/moDllz.json +++ b/plugins/moDllz.json @@ -3,17 +3,17 @@ "name": "moDllz", "author": "Pablo DeLaLoza", "license": "BSD 3-clause", - "version": "", + "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" + "download": "https://github.com/dllmusic/VCV_moDllz/blob/master/dist/moDLLz-0.5.2-win.zip?raw=true", + "sha256": "2a905c791133a5544366596606a58bfe11b41177384c8918ae69789074ec05c8" }, "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-mac.zip?raw=true", + "sha256": "2fca26a0a4ae8753b75db79de2140381fc9f66b1075d6cd8ae091da079fe8b06" } } } From 63c033246a0b4b27e495c161d8bb66d29bb263d6 Mon Sep 17 00:00:00 2001 From: Freddy <34798768+AScustomWorks@users.noreply.github.com> Date: Sun, 24 Dec 2017 12:46:26 -0600 Subject: [PATCH 79/90] Update AS.json --- plugins/AS.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/AS.json b/plugins/AS.json index b95289c7..0ce86e0d 100644 --- a/plugins/AS.json +++ b/plugins/AS.json @@ -4,18 +4,18 @@ "author": "Alfredo Santamaria", "license": "CC0 1.0 Universal", "version": "0.5.0", - "homepage": "https://github.com/AScustomWorks/AS", - "donation": "paypal.me/frederius", - "manual": "", + "homepage": "https://www.hakken.com.mx/", + "donation": "https://www.paypal.me/", + "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": "008f4edf0f034045bacabcc9f7549814aed5c3c4e0c664519749519a356f3061" + "sha256": "5239a5a8ad7f2e2aa314c3125668d213c59c1bd2b655c7f57b86b048b04e8422" }, "lin": { "download": "https://github.com/AScustomWorks/AS/releases/download/0.5.0/AS-0.5.0-lin.zip", - "sha256": "db6c77f01b5527e2e1a513b5153fac880676e1a2cc02a1ee04ded36b9e954b65" + "sha256": "" }, "mac": { "download": "https://github.com/AScustomWorks/AS/releases/download/0.5.0/AS-0.5.0-mac.zip", From a00c74410aebdab8cc616d3c2928eec9a82b1d98 Mon Sep 17 00:00:00 2001 From: Freddy <34798768+AScustomWorks@users.noreply.github.com> Date: Sun, 24 Dec 2017 12:49:12 -0600 Subject: [PATCH 80/90] Update AS.json --- plugins/AS.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/AS.json b/plugins/AS.json index 0ce86e0d..1bdc644a 100644 --- a/plugins/AS.json +++ b/plugins/AS.json @@ -4,8 +4,8 @@ "author": "Alfredo Santamaria", "license": "CC0 1.0 Universal", "version": "0.5.0", - "homepage": "https://www.hakken.com.mx/", - "donation": "https://www.paypal.me/", + "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": { From 494c87d71dcd06f245354737d1ab4e66edd95275 Mon Sep 17 00:00:00 2001 From: Freddy <34798768+AScustomWorks@users.noreply.github.com> Date: Sun, 24 Dec 2017 12:51:35 -0600 Subject: [PATCH 81/90] Update AS.json --- plugins/AS.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/AS.json b/plugins/AS.json index 1bdc644a..5ab19805 100644 --- a/plugins/AS.json +++ b/plugins/AS.json @@ -15,7 +15,7 @@ }, "lin": { "download": "https://github.com/AScustomWorks/AS/releases/download/0.5.0/AS-0.5.0-lin.zip", - "sha256": "" + "sha256": "db6c77f01b5527e2e1a513b5153fac880676e1a2cc02a1ee04ded36b9e954b65" }, "mac": { "download": "https://github.com/AScustomWorks/AS/releases/download/0.5.0/AS-0.5.0-mac.zip", From 617b58a85a96fbfbacd211f9382814277f512df5 Mon Sep 17 00:00:00 2001 From: Freddy <34798768+AScustomWorks@users.noreply.github.com> Date: Sun, 24 Dec 2017 13:13:56 -0600 Subject: [PATCH 82/90] Update AS.json --- plugins/AS.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/AS.json b/plugins/AS.json index 5ab19805..ca3fdb25 100644 --- a/plugins/AS.json +++ b/plugins/AS.json @@ -11,7 +11,7 @@ "downloads": { "win": { "download": "https://github.com/AScustomWorks/AS/releases/download/0.5.0/AS-0.5.0-win.zip", - "sha256": "5239a5a8ad7f2e2aa314c3125668d213c59c1bd2b655c7f57b86b048b04e8422" + "sha256": "7478ccd81b32d332abb99e3f259bb5cb9fd00a196f4598cd8bd8dec4ac7f6780" }, "lin": { "download": "https://github.com/AScustomWorks/AS/releases/download/0.5.0/AS-0.5.0-lin.zip", From 082cb7fe09fecfbd0f16a85f823fc0d3ff627890 Mon Sep 17 00:00:00 2001 From: dllmusic <34119160+dllmusic@users.noreply.github.com> Date: Sun, 24 Dec 2017 14:15:16 -0500 Subject: [PATCH 83/90] Update moDllz.json --- plugins/moDllz.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/moDllz.json b/plugins/moDllz.json index 9a5239ea..86554612 100644 --- a/plugins/moDllz.json +++ b/plugins/moDllz.json @@ -1,19 +1,19 @@ { "slug": "moDllz", "name": "moDllz", - "author": "Pablo DeLaLoza", + "author": "Pablo Delaloza", "license": "BSD 3-clause", "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/dist/moDLLz-0.5.2-win.zip?raw=true", - "sha256": "2a905c791133a5544366596606a58bfe11b41177384c8918ae69789074ec05c8" + "download": "", + "sha256": "" }, "mac": { - "download": "https://github.com/dllmusic/VCV_moDllz/blob/master/dist/moDLLz-0.5.2-mac.zip?raw=true", - "sha256": "2fca26a0a4ae8753b75db79de2140381fc9f66b1075d6cd8ae091da079fe8b06" + "download": "https://github.com/dllmusic/VCV_moDllz/blob/master/dist/moDllz-0.5.2-mac.zip?raw=true", + "sha256": "664064185007b09cf7394a48e071ce0254f4e296c23abf945f1c0daf86af6c62" } } } From d413aebd7be3a87ce528bff059fa8d9b68d732d1 Mon Sep 17 00:00:00 2001 From: Michael Hetrick Date: Sun, 24 Dec 2017 20:43:10 -0500 Subject: [PATCH 84/90] Update HetrickCV.json (#102) --- plugins/HetrickCV.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/HetrickCV.json b/plugins/HetrickCV.json index 3032b60a..e71e3659 100644 --- a/plugins/HetrickCV.json +++ b/plugins/HetrickCV.json @@ -4,17 +4,17 @@ "author": "Michael Hetrick", "homepage": "https://github.com/mhetrick/hetrickcv", "donation": "https://paypal.me/MHetrick", - "version": "", + "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": "4a5280c9091b69a34f8d2cc3178a702cac79c89a0a1e751dbbebbd0a7f41375c" }, "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": "fedf5738d6603ab02ec3c3912e085f82e7a6e4c956ce7058673d067a7b49ec8f" } } } From 30eee271eb9fb9853589bd6e8af398c3fdea6c0f Mon Sep 17 00:00:00 2001 From: Michael Hetrick Date: Sun, 24 Dec 2017 23:18:14 -0600 Subject: [PATCH 85/90] Patch 4 (#103) * Update HetrickCV.json Fix for Windows 0.5.4 builds * Update HetrickCV.json --- plugins/HetrickCV.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/HetrickCV.json b/plugins/HetrickCV.json index e71e3659..fc84ca12 100644 --- a/plugins/HetrickCV.json +++ b/plugins/HetrickCV.json @@ -10,11 +10,11 @@ "downloads": { "win": { "download": "https://github.com/mhetrick/hetrickcv/releases/download/0.5.4/HetrickCV-0.5.4-win.zip", - "sha256": "4a5280c9091b69a34f8d2cc3178a702cac79c89a0a1e751dbbebbd0a7f41375c" + "sha256": "6d5db0b532a5252e866d2cd12a955c8fcf78e22cb127c70ebacd418e8b1689da" }, "mac": { "download": "https://github.com/mhetrick/hetrickcv/releases/download/0.5.4/HetrickCV-0.5.4-mac.zip", - "sha256": "fedf5738d6603ab02ec3c3912e085f82e7a6e4c956ce7058673d067a7b49ec8f" + "sha256": "5e8ef433ee03c30fa0a46699c60a2293868b458a0e60aeae7964091e6f8c4342" } } } From 608c00e593fa497305768c9f3f210f51f6480c65 Mon Sep 17 00:00:00 2001 From: leopard86 Date: Mon, 25 Dec 2017 12:42:11 +0100 Subject: [PATCH 86/90] Update LOGinstruments.json version 0.5.5 --- plugins/LOGinstruments.json | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/plugins/LOGinstruments.json b/plugins/LOGinstruments.json index b2a5a77c..00ce9c74 100644 --- a/plugins/LOGinstruments.json +++ b/plugins/LOGinstruments.json @@ -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" } } -} \ No newline at end of file +} From 34fba26cedaa0841713166907b3768636749122f Mon Sep 17 00:00:00 2001 From: Autodafe Date: Mon, 25 Dec 2017 15:16:40 +0100 Subject: [PATCH 87/90] removed spaces from filename (#105) --- plugins/{Autodafe - REDs FREE.json => Autodafe-REDsFREE.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/{Autodafe - REDs FREE.json => Autodafe-REDsFREE.json} (100%) diff --git a/plugins/Autodafe - REDs FREE.json b/plugins/Autodafe-REDsFREE.json similarity index 100% rename from plugins/Autodafe - REDs FREE.json rename to plugins/Autodafe-REDsFREE.json From e9a3f4094cbaa142f44f671f631c2347316ce33d Mon Sep 17 00:00:00 2001 From: Antonio Tuzzi Date: Mon, 25 Dec 2017 18:47:27 +0100 Subject: [PATCH 88/90] update 0.5.10 (#106) dear VCV friends, here an update tested on Virus Total https://www.virustotal.com/#/file/af5be01fd555cdab79d467b14f58f8aa13c7d32500dbc393064194279169c306/detection --- plugins/NYSTHI.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/NYSTHI.json b/plugins/NYSTHI.json index 8874a2af..e512d319 100644 --- a/plugins/NYSTHI.json +++ b/plugins/NYSTHI.json @@ -1,21 +1,21 @@ { "slug": "NYSTHI", "name": "NYSTHI", - "version": "0.5.9", + "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.9/nysthi.zip", - "sha256": "cdba68f3c5fa59af37ea0f4eb271c9ade583c2dea35fa3a0a56288fec142dca3" + "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.9/nysthi.zip", - "sha256": "cdba68f3c5fa59af37ea0f4eb271c9ade583c2dea35fa3a0a56288fec142dca3" + "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.9/nysthi.zip", - "sha256": "cdba68f3c5fa59af37ea0f4eb271c9ade583c2dea35fa3a0a56288fec142dca3" + "download": "https://github.com/nysthi/nysthi/releases/download/v0.5.10/nysthi.zip", + "sha256": "af5be01fd555cdab79d467b14f58f8aa13c7d32500dbc393064194279169c306" } } } From 92c0555911134744500496bf8df0c33fdc7b1695 Mon Sep 17 00:00:00 2001 From: Autodafe Date: Mon, 25 Dec 2017 19:39:17 +0100 Subject: [PATCH 89/90] updated to version 0.5.2 (#109) added Drum Sampler module --- plugins/Autodafe-REDsFREE.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/Autodafe-REDsFREE.json b/plugins/Autodafe-REDsFREE.json index 97030075..1d23a0fa 100644 --- a/plugins/Autodafe-REDsFREE.json +++ b/plugins/Autodafe-REDsFREE.json @@ -2,22 +2,22 @@ "slug": "Autodafe-REDsFREE", "name": "Autodafe - REDs FREE", "author": "Autodafe", - "version": "0.5.1", + "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.1-win.zip", - "sha256": "d4963bed85aee17f18daa8aafd10aaab575151e0ad6dc6dfa816f2d1d4d9e059" + "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.1-lin.zip", - "sha256": "d9e76dd810da41a53456747a799dfcad6ab5805031b62838e3368b8e03d784f7" + "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.1-mac.zip", - "sha256": "57ae6f9e7b4844a0a6715948a7a46e8c38fa3823cdcfa1e45f6660a23cb1225f" + "download": "http://www.autodafe.net/VCVRack/Autodafe-REDsFREE-0.5.2-mac.zip", + "sha256": "29b118c81b18a15c11052f40aadd28f694ebf3a0ef834c76dd7eb705a275062d" } } } From 65cecf3f0e052b455e90cc134ece88636f0c629a Mon Sep 17 00:00:00 2001 From: dllmusic <34119160+dllmusic@users.noreply.github.com> Date: Tue, 26 Dec 2017 09:31:23 -0500 Subject: [PATCH 90/90] Added 0.5.2 win download (#113) --- plugins/moDllz.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/moDllz.json b/plugins/moDllz.json index 86554612..61855333 100644 --- a/plugins/moDllz.json +++ b/plugins/moDllz.json @@ -8,8 +8,8 @@ "source": "https://github.com/dllmusic/VCV_moDllz", "downloads": { "win": { - "download": "", - "sha256": "" + "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",