From e570157a2ce291ea5381a0008f96c58432d53ae2 Mon Sep 17 00:00:00 2001 From: carson Date: Tue, 23 Jul 2019 15:07:15 -0700 Subject: [PATCH] bump dev version --- bower.json | 2 +- package-lock.json | 3817 +++++++++++++++++++++ package.json | 2 +- src/intercooler.js | 6 +- www/release/intercooler-1.2.3.js | 2050 +++++++++++ www/release/intercooler-1.2.3.min.js | 4 + www/release/jQuery1_unit-tests-1.2.3.html | 2591 ++++++++++++++ www/release/jQuery2_unit-tests-1.2.3.html | 2591 ++++++++++++++ www/release/unit-tests-1.2.3.html | 2594 ++++++++++++++ www/release/unit-tests-1.2.3.min.html | 2594 ++++++++++++++ www/release/zepto_unit-tests-1.2.3.html | 2602 ++++++++++++++ 11 files changed, 18849 insertions(+), 4 deletions(-) create mode 100644 package-lock.json create mode 100644 www/release/intercooler-1.2.3.js create mode 100644 www/release/intercooler-1.2.3.min.js create mode 100644 www/release/jQuery1_unit-tests-1.2.3.html create mode 100644 www/release/jQuery2_unit-tests-1.2.3.html create mode 100644 www/release/unit-tests-1.2.3.html create mode 100644 www/release/unit-tests-1.2.3.min.html create mode 100644 www/release/zepto_unit-tests-1.2.3.html diff --git a/bower.json b/bower.json index ca330899..b5eaaf7a 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "intercooler-js", - "version":"1.2.2", + "version":"1.2.3", "homepage": "https://github.com/LeadDyno/intercooler-js", "main": "src/intercooler.js", "license": "MIT", diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..2da41ffc --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3817 @@ +{ + "name": "intercooler", + "version": "1.2.2", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "alphabet": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/alphabet/-/alphabet-1.0.0.tgz", + "integrity": "sha1-DY+Byj94NVEm1yTRRUh+Hk7zd8A=", + "dev": true + }, + "annois": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/annois/-/annois-0.3.2.tgz", + "integrity": "sha1-b2Fp7jdPhND9ANtYnFtAPbT5SwU=", + "dev": true + }, + "annotate": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/annotate/-/annotate-0.9.1.tgz", + "integrity": "sha1-ODA+ZWhE5MwXR2DjRDsjv2VHK9M=", + "dev": true, + "requires": { + "annois": "0.3.0" + }, + "dependencies": { + "annois": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/annois/-/annois-0.3.0.tgz", + "integrity": "sha1-BcW8WQDoKGgX6IaEuOfjSKniQ0Q=", + "dev": true + } + } + }, + "annozip": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/annozip/-/annozip-0.2.6.tgz", + "integrity": "sha1-4Yorw+KHHwYeC+yhwdGozQRlCZs=", + "dev": true, + "requires": { + "annois": "^0.3.2", + "annotate": "^0.9.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "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 + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "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=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bluebird": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true, + "requires": { + "pako": "~0.2.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "clean-yaml-object": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", + "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=", + "dev": true + }, + "cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "^7.1.1" + }, + "dependencies": { + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "clone-function": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/clone-function/-/clone-function-1.0.6.tgz", + "integrity": "sha1-QoRxk3dQvKnEjsv7wW9uIy90oD0=", + "dev": true + }, + "coffeescript": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", + "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "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.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "coveralls": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.3.tgz", + "integrity": "sha512-iiAmn+l1XqRwNLXhW8Rs5qHZRFMYp9ZIPjEOVRpC/c4so6Y/f4/lFi0FfR5B9cCqgyhkJ5cZmbvcVRfP8MHchw==", + "dev": true, + "requires": { + "js-yaml": "3.6.1", + "lcov-parse": "0.0.10", + "log-driver": "1.2.5", + "minimist": "1.2.0", + "request": "2.79.0" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "js-yaml": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", + "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + } + } + } + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.x.x" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "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, + "requires": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "deeper": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/deeper/-/deeper-2.1.0.tgz", + "integrity": "sha1-vFZOX3MXT98gHgiwADDooU2nQ2g=", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "dev": true + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + } + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true + }, + "events-to-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", + "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=", + "dev": true + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "findup-sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "dev": true, + "requires": { + "glob": "~5.0.0" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "dev": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dev": true, + "requires": { + "is-property": "^1.0.2" + } + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "^1.0.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "grunt": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.4.tgz", + "integrity": "sha512-PYsMOrOC+MsdGEkFVwMaMyc6Ob7pKmq+deg1Sjr+vvMWp35sztfwKE7qoN51V+UEtHsyNuMcGdgMLFkBHvMxHQ==", + "dev": true, + "requires": { + "coffeescript": "~1.10.0", + "dateformat": "~1.0.12", + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.3.0", + "glob": "~7.0.0", + "grunt-cli": "~1.2.0", + "grunt-known-options": "~1.1.0", + "grunt-legacy-log": "~2.0.0", + "grunt-legacy-util": "~1.1.1", + "iconv-lite": "~0.4.13", + "js-yaml": "~3.13.0", + "minimatch": "~3.0.2", + "mkdirp": "~0.5.1", + "nopt": "~3.0.6", + "path-is-absolute": "~1.0.0", + "rimraf": "~2.6.2" + }, + "dependencies": { + "grunt-cli": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", + "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", + "dev": true, + "requires": { + "findup-sync": "~0.3.0", + "grunt-known-options": "~1.1.0", + "nopt": "~3.0.6", + "resolve": "~1.1.0" + } + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "grunt-contrib-jshint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz", + "integrity": "sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "hooker": "^0.2.3", + "jshint": "~2.9.4" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "grunt-contrib-nodeunit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-nodeunit/-/grunt-contrib-nodeunit-1.0.0.tgz", + "integrity": "sha1-b0iFVe2cDIR4hUEDxx7bH8RoXwU=", + "dev": true, + "requires": { + "nodeunit": "^0.9.0" + } + }, + "grunt-contrib-uglify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-2.3.0.tgz", + "integrity": "sha1-s9AmDr3WzvoS/y+Onh4ln33kIW8=", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "maxmin": "^1.1.0", + "object.assign": "^4.0.4", + "uglify-js": "~2.8.21", + "uri-path": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "grunt-known-options": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz", + "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==", + "dev": true + }, + "grunt-legacy-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz", + "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", + "dev": true, + "requires": { + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.5" + } + }, + "grunt-legacy-log-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz", + "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", + "dev": true, + "requires": { + "chalk": "~2.4.1", + "lodash": "~4.17.10" + } + }, + "grunt-legacy-util": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz", + "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", + "dev": true, + "requires": { + "async": "~1.5.2", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.10", + "underscore.string": "~3.3.4", + "which": "~1.3.0" + } + }, + "grunt-regex-replace": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/grunt-regex-replace/-/grunt-regex-replace-0.3.0.tgz", + "integrity": "sha1-8ecbHwwO/wLXMTtipm2qNQ5+VBc=", + "dev": true + }, + "grunt-umd": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/grunt-umd/-/grunt-umd-2.4.0.tgz", + "integrity": "sha1-0TGMZFukc0wQwgwd1pI0Z9gbBe8=", + "dev": true, + "requires": { + "libumd": "^0.7.0", + "xtend": "^4.0.0" + } + }, + "gzip-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", + "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=", + "dev": true, + "requires": { + "browserify-zlib": "^0.1.4", + "concat-stream": "^1.4.1" + } + }, + "handlebars": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.1.tgz", + "integrity": "sha512-3Zhi6C0euYZL5sM0Zcy7lInLXKQ+YLcF/olbN010mzGQ4XVm50JeyBnMqofHh696GrciGruC7kCcApPDJvVgwA==", + "dev": true, + "requires": { + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "uglify-js": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.2.tgz", + "integrity": "sha512-imog1WIsi9Yb56yRt5TfYVxGmnWs3WSGU73ieSOlMVFwhJCA9W8fqFFMMj4kgDqiS/80LGdsYnWL7O9UcjEBlg==", + "dev": true, + "optional": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + } + } + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "requires": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, + "is-my-json-valid": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.19.0.tgz", + "integrity": "sha512-mG0f/unGX1HZ5ep4uhRaPOS8EkAY8/j6mDRMJrutq4CqhoJWYp7qAlonIPy3TV7p3ju4TK9fo/PbnoksWmsp5Q==", + "dev": true, + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "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": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-yaml": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz", + "integrity": "sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jshint": { + "version": "2.9.7", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.7.tgz", + "integrity": "sha512-Q8XN38hGsVQhdlM+4gd1Xl7OB1VieSuCJf+fEJjpo59JH99bVJhXRXAh26qQ15wfdd1VPMuDWNeSWoNl53T4YA==", + "dev": true, + "requires": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.10", + "minimatch": "~3.0.2", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x" + } + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lcov-parse": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", + "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", + "dev": true + }, + "libumd": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/libumd/-/libumd-0.7.0.tgz", + "integrity": "sha1-9D765q2YTOSSjB81b1GdEuyPm3Y=", + "dev": true, + "requires": { + "alphabet": "^1.0.0", + "annois": "^0.3.2", + "annozip": "^0.2.6", + "handlebars": "^4.0.2", + "object-merge": "^2.5.1" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "log-driver": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", + "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "maxmin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", + "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "figures": "^1.0.1", + "gzip-size": "^1.0.0", + "pretty-bytes": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "mime-db": { + "version": "1.38.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", + "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==", + "dev": true + }, + "mime-types": { + "version": "2.1.22", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", + "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "dev": true, + "requires": { + "mime-db": "~1.38.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "neo-async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "dev": true + }, + "nodeunit": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/nodeunit/-/nodeunit-0.9.5.tgz", + "integrity": "sha1-C2MjaAB9lGUczwoYmZgHmC8HOGY=", + "dev": true, + "requires": { + "tap": "^7.0.0" + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nyc": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-7.1.0.tgz", + "integrity": "sha1-jhSXHzoV0au+x6xhDvVMuInp/7Q=", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.3.0", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^1.1.2", + "foreground-child": "^1.5.3", + "glob": "^7.0.3", + "istanbul-lib-coverage": "^1.0.0-alpha.4", + "istanbul-lib-hook": "^1.0.0-alpha.4", + "istanbul-lib-instrument": "^1.1.0-alpha.3", + "istanbul-lib-report": "^1.0.0-alpha.3", + "istanbul-lib-source-maps": "^1.0.0-alpha.10", + "istanbul-reports": "^1.0.0-alpha.8", + "md5-hex": "^1.2.0", + "micromatch": "^2.3.11", + "mkdirp": "^0.5.0", + "pkg-up": "^1.0.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.5.4", + "signal-exit": "^3.0.0", + "spawn-wrap": "^1.2.4", + "test-exclude": "^1.1.0", + "yargs": "^4.8.1", + "yargs-parser": "^2.4.1" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "ansi-regex": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "bundled": true, + "dev": true + }, + "append-transform": { + "version": "0.3.0", + "bundled": true, + "dev": true + }, + "arr-diff": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "arr-flatten": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "async": { + "version": "1.5.2", + "bundled": true, + "dev": true + }, + "babel-code-frame": { + "version": "6.11.0", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "^6.0.0", + "chalk": "^1.1.0", + "esutils": "^2.0.2", + "js-tokens": "^2.0.0" + } + }, + "babel-generator": { + "version": "6.11.4", + "bundled": true, + "dev": true, + "requires": { + "babel-messages": "^6.8.0", + "babel-runtime": "^6.9.0", + "babel-types": "^6.10.2", + "detect-indent": "^3.0.1", + "lodash": "^4.2.0", + "source-map": "^0.5.0" + } + }, + "babel-messages": { + "version": "6.8.0", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "^6.0.0" + } + }, + "babel-runtime": { + "version": "6.9.2", + "bundled": true, + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.9.5" + } + }, + "babel-template": { + "version": "6.9.0", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "^6.9.0", + "babel-traverse": "^6.9.0", + "babel-types": "^6.9.0", + "babylon": "^6.7.0", + "lodash": "^4.2.0" + } + }, + "babel-traverse": { + "version": "6.11.4", + "bundled": true, + "dev": true, + "requires": { + "babel-code-frame": "^6.8.0", + "babel-messages": "^6.8.0", + "babel-runtime": "^6.9.0", + "babel-types": "^6.9.0", + "babylon": "^6.7.0", + "debug": "^2.2.0", + "globals": "^8.3.0", + "invariant": "^2.2.0", + "lodash": "^4.2.0" + } + }, + "babel-types": { + "version": "6.11.1", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "^6.9.1", + "babel-traverse": "^6.9.0", + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^1.0.1" + } + }, + "babylon": { + "version": "6.8.4", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "^6.0.0" + } + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.6", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "bundled": true, + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "caching-transform": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "commondir": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "convert-source-map": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "core-js": { + "version": "2.4.1", + "bundled": true, + "dev": true + }, + "cross-spawn": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "debug": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "decamelize": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "strip-bom": "^2.0.0" + } + }, + "detect-indent": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "minimist": "^1.1.0", + "repeating": "^1.1.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true + } + } + }, + "error-ex": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "esutils": { + "version": "2.0.2", + "bundled": true, + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "expand-range": { + "version": "1.8.2", + "bundled": true, + "dev": true, + "requires": { + "fill-range": "^2.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "bundled": true, + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "filename-regex": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "bundled": true, + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "find-cache-dir": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "for-in": { + "version": "0.1.5", + "bundled": true, + "dev": true + }, + "for-own": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "for-in": "^0.1.5" + } + }, + "foreground-child": { + "version": "1.5.3", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "get-caller-file": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "glob": { + "version": "7.0.5", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "globals": { + "version": "8.18.0", + "bundled": true, + "dev": true + }, + "graceful-fs": { + "version": "4.1.4", + "bundled": true, + "dev": true + }, + "handlebars": { + "version": "4.0.5", + "bundled": true, + "dev": true, + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "has-ansi": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "hosted-git-info": { + "version": "2.1.5", + "bundled": true, + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "inflight": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "invariant": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "is-buffer": { + "version": "1.1.3", + "bundled": true, + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-dotfile": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-finite": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isexe": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "isobject": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "istanbul-lib-coverage": { + "version": "1.0.0-alpha.4", + "bundled": true, + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.0.0-alpha.4", + "bundled": true, + "dev": true, + "requires": { + "append-transform": "^0.3.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.1.0-alpha.4", + "bundled": true, + "dev": true, + "requires": { + "babel-generator": "^6.11.3", + "babel-template": "^6.9.0", + "babel-traverse": "^6.9.0", + "babel-types": "^6.10.2", + "babylon": "^6.8.1", + "istanbul-lib-coverage": "^1.0.0-alpha.4" + } + }, + "istanbul-lib-report": { + "version": "1.0.0-alpha.3", + "bundled": true, + "dev": true, + "requires": { + "async": "^1.4.2", + "istanbul-lib-coverage": "^1.0.0-alpha", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "rimraf": "^2.4.3", + "supports-color": "^3.1.2" + }, + "dependencies": { + "supports-color": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.0.0-alpha.10", + "bundled": true, + "dev": true, + "requires": { + "istanbul-lib-coverage": "^1.0.0-alpha.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.4.4", + "source-map": "^0.5.3" + } + }, + "istanbul-reports": { + "version": "1.0.0-alpha.8", + "bundled": true, + "dev": true, + "requires": { + "handlebars": "^4.0.3" + } + }, + "js-tokens": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "^1.0.2" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "lodash": { + "version": "4.13.1", + "bundled": true, + "dev": true + }, + "lodash.assign": { + "version": "4.0.9", + "bundled": true, + "dev": true, + "requires": { + "lodash.keys": "^4.0.0", + "lodash.rest": "^4.0.0" + } + }, + "lodash.keys": { + "version": "4.0.7", + "bundled": true, + "dev": true + }, + "lodash.rest": { + "version": "4.0.3", + "bundled": true, + "dev": true + }, + "longest": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "loose-envify": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "js-tokens": "^1.0.1" + }, + "dependencies": { + "js-tokens": { + "version": "1.0.3", + "bundled": true, + "dev": true + } + } + }, + "lru-cache": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "pseudomap": "^1.0.1", + "yallist": "^2.0.0" + } + }, + "md5-hex": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "md5-o-matic": "^0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "minimatch": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "0.7.1", + "bundled": true, + "dev": true + }, + "normalize-package-data": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "number-is-nan": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "object.omit": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "for-own": "^0.1.3", + "is-extendable": "^0.1.1" + } + }, + "once": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "os-homedir": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "parse-glob": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "path-type": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "bundled": true, + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + }, + "pkg-up": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + }, + "preserve": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "randomatic": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "requires": { + "is-number": "^2.0.2", + "kind-of": "^3.0.2" + } + }, + "read-pkg": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "regenerator-runtime": { + "version": "0.9.5", + "bundled": true, + "dev": true + }, + "regex-cache": { + "version": "0.4.3", + "bundled": true, + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3", + "is-primitive": "^2.0.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "repeat-string": { + "version": "1.5.4", + "bundled": true, + "dev": true + }, + "repeating": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "resolve-from": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.5.4", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "slide": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "source-map": { + "version": "0.5.6", + "bundled": true, + "dev": true + }, + "spawn-wrap": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "requires": { + "foreground-child": "^1.3.3", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.3.3", + "signal-exit": "^2.0.0", + "which": "^1.2.4" + }, + "dependencies": { + "signal-exit": { + "version": "2.1.2", + "bundled": true, + "dev": true + } + } + }, + "spdx-correct": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "spdx-license-ids": "^1.0.2" + } + }, + "spdx-exceptions": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "spdx-expression-parse": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "^1.0.4", + "spdx-license-ids": "^1.0.0" + } + }, + "spdx-license-ids": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "supports-color": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "test-exclude": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "arrify": "^1.0.1", + "lodash.assign": "^4.0.9", + "micromatch": "^2.3.8", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } + }, + "to-fast-properties": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "uglify-js": { + "version": "2.7.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "bundled": true, + "dev": true, + "optional": true + }, + "yargs": { + "version": "3.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" + } + }, + "which": { + "version": "1.2.10", + "bundled": true, + "dev": true, + "requires": { + "isexe": "^1.1.1" + } + }, + "which-module": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true, + "dev": true + }, + "wrap-ansi": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "write-file-atomic": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "yargs": { + "version": "4.8.1", + "bundled": true, + "dev": true, + "requires": { + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "lodash.assign": "^4.0.3", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.1", + "which-module": "^1.0.0", + "window-size": "^0.2.0", + "y18n": "^3.2.1", + "yargs-parser": "^2.4.1" + }, + "dependencies": { + "cliui": { + "version": "3.2.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "window-size": { + "version": "0.2.0", + "bundled": true, + "dev": true + } + } + }, + "yargs-parser": { + "version": "2.4.1", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "lodash.assign": "^4.0.6" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-foreach": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/object-foreach/-/object-foreach-0.1.2.tgz", + "integrity": "sha1-10IcW0DjtqPvV6xiQ2jSHY+NLew=", + "dev": true + }, + "object-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", + "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", + "dev": true + }, + "object-merge": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/object-merge/-/object-merge-2.5.1.tgz", + "integrity": "sha1-B36JFc446nKUeIRIxd0znjTfQic=", + "dev": true, + "requires": { + "clone-function": ">=1.0.1", + "object-foreach": ">=0.1.2" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "only-shallow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/only-shallow/-/only-shallow-1.2.0.tgz", + "integrity": "sha1-cc7O26kyS8BRiu8Q7AgNMkncJGU=", + "dev": true + }, + "opener": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", + "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", + "dev": true + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + } + } + }, + "os-homedir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz", + "integrity": "sha1-DWK99EuRb9O73PLKsZGUj7CU8Ac=", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pretty-bytes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", + "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "meow": "^3.1.0" + } + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "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, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.0.0" + } + }, + "resolve": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", + "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + }, + "shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", + "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 + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", + "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==", + "dev": true + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "stack-utils": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-0.4.0.tgz", + "integrity": "sha1-lAy4L8z6hOj/Lz/fKT/ngBa+zNE=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tap": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/tap/-/tap-7.1.2.tgz", + "integrity": "sha1-36w+zxSshUe7rSW70Wzyw3Q/Zc8=", + "dev": true, + "requires": { + "bluebird": "^3.3.1", + "clean-yaml-object": "^0.1.0", + "color-support": "^1.1.0", + "coveralls": "^2.11.2", + "deeper": "^2.1.0", + "foreground-child": "^1.3.3", + "glob": "^7.0.0", + "isexe": "^1.0.0", + "js-yaml": "^3.3.1", + "nyc": "^7.1.0", + "only-shallow": "^1.0.2", + "opener": "^1.4.1", + "os-homedir": "1.0.1", + "readable-stream": "^2.0.2", + "signal-exit": "^3.0.0", + "stack-utils": "^0.4.0", + "tap-mocha-reporter": "^2.0.0", + "tap-parser": "^2.2.0", + "tmatch": "^2.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", + "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA=", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "tap-mocha-reporter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-2.0.1.tgz", + "integrity": "sha1-xwMWFz1uOhbFjhupLV1s2N5YoS4=", + "dev": true, + "requires": { + "color-support": "^1.1.0", + "debug": "^2.1.3", + "diff": "^1.3.2", + "escape-string-regexp": "^1.0.3", + "glob": "^7.0.5", + "js-yaml": "^3.3.1", + "readable-stream": "^2.1.5", + "tap-parser": "^2.0.0", + "unicode-length": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "tap-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-2.2.3.tgz", + "integrity": "sha1-rebpbje/04zg8WLaBn80A08GiwE=", + "dev": true, + "requires": { + "events-to-array": "^1.0.1", + "js-yaml": "^3.2.7", + "readable-stream": "^2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "tmatch": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-2.0.1.tgz", + "integrity": "sha1-DFYkbzPzDaG409colauvFmYPOM8=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "requires": { + "punycode": "^1.4.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "underscore.string": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", + "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", + "dev": true, + "requires": { + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" + } + }, + "unicode-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-1.0.3.tgz", + "integrity": "sha1-Wtp6f+1RhBpBijKM8UlHisg1irs=", + "dev": true, + "requires": { + "punycode": "^1.3.2", + "strip-ansi": "^3.0.1" + } + }, + "uri-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", + "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + } + } + } + } +} diff --git a/package.json b/package.json index d65e27c8..3ed865bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "intercooler", - "version": "1.2.2", + "version": "1.2.3", "description": "Making AJAX as easy as anchor tags", "homepage": "http://intercoolerjs.org", "author": { diff --git a/src/intercooler.js b/src/intercooler.js index 7c2e3df2..e8c2cc0d 100644 --- a/src/intercooler.js +++ b/src/intercooler.js @@ -1429,9 +1429,9 @@ var Intercooler = Intercooler || (function() { if(classToSwitch) { switchClass.children().removeClass(classToSwitch); switchClass.children().each(function(){ - console.log($(this)); if($.contains($(this)[0], $(elt)[0]) || $(this)[0] == $(elt)[0]) { $(this).addClass(classToSwitch); + $(this).addClass(classToSwitch); } }) } @@ -1986,7 +1986,9 @@ var Intercooler = Intercooler || (function() { if($.zepto) { $('body').data('zeptoDataTest', {}); if(typeof($('body').data('zeptoDataTest')) == "string") { - console.log("!!!! Please include the data module with Zepto! Intercooler requires full data support to function !!!!") + log(null, + "!!!! Please include the data module with Zepto! Intercooler requires full data support to function !!!!", + "ERROR") } } } diff --git a/www/release/intercooler-1.2.3.js b/www/release/intercooler-1.2.3.js new file mode 100644 index 00000000..ad9eecb3 --- /dev/null +++ b/www/release/intercooler-1.2.3.js @@ -0,0 +1,2050 @@ +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module unless amdModuleId is set + define(["jquery"], function (a0) { + return (root['Intercooler'] = factory(a0)); + }); + } else if (typeof module === 'object' && module.exports) { + // Node. Does not work with strict CommonJS, but + // only CommonJS-like environments that support module.exports, + // like Node. + module.exports = factory(require("jquery")); + } else { + root['Intercooler'] = factory(root["jQuery"]); + } +}(this, function ($) { + +//////////////////////////////////// + +/** + * Intercooler.js - there is no need to be upset. + */ +var Intercooler = Intercooler || (function() { + 'use strict'; // inside function for better merging + + // work around zepto build issue TODO - fix me + if((typeof Zepto !== "undefined") && ($ == null)) { + window["$"] = Zepto + } + + //-------------------------------------------------- + // Vars + //-------------------------------------------------- + var USE_DATA = $('meta[name="intercoolerjs:use-data-prefix"]').attr("content") == "true"; + var USE_ACTUAL_HTTP_METHOD = $('meta[name="intercoolerjs:use-actual-http-method"]').attr("content") == "true"; + + var _MACROS = $.map(['ic-get-from', 'ic-post-to', 'ic-put-to', 'ic-patch-to', 'ic-delete-from', + 'ic-style-src', 'ic-attr-src', 'ic-prepend-from', 'ic-append-from', 'ic-action'], + function(elt){ return fixICAttributeName(elt) }); + + var _scrollHandler = null; + var _UUID = 1; + var _readyHandlers = []; + + var _isDependentFunction = function(src, dest) { + if (!src || !dest) { + return false; + } + + // For two urls to be considered dependant, either one must contain all + // of the path arguments the other has, like so: + // - chomp off everything after ? or #. This is a design decision, so this + // function will fail to determine dependencies for sites that store + // their model IDs in query/hash params. If your usecase is not covered + // by this you need to implement this function yourself by overriding + // Intercooler.setIsDependentFunction(function(src, dest) { return bool; }); + // - split by / to get the individual path elements, clear out empty values, + // then simply compare them + var asrc = src.split(/[\?#]/, 1)[0].split("/").filter(function(e) { + return e != ""; + }); + + var adest = dest.split(/[\?#]/, 1)[0].split("/").filter(function(e) { + return e != ""; + }); + + // ignore purely local tags (local transport) + if (asrc == "" || adest == "") { + return false; + } + return adest.slice(0, asrc.length).join("/") == asrc.join("/") || + asrc.slice(0, adest.length).join("/") == adest.join("/"); + }; + + //============================================================ + // Base Swap Definitions + //============================================================ + function remove(elt) { + elt.remove(); + } + + function showIndicator(elt) { + if (elt.closest('.ic-use-transition').length > 0) { + elt.data('ic-use-transition', true); + elt.removeClass('ic-use-transition'); + } else { + elt.show(); + } + } + + function hideIndicator(elt) { + if (elt.data('ic-use-transition') || elt.data('ic-indicator-cleared')) { + elt.data('ic-use-transition', null); + elt.addClass('ic-use-transition'); + elt.data('ic-indicator-cleared', true); + } else { + elt.hide(); + } + } + + function fixICAttributeName(s) { + if (USE_DATA) { + return 'data-' + s; + } else { + return s; + } + } + + function getICAttribute(element, attributeName) { + return element.attr(fixICAttributeName(attributeName)); + } + + function setICAttribute(element, attributeName, attributeValue) { + element.attr(fixICAttributeName(attributeName), attributeValue); + } + + function prepend(parent, responseContent) { + try { + parent.prepend(responseContent); + } catch (e) { + log(parent, formatError(e), "ERROR"); + } + if (getICAttribute(parent, 'ic-limit-children')) { + var limit = parseInt(getICAttribute(parent, 'ic-limit-children')); + if (parent.children().length > limit) { + parent.children().slice(limit, parent.children().length).remove(); + } + } + } + + function append(parent, responseContent) { + try { + parent.append(responseContent); + } catch (e) { + log(parent, formatError(e), "ERROR"); + } + if (getICAttribute(parent, 'ic-limit-children')) { + var limit = parseInt(getICAttribute(parent, 'ic-limit-children')); + if (parent.children().length > limit) { + parent.children().slice(0, parent.children().length - limit).remove(); + } + } + } + + //============================================================ + // Utility Methods + //============================================================ + function triggerEvent(elt, event, args){ + if($.zepto) { + event = event.split(".").reverse().join(":"); + } + elt.trigger(event, args); + } + + function log(elt, msg, level) { + if (elt == null) { + elt = $('body'); + } + triggerEvent(elt, "log.ic", [msg, level, elt]); + if (level == "ERROR") { + if (window.console) { + window.console.log("Intercooler Error : " + msg); + } + var errorUrl = closestAttrValue($('body'), 'ic-post-errors-to'); + if (errorUrl) { + $.post(errorUrl, {'error': msg}); + } + } + } + + function uuid() { + return _UUID++; + } + + function icSelectorFor(elt) { + return getICAttributeSelector("ic-id='" + getIntercoolerId(elt) + "'"); + } + + function parseInterval(str) { + log(null, "POLL: Parsing interval string " + str, 'DEBUG'); + if (str == "null" || str == "false" || str == "") { + return null; + } else if (str.lastIndexOf("ms") == str.length - 2) { + return parseFloat(str.substr(0, str.length - 2)); + } else if (str.lastIndexOf("s") == str.length - 1) { + return parseFloat(str.substr(0, str.length - 1)) * 1000; + } else { + return 1000; + } + } + + function getICAttributeSelector(attribute) { + return "[" + fixICAttributeName(attribute) + "]"; + } + + function initScrollHandler() { + if (_scrollHandler == null) { + _scrollHandler = function() { + $(getICAttributeSelector("ic-trigger-on='scrolled-into-view'")).each(function() { + var _this = $(this); + if (isScrolledIntoView(getTriggeredElement(_this)) && _this.data('ic-scrolled-into-view-loaded') != true) { + _this.data('ic-scrolled-into-view-loaded', true); + fireICRequest(_this); + } + }); + }; + $(window).scroll(_scrollHandler); + } + } + + function currentUrl() { + return window.location.pathname + window.location.search + window.location.hash; + } + + // taken from turbolinks.js + function createDocument(html) { + var doc = null; + if (/<(html|body)/i.test(html)) { + doc = document.documentElement.cloneNode(); + doc.innerHTML = html; + } else { + doc = document.documentElement.cloneNode(true); + doc.querySelector('body').innerHTML = html; + } + return $(doc); + } + + //============================================================ + // Request/Parameter/Include Processing + //============================================================ + function getTarget(elt) { + return getTargetImpl(elt, 'ic-target') + } + + function getTargetImpl(elt, attibuteName) { + var closest = $(elt).closest(getICAttributeSelector(attibuteName)); + var targetValue = getICAttribute(closest, attibuteName); + if (targetValue == 'this') { + return closest; + } else if (targetValue && targetValue.indexOf('this.') != 0) { + if (targetValue.indexOf('closest ') == 0) { + return elt.closest(targetValue.substr(8)); + } else if (targetValue.indexOf('find ') == 0) { + return elt.find(targetValue.substr(5)); + } else { + return $(targetValue); + } + } else { + return elt; + } + } + + function processHeaders(elt, xhr) { + elt = $(elt); + triggerEvent(elt, "beforeHeaders.ic", [elt, xhr]); + log(elt, "response headers: " + xhr.getAllResponseHeaders(), "DEBUG"); + var target = null; + + // set page title by header + if (xhr.getResponseHeader("X-IC-Title")) { + document.title = xhr.getResponseHeader("X-IC-Title"); + } + + if (xhr.getResponseHeader("X-IC-Title-Encoded")) { + var decodedTitle = decodeURIComponent((xhr.getResponseHeader("X-IC-Title-Encoded")).replace(/\+/g, '%20')); + document.title = decodedTitle; + } + + if (xhr.getResponseHeader("X-IC-Refresh")) { + var pathsToRefresh = xhr.getResponseHeader("X-IC-Refresh").split(","); + log(elt, "X-IC-Refresh: refreshing " + pathsToRefresh, "DEBUG"); + $.each(pathsToRefresh, function(i, str) { + refreshDependencies(str.replace(/ /g, ""), elt); + }); + } + + if (xhr.getResponseHeader("X-IC-Script")) { + log(elt, "X-IC-Script: evaling " + xhr.getResponseHeader("X-IC-Script"), "DEBUG"); + globalEval(xhr.getResponseHeader("X-IC-Script"), [["elt", elt]]); + } + + if (xhr.getResponseHeader("X-IC-Redirect")) { + log(elt, "X-IC-Redirect: redirecting to " + xhr.getResponseHeader("X-IC-Redirect"), "DEBUG"); + window.location = xhr.getResponseHeader("X-IC-Redirect"); + } + + if (xhr.getResponseHeader("X-IC-CancelPolling") == "true") { + cancelPolling(elt.closest(getICAttributeSelector('ic-poll'))); + } + + if (xhr.getResponseHeader("X-IC-ResumePolling") == "true") { + var pollingElt = elt.closest(getICAttributeSelector('ic-poll')); + setICAttribute(pollingElt, 'ic-pause-polling', null); + startPolling(pollingElt); + } + + if (xhr.getResponseHeader("X-IC-SetPollInterval")) { + var pollingElt = elt.closest(getICAttributeSelector('ic-poll')); + cancelPolling(pollingElt); + setICAttribute(pollingElt, 'ic-poll', xhr.getResponseHeader("X-IC-SetPollInterval")); + startPolling(pollingElt); + } + + if (xhr.getResponseHeader("X-IC-Open")) { + log(elt, "X-IC-Open: opening " + xhr.getResponseHeader("X-IC-Open"), "DEBUG"); + window.open(xhr.getResponseHeader("X-IC-Open")); + } + + var triggerValue = xhr.getResponseHeader("X-IC-Trigger"); + if (triggerValue) { + log(elt, "X-IC-Trigger: found trigger " + triggerValue, "DEBUG"); + target = getTarget(elt); + // Deprecated API + if (xhr.getResponseHeader("X-IC-Trigger-Data")) { + var triggerArgs = $.parseJSON(xhr.getResponseHeader("X-IC-Trigger-Data")); + triggerEvent(target, triggerValue, triggerArgs); + } else { + if (triggerValue.indexOf("{") >= 0) { + $.each($.parseJSON(triggerValue), function(event, args) { + triggerEvent(target, event, args); + }); + } else { + triggerEvent(target, triggerValue, []); + } + } + } + + var localVars = xhr.getResponseHeader("X-IC-Set-Local-Vars"); + if (localVars) { + $.each($.parseJSON(localVars), function(key, val) { + localStorage.setItem(key, val); + }); + } + + if (xhr.getResponseHeader("X-IC-Remove")) { + if (elt) { + var removeVal = xhr.getResponseHeader("X-IC-Remove"); + removeVal += ''; // normalize as string for zapto + var removeValAsInterval = parseInterval(removeVal); + log(elt, "X-IC-Remove header found.", "DEBUG"); + target = getTarget(elt); + if(removeVal == "true" || removeValAsInterval == null) { + remove(target); + } else { + target.addClass('ic-removing'); + setTimeout(function () { + remove(target); + }, removeValAsInterval); + } + } + } + + triggerEvent(elt, "afterHeaders.ic", [elt, xhr]); + + return true; + } + + + function beforeRequest(elt) { + elt.addClass('disabled'); + elt.addClass('ic-request-in-flight'); + elt.data('ic-request-in-flight', true); + } + + function requestCleanup(indicator, globalIndicator, elt) { + if (indicator.length > 0) { + hideIndicator(indicator); + } + if (globalIndicator.length > 0) { + hideIndicator(globalIndicator); + } + elt.removeClass('disabled'); + elt.removeClass('ic-request-in-flight'); + elt.data('ic-request-in-flight', false); + if (elt.data('ic-next-request')) { + elt.data('ic-next-request')["req"](); + elt.data('ic-next-request', null); + } + } + + function replaceOrAddMethod(data, actualMethod) { + if ($.type(data) === "string") { + var regex = /(&|^)_method=[^&]*/; + var content = "&_method=" + actualMethod; + if (regex.test(data)) { + return data.replace(regex, content) + } else { + return data + content; + } + } else { + data.append("_method", actualMethod); + return data; + } + } + + /* + Is the provided text a valid JavaScript identifier path? + + We should also probably check if an identifier is a JavaScript keyword here. + */ + function isIdentifier(txt) { + return /^[$A-Z_][0-9A-Z_$]*$/i.test(txt); + } + + /* + Evaluate a script snippet provided by the user. + + script: A string. If this is an identifier, it is assumed to be a callable, retrieved from the + global namespace, and called. If it is a compound statement, it is evaluated using eval. + args: A list of [name, value] tuples. These will be injected into the namespace of evaluated + scripts, and be passed as arguments to safe evaluations. + */ + // It would be nice to use the spread operator here globalEval(script, ...args) - but it breaks + // uglify and isn't supported in some older browsers. + function globalEval(script, args) { + var names = []; + var values = []; + if (args) { + for (var i = 0; i < args.length; i++) { + names.push(args[i][0]); + values.push(args[i][1]); + } + } + if (isIdentifier(script)) { + return window[script].apply(this, values); + } else { + var outerfunc = window["eval"].call( + window, + '(function (' + names.join(", ") + ') {' + script + '})' + ); + return outerfunc.apply(this, values); + } + } + + function closestAttrValue(elt, attr) { + var closestElt = $(elt).closest(getICAttributeSelector(attr)); + if (closestElt.length > 0) { + return getICAttribute(closestElt, attr); + } else { + return null; + } + } + + function formatError(e) { + var msg = e.toString() + "\n"; + try { + msg += e.stack; + } catch (e) { + // ignore + } + return msg; + } + + function handleRemoteRequest(elt, type, url, data, success) { + + beforeRequest(elt); + + data = replaceOrAddMethod(data, type); + + // Global spinner support + var globalIndicator = findGlobalIndicator(elt); + if (globalIndicator && globalIndicator.length > 0) { + showIndicator(globalIndicator); + } + + // Spinner support + var indicator = findIndicator(elt); + if (indicator.length > 0) { + showIndicator(indicator); + } + + var requestId = uuid(); + var requestStart = new Date(); + var actualRequestType; + if(USE_ACTUAL_HTTP_METHOD) { + actualRequestType = type; + } else { + actualRequestType = type == 'GET' ? 'GET' : 'POST'; + } + + var ajaxSetup = { + type: actualRequestType, + url: url, + data: data, + dataType: 'text', + headers: { + "Accept": "text/html-partial, */*; q=0.9", + "X-IC-Request": true, + "X-HTTP-Method-Override": type + }, + beforeSend: function(xhr, settings) { + triggerEvent(elt, "beforeSend.ic", [elt, data, settings, xhr, requestId]); + log(elt, "before AJAX request " + requestId + ": " + type + " to " + url, "DEBUG"); + var onBeforeSend = closestAttrValue(elt, 'ic-on-beforeSend'); + if (onBeforeSend) { + globalEval(onBeforeSend, [["elt", elt], ["data", data], ["settings", settings], ["xhr", xhr]]); + } + maybeInvokeLocalAction(elt, "-beforeSend"); + }, + success: function(data, textStatus, xhr) { + triggerEvent(elt, "success.ic", [elt, data, textStatus, xhr, requestId]); + log(elt, "AJAX request " + requestId + " was successful.", "DEBUG"); + var onSuccess = closestAttrValue(elt, 'ic-on-success'); + if (onSuccess) { + if (globalEval(onSuccess, [["elt", elt], ["data", data], ["textStatus", textStatus], ["xhr", xhr]]) == false) { + return; + } + } + + var beforeHeaders = new Date(); + var oldTitle = document.title; + try { + if (processHeaders(elt, xhr)) { + log(elt, "Processed headers for request " + requestId + " in " + (new Date() - beforeHeaders) + "ms", "DEBUG"); + var beforeSuccess = new Date(); + + if (xhr.getResponseHeader("X-IC-PushURL") || closestAttrValue(elt, 'ic-push-url') == "true") { + try { + requestCleanup(indicator, globalIndicator, elt); // clean up before snap-shotting HTML + var newUrl = xhr.getResponseHeader("X-IC-PushURL") || closestAttrValue(elt, 'ic-src'); + if(_history) { + _history.snapshotForHistory(newUrl, oldTitle); + } else { + throw "History support not enabled"; + } + } catch (e) { + log(elt, "Error during history snapshot for " + requestId + ": " + formatError(e), "ERROR"); + } + } + + success(data, textStatus, elt, xhr); + + log(elt, "Process content for request " + requestId + " in " + (new Date() - beforeSuccess) + "ms", "DEBUG"); + } + triggerEvent(elt, "after.success.ic", [elt, data, textStatus, xhr, requestId]); + maybeInvokeLocalAction(elt, "-success"); + } catch (e) { + log(elt, "Error processing successful request " + requestId + " : " + formatError(e), "ERROR"); + } + }, + error: function(xhr, status, str) { + triggerEvent(elt, "error.ic", [elt, status, str, xhr]); + var onError = closestAttrValue(elt, 'ic-on-error'); + if (onError) { + globalEval(onError, [["elt", elt], ["status", status], ["str", str], ["xhr", xhr]]); + } + processHeaders(elt, xhr); + maybeInvokeLocalAction(elt, "-error"); + log(elt, "AJAX request " + requestId + " to " + url + " experienced an error: " + str, "ERROR"); + }, + complete: function(xhr, status) { + log(elt, "AJAX request " + requestId + " completed in " + (new Date() - requestStart) + "ms", "DEBUG"); + requestCleanup(indicator, globalIndicator, elt); + try { + if ($.contains(document, elt[0])) { + triggerEvent(elt, "complete.ic", [elt, data, status, xhr, requestId]); + } else { + triggerEvent($('body'), "complete.ic", [elt, data, status, xhr, requestId]); + } + } catch (e) { + log(elt, "Error during complete.ic event for " + requestId + " : " + formatError(e), "ERROR"); + } + var onComplete = closestAttrValue(elt, 'ic-on-complete'); + if (onComplete) { + globalEval(onComplete, [["elt", elt], ["xhr", xhr], ["status", status]]); + } + maybeInvokeLocalAction(elt, "-complete"); + } + }; + if ($.type(data) != "string") { + ajaxSetup.dataType = null; + ajaxSetup.processData = false; + ajaxSetup.contentType = false; + } + + triggerEvent($(document), "beforeAjaxSend.ic", [ajaxSetup, elt]); + + if(ajaxSetup.cancel) { + requestCleanup(indicator, globalIndicator, elt); + } else { + $.ajax(ajaxSetup) + } + } + + function findGlobalIndicator(elt) { + var indicator = $([]); + elt = $(elt); + var attr = closestAttrValue(elt, 'ic-global-indicator'); + if (attr && attr !== "false") { + indicator = $(attr).first(); + } + return indicator; + } + + function findIndicator(elt) { + var indicator = $([]); + elt = $(elt); + if (getICAttribute(elt, 'ic-indicator')) { + indicator = $(getICAttribute(elt, 'ic-indicator')).first(); + } else { + indicator = elt.find(".ic-indicator").first(); + if (indicator.length == 0) { + var parent = closestAttrValue(elt, 'ic-indicator'); + if (parent) { + indicator = $(parent).first(); + } else { + if (elt.next().is('.ic-indicator')) { + indicator = elt.next(); + } + } + } + } + return indicator; + } + + function processIncludes(data, str) { + if ($.trim(str).indexOf("{") == 0) { + var obj = $.parseJSON(str); + $.each(obj, function(name, value) { + data = appendData(data, name, value); + }); + } else { + $(str).each(function() { + var obj = $(this).serializeArray(); + $.each(obj, function(i, input) { + data = appendData(data, input.name, input.value); + }); + }); + } + return data; + } + + function processLocalVars(data, str) { + $(str.split(",")).each(function() { + var key = $.trim(this); + var item = localStorage.getItem(key); + if(item) { + data = appendData(data, key, item); + } + }); + return data; + } + + function appendData(data, string, value) { + if ($.type(data) === "string") { + if($.type(value) !== "string") { + value = JSON.stringify(value); + } + return data + "&" + string + "=" + encodeURIComponent(value); + } else { + data.append(string, value); + return data; + } + } + + function getParametersForElement(verb, elt, triggerOrigin) { + var target = getTarget(elt); + var data = null; + + if (elt.is('form') && elt.attr('enctype') == 'multipart/form-data') { + data = new FormData(elt[0]); + data = appendData(data, 'ic-request', true); + } else { + data = "ic-request=true"; + // if the element is in a form, include the entire form + var closestForm = elt.closest('form'); + if (elt.is('form') || (verb != "GET" && closestForm.length > 0)) { + data += "&" + closestForm.serialize(); + // include data from a focused button (to capture clicked button value) + var buttonData = elt.data('ic-last-clicked-button'); + if(buttonData) { + data = appendData(data, buttonData.name, buttonData.value); + } + } else { // otherwise include the element + data += "&" + elt.serialize(); + } + } + + var promptText = closestAttrValue(elt, 'ic-prompt'); + if (promptText) { + var promptVal = prompt(promptText); + if (promptVal) { + var promptParamName = closestAttrValue(elt, 'ic-prompt-name') || 'ic-prompt-value'; + data = appendData(data, promptParamName, promptVal); + } else { + return null; + } + } + + if (elt.attr('id')) { + data = appendData(data, 'ic-element-id', elt.attr('id')); + } + if (elt.attr('name')) { + data = appendData(data, 'ic-element-name', elt.attr('name')); + } + if (getICAttribute(target, 'ic-id')) { + data = appendData(data, 'ic-id', getICAttribute(target, 'ic-id')); + } + if (target.attr('id')) { + data = appendData(data, 'ic-target-id', target.attr('id')); + } + if (triggerOrigin && triggerOrigin.attr('id')) { + data = appendData(data, 'ic-trigger-id', triggerOrigin.attr('id')); + } + if (triggerOrigin && triggerOrigin.attr('name')) { + data = appendData(data, 'ic-trigger-name', triggerOrigin.attr('name')); + } + var includeAttr = closestAttrValue(elt, 'ic-include'); + if (includeAttr) { + data = processIncludes(data, includeAttr); + } + var localVars = closestAttrValue(elt, 'ic-local-vars'); + if (localVars) { + data = processLocalVars(data, localVars); + } + $(getICAttributeSelector('ic-global-include')).each(function() { + data = processIncludes(data, getICAttribute($(this), 'ic-global-include')); + }); + data = appendData(data, 'ic-current-url', currentUrl()); + + var selectFromResp = closestAttrValue(elt, 'ic-select-from-response'); + if(selectFromResp) { + data = appendData(data, 'ic-select-from-response', selectFromResp); + } + + log(elt, "request parameters " + data, "DEBUG"); + + return data; + } + + function maybeSetIntercoolerInfo(elt) { + var target = getTarget(elt); + getIntercoolerId(target); + if (elt.data('elementAdded.ic') != true) { + elt.data('elementAdded.ic', true); + triggerEvent(elt, "elementAdded.ic"); + } + } + + function getIntercoolerId(elt) { + if (!getICAttribute(elt, 'ic-id')) { + setICAttribute(elt, 'ic-id', uuid()); + } + return getICAttribute(elt, 'ic-id'); + } + + //============================================================ + // Tree Processing + //============================================================ + + function processNodes(elt) { + elt = $(elt); + if (elt.length > 1) { + elt.each(function() { + processNodes(this); + }); + } else { + processMacros(elt); + processEnhancement(elt); + processSources(elt); + processPolling(elt); + processEventSources(elt); + processTriggerOn(elt); + processRemoveAfter(elt); + processAddClasses(elt); + processRemoveClasses(elt); + } + } + + function fireReadyStuff(elt) { + triggerEvent(elt, 'nodesProcessed.ic'); + $.each(_readyHandlers, function(i, handler) { + try { + handler(elt); + } catch (e) { + log(elt, formatError(e), "ERROR"); + } + }); + } + + function autoFocus(elt) { + elt.find('[autofocus]').last().focus(); + } + + function processMacros(elt) { + $.each(_MACROS, function(i, macro) { + if (elt.closest('.ic-ignore').length == 0) { + if (elt.is('[' + macro + ']')) { + processMacro(macro, elt); + } + elt.find('[' + macro + ']').each(function() { + var _this = $(this); + if (_this.closest('.ic-ignore').length == 0) { + processMacro(macro, _this); + } + }); + } + }); + } + + function processSources(elt) { + if (elt.closest('.ic-ignore').length == 0) { + if (elt.is(getICAttributeSelector("ic-src"))) { + maybeSetIntercoolerInfo(elt); + } + elt.find(getICAttributeSelector("ic-src")).each(function() { + var _this = $(this); + if (_this.closest('.ic-ignore').length == 0) { + maybeSetIntercoolerInfo(_this); + } + }); + } + } + + function processPolling(elt) { + if (elt.closest('.ic-ignore').length == 0) { + if (elt.is(getICAttributeSelector("ic-poll"))) { + maybeSetIntercoolerInfo(elt); + startPolling(elt); + } + elt.find(getICAttributeSelector("ic-poll")).each(function() { + var _this = $(this); + if (_this.closest('.ic-ignore').length == 0) { + maybeSetIntercoolerInfo(_this); + startPolling(_this); + } + }); + } + } + + function processTriggerOn(elt) { + if (elt.closest('.ic-ignore').length == 0) { + handleTriggerOn(elt); + elt.find(getICAttributeSelector('ic-trigger-on')).each(function() { + var _this = $(this); + if (_this.closest('.ic-ignore').length == 0) { + handleTriggerOn(_this); + } + }); + } + } + + function processRemoveAfter(elt) { + if (elt.closest('.ic-ignore').length == 0) { + handleRemoveAfter(elt); + elt.find(getICAttributeSelector('ic-remove-after')).each(function() { + var _this = $(this); + if (_this.closest('.ic-ignore').length == 0) { + handleRemoveAfter(_this); + } + }); + } + } + + function processAddClasses(elt) { + if (elt.closest('.ic-ignore').length == 0) { + handleAddClasses(elt); + elt.find(getICAttributeSelector('ic-add-class')).each(function() { + var _this = $(this); + if (_this.closest('.ic-ignore').length == 0) { + handleAddClasses(_this); + } + }); + } + } + + function processRemoveClasses(elt) { + if (elt.closest('.ic-ignore').length == 0) { + handleRemoveClasses(elt); + elt.find(getICAttributeSelector('ic-remove-class')).each(function() { + var _this = $(this); + if (_this.closest('.ic-ignore').length == 0) { + handleRemoveClasses(_this); + } + }); + } + } + + function processEnhancement(elt) { + if (elt.closest('.ic-ignore').length == 0) { + if(closestAttrValue(elt, 'ic-enhance') === 'true') { + enhanceDomTree(elt); + } else { + elt.find(getICAttributeSelector('ic-enhance')).each(function(){ + enhanceDomTree($(this)); + }); + } + } + } + + function processEventSources(elt) { + if (elt.closest('.ic-ignore').length == 0) { + handleEventSource(elt); + elt.find(getICAttributeSelector('ic-sse-src')).each(function() { + var _this = $(this); + if (_this.closest('.ic-ignore').length == 0) { + handleEventSource(_this); + } + }); + } + } + + //============================================================ + // Polling support + //============================================================ + + function startPolling(elt) { + if (elt.data('ic-poll-interval-id') == null && getICAttribute(elt, 'ic-pause-polling') != 'true') { + var interval = parseInterval(getICAttribute(elt, 'ic-poll')); + if (interval != null) { + var selector = icSelectorFor(elt); + var repeats = parseInt(getICAttribute(elt, 'ic-poll-repeats')) || -1; + var currentIteration = 0; + log(elt, "POLL: Starting poll for element " + selector, "DEBUG"); + var timerId = setInterval(function() { + var target = $(selector); + triggerEvent(elt, "onPoll.ic", target); + if ((target.length == 0) || (currentIteration == repeats) || elt.data('ic-poll-interval-id') != timerId) { + log(elt, "POLL: Clearing poll for element " + selector, "DEBUG"); + clearTimeout(timerId); + } else { + fireICRequest(target); + } + currentIteration++; + }, interval); + elt.data('ic-poll-interval-id', timerId); + } + } + } + + function cancelPolling(elt) { + if (elt.data('ic-poll-interval-id') != null) { + clearTimeout(elt.data('ic-poll-interval-id')); + elt.data('ic-poll-interval-id', null); + } + } + + //============================================================---- + // Dependency support + //============================================================---- + + function refreshDependencies(dest, src) { + log(src, "refreshing dependencies for path " + dest, "DEBUG"); + $(getICAttributeSelector('ic-src')).each(function() { + var fired = false; + var _this = $(this); + if (verbFor(_this) == "GET" && getICAttribute(_this, 'ic-deps') != 'ignore' ) { + if (isDependent(dest, getICAttribute(_this, 'ic-src'))) { + if (src == null || $(src)[0] != _this[0]) { + fireICRequest(_this); + fired = true; + } + } else if (isICDepsDependent(dest, getICAttribute(_this, 'ic-deps')) || getICAttribute(_this, 'ic-deps') == "*") { + if (src == null || $(src)[0] != _this[0]) { + fireICRequest(_this); + fired = true; + } + } + } + if (fired) { + log(_this, "depends on path " + dest + ", refreshing...", "DEBUG") + } + }); + } + + function isICDepsDependent(src, dest) { + if(dest) { + var paths = dest.split(","); + for (var i = 0; i < paths.length; i++) { + var str = paths[i].trim(); + if(isDependent(src, str)) { + return true; + } + } + } + return false; + } + + function isDependent(src, dest) { + return !!_isDependentFunction(src, dest); + } + + //============================================================---- + // Trigger-On support + //============================================================---- + + function verbFor(elt) { + elt = $(elt); + if (getICAttribute(elt, 'ic-verb')) { + return getICAttribute(elt, 'ic-verb').toUpperCase(); + } + return "GET"; + } + + function eventFor(attr, elt) { + if (attr == "default") { + elt = $(elt); + if (elt.is('button')) { + return 'click'; + } else if (elt.is('form')) { + return 'submit'; + } else if (elt.is('input, textarea, select, button')) { + return 'change'; + } else { + return 'click'; + } + } else { + return attr; + } + } + + function preventDefault(elt, evt) { + return elt.is('form') || + (elt.is('input[type="submit"], button') && elt.closest('form').length == 1) || + (elt.is('a') && elt.is('[href]') && elt.attr('href').indexOf('#') != 0); + } + + function handleRemoveAfter(elt) { + elt = $(elt); + if (getICAttribute(elt, 'ic-remove-after')) { + var interval = parseInterval(getICAttribute(elt, 'ic-remove-after')); + setTimeout(function() { + remove(elt); + }, interval); + } + } + + function parseAndApplyClass(classInfo, elt, operation) { + var cssClass = ""; + var delay = 50; + if (classInfo.indexOf(":") > 0) { + var split = classInfo.split(':'); + cssClass = split[0]; + delay = parseInterval(split[1]); + } else { + cssClass = classInfo; + } + setTimeout(function() { + elt[operation](cssClass) + }, delay); + } + + function handleAddClasses(elt) { + elt = $(elt); + if (getICAttribute(elt, 'ic-add-class')) { + var values = getICAttribute(elt, 'ic-add-class').split(","); + var arrayLength = values.length; + for (var i = 0; i < arrayLength; i++) { + parseAndApplyClass($.trim(values[i]), elt, 'addClass'); + } + } + } + + function handleRemoveClasses(elt) { + elt = $(elt); + if (getICAttribute(elt, 'ic-remove-class')) { + var values = getICAttribute(elt, 'ic-remove-class').split(","); + var arrayLength = values.length; + for (var i = 0; i < arrayLength; i++) { + parseAndApplyClass($.trim(values[i]), elt, 'removeClass'); + } + } + } + + function handleEventSource(elt) { + elt = $(elt); + if (getICAttribute(elt, 'ic-sse-src')) { + var evtSrcUrl = getICAttribute(elt, 'ic-sse-src'); + var eventSource = initEventSource(elt, evtSrcUrl); + elt.data('ic-event-sse-source', eventSource); + elt.data('ic-event-sse-map', {}); + } + } + + function initEventSource(elt, evtSrcUrl) { + var eventSource = Intercooler._internal.initEventSource(evtSrcUrl); + eventSource.onmessage = function(e) { + processICResponse(e.data, elt, false); + }; + return eventSource; + } + + function registerSSE(sourceElement, event) { + var source = sourceElement.data('ic-event-sse-source'); + var eventMap = sourceElement.data('ic-event-sse-map'); + if(source.addEventListener && eventMap[event] != true) { + source.addEventListener(event, function(){ + sourceElement.find(getICAttributeSelector('ic-trigger-on')).each(function(){ + var _that = $(this); + if(_that.attr('ic-trigger-on') == "sse:" + event) { + fireICRequest(_that); + } + }); + }) + } + } + + function getTriggeredElement(elt) { + var triggerFrom = getICAttribute(elt, 'ic-trigger-from'); + if(triggerFrom) { + if (triggerFrom == "document") { + return $(document); + } else if (triggerFrom == "window") { + return $(window); + } else { + return $(triggerFrom); + } + } else { + return elt; + } + } + + function handleTriggerOn(elt) { + if (getICAttribute(elt, 'ic-trigger-on')) { + // record button or submit input click info + if(elt.is('form')) { + elt.on('click focus', 'input, button, select, textarea', function(e){ + if($(this).is('input[type="submit"], button') && $(this).is("[name]")) { + elt.data('ic-last-clicked-button', {name:$(this).attr("name"), value:$(this).val()}) + } else { + elt.data('ic-last-clicked-button', null) + } + }); + } + if (getICAttribute(elt, 'ic-trigger-on') == 'load') { + fireICRequest(elt); + } else if (getICAttribute(elt, 'ic-trigger-on') == 'scrolled-into-view') { + initScrollHandler(); + setTimeout(function() { + triggerEvent($(window), 'scroll'); + }, 100); // Trigger a scroll in case element is already viewable + } else { + var triggerOn = getICAttribute(elt, 'ic-trigger-on').split(" "); + if(triggerOn[0].indexOf("sse:") == 0) { + //Server-sent event, find closest event source and register for it + var sourceElt = elt.closest(getICAttributeSelector('ic-sse-src')); + if(sourceElt.length > 0) { + registerSSE(sourceElt, triggerOn[0].substr(4)) + } + } else { + var triggerOn = getICAttribute($(elt), 'ic-trigger-on').split(" "); + var event = eventFor(triggerOn[0], $(elt)); + $(getTriggeredElement(elt)).on(event, function(e) { + var onBeforeTrigger = closestAttrValue(elt, 'ic-on-beforeTrigger'); + if (onBeforeTrigger) { + if (globalEval(onBeforeTrigger, [["elt", elt], ["evt", e], ["elt", elt]]) == false) { + log(elt, "ic-trigger cancelled by ic-on-beforeTrigger", "DEBUG"); + return false; + } + } + + if (triggerOn[1] == 'changed') { + var currentVal = elt.val(); + var previousVal = elt.data('ic-previous-val'); + elt.data('ic-previous-val', currentVal); + if (currentVal != previousVal) { + fireICRequest(elt); + } + } else if (triggerOn[1] == 'once') { + var alreadyTriggered = elt.data('ic-already-triggered'); + elt.data('ic-already-triggered', true); + if (alreadyTriggered !== true) { + fireICRequest(elt); + } + } else { + fireICRequest(elt); + } + if (preventDefault(elt, e)) { + e.preventDefault(); + return false; + } + return true; + }); + if(event && (event.indexOf("timeout:") == 0)) { + setTimeout(function () { + $(getTriggeredElement(elt)).trigger(event); + }, parseInterval(event.split(":")[1])); + } + } + } + } + } + + //============================================================---- + // Macro support + //============================================================---- + + function macroIs(macro, constant) { + return macro == fixICAttributeName(constant); + } + + function processMacro(macro, elt) { + // action attributes + if (macroIs(macro, 'ic-post-to')) { + setIfAbsent(elt, 'ic-src', getICAttribute(elt, 'ic-post-to')); + setIfAbsent(elt, 'ic-verb', 'POST'); + setIfAbsent(elt, 'ic-trigger-on', 'default'); + setIfAbsent(elt, 'ic-deps', 'ignore'); + } + if (macroIs(macro, 'ic-put-to')) { + setIfAbsent(elt, 'ic-src', getICAttribute(elt, 'ic-put-to')); + setIfAbsent(elt, 'ic-verb', 'PUT'); + setIfAbsent(elt, 'ic-trigger-on', 'default'); + setIfAbsent(elt, 'ic-deps', 'ignore'); + } + if (macroIs(macro, 'ic-patch-to')) { + setIfAbsent(elt, 'ic-src', getICAttribute(elt, 'ic-patch-to')); + setIfAbsent(elt, 'ic-verb', 'PATCH'); + setIfAbsent(elt, 'ic-trigger-on', 'default'); + setIfAbsent(elt, 'ic-deps', 'ignore'); + } + if (macroIs(macro, 'ic-get-from')) { + setIfAbsent(elt, 'ic-src', getICAttribute(elt, 'ic-get-from')); + setIfAbsent(elt, 'ic-trigger-on', 'default'); + setIfAbsent(elt, 'ic-deps', 'ignore'); + } + if (macroIs(macro, 'ic-delete-from')) { + setIfAbsent(elt, 'ic-src', getICAttribute(elt, 'ic-delete-from')); + setIfAbsent(elt, 'ic-verb', 'DELETE'); + setIfAbsent(elt, 'ic-trigger-on', 'default'); + setIfAbsent(elt, 'ic-deps', 'ignore'); + } + + if (macroIs(macro, 'ic-action')) { + setIfAbsent(elt, 'ic-trigger-on', 'default'); + } + + // non-action attributes + var value = null; + var url = null; + if (macroIs(macro, 'ic-style-src')) { + value = getICAttribute(elt, 'ic-style-src').split(":"); + var styleAttribute = value[0]; + url = value[1]; + setIfAbsent(elt, 'ic-src', url); + setIfAbsent(elt, 'ic-target', 'this.style.' + styleAttribute); + } + if (macroIs(macro, 'ic-attr-src')) { + value = getICAttribute(elt, 'ic-attr-src').split(":"); + var attribute = value[0]; + url = value[1]; + setIfAbsent(elt, 'ic-src', url); + setIfAbsent(elt, 'ic-target', 'this.' + attribute); + } + if (macroIs(macro, 'ic-prepend-from')) { + setIfAbsent(elt, 'ic-src', getICAttribute(elt, 'ic-prepend-from')); + setIfAbsent(elt, 'ic-swap-style', 'prepend'); + } + if (macroIs(macro, 'ic-append-from')) { + setIfAbsent(elt, 'ic-src', getICAttribute(elt, 'ic-append-from')); + setIfAbsent(elt, 'ic-swap-style', 'append'); + } + } + + function isLocalLink(anchor) { + return location.hostname === anchor[0].hostname && + anchor.attr('href') && + !anchor.attr('href').startsWith("#") + } + + function enhanceAnchor(anchor) { + if (closestAttrValue(anchor, 'ic-enhance') === "true") { + if (isLocalLink(anchor)) { + setIfAbsent(anchor, 'ic-src', anchor.attr('href')); + setIfAbsent(anchor, 'ic-trigger-on', 'default'); + setIfAbsent(anchor, 'ic-deps', 'ignore'); + setIfAbsent(anchor, 'ic-push-url', 'true'); + } + } + } + + function determineFormVerb(form) { + return form.find('input[name="_method"]').val() || form.attr('method') || form[0].method; + } + + function enhanceForm(form) { + if (closestAttrValue(form, 'ic-enhance') === "true") { + setIfAbsent(form, 'ic-src', form.attr('action')); + setIfAbsent(form, 'ic-trigger-on', 'default'); + setIfAbsent(form, 'ic-deps', 'ignore'); + setIfAbsent(form, 'ic-verb', determineFormVerb(form)); + } + } + + function enhanceDomTree(elt) { + if(elt.is('a')) { + enhanceAnchor(elt); + } + elt.find('a').each(function(){ + enhanceAnchor($(this)); + }); + if(elt.is('form')){ + enhanceForm(elt); + } + elt.find('form').each(function(){ + enhanceForm($(this)); + }); + } + + function setIfAbsent(elt, attr, value) { + if (getICAttribute(elt, attr) == null) { + setICAttribute(elt, attr, value); + } + } + + //============================================================---- + // Utilities + //============================================================---- + + function isScrolledIntoView(elem) { + elem = $(elem); + if (elem.height() == 0 && elem.width() == 0) { + return false; + } + var docViewTop = $(window).scrollTop(); + var docViewBottom = docViewTop + $(window).height(); + + var elemTop = elem.offset().top; + var elemBottom = elemTop + elem.height(); + + return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom) + && (elemBottom <= docViewBottom) && (elemTop >= docViewTop)); + } + + function maybeScrollToTarget(elt, target) { + if (closestAttrValue(elt, 'ic-scroll-to-target') != "false" && + (closestAttrValue(elt, 'ic-scroll-to-target') == 'true' || + closestAttrValue(target, 'ic-scroll-to-target') == 'true')) { + var offset = -50; // -50 px default offset padding + if (closestAttrValue(elt, 'ic-scroll-offset')) { + offset = parseInt(closestAttrValue(elt, 'ic-scroll-offset')); + } else if (closestAttrValue(target, 'ic-scroll-offset')) { + offset = parseInt(closestAttrValue(target, 'ic-scroll-offset')); + } + var currentPosition = target.offset().top; + var portalTop = $(window).scrollTop(); + var portalEnd = portalTop + window.innerHeight; + //if the current top of this element is not visible, scroll it to the top position + if (currentPosition < portalTop || currentPosition > portalEnd) { + offset += currentPosition; + $('html,body').animate({scrollTop: offset}, 400); + } + } + } + + function getTransitionDuration(elt, target) { + var transitionDuration = closestAttrValue(elt, 'ic-transition-duration'); + if (transitionDuration) { + return parseInterval(transitionDuration); + } + transitionDuration = closestAttrValue(target, 'ic-transition-duration'); + if (transitionDuration) { + return parseInterval(transitionDuration); + } + target = $(target); + var duration = 0; + var durationStr = target.css('transition-duration'); + if (durationStr) { + duration += parseInterval(durationStr); + } + var delayStr = target.css('transition-delay'); + if (delayStr) { + duration += parseInterval(delayStr); + } + return duration; + } + + function closeSSESource(elt) { + var src = elt.data('ic-event-sse-source'); + try { + if(src) { + src.close(); + } + } catch (e) { + log(elt, "Error closing ServerSentEvent source" + e, "ERROR"); + } + } + + function beforeSwapCleanup(target) { + target.find(getICAttributeSelector('ic-sse-src')).each(function() { + closeSSESource($(this)); + }); + triggerEvent(target, 'beforeSwap.ic'); + } + + function processICResponse(responseContent, elt, forHistory, url) { + if (responseContent && responseContent != "" && responseContent != " ") { + + log(elt, "response content: \n" + responseContent, "DEBUG"); + var target = getTarget(elt); + + var transformer = closestAttrValue(elt, 'ic-transform-response'); + if(transformer) { + responseContent = globalEval(transformer, [["content", responseContent], ["url", url], ["elt", elt]]); + } + + var contentToSwap = maybeFilter(responseContent, closestAttrValue(elt, 'ic-select-from-response')); + + if (closestAttrValue(elt, 'ic-fix-ids') == "true") { + fixIDs(contentToSwap); + } + + var doSwap = function() { + if (closestAttrValue(elt, 'ic-replace-target') == "true") { + try { + beforeSwapCleanup(target); + closeSSESource(target); + target.replaceWith(contentToSwap); + target = contentToSwap; + } catch (e) { + log(elt, formatError(e), "ERROR"); + } + processNodes(contentToSwap); + fireReadyStuff(target); + autoFocus(target); + } else { + if (getICAttribute(elt, 'ic-swap-style') == "prepend") { + prepend(target, contentToSwap); + processNodes(contentToSwap); + fireReadyStuff(target); + autoFocus(target); + } else if (getICAttribute(elt, 'ic-swap-style') == "append") { + append(target, contentToSwap); + processNodes(contentToSwap); + fireReadyStuff(target); + autoFocus(target); + } else { + try { + beforeSwapCleanup(target); + target.empty().append(contentToSwap); + } catch (e) { + log(elt, formatError(e), "ERROR"); + } + target.children().each(function() { + processNodes(this); + }); + fireReadyStuff(target); + autoFocus(target); + } + if (forHistory != true) { + maybeScrollToTarget(elt, target); + } + + var switchClass = elt.closest(getICAttributeSelector('ic-switch-class')); + var classToSwitch = switchClass.attr(fixICAttributeName('ic-switch-class')); + if(classToSwitch) { + switchClass.children().removeClass(classToSwitch); + switchClass.children().each(function(){ + if($.contains($(this)[0], $(elt)[0]) || $(this)[0] == $(elt)[0]) { + $(this).addClass(classToSwitch); + $(this).addClass(classToSwitch); + } + }) + } + + } + }; + + if (target.length == 0) { + //TODO cgross - refactor getTarget to return printable string here + log(elt, "Invalid target for element: " + getICAttribute(elt.closest(getICAttributeSelector('ic-target')), 'ic-target'), "ERROR"); + return; + } + + var delay = getTransitionDuration(elt, target); + target.addClass('ic-transitioning'); + setTimeout(function() { + try { + doSwap(); + } catch (e) { + log(elt, "Error during content swap : " + formatError(e), "ERROR"); + } + setTimeout(function() { + try { + target.removeClass('ic-transitioning'); + if(_history) { + _history.updateHistory(); + } + triggerEvent(target, "complete_transition.ic", [target]); + } catch (e) { + log(elt, "Error during transition complete : " + formatError(e), "ERROR"); + } + }, 20); + }, delay); + } else { + log(elt, "Empty response, nothing to do here.", "DEBUG"); + } + } + + function maybeFilter(newContent, filter) { + var asQuery; + if ($.zepto) { + var newDoc = createDocument(newContent); + asQuery = $(newDoc).find('body').contents(); + } else { + asQuery = $($.parseHTML(newContent, null, true)); + } + if (filter) { + return walkTree(asQuery, filter).contents(); + } else { + return asQuery; + } + } + + function walkTree(elt, filter) { + return elt.filter(filter).add(elt.find(filter)); + } + + function fixIDs(contentToSwap) { + var fixedIDs = {}; + walkTree(contentToSwap, "[id]").each(function() { + var originalID = $(this).attr("id"); + var fixedID; + do { + fixedID = "ic-fixed-id-" + uuid(); + } while ($("#" + fixedID).length > 0); + fixedIDs[originalID] = fixedID; + $(this).attr("id", fixedID); + }); + walkTree(contentToSwap, "label[for]").each(function () { + var originalID = $(this).attr("for"); + $(this).attr("for", fixedIDs[originalID] || originalID); + }); + walkTree(contentToSwap, "*").each(function () { + $.each(this.attributes, function () { + if (this.value.indexOf("#") !== -1) { + this.value = this.value.replace(/#([-_A-Za-z0-9]+)/g, function(match, originalID) { + return "#" + (fixedIDs[originalID] || originalID); + }); + } + }) + }); + } + + function getStyleTarget(elt) { + var val = closestAttrValue(elt, 'ic-target'); + if (val && val.indexOf("this.style.") == 0) { + return val.substr(11) + } else { + return null; + } + } + + function getAttrTarget(elt) { + var val = closestAttrValue(elt, 'ic-target'); + if (val && val.indexOf("this.") == 0) { + return val.substr(5) + } else { + return null; + } + } + + function fireICRequest(elt, alternateHandler) { + elt = $(elt); + + var triggerOrigin = elt; + if (!elt.is(getICAttributeSelector('ic-src')) && getICAttribute(elt, 'ic-action') == undefined) { + elt = elt.closest(getICAttributeSelector('ic-src')); + } + + var confirmText = closestAttrValue(elt, 'ic-confirm'); + if (confirmText) { + if (!confirm(confirmText)) { + return; + } + } + + if("true" == closestAttrValue(elt, 'ic-disable-when-doc-hidden')) { + if(document['hidden']) { + return; + } + } + + if("true" == closestAttrValue(elt, 'ic-disable-when-doc-inactive')) { + if(!document.hasFocus()) { + return; + } + } + + if (elt.length > 0) { + var icEventId = uuid(); + elt.data('ic-event-id', icEventId); + var invokeRequest = function() { + + // if an existing request is in flight for this element, push this request as the next to be executed + if (elt.data('ic-request-in-flight') == true) { + elt.data('ic-next-request', {"req" : invokeRequest}); + return; + } + + if (elt.data('ic-event-id') == icEventId) { + var styleTarget = getStyleTarget(elt); + var attrTarget = styleTarget ? null : getAttrTarget(elt); + var verb = verbFor(elt); + var url = getICAttribute(elt, 'ic-src'); + if (url) { + var success = alternateHandler || function(data) { + if (styleTarget) { + elt.css(styleTarget, data); + } else if (attrTarget) { + elt.attr(attrTarget, data); + } else { + processICResponse(data, elt, false, url); + if (verb != 'GET') { + refreshDependencies(getICAttribute(elt, 'ic-src'), elt); + } + } + }; + var data = getParametersForElement(verb, elt, triggerOrigin); + if(data) { + handleRemoteRequest(elt, verb, url, data, success); + } + } + maybeInvokeLocalAction(elt, ""); + } + }; + + var triggerDelay = closestAttrValue(elt, 'ic-trigger-delay'); + if (triggerDelay) { + setTimeout(invokeRequest, parseInterval(triggerDelay)); + } else { + invokeRequest(); + } + } + } + + function maybeInvokeLocalAction(elt, modifier) { + var actions = getICAttribute(elt, 'ic' + modifier + '-action'); + if (actions) { + invokeLocalAction(elt, actions, modifier); + } + } + + function invokeLocalAction(elt, actions, modifier) { + var actionTargetVal = closestAttrValue(elt, 'ic' + modifier + '-action-target'); + if(actionTargetVal === null && modifier !== "") { + actionTargetVal = closestAttrValue(elt, 'ic-action-target'); + } + + var target = null; + if(actionTargetVal) { + target = getTargetImpl(elt, 'ic-action-target'); + } else { + target = getTarget(elt); + } + var actionArr = actions.split(";"); + + var actionsArr = []; + var delay = 0; + + $.each(actionArr, function(i, actionStr) { + var actionDef = $.trim(actionStr); + var action = actionDef; + var actionArgs = []; + if (actionDef.indexOf(":") > 0) { + action = actionDef.substr(0, actionDef.indexOf(":")); + actionArgs = computeArgs(actionDef.substr(actionDef.indexOf(":") + 1, actionDef.length)); + } + if (action == "") { + // ignore blanks + } else if (action == "delay") { + if (delay == null) { + delay = 0; + } + delay += parseInterval(actionArgs[0] + ""); // custom interval increase + } else { + if (delay == null) { + delay = 420; // 420ms default interval increase (400ms jQuery default + 20ms slop) + } + actionsArr.push([delay, makeApplyAction(target, action, actionArgs)]); + delay = null; + } + }); + + delay = 0; + $.each(actionsArr, function(i, action) { + delay += action[0]; + setTimeout(action[1], delay); + }); + } + + function computeArgs(args) { + try { + return eval("[" + args + "]") + } catch (e) { + return [$.trim(args)]; + } + } + + function makeApplyAction(target, action, args) { + return function() { + var func = target[action] || window[action]; + if (func) { + func.apply(target, args); + } else { + log(target, "Action " + action + " was not found", "ERROR"); + } + }; + } + + //============================================================ + // History Support + //============================================================ + + function newIntercoolerHistory(storage, history, slotLimit, historyVersion) { + + /* Constants */ + var HISTORY_SUPPORT_SLOT = 'ic-history-support'; + var HISTORY_SLOT_PREFIX = "ic-hist-elt-"; + + /* Instance Vars */ + var historySupportData = JSON.parse(storage.getItem(HISTORY_SUPPORT_SLOT)); + var _snapshot = null; + + // Reset history if the history config has changed + if (historyConfigHasChanged(historySupportData)) { + log(getTargetForHistory($('body')), "Intercooler History configuration changed, clearing history", "INFO"); + clearHistory(); + } + + if (historySupportData == null) { + historySupportData = { + slotLimit: slotLimit, + historyVersion: historyVersion, + lruList: [] + }; + } + + /* Instance Methods */ + function historyConfigHasChanged(historySupportData) { + return historySupportData == null || + historySupportData.slotLimit != slotLimit || + historySupportData.historyVersion != historyVersion || + historySupportData.lruList == null + } + + function clearHistory() { + var keys = []; + for (var i = 0; i < storage.length; i++) { + if (storage.key(i).indexOf(HISTORY_SLOT_PREFIX) == 0) { + keys.push(storage.key(i)); + } + } + for (var j = 0; j < keys.length; j++) { + storage.removeItem(keys[j]); + } + storage.removeItem(HISTORY_SUPPORT_SLOT); + historySupportData = { + slotLimit: slotLimit, + historyVersion: historyVersion, + lruList: [] + }; + } + + function updateLRUList(url) { + var lruList = historySupportData.lruList; + var currentIndex = lruList.indexOf(url); + var t = getTargetForHistory($('body')); + // found in current list, shift it to the end + if (currentIndex >= 0) { + log(t, "URL found in LRU list, moving to end", "INFO"); + lruList.splice(currentIndex, 1); + lruList.push(url); + } else { + // not found, add and shift if necessary + log(t, "URL not found in LRU list, adding", "INFO"); + lruList.push(url); + if (lruList.length > historySupportData.slotLimit) { + var urlToDelete = lruList.shift(); + log(t, "History overflow, removing local history for " + urlToDelete, "INFO"); + storage.removeItem(HISTORY_SLOT_PREFIX + urlToDelete); + } + } + + // save history metadata + storage.setItem(HISTORY_SUPPORT_SLOT, JSON.stringify(historySupportData)); + return lruList; + } + + function saveHistoryData(restorationData) { + var content = JSON.stringify(restorationData); + try { + storage.setItem(restorationData.id, content); + } catch (e) { + //quota error, nuke local cache + try { + clearHistory(); + storage.setItem(restorationData.id, content); + } catch (e) { + log(getTargetForHistory($('body')), "Unable to save intercooler history with entire history cleared, is something else eating " + + "local storage? History Limit:" + slotLimit, "ERROR"); + } + } + } + + function makeHistoryEntry(html, yOffset, url, title) { + var restorationData = { + "url": url, + "id": HISTORY_SLOT_PREFIX + url, + "content": html, + "yOffset": yOffset, + "timestamp": new Date().getTime(), + "title": title + }; + updateLRUList(url); + // save to the history slot + saveHistoryData(restorationData); + return restorationData; + } + + function addPopStateHandler(windowToAdd) { + if (windowToAdd.onpopstate == null || windowToAdd.onpopstate['ic-on-pop-state-handler'] != true) { + var currentOnPopState = windowToAdd.onpopstate; + windowToAdd.onpopstate = function(event) { + triggerEvent(getTargetForHistory($('body')), 'handle.onpopstate.ic'); + if (!handleHistoryNavigation(event)) { + if (currentOnPopState) { + currentOnPopState(event); + } + } + triggerEvent(getTargetForHistory($('body')), 'pageLoad.ic'); + }; + windowToAdd.onpopstate['ic-on-pop-state-handler'] = true; + } + } + + function updateHistory() { + if (_snapshot) { + pushUrl(_snapshot.newUrl, currentUrl(), _snapshot.oldHtml, _snapshot.yOffset, _snapshot.oldTitle); + _snapshot = null; + } + } + + function pushUrl(newUrl, originalUrl, originalHtml, yOffset, originalTitle) { + + var historyEntry = makeHistoryEntry(originalHtml, yOffset, originalUrl, originalTitle); + history.replaceState({"ic-id": historyEntry.id}, "", ""); + + var t = getTargetForHistory($('body')); + var restorationData = makeHistoryEntry(t.html(), window.pageYOffset, newUrl, document.title); + history.pushState({'ic-id': restorationData.id}, "", newUrl); + + triggerEvent(t, "pushUrl.ic", [t, restorationData]); + } + + function handleHistoryNavigation(event) { + var data = event.state; + if (data && data['ic-id']) { + var historyData = JSON.parse(storage.getItem(data['ic-id'])); + if (historyData) { + processICResponse(historyData["content"], getTargetForHistory($('body')), true); + if (historyData["yOffset"]) { + window.scrollTo(0, historyData["yOffset"]); + } + if (historyData["title"]) { + document.title = historyData["title"]; + } + return true; + } else { + $.get(currentUrl(), {'ic-restore-history': true}, function(data, status) { + var newDoc = createDocument(data); + var replacementHtml = getTargetForHistory(newDoc).html(); + processICResponse(replacementHtml, getTargetForHistory($('body')), true); + }); + } + } + return false; + } + + function getTargetForHistory(elt) { + var explicitHistoryTarget = elt.find(getICAttributeSelector('ic-history-elt')); + if (explicitHistoryTarget.length > 0) { + return explicitHistoryTarget; + } else { + return elt; + } + } + + function snapshotForHistory(newUrl, oldTitle) { + var t = getTargetForHistory($('body')); + triggerEvent(t, "beforeHistorySnapshot.ic", [t]); + _snapshot = { + newUrl: newUrl, + oldHtml: t.html(), + yOffset: window.pageYOffset, + oldTitle: oldTitle + }; + } + + function dumpLocalStorage() { + var str = ""; + var keys = []; + for (var x in storage) { + keys.push(x); + } + keys.sort(); + var total = 0; + for (var i in keys) { + var size = (storage[keys[i]].length * 2); + total += size; + str += keys[i] + "=" + (size / 1024 / 1024).toFixed(2) + " MB\n"; + } + return str + "\nTOTAL LOCAL STORAGE: " + (total / 1024 / 1024).toFixed(2) + " MB"; + } + + function supportData() { + return historySupportData; + } + + /* API */ + return { + clearHistory: clearHistory, + updateHistory: updateHistory, + addPopStateHandler: addPopStateHandler, + snapshotForHistory: snapshotForHistory, + _internal: { + addPopStateHandler: addPopStateHandler, + supportData: supportData, + dumpLocalStorage: dumpLocalStorage, + updateLRUList: updateLRUList + } + }; + } + + function getSlotLimit() { + return 20; + } + + function refresh(val) { + if (typeof val == 'string' || val instanceof String) { + refreshDependencies(val); + } else { + fireICRequest(val); + } + return Intercooler; + } + + var _history = null; + try { + _history = newIntercoolerHistory(localStorage, window.history, getSlotLimit(), .1); + } catch(e) { + log($('body'), "Could not initialize history", "WARN"); + } + + //============================================================ + // Local references transport + //============================================================ + + if($.ajaxTransport) { + $.ajaxTransport("text", function(options, origOptions) { + if (origOptions.url[0] == "#") { + var ltAttr = fixICAttributeName("ic-local-"); + var src = $(origOptions.url); + var rsphdr = []; + var status = 200; + var statusText = "OK"; + src.each(function(i, el) { + $.each(el.attributes, function(j, attr) { + if (attr.name.substr(0, ltAttr.length) == ltAttr) { + var lhName = attr.name.substring(ltAttr.length); + if (lhName == "status") { + var statusLine = attr.value.match(/(\d+)\s?(.*)/); + if (statusLine != null) { + status = statusLine[1]; + statusText = statusLine[2]; + } else { + status = "500"; + statusText = "Attribute Error"; + } + } else { + rsphdr.push(lhName + ": " + attr.value); + } + } + }); + }); + var rsp = src.length > 0 ? src.html() : ""; + return { + send: function(reqhdr, completeCallback) { + completeCallback(status, statusText, {html: rsp}, rsphdr.join("\n")); + }, + abort: function() { + } + }; + } else { + return null; + } + } + ); + + } + + //============================================================ + // Bootstrap + //============================================================ + + function init() { + var elt = $('body'); + processNodes(elt); + fireReadyStuff(elt); + if(_history) { + _history.addPopStateHandler(window); + } + if($.zepto) { + $('body').data('zeptoDataTest', {}); + if(typeof($('body').data('zeptoDataTest')) == "string") { + log(null, + "!!!! Please include the data module with Zepto! Intercooler requires full data support to function !!!!", + "ERROR") + } + } + } + + $(function() { + init(); + }); + + /* =================================================== + * API + * =================================================== */ + return { + refresh: refresh, + history: _history, + triggerRequest: fireICRequest, + processNodes: processNodes, + closestAttrValue: closestAttrValue, + verbFor: verbFor, + isDependent: isDependent, + getTarget: getTarget, + processHeaders: processHeaders, + startPolling: startPolling, + cancelPolling: cancelPolling, + setIsDependentFunction: function(func) { + _isDependentFunction = func; + }, + ready: function(readyHandler) { + _readyHandlers.push(readyHandler); + }, + _internal: { + init: init, + replaceOrAddMethod: replaceOrAddMethod, + initEventSource: function(url) { + return new EventSource(url); + }, + globalEval: globalEval + } + }; +})(); + +return Intercooler; + +})); diff --git a/www/release/intercooler-1.2.3.min.js b/www/release/intercooler-1.2.3.min.js new file mode 100644 index 00000000..88adbd65 --- /dev/null +++ b/www/release/intercooler-1.2.3.min.js @@ -0,0 +1,4 @@ +/*! intercooler 1.2.3 2019-07-23 */ + +!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){return a.Intercooler=b(c)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):a.Intercooler=b(a.jQuery)}(this,function($){var Intercooler=Intercooler||function(){"use strict";function remove(a){a.remove()}function showIndicator(a){a.closest(".ic-use-transition").length>0?(a.data("ic-use-transition",!0),a.removeClass("ic-use-transition")):a.show()}function hideIndicator(a){a.data("ic-use-transition")||a.data("ic-indicator-cleared")?(a.data("ic-use-transition",null),a.addClass("ic-use-transition"),a.data("ic-indicator-cleared",!0)):a.hide()}function fixICAttributeName(a){return USE_DATA?"data-"+a:a}function getICAttribute(a,b){return a.attr(fixICAttributeName(b))}function setICAttribute(a,b,c){a.attr(fixICAttributeName(b),c)}function prepend(a,b){try{a.prepend(b)}catch(b){log(a,formatError(b),"ERROR")}if(getICAttribute(a,"ic-limit-children")){var c=parseInt(getICAttribute(a,"ic-limit-children"));a.children().length>c&&a.children().slice(c,a.children().length).remove()}}function append(a,b){try{a.append(b)}catch(b){log(a,formatError(b),"ERROR")}if(getICAttribute(a,"ic-limit-children")){var c=parseInt(getICAttribute(a,"ic-limit-children"));a.children().length>c&&a.children().slice(0,a.children().length-c).remove()}}function triggerEvent(a,b,c){$.zepto&&(b=b.split(".").reverse().join(":")),a.trigger(b,c)}function log(a,b,c){if(null==a&&(a=$("body")),triggerEvent(a,"log.ic",[b,c,a]),"ERROR"==c){window.console&&window.console.log("Intercooler Error : "+b);var d=closestAttrValue($("body"),"ic-post-errors-to");d&&$.post(d,{error:b})}}function uuid(){return _UUID++}function icSelectorFor(a){return getICAttributeSelector("ic-id='"+getIntercoolerId(a)+"'")}function parseInterval(a){return log(null,"POLL: Parsing interval string "+a,"DEBUG"),"null"==a||"false"==a||""==a?null:a.lastIndexOf("ms")==a.length-2?parseFloat(a.substr(0,a.length-2)):a.lastIndexOf("s")==a.length-1?1e3*parseFloat(a.substr(0,a.length-1)):1e3}function getICAttributeSelector(a){return"["+fixICAttributeName(a)+"]"}function initScrollHandler(){null==_scrollHandler&&(_scrollHandler=function(){$(getICAttributeSelector("ic-trigger-on='scrolled-into-view'")).each(function(){var a=$(this);isScrolledIntoView(getTriggeredElement(a))&&1!=a.data("ic-scrolled-into-view-loaded")&&(a.data("ic-scrolled-into-view-loaded",!0),fireICRequest(a))})},$(window).scroll(_scrollHandler))}function currentUrl(){return window.location.pathname+window.location.search+window.location.hash}function createDocument(a){var b=null;return/<(html|body)/i.test(a)?(b=document.documentElement.cloneNode(),b.innerHTML=a):(b=document.documentElement.cloneNode(!0),b.querySelector("body").innerHTML=a),$(b)}function getTarget(a){return getTargetImpl(a,"ic-target")}function getTargetImpl(a,b){var c=$(a).closest(getICAttributeSelector(b)),d=getICAttribute(c,b);return"this"==d?c:d&&0!=d.indexOf("this.")?0==d.indexOf("closest ")?a.closest(d.substr(8)):0==d.indexOf("find ")?a.find(d.substr(5)):$(d):a}function processHeaders(a,b){a=$(a),triggerEvent(a,"beforeHeaders.ic",[a,b]),log(a,"response headers: "+b.getAllResponseHeaders(),"DEBUG");var c=null;if(b.getResponseHeader("X-IC-Title")&&(document.title=b.getResponseHeader("X-IC-Title")),b.getResponseHeader("X-IC-Title-Encoded")){var d=decodeURIComponent(b.getResponseHeader("X-IC-Title-Encoded").replace(/\+/g,"%20"));document.title=d}if(b.getResponseHeader("X-IC-Refresh")){var e=b.getResponseHeader("X-IC-Refresh").split(",");log(a,"X-IC-Refresh: refreshing "+e,"DEBUG"),$.each(e,function(b,c){refreshDependencies(c.replace(/ /g,""),a)})}if(b.getResponseHeader("X-IC-Script")&&(log(a,"X-IC-Script: evaling "+b.getResponseHeader("X-IC-Script"),"DEBUG"),globalEval(b.getResponseHeader("X-IC-Script"),[["elt",a]])),b.getResponseHeader("X-IC-Redirect")&&(log(a,"X-IC-Redirect: redirecting to "+b.getResponseHeader("X-IC-Redirect"),"DEBUG"),window.location=b.getResponseHeader("X-IC-Redirect")),"true"==b.getResponseHeader("X-IC-CancelPolling")&&cancelPolling(a.closest(getICAttributeSelector("ic-poll"))),"true"==b.getResponseHeader("X-IC-ResumePolling")){var f=a.closest(getICAttributeSelector("ic-poll"));setICAttribute(f,"ic-pause-polling",null),startPolling(f)}if(b.getResponseHeader("X-IC-SetPollInterval")){var f=a.closest(getICAttributeSelector("ic-poll"));cancelPolling(f),setICAttribute(f,"ic-poll",b.getResponseHeader("X-IC-SetPollInterval")),startPolling(f)}b.getResponseHeader("X-IC-Open")&&(log(a,"X-IC-Open: opening "+b.getResponseHeader("X-IC-Open"),"DEBUG"),window.open(b.getResponseHeader("X-IC-Open")));var g=b.getResponseHeader("X-IC-Trigger");if(g)if(log(a,"X-IC-Trigger: found trigger "+g,"DEBUG"),c=getTarget(a),b.getResponseHeader("X-IC-Trigger-Data")){var h=$.parseJSON(b.getResponseHeader("X-IC-Trigger-Data"));triggerEvent(c,g,h)}else g.indexOf("{")>=0?$.each($.parseJSON(g),function(a,b){triggerEvent(c,a,b)}):triggerEvent(c,g,[]);var i=b.getResponseHeader("X-IC-Set-Local-Vars");if(i&&$.each($.parseJSON(i),function(a,b){localStorage.setItem(a,b)}),b.getResponseHeader("X-IC-Remove")&&a){var j=b.getResponseHeader("X-IC-Remove");j+="";var k=parseInterval(j);log(a,"X-IC-Remove header found.","DEBUG"),c=getTarget(a),"true"==j||null==k?remove(c):(c.addClass("ic-removing"),setTimeout(function(){remove(c)},k))}return triggerEvent(a,"afterHeaders.ic",[a,b]),!0}function beforeRequest(a){a.addClass("disabled"),a.addClass("ic-request-in-flight"),a.data("ic-request-in-flight",!0)}function requestCleanup(a,b,c){a.length>0&&hideIndicator(a),b.length>0&&hideIndicator(b),c.removeClass("disabled"),c.removeClass("ic-request-in-flight"),c.data("ic-request-in-flight",!1),c.data("ic-next-request")&&(c.data("ic-next-request").req(),c.data("ic-next-request",null))}function replaceOrAddMethod(a,b){if("string"===$.type(a)){var c=/(&|^)_method=[^&]*/,d="&_method="+b;return c.test(a)?a.replace(c,d):a+d}return a.append("_method",b),a}function isIdentifier(a){return/^[$A-Z_][0-9A-Z_$]*$/i.test(a)}function globalEval(a,b){var c=[],d=[];if(b)for(var e=0;e0?getICAttribute(c,b):null}function formatError(a){var b=a.toString()+"\n";try{b+=a.stack}catch(a){}return b}function handleRemoteRequest(a,b,c,d,e){beforeRequest(a),d=replaceOrAddMethod(d,b);var f=findGlobalIndicator(a);f&&f.length>0&&showIndicator(f);var g=findIndicator(a);g.length>0&&showIndicator(g);var h,i=uuid(),j=new Date;h=USE_ACTUAL_HTTP_METHOD?b:"GET"==b?"GET":"POST";var k={type:h,url:c,data:d,dataType:"text",headers:{Accept:"text/html-partial, */*; q=0.9","X-IC-Request":!0,"X-HTTP-Method-Override":b},beforeSend:function(e,f){triggerEvent(a,"beforeSend.ic",[a,d,f,e,i]),log(a,"before AJAX request "+i+": "+b+" to "+c,"DEBUG");var g=closestAttrValue(a,"ic-on-beforeSend");g&&globalEval(g,[["elt",a],["data",d],["settings",f],["xhr",e]]),maybeInvokeLocalAction(a,"-beforeSend")},success:function(b,c,d){triggerEvent(a,"success.ic",[a,b,c,d,i]),log(a,"AJAX request "+i+" was successful.","DEBUG");var h=closestAttrValue(a,"ic-on-success");if(!h||0!=globalEval(h,[["elt",a],["data",b],["textStatus",c],["xhr",d]])){var j=new Date,k=document.title;try{if(processHeaders(a,d)){log(a,"Processed headers for request "+i+" in "+(new Date-j)+"ms","DEBUG");var l=new Date;if(d.getResponseHeader("X-IC-PushURL")||"true"==closestAttrValue(a,"ic-push-url"))try{requestCleanup(g,f,a);var m=d.getResponseHeader("X-IC-PushURL")||closestAttrValue(a,"ic-src");if(!_history)throw"History support not enabled";_history.snapshotForHistory(m,k)}catch(b){log(a,"Error during history snapshot for "+i+": "+formatError(b),"ERROR")}e(b,c,a,d),log(a,"Process content for request "+i+" in "+(new Date-l)+"ms","DEBUG")}triggerEvent(a,"after.success.ic",[a,b,c,d,i]),maybeInvokeLocalAction(a,"-success")}catch(b){log(a,"Error processing successful request "+i+" : "+formatError(b),"ERROR")}}},error:function(b,d,e){triggerEvent(a,"error.ic",[a,d,e,b]);var f=closestAttrValue(a,"ic-on-error");f&&globalEval(f,[["elt",a],["status",d],["str",e],["xhr",b]]),processHeaders(a,b),maybeInvokeLocalAction(a,"-error"),log(a,"AJAX request "+i+" to "+c+" experienced an error: "+e,"ERROR")},complete:function(b,c){log(a,"AJAX request "+i+" completed in "+(new Date-j)+"ms","DEBUG"),requestCleanup(g,f,a);try{$.contains(document,a[0])?triggerEvent(a,"complete.ic",[a,d,c,b,i]):triggerEvent($("body"),"complete.ic",[a,d,c,b,i])}catch(b){log(a,"Error during complete.ic event for "+i+" : "+formatError(b),"ERROR")}var e=closestAttrValue(a,"ic-on-complete");e&&globalEval(e,[["elt",a],["xhr",b],["status",c]]),maybeInvokeLocalAction(a,"-complete")}};"string"!=$.type(d)&&(k.dataType=null,k.processData=!1,k.contentType=!1),triggerEvent($(document),"beforeAjaxSend.ic",[k,a]),k.cancel?requestCleanup(g,f,a):$.ajax(k)}function findGlobalIndicator(a){var b=$([]);a=$(a);var c=closestAttrValue(a,"ic-global-indicator");return c&&"false"!==c&&(b=$(c).first()),b}function findIndicator(a){var b=$([]);if(a=$(a),getICAttribute(a,"ic-indicator"))b=$(getICAttribute(a,"ic-indicator")).first();else if(b=a.find(".ic-indicator").first(),0==b.length){var c=closestAttrValue(a,"ic-indicator");c?b=$(c).first():a.next().is(".ic-indicator")&&(b=a.next())}return b}function processIncludes(a,b){if(0==$.trim(b).indexOf("{")){var c=$.parseJSON(b);$.each(c,function(b,c){a=appendData(a,b,c)})}else $(b).each(function(){var b=$(this).serializeArray();$.each(b,function(b,c){a=appendData(a,c.name,c.value)})});return a}function processLocalVars(a,b){return $(b.split(",")).each(function(){var b=$.trim(this),c=localStorage.getItem(b);c&&(a=appendData(a,b,c))}),a}function appendData(a,b,c){return"string"===$.type(a)?("string"!==$.type(c)&&(c=JSON.stringify(c)),a+"&"+b+"="+encodeURIComponent(c)):(a.append(b,c),a)}function getParametersForElement(a,b,c){var d=getTarget(b),e=null;if(b.is("form")&&"multipart/form-data"==b.attr("enctype"))e=new FormData(b[0]),e=appendData(e,"ic-request",!0);else{e="ic-request=true";var f=b.closest("form");if(b.is("form")||"GET"!=a&&f.length>0){e+="&"+f.serialize();var g=b.data("ic-last-clicked-button");g&&(e=appendData(e,g.name,g.value))}else e+="&"+b.serialize()}var h=closestAttrValue(b,"ic-prompt");if(h){var i=prompt(h);if(!i)return null;var j=closestAttrValue(b,"ic-prompt-name")||"ic-prompt-value";e=appendData(e,j,i)}b.attr("id")&&(e=appendData(e,"ic-element-id",b.attr("id"))),b.attr("name")&&(e=appendData(e,"ic-element-name",b.attr("name"))),getICAttribute(d,"ic-id")&&(e=appendData(e,"ic-id",getICAttribute(d,"ic-id"))),d.attr("id")&&(e=appendData(e,"ic-target-id",d.attr("id"))),c&&c.attr("id")&&(e=appendData(e,"ic-trigger-id",c.attr("id"))),c&&c.attr("name")&&(e=appendData(e,"ic-trigger-name",c.attr("name")));var k=closestAttrValue(b,"ic-include");k&&(e=processIncludes(e,k));var l=closestAttrValue(b,"ic-local-vars");l&&(e=processLocalVars(e,l)),$(getICAttributeSelector("ic-global-include")).each(function(){e=processIncludes(e,getICAttribute($(this),"ic-global-include"))}),e=appendData(e,"ic-current-url",currentUrl());var m=closestAttrValue(b,"ic-select-from-response");return m&&(e=appendData(e,"ic-select-from-response",m)),log(b,"request parameters "+e,"DEBUG"),e}function maybeSetIntercoolerInfo(a){getIntercoolerId(getTarget(a)),1!=a.data("elementAdded.ic")&&(a.data("elementAdded.ic",!0),triggerEvent(a,"elementAdded.ic"))}function getIntercoolerId(a){return getICAttribute(a,"ic-id")||setICAttribute(a,"ic-id",uuid()),getICAttribute(a,"ic-id")}function processNodes(a){a=$(a),a.length>1?a.each(function(){processNodes(this)}):(processMacros(a),processEnhancement(a),processSources(a),processPolling(a),processEventSources(a),processTriggerOn(a),processRemoveAfter(a),processAddClasses(a),processRemoveClasses(a))}function fireReadyStuff(a){triggerEvent(a,"nodesProcessed.ic"),$.each(_readyHandlers,function(b,c){try{c(a)}catch(b){log(a,formatError(b),"ERROR")}})}function autoFocus(a){a.find("[autofocus]").last().focus()}function processMacros(a){$.each(_MACROS,function(b,c){0==a.closest(".ic-ignore").length&&(a.is("["+c+"]")&&processMacro(c,a),a.find("["+c+"]").each(function(){var a=$(this);0==a.closest(".ic-ignore").length&&processMacro(c,a)}))})}function processSources(a){0==a.closest(".ic-ignore").length&&(a.is(getICAttributeSelector("ic-src"))&&maybeSetIntercoolerInfo(a),a.find(getICAttributeSelector("ic-src")).each(function(){var a=$(this);0==a.closest(".ic-ignore").length&&maybeSetIntercoolerInfo(a)}))}function processPolling(a){0==a.closest(".ic-ignore").length&&(a.is(getICAttributeSelector("ic-poll"))&&(maybeSetIntercoolerInfo(a),startPolling(a)),a.find(getICAttributeSelector("ic-poll")).each(function(){var a=$(this);0==a.closest(".ic-ignore").length&&(maybeSetIntercoolerInfo(a),startPolling(a))}))}function processTriggerOn(a){0==a.closest(".ic-ignore").length&&(handleTriggerOn(a),a.find(getICAttributeSelector("ic-trigger-on")).each(function(){var a=$(this);0==a.closest(".ic-ignore").length&&handleTriggerOn(a)}))}function processRemoveAfter(a){0==a.closest(".ic-ignore").length&&(handleRemoveAfter(a),a.find(getICAttributeSelector("ic-remove-after")).each(function(){var a=$(this);0==a.closest(".ic-ignore").length&&handleRemoveAfter(a)}))}function processAddClasses(a){0==a.closest(".ic-ignore").length&&(handleAddClasses(a),a.find(getICAttributeSelector("ic-add-class")).each(function(){var a=$(this);0==a.closest(".ic-ignore").length&&handleAddClasses(a)}))}function processRemoveClasses(a){0==a.closest(".ic-ignore").length&&(handleRemoveClasses(a),a.find(getICAttributeSelector("ic-remove-class")).each(function(){var a=$(this);0==a.closest(".ic-ignore").length&&handleRemoveClasses(a)}))}function processEnhancement(a){0==a.closest(".ic-ignore").length&&("true"===closestAttrValue(a,"ic-enhance")?enhanceDomTree(a):a.find(getICAttributeSelector("ic-enhance")).each(function(){enhanceDomTree($(this))}))}function processEventSources(a){0==a.closest(".ic-ignore").length&&(handleEventSource(a),a.find(getICAttributeSelector("ic-sse-src")).each(function(){var a=$(this);0==a.closest(".ic-ignore").length&&handleEventSource(a)}))}function startPolling(a){if(null==a.data("ic-poll-interval-id")&&"true"!=getICAttribute(a,"ic-pause-polling")){var b=parseInterval(getICAttribute(a,"ic-poll"));if(null!=b){var c=icSelectorFor(a),d=parseInt(getICAttribute(a,"ic-poll-repeats"))||-1,e=0;log(a,"POLL: Starting poll for element "+c,"DEBUG");var f=setInterval(function(){var b=$(c);triggerEvent(a,"onPoll.ic",b),0==b.length||e==d||a.data("ic-poll-interval-id")!=f?(log(a,"POLL: Clearing poll for element "+c,"DEBUG"),clearTimeout(f)):fireICRequest(b),e++},b);a.data("ic-poll-interval-id",f)}}}function cancelPolling(a){null!=a.data("ic-poll-interval-id")&&(clearTimeout(a.data("ic-poll-interval-id")),a.data("ic-poll-interval-id",null))}function refreshDependencies(a,b){log(b,"refreshing dependencies for path "+a,"DEBUG"),$(getICAttributeSelector("ic-src")).each(function(){var c=!1,d=$(this);"GET"==verbFor(d)&&"ignore"!=getICAttribute(d,"ic-deps")&&(isDependent(a,getICAttribute(d,"ic-src"))?null!=b&&$(b)[0]==d[0]||(fireICRequest(d),c=!0):(isICDepsDependent(a,getICAttribute(d,"ic-deps"))||"*"==getICAttribute(d,"ic-deps"))&&(null!=b&&$(b)[0]==d[0]||(fireICRequest(d),c=!0))),c&&log(d,"depends on path "+a+", refreshing...","DEBUG")})}function isICDepsDependent(a,b){if(b)for(var c=b.split(","),d=0;d0){var f=a.split(":");d=f[0],e=parseInterval(f[1])}else d=a;setTimeout(function(){b[c](d)},e)}function handleAddClasses(a){if(a=$(a),getICAttribute(a,"ic-add-class"))for(var b=getICAttribute(a,"ic-add-class").split(","),c=b.length,d=0;d0&®isterSSE(c,b[0].substr(4))}else{var b=getICAttribute($(a),"ic-trigger-on").split(" "),d=eventFor(b[0],$(a));$(getTriggeredElement(a)).on(d,function(c){var d=closestAttrValue(a,"ic-on-beforeTrigger");if(d&&0==globalEval(d,[["elt",a],["evt",c],["elt",a]]))return log(a,"ic-trigger cancelled by ic-on-beforeTrigger","DEBUG"),!1;if("changed"==b[1]){var e=a.val(),f=a.data("ic-previous-val");a.data("ic-previous-val",e),e!=f&&fireICRequest(a)}else if("once"==b[1]){var g=a.data("ic-already-triggered");a.data("ic-already-triggered",!0),!0!==g&&fireICRequest(a)}else fireICRequest(a);return!preventDefault(a,c)||(c.preventDefault(),!1)}),d&&0==d.indexOf("timeout:")&&setTimeout(function(){$(getTriggeredElement(a)).trigger(d)},parseInterval(d.split(":")[1]))}}}function macroIs(a,b){return a==fixICAttributeName(b)}function processMacro(a,b){macroIs(a,"ic-post-to")&&(setIfAbsent(b,"ic-src",getICAttribute(b,"ic-post-to")),setIfAbsent(b,"ic-verb","POST"),setIfAbsent(b,"ic-trigger-on","default"),setIfAbsent(b,"ic-deps","ignore")),macroIs(a,"ic-put-to")&&(setIfAbsent(b,"ic-src",getICAttribute(b,"ic-put-to")),setIfAbsent(b,"ic-verb","PUT"),setIfAbsent(b,"ic-trigger-on","default"),setIfAbsent(b,"ic-deps","ignore")),macroIs(a,"ic-patch-to")&&(setIfAbsent(b,"ic-src",getICAttribute(b,"ic-patch-to")),setIfAbsent(b,"ic-verb","PATCH"),setIfAbsent(b,"ic-trigger-on","default"),setIfAbsent(b,"ic-deps","ignore")),macroIs(a,"ic-get-from")&&(setIfAbsent(b,"ic-src",getICAttribute(b,"ic-get-from")),setIfAbsent(b,"ic-trigger-on","default"),setIfAbsent(b,"ic-deps","ignore")),macroIs(a,"ic-delete-from")&&(setIfAbsent(b,"ic-src",getICAttribute(b,"ic-delete-from")),setIfAbsent(b,"ic-verb","DELETE"),setIfAbsent(b,"ic-trigger-on","default"),setIfAbsent(b,"ic-deps","ignore")),macroIs(a,"ic-action")&&setIfAbsent(b,"ic-trigger-on","default");var c=null,d=null;if(macroIs(a,"ic-style-src")){c=getICAttribute(b,"ic-style-src").split(":");var e=c[0];d=c[1],setIfAbsent(b,"ic-src",d),setIfAbsent(b,"ic-target","this.style."+e)}if(macroIs(a,"ic-attr-src")){c=getICAttribute(b,"ic-attr-src").split(":");var f=c[0];d=c[1],setIfAbsent(b,"ic-src",d),setIfAbsent(b,"ic-target","this."+f)}macroIs(a,"ic-prepend-from")&&(setIfAbsent(b,"ic-src",getICAttribute(b,"ic-prepend-from")),setIfAbsent(b,"ic-swap-style","prepend")),macroIs(a,"ic-append-from")&&(setIfAbsent(b,"ic-src",getICAttribute(b,"ic-append-from")),setIfAbsent(b,"ic-swap-style","append"))}function isLocalLink(a){return location.hostname===a[0].hostname&&a.attr("href")&&!a.attr("href").startsWith("#")}function enhanceAnchor(a){"true"===closestAttrValue(a,"ic-enhance")&&isLocalLink(a)&&(setIfAbsent(a,"ic-src",a.attr("href")),setIfAbsent(a,"ic-trigger-on","default"),setIfAbsent(a,"ic-deps","ignore"),setIfAbsent(a,"ic-push-url","true"))}function determineFormVerb(a){return a.find('input[name="_method"]').val()||a.attr("method")||a[0].method}function enhanceForm(a){"true"===closestAttrValue(a,"ic-enhance")&&(setIfAbsent(a,"ic-src",a.attr("action")),setIfAbsent(a,"ic-trigger-on","default"),setIfAbsent(a,"ic-deps","ignore"),setIfAbsent(a,"ic-verb",determineFormVerb(a)))}function enhanceDomTree(a){a.is("a")&&enhanceAnchor(a),a.find("a").each(function(){enhanceAnchor($(this))}),a.is("form")&&enhanceForm(a),a.find("form").each(function(){enhanceForm($(this))})}function setIfAbsent(a,b,c){null==getICAttribute(a,b)&&setICAttribute(a,b,c)}function isScrolledIntoView(a){if(a=$(a),0==a.height()&&0==a.width())return!1;var b=$(window).scrollTop(),c=b+$(window).height(),d=a.offset().top,e=d+a.height();return e>=b&&d<=c&&e<=c&&d>=b}function maybeScrollToTarget(a,b){if("false"!=closestAttrValue(a,"ic-scroll-to-target")&&("true"==closestAttrValue(a,"ic-scroll-to-target")||"true"==closestAttrValue(b,"ic-scroll-to-target"))){var c=-50;closestAttrValue(a,"ic-scroll-offset")?c=parseInt(closestAttrValue(a,"ic-scroll-offset")):closestAttrValue(b,"ic-scroll-offset")&&(c=parseInt(closestAttrValue(b,"ic-scroll-offset")));var d=b.offset().top,e=$(window).scrollTop(),f=e+window.innerHeight;(df)&&(c+=d,$("html,body").animate({scrollTop:c},400))}}function getTransitionDuration(a,b){var c=closestAttrValue(a,"ic-transition-duration");if(c)return parseInterval(c);if(c=closestAttrValue(b,"ic-transition-duration"))return parseInterval(c);b=$(b);var d=0,e=b.css("transition-duration");e&&(d+=parseInterval(e));var f=b.css("transition-delay");return f&&(d+=parseInterval(f)),d}function closeSSESource(a){var b=a.data("ic-event-sse-source");try{b&&b.close()}catch(b){log(a,"Error closing ServerSentEvent source"+b,"ERROR")}}function beforeSwapCleanup(a){a.find(getICAttributeSelector("ic-sse-src")).each(function(){closeSSESource($(this))}),triggerEvent(a,"beforeSwap.ic")}function processICResponse(a,b,c,d){if(a&&""!=a&&" "!=a){log(b,"response content: \n"+a,"DEBUG");var e=getTarget(b),f=closestAttrValue(b,"ic-transform-response");f&&(a=globalEval(f,[["content",a],["url",d],["elt",b]]));var g=maybeFilter(a,closestAttrValue(b,"ic-select-from-response"));"true"==closestAttrValue(b,"ic-fix-ids")&&fixIDs(g);var h=function(){if("true"==closestAttrValue(b,"ic-replace-target")){try{beforeSwapCleanup(e),closeSSESource(e),e.replaceWith(g),e=g}catch(a){log(b,formatError(a),"ERROR")}processNodes(g),fireReadyStuff(e),autoFocus(e)}else{if("prepend"==getICAttribute(b,"ic-swap-style"))prepend(e,g),processNodes(g),fireReadyStuff(e),autoFocus(e);else if("append"==getICAttribute(b,"ic-swap-style"))append(e,g),processNodes(g),fireReadyStuff(e),autoFocus(e);else{try{beforeSwapCleanup(e),e.empty().append(g)}catch(a){log(b,formatError(a),"ERROR")}e.children().each(function(){processNodes(this)}),fireReadyStuff(e),autoFocus(e)}1!=c&&maybeScrollToTarget(b,e);var a=b.closest(getICAttributeSelector("ic-switch-class")),d=a.attr(fixICAttributeName("ic-switch-class"));d&&(a.children().removeClass(d),a.children().each(function(){($.contains($(this)[0],$(b)[0])||$(this)[0]==$(b)[0])&&($(this).addClass(d),$(this).addClass(d))}))}};if(0==e.length)return void log(b,"Invalid target for element: "+getICAttribute(b.closest(getICAttributeSelector("ic-target")),"ic-target"),"ERROR");var i=getTransitionDuration(b,e);e.addClass("ic-transitioning"),setTimeout(function(){try{h()}catch(a){log(b,"Error during content swap : "+formatError(a),"ERROR")}setTimeout(function(){try{e.removeClass("ic-transitioning"),_history&&_history.updateHistory(),triggerEvent(e,"complete_transition.ic",[e])}catch(a){log(b,"Error during transition complete : "+formatError(a),"ERROR")}},20)},i)}else log(b,"Empty response, nothing to do here.","DEBUG")}function maybeFilter(a,b){var c;if($.zepto){var d=createDocument(a);c=$(d).find("body").contents()}else c=$($.parseHTML(a,null,!0));return b?walkTree(c,b).contents():c}function walkTree(a,b){return a.filter(b).add(a.find(b))}function fixIDs(a){var b={};walkTree(a,"[id]").each(function(){var a,c=$(this).attr("id");do{a="ic-fixed-id-"+uuid()}while($("#"+a).length>0);b[c]=a,$(this).attr("id",a)}),walkTree(a,"label[for]").each(function(){var a=$(this).attr("for");$(this).attr("for",b[a]||a)}),walkTree(a,"*").each(function(){$.each(this.attributes,function(){-1!==this.value.indexOf("#")&&(this.value=this.value.replace(/#([-_A-Za-z0-9]+)/g,function(a,c){return"#"+(b[c]||c)}))})})}function getStyleTarget(a){var b=closestAttrValue(a,"ic-target");return b&&0==b.indexOf("this.style.")?b.substr(11):null}function getAttrTarget(a){var b=closestAttrValue(a,"ic-target");return b&&0==b.indexOf("this.")?b.substr(5):null}function fireICRequest(a,b){a=$(a);var c=a;a.is(getICAttributeSelector("ic-src"))||void 0!=getICAttribute(a,"ic-action")||(a=a.closest(getICAttributeSelector("ic-src")));var d=closestAttrValue(a,"ic-confirm");if((!d||confirm(d))&&("true"!=closestAttrValue(a,"ic-disable-when-doc-hidden")||!document.hidden)&&("true"!=closestAttrValue(a,"ic-disable-when-doc-inactive")||document.hasFocus())&&a.length>0){var e=uuid();a.data("ic-event-id",e);var f=function(){if(1==a.data("ic-request-in-flight"))return void a.data("ic-next-request",{req:f});if(a.data("ic-event-id")==e){var d=getStyleTarget(a),g=d?null:getAttrTarget(a),h=verbFor(a),i=getICAttribute(a,"ic-src");if(i){var j=b||function(b){d?a.css(d,b):g?a.attr(g,b):(processICResponse(b,a,!1,i),"GET"!=h&&refreshDependencies(getICAttribute(a,"ic-src"),a))},k=getParametersForElement(h,a,c);k&&handleRemoteRequest(a,h,i,k,j)}maybeInvokeLocalAction(a,"")}},g=closestAttrValue(a,"ic-trigger-delay");g?setTimeout(f,parseInterval(g)):f()}}function maybeInvokeLocalAction(a,b){var c=getICAttribute(a,"ic"+b+"-action");c&&invokeLocalAction(a,c,b)}function invokeLocalAction(a,b,c){var d=closestAttrValue(a,"ic"+c+"-action-target");null===d&&""!==c&&(d=closestAttrValue(a,"ic-action-target"));var e=null;e=d?getTargetImpl(a,"ic-action-target"):getTarget(a);var f=b.split(";"),g=[],h=0;$.each(f,function(a,b){var c=$.trim(b),d=c,f=[];c.indexOf(":")>0&&(d=c.substr(0,c.indexOf(":")),f=computeArgs(c.substr(c.indexOf(":")+1,c.length))),""==d||("delay"==d?(null==h&&(h=0),h+=parseInterval(f[0]+"")):(null==h&&(h=420),g.push([h,makeApplyAction(e,d,f)]),h=null))}),h=0,$.each(g,function(a,b){h+=b[0],setTimeout(b[1],h)})}function computeArgs(args){try{return eval("["+args+"]")}catch(a){return[$.trim(args)]}}function makeApplyAction(a,b,c){return function(){var d=a[b]||window[b];d?d.apply(a,c):log(a,"Action "+b+" was not found","ERROR")}}function newIntercoolerHistory(a,b,c,d){function e(){for(var b=[],e=0;e=0)log(e,"URL found in LRU list, moving to end","INFO"),c.splice(d,1),c.push(b);else if(log(e,"URL not found in LRU list, adding","INFO"),c.push(b),c.length>s.slotLimit){var f=c.shift();log(e,"History overflow, removing local history for "+f,"INFO"),a.removeItem(r+f)}return a.setItem(q,JSON.stringify(s)),c}function g(b){var d=JSON.stringify(b);try{a.setItem(b.id,d)}catch(f){try{e(),a.setItem(b.id,d)}catch(a){log(m($("body")),"Unable to save intercooler history with entire history cleared, is something else eating local storage? History Limit:"+c,"ERROR")}}}function h(a,b,c,d){var e={url:c,id:r+c,content:a,yOffset:b,timestamp:(new Date).getTime(),title:d};return f(c),g(e),e}function i(a){if(null==a.onpopstate||1!=a.onpopstate["ic-on-pop-state-handler"]){var b=a.onpopstate;a.onpopstate=function(a){triggerEvent(m($("body")),"handle.onpopstate.ic"),l(a)||b&&b(a),triggerEvent(m($("body")),"pageLoad.ic")},a.onpopstate["ic-on-pop-state-handler"]=!0}}function j(){t&&(k(t.newUrl,currentUrl(),t.oldHtml,t.yOffset,t.oldTitle),t=null)}function k(a,c,d,e,f){var g=h(d,e,c,f);b.replaceState({"ic-id":g.id},"","");var i=m($("body")),j=h(i.html(),window.pageYOffset,a,document.title);b.pushState({"ic-id":j.id},"",a),triggerEvent(i,"pushUrl.ic",[i,j])}function l(b){var c=b.state;if(c&&c["ic-id"]){var d=JSON.parse(a.getItem(c["ic-id"]));if(d)return processICResponse(d.content,m($("body")),!0),d.yOffset&&window.scrollTo(0,d.yOffset),d.title&&(document.title=d.title),!0;$.get(currentUrl(),{"ic-restore-history":!0},function(a,b){processICResponse(m(createDocument(a)).html(),m($("body")),!0)})}return!1}function m(a){var b=a.find(getICAttributeSelector("ic-history-elt"));return b.length>0?b:a}function n(a,b){var c=m($("body"));triggerEvent(c,"beforeHistorySnapshot.ic",[c]),t={newUrl:a,oldHtml:c.html(),yOffset:window.pageYOffset,oldTitle:b}}function o(){var b="",c=[];for(var d in a)c.push(d);c.sort();var e=0;for(var f in c){var g=2*a[c[f]].length;e+=g,b+=c[f]+"="+(g/1024/1024).toFixed(2)+" MB\n"}return b+"\nTOTAL LOCAL STORAGE: "+(e/1024/1024).toFixed(2)+" MB"}function p(){return s}var q="ic-history-support",r="ic-hist-elt-",s=JSON.parse(a.getItem(q)),t=null;return function(a){return null==a||a.slotLimit!=c||a.historyVersion!=d||null==a.lruList}(s)&&(log(m($("body")),"Intercooler History configuration changed, clearing history","INFO"),e()),null==s&&(s={slotLimit:c,historyVersion:d,lruList:[]}),{clearHistory:e,updateHistory:j,addPopStateHandler:i,snapshotForHistory:n,_internal:{addPopStateHandler:i,supportData:p,dumpLocalStorage:o,updateLRUList:f}}}function getSlotLimit(){return 20}function refresh(a){return"string"==typeof a||a instanceof String?refreshDependencies(a):fireICRequest(a),Intercooler}function init(){var a=$("body");processNodes(a),fireReadyStuff(a),_history&&_history.addPopStateHandler(window),$.zepto&&($("body").data("zeptoDataTest",{}),"string"==typeof $("body").data("zeptoDataTest")&&log(null,"!!!! Please include the data module with Zepto! Intercooler requires full data support to function !!!!","ERROR"))}"undefined"!=typeof Zepto&&null==$&&(window.$=Zepto);var USE_DATA="true"==$('meta[name="intercoolerjs:use-data-prefix"]').attr("content"),USE_ACTUAL_HTTP_METHOD="true"==$('meta[name="intercoolerjs:use-actual-http-method"]').attr("content"),_MACROS=$.map(["ic-get-from","ic-post-to","ic-put-to","ic-patch-to","ic-delete-from","ic-style-src","ic-attr-src","ic-prepend-from","ic-append-from","ic-action"],function(a){return fixICAttributeName(a)}),_scrollHandler=null,_UUID=1,_readyHandlers=[],_isDependentFunction=function(a,b){if(!a||!b)return!1;var c=a.split(/[\?#]/,1)[0].split("/").filter(function(a){return""!=a}),d=b.split(/[\?#]/,1)[0].split("/").filter(function(a){return""!=a});return""!=c&&""!=d&&(d.slice(0,c.length).join("/")==c.join("/")||c.slice(0,d.length).join("/")==d.join("/"))},_history=null;try{_history=newIntercoolerHistory(localStorage,window.history,20,.1)}catch(a){log($("body"),"Could not initialize history","WARN")} +return $.ajaxTransport&&$.ajaxTransport("text",function(a,b){if("#"==b.url[0]){var c=fixICAttributeName("ic-local-"),d=$(b.url),e=[],f=200,g="OK";d.each(function(a,b){$.each(b.attributes,function(a,b){if(b.name.substr(0,c.length)==c){var d=b.name.substring(c.length);if("status"==d){var h=b.value.match(/(\d+)\s?(.*)/);null!=h?(f=h[1],g=h[2]):(f="500",g="Attribute Error")}else e.push(d+": "+b.value)}})});var h=d.length>0?d.html():"";return{send:function(a,b){b(f,g,{html:h},e.join("\n"))},abort:function(){}}}return null}),$(function(){init()}),{refresh:refresh,history:_history,triggerRequest:fireICRequest,processNodes:processNodes,closestAttrValue:closestAttrValue,verbFor:verbFor,isDependent:isDependent,getTarget:getTarget,processHeaders:processHeaders,startPolling:startPolling,cancelPolling:cancelPolling,setIsDependentFunction:function(a){_isDependentFunction=a},ready:function(a){_readyHandlers.push(a)},_internal:{init:init,replaceOrAddMethod:replaceOrAddMethod,initEventSource:function(a){return new EventSource(a)},globalEval:globalEval}}}();return Intercooler}); \ No newline at end of file diff --git a/www/release/jQuery1_unit-tests-1.2.3.html b/www/release/jQuery1_unit-tests-1.2.3.html new file mode 100644 index 00000000..2a59c328 --- /dev/null +++ b/www/release/jQuery1_unit-tests-1.2.3.html @@ -0,0 +1,2591 @@ + + + + + + + + + Intercooler.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Intercooler.js Test Suite

+ +

This is the test suite for the Intercooler.js library. Simply loading this page in a browser will run all the + tests

+ +

New tests should follow the existing test templates, using + the intercoolerTest() helper and mockjax for + mocking out AJAX requests.

+ +

+ Run With data-* style attributes +

+
+ +
+ + +
+ +

Test Results

+ +
+
+
+ +
+ +
+
+

Test HTML

+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
+ + + +
+
+
+
Javascript API Test
+ +
+
+ + +
Foo
+ + +
Foo
+ + + + +
Foo
+ + + + +
Foo
+ + + + +
Foo
+ + + + + + + +
Foo
+ + + +
Foo
+ + + +
Foo
+ + + + + + + + + +
Foo
+ + + +
Foo
+ + + +
    +
  • bar
  • +
+ + + +
    +
  • bar
  • +
+ + + + + + +
+ +
+ + +
+ +
+ + +
+
+ + + +
Foo
+ + +
Foo
+ + +
Foo +
+ + +loading... +
Foo
+ + +loading... +
+
Foo
+
+ + + +
+
+ + +
    +
  • bar
  • +
+
+ + +
    +
  • bar
  • +
+
+ + + +
    +
+
+ + +
    +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +Foo + + + +Foo + + + +Foo + + + + + + + + + + + + + + +Text + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+ + + Foo + +
+ + +
+ 0 +
+ + +
+ 0 +
+ + +
+ 0 +
+ + +
+ 0 +
+ + +
+
+ +
+
+ + + + + +History Test + + +Get From +
+ + +
+ + +
    + + +
      + + +
      + + +
      + + + + +click me! (external target) +
      + + + +
      + +
      + + + +
      + + +
      + + +
      + + +
      Bar
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + Before + + + +
      + Before + Before +
      + + + + Local Var Set + + + Local Var Include + + +
      Autofocus
      + + +
      + +
      +
      + + +
      + + + +
      + + + +
      + + + +
      + + + + +
      + + + + +
      + + + +
      + + +
      + + + +
      +
      + +
      + +   + Cancel +
      + + +
      + +
      + + +
      +
      + + + + +
      + + +
      foo
      + + +
      foo
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + + + + +
      +
      + + +
      +
      + + +
      +
      + +
      +
      + + +
      +
      +
      +
      +
      +
      +
      + + +
        + + +
          + + +
            + + +
              + + +
              + + Page1 + + + Page2 + + +
              +

              Content

              +
              +
              + + + +
              Foo +
              + + +
              +
              +
              +
              +
              + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              + + + + bar + + + bar + + + bar + + +
              + bar +
              + + + + + +
              + + diff --git a/www/release/jQuery2_unit-tests-1.2.3.html b/www/release/jQuery2_unit-tests-1.2.3.html new file mode 100644 index 00000000..cbbd024d --- /dev/null +++ b/www/release/jQuery2_unit-tests-1.2.3.html @@ -0,0 +1,2591 @@ + + + + + + + + + Intercooler.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +

              Intercooler.js Test Suite

              + +

              This is the test suite for the Intercooler.js library. Simply loading this page in a browser will run all the + tests

              + +

              New tests should follow the existing test templates, using + the intercoolerTest() helper and mockjax for + mocking out AJAX requests.

              + +

              + Run With data-* style attributes +

              +
              + +
              + + +
              + +

              Test Results

              + +
              +
              +
              + +
              + +
              +
              +

              Test HTML

              +
              +
              + +
              +
              +
              +
              +
              +
              +
              +
              +
              + +
              +
              + + + +
              +
              +
              +
              Javascript API Test
              + +
              +
              + + +
              Foo
              + + +
              Foo
              + + + + +
              Foo
              + + + + +
              Foo
              + + + + +
              Foo
              + + + + + + + +
              Foo
              + + + +
              Foo
              + + + +
              Foo
              + + + + + + + + + +
              Foo
              + + + +
              Foo
              + + + +
                +
              • bar
              • +
              + + + +
                +
              • bar
              • +
              + + + + + + +
              + +
              + + +
              + +
              + + +
              +
              + + + +
              Foo
              + + +
              Foo
              + + +
              Foo +
              + + +loading... +
              Foo
              + + +loading... +
              +
              Foo
              +
              + + + +
              +
              + + +
                +
              • bar
              • +
              +
              + + +
                +
              • bar
              • +
              +
              + + + +
                +
              +
              + + +
                +
              +
              + + + +
              + + + + + + + + + + + + + + + + + + + + + + + + + + +Foo + + + +Foo + + + +Foo + + + + + + + + + + + + + + +Text + + + + + + + + + + + + + + + + + + + + + +
              + + +
              + + +
              + + + Foo + +
              + + +
              + 0 +
              + + +
              + 0 +
              + + +
              + 0 +
              + + +
              + 0 +
              + + +
              +
              + +
              +
              + + + + + +History Test + + +Get From +
              + + +
              + + +
                + + +
                  + + +
                  + + +
                  + + + + +click me! (external target) +
                  + + + +
                  + +
                  + + + +
                  + + +
                  + + +
                  + + +
                  Bar
                  +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + Before + + + +
                  + Before + Before +
                  + + + + Local Var Set + + + Local Var Include + + +
                  Autofocus
                  + + +
                  + +
                  +
                  + + +
                  + + + +
                  + + + +
                  + + + +
                  + + + + +
                  + + + + +
                  + + + +
                  + + +
                  + + + +
                  +
                  + +
                  + +   + Cancel +
                  + + +
                  + +
                  + + +
                  +
                  + + + + +
                  + + +
                  foo
                  + + +
                  foo
                  + + +
                  + +
                  + + +
                  + +
                  + + +
                  + +
                  + + + + + +
                  +
                  + + +
                  +
                  + + +
                  +
                  + +
                  +
                  + + +
                  +
                  +
                  +
                  +
                  +
                  +
                  + + +
                    + + +
                      + + +
                        + + +
                          + + +
                          + + Page1 + + + Page2 + + +
                          +

                          Content

                          +
                          +
                          + + + +
                          Foo +
                          + + +
                          +
                          +
                          +
                          +
                          + + +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          + + + + bar + + + bar + + + bar + + +
                          + bar +
                          + + + + + +
                          + + diff --git a/www/release/unit-tests-1.2.3.html b/www/release/unit-tests-1.2.3.html new file mode 100644 index 00000000..f12119bb --- /dev/null +++ b/www/release/unit-tests-1.2.3.html @@ -0,0 +1,2594 @@ + + + + + + + + + Intercooler.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          +

                          Intercooler.js Test Suite

                          + +

                          This is the test suite for the Intercooler.js library. Simply loading this page in a browser will run all the + tests

                          + +

                          New tests should follow the existing test templates, using + the intercoolerTest() helper and mockjax for + mocking out AJAX requests.

                          + +

                          + Run With data-* style attributes +

                          +
                          + +
                          + + +
                          + +

                          Test Results

                          + +
                          +
                          +
                          + +
                          + +
                          +
                          +

                          Test HTML

                          +
                          +
                          + +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          + +
                          +
                          + + + +
                          +
                          +
                          +
                          Javascript API Test
                          + +
                          +
                          + + +
                          Foo
                          + + +
                          Foo
                          + + + + +
                          Foo
                          + + + + +
                          Foo
                          + + + + +
                          Foo
                          + + + + + + + +
                          Foo
                          + + + +
                          Foo
                          + + + +
                          Foo
                          + + + + + + + + + +
                          Foo
                          + + + +
                          Foo
                          + + + +
                            +
                          • bar
                          • +
                          + + + +
                            +
                          • bar
                          • +
                          + + + + + + +
                          + +
                          + + +
                          + +
                          + + +
                          +
                          + + + +
                          Foo
                          + + +
                          Foo
                          + + +
                          Foo +
                          + + +loading... +
                          Foo
                          + + +loading... +
                          +
                          Foo
                          +
                          + + + +
                          +
                          + + +
                            +
                          • bar
                          • +
                          +
                          + + +
                            +
                          • bar
                          • +
                          +
                          + + + +
                            +
                          +
                          + + +
                            +
                          +
                          + + + +
                          + + + + + + + + + + + + + + + + + + + + + + + + + + +Foo + + + +Foo + + + +Foo + + + + + + + + + + + + + + +Text + + + + + + + + + + + + + + + + + + + + + +
                          + + +
                          + + +
                          + + + Foo + +
                          + + +
                          + 0 +
                          + + +
                          + 0 +
                          + + +
                          + 0 +
                          + + +
                          + 0 +
                          + + +
                          +
                          + +
                          +
                          + + + + + +History Test + + +Get From +
                          + + +
                          + + +
                            + + +
                              + + +
                              + + +
                              + + + + +click me! (external target) +
                              + + + +
                              + +
                              + + + +
                              + + +
                              + + +
                              + + +
                              Bar
                              +
                              + + + + + + + + + + + + + + + + + + + + + + + + + + + Before + + + +
                              + Before + Before +
                              + + + + Local Var Set + + + Local Var Include + + +
                              Autofocus
                              + + +
                              + +
                              +
                              + + +
                              + + + +
                              + + + +
                              + + + +
                              + + + + +
                              + + + + +
                              + + + +
                              + + +
                              + + + +
                              +
                              + +
                              + +   + Cancel +
                              + + +
                              + +
                              + + +
                              +
                              + + + + +
                              + + +
                              foo
                              + + +
                              foo
                              + + +
                              + +
                              + + +
                              + +
                              + + +
                              + +
                              + + + + + +
                              +
                              + + +
                              +
                              + + +
                              +
                              + +
                              +
                              + + +
                              +
                              +
                              +
                              +
                              +
                              +
                              + + +
                                + + +
                                  + + +
                                    + + +
                                      + + +
                                      + + Page1 + + + Page2 + + +
                                      +

                                      Content

                                      +
                                      +
                                      + + + +
                                      Foo +
                                      + + +
                                      +
                                      +
                                      +
                                      +
                                      + + +
                                      +
                                      +
                                      +
                                      +
                                      +
                                      +
                                      +
                                      +
                                      +
                                      +
                                      + + + + bar + + + bar + + + bar + + +
                                      + bar +
                                      + + + + + +
                                      + + diff --git a/www/release/unit-tests-1.2.3.min.html b/www/release/unit-tests-1.2.3.min.html new file mode 100644 index 00000000..f53bb3e7 --- /dev/null +++ b/www/release/unit-tests-1.2.3.min.html @@ -0,0 +1,2594 @@ + + + + + + + + + Intercooler.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                      +

                                      Intercooler.js Test Suite

                                      + +

                                      This is the test suite for the Intercooler.js library. Simply loading this page in a browser will run all the + tests

                                      + +

                                      New tests should follow the existing test templates, using + the intercoolerTest() helper and mockjax for + mocking out AJAX requests.

                                      + +

                                      + Run With data-* style attributes +

                                      +
                                      + +
                                      + + +
                                      + +

                                      Test Results

                                      + +
                                      +
                                      +
                                      + +
                                      + +
                                      +
                                      +

                                      Test HTML

                                      +
                                      +
                                      + +
                                      +
                                      +
                                      +
                                      +
                                      +
                                      +
                                      +
                                      +
                                      + +
                                      +
                                      + + + +
                                      +
                                      +
                                      +
                                      Javascript API Test
                                      + +
                                      +
                                      + + +
                                      Foo
                                      + + +
                                      Foo
                                      + + + + +
                                      Foo
                                      + + + + +
                                      Foo
                                      + + + + +
                                      Foo
                                      + + + + + + + +
                                      Foo
                                      + + + +
                                      Foo
                                      + + + +
                                      Foo
                                      + + + + + + + + + +
                                      Foo
                                      + + + +
                                      Foo
                                      + + + +
                                        +
                                      • bar
                                      • +
                                      + + + +
                                        +
                                      • bar
                                      • +
                                      + + + + + + +
                                      + +
                                      + + +
                                      + +
                                      + + +
                                      +
                                      + + + +
                                      Foo
                                      + + +
                                      Foo
                                      + + +
                                      Foo +
                                      + + +loading... +
                                      Foo
                                      + + +loading... +
                                      +
                                      Foo
                                      +
                                      + + + +
                                      +
                                      + + +
                                        +
                                      • bar
                                      • +
                                      +
                                      + + +
                                        +
                                      • bar
                                      • +
                                      +
                                      + + + +
                                        +
                                      +
                                      + + +
                                        +
                                      +
                                      + + + +
                                      + + + + + + + + + + + + + + + + + + + + + + + + + + +Foo + + + +Foo + + + +Foo + + + + + + + + + + + + + + +Text + + + + + + + + + + + + + + + + + + + + + +
                                      + + +
                                      + + +
                                      + + + Foo + +
                                      + + +
                                      + 0 +
                                      + + +
                                      + 0 +
                                      + + +
                                      + 0 +
                                      + + +
                                      + 0 +
                                      + + +
                                      +
                                      + +
                                      +
                                      + + + + + +History Test + + +Get From +
                                      + + +
                                      + + +
                                        + + +
                                          + + +
                                          + + +
                                          + + + + +click me! (external target) +
                                          + + + +
                                          + +
                                          + + + +
                                          + + +
                                          + + +
                                          + + +
                                          Bar
                                          +
                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + Before + + + +
                                          + Before + Before +
                                          + + + + Local Var Set + + + Local Var Include + + +
                                          Autofocus
                                          + + +
                                          + +
                                          +
                                          + + +
                                          + + + +
                                          + + + +
                                          + + + +
                                          + + + + +
                                          + + + + +
                                          + + + +
                                          + + +
                                          + + + +
                                          +
                                          + +
                                          + +   + Cancel +
                                          + + +
                                          + +
                                          + + +
                                          +
                                          + + + + +
                                          + + +
                                          foo
                                          + + +
                                          foo
                                          + + +
                                          + +
                                          + + +
                                          + +
                                          + + +
                                          + +
                                          + + + + + +
                                          +
                                          + + +
                                          +
                                          + + +
                                          +
                                          + +
                                          +
                                          + + +
                                          +
                                          +
                                          +
                                          +
                                          +
                                          +
                                          + + +
                                            + + +
                                              + + +
                                                + + +
                                                  + + +
                                                  + + Page1 + + + Page2 + + +
                                                  +

                                                  Content

                                                  +
                                                  +
                                                  + + + +
                                                  Foo +
                                                  + + +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  + + +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  + + + + bar + + + bar + + + bar + + +
                                                  + bar +
                                                  + + + + + +
                                                  + + diff --git a/www/release/zepto_unit-tests-1.2.3.html b/www/release/zepto_unit-tests-1.2.3.html new file mode 100644 index 00000000..fea077d0 --- /dev/null +++ b/www/release/zepto_unit-tests-1.2.3.html @@ -0,0 +1,2602 @@ + + + + + + + + + Intercooler.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                  +

                                                  Intercooler.js Test Suite

                                                  + +

                                                  This is the test suite for the Intercooler.js library. Simply loading this page in a browser will run all the + tests

                                                  + +

                                                  New tests should follow the existing test templates, using + the intercoolerTest() helper and mockjax for + mocking out AJAX requests.

                                                  + +

                                                  + Run With data-* style attributes +

                                                  +
                                                  + +
                                                  + + +
                                                  + +

                                                  Test Results

                                                  + +
                                                  +
                                                  +
                                                  + +
                                                  + +
                                                  +
                                                  +

                                                  Test HTML

                                                  +
                                                  +
                                                  + +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  + +
                                                  +
                                                  + + + +
                                                  +
                                                  +
                                                  +
                                                  Javascript API Test
                                                  + +
                                                  +
                                                  + + +
                                                  Foo
                                                  + + +
                                                  Foo
                                                  + + + + +
                                                  Foo
                                                  + + + + +
                                                  Foo
                                                  + + + + +
                                                  Foo
                                                  + + + + + + + +
                                                  Foo
                                                  + + + +
                                                  Foo
                                                  + + + +
                                                  Foo
                                                  + + + + + + + + + +
                                                  Foo
                                                  + + + +
                                                  Foo
                                                  + + + +
                                                    +
                                                  • bar
                                                  • +
                                                  + + + +
                                                    +
                                                  • bar
                                                  • +
                                                  + + + + + + +
                                                  + +
                                                  + + +
                                                  + +
                                                  + + +
                                                  +
                                                  + + + +
                                                  Foo
                                                  + + +
                                                  Foo
                                                  + + +
                                                  Foo +
                                                  + + +loading... +
                                                  Foo
                                                  + + +loading... +
                                                  +
                                                  Foo
                                                  +
                                                  + + + +
                                                  +
                                                  + + +
                                                    +
                                                  • bar
                                                  • +
                                                  +
                                                  + + +
                                                    +
                                                  • bar
                                                  • +
                                                  +
                                                  + + + +
                                                    +
                                                  +
                                                  + + +
                                                    +
                                                  +
                                                  + + + +
                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + +Foo + + + +Foo + + + +Foo + + + + + + + + + + + + + + +Text + + + + + + + + + + + + + + + + + + + + + +
                                                  + + +
                                                  + + +
                                                  + + + Foo + +
                                                  + + +
                                                  + 0 +
                                                  + + +
                                                  + 0 +
                                                  + + +
                                                  + 0 +
                                                  + + +
                                                  + 0 +
                                                  + + +
                                                  +
                                                  + +
                                                  +
                                                  + + + + + +History Test + + +Get From +
                                                  + + +
                                                  + + +
                                                    + + +
                                                      + + +
                                                      + + +
                                                      + + + + +click me! (external target) +
                                                      + + + +
                                                      + +
                                                      + + + +
                                                      + + +
                                                      + + +
                                                      + + +
                                                      Bar
                                                      +
                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + Before + + + +
                                                      + Before + Before +
                                                      + + + + Local Var Set + + + Local Var Include + + +
                                                      Autofocus
                                                      + + +
                                                      + +
                                                      +
                                                      + + +
                                                      + + + +
                                                      + + + +
                                                      + + + +
                                                      + + + + +
                                                      + + + + +
                                                      + + + +
                                                      + + +
                                                      + + + +
                                                      +
                                                      + +
                                                      + +   + Cancel +
                                                      + + +
                                                      + +
                                                      + + +
                                                      +
                                                      + + + + +
                                                      + + +
                                                      foo
                                                      + + +
                                                      foo
                                                      + + +
                                                      + +
                                                      + + +
                                                      + +
                                                      + + +
                                                      + +
                                                      + + + + + +
                                                      +
                                                      + + +
                                                      +
                                                      + + +
                                                      +
                                                      + +
                                                      +
                                                      + + +
                                                      +
                                                      +
                                                      +
                                                      +
                                                      +
                                                      +
                                                      + + +
                                                        + + +
                                                          + + +
                                                            + + +
                                                              + + +
                                                              + + Page1 + + + Page2 + + +
                                                              +

                                                              Content

                                                              +
                                                              +
                                                              + + + +
                                                              Foo +
                                                              + + +
                                                              +
                                                              +
                                                              +
                                                              +
                                                              + + +
                                                              +
                                                              +
                                                              +
                                                              +
                                                              +
                                                              +
                                                              +
                                                              +
                                                              +
                                                              +
                                                              + + + + bar + + + bar + + + bar + + +
                                                              + bar +
                                                              + + + + + +
                                                              + +