diff --git a/CHANGELOG.md b/CHANGELOG.md
index 553e83c735..b58bd9645e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,24 @@
# Svelte changelog
+## 3.6.11
+
+* Handle reassigned RxJS observables ([#3304](https://github.com/sveltejs/svelte/issues/3304))
+* Remove commas from HTMLified attributes with multiple chunks ([#3341](https://github.com/sveltejs/svelte/issues/3341))
+* Prevent `class` on element with scoped styles from rendering as `undefined` ([#3283](https://github.com/sveltejs/svelte/issues/3283))
+* Allow references to index in key expression ([#3274](https://github.com/sveltejs/svelte/issues/3274))
+* Mark attribute selectors as used if corresponding binding exists ([#3281](https://github.com/sveltejs/svelte/issues/3281))
+* Preserve `async`/`*` when hoisting functions ([#3179](https://github.com/sveltejs/svelte/issues/3179))
+* Make `raf` a noop on server ([#3324](https://github.com/sveltejs/svelte/issues/3324))
+* Prevent erroneous a11y warning for image input with alt attribute ([#3331](https://github.com/sveltejs/svelte/issues/3331))
+* Add several well-known globals ([#3316](https://github.com/sveltejs/svelte/pull/3316))
+
+## 3.6.10
+
+* Use `change` event for file inputs ([#3226](https://github.com/sveltejs/svelte/issues/3226))
+* Always fire reactive declarations with `$$props` ([#3286](https://github.com/sveltejs/svelte/issues/3286))
+* More conservative spread prop updates ([#3289](https://github.com/sveltejs/svelte/issues/3289))
+* Quote props if necessary in SSR mode ([#3312](https://github.com/sveltejs/svelte/issues/3312))
+
## 3.6.9
* Always update derived stores with a derived input whose value does not change ([#3191](https://github.com/sveltejs/svelte/issues/3191))
diff --git a/package-lock.json b/package-lock.json
index bcde04de20..2f432d9702 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,13 +1,13 @@
{
"name": "svelte",
- "version": "3.6.7",
+ "version": "3.6.10",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@babel/code-frame": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
- "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
+ "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
"dev": true,
"requires": {
"@babel/highlight": "^7.0.0"
@@ -139,9 +139,9 @@
"dev": true
},
"acorn-globals": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.2.tgz",
- "integrity": "sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ==",
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.3.tgz",
+ "integrity": "sha512-vkR40VwS2SYO98AIeFvzWWh+xyc2qi9s7OoXSFEGIP/rOJKzjnhykaZJNnHdoq4BL2gGxI5EZOU16z896EYnOQ==",
"dev": true,
"requires": {
"acorn": "^6.0.1",
@@ -192,9 +192,9 @@
}
},
"ajv": {
- "version": "6.10.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.1.tgz",
- "integrity": "sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ==",
+ "version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
"dev": true,
"requires": {
"fast-deep-equal": "^2.0.1",
@@ -582,12 +582,12 @@
"dev": true
},
"cssstyle": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.3.0.tgz",
- "integrity": "sha512-wXsoRfsRfsLVNaVzoKdqvEmK/5PFaEXNspVT22Ots6K/cnJdpoDKuQFw+qlMiXnmaif1OgeC466X1zISgAOcGg==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz",
+ "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==",
"dev": true,
"requires": {
- "cssom": "~0.3.6"
+ "cssom": "0.3.x"
}
},
"dashdash": {
@@ -772,9 +772,9 @@
}
},
"eslint": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.0.1.tgz",
- "integrity": "sha512-DyQRaMmORQ+JsWShYsSg4OPTjY56u1nCjAmICrE8vLWqyLKxhFXOthwMj1SA8xwfrv0CofLNVnqbfyhwCkaO0w==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.1.0.tgz",
+ "integrity": "sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
@@ -783,7 +783,7 @@
"cross-spawn": "^6.0.5",
"debug": "^4.0.1",
"doctrine": "^3.0.0",
- "eslint-scope": "^4.0.3",
+ "eslint-scope": "^5.0.0",
"eslint-utils": "^1.3.1",
"eslint-visitor-keys": "^1.0.0",
"espree": "^6.0.0",
@@ -791,36 +791,31 @@
"esutils": "^2.0.2",
"file-entry-cache": "^5.0.1",
"functional-red-black-tree": "^1.0.1",
- "glob-parent": "^3.1.0",
+ "glob-parent": "^5.0.0",
"globals": "^11.7.0",
"ignore": "^4.0.6",
"import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
- "inquirer": "^6.2.2",
+ "inquirer": "^6.4.1",
"is-glob": "^4.0.0",
"js-yaml": "^3.13.1",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.3.0",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.14",
"minimatch": "^3.0.4",
"mkdirp": "^0.5.1",
"natural-compare": "^1.4.0",
"optionator": "^0.8.2",
"progress": "^2.0.0",
"regexpp": "^2.0.1",
- "semver": "^5.5.1",
- "strip-ansi": "^4.0.0",
- "strip-json-comments": "^2.0.1",
+ "semver": "^6.1.2",
+ "strip-ansi": "^5.2.0",
+ "strip-json-comments": "^3.0.1",
"table": "^5.2.3",
- "text-table": "^0.2.0"
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
},
"dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
"cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
@@ -832,6 +827,14 @@
"semver": "^5.5.0",
"shebang-command": "^1.2.0",
"which": "^1.2.9"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
+ "dev": true
+ }
}
},
"debug": {
@@ -843,20 +846,21 @@
"ms": "^2.1.1"
}
},
- "semver": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
- "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
- "dev": true
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "eslint-scope": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
+ "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
}
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
}
}
},
@@ -888,9 +892,9 @@
}
},
"eslint-module-utils": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz",
- "integrity": "sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz",
+ "integrity": "sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw==",
"dev": true,
"requires": {
"debug": "^2.6.8",
@@ -915,9 +919,9 @@
}
},
"eslint-plugin-import": {
- "version": "2.18.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.0.tgz",
- "integrity": "sha512-PZpAEC4gj/6DEMMoU2Df01C5c50r7zdGIN52Yfi7CvvWaYssG7Jt5R9nFG5gmqodxNOz9vQS87xk6Izdtpdrig==",
+ "version": "2.18.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz",
+ "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==",
"dev": true,
"requires": {
"array-includes": "^3.0.3",
@@ -927,8 +931,8 @@
"eslint-import-resolver-node": "^0.3.2",
"eslint-module-utils": "^2.4.0",
"has": "^1.0.3",
- "lodash": "^4.17.11",
"minimatch": "^3.0.4",
+ "object.values": "^1.1.0",
"read-pkg-up": "^2.0.0",
"resolve": "^1.11.0"
},
@@ -1136,9 +1140,9 @@
"dev": true
},
"esutils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true
},
"execa": {
@@ -1178,9 +1182,9 @@
"dev": true
},
"external-editor": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
- "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
"dev": true,
"requires": {
"chardet": "^0.7.0",
@@ -1397,24 +1401,12 @@
}
},
"glob-parent": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz",
+ "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==",
"dev": true,
"requires": {
- "is-glob": "^3.1.0",
- "path-dirname": "^1.0.0"
- },
- "dependencies": {
- "is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.0"
- }
- }
+ "is-glob": "^4.0.1"
}
},
"globals": {
@@ -1595,9 +1587,9 @@
"dev": true
},
"inquirer": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.4.1.tgz",
- "integrity": "sha512-/Jw+qPZx4EDYsaT6uz7F4GJRNFMRdKNeUZw3ZnKV8lyuUgz/YWRCSUAJMZSVhSq4Ec0R2oYnyi6b3d4JXcL5Nw==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz",
+ "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==",
"dev": true,
"requires": {
"ansi-escapes": "^3.2.0",
@@ -1606,7 +1598,7 @@
"cli-width": "^2.0.0",
"external-editor": "^3.0.3",
"figures": "^2.0.0",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.12",
"mute-stream": "0.0.7",
"run-async": "^2.2.0",
"rxjs": "^6.4.0",
@@ -1859,9 +1851,9 @@
},
"dependencies": {
"ws": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.0.1.tgz",
- "integrity": "sha512-ILHfMbuqLJvnSgYXLgy4kMntroJpe8hT41dOVWM8bxRuw6TK4mgMp9VJUNsZTEc5Bh+Mbs0DJT4M0N+wBG9l9A==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.1.1.tgz",
+ "integrity": "sha512-o41D/WmDeca0BqYhsr3nJzQyg9NF5X8l/UdnFNux9cS3lwB+swm8qGWX5rn+aD6xfBU3rGmtHij7g7x6LxFU3A==",
"dev": true,
"requires": {
"async-limiter": "^1.0.0"
@@ -1979,9 +1971,9 @@
}
},
"lodash": {
- "version": "4.17.11",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
- "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
"dev": true
},
"lodash.sortby": {
@@ -2134,9 +2126,9 @@
}
},
"mocha": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.4.tgz",
- "integrity": "sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz",
+ "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==",
"dev": true,
"requires": {
"ansi-colors": "3.2.3",
@@ -2222,6 +2214,12 @@
"ansi-regex": "^3.0.0"
}
},
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ },
"supports-color": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
@@ -2453,6 +2451,18 @@
"es-abstract": "^1.5.1"
}
},
+ "object.values": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz",
+ "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.12.0",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -2595,12 +2605,6 @@
"integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==",
"dev": true
},
- "path-dirname": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
- "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
- "dev": true
- },
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
@@ -2760,9 +2764,9 @@
"dev": true
},
"psl": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz",
- "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz",
+ "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==",
"dev": true
},
"pump": {
@@ -3303,9 +3307,9 @@
"dev": true
},
"strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
+ "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
"dev": true
},
"sucrase": {
@@ -3336,13 +3340,13 @@
"dev": true
},
"table": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/table/-/table-5.4.1.tgz",
- "integrity": "sha512-E6CK1/pZe2N75rGZQotFOdmzWQ1AILtgYbMAbAjvms0S1l5IDB47zG3nCnFGB/w+7nB3vKofbLXCH7HPBo864w==",
+ "version": "5.4.5",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.5.tgz",
+ "integrity": "sha512-oGa2Hl7CQjfoaogtrOHEJroOcYILTx7BZWLGsJIlzoWmB2zmguhNfPJZsWPKYek/MgCxfco54gEi31d1uN2hFA==",
"dev": true,
"requires": {
- "ajv": "^6.9.1",
- "lodash": "^4.17.11",
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
"slice-ansi": "^2.1.0",
"string-width": "^3.0.0"
}
@@ -3549,6 +3553,12 @@
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
"dev": true
},
+ "v8-compile-cache": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz",
+ "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==",
+ "dev": true
+ },
"v8-to-istanbul": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-3.2.3.tgz",
diff --git a/package.json b/package.json
index 1f40d17821..9ee2d85e9a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "svelte",
- "version": "3.6.9",
+ "version": "3.6.11",
"description": "Cybernetically enhanced web apps",
"module": "index.mjs",
"main": "index",
@@ -66,8 +66,8 @@
"c8": "^5.0.1",
"codecov": "^3.5.0",
"css-tree": "1.0.0-alpha22",
- "eslint": "^6.0.1",
- "eslint-plugin-import": "^2.18.0",
+ "eslint": "^6.1.0",
+ "eslint-plugin-import": "^2.18.2",
"eslint-plugin-svelte3": "^2.6.0",
"estree-walker": "^0.6.1",
"is-reference": "^1.1.3",
@@ -75,7 +75,7 @@
"kleur": "^3.0.3",
"locate-character": "^2.0.5",
"magic-string": "^0.25.3",
- "mocha": "^6.1.4",
+ "mocha": "^6.2.0",
"puppeteer": "^1.18.1",
"rollup": "^1.16.6",
"rollup-plugin-commonjs": "^10.0.1",
diff --git a/site/Makefile b/site/Makefile
index c8d8b236a6..4c432dc6c9 100644
--- a/site/Makefile
+++ b/site/Makefile
@@ -19,4 +19,4 @@ docker:
deploy: sapper docker
@echo "\n~> deploying $(SERVICE) to Cloud Run servers"
- @gcloud beta run deploy $(SERVICE) --allow-unauthenticated --region us-central1 --image $(IMAGE) --memory=512Mi
+ @gcloud beta run deploy $(SERVICE) --allow-unauthenticated --platform managed --region us-central1 --image $(IMAGE) --memory=512Mi
diff --git a/site/content/docs/02-template-syntax.md b/site/content/docs/02-template-syntax.md
index f8c79bca47..3d396f2f24 100644
--- a/site/content/docs/02-template-syntax.md
+++ b/site/content/docs/02-template-syntax.md
@@ -947,7 +947,7 @@ Unlike with `transition:`, transitions applied with `in:` and `out:` are not bid
-#### animate:
+#### animate:*fn*
```sv
animate:name
@@ -982,7 +982,7 @@ DOMRect {
---
-An animation is triggered when the contents of a [keyed each block](docs#Each_blocks) are re-ordered. Animations do not run when an element is removed, only when the each block's data is reordered. Animate directives must be on an element that is an *immediate* child of a keyed each block.
+An animation is triggered when the contents of a [keyed each block](docs#each) are re-ordered. Animations do not run when an element is removed, only when the each block's data is reordered. Animate directives must be on an element that is an *immediate* child of a keyed each block.
Animations can be used with Svelte's [built-in animation functions](docs#svelte_animate) or [custom animation functions](docs#Custom_animation_functions).
diff --git a/site/content/docs/03-run-time.md b/site/content/docs/03-run-time.md
index 6d5777aacd..b5bd966625 100644
--- a/site/content/docs/03-run-time.md
+++ b/site/content/docs/03-run-time.md
@@ -156,6 +156,8 @@ Like lifecycle functions, this must be called during component initialisation.
```
+> Context is not inherently reactive. If you need reactive values in context then you can pass a store into context, which *will* be reactive.
+
#### `getContext`
```js
@@ -740,7 +742,23 @@ You can see a full example on the [animations tutorial](tutorial/animate)
### `svelte/easing`
-* TODO could have nice little interactive widgets showing the different functions, maybe
+Easing functions specificy the rate of change over time and are useful when working with Svelte's built-in transitions and animations as well as the tweened and spring utilities. `svelte/easing` contains 31 named exports, a `linear` ease and 3 variants of 10 different easing functions: `in`, `out` and `inOut`.
+
+You can explore the various eases using the [ease visualiser](examples#easing) in the [examples section](examples).
+
+
+| ease | in | out | inOut |
+| --- | --- | --- | --- |
+| **back** | `backIn` | `backOut` | `backInOut` |
+| **bounce** | `bounceIn` | `bounceOut` | `bounceInOut` |
+| **circ** | `circIn` | `circOut` | `circInOut` |
+| **cubic** | `cubicIn` | `cubicOut` | `cubicInOut` |
+| **elastic** | `elasticIn` | `elasticOut` | `elasticInOut` |
+| **expo** | `expoIn` | `expoOut` | `expoInOut` |
+| **quad** | `quadIn` | `quadOut` | `quadInOut` |
+| **quart** | `quartIn` | `quartOut` | `quartInOut` |
+| **quint** | `quintIn` | `quintOut` | `quintInOut` |
+| **sine** | `sineIn` | `sineOut` | `sineInOut` |
### `svelte/register`
diff --git a/site/content/examples/11-easing/00-easing/App.svelte b/site/content/examples/11-easing/00-easing/App.svelte
new file mode 100644
index 0000000000..c33e73518e
--- /dev/null
+++ b/site/content/examples/11-easing/00-easing/App.svelte
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/site/content/examples/11-easing/00-easing/Controls.svelte b/site/content/examples/11-easing/00-easing/Controls.svelte
new file mode 100644
index 0000000000..66a297323f
--- /dev/null
+++ b/site/content/examples/11-easing/00-easing/Controls.svelte
@@ -0,0 +1,186 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/site/content/examples/11-easing/00-easing/Grid.svelte b/site/content/examples/11-easing/00-easing/Grid.svelte
new file mode 100644
index 0000000000..e704f46cf7
--- /dev/null
+++ b/site/content/examples/11-easing/00-easing/Grid.svelte
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+{#each { length: 8 } as _, i}
+ {#if i < 6}
+
+ {/if}
+
+{/each}
+
+
+
+
\ No newline at end of file
diff --git a/site/content/examples/11-easing/00-easing/eases.js b/site/content/examples/11-easing/00-easing/eases.js
new file mode 100644
index 0000000000..a24246005a
--- /dev/null
+++ b/site/content/examples/11-easing/00-easing/eases.js
@@ -0,0 +1,43 @@
+import * as eases from 'svelte/easing';
+
+const processed_eases = {};
+
+for (const ease in eases) {
+ if (ease === "linear") {
+ processed_eases.linear = eases.linear;
+ } else {
+ const name = ease.replace(/In$|InOut$|Out$/, '');
+ const type = ease.match(/In$|InOut$|Out$/)[0];
+
+ if (!(name in processed_eases)) processed_eases[name] = {};
+ processed_eases[name][type] = {};
+ processed_eases[name][type].fn = eases[ease];
+
+ let shape = 'M0 1000';
+ for (let i = 1; i <= 1000; i++) {
+ shape = `${shape} L${(i / 1000) * 1000} ${1000 - eases[ease](i / 1000) * 1000} `;
+ processed_eases[name][type].shape = shape;
+ }
+ }
+}
+
+const sorted_eases = new Map([
+ ['sine', processed_eases.sine],
+ ['quad', processed_eases.quad],
+ ['cubic', processed_eases.cubic],
+ ['quart', processed_eases.quart],
+ ['quint', processed_eases.quint],
+ ['expo', processed_eases.expo],
+ ['circ', processed_eases.circ],
+ ['back', processed_eases.back],
+ ['elastic', processed_eases.elastic],
+ ['bounce', processed_eases.bounce],
+]);
+
+export const types = [
+ ['Ease In', 'In'],
+ ['Ease Out', 'Out'],
+ ['Ease In Out', 'InOut']
+];
+
+export { sorted_eases as eases };
\ No newline at end of file
diff --git a/site/content/examples/11-easing/00-easing/meta.json b/site/content/examples/11-easing/00-easing/meta.json
new file mode 100644
index 0000000000..59ad604b26
--- /dev/null
+++ b/site/content/examples/11-easing/00-easing/meta.json
@@ -0,0 +1,3 @@
+{
+ "title": "Ease Visualiser"
+}
\ No newline at end of file
diff --git a/site/content/examples/11-easing/meta.json b/site/content/examples/11-easing/meta.json
new file mode 100644
index 0000000000..78341a522d
--- /dev/null
+++ b/site/content/examples/11-easing/meta.json
@@ -0,0 +1,3 @@
+{
+ "title": "Easing"
+}
\ No newline at end of file
diff --git a/site/content/examples/11-svg/01-clock/App.svelte b/site/content/examples/12-svg/01-clock/App.svelte
similarity index 100%
rename from site/content/examples/11-svg/01-clock/App.svelte
rename to site/content/examples/12-svg/01-clock/App.svelte
diff --git a/site/content/examples/11-svg/01-clock/meta.json b/site/content/examples/12-svg/01-clock/meta.json
similarity index 100%
rename from site/content/examples/11-svg/01-clock/meta.json
rename to site/content/examples/12-svg/01-clock/meta.json
diff --git a/site/content/examples/11-svg/02-bar-chart/App.svelte b/site/content/examples/12-svg/02-bar-chart/App.svelte
similarity index 100%
rename from site/content/examples/11-svg/02-bar-chart/App.svelte
rename to site/content/examples/12-svg/02-bar-chart/App.svelte
diff --git a/site/content/examples/11-svg/02-bar-chart/meta.json b/site/content/examples/12-svg/02-bar-chart/meta.json
similarity index 100%
rename from site/content/examples/11-svg/02-bar-chart/meta.json
rename to site/content/examples/12-svg/02-bar-chart/meta.json
diff --git a/site/content/examples/11-svg/03-area-chart/App.svelte b/site/content/examples/12-svg/03-area-chart/App.svelte
similarity index 100%
rename from site/content/examples/11-svg/03-area-chart/App.svelte
rename to site/content/examples/12-svg/03-area-chart/App.svelte
diff --git a/site/content/examples/11-svg/03-area-chart/data.js b/site/content/examples/12-svg/03-area-chart/data.js
similarity index 100%
rename from site/content/examples/11-svg/03-area-chart/data.js
rename to site/content/examples/12-svg/03-area-chart/data.js
diff --git a/site/content/examples/11-svg/03-area-chart/meta.json b/site/content/examples/12-svg/03-area-chart/meta.json
similarity index 100%
rename from site/content/examples/11-svg/03-area-chart/meta.json
rename to site/content/examples/12-svg/03-area-chart/meta.json
diff --git a/site/content/examples/11-svg/04-scatterplot/App.svelte b/site/content/examples/12-svg/04-scatterplot/App.svelte
similarity index 100%
rename from site/content/examples/11-svg/04-scatterplot/App.svelte
rename to site/content/examples/12-svg/04-scatterplot/App.svelte
diff --git a/site/content/examples/11-svg/04-scatterplot/Scatterplot.svelte b/site/content/examples/12-svg/04-scatterplot/Scatterplot.svelte
similarity index 100%
rename from site/content/examples/11-svg/04-scatterplot/Scatterplot.svelte
rename to site/content/examples/12-svg/04-scatterplot/Scatterplot.svelte
diff --git a/site/content/examples/11-svg/04-scatterplot/data.js b/site/content/examples/12-svg/04-scatterplot/data.js
similarity index 100%
rename from site/content/examples/11-svg/04-scatterplot/data.js
rename to site/content/examples/12-svg/04-scatterplot/data.js
diff --git a/site/content/examples/11-svg/04-scatterplot/meta.json b/site/content/examples/12-svg/04-scatterplot/meta.json
similarity index 100%
rename from site/content/examples/11-svg/04-scatterplot/meta.json
rename to site/content/examples/12-svg/04-scatterplot/meta.json
diff --git a/site/content/examples/11-svg/05-svg-transitions/App.svelte b/site/content/examples/12-svg/05-svg-transitions/App.svelte
similarity index 100%
rename from site/content/examples/11-svg/05-svg-transitions/App.svelte
rename to site/content/examples/12-svg/05-svg-transitions/App.svelte
diff --git a/site/content/examples/11-svg/05-svg-transitions/custom-transitions.js b/site/content/examples/12-svg/05-svg-transitions/custom-transitions.js
similarity index 100%
rename from site/content/examples/11-svg/05-svg-transitions/custom-transitions.js
rename to site/content/examples/12-svg/05-svg-transitions/custom-transitions.js
diff --git a/site/content/examples/11-svg/05-svg-transitions/meta.json b/site/content/examples/12-svg/05-svg-transitions/meta.json
similarity index 100%
rename from site/content/examples/11-svg/05-svg-transitions/meta.json
rename to site/content/examples/12-svg/05-svg-transitions/meta.json
diff --git a/site/content/examples/11-svg/05-svg-transitions/shape.js b/site/content/examples/12-svg/05-svg-transitions/shape.js
similarity index 100%
rename from site/content/examples/11-svg/05-svg-transitions/shape.js
rename to site/content/examples/12-svg/05-svg-transitions/shape.js
diff --git a/site/content/examples/11-svg/meta.json b/site/content/examples/12-svg/meta.json
similarity index 100%
rename from site/content/examples/11-svg/meta.json
rename to site/content/examples/12-svg/meta.json
diff --git a/site/content/examples/12-actions/00-actions/App.svelte b/site/content/examples/13-actions/00-actions/App.svelte
similarity index 100%
rename from site/content/examples/12-actions/00-actions/App.svelte
rename to site/content/examples/13-actions/00-actions/App.svelte
diff --git a/site/content/examples/12-actions/00-actions/meta.json b/site/content/examples/13-actions/00-actions/meta.json
similarity index 100%
rename from site/content/examples/12-actions/00-actions/meta.json
rename to site/content/examples/13-actions/00-actions/meta.json
diff --git a/site/content/examples/12-actions/00-actions/pannable.js b/site/content/examples/13-actions/00-actions/pannable.js
similarity index 100%
rename from site/content/examples/12-actions/00-actions/pannable.js
rename to site/content/examples/13-actions/00-actions/pannable.js
diff --git a/site/content/examples/12-actions/01-adding-parameters-to-actions/App.svelte b/site/content/examples/13-actions/01-adding-parameters-to-actions/App.svelte
similarity index 100%
rename from site/content/examples/12-actions/01-adding-parameters-to-actions/App.svelte
rename to site/content/examples/13-actions/01-adding-parameters-to-actions/App.svelte
diff --git a/site/content/examples/12-actions/01-adding-parameters-to-actions/meta.json b/site/content/examples/13-actions/01-adding-parameters-to-actions/meta.json
similarity index 100%
rename from site/content/examples/12-actions/01-adding-parameters-to-actions/meta.json
rename to site/content/examples/13-actions/01-adding-parameters-to-actions/meta.json
diff --git a/site/content/examples/12-actions/meta.json b/site/content/examples/13-actions/meta.json
similarity index 100%
rename from site/content/examples/12-actions/meta.json
rename to site/content/examples/13-actions/meta.json
diff --git a/site/content/examples/13-classes/00-classes/App.svelte b/site/content/examples/14-classes/00-classes/App.svelte
similarity index 100%
rename from site/content/examples/13-classes/00-classes/App.svelte
rename to site/content/examples/14-classes/00-classes/App.svelte
diff --git a/site/content/examples/13-classes/00-classes/meta.json b/site/content/examples/14-classes/00-classes/meta.json
similarity index 100%
rename from site/content/examples/13-classes/00-classes/meta.json
rename to site/content/examples/14-classes/00-classes/meta.json
diff --git a/site/content/examples/13-classes/01-class-shorthand/App.svelte b/site/content/examples/14-classes/01-class-shorthand/App.svelte
similarity index 100%
rename from site/content/examples/13-classes/01-class-shorthand/App.svelte
rename to site/content/examples/14-classes/01-class-shorthand/App.svelte
diff --git a/site/content/examples/13-classes/01-class-shorthand/meta.json b/site/content/examples/14-classes/01-class-shorthand/meta.json
similarity index 100%
rename from site/content/examples/13-classes/01-class-shorthand/meta.json
rename to site/content/examples/14-classes/01-class-shorthand/meta.json
diff --git a/site/content/examples/13-classes/meta.json b/site/content/examples/14-classes/meta.json
similarity index 100%
rename from site/content/examples/13-classes/meta.json
rename to site/content/examples/14-classes/meta.json
diff --git a/site/content/examples/14-composition/00-slots/App.svelte b/site/content/examples/15-composition/00-slots/App.svelte
similarity index 100%
rename from site/content/examples/14-composition/00-slots/App.svelte
rename to site/content/examples/15-composition/00-slots/App.svelte
diff --git a/site/content/examples/14-composition/00-slots/Box.svelte b/site/content/examples/15-composition/00-slots/Box.svelte
similarity index 100%
rename from site/content/examples/14-composition/00-slots/Box.svelte
rename to site/content/examples/15-composition/00-slots/Box.svelte
diff --git a/site/content/examples/14-composition/00-slots/meta.json b/site/content/examples/15-composition/00-slots/meta.json
similarity index 100%
rename from site/content/examples/14-composition/00-slots/meta.json
rename to site/content/examples/15-composition/00-slots/meta.json
diff --git a/site/content/examples/14-composition/01-slot-fallbacks/App.svelte b/site/content/examples/15-composition/01-slot-fallbacks/App.svelte
similarity index 100%
rename from site/content/examples/14-composition/01-slot-fallbacks/App.svelte
rename to site/content/examples/15-composition/01-slot-fallbacks/App.svelte
diff --git a/site/content/examples/14-composition/01-slot-fallbacks/Box.svelte b/site/content/examples/15-composition/01-slot-fallbacks/Box.svelte
similarity index 100%
rename from site/content/examples/14-composition/01-slot-fallbacks/Box.svelte
rename to site/content/examples/15-composition/01-slot-fallbacks/Box.svelte
diff --git a/site/content/examples/14-composition/01-slot-fallbacks/meta.json b/site/content/examples/15-composition/01-slot-fallbacks/meta.json
similarity index 100%
rename from site/content/examples/14-composition/01-slot-fallbacks/meta.json
rename to site/content/examples/15-composition/01-slot-fallbacks/meta.json
diff --git a/site/content/examples/14-composition/02-named-slots/App.svelte b/site/content/examples/15-composition/02-named-slots/App.svelte
similarity index 100%
rename from site/content/examples/14-composition/02-named-slots/App.svelte
rename to site/content/examples/15-composition/02-named-slots/App.svelte
diff --git a/site/content/examples/14-composition/02-named-slots/ContactCard.svelte b/site/content/examples/15-composition/02-named-slots/ContactCard.svelte
similarity index 100%
rename from site/content/examples/14-composition/02-named-slots/ContactCard.svelte
rename to site/content/examples/15-composition/02-named-slots/ContactCard.svelte
diff --git a/site/content/examples/14-composition/02-named-slots/meta.json b/site/content/examples/15-composition/02-named-slots/meta.json
similarity index 100%
rename from site/content/examples/14-composition/02-named-slots/meta.json
rename to site/content/examples/15-composition/02-named-slots/meta.json
diff --git a/site/content/examples/14-composition/03-slot-props/App.svelte b/site/content/examples/15-composition/03-slot-props/App.svelte
similarity index 100%
rename from site/content/examples/14-composition/03-slot-props/App.svelte
rename to site/content/examples/15-composition/03-slot-props/App.svelte
diff --git a/site/content/examples/14-composition/03-slot-props/Hoverable.svelte b/site/content/examples/15-composition/03-slot-props/Hoverable.svelte
similarity index 100%
rename from site/content/examples/14-composition/03-slot-props/Hoverable.svelte
rename to site/content/examples/15-composition/03-slot-props/Hoverable.svelte
diff --git a/site/content/examples/14-composition/03-slot-props/meta.json b/site/content/examples/15-composition/03-slot-props/meta.json
similarity index 100%
rename from site/content/examples/14-composition/03-slot-props/meta.json
rename to site/content/examples/15-composition/03-slot-props/meta.json
diff --git a/site/content/examples/14-composition/04-modal/App.svelte b/site/content/examples/15-composition/04-modal/App.svelte
similarity index 100%
rename from site/content/examples/14-composition/04-modal/App.svelte
rename to site/content/examples/15-composition/04-modal/App.svelte
diff --git a/site/content/examples/14-composition/04-modal/Modal.svelte b/site/content/examples/15-composition/04-modal/Modal.svelte
similarity index 100%
rename from site/content/examples/14-composition/04-modal/Modal.svelte
rename to site/content/examples/15-composition/04-modal/Modal.svelte
diff --git a/site/content/examples/14-composition/04-modal/meta.json b/site/content/examples/15-composition/04-modal/meta.json
similarity index 100%
rename from site/content/examples/14-composition/04-modal/meta.json
rename to site/content/examples/15-composition/04-modal/meta.json
diff --git a/site/content/examples/14-composition/meta.json b/site/content/examples/15-composition/meta.json
similarity index 100%
rename from site/content/examples/14-composition/meta.json
rename to site/content/examples/15-composition/meta.json
diff --git a/site/content/examples/15-context/00-context-api/App.svelte b/site/content/examples/16-context/00-context-api/App.svelte
similarity index 100%
rename from site/content/examples/15-context/00-context-api/App.svelte
rename to site/content/examples/16-context/00-context-api/App.svelte
diff --git a/site/content/examples/15-context/00-context-api/Map.svelte b/site/content/examples/16-context/00-context-api/Map.svelte
similarity index 100%
rename from site/content/examples/15-context/00-context-api/Map.svelte
rename to site/content/examples/16-context/00-context-api/Map.svelte
diff --git a/site/content/examples/15-context/00-context-api/MapMarker.svelte b/site/content/examples/16-context/00-context-api/MapMarker.svelte
similarity index 100%
rename from site/content/examples/15-context/00-context-api/MapMarker.svelte
rename to site/content/examples/16-context/00-context-api/MapMarker.svelte
diff --git a/site/content/examples/15-context/00-context-api/mapbox.js b/site/content/examples/16-context/00-context-api/mapbox.js
similarity index 100%
rename from site/content/examples/15-context/00-context-api/mapbox.js
rename to site/content/examples/16-context/00-context-api/mapbox.js
diff --git a/site/content/examples/15-context/00-context-api/meta.json b/site/content/examples/16-context/00-context-api/meta.json
similarity index 100%
rename from site/content/examples/15-context/00-context-api/meta.json
rename to site/content/examples/16-context/00-context-api/meta.json
diff --git a/site/content/examples/15-context/meta.json b/site/content/examples/16-context/meta.json
similarity index 100%
rename from site/content/examples/15-context/meta.json
rename to site/content/examples/16-context/meta.json
diff --git a/site/content/examples/16-special-elements/00-svelte-self/App.svelte b/site/content/examples/17-special-elements/00-svelte-self/App.svelte
similarity index 100%
rename from site/content/examples/16-special-elements/00-svelte-self/App.svelte
rename to site/content/examples/17-special-elements/00-svelte-self/App.svelte
diff --git a/site/content/examples/16-special-elements/00-svelte-self/File.svelte b/site/content/examples/17-special-elements/00-svelte-self/File.svelte
similarity index 100%
rename from site/content/examples/16-special-elements/00-svelte-self/File.svelte
rename to site/content/examples/17-special-elements/00-svelte-self/File.svelte
diff --git a/site/content/examples/16-special-elements/00-svelte-self/Folder.svelte b/site/content/examples/17-special-elements/00-svelte-self/Folder.svelte
similarity index 100%
rename from site/content/examples/16-special-elements/00-svelte-self/Folder.svelte
rename to site/content/examples/17-special-elements/00-svelte-self/Folder.svelte
diff --git a/site/content/examples/16-special-elements/00-svelte-self/meta.json b/site/content/examples/17-special-elements/00-svelte-self/meta.json
similarity index 100%
rename from site/content/examples/16-special-elements/00-svelte-self/meta.json
rename to site/content/examples/17-special-elements/00-svelte-self/meta.json
diff --git a/site/content/examples/16-special-elements/01-svelte-component/App.svelte b/site/content/examples/17-special-elements/01-svelte-component/App.svelte
similarity index 100%
rename from site/content/examples/16-special-elements/01-svelte-component/App.svelte
rename to site/content/examples/17-special-elements/01-svelte-component/App.svelte
diff --git a/site/content/examples/16-special-elements/01-svelte-component/BlueThing.svelte b/site/content/examples/17-special-elements/01-svelte-component/BlueThing.svelte
similarity index 100%
rename from site/content/examples/16-special-elements/01-svelte-component/BlueThing.svelte
rename to site/content/examples/17-special-elements/01-svelte-component/BlueThing.svelte
diff --git a/site/content/examples/16-special-elements/01-svelte-component/GreenThing.svelte b/site/content/examples/17-special-elements/01-svelte-component/GreenThing.svelte
similarity index 100%
rename from site/content/examples/16-special-elements/01-svelte-component/GreenThing.svelte
rename to site/content/examples/17-special-elements/01-svelte-component/GreenThing.svelte
diff --git a/site/content/examples/16-special-elements/01-svelte-component/RedThing.svelte b/site/content/examples/17-special-elements/01-svelte-component/RedThing.svelte
similarity index 100%
rename from site/content/examples/16-special-elements/01-svelte-component/RedThing.svelte
rename to site/content/examples/17-special-elements/01-svelte-component/RedThing.svelte
diff --git a/site/content/examples/16-special-elements/01-svelte-component/meta.json b/site/content/examples/17-special-elements/01-svelte-component/meta.json
similarity index 100%
rename from site/content/examples/16-special-elements/01-svelte-component/meta.json
rename to site/content/examples/17-special-elements/01-svelte-component/meta.json
diff --git a/site/content/examples/16-special-elements/02-svelte-window/App.svelte b/site/content/examples/17-special-elements/02-svelte-window/App.svelte
similarity index 100%
rename from site/content/examples/16-special-elements/02-svelte-window/App.svelte
rename to site/content/examples/17-special-elements/02-svelte-window/App.svelte
diff --git a/site/content/examples/16-special-elements/02-svelte-window/meta.json b/site/content/examples/17-special-elements/02-svelte-window/meta.json
similarity index 100%
rename from site/content/examples/16-special-elements/02-svelte-window/meta.json
rename to site/content/examples/17-special-elements/02-svelte-window/meta.json
diff --git a/site/content/examples/16-special-elements/03-svelte-window-bindings/App.svelte b/site/content/examples/17-special-elements/03-svelte-window-bindings/App.svelte
similarity index 100%
rename from site/content/examples/16-special-elements/03-svelte-window-bindings/App.svelte
rename to site/content/examples/17-special-elements/03-svelte-window-bindings/App.svelte
diff --git a/site/content/examples/16-special-elements/03-svelte-window-bindings/meta.json b/site/content/examples/17-special-elements/03-svelte-window-bindings/meta.json
similarity index 100%
rename from site/content/examples/16-special-elements/03-svelte-window-bindings/meta.json
rename to site/content/examples/17-special-elements/03-svelte-window-bindings/meta.json
diff --git a/site/content/examples/16-special-elements/04-svelte-body/App.svelte b/site/content/examples/17-special-elements/04-svelte-body/App.svelte
similarity index 100%
rename from site/content/examples/16-special-elements/04-svelte-body/App.svelte
rename to site/content/examples/17-special-elements/04-svelte-body/App.svelte
diff --git a/site/content/examples/16-special-elements/04-svelte-body/meta.json b/site/content/examples/17-special-elements/04-svelte-body/meta.json
similarity index 100%
rename from site/content/examples/16-special-elements/04-svelte-body/meta.json
rename to site/content/examples/17-special-elements/04-svelte-body/meta.json
diff --git a/site/content/examples/16-special-elements/05-svelte-head/App.svelte b/site/content/examples/17-special-elements/05-svelte-head/App.svelte
similarity index 100%
rename from site/content/examples/16-special-elements/05-svelte-head/App.svelte
rename to site/content/examples/17-special-elements/05-svelte-head/App.svelte
diff --git a/site/content/examples/16-special-elements/05-svelte-head/meta.json b/site/content/examples/17-special-elements/05-svelte-head/meta.json
similarity index 100%
rename from site/content/examples/16-special-elements/05-svelte-head/meta.json
rename to site/content/examples/17-special-elements/05-svelte-head/meta.json
diff --git a/site/content/examples/16-special-elements/meta.json b/site/content/examples/17-special-elements/meta.json
similarity index 100%
rename from site/content/examples/16-special-elements/meta.json
rename to site/content/examples/17-special-elements/meta.json
diff --git a/site/content/examples/17-module-context/01-module-exports/App.svelte b/site/content/examples/18-module-context/01-module-exports/App.svelte
similarity index 100%
rename from site/content/examples/17-module-context/01-module-exports/App.svelte
rename to site/content/examples/18-module-context/01-module-exports/App.svelte
diff --git a/site/content/examples/17-module-context/01-module-exports/AudioPlayer.svelte b/site/content/examples/18-module-context/01-module-exports/AudioPlayer.svelte
similarity index 100%
rename from site/content/examples/17-module-context/01-module-exports/AudioPlayer.svelte
rename to site/content/examples/18-module-context/01-module-exports/AudioPlayer.svelte
diff --git a/site/content/examples/17-module-context/01-module-exports/meta.json b/site/content/examples/18-module-context/01-module-exports/meta.json
similarity index 100%
rename from site/content/examples/17-module-context/01-module-exports/meta.json
rename to site/content/examples/18-module-context/01-module-exports/meta.json
diff --git a/site/content/examples/17-module-context/meta.json b/site/content/examples/18-module-context/meta.json
similarity index 100%
rename from site/content/examples/17-module-context/meta.json
rename to site/content/examples/18-module-context/meta.json
diff --git a/site/content/examples/18-debugging/00-debug/App.svelte b/site/content/examples/19-debugging/00-debug/App.svelte
similarity index 100%
rename from site/content/examples/18-debugging/00-debug/App.svelte
rename to site/content/examples/19-debugging/00-debug/App.svelte
diff --git a/site/content/examples/18-debugging/00-debug/meta.json b/site/content/examples/19-debugging/00-debug/meta.json
similarity index 100%
rename from site/content/examples/18-debugging/00-debug/meta.json
rename to site/content/examples/19-debugging/00-debug/meta.json
diff --git a/site/content/examples/18-debugging/meta.json b/site/content/examples/19-debugging/meta.json
similarity index 100%
rename from site/content/examples/18-debugging/meta.json
rename to site/content/examples/19-debugging/meta.json
diff --git a/site/content/examples/19-7guis/01-7guis-counter/App.svelte b/site/content/examples/20-7guis/01-7guis-counter/App.svelte
similarity index 100%
rename from site/content/examples/19-7guis/01-7guis-counter/App.svelte
rename to site/content/examples/20-7guis/01-7guis-counter/App.svelte
diff --git a/site/content/examples/19-7guis/01-7guis-counter/meta.json b/site/content/examples/20-7guis/01-7guis-counter/meta.json
similarity index 100%
rename from site/content/examples/19-7guis/01-7guis-counter/meta.json
rename to site/content/examples/20-7guis/01-7guis-counter/meta.json
diff --git a/site/content/examples/19-7guis/02-7guis-temperature/App.svelte b/site/content/examples/20-7guis/02-7guis-temperature/App.svelte
similarity index 100%
rename from site/content/examples/19-7guis/02-7guis-temperature/App.svelte
rename to site/content/examples/20-7guis/02-7guis-temperature/App.svelte
diff --git a/site/content/examples/19-7guis/02-7guis-temperature/meta.json b/site/content/examples/20-7guis/02-7guis-temperature/meta.json
similarity index 100%
rename from site/content/examples/19-7guis/02-7guis-temperature/meta.json
rename to site/content/examples/20-7guis/02-7guis-temperature/meta.json
diff --git a/site/content/examples/19-7guis/03-7guis-flight-booker/App.svelte b/site/content/examples/20-7guis/03-7guis-flight-booker/App.svelte
similarity index 100%
rename from site/content/examples/19-7guis/03-7guis-flight-booker/App.svelte
rename to site/content/examples/20-7guis/03-7guis-flight-booker/App.svelte
diff --git a/site/content/examples/19-7guis/03-7guis-flight-booker/meta.json b/site/content/examples/20-7guis/03-7guis-flight-booker/meta.json
similarity index 100%
rename from site/content/examples/19-7guis/03-7guis-flight-booker/meta.json
rename to site/content/examples/20-7guis/03-7guis-flight-booker/meta.json
diff --git a/site/content/examples/19-7guis/04-7guis-timer/App.svelte b/site/content/examples/20-7guis/04-7guis-timer/App.svelte
similarity index 100%
rename from site/content/examples/19-7guis/04-7guis-timer/App.svelte
rename to site/content/examples/20-7guis/04-7guis-timer/App.svelte
diff --git a/site/content/examples/19-7guis/04-7guis-timer/meta.json b/site/content/examples/20-7guis/04-7guis-timer/meta.json
similarity index 100%
rename from site/content/examples/19-7guis/04-7guis-timer/meta.json
rename to site/content/examples/20-7guis/04-7guis-timer/meta.json
diff --git a/site/content/examples/19-7guis/05-7guis-crud/App.svelte b/site/content/examples/20-7guis/05-7guis-crud/App.svelte
similarity index 100%
rename from site/content/examples/19-7guis/05-7guis-crud/App.svelte
rename to site/content/examples/20-7guis/05-7guis-crud/App.svelte
diff --git a/site/content/examples/19-7guis/05-7guis-crud/meta.json b/site/content/examples/20-7guis/05-7guis-crud/meta.json
similarity index 100%
rename from site/content/examples/19-7guis/05-7guis-crud/meta.json
rename to site/content/examples/20-7guis/05-7guis-crud/meta.json
diff --git a/site/content/examples/19-7guis/06-7guis-circles/App.svelte b/site/content/examples/20-7guis/06-7guis-circles/App.svelte
similarity index 100%
rename from site/content/examples/19-7guis/06-7guis-circles/App.svelte
rename to site/content/examples/20-7guis/06-7guis-circles/App.svelte
diff --git a/site/content/examples/19-7guis/06-7guis-circles/meta.json b/site/content/examples/20-7guis/06-7guis-circles/meta.json
similarity index 100%
rename from site/content/examples/19-7guis/06-7guis-circles/meta.json
rename to site/content/examples/20-7guis/06-7guis-circles/meta.json
diff --git a/site/content/examples/19-7guis/meta.json b/site/content/examples/20-7guis/meta.json
similarity index 100%
rename from site/content/examples/19-7guis/meta.json
rename to site/content/examples/20-7guis/meta.json
diff --git a/site/content/examples/20-miscellaneous/01-hacker-news/App.svelte b/site/content/examples/21-miscellaneous/01-hacker-news/App.svelte
similarity index 100%
rename from site/content/examples/20-miscellaneous/01-hacker-news/App.svelte
rename to site/content/examples/21-miscellaneous/01-hacker-news/App.svelte
diff --git a/site/content/examples/20-miscellaneous/01-hacker-news/Comment.svelte b/site/content/examples/21-miscellaneous/01-hacker-news/Comment.svelte
similarity index 100%
rename from site/content/examples/20-miscellaneous/01-hacker-news/Comment.svelte
rename to site/content/examples/21-miscellaneous/01-hacker-news/Comment.svelte
diff --git a/site/content/examples/20-miscellaneous/01-hacker-news/Item.svelte b/site/content/examples/21-miscellaneous/01-hacker-news/Item.svelte
similarity index 100%
rename from site/content/examples/20-miscellaneous/01-hacker-news/Item.svelte
rename to site/content/examples/21-miscellaneous/01-hacker-news/Item.svelte
diff --git a/site/content/examples/20-miscellaneous/01-hacker-news/List.svelte b/site/content/examples/21-miscellaneous/01-hacker-news/List.svelte
similarity index 100%
rename from site/content/examples/20-miscellaneous/01-hacker-news/List.svelte
rename to site/content/examples/21-miscellaneous/01-hacker-news/List.svelte
diff --git a/site/content/examples/20-miscellaneous/01-hacker-news/Summary.svelte b/site/content/examples/21-miscellaneous/01-hacker-news/Summary.svelte
similarity index 100%
rename from site/content/examples/20-miscellaneous/01-hacker-news/Summary.svelte
rename to site/content/examples/21-miscellaneous/01-hacker-news/Summary.svelte
diff --git a/site/content/examples/20-miscellaneous/01-hacker-news/meta.json b/site/content/examples/21-miscellaneous/01-hacker-news/meta.json
similarity index 100%
rename from site/content/examples/20-miscellaneous/01-hacker-news/meta.json
rename to site/content/examples/21-miscellaneous/01-hacker-news/meta.json
diff --git a/site/content/examples/20-miscellaneous/02-immutable-data/App.svelte b/site/content/examples/21-miscellaneous/02-immutable-data/App.svelte
similarity index 100%
rename from site/content/examples/20-miscellaneous/02-immutable-data/App.svelte
rename to site/content/examples/21-miscellaneous/02-immutable-data/App.svelte
diff --git a/site/content/examples/20-miscellaneous/02-immutable-data/ImmutableTodo.svelte b/site/content/examples/21-miscellaneous/02-immutable-data/ImmutableTodo.svelte
similarity index 100%
rename from site/content/examples/20-miscellaneous/02-immutable-data/ImmutableTodo.svelte
rename to site/content/examples/21-miscellaneous/02-immutable-data/ImmutableTodo.svelte
diff --git a/site/content/examples/20-miscellaneous/02-immutable-data/MutableTodo.svelte b/site/content/examples/21-miscellaneous/02-immutable-data/MutableTodo.svelte
similarity index 100%
rename from site/content/examples/20-miscellaneous/02-immutable-data/MutableTodo.svelte
rename to site/content/examples/21-miscellaneous/02-immutable-data/MutableTodo.svelte
diff --git a/site/content/examples/20-miscellaneous/02-immutable-data/flash.js b/site/content/examples/21-miscellaneous/02-immutable-data/flash.js
similarity index 100%
rename from site/content/examples/20-miscellaneous/02-immutable-data/flash.js
rename to site/content/examples/21-miscellaneous/02-immutable-data/flash.js
diff --git a/site/content/examples/20-miscellaneous/02-immutable-data/meta.json b/site/content/examples/21-miscellaneous/02-immutable-data/meta.json
similarity index 100%
rename from site/content/examples/20-miscellaneous/02-immutable-data/meta.json
rename to site/content/examples/21-miscellaneous/02-immutable-data/meta.json
diff --git a/site/content/examples/20-miscellaneous/meta.json b/site/content/examples/21-miscellaneous/meta.json
similarity index 100%
rename from site/content/examples/20-miscellaneous/meta.json
rename to site/content/examples/21-miscellaneous/meta.json
diff --git a/site/content/tutorial/15-context/01-context-api/text.md b/site/content/tutorial/15-context/01-context-api/text.md
index 3d095dd679..96a716dfb0 100644
--- a/site/content/tutorial/15-context/01-context-api/text.md
+++ b/site/content/tutorial/15-context/01-context-api/text.md
@@ -35,7 +35,6 @@ The markers can now add themselves to the map.
> A more finished version of `` would also handle removal and prop changes, but we're only demonstrating context here.
-
## Context keys
In `mapbox.js` you'll see this line:
@@ -44,4 +43,14 @@ In `mapbox.js` you'll see this line:
const key = {};
```
-We can use anything as a key — we could do `setContext('mapbox', ...)` for example. The downside of using a string is that different component libraries might accidentally use the same one; using an object literal means the keys are guaranteed not to conflict in any circumstance, even when you have multiple different contexts operating across many component layers.
\ No newline at end of file
+We can use anything as a key — we could do `setContext('mapbox', ...)` for example. The downside of using a string is that different component libraries might accidentally use the same one; using an object literal means the keys are guaranteed not to conflict in any circumstance (since an object only has referential equality to itself, i.e. `{} !== {}` whereas `"x" === "x"`), even when you have multiple different contexts operating across many component layers.
+
+## Contexts vs. stores
+
+Contexts and stores seem similar. They differ in that stores are available to *any* part of an app, while a context is only available to *a component and its descendants*. This can be helpful if you want to use several instances of a component without the state of one interfering with the state of the others.
+
+In fact, you might use the two together. Since context is not reactive, values that change over time should be represented as stores:
+
+```js
+const { these, are, stores } = getContext(...);
+```
diff --git a/site/package-lock.json b/site/package-lock.json
index 42a737dbe0..373c0505cb 100644
--- a/site/package-lock.json
+++ b/site/package-lock.json
@@ -14,38 +14,73 @@
}
},
"@babel/core": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.4.tgz",
- "integrity": "sha512-+DaeBEpYq6b2+ZmHx3tHspC+ZRflrvLqwfv8E3hNr5LVQoyBnL8RPKSBCg+rK2W2My9PWlujBiqd0ZPsR9Q6zQ==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz",
+ "integrity": "sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/generator": "^7.5.0",
- "@babel/helpers": "^7.5.4",
- "@babel/parser": "^7.5.0",
+ "@babel/code-frame": "^7.5.5",
+ "@babel/generator": "^7.5.5",
+ "@babel/helpers": "^7.5.5",
+ "@babel/parser": "^7.5.5",
"@babel/template": "^7.4.4",
- "@babel/traverse": "^7.5.0",
- "@babel/types": "^7.5.0",
+ "@babel/traverse": "^7.5.5",
+ "@babel/types": "^7.5.5",
"convert-source-map": "^1.1.0",
"debug": "^4.1.0",
"json5": "^2.1.0",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.13",
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
+ "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.0.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
+ "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/generator": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.0.tgz",
- "integrity": "sha512-1TTVrt7J9rcG5PMjvO7VEG3FrEoEJNHxumRq66GemPmzboLWtIjjcJgk8rokuAS7IiRSpgVSu5Vb9lc99iJkOA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz",
+ "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==",
"dev": true,
"requires": {
- "@babel/types": "^7.5.0",
+ "@babel/types": "^7.5.5",
"jsesc": "^2.5.1",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.13",
"source-map": "^0.5.0",
"trim-right": "^1.0.1"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
+ "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/helper-annotate-as-pure": {
@@ -79,14 +114,27 @@
}
},
"@babel/helper-define-map": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz",
- "integrity": "sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz",
+ "integrity": "sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==",
"dev": true,
"requires": {
"@babel/helper-function-name": "^7.1.0",
- "@babel/types": "^7.4.4",
- "lodash": "^4.17.11"
+ "@babel/types": "^7.5.5",
+ "lodash": "^4.17.13"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
+ "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/helper-explode-assignable-expression": {
@@ -129,12 +177,25 @@
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz",
- "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz",
+ "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==",
"dev": true,
"requires": {
- "@babel/types": "^7.0.0"
+ "@babel/types": "^7.5.5"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
+ "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/helper-module-imports": {
@@ -147,17 +208,30 @@
}
},
"@babel/helper-module-transforms": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz",
- "integrity": "sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz",
+ "integrity": "sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==",
"dev": true,
"requires": {
"@babel/helper-module-imports": "^7.0.0",
"@babel/helper-simple-access": "^7.1.0",
"@babel/helper-split-export-declaration": "^7.4.4",
"@babel/template": "^7.4.4",
- "@babel/types": "^7.4.4",
- "lodash": "^4.17.11"
+ "@babel/types": "^7.5.5",
+ "lodash": "^4.17.13"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
+ "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/helper-optimise-call-expression": {
@@ -176,12 +250,12 @@
"dev": true
},
"@babel/helper-regex": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.4.4.tgz",
- "integrity": "sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz",
+ "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==",
"dev": true,
"requires": {
- "lodash": "^4.17.11"
+ "lodash": "^4.17.13"
}
},
"@babel/helper-remap-async-to-generator": {
@@ -198,15 +272,28 @@
}
},
"@babel/helper-replace-supers": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz",
- "integrity": "sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz",
+ "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==",
"dev": true,
"requires": {
- "@babel/helper-member-expression-to-functions": "^7.0.0",
+ "@babel/helper-member-expression-to-functions": "^7.5.5",
"@babel/helper-optimise-call-expression": "^7.0.0",
- "@babel/traverse": "^7.4.4",
- "@babel/types": "^7.4.4"
+ "@babel/traverse": "^7.5.5",
+ "@babel/types": "^7.5.5"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
+ "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/helper-simple-access": {
@@ -241,14 +328,27 @@
}
},
"@babel/helpers": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.4.tgz",
- "integrity": "sha512-6LJ6xwUEJP51w0sIgKyfvFMJvIb9mWAfohJp0+m6eHJigkFdcH8duZ1sfhn0ltJRzwUIT/yqqhdSfRpCpL7oow==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.5.tgz",
+ "integrity": "sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g==",
"dev": true,
"requires": {
"@babel/template": "^7.4.4",
- "@babel/traverse": "^7.5.0",
- "@babel/types": "^7.5.0"
+ "@babel/traverse": "^7.5.5",
+ "@babel/types": "^7.5.5"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
+ "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/highlight": {
@@ -263,9 +363,9 @@
}
},
"@babel/parser": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.0.tgz",
- "integrity": "sha512-I5nW8AhGpOXGCCNYGc+p7ExQIBxRFnS2fd/d862bNOKvmoEPjYPcfIjsfdy0ujagYOIYPczKgD9l3FsgTkAzKA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz",
+ "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==",
"dev": true
},
"@babel/plugin-proposal-async-generator-functions": {
@@ -300,9 +400,9 @@
}
},
"@babel/plugin-proposal-object-rest-spread": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.4.tgz",
- "integrity": "sha512-KCx0z3y7y8ipZUMAEEJOyNi11lMb/FOPUjjB113tfowgw0c16EGYos7worCKBcUAh2oG+OBnoUhsnTSoLpV9uA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz",
+ "integrity": "sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
@@ -405,27 +505,27 @@
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz",
- "integrity": "sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz",
+ "integrity": "sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
- "lodash": "^4.17.11"
+ "lodash": "^4.17.13"
}
},
"@babel/plugin-transform-classes": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz",
- "integrity": "sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz",
+ "integrity": "sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.0.0",
- "@babel/helper-define-map": "^7.4.4",
+ "@babel/helper-define-map": "^7.5.5",
"@babel/helper-function-name": "^7.1.0",
"@babel/helper-optimise-call-expression": "^7.0.0",
"@babel/helper-plugin-utils": "^7.0.0",
- "@babel/helper-replace-supers": "^7.4.4",
+ "@babel/helper-replace-supers": "^7.5.5",
"@babel/helper-split-export-declaration": "^7.4.4",
"globals": "^11.1.0"
}
@@ -578,13 +678,13 @@
}
},
"@babel/plugin-transform-object-super": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz",
- "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz",
+ "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
- "@babel/helper-replace-supers": "^7.1.0"
+ "@babel/helper-replace-supers": "^7.5.5"
}
},
"@babel/plugin-transform-parameters": {
@@ -626,9 +726,9 @@
}
},
"@babel/plugin-transform-runtime": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.5.0.tgz",
- "integrity": "sha512-LmPIZOAgTLl+86gR9KjLXex6P/lRz1fWEjTz6V6QZMmKie51ja3tvzdwORqhHc4RWR8TcZ5pClpRWs0mlaA2ng==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.5.5.tgz",
+ "integrity": "sha512-6Xmeidsun5rkwnGfMOp6/z9nSzWpHFNVr2Jx7kwoq4mVatQfQx5S56drBgEHF+XQbKOdIaOiMIINvp/kAwMN+w==",
"dev": true,
"requires": {
"@babel/helper-module-imports": "^7.0.0",
@@ -703,20 +803,12 @@
"requires": {
"core-js": "^2.6.5",
"regenerator-runtime": "^0.13.2"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@babel/preset-env": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.5.4.tgz",
- "integrity": "sha512-hFnFnouyRNiH1rL8YkX1ANCNAUVC8Djwdqfev8i1415tnAG+7hlA5zhZ0Q/3Q5gkop4HioIPbCEWAalqcbxRoQ==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.5.5.tgz",
+ "integrity": "sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A==",
"dev": true,
"requires": {
"@babel/helper-module-imports": "^7.0.0",
@@ -724,7 +816,7 @@
"@babel/plugin-proposal-async-generator-functions": "^7.2.0",
"@babel/plugin-proposal-dynamic-import": "^7.5.0",
"@babel/plugin-proposal-json-strings": "^7.2.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.5.4",
+ "@babel/plugin-proposal-object-rest-spread": "^7.5.5",
"@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
"@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
"@babel/plugin-syntax-async-generators": "^7.2.0",
@@ -735,8 +827,8 @@
"@babel/plugin-transform-arrow-functions": "^7.2.0",
"@babel/plugin-transform-async-to-generator": "^7.5.0",
"@babel/plugin-transform-block-scoped-functions": "^7.2.0",
- "@babel/plugin-transform-block-scoping": "^7.4.4",
- "@babel/plugin-transform-classes": "^7.4.4",
+ "@babel/plugin-transform-block-scoping": "^7.5.5",
+ "@babel/plugin-transform-classes": "^7.5.5",
"@babel/plugin-transform-computed-properties": "^7.2.0",
"@babel/plugin-transform-destructuring": "^7.5.0",
"@babel/plugin-transform-dotall-regex": "^7.4.4",
@@ -752,7 +844,7 @@
"@babel/plugin-transform-modules-umd": "^7.2.0",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5",
"@babel/plugin-transform-new-target": "^7.4.4",
- "@babel/plugin-transform-object-super": "^7.2.0",
+ "@babel/plugin-transform-object-super": "^7.5.5",
"@babel/plugin-transform-parameters": "^7.4.4",
"@babel/plugin-transform-property-literals": "^7.2.0",
"@babel/plugin-transform-regenerator": "^7.4.5",
@@ -763,18 +855,31 @@
"@babel/plugin-transform-template-literals": "^7.4.4",
"@babel/plugin-transform-typeof-symbol": "^7.2.0",
"@babel/plugin-transform-unicode-regex": "^7.4.4",
- "@babel/types": "^7.5.0",
+ "@babel/types": "^7.5.5",
"browserslist": "^4.6.0",
"core-js-compat": "^3.1.1",
"invariant": "^2.2.2",
"js-levenshtein": "^1.1.3",
"semver": "^5.5.0"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
+ "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/runtime": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.4.tgz",
- "integrity": "sha512-Na84uwyImZZc3FKf4aUF1tysApzwf3p2yuFBIyBfbzT5glzKTdvYI4KVW4kcgjrzoGUjC7w3YyCHcJKaRxsr2Q==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz",
+ "integrity": "sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==",
"dev": true,
"requires": {
"regenerator-runtime": "^0.13.2"
@@ -792,20 +897,42 @@
}
},
"@babel/traverse": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.0.tgz",
- "integrity": "sha512-SnA9aLbyOCcnnbQEGwdfBggnc142h/rbqqsXcaATj2hZcegCl903pUD/lfpsNBlBSuWow/YDfRyJuWi2EPR5cg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz",
+ "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/generator": "^7.5.0",
+ "@babel/code-frame": "^7.5.5",
+ "@babel/generator": "^7.5.5",
"@babel/helper-function-name": "^7.1.0",
"@babel/helper-split-export-declaration": "^7.4.4",
- "@babel/parser": "^7.5.0",
- "@babel/types": "^7.5.0",
+ "@babel/parser": "^7.5.5",
+ "@babel/types": "^7.5.5",
"debug": "^4.1.0",
"globals": "^11.1.0",
- "lodash": "^4.17.11"
+ "lodash": "^4.17.13"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
+ "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.0.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
+ "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/types": {
@@ -828,14 +955,6 @@
"@jimp/utils": "^0.6.4",
"bmp-js": "^0.1.0",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/core": {
@@ -855,14 +974,6 @@
"phin": "^2.9.1",
"pixelmatch": "^4.0.2",
"tinycolor2": "^1.4.1"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/custom": {
@@ -873,14 +984,6 @@
"requires": {
"@jimp/core": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/gif": {
@@ -892,14 +995,6 @@
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7",
"omggif": "^1.0.9"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/jpeg": {
@@ -911,14 +1006,6 @@
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7",
"jpeg-js": "^0.3.4"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-blit": {
@@ -929,14 +1016,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-blur": {
@@ -947,14 +1026,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-color": {
@@ -966,14 +1037,6 @@
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7",
"tinycolor2": "^1.4.1"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-contain": {
@@ -984,14 +1047,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-cover": {
@@ -1002,14 +1057,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-crop": {
@@ -1020,14 +1067,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-displace": {
@@ -1038,14 +1077,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-dither": {
@@ -1056,14 +1087,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-flip": {
@@ -1074,14 +1097,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-gaussian": {
@@ -1092,14 +1107,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-invert": {
@@ -1110,14 +1117,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-mask": {
@@ -1128,14 +1127,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-normalize": {
@@ -1146,14 +1137,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-print": {
@@ -1165,14 +1148,6 @@
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7",
"load-bmfont": "^1.4.0"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-resize": {
@@ -1183,14 +1158,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-rotate": {
@@ -1201,14 +1168,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugin-scale": {
@@ -1219,14 +1178,6 @@
"requires": {
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/plugins": {
@@ -1254,14 +1205,6 @@
"@jimp/plugin-scale": "^0.6.4",
"core-js": "^2.5.7",
"timm": "^1.6.1"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/png": {
@@ -1273,14 +1216,6 @@
"@jimp/utils": "^0.6.4",
"core-js": "^2.5.7",
"pngjs": "^3.3.3"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/tiff": {
@@ -1291,14 +1226,6 @@
"requires": {
"core-js": "^2.5.7",
"utif": "^2.0.1"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/types": {
@@ -1314,14 +1241,6 @@
"@jimp/tiff": "^0.6.4",
"core-js": "^2.5.7",
"timm": "^1.6.1"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@jimp/utils": {
@@ -1331,14 +1250,6 @@
"dev": true,
"requires": {
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"@polka/redirect": {
@@ -1437,9 +1348,9 @@
}
},
"acorn": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz",
- "integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw==",
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.1.tgz",
+ "integrity": "sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q==",
"dev": true
},
"ansi-colors": {
@@ -1478,24 +1389,6 @@
"sprintf-js": "~1.0.2"
}
},
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "dev": true
- },
- "arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
- "dev": true
- },
- "arr-union": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
- "dev": true
- },
"array-filter": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
@@ -1514,24 +1407,6 @@
"integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
"dev": true
},
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "dev": true
- },
- "assign-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
- "dev": true
- },
- "atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
- "dev": true
- },
"babel-plugin-dynamic-import-node": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
@@ -1547,61 +1422,6 @@
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
- "base": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
- "dev": true,
- "requires": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- }
- }
- },
"base64-js": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
@@ -1624,35 +1444,6 @@
"concat-map": "0.0.1"
}
},
- "braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "dev": true,
- "requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
"browser-stdout": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
@@ -1660,13 +1451,13 @@
"dev": true
},
"browserslist": {
- "version": "4.6.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz",
- "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==",
+ "version": "4.6.6",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz",
+ "integrity": "sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30000981",
- "electron-to-chromium": "^1.3.188",
+ "caniuse-lite": "^1.0.30000984",
+ "electron-to-chromium": "^1.3.191",
"node-releases": "^1.1.25"
}
},
@@ -1708,23 +1499,6 @@
"integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==",
"dev": true
},
- "cache-base": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
- "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
- "dev": true,
- "requires": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
- }
- },
"camel-case": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
@@ -1742,9 +1516,9 @@
"dev": true
},
"caniuse-lite": {
- "version": "1.0.30000983",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000983.tgz",
- "integrity": "sha512-/llD1bZ6qwNkt41AsvjsmwNOoA4ZB+8iqmf5LVyeSXuBODT/hAMFNVOh84NdUzoiYiSKqo5vQ3ZzeYHSi/olDQ==",
+ "version": "1.0.30000986",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000986.tgz",
+ "integrity": "sha512-pM+LnkoAX0+QnIH3tpW5EnkmfpEoqOD8FAcoBvsl3Xh6DXkgctiCxeCbXphP/k3XJtJzm+zOAJbi6U6IVkpWZQ==",
"dev": true
},
"chalk": {
@@ -1764,36 +1538,13 @@
"integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
"dev": true
},
- "class-utils": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
- "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "clean-css": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
+ "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
"dev": true,
"requires": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- }
- }
- },
- "clean-css": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
- "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
- "dev": true,
- "requires": {
- "source-map": "~0.6.0"
+ "source-map": "~0.6.0"
},
"dependencies": {
"source-map": {
@@ -1838,16 +1589,6 @@
"integrity": "sha512-kV49Fr+NGFHFc/Imsx6g180hSlkGhuHxTSDDmDHOuyln0MQYFLixDY4+bFkBVeCEiepYfDimAF/e++9jPJk4QA==",
"dev": true
},
- "collection-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
- "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
- "dev": true,
- "requires": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
- }
- },
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@@ -1869,12 +1610,6 @@
"integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
"dev": true
},
- "component-emitter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
- "dev": true
- },
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -1912,10 +1647,10 @@
"safe-buffer": "~5.1.1"
}
},
- "copy-descriptor": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "core-js": {
+ "version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
+ "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
"dev": true
},
"core-js-compat": {
@@ -1930,9 +1665,9 @@
},
"dependencies": {
"semver": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
- "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
}
}
@@ -1977,12 +1712,6 @@
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
"dev": true
},
- "decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
- "dev": true
- },
"define-properties": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
@@ -1992,47 +1721,6 @@
"object-keys": "^1.0.12"
}
},
- "define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "dependencies": {
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- }
- }
- },
"degit": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/degit/-/degit-2.1.3.tgz",
@@ -2089,9 +1777,9 @@
}
},
"electron-to-chromium": {
- "version": "1.3.188",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.188.tgz",
- "integrity": "sha512-tEQcughYIMj8WDMc59EGEtNxdGgwal/oLLTDw+NEqJRJwGflQvH3aiyiexrWeZOETP4/ko78PVr6gwNhdozvuQ==",
+ "version": "1.3.203",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.203.tgz",
+ "integrity": "sha512-Z1FjJKEBhYrCNmnususVk8khiBabVI/bSJB/295V4ghVt4MFmtbP+mXgRZLQZinEBI469U6FtiGgpXnlLs6qiQ==",
"dev": true
},
"emoji-regex": {
@@ -2194,171 +1882,12 @@
"integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=",
"dev": true
},
- "expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
- "dev": true,
- "requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "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"
- }
- },
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- }
- }
- },
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "dev": true,
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "dependencies": {
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
- }
- },
- "extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "dev": true,
- "requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- }
- }
- },
"file-type": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz",
"integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==",
"dev": true
},
- "fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
- "dev": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
@@ -2386,21 +1915,6 @@
"is-callable": "^1.1.3"
}
},
- "for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
- "dev": true
- },
- "fragment-cache": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
- "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
- "dev": true,
- "requires": {
- "map-cache": "^0.2.2"
- }
- },
"fs-minipass": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz",
@@ -2437,12 +1951,6 @@
"pump": "^3.0.0"
}
},
- "get-value": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
- "dev": true
- },
"glob": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
@@ -2476,7 +1984,8 @@
"golden-fleece": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/golden-fleece/-/golden-fleece-1.0.9.tgz",
- "integrity": "sha512-YSwLaGMOgSBx9roJlNLL12c+FRiw7VECphinc6mGucphc/ZxTHgdEz6gmJqH6NOzYEd/yr64hwjom5pZ+tJVpg=="
+ "integrity": "sha512-YSwLaGMOgSBx9roJlNLL12c+FRiw7VECphinc6mGucphc/ZxTHgdEz6gmJqH6NOzYEd/yr64hwjom5pZ+tJVpg==",
+ "dev": true
},
"good-listener": {
"version": "1.2.2",
@@ -2520,44 +2029,6 @@
"integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
"dev": true
},
- "has-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
- "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
- "dev": true,
- "requires": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
- }
- },
- "has-values": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
- "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
- "dev": true,
- "requires": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
- },
- "dependencies": {
- "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
- },
- "kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
"he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
@@ -2645,32 +2116,6 @@
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
"dev": true
},
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "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
- },
- "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"
- }
- }
- }
- },
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
@@ -2689,63 +2134,12 @@
"integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
"dev": true
},
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "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
- },
- "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"
- }
- }
- }
- },
"is-date-object": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
"integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
"dev": true
},
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
- }
- }
- },
- "is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
- "dev": true
- },
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
@@ -2764,41 +2158,6 @@
"integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
"dev": true
},
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "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
- },
- "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"
- }
- }
- }
- },
- "is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dev": true,
- "requires": {
- "isobject": "^3.0.1"
- }
- },
"is-reference": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.1.3.tgz",
@@ -2832,12 +2191,6 @@
"has-symbols": "^1.0.0"
}
},
- "is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
- "dev": true
- },
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -2850,12 +2203,6 @@
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
"dev": true
},
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
"jest-worker": {
"version": "24.6.0",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.6.0.tgz",
@@ -2888,14 +2235,6 @@
"@jimp/plugins": "^0.6.4",
"@jimp/types": "^0.6.4",
"core-js": "^2.5.7"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- }
}
},
"jpeg-js": {
@@ -2989,12 +2328,6 @@
"safe-buffer": "^5.0.1"
}
},
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
- },
"lcid": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
@@ -3051,9 +2384,9 @@
}
},
"lodash": {
- "version": "4.17.11",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
- "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
"dev": true
},
"lodash.deburr": {
@@ -3139,21 +2472,6 @@
"p-defer": "^1.0.0"
}
},
- "map-cache": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
- "dev": true
- },
- "map-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
- "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
- "dev": true,
- "requires": {
- "object-visit": "^1.0.0"
- }
- },
"marked": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz",
@@ -3185,27 +2503,6 @@
"readable-stream": "^2.0.1"
}
},
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "dev": true,
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- }
- },
"mime": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.4.3.tgz",
@@ -3260,27 +2557,6 @@
"minipass": "^2.2.1"
}
},
- "mixin-deep": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
- "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
- "dev": true,
- "requires": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
- },
- "dependencies": {
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
- }
- },
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
@@ -3299,9 +2575,9 @@
}
},
"mocha": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.4.tgz",
- "integrity": "sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz",
+ "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==",
"dev": true,
"requires": {
"ansi-colors": "3.2.3",
@@ -3380,25 +2656,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
},
- "nanomatch": {
- "version": "1.2.13",
- "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
- "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
- "dev": true,
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- }
- },
"nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
@@ -3445,9 +2702,9 @@
}
},
"node-releases": {
- "version": "1.1.25",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.25.tgz",
- "integrity": "sha512-fI5BXuk83lKEoZDdH3gRhtsNgh05/wZacuXkgbiYkceE7+QIMXOg98n9ZV7mz27B+kFHnqHcUpscZZlGRSmTpQ==",
+ "version": "1.1.26",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.26.tgz",
+ "integrity": "sha512-fZPsuhhUHMTlfkhDLGtfY80DSJTjOcx+qD1j5pqPkuhUHVS7xHZIg9EE4DHK8O3f0zTxXHX5VIkDG8pu98/wfQ==",
"dev": true,
"requires": {
"semver": "^5.3.0"
@@ -3497,58 +2754,12 @@
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
"dev": true
},
- "object-copy": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
- "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
- "dev": true,
- "requires": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "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
- },
- "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"
- }
- }
- }
- },
"object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true
},
- "object-visit": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
- "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
- "dev": true,
- "requires": {
- "isobject": "^3.0.0"
- }
- },
"object.assign": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
@@ -3571,15 +2782,6 @@
"es-abstract": "^1.5.1"
}
},
- "object.pick": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
- "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
- "dev": true,
- "requires": {
- "isobject": "^3.0.1"
- }
- },
"omggif": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.9.tgz",
@@ -3710,12 +2912,6 @@
"json-parse-better-errors": "^1.0.1"
}
},
- "pascalcase": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
- "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
- "dev": true
- },
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
@@ -3750,9 +2946,9 @@
}
},
"pg": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/pg/-/pg-7.11.0.tgz",
- "integrity": "sha512-YO4V7vCmEMGoF390LJaFaohWNKaA2ayoQOEZmiHVcAUF+YsRThpf/TaKCgSvsSE7cDm37Q/Cy3Gz41xiX/XjTw==",
+ "version": "7.12.0",
+ "resolved": "https://registry.npmjs.org/pg/-/pg-7.12.0.tgz",
+ "integrity": "sha512-q54Ic0oBXfDZMwheP8ALeUX32TUXvF7SNgAlZjyhkDuFCJkQCgcLBz0Be5uOrAj3ljSok/CI9lRbYzEko0z1Zw==",
"requires": {
"buffer-writer": "2.0.0",
"packet-reader": "1.0.0",
@@ -3781,9 +2977,9 @@
"integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="
},
"pg-pool": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-2.0.6.tgz",
- "integrity": "sha512-hod2zYQxM8Gt482q+qONGTYcg/qVcV32VHVPtktbBJs0us3Dj7xibISw0BAAXVMCzt8A/jhfJvpZaxUlqtqs0g=="
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-2.0.7.tgz",
+ "integrity": "sha512-UiJyO5B9zZpu32GSlP0tXy8J2NsJ9EFGFfz5v6PSbdz/1hBLX1rNiiy5+mAm5iJJYwfCv4A0EBcQLGWwjbpzZw=="
},
"pg-types": {
"version": "2.0.1",
@@ -3839,20 +3035,14 @@
"dev": true
},
"polka": {
- "version": "1.0.0-next.3",
- "resolved": "https://registry.npmjs.org/polka/-/polka-1.0.0-next.3.tgz",
- "integrity": "sha512-VmCsJK2uAqyjtV8e6ujEhgehibh+lvgdlrIgkTGsL+EKrCS/+BmGq57NV7yvkeGKI4XhsCw/J1YSeejmNfhbig==",
+ "version": "1.0.0-next.4",
+ "resolved": "https://registry.npmjs.org/polka/-/polka-1.0.0-next.4.tgz",
+ "integrity": "sha512-14UAMEVp6UjRepYIjJ/KZcFD0wD4TpDqBGmdgeg5SmhmBHBFR2LdTTXxx/y7GPa4537ZcK28Nsld+hynBE/qDw==",
"requires": {
"@polka/url": "^1.0.0-next.3",
"trouter": "^3.0.2"
}
},
- "posix-character-classes": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
- "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
- "dev": true
- },
"postgres-array": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
@@ -3877,9 +3067,9 @@
}
},
"prismjs": {
- "version": "1.16.0",
- "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.16.0.tgz",
- "integrity": "sha512-OA4MKxjFZHSvZcisLGe14THYsug/nF6O1f0pAJc0KN0wTyAcLqmsbE+lTGKSpyh+9pEW57+k6pg2AfYR+coyHA==",
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.17.1.tgz",
+ "integrity": "sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q==",
"requires": {
"clipboard": "^2.0.0"
}
@@ -3969,24 +3159,14 @@
"dev": true
},
"regenerator-transform": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.0.tgz",
- "integrity": "sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w==",
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz",
+ "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==",
"dev": true,
"requires": {
"private": "^0.1.6"
}
},
- "regex-not": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
- "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
- "dev": true,
- "requires": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
- }
- },
"regexp-tree": {
"version": "0.1.11",
"resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.11.tgz",
@@ -3994,9 +3174,9 @@
"dev": true
},
"regexparam": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-1.2.1.tgz",
- "integrity": "sha512-L/xx/JNXFvejDD9b4FukSh2wCyYUpxSTnLkMpcZc/ygnmaF6ETnphh+FDKZS8XBGmu2e3GoZ1why9qkTYqr1ag=="
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-1.3.0.tgz",
+ "integrity": "sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g=="
},
"regexpu-core": {
"version": "4.5.4",
@@ -4041,18 +3221,6 @@
"integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
"dev": true
},
- "repeat-element": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
- "dev": true
- },
- "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
- },
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -4080,18 +3248,6 @@
"path-parse": "^1.0.6"
}
},
- "resolve-url": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
- "dev": true
- },
- "ret": {
- "version": "0.1.15",
- "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
- "dev": true
- },
"rimraf": {
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
@@ -4102,14 +3258,14 @@
}
},
"rollup": {
- "version": "1.16.7",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.16.7.tgz",
- "integrity": "sha512-P3GVcbVSLLjHWFLKGerYRe3Q/yggRXmTZFx/4WZf4wzGwO6hAg5jyMAFMQKc0dts8rFID4BQngfoz6yQbI7iMQ==",
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.17.0.tgz",
+ "integrity": "sha512-k/j1m0NIsI4SYgCJR4MWPstGJOWfJyd6gycKoMhyoKPVXxm+L49XtbUwZyFsrSU2YXsOkM4u1ll9CS/ZgJBUpw==",
"dev": true,
"requires": {
"@types/estree": "0.0.39",
- "@types/node": "^12.0.10",
- "acorn": "^6.1.1"
+ "@types/node": "^12.6.2",
+ "acorn": "^6.2.0"
}
},
"rollup-plugin-babel": {
@@ -4123,19 +3279,8 @@
},
"dependencies": {
"estree-walker": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
- "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
- "dev": true
- },
- "rollup-pluginutils": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz",
- "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==",
- "dev": true,
- "requires": {
- "estree-walker": "^0.6.1"
- }
+ "version": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
+ "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="
}
}
},
@@ -4157,15 +3302,6 @@
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
"integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
"dev": true
- },
- "rollup-pluginutils": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz",
- "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==",
- "dev": true,
- "requires": {
- "estree-walker": "^0.6.1"
- }
}
}
},
@@ -4192,10 +3328,8 @@
},
"dependencies": {
"estree-walker": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
- "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
- "dev": true
+ "version": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
+ "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="
},
"resolve": {
"version": "1.11.1",
@@ -4205,15 +3339,6 @@
"requires": {
"path-parse": "^1.0.6"
}
- },
- "rollup-pluginutils": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz",
- "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==",
- "dev": true,
- "requires": {
- "estree-walker": "^0.6.1"
- }
}
}
},
@@ -4252,30 +3377,26 @@
},
"dependencies": {
"estree-walker": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
- "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
- "dev": true
- },
- "rollup-pluginutils": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz",
- "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==",
- "dev": true,
- "requires": {
- "estree-walker": "^0.6.1"
- }
+ "version": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
+ "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="
}
}
},
"rollup-pluginutils": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.7.0.tgz",
- "integrity": "sha512-FoP6L1YnMYTAR06Dpq5LE3jJtMwPE6H4VEOqFU23yoziZnqNRSiWcVy6YgEY5PdQB4G7278+8c4TvB0JKS1csA==",
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz",
+ "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==",
"dev": true,
"requires": {
- "estree-walker": "^0.6.0",
- "micromatch": "^3.1.10"
+ "estree-walker": "^0.6.1"
+ },
+ "dependencies": {
+ "estree-walker": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
+ "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
+ "dev": true
+ }
}
},
"safe-buffer": {
@@ -4283,15 +3404,6 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
- "safe-regex": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
- "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
- "dev": true,
- "requires": {
- "ret": "~0.1.10"
- }
- },
"sander": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/sander/-/sander-0.6.0.tgz",
@@ -4304,16 +3416,24 @@
}
},
"sapper": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/sapper/-/sapper-0.27.4.tgz",
- "integrity": "sha512-BYdiJSiyVguu2FZBbl87mn8KhSu+C8JRl7FurclXbMgpiMW7Yt74HPCcu/hXOubvvZw0kVTnzBlAGJCXZmldnA==",
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/sapper/-/sapper-0.27.8.tgz",
+ "integrity": "sha512-78K+56yu9nGOEU0B0XjBvNchRuPEv4aHbAKK4D874S4aoapMAkHCT0bHtPK12S3P7JPxvvT8GzHaq/8NetMmbg==",
"dev": true,
"requires": {
"html-minifier": "^4.0.0",
"http-link-header": "^1.0.2",
- "shimport": "^1.0.0",
- "sourcemap-codec": "^1.4.4",
+ "shimport": "^1.0.1",
+ "sourcemap-codec": "^1.4.6",
"string-hash": "^1.1.3"
+ },
+ "dependencies": {
+ "sourcemap-codec": {
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz",
+ "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==",
+ "dev": true
+ }
}
},
"sax": {
@@ -4345,29 +3465,6 @@
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"dev": true
},
- "set-value": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
- "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
- "dev": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
"shebang-command": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
@@ -4434,153 +3531,12 @@
}
}
},
- "snapdragon": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
- "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
- "dev": true,
- "requires": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
- },
- "dependencies": {
- "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"
- }
- },
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- }
- }
- },
- "snapdragon-node": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
- "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
- "dev": true,
- "requires": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- }
- }
- },
- "snapdragon-util": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
- "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
- "dev": true,
- "requires": {
- "kind-of": "^3.2.0"
- },
- "dependencies": {
- "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
- },
- "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"
- }
- }
- }
- },
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
},
- "source-map-resolve": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
- "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
- "dev": true,
- "requires": {
- "atob": "^2.1.1",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
- },
"source-map-support": {
"version": "0.5.12",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
@@ -4599,12 +3555,6 @@
}
}
},
- "source-map-url": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
- "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
- "dev": true
- },
"sourcemap-codec": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.4.tgz",
@@ -4651,42 +3601,12 @@
"through": "2"
}
},
- "split-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
- "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
- "dev": true,
- "requires": {
- "extend-shallow": "^3.0.0"
- }
- },
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
"dev": true
},
- "static-extend": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
- "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
- "dev": true,
- "requires": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- }
- }
- },
"string-hash": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
@@ -4771,9 +3691,9 @@
}
},
"svelte": {
- "version": "3.6.7",
- "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.6.7.tgz",
- "integrity": "sha512-9HzhPxWNLi+ZBhxL3HJ8jwwu+u+XfHtVF3uEJ2m8/JOdnaTC9D2qiEwOncgI7z/pN+VumgKQtZoHtvYCW6fHqg==",
+ "version": "3.6.9",
+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.6.9.tgz",
+ "integrity": "sha512-k72cp0LYzennT7xgnQU0jB2HJEZ/fQamZbrHJO6JlvsNX+z6a1YJaLrtN4qQ1yfozUkeGw1TOvDxo8a5grOZMg==",
"dev": true
},
"tar": {
@@ -4839,54 +3759,6 @@
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
"dev": true
},
- "to-object-path": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
- "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "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
- },
- "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"
- }
- }
- }
- },
- "to-regex": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
- "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
- "dev": true,
- "requires": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
- }
- },
- "to-regex-range": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
- "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
- "dev": true,
- "requires": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- }
- },
"trim-right": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
@@ -4894,11 +3766,11 @@
"dev": true
},
"trouter": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/trouter/-/trouter-3.0.2.tgz",
- "integrity": "sha512-wzUcM3oKmF8Fx5pd+3IxZj5LBugqW+hSQHm6cTHkpiZHL8w6YeZSzo3LPw0UdhlwaGPms3OxT7N4GEOIRTw+jw==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/trouter/-/trouter-3.1.0.tgz",
+ "integrity": "sha512-3Swwu638QQWOefHLss9cdyLi5/9BKYmXZEXpH0KOFfB9YZwUAwHbDAcoYxaHfqAeFvbi/LqAK7rGkhCr1v1BJA==",
"requires": {
- "regexparam": "^1.2.0"
+ "regexparam": "^1.3.0"
}
},
"uglify-js": {
@@ -4947,99 +3819,12 @@
"integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==",
"dev": true
},
- "union-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
- "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
- "dev": true,
- "requires": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^0.4.3"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "set-value": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
- "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
- "dev": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.1",
- "to-object-path": "^0.3.0"
- }
- }
- }
- },
- "unset-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
- "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
- "dev": true,
- "requires": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
- },
- "dependencies": {
- "has-value": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
- "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
- "dev": true,
- "requires": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "dev": true,
- "requires": {
- "isarray": "1.0.0"
- }
- }
- }
- },
- "has-values": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
- "dev": true
- }
- }
- },
"upper-case": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
"integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
"dev": true
},
- "urix": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
- "dev": true
- },
- "use": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
- "dev": true
- },
"utif": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz",
diff --git a/site/package.json b/site/package.json
index b3953ae7de..0b949f5da7 100644
--- a/site/package.json
+++ b/site/package.json
@@ -14,25 +14,24 @@
},
"dependencies": {
"@polka/redirect": "^1.0.0-next.0",
- "@polka/send": "^1.0.0-next.2",
+ "@polka/send": "^1.0.0-next.3",
"devalue": "^2.0.0",
"do-not-zip": "^1.0.0",
- "golden-fleece": "^1.0.9",
"httpie": "^1.1.2",
"jsonwebtoken": "^8.5.1",
"marked": "^0.7.0",
- "pg": "^7.11.0",
- "polka": "^1.0.0-next.2",
- "prismjs": "^1.16.0",
+ "pg": "^7.12.0",
+ "polka": "^1.0.0-next.4",
+ "prismjs": "^1.17.1",
"sirv": "^0.4.2",
"yootils": "0.0.16"
},
"devDependencies": {
- "@babel/core": "^7.5.4",
+ "@babel/core": "^7.5.5",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
- "@babel/plugin-transform-runtime": "^7.5.0",
- "@babel/preset-env": "^7.5.4",
- "@babel/runtime": "^7.5.4",
+ "@babel/plugin-transform-runtime": "^7.5.5",
+ "@babel/preset-env": "^7.5.5",
+ "@babel/runtime": "^7.5.5",
"@sindresorhus/slugify": "^0.9.1",
"@sveltejs/site-kit": "^1.1.1",
"@sveltejs/svelte-repl": "^0.1.8",
@@ -40,11 +39,11 @@
"dotenv": "^8.0.0",
"esm": "^3.2.25",
"jimp": "^0.6.4",
- "mocha": "^6.1.4",
+ "mocha": "^6.2.0",
"node-fetch": "^2.6.0",
"node-pg-migrate": "^3.21.1",
"npm-run-all": "^4.1.5",
- "rollup": "^1.16.7",
+ "rollup": "^1.17.0",
"rollup-plugin-babel": "^4.3.3",
"rollup-plugin-commonjs": "^10.0.1",
"rollup-plugin-json": "^4.0.0",
@@ -52,9 +51,9 @@
"rollup-plugin-replace": "^2.2.0",
"rollup-plugin-svelte": "^5.1.0",
"rollup-plugin-terser": "^5.1.1",
- "sapper": "^0.27.4",
+ "sapper": "^0.27.8",
"shelljs": "^0.8.3",
- "svelte": "^3.6.7"
+ "svelte": "^3.6.9"
},
"engines": {
"node": ">=10.0.0"
diff --git a/site/static/curl.js b/site/static/curl.js
deleted file mode 100644
index b0ddc51a71..0000000000
--- a/site/static/curl.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* version: 0.8.13 */
-(function(){/*
- MIT License (c) copyright 2010-2013 B Cavalier & J Hann */
- (function(m){function U(){}function u(a,b){return 0==aa.call(a).indexOf("[object "+b)}function I(a){return a&&"/"==a.charAt(a.length-1)?a.substr(0,a.length-1):a}function V(a,b){var d,c,e,f;d=1;c=a;"."==c.charAt(0)&&(e=!0,c=c.replace(ba,function(a,b,c,e){c&&d++;return e||""}));if(e){e=b.split("/");f=e.length-d;if(0>f)return a;e.splice(f,d);return e.concat(c||[]).join("/")}return c}function J(a){var b=a.indexOf("!");return{h:a.substr(b+1),f:0<=b&&a.substr(0,b)}}function P(){}function v(a,b){P.prototype=
- a||Q;var d=new P;P.prototype=Q;for(var c in b)d[c]=b[c];return d}function K(){function a(a,b,d){c.push([a,b,d])}function b(a,b){for(var d,e=0;d=c[e++];)(d=d[a])&&d(b)}var d,c,e;d=this;c=[];e=function(d,g){a=d?function(a){a&&a(g)}:function(a,b){b&&b(g)};e=U;b(d?0:1,g);b=U;c=k};this.then=function(b,c,e){a(b,c,e);return d};this.resolve=function(a){d.va=a;e(!0,a)};this.reject=function(a){d.ua=a;e(!1,a)};this.D=function(a){b(2,a)}}function L(a){return a instanceof K||a instanceof B}function w(a,b,d,c){L(a)?
- a.then(b,d,c):b(a)}function C(a,b,d){var c;return function(){0<=--a&&b&&(c=b.apply(k,arguments));0==a&&d&&d(c);return c}}function A(){var a,b;D="";a=[].slice.call(arguments);u(a[0],"Object")&&(b=a.shift(),b=M(b));return new B(a[0],a[1],a[2],b)}function M(a,b,d){var c;D="";if(a&&(h.V(a),x=h.a(a),"preloads"in a&&(c=new B(a.preloads,k,d,E,!0),h.m(function(){E=c})),a=a.main))return new B(a,b,d)}function B(a,b,d,c,e){var f;f=h.j(x,k,[].concat(a),e);this.then=this.then=a=function(a,b){w(f,function(b){a&&
- a.apply(k,b)},function(a){if(b)b(a);else throw a;});return this};this.next=function(a,b,c){return new B(a,b,c,f)};this.config=M;(b||d)&&a(b,d);h.m(function(){w(e||E,function(){w(c,function(){h.w(f)},d)})})}function W(a){var b,d;b=a.id;b==k&&(F!==k?F={L:"Multiple anonymous defines encountered"}:(b=h.ha())||(F=a));if(b!=k){d=l[b];b in l||(d=h.i(b,x),d=h.I(d.a,b),l[b]=d);if(!L(d))throw Error("duplicate define: "+b);d.ja=!1;h.J(d,a)}}function R(){var a=h.ea(arguments);W(a)}var D,x,y,G,z=m.document,S=
- z&&(z.head||z.getElementsByTagName("head")[0]),ca=S&&S.getElementsByTagName("base")[0]||null,X={},Y={},N={},da="addEventListener"in m?{}:{loaded:1,complete:1},Q={},aa=Q.toString,k,l={},O={},E=!1,F,Z=/^\/|^[^:]+:\/\/|^[A-Za-z]:[\\/]/,ba=/(\.)(\.?)(?:$|\/([^\.\/]+.*)?)/g,ea=/\/\*[\s\S]*?\*\/|\/\/.*?[\n\r]/g,fa=/require\s*\(\s*(["'])(.*?[^\\])\1\s*\)|[^\\]?(["'])/g,ga=/\s*,\s*/,T,h;h={o:function(a,b,d){var c;a=V(a,b);if("."==a.charAt(0))return a;c=J(a);a=(b=c.f)||c.h;a in d.c&&(a=d.c[a].R||a);b&&(0>
- b.indexOf("/")&&!(b in d.c)&&(a=I(d.T)+"/"+b),a=a+"!"+c.h);return a},j:function(a,b,d,c){function e(b,c){var d,f;d=h.o(b,g.id,a);if(!c)return d;f=J(d);if(!f.f)return d;d=l[f.f];f.h="normalize"in d?d.normalize(f.h,e,g.a)||"":e(f.h);return f.f+"!"+f.h}function f(b,d,f){var p;p=d&&function(a){d.apply(k,a)};if(u(b,"String")){if(p)throw Error("require(id, callback) not allowed");f=e(b,!0);b=l[f];if(!(f in l))throw Error("Module not resolved: "+f);return(f=L(b)&&b.b)||b}w(h.w(h.j(a,g.id,b,c)),p,f)}var g;
- g=new K;g.id=b||"";g.ia=c;g.K=d;g.a=a;g.F=f;f.toUrl=function(b){return h.i(e(b,!0),a).url};g.o=e;return g},I:function(a,b,d){var c,e,f;c=h.j(a,b,k,d);e=c.resolve;f=C(1,function(a){c.v=a;try{return h.Z(c)}catch(b){c.reject(b)}});c.resolve=function(a){w(d||E,function(){e(l[c.id]=O[c.url]=f(a))})};c.M=function(a){w(d||E,function(){c.b&&(f(a),c.D(Y))})};return c},Y:function(a,b,d,c){return h.j(a,d,k,c)},ga:function(a){return a.F},N:function(a){return a.b||(a.b={})},fa:function(a){var b=a.A;b||(b=a.A=
- {id:a.id,uri:h.O(a),exports:h.N(a),config:function(){return a.a}},b.b=b.exports);return b},O:function(a){return a.url||(a.url=h.H(a.F.toUrl(a.id),a.a))},V:function(a){var b,d,c,e,f;b="curl";d="define";c=e=m;if(a&&(f=a.overwriteApi||a.sa,b=a.apiName||a.la||b,c=a.apiContext||a.ka||c,d=a.defineName||a.na||d,e=a.defineContext||a.ma||e,y&&u(y,"Function")&&(m.curl=y),y=null,G&&u(G,"Function")&&(m.define=G),G=null,!f)){if(c[b]&&c[b]!=A)throw Error(b+" already exists");if(e[d]&&e[d]!=R)throw Error(d+" already exists");
- }c[b]=A;e[d]=R},a:function(a){function b(a,b){var d,c,g,n,q;for(q in a){g=a[q];u(g,"String")&&(g={path:a[q]});g.name=g.name||q;n=e;c=J(I(g.name));d=c.h;if(c=c.f)n=f[c],n||(n=f[c]=v(e),n.c=v(e.c),n.g=[]),delete a[q];c=g;var l=b,H=void 0;c.path=I(c.path||c.location||"");l&&(H=c.main||"./main","."==H.charAt(0)||(H="./"+H),c.R=V(H,c.name+"/"));c.a=c.config;c.a&&(c.a=v(e,c.a));c.W=d.split("/").length;d?(n.c[d]=c,n.g.push(d)):n.s=h.U(g.path,e)}}function d(a){var b=a.c;a.S=new RegExp("^("+a.g.sort(function(a,
- c){return b[c].W-b[a].W}).join("|").replace(/\/|\./g,"\\$&")+")(?=\\/|$)");delete a.g}var c,e,f,g;"baseUrl"in a&&(a.s=a.baseUrl);"main"in a&&(a.R=a.main);"preloads"in a&&(a.ta=a.preloads);"pluginPath"in a&&(a.T=a.pluginPath);if("dontAddFileExt"in a||a.l)a.l=new RegExp(a.dontAddFileExt||a.l);c=x;e=v(c,a);e.c=v(c.c);f=a.plugins||{};e.plugins=v(c.plugins);e.C=v(c.C,a.C);e.B=v(c.B,a.B);e.g=[];b(a.packages,!0);b(a.paths,!1);for(g in f)a=h.o(g+"!","",e),e.plugins[a.substr(0,a.length-1)]=f[g];f=e.plugins;
- for(g in f)if(f[g]=v(e,f[g]),a=f[g].g)f[g].g=a.concat(e.g),d(f[g]);for(g in c.c)e.c.hasOwnProperty(g)||e.g.push(g);d(e);return e},i:function(a,b){var d,c,e,f;d=b.c;e=Z.test(a)?a:a.replace(b.S,function(a){c=d[a]||{};f=c.a;return c.path||""});return{a:f||x,url:h.U(e,b)}},U:function(a,b){var d=b.s;return d&&!Z.test(a)?I(d)+"/"+a:a},H:function(a,b){return a+((b||x).l.test(a)?"":".js")},P:function(a,b,d){var c=z.createElement("script");c.onload=c.onreadystatechange=function(d){d=d||m.event;if("load"==
- d.type||da[c.readyState])delete N[a.id],c.onload=c.onreadystatechange=c.onerror="",b()};c.onerror=function(){d(Error("Syntax or http error: "+a.url))};c.type=a.pa||"text/javascript";c.charset="utf-8";c.async=!a.ra;c.src=a.url;N[a.id]=c;S.insertBefore(c,ca);return c},$:function(a){var b=[],d;("string"==typeof a?a:a.toSource?a.toSource():a.toString()).replace(ea,"").replace(fa,function(a,e,f,g){g?d=d==g?k:d:d||b.push(f);return""});return b},ea:function(a){var b,d,c,e,f,g;f=a.length;c=a[f-1];e=u(c,"Function")?
- c.length:-1;2==f?u(a[0],"Array")?d=a[0]:b=a[0]:3==f&&(b=a[0],d=a[1]);!d&&0 {
- curl([`https://bundle.run/${id}`]).then(module => {
- import_cache[id] = module;
- fulfil(module);
- }, err => {
- console.error(err.stack);
- reject(new Error(`Error loading ${id} from bundle.run`));
- });
- });
- }
-
- function fetch_imports(imports, progress_func) {
- const missing_imports = imports.filter(x => !import_cache[x]);
- let pending_imports = missing_imports.length;
-
- if (missing_imports.length) {
- const promise = Promise.all(
- missing_imports.map(id => fetch_import(id).then(() => {
- pending_imports -= 1;
- if (progress_func) progress_func(pending_imports);
- }))
- );
-
- return promise;
- } else {
- return Promise.resolve();
- }
- }
-
- function handle_message(ev) {
- const { action, cmd_id } = ev.data;
- const send_message = (payload) => parent.postMessage( { ...payload }, ev.origin);
- const send_reply = (payload) => send_message({ ...payload, cmd_id });
- const send_ok = () => send_reply({ action: 'cmd_ok' });
- const send_error = (message, stack) => send_reply({ action: 'cmd_error', message, stack });
-
- if (action === 'eval') {
- try {
- const { script } = ev.data.args;
- eval(script);
- send_ok();
- } catch (e) {
- send_error(e.message, e.stack);
- }
- }
-
- if (action === 'catch_clicks') {
- try {
- const top_origin = ev.origin;
- document.body.addEventListener('click', event => {
- if (event.which !== 1) return;
- if (event.metaKey || event.ctrlKey || event.shiftKey) return;
- if (event.defaultPrevented) return;
-
- // ensure target is a link
- let el = event.target;
- while (el && el.nodeName !== 'A') el = el.parentNode;
- if (!el || el.nodeName !== 'A') return;
-
- if (el.hasAttribute('download') || el.getAttribute('rel') === 'external' || el.target) return;
-
- event.preventDefault();
-
- if (el.href.startsWith(top_origin)) {
- const url = new URL(el.href);
- if (url.hash[0] === '#') {
- window.location.hash = url.hash;
- return;
- }
- }
-
- window.open(el.href, '_blank');
- });
- send_ok();
- } catch (e) {
- send_error(e.message, e.stack);
- }
- }
-
- if (action === 'fetch_imports') {
- const { imports, import_map } = ev.data.args;
- fetch_imports(imports, (remaining) => {
- send_message({action: 'fetch_progress', args: { remaining }});
- })
- .then(() => {
- imports.forEach(x => {
- const module = import_cache[x];
- const name = import_map.get(x);
- window[name] = module;
- });
- send_ok();
- })
- .catch(e => {
- send_error(e.message, e.stack);
- });
- }
- }
-
- window.addEventListener('message', handle_message, false);
-})();
diff --git a/src/compiler/compile/css/Selector.ts b/src/compiler/compile/css/Selector.ts
index ef54f789fc..0d4ea82bb5 100644
--- a/src/compiler/compile/css/Selector.ts
+++ b/src/compiler/compile/css/Selector.ts
@@ -219,6 +219,8 @@ function attribute_matches(node: Node, name: string, expected_value: string, ope
const spread = node.attributes.find(attr => attr.type === 'Spread');
if (spread) return true;
+ if (node.bindings.some((binding: Node) => binding.name === name)) return true;
+
const attr = node.attributes.find((attr: Node) => attr.name === name);
if (!attr) return false;
if (attr.is_true) return operator === null;
diff --git a/src/compiler/compile/nodes/EachBlock.ts b/src/compiler/compile/nodes/EachBlock.ts
index adaa46b8db..225f3b441e 100644
--- a/src/compiler/compile/nodes/EachBlock.ts
+++ b/src/compiler/compile/nodes/EachBlock.ts
@@ -83,16 +83,16 @@ export default class EachBlock extends AbstractBlock {
this.scope.add(context.key.name, this.expression.dependencies, this);
});
- this.key = info.key
- ? new Expression(component, this, this.scope, info.key)
- : null;
-
if (this.index) {
// index can only change if this is a keyed each block
- const dependencies = this.key ? this.expression.dependencies : new Set([]);
+ const dependencies = info.key ? this.expression.dependencies : new Set([]);
this.scope.add(this.index, dependencies, this);
}
+ this.key = info.key
+ ? new Expression(component, this, this.scope, info.key)
+ : null;
+
this.has_animation = false;
this.children = map_children(component, this, this.scope, info.children);
diff --git a/src/compiler/compile/nodes/Element.ts b/src/compiler/compile/nodes/Element.ts
index a3030f52a5..80b5c6df00 100644
--- a/src/compiler/compile/nodes/Element.ts
+++ b/src/compiler/compile/nodes/Element.ts
@@ -451,11 +451,12 @@ export default class Element extends Node {
if (this.name === 'input') {
const type = attribute_map.get('type');
if (type && type.get_static_value() === 'image') {
- should_have_attribute(
- this,
- ['alt', 'aria-label', 'aria-labelledby'],
- 'input type="image"'
- );
+ const required_attributes = ['alt', 'aria-label', 'aria-labelledby'];
+ const has_attribute = required_attributes.some(name => attribute_map.has(name));
+
+ if (!has_attribute) {
+ should_have_attribute(this, required_attributes, 'input type="image"');
+ }
}
}
}
@@ -702,16 +703,20 @@ export default class Element extends Node {
return this.name === 'audio' || this.name === 'video';
}
- add_css_class(class_name = this.component.stylesheet.id) {
+ add_css_class() {
+ const { id } = this.component.stylesheet;
+
const class_attribute = this.attributes.find(a => a.name === 'class');
+
if (class_attribute && !class_attribute.is_true) {
if (class_attribute.chunks.length === 1 && class_attribute.chunks[0].type === 'Text') {
- (class_attribute.chunks[0] as Text).data += ` ${class_name}`;
+ (class_attribute.chunks[0] as Text).data += ` ${id}`;
} else {
(class_attribute.chunks as Node[]).push(
new Text(this.component, this, this.scope, {
type: 'Text',
- data: ` ${class_name}`
+ data: ` ${id}`,
+ synthetic: true
})
);
}
@@ -720,7 +725,7 @@ export default class Element extends Node {
new Attribute(this.component, this, this.scope, {
type: 'Attribute',
name: 'class',
- value: [{ type: 'Text', data: class_name }]
+ value: [{ type: 'Text', data: id, synthetic: true }]
})
);
}
diff --git a/src/compiler/compile/nodes/Text.ts b/src/compiler/compile/nodes/Text.ts
index eff3efe06e..bfd28a5073 100644
--- a/src/compiler/compile/nodes/Text.ts
+++ b/src/compiler/compile/nodes/Text.ts
@@ -6,9 +6,11 @@ import { INode } from './interfaces';
export default class Text extends Node {
type: 'Text';
data: string;
+ synthetic: boolean;
constructor(component: Component, parent: INode, scope: TemplateScope, info: any) {
super(component, parent, scope, info);
this.data = info.data;
+ this.synthetic = info.synthetic || false;
}
}
diff --git a/src/compiler/compile/nodes/shared/Expression.ts b/src/compiler/compile/nodes/shared/Expression.ts
index 3702800c7b..938cd8433f 100644
--- a/src/compiler/compile/nodes/shared/Expression.ts
+++ b/src/compiler/compile/nodes/shared/Expression.ts
@@ -363,7 +363,7 @@ export default class Expression {
}
const fn = deindent`
- function ${name}(${args.join(', ')}) ${body}
+ ${node.async && 'async '}function${node.generator && '*'} ${name}(${args.join(', ')}) ${body}
`;
if (dependencies.size === 0 && contextual_dependencies.size === 0) {
diff --git a/src/compiler/compile/render_dom/index.ts b/src/compiler/compile/render_dom/index.ts
index 9fdaa0cbaa..52006e4d8a 100644
--- a/src/compiler/compile/render_dom/index.ts
+++ b/src/compiler/compile/render_dom/index.ts
@@ -267,9 +267,9 @@ export default function dom(
return `$$subscribe_${name}()`;
}
- const subscribe = component.helper('subscribe');
+ const component_subscribe = component.helper('component_subscribe');
- let insert = `${subscribe}($$self, ${name}, $${callback})`;
+ let insert = `${component_subscribe}($$self, ${name}, $${callback})`;
if (component.compile_options.dev) {
const validate_store = component.helper('validate_store');
insert = `${validate_store}(${name}, '${name}'); ${insert}`;
@@ -343,7 +343,7 @@ export default function dom(
})
.map(({ name }) => deindent`
${component.compile_options.dev && `@validate_store(${name.slice(1)}, '${name.slice(1)}');`}
- @subscribe($$self, ${name.slice(1)}, $$value => { ${name} = $$value; $$invalidate('${name}', ${name}); });
+ @component_subscribe($$self, ${name.slice(1)}, $$value => { ${name} = $$value; $$invalidate('${name}', ${name}); });
`);
const resubscribable_reactive_store_unsubscribers = reactive_stores
@@ -359,15 +359,11 @@ export default function dom(
component.reactive_declarations
.forEach(d => {
- let uses_props;
+ const dependencies = Array.from(d.dependencies);
+ const uses_props = !!dependencies.find(n => n === '$$props');
- const condition = Array.from(d.dependencies)
+ const condition = !uses_props && dependencies
.filter(n => {
- if (n === '$$props') {
- uses_props = true;
- return false;
- }
-
const variable = component.var_lookup.get(n);
return variable && (variable.writable || variable.mutated);
})
@@ -394,7 +390,7 @@ export default function dom(
const store = component.var_lookup.get(name);
if (store && store.reassigned) {
- return `${$name}, $$unsubscribe_${name} = @noop, $$subscribe_${name} = () => { $$unsubscribe_${name}(); $$unsubscribe_${name} = ${name}.subscribe($$value => { ${$name} = $$value; $$invalidate('${$name}', ${$name}); }) }`;
+ return `${$name}, $$unsubscribe_${name} = @noop, $$subscribe_${name} = () => { $$unsubscribe_${name}(); $$unsubscribe_${name} = @subscribe(${name}, $$value => { ${$name} = $$value; $$invalidate('${$name}', ${$name}); }) }`;
}
return $name;
diff --git a/src/compiler/compile/render_dom/wrappers/Element/Attribute.ts b/src/compiler/compile/render_dom/wrappers/Element/Attribute.ts
index f55e731fdb..3ced97dcf7 100644
--- a/src/compiler/compile/render_dom/wrappers/Element/Attribute.ts
+++ b/src/compiler/compile/render_dom/wrappers/Element/Attribute.ts
@@ -5,6 +5,7 @@ import ElementWrapper from './index';
import { stringify } from '../../../utils/stringify';
import deindent from '../../../utils/deindent';
import Expression from '../../../nodes/shared/Expression';
+import Text from '../../../nodes/Text';
export default class AttributeWrapper {
node: Attribute;
@@ -69,11 +70,6 @@ export default class AttributeWrapper {
const is_legacy_input_type = element.renderer.component.compile_options.legacy && name === 'type' && this.parent.node.name === 'input';
- const is_dataset = /^data-/.test(name) && !element.renderer.component.compile_options.legacy && !element.node.namespace;
- const camel_case_name = is_dataset ? name.replace('data-', '').replace(/(-\w)/g, (m) => {
- return m[1].toUpperCase();
- }) : name;
-
if (this.node.is_dynamic) {
let value;
@@ -84,19 +80,13 @@ export default class AttributeWrapper {
value = (this.node.chunks[0] as Expression).render(block);
} else {
// '{foo} {bar}' — treat as string concatenation
- value =
- (this.node.chunks[0].type === 'Text' ? '' : `"" + `) +
- this.node.chunks
- .map((chunk) => {
- if (chunk.type === 'Text') {
- return stringify(chunk.data);
- } else {
- return chunk.get_precedence() <= 13
- ? `(${chunk.render()})`
- : chunk.render();
- }
- })
- .join(' + ');
+ const prefix = this.node.chunks[0].type === 'Text' ? '' : `"" + `;
+
+ const text = this.node.name === 'class'
+ ? this.get_class_name_text()
+ : this.render_chunks().join(' + ');
+
+ value = `${prefix}${text}`;
}
const is_select_value_attribute =
@@ -150,11 +140,6 @@ export default class AttributeWrapper {
`${element.var}.${property_name} = ${init};`
);
updater = `${element.var}.${property_name} = ${should_cache ? last : value};`;
- } else if (is_dataset) {
- block.builders.hydrate.add_line(
- `${element.var}.dataset.${camel_case_name} = ${init};`
- );
- updater = `${element.var}.dataset.${camel_case_name} = ${should_cache ? last : value};`;
} else {
block.builders.hydrate.add_line(
`${method}(${element.var}, "${name}", ${init});`
@@ -189,9 +174,7 @@ export default class AttributeWrapper {
? `@set_input_type(${element.var}, ${value});`
: property_name
? `${element.var}.${property_name} = ${value};`
- : is_dataset
- ? `${element.var}.dataset.${camel_case_name} = ${value === true ? '""' : value};`
- : `${method}(${element.var}, "${name}", ${value === true ? '""' : value});`
+ : `${method}(${element.var}, "${name}", ${value === true ? '""' : value});`
);
block.builders.hydrate.add_line(statement);
@@ -210,6 +193,31 @@ export default class AttributeWrapper {
}
}
+ get_class_name_text() {
+ const scoped_css = this.node.chunks.some((chunk: Text) => chunk.synthetic);
+ const rendered = this.render_chunks();
+
+ if (scoped_css && rendered.length === 2) {
+ // we have a situation like class={possiblyUndefined}
+ rendered[0] = `@null_to_empty(${rendered[0]})`;
+ }
+
+ return rendered.join(' + ');
+ }
+
+ render_chunks() {
+ return this.node.chunks.map((chunk) => {
+ if (chunk.type === 'Text') {
+ return stringify(chunk.data);
+ }
+
+ const rendered = chunk.render();
+ return chunk.get_precedence() <= 13
+ ? `(${rendered})`
+ : rendered;
+ });
+ }
+
stringify() {
if (this.node.is_true) return '';
@@ -220,7 +228,7 @@ export default class AttributeWrapper {
return chunk.type === 'Text'
? chunk.data.replace(/"/g, '\\"')
: `\${${chunk.render()}}`;
- })}"`;
+ }).join('')}"`;
}
}
diff --git a/src/compiler/compile/render_dom/wrappers/Element/index.ts b/src/compiler/compile/render_dom/wrappers/Element/index.ts
index 9d3f60ac7e..7480c31cc7 100644
--- a/src/compiler/compile/render_dom/wrappers/Element/index.ts
+++ b/src/compiler/compile/render_dom/wrappers/Element/index.ts
@@ -26,7 +26,7 @@ const events = [
event_names: ['input'],
filter: (node: Element, _name: string) =>
node.name === 'textarea' ||
- node.name === 'input' && !/radio|checkbox|range/.test(node.get_static_attribute_value('type') as string)
+ node.name === 'input' && !/radio|checkbox|range|file/.test(node.get_static_attribute_value('type') as string)
},
{
event_names: ['input'],
@@ -38,7 +38,7 @@ const events = [
event_names: ['change'],
filter: (node: Element, _name: string) =>
node.name === 'select' ||
- node.name === 'input' && /radio|checkbox/.test(node.get_static_attribute_value('type') as string)
+ node.name === 'input' && /radio|checkbox|file/.test(node.get_static_attribute_value('type') as string)
},
{
event_names: ['change', 'input'],
@@ -816,29 +816,4 @@ export default class ElementWrapper extends Wrapper {
}
});
}
-
- // todo: looks to be dead code copypasted from Element.add_css_class in src/compile/nodes/Element.ts
- // add_css_class(class_name = this.component.stylesheet.id) {
- // const class_attribute = this.attributes.find(a => a.name === 'class');
- // if (class_attribute && !class_attribute.is_true) {
- // if (class_attribute.chunks.length === 1 && class_attribute.chunks[0].type === 'Text') {
- // (class_attribute.chunks[0] as Text).data += ` ${class_name}`;
- // } else {
- // (class_attribute.chunks as Node[]).push(
- // new Text(this.component, this, this.scope, {
- // type: 'Text',
- // data: ` ${class_name}`
- // })
- // );
- // }
- // } else {
- // this.attributes.push(
- // new Attribute(this.component, this, this.scope, {
- // type: 'Attribute',
- // name: 'class',
- // value: [{ type: 'Text', data: class_name }]
- // })
- // );
- // }
- // }
}
diff --git a/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts b/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts
index c85f47cd54..c63879c06f 100644
--- a/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts
+++ b/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts
@@ -185,7 +185,7 @@ export default class InlineComponentWrapper extends Wrapper {
add_to_set(all_dependencies, attr.dependencies);
});
- this.node.attributes.forEach(attr => {
+ this.node.attributes.forEach((attr, i) => {
const { name, dependencies } = attr;
const condition = dependencies.size > 0 && (dependencies.size !== all_dependencies.size)
@@ -201,7 +201,7 @@ export default class InlineComponentWrapper extends Wrapper {
const obj = `{ ${quote_name_if_necessary(name)}: ${attr.get_value(block)} }`;
initial_props.push(obj);
- changes.push(condition ? `${condition} && ${obj}` : obj);
+ changes.push(condition ? `${condition} && ${obj}` : `${levels}[${i}]`);
}
});
diff --git a/src/compiler/compile/render_ssr/handlers/Element.ts b/src/compiler/compile/render_ssr/handlers/Element.ts
index 0cd101df72..146324f2a4 100644
--- a/src/compiler/compile/render_ssr/handlers/Element.ts
+++ b/src/compiler/compile/render_ssr/handlers/Element.ts
@@ -2,7 +2,7 @@ import { is_void, quote_prop_if_necessary, quote_name_if_necessary } from '../..
import Attribute from '../../nodes/Attribute';
import Class from '../../nodes/Class';
import { snip } from '../../utils/snip';
-import { stringify_attribute } from '../../utils/stringify_attribute';
+import { stringify_attribute, stringify_class_attribute } from '../../utils/stringify_attribute';
import { get_slot_scope } from './shared/get_slot_scope';
import Renderer, { RenderOptions } from '../Renderer';
import Element from '../../nodes/Element';
@@ -111,9 +111,9 @@ export default function(node: Element, renderer: Renderer, options: RenderOption
args.push(`{ ${quote_name_if_necessary(attribute.name)}: ${snip(attribute.chunks[0])} }`);
} else if (attribute.name === 'class' && class_expression) {
// Add class expression
- args.push(`{ ${quote_name_if_necessary(attribute.name)}: [\`${stringify_attribute(attribute, true)}\`, \`\${${class_expression}}\`].join(' ').trim() }`);
+ args.push(`{ ${quote_name_if_necessary(attribute.name)}: [\`${stringify_class_attribute(attribute)}\`, \`\${${class_expression}}\`].join(' ').trim() }`);
} else {
- args.push(`{ ${quote_name_if_necessary(attribute.name)}: \`${stringify_attribute(attribute, true)}\` }`);
+ args.push(`{ ${quote_name_if_necessary(attribute.name)}: \`${attribute.name === 'class' ? stringify_class_attribute(attribute) : stringify_attribute(attribute, true)}\` }`);
}
}
});
@@ -136,14 +136,13 @@ export default function(node: Element, renderer: Renderer, options: RenderOption
opening_tag += '${' + snip(attribute.chunks[0]) + ' ? " ' + attribute.name + '" : "" }';
} else if (attribute.name === 'class' && class_expression) {
add_class_attribute = false;
- opening_tag += ` class="\${[\`${stringify_attribute(attribute, true)}\`, ${class_expression}].join(' ').trim() }"`;
+ opening_tag += ` class="\${[\`${stringify_class_attribute(attribute)}\`, ${class_expression}].join(' ').trim() }"`;
} else if (attribute.chunks.length === 1 && attribute.chunks[0].type !== 'Text') {
const { name } = attribute;
const snippet = snip(attribute.chunks[0]);
-
- opening_tag += '${(v => v == null ? "" : ` ' + name + '="${@escape(' + snippet + ')}"`)(' + snippet + ')}';
+ opening_tag += '${@add_attribute("' + name + '", ' + snippet + ', ' + (boolean_attributes.has(name) ? 1 : 0) + ')}';
} else {
- opening_tag += ` ${attribute.name}="${stringify_attribute(attribute, true)}"`;
+ opening_tag += ` ${attribute.name}="${attribute.name === 'class' ? stringify_class_attribute(attribute) : stringify_attribute(attribute, true)}"`;
}
});
}
@@ -165,7 +164,7 @@ export default function(node: Element, renderer: Renderer, options: RenderOption
node_contents = '${(' + snippet + ') || ""}';
} else {
const snippet = snip(expression);
- opening_tag += '${@add_attribute("' + name + '", ' + snippet + ')}';
+ opening_tag += '${@add_attribute("' + name + '", ' + snippet + ', 1)}';
}
});
diff --git a/src/compiler/compile/render_ssr/handlers/InlineComponent.ts b/src/compiler/compile/render_ssr/handlers/InlineComponent.ts
index 320bf5e6a0..74d990a3d8 100644
--- a/src/compiler/compile/render_ssr/handlers/InlineComponent.ts
+++ b/src/compiler/compile/render_ssr/handlers/InlineComponent.ts
@@ -58,7 +58,7 @@ export default function(node: InlineComponent, renderer: Renderer, options: Rend
if (attribute.is_spread) {
return snip(attribute.expression);
} else {
- return `{ ${attribute.name}: ${get_attribute_value(attribute)} }`;
+ return `{ ${quote_name_if_necessary(attribute.name)}: ${get_attribute_value(attribute)} }`;
}
})
.concat(binding_props.map(p => `{ ${p} }`))
@@ -67,7 +67,7 @@ export default function(node: InlineComponent, renderer: Renderer, options: Rend
} else {
props = stringify_props(
node.attributes
- .map(attribute => `${attribute.name}: ${get_attribute_value(attribute)}`)
+ .map(attribute => `${quote_name_if_necessary(attribute.name)}: ${get_attribute_value(attribute)}`)
.concat(binding_props)
);
}
diff --git a/src/compiler/compile/utils/stringify_attribute.ts b/src/compiler/compile/utils/stringify_attribute.ts
index ee3450edbb..c837659b93 100644
--- a/src/compiler/compile/utils/stringify_attribute.ts
+++ b/src/compiler/compile/utils/stringify_attribute.ts
@@ -1,6 +1,16 @@
import Attribute from '../nodes/Attribute';
import { escape_template, escape } from './stringify';
import { snip } from './snip';
+import Text from '../nodes/Text';
+
+export function stringify_class_attribute(attribute: Attribute) {
+ // handle special case — `class={possiblyUndefined}` with scoped CSS
+ if (attribute.chunks.length === 2 && (attribute.chunks[1] as Text).synthetic) {
+ return '${@escape(@null_to_empty(' + snip(attribute.chunks[0]) + '))}' + (attribute.chunks[1] as Text).data;
+ }
+
+ return stringify_attribute(attribute, true);
+}
export function stringify_attribute(attribute: Attribute, is_ssr: boolean) {
return attribute.chunks
diff --git a/src/compiler/utils/names.ts b/src/compiler/utils/names.ts
index c5a67a651b..8d9150bc18 100644
--- a/src/compiler/utils/names.ts
+++ b/src/compiler/utils/names.ts
@@ -15,15 +15,18 @@ export const globals = new Set([
'encodeURIComponent',
'Error',
'EvalError',
+ 'history',
'Infinity',
'InternalError',
'Intl',
'isFinite',
'isNaN',
'JSON',
+ 'localStorage',
'Map',
'Math',
'NaN',
+ 'navigator',
'Number',
'Object',
'parseFloat',
@@ -34,6 +37,7 @@ export const globals = new Set([
'RangeError',
'ReferenceError',
'RegExp',
+ 'sessionStorage',
'Set',
'String',
'SyntaxError',
diff --git a/src/runtime/internal/environment.ts b/src/runtime/internal/environment.ts
index a1d50b5521..7123399180 100644
--- a/src/runtime/internal/environment.ts
+++ b/src/runtime/internal/environment.ts
@@ -1,10 +1,12 @@
+import { noop } from './utils';
+
export const is_client = typeof window !== 'undefined';
export let now: () => number = is_client
? () => window.performance.now()
: () => Date.now();
-export let raf = cb => requestAnimationFrame(cb);
+export let raf = is_client ? cb => requestAnimationFrame(cb) : noop;
// used internally for testing
export function set_now(fn) {
diff --git a/src/runtime/internal/ssr.ts b/src/runtime/internal/ssr.ts
index 1ae1ae1d12..d8fbf15f0a 100644
--- a/src/runtime/internal/ssr.ts
+++ b/src/runtime/internal/ssr.ts
@@ -1,6 +1,5 @@
import { set_current_component, current_component } from './lifecycle';
import { run_all, blank_object } from './utils';
-import { Readable } from 'svelte/store';
export const invalid_attribute_name_character = /[\s'">/=\u{FDD0}-\u{FDEF}\u{FFFE}\u{FFFF}\u{1FFFE}\u{1FFFF}\u{2FFFE}\u{2FFFF}\u{3FFFE}\u{3FFFF}\u{4FFFE}\u{4FFFF}\u{5FFFE}\u{5FFFF}\u{6FFFE}\u{6FFFF}\u{7FFFE}\u{7FFFF}\u{8FFFE}\u{8FFFF}\u{9FFFE}\u{9FFFF}\u{AFFFE}\u{AFFFF}\u{BFFFE}\u{BFFFF}\u{CFFFE}\u{CFFFF}\u{DFFFE}\u{DFFFF}\u{EFFFE}\u{EFFFF}\u{FFFFE}\u{FFFFF}\u{10FFFE}\u{10FFFF}]/u;
// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
@@ -121,21 +120,9 @@ export function create_ssr_component(fn) {
};
}
-/**
- * Get the current value from a store by subscribing and immediately unsubscribing.
- * @param store readable
- */
-export function get_store_value(store: Readable): T | undefined {
- let value;
- const unsubscribe: any = store.subscribe(_ => value = _);
- if (unsubscribe.unsubscribe) unsubscribe.unsubscribe();
- else unsubscribe();
- return value;
-}
-
-export function add_attribute(name, value) {
- if (!value) return '';
- return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(value) : `"${value}"`}`}`;
+export function add_attribute(name, value, boolean) {
+ if (value == null || (boolean && !value)) return '';
+ return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `"${value}"`}`}`;
}
export function add_classes(classes) {
diff --git a/src/runtime/internal/utils.ts b/src/runtime/internal/utils.ts
index 08410ec33a..e457eb0505 100644
--- a/src/runtime/internal/utils.ts
+++ b/src/runtime/internal/utils.ts
@@ -48,12 +48,19 @@ export function validate_store(store, name) {
}
}
-export function subscribe(component, store, callback) {
+export function subscribe(store, callback) {
const unsub = store.subscribe(callback);
+ return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;
+}
+
+export function get_store_value(store) {
+ let value;
+ subscribe(store, _ => value = _)();
+ return value;
+}
- component.$$.on_destroy.push(unsub.unsubscribe
- ? () => unsub.unsubscribe()
- : unsub);
+export function component_subscribe(component, store, callback) {
+ component.$$.on_destroy.push(subscribe(store, callback));
}
export function create_slot(definition, ctx, fn) {
@@ -89,3 +96,7 @@ export function once(fn) {
fn.call(this, ...args);
};
}
+
+export function null_to_empty(value) {
+ return value == null ? '' : value;
+}
diff --git a/src/runtime/store/index.ts b/src/runtime/store/index.ts
index 6863730e4e..eb2eda5779 100644
--- a/src/runtime/store/index.ts
+++ b/src/runtime/store/index.ts
@@ -1,5 +1,4 @@
-import { run_all, noop, safe_not_equal, is_function } from 'svelte/internal';
-export { get_store_value as get } from 'svelte/internal';
+import { run_all, noop, safe_not_equal, is_function, get_store_value } from 'svelte/internal';
/** Callback to inform of a value updates. */
type Subscriber = (value: T) => void;
@@ -182,3 +181,9 @@ export function derived(
};
});
}
+
+/**
+ * Get the current value from a store by subscribing and immediately unsubscribing.
+ * @param store readable
+ */
+export { get_store_value as get };
\ No newline at end of file
diff --git a/test/css/samples/attribute-selector-bind/expected.css b/test/css/samples/attribute-selector-bind/expected.css
new file mode 100644
index 0000000000..20543c5c8e
--- /dev/null
+++ b/test/css/samples/attribute-selector-bind/expected.css
@@ -0,0 +1 @@
+details[open].svelte-xyz{color:red}
\ No newline at end of file
diff --git a/test/css/samples/attribute-selector-bind/input.svelte b/test/css/samples/attribute-selector-bind/input.svelte
new file mode 100644
index 0000000000..eb1d03e762
--- /dev/null
+++ b/test/css/samples/attribute-selector-bind/input.svelte
@@ -0,0 +1,11 @@
+
+
+Hello
+
+
diff --git a/test/js/samples/bind-open/expected.js b/test/js/samples/bind-open/expected.js
index 7c73c8ddac..7f739aec8b 100644
--- a/test/js/samples/bind-open/expected.js
+++ b/test/js/samples/bind-open/expected.js
@@ -66,4 +66,4 @@ class Component extends SvelteComponent {
}
}
-export default Component;
+export default Component;
\ No newline at end of file
diff --git a/test/js/samples/dont-use-dataset-in-legacy/expected.js b/test/js/samples/data-attribute/expected.js
similarity index 100%
rename from test/js/samples/dont-use-dataset-in-legacy/expected.js
rename to test/js/samples/data-attribute/expected.js
diff --git a/test/js/samples/do-use-dataset/input.svelte b/test/js/samples/data-attribute/input.svelte
similarity index 100%
rename from test/js/samples/do-use-dataset/input.svelte
rename to test/js/samples/data-attribute/input.svelte
diff --git a/test/js/samples/do-use-dataset/expected.js b/test/js/samples/do-use-dataset/expected.js
deleted file mode 100644
index 4a1ffc4913..0000000000
--- a/test/js/samples/do-use-dataset/expected.js
+++ /dev/null
@@ -1,67 +0,0 @@
-/* generated by Svelte vX.Y.Z */
-import {
- SvelteComponent,
- detach,
- element,
- init,
- insert,
- noop,
- safe_not_equal,
- space
-} from "svelte/internal";
-
-function create_fragment(ctx) {
- var div0, t, div1;
-
- return {
- c() {
- div0 = element("div");
- t = space();
- div1 = element("div");
- div0.dataset.foo = "bar";
- div1.dataset.foo = ctx.bar;
- },
-
- m(target, anchor) {
- insert(target, div0, anchor);
- insert(target, t, anchor);
- insert(target, div1, anchor);
- },
-
- p(changed, ctx) {
- if (changed.bar) {
- div1.dataset.foo = ctx.bar;
- }
- },
-
- i: noop,
- o: noop,
-
- d(detaching) {
- if (detaching) {
- detach(div0);
- detach(t);
- detach(div1);
- }
- }
- };
-}
-
-function instance($$self, $$props, $$invalidate) {
- let { bar } = $$props;
-
- $$self.$set = $$props => {
- if ('bar' in $$props) $$invalidate('bar', bar = $$props.bar);
- };
-
- return { bar };
-}
-
-class Component extends SvelteComponent {
- constructor(options) {
- super();
- init(this, options, instance, create_fragment, safe_not_equal, ["bar"]);
- }
-}
-
-export default Component;
\ No newline at end of file
diff --git a/test/js/samples/dont-use-dataset-in-legacy/_config.js b/test/js/samples/dont-use-dataset-in-legacy/_config.js
deleted file mode 100644
index 67924a4ffe..0000000000
--- a/test/js/samples/dont-use-dataset-in-legacy/_config.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- options: {
- legacy: true
- }
-};
diff --git a/test/js/samples/dont-use-dataset-in-legacy/input.svelte b/test/js/samples/dont-use-dataset-in-legacy/input.svelte
deleted file mode 100644
index e340b2610f..0000000000
--- a/test/js/samples/dont-use-dataset-in-legacy/input.svelte
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/test/js/samples/dont-use-dataset-in-svg/expected.js b/test/js/samples/dont-use-dataset-in-svg/expected.js
deleted file mode 100644
index 0862d1bbc6..0000000000
--- a/test/js/samples/dont-use-dataset-in-svg/expected.js
+++ /dev/null
@@ -1,66 +0,0 @@
-/* generated by Svelte vX.Y.Z */
-import {
- SvelteComponent,
- append,
- attr,
- detach,
- init,
- insert,
- noop,
- safe_not_equal,
- svg_element
-} from "svelte/internal";
-
-function create_fragment(ctx) {
- var svg, g0, g1;
-
- return {
- c() {
- svg = svg_element("svg");
- g0 = svg_element("g");
- g1 = svg_element("g");
- attr(g0, "data-foo", "bar");
- attr(g1, "data-foo", ctx.bar);
- },
-
- m(target, anchor) {
- insert(target, svg, anchor);
- append(svg, g0);
- append(svg, g1);
- },
-
- p(changed, ctx) {
- if (changed.bar) {
- attr(g1, "data-foo", ctx.bar);
- }
- },
-
- i: noop,
- o: noop,
-
- d(detaching) {
- if (detaching) {
- detach(svg);
- }
- }
- };
-}
-
-function instance($$self, $$props, $$invalidate) {
- let { bar } = $$props;
-
- $$self.$set = $$props => {
- if ('bar' in $$props) $$invalidate('bar', bar = $$props.bar);
- };
-
- return { bar };
-}
-
-class Component extends SvelteComponent {
- constructor(options) {
- super();
- init(this, options, instance, create_fragment, safe_not_equal, ["bar"]);
- }
-}
-
-export default Component;
\ No newline at end of file
diff --git a/test/js/samples/dont-use-dataset-in-svg/input.svelte b/test/js/samples/dont-use-dataset-in-svg/input.svelte
deleted file mode 100644
index 969377de33..0000000000
--- a/test/js/samples/dont-use-dataset-in-svg/input.svelte
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/test/js/samples/input-files/expected.js b/test/js/samples/input-files/expected.js
index ed11518df2..d4442d57ee 100644
--- a/test/js/samples/input-files/expected.js
+++ b/test/js/samples/input-files/expected.js
@@ -19,7 +19,7 @@ function create_fragment(ctx) {
input = element("input");
attr(input, "type", "file");
input.multiple = true;
- dispose = listen(input, "input", ctx.input_input_handler);
+ dispose = listen(input, "change", ctx.input_change_handler);
},
m(target, anchor) {
@@ -43,7 +43,7 @@ function create_fragment(ctx) {
function instance($$self, $$props, $$invalidate) {
let { files } = $$props;
- function input_input_handler() {
+ function input_change_handler() {
files = this.files;
$$invalidate('files', files);
}
@@ -52,7 +52,7 @@ function instance($$self, $$props, $$invalidate) {
if ('files' in $$props) $$invalidate('files', files = $$props.files);
};
- return { files, input_input_handler };
+ return { files, input_change_handler };
}
class Component extends SvelteComponent {
diff --git a/test/runtime/samples/attribute-false/_config.js b/test/runtime/samples/attribute-false/_config.js
new file mode 100644
index 0000000000..9fd08a2a48
--- /dev/null
+++ b/test/runtime/samples/attribute-false/_config.js
@@ -0,0 +1,3 @@
+export default {
+ html: `
`,
+};
diff --git a/test/runtime/samples/attribute-false/main.svelte b/test/runtime/samples/attribute-false/main.svelte
new file mode 100644
index 0000000000..ca78020a39
--- /dev/null
+++ b/test/runtime/samples/attribute-false/main.svelte
@@ -0,0 +1 @@
+
diff --git a/test/runtime/samples/attribute-null-classname-no-style/_config.js b/test/runtime/samples/attribute-null-classname-no-style/_config.js
new file mode 100644
index 0000000000..4a78b680ef
--- /dev/null
+++ b/test/runtime/samples/attribute-null-classname-no-style/_config.js
@@ -0,0 +1,42 @@
+export default {
+ props: {
+ testName: "testClassName"
+ },
+
+ html: `
`,
+
+ test({ assert, component, target }) {
+ const div = target.querySelector('div');
+ assert.equal(div.className, 'testClassName');
+
+ component.testName = null;
+ assert.equal(div.className, '');
+
+ component.testName = undefined;
+ assert.equal(div.className, '');
+
+ component.testName = undefined + '';
+ assert.equal(div.className, 'undefined');
+
+ component.testName = null + '';
+ assert.equal(div.className, 'null');
+
+ component.testName = 1;
+ assert.equal(div.className, '1');
+
+ component.testName = 0;
+ assert.equal(div.className, '0');
+
+ component.testName = false;
+ assert.equal(div.className, 'false');
+
+ component.testName = true;
+ assert.equal(div.className, 'true');
+
+ component.testName = {};
+ assert.equal(div.className, '[object Object]');
+
+ component.testName = '';
+ assert.equal(div.className, '');
+ }
+};
diff --git a/test/runtime/samples/attribute-null-classname-no-style/main.svelte b/test/runtime/samples/attribute-null-classname-no-style/main.svelte
new file mode 100644
index 0000000000..8dfcd7af54
--- /dev/null
+++ b/test/runtime/samples/attribute-null-classname-no-style/main.svelte
@@ -0,0 +1,5 @@
+
+
+
diff --git a/test/runtime/samples/attribute-null-classname-with-style/_config.js b/test/runtime/samples/attribute-null-classname-with-style/_config.js
new file mode 100644
index 0000000000..3ebc593b5d
--- /dev/null
+++ b/test/runtime/samples/attribute-null-classname-with-style/_config.js
@@ -0,0 +1,40 @@
+export default {
+ html: `
`,
+
+ test({ assert, component, target }) {
+ const div = target.querySelector('div');
+
+ component.testName = null;
+ assert.equal(div.className, ' svelte-x1o6ra');
+
+ component.testName = undefined;
+ assert.equal(div.className, ' svelte-x1o6ra');
+
+ component.testName = undefined + '';
+ assert.equal(div.className, 'undefined svelte-x1o6ra');
+
+ component.testName = null + '';
+ assert.equal(div.className, 'null svelte-x1o6ra');
+
+ component.testName = 1;
+ assert.equal(div.className, '1 svelte-x1o6ra');
+
+ component.testName = 0;
+ assert.equal(div.className, '0 svelte-x1o6ra');
+
+ component.testName = false;
+ assert.equal(div.className, 'false svelte-x1o6ra');
+
+ component.testName = true;
+ assert.equal(div.className, 'true svelte-x1o6ra');
+
+ component.testName = {};
+ assert.equal(div.className, '[object Object] svelte-x1o6ra');
+
+ component.testName = '';
+ assert.equal(div.className, ' svelte-x1o6ra');
+
+ component.testName = 'testClassName';
+ assert.equal(div.className, 'testClassName svelte-x1o6ra');
+ }
+};
diff --git a/test/runtime/samples/attribute-null-classname-with-style/main.svelte b/test/runtime/samples/attribute-null-classname-with-style/main.svelte
new file mode 100644
index 0000000000..013647952d
--- /dev/null
+++ b/test/runtime/samples/attribute-null-classname-with-style/main.svelte
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/test/runtime/samples/attribute-null-classnames-no-style/_config.js b/test/runtime/samples/attribute-null-classnames-no-style/_config.js
new file mode 100644
index 0000000000..917cf565c0
--- /dev/null
+++ b/test/runtime/samples/attribute-null-classnames-no-style/_config.js
@@ -0,0 +1,45 @@
+export default {
+ props: {
+ testName1: "test1",
+ testName2: "test2",
+ },
+
+ html: `
`,
+
+ test({ assert, component, target }) {
+ const div = target.querySelector('div');
+ assert.equal(div.className, 'test1test2');
+
+ component.testName1 = null;
+ component.testName2 = null;
+ assert.equal(div.className, '0');
+
+ component.testName1 = null;
+ component.testName2 = "test";
+ assert.equal(div.className, 'nulltest');
+
+ component.testName1 = undefined;
+ component.testName2 = "test";
+ assert.equal(div.className, 'undefinedtest');
+
+ component.testName1 = undefined;
+ component.testName2 = undefined;
+ assert.equal(div.className, 'NaN');
+
+ component.testName1 = null;
+ component.testName2 = 1;
+ assert.equal(div.className, '1');
+
+ component.testName1 = undefined;
+ component.testName2 = 1;
+ assert.equal(div.className, 'NaN');
+
+ component.testName1 = null;
+ component.testName2 = 0;
+ assert.equal(div.className, '0');
+
+ component.testName1 = undefined;
+ component.testName2 = 0;
+ assert.equal(div.className, 'NaN');
+ }
+};
diff --git a/test/runtime/samples/attribute-null-classnames-no-style/main.svelte b/test/runtime/samples/attribute-null-classnames-no-style/main.svelte
new file mode 100644
index 0000000000..f8cf7d803e
--- /dev/null
+++ b/test/runtime/samples/attribute-null-classnames-no-style/main.svelte
@@ -0,0 +1,6 @@
+
+
+
diff --git a/test/runtime/samples/attribute-null-classnames-with-style/_config.js b/test/runtime/samples/attribute-null-classnames-with-style/_config.js
new file mode 100644
index 0000000000..5762f628fb
--- /dev/null
+++ b/test/runtime/samples/attribute-null-classnames-with-style/_config.js
@@ -0,0 +1,45 @@
+export default {
+ props: {
+ testName1: "test1",
+ testName2: "test2",
+ },
+
+ html: `
`,
+
+ test({ assert, component, target }) {
+ const div = target.querySelector('div');
+ assert.equal(div.className, 'test1test2 svelte-x1o6ra');
+
+ component.testName1 = null;
+ component.testName2 = null;
+ assert.equal(div.className, '0 svelte-x1o6ra');
+
+ component.testName1 = null;
+ component.testName2 = "test";
+ assert.equal(div.className, 'nulltest svelte-x1o6ra');
+
+ component.testName1 = undefined;
+ component.testName2 = "test";
+ assert.equal(div.className, 'undefinedtest svelte-x1o6ra');
+
+ component.testName1 = undefined;
+ component.testName2 = undefined;
+ assert.equal(div.className, 'NaN svelte-x1o6ra');
+
+ component.testName1 = null;
+ component.testName2 = 1;
+ assert.equal(div.className, '1 svelte-x1o6ra');
+
+ component.testName1 = undefined;
+ component.testName2 = 1;
+ assert.equal(div.className, 'NaN svelte-x1o6ra');
+
+ component.testName1 = null;
+ component.testName2 = 0;
+ assert.equal(div.className, '0 svelte-x1o6ra');
+
+ component.testName1 = undefined;
+ component.testName2 = 0;
+ assert.equal(div.className, 'NaN svelte-x1o6ra');
+ }
+};
diff --git a/test/runtime/samples/attribute-null-classnames-with-style/main.svelte b/test/runtime/samples/attribute-null-classnames-with-style/main.svelte
new file mode 100644
index 0000000000..06098fd50b
--- /dev/null
+++ b/test/runtime/samples/attribute-null-classnames-with-style/main.svelte
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/test/runtime/samples/attribute-null-func-classname-no-style/_config.js b/test/runtime/samples/attribute-null-func-classname-no-style/_config.js
new file mode 100644
index 0000000000..4a78b680ef
--- /dev/null
+++ b/test/runtime/samples/attribute-null-func-classname-no-style/_config.js
@@ -0,0 +1,42 @@
+export default {
+ props: {
+ testName: "testClassName"
+ },
+
+ html: `
`,
+
+ test({ assert, component, target }) {
+ const div = target.querySelector('div');
+ assert.equal(div.className, 'testClassName');
+
+ component.testName = null;
+ assert.equal(div.className, '');
+
+ component.testName = undefined;
+ assert.equal(div.className, '');
+
+ component.testName = undefined + '';
+ assert.equal(div.className, 'undefined');
+
+ component.testName = null + '';
+ assert.equal(div.className, 'null');
+
+ component.testName = 1;
+ assert.equal(div.className, '1');
+
+ component.testName = 0;
+ assert.equal(div.className, '0');
+
+ component.testName = false;
+ assert.equal(div.className, 'false');
+
+ component.testName = true;
+ assert.equal(div.className, 'true');
+
+ component.testName = {};
+ assert.equal(div.className, '[object Object]');
+
+ component.testName = '';
+ assert.equal(div.className, '');
+ }
+};
diff --git a/test/runtime/samples/attribute-null-func-classname-no-style/main.svelte b/test/runtime/samples/attribute-null-func-classname-no-style/main.svelte
new file mode 100644
index 0000000000..e2754cd421
--- /dev/null
+++ b/test/runtime/samples/attribute-null-func-classname-no-style/main.svelte
@@ -0,0 +1,9 @@
+
+
+
diff --git a/test/runtime/samples/attribute-null-func-classname-with-style/_config.js b/test/runtime/samples/attribute-null-func-classname-with-style/_config.js
new file mode 100644
index 0000000000..1ed43d05b9
--- /dev/null
+++ b/test/runtime/samples/attribute-null-func-classname-with-style/_config.js
@@ -0,0 +1,42 @@
+export default {
+ props: {
+ testName: "testClassName"
+ },
+
+ html: `
`,
+
+ test({ assert, component, target }) {
+ const div = target.querySelector('div');
+ assert.equal(div.className, 'testClassName svelte-x1o6ra');
+
+ component.testName = null;
+ assert.equal(div.className, ' svelte-x1o6ra');
+
+ component.testName = undefined;
+ assert.equal(div.className, ' svelte-x1o6ra');
+
+ component.testName = undefined + '';
+ assert.equal(div.className, 'undefined svelte-x1o6ra');
+
+ component.testName = null + '';
+ assert.equal(div.className, 'null svelte-x1o6ra');
+
+ component.testName = 1;
+ assert.equal(div.className, '1 svelte-x1o6ra');
+
+ component.testName = 0;
+ assert.equal(div.className, '0 svelte-x1o6ra');
+
+ component.testName = false;
+ assert.equal(div.className, 'false svelte-x1o6ra');
+
+ component.testName = true;
+ assert.equal(div.className, 'true svelte-x1o6ra');
+
+ component.testName = {};
+ assert.equal(div.className, '[object Object] svelte-x1o6ra');
+
+ component.testName = '';
+ assert.equal(div.className, ' svelte-x1o6ra');
+ }
+};
diff --git a/test/runtime/samples/attribute-null-func-classname-with-style/main.svelte b/test/runtime/samples/attribute-null-func-classname-with-style/main.svelte
new file mode 100644
index 0000000000..bcb858ab8d
--- /dev/null
+++ b/test/runtime/samples/attribute-null-func-classname-with-style/main.svelte
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/test/runtime/samples/attribute-null-func-classnames-no-style/_config.js b/test/runtime/samples/attribute-null-func-classnames-no-style/_config.js
new file mode 100644
index 0000000000..917cf565c0
--- /dev/null
+++ b/test/runtime/samples/attribute-null-func-classnames-no-style/_config.js
@@ -0,0 +1,45 @@
+export default {
+ props: {
+ testName1: "test1",
+ testName2: "test2",
+ },
+
+ html: `
`,
+
+ test({ assert, component, target }) {
+ const div = target.querySelector('div');
+ assert.equal(div.className, 'test1test2');
+
+ component.testName1 = null;
+ component.testName2 = null;
+ assert.equal(div.className, '0');
+
+ component.testName1 = null;
+ component.testName2 = "test";
+ assert.equal(div.className, 'nulltest');
+
+ component.testName1 = undefined;
+ component.testName2 = "test";
+ assert.equal(div.className, 'undefinedtest');
+
+ component.testName1 = undefined;
+ component.testName2 = undefined;
+ assert.equal(div.className, 'NaN');
+
+ component.testName1 = null;
+ component.testName2 = 1;
+ assert.equal(div.className, '1');
+
+ component.testName1 = undefined;
+ component.testName2 = 1;
+ assert.equal(div.className, 'NaN');
+
+ component.testName1 = null;
+ component.testName2 = 0;
+ assert.equal(div.className, '0');
+
+ component.testName1 = undefined;
+ component.testName2 = 0;
+ assert.equal(div.className, 'NaN');
+ }
+};
diff --git a/test/runtime/samples/attribute-null-func-classnames-no-style/main.svelte b/test/runtime/samples/attribute-null-func-classnames-no-style/main.svelte
new file mode 100644
index 0000000000..e1cdf51412
--- /dev/null
+++ b/test/runtime/samples/attribute-null-func-classnames-no-style/main.svelte
@@ -0,0 +1,11 @@
+
+
+
diff --git a/test/runtime/samples/attribute-null-func-classnames-with-style/_config.js b/test/runtime/samples/attribute-null-func-classnames-with-style/_config.js
new file mode 100644
index 0000000000..5762f628fb
--- /dev/null
+++ b/test/runtime/samples/attribute-null-func-classnames-with-style/_config.js
@@ -0,0 +1,45 @@
+export default {
+ props: {
+ testName1: "test1",
+ testName2: "test2",
+ },
+
+ html: `
`,
+
+ test({ assert, component, target }) {
+ const div = target.querySelector('div');
+ assert.equal(div.className, 'test1test2 svelte-x1o6ra');
+
+ component.testName1 = null;
+ component.testName2 = null;
+ assert.equal(div.className, '0 svelte-x1o6ra');
+
+ component.testName1 = null;
+ component.testName2 = "test";
+ assert.equal(div.className, 'nulltest svelte-x1o6ra');
+
+ component.testName1 = undefined;
+ component.testName2 = "test";
+ assert.equal(div.className, 'undefinedtest svelte-x1o6ra');
+
+ component.testName1 = undefined;
+ component.testName2 = undefined;
+ assert.equal(div.className, 'NaN svelte-x1o6ra');
+
+ component.testName1 = null;
+ component.testName2 = 1;
+ assert.equal(div.className, '1 svelte-x1o6ra');
+
+ component.testName1 = undefined;
+ component.testName2 = 1;
+ assert.equal(div.className, 'NaN svelte-x1o6ra');
+
+ component.testName1 = null;
+ component.testName2 = 0;
+ assert.equal(div.className, '0 svelte-x1o6ra');
+
+ component.testName1 = undefined;
+ component.testName2 = 0;
+ assert.equal(div.className, 'NaN svelte-x1o6ra');
+ }
+};
diff --git a/test/runtime/samples/attribute-null-func-classnames-with-style/main.svelte b/test/runtime/samples/attribute-null-func-classnames-with-style/main.svelte
new file mode 100644
index 0000000000..af43778365
--- /dev/null
+++ b/test/runtime/samples/attribute-null-func-classnames-with-style/main.svelte
@@ -0,0 +1,17 @@
+
+
+
+
+
diff --git a/test/runtime/samples/attribute-null/_config.js b/test/runtime/samples/attribute-null/_config.js
new file mode 100644
index 0000000000..ae2f0a8af6
--- /dev/null
+++ b/test/runtime/samples/attribute-null/_config.js
@@ -0,0 +1,3 @@
+export default {
+ html: `
`,
+};
diff --git a/test/runtime/samples/attribute-null/main.svelte b/test/runtime/samples/attribute-null/main.svelte
new file mode 100644
index 0000000000..9b7f48eda3
--- /dev/null
+++ b/test/runtime/samples/attribute-null/main.svelte
@@ -0,0 +1 @@
+
diff --git a/test/runtime/samples/attribute-undefined/_config.js b/test/runtime/samples/attribute-undefined/_config.js
new file mode 100644
index 0000000000..ae2f0a8af6
--- /dev/null
+++ b/test/runtime/samples/attribute-undefined/_config.js
@@ -0,0 +1,3 @@
+export default {
+ html: `
`,
+};
diff --git a/test/runtime/samples/attribute-undefined/main.svelte b/test/runtime/samples/attribute-undefined/main.svelte
new file mode 100644
index 0000000000..5108aa873f
--- /dev/null
+++ b/test/runtime/samples/attribute-undefined/main.svelte
@@ -0,0 +1 @@
+
diff --git a/test/runtime/samples/event-handler-async/_config.js b/test/runtime/samples/event-handler-async/_config.js
new file mode 100644
index 0000000000..fab4d998b6
--- /dev/null
+++ b/test/runtime/samples/event-handler-async/_config.js
@@ -0,0 +1,5 @@
+export default {
+ html: `
+ nothing
+ `,
+};
diff --git a/test/runtime/samples/event-handler-async/main.svelte b/test/runtime/samples/event-handler-async/main.svelte
new file mode 100644
index 0000000000..b22a6af92e
--- /dev/null
+++ b/test/runtime/samples/event-handler-async/main.svelte
@@ -0,0 +1 @@
+ { await null; }}>nothing
diff --git a/test/runtime/samples/innerhtml-interpolated-literal/_config.js b/test/runtime/samples/innerhtml-interpolated-literal/_config.js
new file mode 100644
index 0000000000..022c70f717
--- /dev/null
+++ b/test/runtime/samples/innerhtml-interpolated-literal/_config.js
@@ -0,0 +1,7 @@
+export default {
+ html: `
+
+
+
+ `
+};
\ No newline at end of file
diff --git a/test/runtime/samples/innerhtml-interpolated-literal/main.svelte b/test/runtime/samples/innerhtml-interpolated-literal/main.svelte
new file mode 100644
index 0000000000..8a3c9272a5
--- /dev/null
+++ b/test/runtime/samples/innerhtml-interpolated-literal/main.svelte
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/test/runtime/samples/prop-quoted/Nested.svelte b/test/runtime/samples/prop-quoted/Nested.svelte
new file mode 100644
index 0000000000..681f7126b2
--- /dev/null
+++ b/test/runtime/samples/prop-quoted/Nested.svelte
@@ -0,0 +1 @@
+{$$props['x-y-z']}
\ No newline at end of file
diff --git a/test/runtime/samples/prop-quoted/_config.js b/test/runtime/samples/prop-quoted/_config.js
new file mode 100644
index 0000000000..d982bc87cc
--- /dev/null
+++ b/test/runtime/samples/prop-quoted/_config.js
@@ -0,0 +1,12 @@
+export default {
+ props: {
+ foo: 1
+ },
+
+ html: `1`,
+
+ async test({ assert, component, target }) {
+ component.foo = 2;
+ assert.htmlEqual(target.innerHTML, `2`);
+ }
+};
\ No newline at end of file
diff --git a/test/runtime/samples/prop-quoted/main.svelte b/test/runtime/samples/prop-quoted/main.svelte
new file mode 100644
index 0000000000..0249017762
--- /dev/null
+++ b/test/runtime/samples/prop-quoted/main.svelte
@@ -0,0 +1,7 @@
+
+
+
\ No newline at end of file
diff --git a/test/runtime/samples/props-reactive-b/_config.js b/test/runtime/samples/props-reactive-b/_config.js
new file mode 100644
index 0000000000..43eaee23aa
--- /dev/null
+++ b/test/runtime/samples/props-reactive-b/_config.js
@@ -0,0 +1,30 @@
+export default {
+ props: {
+ a: 1,
+ b: 2
+ },
+
+ html: `
+ a: 1
+ b: 2
+ c: 3
+ `,
+
+ async test({ assert, component, target }) {
+ await component.$set({ a: 4 });
+
+ assert.htmlEqual(target.innerHTML, `
+ a: 4
+ b: 2
+ c: 6
+ `);
+
+ await component.$set({ b: 5 });
+
+ assert.htmlEqual(target.innerHTML, `
+ a: 4
+ b: 5
+ c: 9
+ `);
+ }
+};
\ No newline at end of file
diff --git a/test/runtime/samples/props-reactive-b/main.svelte b/test/runtime/samples/props-reactive-b/main.svelte
new file mode 100644
index 0000000000..45d6fc0cad
--- /dev/null
+++ b/test/runtime/samples/props-reactive-b/main.svelte
@@ -0,0 +1,8 @@
+
+
+a: {a}
+b: {$$props.b}
+c: {c}
\ No newline at end of file
diff --git a/test/runtime/samples/spread-reuse-levels/Nested.svelte b/test/runtime/samples/spread-reuse-levels/Nested.svelte
new file mode 100644
index 0000000000..800d6cd602
--- /dev/null
+++ b/test/runtime/samples/spread-reuse-levels/Nested.svelte
@@ -0,0 +1,21 @@
+
+
+{JSON.stringify({ a, b, c })}
+{JSON.stringify(changed)}
\ No newline at end of file
diff --git a/test/runtime/samples/spread-reuse-levels/_config.js b/test/runtime/samples/spread-reuse-levels/_config.js
new file mode 100644
index 0000000000..5acd36bdf8
--- /dev/null
+++ b/test/runtime/samples/spread-reuse-levels/_config.js
@@ -0,0 +1,20 @@
+export default {
+ html: `
+ {"a":1,"b":[1],"c":42}
+ {"a":false,"b":false,"c":false}
+ `,
+
+ ssrHtml: `
+ {"a":1,"b":[1],"c":42}
+ {}
+ `,
+
+ test({ assert, component, target }) {
+ component.a = 2;
+
+ assert.htmlEqual(target.innerHTML, `
+ {"a":2,"b":[1],"c":42}
+ {"a":true,"b":false,"c":false}
+ `);
+ }
+};
diff --git a/test/runtime/samples/spread-reuse-levels/main.svelte b/test/runtime/samples/spread-reuse-levels/main.svelte
new file mode 100644
index 0000000000..a22ecfc1bb
--- /dev/null
+++ b/test/runtime/samples/spread-reuse-levels/main.svelte
@@ -0,0 +1,8 @@
+
+
+
\ No newline at end of file
diff --git a/test/runtime/samples/store-resubscribe-observable/_config.js b/test/runtime/samples/store-resubscribe-observable/_config.js
new file mode 100644
index 0000000000..d043bbcd87
--- /dev/null
+++ b/test/runtime/samples/store-resubscribe-observable/_config.js
@@ -0,0 +1,3 @@
+export default {
+ html: `42`,
+};
diff --git a/test/runtime/samples/store-resubscribe-observable/main.svelte b/test/runtime/samples/store-resubscribe-observable/main.svelte
new file mode 100644
index 0000000000..4ea2112b11
--- /dev/null
+++ b/test/runtime/samples/store-resubscribe-observable/main.svelte
@@ -0,0 +1,11 @@
+
+
+{$foo}
diff --git a/test/validator/samples/a11y-alt-text/input.svelte b/test/validator/samples/a11y-alt-text/input.svelte
index f17638af76..1c3b5ac5ce 100644
--- a/test/validator/samples/a11y-alt-text/input.svelte
+++ b/test/validator/samples/a11y-alt-text/input.svelte
@@ -6,4 +6,6 @@
-
\ No newline at end of file
+
+
+
diff --git a/test/validator/samples/undefined-value/input.svelte b/test/validator/samples/undefined-value/input.svelte
index 03dda2c44f..0dec9632a7 100644
--- a/test/validator/samples/undefined-value/input.svelte
+++ b/test/validator/samples/undefined-value/input.svelte
@@ -1,6 +1,6 @@
-
-
{potato}
-{Math.max(1, 2)}
\ No newline at end of file
+{Math.max(1, 2)}
+
+{#each window.something as foo, i (foo.x + i)}
+ hello
+{/each}
diff --git a/test/validator/samples/undefined-value/warnings.json b/test/validator/samples/undefined-value/warnings.json
index c1813e6ab0..790f83acfd 100644
--- a/test/validator/samples/undefined-value/warnings.json
+++ b/test/validator/samples/undefined-value/warnings.json
@@ -1,15 +1,15 @@
[{
"code": "missing-declaration",
- "message": "'potato' is not defined",
- "pos": 67,
+ "message": "'potato' is not defined. Consider adding a