commit 5a1e57fecab6d62e4fb715179c379afbb281f20c
parent 198a6c6551d662be1af0e13851e8c1765bd984df
Author: finwo <finwo@pm.me>
Date: Mon, 22 Oct 2018 13:13:46 +0200
Added sqldown
Diffstat:
5 files changed, 437 insertions(+), 29 deletions(-)
diff --git a/package-lock.json b/package-lock.json
@@ -97,6 +97,12 @@
"json-schema-traverse": "^0.3.0"
}
},
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "optional": true
+ },
"ansi-escapes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
@@ -1238,8 +1244,7 @@
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
- "dev": true
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"base": {
"version": "0.11.2",
@@ -1308,6 +1313,12 @@
}
}
},
+ "base62": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz",
+ "integrity": "sha1-e0F0wvlESXU7EcJlHAg9qEGnsIQ=",
+ "optional": true
+ },
"bcrypt-pbkdf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
@@ -1333,11 +1344,15 @@
"safe-buffer": "^5.1.1"
}
},
+ "bluebird": {
+ "version": "2.11.0",
+ "resolved": "http://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
+ "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE="
+ },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -1604,7 +1619,6 @@
"version": "2.17.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
"integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
- "dev": true,
"optional": true
},
"component-emitter": {
@@ -1616,8 +1630,7 @@
"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
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"console-control-strings": {
"version": "1.1.0",
@@ -1713,7 +1726,6 @@
"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"
}
@@ -1879,6 +1891,12 @@
"webidl-conversions": "^4.0.2"
}
},
+ "double-ended-queue": {
+ "version": "2.0.0-0",
+ "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.0.0-0.tgz",
+ "integrity": "sha1-eEf9ocAPtyIkWv+DZDpIh2cO/Sw=",
+ "optional": true
+ },
"each-series": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/each-series/-/each-series-1.0.0.tgz",
@@ -1963,6 +1981,25 @@
"is-symbol": "^1.0.2"
}
},
+ "es3ify": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/es3ify/-/es3ify-0.1.4.tgz",
+ "integrity": "sha1-rZ+l3xrjTz8x4SEbWBiy1RB439E=",
+ "optional": true,
+ "requires": {
+ "esprima-fb": "~3001.0001.0000-dev-harmony-fb",
+ "jstransform": "~3.0.0",
+ "through": "~2.3.4"
+ },
+ "dependencies": {
+ "esprima-fb": {
+ "version": "3001.1.0-dev-harmony-fb",
+ "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz",
+ "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=",
+ "optional": true
+ }
+ }
+ },
"es6-promise": {
"version": "3.2.1",
"resolved": "http://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz",
@@ -1972,8 +2009,7 @@
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"escodegen": {
"version": "1.11.0",
@@ -2202,6 +2238,44 @@
"locate-path": "^2.0.0"
}
},
+ "findup-sync": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.2.1.tgz",
+ "integrity": "sha1-4KkKRQB1xJRm7lE3MgV1FLgeh4w=",
+ "optional": true,
+ "requires": {
+ "glob": "~4.3.0"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-4.3.5.tgz",
+ "integrity": "sha1-gPuwjKVA8jiszl0R0em8QedRc9M=",
+ "optional": true,
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^2.0.1",
+ "once": "^1.3.0"
+ }
+ },
+ "minimatch": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
+ "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
+ "optional": true,
+ "requires": {
+ "brace-expansion": "^1.0.0"
+ }
+ }
+ }
+ },
+ "flagged-respawn": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz",
+ "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=",
+ "optional": true
+ },
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@@ -2975,7 +3049,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "dev": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -3058,6 +3131,12 @@
}
}
},
+ "hashmap": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/hashmap/-/hashmap-2.3.0.tgz",
+ "integrity": "sha1-sT+2XafIul49uPwbjFuh0ASdryI=",
+ "optional": true
+ },
"home-or-tmp": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
@@ -3129,7 +3208,6 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dev": true,
"requires": {
"once": "^1.3.0",
"wrappy": "1"
@@ -3146,6 +3224,12 @@
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"optional": true
},
+ "interpret": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.5.2.tgz",
+ "integrity": "sha1-N3gzsEteppP/DVMzgOPdoMA4G+A=",
+ "optional": true
+ },
"invariant": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
@@ -4026,6 +4110,34 @@
"verror": "1.10.0"
}
},
+ "jstransform": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-3.0.0.tgz",
+ "integrity": "sha1-olkats7o2XvzvoMNv6IxO4fNZAs=",
+ "optional": true,
+ "requires": {
+ "base62": "0.1.1",
+ "esprima-fb": "~3001.1.0-dev-harmony-fb",
+ "source-map": "0.1.31"
+ },
+ "dependencies": {
+ "esprima-fb": {
+ "version": "3001.1.0-dev-harmony-fb",
+ "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz",
+ "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=",
+ "optional": true
+ },
+ "source-map": {
+ "version": "0.1.31",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz",
+ "integrity": "sha1-n3BNDWnZ4TioG63267T94z0VHGE=",
+ "optional": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
+ }
+ },
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
@@ -4041,6 +4153,100 @@
"integrity": "sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ==",
"dev": true
},
+ "knex": {
+ "version": "0.8.6",
+ "resolved": "http://registry.npmjs.org/knex/-/knex-0.8.6.tgz",
+ "integrity": "sha1-IPL0ps+Y+nVbXO6aqfq65TGvBWo=",
+ "optional": true,
+ "requires": {
+ "bluebird": "^2.9.24",
+ "chalk": "^1.0.0",
+ "commander": "^2.2.0",
+ "debug": "^2.1.3",
+ "inherits": "~2.0.1",
+ "interpret": "^0.5.2",
+ "liftoff": "~2.0.0",
+ "lodash": "^3.7.0",
+ "minimist": "~1.1.0",
+ "mkdirp": "^0.5.0",
+ "pool2": "^1.1.0",
+ "readable-stream": "^1.1.12",
+ "tildify": "~1.0.0",
+ "v8flags": "^2.0.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "optional": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "optional": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "optional": true
+ },
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
+ "optional": true
+ },
+ "minimist": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz",
+ "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=",
+ "optional": true
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "optional": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "optional": true
+ }
+ }
+ },
"lcid": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
@@ -4149,6 +4355,33 @@
"type-check": "~0.3.2"
}
},
+ "liftoff": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.0.3.tgz",
+ "integrity": "sha1-+6slNipQasKKPbDFXN6VYvvXBFY=",
+ "optional": true,
+ "requires": {
+ "extend": "~2.0.0",
+ "findup-sync": "~0.2.0",
+ "flagged-respawn": "~0.3.0",
+ "minimist": "~1.1.0",
+ "resolve": "~1.1.0"
+ },
+ "dependencies": {
+ "extend": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.2.tgz",
+ "integrity": "sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ==",
+ "optional": true
+ },
+ "minimist": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz",
+ "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=",
+ "optional": true
+ }
+ }
+ },
"load-json-file": {
"version": "1.1.0",
"resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
@@ -4462,8 +4695,7 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"nan": {
"version": "2.11.1",
@@ -4910,6 +5142,26 @@
"integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==",
"dev": true
},
+ "pool2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/pool2/-/pool2-1.4.1.tgz",
+ "integrity": "sha1-MvvU9qN3ZFmQAvrquKBJSip2otA=",
+ "optional": true,
+ "requires": {
+ "debug": "^2.1.3",
+ "double-ended-queue": "^2.1.0-0",
+ "hashmap": "^2.0.1",
+ "simple-backoff": "^1.0.0"
+ },
+ "dependencies": {
+ "double-ended-queue": {
+ "version": "2.1.0-0",
+ "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz",
+ "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=",
+ "optional": true
+ }
+ }
+ },
"posix-character-classes": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
@@ -5341,8 +5593,7 @@
"resolve": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
- "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
- "dev": true
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs="
},
"resolve-cwd": {
"version": "2.0.0",
@@ -5770,6 +6021,12 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
+ "simple-backoff": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/simple-backoff/-/simple-backoff-1.1.0.tgz",
+ "integrity": "sha1-sw3/S8NKTz5Q4yFkHZYw4qUG9VQ=",
+ "optional": true
+ },
"simple-concat": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz",
@@ -5988,6 +6245,33 @@
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
"dev": true
},
+ "sqldown": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/sqldown/-/sqldown-2.1.0.tgz",
+ "integrity": "sha1-v5i83BMAi5FUm0EC4JuUnNL9Qnk=",
+ "optional": true,
+ "requires": {
+ "abstract-leveldown": "^2.1.0",
+ "bluebird": "^2.3.11",
+ "debug": "^2.2.0",
+ "double-ended-queue": "^2.0.0-0",
+ "es3ify": "^0.1.3",
+ "inherits": "^2.0.1",
+ "knex": "^0.8.3",
+ "through2": "^0.6.3"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz",
+ "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==",
+ "optional": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ }
+ }
+ },
"sshpk": {
"version": "1.15.1",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.1.tgz",
@@ -6174,12 +6458,63 @@
"integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=",
"dev": true
},
+ "through": {
+ "version": "2.3.8",
+ "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "optional": true
+ },
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+ "optional": true,
+ "requires": {
+ "readable-stream": ">=1.0.33-1 <1.1.0-0",
+ "xtend": ">=4.0.0 <4.1.0-0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "optional": true
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "optional": true
+ }
+ }
+ },
"thunky": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz",
"integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==",
"optional": true
},
+ "tildify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.0.0.tgz",
+ "integrity": "sha1-KgIdtej73gqPi03zetqo+x05190=",
+ "optional": true,
+ "requires": {
+ "user-home": "^1.0.0"
+ }
+ },
"tmpl": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
@@ -6424,6 +6759,11 @@
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
"dev": true
},
+ "user-home": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
+ "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA="
+ },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -6445,6 +6785,15 @@
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
"dev": true
},
+ "v8flags": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
+ "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
+ "optional": true,
+ "requires": {
+ "user-home": "^1.1.1"
+ }
+ },
"validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
diff --git a/package.json b/package.json
@@ -23,6 +23,7 @@
"level": "^4.0.0",
"leveldown": "^4.0.1",
"memdown": "^3.0.0",
- "mongodown": "^1.2.0"
+ "mongodown": "^1.2.0",
+ "sqldown": "^2.1.0"
}
}
diff --git a/src/index.js b/src/index.js
@@ -41,19 +41,10 @@ module.exports = function autolevel( location, options, callback ) {
}
// Load protocol initializers
- require('./mem' )(hasModule, autolevel);
- require('./plain')(hasModule, autolevel);
-
- /* TODO
- case 'mssql:' :
- case 'mysql:' :
- case 'mysql2:' :
- case 'sqlite:' :
- case 'sqlite3:' :
- case 'postgres:' :
- case 'postgresql:':
- case 'pg:' : return levelup(require('sqldown')(url.format(dburl)), opts);
- */
+ require('./mem' )(hasModule, autolevel);
+ require('./mongodb')(hasModule, autolevel);
+ require('./plain' )(hasModule, autolevel);
+ require('./sql' )(hasModule, autolevel);
// Parse the given location, it should contain a protocol
let parsedLocation = parseUrl(location),
diff --git a/src/sql.js b/src/sql.js
@@ -0,0 +1,27 @@
+module.exports = function( hasModule, supported ) {
+
+ // No levelup = can't use this
+ if (!hasModule('levelup')) {
+ return;
+ }
+
+ // No memdown = can't use this
+ if (!hasModule('sqldown')) {
+ return;
+ }
+
+ // Our initializer
+ supported.sql = function(parsedLocation, options, callback) {
+ return require('levelup')(require('sqldown')(parsedLocation.href), options, callback);
+ };
+
+ // Aliases
+ supported.mssql = supported.sql;
+ supported.mysql = supported.sql;
+ supported.mysql2 = supported.sql;
+ supported.sqlite = supported.sql;
+ supported.sqlite3 = supported.sql;
+ supported.postgres = supported.sql;
+ supported.postgresql = supported.sql;
+ supported.pg = supported.sql;
+};
diff --git a/src/sql.test.js b/src/sql.test.js
@@ -0,0 +1,40 @@
+import expect from 'expect';
+import rimraf from 'rimraf';
+
+// Setup environment
+if ( 'object' !== typeof process ) process = {};
+if (!process.env) process.env = {};
+process.env.TEST = true;
+
+// Load extends
+expect.extend(require('jest-isa'));
+
+// Load our module
+let autolevel = require('./index'),
+ adapter = false;
+
+test('Ensure autolevel loads', async () => {
+ expect(autolevel).toBeDefined(); // Basics
+ expect(autolevel).isA(Function);
+ let instance = autolevel();
+ expect(instance).isA(Object);
+});
+
+test('Verify adapter loads', async () => {
+ // TODO
+ // adapter = autolevel('dir://');
+ // expect(adapter).isA(Object);
+});
+
+test('Storing data', async () => {
+ // TODO
+ // let result = await adapter.put('key','value');
+ // expect(result).toBeUndefined();
+});
+
+test('Fetching data', async () => {
+ // TODO
+ // let result = await adapter.get('key', { asBuffer: false });
+ // expect(result).toBe('value');
+});
+