summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2021-02-23 18:08:38 +0100
committerJules Laplace <julescarbon@gmail.com>2021-02-23 18:08:38 +0100
commit19516de0a43ac5f2b0afc9891bbef09d229ce4e6 (patch)
tree224a5ecb4e3f6130c4a1c6b3b125421ee2d9a6a7
parent542ebb603ecd8a60fc1daf50404cbc24a92e1d74 (diff)
allow arbitrary file upload for pdf
-rw-r--r--app/node_modules/okadminview/package-lock.json405
-rw-r--r--app/node_modules/okdb/package-lock.json128
-rw-r--r--app/node_modules/okquery/package-lock.json102
-rw-r--r--app/node_modules/okresource/package-lock.json97
-rw-r--r--app/node_modules/okschema/index.js5
-rw-r--r--app/node_modules/okschema/package-lock.json97
-rw-r--r--app/node_modules/okserver/package-lock.json18
-rw-r--r--app/node_modules/okservices/okinstagram/package-lock.json451
-rw-r--r--app/node_modules/okservices/oks3/index.js34
-rw-r--r--app/node_modules/okservices/oks3/package-lock.json274
-rw-r--r--app/node_modules/okservices/oks3/upload.js1
-rw-r--r--app/node_modules/okservices/oktwitter/package-lock.json394
-rw-r--r--app/node_modules/okservices/okwebhook/package-lock.json5
-rw-r--r--app/node_modules/okservices/package-lock.json5
-rw-r--r--app/node_modules/oktemplate/package-lock.json1481
-rw-r--r--app/node_modules/okutil/package-lock.json23
-rw-r--r--app/node_modules/okview/package-lock.json28
-rw-r--r--db.json1
-rw-r--r--examples/index.js252
-rw-r--r--package-lock.json2016
-rw-r--r--themes/okadmin/public/js/app.js547
-rw-r--r--themes/okadmin/public/js/upload.js287
-rw-r--r--themes/okadmin/templates/partials/inputs.liquid23
-rw-r--r--themes/okadmin/templates/partials/tail.liquid1
24 files changed, 6163 insertions, 512 deletions
diff --git a/app/node_modules/okadminview/package-lock.json b/app/node_modules/okadminview/package-lock.json
new file mode 100644
index 0000000..475f2c1
--- /dev/null
+++ b/app/node_modules/okadminview/package-lock.json
@@ -0,0 +1,405 @@
+{
+ "name": "okadminview",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "body-parser": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.12.2.tgz",
+ "integrity": "sha1-aYNo+038V6Bb/x3bG+vro70sDoc=",
+ "requires": {
+ "bytes": "1.0.0",
+ "content-type": "~1.0.1",
+ "debug": "~2.1.3",
+ "depd": "~1.0.0",
+ "iconv-lite": "0.4.7",
+ "on-finished": "~2.2.0",
+ "qs": "2.4.1",
+ "raw-body": "1.3.3",
+ "type-is": "~1.6.1"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
+ "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g="
+ },
+ "content-type": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz",
+ "integrity": "sha1-oZ0iRzJ9wDgFDOYit6FU7FnF5gA="
+ },
+ "debug": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz",
+ "integrity": "sha1-zoqxte6PvuK/o7Yzyrk9NmtjQY4=",
+ "requires": {
+ "ms": "0.7.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz",
+ "integrity": "sha1-hlvpTC5zl62KV9pqYzpuLzB5i4M="
+ }
+ }
+ },
+ "depd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz",
+ "integrity": "sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo="
+ },
+ "iconv-lite": {
+ "version": "0.4.7",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.7.tgz",
+ "integrity": "sha1-idMv7IIb+Fl/RGCbS8Cb7VwgmiM="
+ },
+ "on-finished": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.2.0.tgz",
+ "integrity": "sha1-5rpqCaNILWt5abw9qSyG8KlnYF4=",
+ "requires": {
+ "ee-first": "1.1.0"
+ },
+ "dependencies": {
+ "ee-first": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.0.tgz",
+ "integrity": "sha1-ag18YiHkkP7v2S7D9EHJzozQl/Q="
+ }
+ }
+ },
+ "qs": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-2.4.1.tgz",
+ "integrity": "sha1-aMuuqXEBNCaoDBQE+taxprEXUkU="
+ },
+ "raw-body": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.3.3.tgz",
+ "integrity": "sha1-iEGvP2StUKNR3HfyKRGLQMKPpYw=",
+ "requires": {
+ "bytes": "1.0.0",
+ "iconv-lite": "0.4.7"
+ }
+ },
+ "type-is": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.1.tgz",
+ "integrity": "sha1-Sa3eyw9oMcvB00upKfDzpPIbDy4=",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.0.10"
+ },
+ "dependencies": {
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ },
+ "mime-types": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.10.tgz",
+ "integrity": "sha1-6s2Bu3PKsqd0R1SaB41PIBjGe00=",
+ "requires": {
+ "mime-db": "~1.8.0"
+ },
+ "dependencies": {
+ "mime-db": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.8.0.tgz",
+ "integrity": "sha1-gqmzhfIrD1lU3sTURfq6ByLErSU="
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "connect-flash": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz",
+ "integrity": "sha1-2GMPJtlaf4UfmVax6MxnMvO2qjA="
+ },
+ "express-session": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.11.1.tgz",
+ "integrity": "sha1-YH65RY6emMGrV240CPXI2QGf5jM=",
+ "requires": {
+ "cookie": "0.1.2",
+ "cookie-signature": "1.0.6",
+ "crc": "3.2.1",
+ "debug": "~2.1.3",
+ "depd": "~1.0.1",
+ "on-headers": "~1.0.0",
+ "parseurl": "~1.3.0",
+ "uid-safe": "1.1.0",
+ "utils-merge": "1.0.0"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz",
+ "integrity": "sha1-cv7D0k5Io0Mgc9kMEmQgBQYQBLE="
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ },
+ "crc": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/crc/-/crc-3.2.1.tgz",
+ "integrity": "sha1-XZyPt3okXNXsopHl0tAFM0urAII="
+ },
+ "debug": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz",
+ "integrity": "sha1-zoqxte6PvuK/o7Yzyrk9NmtjQY4=",
+ "requires": {
+ "ms": "0.7.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz",
+ "integrity": "sha1-hlvpTC5zl62KV9pqYzpuLzB5i4M="
+ }
+ }
+ },
+ "depd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz",
+ "integrity": "sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo="
+ },
+ "on-headers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.0.tgz",
+ "integrity": "sha1-LHW12kN1UT0BYcYFLn/L5JU/yl0="
+ },
+ "parseurl": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz",
+ "integrity": "sha1-tYBG20Ij4UWvp2AJ5hush8wigbM="
+ },
+ "uid-safe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-1.1.0.tgz",
+ "integrity": "sha1-WNbF2r+N+9jVKDSDmAbAP9YUMjI=",
+ "requires": {
+ "base64-url": "1.2.1",
+ "native-or-bluebird": "~1.1.2"
+ },
+ "dependencies": {
+ "base64-url": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz",
+ "integrity": "sha1-GZ/WYXAqDnt9yubgaYuwicUvbXg="
+ },
+ "native-or-bluebird": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/native-or-bluebird/-/native-or-bluebird-1.1.2.tgz",
+ "integrity": "sha1-OSHhECMtHreQ89rGG7NwUxx9NW4="
+ }
+ }
+ },
+ "utils-merge": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
+ "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg="
+ }
+ }
+ },
+ "lodash.clonedeep": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.0.tgz",
+ "integrity": "sha1-yXbX64SdQT9yYc8Gu8zCB5DNh24=",
+ "requires": {
+ "lodash._baseclone": "^3.0.0",
+ "lodash._bindcallback": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash._baseclone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.0.1.tgz",
+ "integrity": "sha1-VfZluG+d2Zc/iONc02pfFEumMMQ=",
+ "requires": {
+ "lodash._arraycopy": "^3.0.0",
+ "lodash._arrayeach": "^3.0.0",
+ "lodash._basecopy": "^3.0.0",
+ "lodash._basefor": "^3.0.0",
+ "lodash.isarray": "^3.0.0",
+ "lodash.isnative": "^3.0.0",
+ "lodash.keys": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash._arraycopy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz",
+ "integrity": "sha1-due3wfH7klRzdIeKVi7Qaj5Q9uE="
+ },
+ "lodash._arrayeach": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz",
+ "integrity": "sha1-urFWsqkNPxu9XGU0AzSeXlkz754="
+ },
+ "lodash._basecopy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.0.tgz",
+ "integrity": "sha1-Tp0BqYLPfyuse6WtuFuzrgacuOY="
+ },
+ "lodash._basefor": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.1.tgz",
+ "integrity": "sha1-z0yL9NPHWK5ZijFhwIFKhzco8t0="
+ },
+ "lodash.isarray": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.1.tgz",
+ "integrity": "sha1-Wsh/RuoFzhqNJ9ivu+0QQ3Ccaw0="
+ },
+ "lodash.isnative": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isnative/-/lodash.isnative-3.0.1.tgz",
+ "integrity": "sha1-qRF2CAzy9/IDKUW61U/Fr4WlVMM="
+ },
+ "lodash.keys": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.0.5.tgz",
+ "integrity": "sha1-Zi/d/SHdSVlKFs3j3tOELE8GYb8=",
+ "requires": {
+ "lodash.isarguments": "^3.0.0",
+ "lodash.isarray": "^3.0.0",
+ "lodash.isnative": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash.isarguments": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.1.tgz",
+ "integrity": "sha1-Bvu/8Bm1Yng3r3IS8X9YyfT5DiA="
+ }
+ }
+ }
+ }
+ },
+ "lodash._bindcallback": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.0.tgz",
+ "integrity": "sha1-FYffoVdjTBP4ripgwb1VF8GACTc="
+ }
+ }
+ },
+ "method-override": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.2.tgz",
+ "integrity": "sha1-8kM/sntsCH77iBJihyf7jP2Tp5M=",
+ "requires": {
+ "debug": "~2.1.3",
+ "methods": "~1.1.1",
+ "parseurl": "~1.3.0",
+ "vary": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz",
+ "integrity": "sha1-zoqxte6PvuK/o7Yzyrk9NmtjQY4=",
+ "requires": {
+ "ms": "0.7.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz",
+ "integrity": "sha1-hlvpTC5zl62KV9pqYzpuLzB5i4M="
+ }
+ }
+ },
+ "methods": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.1.tgz",
+ "integrity": "sha1-F+pjZgZtAMWON1uOx9/QRTyJgio="
+ },
+ "parseurl": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz",
+ "integrity": "sha1-tYBG20Ij4UWvp2AJ5hush8wigbM="
+ },
+ "vary": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.0.tgz",
+ "integrity": "sha1-xeds7CDTgg2PKpbnvuOHMcNNoec="
+ }
+ }
+ },
+ "object-assign": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.0.0.tgz",
+ "integrity": "sha1-+DCbCQg7ASYezj73Nz8rV7jdcEI="
+ },
+ "passport": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/passport/-/passport-0.2.1.tgz",
+ "integrity": "sha1-p9NMB7MPtgW+iF7byMk+UULjhXQ=",
+ "requires": {
+ "passport-strategy": "1.x.x",
+ "pause": "0.0.1"
+ },
+ "dependencies": {
+ "passport-strategy": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
+ "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ="
+ },
+ "pause": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
+ "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10="
+ }
+ }
+ },
+ "passport-http": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/passport-http/-/passport-http-0.2.2.tgz",
+ "integrity": "sha1-JQExTA/0qDHopRzP2xto9cfLyfY=",
+ "requires": {
+ "passport": "~0.1.3",
+ "pkginfo": "0.2.x"
+ },
+ "dependencies": {
+ "passport": {
+ "version": "0.1.18",
+ "resolved": "https://registry.npmjs.org/passport/-/passport-0.1.18.tgz",
+ "integrity": "sha1-yCZEedy2QUytu2Z1LRKzfgtlJaE=",
+ "requires": {
+ "pause": "0.0.1",
+ "pkginfo": "0.2.x"
+ },
+ "dependencies": {
+ "pause": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
+ "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10="
+ }
+ }
+ },
+ "pkginfo": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.2.3.tgz",
+ "integrity": "sha1-cjnEKl72wwuPMoQ52bn/cQQkkPg="
+ }
+ }
+ },
+ "pluralize": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.1.2.tgz",
+ "integrity": "sha1-tcOfPSp3+xJ3ywzt49FEGPpJ8cQ="
+ },
+ "q": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.2.0.tgz",
+ "integrity": "sha1-gRcFzkqYAq3/gRqw/NvQGUbh/iI="
+ }
+ }
+}
diff --git a/app/node_modules/okdb/package-lock.json b/app/node_modules/okdb/package-lock.json
new file mode 100644
index 0000000..68e6796
--- /dev/null
+++ b/app/node_modules/okdb/package-lock.json
@@ -0,0 +1,128 @@
+{
+ "name": "okdb",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "lodash.clonedeep": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.0.tgz",
+ "integrity": "sha1-yXbX64SdQT9yYc8Gu8zCB5DNh24=",
+ "requires": {
+ "lodash._baseclone": "^3.0.0",
+ "lodash._bindcallback": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash._baseclone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.0.1.tgz",
+ "integrity": "sha1-VfZluG+d2Zc/iONc02pfFEumMMQ=",
+ "requires": {
+ "lodash._arraycopy": "^3.0.0",
+ "lodash._arrayeach": "^3.0.0",
+ "lodash._basecopy": "^3.0.0",
+ "lodash._basefor": "^3.0.0",
+ "lodash.isarray": "^3.0.0",
+ "lodash.isnative": "^3.0.0",
+ "lodash.keys": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash._arraycopy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz",
+ "integrity": "sha1-due3wfH7klRzdIeKVi7Qaj5Q9uE="
+ },
+ "lodash._arrayeach": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz",
+ "integrity": "sha1-urFWsqkNPxu9XGU0AzSeXlkz754="
+ },
+ "lodash._basecopy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.0.tgz",
+ "integrity": "sha1-Tp0BqYLPfyuse6WtuFuzrgacuOY="
+ },
+ "lodash._basefor": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.1.tgz",
+ "integrity": "sha1-z0yL9NPHWK5ZijFhwIFKhzco8t0="
+ },
+ "lodash.isarray": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.1.tgz",
+ "integrity": "sha1-Wsh/RuoFzhqNJ9ivu+0QQ3Ccaw0="
+ },
+ "lodash.isnative": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isnative/-/lodash.isnative-3.0.1.tgz",
+ "integrity": "sha1-qRF2CAzy9/IDKUW61U/Fr4WlVMM="
+ },
+ "lodash.keys": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.0.5.tgz",
+ "integrity": "sha1-Zi/d/SHdSVlKFs3j3tOELE8GYb8=",
+ "requires": {
+ "lodash.isarguments": "^3.0.0",
+ "lodash.isarray": "^3.0.0",
+ "lodash.isnative": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash.isarguments": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.1.tgz",
+ "integrity": "sha1-Bvu/8Bm1Yng3r3IS8X9YyfT5DiA="
+ }
+ }
+ }
+ }
+ },
+ "lodash._bindcallback": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.0.tgz",
+ "integrity": "sha1-FYffoVdjTBP4ripgwb1VF8GACTc="
+ }
+ }
+ },
+ "lodash.isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.1.tgz",
+ "integrity": "sha1-lYoBZDZAZTTsBAF7BrCD2tvDKjw="
+ },
+ "lowdb": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-0.7.2.tgz",
+ "integrity": "sha1-MyMv9xiyZrtNgRr7ULplZwymjIw=",
+ "requires": {
+ "lodash": "^3.1.0",
+ "steno": "^0.3.2"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.6.0.tgz",
+ "integrity": "sha1-Umao9J3Zib5Pn2gbbyoMVShdDZo="
+ },
+ "steno": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/steno/-/steno-0.3.2.tgz",
+ "integrity": "sha1-qx5/VHrH94ruy4ttdMJcWykt+Z4="
+ }
+ }
+ },
+ "object-assign": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.0.0.tgz",
+ "integrity": "sha1-+DCbCQg7ASYezj73Nz8rV7jdcEI="
+ },
+ "q": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.2.0.tgz",
+ "integrity": "sha1-gRcFzkqYAq3/gRqw/NvQGUbh/iI="
+ },
+ "underscore-db": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/underscore-db/-/underscore-db-0.8.1.tgz",
+ "integrity": "sha1-MweVKALguzJzUICjC12UtzZDMLo="
+ }
+ }
+}
diff --git a/app/node_modules/okquery/package-lock.json b/app/node_modules/okquery/package-lock.json
new file mode 100644
index 0000000..bbad4a3
--- /dev/null
+++ b/app/node_modules/okquery/package-lock.json
@@ -0,0 +1,102 @@
+{
+ "name": "okquery",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "lodash.clonedeep": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.0.tgz",
+ "integrity": "sha1-yXbX64SdQT9yYc8Gu8zCB5DNh24=",
+ "requires": {
+ "lodash._baseclone": "^3.0.0",
+ "lodash._bindcallback": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash._baseclone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.0.1.tgz",
+ "integrity": "sha1-VfZluG+d2Zc/iONc02pfFEumMMQ=",
+ "requires": {
+ "lodash._arraycopy": "^3.0.0",
+ "lodash._arrayeach": "^3.0.0",
+ "lodash._basecopy": "^3.0.0",
+ "lodash._basefor": "^3.0.0",
+ "lodash.isarray": "^3.0.0",
+ "lodash.isnative": "^3.0.0",
+ "lodash.keys": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash._arraycopy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz",
+ "integrity": "sha1-due3wfH7klRzdIeKVi7Qaj5Q9uE="
+ },
+ "lodash._arrayeach": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz",
+ "integrity": "sha1-urFWsqkNPxu9XGU0AzSeXlkz754="
+ },
+ "lodash._basecopy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.0.tgz",
+ "integrity": "sha1-Tp0BqYLPfyuse6WtuFuzrgacuOY="
+ },
+ "lodash._basefor": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.1.tgz",
+ "integrity": "sha1-z0yL9NPHWK5ZijFhwIFKhzco8t0="
+ },
+ "lodash.isarray": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.1.tgz",
+ "integrity": "sha1-Wsh/RuoFzhqNJ9ivu+0QQ3Ccaw0="
+ },
+ "lodash.isnative": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isnative/-/lodash.isnative-3.0.1.tgz",
+ "integrity": "sha1-qRF2CAzy9/IDKUW61U/Fr4WlVMM="
+ },
+ "lodash.keys": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.0.5.tgz",
+ "integrity": "sha1-Zi/d/SHdSVlKFs3j3tOELE8GYb8=",
+ "requires": {
+ "lodash.isarguments": "^3.0.0",
+ "lodash.isarray": "^3.0.0",
+ "lodash.isnative": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash.isarguments": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.1.tgz",
+ "integrity": "sha1-Bvu/8Bm1Yng3r3IS8X9YyfT5DiA="
+ }
+ }
+ }
+ }
+ },
+ "lodash._bindcallback": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.0.tgz",
+ "integrity": "sha1-FYffoVdjTBP4ripgwb1VF8GACTc="
+ }
+ }
+ },
+ "lodash.isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.1.tgz",
+ "integrity": "sha1-lYoBZDZAZTTsBAF7BrCD2tvDKjw="
+ },
+ "object-assign": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.0.0.tgz",
+ "integrity": "sha1-+DCbCQg7ASYezj73Nz8rV7jdcEI="
+ },
+ "q": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.2.0.tgz",
+ "integrity": "sha1-gRcFzkqYAq3/gRqw/NvQGUbh/iI="
+ }
+ }
+}
diff --git a/app/node_modules/okresource/package-lock.json b/app/node_modules/okresource/package-lock.json
new file mode 100644
index 0000000..1c1749c
--- /dev/null
+++ b/app/node_modules/okresource/package-lock.json
@@ -0,0 +1,97 @@
+{
+ "name": "okresource",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "lodash.clonedeep": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.0.tgz",
+ "integrity": "sha1-yXbX64SdQT9yYc8Gu8zCB5DNh24=",
+ "requires": {
+ "lodash._baseclone": "^3.0.0",
+ "lodash._bindcallback": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash._baseclone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.0.1.tgz",
+ "integrity": "sha1-VfZluG+d2Zc/iONc02pfFEumMMQ=",
+ "requires": {
+ "lodash._arraycopy": "^3.0.0",
+ "lodash._arrayeach": "^3.0.0",
+ "lodash._basecopy": "^3.0.0",
+ "lodash._basefor": "^3.0.0",
+ "lodash.isarray": "^3.0.0",
+ "lodash.isnative": "^3.0.0",
+ "lodash.keys": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash._arraycopy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz",
+ "integrity": "sha1-due3wfH7klRzdIeKVi7Qaj5Q9uE="
+ },
+ "lodash._arrayeach": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz",
+ "integrity": "sha1-urFWsqkNPxu9XGU0AzSeXlkz754="
+ },
+ "lodash._basecopy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.0.tgz",
+ "integrity": "sha1-Tp0BqYLPfyuse6WtuFuzrgacuOY="
+ },
+ "lodash._basefor": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.1.tgz",
+ "integrity": "sha1-z0yL9NPHWK5ZijFhwIFKhzco8t0="
+ },
+ "lodash.isarray": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.1.tgz",
+ "integrity": "sha1-Wsh/RuoFzhqNJ9ivu+0QQ3Ccaw0="
+ },
+ "lodash.isnative": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isnative/-/lodash.isnative-3.0.1.tgz",
+ "integrity": "sha1-qRF2CAzy9/IDKUW61U/Fr4WlVMM="
+ },
+ "lodash.keys": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.0.5.tgz",
+ "integrity": "sha1-Zi/d/SHdSVlKFs3j3tOELE8GYb8=",
+ "requires": {
+ "lodash.isarguments": "^3.0.0",
+ "lodash.isarray": "^3.0.0",
+ "lodash.isnative": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash.isarguments": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.1.tgz",
+ "integrity": "sha1-Bvu/8Bm1Yng3r3IS8X9YyfT5DiA="
+ }
+ }
+ }
+ }
+ },
+ "lodash._bindcallback": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.0.tgz",
+ "integrity": "sha1-FYffoVdjTBP4ripgwb1VF8GACTc="
+ }
+ }
+ },
+ "object-assign": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.0.0.tgz",
+ "integrity": "sha1-+DCbCQg7ASYezj73Nz8rV7jdcEI="
+ },
+ "q": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.2.0.tgz",
+ "integrity": "sha1-gRcFzkqYAq3/gRqw/NvQGUbh/iI="
+ }
+ }
+}
diff --git a/app/node_modules/okschema/index.js b/app/node_modules/okschema/index.js
index 39845ea..e91caf7 100644
--- a/app/node_modules/okschema/index.js
+++ b/app/node_modules/okschema/index.js
@@ -23,7 +23,10 @@ var types = {
},
'video': {
parent: {type: 'string'},
- // Let parent handle validation
+ assertValid: function(spec, value) {}
+ },
+ 'file': {
+ parent: {type: 'string'},
assertValid: function(spec, value) {}
},
'enum': {
diff --git a/app/node_modules/okschema/package-lock.json b/app/node_modules/okschema/package-lock.json
new file mode 100644
index 0000000..a644e05
--- /dev/null
+++ b/app/node_modules/okschema/package-lock.json
@@ -0,0 +1,97 @@
+{
+ "name": "okschema",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "lodash.clonedeep": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.0.tgz",
+ "integrity": "sha1-yXbX64SdQT9yYc8Gu8zCB5DNh24=",
+ "requires": {
+ "lodash._baseclone": "^3.0.0",
+ "lodash._bindcallback": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash._baseclone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.0.1.tgz",
+ "integrity": "sha1-VfZluG+d2Zc/iONc02pfFEumMMQ=",
+ "requires": {
+ "lodash._arraycopy": "^3.0.0",
+ "lodash._arrayeach": "^3.0.0",
+ "lodash._basecopy": "^3.0.0",
+ "lodash._basefor": "^3.0.0",
+ "lodash.isarray": "^3.0.0",
+ "lodash.isnative": "^3.0.0",
+ "lodash.keys": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash._arraycopy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz",
+ "integrity": "sha1-due3wfH7klRzdIeKVi7Qaj5Q9uE="
+ },
+ "lodash._arrayeach": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz",
+ "integrity": "sha1-urFWsqkNPxu9XGU0AzSeXlkz754="
+ },
+ "lodash._basecopy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.0.tgz",
+ "integrity": "sha1-Tp0BqYLPfyuse6WtuFuzrgacuOY="
+ },
+ "lodash._basefor": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.1.tgz",
+ "integrity": "sha1-z0yL9NPHWK5ZijFhwIFKhzco8t0="
+ },
+ "lodash.isarray": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.1.tgz",
+ "integrity": "sha1-Wsh/RuoFzhqNJ9ivu+0QQ3Ccaw0="
+ },
+ "lodash.isnative": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isnative/-/lodash.isnative-3.0.1.tgz",
+ "integrity": "sha1-qRF2CAzy9/IDKUW61U/Fr4WlVMM="
+ },
+ "lodash.keys": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.0.5.tgz",
+ "integrity": "sha1-Zi/d/SHdSVlKFs3j3tOELE8GYb8=",
+ "requires": {
+ "lodash.isarguments": "^3.0.0",
+ "lodash.isarray": "^3.0.0",
+ "lodash.isnative": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash.isarguments": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.1.tgz",
+ "integrity": "sha1-Bvu/8Bm1Yng3r3IS8X9YyfT5DiA="
+ }
+ }
+ }
+ }
+ },
+ "lodash._bindcallback": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.0.tgz",
+ "integrity": "sha1-FYffoVdjTBP4ripgwb1VF8GACTc="
+ }
+ }
+ },
+ "mschema": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mschema/-/mschema-0.5.5.tgz",
+ "integrity": "sha1-HxPsoFTmmwl9IWgIyIEgSjywM2o="
+ },
+ "validator": {
+ "version": "3.37.0",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-3.37.0.tgz",
+ "integrity": "sha1-QSuyu7vH3YdImhiMbL2QxhoGg4I="
+ }
+ }
+}
diff --git a/app/node_modules/okserver/package-lock.json b/app/node_modules/okserver/package-lock.json
new file mode 100644
index 0000000..e622048
--- /dev/null
+++ b/app/node_modules/okserver/package-lock.json
@@ -0,0 +1,18 @@
+{
+ "name": "okserver",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "express-slash": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/express-slash/-/express-slash-2.0.1.tgz",
+ "integrity": "sha1-duuGn+2Pca5PmHhcvgC/G7RU1ic="
+ },
+ "route-order": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/route-order/-/route-order-0.1.0.tgz",
+ "integrity": "sha1-jr/NJAK/yIH1NKq/xDeJtoglc5w="
+ }
+ }
+}
diff --git a/app/node_modules/okservices/okinstagram/package-lock.json b/app/node_modules/okservices/okinstagram/package-lock.json
new file mode 100644
index 0000000..8f6aca7
--- /dev/null
+++ b/app/node_modules/okservices/okinstagram/package-lock.json
@@ -0,0 +1,451 @@
+{
+ "requires": true,
+ "lockfileVersion": 1,
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
+ "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc="
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8="
+ },
+ "aws4": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz",
+ "integrity": "sha1-Cin/t5wxyecS7rCH6OemS0pW11U="
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz",
+ "integrity": "sha1-PKdrhSQccXC/fZcD57mqdGMAQNQ=",
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "caseless": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
+ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c="
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "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"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "requires": {
+ "graceful-readlink": ">= 1.0.0"
+ }
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "requires": {
+ "boom": "2.x.x"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "requires": {
+ "jsbn": "~0.1.0"
+ }
+ },
+ "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="
+ },
+ "extend": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
+ "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ="
+ },
+ "extsprintf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
+ "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA="
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "form-data": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz",
+ "integrity": "sha1-icNTQAi5fq2ky7FX1Y9vXfAl6uQ=",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.5",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ="
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "requires": {
+ "is-property": "^1.0.0"
+ }
+ },
+ "getpass": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz",
+ "integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
+ },
+ "har-validator": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
+ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
+ "requires": {
+ "chalk": "^1.1.1",
+ "commander": "^2.9.0",
+ "is-my-json-valid": "^2.12.4",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "requires": {
+ "boom": "2.x.x",
+ "cryptiles": "2.x.x",
+ "hoek": "2.x.x",
+ "sntp": "1.x.x"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "requires": {
+ "assert-plus": "^0.2.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "is-my-json-valid": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz",
+ "integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs=",
+ "requires": {
+ "generate-function": "^2.0.0",
+ "generate-object-property": "^1.1.0",
+ "jsonpointer": "^4.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "jodid25519": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
+ "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=",
+ "requires": {
+ "jsbn": "~0.1.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz",
+ "integrity": "sha1-ZQmH2g3XT06/WhE3eiqi0nPpff0="
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "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="
+ },
+ "jsonpointer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk="
+ },
+ "jsprim": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz",
+ "integrity": "sha1-KnJW9wQSop7jZwqspiWZTE3P8lI=",
+ "requires": {
+ "extsprintf": "1.0.2",
+ "json-schema": "0.2.3",
+ "verror": "1.3.6"
+ }
+ },
+ "mime-db": {
+ "version": "1.25.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz",
+ "integrity": "sha1-wY29fHOl2/b0SgJNwNFloeexw5I="
+ },
+ "mime-types": {
+ "version": "2.1.13",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz",
+ "integrity": "sha1-4HqqnGxrmnyjASxpADrSWjnpKog=",
+ "requires": {
+ "mime-db": "~1.25.0"
+ }
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ },
+ "qs": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz",
+ "integrity": "sha1-9AOyZPI7wBIox0ExtAfxjV6l1EI="
+ },
+ "request": {
+ "version": "2.79.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
+ "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
+ "requires": {
+ "aws-sign2": "~0.6.0",
+ "aws4": "^1.2.1",
+ "caseless": "~0.11.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.0",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.1.1",
+ "har-validator": "~2.0.6",
+ "hawk": "~3.1.3",
+ "http-signature": "~1.1.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.7",
+ "oauth-sign": "~0.8.1",
+ "qs": "~6.3.0",
+ "stringstream": "~0.0.4",
+ "tough-cookie": "~2.3.0",
+ "tunnel-agent": "~0.4.1",
+ "uuid": "^3.0.0"
+ }
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "sshpk": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz",
+ "integrity": "sha1-MOGl0ykkSXShr2FREznVla9mOLA=",
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jodid25519": "^1.0.0",
+ "jsbn": "~0.1.0",
+ "tweetnacl": "~0.14.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "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="
+ },
+ "tough-cookie": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
+ "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
+ "requires": {
+ "punycode": "^1.4.1"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+ "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us="
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+ },
+ "uuid": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz",
+ "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE="
+ },
+ "verror": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
+ "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
+ "requires": {
+ "extsprintf": "1.0.2"
+ }
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
+ }
+ }
+}
diff --git a/app/node_modules/okservices/oks3/index.js b/app/node_modules/okservices/oks3/index.js
index cc40b71..41ee3dc 100644
--- a/app/node_modules/okservices/oks3/index.js
+++ b/app/node_modules/okservices/oks3/index.js
@@ -16,6 +16,7 @@ function OKS3(options) {
if (!options.s3)
throw new Error('S3 configuration not provided to OKS3');
+ if (!options.s3.file) options.s3.file = {}
if (!options.s3.image) options.s3.image = {}
if (!options.s3.audio) options.s3.audio = {}
if (!options.s3.video) options.s3.video = {}
@@ -23,6 +24,8 @@ function OKS3(options) {
// Make sure maxbytes property is there - it can be a number,
// or zero/undefined (for no maximum upload size)
if (options.s3.maxbytes) {
+ if (! ('maxbytes' in options.s3.file))
+ options.s3.file.maxbytes = options.s3.maxbytes
if (! ('maxbytes' in options.s3.image))
options.s3.image.maxbytes = options.s3.maxbytes
if (! ('maxbytes' in options.s3.video))
@@ -30,6 +33,8 @@ function OKS3(options) {
if (! ('maxbytes' in options.s3.audio))
options.s3.audio.maxbytes = options.s3.maxbytes
}
+ if (typeof options.s3.file.allowed !== "boolean")
+ options.s3.file.allowed = true
if (typeof options.s3.image.allowed !== "boolean")
options.s3.image.allowed = true
if (typeof options.s3.video.allowed !== "boolean")
@@ -130,7 +135,34 @@ function OKS3(options) {
});
});
-
+
+
+ router.post('/file', mult.single('file'), function(req, res) {
+ d.run(function () {
+
+ if (! options.s3.image.allowed) {
+ return res.status(500).json({ error: "File uploading not permitted" })
+ }
+
+ upload.put({
+ file: req.file,
+ preserveFilename: options.s3.video.preserveFilename,
+ dirname: options.s3.dirname,
+ types: {
+ 'application/pdf': 'pdf',
+ 'text/plain': 'txt',
+ 'text/html': 'html',
+ },
+ unacceptable: function(err){
+ res.json({ error: err })
+ },
+ success: function(url){
+ res.json({ url: url })
+ }
+ })
+
+ });
+ });
function preserveFilename (stream, cb){
cb(null, stream.filename)
}
diff --git a/app/node_modules/okservices/oks3/package-lock.json b/app/node_modules/okservices/oks3/package-lock.json
new file mode 100644
index 0000000..f6774bc
--- /dev/null
+++ b/app/node_modules/okservices/oks3/package-lock.json
@@ -0,0 +1,274 @@
+{
+ "name": "oks3",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "append-field": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/append-field/-/append-field-0.1.0.tgz",
+ "integrity": "sha1-bdxY+gg8e8VF08WZWygwzCNm1Eo="
+ },
+ "busboy": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.13.tgz",
+ "integrity": "sha1-kPxPajln2BVhb8l2v6jlau0MWLY=",
+ "requires": {
+ "dicer": "0.2.5",
+ "readable-stream": "1.1.x"
+ }
+ },
+ "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="
+ },
+ "dicer": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
+ "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=",
+ "requires": {
+ "readable-stream": "1.1.x",
+ "streamsearch": "0.1.2"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "knox": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/knox/-/knox-0.9.2.tgz",
+ "integrity": "sha1-NzZZNmniTwJP2vcjtqHcSv2DmnE=",
+ "requires": {
+ "debug": "^1.0.2",
+ "mime": "*",
+ "once": "^1.3.0",
+ "stream-counter": "^1.0.0",
+ "xml2js": "^0.4.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz",
+ "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=",
+ "requires": {
+ "ms": "0.6.2"
+ }
+ },
+ "ms": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz",
+ "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw="
+ },
+ "sax": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
+ "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o="
+ },
+ "stream-counter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz",
+ "integrity": "sha1-kc8lac5NxQYf6816yyY5SloRR1E="
+ },
+ "xml2js": {
+ "version": "0.4.17",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz",
+ "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=",
+ "requires": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "^4.1.0"
+ }
+ }
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ },
+ "mime": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
+ "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM="
+ },
+ "mime-db": {
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz",
+ "integrity": "sha1-qyOmNy3J2G09yRIb0OvTgQWhkEo="
+ },
+ "mime-types": {
+ "version": "2.1.10",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz",
+ "integrity": "sha1-uTx8tDYuFtQQcqflRTj7TUMHCDc=",
+ "requires": {
+ "mime-db": "~1.22.0"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "multer": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/multer/-/multer-1.2.0.tgz",
+ "integrity": "sha1-W+GkUln7BNJ1PTPHwqHK9SJHBaI=",
+ "requires": {
+ "append-field": "^0.1.0",
+ "busboy": "^0.2.11",
+ "concat-stream": "^1.5.0",
+ "mkdirp": "^0.5.1",
+ "object-assign": "^3.0.0",
+ "on-finished": "^2.3.0",
+ "type-is": "^1.6.4",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "concat-stream": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz",
+ "integrity": "sha1-87gKz54fSOOHXAaItBtsMWAu6hw=",
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "~2.0.0",
+ "typedarray": "~0.0.5"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
+ }
+ }
+ }
+ },
+ "node-uuid": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz",
+ "integrity": "sha1-baWhdmjEs91ZYjvaEc9/pMH2Cm8="
+ },
+ "object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "once": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+ "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
+ },
+ "readable-stream": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz",
+ "integrity": "sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "streamsearch": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
+ "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo="
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "type-is": {
+ "version": "1.6.12",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz",
+ "integrity": "sha1-A1Kp37//BA/maMwVPMlYKcNUFz4=",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.10"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "xmlbuilder": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz",
+ "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=",
+ "requires": {
+ "lodash": "^4.0.0"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "4.15.0",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.15.0.tgz",
+ "integrity": "sha1-MWI5HY8BQKoiz49rPDTWt/Y9Oqk="
+ }
+ }
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
+ }
+ }
+}
diff --git a/app/node_modules/okservices/oks3/upload.js b/app/node_modules/okservices/oks3/upload.js
index 3602cfc..681b14b 100644
--- a/app/node_modules/okservices/oks3/upload.js
+++ b/app/node_modules/okservices/oks3/upload.js
@@ -9,6 +9,7 @@ var acceptableuploadTypes = {
'image/jpeg': 'jpg',
'image/jpg': 'jpg',
'image/png': 'png',
+ 'application/pdf': 'pdf',
}
module.exports = {}
diff --git a/app/node_modules/okservices/oktwitter/package-lock.json b/app/node_modules/okservices/oktwitter/package-lock.json
new file mode 100644
index 0000000..b22d616
--- /dev/null
+++ b/app/node_modules/okservices/oktwitter/package-lock.json
@@ -0,0 +1,394 @@
+{
+ "name": "oktwitter",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
+ "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc="
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "asn1": {
+ "version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
+ "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc="
+ },
+ "assert-plus": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz",
+ "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA="
+ },
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+ },
+ "aws-sign2": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz",
+ "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM="
+ },
+ "bl": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz",
+ "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=",
+ "requires": {
+ "readable-stream": "~1.0.26"
+ }
+ },
+ "bluebird": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.4.tgz",
+ "integrity": "sha1-94D+Q+GnplEPZ6vX0NeVM6QN3eY="
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "caseless": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.10.0.tgz",
+ "integrity": "sha1-7WsnGa3NH9GPWNwIHA8aW0OWOQk="
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "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"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "requires": {
+ "graceful-readlink": ">= 1.0.0"
+ }
+ },
+ "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="
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "requires": {
+ "boom": "2.x.x"
+ }
+ },
+ "ctype": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz",
+ "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8="
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "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="
+ },
+ "extend": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.1.tgz",
+ "integrity": "sha1-HugBBonnOV/5RIJByYZSvHWagmA="
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "form-data": {
+ "version": "1.0.0-rc4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz",
+ "integrity": "sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14=",
+ "requires": {
+ "async": "^1.5.2",
+ "combined-stream": "^1.0.5",
+ "mime-types": "^2.1.10"
+ },
+ "dependencies": {
+ "mime-types": {
+ "version": "2.1.10",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz",
+ "integrity": "sha1-uTx8tDYuFtQQcqflRTj7TUMHCDc=",
+ "requires": {
+ "mime-db": "~1.22.0"
+ }
+ }
+ }
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ="
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "requires": {
+ "is-property": "^1.0.0"
+ }
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
+ },
+ "har-validator": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz",
+ "integrity": "sha1-2DhCsOtMQ1lgrrEIoGejqpTA7rI=",
+ "requires": {
+ "bluebird": "^2.9.30",
+ "chalk": "^1.0.0",
+ "commander": "^2.8.1",
+ "is-my-json-valid": "^2.12.0"
+ },
+ "dependencies": {
+ "bluebird": {
+ "version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz",
+ "integrity": "sha1-AkpVFylTCIV/FPkfEQb8O1VfRGs="
+ }
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "hawk": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-2.3.1.tgz",
+ "integrity": "sha1-HnMc45RH+h0PbXB/e87r7A/R7B8=",
+ "requires": {
+ "boom": "2.x.x",
+ "cryptiles": "2.x.x",
+ "hoek": "2.x.x",
+ "sntp": "1.x.x"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
+ },
+ "http-signature": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz",
+ "integrity": "sha1-F5bPZ6ABrVzWhJ3KCZFIXwkIn+Y=",
+ "requires": {
+ "asn1": "0.1.11",
+ "assert-plus": "^0.1.5",
+ "ctype": "0.5.3"
+ }
+ },
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ },
+ "is-my-json-valid": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz",
+ "integrity": "sha1-1Vd4qC/rawlj/0vhEdXRaE6JBwc=",
+ "requires": {
+ "generate-function": "^2.0.0",
+ "generate-object-property": "^1.1.0",
+ "jsonpointer": "2.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "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="
+ },
+ "jsonpointer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz",
+ "integrity": "sha1-OvHdIP6FRjkQ1GmjheMwF9KgMNk="
+ },
+ "mime": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
+ "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM="
+ },
+ "mime-db": {
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz",
+ "integrity": "sha1-qyOmNy3J2G09yRIb0OvTgQWhkEo="
+ },
+ "mime-types": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz",
+ "integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY=",
+ "requires": {
+ "mime-db": "~1.12.0"
+ },
+ "dependencies": {
+ "mime-db": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz",
+ "integrity": "sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc="
+ }
+ }
+ },
+ "node-uuid": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz",
+ "integrity": "sha1-baWhdmjEs91ZYjvaEc9/pMH2Cm8="
+ },
+ "oauth-sign": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz",
+ "integrity": "sha1-GCQ5vbkTeL90YOdcZOpD5kSN7wY="
+ },
+ "qs": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-3.1.0.tgz",
+ "integrity": "sha1-0OmudFIzoS3EP7TzBVu6RGJhFTw="
+ },
+ "readable-stream": {
+ "version": "1.0.33",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz",
+ "integrity": "sha1-OjYN1mwbHX/UcFOJhg7aHQ9hEmw=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "request": {
+ "version": "2.58.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.58.0.tgz",
+ "integrity": "sha1-tfScC5Sqt/rTiGEqH7atA7bMFYA=",
+ "requires": {
+ "aws-sign2": "~0.5.0",
+ "bl": "~0.9.0",
+ "caseless": "~0.10.0",
+ "combined-stream": "~1.0.1",
+ "extend": "~2.0.1",
+ "forever-agent": "~0.6.0",
+ "form-data": "~1.0.0-rc1",
+ "har-validator": "^1.6.1",
+ "hawk": "~2.3.0",
+ "http-signature": "~0.11.0",
+ "isstream": "~0.1.1",
+ "json-stringify-safe": "~5.0.0",
+ "mime-types": "~2.0.1",
+ "node-uuid": "~1.4.0",
+ "oauth-sign": "~0.8.0",
+ "qs": "~3.1.0",
+ "stringstream": "~0.0.4",
+ "tough-cookie": ">=0.12.0",
+ "tunnel-agent": "~0.4.0"
+ }
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "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="
+ },
+ "tough-cookie": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz",
+ "integrity": "sha1-yDoYMPTl7wuT7yo0iOck+N4Basc="
+ },
+ "tunnel-agent": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz",
+ "integrity": "sha1-EQTj82rIcSXChycAZ9WC0YEzv+4="
+ },
+ "twit": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/twit/-/twit-2.2.3.tgz",
+ "integrity": "sha1-A047nUiZaX21nnHwzytcOH6TBVw=",
+ "requires": {
+ "bluebird": "^3.1.5",
+ "mime": "^1.3.4",
+ "request": "2.58.0"
+ }
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
+ }
+ }
+}
diff --git a/app/node_modules/okservices/okwebhook/package-lock.json b/app/node_modules/okservices/okwebhook/package-lock.json
new file mode 100644
index 0000000..65e9ee7
--- /dev/null
+++ b/app/node_modules/okservices/okwebhook/package-lock.json
@@ -0,0 +1,5 @@
+{
+ "name": "okwebhook",
+ "version": "1.0.0",
+ "lockfileVersion": 1
+}
diff --git a/app/node_modules/okservices/package-lock.json b/app/node_modules/okservices/package-lock.json
new file mode 100644
index 0000000..ee928d3
--- /dev/null
+++ b/app/node_modules/okservices/package-lock.json
@@ -0,0 +1,5 @@
+{
+ "name": "okservices",
+ "version": "1.0.0",
+ "lockfileVersion": 1
+}
diff --git a/app/node_modules/oktemplate/package-lock.json b/app/node_modules/oktemplate/package-lock.json
new file mode 100644
index 0000000..0edbee8
--- /dev/null
+++ b/app/node_modules/oktemplate/package-lock.json
@@ -0,0 +1,1481 @@
+{
+ "name": "oktemplate",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "anymatch": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz",
+ "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=",
+ "requires": {
+ "arrify": "^1.0.0",
+ "micromatch": "^2.1.5"
+ }
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "requires": {
+ "arr-flatten": "^1.0.1"
+ }
+ },
+ "arr-flatten": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz",
+ "integrity": "sha1-5f/lTUXhnzLyFukeuZyM6JK7YEs="
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
+ },
+ "async-each": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.0.tgz",
+ "integrity": "sha1-tTGSJsKdmSd99jyK7gQJOqXx058="
+ },
+ "balanced-match": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz",
+ "integrity": "sha1-qRzdHr7xqGZZ5w/03vAWJfwtZ1Y="
+ },
+ "binary-extensions": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.4.0.tgz",
+ "integrity": "sha1-1zPMtiiYbXsybYhlbg3b06rDUbc="
+ },
+ "bluebird": {
+ "version": "2.9.24",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.9.24.tgz",
+ "integrity": "sha1-FKLnXwVIMj3DWqRA2SAHyhVOlnw="
+ },
+ "brace-expansion": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz",
+ "integrity": "sha1-Rr/1ARXUf8mriYVKu4fZgHihCZE=",
+ "requires": {
+ "balanced-match": "^0.3.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.3.tgz",
+ "integrity": "sha1-NdTn3aYysz4hXTioqc9DKcnHXSw=",
+ "requires": {
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
+ }
+ },
+ "chokidar": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.4.3.tgz",
+ "integrity": "sha1-X+czpNmsrqUbJkVLfllVkWPQ27I=",
+ "requires": {
+ "anymatch": "^1.3.0",
+ "async-each": "^1.0.0",
+ "fsevents": "^1.0.0",
+ "glob-parent": "^2.0.0",
+ "inherits": "^2.0.1",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^2.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.0.0"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "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="
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "requires": {
+ "is-posix-bracket": "^0.1.0"
+ }
+ },
+ "expand-range": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz",
+ "integrity": "sha1-rL1j5W79kTlyK3VfCZudtawfM/Y=",
+ "requires": {
+ "fill-range": "^2.1.0"
+ }
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ },
+ "filename-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz",
+ "integrity": "sha1-mW4+gEebmLmJfxWopYs9CE6SZ3U="
+ },
+ "fill-range": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
+ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
+ "requires": {
+ "is-number": "^2.1.0",
+ "isobject": "^2.0.0",
+ "randomatic": "^1.1.3",
+ "repeat-element": "^1.1.2",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "for-in": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.5.tgz",
+ "integrity": "sha1-AHN04rbVxnQgoUeb23WgSHK3OMQ="
+ },
+ "for-own": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz",
+ "integrity": "sha1-AUm0GjkIjHUV9R6+HBOG1F+TUHI=",
+ "requires": {
+ "for-in": "^0.1.5"
+ }
+ },
+ "fsevents": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.11.tgz",
+ "integrity": "sha1-MD1AUeQRqVp60Yfm+Mz/6TbKeKw=",
+ "optional": true,
+ "requires": {
+ "nan": "^2.1.0",
+ "node-pre-gyp": "^0.6.25"
+ },
+ "dependencies": {
+ "ansi": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
+ "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE="
+ },
+ "ansi-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
+ "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc="
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz",
+ "integrity": "sha1-gORw6VoIR5T+GJkmLFZnxuiN4bM=",
+ "optional": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.0 || ^1.1.13"
+ }
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
+ "optional": true
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ="
+ },
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "optional": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+ "optional": true
+ },
+ "aws4": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz",
+ "integrity": "sha1-054L7kEs7Q6O2Uoj4xTzE6lbn9E=",
+ "optional": true,
+ "requires": {
+ "lru-cache": "^4.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz",
+ "integrity": "sha1-E0OVXtry432bnn7nJB4nxLn7cr4=",
+ "optional": true,
+ "requires": {
+ "pseudomap": "^1.0.1",
+ "yallist": "^2.0.0"
+ },
+ "dependencies": {
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "optional": true
+ },
+ "yallist": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz",
+ "integrity": "sha1-MGxUODXwnuGkyyO3vOmrNByRzdQ=",
+ "optional": true
+ }
+ }
+ }
+ }
+ },
+ "bl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz",
+ "integrity": "sha1-/FQhoo/UImA2w7OJGmaiW8ZNIm4=",
+ "optional": true,
+ "requires": {
+ "readable-stream": "~2.0.5"
+ }
+ },
+ "block-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz",
+ "integrity": "sha1-Boj0baK7+c/wxPaCJaDLlcvopGs=",
+ "requires": {
+ "inherits": "~2.0.0"
+ }
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "caseless": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
+ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
+ "optional": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://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"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "optional": true,
+ "requires": {
+ "graceful-readlink": ">= 1.0.0"
+ }
+ },
+ "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="
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "optional": true,
+ "requires": {
+ "boom": "2.x.x"
+ }
+ },
+ "dashdash": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.0.tgz",
+ "integrity": "sha1-parm/Z2OFWYk6w3ZJZ6xK6JFOFo=",
+ "optional": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "optional": true
+ }
+ }
+ },
+ "debug": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
+ "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
+ "optional": true,
+ "requires": {
+ "ms": "0.7.1"
+ }
+ },
+ "deep-extend": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz",
+ "integrity": "sha1-7+QRPQgIX05vlod1mBD4B0aeIlM=",
+ "optional": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "optional": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0"
+ }
+ },
+ "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=",
+ "optional": true
+ },
+ "extend": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
+ "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=",
+ "optional": true
+ },
+ "extsprintf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
+ "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA="
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "optional": true
+ },
+ "form-data": {
+ "version": "1.0.0-rc4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz",
+ "integrity": "sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14=",
+ "optional": true,
+ "requires": {
+ "async": "^1.5.2",
+ "combined-stream": "^1.0.5",
+ "mime-types": "^2.1.10"
+ }
+ },
+ "fstream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz",
+ "integrity": "sha1-fo16c6uzZH7zbkuKFcqAHboD0Dg=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
+ }
+ },
+ "fstream-ignore": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.3.tgz",
+ "integrity": "sha1-THTZH6iLIrQvT4ahiigg3XnY/N0=",
+ "optional": true,
+ "requires": {
+ "fstream": "^1.0.0",
+ "inherits": "2",
+ "minimatch": "^3.0.0"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz",
+ "integrity": "sha1-UjYVelHk8ATBd/s8Un/33Xjw74M=",
+ "optional": true,
+ "requires": {
+ "brace-expansion": "^1.0.0"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz",
+ "integrity": "sha1-Rr/1ARXUf8mriYVKu4fZgHihCZE=",
+ "optional": true,
+ "requires": {
+ "balanced-match": "^0.3.0",
+ "concat-map": "0.0.1"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz",
+ "integrity": "sha1-qRzdHr7xqGZZ5w/03vAWJfwtZ1Y=",
+ "optional": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "optional": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "gauge": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
+ "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=",
+ "optional": true,
+ "requires": {
+ "ansi": "^0.3.0",
+ "has-unicode": "^2.0.0",
+ "lodash.pad": "^4.1.0",
+ "lodash.padend": "^4.1.0",
+ "lodash.padstart": "^4.1.0"
+ }
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
+ "optional": true
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "optional": true,
+ "requires": {
+ "is-property": "^1.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz",
+ "integrity": "sha1-kgM84RETxB4mKNYf36QLwQ3AFVw="
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+ "optional": true
+ },
+ "har-validator": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
+ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
+ "optional": true,
+ "requires": {
+ "chalk": "^1.1.1",
+ "commander": "^2.9.0",
+ "is-my-json-valid": "^2.12.4",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.0.tgz",
+ "integrity": "sha1-o82Wwwe6QdVZxaLuQIwSoRxMLsM=",
+ "optional": true
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "optional": true,
+ "requires": {
+ "boom": "2.x.x",
+ "cryptiles": "2.x.x",
+ "hoek": "2.x.x",
+ "sntp": "1.x.x"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "optional": true,
+ "requires": {
+ "assert-plus": "^0.2.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ },
+ "ini": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
+ "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
+ "optional": true
+ },
+ "is-my-json-valid": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz",
+ "integrity": "sha1-1Vd4qC/rawlj/0vhEdXRaE6JBwc=",
+ "optional": true,
+ "requires": {
+ "generate-function": "^2.0.0",
+ "generate-object-property": "^1.1.0",
+ "jsonpointer": "2.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
+ "optional": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "optional": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "optional": true
+ },
+ "jodid25519": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
+ "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=",
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz",
+ "integrity": "sha1-ZQmH2g3XT06/WhE3eiqi0nPpff0=",
+ "optional": true
+ },
+ "json-schema": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz",
+ "integrity": "sha1-UDVPGfYDkXxpX3C4Wvp3w7DyNQY=",
+ "optional": 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=",
+ "optional": true
+ },
+ "jsonpointer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz",
+ "integrity": "sha1-OvHdIP6FRjkQ1GmjheMwF9KgMNk=",
+ "optional": true
+ },
+ "jsprim": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz",
+ "integrity": "sha1-8gyQaskqvVjjt5rIvHCkiDJRLaE=",
+ "optional": true,
+ "requires": {
+ "extsprintf": "1.0.2",
+ "json-schema": "0.2.2",
+ "verror": "1.3.6"
+ }
+ },
+ "lodash.pad": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.1.0.tgz",
+ "integrity": "sha1-2746loH8y2mXBHOiJj9QwZasOqk=",
+ "optional": true,
+ "requires": {
+ "lodash.repeat": "^4.0.0",
+ "lodash.tostring": "^4.0.0"
+ }
+ },
+ "lodash.padend": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.2.0.tgz",
+ "integrity": "sha1-uE6MNAHUU4BVxuMhpR467hmIGhg=",
+ "optional": true,
+ "requires": {
+ "lodash.repeat": "^4.0.0",
+ "lodash.tostring": "^4.0.0"
+ }
+ },
+ "lodash.padstart": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.2.0.tgz",
+ "integrity": "sha1-42+J/Ww7UHIhkIdpW3Zd6D7JaYU=",
+ "optional": true,
+ "requires": {
+ "lodash.repeat": "^4.0.0",
+ "lodash.tostring": "^4.0.0"
+ }
+ },
+ "lodash.repeat": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz",
+ "integrity": "sha1-qvVwsqsL+w3abW6TKR1UswsffSI=",
+ "requires": {
+ "lodash.tostring": "^4.0.0"
+ }
+ },
+ "lodash.tostring": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz",
+ "integrity": "sha1-fTJqXPZNpCmPL9NbaI2EgmdTUog="
+ },
+ "mime-db": {
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz",
+ "integrity": "sha1-qyOmNy3J2G09yRIb0OvTgQWhkEo="
+ },
+ "mime-types": {
+ "version": "2.1.10",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz",
+ "integrity": "sha1-uTx8tDYuFtQQcqflRTj7TUMHCDc=",
+ "requires": {
+ "mime-db": "~1.22.0"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
+ "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
+ "optional": true
+ },
+ "node-pre-gyp": {
+ "version": "0.6.25",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.25.tgz",
+ "integrity": "sha1-LGgYd15vHfXjU7qAJPHAEYcmVFs=",
+ "optional": true,
+ "requires": {
+ "mkdirp": "~0.5.0",
+ "nopt": "~3.0.1",
+ "npmlog": "~2.0.0",
+ "rc": "~1.1.0",
+ "request": "2.x",
+ "rimraf": "~2.5.0",
+ "semver": "~5.1.0",
+ "tar": "~2.2.0",
+ "tar-pack": "~3.1.0"
+ },
+ "dependencies": {
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "optional": true,
+ "requires": {
+ "abbrev": "1"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz",
+ "integrity": "sha1-W2A1su6dT7XPhZ8Iqb6BsghJGEM=",
+ "optional": true
+ }
+ }
+ }
+ }
+ },
+ "node-uuid": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz",
+ "integrity": "sha1-baWhdmjEs91ZYjvaEc9/pMH2Cm8=",
+ "optional": true
+ },
+ "npmlog": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.3.tgz",
+ "integrity": "sha1-Ag+ZNR8MAuOZxnS6JW58TTs90pg=",
+ "optional": true,
+ "requires": {
+ "ansi": "~0.3.1",
+ "are-we-there-yet": "~1.1.2",
+ "gauge": "~1.2.5"
+ }
+ },
+ "oauth-sign": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz",
+ "integrity": "sha1-GCQ5vbkTeL90YOdcZOpD5kSN7wY=",
+ "optional": true
+ },
+ "once": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+ "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
+ "optional": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "optional": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz",
+ "integrity": "sha1-TINTjeH25mDCngoTRGhE96foglk=",
+ "optional": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "process-nextick-args": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz",
+ "integrity": "sha1-D5awAc6pCxJZLOVm7bl+wR5pvQU="
+ },
+ "qs": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.0.2.tgz",
+ "integrity": "sha1-iMaNWQ6O1Wx2x581LBe5gkZqv80=",
+ "optional": true
+ },
+ "rc": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz",
+ "integrity": "sha1-Q2UbdrauU7XIAvEVH6P8OwWZack=",
+ "optional": true,
+ "requires": {
+ "deep-extend": "~0.4.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~1.0.4"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "request": {
+ "version": "2.69.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.69.0.tgz",
+ "integrity": "sha1-z5HS4AB1KxIXFVwAUkGRGZGiNGo=",
+ "optional": true,
+ "requires": {
+ "aws-sign2": "~0.6.0",
+ "aws4": "^1.2.1",
+ "bl": "~1.0.0",
+ "caseless": "~0.11.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.0",
+ "forever-agent": "~0.6.1",
+ "form-data": "~1.0.0-rc3",
+ "har-validator": "~2.0.6",
+ "hawk": "~3.1.0",
+ "http-signature": "~1.1.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.7",
+ "node-uuid": "~1.4.7",
+ "oauth-sign": "~0.8.0",
+ "qs": "~6.0.2",
+ "stringstream": "~0.0.4",
+ "tough-cookie": "~2.2.0",
+ "tunnel-agent": "~0.4.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz",
+ "integrity": "sha1-YrqUf6TAtDY4Oa7+zU8PutYFlyY=",
+ "requires": {
+ "glob": "^7.0.0"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz",
+ "integrity": "sha1-CqI1kxpKlqwT1g/6wvuHe9btT1g=",
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "dependencies": {
+ "inflight": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
+ "integrity": "sha1-bLtFIevVHODsCpNr/XZX736bFyo=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ },
+ "dependencies": {
+ "wrappy": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+ "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk="
+ }
+ }
+ },
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ },
+ "minimatch": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz",
+ "integrity": "sha1-UjYVelHk8ATBd/s8Un/33Xjw74M=",
+ "requires": {
+ "brace-expansion": "^1.0.0"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz",
+ "integrity": "sha1-Rr/1ARXUf8mriYVKu4fZgHihCZE=",
+ "requires": {
+ "balanced-match": "^0.3.0",
+ "concat-map": "0.0.1"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz",
+ "integrity": "sha1-qRzdHr7xqGZZ5w/03vAWJfwtZ1Y="
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ }
+ }
+ }
+ }
+ },
+ "once": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+ "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
+ "requires": {
+ "wrappy": "1"
+ },
+ "dependencies": {
+ "wrappy": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+ "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk="
+ }
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz",
+ "integrity": "sha1-Jj2tpmqz8vsQv3+dJN2PPlcO+RI="
+ }
+ }
+ }
+ }
+ },
+ "semver": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz",
+ "integrity": "sha1-hfLPhVBGXE3wAM99hvawVBBqueU=",
+ "optional": true
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "optional": true,
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "sshpk": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.4.tgz",
+ "integrity": "sha1-rXtH3vymHIQV2WQkO2KwzmD7yjg=",
+ "optional": true,
+ "requires": {
+ "asn1": ">=0.2.3 <0.3.0",
+ "assert-plus": ">=0.2.0 <0.3.0",
+ "dashdash": ">=1.10.1 <2.0.0",
+ "ecc-jsbn": ">=0.0.1 <1.0.0",
+ "jodid25519": ">=1.0.0 <2.0.0",
+ "jsbn": ">=0.1.0 <0.2.0",
+ "tweetnacl": ">=0.13.0 <1.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
+ "optional": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
+ "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
+ "optional": true
+ },
+ "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
+ },
+ "tar": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
+ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
+ "requires": {
+ "block-stream": "*",
+ "fstream": "^1.0.2",
+ "inherits": "2"
+ }
+ },
+ "tar-pack": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.3.tgz",
+ "integrity": "sha1-YRt+YusvJ67aZFVPen+0iQDH4Vc=",
+ "optional": true,
+ "requires": {
+ "debug": "~2.2.0",
+ "fstream": "~1.0.8",
+ "fstream-ignore": "~1.0.3",
+ "once": "~1.3.3",
+ "readable-stream": "~2.0.4",
+ "rimraf": "~2.5.1",
+ "tar": "~2.2.1",
+ "uid-number": "~0.0.6"
+ }
+ },
+ "tough-cookie": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz",
+ "integrity": "sha1-yDoYMPTl7wuT7yo0iOck+N4Basc=",
+ "optional": true
+ },
+ "tunnel-agent": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz",
+ "integrity": "sha1-EQTj82rIcSXChycAZ9WC0YEzv+4=",
+ "optional": true
+ },
+ "tweetnacl": {
+ "version": "0.14.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz",
+ "integrity": "sha1-PaOC9nDyXe1417PReSEZvKC3Ey0=",
+ "optional": true
+ },
+ "uid-number": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz",
+ "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=",
+ "optional": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "verror": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
+ "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
+ "optional": true,
+ "requires": {
+ "extsprintf": "1.0.2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+ "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk=",
+ "optional": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "optional": true
+ }
+ }
+ },
+ "glob": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.3.tgz",
+ "integrity": "sha1-FVKMHHJ+R0qOdzFUHACwDsgClS0=",
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^2.0.1",
+ "once": "^1.3.0"
+ },
+ "dependencies": {
+ "inflight": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
+ "integrity": "sha1-bLtFIevVHODsCpNr/XZX736bFyo=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ },
+ "dependencies": {
+ "wrappy": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+ "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk="
+ }
+ }
+ },
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ },
+ "minimatch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
+ "integrity": "sha1-g76hFYA+egl6eAIkJyh+23Yvr+0=",
+ "requires": {
+ "brace-expansion": "^1.0.0"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz",
+ "integrity": "sha1-ybfQPAPze8cEvhAOUitA249s/Nk=",
+ "requires": {
+ "balanced-match": "^0.2.0",
+ "concat-map": "0.0.1"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz",
+ "integrity": "sha1-OPZzDAOqttXtu1K9k0iF51bXFnQ="
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ }
+ }
+ }
+ }
+ },
+ "once": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.3.1.tgz",
+ "integrity": "sha1-8/Pk2lt9J7XHMpae4+Z+cpRXsx8=",
+ "requires": {
+ "wrappy": "1"
+ },
+ "dependencies": {
+ "wrappy": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+ "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk="
+ }
+ }
+ }
+ }
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "requires": {
+ "glob-parent": "^2.0.0",
+ "is-glob": "^2.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "requires": {
+ "is-glob": "^2.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz",
+ "integrity": "sha1-kgM84RETxB4mKNYf36QLwQ3AFVw="
+ },
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "requires": {
+ "binary-extensions": "^1.0.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.3.tgz",
+ "integrity": "sha1-24l/w/esotUN6UtsjCiWpHcWJ68="
+ },
+ "is-dotfile": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz",
+ "integrity": "sha1-LBMjg/ORmfjtwmjKAbmwB9IFzE0="
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "requires": {
+ "is-primitive": "^2.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "isobject": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.0.0.tgz",
+ "integrity": "sha1-II3ocr1zeMKpKvlCij9W65GhIsQ=",
+ "requires": {
+ "isarray": "0.0.1"
+ }
+ },
+ "json-to-html": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/json-to-html/-/json-to-html-0.1.2.tgz",
+ "integrity": "sha1-egla5KNLM1NKrQlwykt0F7LBHuM="
+ },
+ "kind-of": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.0.2.tgz",
+ "integrity": "sha1-GH20JwRufpCUVpLmdoZovWkA3qA=",
+ "requires": {
+ "is-buffer": "^1.0.2"
+ }
+ },
+ "liquid-node": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/liquid-node/-/liquid-node-2.5.0.tgz",
+ "integrity": "sha1-+6dNEDb4BANzlXEkiutjPlc0drE=",
+ "requires": {
+ "strftime": "~0.8.0"
+ },
+ "dependencies": {
+ "strftime": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/strftime/-/strftime-0.8.4.tgz",
+ "integrity": "sha1-hrFZSYRefeIMDD1p2yt0+3Pk0l4="
+ }
+ }
+ },
+ "micromatch": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.7.tgz",
+ "integrity": "sha1-Ly6F70YUDb6my1XnObaxGzDqpQk=",
+ "requires": {
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
+ }
+ },
+ "minimatch": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
+ "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
+ "requires": {
+ "brace-expansion": "^1.0.0"
+ }
+ },
+ "nan": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.2.1.tgz",
+ "integrity": "sha1-1oaT9rNLtB1mvGizpPne/HnXFJs=",
+ "optional": true
+ },
+ "normalize-path": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz",
+ "integrity": "sha1-R4hqwWYnYNQmG32XnSQXCdPOP3o="
+ },
+ "object.omit": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.0.tgz",
+ "integrity": "sha1-hoWXMz1U5gZilAu0WGBd1q4S/pQ=",
+ "requires": {
+ "for-own": "^0.1.3",
+ "is-extendable": "^0.1.1"
+ }
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "requires": {
+ "glob-base": "^0.3.0",
+ "is-dotfile": "^1.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz",
+ "integrity": "sha1-Jj2tpmqz8vsQv3+dJN2PPlcO+RI="
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
+ },
+ "process-nextick-args": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz",
+ "integrity": "sha1-D5awAc6pCxJZLOVm7bl+wR5pvQU="
+ },
+ "q": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.2.0.tgz",
+ "integrity": "sha1-gRcFzkqYAq3/gRqw/NvQGUbh/iI="
+ },
+ "randomatic": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.5.tgz",
+ "integrity": "sha1-Xp718tVzxnvSuBJK6QtRVuRXhAs=",
+ "requires": {
+ "is-number": "^2.0.2",
+ "kind-of": "^3.0.2"
+ }
+ },
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ }
+ }
+ },
+ "readdirp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.0.0.tgz",
+ "integrity": "sha1-zAm6XRLY/rhkvHX24uvBNwYMvYI=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "minimatch": "^2.0.10",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "regex-cache": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
+ "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=",
+ "requires": {
+ "is-equal-shallow": "^0.1.3",
+ "is-primitive": "^2.0.0"
+ }
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo="
+ },
+ "repeat-string": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.4.tgz",
+ "integrity": "sha1-ZOwMkeD0tHX5DVtkNlHj5uW2wtU="
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ }
+ }
+}
diff --git a/app/node_modules/okutil/package-lock.json b/app/node_modules/okutil/package-lock.json
new file mode 100644
index 0000000..e29ac5d
--- /dev/null
+++ b/app/node_modules/okutil/package-lock.json
@@ -0,0 +1,23 @@
+{
+ "name": "okutil",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "lodash.isarray": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.1.tgz",
+ "integrity": "sha1-Wsh/RuoFzhqNJ9ivu+0QQ3Ccaw0="
+ },
+ "pluralize": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.1.2.tgz",
+ "integrity": "sha1-tcOfPSp3+xJ3ywzt49FEGPpJ8cQ="
+ },
+ "q": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.2.0.tgz",
+ "integrity": "sha1-gRcFzkqYAq3/gRqw/NvQGUbh/iI="
+ }
+ }
+}
diff --git a/app/node_modules/okview/package-lock.json b/app/node_modules/okview/package-lock.json
new file mode 100644
index 0000000..6f90ae2
--- /dev/null
+++ b/app/node_modules/okview/package-lock.json
@@ -0,0 +1,28 @@
+{
+ "name": "okview",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "lodash.isarray": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.1.tgz",
+ "integrity": "sha1-Wsh/RuoFzhqNJ9ivu+0QQ3Ccaw0="
+ },
+ "object-assign": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.0.0.tgz",
+ "integrity": "sha1-+DCbCQg7ASYezj73Nz8rV7jdcEI="
+ },
+ "pluralize": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.1.2.tgz",
+ "integrity": "sha1-tcOfPSp3+xJ3ywzt49FEGPpJ8cQ="
+ },
+ "q": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.2.0.tgz",
+ "integrity": "sha1-gRcFzkqYAq3/gRqw/NvQGUbh/iI="
+ }
+ }
+}
diff --git a/db.json b/db.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/db.json
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/examples/index.js b/examples/index.js
index c03550a..f08c752 100644
--- a/examples/index.js
+++ b/examples/index.js
@@ -1,108 +1,128 @@
-var okcms = require('..');
+var okcms = require("..");
-var isProduction = process.env.OK_PRODUCTION === 'true'
+var isProduction = process.env.OK_PRODUCTION === "true";
var port = process.env.PORT || 1337;
-var path = require('path')
+var path = require("path");
-var app = okcms.createApp({
+var app = okcms
+ .createApp({
+ root: "public",
- root: 'public',
+ debug: !isProduction,
+ production: isProduction,
- debug: !isProduction,
- production: isProduction,
-
- admin: {
- theme: 'okadmin',
-// dashboard: {
-// resources: {
-// card: {
-// groupBy: 'stack',
-// descending: true
-// }
-// }
-// },
- dashboard: {
- resources: {
- flour: {
- display: 'image',
- }
- }
- }
- },
-
- schemas: {
- page: {
- id: {type: 'string'},
- title: {type: 'string'},
- body: {type: 'text'},
- links: {type: 'link-list', textLabel: "A", linkLabel: "B"},
- },
- bread: {
- type: {type: 'string', id: true},
- title: {type: 'string'},
- description: {type: 'text'},
- color: {type: 'enum', options: ["red","blue","green"]},
- rating: {type: 'enum', options: {
- "e": "Everyone",
- "ec": "Early Childhood",
- "e10": "Everyone 10+",
- "t": "Teen",
- "m": "Mature",
- "ao": "Adults Only",
- "rp": "Rating Pending",
- }},
- video: {type: 'video'},
- images: {type: 'gallery'}
- },
- test: {
- id: {type: 'string', hidden: true},
- title: {type: 'string'},
- flagged: {type: 'flag'},
- media: {type: 'media'},
+ admin: {
+ theme: "okadmin",
+ // dashboard: {
+ // resources: {
+ // card: {
+ // groupBy: 'stack',
+ // descending: true
+ // }
+ // }
+ // },
+ dashboard: {
+ resources: {
+ flour: {
+ display: "image",
+ },
+ },
+ },
},
- flour: {
- id: {type: 'string', hidden: true},
- title: {type: 'string'},
- image: {type: 'image'},
- images: {type: 'triple-captioned-image-list'},
+
+ schemas: {
+ page: {
+ id: { type: "string" },
+ title: { type: "string" },
+ body: { type: "text" },
+ links: { type: "link-list", textLabel: "A", linkLabel: "B" },
+ },
+ bread: {
+ type: { type: "string", id: true },
+ title: { type: "string" },
+ description: { type: "text" },
+ color: { type: "enum", options: ["red", "blue", "green"] },
+ rating: {
+ type: "enum",
+ options: {
+ e: "Everyone",
+ ec: "Early Childhood",
+ e10: "Everyone 10+",
+ t: "Teen",
+ m: "Mature",
+ ao: "Adults Only",
+ rp: "Rating Pending",
+ },
+ },
+ video: { type: "video" },
+ images: { type: "gallery" },
+ },
+ test: {
+ id: { type: "string", hidden: true },
+ title: { type: "string" },
+ flagged: { type: "flag" },
+ media: { type: "media" },
+ },
+ flour: {
+ id: { type: "string", hidden: true },
+ title: { type: "string" },
+ image: { type: "image" },
+ images: { type: "triple-captioned-image-list" },
+ },
},
- },
- resources: [
- { type: 'page', static: {id: 'about'}},
- { type: 'page', static: {id: 'contact'}},
- { type: 'bread' },
- { type: 'test' },
- { type: 'flour' },
- ],
+ resources: [
+ { type: "page", static: { id: "about" } },
+ { type: "page", static: { id: "contact" } },
+ { type: "bread" },
+ { type: "test" },
+ { type: "flour" },
+ ],
- services: {
- s3: {
- key: process.env.S3_KEY,
- secret: process.env.S3_SECRET,
- bucket: process.env.S3_BUCKET,
- dirname: "okcms-example",
- image: { allowed: true, preserveFilename: false, maxbytes: 2*1024*1024 },
- video: { allowed: true, preserveFilename: true, maxbytes: 200*1024*1024 },
- audio: { allowed: true, preserveFilename: true, maxbytes: 100*1024*1024 },
- },
-
- webhook: {
- active: false,
- secret: 'test',
- command: '/path/to/build.sh',
- },
-
- example: {
- lib: require("./lib/okexample"),
- stuff: "things",
- },
-
- dumpfm: {
- lib: require("./lib/okdumpfm"),
- },
-
-/*
+ services: {
+ s3: {
+ key: process.env.S3_KEY,
+ secret: process.env.S3_SECRET,
+ bucket: process.env.S3_BUCKET,
+ dirname: "okcms-example",
+ image: {
+ allowed: true,
+ preserveFilename: false,
+ maxbytes: 2 * 1024 * 1024,
+ },
+ file: {
+ allowed: true,
+ preserveFilename: false,
+ maxbytes: 100 * 1024 * 1024,
+ },
+ video: {
+ allowed: true,
+ preserveFilename: true,
+ maxbytes: 200 * 1024 * 1024,
+ },
+ audio: {
+ allowed: true,
+ preserveFilename: true,
+ maxbytes: 100 * 1024 * 1024,
+ },
+ },
+
+ webhook: {
+ active: false,
+ secret: "test",
+ command: "/path/to/build.sh",
+ },
+
+ example: {
+ lib: require("./lib/okexample"),
+ stuff: "things",
+ },
+
+ dumpfm: {
+ lib: require("./lib/okdumpfm"),
+ },
+
+ /*
push: {
lib: require("./lib/okpush"),
mongodbUrl: "mongodb://localhost/okpush_example",
@@ -128,26 +148,26 @@ var app = okcms.createApp({
}
},
*/
- },
-
- views: {
- '/': {
- data: [
- {type: 'bread', query: '*'},
- {type: 'page', query: '*'}
- ]
- },
- '/about': {
- data: {type: 'page', query: 'about'}
},
- '/contact': {
- data: {type: 'page', query: 'contact'}
- },
- '/:id': {
- data: {type: 'bread', query: ':id'}
- }
- }
-}).listen(port)
+ views: {
+ "/": {
+ data: [
+ { type: "bread", query: "*" },
+ { type: "page", query: "*" },
+ ],
+ },
+ "/about": {
+ data: { type: "page", query: "about" },
+ },
+ "/contact": {
+ data: { type: "page", query: "contact" },
+ },
+ "/:id": {
+ data: { type: "bread", query: ":id" },
+ },
+ },
+ })
+ .listen(port);
-console.log('Server listening at port %d...', port);
+console.log("Server listening at port %d...", port);
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..bfba245
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,2016 @@
+{
+ "name": "okcms",
+ "version": "0.1.36",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
+ },
+ "accepts": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
+ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
+ "requires": {
+ "mime-types": "~2.1.18",
+ "negotiator": "0.6.1"
+ }
+ },
+ "ajv": {
+ "version": "6.10.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
+ "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2",
+ "longest": "^1.0.1",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
+ "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz",
+ "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=",
+ "dev": true
+ },
+ "argparse": {
+ "version": "0.1.16",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
+ "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
+ "dev": true,
+ "requires": {
+ "underscore": "~1.7.0",
+ "underscore.string": "~2.4.0"
+ },
+ "dependencies": {
+ "underscore.string": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
+ "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
+ "dev": true
+ }
+ }
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ },
+ "async": {
+ "version": "0.1.22",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
+ "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "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="
+ },
+ "aws4": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "body-parser": {
+ "version": "1.18.3",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
+ "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
+ "requires": {
+ "bytes": "3.0.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "~1.6.3",
+ "iconv-lite": "0.4.23",
+ "on-finished": "~2.3.0",
+ "qs": "6.5.2",
+ "raw-body": "2.3.3",
+ "type-is": "~1.6.16"
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
+ "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
+ "dev": true,
+ "requires": {
+ "pako": "~0.2.0"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
+ },
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
+ }
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "dev": true,
+ "requires": {
+ "align-text": "^0.1.3",
+ "lazy-cache": "^1.0.3"
+ }
+ },
+ "chalk": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
+ "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^1.1.0",
+ "escape-string-regexp": "^1.0.0",
+ "has-ansi": "^0.1.0",
+ "strip-ansi": "^0.3.0",
+ "supports-color": "^0.2.0"
+ }
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "dev": true,
+ "requires": {
+ "center-align": "^0.1.1",
+ "right-align": "^0.1.1",
+ "wordwrap": "0.0.2"
+ }
+ },
+ "coffee-script": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
+ "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=",
+ "dev": true
+ },
+ "colors": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
+ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "content-disposition": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
+ "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
+ },
+ "cookie": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ },
+ "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="
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "requires": {
+ "array-find-index": "^1.0.1"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "dateformat": {
+ "version": "1.0.2-1.2.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
+ "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ },
+ "dom-serializer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
+ "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.0",
+ "entities": "^1.1.1"
+ }
+ },
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "dotenv": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-1.2.0.tgz",
+ "integrity": "sha1-fNc+FuB/BXyAchR6W8OoZ38KtcY="
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+ },
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+ "dev": true
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ },
+ "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
+ },
+ "esprima": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
+ "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+ },
+ "eventemitter2": {
+ "version": "0.4.14",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+ "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
+ "dev": true
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "dev": true
+ },
+ "express": {
+ "version": "4.16.4",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
+ "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
+ "requires": {
+ "accepts": "~1.3.5",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.18.3",
+ "content-disposition": "0.5.2",
+ "content-type": "~1.0.4",
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.1.1",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.2",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.4",
+ "qs": "6.5.2",
+ "range-parser": "~1.2.0",
+ "safe-buffer": "5.1.2",
+ "send": "0.16.2",
+ "serve-static": "1.13.2",
+ "setprototypeof": "1.1.0",
+ "statuses": "~1.4.0",
+ "type-is": "~1.6.16",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
+ },
+ "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="
+ },
+ "figures": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5",
+ "object-assign": "^4.1.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "file-sync-cmp": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz",
+ "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=",
+ "dev": true
+ },
+ "finalhandler": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
+ "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.2",
+ "statuses": "~1.4.0",
+ "unpipe": "~1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "findup-sync": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
+ "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
+ "dev": true,
+ "requires": {
+ "glob": "~3.2.9",
+ "lodash": "~2.4.1"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
+ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
+ "dev": true,
+ "requires": {
+ "inherits": "2",
+ "minimatch": "0.3"
+ }
+ },
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
+ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "2",
+ "sigmund": "~1.0.0"
+ }
+ }
+ }
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "getobject": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
+ "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "3.1.21",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
+ "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "~1.2.0",
+ "inherits": "1",
+ "minimatch": "~0.2.11"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
+ "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
+ "dev": true
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
+ "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
+ "dev": true
+ },
+ "grunt": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
+ "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
+ "dev": true,
+ "requires": {
+ "async": "~0.1.22",
+ "coffee-script": "~1.3.3",
+ "colors": "~0.6.2",
+ "dateformat": "1.0.2-1.2.3",
+ "eventemitter2": "~0.4.13",
+ "exit": "~0.1.1",
+ "findup-sync": "~0.1.2",
+ "getobject": "~0.1.0",
+ "glob": "~3.1.21",
+ "grunt-legacy-log": "~0.1.0",
+ "grunt-legacy-util": "~0.2.0",
+ "hooker": "~0.2.3",
+ "iconv-lite": "~0.2.11",
+ "js-yaml": "~2.0.5",
+ "lodash": "~0.9.2",
+ "minimatch": "~0.2.12",
+ "nopt": "~1.0.10",
+ "rimraf": "~2.2.8",
+ "underscore.string": "~2.2.1",
+ "which": "~1.0.5"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.2.11",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
+ "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-cli": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-0.1.13.tgz",
+ "integrity": "sha1-6evEBHYx9QEtkidww5N4EzytEPQ=",
+ "dev": true,
+ "requires": {
+ "findup-sync": "~0.1.0",
+ "nopt": "~1.0.10",
+ "resolve": "~0.3.1"
+ }
+ },
+ "grunt-contrib-clean": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.6.0.tgz",
+ "integrity": "sha1-9TLbpLghJnTHwBPhRr2mY4uQSPY=",
+ "dev": true,
+ "requires": {
+ "rimraf": "~2.2.1"
+ }
+ },
+ "grunt-contrib-concat": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-0.5.1.tgz",
+ "integrity": "sha1-lTxu/f39LBB6uchQd/LUsk0xzUk=",
+ "dev": true,
+ "requires": {
+ "chalk": "^0.5.1",
+ "source-map": "^0.3.0"
+ }
+ },
+ "grunt-contrib-copy": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-0.8.2.tgz",
+ "integrity": "sha1-3zHJD/zECbyfr+ROwN0eQlmRb+o=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.1",
+ "file-sync-cmp": "^0.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": 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"
+ }
+ },
+ "has-ansi": {
+ "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"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": 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=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-contrib-uglify": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.9.2.tgz",
+ "integrity": "sha1-GmHG8hJBDkq7T3yJFTcXsQFWAmA=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.0.0",
+ "lodash": "^3.2.0",
+ "maxmin": "^1.0.0",
+ "uglify-js": "^2.4.24",
+ "uri-path": "0.0.2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": 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"
+ }
+ },
+ "has-ansi": {
+ "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"
+ }
+ },
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": 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=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-dentist": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/grunt-dentist/-/grunt-dentist-0.3.6.tgz",
+ "integrity": "sha1-AaBsICHukFi3JWWdi+sNs+Zlcrg=",
+ "dev": true,
+ "requires": {
+ "htmlparser2": "^3.9.0"
+ }
+ },
+ "grunt-legacy-log": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
+ "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=",
+ "dev": true,
+ "requires": {
+ "colors": "~0.6.2",
+ "grunt-legacy-log-utils": "~0.1.1",
+ "hooker": "~0.2.3",
+ "lodash": "~2.4.1",
+ "underscore.string": "~2.3.3"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "dev": true
+ },
+ "underscore.string": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-legacy-log-utils": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
+ "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=",
+ "dev": true,
+ "requires": {
+ "colors": "~0.6.2",
+ "lodash": "~2.4.1",
+ "underscore.string": "~2.3.3"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "dev": true
+ },
+ "underscore.string": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-legacy-util": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
+ "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
+ "dev": true,
+ "requires": {
+ "async": "~0.1.22",
+ "exit": "~0.1.1",
+ "getobject": "~0.1.0",
+ "hooker": "~0.2.3",
+ "lodash": "~0.9.2",
+ "underscore.string": "~2.2.1",
+ "which": "~1.0.5"
+ }
+ },
+ "gzip-size": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz",
+ "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=",
+ "dev": true,
+ "requires": {
+ "browserify-zlib": "^0.1.4",
+ "concat-stream": "^1.4.1"
+ }
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
+ },
+ "har-validator": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "requires": {
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "has-ansi": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
+ "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^0.2.0"
+ }
+ },
+ "hooker": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
+ "dev": true
+ },
+ "htmlparser2": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
+ "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.1",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^3.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz",
+ "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
+ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "ipaddr.js": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
+ "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "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="
+ },
+ "js-yaml": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
+ "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
+ "dev": true,
+ "requires": {
+ "argparse": "~ 0.1.11",
+ "esprima": "~ 1.0.2"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "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="
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
+ "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
+ "dev": true
+ }
+ }
+ },
+ "lodash": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
+ "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
+ "dev": true
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "dev": true
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
+ "dev": true
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ },
+ "maxmin": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz",
+ "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.0.0",
+ "figures": "^1.0.1",
+ "gzip-size": "^1.0.0",
+ "pretty-bytes": "^1.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": 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"
+ }
+ },
+ "has-ansi": {
+ "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"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": 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=",
+ "dev": true
+ }
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+ },
+ "mime": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
+ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
+ },
+ "mime-db": {
+ "version": "1.40.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
+ "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
+ },
+ "mime-types": {
+ "version": "2.1.24",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
+ "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
+ "requires": {
+ "mime-db": "1.40.0"
+ }
+ },
+ "minimatch": {
+ "version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
+ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "2",
+ "sigmund": "~1.0.0"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "negotiator": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
+ "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
+ },
+ "nopt": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "dependencies": {
+ "resolve": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz",
+ "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ }
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+ },
+ "object-assign": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
+ "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo="
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "pako": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
+ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
+ "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
+ "dev": true
+ }
+ }
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pretty-bytes": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
+ "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^4.0.1",
+ "meow": "^3.1.0"
+ }
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "dev": true
+ },
+ "proxy-addr": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
+ "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
+ "requires": {
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.9.0"
+ }
+ },
+ "psl": {
+ "version": "1.1.31",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
+ "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw=="
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
+ "q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ },
+ "range-parser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
+ "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
+ },
+ "raw-body": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
+ "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
+ "requires": {
+ "bytes": "3.0.0",
+ "http-errors": "1.6.3",
+ "iconv-lite": "0.4.23",
+ "unpipe": "1.0.0"
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
+ }
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "resolve": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.3.1.tgz",
+ "integrity": "sha1-NMY0R8ZkxwWY0cmxJvxDsqJDEKQ=",
+ "dev": true
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "dev": true,
+ "requires": {
+ "align-text": "^0.1.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "semver": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
+ "dev": true
+ },
+ "send": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
+ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.6.2",
+ "mime": "1.4.1",
+ "ms": "2.0.0",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.0",
+ "statuses": "~1.4.0"
+ }
+ },
+ "serve-static": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
+ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.2",
+ "send": "0.16.2"
+ }
+ },
+ "setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
+ },
+ "sigmund": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
+ "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.3.0.tgz",
+ "integrity": "sha1-hYb7mloAXltQHiHNGLbyG0V60fk=",
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ },
+ "spdx-correct": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+ "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz",
+ "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "statuses": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
+ "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
+ "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^0.2.1"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^4.0.1"
+ }
+ },
+ "supports-color": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz",
+ "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=",
+ "dev": true
+ },
+ "tough-cookie": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+ "requires": {
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ }
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+ },
+ "type-is": {
+ "version": "1.6.16",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
+ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.18"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "dev": true,
+ "requires": {
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0",
+ "yargs": "~3.10.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true,
+ "optional": true
+ },
+ "underscore": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
+ "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
+ "dev": true
+ },
+ "underscore.string": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
+ "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
+ "dev": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "uri-path": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-0.0.2.tgz",
+ "integrity": "sha1-gD6wHy/rF5J9zOD2GH5yt19T9VQ=",
+ "dev": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+ },
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
+ },
+ "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",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "which": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
+ "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
+ "dev": true
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "dev": true
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^1.0.2",
+ "cliui": "^2.1.0",
+ "decamelize": "^1.0.0",
+ "window-size": "0.1.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true
+ }
+ }
+ }
+ }
+}
diff --git a/themes/okadmin/public/js/app.js b/themes/okadmin/public/js/app.js
index 53b1940..dd6513a 100644
--- a/themes/okadmin/public/js/app.js
+++ b/themes/okadmin/public/js/app.js
@@ -1,297 +1,334 @@
-var OKAdmin = function(){
-
+var OKAdmin = function () {
// initialize our multi-image uploader with an element and a template
- $(".group.image-list").each(function(){
- var parent = this
- var uploader = new OKUpload ()
- uploader.bind( this )
- uploader.add = function(media){
- var url = media.url
- var imageTemplate = $(".image-template", parent).html()
- var $el = $(imageTemplate)
- $el.find(".uri").val(media.url)
- $el.find(".image-width").val(media.width)
- $el.find(".image-height").val(media.height)
- $el.find("img").attr("src", media.url)
- $("ol", parent).prepend($el)
- }
- })
+ $(".group.image-list").each(function () {
+ var parent = this;
+ var uploader = new OKUpload();
+ uploader.bind(this);
+ uploader.add = function (media) {
+ var url = media.url;
+ var imageTemplate = $(".image-template", parent).html();
+ var $el = $(imageTemplate);
+ $el.find(".uri").val(media.url);
+ $el.find(".image-width").val(media.width);
+ $el.find(".image-height").val(media.height);
+ $el.find("img").attr("src", media.url);
+ $("ol", parent).prepend($el);
+ };
+ });
// delete image from gallery
- $(document).on("mousedown", ".image-list .remove", function(){
+ $(document).on("mousedown", ".image-list .remove", function () {
if (confirm("Remove this image?")) {
- $(this).parent().remove()
+ $(this).parent().remove();
}
- })
+ });
// Add default date
- $('.date input').each(function(i, el){
- var value = el.getAttribute('value')
+ $(".date input").each(function (i, el) {
+ var value = el.getAttribute("value");
if (!value) {
- el.setAttribute('value', toDateInputValue(new Date))
+ el.setAttribute("value", toDateInputValue(new Date()));
}
- function toDateInputValue (date) {
- var local = new Date(date);
- local.setMinutes(date.getMinutes() - date.getTimezoneOffset());
- return local.toJSON().slice(0,10);
+ function toDateInputValue(date) {
+ var local = new Date(date);
+ local.setMinutes(date.getMinutes() - date.getTimezoneOffset());
+ return local.toJSON().slice(0, 10);
}
- })
+ });
// initialize our multimedia uploader with an element and a template
- $(".group.media-list").each(function(){
- var parent = this
- var uploader = new OKUpload ()
- uploader.bind( this )
- uploader.add = function(media){
- var url = media.url
- var imageTemplate = $(".image-template", parent).html()
- var $el = $(imageTemplate)
- $el.find(".uri").val(media.url)
- $el.find(".image-width").val(media.width)
- $el.find(".image-height").val(media.height)
- $el.find("img").attr("src", media.url)
- $("ol", parent).prepend($el)
- }
- uploader.addMedia = function(media){
+ $(".group.media-list").each(function () {
+ var parent = this;
+ var uploader = new OKUpload();
+ uploader.bind(this);
+ uploader.add = function (media) {
+ var url = media.url;
+ var imageTemplate = $(".image-template", parent).html();
+ var $el = $(imageTemplate);
+ $el.find(".uri").val(media.url);
+ $el.find(".image-width").val(media.width);
+ $el.find(".image-height").val(media.height);
+ $el.find("img").attr("src", media.url);
+ $("ol", parent).prepend($el);
+ };
+ uploader.addMedia = function (media) {
switch (media.type) {
- case 'youtube':
- case 'vimeo':
- case 'video':
- var videoTemplate = $(".video-template", parent).html()
- var $el = $(videoTemplate)
- $el.addClass("loaded")
- $el.find(".video-type").val( media.type )
- $el.find(".video-token").val( media.token )
- $el.find(".video-uri").val( media.uri )
- $el.find(".video-title").val( media.title )
- $el.find(".video-thumb").val( media.thumbnail )
- $el.find(".video-width").val( media.width )
- $el.find(".video-height").val( media.height )
- $el.find("img").attr("src", media.thumbnail )
- $("ol", parent).prepend($el)
- break
- case 'audio':
- var audioTemplate = $(".audio-template", parent).html()
- var $el = $(audioTemplate)
- $el.addClass("loaded")
- $el.find(".audio-type").val( media.type )
- $el.find(".audio-token").val( media.token )
- $el.find(".audio-uri").val( media.uri )
- $el.find(".audio-title").val( media.title )
- $el.find(".audio-thumb").val( media.thumbnail )
- $el.find(".audio-duration").val( media.duration )
- $el.find("img").attr("src", media.thumbnail )
- $("ol", parent).prepend($el)
- break
- case 'link':
- var linkTemplate = $(".link-template", parent).html()
- var $el = $(linkTemplate)
- $el.addClass("loaded")
- $el.find(".uri").val( media.url )
- $("ol", parent).prepend($el)
- break
+ case "youtube":
+ case "vimeo":
+ case "video":
+ var videoTemplate = $(".video-template", parent).html();
+ var $el = $(videoTemplate);
+ $el.addClass("loaded");
+ $el.find(".video-type").val(media.type);
+ $el.find(".video-token").val(media.token);
+ $el.find(".video-uri").val(media.uri);
+ $el.find(".video-title").val(media.title);
+ $el.find(".video-thumb").val(media.thumbnail);
+ $el.find(".video-width").val(media.width);
+ $el.find(".video-height").val(media.height);
+ $el.find("img").attr("src", media.thumbnail);
+ $("ol", parent).prepend($el);
+ break;
+ case "audio":
+ var audioTemplate = $(".audio-template", parent).html();
+ var $el = $(audioTemplate);
+ $el.addClass("loaded");
+ $el.find(".audio-type").val(media.type);
+ $el.find(".audio-token").val(media.token);
+ $el.find(".audio-uri").val(media.uri);
+ $el.find(".audio-title").val(media.title);
+ $el.find(".audio-thumb").val(media.thumbnail);
+ $el.find(".audio-duration").val(media.duration);
+ $el.find("img").attr("src", media.thumbnail);
+ $("ol", parent).prepend($el);
+ break;
+ case "link":
+ var linkTemplate = $(".link-template", parent).html();
+ var $el = $(linkTemplate);
+ $el.addClass("loaded");
+ $el.find(".uri").val(media.url);
+ $("ol", parent).prepend($el);
+ break;
default:
- alert("Unsupported link type!")
+ alert("Unsupported link type!");
}
- }
- })
+ };
+ });
// delete image from gallery
- $(document).on("mousedown", ".media-list .remove", function(){
+ $(document).on("mousedown", ".media-list .remove", function () {
if (confirm("Remove this media?")) {
- $(this).parent().remove()
+ $(this).parent().remove();
}
- })
+ });
// initialize our single image uploader with existing DOM
- $(".group.image").each(function(){
- var $el = $(this)
- var uploader = new OKUpload ()
- uploader.bind( this )
- uploader.add = function(media){
- console.log(media)
- $el.find(".uri").val(media.url)
- $el.find(".caption").val("")
- $el.find(".image-width").val(media.width)
- $el.find(".image-height").val(media.height)
- $el.find("img").attr("src", media.url).show()
- $el.addClass("loaded")
- }
- })
+ $(".group.image").each(function () {
+ var $el = $(this);
+ var uploader = new OKUpload();
+ uploader.bind(this);
+ uploader.add = function (media) {
+ console.log(media);
+ $el.find(".uri").val(media.url);
+ $el.find(".caption").val("");
+ $el.find(".image-width").val(media.width);
+ $el.find(".image-height").val(media.height);
+ $el.find("img").attr("src", media.url).show();
+ $el.addClass("loaded");
+ };
+ });
// delete image from single image entry
- $(document).on("mousedown", ".image .remove", function(){
+ $(document).on("mousedown", ".image .remove", function () {
if (confirm("Remove this image?")) {
- var $el = $(this).closest(".image")
- $el.removeClass('loaded')
- $el.find(".uri").val("")
- $el.find(".image-width").val("")
- $el.find(".image-height").val("")
- $el.find(".caption").val("")
- $el.find("img").attr("src", "")
+ var $el = $(this).closest(".image");
+ $el.removeClass("loaded");
+ $el.find(".uri").val("");
+ $el.find(".image-width").val("");
+ $el.find(".image-height").val("");
+ $el.find(".caption").val("");
+ $el.find("img").attr("src", "");
}
- })
+ });
// make the region sortable with drag-and-drop
- $(".media-list ol, .image-list ol, .link-list .links").sortable()
- $(".media-list ol, .image-list ol").disableSelection()
- $(document).on("click", ".main.index .resource-category.active ol a", function(e){
- e.preventDefault()
- })
+ $(".media-list ol, .image-list ol, .link-list .links").sortable();
+ $(".media-list ol, .image-list ol").disableSelection();
+ $(document).on(
+ "click",
+ ".main.index .resource-category.active ol a",
+ function (e) {
+ e.preventDefault();
+ }
+ );
// populate a video field with info from our url parser
- var last_url
- $(".video .url").on("focus", function(){
- var $el = $(this)
- last_url = $el.val()
- })
- $(".video .url").on("keydown blur", pressEnter(function(){
- var $el = $(this)
- var url = $el.val()
- if (url == last_url) { return }
- Parser.parse( url, function(media){
- console.log(url,media)
- $el.parent().addClass("loaded")
- $el.parent().find(".video-type").val( media.type )
- $el.parent().find(".video-token").val( media.token )
- $el.parent().find(".video-uri").val( media.url )
- $el.parent().find(".video-title").val( media.title )
- $el.parent().find(".video-thumb").val( media.thumbnail )
- $el.parent().find(".video-width").val( media.width )
- $el.parent().find(".video-height").val( media.height )
+ var last_url;
+ $(".video .url").on("focus", function () {
+ var $el = $(this);
+ last_url = $el.val();
+ });
+ $(".video .url").on(
+ "keydown blur",
+ pressEnter(function () {
+ var $el = $(this);
+ var url = $el.val();
+ if (url == last_url) {
+ return;
+ }
+ Parser.parse(url, function (media) {
+ console.log(url, media);
+ $el.parent().addClass("loaded");
+ $el.parent().find(".video-type").val(media.type);
+ $el.parent().find(".video-token").val(media.token);
+ $el.parent().find(".video-uri").val(media.url);
+ $el.parent().find(".video-title").val(media.title);
+ $el.parent().find(".video-thumb").val(media.thumbnail);
+ $el.parent().find(".video-width").val(media.width);
+ $el.parent().find(".video-height").val(media.height);
+ });
})
- }))
+ );
+
+ // Upload an arbitrary file like a PDF
+ $(".group.file").each(function () {
+ var $el = $(this);
+ var uploader = new OKUpload();
+ uploader.bind(this);
+ uploader.add = function (media) {
+ console.log(media);
+ $el.find(".uri").val(media.url);
+ $el.find(".caption").val("");
+ $el.find("a").attr("href", media.url).show();
+ $el.addClass("loaded");
+ };
+ });
+ // delete file
+ $(document).on("mousedown", ".file .remove", function () {
+ if (confirm("Remove this file?")) {
+ var $el = $(this).closest(".file");
+ $el.removeClass("loaded");
+ $el.find(".uri").val("");
+ $el.find(".caption").val("");
+ $el.find("a").attr("href", "");
+ }
+ });
// Add a new link to the list
- $('.link-list').on('click', '.add-link-btn', function addNewLink (e) {
- e.preventDefault && e.preventDefault()
- e.stopPropagation && e.stopPropagation()
- var $delegate = $(e.delegateTarget)
- var $list = $delegate.find('.links')
- var linkCount = $list.find("li").length
-
- var $linkText = $delegate.find(".link-input-new.link-text")
- var $linkURI = $delegate.find(".link-input-new.link-uri")
-
- var linkText = $linkText.val() || 'Link Text'
- var linkURI = $linkURI.val()
-
- if (! linkURI) {
- alert('Please enter a link')
- return
+ $(".link-list").on("click", ".add-link-btn", function addNewLink(e) {
+ e.preventDefault && e.preventDefault();
+ e.stopPropagation && e.stopPropagation();
+ var $delegate = $(e.delegateTarget);
+ var $list = $delegate.find(".links");
+ var linkCount = $list.find("li").length;
+
+ var $linkText = $delegate.find(".link-input-new.link-text");
+ var $linkURI = $delegate.find(".link-input-new.link-uri");
+
+ var linkText = $linkText.val() || "Link Text";
+ var linkURI = $linkURI.val();
+
+ if (!linkURI) {
+ alert("Please enter a link");
+ return;
}
- var template = $delegate.find(".link-template").html()
- template = template.replace(/\[\]/g, "[" + linkCount + "]")
- var $el = $(template)
- $el.find(".link-text").val( linkText )
- $el.find(".link-uri").val( linkURI )
- $list.append($el)
- $linkText.val("")
- $linkURI.val("")
- })
+ var template = $delegate.find(".link-template").html();
+ template = template.replace(/\[\]/g, "[" + linkCount + "]");
+ var $el = $(template);
+ $el.find(".link-text").val(linkText);
+ $el.find(".link-uri").val(linkURI);
+ $list.append($el);
+ $linkText.val("");
+ $linkURI.val("");
+ });
// Remove a link from the list
- $('.link-list').on('mousedown touchstart', '.remove-link-btn', function(e) {
- e.preventDefault()
- e.stopPropagation()
- var $target = $(e.target)
- $target.closest("li").remove()
- })
+ $(".link-list").on("mousedown touchstart", ".remove-link-btn", function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ var $target = $(e.target);
+ $target.closest("li").remove();
+ });
- $('.link-list input').on('keydown', function(e){
- if ( e.keyCode == 13 ) {
- e.preventDefault()
- e.stopPropagation()
- if ($(this).hasClass('link-input-new')) {
- $(this).next('.add-link-btn').trigger('click')
+ $(".link-list input").on("keydown", function (e) {
+ if (e.keyCode == 13) {
+ e.preventDefault();
+ e.stopPropagation();
+ if ($(this).hasClass("link-input-new")) {
+ $(this).next(".add-link-btn").trigger("click");
}
}
- })
+ });
// fix post indexing in list-driven inputs
- $(".main.resource form").submit(function(e){
- var $id = $("[name=id]"), $title = $("[name=title]"), $menu = $("[name=menu]"), $section = $(".resource.main")
- var id = $section.data("id"), type = $section.data("type")
+ $(".main.resource form").submit(function (e) {
+ var $id = $("[name=id]"),
+ $title = $("[name=title]"),
+ $menu = $("[name=menu]"),
+ $section = $(".resource.main");
+ var id = $section.data("id"),
+ type = $section.data("type");
- if ($title.length && ! $title.val()) {
- $title.focus()
- alert("Please enter a title")
- e.preventDefault()
- return
+ if ($title.length && !$title.val()) {
+ $title.focus();
+ alert("Please enter a title");
+ e.preventDefault();
+ return;
}
- if ($menu.length && ! $menu.val()) {
- $menu.val( $title.val() )
+ if ($menu.length && !$menu.val()) {
+ $menu.val($title.val());
}
// TODO: pass through whether this page is static
if (type === "page" && (id == "contact" || id == "about")) {
- ;
- }
- else {
- var slug = slugify( $title.val() )
- $id.val( slug )
+ } else {
+ var slug = slugify($title.val());
+ $id.val(slug);
}
// Parse date input
- $('.property .date').each(function(i, el) {
- var name = $(el).parent('.property').data('name')
- var $input = $(el).find('input')
- var date = new Date($input.val())
+ $(".property .date").each(function (i, el) {
+ var name = $(el).parent(".property").data("name");
+ var $input = $(el).find("input");
+ var date = new Date($input.val());
// Set to middle of day so it is the same date
// for all locales
- date.setUTCHours(12)
- var dateString = date.toUTCString()
- var normalizedInput = document.createElement('input')
+ date.setUTCHours(12);
+ var dateString = date.toUTCString();
+ var normalizedInput = document.createElement("input");
$(normalizedInput).attr({
name: name,
- type: 'text',
- value: dateString
- })
- $input.remove()
- $(el).append(normalizedInput)
- })
+ type: "text",
+ value: dateString,
+ });
+ $input.remove();
+ $(el).append(normalizedInput);
+ });
// Modify flags checkboxes such that unchecked ones return "false"
// instead of nothing
- $('.property input[type=checkbox]').each(function(i, el) {
- var checked = !! el.checked
- if (! checked) {
- el.setAttribute('value', 'false')
+ $(".property input[type=checkbox]").each(function (i, el) {
+ var checked = !!el.checked;
+ if (!checked) {
+ el.setAttribute("value", "false");
}
- el.checked = true
- })
-
- $(".link-list").each(function(){
- var $inputs = $(this).find(".link-input-new")
+ el.checked = true;
+ });
+
+ $(".link-list").each(function () {
+ var $inputs = $(this).find(".link-input-new");
if ($inputs.eq(0).val() && $inputs.eq(1).val()) {
- $(this).find(".add-link-btn").trigger("click")
+ $(this).find(".add-link-btn").trigger("click");
}
- })
+ });
- $("ol").each(function(){
- $("li", this).each(function(index){
- $(this).find("input,textarea").each(function(){
- var field = $(this).attr("name").replace(/\[[0-9]*\]/, "[" + index + "]")
- $(this).attr("name", field)
- })
- })
- })
- })
+ $("ol").each(function () {
+ $("li", this).each(function (index) {
+ $(this)
+ .find("input,textarea")
+ .each(function () {
+ var field = $(this)
+ .attr("name")
+ .replace(/\[[0-9]*\]/, "[" + index + "]");
+ $(this).attr("name", field);
+ });
+ });
+ });
+ });
// delete individual records
- $("#delete_form").submit(function(e){
- if (confirm("Are you sure you want to delete this record?")) {
- return
- }
- else {
- e.preventDefault()
- }
- })
+ $("#delete_form").submit(function (e) {
+ if (confirm("Are you sure you want to delete this record?")) {
+ return;
+ } else {
+ e.preventDefault();
+ }
+ });
// reorder items in categories
- $(".resource-category:not(.grouped)").on("click", ".edit-btn", function(e) {
+ $(".resource-category:not(.grouped)").on("click", ".edit-btn", function (e) {
e.preventDefault();
- var $parent = $(e.delegateTarget)
+ var $parent = $(e.delegateTarget);
var $editBtn = $parent.find(".edit-btn");
var $cancelBtn = $parent.find(".cancel-btn");
var $saveBtn = $parent.find(".save-btn");
@@ -302,53 +339,57 @@ var OKAdmin = function(){
$ol.disableSelection();
toggle();
- $cancelBtn.one("click", function(e) {
+ $cancelBtn.one("click", function (e) {
$ol.sortable("cancel");
$ol.enableSelection();
toggle();
});
- $saveBtn.one("click", function(e) {
+ $saveBtn.one("click", function (e) {
$ol.sortable();
toggle();
});
function toggle() {
- toggles.forEach(function($el) {
- $el.toggleClass('active');
- })
+ toggles.forEach(function ($el) {
+ $el.toggleClass("active");
+ });
}
});
// save new category order
- $(".resource-category.root").on("submit", "form", function(e) {
+ $(".resource-category.root").on("submit", "form", function (e) {
var $parent = $(e.delegateTarget);
- var $resources = $parent.find(".resource-input")
- var isDescending = $parent.hasClass("descending")
- $resources.each(function(index) {
+ var $resources = $parent.find(".resource-input");
+ var isDescending = $parent.hasClass("descending");
+ $resources.each(function (index) {
var $input = $(this);
var parsed = JSON.parse($input.val());
if (isDescending) {
parsed.__index = $resources.length - index;
- }
- else {
+ } else {
parsed.__index = index;
}
$input.val(JSON.stringify(parsed));
- })
+ });
});
-
- $(window).on('keydown', function(e){
- if ( (e.ctrlKey || e.altKey || e.metaKey) && e.keyCode == 83 ) {
- e.preventDefault()
- $("#resource_form").submit()
- }
- })
-}
-$(function(){
- window.app = new OKAdmin ()
-})
+ $(window).on("keydown", function (e) {
+ if ((e.ctrlKey || e.altKey || e.metaKey) && e.keyCode == 83) {
+ e.preventDefault();
+ $("#resource_form").submit();
+ }
+ });
+};
+$(function () {
+ window.app = new OKAdmin();
+});
-function slugify (s){ return (s || "").toLowerCase().replace(/\s/g,"-").replace(/[^-_a-zA-Z0-9]/g, '-').replace(/-+/g, "-") }
+function slugify(s) {
+ return (s || "")
+ .toLowerCase()
+ .replace(/\s/g, "-")
+ .replace(/[^-_a-zA-Z0-9]/g, "-")
+ .replace(/-+/g, "-");
+}
diff --git a/themes/okadmin/public/js/upload.js b/themes/okadmin/public/js/upload.js
index 0871b43..d300dac 100644
--- a/themes/okadmin/public/js/upload.js
+++ b/themes/okadmin/public/js/upload.js
@@ -1,152 +1,159 @@
-
-var OKUpload = function(){
+var OKUpload = function () {
this.config = $("#uploadConfig").data() || {
+ fileMaxbytes: 10 * 1024 * 1024,
imageMaxbytes: 10 * 1024 * 1024,
audioMaxbytes: 10 * 1024 * 1024,
videoMaxbytes: 10 * 1024 * 1024,
- }
- this.imageAction = "/_services/s3/image"
- this.videoAction = "/_services/s3/video"
- this.audioAction = "/_services/s3/audio"
- this.$progress = $("<div class='progress'>")
- this.xhrCount = 0
- this.loadCount = 0
-}
-OKUpload.prototype.bind = function(rapper){
- var uploader = this
- this.rapper = rapper
-
- $(this.rapper).append(this.$progress)
- $(".add-image-button input", rapper).change( uploader.handleFileSelect.bind(uploader) )
- $(".add-url", rapper).on("keydown blur", pressEnter( function(e){
- var url = $(this).val()
- $(this).val("")
- uploader.parse(url)
- }))
-}
-OKUpload.prototype.parse = function(url){
- if (! url) return
- var uploader = this
- Parser.parse( url, function(media){
- console.log(url, media)
- if (! media) {
- alert("Not a valid link")
- }
- else if (media.type == "image") {
- uploader.add(media)
- }
- else {
- uploader.addMedia(media)
+ };
+ this.fileAction = "/_services/s3/file";
+ this.imageAction = "/_services/s3/image";
+ this.videoAction = "/_services/s3/video";
+ this.audioAction = "/_services/s3/audio";
+ this.$progress = $("<div class='progress'>");
+ this.xhrCount = 0;
+ this.loadCount = 0;
+};
+OKUpload.prototype.bind = function (rapper) {
+ var uploader = this;
+ this.rapper = rapper;
+
+ $(this.rapper).append(this.$progress);
+ $(".add-image-button input", rapper).change(
+ uploader.handleFileSelect.bind(uploader)
+ );
+ $(".add-url", rapper).on(
+ "keydown blur",
+ pressEnter(function (e) {
+ var url = $(this).val();
+ $(this).val("");
+ uploader.parse(url);
+ })
+ );
+};
+OKUpload.prototype.parse = function (url) {
+ if (!url) return;
+ var uploader = this;
+ Parser.parse(url, function (media) {
+ console.log(url, media);
+ if (!media) {
+ alert("Not a valid link");
+ } else if (media.type == "image") {
+ uploader.add(media);
+ } else {
+ uploader.addMedia(media);
}
- })
-}
-OKUpload.prototype.handleFileSelect = function(e) {
+ });
+};
+OKUpload.prototype.handleFileSelect = function (e) {
e.stopPropagation();
e.preventDefault();
var files = e.dataTransfer ? e.dataTransfer.files : e.target.files;
- for (var i = 0, f; f = files[i]; i++) {
- this.upload(f)
+ for (var i = 0, f; (f = files[i]); i++) {
+ this.upload(f);
}
-}
-OKUpload.prototype.largeFileError = function(file, maxSize) {
- var your_bytes = bytesToString(file.size)
- var max_bytes = bytesToString(maxSize)
- alert("Sorry, your file is too big.\n\n" + file.name + "\n\nYour file: " + your_bytes + "\nMax size: " + max_bytes)
- function bytesToString (n) {
- if (n < 1024) return n + " bytes"
- n /= 1024
- if (n < 1024) return n.toFixed(1) + " kb"
- n /= 1024
- if (n < 1024) return n.toFixed(1) + " mb"
+};
+OKUpload.prototype.largeFileError = function (file, maxSize) {
+ var your_bytes = bytesToString(file.size);
+ var max_bytes = bytesToString(maxSize);
+ alert(
+ "Sorry, your file is too big.\n\n" +
+ file.name +
+ "\n\nYour file: " +
+ your_bytes +
+ "\nMax size: " +
+ max_bytes
+ );
+ function bytesToString(n) {
+ if (n < 1024) return n + " bytes";
+ n /= 1024;
+ if (n < 1024) return n.toFixed(1) + " kb";
+ n /= 1024;
+ if (n < 1024) return n.toFixed(1) + " mb";
}
-}
-OKUpload.prototype.upload = function(f){
+};
+OKUpload.prototype.upload = function (f) {
+ var field, action;
- var field, action
-
- if ( f.type.match('video.*') ) {
+ if (f.type.match("video.*")) {
if (this.config.videoMaxbytes && f.size > this.config.videoMaxbytes) {
- return this.largeFileError(f, this.config.videoMaxbytes)
+ return this.largeFileError(f, this.config.videoMaxbytes);
}
- field = 'video'
- action = this.videoAction
- }
- else if ( f.type.match('audio.*') ) {
+ field = "video";
+ action = this.videoAction;
+ } else if (f.type.match("audio.*")) {
if (this.config.audioMaxbytes && f.size > this.config.audioMaxbytes) {
- return this.largeFileError(f, this.config.audioMaxbytes)
+ return this.largeFileError(f, this.config.audioMaxbytes);
}
- field = 'audio'
- action = this.audioAction
- }
- else {
+ field = "audio";
+ action = this.audioAction;
+ } else {
if (this.config.imageMaxbytes && f.size > this.config.imageMaxbytes) {
- return this.largeFileError(f, this.config.imageMaxbytes)
+ return this.largeFileError(f, this.config.imageMaxbytes);
}
- field = 'image'
- action = this.imageAction || this.action
+ field = "image";
+ action = this.imageAction || this.action;
}
- this.xhrCount += 1
+ this.xhrCount += 1;
- this.$progress.addClass("loading")
+ this.$progress.addClass("loading");
- var $loader = $("<div class='xhr'>")
- var $loading_bar = $("<div>")
- $loading_bar.css("width", "0%")
- $loader.append( $loading_bar )
- this.$progress.append($loader)
-
- var fd = new FormData()
- fd.append(field, f)
+ var $loader = $("<div class='xhr'>");
+ var $loading_bar = $("<div>");
+ $loading_bar.css("width", "0%");
+ $loader.append($loading_bar);
+ this.$progress.append($loader);
+
+ var fd = new FormData();
+ fd.append(field, f);
+
+ var request = new XMLHttpRequest();
+ request.open("POST", action, true);
- var request = new XMLHttpRequest()
- request.open("POST", action, true)
-
request.addEventListener("progress", updateProgress.bind(this));
request.addEventListener("load", transferComplete.bind(this));
request.addEventListener("error", transferError.bind(this));
request.addEventListener("abort", transferAbort.bind(this));
- function updateProgress (e) {
+ function updateProgress(e) {
if (e.lengthComputable) {
- var percentComplete = Math.round( 100 * e.loaded / e.total )
- $loading_bar.css("width", percentComplete + "%")
+ var percentComplete = Math.round((100 * e.loaded) / e.total);
+ $loading_bar.css("width", percentComplete + "%");
}
}
- function transferComplete (data) {
- this.loadCount += 1
- this.hideUploadBars()
+ function transferComplete(data) {
+ this.loadCount += 1;
+ this.hideUploadBars();
if (request.readyState == 4 && request.status == 200) {
- var responseData
+ var responseData;
try {
- responseData = JSON.parse( request.responseText )
- this.success( responseData )
- }
- catch (e) {
- console.log(request.responseText)
- console.log("ERROR PARSING JSON")
+ responseData = JSON.parse(request.responseText);
+ this.success(responseData);
+ } catch (e) {
+ console.log(request.responseText);
+ console.log("ERROR PARSING JSON");
}
}
- console.log(arguments, request)
+ console.log(arguments, request);
}
- function transferError (data) {
- console.log("Transfer error")
- this.loadCount += 1
- this.hideUploadBars()
- console.log(arguments)
+ function transferError(data) {
+ console.log("Transfer error");
+ this.loadCount += 1;
+ this.hideUploadBars();
+ console.log(arguments);
}
- function transferAbort (data) {
- console.log("Transfer aborted")
- this.loadCount += 1
- this.hideUploadBars()
- console.log(arguments)
+ function transferAbort(data) {
+ console.log("Transfer aborted");
+ this.loadCount += 1;
+ this.hideUploadBars();
+ console.log(arguments);
}
- request.send(fd)
-
-/*
+ request.send(fd);
+
+ /*
var request = $.ajax({
url: this.action,
type: "post",
@@ -157,39 +164,41 @@ OKUpload.prototype.upload = function(f){
})
request.done(this.success.bind(this))
*/
-}
+};
OKUpload.prototype.hideUploadBars = function () {
if (this.xhrCount == this.loadCount) {
- this.$progress.removeClass("loading")
- setTimeout(function(){
- this.$progress.empty()
- }.bind(this), 300)
+ this.$progress.removeClass("loading");
+ setTimeout(
+ function () {
+ this.$progress.empty();
+ }.bind(this),
+ 300
+ );
}
-}
-OKUpload.prototype.success = function(data){
+};
+OKUpload.prototype.success = function (data) {
if (data.error) {
- console.log(data.error)
- return
+ console.log(data.error);
+ return;
}
- var url = data.url
- console.log(url)
- this.parse(url)
-}
-OKUpload.prototype.add = function(media){
- console.log(media)
-}
-OKUpload.prototype.addMedia = function(media){
- console.log(media)
-}
-OKUpload.prototype.error = function(error){
- throw error
-}
+ var url = data.url;
+ console.log(url);
+ this.parse(url);
+};
+OKUpload.prototype.add = function (media) {
+ console.log(media);
+};
+OKUpload.prototype.addMedia = function (media) {
+ console.log(media);
+};
+OKUpload.prototype.error = function (error) {
+ throw error;
+};
-
-function pressEnter(fn){
- return function(e){
- if (e.keyCode && e.keyCode !== 13) return
- e.preventDefault()
- fn.apply(this)
- }
-} \ No newline at end of file
+function pressEnter(fn) {
+ return function (e) {
+ if (e.keyCode && e.keyCode !== 13) return;
+ e.preventDefault();
+ fn.apply(this);
+ };
+}
diff --git a/themes/okadmin/templates/partials/inputs.liquid b/themes/okadmin/templates/partials/inputs.liquid
index 60466de..a7c3caa 100644
--- a/themes/okadmin/templates/partials/inputs.liquid
+++ b/themes/okadmin/templates/partials/inputs.liquid
@@ -10,13 +10,16 @@
{% if type == 'string' %}
<input
name="{{name}}" type="text" value="{{spec.value | escape}}">
+
{% elsif type == 'text' %}
<textarea
name="{{name}}">{{spec.value | escape}}</textarea>
+
{% elsif type == 'number' %}
<input
type="number"
name="{{name}}" value="{{spec.value | escape}}">
+
{% elsif type == 'enum' or type == 'foreign-key' %}
<select
name="{{name}}">
@@ -28,6 +31,7 @@
{% endif %}
{% endfor %}
</select>
+
{% elsif type == 'video' %}
<div class="video group {% if spec.value.url %}loaded{% endif %}">
<input name="{{name}}[url]" type="text" value="{{spec.value.url}}" class="url" placeholder="Enter a video URL">
@@ -40,6 +44,7 @@
<label>Thumbnail</label>
<input name="{{name}}[thumb]" type="text" value="{{spec.value.thumb | escape}}" class="video-thumb">
</div>
+
{% elsif type == 'image' %}
<div class="image group {% if spec.value.uri %}loaded{% endif %}">
<div class="fields">
@@ -59,8 +64,23 @@
</div>
</div>
- {% elsif type == 'date' %}
+ {% elsif type == 'file' %}
+ <div class="image group {% if spec.value.uri %}loaded{% endif %}">
+ <div class="fields">
+ <div class="add-image-button">
+ <input type="file">
+ <button>+ Add file</button>
+ </div>
+ </div>
+ <div class="file-element">
+ <input class="uri" type="hidden" name="{{name}}[uri]" value="{{spec.value.uri}}">
+ <textarea class="caption" name="{{name}}[caption]">{{spec.value.caption | escape}}</textarea>
+ <a target="_blank" href="{{spec.value.uri}}">(view)</a>
+ <button class="remove">x</button>
+ </div>
+ </div>
+ {% elsif type == 'date' %}
<div class="date">
<input name="{{name}}"
type="date"
@@ -71,7 +91,6 @@
</div>
{% elsif type == 'flag' %}
-
<div class="flag">
<input name="{{name}}"
type="checkbox"
diff --git a/themes/okadmin/templates/partials/tail.liquid b/themes/okadmin/templates/partials/tail.liquid
index 522023b..2dc7da1 100644
--- a/themes/okadmin/templates/partials/tail.liquid
+++ b/themes/okadmin/templates/partials/tail.liquid
@@ -1,6 +1,7 @@
</div> {% comment %} closes container tag {% endcomment %}
<div id="progress"></div>
<div id="uploadConfig"
+ data-file-maxbytes="{{meta.services.s3.file.maxbytes}}"
data-image-maxbytes="{{meta.services.s3.image.maxbytes}}"
data-audio-maxbytes="{{meta.services.s3.audio.maxbytes}}"
data-video-maxbytes="{{meta.services.s3.video.maxbytes}}"></div>