diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 53b061a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,9 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true \ No newline at end of file diff --git a/.env b/.env new file mode 100644 index 0000000..99679d0 --- /dev/null +++ b/.env @@ -0,0 +1,7 @@ +PORt = 3003 + +DB_HOST=101.34.210.51 +DB_PORT=3306 +DB_USER=root +DB_PASSWORD=root +DB_NAME=conversition diff --git a/.env.example b/.env.example deleted file mode 100644 index 7d9e9de..0000000 --- a/.env.example +++ /dev/null @@ -1,29 +0,0 @@ -MONGODB_URI=mongodb://localhost:27017 -MONGOLAB_URI=mongodb://localhost:27017 - -SESSION_SECRET=ashdfjhasdlkjfhalksdjhflak - -MAILGUN_USER=postmaster@sandbox697fcddc09814c6b83718b9fd5d4e5dc.mailgun.org -MAILGUN_PASSWORD=29eldds1uri6 - -SENDGRID_USER=hslogin -SENDGRID_PASSWORD=hspassword00 - -FACEBOOK_ID=754220301289665 -FACEBOOK_SECRET=41860e58c256a3d7ad8267d3c1939a4a - -INSTAGRAM_ID=9f5c39ab236a48e0aec354acb77eee9b -INSTAGRAM_SECRET=5920619aafe842128673e793a1c40028 - -GITHUB_ID=cb448b1d4f0c743a1e36 -GITHUB_SECRET=815aa4606f476444691c5f1c16b9c70da6714dc6 - -TWITTER_KEY=6NNBDyJ2TavL407A3lWxPFKBI -TWITTER_SECRET=ZHaYyK3DQCqv49Z9ofsYdqiUgeoICyh6uoBgFfu7OeYC7wTQKa - -GOOGLE_ID=828110519058.apps.googleusercontent.com -GOOGLE_SECRET=JdZsIaWhUFIchmC1a_IZzOHb - -TWILIO_SID=AC6f0edc4c47becc6d0a952536fc9a6025 -TWILIO_TOKEN=a67170ff7afa2df3f4c7d97cd240d0f3 - diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c7f20e --- /dev/null +++ b/.gitignore @@ -0,0 +1,1236 @@ +/node_modules/.bin/nodemon +/node_modules/.bin/nodetouch +/node_modules/.bin/semver +/node_modules/@types/node/assert/strict.d.ts +/node_modules/@types/node/compatibility/iterators.d.ts +/node_modules/@types/node/dns/promises.d.ts +/node_modules/@types/node/fs/promises.d.ts +/node_modules/@types/node/inspector/promises.d.ts +/node_modules/@types/node/path/posix.d.ts +/node_modules/@types/node/path/win32.d.ts +/node_modules/@types/node/readline/promises.d.ts +/node_modules/@types/node/stream/consumers.d.ts +/node_modules/@types/node/stream/promises.d.ts +/node_modules/@types/node/stream/web.d.ts +/node_modules/@types/node/test/reporters.d.ts +/node_modules/@types/node/timers/promises.d.ts +/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +/node_modules/@types/node/ts5.6/index.d.ts +/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +/node_modules/@types/node/ts5.7/index.d.ts +/node_modules/@types/node/util/types.d.ts +/node_modules/@types/node/web-globals/abortcontroller.d.ts +/node_modules/@types/node/web-globals/blob.d.ts +/node_modules/@types/node/web-globals/console.d.ts +/node_modules/@types/node/web-globals/crypto.d.ts +/node_modules/@types/node/web-globals/domexception.d.ts +/node_modules/@types/node/web-globals/encoding.d.ts +/node_modules/@types/node/web-globals/events.d.ts +/node_modules/@types/node/web-globals/fetch.d.ts +/node_modules/@types/node/web-globals/importmeta.d.ts +/node_modules/@types/node/web-globals/messaging.d.ts +/node_modules/@types/node/web-globals/navigator.d.ts +/node_modules/@types/node/web-globals/performance.d.ts +/node_modules/@types/node/web-globals/storage.d.ts +/node_modules/@types/node/web-globals/streams.d.ts +/node_modules/@types/node/web-globals/timers.d.ts +/node_modules/@types/node/web-globals/url.d.ts +/node_modules/@types/node/assert.d.ts +/node_modules/@types/node/async_hooks.d.ts +/node_modules/@types/node/buffer.buffer.d.ts +/node_modules/@types/node/buffer.d.ts +/node_modules/@types/node/child_process.d.ts +/node_modules/@types/node/cluster.d.ts +/node_modules/@types/node/console.d.ts +/node_modules/@types/node/constants.d.ts +/node_modules/@types/node/crypto.d.ts +/node_modules/@types/node/dgram.d.ts +/node_modules/@types/node/diagnostics_channel.d.ts +/node_modules/@types/node/dns.d.ts +/node_modules/@types/node/domain.d.ts +/node_modules/@types/node/events.d.ts +/node_modules/@types/node/fs.d.ts +/node_modules/@types/node/globals.d.ts +/node_modules/@types/node/globals.typedarray.d.ts +/node_modules/@types/node/http.d.ts +/node_modules/@types/node/http2.d.ts +/node_modules/@types/node/https.d.ts +/node_modules/@types/node/index.d.ts +/node_modules/@types/node/inspector.d.ts +/node_modules/@types/node/inspector.generated.d.ts +/node_modules/@types/node/LICENSE +/node_modules/@types/node/module.d.ts +/node_modules/@types/node/net.d.ts +/node_modules/@types/node/os.d.ts +/node_modules/@types/node/package.json +/node_modules/@types/node/path.d.ts +/node_modules/@types/node/perf_hooks.d.ts +/node_modules/@types/node/process.d.ts +/node_modules/@types/node/punycode.d.ts +/node_modules/@types/node/querystring.d.ts +/node_modules/@types/node/quic.d.ts +/node_modules/@types/node/readline.d.ts +/node_modules/@types/node/README.md +/node_modules/@types/node/repl.d.ts +/node_modules/@types/node/sea.d.ts +/node_modules/@types/node/sqlite.d.ts +/node_modules/@types/node/stream.d.ts +/node_modules/@types/node/string_decoder.d.ts +/node_modules/@types/node/test.d.ts +/node_modules/@types/node/timers.d.ts +/node_modules/@types/node/tls.d.ts +/node_modules/@types/node/trace_events.d.ts +/node_modules/@types/node/tty.d.ts +/node_modules/@types/node/url.d.ts +/node_modules/@types/node/util.d.ts +/node_modules/@types/node/v8.d.ts +/node_modules/@types/node/vm.d.ts +/node_modules/@types/node/wasi.d.ts +/node_modules/@types/node/worker_threads.d.ts +/node_modules/@types/node/zlib.d.ts +/node_modules/accepts/HISTORY.md +/node_modules/accepts/index.js +/node_modules/accepts/LICENSE +/node_modules/accepts/package.json +/node_modules/accepts/README.md +/node_modules/anymatch/index.d.ts +/node_modules/anymatch/index.js +/node_modules/anymatch/LICENSE +/node_modules/anymatch/package.json +/node_modules/anymatch/README.md +/node_modules/aws-ssl-profiles/lib/@types/profiles.d.ts +/node_modules/aws-ssl-profiles/lib/@types/profiles.js +/node_modules/aws-ssl-profiles/lib/profiles/ca/defaults.d.ts +/node_modules/aws-ssl-profiles/lib/profiles/ca/defaults.js +/node_modules/aws-ssl-profiles/lib/profiles/ca/proxies.d.ts +/node_modules/aws-ssl-profiles/lib/profiles/ca/proxies.js +/node_modules/aws-ssl-profiles/lib/index.d.ts +/node_modules/aws-ssl-profiles/lib/index.js +/node_modules/aws-ssl-profiles/LICENSE +/node_modules/aws-ssl-profiles/package.json +/node_modules/aws-ssl-profiles/README.md +/node_modules/balanced-match/dist/commonjs/index.d.ts +/node_modules/balanced-match/dist/commonjs/index.d.ts.map +/node_modules/balanced-match/dist/commonjs/index.js +/node_modules/balanced-match/dist/commonjs/index.js.map +/node_modules/balanced-match/dist/commonjs/package.json +/node_modules/balanced-match/dist/esm/index.d.ts +/node_modules/balanced-match/dist/esm/index.d.ts.map +/node_modules/balanced-match/dist/esm/index.js +/node_modules/balanced-match/dist/esm/index.js.map +/node_modules/balanced-match/dist/esm/package.json +/node_modules/balanced-match/LICENSE.md +/node_modules/balanced-match/package.json +/node_modules/balanced-match/README.md +/node_modules/binary-extensions/binary-extensions.json +/node_modules/binary-extensions/binary-extensions.json.d.ts +/node_modules/binary-extensions/index.d.ts +/node_modules/binary-extensions/index.js +/node_modules/binary-extensions/license +/node_modules/binary-extensions/package.json +/node_modules/binary-extensions/readme.md +/node_modules/body-parser/lib/types/json.js +/node_modules/body-parser/lib/types/raw.js +/node_modules/body-parser/lib/types/text.js +/node_modules/body-parser/lib/types/urlencoded.js +/node_modules/body-parser/lib/read.js +/node_modules/body-parser/lib/utils.js +/node_modules/body-parser/index.js +/node_modules/body-parser/LICENSE +/node_modules/body-parser/package.json +/node_modules/body-parser/README.md +/node_modules/brace-expansion/dist/commonjs/index.d.ts +/node_modules/brace-expansion/dist/commonjs/index.d.ts.map +/node_modules/brace-expansion/dist/commonjs/index.js +/node_modules/brace-expansion/dist/commonjs/index.js.map +/node_modules/brace-expansion/dist/commonjs/package.json +/node_modules/brace-expansion/dist/esm/index.d.ts +/node_modules/brace-expansion/dist/esm/index.d.ts.map +/node_modules/brace-expansion/dist/esm/index.js +/node_modules/brace-expansion/dist/esm/index.js.map +/node_modules/brace-expansion/dist/esm/package.json +/node_modules/brace-expansion/LICENSE +/node_modules/brace-expansion/package.json +/node_modules/brace-expansion/README.md +/node_modules/braces/lib/compile.js +/node_modules/braces/lib/constants.js +/node_modules/braces/lib/expand.js +/node_modules/braces/lib/parse.js +/node_modules/braces/lib/stringify.js +/node_modules/braces/lib/utils.js +/node_modules/braces/index.js +/node_modules/braces/LICENSE +/node_modules/braces/package.json +/node_modules/braces/README.md +/node_modules/bytes/History.md +/node_modules/bytes/index.js +/node_modules/bytes/LICENSE +/node_modules/bytes/package.json +/node_modules/bytes/Readme.md +/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +/node_modules/call-bind-apply-helpers/test/index.js +/node_modules/call-bind-apply-helpers/.eslintrc +/node_modules/call-bind-apply-helpers/.nycrc +/node_modules/call-bind-apply-helpers/actualApply.d.ts +/node_modules/call-bind-apply-helpers/actualApply.js +/node_modules/call-bind-apply-helpers/applyBind.d.ts +/node_modules/call-bind-apply-helpers/applyBind.js +/node_modules/call-bind-apply-helpers/CHANGELOG.md +/node_modules/call-bind-apply-helpers/functionApply.d.ts +/node_modules/call-bind-apply-helpers/functionApply.js +/node_modules/call-bind-apply-helpers/functionCall.d.ts +/node_modules/call-bind-apply-helpers/functionCall.js +/node_modules/call-bind-apply-helpers/index.d.ts +/node_modules/call-bind-apply-helpers/index.js +/node_modules/call-bind-apply-helpers/LICENSE +/node_modules/call-bind-apply-helpers/package.json +/node_modules/call-bind-apply-helpers/README.md +/node_modules/call-bind-apply-helpers/reflectApply.d.ts +/node_modules/call-bind-apply-helpers/reflectApply.js +/node_modules/call-bind-apply-helpers/tsconfig.json +/node_modules/call-bound/.github/FUNDING.yml +/node_modules/call-bound/test/index.js +/node_modules/call-bound/.eslintrc +/node_modules/call-bound/.nycrc +/node_modules/call-bound/CHANGELOG.md +/node_modules/call-bound/index.d.ts +/node_modules/call-bound/index.js +/node_modules/call-bound/LICENSE +/node_modules/call-bound/package.json +/node_modules/call-bound/README.md +/node_modules/call-bound/tsconfig.json +/node_modules/chokidar/lib/constants.js +/node_modules/chokidar/lib/fsevents-handler.js +/node_modules/chokidar/lib/nodefs-handler.js +/node_modules/chokidar/types/index.d.ts +/node_modules/chokidar/index.js +/node_modules/chokidar/LICENSE +/node_modules/chokidar/package.json +/node_modules/chokidar/README.md +/node_modules/content-disposition/index.js +/node_modules/content-disposition/LICENSE +/node_modules/content-disposition/package.json +/node_modules/content-disposition/README.md +/node_modules/content-type/HISTORY.md +/node_modules/content-type/index.js +/node_modules/content-type/LICENSE +/node_modules/content-type/package.json +/node_modules/content-type/README.md +/node_modules/cookie/index.js +/node_modules/cookie/LICENSE +/node_modules/cookie/package.json +/node_modules/cookie/README.md +/node_modules/cookie/SECURITY.md +/node_modules/cookie-signature/History.md +/node_modules/cookie-signature/index.js +/node_modules/cookie-signature/LICENSE +/node_modules/cookie-signature/package.json +/node_modules/cookie-signature/Readme.md +/node_modules/cors/lib/index.js +/node_modules/cors/LICENSE +/node_modules/cors/package.json +/node_modules/cors/README.md +/node_modules/debug/src/browser.js +/node_modules/debug/src/common.js +/node_modules/debug/src/index.js +/node_modules/debug/src/node.js +/node_modules/debug/LICENSE +/node_modules/debug/package.json +/node_modules/debug/README.md +/node_modules/denque/CHANGELOG.md +/node_modules/denque/index.d.ts +/node_modules/denque/index.js +/node_modules/denque/LICENSE +/node_modules/denque/package.json +/node_modules/denque/README.md +/node_modules/depd/lib/browser/index.js +/node_modules/depd/History.md +/node_modules/depd/index.js +/node_modules/depd/LICENSE +/node_modules/depd/package.json +/node_modules/depd/Readme.md +/node_modules/dotenv/lib/cli-options.js +/node_modules/dotenv/lib/env-options.js +/node_modules/dotenv/lib/main.d.ts +/node_modules/dotenv/lib/main.js +/node_modules/dotenv/skills/dotenv/SKILL.md +/node_modules/dotenv/skills/dotenvx/SKILL.md +/node_modules/dotenv/CHANGELOG.md +/node_modules/dotenv/config.d.ts +/node_modules/dotenv/config.js +/node_modules/dotenv/LICENSE +/node_modules/dotenv/package.json +/node_modules/dotenv/README.md +/node_modules/dotenv/README-es.md +/node_modules/dotenv/SECURITY.md +/node_modules/dunder-proto/.github/FUNDING.yml +/node_modules/dunder-proto/test/get.js +/node_modules/dunder-proto/test/index.js +/node_modules/dunder-proto/test/set.js +/node_modules/dunder-proto/.eslintrc +/node_modules/dunder-proto/.nycrc +/node_modules/dunder-proto/CHANGELOG.md +/node_modules/dunder-proto/get.d.ts +/node_modules/dunder-proto/get.js +/node_modules/dunder-proto/LICENSE +/node_modules/dunder-proto/package.json +/node_modules/dunder-proto/README.md +/node_modules/dunder-proto/set.d.ts +/node_modules/dunder-proto/set.js +/node_modules/dunder-proto/tsconfig.json +/node_modules/ee-first/index.js +/node_modules/ee-first/LICENSE +/node_modules/ee-first/package.json +/node_modules/ee-first/README.md +/node_modules/encodeurl/index.js +/node_modules/encodeurl/LICENSE +/node_modules/encodeurl/package.json +/node_modules/encodeurl/README.md +/node_modules/es-define-property/.github/FUNDING.yml +/node_modules/es-define-property/test/index.js +/node_modules/es-define-property/.eslintrc +/node_modules/es-define-property/.nycrc +/node_modules/es-define-property/CHANGELOG.md +/node_modules/es-define-property/index.d.ts +/node_modules/es-define-property/index.js +/node_modules/es-define-property/LICENSE +/node_modules/es-define-property/package.json +/node_modules/es-define-property/README.md +/node_modules/es-define-property/tsconfig.json +/node_modules/es-errors/.github/FUNDING.yml +/node_modules/es-errors/test/index.js +/node_modules/es-errors/.eslintrc +/node_modules/es-errors/CHANGELOG.md +/node_modules/es-errors/eval.d.ts +/node_modules/es-errors/eval.js +/node_modules/es-errors/index.d.ts +/node_modules/es-errors/index.js +/node_modules/es-errors/LICENSE +/node_modules/es-errors/package.json +/node_modules/es-errors/range.d.ts +/node_modules/es-errors/range.js +/node_modules/es-errors/README.md +/node_modules/es-errors/ref.d.ts +/node_modules/es-errors/ref.js +/node_modules/es-errors/syntax.d.ts +/node_modules/es-errors/syntax.js +/node_modules/es-errors/tsconfig.json +/node_modules/es-errors/type.d.ts +/node_modules/es-errors/type.js +/node_modules/es-errors/uri.d.ts +/node_modules/es-errors/uri.js +/node_modules/es-object-atoms/.github/FUNDING.yml +/node_modules/es-object-atoms/test/index.js +/node_modules/es-object-atoms/.eslintrc +/node_modules/es-object-atoms/CHANGELOG.md +/node_modules/es-object-atoms/index.d.ts +/node_modules/es-object-atoms/index.js +/node_modules/es-object-atoms/isObject.d.ts +/node_modules/es-object-atoms/isObject.js +/node_modules/es-object-atoms/LICENSE +/node_modules/es-object-atoms/package.json +/node_modules/es-object-atoms/README.md +/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +/node_modules/es-object-atoms/RequireObjectCoercible.js +/node_modules/es-object-atoms/ToObject.d.ts +/node_modules/es-object-atoms/ToObject.js +/node_modules/es-object-atoms/tsconfig.json +/node_modules/escape-html/index.js +/node_modules/escape-html/LICENSE +/node_modules/escape-html/package.json +/node_modules/escape-html/Readme.md +/node_modules/etag/HISTORY.md +/node_modules/etag/index.js +/node_modules/etag/LICENSE +/node_modules/etag/package.json +/node_modules/etag/README.md +/node_modules/express/lib/application.js +/node_modules/express/lib/express.js +/node_modules/express/lib/request.js +/node_modules/express/lib/response.js +/node_modules/express/lib/utils.js +/node_modules/express/lib/view.js +/node_modules/express/index.js +/node_modules/express/LICENSE +/node_modules/express/package.json +/node_modules/express/Readme.md +/node_modules/fill-range/index.js +/node_modules/fill-range/LICENSE +/node_modules/fill-range/package.json +/node_modules/fill-range/README.md +/node_modules/finalhandler/HISTORY.md +/node_modules/finalhandler/index.js +/node_modules/finalhandler/LICENSE +/node_modules/finalhandler/package.json +/node_modules/finalhandler/README.md +/node_modules/forwarded/HISTORY.md +/node_modules/forwarded/index.js +/node_modules/forwarded/LICENSE +/node_modules/forwarded/package.json +/node_modules/forwarded/README.md +/node_modules/fresh/HISTORY.md +/node_modules/fresh/index.js +/node_modules/fresh/LICENSE +/node_modules/fresh/package.json +/node_modules/fresh/README.md +/node_modules/function-bind/.github/FUNDING.yml +/node_modules/function-bind/.github/SECURITY.md +/node_modules/function-bind/test/.eslintrc +/node_modules/function-bind/test/index.js +/node_modules/function-bind/.eslintrc +/node_modules/function-bind/.nycrc +/node_modules/function-bind/CHANGELOG.md +/node_modules/function-bind/implementation.js +/node_modules/function-bind/index.js +/node_modules/function-bind/LICENSE +/node_modules/function-bind/package.json +/node_modules/function-bind/README.md +/node_modules/generate-function/.travis.yml +/node_modules/generate-function/example.js +/node_modules/generate-function/index.js +/node_modules/generate-function/LICENSE +/node_modules/generate-function/package.json +/node_modules/generate-function/README.md +/node_modules/generate-function/test.js +/node_modules/get-intrinsic/.github/FUNDING.yml +/node_modules/get-intrinsic/test/GetIntrinsic.js +/node_modules/get-intrinsic/.eslintrc +/node_modules/get-intrinsic/.nycrc +/node_modules/get-intrinsic/CHANGELOG.md +/node_modules/get-intrinsic/index.js +/node_modules/get-intrinsic/LICENSE +/node_modules/get-intrinsic/package.json +/node_modules/get-intrinsic/README.md +/node_modules/get-proto/.github/FUNDING.yml +/node_modules/get-proto/test/index.js +/node_modules/get-proto/.eslintrc +/node_modules/get-proto/.nycrc +/node_modules/get-proto/CHANGELOG.md +/node_modules/get-proto/index.d.ts +/node_modules/get-proto/index.js +/node_modules/get-proto/LICENSE +/node_modules/get-proto/Object.getPrototypeOf.d.ts +/node_modules/get-proto/Object.getPrototypeOf.js +/node_modules/get-proto/package.json +/node_modules/get-proto/README.md +/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +/node_modules/get-proto/Reflect.getPrototypeOf.js +/node_modules/get-proto/tsconfig.json +/node_modules/glob-parent/CHANGELOG.md +/node_modules/glob-parent/index.js +/node_modules/glob-parent/LICENSE +/node_modules/glob-parent/package.json +/node_modules/glob-parent/README.md +/node_modules/gopd/.github/FUNDING.yml +/node_modules/gopd/test/index.js +/node_modules/gopd/.eslintrc +/node_modules/gopd/CHANGELOG.md +/node_modules/gopd/gOPD.d.ts +/node_modules/gopd/gOPD.js +/node_modules/gopd/index.d.ts +/node_modules/gopd/index.js +/node_modules/gopd/LICENSE +/node_modules/gopd/package.json +/node_modules/gopd/README.md +/node_modules/gopd/tsconfig.json +/node_modules/has-flag/index.js +/node_modules/has-flag/license +/node_modules/has-flag/package.json +/node_modules/has-flag/readme.md +/node_modules/has-symbols/.github/FUNDING.yml +/node_modules/has-symbols/test/shams/core-js.js +/node_modules/has-symbols/test/shams/get-own-property-symbols.js +/node_modules/has-symbols/test/index.js +/node_modules/has-symbols/test/tests.js +/node_modules/has-symbols/.eslintrc +/node_modules/has-symbols/.nycrc +/node_modules/has-symbols/CHANGELOG.md +/node_modules/has-symbols/index.d.ts +/node_modules/has-symbols/index.js +/node_modules/has-symbols/LICENSE +/node_modules/has-symbols/package.json +/node_modules/has-symbols/README.md +/node_modules/has-symbols/shams.d.ts +/node_modules/has-symbols/shams.js +/node_modules/has-symbols/tsconfig.json +/node_modules/hasown/.github/FUNDING.yml +/node_modules/hasown/.nycrc +/node_modules/hasown/CHANGELOG.md +/node_modules/hasown/eslint.config.mjs +/node_modules/hasown/index.d.ts +/node_modules/hasown/index.js +/node_modules/hasown/LICENSE +/node_modules/hasown/package.json +/node_modules/hasown/README.md +/node_modules/hasown/tsconfig.json +/node_modules/http-errors/HISTORY.md +/node_modules/http-errors/index.js +/node_modules/http-errors/LICENSE +/node_modules/http-errors/package.json +/node_modules/http-errors/README.md +/node_modules/iconv-lite/encodings/tables/big5-added.json +/node_modules/iconv-lite/encodings/tables/cp936.json +/node_modules/iconv-lite/encodings/tables/cp949.json +/node_modules/iconv-lite/encodings/tables/cp950.json +/node_modules/iconv-lite/encodings/tables/eucjp.json +/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +/node_modules/iconv-lite/encodings/tables/gbk-added.json +/node_modules/iconv-lite/encodings/tables/shiftjis.json +/node_modules/iconv-lite/encodings/dbcs-codec.js +/node_modules/iconv-lite/encodings/dbcs-data.js +/node_modules/iconv-lite/encodings/index.js +/node_modules/iconv-lite/encodings/internal.js +/node_modules/iconv-lite/encodings/sbcs-codec.js +/node_modules/iconv-lite/encodings/sbcs-data.js +/node_modules/iconv-lite/encodings/sbcs-data-generated.js +/node_modules/iconv-lite/encodings/utf7.js +/node_modules/iconv-lite/encodings/utf16.js +/node_modules/iconv-lite/encodings/utf32.js +/node_modules/iconv-lite/lib/helpers/merge-exports.js +/node_modules/iconv-lite/lib/bom-handling.js +/node_modules/iconv-lite/lib/index.d.ts +/node_modules/iconv-lite/lib/index.js +/node_modules/iconv-lite/lib/streams.js +/node_modules/iconv-lite/types/encodings.d.ts +/node_modules/iconv-lite/LICENSE +/node_modules/iconv-lite/package.json +/node_modules/iconv-lite/README.md +/node_modules/ignore-by-default/index.js +/node_modules/ignore-by-default/LICENSE +/node_modules/ignore-by-default/package.json +/node_modules/ignore-by-default/README.md +/node_modules/inherits/inherits.js +/node_modules/inherits/inherits_browser.js +/node_modules/inherits/LICENSE +/node_modules/inherits/package.json +/node_modules/inherits/README.md +/node_modules/ipaddr.js/lib/ipaddr.js +/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +/node_modules/ipaddr.js/ipaddr.min.js +/node_modules/ipaddr.js/LICENSE +/node_modules/ipaddr.js/package.json +/node_modules/ipaddr.js/README.md +/node_modules/is-binary-path/index.d.ts +/node_modules/is-binary-path/index.js +/node_modules/is-binary-path/license +/node_modules/is-binary-path/package.json +/node_modules/is-binary-path/readme.md +/node_modules/is-extglob/index.js +/node_modules/is-extglob/LICENSE +/node_modules/is-extglob/package.json +/node_modules/is-extglob/README.md +/node_modules/is-glob/index.js +/node_modules/is-glob/LICENSE +/node_modules/is-glob/package.json +/node_modules/is-glob/README.md +/node_modules/is-number/index.js +/node_modules/is-number/LICENSE +/node_modules/is-number/package.json +/node_modules/is-number/README.md +/node_modules/is-promise/index.d.ts +/node_modules/is-promise/index.js +/node_modules/is-promise/index.mjs +/node_modules/is-promise/LICENSE +/node_modules/is-promise/package.json +/node_modules/is-promise/readme.md +/node_modules/is-property/.npmignore +/node_modules/is-property/is-property.js +/node_modules/is-property/LICENSE +/node_modules/is-property/package.json +/node_modules/is-property/README.md +/node_modules/long/umd/index.d.ts +/node_modules/long/umd/index.js +/node_modules/long/umd/package.json +/node_modules/long/umd/types.d.ts +/node_modules/long/index.d.ts +/node_modules/long/index.js +/node_modules/long/LICENSE +/node_modules/long/package.json +/node_modules/long/README.md +/node_modules/long/types.d.ts +/node_modules/lru.min/browser/lru.min.js +/node_modules/lru.min/lib/index.d.ts +/node_modules/lru.min/lib/index.js +/node_modules/lru.min/lib/index.mjs +/node_modules/lru.min/LICENSE +/node_modules/lru.min/package.json +/node_modules/lru.min/README.md +/node_modules/math-intrinsics/.github/FUNDING.yml +/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +/node_modules/math-intrinsics/constants/maxArrayLength.js +/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +/node_modules/math-intrinsics/constants/maxSafeInteger.js +/node_modules/math-intrinsics/constants/maxValue.d.ts +/node_modules/math-intrinsics/constants/maxValue.js +/node_modules/math-intrinsics/test/index.js +/node_modules/math-intrinsics/.eslintrc +/node_modules/math-intrinsics/abs.d.ts +/node_modules/math-intrinsics/abs.js +/node_modules/math-intrinsics/CHANGELOG.md +/node_modules/math-intrinsics/floor.d.ts +/node_modules/math-intrinsics/floor.js +/node_modules/math-intrinsics/isFinite.d.ts +/node_modules/math-intrinsics/isFinite.js +/node_modules/math-intrinsics/isInteger.d.ts +/node_modules/math-intrinsics/isInteger.js +/node_modules/math-intrinsics/isNaN.d.ts +/node_modules/math-intrinsics/isNaN.js +/node_modules/math-intrinsics/isNegativeZero.d.ts +/node_modules/math-intrinsics/isNegativeZero.js +/node_modules/math-intrinsics/LICENSE +/node_modules/math-intrinsics/max.d.ts +/node_modules/math-intrinsics/max.js +/node_modules/math-intrinsics/min.d.ts +/node_modules/math-intrinsics/min.js +/node_modules/math-intrinsics/mod.d.ts +/node_modules/math-intrinsics/mod.js +/node_modules/math-intrinsics/package.json +/node_modules/math-intrinsics/pow.d.ts +/node_modules/math-intrinsics/pow.js +/node_modules/math-intrinsics/README.md +/node_modules/math-intrinsics/round.d.ts +/node_modules/math-intrinsics/round.js +/node_modules/math-intrinsics/sign.d.ts +/node_modules/math-intrinsics/sign.js +/node_modules/math-intrinsics/tsconfig.json +/node_modules/media-typer/HISTORY.md +/node_modules/media-typer/index.js +/node_modules/media-typer/LICENSE +/node_modules/media-typer/package.json +/node_modules/media-typer/README.md +/node_modules/merge-descriptors/index.d.ts +/node_modules/merge-descriptors/index.js +/node_modules/merge-descriptors/license +/node_modules/merge-descriptors/package.json +/node_modules/merge-descriptors/readme.md +/node_modules/mime-db/db.json +/node_modules/mime-db/HISTORY.md +/node_modules/mime-db/index.js +/node_modules/mime-db/LICENSE +/node_modules/mime-db/package.json +/node_modules/mime-db/README.md +/node_modules/mime-types/HISTORY.md +/node_modules/mime-types/index.js +/node_modules/mime-types/LICENSE +/node_modules/mime-types/mimeScore.js +/node_modules/mime-types/package.json +/node_modules/mime-types/README.md +/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts +/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map +/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map +/node_modules/minimatch/dist/commonjs/ast.d.ts +/node_modules/minimatch/dist/commonjs/ast.d.ts.map +/node_modules/minimatch/dist/commonjs/ast.js +/node_modules/minimatch/dist/commonjs/ast.js.map +/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts +/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +/node_modules/minimatch/dist/commonjs/brace-expressions.js +/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +/node_modules/minimatch/dist/commonjs/escape.d.ts +/node_modules/minimatch/dist/commonjs/escape.d.ts.map +/node_modules/minimatch/dist/commonjs/escape.js +/node_modules/minimatch/dist/commonjs/escape.js.map +/node_modules/minimatch/dist/commonjs/index.d.ts +/node_modules/minimatch/dist/commonjs/index.d.ts.map +/node_modules/minimatch/dist/commonjs/index.js +/node_modules/minimatch/dist/commonjs/index.js.map +/node_modules/minimatch/dist/commonjs/package.json +/node_modules/minimatch/dist/commonjs/unescape.d.ts +/node_modules/minimatch/dist/commonjs/unescape.d.ts.map +/node_modules/minimatch/dist/commonjs/unescape.js +/node_modules/minimatch/dist/commonjs/unescape.js.map +/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts +/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map +/node_modules/minimatch/dist/esm/assert-valid-pattern.js +/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map +/node_modules/minimatch/dist/esm/ast.d.ts +/node_modules/minimatch/dist/esm/ast.d.ts.map +/node_modules/minimatch/dist/esm/ast.js +/node_modules/minimatch/dist/esm/ast.js.map +/node_modules/minimatch/dist/esm/brace-expressions.d.ts +/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +/node_modules/minimatch/dist/esm/brace-expressions.js +/node_modules/minimatch/dist/esm/brace-expressions.js.map +/node_modules/minimatch/dist/esm/escape.d.ts +/node_modules/minimatch/dist/esm/escape.d.ts.map +/node_modules/minimatch/dist/esm/escape.js +/node_modules/minimatch/dist/esm/escape.js.map +/node_modules/minimatch/dist/esm/index.d.ts +/node_modules/minimatch/dist/esm/index.d.ts.map +/node_modules/minimatch/dist/esm/index.js +/node_modules/minimatch/dist/esm/index.js.map +/node_modules/minimatch/dist/esm/package.json +/node_modules/minimatch/dist/esm/unescape.d.ts +/node_modules/minimatch/dist/esm/unescape.d.ts.map +/node_modules/minimatch/dist/esm/unescape.js +/node_modules/minimatch/dist/esm/unescape.js.map +/node_modules/minimatch/LICENSE.md +/node_modules/minimatch/package.json +/node_modules/minimatch/README.md +/node_modules/ms/index.js +/node_modules/ms/license.md +/node_modules/ms/package.json +/node_modules/ms/readme.md +/node_modules/mysql2/lib/auth_plugins/caching_sha2_password.js +/node_modules/mysql2/lib/auth_plugins/caching_sha2_password.md +/node_modules/mysql2/lib/auth_plugins/index.js +/node_modules/mysql2/lib/auth_plugins/mysql_clear_password.js +/node_modules/mysql2/lib/auth_plugins/mysql_native_password.js +/node_modules/mysql2/lib/auth_plugins/sha256_password.js +/node_modules/mysql2/lib/base/connection.js +/node_modules/mysql2/lib/base/pool.js +/node_modules/mysql2/lib/commands/auth_switch.js +/node_modules/mysql2/lib/commands/binlog_dump.js +/node_modules/mysql2/lib/commands/change_user.js +/node_modules/mysql2/lib/commands/client_handshake.js +/node_modules/mysql2/lib/commands/close_statement.js +/node_modules/mysql2/lib/commands/command.js +/node_modules/mysql2/lib/commands/execute.js +/node_modules/mysql2/lib/commands/index.js +/node_modules/mysql2/lib/commands/ping.js +/node_modules/mysql2/lib/commands/prepare.js +/node_modules/mysql2/lib/commands/query.js +/node_modules/mysql2/lib/commands/quit.js +/node_modules/mysql2/lib/commands/register_slave.js +/node_modules/mysql2/lib/commands/reset_connection.js +/node_modules/mysql2/lib/commands/server_handshake.js +/node_modules/mysql2/lib/constants/charset_encodings.js +/node_modules/mysql2/lib/constants/charsets.js +/node_modules/mysql2/lib/constants/client.js +/node_modules/mysql2/lib/constants/commands.js +/node_modules/mysql2/lib/constants/cursor.js +/node_modules/mysql2/lib/constants/encoding_charset.js +/node_modules/mysql2/lib/constants/errors.js +/node_modules/mysql2/lib/constants/field_flags.js +/node_modules/mysql2/lib/constants/server_status.js +/node_modules/mysql2/lib/constants/session_track.js +/node_modules/mysql2/lib/constants/ssl_profiles.js +/node_modules/mysql2/lib/constants/types.js +/node_modules/mysql2/lib/packets/auth_next_factor.js +/node_modules/mysql2/lib/packets/auth_switch_request.js +/node_modules/mysql2/lib/packets/auth_switch_request_more_data.js +/node_modules/mysql2/lib/packets/auth_switch_response.js +/node_modules/mysql2/lib/packets/binary_row.js +/node_modules/mysql2/lib/packets/binlog_dump.js +/node_modules/mysql2/lib/packets/binlog_query_statusvars.js +/node_modules/mysql2/lib/packets/change_user.js +/node_modules/mysql2/lib/packets/close_statement.js +/node_modules/mysql2/lib/packets/column_definition.js +/node_modules/mysql2/lib/packets/encode_parameter.js +/node_modules/mysql2/lib/packets/execute.js +/node_modules/mysql2/lib/packets/handshake.js +/node_modules/mysql2/lib/packets/handshake_response.js +/node_modules/mysql2/lib/packets/index.js +/node_modules/mysql2/lib/packets/packet.js +/node_modules/mysql2/lib/packets/prepare_statement.js +/node_modules/mysql2/lib/packets/prepared_statement_header.js +/node_modules/mysql2/lib/packets/query.js +/node_modules/mysql2/lib/packets/register_slave.js +/node_modules/mysql2/lib/packets/reset_connection.js +/node_modules/mysql2/lib/packets/resultset_header.js +/node_modules/mysql2/lib/packets/ssl_request.js +/node_modules/mysql2/lib/packets/text_row.js +/node_modules/mysql2/lib/parsers/binary_parser.js +/node_modules/mysql2/lib/parsers/parser_cache.js +/node_modules/mysql2/lib/parsers/static_binary_parser.js +/node_modules/mysql2/lib/parsers/static_text_parser.js +/node_modules/mysql2/lib/parsers/string.js +/node_modules/mysql2/lib/parsers/text_parser.js +/node_modules/mysql2/lib/promise/capture_local_err.js +/node_modules/mysql2/lib/promise/connection.js +/node_modules/mysql2/lib/promise/inherit_events.js +/node_modules/mysql2/lib/promise/make_done_cb.js +/node_modules/mysql2/lib/promise/pool.js +/node_modules/mysql2/lib/promise/pool_cluster.js +/node_modules/mysql2/lib/promise/pool_connection.js +/node_modules/mysql2/lib/promise/prepared_statement_info.js +/node_modules/mysql2/lib/auth_41.js +/node_modules/mysql2/lib/compressed_protocol.js +/node_modules/mysql2/lib/connection.js +/node_modules/mysql2/lib/connection_config.js +/node_modules/mysql2/lib/create_connection.js +/node_modules/mysql2/lib/create_pool.js +/node_modules/mysql2/lib/create_pool_cluster.js +/node_modules/mysql2/lib/helpers.js +/node_modules/mysql2/lib/packet_parser.js +/node_modules/mysql2/lib/pool.js +/node_modules/mysql2/lib/pool_cluster.js +/node_modules/mysql2/lib/pool_config.js +/node_modules/mysql2/lib/pool_connection.js +/node_modules/mysql2/lib/results_stream.js +/node_modules/mysql2/lib/server.js +/node_modules/mysql2/lib/tracing.js +/node_modules/mysql2/typings/mysql/lib/constants/Charsets.d.ts +/node_modules/mysql2/typings/mysql/lib/constants/CharsetToEncoding.d.ts +/node_modules/mysql2/typings/mysql/lib/constants/index.d.ts +/node_modules/mysql2/typings/mysql/lib/constants/Types.d.ts +/node_modules/mysql2/typings/mysql/lib/parsers/index.d.ts +/node_modules/mysql2/typings/mysql/lib/parsers/ParserCache.d.ts +/node_modules/mysql2/typings/mysql/lib/parsers/typeCast.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/packets/params/ErrorPacketParams.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/packets/params/OkPacketParams.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/packets/Field.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/packets/FieldPacket.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/packets/index.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/packets/OkPacket.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/packets/ProcedurePacket.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/packets/ResultSetHeader.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/packets/RowDataPacket.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/sequences/promise/ExecutableBase.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/sequences/promise/QueryableBase.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/sequences/ExecutableBase.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/sequences/Prepare.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/sequences/Query.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/sequences/QueryableBase.d.ts +/node_modules/mysql2/typings/mysql/lib/protocol/sequences/Sequence.d.ts +/node_modules/mysql2/typings/mysql/lib/Auth.d.ts +/node_modules/mysql2/typings/mysql/lib/Connection.d.ts +/node_modules/mysql2/typings/mysql/lib/Pool.d.ts +/node_modules/mysql2/typings/mysql/lib/PoolCluster.d.ts +/node_modules/mysql2/typings/mysql/lib/PoolConnection.d.ts +/node_modules/mysql2/typings/mysql/lib/Server.d.ts +/node_modules/mysql2/typings/mysql/lib/Tracing.d.ts +/node_modules/mysql2/typings/mysql/index.d.ts +/node_modules/mysql2/typings/mysql/info.txt +/node_modules/mysql2/typings/mysql/LICENSE.txt +/node_modules/mysql2/index.d.ts +/node_modules/mysql2/index.js +/node_modules/mysql2/License +/node_modules/mysql2/package.json +/node_modules/mysql2/promise.d.ts +/node_modules/mysql2/promise.js +/node_modules/mysql2/README.md +/node_modules/named-placeholders/index.js +/node_modules/named-placeholders/LICENSE +/node_modules/named-placeholders/package.json +/node_modules/named-placeholders/README.md +/node_modules/negotiator/lib/charset.js +/node_modules/negotiator/lib/encoding.js +/node_modules/negotiator/lib/language.js +/node_modules/negotiator/lib/mediaType.js +/node_modules/negotiator/HISTORY.md +/node_modules/negotiator/index.js +/node_modules/negotiator/LICENSE +/node_modules/negotiator/package.json +/node_modules/negotiator/README.md +/node_modules/nodemon/bin/nodemon.js +/node_modules/nodemon/bin/windows-kill.exe +/node_modules/nodemon/doc/cli/authors.txt +/node_modules/nodemon/doc/cli/config.txt +/node_modules/nodemon/doc/cli/help.txt +/node_modules/nodemon/doc/cli/logo.txt +/node_modules/nodemon/doc/cli/options.txt +/node_modules/nodemon/doc/cli/topics.txt +/node_modules/nodemon/doc/cli/usage.txt +/node_modules/nodemon/doc/cli/whoami.txt +/node_modules/nodemon/lib/cli/index.js +/node_modules/nodemon/lib/cli/parse.js +/node_modules/nodemon/lib/config/command.js +/node_modules/nodemon/lib/config/defaults.js +/node_modules/nodemon/lib/config/exec.js +/node_modules/nodemon/lib/config/index.js +/node_modules/nodemon/lib/config/load.js +/node_modules/nodemon/lib/help/index.js +/node_modules/nodemon/lib/monitor/index.js +/node_modules/nodemon/lib/monitor/match.js +/node_modules/nodemon/lib/monitor/run.js +/node_modules/nodemon/lib/monitor/signals.js +/node_modules/nodemon/lib/monitor/watch.js +/node_modules/nodemon/lib/rules/add.js +/node_modules/nodemon/lib/rules/index.js +/node_modules/nodemon/lib/rules/parse.js +/node_modules/nodemon/lib/utils/bus.js +/node_modules/nodemon/lib/utils/clone.js +/node_modules/nodemon/lib/utils/colour.js +/node_modules/nodemon/lib/utils/index.js +/node_modules/nodemon/lib/utils/log.js +/node_modules/nodemon/lib/utils/merge.js +/node_modules/nodemon/lib/index.js +/node_modules/nodemon/lib/nodemon.js +/node_modules/nodemon/lib/spawn.js +/node_modules/nodemon/lib/version.js +/node_modules/nodemon/.prettierrc.json +/node_modules/nodemon/index.d.ts +/node_modules/nodemon/jsconfig.json +/node_modules/nodemon/LICENSE +/node_modules/nodemon/package.json +/node_modules/nodemon/README.md +/node_modules/normalize-path/index.js +/node_modules/normalize-path/LICENSE +/node_modules/normalize-path/package.json +/node_modules/normalize-path/README.md +/node_modules/object-assign/index.js +/node_modules/object-assign/license +/node_modules/object-assign/package.json +/node_modules/object-assign/readme.md +/node_modules/object-inspect/.github/FUNDING.yml +/node_modules/object-inspect/example/all.js +/node_modules/object-inspect/example/circular.js +/node_modules/object-inspect/example/fn.js +/node_modules/object-inspect/example/inspect.js +/node_modules/object-inspect/test/browser/dom.js +/node_modules/object-inspect/test/bigint.js +/node_modules/object-inspect/test/circular.js +/node_modules/object-inspect/test/deep.js +/node_modules/object-inspect/test/element.js +/node_modules/object-inspect/test/err.js +/node_modules/object-inspect/test/fakes.js +/node_modules/object-inspect/test/fn.js +/node_modules/object-inspect/test/global.js +/node_modules/object-inspect/test/has.js +/node_modules/object-inspect/test/holes.js +/node_modules/object-inspect/test/indent-option.js +/node_modules/object-inspect/test/inspect.js +/node_modules/object-inspect/test/lowbyte.js +/node_modules/object-inspect/test/number.js +/node_modules/object-inspect/test/quoteStyle.js +/node_modules/object-inspect/test/toStringTag.js +/node_modules/object-inspect/test/undef.js +/node_modules/object-inspect/test/values.js +/node_modules/object-inspect/.eslintrc +/node_modules/object-inspect/.nycrc +/node_modules/object-inspect/CHANGELOG.md +/node_modules/object-inspect/index.js +/node_modules/object-inspect/LICENSE +/node_modules/object-inspect/package.json +/node_modules/object-inspect/package-support.json +/node_modules/object-inspect/readme.markdown +/node_modules/object-inspect/test-core-js.js +/node_modules/object-inspect/util.inspect.js +/node_modules/on-finished/HISTORY.md +/node_modules/on-finished/index.js +/node_modules/on-finished/LICENSE +/node_modules/on-finished/package.json +/node_modules/on-finished/README.md +/node_modules/once/LICENSE +/node_modules/once/once.js +/node_modules/once/package.json +/node_modules/once/README.md +/node_modules/parseurl/HISTORY.md +/node_modules/parseurl/index.js +/node_modules/parseurl/LICENSE +/node_modules/parseurl/package.json +/node_modules/parseurl/README.md +/node_modules/path-to-regexp/dist/index.d.ts +/node_modules/path-to-regexp/dist/index.js +/node_modules/path-to-regexp/dist/index.js.map +/node_modules/path-to-regexp/LICENSE +/node_modules/path-to-regexp/package.json +/node_modules/path-to-regexp/Readme.md +/node_modules/picomatch/lib/constants.js +/node_modules/picomatch/lib/parse.js +/node_modules/picomatch/lib/picomatch.js +/node_modules/picomatch/lib/scan.js +/node_modules/picomatch/lib/utils.js +/node_modules/picomatch/index.js +/node_modules/picomatch/LICENSE +/node_modules/picomatch/package.json +/node_modules/picomatch/README.md +/node_modules/proxy-addr/HISTORY.md +/node_modules/proxy-addr/index.js +/node_modules/proxy-addr/LICENSE +/node_modules/proxy-addr/package.json +/node_modules/proxy-addr/README.md +/node_modules/pstree.remy/lib/index.js +/node_modules/pstree.remy/lib/tree.js +/node_modules/pstree.remy/lib/utils.js +/node_modules/pstree.remy/tests/fixtures/index.js +/node_modules/pstree.remy/tests/fixtures/out1 +/node_modules/pstree.remy/tests/fixtures/out2 +/node_modules/pstree.remy/tests/index.test.js +/node_modules/pstree.remy/.travis.yml +/node_modules/pstree.remy/LICENSE +/node_modules/pstree.remy/package.json +/node_modules/pstree.remy/README.md +/node_modules/qs/.github/FUNDING.yml +/node_modules/qs/.github/SECURITY.md +/node_modules/qs/.github/THREAT_MODEL.md +/node_modules/qs/dist/qs.js +/node_modules/qs/lib/formats.js +/node_modules/qs/lib/index.js +/node_modules/qs/lib/parse.js +/node_modules/qs/lib/stringify.js +/node_modules/qs/lib/utils.js +/node_modules/qs/test/empty-keys-cases.js +/node_modules/qs/test/parse.js +/node_modules/qs/test/stringify.js +/node_modules/qs/test/utils.js +/node_modules/qs/.editorconfig +/node_modules/qs/.nycrc +/node_modules/qs/CHANGELOG.md +/node_modules/qs/eslint.config.mjs +/node_modules/qs/LICENSE.md +/node_modules/qs/package.json +/node_modules/qs/README.md +/node_modules/range-parser/HISTORY.md +/node_modules/range-parser/index.js +/node_modules/range-parser/LICENSE +/node_modules/range-parser/package.json +/node_modules/range-parser/README.md +/node_modules/raw-body/index.d.ts +/node_modules/raw-body/index.js +/node_modules/raw-body/LICENSE +/node_modules/raw-body/package.json +/node_modules/raw-body/README.md +/node_modules/readdirp/index.d.ts +/node_modules/readdirp/index.js +/node_modules/readdirp/LICENSE +/node_modules/readdirp/package.json +/node_modules/readdirp/README.md +/node_modules/router/lib/layer.js +/node_modules/router/lib/route.js +/node_modules/router/HISTORY.md +/node_modules/router/index.js +/node_modules/router/LICENSE +/node_modules/router/package.json +/node_modules/router/README.md +/node_modules/safer-buffer/dangerous.js +/node_modules/safer-buffer/LICENSE +/node_modules/safer-buffer/package.json +/node_modules/safer-buffer/Porting-Buffer.md +/node_modules/safer-buffer/Readme.md +/node_modules/safer-buffer/safer.js +/node_modules/safer-buffer/tests.js +/node_modules/semver/bin/semver.js +/node_modules/semver/classes/comparator.js +/node_modules/semver/classes/index.js +/node_modules/semver/classes/range.js +/node_modules/semver/classes/semver.js +/node_modules/semver/functions/clean.js +/node_modules/semver/functions/cmp.js +/node_modules/semver/functions/coerce.js +/node_modules/semver/functions/compare.js +/node_modules/semver/functions/compare-build.js +/node_modules/semver/functions/compare-loose.js +/node_modules/semver/functions/diff.js +/node_modules/semver/functions/eq.js +/node_modules/semver/functions/gt.js +/node_modules/semver/functions/gte.js +/node_modules/semver/functions/inc.js +/node_modules/semver/functions/lt.js +/node_modules/semver/functions/lte.js +/node_modules/semver/functions/major.js +/node_modules/semver/functions/minor.js +/node_modules/semver/functions/neq.js +/node_modules/semver/functions/parse.js +/node_modules/semver/functions/patch.js +/node_modules/semver/functions/prerelease.js +/node_modules/semver/functions/rcompare.js +/node_modules/semver/functions/rsort.js +/node_modules/semver/functions/satisfies.js +/node_modules/semver/functions/sort.js +/node_modules/semver/functions/truncate.js +/node_modules/semver/functions/valid.js +/node_modules/semver/internal/constants.js +/node_modules/semver/internal/debug.js +/node_modules/semver/internal/identifiers.js +/node_modules/semver/internal/lrucache.js +/node_modules/semver/internal/parse-options.js +/node_modules/semver/internal/re.js +/node_modules/semver/ranges/gtr.js +/node_modules/semver/ranges/intersects.js +/node_modules/semver/ranges/ltr.js +/node_modules/semver/ranges/max-satisfying.js +/node_modules/semver/ranges/min-satisfying.js +/node_modules/semver/ranges/min-version.js +/node_modules/semver/ranges/outside.js +/node_modules/semver/ranges/simplify.js +/node_modules/semver/ranges/subset.js +/node_modules/semver/ranges/to-comparators.js +/node_modules/semver/ranges/valid.js +/node_modules/semver/index.js +/node_modules/semver/LICENSE +/node_modules/semver/package.json +/node_modules/semver/preload.js +/node_modules/semver/range.bnf +/node_modules/semver/README.md +/node_modules/send/index.js +/node_modules/send/LICENSE +/node_modules/send/package.json +/node_modules/send/README.md +/node_modules/serve-static/index.js +/node_modules/serve-static/LICENSE +/node_modules/serve-static/package.json +/node_modules/serve-static/README.md +/node_modules/setprototypeof/test/index.js +/node_modules/setprototypeof/index.d.ts +/node_modules/setprototypeof/index.js +/node_modules/setprototypeof/LICENSE +/node_modules/setprototypeof/package.json +/node_modules/setprototypeof/README.md +/node_modules/side-channel/.github/FUNDING.yml +/node_modules/side-channel/test/index.js +/node_modules/side-channel/.editorconfig +/node_modules/side-channel/.eslintrc +/node_modules/side-channel/.nycrc +/node_modules/side-channel/CHANGELOG.md +/node_modules/side-channel/index.d.ts +/node_modules/side-channel/index.js +/node_modules/side-channel/LICENSE +/node_modules/side-channel/package.json +/node_modules/side-channel/README.md +/node_modules/side-channel/tsconfig.json +/node_modules/side-channel-list/.github/FUNDING.yml +/node_modules/side-channel-list/test/index.js +/node_modules/side-channel-list/.editorconfig +/node_modules/side-channel-list/.eslintrc +/node_modules/side-channel-list/.nycrc +/node_modules/side-channel-list/CHANGELOG.md +/node_modules/side-channel-list/index.d.ts +/node_modules/side-channel-list/index.js +/node_modules/side-channel-list/LICENSE +/node_modules/side-channel-list/list.d.ts +/node_modules/side-channel-list/package.json +/node_modules/side-channel-list/README.md +/node_modules/side-channel-list/tsconfig.json +/node_modules/side-channel-map/.github/FUNDING.yml +/node_modules/side-channel-map/test/index.js +/node_modules/side-channel-map/.editorconfig +/node_modules/side-channel-map/.eslintrc +/node_modules/side-channel-map/.nycrc +/node_modules/side-channel-map/CHANGELOG.md +/node_modules/side-channel-map/index.d.ts +/node_modules/side-channel-map/index.js +/node_modules/side-channel-map/LICENSE +/node_modules/side-channel-map/package.json +/node_modules/side-channel-map/README.md +/node_modules/side-channel-map/tsconfig.json +/node_modules/side-channel-weakmap/.github/FUNDING.yml +/node_modules/side-channel-weakmap/test/index.js +/node_modules/side-channel-weakmap/.editorconfig +/node_modules/side-channel-weakmap/.eslintrc +/node_modules/side-channel-weakmap/.nycrc +/node_modules/side-channel-weakmap/CHANGELOG.md +/node_modules/side-channel-weakmap/index.d.ts +/node_modules/side-channel-weakmap/index.js +/node_modules/side-channel-weakmap/LICENSE +/node_modules/side-channel-weakmap/package.json +/node_modules/side-channel-weakmap/README.md +/node_modules/side-channel-weakmap/tsconfig.json +/node_modules/simple-update-notifier/build/index.d.ts +/node_modules/simple-update-notifier/build/index.js +/node_modules/simple-update-notifier/src/borderedText.ts +/node_modules/simple-update-notifier/src/cache.spec.ts +/node_modules/simple-update-notifier/src/cache.ts +/node_modules/simple-update-notifier/src/getDistVersion.spec.ts +/node_modules/simple-update-notifier/src/getDistVersion.ts +/node_modules/simple-update-notifier/src/hasNewVersion.spec.ts +/node_modules/simple-update-notifier/src/hasNewVersion.ts +/node_modules/simple-update-notifier/src/index.spec.ts +/node_modules/simple-update-notifier/src/index.ts +/node_modules/simple-update-notifier/src/isNpmOrYarn.ts +/node_modules/simple-update-notifier/src/types.ts +/node_modules/simple-update-notifier/LICENSE +/node_modules/simple-update-notifier/package.json +/node_modules/simple-update-notifier/README.md +/node_modules/sql-escaper/lib/index.d.ts +/node_modules/sql-escaper/lib/index.js +/node_modules/sql-escaper/lib/index.mjs +/node_modules/sql-escaper/lib/types.d.ts +/node_modules/sql-escaper/lib/types.js +/node_modules/sql-escaper/LICENSE +/node_modules/sql-escaper/package.json +/node_modules/sql-escaper/README.md +/node_modules/statuses/codes.json +/node_modules/statuses/HISTORY.md +/node_modules/statuses/index.js +/node_modules/statuses/LICENSE +/node_modules/statuses/package.json +/node_modules/statuses/README.md +/node_modules/supports-color/browser.js +/node_modules/supports-color/index.js +/node_modules/supports-color/license +/node_modules/supports-color/package.json +/node_modules/supports-color/readme.md +/node_modules/to-regex-range/index.js +/node_modules/to-regex-range/LICENSE +/node_modules/to-regex-range/package.json +/node_modules/to-regex-range/README.md +/node_modules/toidentifier/HISTORY.md +/node_modules/toidentifier/index.js +/node_modules/toidentifier/LICENSE +/node_modules/toidentifier/package.json +/node_modules/toidentifier/README.md +/node_modules/touch/bin/nodetouch.js +/node_modules/touch/index.js +/node_modules/touch/LICENSE +/node_modules/touch/package.json +/node_modules/touch/README.md +/node_modules/type-is/HISTORY.md +/node_modules/type-is/index.js +/node_modules/type-is/LICENSE +/node_modules/type-is/package.json +/node_modules/type-is/README.md +/node_modules/undefsafe/.github/workflows/release.yml +/node_modules/undefsafe/lib/undefsafe.js +/node_modules/undefsafe/.jscsrc +/node_modules/undefsafe/.jshintrc +/node_modules/undefsafe/.travis.yml +/node_modules/undefsafe/example.js +/node_modules/undefsafe/LICENSE +/node_modules/undefsafe/package.json +/node_modules/undefsafe/README.md +/node_modules/undici-types/agent.d.ts +/node_modules/undici-types/api.d.ts +/node_modules/undici-types/balanced-pool.d.ts +/node_modules/undici-types/cache.d.ts +/node_modules/undici-types/cache-interceptor.d.ts +/node_modules/undici-types/client.d.ts +/node_modules/undici-types/client-stats.d.ts +/node_modules/undici-types/connector.d.ts +/node_modules/undici-types/content-type.d.ts +/node_modules/undici-types/cookies.d.ts +/node_modules/undici-types/diagnostics-channel.d.ts +/node_modules/undici-types/dispatcher.d.ts +/node_modules/undici-types/env-http-proxy-agent.d.ts +/node_modules/undici-types/errors.d.ts +/node_modules/undici-types/eventsource.d.ts +/node_modules/undici-types/fetch.d.ts +/node_modules/undici-types/formdata.d.ts +/node_modules/undici-types/global-dispatcher.d.ts +/node_modules/undici-types/global-origin.d.ts +/node_modules/undici-types/h2c-client.d.ts +/node_modules/undici-types/handlers.d.ts +/node_modules/undici-types/header.d.ts +/node_modules/undici-types/index.d.ts +/node_modules/undici-types/interceptors.d.ts +/node_modules/undici-types/LICENSE +/node_modules/undici-types/mock-agent.d.ts +/node_modules/undici-types/mock-call-history.d.ts +/node_modules/undici-types/mock-client.d.ts +/node_modules/undici-types/mock-errors.d.ts +/node_modules/undici-types/mock-interceptor.d.ts +/node_modules/undici-types/mock-pool.d.ts +/node_modules/undici-types/package.json +/node_modules/undici-types/patch.d.ts +/node_modules/undici-types/pool.d.ts +/node_modules/undici-types/pool-stats.d.ts +/node_modules/undici-types/proxy-agent.d.ts +/node_modules/undici-types/readable.d.ts +/node_modules/undici-types/README.md +/node_modules/undici-types/retry-agent.d.ts +/node_modules/undici-types/retry-handler.d.ts +/node_modules/undici-types/round-robin-pool.d.ts +/node_modules/undici-types/snapshot-agent.d.ts +/node_modules/undici-types/util.d.ts +/node_modules/undici-types/utility.d.ts +/node_modules/undici-types/webidl.d.ts +/node_modules/undici-types/websocket.d.ts +/node_modules/unpipe/HISTORY.md +/node_modules/unpipe/index.js +/node_modules/unpipe/LICENSE +/node_modules/unpipe/package.json +/node_modules/unpipe/README.md +/node_modules/vary/HISTORY.md +/node_modules/vary/index.js +/node_modules/vary/LICENSE +/node_modules/vary/package.json +/node_modules/vary/README.md +/node_modules/wrappy/LICENSE +/node_modules/wrappy/package.json +/node_modules/wrappy/README.md +/node_modules/wrappy/wrappy.js +/node_modules/.package-lock.json diff --git a/.idea/ExpressAIJS.iml b/.idea/ExpressAIJS.iml new file mode 100644 index 0000000..c956989 --- /dev/null +++ b/.idea/ExpressAIJS.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..187f083 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index d53b712..0000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - // Use IntelliSense to learn about possible Node.js debug attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "chrome", - "request": "launch", - "name": "Launch Chrome", - "url": "http://localhost:3000", - "webRoot": "${workspaceRoot}" - }, - { - "type": "node", - "request": "launch", - "name": "Run", - "program": "${workspaceRoot}/dist/server.js", - "smartStep": true, - "outFiles": [ - "../dist/**/*.js" - ], - "preLaunchTask": "build", - "protocol": "inspector" - } - ] -} - diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index bbd793f..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,12 +0,0 @@ -// Place your settings in this file to overwrite default and user settings. -{ - "search.exclude": { - "**/node_modules": true, - "**/bower_components": true, - "**/dist": true - }, - "typescript.referencesCodeLens.enabled": true, - "tslint.ignoreDefinitionFiles": false, - "tslint.autoFixOnSave": true, - "tslint.exclude": "**/node_modules/**/*" -} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index 55434a5..0000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - // See https://go.microsoft.com/fwlink/?LinkId=733558 - // for the documentation about the tasks.json format - "version": "0.1.0", - "command": "npm", - "isShellCommand": true, - "showOutput": "always", - "suppressTaskName": true, - "tasks": [ - { - "taskName": "build", - "args": ["run", "build"] - } - ] -} \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index fe18c32..0000000 --- a/README.md +++ /dev/null @@ -1,400 +0,0 @@ -# Thor - Node Server in TypeScript - -# Pre-reqs -- Install [Node.js](https://nodejs.org/en/) -- Install [MongoDB](https://docs.mongodb.com/manual/installation/) -- Install [VS Code](https://code.visualstudio.com/) - -# Getting started -- Clone the repository -``` -git clone --depth=1 https://bitbucket.org/mjzacharias/thor.git -``` -- Install dependencies -``` -cd thor -npm install -``` -- Start your mongoDB server (you'll probably want another command prompt) -``` -mongod -``` -- Build and run the project -``` -npm start -``` -Navigate to `http://localhost:3000` - -# TypeScript + Node -> **Note on editors!** - TypeScript has great support in [every editor](http://www.typescriptlang.org/index.html#download-links), but this project has been pre-configured for use with [VS Code](https://code.visualstudio.com/). -Throughout the README I'll try to call out specific places where VS code really shines or where this project has been setup to take advantage of specific features. - -## Getting TypeScript -TypeScript itself is simple to add to any project with `npm`. -``` -npm install -D typescript -``` -If you're using VS Code then you're good to go! -VS Code will detect and use the TypeScript version you have installed in your `node_modules` folder. -For other editors, make sure you have the corresponding [TypeScript plugin](http://www.typescriptlang.org/index.html#download-links). - -## Project Structure -The most obvious difference in a TypeScript + Node project is the folder structure. -In a TypeScript project, you it's best to have separate _source_ and _distributable_ files. -TypeScript (`.ts`) files live in your `src` folder and after compilation are output as JavaScript (`.js`) in the `dist` folder. -The `test` and `views` folders remain top level as expected. - -The full folder structure of this app is explained below: - -> **Note!** Make sure you have already built the app using `npm run build` or `yarn run build` - -| Name | Description | -| ------------------------ | --------------------------------------------------------------------------------------------- | -| **.vscode** | Contains VS Code specific settings | -| **dist** | Contains the distributable (or output) from your TypeScript build. This is the code you ship | -| **node_modules** | Contains all your npm dependencies | -| **src** | Contains your source code that will be compiled to the dist dir | -| **src/config** | Passport authentication strategies and login middleware. Add other complex config code here | -| **src/controllers** | Controllers define functions that respond to various http requests | -| **src/models** | Models define Mongoose schemas that will be used in storing and retrieving data from MongoDB | -| **src/public** | Static assets that will be used client side | -| **src/routes** | Routes to be used in the express application. | -| **src/types** | Holds .d.ts files not found on DefinitelyTyped. Covered more in this [section](#) | -| **src**/server.ts | Entry point to your express app | -| **test** | Contains your tests. Seperate from source because there is a different build process. | -| **views** | Views define how your app renders on the client. In this case we're using pug | -| .env.example | API keys, tokens, passwords, database URI. Clone this, but don't check it in to public repos. | -| .travis.yml | Used to configure Travis CI build | -| .copyStaticAssets.js | Build script that copies images, fonts, and JS libs to the dist folder | -| package.json | File that contains npm dependencies as well as [build scripts](#what-if-a-library-isnt-on-definitelytyped) | -| tsconfig.json | Config settings for compiling server code written in TypeScript | -| tsconfig.tests.json | Config settings for compiling tests written in TypeScript | -| tslint.json | Config settings for TSLint code style checking | -| yarn.lock | Contains same dependency version info as package.json, but used with yarn | - -## Building the project -It is rare for JavaScript projects not to have some kind of build pipeline these days, however Node projects typically have the least amount build configuration. -Because of this I've tried to keep the build as simple as possible. -If you're concerned about compile time, the main watch task takes ~2s to refresh. - -### Configuring TypeScript compilation -TypeScript uses the file `tsconfig.json` to adjust project compile options. -Let's dissect this project's `tsconfig.json`, starting with the `compilerOptions` which details how your project is compiled. - -```json - "compilerOptions": { - "module": "commonjs", - "target": "es6", - "noImplicitAny": true, - "moduleResolution": "node", - "sourceMap": true, - "outDir": "dist", - "baseUrl": ".", - "paths": { - "*": [ - "node_modules/*", - "src/types/*" - ] - } - }, -``` - -| `compilerOptions` | Description | -| ---------------------------------- | ------------------------------------------------------------------------------------------------------ | -| `"module": "commonjs"` | The **output** module type (in your `.js` files). Node uses commonjs, so that is what we use | -| `"target": "es6"` | The output language level. Node supports ES6, so we can target that here | -| `"noImplicitAny": true` | Enables a stricter setting which throws errors when something has a default `any` value | -| `"moduleResolution": "node"` | TypeScript attempts to mimic Node's module resolution strategy. Read more [here](https://www.typescriptlang.org/docs/handbook/module-resolution.html#node) | -| `"sourceMap": true` | We want source maps to be output along side our JavaScript. See the [debugging](#debugging) section | -| `"outDir": "dist"` | Location to output `.js` files after compilation | -| `"baseUrl": "."` | Part of configuring module resolution. See [path mapping section](#installing-dts-files-from-definitelytyped) | -| `paths: {...}` | Part of configuring module resolution. See [path mapping section](#installing-dts-files-from-definitelytyped) | - - - -The rest of the file define the TypeScript project context. -The project context is basically a set of options that determine which files are compiled when the compiler is invoked with a specific `tsconfig.json`. -In this case, we use the following to define our project context: -```json - "include": [ - "src/**/*" - ] -``` -`include` takes an array of glob patterns of files to include in the compilation. -This project is fairly simple and all of our .ts files are under the `src` folder. -For more complex setups, you can include an `exclude` array of glob patterns that removes specific files from the set defined with `include`. -There is also a `files` option which takes an array of individual file names which overrides both `include` and `exclude`. - - -### Running the build -All the different build steps are orchestrated via [npm scripts](https://docs.npmjs.com/misc/scripts). -Npm scripts basically allow us to call (and chain) terminal commands via npm. -This is nice because most JavaScript tools have easy to use command line utilities allowing us to not need grunt or gulp to manage our builds. -If you open `package.json`, you will see a `scripts` section with all the different scripts you can call. -To call a script, simply run `npm run ` (or `yarn run **Note!** Because we're using `"noImplicitAny": true`, we are required to have a `.d.ts` file for **every** library we use. While you could set `noImplicitAny` to `false` to silence errors about missing `.d.ts` files, it is a best practice to have a `.d.ts` file for every library. (Even the `.d.ts` file is [basically empty!](#writing-a-dts-file)) - -### Installing `.d.ts` files from DefinitelyTyped -For the most part, you'll find `.d.ts` files for the libraries you are using on DefinitelyTyped. -These `.d.ts` files can be easily installed into your project by using the npm scope `@types`. -For example, if we want the `.d.ts` file for jQuery, we can do so with `npm install --save-dev @types/jquery`. - -> **Note!** Be sure to add `--save-dev` (or `-D`) to your `npm install`. `.d.ts` files are project dependencies, but only used at compile time and thus should be dev dependencies. - -In this template, all the `.d.ts` files have already been added to `devDependencies` in `package.json`, so you will get everything you need after running your first `npm install`. -Once `.d.ts` files have been installed using npm, you should see them in your `node_modules/@types` folder. -The compiler will always look in this folder for `.d.ts` files when resolving JavaScript libraries. - -### What if a library isn't on DefinitelyTyped? -If you try to install a `.d.ts` file from `@types` and it isn't found, or you check DefinitelyTyped and cannot find a specific library, you will want to create your own `.d.ts file`. -In the `src` folder of this project, you'll find the `types` folder which holds the `.d.ts` files that aren't on DefinitelyTyped (or weren't as of the time of this writing). - -#### Setting up TypeScript to look for `.d.ts` files in another folder -The compiler knows to look in `node_modules/@types` by default, but to help the compiler find our own `.d.ts` files we have to configure path mapping in our `tsconfig.json`. -Path mapping can get pretty confusing, but the basic idea is that the TypeScript compiler will look in specific places, in a specific order when resolving modules, and we have the ability to tell the compiler exactly how to do it. -In the `tsconfig.json` for this project you'll see the following: -```json -"baseUrl": ".", -"paths": { - "*": [ - "src/types/*" - ] -} -``` -This tells the TypeScript compiler that in addition to looking in `node_modules/@types` for every import (`*`) also look in our own `.d.ts` file location `` + `src/types/*`. -So when we write something like: -```ts -import * as lusca from "lusca"; -``` -First the compiler will look for a `d.ts` file in `node_modules/@types` and then when it doesn't find one look in `src/types` and find our file `lusca.d.ts`. - -#### Using `dts-gen` -Unless you are familiar with `.d.ts` files, I strongly recommend trying to use the tool [dts-gen](https://github.com/Microsoft/dts-gen) first. -The [README](https://github.com/Microsoft/dts-gen#dts-gen-a-typescript-definition-file-generator) does a great job explaining how to use the tool, and for most cases, you'll get an excellent scaffold of a `.d.ts` file to start with. -In this project, `bcrypt-nodejs.d.ts`, `fbgraph.d.ts`, and `lusca.d.ts` were all generated using `dts-gen`. - -#### Writing a `.d.ts` file -If generating a `.d.ts` using `dts-gen` isn't working, [you should tell me about it first](TODO-survey-link), but then you can create your own `.d.ts` file. - -If you just want to silence the compiler for the time being, create a file called `.d.ts` in your `types` folder and then add this line of code: -```ts -declare module ""; -``` - -If you want to invest some time into making a great `.d.ts` file that will give you great type checking and IntelliSense, the TypeScript website has great [docs on authoring `.d.ts` files](http://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html). - -#### Contributing to DefinitelyTyped -The reason it's so easy to get great `.d.ts` files for most libraries is that developers like you contribute their work back to DefinitelyTyped. -Contributing `.d.ts` files is a great way to get into the open source community if it's something you've never tried before, and as soon as your changes are accepted, every other developer in the world has access to your work. - -If you're interested in giving it a shot, check out the [guidance on DefinitelyTyped](https://github.com/definitelyTyped/DefinitelyTyped/#how-can-i-contribute). -If you're not interested, [you should tell me why](TODO-survey-link) so we can help make it easier in the future! - -### Summary of `.d.ts` management -In general if you stick to the following steps you should have minimal `.d.ts` issues; -1. After installing any npm package as a dependency or dev dependency, immediately try to install the `.d.ts` file via `@types`. -2. If the library has a `.d.ts` file on DefinitelyTyped, the install will succeed and you are done. -If the install fails because the package doesn't exist, continue to step 3. -3. Make sure you project is [configured for supplying your own `d.ts` files](#setting-up-typescript-to-look-for-dts-files-in-another-folder) -4. Try to [generate a `.d.ts` file with dts-gen](#using-dts-gen). -If it succeeds, you are done. -If not, continue to step 5. -5. Create a file called `.d.ts` in your `types` folder. -6. Add the following code: -```ts -declare module ""; -``` -7. At this point everything should compile with no errors and you can either improve the types in the `.d.ts` file by following this [guide on authoring `.d.ts` files](http://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html) or continue with no types. -8. If you are still having issues, let me know by sending me an email or pinging me on twitter, I will help you. - -## Debugging -Debugging TypeScript is exactly like debugging JavaScript with one caveat, you need source maps. - -### Source maps -Source maps allow you to drop break points in your TypeScript source code and have that break point be hit by the JavaScript that is being executed at runtime. - -> **Note!** - Source maps aren't specific to TypeScript. -Anytime JavaScript is transformed (transpiled, compiled, optimized, minified, etc) you need source maps so that the code that is executed at runtime can be _mapped_ back to the source that generated it. - -The best part of source maps is when configured correctly, you don't even know they exist! So let's take a look at how we do that in this project. - -#### Configuring source maps -First you need to make sure your `tsconfig.json` has source map generation enabled: -```json -"compilerOptions" { - "sourceMaps": true -} -``` -With this option enabled, next to every `.js` file that the TypeScript compiler outputs there will be a `.map.js` file as well. -This `.map.js` file provides the information necessary to map back to the source `.ts` file while debugging. - -> **Note!** - It is also possible to generate "inline" source maps using `"inlineSourceMap": true`. -This is more common when writing client side code because some bundlers need inline source maps to preserve the mapping through the bundle. -Because we are writing Node.js code, we don't have to worry about this. - -### Using the debugger in VS Code -Debugging is one of the places where VS Code really shines over other editors. -Node.js debugging in VS Code is easy to setup and even easier to use. -This project comes pre-configured with everything you need to get started. - -When you hit `F5` in VS Code, it looks for a top level `.vscode` folder with a `launch.json` file. -In this file, you can tell VS Code exactly what you want to do: - -```json -{ - "type": "node", - "request": "launch", - "name": "Debug", - "program": "${workspaceRoot}/dist/server.js", - "smartStep": true, - "outFiles": [ - "../dist/**/*.js" - ], - "protocol": "inspector" -} -``` -This is mostly identical to the "Node.js: Launch Program" template with a couple minor changes: - -| `launch.json` Options | Description | -| ----------------------------------------------- | --------------------------------------------------------------- | -| `"program": "${workspaceRoot}/dist/server.js",` | Modified to point to our entry point in `dist` | -| `"smartStep": true,` | Won't step into code that doesn't have a source map | -| `"outFiles": [...]` | Specify where output files are dropped. Use with source maps | -| `"protocol": inspector,` | Use the new Node debug protocal because we're on the latest node| - -With this file in place, you can hit `F5` to serve the project with the debugger already attached. -Now just set your breakpoints and go! - -> Warning! Make sure you don't have the project already running from another command line. -VS Code will try to launch on the same port and error out. -Likewise be sure to stop the debugger before returning to your normal `npm start` process. - -## Testing -For this project, I chose [Jest](https://facebook.github.io/jest/) as our test framework. -While Mocha is probably more common, Mocha seems to be looking for a new maintainer and setting up TypeScript testing in Jest is wicked simple. - -### Install the components -To add TypeScript + Jest support, first install a few npm packages: -``` -npm install -D jest ts-jest -``` -`jest` is the testing framework itself, and `ts-jest` is just a simple function to make running TypeScript tests a little easier. - -### Configure Jest -Jest's configuration lives in `package.json`, so let's open it up and add the following code: -```json -"jest": { - "globals": { - "__TS_CONFIG__": "tsconfig.json" - }, - "moduleFileExtensions": [ - "ts", - "js" - ], - "transform": { - "^.+\\.(ts)$": "./node_modules/ts-jest/preprocessor.js" - }, - "testMatch": [ - "**/test/**/*.test.(ts|js)" - ], - "testEnvironment": "node" - }, -``` -Basically we are telling Jest that we want it to consume all files that match the pattern `"**/test/**/*.test.(ts|js)"` (all `.test.ts`/`.test.js` files in the `test` folder), but we want to preprocess the `.ts` files first. -This preprocess step is very flexible, but in our case, we just want to compile our TypeScript to JavaScript using our `tsconfig.json`. -This all happens in memory when you run the tests, so there are no output `.js` test files for you to manage. - -### Running tests - - -### Writing tests -Writing tests for web apps has entire books dedicated to it and best practices are strongly influenced by personal style, so I'm deliberately avoiding discussing how or when to write tests in this guide. -However, if prescriptive guidance on testing is something that you're interested in, [let me know](TODO-survey-link), I'll do some homework and get back to you. - -## TSLint -TSLint is a code linter which mainly helps catch minor code quality and style issues. -TSLint is very similar to ESLint or JSLint but is built with TypeScript in mind. - -### TSLint rules -Like most linters, TSLint has a wide set of configurable rules as well as support for custom rule sets. -All rules are configured through `tslint.json`. -In this project, we are using a fairly basic set of rules with no additional custom rules. -The settings are largely based off the TSLint settings that we use to develop TypeScript itself. - -### Running TSLint -Like the rest of our build steps, we use npm scripts to invoke TSLint. -To run TSLint you can call the main build script or just the TSLint task. -``` -npm run build // runs full build including TSLint -npm run tslint // runs only TSLint -``` -Notice that TSLint is not a part of the main watch task. -It can be annoying for TSLint to clutter the output window while in the middle of writing a function, so I elected to only run it only during the full build. -If you are interesting in seeing TSLint feedback as soon as possible, I strongly recommend the [TSLint extension in VS Code](). - -# Dependencies -Dependencies are managed through `package.json`. -In that file you'll find two sections: -## `dependencies` - -| Package | Description | -| ------------------------------- | --------------------------------------------------------------------- | -| async | Utility library that provides asynchronous control flow. | -| bcrypt-nodejs | Library for hashing and salting user passwords. | -| body-parser | Express 4 middleware. | -| compression | Express 4 middleware. | -| connect-mongo | MongoDB session store for Express. | -| dotenv | Loads environment variables from .env file. | -| errorhandler | Express 4 middleware. | -| express | Node.js web framework. | -| express-flash | Provides flash messages for Express. | -| express-session | Express 4 middleware. | -| express-validator | Easy form validation for Express. | -| fbgraph | Facebook Graph API library. | -| lusca | CSRF middleware. | -| mongoose | MongoDB ODM. | -| morgan | Express 4 middleware. | -| nodemailer | Node.js library for sending emails. | -| passport | Simple and elegant authentication library for node.js | -| passport-facebook | Sign-in with Facebook plugin. | -| passport-local | Sign-in with Username and Password plugin. | -| pug (jade) | Template engine for Express. | -| request | Simplified HTTP request library. | - -## `devDependencies` - -| Package | Description | -| ------------------------------- | --------------------------------------------------------------------- | -| concurrently | Utility that manages multiple concurrent tasks. Used with npm scripts | -| jest | Reports real-time server metrics for Express. | -| node-sass | GitHub API library. | -| supertest | HTTP assertion library. | -| ts-test | Instagram API library. | -| tslint | Linter (similar to ESLint) for TypeScript files | -| typescript | JavaScript compiler/type checker that boosts JavaScript productivity | - -To install or update these dependencies you can use either `npm` or `yarn`. diff --git a/controllers/messageController.js b/controllers/messageController.js new file mode 100644 index 0000000..37908b8 --- /dev/null +++ b/controllers/messageController.js @@ -0,0 +1,119 @@ +const crud = require('../db/crud'); + +const TABLE_NAME = 'history_session'; + +// 查询列表 +async function getMsgList(req, res) { + console.log(1111) + try { + const data = await crud.findAll(TABLE_NAME) + console.log(data) + res.send({ + code: 200, + data + }) + } catch (error) { + res.send({ + code: 500, + message: error.message + }) + } +} + +// 查询详情 +async function getMsgDetail(req, res) { + try { + const {id} = req.params + + const data = await crud.findById(TABLE_NAME, id) + + res.send({ + code: 200, + data + }) + } catch (error) { + res.send({ + code: 500, + message: error.message + }) + } +} + +/** + * 新增 + */ +async function addMsg(req, res) { + try { + const result = await crud.create( + TABLE_NAME, + req.body + ) + + res.send({ + code: 200, + data: result + }) + } catch (error) { + res.send({ + code: 500, + message: error.message + }) + } +} + +/** + * 修改 + */ +async function updateMsg(req, res) { + try { + const { id } = req.params + + const result = await crud.update( + TABLE_NAME, + id, + req.body + ) + + res.send({ + code: 200, + data: result + }) + } catch (error) { + res.send({ + code: 500, + message: error.message + }) + } +} + +/** + * 删除 + */ +async function deleteMsg(req, res) { + try { + const { id } = req.params + + const result = await crud.remove( + TABLE_NAME, + id + ) + + res.send({ + code: 200, + data: result + }) + } catch (error) { + res.send({ + code: 500, + message: error.message + }) + } +} + +module.exports = { + getMsgList, + getMsgDetail, + addMsg, + updateMsg, + deleteMsg +} diff --git a/copyStaticAssets.js b/copyStaticAssets.js deleted file mode 100644 index 23c11e2..0000000 --- a/copyStaticAssets.js +++ /dev/null @@ -1,5 +0,0 @@ -var shell = require('shelljs'); - -shell.cp('-R', 'src/public/js/lib', 'dist/public/js/lib'); -shell.cp('-R', 'src/public/fonts', 'dist/public/fonts'); -shell.cp('-R', 'src/public/images', 'dist/public/images'); \ No newline at end of file diff --git a/db/crud.js b/db/crud.js new file mode 100644 index 0000000..a71d1a1 --- /dev/null +++ b/db/crud.js @@ -0,0 +1,91 @@ +const pool = require('./index') + +/** + * 查询全部 + */ +async function findAll(table) { + const [rows] = await pool.query( + `SELECT * FROM ${table}` + ) + + return rows +} + +/** + * 根据ID查询 + */ +async function findById(table, id) { + const [rows] = await pool.query( + `SELECT * FROM ${table} WHERE id = ?`, + [id] + ) + + return rows[0] +} + +/** + * 新增 + */ +async function create(table, data) { + const keys = Object.keys(data) + const values = Object.values(data) + + const fields = keys.join(',') + + const placeholders = keys.map(() => '?').join(',') + + const sql = ` + INSERT INTO ${table} + (${fields}) + VALUES (${placeholders}) + ` + + const [result] = await pool.query(sql, values) + + return result +} + +/** + * 更新 + */ +async function update(table, id, data) { + const keys = Object.keys(data) + const values = Object.values(data) + + const setStr = keys + .map(key => `${key} = ?`) + .join(',') + + const sql = ` + UPDATE ${table} + SET ${setStr} + WHERE id = ? + ` + + const [result] = await pool.query( + sql, + [...values, id] + ) + + return result +} + +/** + * 删除 + */ +async function remove(table, id) { + const [result] = await pool.query( + `DELETE FROM ${table} WHERE id = ?`, + [id] + ) + + return result +} + +module.exports = { + findAll, + findById, + create, + update, + remove +} diff --git a/db/index.js b/db/index.js new file mode 100644 index 0000000..048a801 --- /dev/null +++ b/db/index.js @@ -0,0 +1,17 @@ +const mysql = require('mysql2/promise'); +const dotenv = require('dotenv'); + +dotenv.config(); + +const pool = mysql.createPool({ + host: process.env.DB_HOST, + port: process.env.DB_PORT, + user: process.env.DB_USER, + password: process.env.DB_PASSWORD, + database: process.env.DB_NAME, + + waitForConnections: true, + connectionString: 10 +}) + +module.exports = pool; diff --git a/package-lock.json b/package-lock.json index cf76539..860b22d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,4898 +1,1340 @@ { - "name": "express-typescript-starter", - "version": "0.0.2", - "lockfileVersion": 1, - "dependencies": { - "@types/async": { - "version": "2.0.40", - "resolved": "https://registry.npmjs.org/@types/async/-/async-2.0.40.tgz", - "integrity": "sha1-rALeaOZsAEpht8sW34sds6JUzKk=", - "dev": true + "name": "ExpressAIJS", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ExpressAIJS", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "cors": "^2.8.6", + "dotenv": "^17.4.2", + "express": "^5.2.1", + "mysql2": "^3.22.3" + }, + "devDependencies": { + "nodemon": "^3.1.14" + } }, - "@types/bluebird": { - "version": "3.0.37", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.0.37.tgz", - "integrity": "sha1-LnazlKqb6kDQQkGjHAiHomAoM4g=" + "node_modules/@types/node": { + "version": "25.6.2", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-25.6.2.tgz", + "integrity": "sha512-sokuT28dxf9JT5Kady1fsXOvI4HVpjZa95NKT5y9PNTIrs2AsobR4GFAA90ZG8M+nxVRLysCXsVj6eGC7Vbrlw==", + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~7.19.0" + } }, - "@types/body-parser": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.16.3.tgz", - "integrity": "sha1-vCuaGB8vqFyA8eys2KBc8UFLhaM=", - "dev": true - }, - "@types/bson": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/bson/-/bson-1.0.3.tgz", - "integrity": "sha1-bCbwh2v52Muwbt1AGeKTVL86A+A=", - "dev": true - }, - "@types/connect-mongo": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/connect-mongo/-/connect-mongo-0.0.32.tgz", - "integrity": "sha1-k5ynCFE0gsfT8yo4xjfUnSrH0JA=", - "dev": true - }, - "@types/dotenv": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@types/dotenv/-/dotenv-2.0.21.tgz", - "integrity": "sha1-BW3Eo6XUJvjsOdKvP5t6UyvJYb8=", - "dev": true - }, - "@types/errorhandler": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/errorhandler/-/errorhandler-0.0.30.tgz", - "integrity": "sha1-W2xDGGlfwRqiog9boLy3DHlu41A=", - "dev": true - }, - "@types/express": { - "version": "4.0.35", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.0.35.tgz", - "integrity": "sha1-YmfHtgpR+sRzRns8SgLNHkQYBf4=" - }, - "@types/express-serve-static-core": { - "version": "4.0.45", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.0.45.tgz", - "integrity": "sha1-cbsfh9cYdILQ2IUfWylEWOHHhmc=" - }, - "@types/express-session": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/express-session/-/express-session-0.0.32.tgz", - "integrity": "sha1-gvnmoCjrYSWkEtuV8OYal9GUXuA=", - "dev": true - }, - "@types/form-data": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=", - "dev": true - }, - "@types/jest": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-19.2.4.tgz", - "integrity": "sha512-w9nmNHHkl9lNeOorjz1a7BLUd6zTa3pakNx2qkKCVtYS44L7taPcJB8l1kQWVOIa7kN08qwlyS11A1nz2yUvWQ==", - "dev": true - }, - "@types/jquery": { - "version": "2.0.46", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-2.0.46.tgz", - "integrity": "sha512-U64bkZqTfFi4HXHqOckD1Uxvg+oPooCjD5bQ10t9xOG5Ke6cR8tFnvERXrQtrRWvgS428nhAL1V8qv1b88kgyQ==", - "dev": true - }, - "@types/lodash": { - "version": "4.14.65", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.65.tgz", - "integrity": "sha512-r2lKDTjNe6BJirGezs8lEv140Fs0n7BBgSV3SYDGErjBYeBnba/jVsakgKAtbWkmzWxy2X021OyRDKs2WdKN6w==", - "dev": true - }, - "@types/mime": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-0.0.29.tgz", - "integrity": "sha1-+8/TMFc7kS71nu7hRgK/rOYwdUs=" - }, - "@types/mongodb": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-2.2.3.tgz", - "integrity": "sha512-5WlJvJ3gLaPmlHrMsmuw8NuogALl1Qrw64qwLzpk/Si3Tztikw9GxZvQ4lmVlRUo/zyN0LaeVqCaFxdNzLW6RQ==", - "dev": true - }, - "@types/mongoose": { - "version": "4.7.15", - "resolved": "https://registry.npmjs.org/@types/mongoose/-/mongoose-4.7.15.tgz", - "integrity": "sha512-ZBBIAjmQwh+LixhzNrsKVdhZalVxVx7vpt2TPi22XE66ZYdTe+uzEIOuTuoKAdLVyn8F0eFxnsC0eEzm4l04nw==", - "dev": true - }, - "@types/morgan": { - "version": "1.7.32", - "resolved": "https://registry.npmjs.org/@types/morgan/-/morgan-1.7.32.tgz", - "integrity": "sha1-+rHs5NrhcuGjd9Vj0z42NPoEkn0=", - "dev": true - }, - "@types/node": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.27.tgz", - "integrity": "sha512-2QMiuVOEye2yKmMwE1V96C9HSShmT0WSm6dv2WjacvePEjQNNJGAerTO5hdYhj5lpdK5MW+FVxmyzDhr4omIdw==" - }, - "@types/nodemailer": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-1.3.32.tgz", - "integrity": "sha1-djiKqTiakpBBbJjq/X0k2A76IzM=", - "dev": true - }, - "@types/nodemailer-direct-transport": { - "version": "1.0.29", - "resolved": "https://registry.npmjs.org/@types/nodemailer-direct-transport/-/nodemailer-direct-transport-1.0.29.tgz", - "integrity": "sha1-Ake7RzT4u/k5gkGxa0ECLhMD3fE=", - "dev": true - }, - "@types/nodemailer-smtp-transport": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@types/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.1.tgz", - "integrity": "sha1-+acVZXRUfG1G5t910QMXlmDnqbA=", - "dev": true - }, - "@types/passport": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@types/passport/-/passport-0.3.3.tgz", - "integrity": "sha1-RjRVxCRe0jLWzkNhVYDBABregjQ=", - "dev": true - }, - "@types/passport-facebook": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@types/passport-facebook/-/passport-facebook-2.1.4.tgz", - "integrity": "sha1-lwlPgNfmSvKe7Ow1nEowefvdE5M=", - "dev": true - }, - "@types/request": { - "version": "0.0.42", - "resolved": "https://registry.npmjs.org/@types/request/-/request-0.0.42.tgz", - "integrity": "sha1-5HpTvwsTBGSFT7aTKXdGoMBHnDE=", - "dev": true - }, - "@types/serve-static": { - "version": "1.7.31", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.7.31.tgz", - "integrity": "sha1-FUVt6NmNa0z/Mb5savdJKuY/Uho=" - }, - "@types/superagent": { - "version": "2.0.37", - "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-2.0.37.tgz", - "integrity": "sha512-seOSyYolzf9AuiD8dAj1ZzleZ2fcvtTyMkB00qZqzfZ+jdJmg7UqxhNNEHbvYrdu+AqCtebCB5fT3441lPHPiQ==", - "dev": true - }, - "@types/supertest": { + "node_modules/accepts": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.0.tgz", - "integrity": "sha1-Rofer/SVC2PkYRU21v1EZl7hG7c=", - "dev": true - }, - "abab": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz", - "integrity": "sha1-uB3l9ydOxOdW15fNg08wNkJyTl0=", - "dev": true - }, - "abbrev": { - "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", - "dev": true - }, - "accepts": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=" - }, - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" - }, - "acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "resolved": "https://registry.npmmirror.com/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - } + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" } }, - "addressparser": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz", - "integrity": "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=" - }, - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=" - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=" - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", - "dev": true - }, - "ansi-regex": { - "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "anymatch": { - "version": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", - "dev": true - }, - "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", - "dev": true - }, - "aproba": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz", - "integrity": "sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw==", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "dev": true - }, - "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "dev": true - }, - "arr-diff": { - "version": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true - }, - "arr-flatten": { - "version": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", - "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=", - "dev": true - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "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=" - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "arrify": { - "version": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asap": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz", - "integrity": "sha1-UidltQw1EEkOUtfc/ghe+bqWlY8=" - }, - "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=" - }, - "async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.4.1.tgz", - "integrity": "sha1-YqVrJ5yYoR0JhwlqAcw+6463u9c=" - }, - "async-each": { - "version": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "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.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" - }, - "babel-code-frame": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", - "dev": true - }, - "babel-core": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.24.1.tgz", - "integrity": "sha1-jEKFZNzh4fQfszfsNPTDsCK1rYM=", - "dev": true, - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true - } - } - }, - "babel-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz", - "integrity": "sha1-5xX0hsWN7SVknYiJRNUqoHxdlJc=", - "dev": true, - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true - } - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true - }, - "babel-jest": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-19.0.0.tgz", - "integrity": "sha1-WTI87ZmjqE01naIZyogQdP/Gzj8=", - "dev": true - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true - }, - "babel-plugin-istanbul": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.4.tgz", - "integrity": "sha1-GN3oS/POMp/d8/QQP66SFFbY5Yc=", - "dev": true - }, - "babel-plugin-jest-hoist": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-19.0.0.tgz", - "integrity": "sha1-SuKgTqYSpuc2UfP95SwXiZEwS+o=", - "dev": true - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", - "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=", - "dev": true - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true - }, - "babel-preset-jest": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-19.0.0.tgz", - "integrity": "sha1-ItZyAdAjJKGVgRKI6zgpS7PKw5Y=", - "dev": true - }, - "babel-register": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz", - "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=", - "dev": true - }, - "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "dev": true - }, - "babel-template": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz", - "integrity": "sha1-BK5RTx+Ts6JTfyoPYKWkX7gwgzM=", - "dev": true - }, - "babel-traverse": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz", - "integrity": "sha1-qzZnP9NW+aCUhlnnszjV/q2zFpU=", - "dev": true - }, - "babel-types": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz", - "integrity": "sha1-oTaHncFbNga9oNkMH8dDBML/CXU=", - "dev": true - }, - "babylon": { - "version": "6.17.2", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.2.tgz", - "integrity": "sha1-IB0l71+JLEG65JSIsI2w3Udun1w=", - "dev": true - }, - "balanced-match": { - "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - }, - "basic-auth": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz", - "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=" - }, - "bcrypt-nodejs": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/bcrypt-nodejs/-/bcrypt-nodejs-0.0.3.tgz", - "integrity": "sha1-xgkX8m3CNWYVZsaBBhwwPCsohCs=" - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true - }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true - }, - "binary-extensions": { - "version": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", - "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", - "dev": true - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true - }, - "bluebird": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" - }, - "body-parser": { - "version": "1.17.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz", - "integrity": "sha1-+IkqvI+eYn1Crtr7yma/WrmRBO4=", - "dependencies": { - "debug": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=" - }, - "brace-expansion": { - "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", - "dev": true - }, - "braces": { - "version": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true - }, - "browser-resolve": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", - "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", - "dev": true, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, - "bser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", - "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", - "dev": true - }, - "bson": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.4.tgz", - "integrity": "sha1-k8ENOeqltYQVy8QFLz5T5WKwtyw=" - }, - "buffer-shims": { - "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" - }, - "buildmail": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/buildmail/-/buildmail-4.0.1.tgz", - "integrity": "sha1-h393OLeHKYccmhBeO4N9K+EaenI=" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "bytes": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=" - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" - }, - "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, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - } - } - }, - "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=" - }, - "chalk": { - "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true - }, - "character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=" - }, - "chokidar": { - "version": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true - }, - "ci-info": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.0.0.tgz", - "integrity": "sha1-3FKF8rTiUYIWg2gcOBwziPRuxTQ=", - "dev": true - }, - "clean-css": { - "version": "3.4.26", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.26.tgz", - "integrity": "sha1-VTI7NE/zvO5oSi6sgck9+Ppz3us=" - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=" - }, - "clone": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", - "dev": true - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "color-convert": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", - "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", - "dev": true - }, - "color-name": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.2.tgz", - "integrity": "sha1-XIq3K2S9IhXWF66VWeuxSEdc+Y0=", - "dev": true - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=" - }, - "commander": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=" - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "compressible": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.10.tgz", - "integrity": "sha1-/tocf3YXkScyspv4zyYlKiC57s0=" - }, - "compression": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz", - "integrity": "sha1-zOsSHsydCcUtetDDNQ6pPd1AK8M=", - "dependencies": { - "bytes": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz", - "integrity": "sha1-1baAoWW2IBc5rLYRVCqrwtjOsHA=" - }, - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=" - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" - } - } - }, - "concat-map": { - "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concurrently": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-3.4.0.tgz", - "integrity": "sha1-YGYrPe/eBzdbrhmqwKt4DsdIunk=", - "dev": true, - "dependencies": { - "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 - }, - "chalk": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", - "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", - "dev": true, - "dependencies": { - "supports-color": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", - "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", - "dev": true - } - } - }, - "commander": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz", - "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=", - "dev": true - }, - "has-ansi": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", - "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", - "dev": true - }, - "strip-ansi": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", - "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true - } - } - }, - "configstore": { - "version": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz", - "integrity": "sha1-w1eB0FAdJowlxUuLF/YkDopPsCE=", - "dev": true - }, - "connect-flash": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz", - "integrity": "sha1-2GMPJtlaf4UfmVax6MxnMvO2qjA=" - }, - "connect-mongo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/connect-mongo/-/connect-mongo-1.3.2.tgz", - "integrity": "sha1-fL9Y3/8mdg5eAOAX0KhbS8kLnTc=" - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "constantinople": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.0.tgz", - "integrity": "sha1-dWnKqKo/jVk11i4fqW+fcCzYHHk=" - }, - "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.2", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=" - }, - "content-type-parser": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.1.tgz", - "integrity": "sha1-w+VpiMU8ZRJ/tG1AMqOpACRv3JQ=", - "dev": true - }, - "convert-source-map": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", - "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", - "dev": true - }, - "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=" - }, - "cookiejar": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.1.tgz", - "integrity": "sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=", - "dev": true - }, - "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", - "dev": true - }, - "core-util-is": { - "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "crc": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz", - "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms=" - }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=" - }, - "cssom": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", - "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", - "dev": true - }, - "cssstyle": { - "version": "0.2.37", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", - "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", - "dev": true - }, - "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 - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "date-fns": { - "version": "1.28.5", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.28.5.tgz", - "integrity": "sha1-JXz8RdMi30XvVlhmWWfuhBzXP68=", - "dev": true - }, - "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "dev": true - }, - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.6.6.tgz", - "integrity": "sha1-qfpvvpykPPHnn3O3XAGJy7fW21o=", - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "deep-extend": { - "version": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", - "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=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "depd": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "dependencies": { - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true - } - } - }, - "diff": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", - "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=", - "dev": true - }, - "doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=" - }, - "dotenv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-2.0.0.tgz", - "integrity": "sha1-vXWcNXqqcDZeAclrewvsCKbg2Uk=" - }, - "double-ended-queue": { - "version": "2.1.0-0", - "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", - "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=", - "dev": true - }, - "duplexer": { - "version": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "dev": true - }, - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "dev": true, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "duplexify": { - "version": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz", - "integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=", - "dev": 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 - }, - "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.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" - }, - "end-of-stream": { - "version": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz", - "integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=", - "dev": true - }, - "errno": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", - "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", - "dev": true - }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true - }, - "errorhandler": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.0.tgz", - "integrity": "sha1-6rpkyl1UKjEayUX1gt78M2Fl2fQ=" - }, - "es6-promise": { - "version": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", - "dev": true - }, - "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": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", - "dev": true, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "dev": true, - "optional": true - } - } - }, - "esprima": { + "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - }, - "estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "etag": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", - "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=" - }, - "event-stream": { - "version": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "dev": true - }, - "exec-sh": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz", - "integrity": "sha1-FPdd4/INKG75MwmbLOUKkDWc7xA=", - "dev": true - }, - "expand-brackets": { - "version": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true - }, - "expand-range": { - "version": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true - }, - "express": { - "version": "4.15.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.15.3.tgz", - "integrity": "sha1-urZdDwOqgMNYQIly/HAPkWlEtmI=", - "dependencies": { - "debug": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "express-flash": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/express-flash/-/express-flash-0.0.2.tgz", - "integrity": "sha1-I9GovPP5DXB5KOSJ+Whp7K0KzaI=" - }, - "express-session": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.15.3.tgz", - "integrity": "sha1-21RfBDWnsbIorgLagZf2UUFzXGc=", - "dependencies": { - "debug": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "express-validator": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-3.2.0.tgz", - "integrity": "sha1-lTer6w9m5Dn54wtO0WxMbCMTGOI=" - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" - }, - "extglob": { - "version": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true - }, - "extsprintf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" - }, - "fancy-log": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", - "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fb-watchman": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", - "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", - "dev": true - }, - "fbgraph": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/fbgraph/-/fbgraph-1.4.1.tgz", - "integrity": "sha1-sqo4D5732jApeNB0n61pn7l0wQQ=", - "dependencies": { - "qs": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-1.2.2.tgz", - "integrity": "sha1-GbV/8k3CqZzh+L32r82ln472H4g=" - } - } - }, - "filename-regex": { - "version": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", - "dev": true - }, - "fill-range": { - "version": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "dev": true - }, - "finalhandler": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", - "integrity": "sha1-70fneVDpmXgOhgIqVg4yF+DQzIk=", - "dependencies": { - "debug": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true - }, - "for-in": { - "version": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true - }, - "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.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=" - }, - "formidable": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", - "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=", - "dev": true - }, - "forwarded": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", - "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=" - }, - "fresh": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=" - }, - "from": { - "version": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true - }, - "fs-extra": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", - "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.1.tgz", - "integrity": "sha1-8Z/Sj0Pur3YWgOUZogPE0LPTGv8=", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "optional": true, + "license": "ISC", "dependencies": { - "abbrev": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "dev": true - }, - "brace-expansion": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.11.0", - "bundled": true, - "dev": true, - "optional": true - }, - "chalk": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "commander": { - "version": "2.9.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "deep-extend": { - "version": "0.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "extend": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.10", - "bundled": true, - "dev": true - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.3", - "bundled": true, - "dev": true, - "optional": true - }, - "generate-function": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "generate-object-property": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "getpass": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.1", - "bundled": true, - "dev": true - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "graceful-readlink": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "har-validator": { - "version": "2.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "has-ansi": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "dev": true, - "optional": true - }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "is-my-json-valid": { - "version": "2.15.0", - "bundled": true, - "dev": true, - "optional": true - }, - "is-property": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsonpointer": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "optional": true - }, - "mime-db": { - "version": "1.26.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.14", - "bundled": true, - "dev": true - }, - "minimatch": { - "version": "3.0.3", - "bundled": true, - "dev": true - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true - }, - "ms": { - "version": "0.7.1", - "bundled": true, - "dev": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.33", - "bundled": true, - "dev": true, - "optional": true - }, - "nopt": { - "version": "3.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "npmlog": { - "version": "4.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "optional": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "qs": { - "version": "6.3.1", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.2", - "bundled": true, - "dev": true, - "optional": true - }, - "request": { - "version": "2.79.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rimraf": { - "version": "2.5.4", - "bundled": true, - "dev": true - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "dev": true, - "optional": true - }, - "sshpk": { - "version": "1.10.2", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "string_decoder": { - "version": "0.10.31", - "bundled": true, - "dev": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "supports-color": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true - }, - "tar-pack": { - "version": "3.3.0", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "once": { - "version": "1.3.3", - "bundled": true, - "dev": true, - "optional": true - }, - "readable-stream": { - "version": "2.1.5", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "optional": true - }, - "tunnel-agent": { - "version": "0.4.3", - "bundled": true, - "dev": true, - "optional": true - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "verror": { - "version": "1.3.6", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "xtend": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true - } + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true - }, - "function-bind": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=" - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true - }, - "gaze": { + "node_modules/aws-ssl-profiles": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", - "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", - "dev": true - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true - }, - "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 - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } + "resolved": "https://registry.npmmirror.com/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", + "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" } }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true - }, - "glob-all": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.1.0.tgz", - "integrity": "sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs=", + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, - "dependencies": { - "minimist": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", - "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=", - "dev": true - }, - "yargs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz", - "integrity": "sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s=", - "dev": true - } + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" } }, - "glob-base": { - "version": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true - }, - "glob-parent": { - "version": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true - }, - "globals": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz", - "integrity": "sha1-DAymltm5u2lNLlRwvTd3fKrVAoY=", - "dev": true - }, - "globule": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.1.0.tgz", - "integrity": "sha1-xJNS5NwYPYWJPuglOF65lLtt9F8=", + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, - "dependencies": { - "lodash": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz", - "integrity": "sha1-0iyaxmAojzhD4Wun0rXQbMon13c=", - "dev": true - } + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "glogg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", - "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", - "dev": true - }, - "got": { - "version": "https://registry.npmjs.org/got/-/got-3.3.1.tgz", - "integrity": "sha1-5dDtSvVfw+701WAHdp2YGSvLLso=", - "dev": true, - "dependencies": { - "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - } - } - }, - "graceful-fs": { - "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true - }, - "gulp-util": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz", - "integrity": "sha1-eJJcS4+LSQBawBoBHFV+YhiUHLs=", - "dev": true, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "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=", - "dev": true - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true - }, - "handlebars": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", - "dev": true, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - } - } - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=" - }, - "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=" - }, - "has-ansi": { - "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=" - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true - }, - "hooks-fixed": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hooks-fixed/-/hooks-fixed-2.0.0.tgz", - "integrity": "sha1-oB2JTVKsf2WZu7H2PfycQR33DLo=" - }, - "hosted-git-info": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", - "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=", - "dev": true - }, - "html-encoding-sniffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz", - "integrity": "sha1-eb96eF6klf5mFl5zQVPzY/9UN9o=", - "dev": true - }, - "http-errors": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", - "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=" - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=" - }, - "httpntlm": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/httpntlm/-/httpntlm-1.6.1.tgz", - "integrity": "sha1-rQFScUOi6Hc8+uapb1hla7UqNLI=" - }, - "httpreq": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/httpreq/-/httpreq-0.4.23.tgz", - "integrity": "sha1-D0YP4MeBApvK1/R8rQjebMETAhI=" - }, - "iconv-lite": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=" - }, - "ignore-by-default": { - "version": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "imurmurhash": { - "version": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "dependencies": { - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true - } - } - }, - "infinity-agent": { - "version": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz", - "integrity": "sha1-ReDi/3qesDCyfWK3SzdEt6esQhY=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true - }, - "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", - "dev": true - }, - "interpret": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", - "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=", - "dev": true - }, - "invariant": { + "node_modules/body-parser": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ipaddr.js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.3.0.tgz", - "integrity": "sha1-HgOlL9rYOou7KyXL9JmLTP/NPew=" - }, - "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-binary-path": { - "version": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true - }, - "is-buffer": { - "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true - }, - "is-ci": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", - "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", - "dev": true - }, - "is-dotfile": { - "version": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz", - "integrity": "sha1-LBMjg/ORmfjtwmjKAbmwB9IFzE0=", - "dev": true - }, - "is-equal-shallow": { - "version": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true - }, - "is-expression": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-2.1.0.tgz", - "integrity": "sha1-kb6dR968/vB3l36XIr5tz7RGXvA=" - }, - "is-extendable": { - "version": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-finite": { - "version": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true - }, - "is-glob": { - "version": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true - }, - "is-npm": { - "version": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", - "dev": true - }, - "is-number": { - "version": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true - }, - "is-posix-bracket": { - "version": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" - }, - "is-redirect": { - "version": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=" - }, - "is-stream": { - "version": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "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": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "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=" - }, - "istanbul": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", - "dev": true, + "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-2.2.2.tgz", + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", + "license": "MIT", "dependencies": { - "abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", - "dev": true - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true - }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - } + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.3", + "http-errors": "^2.0.0", + "iconv-lite": "^0.7.0", + "on-finished": "^2.4.1", + "qs": "^6.14.1", + "raw-body": "^3.0.1", + "type-is": "^2.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "istanbul-api": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.1.9.tgz", - "integrity": "sha512-zV14oa+hjBNP3gJTM/BzNdJpInHKbZ9cLIEwVasuaTUA1ebF9TBOIfcC5SDAE3C11rXxOw3KSimKGMiFz6PpWQ==", + "node_modules/brace-expansion": { + "version": "5.0.6", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", "dev": true, + "license": "MIT", "dependencies": { - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true - } + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" } }, - "istanbul-lib-coverage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", - "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", - "dev": true - }, - "istanbul-lib-hook": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz", - "integrity": "sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.2.tgz", - "integrity": "sha512-lPgUY+Pa5dlq2/l0qs1PJZ54QPSfo+s4+UZdkb2d0hbOyrEIAbUJphBLFjEyXBdeCONgGRADFzs3ojfFtmuwFA==", - "dev": true - }, - "istanbul-lib-report": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", - "integrity": "sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==", + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true - } + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" } }, - "istanbul-lib-source-maps": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz", - "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==", - "dev": true, - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true - } + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "istanbul-reports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.1.tgz", - "integrity": "sha512-P8G873A0kW24XRlxHVGhMJBhQ8gWAec+dae7ZxOBzxT4w+a9ATSPvRVK3LB1RAJ9S8bg2tOyWHAGW40Zd2dKfw==", - "dev": true - }, - "jest": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/jest/-/jest-19.0.2.tgz", - "integrity": "sha1-t5T6r4/0Yec4jyi+71WaVPILLBA=", - "dev": true, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true - }, - "jest-cli": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-19.0.2.tgz", - "integrity": "sha1-zDYgtirKxfLZOlSMtu9pfU7IVEM=", - "dev": true - }, - "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "dev": true - } - } - }, - "jest-changed-files": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-19.0.2.tgz", - "integrity": "sha1-FsVMhMMnC+QI4G0uivPz43qIWCQ=", - "dev": true - }, - "jest-config": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-19.0.4.tgz", - "integrity": "sha1-QpgCEdRkF+kcp6v/0IbCcCNPc/0=", - "dev": true - }, - "jest-diff": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-19.0.0.tgz", - "integrity": "sha1-0VY8/FbItgIymI+8BdTRbtkPBjw=", - "dev": true - }, - "jest-environment-jsdom": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-19.0.2.tgz", - "integrity": "sha1-ztqFnEpLlKs15N59q1S5JvKT5KM=", - "dev": true - }, - "jest-environment-node": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-19.0.2.tgz", - "integrity": "sha1-boQHnbh+0h0MBeH5Zp8gexFv6Zs=", - "dev": true - }, - "jest-file-exists": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jest-file-exists/-/jest-file-exists-19.0.0.tgz", - "integrity": "sha1-zKLlh6EeyS4kz+qz+KlNZX8/zrg=", - "dev": true - }, - "jest-haste-map": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-19.0.2.tgz", - "integrity": "sha1-KGSEw6Fuhtp4crCHfDXc4ww9bwc=", - "dev": true - }, - "jest-jasmine2": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-19.0.2.tgz", - "integrity": "sha1-FnmRrIJZgfsagArxJug6/MqDLHM=", - "dev": true - }, - "jest-matcher-utils": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-19.0.0.tgz", - "integrity": "sha1-Xs2bY1ZdKwAfYfv37Ex/U3lkVk0=", - "dev": true - }, - "jest-matchers": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jest-matchers/-/jest-matchers-19.0.0.tgz", - "integrity": "sha1-x07Mbr/sBvOEdnuk1vpKQtZ1V1Q=", - "dev": true - }, - "jest-message-util": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-19.0.0.tgz", - "integrity": "sha1-cheWuJwOTXYWBvm6jLgoo7YkZBY=", - "dev": true - }, - "jest-mock": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-19.0.0.tgz", - "integrity": "sha1-ZwOGQelgerLOCOxKjLg6q7yJnQE=", - "dev": true - }, - "jest-regex-util": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-19.0.0.tgz", - "integrity": "sha1-t3VFhxEq7eFFZRC7H2r+dO9ZhpE=", - "dev": true - }, - "jest-resolve": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-19.0.2.tgz", - "integrity": "sha1-V5NXXeTweuwy99f/DGwYGWPu+zw=", - "dev": true - }, - "jest-resolve-dependencies": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-19.0.0.tgz", - "integrity": "sha1-p0GtH6CUFA5k7PJkKlBPg07OIu4=", - "dev": true - }, - "jest-runtime": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-19.0.4.tgz", - "integrity": "sha1-8WfZ8TR3UvICc2EGeSZIU0n8wkU=", - "dev": true, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "dev": true - } - } - }, - "jest-snapshot": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-19.0.2.tgz", - "integrity": "sha1-nBshYhT3GHw4v9XHCx76sWsP9Qs=", - "dev": true - }, - "jest-util": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-19.0.2.tgz", - "integrity": "sha1-4KAjKiq55rK1Nmi9s1NMK1l37UE=", - "dev": true - }, - "jest-validate": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-19.0.2.tgz", - "integrity": "sha1-3FNN9fEnjVtj3zKxQkHU2/ckTAw=", - "dev": true - }, - "jodid25519": { + "node_modules/call-bind-apply-helpers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", - "optional": true - }, - "js-base64": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", - "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=", - "dev": true - }, - "js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=" - }, - "js-tokens": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", - "dev": true - }, - "js-yaml": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.4.tgz", - "integrity": "sha1-UgtFZPhlc7qWZir4Woyvp7S1pvY=", - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "jsdom": { - "version": "9.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", - "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", - "dev": true, + "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=" - }, - "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=" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsprim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=" - }, - "kareem": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-1.4.1.tgz", - "integrity": "sha1-7XYgAET6BB7zK02oJh4lU/EXNTE=" - }, - "kind-of": { - "version": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.0.tgz", - "integrity": "sha1-tYq+TVwEStM3JqjBUltIz4kb/wc=" - }, - "latest-version": { - "version": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz", - "integrity": "sha1-cs/Ebj6NG+ZR4eu1Tqn26pbzdLs=", - "dev": true - }, - "lazy-cache": { + "node_modules/call-bound": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + "resolved": "https://registry.npmmirror.com/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true - }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true - }, - "libbase64": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz", - "integrity": "sha1-YjUag5VjrF/1vSbxL2Dpgwu3UeY=" - }, - "libmime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/libmime/-/libmime-3.0.0.tgz", - "integrity": "sha1-UaGp50SOy9Ms2lRCFnW7IbwJPaY=" - }, - "libqp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz", - "integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g=" - }, - "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 - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, - "lodash._baseassign": { - "version": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", - "dev": true - }, - "lodash._basecopy": { - "version": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "lodash._bindcallback": { - "version": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", - "dev": true - }, - "lodash._createassigner": { - "version": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", - "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", - "dev": true - }, - "lodash._getnative": { - "version": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash._isiterateecall": { - "version": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true - }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true - }, - "lodash.assign": { - "version": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", - "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.defaults": { - "version": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz", - "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=", - "dev": true - }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=", - "dev": true - }, - "lodash.isarguments": { - "version": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "lodash.isarray": { - "version": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true - }, - "lodash.keys": { - "version": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true - }, - "lodash.mergewith": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz", - "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=", - "dev": true - }, - "lodash.partition": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.partition/-/lodash.partition-4.6.0.tgz", - "integrity": "sha1-o45GtzRp4EILDaEhLmbUFL42S6Q=", - "dev": true - }, - "lodash.pickby": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz", - "integrity": "sha1-feoh2MGNdwOifHBMFdO4SmfjOv8=", - "dev": true - }, - "lodash.restparam": { - "version": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true - }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true - }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "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 - }, - "lowercase-keys": { - "version": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", - "dev": true - }, - "lru-cache": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", - "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=", - "dev": true - }, - "lusca": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/lusca/-/lusca-1.4.1.tgz", - "integrity": "sha1-SYrZ7cS3fYWNCxwjfbjaf4ULNuw=" - }, - "mailcomposer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-4.0.1.tgz", - "integrity": "sha1-DhxEsqB890DuF9wUm6AJ8Zyt/rQ=" - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "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 - }, - "map-stream": { - "version": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", - "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=", + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, + "license": "MIT", "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "merge": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", - "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", - "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=" - }, - "micromatch": { - "version": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true - }, - "mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" - }, - "mime-db": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" - }, - "mime-types": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=" - }, - "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "dev": true - }, - "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true - }, - "mongodb": { - "version": "2.2.28", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.28.tgz", - "integrity": "sha1-2P9FdUNm4Dlz+iWb9PEUR4WNplc=", - "dependencies": { - "es6-promise": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz", - "integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q=" - }, - "readable-stream": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", - "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=" - } - } - }, - "mongodb-core": { - "version": "2.1.12", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.12.tgz", - "integrity": "sha1-FTEZJRG8Fu8WCsauDMRndv/YRR0=" - }, - "mongoose": { - "version": "4.10.4", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-4.10.4.tgz", - "integrity": "sha1-uaCgM3JeXCnv2e77RofRNxlWx7Y=", - "dependencies": { - "async": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz", - "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=" - }, - "es6-promise": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz", - "integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q=" - }, - "mongodb": { - "version": "2.2.27", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.27.tgz", - "integrity": "sha1-NBIgNNtm2YO89qta2yaiSnD+9uY=" - }, - "mongodb-core": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.11.tgz", - "integrity": "sha1-HDh3bOsXSZepnCiGDu2QKNqbPho=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "readable-stream": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", - "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=" - } - } - }, - "morgan": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.8.2.tgz", - "integrity": "sha1-eErHc05KRTqcbm6GgKkyknXItoc=", - "dependencies": { - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "mpath": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.2.1.tgz", - "integrity": "sha1-Ok6Ck1mAHeljCcJ6ay4QLon56W4=" - }, - "mpromise": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mpromise/-/mpromise-0.5.5.tgz", - "integrity": "sha1-9bJCWddjrMIlewoMjG2Gb9UXMuY=" - }, - "mquery": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-2.3.1.tgz", - "integrity": "sha1-mrNnSXFIAP8LtTpoHOS8TV8HyHs=", - "dependencies": { - "bluebird": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz", - "integrity": "sha1-AkpVFylTCIV/FPkfEQb8O1VfRGs=" - }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "sliced": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz", - "integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8=" - } - } - }, - "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz", - "integrity": "sha1-cIFVpeROM/X9D8U+gdDUCpG+H/8=", - "dev": true - }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "dev": true - }, - "muri": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/muri/-/muri-1.2.1.tgz", - "integrity": "sha1-7H6lzmympSPrGrNbrNpfqBbJqjw=" - }, - "nan": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" - }, - "nested-error-stacks": { - "version": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz", - "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=", - "dev": true - }, - "node-gyp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", - "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", - "dev": true, - "dependencies": { - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true - } - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-notifier": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz", - "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=", - "dev": true - }, - "node-sass": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.5.3.tgz", - "integrity": "sha1-0JydEXlkEjnRuX/8YjH9zsU+FWg=", - "dev": true, - "dependencies": { - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - } - } - }, - "nodemailer": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-2.7.2.tgz", - "integrity": "sha1-8kLmSa7q45tsftdA73sGHEBNMPk=" - }, - "nodemailer-direct-transport": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz", - "integrity": "sha1-6W+vuQNYVglH5WkBfZfmBzilCoY=" - }, - "nodemailer-fetch": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz", - "integrity": "sha1-ecSQihwPXzdbc/6IjamCj23JY6Q=" - }, - "nodemailer-shared": { + "node_modules/content-disposition": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz", - "integrity": "sha1-z1mU4v0mjQD1zw+nZ6CBae2wfsA=" - }, - "nodemailer-smtp-pool": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz", - "integrity": "sha1-LrlNbPhXgLG0clzoU7nL1ejajHI=" - }, - "nodemailer-smtp-transport": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz", - "integrity": "sha1-A9ccdjFPFKx9vHvwM6am0W1n+3c=" - }, - "nodemailer-wellknown": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz", - "integrity": "sha1-WG24EB2zDLRDjrVGc3pBqtDPE9U=" - }, - "nodemon": { - "version": "https://registry.npmjs.org/nodemon/-/nodemon-1.11.0.tgz", - "integrity": "sha1-ImxWK9KnsT09dRi0mtSCijYj0Gw=", - "dev": true - }, - "nopt": { - "version": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true - }, - "normalize-package-data": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", - "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", - "dev": true - }, - "normalize-path": { - "version": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true - }, - "npmlog": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", - "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", - "dev": true - }, - "number-is-nan": { - "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "nwmatcher": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.0.tgz", - "integrity": "sha1-tDiTYhcOfvl5jDx3FtgOvAEG/M8=", - "dev": true - }, - "oauth": { - "version": "0.9.15", - "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", - "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, - "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object.omit": { - "version": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=" - }, - "on-headers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" - }, - "once": { - "version": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "dev": true - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "dependencies": { - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - } + "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "os-homedir": { - "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true - }, - "os-tmpdir": { - "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", - "dev": true - }, - "p-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", - "dev": true - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true - }, - "package-json": { - "version": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz", - "integrity": "sha1-yOysCUInzfdqMWh07QXifMk5oOA=", - "dev": true - }, - "parse-glob": { - "version": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "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 - }, - "parse5": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", - "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", - "dev": true - }, - "parseurl": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=" - }, - "passport": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/passport/-/passport-0.3.2.tgz", - "integrity": "sha1-ndAJ+RXo/glbASSgG4+C2gdRAQI=" - }, - "passport-facebook": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/passport-facebook/-/passport-facebook-2.1.1.tgz", - "integrity": "sha1-w50LUq5NWRYyRaTiGnubYyEwMxE=" - }, - "passport-local": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz", - "integrity": "sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4=" - }, - "passport-oauth2": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.4.0.tgz", - "integrity": "sha1-9i+BWDy+EmCb585vFguTlaJ7hq0=" - }, - "passport-strategy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", - "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-parse": { + "node_modules/content-type": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" - }, - "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 - }, - "pause": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", - "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" - }, - "pause-stream": { - "version": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "preserve": { - "version": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "pretty-format": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-19.0.0.tgz", - "integrity": "sha1-VlMNMqy5ij+khRxOK503tCBoTIQ=", - "dev": true, - "dependencies": { - "ansi-styles": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.0.0.tgz", - "integrity": "sha1-VATpOlRMT+x/BIJil3vr/jFV4ME=", - "dev": true - } + "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "private": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", - "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", - "dev": true - }, - "process-nextick-args": { - "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "promise": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", - "integrity": "sha1-SJZUxpJha4qlWwck+oCbt9tJxb8=" - }, - "proxy-addr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.4.tgz", - "integrity": "sha1-J+VF9pYKRKYn2bREZ+NcG2tM4vM=" - }, - "prr": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", - "dev": true - }, - "ps-tree": { - "version": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz", - "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "pug": { - "version": "2.0.0-rc.2", - "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.0-rc.2.tgz", - "integrity": "sha1-B4RVJ3kKssa+Z9z16x8xgECB8Eo=" - }, - "pug-attrs": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.2.tgz", - "integrity": "sha1-i+KyIlVo/6ddG4Zpgr/59BEa/8s=" - }, - "pug-code-gen": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-1.1.1.tgz", - "integrity": "sha1-HPcnRO8qA56uajNAyqoRBYcSWOg=" - }, - "pug-error": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.2.tgz", - "integrity": "sha1-U659nSm7A89WRJOgJhCfVMR/XyY=" - }, - "pug-filters": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-2.1.3.tgz", - "integrity": "sha1-1ZdnoiDeeX3XVUifZoNM+aqDqlQ=" - }, - "pug-lexer": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-3.1.0.tgz", - "integrity": "sha1-/QhzdtSmdbT1n4/vQiiDQ06VgaI=", - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - }, - "is-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", - "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=" - } + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "pug-linker": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.1.tgz", - "integrity": "sha1-uj+P8hPKjzowSFm0T+0Tynud+hk=" - }, - "pug-load": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.7.tgz", - "integrity": "sha1-Ux0MbhFUYBDphGMNA99AY2fS3nc=" - }, - "pug-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-3.0.0.tgz", - "integrity": "sha1-N8YZ3YAPZCGHzk1s4aFkzddUh6M=" - }, - "pug-runtime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.3.tgz", - "integrity": "sha1-mBYmB7D86eJU1CfzOYelrucWi9o=" - }, - "pug-strip-comments": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.2.tgz", - "integrity": "sha1-0xOvoBvMN0mA4TmeI+vy65vchRM=" - }, - "pug-walk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.3.tgz", - "integrity": "sha1-181bI9s8qHxjbIaglz+c2OAwQ2w=" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" - }, - "random-bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" - }, - "randomatic": { - "version": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", - "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=", - "dev": true - }, - "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.2.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", - "integrity": "sha1-mUl2z2pQlqQRYoQEkvC9xdbn+5Y=" - }, - "rc": { - "version": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", - "dev": true, - "dependencies": { - "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "read-all-stream": { - "version": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", - "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=", - "dev": true - }, - "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 - }, - "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, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true - }, - "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 - } - } - }, - "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", - "dev": true - }, - "readdirp": { - "version": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true - }, - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - }, - "regex-cache": { - "version": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", - "dev": true - }, - "regexp-clone": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", - "integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk=" - }, - "registry-url": { - "version": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true - }, - "remap-istanbul": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/remap-istanbul/-/remap-istanbul-0.9.5.tgz", - "integrity": "sha1-oYYXsfMe7Fp9vud1OCmLd1YGqqg=", - "dev": true, - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true - } - } - }, - "remove-trailing-separator": { - "version": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz", - "integrity": "sha1-YV67lq9VlVLUv0BXyENtSGq2PMQ=", - "dev": true - }, - "repeat-element": { - "version": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true - }, - "repeat-string": { - "version": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "repeating": { - "version": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", - "integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw=", - "dev": true - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dependencies": { - "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" - } - } - }, - "require_optional": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.0.tgz", - "integrity": "sha1-UqhhN6hJco62ClVTNhf4+RT1mr8=" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "resolve": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", - "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=" - }, - "resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=" - }, - "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "dev": true - }, - "rx": { - "version": "2.3.24", - "resolved": "https://registry.npmjs.org/rx/-/rx-2.3.24.tgz", - "integrity": "sha1-FPlQpCF9fjXapxu8vljv9o6ksrc=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.0.tgz", - "integrity": "sha512-aSLEDudu6OoRr/2rU609gRmnYboRLxgDG1z9o2Q0os7236FwvcqIOO8r8U5JUEwivZOhDaKlFO4SbPTJYyBEyQ==" - }, - "sane": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-1.5.0.tgz", - "integrity": "sha1-pK3q52TQSGIeyyfV+ez1ExAZOfM=", - "dev": true, - "dependencies": { - "bser": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz", - "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=", - "dev": true - }, - "fb-watchman": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz", - "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=", - "dev": true - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", - "dev": true, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true - } - } - }, - "sax": { + "node_modules/cookie-signature": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.2.tgz", - "integrity": "sha1-/YYxojvHgmvvXYcb24c3jJVkeCg=", - "dev": true + "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true - }, - "semver": { - "version": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" - }, - "semver-diff": { - "version": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "dev": true - }, - "send": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/send/-/send-0.15.3.tgz", - "integrity": "sha1-UBP5+ZAj31DRvZiSwZ4979HVMwk=", + "node_modules/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmmirror.com/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", + "license": "MIT", "dependencies": { - "debug": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "serve-static": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz", - "integrity": "sha1-n0uhni8wMMVH+K+ZEHg47DjVseI=" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" - }, - "shelljs": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz", - "integrity": "sha1-svXHfvlxSPS09uImguELuoZnz/E=", - "dev": true - }, - "shellwords": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.0.tgz", - "integrity": "sha1-Zq/Ue2oSky2Qccv9mKUueFzQuhQ=", - "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 - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "sliced": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", - "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" - }, - "slide": { - "version": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", - "dev": true - }, - "smart-buffer": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", - "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=" - }, - "smtp-connection": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz", - "integrity": "sha1-1275EnyyPCJZ7bHoNJwujV4tdME=" - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=" - }, - "socks": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.9.tgz", - "integrity": "sha1-Yo1+TQSRJDVEWsC25Fk3bLPm1pE=" - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=" - }, - "source-map-support": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", - "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", - "dev": true, - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true - } - } - }, - "sparkles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", - "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", - "dev": true - }, - "spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", - "dev": true - }, - "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "dev": true - }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", - "dev": true - }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", - "dev": true - }, - "split": { - "version": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" - }, - "stdout-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", - "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", - "dev": true - }, - "stream-combiner": { - "version": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "dev": true - }, - "stream-shift": { - "version": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.0.tgz", - "integrity": "sha1-8G9BFXtmTYYGn4S9vcmw2KsoFmc=" - }, - "string-length": { - "version": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", - "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", - "dev": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true - }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" - }, - "strip-ansi": { - "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true - }, - "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 - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true - }, - "strip-json-comments": { - "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "superagent": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-2.3.0.tgz", - "integrity": "sha1-cDUpoHFOV+EjlZ3e+84ZOy5Q0RU=", - "dev": true, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": 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=", - "dev": true - } - } - }, - "supertest": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-2.0.1.tgz", - "integrity": "sha1-oFgIHXiPFRXUcA11Aogea3WeRM0=", - "dev": true - }, - "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "symbol-tree": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", - "dev": true - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true - }, - "test-exclude": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", - "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", - "dev": true - }, - "throat": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-3.1.0.tgz", - "integrity": "sha512-AvehafrUS8C2PWA4YgPsPV6qrM5e7yU7o7jpuRzXVjRcPrPQgBsL6lVFxHXZEtRjZTdF+J9S2dIUxbheUrxAHA==", - "dev": true - }, - "through": { - "version": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", - "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=", - "dev": true, - "dependencies": { - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, - "timed-out": { - "version": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz", - "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=", - "dev": true - }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - }, - "token-stream": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", - "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=" - }, - "touch": { - "version": "https://registry.npmjs.org/touch/-/touch-1.0.0.tgz", - "integrity": "sha1-RJy+LbrlqMgDjjDXH6D/RklHxN4=", - "dev": true - }, - "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=" - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "tree-kill": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.1.0.tgz", - "integrity": "sha1-yWPc8DciiS7FnLpWnpQLcZVNFyk=", - "dev": true - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "ts-jest": { - "version": "19.0.14", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-19.0.14.tgz", - "integrity": "sha1-iGdLlW4Ej2GwqyjUIb/au7ZBvlw=", - "dev": true, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true - } - } - }, - "tsconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-6.0.0.tgz", - "integrity": "sha1-aw6DdgA9evGGT434+J3QBZ/80DI=", - "dev": true, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } - } - }, - "tslib": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.7.1.tgz", - "integrity": "sha1-vIAEFkaRkjp5/oN4u+s9ogF1OOw=", - "dev": true - }, - "tslint": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.4.2.tgz", - "integrity": "sha1-YJtmQMwEJPSjlamt9ow3VWPFScc=", - "dev": true, - "dependencies": { - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "dev": true - } - } - }, - "tsutils": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.3.0.tgz", - "integrity": "sha1-luZh18I2PzGtyJkqxnu+e3/BdeU=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true - }, - "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=" - }, - "typescript": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.3.4.tgz", - "integrity": "sha1-PTgyGCgjHkNPKHUUlZw3qCtin0I=", - "dev": true - }, - "uglify-js": { - "version": "2.8.28", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.28.tgz", - "integrity": "sha512-WqKNbmNJKzIdIEQu/U2ytgGBbhCy2PVks94GoetczOAJ/zCgVu2CuO7gguI5KPFGPtUtI1dmPQl6h0D4cPzypA==", - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" - } - } - }, - "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=", - "optional": true - }, - "uid-safe": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.4.tgz", - "integrity": "sha1-Otbzg2jG1MjHXsF2I/t5qh0HHYE=" - }, - "uid2": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", - "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=" - }, - "undefsafe": { - "version": "https://registry.npmjs.org/undefsafe/-/undefsafe-0.0.3.tgz", - "integrity": "sha1-7Mo6A+VrmvFzhbqsgSrIO5lKli8=", - "dev": true - }, - "underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "update-notifier": { - "version": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz", - "integrity": "sha1-B7XcIGazYnqztPUwEw9+3doHpMw=", - "dev": true - }, - "util-deprecate": { - "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" - }, - "uuid": { - "version": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "dev": true - }, - "validator": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/validator/-/validator-6.2.1.tgz", - "integrity": "sha1-vFdbeNFb6y4zimZbqVMMf0Ce9mc=" - }, - "vary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", - "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=" - }, - "verror": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=" - }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", - "dev": true - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=" - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true - }, - "watch": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz", - "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=", - "dev": true - }, - "webidl-conversions": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.1.tgz", - "integrity": "sha1-gBWherg+fhsxFjhIas6B2mziBqA=", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz", - "integrity": "sha1-PGxFGhmO567FWx7GHQkgxngBpfQ=", - "dev": true, - "dependencies": { - "iconv-lite": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", - "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", - "dev": true - } - } - }, - "whatwg-url": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", - "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", - "dev": true, - "dependencies": { - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - } - } - }, - "which": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", - "dev": true - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "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=" - }, - "with": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", - "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=" - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" - }, - "worker-farm": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.3.1.tgz", - "integrity": "sha1-QzMRK7SbF6oFC4eJXKayys9A5f8=", - "dev": true - }, - "wrap-ansi": { + "node_modules/denque": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true - }, - "wrappy": { - "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", - "dev": true - }, - "xdg-basedir": { - "version": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz", - "integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=", - "dev": true - }, - "xml-name-validator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", - "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=" - }, - "yargs-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", - "dev": true, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } + "resolved": "https://registry.npmmirror.com/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dotenv": { + "version": "17.4.2", + "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "license": "MIT", + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", + "license": "MIT" + }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, + "node_modules/lru.min": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/lru.min/-/lru.min-1.1.4.tgz", + "integrity": "sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==", + "license": "MIT", + "engines": { + "bun": ">=1.0.0", + "deno": ">=1.30.0", + "node": ">=8.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wellwelwel" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mysql2": { + "version": "3.22.3", + "resolved": "https://registry.npmmirror.com/mysql2/-/mysql2-3.22.3.tgz", + "integrity": "sha512-uWWxvZSRvRhtBdh2CdcuK83YcOfPdmEeEYB069bAmPnV93QApDGVPuvCQOLjlh7tYHEWdgQPrn6kosDxHBVLkA==", + "license": "MIT", + "dependencies": { + "aws-ssl-profiles": "^1.1.2", + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.7.2", + "long": "^5.3.2", + "lru.min": "^1.1.4", + "named-placeholders": "^1.1.6", + "sql-escaper": "^1.3.3" + }, + "engines": { + "node": ">= 8.0" + }, + "peerDependencies": { + "@types/node": ">= 8" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/named-placeholders/-/named-placeholders-1.1.6.tgz", + "integrity": "sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==", + "license": "MIT", + "dependencies": { + "lru.min": "^1.1.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nodemon": { + "version": "3.1.14", + "resolved": "https://registry.npmmirror.com/nodemon/-/nodemon-3.1.14.tgz", + "integrity": "sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^10.2.1", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "8.4.2", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.15.1", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.8.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.8.0.tgz", + "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sql-escaper": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/sql-escaper/-/sql-escaper-1.3.3.tgz", + "integrity": "sha512-BsTCV265VpTp8tm1wyIm1xqQCS+Q9NHx2Sr+WcnUrgLrQ6yiDIvHYJV5gHxsj1lMBy2zm5twLaZao8Jd+S8JJw==", + "license": "MIT", + "engines": { + "bun": ">=1.0.0", + "deno": ">=2.0.0", + "node": ">=12.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/mysqljs/sql-escaper?sponsor=1" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.19.2", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", + "license": "MIT", + "peer": true + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" } } } diff --git a/package.json b/package.json index a9f1e3e..d17096a 100644 --- a/package.json +++ b/package.json @@ -1,89 +1,22 @@ { - "name": "sqiyaiexpress", - "version": "0.0.0", - "description": "Node server written in TS.", - "private": true, + "name": "ExpressAIJS", + "version": "1.0.0", + "description": "", + "main": "index.js", "scripts": { - "start": "npm run build && npm run watch", - "build": "npm run build-sass && npm run build-ts && npm run tslint && npm run copy-static-assets", - "serve": "node dist/server.js", - "watch": "concurrently -k -p \"[{name}]\" -n \"Sass,TypeScript,Node\" -c \"yellow.bold,cyan.bold,green.bold\" \"npm run watch-sass\" \"npm run watch-ts\" \"nodemon dist/server.js\"", - "test": "jest --forceExit --coverage", - "build-ts": "tsc", - "watch-ts": "tsc -w", - "build-sass": "node-sass src/public/css/main.scss dist/public/css/main.css", - "watch-sass": "node-sass -w src/public/css/main.scss dist/public/css/main.css", - "tslint": "tslint -c tslint.json -p tsconfig.json", - "copy-static-assets": "node copyStaticAssets.js" - }, - "jest": { - "globals": { - "__TS_CONFIG__": "tsconfig.json" - }, - "moduleFileExtensions": [ - "ts", - "js" - ], - "transform": { - "^.+\\.(ts|tsx)$": "./node_modules/ts-jest/preprocessor.js" - }, - "testMatch": [ - "**/test/**/*.test.(ts|js)" - ], - "testEnvironment": "node" + "dev": "nodemon server.js", + "test": "echo \"Error: no test specified\" && exit 1" }, + "keywords": [], + "author": "", + "license": "ISC", "dependencies": { - "async": "^2.1.2", - "bcrypt-nodejs": "^0.0.3", - "body-parser": "^1.15.2", - "compression": "^1.6.2", - "connect-mongo": "^1.3.2", - "dotenv": "^2.0.0", - "errorhandler": "^1.4.3", - "express": "^4.14.0", - "express-flash": "^0.0.2", - "express-session": "^1.14.2", - "express-validator": "^3.1.3", - "fbgraph": "^1.3.0", - "lodash": "^4.17.4", - "lusca": "^1.4.1", - "mongoose": "^4.6.6", - "morgan": "^1.7.0", - "nodemailer": "^2.6.4", - "passport": "0.3.2", - "passport-facebook": "^2.1.1", - "passport-local": "^1.0.0", - "pug": "^2.0.0-beta11", - "request": "^2.78.0" + "cors": "^2.8.6", + "dotenv": "^17.4.2", + "express": "^5.2.1", + "mysql2": "^3.22.3" }, "devDependencies": { - "@types/async": "^2.0.40", - "@types/body-parser": "^1.16.2", - "@types/connect-mongo": "0.0.32", - "@types/dotenv": "^2.0.20", - "@types/errorhandler": "0.0.30", - "@types/express": "^4.0.35", - "@types/express-session": "0.0.32", - "@types/jest": "^19.2.2", - "@types/jquery": "^2.0.41", - "@types/lodash": "^4.14.63", - "@types/mongodb": "^2.1.43", - "@types/mongoose": "^4.7.9", - "@types/morgan": "^1.7.32", - "@types/node": "^7.0.12", - "@types/nodemailer": "^1.3.32", - "@types/passport": "^0.3.3", - "@types/passport-facebook": "^2.1.3", - "@types/request": "0.0.42", - "@types/supertest": "^2.0.0", - "concurrently": "^3.4.0", - "jest": "^19.0.2", - "node-sass": "^4.5.2", - "nodemon": "^1.11.0", - "shelljs": "^0.7.7", - "supertest": "^2.0.1", - "ts-jest": "^19.0.8", - "tslint": "^5.0.0", - "typescript": "^2.2.2" + "nodemon": "^3.1.14" } } diff --git a/routes/message.js b/routes/message.js new file mode 100644 index 0000000..2b7530f --- /dev/null +++ b/routes/message.js @@ -0,0 +1,22 @@ +const express = require('express'); +const router = express.Router(); + +const { getMsgList, + getMsgDetail, + addMsg, + updateMsg, + deleteMsg +} = require('../controllers/messageController'); + +//查询全部 +router.get('/list', getMsgList); +// 查询详情 +router.get('/:id', getMsgDetail); +// 新增 +router.post('/add', addMsg); +// 修改信息 +router.put('/update', updateMsg); +// 删除记录 +router.delete('/delete/:id', deleteMsg); + +module.exports = router; diff --git a/server.js b/server.js new file mode 100644 index 0000000..b0350de --- /dev/null +++ b/server.js @@ -0,0 +1,30 @@ +const express = require('express'); +const cors = require('cors'); +const dotenv = require('dotenv'); + +dotenv.config(); + +const app = express(); + +//中间件 +app.use(cors()) +app.use(express.json()) +app.use(express.urlencoded({ extended: true })) + +// 路由 +const msgRouter = require('./routes/message') + +app.use('/api/history/session', msgRouter) + +//测试接口 +app.get('/', (req, res) => { + // res.render('hello world'); + res.send('hello') +}) + +// 启动服务 +const PORT = process.env.PORT || 3003; + +app.listen(PORT, () => { + console.log(`Listening on port ${PORT}`); +}) diff --git a/src/config/passport.ts b/src/config/passport.ts deleted file mode 100644 index 1cabd5b..0000000 --- a/src/config/passport.ts +++ /dev/null @@ -1,142 +0,0 @@ -import * as _ from "lodash"; -import * as passport from "passport"; -import * as passportFacebook from "passport-facebook"; -import * as passportLocal from "passport-local"; -import * as request from "request"; - -// import { User, UserType } from '../models/User'; -import { NextFunction, Request, Response } from "express"; -import { default as User } from "../models/User"; - -const LocalStrategy = passportLocal.Strategy; -const FacebookStrategy = passportFacebook.Strategy; - -passport.serializeUser((user, done) => { - done(undefined, user.id); -}); - -passport.deserializeUser((id, done) => { - User.findById(id, (err, user) => { - done(err, user); - }); -}); - -/** - * Sign in using Email and Password. - */ -passport.use(new LocalStrategy({ usernameField: "email" }, (email, password, done) => { - User.findOne({ email: email.toLowerCase() }, (err, user: any) => { - if (err) { return done(err); } - if (!user) { - return done(undefined, false, { message: `Email ${email} not found.` }); - } - user.comparePassword(password, (err: Error, isMatch: boolean) => { - if (err) { return done(err); } - if (isMatch) { - return done(undefined, user); - } - return done(undefined, false, { message: "Invalid email or password." }); - }); - }); -})); - -/** - * OAuth Strategy Overview - * - * - User is already logged in. - * - Check if there is an existing account with a provider id. - * - If there is, return an error message. (Account merging not supported) - * - Else link new OAuth account with currently logged-in user. - * - User is not logged in. - * - Check if it's a returning user. - * - If returning user, sign in and we are done. - * - Else check if there is an existing account with user's email. - * - If there is, return an error message. - * - Else create a new account. - */ - -/** - * Sign in with Facebook. - */ -passport.use(new FacebookStrategy({ - callbackURL: "/auth/facebook/callback", - clientID: process.env.FACEBOOK_ID, - clientSecret: process.env.FACEBOOK_SECRET, - passReqToCallback: true, - profileFields: ["name", "email", "link", "locale", "timezone"], -}, (req: any, accessToken, refreshToken, profile, done) => { - if (req.user) { - User.findOne({ facebook: profile.id }, (err, existingUser) => { - if (err) { return done(err); } - if (existingUser) { - req.flash("errors", { msg: "There is already a Facebook account that belongs to you. \ - Sign in with that account or delete it, then link it with your current account." }); - done(err); - } else { - User.findById(req.user.id, (err, user: any) => { - if (err) { return done(err); } - user.facebook = profile.id; - user.tokens.push({ kind: "facebook", accessToken }); - user.profile.name = user.profile.name || `${profile.name.givenName} ${profile.name.familyName}`; - user.profile.gender = user.profile.gender || profile._json.gender; - user.profile.picture = user.profile.picture || `https://graph.facebook.com/${profile.id}/picture?type=large`; - user.save((err: Error) => { - req.flash("info", { msg: "Facebook account has been linked." }); - done(err, user); - }); - }); - } - }); - } else { - User.findOne({ facebook: profile.id }, (err, existingUser) => { - if (err) { return done(err); } - if (existingUser) { - return done(undefined, existingUser); - } - User.findOne({ email: profile._json.email }, (err, existingEmailUser) => { - if (err) { return done(err); } - if (existingEmailUser) { - req.flash("errors", { - msg: "There is already an account using this email address. \ - Sign in to that account and link it with Facebook manually from Account Settings." }); - done(err); - } else { - const user: any = new User(); - user.email = profile._json.email; - user.facebook = profile.id; - user.tokens.push({ kind: "facebook", accessToken }); - user.profile.name = `${profile.name.givenName} ${profile.name.familyName}`; - user.profile.gender = profile._json.gender; - user.profile.picture = `https://graph.facebook.com/${profile.id}/picture?type=large`; - user.profile.location = (profile._json.location) ? profile._json.location.name : ""; - user.save((err: Error) => { - done(err, user); - }); - } - }); - }); - } -})); - -/** - * Login Required middleware. - */ -export let isAuthenticated = (req: Request, res: Response, next: NextFunction) => { - if (req.isAuthenticated()) { - return next(); - } - res.redirect("/login"); -}; - -/** - * Authorization Required middleware. - */ -export let isAuthorized = (req: Request, res: Response, next: NextFunction) => { - const provider = req.path.split("/").slice(-1)[0]; - - if (_.find(req.user.tokens, { kind: provider })) { - next(); - } else { - res.redirect(`/auth/${provider}`); - } -}; diff --git a/src/controllers/api.ts b/src/controllers/api.ts deleted file mode 100644 index 0982611..0000000 --- a/src/controllers/api.ts +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; - -import * as async from "async"; -import { NextFunction, Request, Response } from "express"; -import * as graph from "fbgraph"; -import * as request from "request"; - -/** - * GET /api - * List of API examples. - */ -export let getApi = (req: Request, res: Response) => { - res.render("api/index", { - title: "API Examples", - }); -}; - -/** - * GET /api/facebook - * Facebook API example. - */ -export let getFacebook = (req: Request, res: Response, next: NextFunction) => { - const token = req.user.tokens.find((token: any) => token.kind === "facebook"); - graph.setAccessToken(token.accessToken); - graph.get(`${req.user.facebook}?fields=id,name,email,first_name,\ - last_name,gender,link,locale,timezone`, (err: Error, results: graph.FacebookUser) => { - if (err) { return next(err); } - res.render("api/facebook", { - profile: results, - title: "Facebook API", - }); - }); -}; diff --git a/src/controllers/contact.ts b/src/controllers/contact.ts deleted file mode 100644 index 8716f93..0000000 --- a/src/controllers/contact.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Request, Response } from "express"; -import * as nodemailer from "nodemailer"; - -const transporter = nodemailer.createTransport({ - auth: { - pass: process.env.SENDGRID_PASSWORD, - user: process.env.SENDGRID_USER, - }, - service: "SendGrid", -}); - -/** - * GET /contact - * Contact form page. - */ -export let getContact = (req: Request, res: Response) => { - res.render("contact", { - title: "Contact", - }); -}; - -/** - * POST /contact - * Send a contact form via Nodemailer. - */ -export let postContact = (req: Request, res: Response) => { - req.assert("name", "Name cannot be blank").notEmpty(); - req.assert("email", "Email is not valid").isEmail(); - req.assert("message", "Message cannot be blank").notEmpty(); - - const errors = req.validationErrors(); - - if (errors) { - req.flash("errors", errors); - return res.redirect("/contact"); - } - - const mailOptions = { - from: `${req.body.name} <${req.body.email}>`, - subject: "Contact Form", - text: req.body.message, - to: "your@email.com", - }; - - transporter.sendMail(mailOptions, (err) => { - if (err) { - req.flash("errors", { msg: err.message }); - return res.redirect("/contact"); - } - req.flash("success", { msg: "Email has been sent successfully!" }); - res.redirect("/contact"); - }); -}; diff --git a/src/controllers/home.ts b/src/controllers/home.ts deleted file mode 100644 index 7effa4f..0000000 --- a/src/controllers/home.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Request, Response } from "express"; - -/** - * GET / - * Home page. - */ -export let index = (req: Request, res: Response) => { - res.render("home", { - title: "Home", - }); -}; diff --git a/src/controllers/user.ts b/src/controllers/user.ts deleted file mode 100644 index dfa0f4a..0000000 --- a/src/controllers/user.ts +++ /dev/null @@ -1,386 +0,0 @@ -import * as async from "async"; -import * as crypto from "crypto"; -import { NextFunction, Request, Response } from "express"; -import { WriteError } from "mongodb"; -import * as nodemailer from "nodemailer"; -import * as passport from "passport"; -import { LocalStrategyInfo } from "passport-local"; -import { AuthToken, default as User, UserModel } from "../models/User"; -// const request = require("express-validator"); - -/** - * GET /login - * Login page. - */ -export let getLogin = (req: Request, res: Response) => { - if (req.user) { - return res.redirect("/"); - } - res.render("account/login", { - title: "Login", - }); -}; - -/** - * POST /login - * Sign in using email and password. - */ -export let postLogin = (req: Request, res: Response, next: NextFunction) => { - req.assert("email", "Email is not valid").isEmail(); - req.assert("password", "Password cannot be blank").notEmpty(); - req.sanitize("email").normalizeEmail({ gmail_remove_dots: false }); - - const errors = req.validationErrors(); - - if (errors) { - req.flash("errors", errors); - return res.redirect("/login"); - } - - passport.authenticate("local", (err: Error, user: UserModel, info: LocalStrategyInfo) => { - if (err) { return next(err); } - if (!user) { - req.flash("errors", info.message); - return res.redirect("/login"); - } - req.logIn(user, (err) => { - if (err) { return next(err); } - req.flash("success", { msg: "Success! You are logged in." }); - res.redirect(req.session.returnTo || "/"); - }); - })(req, res, next); -}; - -/** - * GET /logout - * Log out. - */ -export let logout = (req: Request, res: Response) => { - req.logout(); - res.redirect("/"); -}; - -/** - * GET /signup - * Signup page. - */ -export let getSignup = (req: Request, res: Response) => { - if (req.user) { - return res.redirect("/"); - } - res.render("account/signup", { - title: "Create Account", - }); -}; - -/** - * POST /signup - * Create a new local account. - */ -export let postSignup = (req: Request, res: Response, next: NextFunction) => { - req.assert("email", "Email is not valid").isEmail(); - req.assert("password", "Password must be at least 4 characters long").len({ min: 4 }); - req.assert("confirmPassword", "Passwords do not match").equals(req.body.password); - req.sanitize("email").normalizeEmail({ gmail_remove_dots: false }); - - const errors = req.validationErrors(); - - if (errors) { - req.flash("errors", errors); - return res.redirect("/signup"); - } - - const user = new User({ - email: req.body.email, - password: req.body.password, - }); - - User.findOne({ email: req.body.email }, (err, existingUser) => { - if (err) { return next(err); } - if (existingUser) { - req.flash("errors", { msg: "Account with that email address already exists." }); - return res.redirect("/signup"); - } - user.save((err) => { - if (err) { return next(err); } - req.logIn(user, (err) => { - if (err) { - return next(err); - } - res.redirect("/"); - }); - }); - }); -}; - -/** - * GET /account - * Profile page. - */ -export let getAccount = (req: Request, res: Response) => { - res.render("account/profile", { - title: "Account Management", - }); -}; - -/** - * POST /account/profile - * Update profile information. - */ -export let postUpdateProfile = (req: Request, res: Response, next: NextFunction) => { - req.assert("email", "Please enter a valid email address.").isEmail(); - req.sanitize("email").normalizeEmail({ gmail_remove_dots: false }); - - const errors = req.validationErrors(); - - if (errors) { - req.flash("errors", errors); - return res.redirect("/account"); - } - - User.findById(req.user.id, (err, user: UserModel) => { - if (err) { return next(err); } - user.email = req.body.email || ""; - user.profile.name = req.body.name || ""; - user.profile.gender = req.body.gender || ""; - user.profile.location = req.body.location || ""; - user.profile.website = req.body.website || ""; - user.save((err: WriteError) => { - if (err) { - if (err.code === 11000) { - req.flash("errors", { msg: "The email address you have entered is already associated with an account." }); - return res.redirect("/account"); - } - return next(err); - } - req.flash("success", { msg: "Profile information has been updated." }); - res.redirect("/account"); - }); - }); -}; - -/** - * POST /account/password - * Update current password. - */ -export let postUpdatePassword = (req: Request, res: Response, next: NextFunction) => { - req.assert("password", "Password must be at least 4 characters long").len({ min: 4 }); - req.assert("confirmPassword", "Passwords do not match").equals(req.body.password); - - const errors = req.validationErrors(); - - if (errors) { - req.flash("errors", errors); - return res.redirect("/account"); - } - - User.findById(req.user.id, (err, user: UserModel) => { - if (err) { return next(err); } - user.password = req.body.password; - user.save((err: WriteError) => { - if (err) { return next(err); } - req.flash("success", { msg: "Password has been changed." }); - res.redirect("/account"); - }); - }); -}; - -/** - * POST /account/delete - * Delete user account. - */ -export let postDeleteAccount = (req: Request, res: Response, next: NextFunction) => { - User.remove({ _id: req.user.id }, (err) => { - if (err) { return next(err); } - req.logout(); - req.flash("info", { msg: "Your account has been deleted." }); - res.redirect("/"); - }); -}; - -/** - * GET /account/unlink/:provider - * Unlink OAuth provider. - */ -export let getOauthUnlink = (req: Request, res: Response, next: NextFunction) => { - const provider = req.params.provider; - User.findById(req.user.id, (err, user: any) => { - if (err) { return next(err); } - user[provider] = undefined; - user.tokens = user.tokens.filter((token: AuthToken) => token.kind !== provider); - user.save((err: WriteError) => { - if (err) { return next(err); } - req.flash("info", { msg: `${provider} account has been unlinked.` }); - res.redirect("/account"); - }); - }); -}; - -/** - * GET /reset/:token - * Reset Password page. - */ -export let getReset = (req: Request, res: Response, next: NextFunction) => { - if (req.isAuthenticated()) { - return res.redirect("/"); - } - User - .findOne({ passwordResetToken: req.params.token }) - .where("passwordResetExpires").gt(Date.now()) - .exec((err, user) => { - if (err) { return next(err); } - if (!user) { - req.flash("errors", { msg: "Password reset token is invalid or has expired." }); - return res.redirect("/forgot"); - } - res.render("account/reset", { - title: "Password Reset", - }); - }); -}; - -/** - * POST /reset/:token - * Process the reset password request. - */ -export let postReset = (req: Request, res: Response, next: NextFunction) => { - req.assert("password", "Password must be at least 4 characters long.").len({ min: 4 }); - req.assert("confirm", "Passwords must match.").equals(req.body.password); - - const errors = req.validationErrors(); - - if (errors) { - req.flash("errors", errors); - return res.redirect("back"); - } - - async.waterfall([ - // tslint:disable-next-line:ban-types - function resetPassword(done: Function) { - User - .findOne({ passwordResetToken: req.params.token }) - .where("passwordResetExpires").gt(Date.now()) - .exec((err, user: any) => { - if (err) { return next(err); } - if (!user) { - req.flash("errors", { msg: "Password reset token is invalid or has expired." }); - return res.redirect("back"); - } - user.password = req.body.password; - user.passwordResetToken = undefined; - user.passwordResetExpires = undefined; - user.save((err: WriteError) => { - if (err) { return next(err); } - req.logIn(user, (err) => { - done(err, user); - }); - }); - }); - }, - // tslint:disable-next-line:ban-types - function sendResetPasswordEmail(user: UserModel, done: Function) { - const transporter = nodemailer.createTransport({ - auth: { - pass: process.env.SENDGRID_PASSWORD, - user: process.env.SENDGRID_USER, - }, - service: "SendGrid", - }); - const mailOptions = { - from: "express-ts@starter.com", - subject: "Your password has been changed", - text: `Hello,\n\nThis is a confirmation that the password for \ - your account ${user.email} has just been changed.\n`, - to: user.email, - }; - transporter.sendMail(mailOptions, (err) => { - req.flash("success", { msg: "Success! Your password has been changed." }); - done(err); - }); - }, - ], (err) => { - if (err) { return next(err); } - res.redirect("/"); - }); -}; - -/** - * GET /forgot - * Forgot Password page. - */ -export let getForgot = (req: Request, res: Response) => { - if (req.isAuthenticated()) { - return res.redirect("/"); - } - res.render("account/forgot", { - title: "Forgot Password", - }); -}; - -/** - * POST /forgot - * Create a random token, then the send user an email with a reset link. - */ -export let postForgot = (req: Request, res: Response, next: NextFunction) => { - req.assert("email", "Please enter a valid email address.").isEmail(); - req.sanitize("email").normalizeEmail({ gmail_remove_dots: false }); - - const errors = req.validationErrors(); - - if (errors) { - req.flash("errors", errors); - return res.redirect("/forgot"); - } - - async.waterfall([ - // tslint:disable-next-line:ban-types - function createRandomToken(done: Function) { - crypto.randomBytes(16, (err, buf) => { - const token = buf.toString("hex"); - done(err, token); - }); - }, - // tslint:disable-next-line:ban-types - function setRandomToken(token: AuthToken, done: Function) { - User.findOne({ email: req.body.email }, (err, user: any) => { - if (err) { return done(err); } - if (!user) { - req.flash("errors", { msg: "Account with that email address does not exist." }); - return res.redirect("/forgot"); - } - user.passwordResetToken = token; - user.passwordResetExpires = Date.now() + 3600000; // 1 hour - user.save((err: WriteError) => { - done(err, token, user); - }); - }); - }, - // tslint:disable-next-line:ban-types - function sendForgotPasswordEmail(token: AuthToken, user: UserModel, done: Function) { - const transporter = nodemailer.createTransport({ - auth: { - pass: process.env.SENDGRID_PASSWORD, - user: process.env.SENDGRID_USER, - }, - service: "SendGrid", - }); - const mailOptions = { - from: "hackathon@starter.com", - subject: "Reset your password on Hackathon Starter", - text: `You are receiving this email because you (or someone else) \ - have requested the reset of the password for your account.\n\n - Please click on the following link, or paste this into your browser to complete the process:\n\n - http://${req.headers.host}/reset/${token}\n\n - If you did not request this, please ignore this email and your password will remain unchanged.\n`, - to: user.email, - }; - transporter.sendMail(mailOptions, (err) => { - req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` }); - done(err); - }); - }, - ], (err) => { - if (err) { return next(err); } - res.redirect("/forgot"); - }); -}; diff --git a/src/models/User.ts b/src/models/User.ts deleted file mode 100644 index 731f53a..0000000 --- a/src/models/User.ts +++ /dev/null @@ -1,90 +0,0 @@ -import * as bcrypt from "bcrypt-nodejs"; -import * as crypto from "crypto"; -import * as mongoose from "mongoose"; - -export type UserModel = mongoose.Document & { - email: string, - password: string, - passwordResetToken: string, - passwordResetExpires: Date, - - facebook: string, - tokens: AuthToken[], - - profile: { - name: string, - gender: string, - location: string, - website: string, - picture: string, - }, - - comparePassword: (candidatePassword: string, cb: (err: any, isMatch: any) => {}) => void, - gravatar: (size: number) => string, -}; - -// tslint:disable-next-line:interface-name -export interface AuthToken { - accessToken: string; - kind: string; -} - -const userSchema = new mongoose.Schema({ - email: { type: String, unique: true }, - facebook: String, - google: String, - password: String, - passwordResetExpires: Date, - passwordResetToken: String, - - profile: { - gender: String, - location: String, - name: String, - picture: String, - website: String, - }, - - tokens: Array, - twitter: String, -}, { timestamps: true }); - -/** - * Password hash middleware. - */ -userSchema.pre("save", function save(next) { - const user = this; - if (!user.isModified("password")) { return next(); } - bcrypt.genSalt(10, (err, salt) => { - if (err) { return next(err); } - bcrypt.hash(user.password, salt, undefined, (err: mongoose.Error, hash) => { - if (err) { return next(err); } - user.password = hash; - next(); - }); - }); -}); - -userSchema.methods.comparePassword = function(candidatePassword: string, cb: (err: any, isMatch: any) => {}) { - bcrypt.compare(candidatePassword, this.password, (err: mongoose.Error, isMatch: boolean) => { - cb(err, isMatch); - }); -}; - -/** - * Helper method for getting user's gravatar. - */ -userSchema.methods.gravatar = function(size: number) { - if (!size) { - size = 200; - } - if (!this.email) { - return `https://gravatar.com/avatar/?s=${size}&d=retro`; - } - const md5 = crypto.createHash("md5").update(this.email).digest("hex"); - return `https://gravatar.com/avatar/${md5}?s=${size}&d=retro`; -}; - -// export const User: UserType = mongoose.model('User', userSchema); -const User = mongoose.model("User", userSchema); -export default User; diff --git a/src/public/css/lib/bootstrap-social.scss b/src/public/css/lib/bootstrap-social.scss deleted file mode 100644 index 2f2f367..0000000 --- a/src/public/css/lib/bootstrap-social.scss +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Social Buttons for Bootstrap - * - * Copyright 2013-2015 Panayiotis Lipiridis - * Licensed under the MIT License - * - * https://github.com/lipis/bootstrap-social - */ - -$bs-height-base: ($line-height-computed + $padding-base-vertical * 2); -$bs-height-lg: (floor($font-size-large * $line-height-base) + $padding-large-vertical * 2); -$bs-height-sm: (floor($font-size-small * 1.5) + $padding-small-vertical * 2); -$bs-height-xs: (floor($font-size-small * 1.2) + $padding-small-vertical + 1); - -.btn-social { - position: relative; - padding-left: ($bs-height-base + $padding-base-horizontal); - text-align: left; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - > :first-child { - position: absolute; - left: 0; - top: 0; - bottom: 0; - width: $bs-height-base; - line-height: ($bs-height-base + 2); - font-size: 1.6em; - text-align: center; - border-right: 1px solid rgba(0, 0, 0, 0.2); - } - &.btn-lg { - padding-left: ($bs-height-lg + $padding-large-horizontal); - > :first-child { - line-height: $bs-height-lg; - width: $bs-height-lg; - font-size: 1.8em; - } - } - &.btn-sm { - padding-left: ($bs-height-sm + $padding-small-horizontal); - > :first-child { - line-height: $bs-height-sm; - width: $bs-height-sm; - font-size: 1.4em; - } - } - &.btn-xs { - padding-left: ($bs-height-xs + $padding-small-horizontal); - > :first-child { - line-height: $bs-height-xs; - width: $bs-height-xs; - font-size: 1.2em; - } - } -} - -.btn-social-icon { - @extend .btn-social; - height: ($bs-height-base + 2); - width: ($bs-height-base + 2); - padding: 0; - > :first-child { - border: none; - text-align: center; - width: 100%!important; - } - &.btn-lg { - height: $bs-height-lg; - width: $bs-height-lg; - padding-left: 0; - padding-right: 0; - } - &.btn-sm { - height: ($bs-height-sm + 2); - width: ($bs-height-sm + 2); - padding-left: 0; - padding-right: 0; - } - &.btn-xs { - height: ($bs-height-xs + 2); - width: ($bs-height-xs + 2); - padding-left: 0; - padding-right: 0; - } -} - -@mixin btn-social($color-bg, $color: #fff) { - background-color: $color-bg; - @include button-variant($color, $color-bg, rgba(0,0,0,.2)); -} - - -.btn-adn { @include btn-social(#d87a68); } -.btn-bitbucket { @include btn-social(#205081); } -.btn-dropbox { @include btn-social(#1087dd); } -.btn-facebook { @include btn-social(#3b5998); } -.btn-flickr { @include btn-social(#ff0084); } -.btn-foursquare { @include btn-social(#f94877); } -.btn-github { @include btn-social(#444444); } -.btn-google { @include btn-social(#dd4b39); } -.btn-instagram { @include btn-social(#3f729b); } -.btn-linkedin { @include btn-social(#007bb6); } -.btn-microsoft { @include btn-social(#2672ec); } -.btn-odnoklassniki { @include btn-social(#f4731c); } -.btn-openid { @include btn-social(#f7931e); } -.btn-pinterest { @include btn-social(#cb2027); } -.btn-reddit { @include btn-social(#eff7ff, #000); } -.btn-soundcloud { @include btn-social(#ff5500); } -.btn-tumblr { @include btn-social(#2c4762); } -.btn-twitter { @include btn-social(#55acee); } -.btn-vimeo { @include btn-social(#1ab7ea); } -.btn-vk { @include btn-social(#587ea3); } -.btn-yahoo { @include btn-social(#720e9e); } diff --git a/src/public/css/lib/bootstrap/_alerts.scss b/src/public/css/lib/bootstrap/_alerts.scss deleted file mode 100644 index 7d1e1fd..0000000 --- a/src/public/css/lib/bootstrap/_alerts.scss +++ /dev/null @@ -1,73 +0,0 @@ -// -// Alerts -// -------------------------------------------------- - - -// Base styles -// ------------------------- - -.alert { - padding: $alert-padding; - margin-bottom: $line-height-computed; - border: 1px solid transparent; - border-radius: $alert-border-radius; - - // Headings for larger alerts - h4 { - margin-top: 0; - // Specified for the h4 to prevent conflicts of changing $headings-color - color: inherit; - } - - // Provide class for links that match alerts - .alert-link { - font-weight: $alert-link-font-weight; - } - - // Improve alignment and spacing of inner content - > p, - > ul { - margin-bottom: 0; - } - - > p + p { - margin-top: 5px; - } -} - -// Dismissible alerts -// -// Expand the right padding and account for the close button's positioning. - -.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. -.alert-dismissible { - padding-right: ($alert-padding + 20); - - // Adjust close link position - .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; - } -} - -// Alternate styles -// -// Generate contextual modifier classes for colorizing the alert. - -.alert-success { - @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text); -} - -.alert-info { - @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text); -} - -.alert-warning { - @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text); -} - -.alert-danger { - @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text); -} diff --git a/src/public/css/lib/bootstrap/_badges.scss b/src/public/css/lib/bootstrap/_badges.scss deleted file mode 100644 index 70002e0..0000000 --- a/src/public/css/lib/bootstrap/_badges.scss +++ /dev/null @@ -1,68 +0,0 @@ -// -// Badges -// -------------------------------------------------- - - -// Base class -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: $font-size-small; - font-weight: $badge-font-weight; - color: $badge-color; - line-height: $badge-line-height; - vertical-align: middle; - white-space: nowrap; - text-align: center; - background-color: $badge-bg; - border-radius: $badge-border-radius; - - // Empty badges collapse automatically (not available in IE8) - &:empty { - display: none; - } - - // Quick fix for badges in buttons - .btn & { - position: relative; - top: -1px; - } - - .btn-xs &, - .btn-group-xs > .btn & { - top: 0; - padding: 1px 5px; - } - - // [converter] extracted a& to a.badge - - // Account for badges in navs - .list-group-item.active > &, - .nav-pills > .active > a > & { - color: $badge-active-color; - background-color: $badge-active-bg; - } - - .list-group-item > & { - float: right; - } - - .list-group-item > & + & { - margin-right: 5px; - } - - .nav-pills > li > a > & { - margin-left: 3px; - } -} - -// Hover state, but only for links -a.badge { - &:hover, - &:focus { - color: $badge-link-hover-color; - text-decoration: none; - cursor: pointer; - } -} diff --git a/src/public/css/lib/bootstrap/_breadcrumbs.scss b/src/public/css/lib/bootstrap/_breadcrumbs.scss deleted file mode 100644 index b61f0c7..0000000 --- a/src/public/css/lib/bootstrap/_breadcrumbs.scss +++ /dev/null @@ -1,28 +0,0 @@ -// -// Breadcrumbs -// -------------------------------------------------- - - -.breadcrumb { - padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal; - margin-bottom: $line-height-computed; - list-style: none; - background-color: $breadcrumb-bg; - border-radius: $border-radius-base; - - > li { - display: inline-block; - - + li:before { - // [converter] Workaround for https://github.com/sass/libsass/issues/1115 - $nbsp: "\00a0"; - content: "#{$breadcrumb-separator}#{$nbsp}"; // Unicode space added since inline-block means non-collapsing white-space - padding: 0 5px; - color: $breadcrumb-color; - } - } - - > .active { - color: $breadcrumb-active-color; - } -} diff --git a/src/public/css/lib/bootstrap/_button-groups.scss b/src/public/css/lib/bootstrap/_button-groups.scss deleted file mode 100644 index baaacc4..0000000 --- a/src/public/css/lib/bootstrap/_button-groups.scss +++ /dev/null @@ -1,244 +0,0 @@ -// -// Button groups -// -------------------------------------------------- - -// Make the div behave like a button -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; // match .btn alignment given font-size hack above - > .btn { - position: relative; - float: left; - // Bring the "active" button to the front - &:hover, - &:focus, - &:active, - &.active { - z-index: 2; - } - } -} - -// Prevent double borders when buttons are next to each other -.btn-group { - .btn + .btn, - .btn + .btn-group, - .btn-group + .btn, - .btn-group + .btn-group { - margin-left: -1px; - } -} - -// Optional: Group multiple button groups together for a toolbar -.btn-toolbar { - margin-left: -5px; // Offset the first child's margin - @include clearfix; - - .btn, - .btn-group, - .input-group { - float: left; - } - > .btn, - > .btn-group, - > .input-group { - margin-left: 5px; - } -} - -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} - -// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match -.btn-group > .btn:first-child { - margin-left: 0; - &:not(:last-child):not(.dropdown-toggle) { - @include border-right-radius(0); - } -} -// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - @include border-left-radius(0); -} - -// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child:not(:last-child) { - > .btn:last-child, - > .dropdown-toggle { - @include border-right-radius(0); - } -} -.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - @include border-left-radius(0); -} - -// On active and open, don't show outline -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} - - -// Sizing -// -// Remix the default button sizing classes into new ones for easier manipulation. - -.btn-group-xs > .btn { @extend .btn-xs; } -.btn-group-sm > .btn { @extend .btn-sm; } -.btn-group-lg > .btn { @extend .btn-lg; } - - -// Split button dropdowns -// ---------------------- - -// Give the line between buttons some depth -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} - -// The clickable button for toggling the menu -// Remove the gradient and set the same inset shadow as the :active state -.btn-group.open .dropdown-toggle { - @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); - - // Show no shadow for `.btn-link` since it has no other button styles. - &.btn-link { - @include box-shadow(none); - } -} - - -// Reposition the caret -.btn .caret { - margin-left: 0; -} -// Carets in other button sizes -.btn-lg .caret { - border-width: $caret-width-large $caret-width-large 0; - border-bottom-width: 0; -} -// Upside down carets for .dropup -.dropup .btn-lg .caret { - border-width: 0 $caret-width-large $caret-width-large; -} - - -// Vertical button groups -// ---------------------- - -.btn-group-vertical { - > .btn, - > .btn-group, - > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; - } - - // Clear floats so dropdown menus can be properly placed - > .btn-group { - @include clearfix; - > .btn { - float: none; - } - } - - > .btn + .btn, - > .btn + .btn-group, - > .btn-group + .btn, - > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; - } -} - -.btn-group-vertical > .btn { - &:not(:first-child):not(:last-child) { - border-radius: 0; - } - &:first-child:not(:last-child) { - @include border-top-radius($btn-border-radius-base); - @include border-bottom-radius(0); - } - &:last-child:not(:first-child) { - @include border-top-radius(0); - @include border-bottom-radius($btn-border-radius-base); - } -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) { - > .btn:last-child, - > .dropdown-toggle { - @include border-bottom-radius(0); - } -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - @include border-top-radius(0); -} - - -// Justified button groups -// ---------------------- - -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; - > .btn, - > .btn-group { - float: none; - display: table-cell; - width: 1%; - } - > .btn-group .btn { - width: 100%; - } - - > .btn-group .dropdown-menu { - left: auto; - } -} - - -// Checkbox and radio options -// -// In order to support the browser's form validation feedback, powered by the -// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use -// `display: none;` or `visibility: hidden;` as that also hides the popover. -// Simply visually hiding the inputs via `opacity` would leave them clickable in -// certain cases which is prevented by using `clip` and `pointer-events`. -// This way, we ensure a DOM element is visible to position the popover from. -// -// See https://github.com/twbs/bootstrap/pull/12794 and -// https://github.com/twbs/bootstrap/pull/14559 for more information. - -[data-toggle="buttons"] { - > .btn, - > .btn-group > .btn { - input[type="radio"], - input[type="checkbox"] { - position: absolute; - clip: rect(0,0,0,0); - pointer-events: none; - } - } -} diff --git a/src/public/css/lib/bootstrap/_buttons.scss b/src/public/css/lib/bootstrap/_buttons.scss deleted file mode 100644 index 6452b70..0000000 --- a/src/public/css/lib/bootstrap/_buttons.scss +++ /dev/null @@ -1,168 +0,0 @@ -// -// Buttons -// -------------------------------------------------- - - -// Base styles -// -------------------------------------------------- - -.btn { - display: inline-block; - margin-bottom: 0; // For input.btn - font-weight: $btn-font-weight; - text-align: center; - vertical-align: middle; - touch-action: manipulation; - cursor: pointer; - background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 - border: 1px solid transparent; - white-space: nowrap; - @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base); - @include user-select(none); - - &, - &:active, - &.active { - &:focus, - &.focus { - @include tab-focus; - } - } - - &:hover, - &:focus, - &.focus { - color: $btn-default-color; - text-decoration: none; - } - - &:active, - &.active { - outline: 0; - background-image: none; - @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); - } - - &.disabled, - &[disabled], - fieldset[disabled] & { - cursor: $cursor-disabled; - @include opacity(.65); - @include box-shadow(none); - } - - // [converter] extracted a& to a.btn -} - -a.btn { - &.disabled, - fieldset[disabled] & { - pointer-events: none; // Future-proof disabling of clicks on `` elements - } -} - - -// Alternate buttons -// -------------------------------------------------- - -.btn-default { - @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border); -} -.btn-primary { - @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border); -} -// Success appears as green -.btn-success { - @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border); -} -// Info appears as blue-green -.btn-info { - @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border); -} -// Warning appears as orange -.btn-warning { - @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border); -} -// Danger and error appear as red -.btn-danger { - @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border); -} - - -// Link buttons -// ------------------------- - -// Make a button look and behave like a link -.btn-link { - color: $link-color; - font-weight: normal; - border-radius: 0; - - &, - &:active, - &.active, - &[disabled], - fieldset[disabled] & { - background-color: transparent; - @include box-shadow(none); - } - &, - &:hover, - &:focus, - &:active { - border-color: transparent; - } - &:hover, - &:focus { - color: $link-hover-color; - text-decoration: $link-hover-decoration; - background-color: transparent; - } - &[disabled], - fieldset[disabled] & { - &:hover, - &:focus { - color: $btn-link-disabled-color; - text-decoration: none; - } - } -} - - -// Button Sizes -// -------------------------------------------------- - -.btn-lg { - // line-height: ensure even-numbered height of button next to large input - @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $btn-border-radius-large); -} -.btn-sm { - // line-height: ensure proper height of button next to small input - @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small); -} -.btn-xs { - @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small); -} - - -// Block button -// -------------------------------------------------- - -.btn-block { - display: block; - width: 100%; -} - -// Vertically space out multiple block buttons -.btn-block + .btn-block { - margin-top: 5px; -} - -// Specificity overrides -input[type="submit"], -input[type="reset"], -input[type="button"] { - &.btn-block { - width: 100%; - } -} diff --git a/src/public/css/lib/bootstrap/_carousel.scss b/src/public/css/lib/bootstrap/_carousel.scss deleted file mode 100644 index 753d881..0000000 --- a/src/public/css/lib/bootstrap/_carousel.scss +++ /dev/null @@ -1,270 +0,0 @@ -// -// Carousel -// -------------------------------------------------- - - -// Wrapper for the slide container and indicators -.carousel { - position: relative; -} - -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; - - > .item { - display: none; - position: relative; - @include transition(.6s ease-in-out left); - - // Account for jankitude on images - > img, - > a > img { - @include img-responsive; - line-height: 1; - } - - // WebKit CSS3 transforms for supported devices - @media all and (transform-3d), (-webkit-transform-3d) { - @include transition-transform(0.6s ease-in-out); - @include backface-visibility(hidden); - @include perspective(1000px); - - &.next, - &.active.right { - @include translate3d(100%, 0, 0); - left: 0; - } - &.prev, - &.active.left { - @include translate3d(-100%, 0, 0); - left: 0; - } - &.next.left, - &.prev.right, - &.active { - @include translate3d(0, 0, 0); - left: 0; - } - } - } - - > .active, - > .next, - > .prev { - display: block; - } - - > .active { - left: 0; - } - - > .next, - > .prev { - position: absolute; - top: 0; - width: 100%; - } - - > .next { - left: 100%; - } - > .prev { - left: -100%; - } - > .next.left, - > .prev.right { - left: 0; - } - - > .active.left { - left: -100%; - } - > .active.right { - left: 100%; - } - -} - -// Left/right controls for nav -// --------------------------- - -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: $carousel-control-width; - @include opacity($carousel-control-opacity); - font-size: $carousel-control-font-size; - color: $carousel-control-color; - text-align: center; - text-shadow: $carousel-text-shadow; - background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug - // We can't have this transition here because WebKit cancels the carousel - // animation if you trip this while in the middle of another animation. - - // Set gradients for backgrounds - &.left { - @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001)); - } - &.right { - left: auto; - right: 0; - @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5)); - } - - // Hover/focus state - &:hover, - &:focus { - outline: 0; - color: $carousel-control-color; - text-decoration: none; - @include opacity(.9); - } - - // Toggles - .icon-prev, - .icon-next, - .glyphicon-chevron-left, - .glyphicon-chevron-right { - position: absolute; - top: 50%; - margin-top: -10px; - z-index: 5; - display: inline-block; - } - .icon-prev, - .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; - } - .icon-next, - .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; - } - .icon-prev, - .icon-next { - width: 20px; - height: 20px; - line-height: 1; - font-family: serif; - } - - - .icon-prev { - &:before { - content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) - } - } - .icon-next { - &:before { - content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) - } - } -} - -// Optional indicator pips -// -// Add an unordered list with the following class and add a list item for each -// slide your carousel holds. - -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; - - li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid $carousel-indicator-border-color; - border-radius: 10px; - cursor: pointer; - - // IE8-9 hack for event handling - // - // Internet Explorer 8-9 does not support clicks on elements without a set - // `background-color`. We cannot use `filter` since that's not viewed as a - // background color by the browser. Thus, a hack is needed. - // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer - // - // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we - // set alpha transparency for the best results possible. - background-color: #000 \9; // IE8 - background-color: rgba(0,0,0,0); // IE9 - } - .active { - margin: 0; - width: 12px; - height: 12px; - background-color: $carousel-indicator-active-bg; - } -} - -// Optional captions -// ----------------------------- -// Hidden by default for smaller viewports -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: $carousel-caption-color; - text-align: center; - text-shadow: $carousel-text-shadow; - & .btn { - text-shadow: none; // No shadow for button elements in carousel-caption - } -} - - -// Scale up controls for tablets and up -@media screen and (min-width: $screen-sm-min) { - - // Scale up the controls a smidge - .carousel-control { - .glyphicon-chevron-left, - .glyphicon-chevron-right, - .icon-prev, - .icon-next { - width: ($carousel-control-font-size * 1.5); - height: ($carousel-control-font-size * 1.5); - margin-top: ($carousel-control-font-size / -2); - font-size: ($carousel-control-font-size * 1.5); - } - .glyphicon-chevron-left, - .icon-prev { - margin-left: ($carousel-control-font-size / -2); - } - .glyphicon-chevron-right, - .icon-next { - margin-right: ($carousel-control-font-size / -2); - } - } - - // Show and left align the captions - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - - // Move up the indicators - .carousel-indicators { - bottom: 20px; - } -} diff --git a/src/public/css/lib/bootstrap/_close.scss b/src/public/css/lib/bootstrap/_close.scss deleted file mode 100644 index 3b74d8a..0000000 --- a/src/public/css/lib/bootstrap/_close.scss +++ /dev/null @@ -1,36 +0,0 @@ -// -// Close icons -// -------------------------------------------------- - - -.close { - float: right; - font-size: ($font-size-base * 1.5); - font-weight: $close-font-weight; - line-height: 1; - color: $close-color; - text-shadow: $close-text-shadow; - @include opacity(.2); - - &:hover, - &:focus { - color: $close-color; - text-decoration: none; - cursor: pointer; - @include opacity(.5); - } - - // [converter] extracted button& to button.close -} - -// Additional properties for button version -// iOS requires the button element instead of an anchor tag. -// If you want the anchor version, it requires `href="#"`. -// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} diff --git a/src/public/css/lib/bootstrap/_code.scss b/src/public/css/lib/bootstrap/_code.scss deleted file mode 100644 index caa5f06..0000000 --- a/src/public/css/lib/bootstrap/_code.scss +++ /dev/null @@ -1,69 +0,0 @@ -// -// Code (inline and block) -// -------------------------------------------------- - - -// Inline and block code styles -code, -kbd, -pre, -samp { - font-family: $font-family-monospace; -} - -// Inline code -code { - padding: 2px 4px; - font-size: 90%; - color: $code-color; - background-color: $code-bg; - border-radius: $border-radius-base; -} - -// User input typically entered via keyboard -kbd { - padding: 2px 4px; - font-size: 90%; - color: $kbd-color; - background-color: $kbd-bg; - border-radius: $border-radius-small; - box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); - - kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - box-shadow: none; - } -} - -// Blocks of code -pre { - display: block; - padding: (($line-height-computed - 1) / 2); - margin: 0 0 ($line-height-computed / 2); - font-size: ($font-size-base - 1); // 14px to 13px - line-height: $line-height-base; - word-break: break-all; - word-wrap: break-word; - color: $pre-color; - background-color: $pre-bg; - border: 1px solid $pre-border-color; - border-radius: $border-radius-base; - - // Account for some code outputs that place code tags in pre tags - code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; - } -} - -// Enable scrollable blocks of code -.pre-scrollable { - max-height: $pre-scrollable-max-height; - overflow-y: scroll; -} diff --git a/src/public/css/lib/bootstrap/_component-animations.scss b/src/public/css/lib/bootstrap/_component-animations.scss deleted file mode 100644 index ca3b43c..0000000 --- a/src/public/css/lib/bootstrap/_component-animations.scss +++ /dev/null @@ -1,37 +0,0 @@ -// -// Component animations -// -------------------------------------------------- - -// Heads up! -// -// We don't use the `.opacity()` mixin here since it causes a bug with text -// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. - -.fade { - opacity: 0; - @include transition(opacity .15s linear); - &.in { - opacity: 1; - } -} - -.collapse { - display: none; - - &.in { display: block; } - // [converter] extracted tr&.in to tr.collapse.in - // [converter] extracted tbody&.in to tbody.collapse.in -} - -tr.collapse.in { display: table-row; } - -tbody.collapse.in { display: table-row-group; } - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - @include transition-property(height, visibility); - @include transition-duration(.35s); - @include transition-timing-function(ease); -} diff --git a/src/public/css/lib/bootstrap/_dropdowns.scss b/src/public/css/lib/bootstrap/_dropdowns.scss deleted file mode 100644 index aac8459..0000000 --- a/src/public/css/lib/bootstrap/_dropdowns.scss +++ /dev/null @@ -1,216 +0,0 @@ -// -// Dropdown menus -// -------------------------------------------------- - - -// Dropdown arrow/caret -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: $caret-width-base dashed; - border-top: $caret-width-base solid \9; // IE8 - border-right: $caret-width-base solid transparent; - border-left: $caret-width-base solid transparent; -} - -// The dropdown wrapper (div) -.dropup, -.dropdown { - position: relative; -} - -// Prevent the focus on the dropdown toggle when closing dropdowns -.dropdown-toggle:focus { - outline: 0; -} - -// The dropdown menu (ul) -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: $zindex-dropdown; - display: none; // none by default, but block on "open" of the menu - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; // override default ul - list-style: none; - font-size: $font-size-base; - text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) - background-color: $dropdown-bg; - border: 1px solid $dropdown-fallback-border; // IE8 fallback - border: 1px solid $dropdown-border; - border-radius: $border-radius-base; - @include box-shadow(0 6px 12px rgba(0,0,0,.175)); - background-clip: padding-box; - - // Aligns the dropdown menu to right - // - // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]` - &.pull-right { - right: 0; - left: auto; - } - - // Dividers (basically an hr) within the dropdown - .divider { - @include nav-divider($dropdown-divider-bg); - } - - // Links within the dropdown menu - > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: $line-height-base; - color: $dropdown-link-color; - white-space: nowrap; // prevent links from randomly breaking onto new lines - } -} - -// Hover/Focus state -.dropdown-menu > li > a { - &:hover, - &:focus { - text-decoration: none; - color: $dropdown-link-hover-color; - background-color: $dropdown-link-hover-bg; - } -} - -// Active state -.dropdown-menu > .active > a { - &, - &:hover, - &:focus { - color: $dropdown-link-active-color; - text-decoration: none; - outline: 0; - background-color: $dropdown-link-active-bg; - } -} - -// Disabled state -// -// Gray out text and ensure the hover/focus state remains gray - -.dropdown-menu > .disabled > a { - &, - &:hover, - &:focus { - color: $dropdown-link-disabled-color; - } - - // Nuke hover/focus effects - &:hover, - &:focus { - text-decoration: none; - background-color: transparent; - background-image: none; // Remove CSS gradient - @include reset-filter; - cursor: $cursor-disabled; - } -} - -// Open state for the dropdown -.open { - // Show the menu - > .dropdown-menu { - display: block; - } - - // Remove the outline when :focus is triggered - > a { - outline: 0; - } -} - -// Menu positioning -// -// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown -// menu with the parent. -.dropdown-menu-right { - left: auto; // Reset the default from `.dropdown-menu` - right: 0; -} -// With v3, we enabled auto-flipping if you have a dropdown within a right -// aligned nav component. To enable the undoing of that, we provide an override -// to restore the default dropdown menu alignment. -// -// This is only for left-aligning a dropdown menu within a `.navbar-right` or -// `.pull-right` nav component. -.dropdown-menu-left { - left: 0; - right: auto; -} - -// Dropdown section headers -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: $font-size-small; - line-height: $line-height-base; - color: $dropdown-header-color; - white-space: nowrap; // as with > li > a -} - -// Backdrop to catch body clicks on mobile, etc. -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: ($zindex-dropdown - 10); -} - -// Right aligned dropdowns -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} - -// Allow for dropdowns to go bottom up (aka, dropup-menu) -// -// Just add .dropup after the standard .dropdown class and you're set, bro. -// TODO: abstract this so that the navbar fixed styles are not placed here? - -.dropup, -.navbar-fixed-bottom .dropdown { - // Reverse the caret - .caret { - border-top: 0; - border-bottom: $caret-width-base dashed; - border-bottom: $caret-width-base solid \9; // IE8 - content: ""; - } - // Different positioning for bottom up menu - .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; - } -} - - -// Component alignment -// -// Reiterate per navbar.less and the modified component alignment there. - -@media (min-width: $grid-float-breakpoint) { - .navbar-right { - .dropdown-menu { - right: 0; left: auto; - } - // Necessary for overrides of the default right aligned menu. - // Will remove come v4 in all likelihood. - .dropdown-menu-left { - left: 0; right: auto; - } - } -} diff --git a/src/public/css/lib/bootstrap/_forms.scss b/src/public/css/lib/bootstrap/_forms.scss deleted file mode 100644 index 11ba109..0000000 --- a/src/public/css/lib/bootstrap/_forms.scss +++ /dev/null @@ -1,617 +0,0 @@ -// -// Forms -// -------------------------------------------------- - - -// Normalize non-controls -// -// Restyle and baseline non-control form elements. - -fieldset { - padding: 0; - margin: 0; - border: 0; - // Chrome and Firefox set a `min-width: min-content;` on fieldsets, - // so we reset that to ensure it behaves more like a standard block element. - // See https://github.com/twbs/bootstrap/issues/12359. - min-width: 0; -} - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: $line-height-computed; - font-size: ($font-size-base * 1.5); - line-height: inherit; - color: $legend-color; - border: 0; - border-bottom: 1px solid $legend-border-color; -} - -label { - display: inline-block; - max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141) - margin-bottom: 5px; - font-weight: bold; -} - - -// Normalize form controls -// -// While most of our form styles require extra classes, some basic normalization -// is required to ensure optimum display with or without those classes to better -// address browser inconsistencies. - -// Override content-box in Normalize (* isn't specific enough) -input[type="search"] { - @include box-sizing(border-box); -} - -// Position radios and checkboxes better -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; // IE8-9 - line-height: normal; -} - -input[type="file"] { - display: block; -} - -// Make range inputs behave like textual form controls -input[type="range"] { - display: block; - width: 100%; -} - -// Make multiple select elements height not fixed -select[multiple], -select[size] { - height: auto; -} - -// Focus for file, radio, and checkbox -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - @include tab-focus; -} - -// Adjust output element -output { - display: block; - padding-top: ($padding-base-vertical + 1); - font-size: $font-size-base; - line-height: $line-height-base; - color: $input-color; -} - - -// Common form controls -// -// Shared size and type resets for form controls. Apply `.form-control` to any -// of the following form controls: -// -// select -// textarea -// input[type="text"] -// input[type="password"] -// input[type="datetime"] -// input[type="datetime-local"] -// input[type="date"] -// input[type="month"] -// input[type="time"] -// input[type="week"] -// input[type="number"] -// input[type="email"] -// input[type="url"] -// input[type="search"] -// input[type="tel"] -// input[type="color"] - -.form-control { - display: block; - width: 100%; - height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border) - padding: $padding-base-vertical $padding-base-horizontal; - font-size: $font-size-base; - line-height: $line-height-base; - color: $input-color; - background-color: $input-bg; - background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 - border: 1px solid $input-border; - border-radius: $input-border-radius; // Note: This has no effect on s in CSS. - @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); - @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s); - - // Customize the `:focus` state to imitate native WebKit styles. - @include form-control-focus; - - // Placeholder - @include placeholder; - - // Unstyle the caret on `` background color -$input-bg: #fff !default; -//** `` background color -$input-bg-disabled: $gray-lighter !default; - -//** Text color for ``s -$input-color: $gray !default; -//** `` border color -$input-border: #ccc !default; - -// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4 -//** Default `.form-control` border radius -// This has no effect on ``s in CSS. -$input-border-radius: $border-radius-base !default; -//** Large `.form-control` border radius -$input-border-radius-large: $border-radius-large !default; -//** Small `.form-control` border radius -$input-border-radius-small: $border-radius-small !default; - -//** Border color for inputs on focus -$input-border-focus: #66afe9 !default; - -//** Placeholder text color -$input-color-placeholder: #999 !default; - -//** Default `.form-control` height -$input-height-base: ($line-height-computed + ($padding-base-vertical * 2) + 2) !default; -//** Large `.form-control` height -$input-height-large: (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default; -//** Small `.form-control` height -$input-height-small: (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default; - -//** `.form-group` margin -$form-group-margin-bottom: 15px !default; - -$legend-color: $gray-dark !default; -$legend-border-color: #e5e5e5 !default; - -//** Background color for textual input addons -$input-group-addon-bg: $gray-lighter !default; -//** Border color for textual input addons -$input-group-addon-border-color: $input-border !default; - -//** Disabled cursor for form controls and buttons. -$cursor-disabled: not-allowed !default; - - -//== Dropdowns -// -//## Dropdown menu container and contents. - -//** Background for the dropdown menu. -$dropdown-bg: #fff !default; -//** Dropdown menu `border-color`. -$dropdown-border: rgba(0,0,0,.15) !default; -//** Dropdown menu `border-color` **for IE8**. -$dropdown-fallback-border: #ccc !default; -//** Divider color for between dropdown items. -$dropdown-divider-bg: #e5e5e5 !default; - -//** Dropdown link text color. -$dropdown-link-color: $gray-dark !default; -//** Hover color for dropdown links. -$dropdown-link-hover-color: darken($gray-dark, 5%) !default; -//** Hover background for dropdown links. -$dropdown-link-hover-bg: #f5f5f5 !default; - -//** Active dropdown menu item text color. -$dropdown-link-active-color: $component-active-color !default; -//** Active dropdown menu item background color. -$dropdown-link-active-bg: $component-active-bg !default; - -//** Disabled dropdown menu item background color. -$dropdown-link-disabled-color: $gray-light !default; - -//** Text color for headers within dropdown menus. -$dropdown-header-color: $gray-light !default; - -//** Deprecated `$dropdown-caret-color` as of v3.1.0 -$dropdown-caret-color: #000 !default; - - -//-- Z-index master list -// -// Warning: Avoid customizing these values. They're used for a bird's eye view -// of components dependent on the z-axis and are designed to all work together. -// -// Note: These variables are not generated into the Customizer. - -$zindex-navbar: 1000 !default; -$zindex-dropdown: 1000 !default; -$zindex-popover: 1060 !default; -$zindex-tooltip: 1070 !default; -$zindex-navbar-fixed: 1030 !default; -$zindex-modal-background: 1040 !default; -$zindex-modal: 1050 !default; - - -//== Media queries breakpoints -// -//## Define the breakpoints at which your layout will change, adapting to different screen sizes. - -// Extra small screen / phone -//** Deprecated `$screen-xs` as of v3.0.1 -$screen-xs: 480px !default; -//** Deprecated `$screen-xs-min` as of v3.2.0 -$screen-xs-min: $screen-xs !default; -//** Deprecated `$screen-phone` as of v3.0.1 -$screen-phone: $screen-xs-min !default; - -// Small screen / tablet -//** Deprecated `$screen-sm` as of v3.0.1 -$screen-sm: 768px !default; -$screen-sm-min: $screen-sm !default; -//** Deprecated `$screen-tablet` as of v3.0.1 -$screen-tablet: $screen-sm-min !default; - -// Medium screen / desktop -//** Deprecated `$screen-md` as of v3.0.1 -$screen-md: 992px !default; -$screen-md-min: $screen-md !default; -//** Deprecated `$screen-desktop` as of v3.0.1 -$screen-desktop: $screen-md-min !default; - -// Large screen / wide desktop -//** Deprecated `$screen-lg` as of v3.0.1 -$screen-lg: 1200px !default; -$screen-lg-min: $screen-lg !default; -//** Deprecated `$screen-lg-desktop` as of v3.0.1 -$screen-lg-desktop: $screen-lg-min !default; - -// So media queries don't overlap when required, provide a maximum -$screen-xs-max: ($screen-sm-min - 1) !default; -$screen-sm-max: ($screen-md-min - 1) !default; -$screen-md-max: ($screen-lg-min - 1) !default; - - -//== Grid system -// -//## Define your custom responsive grid. - -//** Number of columns in the grid. -$grid-columns: 12 !default; -//** Padding between columns. Gets divided in half for the left and right. -$grid-gutter-width: 30px !default; -// Navbar collapse -//** Point at which the navbar becomes uncollapsed. -$grid-float-breakpoint: $screen-sm-min !default; -//** Point at which the navbar begins collapsing. -$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default; - - -//== Container sizes -// -//## Define the maximum width of `.container` for different screen sizes. - -// Small screen / tablet -$container-tablet: (720px + $grid-gutter-width) !default; -//** For `$screen-sm-min` and up. -$container-sm: $container-tablet !default; - -// Medium screen / desktop -$container-desktop: (940px + $grid-gutter-width) !default; -//** For `$screen-md-min` and up. -$container-md: $container-desktop !default; - -// Large screen / wide desktop -$container-large-desktop: (1140px + $grid-gutter-width) !default; -//** For `$screen-lg-min` and up. -$container-lg: $container-large-desktop !default; - - -//== Navbar -// -//## - -// Basics of a navbar -$navbar-height: 50px !default; -$navbar-margin-bottom: $line-height-computed !default; -$navbar-border-radius: $border-radius-base !default; -$navbar-padding-horizontal: floor(($grid-gutter-width / 2)) !default; -$navbar-padding-vertical: (($navbar-height - $line-height-computed) / 2) !default; -$navbar-collapse-max-height: 340px !default; - -$navbar-default-color: #777 !default; -$navbar-default-bg: #f8f8f8 !default; -$navbar-default-border: darken($navbar-default-bg, 6.5%) !default; - -// Navbar links -$navbar-default-link-color: #777 !default; -$navbar-default-link-hover-color: #333 !default; -$navbar-default-link-hover-bg: transparent !default; -$navbar-default-link-active-color: #555 !default; -$navbar-default-link-active-bg: darken($navbar-default-bg, 6.5%) !default; -$navbar-default-link-disabled-color: #ccc !default; -$navbar-default-link-disabled-bg: transparent !default; - -// Navbar brand label -$navbar-default-brand-color: $navbar-default-link-color !default; -$navbar-default-brand-hover-color: darken($navbar-default-brand-color, 10%) !default; -$navbar-default-brand-hover-bg: transparent !default; - -// Navbar toggle -$navbar-default-toggle-hover-bg: #ddd !default; -$navbar-default-toggle-icon-bar-bg: #888 !default; -$navbar-default-toggle-border-color: #ddd !default; - - -//=== Inverted navbar -// Reset inverted navbar basics -$navbar-inverse-color: lighten($gray-light, 15%) !default; -$navbar-inverse-bg: #222 !default; -$navbar-inverse-border: darken($navbar-inverse-bg, 10%) !default; - -// Inverted navbar links -$navbar-inverse-link-color: lighten($gray-light, 15%) !default; -$navbar-inverse-link-hover-color: #fff !default; -$navbar-inverse-link-hover-bg: transparent !default; -$navbar-inverse-link-active-color: $navbar-inverse-link-hover-color !default; -$navbar-inverse-link-active-bg: darken($navbar-inverse-bg, 10%) !default; -$navbar-inverse-link-disabled-color: #444 !default; -$navbar-inverse-link-disabled-bg: transparent !default; - -// Inverted navbar brand label -$navbar-inverse-brand-color: $navbar-inverse-link-color !default; -$navbar-inverse-brand-hover-color: #fff !default; -$navbar-inverse-brand-hover-bg: transparent !default; - -// Inverted navbar toggle -$navbar-inverse-toggle-hover-bg: #333 !default; -$navbar-inverse-toggle-icon-bar-bg: #fff !default; -$navbar-inverse-toggle-border-color: #333 !default; - - -//== Navs -// -//## - -//=== Shared nav styles -$nav-link-padding: 10px 15px !default; -$nav-link-hover-bg: $gray-lighter !default; - -$nav-disabled-link-color: $gray-light !default; -$nav-disabled-link-hover-color: $gray-light !default; - -//== Tabs -$nav-tabs-border-color: #ddd !default; - -$nav-tabs-link-hover-border-color: $gray-lighter !default; - -$nav-tabs-active-link-hover-bg: $body-bg !default; -$nav-tabs-active-link-hover-color: $gray !default; -$nav-tabs-active-link-hover-border-color: #ddd !default; - -$nav-tabs-justified-link-border-color: #ddd !default; -$nav-tabs-justified-active-link-border-color: $body-bg !default; - -//== Pills -$nav-pills-border-radius: $border-radius-base !default; -$nav-pills-active-link-hover-bg: $component-active-bg !default; -$nav-pills-active-link-hover-color: $component-active-color !default; - - -//== Pagination -// -//## - -$pagination-color: $link-color !default; -$pagination-bg: #fff !default; -$pagination-border: #ddd !default; - -$pagination-hover-color: $link-hover-color !default; -$pagination-hover-bg: $gray-lighter !default; -$pagination-hover-border: #ddd !default; - -$pagination-active-color: #fff !default; -$pagination-active-bg: $brand-primary !default; -$pagination-active-border: $brand-primary !default; - -$pagination-disabled-color: $gray-light !default; -$pagination-disabled-bg: #fff !default; -$pagination-disabled-border: #ddd !default; - - -//== Pager -// -//## - -$pager-bg: $pagination-bg !default; -$pager-border: $pagination-border !default; -$pager-border-radius: 15px !default; - -$pager-hover-bg: $pagination-hover-bg !default; - -$pager-active-bg: $pagination-active-bg !default; -$pager-active-color: $pagination-active-color !default; - -$pager-disabled-color: $pagination-disabled-color !default; - - -//== Jumbotron -// -//## - -$jumbotron-padding: 30px !default; -$jumbotron-color: inherit !default; -$jumbotron-bg: $gray-lighter !default; -$jumbotron-heading-color: inherit !default; -$jumbotron-font-size: ceil(($font-size-base * 1.5)) !default; -$jumbotron-heading-font-size: ceil(($font-size-base * 4.5)) !default; - - -//== Form states and alerts -// -//## Define colors for form feedback states and, by default, alerts. - -$state-success-text: #3c763d !default; -$state-success-bg: #dff0d8 !default; -$state-success-border: darken(adjust-hue($state-success-bg, -10), 5%) !default; - -$state-info-text: #31708f !default; -$state-info-bg: #d9edf7 !default; -$state-info-border: darken(adjust-hue($state-info-bg, -10), 7%) !default; - -$state-warning-text: #8a6d3b !default; -$state-warning-bg: #fcf8e3 !default; -$state-warning-border: darken(adjust-hue($state-warning-bg, -10), 5%) !default; - -$state-danger-text: #a94442 !default; -$state-danger-bg: #f2dede !default; -$state-danger-border: darken(adjust-hue($state-danger-bg, -10), 5%) !default; - - -//== Tooltips -// -//## - -//** Tooltip max width -$tooltip-max-width: 200px !default; -//** Tooltip text color -$tooltip-color: #fff !default; -//** Tooltip background color -$tooltip-bg: #000 !default; -$tooltip-opacity: .9 !default; - -//** Tooltip arrow width -$tooltip-arrow-width: 5px !default; -//** Tooltip arrow color -$tooltip-arrow-color: $tooltip-bg !default; - - -//== Popovers -// -//## - -//** Popover body background color -$popover-bg: #fff !default; -//** Popover maximum width -$popover-max-width: 276px !default; -//** Popover border color -$popover-border-color: rgba(0,0,0,.2) !default; -//** Popover fallback border color -$popover-fallback-border-color: #ccc !default; - -//** Popover title background color -$popover-title-bg: darken($popover-bg, 3%) !default; - -//** Popover arrow width -$popover-arrow-width: 10px !default; -//** Popover arrow color -$popover-arrow-color: $popover-bg !default; - -//** Popover outer arrow width -$popover-arrow-outer-width: ($popover-arrow-width + 1) !default; -//** Popover outer arrow color -$popover-arrow-outer-color: fade_in($popover-border-color, 0.05) !default; -//** Popover outer arrow fallback color -$popover-arrow-outer-fallback-color: darken($popover-fallback-border-color, 20%) !default; - - -//== Labels -// -//## - -//** Default label background color -$label-default-bg: $gray-light !default; -//** Primary label background color -$label-primary-bg: $brand-primary !default; -//** Success label background color -$label-success-bg: $brand-success !default; -//** Info label background color -$label-info-bg: $brand-info !default; -//** Warning label background color -$label-warning-bg: $brand-warning !default; -//** Danger label background color -$label-danger-bg: $brand-danger !default; - -//** Default label text color -$label-color: #fff !default; -//** Default text color of a linked label -$label-link-hover-color: #fff !default; - - -//== Modals -// -//## - -//** Padding applied to the modal body -$modal-inner-padding: 15px !default; - -//** Padding applied to the modal title -$modal-title-padding: 15px !default; -//** Modal title line-height -$modal-title-line-height: $line-height-base !default; - -//** Background color of modal content area -$modal-content-bg: #fff !default; -//** Modal content border color -$modal-content-border-color: rgba(0,0,0,.2) !default; -//** Modal content border color **for IE8** -$modal-content-fallback-border-color: #999 !default; - -//** Modal backdrop background color -$modal-backdrop-bg: #000 !default; -//** Modal backdrop opacity -$modal-backdrop-opacity: .5 !default; -//** Modal header border color -$modal-header-border-color: #e5e5e5 !default; -//** Modal footer border color -$modal-footer-border-color: $modal-header-border-color !default; - -$modal-lg: 900px !default; -$modal-md: 600px !default; -$modal-sm: 300px !default; - - -//== Alerts -// -//## Define alert colors, border radius, and padding. - -$alert-padding: 15px !default; -$alert-border-radius: $border-radius-base !default; -$alert-link-font-weight: bold !default; - -$alert-success-bg: $state-success-bg !default; -$alert-success-text: $state-success-text !default; -$alert-success-border: $state-success-border !default; - -$alert-info-bg: $state-info-bg !default; -$alert-info-text: $state-info-text !default; -$alert-info-border: $state-info-border !default; - -$alert-warning-bg: $state-warning-bg !default; -$alert-warning-text: $state-warning-text !default; -$alert-warning-border: $state-warning-border !default; - -$alert-danger-bg: $state-danger-bg !default; -$alert-danger-text: $state-danger-text !default; -$alert-danger-border: $state-danger-border !default; - - -//== Progress bars -// -//## - -//** Background color of the whole progress component -$progress-bg: #f5f5f5 !default; -//** Progress bar text color -$progress-bar-color: #fff !default; -//** Variable for setting rounded corners on progress bar. -$progress-border-radius: $border-radius-base !default; - -//** Default progress bar color -$progress-bar-bg: $brand-primary !default; -//** Success progress bar color -$progress-bar-success-bg: $brand-success !default; -//** Warning progress bar color -$progress-bar-warning-bg: $brand-warning !default; -//** Danger progress bar color -$progress-bar-danger-bg: $brand-danger !default; -//** Info progress bar color -$progress-bar-info-bg: $brand-info !default; - - -//== List group -// -//## - -//** Background color on `.list-group-item` -$list-group-bg: #fff !default; -//** `.list-group-item` border color -$list-group-border: #ddd !default; -//** List group border radius -$list-group-border-radius: $border-radius-base !default; - -//** Background color of single list items on hover -$list-group-hover-bg: #f5f5f5 !default; -//** Text color of active list items -$list-group-active-color: $component-active-color !default; -//** Background color of active list items -$list-group-active-bg: $component-active-bg !default; -//** Border color of active list elements -$list-group-active-border: $list-group-active-bg !default; -//** Text color for content within active list items -$list-group-active-text-color: lighten($list-group-active-bg, 40%) !default; - -//** Text color of disabled list items -$list-group-disabled-color: $gray-light !default; -//** Background color of disabled list items -$list-group-disabled-bg: $gray-lighter !default; -//** Text color for content within disabled list items -$list-group-disabled-text-color: $list-group-disabled-color !default; - -$list-group-link-color: #555 !default; -$list-group-link-hover-color: $list-group-link-color !default; -$list-group-link-heading-color: #333 !default; - - -//== Panels -// -//## - -$panel-bg: #fff !default; -$panel-body-padding: 15px !default; -$panel-heading-padding: 10px 15px !default; -$panel-footer-padding: $panel-heading-padding !default; -$panel-border-radius: $border-radius-base !default; - -//** Border color for elements within panels -$panel-inner-border: #ddd !default; -$panel-footer-bg: #f5f5f5 !default; - -$panel-default-text: $gray-dark !default; -$panel-default-border: #ddd !default; -$panel-default-heading-bg: #f5f5f5 !default; - -$panel-primary-text: #fff !default; -$panel-primary-border: $brand-primary !default; -$panel-primary-heading-bg: $brand-primary !default; - -$panel-success-text: $state-success-text !default; -$panel-success-border: $state-success-border !default; -$panel-success-heading-bg: $state-success-bg !default; - -$panel-info-text: $state-info-text !default; -$panel-info-border: $state-info-border !default; -$panel-info-heading-bg: $state-info-bg !default; - -$panel-warning-text: $state-warning-text !default; -$panel-warning-border: $state-warning-border !default; -$panel-warning-heading-bg: $state-warning-bg !default; - -$panel-danger-text: $state-danger-text !default; -$panel-danger-border: $state-danger-border !default; -$panel-danger-heading-bg: $state-danger-bg !default; - - -//== Thumbnails -// -//## - -//** Padding around the thumbnail image -$thumbnail-padding: 4px !default; -//** Thumbnail background color -$thumbnail-bg: $body-bg !default; -//** Thumbnail border color -$thumbnail-border: #ddd !default; -//** Thumbnail border radius -$thumbnail-border-radius: $border-radius-base !default; - -//** Custom text color for thumbnail captions -$thumbnail-caption-color: $text-color !default; -//** Padding around the thumbnail caption -$thumbnail-caption-padding: 9px !default; - - -//== Wells -// -//## - -$well-bg: #f5f5f5 !default; -$well-border: darken($well-bg, 7%) !default; - - -//== Badges -// -//## - -$badge-color: #fff !default; -//** Linked badge text color on hover -$badge-link-hover-color: #fff !default; -$badge-bg: $gray-light !default; - -//** Badge text color in active nav link -$badge-active-color: $link-color !default; -//** Badge background color in active nav link -$badge-active-bg: #fff !default; - -$badge-font-weight: bold !default; -$badge-line-height: 1 !default; -$badge-border-radius: 10px !default; - - -//== Breadcrumbs -// -//## - -$breadcrumb-padding-vertical: 8px !default; -$breadcrumb-padding-horizontal: 15px !default; -//** Breadcrumb background color -$breadcrumb-bg: #f5f5f5 !default; -//** Breadcrumb text color -$breadcrumb-color: #ccc !default; -//** Text color of current page in the breadcrumb -$breadcrumb-active-color: $gray-light !default; -//** Textual separator for between breadcrumb elements -$breadcrumb-separator: "/" !default; - - -//== Carousel -// -//## - -$carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6) !default; - -$carousel-control-color: #fff !default; -$carousel-control-width: 15% !default; -$carousel-control-opacity: .5 !default; -$carousel-control-font-size: 20px !default; - -$carousel-indicator-active-bg: #fff !default; -$carousel-indicator-border-color: #fff !default; - -$carousel-caption-color: #fff !default; - - -//== Close -// -//## - -$close-font-weight: bold !default; -$close-color: #000 !default; -$close-text-shadow: 0 1px 0 #fff !default; - - -//== Code -// -//## - -$code-color: #c7254e !default; -$code-bg: #f9f2f4 !default; - -$kbd-color: #fff !default; -$kbd-bg: #333 !default; - -$pre-bg: #f5f5f5 !default; -$pre-color: $gray-dark !default; -$pre-border-color: #ccc !default; -$pre-scrollable-max-height: 340px !default; - - -//== Type -// -//## - -//** Horizontal offset for forms and lists. -$component-offset-horizontal: 180px !default; -//** Text muted color -$text-muted: $gray-light !default; -//** Abbreviations and acronyms border color -$abbr-border-color: $gray-light !default; -//** Headings small color -$headings-small-color: $gray-light !default; -//** Blockquote small color -$blockquote-small-color: $gray-light !default; -//** Blockquote font size -$blockquote-font-size: ($font-size-base * 1.25) !default; -//** Blockquote border color -$blockquote-border-color: $gray-lighter !default; -//** Page header border color -$page-header-border-color: $gray-lighter !default; -//** Width of horizontal description list titles -$dl-horizontal-offset: $component-offset-horizontal !default; -//** Point at which .dl-horizontal becomes horizontal -$dl-horizontal-breakpoint: $grid-float-breakpoint !default; -//** Horizontal line color. -$hr-border: $gray-lighter !default; diff --git a/src/public/css/lib/bootstrap/_wells.scss b/src/public/css/lib/bootstrap/_wells.scss deleted file mode 100644 index b865711..0000000 --- a/src/public/css/lib/bootstrap/_wells.scss +++ /dev/null @@ -1,29 +0,0 @@ -// -// Wells -// -------------------------------------------------- - - -// Base class -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: $well-bg; - border: 1px solid $well-border; - border-radius: $border-radius-base; - @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); - blockquote { - border-color: #ddd; - border-color: rgba(0,0,0,.15); - } -} - -// Sizes -.well-lg { - padding: 24px; - border-radius: $border-radius-large; -} -.well-sm { - padding: 9px; - border-radius: $border-radius-small; -} diff --git a/src/public/css/lib/bootstrap/bootstrap.scss b/src/public/css/lib/bootstrap/bootstrap.scss deleted file mode 100644 index 2195ff2..0000000 --- a/src/public/css/lib/bootstrap/bootstrap.scss +++ /dev/null @@ -1,56 +0,0 @@ -/*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/blob/master/LICENSE) - */ - -// Core variables and mixins -@import "variables"; -@import "mixins"; - -// Reset and dependencies -@import "normalize"; -@import "print"; -@import "glyphicons"; - -// Core CSS -@import "scaffolding"; -@import "type"; -@import "code"; -@import "grid"; -@import "tables"; -@import "forms"; -@import "buttons"; - -// Components -@import "component-animations"; -@import "dropdowns"; -@import "button-groups"; -@import "input-groups"; -@import "navs"; -@import "navbar"; -@import "breadcrumbs"; -@import "pagination"; -@import "pager"; -@import "labels"; -@import "badges"; -@import "jumbotron"; -@import "thumbnails"; -@import "alerts"; -@import "progress-bars"; -@import "media"; -@import "list-group"; -@import "panels"; -@import "responsive-embed"; -@import "wells"; -@import "close"; - -// Components w/ JavaScript -@import "modals"; -@import "tooltip"; -@import "popovers"; -@import "carousel"; - -// Utility classes -@import "utilities"; -@import "responsive-utilities"; diff --git a/src/public/css/lib/bootstrap/mixins/_alerts.scss b/src/public/css/lib/bootstrap/mixins/_alerts.scss deleted file mode 100644 index 3faf0b5..0000000 --- a/src/public/css/lib/bootstrap/mixins/_alerts.scss +++ /dev/null @@ -1,14 +0,0 @@ -// Alerts - -@mixin alert-variant($background, $border, $text-color) { - background-color: $background; - border-color: $border; - color: $text-color; - - hr { - border-top-color: darken($border, 5%); - } - .alert-link { - color: darken($text-color, 10%); - } -} diff --git a/src/public/css/lib/bootstrap/mixins/_background-variant.scss b/src/public/css/lib/bootstrap/mixins/_background-variant.scss deleted file mode 100644 index 4c7769e..0000000 --- a/src/public/css/lib/bootstrap/mixins/_background-variant.scss +++ /dev/null @@ -1,12 +0,0 @@ -// Contextual backgrounds - -// [converter] $parent hack -@mixin bg-variant($parent, $color) { - #{$parent} { - background-color: $color; - } - a#{$parent}:hover, - a#{$parent}:focus { - background-color: darken($color, 10%); - } -} diff --git a/src/public/css/lib/bootstrap/mixins/_border-radius.scss b/src/public/css/lib/bootstrap/mixins/_border-radius.scss deleted file mode 100644 index ce19499..0000000 --- a/src/public/css/lib/bootstrap/mixins/_border-radius.scss +++ /dev/null @@ -1,18 +0,0 @@ -// Single side border-radius - -@mixin border-top-radius($radius) { - border-top-right-radius: $radius; - border-top-left-radius: $radius; -} -@mixin border-right-radius($radius) { - border-bottom-right-radius: $radius; - border-top-right-radius: $radius; -} -@mixin border-bottom-radius($radius) { - border-bottom-right-radius: $radius; - border-bottom-left-radius: $radius; -} -@mixin border-left-radius($radius) { - border-bottom-left-radius: $radius; - border-top-left-radius: $radius; -} diff --git a/src/public/css/lib/bootstrap/mixins/_buttons.scss b/src/public/css/lib/bootstrap/mixins/_buttons.scss deleted file mode 100644 index b93f84b..0000000 --- a/src/public/css/lib/bootstrap/mixins/_buttons.scss +++ /dev/null @@ -1,65 +0,0 @@ -// Button variants -// -// Easily pump out default styles, as well as :hover, :focus, :active, -// and disabled options for all buttons - -@mixin button-variant($color, $background, $border) { - color: $color; - background-color: $background; - border-color: $border; - - &:focus, - &.focus { - color: $color; - background-color: darken($background, 10%); - border-color: darken($border, 25%); - } - &:hover { - color: $color; - background-color: darken($background, 10%); - border-color: darken($border, 12%); - } - &:active, - &.active, - .open > &.dropdown-toggle { - color: $color; - background-color: darken($background, 10%); - border-color: darken($border, 12%); - - &:hover, - &:focus, - &.focus { - color: $color; - background-color: darken($background, 17%); - border-color: darken($border, 25%); - } - } - &:active, - &.active, - .open > &.dropdown-toggle { - background-image: none; - } - &.disabled, - &[disabled], - fieldset[disabled] & { - &:hover, - &:focus, - &.focus { - background-color: $background; - border-color: $border; - } - } - - .badge { - color: $background; - background-color: $color; - } -} - -// Button sizes -@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) { - padding: $padding-vertical $padding-horizontal; - font-size: $font-size; - line-height: $line-height; - border-radius: $border-radius; -} diff --git a/src/public/css/lib/bootstrap/mixins/_center-block.scss b/src/public/css/lib/bootstrap/mixins/_center-block.scss deleted file mode 100644 index e06fb5e..0000000 --- a/src/public/css/lib/bootstrap/mixins/_center-block.scss +++ /dev/null @@ -1,7 +0,0 @@ -// Center-align a block level element - -@mixin center-block() { - display: block; - margin-left: auto; - margin-right: auto; -} diff --git a/src/public/css/lib/bootstrap/mixins/_clearfix.scss b/src/public/css/lib/bootstrap/mixins/_clearfix.scss deleted file mode 100644 index dc3e2ab..0000000 --- a/src/public/css/lib/bootstrap/mixins/_clearfix.scss +++ /dev/null @@ -1,22 +0,0 @@ -// Clearfix -// -// For modern browsers -// 1. The space content is one way to avoid an Opera bug when the -// contenteditable attribute is included anywhere else in the document. -// Otherwise it causes space to appear at the top and bottom of elements -// that are clearfixed. -// 2. The use of `table` rather than `block` is only necessary if using -// `:before` to contain the top-margins of child elements. -// -// Source: http://nicolasgallagher.com/micro-clearfix-hack/ - -@mixin clearfix() { - &:before, - &:after { - content: " "; // 1 - display: table; // 2 - } - &:after { - clear: both; - } -} diff --git a/src/public/css/lib/bootstrap/mixins/_forms.scss b/src/public/css/lib/bootstrap/mixins/_forms.scss deleted file mode 100644 index 277aa5f..0000000 --- a/src/public/css/lib/bootstrap/mixins/_forms.scss +++ /dev/null @@ -1,88 +0,0 @@ -// Form validation states -// -// Used in forms.less to generate the form validation CSS for warnings, errors, -// and successes. - -@mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) { - // Color the label and help text - .help-block, - .control-label, - .radio, - .checkbox, - .radio-inline, - .checkbox-inline, - &.radio label, - &.checkbox label, - &.radio-inline label, - &.checkbox-inline label { - color: $text-color; - } - // Set the border and box shadow on specific inputs to match - .form-control { - border-color: $border-color; - @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work - &:focus { - border-color: darken($border-color, 10%); - $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%); - @include box-shadow($shadow); - } - } - // Set validation states also for addons - .input-group-addon { - color: $text-color; - border-color: $border-color; - background-color: $background-color; - } - // Optional feedback icon - .form-control-feedback { - color: $text-color; - } -} - - -// Form control focus state -// -// Generate a customized focus state and for any input with the specified color, -// which defaults to the `$input-border-focus` variable. -// -// We highly encourage you to not customize the default value, but instead use -// this to tweak colors on an as-needed basis. This aesthetic change is based on -// WebKit's default styles, but applicable to a wider range of browsers. Its -// usability and accessibility should be taken into account with any change. -// -// Example usage: change the default blue border and shadow to white for better -// contrast against a dark gray background. -@mixin form-control-focus($color: $input-border-focus) { - $color-rgba: rgba(red($color), green($color), blue($color), .6); - &:focus { - border-color: $color; - outline: 0; - @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba); - } -} - -// Form control sizing -// -// Relative text size, padding, and border-radii changes for form controls. For -// horizontal sizing, wrap controls in the predefined grid classes. `` background color -$input-bg: #fff !default; -//** `` background color -$input-bg-disabled: $gray-lighter !default; - -//** Text color for ``s -$input-color: $text-color !default; -//** `` border color -$input-border: #dce4ec !default; - -// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4 -//** Default `.form-control` border radius -// This has no effect on ``s in CSS. -$input-border-radius: $border-radius-base !default; -//** Large `.form-control` border radius -$input-border-radius-large: $border-radius-large !default; -//** Small `.form-control` border radius -$input-border-radius-small: $border-radius-small !default; - -//** Border color for inputs on focus -$input-border-focus: $brand-primary !default; - -//** Placeholder text color -$input-color-placeholder: #acb6c0 !default; - -//** Default `.form-control` height -$input-height-base: ($line-height-computed + ($padding-base-vertical * 2) + 4) !default; -//** Large `.form-control` height -$input-height-large: (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 4) !default; -//** Small `.form-control` height -$input-height-small: (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 4) !default; - -//** `.form-group` margin -$form-group-margin-bottom: 15px !default; - -$legend-color: $text-color !default; -$legend-border-color: transparent !default; - -//** Background color for textual input addons -$input-group-addon-bg: $gray-lighter !default; -//** Border color for textual input addons -$input-group-addon-border-color: $input-border !default; - -//** Disabled cursor for form controls and buttons. -$cursor-disabled: not-allowed !default; - - -//== Dropdowns -// -//## Dropdown menu container and contents. - -//** Background for the dropdown menu. -$dropdown-bg: #fff !default; -//** Dropdown menu `border-color`. -$dropdown-border: rgba(0,0,0,.15) !default; -//** Dropdown menu `border-color` **for IE8**. -$dropdown-fallback-border: #ccc !default; -//** Divider color for between dropdown items. -$dropdown-divider-bg: #e5e5e5 !default; - -//** Dropdown link text color. -$dropdown-link-color: $gray-dark !default; -//** Hover color for dropdown links. -$dropdown-link-hover-color: #fff !default; -//** Hover background for dropdown links. -$dropdown-link-hover-bg: $component-active-bg !default; - -//** Active dropdown menu item text color. -$dropdown-link-active-color: #fff !default; -//** Active dropdown menu item background color. -$dropdown-link-active-bg: $component-active-bg !default; - -//** Disabled dropdown menu item background color. -$dropdown-link-disabled-color: $gray-light !default; - -//** Text color for headers within dropdown menus. -$dropdown-header-color: $gray-light !default; - -//** Deprecated `$dropdown-caret-color` as of v3.1.0 -$dropdown-caret-color: #000 !default; - - -//-- Z-index master list -// -// Warning: Avoid customizing these values. They're used for a bird's eye view -// of components dependent on the z-axis and are designed to all work together. -// -// Note: These variables are not generated into the Customizer. - -$zindex-navbar: 1000 !default; -$zindex-dropdown: 1000 !default; -$zindex-popover: 1060 !default; -$zindex-tooltip: 1070 !default; -$zindex-navbar-fixed: 1030 !default; -$zindex-modal-background: 1040 !default; -$zindex-modal: 1050 !default; - - -//== Media queries breakpoints -// -//## Define the breakpoints at which your layout will change, adapting to different screen sizes. - -// Extra small screen / phone -//** Deprecated `$screen-xs` as of v3.0.1 -$screen-xs: 480px !default; -//** Deprecated `$screen-xs-min` as of v3.2.0 -$screen-xs-min: $screen-xs !default; -//** Deprecated `$screen-phone` as of v3.0.1 -$screen-phone: $screen-xs-min !default; - -// Small screen / tablet -//** Deprecated `$screen-sm` as of v3.0.1 -$screen-sm: 768px !default; -$screen-sm-min: $screen-sm !default; -//** Deprecated `$screen-tablet` as of v3.0.1 -$screen-tablet: $screen-sm-min !default; - -// Medium screen / desktop -//** Deprecated `$screen-md` as of v3.0.1 -$screen-md: 992px !default; -$screen-md-min: $screen-md !default; -//** Deprecated `$screen-desktop` as of v3.0.1 -$screen-desktop: $screen-md-min !default; - -// Large screen / wide desktop -//** Deprecated `$screen-lg` as of v3.0.1 -$screen-lg: 1200px !default; -$screen-lg-min: $screen-lg !default; -//** Deprecated `$screen-lg-desktop` as of v3.0.1 -$screen-lg-desktop: $screen-lg-min !default; - -// So media queries don't overlap when required, provide a maximum -$screen-xs-max: ($screen-sm-min - 1) !default; -$screen-sm-max: ($screen-md-min - 1) !default; -$screen-md-max: ($screen-lg-min - 1) !default; - - -//== Grid system -// -//## Define your custom responsive grid. - -//** Number of columns in the grid. -$grid-columns: 12 !default; -//** Padding between columns. Gets divided in half for the left and right. -$grid-gutter-width: 30px !default; -// Navbar collapse -//** Point at which the navbar becomes uncollapsed. -$grid-float-breakpoint: $screen-sm-min !default; -//** Point at which the navbar begins collapsing. -$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default; - - -//== Container sizes -// -//## Define the maximum width of `.container` for different screen sizes. - -// Small screen / tablet -$container-tablet: (720px + $grid-gutter-width) !default; -//** For `$screen-sm-min` and up. -$container-sm: $container-tablet !default; - -// Medium screen / desktop -$container-desktop: (940px + $grid-gutter-width) !default; -//** For `$screen-md-min` and up. -$container-md: $container-desktop !default; - -// Large screen / wide desktop -$container-large-desktop: (1140px + $grid-gutter-width) !default; -//** For `$screen-lg-min` and up. -$container-lg: $container-large-desktop !default; - - -//== Navbar -// -//## - -// Basics of a navbar -$navbar-height: 60px !default; -$navbar-margin-bottom: $line-height-computed !default; -$navbar-border-radius: $border-radius-base !default; -$navbar-padding-horizontal: floor(($grid-gutter-width / 2)) !default; -$navbar-padding-vertical: (($navbar-height - $line-height-computed) / 2) !default; -$navbar-collapse-max-height: 340px !default; - -$navbar-default-color: #fff !default; -$navbar-default-bg: $brand-primary !default; -$navbar-default-border: transparent !default; - -// Navbar links -$navbar-default-link-color: #fff !default; -$navbar-default-link-hover-color: $brand-success !default; -$navbar-default-link-hover-bg: transparent !default; -$navbar-default-link-active-color: #fff !default; -$navbar-default-link-active-bg: darken($navbar-default-bg, 10%) !default; -$navbar-default-link-disabled-color: #ccc !default; -$navbar-default-link-disabled-bg: transparent !default; - -// Navbar brand label -$navbar-default-brand-color: $navbar-default-link-color !default; -$navbar-default-brand-hover-color: $navbar-default-link-hover-color !default; -$navbar-default-brand-hover-bg: transparent !default; - -// Navbar toggle -$navbar-default-toggle-hover-bg: darken($navbar-default-bg, 10%) !default; -$navbar-default-toggle-icon-bar-bg: #fff !default; -$navbar-default-toggle-border-color: darken($navbar-default-bg, 10%) !default; - - -//=== Inverted navbar -// Reset inverted navbar basics -$navbar-inverse-color: #fff !default; -$navbar-inverse-bg: $brand-success !default; -$navbar-inverse-border: transparent !default; - -// Inverted navbar links -$navbar-inverse-link-color: #fff !default; -$navbar-inverse-link-hover-color: $brand-primary !default; -$navbar-inverse-link-hover-bg: transparent !default; -$navbar-inverse-link-active-color: #fff !default; -$navbar-inverse-link-active-bg: darken($navbar-inverse-bg, 5%) !default; -$navbar-inverse-link-disabled-color: #ccc !default; -$navbar-inverse-link-disabled-bg: transparent !default; - -// Inverted navbar brand label -$navbar-inverse-brand-color: $navbar-inverse-link-color !default; -$navbar-inverse-brand-hover-color: $navbar-inverse-link-hover-color !default; -$navbar-inverse-brand-hover-bg: transparent !default; - -// Inverted navbar toggle -$navbar-inverse-toggle-hover-bg: darken($navbar-inverse-bg, 10%) !default; -$navbar-inverse-toggle-icon-bar-bg: #fff !default; -$navbar-inverse-toggle-border-color: darken($navbar-inverse-bg, 10%) !default; - - -//== Navs -// -//## - -//=== Shared nav styles -$nav-link-padding: 10px 15px !default; -$nav-link-hover-bg: $gray-lighter !default; - -$nav-disabled-link-color: $gray-light !default; -$nav-disabled-link-hover-color: $gray-light !default; - -//== Tabs -$nav-tabs-border-color: $gray-lighter !default; - -$nav-tabs-link-hover-border-color: $gray-lighter !default; - -$nav-tabs-active-link-hover-bg: $body-bg !default; -$nav-tabs-active-link-hover-color: $brand-primary !default; -$nav-tabs-active-link-hover-border-color: $gray-lighter !default; - -$nav-tabs-justified-link-border-color: $gray-lighter !default; -$nav-tabs-justified-active-link-border-color: $body-bg !default; - -//== Pills -$nav-pills-border-radius: $border-radius-base !default; -$nav-pills-active-link-hover-bg: $component-active-bg !default; -$nav-pills-active-link-hover-color: $component-active-color !default; - - -//== Pagination -// -//## - -$pagination-color: #fff !default; -$pagination-bg: $brand-success !default; -$pagination-border: transparent !default; - -$pagination-hover-color: #fff !default; -$pagination-hover-bg: darken($brand-success, 15%) !default; -$pagination-hover-border: transparent !default; - -$pagination-active-color: #fff !default; -$pagination-active-bg: darken($brand-success, 15%) !default; -$pagination-active-border: transparent !default; - -$pagination-disabled-color: $gray-lighter !default; -$pagination-disabled-bg: lighten($brand-success, 15%) !default; -$pagination-disabled-border: transparent !default; - - -//== Pager -// -//## - -$pager-bg: $pagination-bg !default; -$pager-border: $pagination-border !default; -$pager-border-radius: 15px !default; - -$pager-hover-bg: $pagination-hover-bg !default; - -$pager-active-bg: $pagination-active-bg !default; -$pager-active-color: $pagination-active-color !default; - -$pager-disabled-color: #fff !default; - - -//== Jumbotron -// -//## - -$jumbotron-padding: 30px !default; -$jumbotron-color: inherit !default; -$jumbotron-bg: $gray-lighter !default; -$jumbotron-heading-color: inherit !default; -$jumbotron-font-size: ceil(($font-size-base * 1.5)) !default; -$jumbotron-heading-font-size: ceil(($font-size-base * 4.5)) !default; - - -//== Form states and alerts -// -//## Define colors for form feedback states and, by default, alerts. - -$state-success-text: #fff !default; -$state-success-bg: $brand-success !default; -$state-success-border: $brand-success !default; - -$state-info-text: #fff !default; -$state-info-bg: $brand-info !default; -$state-info-border: $brand-info !default; - -$state-warning-text: #fff !default; -$state-warning-bg: $brand-warning !default; -$state-warning-border: $brand-warning !default; - -$state-danger-text: #fff !default; -$state-danger-bg: $brand-danger !default; -$state-danger-border: $brand-danger !default; - - -//== Tooltips -// -//## - -//** Tooltip max width -$tooltip-max-width: 200px !default; -//** Tooltip text color -$tooltip-color: #fff !default; -//** Tooltip background color -$tooltip-bg: #000 !default; -$tooltip-opacity: .9 !default; - -//** Tooltip arrow width -$tooltip-arrow-width: 5px !default; -//** Tooltip arrow color -$tooltip-arrow-color: $tooltip-bg !default; - - -//== Popovers -// -//## - -//** Popover body background color -$popover-bg: #fff !default; -//** Popover maximum width -$popover-max-width: 276px !default; -//** Popover border color -$popover-border-color: rgba(0,0,0,.2) !default; -//** Popover fallback border color -$popover-fallback-border-color: #ccc !default; - -//** Popover title background color -$popover-title-bg: darken($popover-bg, 3%) !default; - -//** Popover arrow width -$popover-arrow-width: 10px !default; -//** Popover arrow color -$popover-arrow-color: $popover-bg !default; - -//** Popover outer arrow width -$popover-arrow-outer-width: ($popover-arrow-width + 1) !default; -//** Popover outer arrow color -$popover-arrow-outer-color: fadein($popover-border-color, 5%) !default; -//** Popover outer arrow fallback color -$popover-arrow-outer-fallback-color: darken($popover-fallback-border-color, 20%) !default; - - -//== Labels -// -//## - -//** Default label background color -$label-default-bg: $btn-default-bg !default; -//** Primary label background color -$label-primary-bg: $brand-primary !default; -//** Success label background color -$label-success-bg: $brand-success !default; -//** Info label background color -$label-info-bg: $brand-info !default; -//** Warning label background color -$label-warning-bg: $brand-warning !default; -//** Danger label background color -$label-danger-bg: $brand-danger !default; - -//** Default label text color -$label-color: #fff !default; -//** Default text color of a linked label -$label-link-hover-color: #fff !default; - - -//== Modals -// -//## - -//** Padding applied to the modal body -$modal-inner-padding: 20px !default; - -//** Padding applied to the modal title -$modal-title-padding: 15px !default; -//** Modal title line-height -$modal-title-line-height: $line-height-base !default; - -//** Background color of modal content area -$modal-content-bg: #fff !default; -//** Modal content border color -$modal-content-border-color: rgba(0,0,0,.2) !default; -//** Modal content border color **for IE8** -$modal-content-fallback-border-color: #999 !default; - -//** Modal backdrop background color -$modal-backdrop-bg: #000 !default; -//** Modal backdrop opacity -$modal-backdrop-opacity: .5 !default; -//** Modal header border color -$modal-header-border-color: #e5e5e5 !default; -//** Modal footer border color -$modal-footer-border-color: $modal-header-border-color !default; - -$modal-lg: 900px !default; -$modal-md: 600px !default; -$modal-sm: 300px !default; - - -//== Alerts -// -//## Define alert colors, border radius, and padding. - -$alert-padding: 15px !default; -$alert-border-radius: $border-radius-base !default; -$alert-link-font-weight: bold !default; - -$alert-success-bg: $state-success-bg !default; -$alert-success-text: $state-success-text !default; -$alert-success-border: $state-success-border !default; - -$alert-info-bg: $state-info-bg !default; -$alert-info-text: $state-info-text !default; -$alert-info-border: $state-info-border !default; - -$alert-warning-bg: $state-warning-bg !default; -$alert-warning-text: $state-warning-text !default; -$alert-warning-border: $state-warning-border !default; - -$alert-danger-bg: $state-danger-bg !default; -$alert-danger-text: $state-danger-text !default; -$alert-danger-border: $state-danger-border !default; - - -//== Progress bars -// -//## - -//** Background color of the whole progress component -$progress-bg: $gray-lighter !default; -//** Progress bar text color -$progress-bar-color: #fff !default; -//** Variable for setting rounded corners on progress bar. -$progress-border-radius: $border-radius-base !default; - -//** Default progress bar color -$progress-bar-bg: $brand-primary !default; -//** Success progress bar color -$progress-bar-success-bg: $brand-success !default; -//** Warning progress bar color -$progress-bar-warning-bg: $brand-warning !default; -//** Danger progress bar color -$progress-bar-danger-bg: $brand-danger !default; -//** Info progress bar color -$progress-bar-info-bg: $brand-info !default; - - -//== List group -// -//## - -//** Background color on `.list-group-item` -$list-group-bg: #fff !default; -//** `.list-group-item` border color -$list-group-border: $gray-lighter !default; -//** List group border radius -$list-group-border-radius: $border-radius-base !default; - -//** Background color of single list items on hover -$list-group-hover-bg: $gray-lighter !default; -//** Text color of active list items -$list-group-active-color: $component-active-color !default; -//** Background color of active list items -$list-group-active-bg: $component-active-bg !default; -//** Border color of active list elements -$list-group-active-border: $list-group-active-bg !default; -//** Text color for content within active list items -$list-group-active-text-color: lighten($list-group-active-bg, 40%) !default; - -//** Text color of disabled list items -$list-group-disabled-color: $gray-light !default; -//** Background color of disabled list items -$list-group-disabled-bg: $gray-lighter !default; -//** Text color for content within disabled list items -$list-group-disabled-text-color: $list-group-disabled-color !default; - -$list-group-link-color: #555 !default; -$list-group-link-hover-color: $list-group-link-color !default; -$list-group-link-heading-color: #333 !default; - - -//== Panels -// -//## - -$panel-bg: #fff !default; -$panel-body-padding: 15px !default; -$panel-heading-padding: 10px 15px !default; -$panel-footer-padding: $panel-heading-padding !default; -$panel-border-radius: $border-radius-base !default; - -//** Border color for elements within panels -$panel-inner-border: $gray-lighter !default; -$panel-footer-bg: $gray-lighter !default; - -$panel-default-text: $text-color !default; -$panel-default-border: $gray-lighter !default; -$panel-default-heading-bg: $gray-lighter !default; - -$panel-primary-text: #fff !default; -$panel-primary-border: $brand-primary !default; -$panel-primary-heading-bg: $brand-primary !default; - -$panel-success-text: $state-success-text !default; -$panel-success-border: $state-success-border !default; -$panel-success-heading-bg: $state-success-bg !default; - -$panel-info-text: $state-info-text !default; -$panel-info-border: $state-info-border !default; -$panel-info-heading-bg: $state-info-bg !default; - -$panel-warning-text: $state-warning-text !default; -$panel-warning-border: $state-warning-border !default; -$panel-warning-heading-bg: $state-warning-bg !default; - -$panel-danger-text: $state-danger-text !default; -$panel-danger-border: $state-danger-border !default; -$panel-danger-heading-bg: $state-danger-bg !default; - - -//== Thumbnails -// -//## - -//** Padding around the thumbnail image -$thumbnail-padding: 4px !default; -//** Thumbnail background color -$thumbnail-bg: $body-bg !default; -//** Thumbnail border color -$thumbnail-border: $gray-lighter !default; -//** Thumbnail border radius -$thumbnail-border-radius: $border-radius-base !default; - -//** Custom text color for thumbnail captions -$thumbnail-caption-color: $text-color !default; -//** Padding around the thumbnail caption -$thumbnail-caption-padding: 9px !default; - - -//== Wells -// -//## - -$well-bg: $gray-lighter !default; -$well-border: transparent !default; - - -//== Badges -// -//## - -$badge-color: #fff !default; -//** Linked badge text color on hover -$badge-link-hover-color: #fff !default; -$badge-bg: $brand-primary !default; - -//** Badge text color in active nav link -$badge-active-color: $brand-primary !default; -//** Badge background color in active nav link -$badge-active-bg: #fff !default; - -$badge-font-weight: bold !default; -$badge-line-height: 1 !default; -$badge-border-radius: 10px !default; - - -//== Breadcrumbs -// -//## - -$breadcrumb-padding-vertical: 8px !default; -$breadcrumb-padding-horizontal: 15px !default; -//** Breadcrumb background color -$breadcrumb-bg: $gray-lighter !default; -//** Breadcrumb text color -$breadcrumb-color: #ccc !default; -//** Text color of current page in the breadcrumb -$breadcrumb-active-color: $gray !default; -//** Textual separator for between breadcrumb elements -$breadcrumb-separator: "/" !default; - - -//== Carousel -// -//## - -$carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6) !default; - -$carousel-control-color: #fff !default; -$carousel-control-width: 15% !default; -$carousel-control-opacity: .5 !default; -$carousel-control-font-size: 20px !default; - -$carousel-indicator-active-bg: #fff !default; -$carousel-indicator-border-color: #fff !default; - -$carousel-caption-color: #fff !default; - - -//== Close -// -//## - -$close-font-weight: bold !default; -$close-color: #000 !default; -$close-text-shadow: none !default; - - -//== Code -// -//## - -$code-color: #c7254e !default; -$code-bg: #f9f2f4 !default; - -$kbd-color: #fff !default; -$kbd-bg: #333 !default; - -$pre-bg: $gray-lighter !default; -$pre-color: $gray-dark !default; -$pre-border-color: #ccc !default; -$pre-scrollable-max-height: 340px !default; - - -//== Type -// -//## - -//** Horizontal offset for forms and lists. -$component-offset-horizontal: 180px !default; -//** Text muted color -$text-muted: $gray-light !default; -//** Abbreviations and acronyms border color -$abbr-border-color: $gray-light !default; -//** Headings small color -$headings-small-color: $gray-light !default; -//** Blockquote small color -$blockquote-small-color: $gray-light !default; -//** Blockquote font size -$blockquote-font-size: ($font-size-base * 1.25) !default; -//** Blockquote border color -$blockquote-border-color: $gray-lighter !default; -//** Page header border color -$page-header-border-color: transparent !default; -//** Width of horizontal description list titles -$dl-horizontal-offset: $component-offset-horizontal !default; -//** Point at which .dl-horizontal becomes horizontal -$dl-horizontal-breakpoint: $grid-float-breakpoint !default; -//** Horizontal line color. -$hr-border: $gray-lighter !default; diff --git a/src/public/css/themes/gsdk/gsdk.scss b/src/public/css/themes/gsdk/gsdk.scss deleted file mode 100644 index 27dc80a..0000000 --- a/src/public/css/themes/gsdk/gsdk.scss +++ /dev/null @@ -1,29 +0,0 @@ -/*! - * Copyright 2016 Creative Tim (http://www.creative-tim.com) - * Licensed under MIT (https://github.com/timcreative/get-shit-done/blob/master/LICENSE.md) - */ - -@import "gsdk/variables"; -@import "gsdk/mixins"; -@import "gsdk/typography"; - -// Core CSS -@import "gsdk/misc"; -@import "gsdk/buttons"; -@import "gsdk/inputs"; -@import "gsdk/sliders"; -@import "gsdk/alerts"; -@import "gsdk/labels-and-progress-bars"; -@import "gsdk/tooltips"; -@import "gsdk/navbars"; - - -// Fancy Stuff -@import "gsdk/dropdown"; -@import "gsdk/social-buttons"; -@import "gsdk/tabs-navs-pagination"; -@import "gsdk/collapse"; -@import "gsdk/carousel"; -@import "gsdk/modal"; -@import "gsdk/responsive"; - diff --git a/src/public/css/themes/gsdk/gsdk/_alerts.scss b/src/public/css/themes/gsdk/gsdk/_alerts.scss deleted file mode 100644 index 3bb19e8..0000000 --- a/src/public/css/themes/gsdk/gsdk/_alerts.scss +++ /dev/null @@ -1,37 +0,0 @@ -.alert{ - border: 0; - border-radius: 0; - color: #FFFFFF; - padding: 10px 15px; - font-size: 14px; - - .container &{ - border-radius: 4px; - - } - .navbar &{ - border-radius: 0; - left: 0; - position: absolute; - right: 0; - top: 85px; - width: 100%; - z-index: 3; - } - .navbar:not(.navbar-transparent) &{ - top: 70px; - } -} -.alert-info{ - background-color: $azure-navbar; -} -.alert-success { - background-color: $green-navbar; -} -.alert-warning { - background-color: $orange-navbar; -} -.alert-danger { - background-color: $red-navbar; -} - diff --git a/src/public/css/themes/gsdk/gsdk/_buttons.scss b/src/public/css/themes/gsdk/gsdk/_buttons.scss deleted file mode 100644 index c85bb61..0000000 --- a/src/public/css/themes/gsdk/gsdk/_buttons.scss +++ /dev/null @@ -1,108 +0,0 @@ -.btn{ - color: $white-color; - font-weight: $font-weight-normal; - padding: $padding-base-vertical $padding-base-horizontal; - @include opacity(1); - - @include btn-styles($default-color, $default-states-color); - - &:hover, - &:focus{ - @include opacity(1); - outline: 0 !important; - color: $white-color; - } - &:active, - &.active, - .open > &.dropdown-toggle { - @include box-shadow(none); - outline: 0 !important; - color: $white-color; - } - - .caret{ - border-top-color: $white-color; - } - -} - -// Apply the mixin to the buttons -//.btn-default { @include btn-styles($default-color, $default-states-color); } -.btn-primary { @include btn-styles($primary-color, $primary-states-color); } -.btn-success { @include btn-styles($success-color, $success-states-color); } -.btn-info { @include btn-styles($info-color, $info-states-color); } -.btn-warning { @include btn-styles($warning-color, $warning-states-color); } -.btn-danger { @include btn-styles($danger-color, $danger-states-color); } -.btn-neutral { - @include btn-styles($white-color, $white-color); - - &:active, - &.active, - .open > &.dropdown-toggle{ - background-color: $white-color; - color: $default-color; - } - - &.btn-link:active, - &.btn-link.active{ - background-color: transparent; - } -} - -.btn{ - &:disabled, - &[disabled], - &.disabled{ - @include opacity(.5); - } -} -.btn-border, -.btn-round, -.btn-link{ - background-color: $transparent-bg; - @include opacity(.8); -} -.btn-border{ - border-width: $border-thick; -} -.btn-round{ - border-width: $border-thin; - border-radius: $btn-round-radius !important; - padding: $padding-round-vertical $padding-round-horizontal; -} -.btn-link{ - border: $none; - font-size: $font-size-medium; - padding: $padding-base-vertical $padding-base-horizontal; - - &:hover, - &:focus, - &:active{ - text-decoration: none; - } -} -.btn-lg{ - @include btn-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $border-radius-large); - font-weight: $font-weight-normal; -} -.btn-sm{ - @include btn-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $border-radius-small); -} -.btn-xs { - @include btn-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $border-radius-small); -} -.btn-wd { - min-width: 140px; -} -.btn-group.select{ - width: 100%; -} -.btn-group.select .btn{ - text-align: left; -} -.btn-group.select .caret{ - position: absolute; - top: 50%; - margin-top: -1px; - right: 8px; -} diff --git a/src/public/css/themes/gsdk/gsdk/_carousel.scss b/src/public/css/themes/gsdk/gsdk/_carousel.scss deleted file mode 100644 index d8aefc6..0000000 --- a/src/public/css/themes/gsdk/gsdk/_carousel.scss +++ /dev/null @@ -1,24 +0,0 @@ -.carousel-control{ -// width: 8%; - &.left, - &.right{ - background-image: none; - } - .fa{ - font-size: 35px; - } - .fa, - .icon-prev, - .icon-next{ - display: inline-block; - position: absolute; - top: 50%; - z-index: 5; - margin-top: -17px; - margin-left: -9px; - } -} -.carousel-inner > .item { - transition: left 1200ms cubic-bezier(0.455, 0.03, 0.4, 0.955) 0s; - -webkit-transition: left 1200ms cubic-bezier(0.455, 0.03, 0.4, 0.955) 0s; -} \ No newline at end of file diff --git a/src/public/css/themes/gsdk/gsdk/_collapse.scss b/src/public/css/themes/gsdk/gsdk/_collapse.scss deleted file mode 100644 index a849227..0000000 --- a/src/public/css/themes/gsdk/gsdk/_collapse.scss +++ /dev/null @@ -1,34 +0,0 @@ -.panel-group{ - .panel { - border: 0; - border-bottom: 1px solid $medium-gray; - box-shadow: none; - } - .panel-default > .panel-heading { - background-color: $white-color; - border-color: $white-color; - } - .panel{ - border-radius: 0; - } - .panel-title{ - font-size: $font-size-h5; - } - .panel-title a:hover, .panel-title a:focus{ - text-decoration: none; - } - .gsdk-collapse{ - display: block; - height: 0px; - visibility: visible; - overflow: hidden; - transition: all 400ms; - } - .panel-title a:hover, - .panel-title a:focus{ - color: $default-states-color; - } - .panel-default > .panel-heading + .panel-collapse.gsdk-collapse > .panel-body { - box-shadow: inset 0 7px 10px -7px rgba(0,0,0,0.14); - } -} \ No newline at end of file diff --git a/src/public/css/themes/gsdk/gsdk/_dropdown.scss b/src/public/css/themes/gsdk/gsdk/_dropdown.scss deleted file mode 100644 index d9f4784..0000000 --- a/src/public/css/themes/gsdk/gsdk/_dropdown.scss +++ /dev/null @@ -1,51 +0,0 @@ -.dropdown-menu{ - margin: 0; - padding: 0; - border-radius: $border-radius-extreme; - z-index: 9000; - @include box-shadow($dropdown-shadow); - - > li > a { - padding: $padding-base-vertical $padding-base-horizontal; - color: #333333; - } - > li > a:focus{ - outline: 0 !important; - } - - > li:first-child > a{ - border-top-left-radius: $border-radius-extreme; - border-top-right-radius: $border-radius-extreme; - } - - > li:last-child > a{ - border-bottom-left-radius: $border-radius-extreme; - border-bottom-right-radius: $border-radius-extreme; - } - - > li > a:hover, - > li > a:focus { - background-color: $smoke-bg; - color: #333333; - opacity: 1; - text-decoration: none; - } - - > .active > a{ - &, - &:focus, - &:hover{ - background-color: $info-bg; - } - } -} - - -//fix bug for the select items in btn-group -.btn-group.select{ - overflow: hidden; -} -.btn-group.select.open{ - overflow: visible; -} - diff --git a/src/public/css/themes/gsdk/gsdk/_inputs.scss b/src/public/css/themes/gsdk/gsdk/_inputs.scss deleted file mode 100644 index d3c1064..0000000 --- a/src/public/css/themes/gsdk/gsdk/_inputs.scss +++ /dev/null @@ -1,149 +0,0 @@ -.form-control::-moz-placeholder{ - @include placeholder($medium-gray,1); -} -.form-control:-moz-placeholder{ - @include placeholder($medium-gray,1); -} -.form-control::-webkit-input-placeholder{ - @include placeholder($medium-gray,1); -} -.form-control:-ms-input-placeholder{ - @include placeholder($medium-gray,1); -} - - -.form-control { - background-color: $white-bg; - border: 1px solid $medium-gray; - border-radius: $border-radius-base; - color: #444444; - - @include input-size($padding-base-vertical, $padding-base-horizontal, $height-base); - @include box-shadow(none); - - &:focus{ - background-color: $white-bg; - border: 1px solid $dark-gray; - @include box-shadow(none); - outline: 0 !important; - } - - .has-success &, - .has-error &, - .has-success &:focus, - .has-error &:focus{ - border-color: $light-gray; - @include box-shadow(none); - } - - .has-success &{ - color: $success-color; - &:focus{ - border-color: $success-color; - } - } - - .has-error &{ - color: $danger-color; - &:focus{ - border-color: $danger-color; - } - } - - & + .form-control-feedback{ - border-radius: $border-radius-large; - font-size: $font-size-base; - padding: 0 12px 0 0; - position: absolute; - right: 25px; - top: 13px; - vertical-align: middle; - } - - .open > &{ - border-radius: $border-radius-base $border-radius-base 0 0; - border-bottom-color: transparent; - } -} - -.input-lg{ - height: 55px; - padding: $padding-large-vertical $padding-large-horizontal; -} - -.has-error{ - .form-control-feedback{ - color: $danger-color; - } -} -.has-success{ - .form-control-feedback{ - color: $success-color - } -} - - -.input-group-addon { - background-color: $white-color; - border: 1px solid $light-gray; - border-radius: $border-radius-base; - - -webkit-transition: all 300ms linear; - -moz-transition: all 300ms linear; - -o-transition: all 300ms linear; - -ms-transition: all 300ms linear; - transition: all 300ms linear; - - .has-success &, - .has-error &{ - background-color: $white-color; - border: 1px solid $light-gray; - } - .has-error .form-control:focus + &{ - border-color: $danger-color; - color: $danger-color; - } - .has-success .form-control:focus + &{ - border-color: $success-color; - color: $success-color; - } - .form-control:focus + &, - .form-control:focus ~ &{ - background-color: $white-color; - border-color: $dark-gray; - } -} - -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { - border-right: 0 none; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child) { - border-left: 0 none; -} -.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { - background-color: $light-gray; - color: $default-color; - cursor: not-allowed; -} - -.input-group-btn .btn{ - border-width: $border-thin; - padding: $padding-round-vertical $padding-base-horizontal; -} -.input-group-btn .btn-default:not(.btn-fill){ - border-color: $medium-gray; -} - -.input-group-btn:last-child > .btn{ - margin-left: 0; -} - -.input-group-focus .input-group-addon{ - border-color: $dark-gray; -} diff --git a/src/public/css/themes/gsdk/gsdk/_labels-and-progress-bars.scss b/src/public/css/themes/gsdk/gsdk/_labels-and-progress-bars.scss deleted file mode 100644 index f341126..0000000 --- a/src/public/css/themes/gsdk/gsdk/_labels-and-progress-bars.scss +++ /dev/null @@ -1,63 +0,0 @@ -/* Labels & Progress-bar */ -.label{ - padding: 0.2em 0.6em 0.2em; - border: 1px solid #999999; - border-radius: 3px; - color: #999999; - background-color: #FFFFFF; - font-weight: 500; - font-size: 11px; - text-transform: uppercase; - display: inline-block; - margin-bottom: 3px; -} -.label-primary{ - border-color: $primary-color; - color: $primary-color; -} -.label-info{ - border-color: $info-color; - color: $info-color; -} -.label-success{ - border-color: $success-color; - color: $success-color; -} -.label-warning{ - border-color: $warning-color; - color: $warning-color; -} -.label-danger{ - border-color: $danger-color; - color: $danger-color; -} -.label.label-fill{ - color: #FFFFFF; -} -.label-primary.label-fill, .progress-bar, .progress-bar-primary{ - background-color: $primary-color; -} -.label-info.label-fill, .progress-bar-info{ - background-color: $info-color; -} -.label-success.label-fill, .progress-bar-success{ - background-color: $success-color; -} -.label-warning.label-fill, .progress-bar-warning{ - background-color: $warning-color; -} -.label-danger.label-fill, .progress-bar-danger{ - background-color: $danger-color; -} -.label-default.label-fill{ - background-color: #999999; -} -.progress { - background-color: #E5E5E5; - border-radius: 3px; - box-shadow: none; - height: 4px; -} -.progress-thin{ - height: 2px; -} \ No newline at end of file diff --git a/src/public/css/themes/gsdk/gsdk/_misc.scss b/src/public/css/themes/gsdk/gsdk/_misc.scss deleted file mode 100644 index b91afa6..0000000 --- a/src/public/css/themes/gsdk/gsdk/_misc.scss +++ /dev/null @@ -1,106 +0,0 @@ -/* General overwrite */ -body{ - font-family: "Helvetica Neue","Open Sans",Arial,sans-serif; -} -.main{ - background-color: #FFFFFF; - position: relative; -} -a{ - color: $info-color; - - &:hover, &:focus{ - color: $info-states-color; - text-decoration: none; - } -} - -a:focus, a:active, -button::-moz-focus-inner, -input[type="reset"]::-moz-focus-inner, -input[type="button"]::-moz-focus-inner, -input[type="submit"]::-moz-focus-inner, -select::-moz-focus-inner, -input[type="file"] > input[type="button"]::-moz-focus-inner { - outline : 0; -} -.ui-slider-handle:focus, -.navbar-toggle { - outline : 0 !important; -} - -/* Animations */ -.form-control, -.input-group-addon, -.tagsinput, -.navbar, -.navbar .alert{ - @include transition($general-transition-time, linear); -} - -.fa{ - width: 18px; - text-align: center; -} -.margin-top{ - margin-top: 50px; -} - - -/* CT colors */ -.ct-blue, -.ct-blue.checkbox.checked .second-icon, -.ct-blue.checkbox.checked, -.ct-blue.radio.checked .second-icon, -.ct-blue.radio.checked{ - color: $primary-color; -} -.ct-azzure, -.ct-azzure.checkbox.checked .second-icon, -.ct-azzure.radio.checked .second-icon, -.ct-azzure.checkbox.checked, -.ct-azzure.radio.checked{ - color: $info-color; -} -.ct-green, -.ct-green.checkbox.checked .second-icon, -.ct-green.radio.checked .second-icon, -.ct-green.checkbox.checked, -.ct-green.radio.checked{ - color: $success-color; -} -.ct-orange, -.ct-orange.checkbox.checked .second-icon, -.ct-orange.radio.checked .second-icon, -.ct-orange.checkbox.checked, -.ct-orange.radio.checked{ - color: $warning-color; -} -.ct-red, -.ct-red.checkbox.checked .second-icon, -.ct-red.radio.checked .second-icon, -.ct-red.checkbox.checked, -.ct-red.radio.checked{ - color: $danger-color; -} -input.ct-blue + span.switch-left, -input.ct-blue + span + label + span.switch-right{ - background-color: $primary-color; -} -input.ct-azzure + span.switch-left, -input.ct-azure + span + label + span.switch-right{ - background-color: $info-color; -} -input.ct-green + span.switch-left, -input.ct-green + span + label + span.switch-right{ - background-color: $success-color; -} -input.ct-orange + span.switch-left, -input.ct-orange + span + label + span.switch-right{ - background-color: $warning-color; -} -input.ct-red + span.switch-left, -input.ct-red + span + label + span.switch-right{ - background-color: $danger-color; -} - diff --git a/src/public/css/themes/gsdk/gsdk/_mixins.scss b/src/public/css/themes/gsdk/gsdk/_mixins.scss deleted file mode 100644 index 6b20407..0000000 --- a/src/public/css/themes/gsdk/gsdk/_mixins.scss +++ /dev/null @@ -1,13 +0,0 @@ -//Utilities - -@import "mixins/transparency"; -@import "mixins/vendor-prefixes"; - -//Components - -@import "mixins/buttons"; -@import "mixins/inputs"; -@import "mixins/labels"; -@import "mixins/tabs"; -@import "mixins/navbars"; - diff --git a/src/public/css/themes/gsdk/gsdk/_modal.scss b/src/public/css/themes/gsdk/gsdk/_modal.scss deleted file mode 100644 index df98642..0000000 --- a/src/public/css/themes/gsdk/gsdk/_modal.scss +++ /dev/null @@ -1,53 +0,0 @@ -.modal-header { - border: 0 none; -} -.modal-content { - border: 0 none; - border-radius: 10px; - box-shadow: 0 0 15px rgba(0, 0, 0, 0.15), 0 0 1px 1px rgba(0, 0, 0, 0.1); -} -.modal-dialog { - padding-top: 60px; -} -.modal-footer { - border-top: 0 none; - padding: 5px 10px; - text-align: right; - .btn{ - font-size: 16px; - } - .btn-default.btn-simple{ - font-weight: 400; - } - .divider { - background-color: #DDDDDD; - display: inline-block; - float: inherit; - height: 26px; - margin: 8px -3px; - position: absolute; - width: 1px; - } - - -} -.modal-footer .modal-footer -.modal.fade .modal-dialog { - transform: none; - -webkit-transform: none; - -moz-transform: none; -} -.modal.in { -// opacity: 0.25; - .modal-dialog { - transform: none; - -webkit-transform: none; - -moz-transform: none; - } -} - -.modal-footer -.modal.fade .modal-dialog { - transform: none; -} - diff --git a/src/public/css/themes/gsdk/gsdk/_navbars.scss b/src/public/css/themes/gsdk/gsdk/_navbars.scss deleted file mode 100644 index 0d24e21..0000000 --- a/src/public/css/themes/gsdk/gsdk/_navbars.scss +++ /dev/null @@ -1,274 +0,0 @@ -.nav { - > li{ - > a:hover, - > a:focus{ - background-color: transparent; - } - } -} -.navbar{ - border: $none; - font-size: $font-size-navbar; - transition: all 0.4s; - -webkit-transition: all 0.4s; - - .navbar-brand { - font-weight: $font-weight-bold; - margin: $navbar-margin-brand; - padding: $navbar-padding-brand; - font-size: $font-size-large-navbar; - } - .navbar-nav{ - > li > a { - padding: $navbar-padding-a; - margin: $navbar-margin-a; - } - > li > a.btn{ - margin: $navbar-margin-a-btn; - padding: $padding-base-vertical $padding-base-horizontal; - } - > li > a.btn-round{ - margin: $navbar-margin-a-btn-round; - } - > li > a [class^="fa"]{ - font-size: $font-size-large + 1; - position: relative; - top: 1px; - } - } - .btn{ - margin: $navbar-margin-btn; - font-size: $font-size-base; - } - .btn-simple{ - font-size: $font-size-medium; - } - .caret{ - // @include center-item(); - } - - -} - -.navbar-nav > li > .dropdown-menu{ - border-radius: $border-radius-extreme; - margin-top: -5px; -} - -.navbar-transparent, [class*="navbar-ct"]{ - .navbar-brand{ - color: $white-color; - @include opacity(.9); - - &:focus, - &:hover{ - background-color: transparent; - color: $white-color; - @include opacity(1); - } - } - - .navbar-nav{ - > li > a:not(.btn), - > li > a.btn-default{ - color: $white-color; - border-color: $white-color; - @include opacity(0.8); - } - - > li > a.btn-default:hover, - > li > a.btn-default:focus{ - border-color: $white-color; - @include opacity(1); - } - - > .active > a:not(.btn), - > .active > a:hover:not(.btn), - > .active > a:focus:not(.btn), - > li > a:hover:not(.btn), - > li > a:focus:not(.btn){ - background-color: transparent; - border-radius: 3px; - color: $white-color; - @include opacity(1); - } - .nav > li > a.btn:hover{ - background-color: transparent; - } - - > .dropdown > a .caret, - > .dropdown > a:hover .caret, - > .dropdown > a:focus .caret{ - border-bottom-color: $white-color; - border-top-color: $white-color; - } - - > .open > a, - > .open > a:hover, - > .open > a:focus { - background-color: transparent; - color: $white-color; - @include opacity(1); - } - } - - .btn-default{ - color: $white-color; - border-color: $white-color; - } - .btn-default.btn-fill{ - color: $dark-gray; - background-color: $white-color; - @include opacity(.9); - } - .btn-default.btn-fill:hover, - .btn-default.btn-fill:focus, - .btn-default.btn-fill:active, - .btn-default.btn-fill.active, - .open .dropdown-toggle.btn-fill.btn-default{ - border-color: $white-color; - @include opacity(1); - } - - .navbar-toggle .icon-bar{ - background-color: $white-color !important; - } -} - -.navbar-toggle:hover, -.navbar-toggle:focus { - background-color: transparent; -} - -/* -.navbar-transparent{ - .dropdown-menu .divider{ - background-color: rgba($white-color,.2); - } -} -*/ - -.navbar-inverse{ - .navbar-toggle:hover, - .navbar-toggle:focus { - background-color: transparent; - } - .navbar-nav > .open > a{ - &, - &:focus, - &:hover{ - background-color: transparent; - } - } -} - -.nav-open .nav .caret{ - border-bottom-color: $white-color; - border-top-color: $white-color; -} - -.navbar-default { - background-color: $white-navbar; - border-bottom: 1px solid rgba(0, 0, 0, 0.1); - - .navbar-nav{ - > .active > a, - > .active > a:not(.btn):hover, - > .active > a:not(.btn):focus, - > li > a:not(.btn):hover, - > li > a:not(.btn):focus { - background-color: transparent; - border-radius: 3px; - color: $info-color; - @include opacity(1); - } - - > .dropdown > a:hover .caret, - > .dropdown > a:focus .caret { - border-bottom-color: $info-color; - border-top-color: $info-color; - - } - - > .open > a, - > .open > a:hover, - > .open > a:focus{ - background-color: transparent; - color: $info-color; - } - - .navbar-toggle:hover,.navbar-toggle:focus { - background-color: transparent; - } - - } - - &:not(.navbar-transparent) .btn-default:hover{ - color: $info-color; - border-color: $info-color; - } - &:not(.navbar-transparent) .btn-neutral, - &:not(.navbar-transparent) .btn-neutral:hover, - &:not(.navbar-transparent) .btn-neutral:active{ - color: $dark-gray; - } - - .navbar-toggle:hover, - .navbar-toggle:focus { - background-color: transparent; - } -} - -.navbar-form{ - @include box-shadow(none); - .form-control{ - @include light-form(); - height: 22px; - font-size: $font-size-navbar; - line-height: $line-height-general; - color: $light-gray; - } - .navbar-transparent & .form-control, - [class*="navbar-ct"] & .form-control{ - color: $white-color; - border: $none; - border-bottom: 1px solid rgba($white-color,.6); - } - -} - -.navbar-ct-blue{ - @include navbar-color($blue-navbar); -} -.navbar-ct-azzure{ - @include navbar-color($azure-navbar); -} -.navbar-ct-green{ - @include navbar-color($green-navbar); -} -.navbar-ct-orange{ - @include navbar-color($orange-navbar); -} -.navbar-ct-red{ - @include navbar-color($red-navbar); -} - -.navbar-transparent{ - padding-top: 15px; - background-color: transparent; - border-bottom: 1px solid transparent; -} - -.navbar-toggle{ - margin-top: 19px; - margin-bottom: 19px; - border: $none; - - .icon-bar { - background-color: $white-color; - } - .navbar-collapse, - .navbar-form { - border-color: transparent; - } -} \ No newline at end of file diff --git a/src/public/css/themes/gsdk/gsdk/_responsive.scss b/src/public/css/themes/gsdk/gsdk/_responsive.scss deleted file mode 100644 index 1b77db0..0000000 --- a/src/public/css/themes/gsdk/gsdk/_responsive.scss +++ /dev/null @@ -1,257 +0,0 @@ - -@media (min-width: 768px){ - .navbar-form { - margin-top: 21px; - margin-bottom: 21px; - padding-left: 5px; - padding-right: 5px; - } - .navbar-search-form{ - display: none; - } - .navbar-nav > li > .dropdown-menu, - .dropdown .dropdown-menu{ - @include transform-scale(0); - @include transition($slow-transition-time, $transition-bezier); - @include opacity(0); - visibility: hidden; - display: block; - } - .navbar-nav > li.open > .dropdown-menu, - .dropdown.open .dropdown-menu{ - @include transform-scale(1); - @include transform-origin($dropdown-coordinates); - @include opacity(1); - visibility: visible; - } - - .navbar-nav > li > .dropdown-menu:before{ - border-bottom: 11px solid rgba(0, 0, 0, 0.2); - border-left: 11px solid rgba(0, 0, 0, 0); - border-right: 11px solid rgba(0, 0, 0, 0); - content: ""; - display: inline-block; - position: absolute; - left: 12px; - top: -11px; - } - .navbar-nav > li > .dropdown-menu:after { - border-bottom: 11px solid #FFFFFF; - border-left: 11px solid rgba(0, 0, 0, 0); - border-right: 11px solid rgba(0, 0, 0, 0); - content: ""; - display: inline-block; - position: absolute; - left: 12px; - top: -10px; - } - - .navbar-nav.navbar-right > li > .dropdown-menu:before{ - left: auto; - right: 12px; - } - - .navbar-nav.navbar-right > li > .dropdown-menu:after{ - left: auto; - right: 12px; - } - - .footer:not(.footer-big){ - nav > ul{ - li:first-child{ - margin-left: 0; - } - } - } - - .nav-open .navbar-collapse{ - @include transform-translate-x(0px); - } - .nav-open .navbar .container{ - @include transform-translate-x(-200px); - } - - .navbar-burger{ - .container{ - padding: 0 15px; - } - .navbar-header{ - width: 100%; - } - .navbar-toggle{ - display: block; - margin-right: 0; - } - - &.navbar .navbar-collapse.collapse, - &.navbar .navbar-collapse.collapse.in, - &.navbar .navbar-collapse.collapsing{ - display: none !important; - } - } -} - -/* Changes for small display */ - -@media (max-width: 767px){ - .navbar-transparent{ - padding-top: 0px; - background-color: rgba(0, 0, 0, 0.45); - } - - .body-click { - right: 230px; - } - - body{ - position: relative; - - & > .navbar-collapse { - width: 230px; - @include transform-translate-x(230px); - } - } - - .navbar{ - .container{ - width: 100%; - position: relative; - @include transform-translate-x(0px); - @include transition (0.50s, cubic-bezier(0.685, 0.0473, 0.346, 1)); - - .nav-open &{ - @include transform-translate-x(-230px); - } - } - - .navbar-collapse.collapse, - .navbar .navbar-collapse.collapse.in, - .navbar .navbar-collapse.collapsing{ - display: none !important; - } - } - - .nav-open .navbar-collapse{ - @include transform-translate-x(0px); - } - - .navbar-toggle .icon-bar{ - display: block; - position: relative; - background: $white-color; - width: 24px; - height: 2px; - border-radius: 1px; - margin: 0 auto; - } - - .navbar-default .navbar-toggle .icon-bar{ - background-color: $default-color; - } - - .navbar-header .navbar-toggle { - margin-top: 17px; - margin-bottom: 17px; - width: 40px; - height: 40px; - } - .bar1, - .bar2, - .bar3 { - outline: 1px solid transparent; - } - .bar1 { - top: 0px; - @include bar-animation($topbar-back); - } - .bar2 { - opacity: 1; - } - .bar3 { - bottom: 0px; - @include bar-animation($bottombar-back); - } - .toggled .bar1 { - top: 6px; - @include bar-animation($topbar-x); - } - .toggled .bar2 { - opacity: 0; - } - .toggled .bar3 { - bottom: 6px; - @include bar-animation($bottombar-x); - } - - @include topbar-x-rotation(); - @include topbar-back-rotation(); - @include bottombar-x-rotation(); - @include bottombar-back-rotation(); - - @-webkit-keyframes fadeIn { - 0% {opacity: 0;} - 100% {opacity: 1;} - } - @-moz-keyframes fadeIn { - 0% {opacity: 0;} - 100% {opacity: 1;} - } - @keyframes fadeIn { - 0% {opacity: 0;} - 100% {opacity: 1;} - } - - [class*="navbar-"] .navbar-nav { - & > li > a, - > li > a:hover, - > li > a:focus, - .active > a, - .active > a:hover, - .active > a:focus, - .open .dropdown-menu > li > a, - .open .dropdown-menu > li > a:hover, - .open .dropdown-menu > li > a:focus, - .navbar-nav .open .dropdown-menu > li > a:active { -// color: white; - } - - & > li > a, - > li > a:hover, - > li > a:focus, - .open .dropdown-menu > li > a, - .open .dropdown-menu > li > a:hover, - .open .dropdown-menu > li > a:focus{ - opacity: .7; - background: transparent; - } - - &.navbar-nav .open .dropdown-menu > li > a:active { - opacity: 1; - } - - & .dropdown > a{ - &:hover .caret { - border-bottom-color: #777; - border-top-color: #777; - } - &:active .caret { - border-bottom-color: white; - border-top-color: white; - } - } - } - .dropdown-menu { - display: none; - } - .navbar-fixed-top { - -webkit-backface-visibility: hidden; - } - .navbar-toggle:hover, - .navbar-toggle:focus { - background-color: transparent !important; - } - .btn.dropdown-toggle{ - margin-bottom: 0; - } - -} diff --git a/src/public/css/themes/gsdk/gsdk/_sliders.scss b/src/public/css/themes/gsdk/gsdk/_sliders.scss deleted file mode 100644 index 51df094..0000000 --- a/src/public/css/themes/gsdk/gsdk/_sliders.scss +++ /dev/null @@ -1,218 +0,0 @@ - -/*! - * jQuery UI Slider 1.10.4 - * http://jqueryui.com - * - * Copyright 2014 jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/slider/#theming - */ -.ui-slider { - position: relative; - text-align: left; -} -.ui-slider .ui-slider-handle { - position: absolute; - z-index: 2; - width: 1.2em; - height: 1.2em; - cursor: default; -} -.ui-slider .ui-slider-range { - position: absolute; - z-index: 1; - font-size: .7em; - display: block; - border: 0; - background-position: 0 0; -} - -/* For IE8 - See #6727 */ -.ui-slider.ui-state-disabled .ui-slider-handle, -.ui-slider.ui-state-disabled .ui-slider-range { - filter: inherit; -} - -.ui-slider-horizontal { - height: 4px; -} -.ui-slider-horizontal .ui-slider-handle { - margin-left: -10px; - top: -7px; -} -.ui-slider-horizontal .ui-slider-range { - top: 0; - height: 100%; -} -.ui-slider-horizontal .ui-slider-range-min { - left: 0; -} -.ui-slider-horizontal .ui-slider-range-max { - right: 0; -} - -.ui-slider-vertical { - width: .8em; - height: 100px; -} -.ui-slider-vertical .ui-slider-handle { - left: -.3em; - margin-left: 0; - margin-bottom: -.6em; -} -.ui-slider-vertical .ui-slider-range { - left: 0; - width: 100%; -} -.ui-slider-vertical .ui-slider-range-min { - bottom: 0; -} -.ui-slider-vertical .ui-slider-range-max { - top: 0; -} - -/* Component containers -----------------------------------*/ -.ui-widget { - font-size: 1.1em/*{fsDefault}*/; -} -.ui-widget .ui-widget { - font-size: 1em; -} -.ui-widget input, -.ui-widget select, -.ui-widget textarea, -.ui-widget button { - font-size: 1em; -} -.ui-widget-content { - background-color: #E5E5E5; -} -.ui-widget-content a { - color: #222222/*{fcContent}*/; -} -.ui-widget-header { - background: #999999; - color: #222222; - font-weight: bold; -} -.ui-widget-header a { - color: #222222; -} - -.slider-primary .ui-widget-header{ - background-color: #3472F7; -} -.slider-info .ui-widget-header{ - background-color: #2C93FF; -} -.slider-success .ui-widget-header{ - background-color: #05AE0E; -} -.slider-warning .ui-widget-header{ - background-color: #FF9500; -} -.slider-danger .ui-widget-header{ - background-color: #FF3B30; -} - -/* Interaction states -----------------------------------*/ -.ui-state-default, -.ui-widget-content .ui-state-default, -.ui-widget-header .ui-state-default { - background: rgb(255,255,255); /* Old browsers */ - background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(241,241,242,1) 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(241,241,242,1))); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(241,241,242,1) 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(241,241,242,1) 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(241,241,242,1) 100%); /* IE10+ */ - background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(241,241,242,1) 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f1f1f2',GradientType=0 ); /* IE6-9 */ - - border-radius: 50%; - box-shadow: 0 1px 1px #FFFFFF inset, 0 1px 2px rgba(0, 0, 0, 0.4); - height:15px; - width:15px; - cursor:pointer; -} -.ui-state-default a, -.ui-state-default a:link, -.ui-state-default a:visited { - color: #555555/*{fcDefault}*/; - text-decoration: none; -} - -.ui-state-hover a, -.ui-state-hover a:hover, -.ui-state-hover a:link, -.ui-state-hover a:visited, -.ui-state-focus a, -.ui-state-focus a:hover, -.ui-state-focus a:link, -.ui-state-focus a:visited { - color: #212121/*{fcHover}*/; - text-decoration: none; -} -.ui-state-active a, -.ui-state-active a:link, -.ui-state-active a:visited { - color: #212121/*{fcActive}*/; - text-decoration: none; -} - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, -.ui-widget-content .ui-state-highlight, -.ui-widget-header .ui-state-highlight { - border: 1px solid #fcefa1; - background: #fbf9ee; - color: #363636; -} -.ui-state-highlight a, -.ui-widget-content .ui-state-highlight a, -.ui-widget-header .ui-state-highlight a { - color: #363636; -} -.ui-state-error, -.ui-widget-content .ui-state-error, -.ui-widget-header .ui-state-error { - border: 1px solid $danger-color/*{borderColorError}*/; - background-color: $danger-color; - color: $danger-color/*{fcError}*/; -} -.ui-state-error a, -.ui-widget-content .ui-state-error a, -.ui-widget-header .ui-state-error a { - color: $danger-color/*{fcError}*/; -} -.ui-state-error-text, -.ui-widget-content .ui-state-error-text, -.ui-widget-header .ui-state-error-text { - color: $danger-color/*{fcError}*/; -} -.ui-priority-primary, -.ui-widget-content .ui-priority-primary, -.ui-widget-header .ui-priority-primary { - font-weight: bold; -} -.ui-priority-secondary, -.ui-widget-content .ui-priority-secondary, -.ui-widget-header .ui-priority-secondary { - opacity: .7; - filter:Alpha(Opacity=70); - font-weight: normal; -} -.ui-state-disabled, -.ui-widget-content .ui-state-disabled, -.ui-widget-header .ui-state-disabled { - opacity: .35; - filter:Alpha(Opacity=35); - background-image: none; -} -.ui-state-disabled .ui-icon { - filter:Alpha(Opacity=35); /* For IE8 - See #6059 */ -} \ No newline at end of file diff --git a/src/public/css/themes/gsdk/gsdk/_social-buttons.scss b/src/public/css/themes/gsdk/gsdk/_social-buttons.scss deleted file mode 100644 index 6cb22e9..0000000 --- a/src/public/css/themes/gsdk/gsdk/_social-buttons.scss +++ /dev/null @@ -1,93 +0,0 @@ -.btn-social { - opacity: 0.85; - padding: 8px 9px; - - .fa { - font-size: 18px; - vertical-align: middle; - display: inline-block; - } - - &.btn-round { - padding: 9px 10px; - } - - &.btn-simple { - padding: 9px 5px; - font-size: 16px; - - .fa{ - font-size: 20px; - position: relative; - top: -2px; - width: 24px; - } - } - -} - -@mixin btn-social($color){ - - color: $white-color; - background-color: $color; - border-color: $color; - opacity: 0.9; - - &:hover, - &:focus, - &:active, - &.active, - .open > &.dropdown-toggle{ - background-color: $color; - border-color: $color; - color: $white-color; - opacity: 1; - } - - &.btn-border{ - border-color: $color; - color: $color; - - &:hover, - &:focus, - &:active, - &.active, - .open > &.dropdown-toggle { - background-color: $transparent-bg; - color: $color; - border-color: $color; - opacity: 1; - } - - &:disabled, - &[disabled], - &.disabled { - background-color: $transparent-bg; - border-color: $color; - } - } - - -} - -.btn-adn { @include btn-social(#d87a68); } -.btn-bitbucket { @include btn-social(#205081); } -.btn-dropbox { @include btn-social(#1087dd); } -.btn-facebook { @include btn-social(#3b5998); } -.btn-flickr { @include btn-social(#ff0084); } -.btn-foursquare { @include btn-social(#f94877); } -.btn-github { @include btn-social(#444444); } -.btn-google { @include btn-social(#dd4b39); } -.btn-instagram { @include btn-social(#3f729b); } -.btn-linkedin { @include btn-social(#007bb6); } -.btn-microsoft { @include btn-social(#2672ec); } -.btn-odnoklassniki { @include btn-social(#f4731c); } -.btn-openid { @include btn-social(#f7931e); } -.btn-pinterest { @include btn-social(#cb2027); } -.btn-reddit { @include btn-social(#eff7ff); } -.btn-soundcloud { @include btn-social(#ff5500); } -.btn-tumblr { @include btn-social(#2c4762); } -.btn-twitter { @include btn-social(#55acee); } -.btn-vimeo { @include btn-social(#1ab7ea); } -.btn-vk { @include btn-social(#587ea3); } -.btn-yahoo { @include btn-social(#720e9e); } \ No newline at end of file diff --git a/src/public/css/themes/gsdk/gsdk/_tabs-navs-pagination.scss b/src/public/css/themes/gsdk/gsdk/_tabs-navs-pagination.scss deleted file mode 100644 index a28d371..0000000 --- a/src/public/css/themes/gsdk/gsdk/_tabs-navs-pagination.scss +++ /dev/null @@ -1,122 +0,0 @@ -/* Navigation menu */ -.nav-pills { - > li + li { - margin-left: 0; - } - > li > a { - border: 1px solid $info-color; - border-radius: 0; - color: $info-color; - margin-left: -1px; - - &:hover, - &:focus{ - background-color: #F5F5F5; - } - } - > li.active > a, - > li.active > a:hover, - > li.active > a:focus { - background-color: $info-color; - color: #FFFFFF !important; - } - > li:first-child > a{ - border-radius: $border-radius-base 0 0 $border-radius-base; - margin: 0; - } - > li:last-child > a{ - border-radius: 0 $border-radius-base $border-radius-base 0; - } -} - -// style for pagination -.pagination.pagination-no-border > li > a, -.pagination.pagination-no-border > li > span{ - border: 0; -} -.pagination > li > a, .pagination > li > span, .pagination > li:first-child > a, .pagination > li:first-child > span, .pagination > li:last-child > a, .pagination > li:last-child > span{ - border-radius: 50%; - margin: 0 2px; - color: $default-states-color; -} -.pagination > li.active > a, .pagination > li.active > span, .pagination > li.active > a:hover, .pagination > li.active > span:hover, .pagination > li.active > a:focus, .pagination > li.active > span:focus { - background-color: $info-color; - border: 0; - color: #FFFFFF; - padding: 7px 13px; -} - -.nav-pills.ct-blue > li.active > a, -.nav-pills.ct-blue > li.active > a:hover, -.nav-pills.ct-blue > li.active > a:focus, -.pagination.ct-blue > li.active > a, -.pagination.ct-blue > li.active > span, -.pagination.ct-blue > li.active > a:hover, -.pagination.ct-blue > li.active > span:hover, -.pagination.ct-blue > li.active > a:focus, -.pagination.ct-blue > li.active > span:focus{ - background-color: $primary-color; -} - -.nav-pills.ct-azzure > li.active > a, -.nav-pills.ct-azzure > li.active > a:hover, -.nav-pills.ct-azzure > li.active > a:focus, -.pagination.ct-azzure > li.active > a, -.pagination.ct-azzure > li.active > span, -.pagination.ct-azzure > li.active > a:hover, -.pagination.ct-azzure > li.active > span:hover, -.pagination.ct-azzure > li.active > a:focus, -.pagination.ct-azzure > li.active > span:focus{ - background-color: $info-color; -} - -.nav-pills.ct-green > li.active > a, -.nav-pills.ct-green > li.active > a:hover, -.nav-pills.ct-green > li.active > a:focus, -.pagination.ct-green > li.active > a, -.pagination.ct-green > li.active > span, -.pagination.ct-green > li.active > a:hover, -.pagination.ct-green > li.active > span:hover, -.pagination.ct-green > li.active > a:focus, -.pagination.ct-green > li.active > span:focus{ - background-color: $success-color; -} - -.nav-pills.ct-orange > li.active > a, -.nav-pills.ct-orange > li.active > a:hover, -.nav-pills.ct-orange > li.active > a:focus, -.pagination.ct-orange > li.active > a, -.pagination.ct-orange > li.active > span, -.pagination.ct-orange > li.active > a:hover, -.pagination.ct-orange > li.active > span:hover, -.pagination.ct-orange > li.active > a:focus, -.pagination.ct-orange > li.active > span:focus{ - background-color: $warning-color; -} - -.nav-pills.ct-red > li.active > a, -.nav-pills.ct-red > li.active > a:hover, -.nav-pills.ct-red > li.active > a:focus, -.pagination.ct-red > li.active > a, -.pagination.ct-red > li.active > span, -.pagination.ct-red > li.active > a:hover, -.pagination.ct-red > li.active > span:hover, -.pagination.ct-red > li.active > a:focus, -.pagination.ct-red > li.active > span:focus{ - background-color: $danger-color; -} -.nav-pills.ct-blue > li > a { - @include pill-style($primary-color); -} -.nav-pills.ct-azzure > li > a { - @include pill-style($info-color); -} -.nav-pills.ct-green > li > a { - @include pill-style($success-color); -} -.nav-pills.ct-orange > li > a { - @include pill-style($warning-color); -} -.nav-pills.ct-red > li > a { - @include pill-style($danger-color); -} \ No newline at end of file diff --git a/src/public/css/themes/gsdk/gsdk/_tooltips.scss b/src/public/css/themes/gsdk/gsdk/_tooltips.scss deleted file mode 100644 index 9aaf018..0000000 --- a/src/public/css/themes/gsdk/gsdk/_tooltips.scss +++ /dev/null @@ -1,107 +0,0 @@ -.tooltip { - font-size: $font-size-base; - font-weight: $font-weight-bold; - - &.top { - margin-top: -11px; - padding: 0; - } - &.top .tooltip-inner:after { - border-top: 11px solid #FAE6A4; - border-left: 11px solid rgba(0, 0, 0, 0); - border-right: 11px solid rgba(0, 0, 0, 0); - bottom: -10px; - } - &.top .tooltip-inner:before { - border-top: 11px solid rgba(0, 0, 0, 0.2); - border-left: 11px solid rgba(0, 0, 0, 0); - border-right: 11px solid rgba(0, 0, 0, 0); - bottom: -11px; - } - &.bottom { - margin-top: 11px; - padding: 0; - } - &.bottom .tooltip-inner:after { - border-bottom: 11px solid #FAE6A4; - border-left: 11px solid rgba(0, 0, 0, 0); - border-right: 11px solid rgba(0, 0, 0, 0); - top: -10px; - } - &.bottom .tooltip-inner:before { - border-bottom: 11px solid rgba(0, 0, 0, 0.2); - border-left: 11px solid rgba(0, 0, 0, 0); - border-right: 11px solid rgba(0, 0, 0, 0); - top: -11px; - } - &.left{ - margin-left: -11px; - padding: 0; - } - &.left .tooltip-inner:after { - border-left: 11px solid #FAE6A4; - border-top: 11px solid rgba(0, 0, 0, 0); - border-bottom: 11px solid rgba(0, 0, 0, 0); - right: -10px; - left: auto; - margin-left: 0; - } - &.left .tooltip-inner:before { - border-left: 11px solid rgba(0, 0, 0, 0.2); - border-top: 11px solid rgba(0, 0, 0, 0); - border-bottom: 11px solid rgba(0, 0, 0, 0); - right: -11px; - left: auto; - margin-left: 0; - } - &.right{ - margin-left: 11px; - padding: 0; - } - &.right .tooltip-inner:after { - border-right: 11px solid #FAE6A4; - border-top: 11px solid rgba(0, 0, 0, 0); - border-bottom: 11px solid rgba(0, 0, 0, 0); - left: -10px; - top: 0; - margin-left: 0; - } - &.right .tooltip-inner:before { - border-right: 11px solid rgba(0, 0, 0, 0.2); - border-top: 11px solid rgba(0, 0, 0, 0); - border-bottom: 11px solid rgba(0, 0, 0, 0); - left: -11px; - top: 0; - margin-left: 0; - } -} - -.tooltip-arrow{ - display: none; - opacity: 0; -} -.tooltip-inner { - background-color: #FAE6A4; - border-radius: 4px; - box-shadow: 0 1px 13px rgba(0, 0, 0, 0.14), 0 0 0 1px rgba(115, 71, 38, 0.23); - color: #734726; - max-width: 260px; - min-width: 86px; - padding: 6px 10px; - text-align: center; - text-decoration: none; -} -.tooltip-inner:after { - content: ""; - display: inline-block; - left: 100%; - margin-left: -60%; - position: absolute; -} -.tooltip-inner:before { - content: ""; - display: inline-block; - left: 100%; - margin-left: -60%; - position: absolute; -} \ No newline at end of file diff --git a/src/public/css/themes/gsdk/gsdk/_typography.scss b/src/public/css/themes/gsdk/gsdk/_typography.scss deleted file mode 100644 index ceff1cc..0000000 --- a/src/public/css/themes/gsdk/gsdk/_typography.scss +++ /dev/null @@ -1,73 +0,0 @@ -/* Font Smoothing */ - -h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6, p, .navbar, .brand, .btn-simple, a, .td-name, td{ - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-family: "Helvetica Neue","Open Sans",Arial,sans-serif; -} - -h1, .h1, h2, .h2, h3, .h3, h4, .h4{ - font-weight: $font-weight-normal; - margin: $margin-large-vertical 0 $margin-base-vertical; -} - -h1, .h1 { - font-size: $font-size-h1; -} -h2, .h2{ - font-size: $font-size-h2; -} -h3, .h3{ - font-size: $font-size-h3; - margin: 20px 0 10px; -} -h4, .h4{ - font-size: $font-size-h4; - line-height: 30px; -} -h5, .h5 { - font-size: $font-size-h5; - margin-bottom: 15px; -} -h6, .h6{ - font-size: $font-size-h6; - font-weight: $font-weight-bold; - text-transform: uppercase; -} -p{ - font-size: $font-paragraph; - line-height: $line-height-general; -} - -h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small { - color: $dark-gray; - font-weight: $font-weight-light; - line-height: $line-height-general; -} - -h1 small, h2 small, h3 small, h1 .small, h2 .small, h3 .small { - font-size: 60%; -} - -h1 .subtitle{ - display: block; - font-family: 'Grand Hotel',cursive; - margin: 0 0 $margin-large-vertical; -} - -.text-primary, .text-primary:hover{ - color: $primary-color !important; -} -.text-info, .text-info:hover{ - color: $info-color !important; -} -.text-success, .text-success:hover{ - color: $success-color !important; -} -.text-warning, .text-warning:hover{ - color: $warning-color !important; -} -.text-danger, .text-danger:hover{ - color: $danger-color !important; -} - diff --git a/src/public/css/themes/gsdk/gsdk/_variables.scss b/src/public/css/themes/gsdk/gsdk/_variables.scss deleted file mode 100644 index 1d4f527..0000000 --- a/src/public/css/themes/gsdk/gsdk/_variables.scss +++ /dev/null @@ -1,195 +0,0 @@ -//== Buttons -// -//## For each of Bootstrap's buttons, define text, background and border color. - -$none: 0 !default; -$border-thin: 1px !default; -$border-thick: 2px !default; - -$white-color: #FFFFFF !default; -$white-bg: #FFFFFF !default; - -$smoke-bg: #F5F5F5 !default; - -$black-bg: rgba(30,30,30,.97) !default; - -$black-color: #333333 !default; -$black-hr: #444444 !default; - -$light-gray: #E3E3E3 !default; -$medium-gray: #DDDDDD !default; -$dark-gray: #9A9A9A !default; - -$transparent-bg: transparent !default; - -$default-color: #888888 !default; -$default-bg: #888888 !default; -$default-states-color: #777777 !default; - -$primary-color: #3472F7 !default; -$primary-bg: #3472F7 !default; -$primary-states-color: #1D62F0 !default; - -$success-color: #05AE0E !default; -$success-bg: #05AE0E !default; -$success-states-color: #049F0C !default; - -$info-color: #2CA8FF !default; -$info-bg: #2CA8FF !default; -$info-states-color: #109CFF !default; - -$warning-color: #FF9500 !default; -$warning-bg: #FF9500 !default; -$warning-states-color: #ED8D00 !default; - - -$danger-color: #FF3B30 !default; -$danger-bg: #FF3B30 !default; -$danger-states-color: #EE2D20 !default; - - - -$link-disabled-color: #666666 !default; - - -/* light colors */ -$light-blue: rgba($primary-color, .2); -$light-azure: rgba($info-color, .2); -$light-green: rgba($success-color, .2); -$light-orange: rgba($warning-color, .2); -$light-red: rgba($danger-color, .2); - - -//== Components -// - -$padding-base-vertical: 8px !default; -$padding-base-horizontal: 16px !default; - -$padding-round-vertical: 9px !default; -$padding-round-horizontal: 18px !default; - -$padding-simple-vertical: 10px !default; -$padding-simple-horizontal: 18px !default; - -$padding-large-vertical: 14px !default; -$padding-large-horizontal: 30px !default; - -$padding-small-vertical: 5px !default; -$padding-small-horizontal: 10px !default; - -$padding-xs-vertical: 1px !default; -$padding-xs-horizontal: 5px !default; - -$padding-label-vertical: 2px !default; -$padding-label-horizontal: 12px !default; - -$margin-large-vertical: 30px !default; -$margin-base-vertical: 15px !default; - -$margin-bottom: 0 0 10px 0 !default; -$border-radius-small: 3px !default; -$border-radius-base: 4px !default; -$border-radius-large: 6px !default; -$border-radius-extreme: 10px !default; - -$border-radius-large-top: $border-radius-large $border-radius-large 0 0 !default; -$border-radius-large-bottom: 0 0 $border-radius-large $border-radius-large !default; - -$btn-round-radius: 30px !default; - -$height-base: 40px !default; - -$font-size-base: 14px !default; -$font-size-small: 12px !default; -$font-size-medium: 16px !default; -$font-size-large: 18px !default; -$font-size-large-navbar: 20px !default; - -$font-size-h1: 52px !default; -$font-size-h2: 36px !default; -$font-size-h3: 28px !default; -$font-size-h4: 22px !default; -$font-size-h5: 18px !default; -$font-size-h6: 14px !default; -$font-paragraph: 16px !default; -$font-size-navbar: 16px !default; -$font-size-small: 12px !default; - -$font-weight-light: 300 !default; -$font-weight-normal: 400 !default; -$font-weight-semi: 500 !default; -$font-weight-bold: 600 !default; - -$line-height-general: 1.5 !default; -$line-height: 20px !default; -$line-height-lg: 54px !default; - - -$border-radius-top: 10px 10px 0 0 !default; -$border-radius-bottom: 0 0 10px 10px !default; - -$dropdown-shadow: 1px 2px 3px rgba(0, 0, 0, 0.125); - -$general-transition-time: 300ms !default; - -$slow-transition-time: 370ms !default; -$dropdown-coordinates: 29px -50px !default; - -$fast-transition-time: 150ms !default; -$select-coordinates: 50% -40px !default; - -$transition-linear: linear !default; -$transition-bezier: cubic-bezier(0.34, 1.61, 0.7, 1) !default; -$transition-ease: ease 0s; - -$navbar-padding-a: 10px 15px; -$navbar-margin-a: 15px 3px; - -$padding-social-a: 10px 5px; - -$navbar-margin-a-btn: 15px 3px; -$navbar-margin-a-btn-round: 16px 3px; - -$navbar-padding-a-icons: 6px 15px; -$navbar-margin-a-icons: 6px 3px; - -$navbar-padding-brand: 20px 15px; -$navbar-margin-brand: 5px 0px; - -$navbar-margin-brand-icons: 12px auto; - -$navbar-margin-btn: 15px 3px; - - - -$height-icon-sm: 32px; -$width-icon-sm: 32px; -$padding-icon-sm: 4px; -$border-radius-icon-sm: 7px; - -$height-icon-message: 40px; -$width-icon-message: 40px; - -$height-icon-message-sm: 20px; -$width-icon-message-sm: 20px; - - -$white-navbar: rgba(#FFFFFF, .96); -$blue-navbar: rgba(#34ACDC, .98); -$azure-navbar: rgba(#5BCAFF, .98); -$green-navbar: rgba(#4CD964, .98); -$orange-navbar: rgba(#FF9500, .98); -$red-navbar: rgba(#FF4C40, .98); - - - -$topbar-x: topbar-x !default; -$topbar-back: topbar-back !default; -$bottombar-x: bottombar-x !default; -$bottombar-back: bottombar-back !default; - - - - - diff --git a/src/public/css/themes/gsdk/gsdk/mixins/_buttons.scss b/src/public/css/themes/gsdk/gsdk/mixins/_buttons.scss deleted file mode 100644 index c24fccc..0000000 --- a/src/public/css/themes/gsdk/gsdk/mixins/_buttons.scss +++ /dev/null @@ -1,73 +0,0 @@ -// Mixin for generating new styles -@mixin btn-styles($btn-color, $btn-states-color) { - - background-color: $btn-color; - border-color: $btn-color; - - &:hover, - &:focus, - &:active, - &.active, - .open > &.dropdown-toggle{ - background-color: $btn-states-color; - border-color: $btn-states-color; - } - - &.btn-border, - &.btn-round, - &.btn-link{ - border-color: $btn-color; - color: $btn-color; - - &:hover, - &:focus, - &:active, - &.active, - &:active:focus, - &:active:hover, - &.active:focus, - &.active:hover, - .open > &.dropdown-toggle, - .open > &.dropdown-toggle:focus, - .open > &.dropdown-toggle:hover { - background-color: $transparent-bg; - color: $btn-states-color; - border-color: $btn-states-color; - } - - &.disabled, - &:disabled, - &[disabled], - fieldset[disabled] & { - &, - &:hover, - &:focus, - &.focus, - &:active, - &.active { - background-color: $transparent-bg; - border-color: $btn-color; - } - } - - .caret{ - border-top-color: $btn-color; - } - } -} - - -@mixin btn-size($padding-vertical, $padding-horizontal, $font-size, $border){ - font-size: $font-size; - border-radius: $border; - padding: $padding-vertical $padding-horizontal; - - &.btn-round{ - padding: $padding-vertical + 1 $padding-horizontal; - } - - &.btn-link{ - padding: $padding-vertical + 2 $padding-horizontal; - } - -} \ No newline at end of file diff --git a/src/public/css/themes/gsdk/gsdk/mixins/_inputs.scss b/src/public/css/themes/gsdk/gsdk/mixins/_inputs.scss deleted file mode 100644 index 870c918..0000000 --- a/src/public/css/themes/gsdk/gsdk/mixins/_inputs.scss +++ /dev/null @@ -1,17 +0,0 @@ -@mixin input-size($padding-vertical, $padding-horizontal, $height){ - padding: $padding-vertical $padding-horizontal; - height: $height; -} - -@mixin placeholder($color, $opacity){ - color: $color; - @include opacity(1); -} - -@mixin light-form(){ - border-radius: 0; - border:0; - padding: 0; - background-color: transparent; - -} \ No newline at end of file diff --git a/src/public/css/themes/gsdk/gsdk/mixins/_labels.scss b/src/public/css/themes/gsdk/gsdk/mixins/_labels.scss deleted file mode 100644 index 8a2bdd5..0000000 --- a/src/public/css/themes/gsdk/gsdk/mixins/_labels.scss +++ /dev/null @@ -1,21 +0,0 @@ -@mixin label-style(){ - padding: $padding-label-vertical $padding-label-horizontal; - border: 1px solid $default-color; - border-radius: $border-radius-small; - color: $default-color; - font-weight: $font-weight-semi; - font-size: $font-size-small; - text-transform: uppercase; - display: inline-block; - vertical-align: middle; -} - -@mixin label-color($color){ - border-color: $color; - color: $color; -} -@mixin label-color-fill($color){ - border-color: $color; - color: $white-color; - background-color: $color; -} \ No newline at end of file diff --git a/src/public/css/themes/gsdk/gsdk/mixins/_navbars.scss b/src/public/css/themes/gsdk/gsdk/mixins/_navbars.scss deleted file mode 100644 index 6f50046..0000000 --- a/src/public/css/themes/gsdk/gsdk/mixins/_navbars.scss +++ /dev/null @@ -1,11 +0,0 @@ -@mixin navbar-color($color){ - background-color: $color; -} - -@mixin center-item(){ - left: 0; - right: 0; - margin-right: auto; - margin-left: auto; - position: absolute; -} \ No newline at end of file diff --git a/src/public/css/themes/gsdk/gsdk/mixins/_tabs.scss b/src/public/css/themes/gsdk/gsdk/mixins/_tabs.scss deleted file mode 100644 index edf6f58..0000000 --- a/src/public/css/themes/gsdk/gsdk/mixins/_tabs.scss +++ /dev/null @@ -1,4 +0,0 @@ -@mixin pill-style($color){ - border: 1px solid $color; - color: $color; -} \ No newline at end of file diff --git a/src/public/css/themes/gsdk/gsdk/mixins/_transparency.scss b/src/public/css/themes/gsdk/gsdk/mixins/_transparency.scss deleted file mode 100644 index da32b74..0000000 --- a/src/public/css/themes/gsdk/gsdk/mixins/_transparency.scss +++ /dev/null @@ -1,20 +0,0 @@ -// Opacity - -@mixin opacity($opacity) { - opacity: $opacity; - // IE8 filter - $opacity-ie: ($opacity * 100); - filter: #{alpha(opacity=$opacity-ie)}; -} - -@mixin black-filter($opacity){ - top: 0; - left: 0; - height: 100%; - width: 100%; - position: absolute; - background-color: rgba(17,17,17,$opacity); - display: block; - content: ""; - z-index: 1; -} \ No newline at end of file diff --git a/src/public/css/themes/gsdk/gsdk/mixins/_vendor-prefixes.scss b/src/public/css/themes/gsdk/gsdk/mixins/_vendor-prefixes.scss deleted file mode 100644 index da70771..0000000 --- a/src/public/css/themes/gsdk/gsdk/mixins/_vendor-prefixes.scss +++ /dev/null @@ -1,177 +0,0 @@ -// User select -// For selecting text on the page - -@mixin user-select($select) { - -webkit-user-select: $select; - -moz-user-select: $select; - -ms-user-select: $select; // IE10+ - user-select: $select; -} - -@mixin box-shadow($shadow...) { - -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1 - box-shadow: $shadow; -} - -// Box sizing -@mixin box-sizing($boxmodel) { - -webkit-box-sizing: $boxmodel; - -moz-box-sizing: $boxmodel; - box-sizing: $boxmodel; -} - - -@mixin transition($time, $type){ - -webkit-transition: all $time $type; - -moz-transition: all $time $type; - -o-transition: all $time $type; - -ms-transition: all $time $type; - transition: all $time $type; -} - -@mixin transform-scale($value){ - -webkit-transform: scale($value); - -moz-transform: scale($value); - -o-transform: scale($value); - -ms-transform: scale($value); - transform: scale($value); -} - -@mixin transform-translate-x($value){ - -webkit-transform: translate3d($value, 0, 0); - -moz-transform: translate3d($value, 0, 0); - -o-transform: translate3d($value, 0, 0); - -ms-transform: translate3d($value, 0, 0); - transform: translate3d($value, 0, 0); -} - -@mixin transform-origin($coordinates){ - -webkit-transform-origin: $coordinates; - -moz-transform-origin: $coordinates; - -o-transform-origin: $coordinates; - -ms-transform-origin: $coordinates; - transform-origin: $coordinates; -} - -@mixin icon-gradient ($top-color, $bottom-color){ - background: $top-color; - background: -moz-linear-gradient(top, $top-color 0%, $bottom-color 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,$top-color), color-stop(100%,$bottom-color)); - background: -webkit-linear-gradient(top, $top-color 0%,$bottom-color 100%); - background: -o-linear-gradient(top, $top-color 0%,$bottom-color 100%); - background: -ms-linear-gradient(top, $top-color 0%,$bottom-color 100%); - background: linear-gradient(to bottom, $top-color 0%,$bottom-color 100%); -} - -@mixin vertical-align { - position: relative; - top: 50%; - -webkit-transform: translateY(-50%); - -ms-transform: translateY(-50%); - transform: translateY(-50%); -} - -@mixin rotate-180(){ - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} - -@mixin bar-animation($type){ - -webkit-animation: $type 500ms linear 0s; - -moz-animation: $type 500ms linear 0s; - animation: $type 500ms 0s; - -webkit-animation-fill-mode: forwards; - -moz-animation-fill-mode: forwards; - animation-fill-mode: forwards; -} - -@mixin topbar-x-rotation(){ - @keyframes topbar-x { - 0% {top: 0px; transform: rotate(0deg); } - 45% {top: 6px; transform: rotate(145deg); } - 75% {transform: rotate(130deg); } - 100% {transform: rotate(135deg); } - } - @-webkit-keyframes topbar-x { - 0% {top: 0px; -webkit-transform: rotate(0deg); } - 45% {top: 6px; -webkit-transform: rotate(145deg); } - 75% {-webkit-transform: rotate(130deg); } - 100% { -webkit-transform: rotate(135deg); } - } - @-moz-keyframes topbar-x { - 0% {top: 0px; -moz-transform: rotate(0deg); } - 45% {top: 6px; -moz-transform: rotate(145deg); } - 75% {-moz-transform: rotate(130deg); } - 100% { -moz-transform: rotate(135deg); } - } -} - -@mixin topbar-back-rotation(){ - @keyframes topbar-back { - 0% { top: 6px; transform: rotate(135deg); } - 45% { transform: rotate(-10deg); } - 75% { transform: rotate(5deg); } - 100% { top: 0px; transform: rotate(0); } - } - - @-webkit-keyframes topbar-back { - 0% { top: 6px; -webkit-transform: rotate(135deg); } - 45% { -webkit-transform: rotate(-10deg); } - 75% { -webkit-transform: rotate(5deg); } - 100% { top: 0px; -webkit-transform: rotate(0); } - } - - @-moz-keyframes topbar-back { - 0% { top: 6px; -moz-transform: rotate(135deg); } - 45% { -moz-transform: rotate(-10deg); } - 75% { -moz-transform: rotate(5deg); } - 100% { top: 0px; -moz-transform: rotate(0); } - } -} - -@mixin bottombar-x-rotation(){ - @keyframes bottombar-x { - 0% {bottom: 0px; transform: rotate(0deg);} - 45% {bottom: 6px; transform: rotate(-145deg);} - 75% {transform: rotate(-130deg);} - 100% {transform: rotate(-135deg);} - } - @-webkit-keyframes bottombar-x { - 0% {bottom: 0px; -webkit-transform: rotate(0deg);} - 45% {bottom: 6px; -webkit-transform: rotate(-145deg);} - 75% {-webkit-transform: rotate(-130deg);} - 100% {-webkit-transform: rotate(-135deg);} - } - @-moz-keyframes bottombar-x { - 0% {bottom: 0px; -moz-transform: rotate(0deg);} - 45% {bottom: 6px; -moz-transform: rotate(-145deg);} - 75% {-moz-transform: rotate(-130deg);} - 100% {-moz-transform: rotate(-135deg);} - } -} - -@mixin bottombar-back-rotation{ - @keyframes bottombar-back { - 0% { bottom: 6px;transform: rotate(-135deg);} - 45% { transform: rotate(10deg);} - 75% { transform: rotate(-5deg);} - 100% { bottom: 0px;transform: rotate(0);} - } - @-webkit-keyframes bottombar-back { - 0% {bottom: 6px;-webkit-transform: rotate(-135deg);} - 45% {-webkit-transform: rotate(10deg);} - 75% {-webkit-transform: rotate(-5deg);} - 100% {bottom: 0px;-webkit-transform: rotate(0);} - } - @-moz-keyframes bottombar-back { - 0% {bottom: 6px;-moz-transform: rotate(-135deg);} - 45% {-moz-transform: rotate(10deg);} - 75% {-moz-transform: rotate(-5deg);} - 100% {bottom: 0px;-moz-transform: rotate(0);} - } - -} - - diff --git a/src/public/css/themes/modern/_modern.scss b/src/public/css/themes/modern/_modern.scss deleted file mode 100644 index 6591b57..0000000 --- a/src/public/css/themes/modern/_modern.scss +++ /dev/null @@ -1,94 +0,0 @@ -@import "../../lib/bootstrap-social"; - -// Footer -// ------------------------- - -footer { - color: #fff; - background-color: $gray-darker; - - a:hover { - color: #fff; - } -} - -// Typography -// ------------------------- - -a { - transition: all .4s cubic-bezier(.24,.45,.46,.92); - - &:hover { - text-decoration: none; - } -} - -ul, -p { - font-size: 14px; -} - -.text-danger { - color: $brand-danger; -} - -// Dropdowns -// ------------------------- - -.dropdown-menu > li > a { - font-weight: 300; -} - -// Buttons -// ------------------------- - -.btn { - padding: 10px 16px; - border: 0; - border-radius: 3px; - transition: all .4s cubic-bezier(.24,.45,.46,.92); - - &:hover { - color: #fff; - background-color: $gray-darker; - } -} - -.btn-social { - padding: 10px 50px; - - :first-child { - width: 38px; - line-height: 38px; - } -} - -.btn-link { - - &:hover { - color: $gray-darker; - text-decoration: none; - background-color: transparent; - } -} - -// Form states and alerts -// ------------------------- - -.alert { - color: #fff; -} - -// Navbar -// ------------------------- - -.navbar-default { - border: 0; - box-shadow: 0 1px 5px rgba(0,0,0,.15); - - .navbar-nav { - > li > a { - transition: color .4s cubic-bezier(.24,.45,.46,.92); - } - } -} diff --git a/src/public/css/themes/modern/_variables.scss b/src/public/css/themes/modern/_variables.scss deleted file mode 100644 index 41acee3..0000000 --- a/src/public/css/themes/modern/_variables.scss +++ /dev/null @@ -1,68 +0,0 @@ -@import url("http://fonts.googleapis.com/css?family=Montserrat:400,700"); - -// Colors -// ------------------------- - -$gray-lighter: #f5f5f5; -$gray-light: #e0e0e0; -$gray: #737373; -$gray-dark: #404040; -$gray-darker: #121212; - -$brand-primary: #2ac5ee; -$brand-success: #0f9d58; -$brand-warning: #f4b400; -$brand-danger: #d80017; -$brand-info: #5bc0dd; - -// Typography -// ------------------------- - -$font-size-base: 13px; -$headings-font-family: 'Montserrat', sans-serif; -$headings-font-weight: 700; -$text-color: $gray-darker; -$link-color: $brand-primary; -$link-hover-color: $gray-darker; - -// Dropdowns -// ------------------------- - -$dropdown-link-color: $gray-darker; - -// Buttons -// ------------------------- - -$btn-default-bg: $gray-lighter; -$btn-default-color: $gray-darker; - -// Forms -// ------------------------- - -$input-border-radius: 2px; -$input-border-focus: #999; -$input-border: #f0f0f0; -$input-color: #444; -$input-color-placeholder: #999; -$input-height-base: 44px; - -// Form states and alerts -// ------------------------- - -$state-success-bg: $brand-success; -$state-info-bg: $brand-primary; -$state-warning-bg: $brand-warning; -$state-danger-bg: $brand-danger; - -// Navbar -// ------------------------- - -$navbar-height: 50px; -$navbar-default-bg: rgba(255,255,255,0.95); -$navbar-default-link-color: $gray-darker; -$navbar-default-link-active-color: $brand-primary; -$navbar-default-link-active-bg: transparent; -$navbar-default-link-hover-color: $brand-primary; -$navbar-default-link-hover-bg: transparent; -$navbar-default-brand-color: $gray-darker; -$navbar-default-brand-hover-color: $brand-primary; \ No newline at end of file diff --git a/src/public/js/lib/bootstrap.min.js b/src/public/js/lib/bootstrap.min.js deleted file mode 100644 index 9bcd2fc..0000000 --- a/src/public/js/lib/bootstrap.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under the MIT license - */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/src/public/js/lib/jquery-3.1.1.min.js b/src/public/js/lib/jquery-3.1.1.min.js deleted file mode 100644 index 5c82cc0..0000000 --- a/src/public/js/lib/jquery-3.1.1.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v2.2.4 | (c) jQuery Foundation | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="2.2.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isPlainObject:function(a){var b;if("object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype||{},"isPrototypeOf"))return!1;for(b in a);return void 0===b||k.call(a,b)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=d.createElement("script"),b.text=a,d.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:h.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(d=e.call(arguments,2),f=function(){return a.apply(b||this,d.concat(e.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="
",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return h.call(b,a)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?void 0!==c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?h.call(n(a),this[0]):h.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||n.uniqueSort(e),D.test(a)&&e.reverse()),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.removeEventListener("DOMContentLoaded",J),a.removeEventListener("load",J),n.ready()}n.ready.promise=function(b){return I||(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(n.ready):(d.addEventListener("DOMContentLoaded",J),a.addEventListener("load",J))),I.promise(b)},n.ready.promise();var K=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)K(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},L=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function M(){this.expando=n.expando+M.uid++}M.uid=1,M.prototype={register:function(a,b){var c=b||{};return a.nodeType?a[this.expando]=c:Object.defineProperty(a,this.expando,{value:c,writable:!0,configurable:!0}),a[this.expando]},cache:function(a){if(!L(a))return{};var b=a[this.expando];return b||(b={},L(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[b]=c;else for(d in b)e[d]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=a[this.expando];if(void 0!==f){if(void 0===b)this.register(a);else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in f?d=[b,e]:(d=e,d=d in f?[d]:d.match(G)||[])),c=d.length;while(c--)delete f[d[c]]}(void 0===b||n.isEmptyObject(f))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!n.isEmptyObject(b)}};var N=new M,O=new M,P=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Q=/[A-Z]/g;function R(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Q,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:P.test(c)?n.parseJSON(c):c; -}catch(e){}O.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:function(a,b,c){return O.access(a,b,c)},removeData:function(a,b){O.remove(a,b)},_data:function(a,b,c){return N.access(a,b,c)},_removeData:function(a,b){N.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=O.get(f),1===f.nodeType&&!N.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),R(f,d,e[d])));N.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){O.set(this,a)}):K(this,function(b){var c,d;if(f&&void 0===b){if(c=O.get(f,a)||O.get(f,a.replace(Q,"-$&").toLowerCase()),void 0!==c)return c;if(d=n.camelCase(a),c=O.get(f,d),void 0!==c)return c;if(c=R(f,d,void 0),void 0!==c)return c}else d=n.camelCase(a),this.each(function(){var c=O.get(this,d);O.set(this,d,b),a.indexOf("-")>-1&&void 0!==c&&O.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){O.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=N.get(a,b),c&&(!d||n.isArray(c)?d=N.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return N.get(a,c)||N.access(a,c,{empty:n.Callbacks("once memory").add(function(){N.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length",""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};$.optgroup=$.option,$.tbody=$.tfoot=$.colgroup=$.caption=$.thead,$.th=$.td;function _(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function aa(a,b){for(var c=0,d=a.length;d>c;c++)N.set(a[c],"globalEval",!b||N.get(b[c],"globalEval"))}var ba=/<|&#?\w+;/;function ca(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],o=0,p=a.length;p>o;o++)if(f=a[o],f||0===f)if("object"===n.type(f))n.merge(m,f.nodeType?[f]:f);else if(ba.test(f)){g=g||l.appendChild(b.createElement("div")),h=(Y.exec(f)||["",""])[1].toLowerCase(),i=$[h]||$._default,g.innerHTML=i[1]+n.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;n.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",o=0;while(f=m[o++])if(d&&n.inArray(f,d)>-1)e&&e.push(f);else if(j=n.contains(f.ownerDocument,f),g=_(l.appendChild(f),"script"),j&&aa(g),c){k=0;while(f=g[k++])Z.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var da=/^key/,ea=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,fa=/^([^.]*)(?:\.(.+)|)/;function ga(){return!0}function ha(){return!1}function ia(){try{return d.activeElement}catch(a){}}function ja(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ja(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ha;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return"undefined"!=typeof n&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(G)||[""],j=b.length;while(j--)h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.hasData(a)&&N.get(a);if(r&&(i=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&N.remove(a,"handle events")}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(N.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,la=/\s*$/g;function pa(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function qa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function ra(a){var b=na.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function sa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(N.hasData(a)&&(f=N.access(a),g=N.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}O.hasData(a)&&(h=O.access(a),i=n.extend({},h),O.set(b,i))}}function ta(a,b){var c=b.nodeName.toLowerCase();"input"===c&&X.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function ua(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&ma.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),ua(f,b,c,d)});if(o&&(e=ca(b,a[0].ownerDocument,!1,a,d),g=e.firstChild,1===e.childNodes.length&&(e=g),g||d)){for(h=n.map(_(e,"script"),qa),i=h.length;o>m;m++)j=e,m!==p&&(j=n.clone(j,!0,!0),i&&n.merge(h,_(j,"script"))),c.call(a[m],j,m);if(i)for(k=h[h.length-1].ownerDocument,n.map(h,ra),m=0;i>m;m++)j=h[m],Z.test(j.type||"")&&!N.access(j,"globalEval")&&n.contains(k,j)&&(j.src?n._evalUrl&&n._evalUrl(j.src):n.globalEval(j.textContent.replace(oa,"")))}return a}function va(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(_(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&aa(_(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(ka,"<$1>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=_(h),f=_(a),d=0,e=f.length;e>d;d++)ta(f[d],g[d]);if(b)if(c)for(f=f||_(a),g=g||_(h),d=0,e=f.length;e>d;d++)sa(f[d],g[d]);else sa(a,h);return g=_(h,"script"),g.length>0&&aa(g,!i&&_(a,"script")),h},cleanData:function(a){for(var b,c,d,e=n.event.special,f=0;void 0!==(c=a[f]);f++)if(L(c)){if(b=c[N.expando]){if(b.events)for(d in b.events)e[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);c[N.expando]=void 0}c[O.expando]&&(c[O.expando]=void 0)}}}),n.fn.extend({domManip:ua,detach:function(a){return va(this,a,!0)},remove:function(a){return va(this,a)},text:function(a){return K(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.appendChild(a)}})},prepend:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(_(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return K(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!la.test(a)&&!$[(Y.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(_(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return ua(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(_(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),f=e.length-1,h=0;f>=h;h++)c=h===f?this:this.clone(!0),n(e[h])[b](c),g.apply(d,c.get());return this.pushStack(d)}});var wa,xa={HTML:"block",BODY:"block"};function ya(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function za(a){var b=d,c=xa[a];return c||(c=ya(a,b),"none"!==c&&c||(wa=(wa||n("