Browse Source

Merge branch 'master' into master

pull/112/head
Andrew Belt GitHub 7 years ago
parent
commit
f0552ce9b8
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
43 changed files with 1618 additions and 201 deletions
  1. +6
    -0
      .travis.yml
  2. +1056
    -0
      package-lock.json
  3. +7
    -2
      package.json
  4. +25
    -0
      plugins/AS.json
  5. +4
    -2
      plugins/AnimatedCircuits.json
  6. +21
    -0
      plugins/Autodafe-DrumKit.json
  7. +9
    -0
      plugins/Autodafe-REDs
  8. +23
    -0
      plugins/Autodafe-REDsFREE.json
  9. +25
    -0
      plugins/Autodafe.json
  10. +0
    -23
      plugins/AutodafeDrumKit.json
  11. +0
    -23
      plugins/AutodafeModulePack.json
  12. +0
    -22
      plugins/AutodafeREDsFREE.json
  13. +2
    -2
      plugins/Bidoo.json
  14. +1
    -1
      plugins/Bogaudio.json
  15. +1
    -1
      plugins/Fundamental.json
  16. +1
    -2
      plugins/Grayscale.json
  17. +5
    -5
      plugins/HetrickCV.json
  18. +1
    -1
      plugins/IO-Simple.json
  19. +1
    -1
      plugins/JW-Modules.json
  20. +1
    -1
      plugins/KarateSnoopy.json
  21. +8
    -7
      plugins/LOGinstruments.json
  22. +8
    -8
      plugins/NYSTHI.json
  23. +10
    -6
      plugins/NonLinearInstruments.json
  24. +1
    -11
      plugins/PvC.json
  25. +1
    -1
      plugins/Qwelk.json
  26. +1
    -7
      plugins/RODENTMODULES.json
  27. +25
    -0
      plugins/StellareModular-Link.json
  28. +12
    -10
      plugins/StellareModular.json
  29. +1
    -0
      plugins/Valley Free.json
  30. +8
    -8
      plugins/VultModules.json
  31. +9
    -7
      plugins/cf.json
  32. +3
    -3
      plugins/dBiz.json
  33. +1
    -16
      plugins/dekstop.json
  34. +10
    -5
      plugins/luckyxxl.json
  35. +1
    -15
      plugins/mental.json
  36. +8
    -8
      plugins/moDllz.json
  37. +1
    -1
      plugins/mscHack.json
  38. +1
    -1
      plugins/s-ol.json
  39. +1
    -1
      plugins/trowaSoft.json
  40. +36
    -0
      spec/README.md
  41. +116
    -0
      spec/manifest.json
  42. +156
    -0
      spec/manifest.tests.spec.js
  43. +11
    -0
      spec/support/jasmine.json

+ 6
- 0
.travis.yml View File

@@ -1 +1,7 @@
language: node_js
node_js:
"9.3.0"

before_install:
- git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
- git fetch

+ 1056
- 0
package-lock.json
File diff suppressed because it is too large
View File


+ 7
- 2
package.json View File

@@ -3,7 +3,7 @@
"version": "1.0.0",
"description": "*Manifest repository for VCV Rack plugins*",
"scripts": {
"test": "echo \"Error: no tests yet\" && exit 0"
"test": "jasmine"
},
"repository": {
"type": "git",
@@ -14,6 +14,11 @@
},
"homepage": "https://github.com/VCVRack/community#readme",
"devDependencies": {
"node-virustotal": "^2.4.2"
"adm-zip": "^0.4.7",
"ajv": "^5.5.2",
"hash-files": "^1.1.1",
"jasmine": "^2.8.0",
"node-virustotal": "^2.4.2",
"request": "^2.83.0"
}
}

+ 25
- 0
plugins/AS.json View File

@@ -0,0 +1,25 @@
{
"slug": "AS",
"name": "AS",
"author": "Alfredo Santamaria",
"license": "CC0 1.0 Universal",
"version": "0.5.0",
"homepage": "https://github.com/AScustomWorks/AS",
"donation": "https://www.paypal.me/frederius/",
"manual": "https://github.com/AScustomWorks/AS/blob/master/README.md",
"source": "https://github.com/AScustomWorks/AS",
"downloads": {
"win": {
"download": "https://github.com/AScustomWorks/AS/releases/download/0.5.0/AS-0.5.0-win.zip",
"sha256": "7478ccd81b32d332abb99e3f259bb5cb9fd00a196f4598cd8bd8dec4ac7f6780"
},
"lin": {
"download": "https://github.com/AScustomWorks/AS/releases/download/0.5.0/AS-0.5.0-lin.zip",
"sha256": "db6c77f01b5527e2e1a513b5153fac880676e1a2cc02a1ee04ded36b9e954b65"
},
"mac": {
"download": "https://github.com/AScustomWorks/AS/releases/download/0.5.0/AS-0.5.0-mac.zip",
"sha256": "45d871d19d884ebfb085a511c8bb8e3ad8cafdcab34a9e5fcc122a551c26f759"
}
}
}

+ 4
- 2
plugins/AnimatedCircuits.json View File

@@ -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"
}
}

+ 21
- 0
plugins/Autodafe-DrumKit.json View File

@@ -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"
}
}
}

+ 9
- 0
plugins/Autodafe-REDs View File

@@ -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"
}

+ 23
- 0
plugins/Autodafe-REDsFREE.json View File

@@ -0,0 +1,23 @@
{
"slug": "Autodafe-REDsFREE",
"name": "Autodafe - REDs FREE",
"author": "Autodafe",
"version": "0.5.2",
"homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules.html",
"manual": "https://www.autodafe.net/media/com_eshop/attachments/autodafe-reds-collection-manual.pdf",
"donation": "https://www.paypal.me/autodafe",
"downloads": {
"win": {
"download": "http://www.autodafe.net/VCVRack/Autodafe-REDsFREE-0.5.2-win.zip",
"sha256": "ce34d273085ded0d90d083b080ee1360817bab78b88d0a89165a77615eaf576c"
},
"lin": {
"download": "http://www.autodafe.net/VCVRack/Autodafe-REDsFREE-0.5.2-lin.zip",
"sha256": "3af4575b5f364824f826090b1b3e14f444448e109d180f6517ad2255b5701249"
},
"mac": {
"download": "http://www.autodafe.net/VCVRack/Autodafe-REDsFREE-0.5.2-mac.zip",
"sha256": "29b118c81b18a15c11052f40aadd28f694ebf3a0ef834c76dd7eb705a275062d"
}
}
}

+ 25
- 0
plugins/Autodafe.json View File

@@ -0,0 +1,25 @@
{
"slug": "Autodafe",
"name": "Autodafe Module Pack",
"author": "Autodafe",
"version": "0.5.1",
"source": "https://github.com/antoniograzioli/Autodafe",
"homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules.html",
"manual": "https://www.autodafe.net/media/com_eshop/attachments/autodafe-reds-collection-manual.pdf",
"donation": "https://www.paypal.me/autodafe",
"downloads": {
"win": {
"download": "http://www.autodafe.net/VCVRack/Autodafe-0.5.1-win.zip",
"sha256": "93d75bd954299fa2f0fad6c7945b7d1182cc8efd5a4276446a8b283f90484e2b"
},
"lin": {
"download": "http://www.autodafe.net/VCVRack/Autodafe-0.5.1-lin.zip",
"sha256": "01cc8f37db5d4c572d739520b375847e5f18132b0cedfbae3b3474669e50e77c"
},
"mac": {
"download": "http://www.autodafe.net/VCVRack/Autodafe-0.5.1-mac.zip",
"sha256": "a071ca35661ecd125d2955c1501137188338304400b1a515d4bc34f018a344fc"
}
}
}

+ 0
- 23
plugins/AutodafeDrumKit.json View File

@@ -1,23 +0,0 @@
{
"slug": "AutodafeDrumKit",
"name": "Autodafe Drum Kit",
"author": "Autodafe",
"version": "0.5.0",
"source": "https://github.com/antoniograzioli/Autodafe-Drums",
"homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules.html",
"donation": "https://www.paypal.me/autodafe",
"downloads": {
"win": {
"download": "https://www.autodafe.net/VCVRack/Autodafe-Drum-Kit-VCV-Rack.zip",
"sha256": "939015f7124da305183d5aeeef18d32828e3fe4f4da81c9b1fd6105b1f61ec18"
},
"lin": {
"download": "https://www.autodafe.net/VCVRack/Autodafe-Drum-Kit-VCV-Rack.zip",
"sha256": "939015f7124da305183d5aeeef18d32828e3fe4f4da81c9b1fd6105b1f61ec18"
},
"mac": {
"download": "https://www.autodafe.net/VCVRack/Autodafe-Drum-Kit-VCV-Rack.zip",
"sha256": "939015f7124da305183d5aeeef18d32828e3fe4f4da81c9b1fd6105b1f61ec18"
}
}
}

+ 0
- 23
plugins/AutodafeModulePack.json View File

@@ -1,23 +0,0 @@
{
"slug": "AutodafeModulePack",
"name": "Autodafe Module Pack",
"author": "Autodafe",
"version": "0.5.0",
"source": "https://github.com/antoniograzioli/Autodafe",
"homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules.html",
"donation": "https://www.paypal.me/autodafe",
"downloads": {
"win": {
"download": "https://www.autodafe.net/VCVRack/Autodafe-Modules-Pack-VCV-Rack.zip",
"sha256": "2d8f53c5ae8eaf70e0188d188aee432c1f26e4042f272c9a76d84bb10e9c5477"
},
"lin": {
"download": "https://www.autodafe.net/VCVRack/Autodafe-Modules-Pack-VCV-Rack.zip",
"sha256": "2d8f53c5ae8eaf70e0188d188aee432c1f26e4042f272c9a76d84bb10e9c5477"
},
"mac": {
"download": "https://www.autodafe.net/VCVRack/Autodafe-Modules-Pack-VCV-Rack.zip",
"sha256": "2d8f53c5ae8eaf70e0188d188aee432c1f26e4042f272c9a76d84bb10e9c5477"
}
}
}

+ 0
- 22
plugins/AutodafeREDsFREE.json View File

@@ -1,22 +0,0 @@
{
"slug": "AutodafeREDsFREE",
"name": "Autodafe - REDs FREE",
"author": "Autodafe",
"version": "0.5.0",
"homepage": "https://www.autodafe.net/virtual-instruments/vcv-rack-modules.html",
"donation": "https://www.paypal.me/autodafe",
"downloads": {
"win": {
"download": "https://www.autodafe.net/VCVRack/Autodafe-REDs-FREE.zip",
"sha256": "14f87483ed7b67cc45b52db21f99665b4b9dbc044351e404a37201ffb440c47f"
},
"lin": {
"download": "https://www.autodafe.net/VCVRack/Autodafe-REDs-FREE.zip",
"sha256": "14f87483ed7b67cc45b52db21f99665b4b9dbc044351e404a37201ffb440c47f"
},
"mac": {
"download": "https://www.autodafe.net/VCVRack/Autodafe-REDs-FREE.zip",
"sha256": "14f87483ed7b67cc45b52db21f99665b4b9dbc044351e404a37201ffb440c47f"
}
}
}

+ 2
- 2
plugins/Bidoo.json View File

@@ -4,9 +4,9 @@
"author": "sebastien-bouffier",
"version": "0.5.10",
"license": "BSD 3-clause",
"source": "https://github.com/sebastien-bouffier/Bidoo",
"manual": "https://github.com/sebastien-bouffier/Bidoo/wiki",
"donation": "https://paypal.me/sebastienbouffier",
"manual": "https://github.com/sebastien-bouffier/Bidoo/wiki",
"source": "https://github.com/sebastien-bouffier/Bidoo",
"downloads": {
"win": {
"download": "https://github.com/sebastien-bouffier/Bidoo/files/1587168/Bidoo-0.5.10-win.zip",


+ 1
- 1
plugins/Bogaudio.json View File

@@ -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",


+ 1
- 1
plugins/Fundamental.json View File

@@ -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"
}

+ 1
- 2
plugins/Grayscale.json View File

@@ -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",


+ 5
- 5
plugins/HetrickCV.json View File

@@ -4,17 +4,17 @@
"author": "Michael Hetrick",
"homepage": "https://github.com/mhetrick/hetrickcv",
"donation": "https://paypal.me/MHetrick",
"version": "0.5.3",
"version": "0.5.4",
"source": "https://github.com/mhetrick/hetrickcv",
"manual": "https://github.com/mhetrick/hetrickcv/blob/master/README.md",
"downloads": {
"win": {
"download": "https://github.com/mhetrick/hetrickcv/releases/download/0.5.3/HetrickCV-0.5.3-win.zip",
"sha256": "4afb040dcfdc72e8ae8146f0978b28d1da7331bbd2857e7b3f4a2abf4dc86e8e"
"download": "https://github.com/mhetrick/hetrickcv/releases/download/0.5.4/HetrickCV-0.5.4-win.zip",
"sha256": "6d5db0b532a5252e866d2cd12a955c8fcf78e22cb127c70ebacd418e8b1689da"
},
"mac": {
"download": "https://github.com/mhetrick/hetrickcv/releases/download/0.5.3/HetrickCV-0.5.3-mac.zip",
"sha256": "187feeb66cf84e13ea1dd3df02b3a2871c88387709903c69be8feaeca9a998f0"
"download": "https://github.com/mhetrick/hetrickcv/releases/download/0.5.4/HetrickCV-0.5.4-mac.zip",
"sha256": "5e8ef433ee03c30fa0a46699c60a2293868b458a0e60aeae7964091e6f8c4342"
}
}
}

plugins/Simplemodulepack.json → plugins/IO-Simple.json View File

@@ -1,5 +1,5 @@
{
"slug": "Simplemodulepack",
"slug": "IO-Simple",
"name": "Simple module pack",
"author": "IohannRabeson",
"version": "0.5.0",

+ 1
- 1
plugins/JW-Modules.json View File

@@ -20,4 +20,4 @@
"sha256": "327a11fed6f2299e87d799a58c0e5b2c026649c1c863367e8a54a116ac258c06"
}
}
}
}

+ 1
- 1
plugins/KarateSnoopy.json View File

@@ -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",


+ 8
- 7
plugins/LOGinstruments.json View File

@@ -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"
}
}
}
}

+ 8
- 8
plugins/NYSTHI.json View File

@@ -1,21 +1,21 @@
{
"slug": "NYSTHI",
"name": "NYSTHI",
"version": "0.5.8",
"version": "0.5.10",
"homepage": "https://github.com/nysthi/nysthi",
"manual": "https://github.com/nysthi/nysthi/blob/master/README.md",
"downloads": {
"win": {
"download": "https://github.com/nysthi/nysthi/releases/download/v0.5.8/nysthi.zip",
"sha256": "2af97913c1074d0c989b2ecbcfc62b4c90fe03746ff8d30d9c9e423fc7bc9f17"
"download": "https://github.com/nysthi/nysthi/releases/download/v0.5.10/nysthi.zip",
"sha256": "af5be01fd555cdab79d467b14f58f8aa13c7d32500dbc393064194279169c306"
},
"mac": {
"download": "https://github.com/nysthi/nysthi/releases/download/v0.5.8/nysthi.zip",
"sha256": "2af97913c1074d0c989b2ecbcfc62b4c90fe03746ff8d30d9c9e423fc7bc9f17"
"download": "https://github.com/nysthi/nysthi/releases/download/v0.5.10/nysthi.zip",
"sha256": "af5be01fd555cdab79d467b14f58f8aa13c7d32500dbc393064194279169c306"
},
"lin": {
"download": "https://github.com/nysthi/nysthi/releases/download/v0.5.8/nysthi.zip",
"sha256": "2af97913c1074d0c989b2ecbcfc62b4c90fe03746ff8d30d9c9e423fc7bc9f17"
"download": "https://github.com/nysthi/nysthi/releases/download/v0.5.10/nysthi.zip",
"sha256": "af5be01fd555cdab79d467b14f58f8aa13c7d32500dbc393064194279169c306"
}
}
}
}

+ 10
- 6
plugins/NonLinearInstruments.json View File

@@ -3,18 +3,22 @@
"name": "Non Linear Instruments",
"author": "NonLinearInstruments",
"license": "BSD 3-clause",
"version": "0.5.0",
"version": "0.5.1",
"homepage": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins",
"manual": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins/blob/master/README.md",
"source": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins",
"downloads": {
"mac": {
"download": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins/releases/download/0.5.0/NonLinearInstruments-0.5.0-mac.zip",
"sha256": "955813b84e85a249134b709ceb5adddc1ea94c14d077e519057b97ffdc88d098"
"download": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins/releases/download/0.5.1/NonLinearInstruments-0.5.1-mac.zip",
"sha256": "a1151486477c70644210c5229cb15a29894065ba3495d8bf83a2541e3a3cdeb3"
},
"win": {
"download": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins/releases/download/0.5.0/NonLinearInstruments-0.5.0-win.zip",
"sha256": "354cfd04a8bb48993a07b13b8fc6ab68e39c2967fc356c988ac6f520902619d9"
"download": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins/releases/download/0.5.1/NonLinearInstruments-0.5.1-win.zip",
"sha256": "fbec569b54d21dcd70cd64ac676ff7aa80c5e96806da25851a6ee8995ef78b3e"
},
"lin": {
"download": "https://github.com/NonLinearInstruments/NLNRI_VCVRackPlugins/releases/download/0.5.1/NonLinearInstruments-0.5.1-lin.zip",
"sha256": "fa6be52825bed83df002b431ebc8dd6f4cd799ef45c4e6808be02b998990e95a"
}
}
}
}

+ 1
- 11
plugins/PvC.json View File

@@ -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"
}

+ 1
- 1
plugins/Qwelk.json View File

@@ -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": {


+ 1
- 7
plugins/RODENTMODULES.json View File

@@ -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"
}

+ 25
- 0
plugins/StellareModular-Link.json View File

@@ -0,0 +1,25 @@
{
"slug": "StellareModular-Link",
"name": "Stellare Link",
"author": "Stellare Modular",
"license": "GPL-3",
"version": "0.5.1",
"homepage": "https://www.facebook.com/stellaremodular",
"donation": "https://paypal.me/stellaremodular",
"manual": "https://github.com/stellare-modular/vcv-link/blob/master/README.md",
"source": "https://github.com/stellare-modular/vcv-link",
"downloads": {
"win": {
"download": "https://github.com/stellare-modular/vcv-link/releases/download/0.5.1/StellareModular-Link-0.5.1.zip",
"sha256": "ebe352951876af91d9139bf51491c94d45bbebd94bc9b906d05f4621ed7f0d77"
},
"mac": {
"download": "https://github.com/stellare-modular/vcv-link/releases/download/0.5.1/StellareModular-Link-0.5.1.zip",
"sha256": "ebe352951876af91d9139bf51491c94d45bbebd94bc9b906d05f4621ed7f0d77"
},
"lin": {
"download": "https://github.com/stellare-modular/vcv-link/releases/download/0.5.1/StellareModular-Link-0.5.1.zip",
"sha256": "ebe352951876af91d9139bf51491c94d45bbebd94bc9b906d05f4621ed7f0d77"
}
}
}

+ 12
- 10
plugins/StellareModular.json View File

@@ -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"
}
}
}
}

+ 1
- 0
plugins/Valley Free.json View File

@@ -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": {


+ 8
- 8
plugins/VultModules.json View File

@@ -2,22 +2,22 @@
"slug": "VultModules",
"name": "VultModules",
"author": "modlfo",
"version": "0.5.3",
"homepage": "https://modlfo.github.io/VultModules",
"manual": "https://modlfo.github.io/VultModules",
"donation": "https://www.paypal.me/VultModules",
"source": "https://github.com/modlfo/VultModules",
"downloads": {
"win": {
"download": "https://github.com/modlfo/VultModules/releases/download/v0.5.2/VultModules.zip",
"sha256": "0e130d414ed76630118fe63eff9f586b93f982b0b972d0251266dc818a7229cb"
"download": "https://github.com/modlfo/VultModules/releases/download/v0.5.3/Vult-0.5.3-win.zip",
"sha256": "7d2560aa197aac48efc8e7a0327ff0d1af13db036e1caca2cd053835962208c1"
},
"mac": {
"download": "https://github.com/modlfo/VultModules/releases/download/v0.5.2/VultModules.zip",
"sha256": "0e130d414ed76630118fe63eff9f586b93f982b0b972d0251266dc818a7229cb"
"download": "https://github.com/modlfo/VultModules/releases/download/v0.5.3/Vult-0.5.3-mac.zip",
"sha256": "1c8039c0e69704e979e4e77a3fb35773bbabef352f1c47e4712878d9823f0bc2"
},
"lin": {
"download": "https://github.com/modlfo/VultModules/releases/download/v0.5.2/VultModules.zip",
"sha256": "0e130d414ed76630118fe63eff9f586b93f982b0b972d0251266dc818a7229cb"
"download": "https://github.com/modlfo/VultModules/releases/download/v0.5.3/Vult-0.5.3-lin.zip",
"sha256": "b950914ff6ecd3aad05c7f56fbd08839e2ddf52a7a7d57bae653f547d396fe5e"
}
}
}
}

+ 9
- 7
plugins/cf.json View File

@@ -1,21 +1,23 @@
{
"slug": "cf",
"name": "cf",
"author": "cfoulc",
"author": "clément foulc",
"version": "0.5.10",
"donation": "https://www.paypal.me/cfoulc",
"source": "https://github.com/cfoulc/cf",
"manual": "https://github.com/cfoulc/cf/blob/master/README.md",
"downloads": {
"win": {
"download": "https://github.com/cfoulc/cf/releases/download/0.5.10/cf_0510.zip",
"sha256": "16294b0f04f6ab703b1d07894b8030ac10d3f8850c632fbc90c360149b54d667"
"download": "https://github.com/cfoulc/cf/releases/download/0.5.10/cf-0.5.10-win.zip",
"sha256": "63509b786eb86d28464b1f553ca14804f1ddf570219676c43b7b932d156775ed"
},
"mac": {
"download": "https://github.com/cfoulc/cf/releases/download/0.5.10/cf_0510.zip",
"sha256": "16294b0f04f6ab703b1d07894b8030ac10d3f8850c632fbc90c360149b54d667"
"download": "https://github.com/cfoulc/cf/releases/download/0.5.10/cf-0.5.10-mac.zip",
"sha256": "296df530b0a3be648c3b94d9da6832e46aa86b432514862117014755916f20d2"
},
"lin": {
"download": "https://github.com/cfoulc/cf/releases/download/0.5.10/cf_0510.zip",
"sha256": "16294b0f04f6ab703b1d07894b8030ac10d3f8850c632fbc90c360149b54d667"
"download": "https://github.com/cfoulc/cf/releases/download/0.5.10/cf-0.5.10-lin.zip",
"sha256": "92927fa7fbd2a917de0f601dd77a9ab0d3a8e053778f92f8fb36547955ace2dd"
}
}
}

+ 3
- 3
plugins/dBiz.json View File

@@ -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"
}
}
}
}

+ 1
- 16
plugins/dekstop.json View File

@@ -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"
}

+ 10
- 5
plugins/luckyxxl.json View File

@@ -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"
}
}
}
}

+ 1
- 15
plugins/mental.json View File

@@ -4,19 +4,5 @@
"author": "Strum",
"version": "0.5b",
"source": "https://github.com/Strum/Strums_Mental_VCV_Modules",
"manual": "https://github.com/Strum/Strums_Mental_VCV_Modules/wiki/Mental-Modules-WIKI/",
"downloads": {
"win": {
"download": "https://github.com/Strum/Strums_Mental_VCV_Modules/releases/download/v0.5b/Strums_Mental_VCV_Modules_v05b_winx64.zip",
"sha256": "d68ce8d61d2ca761c60806623d965ae897de156ab140d2f6ce34353662daab53"
},
"mac": {
"download": "https://github.com/Strum/Strums_Mental_VCV_Modules/releases/download/v0.5b/Strums_Mental_VCV_Modules_v05b_Mac.zip",
"sha256": "1bb2d75cde48b129e23a650ecde6052fe3b8e6c4d8b24fafcb01aeea8cd2f2d3"
},
"lin": {
"download": "https://github.com/Strum/Strums_Mental_VCV_Modules/releases/download/v0.5b/Strums_Mental_VCV_Modules_05b_linux.zip",
"sha256": "4782481e26fd3d50a900eaaeb2a0ce173c0ff8fe14f7aa82b3669fe6dd454c44"
}
}
"manual": "https://github.com/Strum/Strums_Mental_VCV_Modules/wiki/Mental-Modules-WIKI/"
}

+ 8
- 8
plugins/moDllz.json View File

@@ -1,19 +1,19 @@
{
"slug": "moDllz",
"name": "moDllz",
"author": "Pablo DeLaLoza",
"author": "Pablo Delaloza",
"license": "BSD 3-clause",
"version": "0.5.1",
"version": "0.5.2",
"manual": "https://github.com/dllmusic/VCV_moDllz/blob/master/README.md",
"source": "https://github.com/dllmusic/VCV_moDllz",
"downloads": {
"win": {
"download": "https://github.com/dllmusic/VCV_moDllz/blob/master/moDllz-0.5.1-win.zip?raw=true",
"sha256": "ee7f24f89798411c5d1a09c097edee29bc369dc55c02a1975a31a200c5aa3545"
}
"mac": {
"download": "https://github.com/dllmusic/VCV_moDllz/blob/master/moDllz-0.5.1-mac.zip?raw=true",
"sha256": "2147932276f7b737184064dde43733b2801223c46113190affef1c4292ff872a"
"download": "https://github.com/dllmusic/VCV_moDllz/blob/master/dist/moDllz-0.5.2-win.zip?raw=true",
"sha256": "991296d60f03893c4325b7b2077ef84c4cf1f4d4651137ea877ae865cb7501cd"
},
"mac": {
"download": "https://github.com/dllmusic/VCV_moDllz/blob/master/dist/moDllz-0.5.2-mac.zip?raw=true",
"sha256": "664064185007b09cf7394a48e071ce0254f4e296c23abf945f1c0daf86af6c62"
}
}
}

+ 1
- 1
plugins/mscHack.json View File

@@ -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": {


+ 1
- 1
plugins/s-ol.json View File

@@ -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": {


+ 1
- 1
plugins/trowaSoft.json View File

@@ -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": {


+ 36
- 0
spec/README.md View File

@@ -0,0 +1,36 @@
# Tests

## Jasmine

[Jasmine Intro](https://jasmine.github.io/2.8/introduction.html)

Tests only run on changed manifests files.

To run all tests:
```
npm test
```

To force the tests to run for certain manifest files:
```
TEST_MANIFEST=plugins/JW-Modules.json npm test
```

## Schema Validation

Our schema is [here](./manifest.json)

We use [ajv](https://github.com/epoberezkin/ajv) to validate manifests against that schema.


## Virus Total

*Currently Disabled because they are slow and annoying*

**Rate Limit: 4 per minute**

`VT_API_KEY` env var is required and already set in travisci settings

[Public API](https://www.virustotal.com/en/documentation/public-api/v2/)



+ 116
- 0
spec/manifest.json View File

@@ -0,0 +1,116 @@
{
"id": "manifest.json",
"type": "object",
"additionalProperties": false,
"required": [
"slug",
"version"
],
"description": "A plugin manifest file for VCV Rack.",
"properties": {
"slug": {
"type": "string",
"description": "SEE README"
},
"name": {
"type": "string",
"description": "SEE README"
},
"author": {
"type": "string",
"description": "SEE README"
},
"license": {
"type": "string",
"description": "SEE README"
},
"version": {
"type": "string",
"description": "SEE README"
},
"homepage": {
"type": "string",
"description": "SEE README"
},
"donation": {
"type": "string",
"description": "SEE README"
},
"manual": {
"type": "string",
"description": "SEE README"
},
"source": {
"type": "string",
"description": "SEE README"
},
"disabled": {
"type": "boolean",
"description": "used when a plugin needs to be disabled"
},
"productId": {
"type": "number",
"description": "only used by vcv rack website"
},
"downloads": {
"type": "object",
"additionalProperties": false,
"properties": {
"win": {
"type": "object",
"additionalProperties": false,
"required": [
"download",
"sha256"
],
"properties": {
"download": {
"type": "string",
"description": "SEE README"
},
"sha256": {
"type": "string",
"description": "SEE README"
}
}
},
"lin": {
"type": "object",
"additionalProperties": false,
"required": [
"download",
"sha256"
],
"properties": {
"download": {
"type": "string",
"description": "SEE README"
},
"sha256": {
"type": "string",
"description": "SEE README"
}
}
},
"mac": {
"type": "object",
"additionalProperties": false,
"required": [
"download",
"sha256"
],
"properties": {
"download": {
"type": "string",
"description": "SEE README"
},
"sha256": {
"type": "string",
"description": "SEE README"
}
}
}
}
}
}
}

+ 156
- 0
spec/manifest.tests.spec.js View File

@@ -0,0 +1,156 @@
const TEMP_DIR = ".tmp-zips/";
const CUR_VER_PREFIX = '0.5';
const MF_DIR = 'plugins';
const fs = require("fs");

const Ajv = require('ajv'); //https://github.com/epoberezkin/ajv
const ajv = new Ajv({allErrors:true});
const validate = ajv.compile(require('./manifest.json'));

const request = require("request");
const { execSync } = require('child_process');
const AdmZip = require('adm-zip'); //https://github.com/cthackers/adm-zip
const hashFiles = require('hash-files'); //https://github.com/mac-/hash-files
const manifestsToTest = getManifestsThatApply();

if(manifestsToTest.length === 0){
console.log("No manifest files to test.");
return;
}

//virus total stuff
const VIRUS_TOTAL_ENABLED = false;
const vt = require("node-virustotal"); //https://github.com/natewatson999/node-virustotal
const con = vt.MakePublicConnection();
if(VIRUS_TOTAL_ENABLED){
con.setKey(process.env.VT_API_KEY);
con.setDelay(15000);
jasmine.DEFAULT_TIMEOUT_INTERVAL = manifestsToTest.length * 4 * con.getDelay();
}

describe("test manifests", function() {
beforeEach(()=>{
execSync(`mkdir -p ${TEMP_DIR}`)
});
afterEach(()=>{
execSync(`rm ${TEMP_DIR}/*.zip`)
fs.rmdirSync(TEMP_DIR);
});

const testMF = (filePath) => {
it("valid properties and zip files", function(done) {

try {
if (!filePath.toLowerCase().endsWith('.json')) {
fail("manifests should have .json extension");
}

const fileContent = fs.readFileSync(filePath, 'utf8');
const mfObj = JSON.parse(fileContent);
const valid = validate(mfObj);
if (!valid) {
validate.errors.map(e => e.message += ` in ${filePath}`)
fail(validate.errors);
}

if (!(/^[a-zA-Z0-9_\-]*$/).test(mfObj.slug)) {
fail(`slug does not match regex in ${filePath}`);
}

const fileName = filePath.replace('plugins/', '');
if (fileName.replace('.json', '') !== mfObj.slug) {
fail(`slug '${mfObj.slug}' does not match fileName: ${fileName}`);
}

if (mfObj.version && !mfObj.version.startsWith(CUR_VER_PREFIX)) {
fail(`version '${mfObj.version}' must start with '${CUR_VER_PREFIX}'`);
}

if(mfObj.downloads){
const urlsChecked = [];
let lastSha256;
['win', 'lin', 'mac'].map(os => {
const osObj = mfObj.downloads[os];
if(osObj && osObj.download && osObj.sha256){
const zipUrl = osObj.download;
if(urlsChecked.includes(zipUrl)){
if(lastSha256 !== osObj.sha256){
fail("SHA256 should be the same if the download URL is the same");
}
} else {
urlsChecked.push(zipUrl);
lastSha256 = osObj.sha256;
testOneZip(mfObj.slug, osObj, done);
}
}
});
}

} catch(err){
fail(`Error while trying to validate manifest: ${filePath}\n${err}`);
}
});
};

manifestsToTest.map(testMF);
});

function testOneZip(expectedRootDir, osObj, done) {
const urlParts = osObj.download.split('/');
const zipName = urlParts[urlParts.length - 1].split('\?')[0];
request(osObj.download).pipe(fs.createWriteStream(TEMP_DIR+zipName)).on('finish', ()=>{

console.log(`Downloaded ${TEMP_DIR+zipName}`);
const zip = new AdmZip(TEMP_DIR+zipName);
const zipEntries = zip.getEntries();
// zipEntries.map(ze=>console.log(ze.toString()));

const slugDirFound = zipEntries.find(ze => ze.isDirectory &&
(ze.entryName === expectedRootDir+'/' || ze.entryName === expectedRootDir+'\\')
);
if(!slugDirFound){
fail(`Zip should have one dir named ${expectedRootDir}`);
}

const invalidEntry = zipEntries.find(ze => !ze.entryName.startsWith(slugDirFound.entryName));
if(invalidEntry){
fail(`Zip entries should all be under a dir named ${expectedRootDir} but this entry was found: ${invalidEntry.entryName}`);
}

if(VIRUS_TOTAL_ENABLED){
con.FileEvaluation(zipName, "application/zip", fs.readFileSync(TEMP_DIR+zipName), function(data) {
console.log(data);
if(osObj.sha256 !== data.sha256){
throw new Error(`Invalid sha256 value. manifest:${osObj.sha256} virustotal:${data.sha256}`);
}
if(data.positives > 2){
throw new Error(`Too many positives from virustotal.`);
}
done();
}, function(err) {
if (err){ throw err; }
done();
});
} else {
hashFiles({files:[TEMP_DIR+zipName], algorithm:'sha256'}, function(error, hash) {
if(osObj.sha256 !== hash){
throw new Error(`Invalid sha256 value. manifest:${osObj.sha256} hash:${hash}`);
}
done();
});
}
});
}

function getManifestsThatApply(){
let paths = "";
if(process.env.TEST_MANIFEST){
paths = process.env.TEST_MANIFEST;
} else {
paths = execSync(`git diff -w --stat --name-only origin/master -- ${MF_DIR}/`, {encoding:'utf8'});
}
return paths.trim().split('\n').filter(s=>s.trim() !== '');
}


+ 11
- 0
spec/support/jasmine.json View File

@@ -0,0 +1,11 @@
{
"spec_dir": "spec",
"spec_files": [
"**/*[sS]pec.js"
],
"helpers": [
"helpers/**/*.js"
],
"stopSpecOnExpectationFailure": false,
"random": false
}

Loading…
Cancel
Save