diff --git a/.babelrc b/.babelrc new file mode 100644 index 000000000..a1b6bb78c --- /dev/null +++ b/.babelrc @@ -0,0 +1,7 @@ +{ + "presets": ["es2015"], + "plugins": [ + "syntax-object-rest-spread", + "transform-object-rest-spread" + ] +} \ No newline at end of file diff --git a/.eleventy.js b/.eleventy.js deleted file mode 100644 index 7dac6a2a5..000000000 --- a/.eleventy.js +++ /dev/null @@ -1,209 +0,0 @@ -const lodashGet = require("lodash/get"); -const yaml = require("js-yaml"); -const { URL } = require("url"); - -module.exports = function (eleventyConfig) { - // Support yaml data files - eleventyConfig.addDataExtension("yaml", contents => yaml.safeLoad(contents)) - - eleventyConfig.addWatchTarget("src/site/survey/**/*.js"); - - // pass images directly through to the output - eleventyConfig.addPassthroughCopy("src/site/img"); - eleventyConfig.addPassthroughCopy({ - "src/js": "js", - "node_modules/@zachleat/filter-container/*.js": "js", - "src/css": "css", - }); - - // Date helper - const { DateTime } = require('luxon'); - eleventyConfig.addFilter('formatDate', (dateObj, formatStr) => { - // convert any date strings to read dates - if (typeof (dateObj) == "string") { - dateObj = new Date(dateObj); - } - const format = formatStr ? formatStr : 'LLLL d, y'; - return DateTime.fromJSDate(dateObj, { - zone: 'utc' - }).toFormat(format); - }); - - // A handy markdown shortcode for blocks of markdown - // coming from our data sources - const markdownIt = require('markdown-it'); - const md = new markdownIt({ - html: true - }); - eleventyConfig.addPairedShortcode('markdown', (content) => { - return md.render(content); - }); - - eleventyConfig.addFilter('absoluteUrl', (url, base) => { - return (new URL(url, base)).toString() || url - }) - - - eleventyConfig.addFilter('convertFromEpoc', (time) => { - let date = new Date(0); - return date.setUTCSeconds(time); - }); - - - eleventyConfig.addCollection("resources", function (collectionApi) { - return collectionApi.getFilteredByGlob("src/site/resources/*.md"); - }); - - - // Filter a collection based on items flagged as "featured" - eleventyConfig.addFilter('featured', (items) => { - return items.filter(item => item.data.featured); - }); - - // Filter a collection based on the value of a data attribute - eleventyConfig.addFilter('dataAttr', (items, attr, value) => { - return items.filter(item => item.data[attr] == value); - }); - - // Filter a collection based on the value of a data attribute - eleventyConfig.addFilter('whereData', (items, expression) => { - let key = expression.split('=')[0]; - let val = expression.split('=')[1]; - return items.filter(item => item.data[key] == val); - }); - - - - - // filter a data array based on the value of a property - eleventyConfig.addFilter('select', (array, clause) => { - if (clause.indexOf("=") > -1) { - const property = clause.split("=")[0]; - const value = clause.split("=")[1]; - return array.filter(item => lodashGet(item, property).includes(value)); - } else { - return array.map(item => lodashGet(item, clause)); - } - }); - - eleventyConfig.addFilter('flatten', (array) => { - let results = []; - for (let result of array) { - if (result) { - if (Array.isArray(result)) { - results = [...results, ...result]; - } else { - results.push(result); - } - } - } - return results; - }); - - eleventyConfig.addFilter('unique', (array) => { - let caseInsensitive = {}; - for (let val of array) { - if (typeof val === "string") { - caseInsensitive[val.toLowerCase()] = val; - } - } - return Object.values(caseInsensitive); - }); - - // Get a random selection of items from an array - eleventyConfig.addFilter('luckydip', (array, count) => { - if (count > array.length) { - count = array.length; - } - const shuffled = array.sort(() => 0.5 - Math.random()); - return shuffled.slice(0, count); - }); - - // Convert an associative array into an indexable, iterable array - eleventyConfig.addFilter('iterable', (obj) => { - var iterableArray = new Array(); - for (var item in obj) { - iterableArray.push(obj[item]); - } - return iterableArray; - }); - - // format a url for display - eleventyConfig.addFilter('domain', (str) => { - var url = new URL(str); - return url.hostname; - }); - - - // convert json to yaml - eleventyConfig.addFilter('dumpasyaml', obj => { - return yaml.safeDump(obj) - }); - - // sort an array of objects by one object key value - // can also get fancy and do a lodash.get selector string too - // see https://lodash.com/docs/4.17.15#get - eleventyConfig.addFilter('sortKey', (arr, selector) => { - return arr.sort((a, b) => { - let aKey = lodashGet(a, selector).toLowerCase(); - let bKey = lodashGet(b, selector).toLowerCase(); - if (aKey < bKey) { - return -1; - } else if (aKey > bKey) { - return 1; - } - return 0; - }); - }); - - eleventyConfig.addFilter('sortTools', (arr, githubData) => { - return arr.sort((a, b) => { - let aKey = githubData[a.data.repo] ? (githubData[a.data.repo].stars || 0) : 0; - let bKey = githubData[b.data.repo] ? (githubData[b.data.repo].stars || 0) : 0; - if (aKey < bKey) { - return 1; - } else if (aKey > bKey) { - return -1; - } - return 0; - }); - }); - - - // Format a path to avoid any Cloudinary URL API miss-steps. - eleventyConfig.addFilter("cloudinaryifyPath", (str) => { - - if (str) { - - // add generic url encoding - str = encodeURI(str); - - // we also need to double escape some characters which might appear in text - // but are meaningful in cloudinary URLs - str = str.replace(/,/g, '%252C'); - str = str.replace(/\//g, '%252F'); - - } - return str; - }); - - - - // favicons files - eleventyConfig.addPassthroughCopy("src/site/browserconfig.xml"); - eleventyConfig.addPassthroughCopy("src/site/site.webmanifest"); - eleventyConfig.addPassthroughCopy("src/site/survey/2021/community-survey-2021-methodology.pdf"); - eleventyConfig.addPassthroughCopy("src/site/survey/2022/community-survey-2022-methodology.pdf"); - - return { - dir: { - input: "src/site", - inludes: "_includes", - output: "dist" - }, - passthroughFileCopy: true, - markdownTemplateEngine: false, - htmlTemplateEngine: "njk" - }; - -}; diff --git a/.github/ISSUE_TEMPLATE/meetup.md b/.github/ISSUE_TEMPLATE/meetup.md deleted file mode 100644 index 005dfd739..000000000 --- a/.github/ISSUE_TEMPLATE/meetup.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -name: Start a meetup -about: Talk to us about starting an official Jamstack meetup -title: 'Starting a meetup group in [this beautiful city]' -labels: 'community: new' -assignees: 'philhawksworth' ---- - -You're interested in starting a Jamstack community in your area? -AMAZING! We're keen to help. 🥳 - - -Read this first 👉 [The Handbook](https://netlify.notion.site/Jamstack-Meetup-Handbook-42a5bf83e4eb4034bb485d81f5129cfb) - - -## Now that you've read the handbook, pease tell us: - -1. **The city or region for you new Jamstack Community**: `Jamsville, Australia` -1. **When you plan to hold your first event**: `January 1st` -1. **How regulalry you plan to meet**: `Every other month` -1. **How else we might be able to help**: `Connect us with potential speakers` -1. **Give us the link to your meetup page: `https://meetup.com/jamstack-{your meetup city}` - - - ---- - -After your issue has been submitted we will review it and contact you as quickly as we can. Thanks for your patience as we work through the requests. diff --git a/.github/workflows/scheduled-build.yml b/.github/workflows/scheduled-build.yml deleted file mode 100644 index b74d6797c..000000000 --- a/.github/workflows/scheduled-build.yml +++ /dev/null @@ -1,14 +0,0 @@ -# via https://www.voorhoede.nl/en/blog/scheduling-netlify-deploys-with-github-actions/ - -name: Scheduled build -on: - schedule: - - cron: '0 14 * * *' -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Trigger our build webhook on Netlify - run: curl -s -X POST "https://api.netlify.com/build_hooks/${TOKEN}" - env: - TOKEN: ${{ secrets.NETLIFY_CRON_BUILD_HOOK }} diff --git a/.gitignore b/.gitignore index 6d3253786..4c2706270 100644 --- a/.gitignore +++ b/.gitignore @@ -1,21 +1,5 @@ -# dependecies installed by npm -node_modules -package-lock.json -yarn.lock - -# build artefacts -dist - -# macOS related files +dist/ .DS_Store -.AppleDouble -.LSOverride - -# Local Netlify folder -.netlify - -# Eleventy Assets -.cache - -# Environment variables -.env +node_modules +npm-debug.log +.gitignore \ No newline at end of file diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000..ceeec5689 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v10.13.0 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..1e6b84156 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,74 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at david@netlify.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..df506209b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,12 @@ +# CONTRIBUTING + +Contributions are always welcome, no matter how large or small. Before contributing, +please read the [code of conduct](CODE_OF_CONDUCT.md). + +## Pull Requests +We actively welcome your pull requests! + +## License + +By contributing to jamstack.org, you agree that your contributions will be licensed +under its [MIT license](LICENSE). diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..f82e387fb --- /dev/null +++ b/LICENSE @@ -0,0 +1,23 @@ +Copyright (c) 2016 Netlify + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 7be0cd5b1..8866af195 --- a/README.md +++ b/README.md @@ -1,89 +1,47 @@ -# Jamstack +# JAMstack -This is the repo for https://jamstack.org +This is the small start of something. The JAMstack homepage with a few lines about the concepts and the philosophy. -An entry-point for learning about this architectural model. A place to learn what Jamstack is, for sharing tools, tips, examples and articles. This is also a place to find a local community meetup, or to seek support in starting one of your own. +Over time this will hopefully grow into a useful entry-point for learning about this new stack, sharing tools, tips and best practices as well as spreading the word. +## Usage -## Contributing resources +Be sure that you have the latest node, yarn, and [Hugo](https://gohugo.io/) installed. If you need to install hugo, run: -We've collected a set of videos, presentations, articles and other learning resources about Jamstack. You can contribute content to that pool of resources! - -We accept contributions submitted as [pull requests](https://github.com/jamstack/jamstack.org/pulls). - -### Contribute links to resources - -To contribute a link to a resource: - -1. Create a new md file in the [`src/site/resources`](src/site/resources) folder with a unique and descriptive name. Populate that file according to the structure shown below. -1. For presentations and video, add an optional thumbnail image to the [`src/site/img/cms`](src/site/img/cms) folder. (Image should be a jpeg 600px wide and 400px tall) -1. Submit a pull request - -_resource md reference:_ -```yaml ---- -title: Resource title -date: Publish date (YYYY-MM-DD) -link: the URL of this resource -thumbnailurl: /img/cms/resources/resource-thumbnail.jpg -type: - - article (Help us group and sort the resources by type article|video|presentation) ---- +```bash +brew install hugo ``` -Before submitting a pull request, or if you are suggesting/contributing code or content changes, it is wise to preview your change in a local build. We've tried to make the process of running a local build as low as possible. - - -## Running a local build - -### Prerequisites - -- [Node and NPM](https://nodejs.org/) - - -### Installing and running the build +Next, clone this repository and run: ```bash -# Clone this repository to your local environment -git clone git@github.com:jamstack/jamstack.org.git - -# move in to your local site folder -cd jamstack.org - -# install the dependencies -npm install - -# run the build and dev server locally -npm start +yarn +yarn start ``` +Then visit http://localhost:3000/ - BrowserSync will automatically reload CSS or +refresh the page when stylesheets or content changes. -## Styling with TailwindCSS - -This site uses [TailwindCSS](https://tailwindcss.com) to offer utility CSS classes and provide a rapid means to styling the site. This means that most styling can be done without writing any additional CSS. Instead, utility classes can be added directly to the HTML. This can provide some very rapid development and also offer surprising levels of familiarity for those used to working in this way (since the conventions and classes are not _per site_.) - -While running/developing locally, the `npm run start` command will generate the site including the CSS pipeline from Tailwind. - -### Global CSS utilities. +To build your static output to the `/dist` folder, use: -A small number of bespoke CSS rules are provided for efficiency of repeated or global classes. These reside in `src/css/tailwind.css` but these should be used sparingly, with most styling taking place in the HTML via Tailwind's utility classes. +```bash +yarn build +``` -### Dev vs prod +## Contribute Resources (Videos & Articles) -During a production build, the CSS pipeline includes a step to remove all unused CSS statements and compress the resultant CSS. For development efficiency, this step is not performed during local development via the `npm run start` command. You can preview an optimised production build by running these commands: +To contribute resources to the JAMstack community, simply clone this branch and edit the `resources.yaml` in the `/site/data` directory. Just add another item (following the the prexisting syntax) and submit a pull request. If you are adding a video resource, please upload a thumbnail of the video to the `/img/videos` directory (image should be a jpeg 600px wide and 400px tall) before submitting your pull request. We will review these regularly and likely merge the addition shortly. -```bash +## Contribute Examples -# Run a production build -npm run build - -# Serve the build locally -npm run start -``` +To contribute examples to the JAMstack community, simply clone this branch and edit the `examples.yaml` in the `/site/data` directory. Just add another item (following the the prexisting syntax). Lastly, upload a thumbnail of the site to the `/img/examples` directory (image should be a jpeg 596px wide and 396px tall) and submit a pull request. We will review these regularly and likely merge the addition shortly. -## One-click clone and deploy +## Contribute Events -You can clone this repository and bootstrap it as a test site of your own, complete with the CI/CD build pipeline on [Netlify](https://netlify.com?utm_source=github&utm_medium=jamstackorg-pnh&utm_campaign=devex) by clicking the button below. (Requires free GitHub and Netlify accounts) +To contribute events to the JAMstack community, we recommend just adding the event to your meetup and let our logic do the rest. If the event is outside of a meetup (like a conference), please manually submit it using the short guide below: -[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/jamstack/jamstack.org) +1. Clone this branch and edit the `events.yaml` in the `/site/data` directory +2. Add your event (following the the prexisting syntax) +3. Submit a pull request +*We will review these regularly and likely merge the addition shortly. diff --git a/config/variables.js b/config/variables.js new file mode 100644 index 000000000..624c84e36 --- /dev/null +++ b/config/variables.js @@ -0,0 +1,42 @@ +// if you change these you must restart the server + +module.exports = { + + // colors + lighterGrey: '#F7F8F8', + lightGrey: '#F6F6F6', + grey: '#313D3E', + orange: '#F69200', + blue: '#4D9ABF', + green: '#00C7B7', + red: '#FB6D77', + meetupred: '#ED1C40', + + // typography + regular: 400, + semibold: 500, + bold: 700, + black: 900, + + // fonts + roboto: "'Roboto', -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif", + leitura: "'leitura', serif", + + // padding + micro: '8px', + tiny: '16px', + small: '24px', + medium: '40px', + large: '64px', + xl: '104px', + xxl: '168px', + + // border radius + borderRadius: '4px', + + // responsive breakpoints + mobile: '480px', + tablet: '768px', + desktop: '960px', + display: '1200px' +} diff --git a/gulpfile.babel.js b/gulpfile.babel.js new file mode 100755 index 000000000..cf11eed91 --- /dev/null +++ b/gulpfile.babel.js @@ -0,0 +1,94 @@ +import gulp from "gulp"; +import cp from "child_process"; +import gutil from "gulp-util"; +import postcss from "gulp-postcss"; +import cssImport from "postcss-import"; +import neatgrid from "postcss-neat"; +import nestedcss from "postcss-nested"; +import colorfunctions from "postcss-color-function"; +import hdBackgrounds from "postcss-at2x"; +import cssvars from "postcss-simple-vars-async"; +import cssextend from "postcss-simple-extend"; +import styleVariables from "./config/variables"; +import BrowserSync from "browser-sync"; +import webpack from "webpack"; +import webpackConfig from "./webpack.conf"; + +const browserSync = BrowserSync.create(); +const hugoBin = "hugo"; +const defaultArgs = ["-d", "../dist", "-s", "site", "-v"]; +const DEST = "./dist/"; + +gulp.task("hugo", (cb) => buildSite(cb)); +gulp.task("hugo-preview", (cb) => buildSite(cb, ["--buildDrafts", "--buildFuture"])); + +gulp.task("build", ["css", "js", "fonts", "images", "hugo"]); +gulp.task("build-preview", ["css", "js", "fonts", "images", "hugo-preview"]); + +gulp.task("css", () => ( + gulp.src("./src/css/*.css") + .pipe(postcss([ + cssImport({from: "./src/css/main.css"}), + neatgrid(), + nestedcss(), + colorfunctions(), + hdBackgrounds(), + cssextend(), + cssvars({variables: styleVariables})])) + .pipe(gulp.dest(DEST+"css")) + .pipe(browserSync.stream()) +)); + +gulp.task("js", (cb) => { + const myConfig = Object.assign({}, webpackConfig); + + webpack(myConfig, (err, stats) => { + if (err) throw new gutil.PluginError("webpack", err); + gutil.log("[webpack]", stats.toString({ + colors: true, + progress: true + })); + browserSync.reload(); + cb(); + }); +}); + +gulp.task("fonts", () => ( + gulp.src("./src/fonts/**/*") + .pipe(gulp.dest(DEST+"fonts")) + .pipe(browserSync.stream()) +)); + +gulp.task("images", () => ( + gulp.src("./src/img/**/*") + .pipe(gulp.dest(DEST+"img")) + .pipe(browserSync.stream()) +)); + +gulp.task("server", ["hugo", "css", "js", "fonts", "images"], () => { + browserSync.init({ + server: { + baseDir: "./dist" + }, + notify: false + }); + gulp.watch("./src/js/**/*.js", ["js"]); + gulp.watch("./src/css/**/*.css", ["css"]); + gulp.watch("./src/img/**/*", ["images"]); + gulp.watch("./src/fonts/**/*", ["fonts"]); + gulp.watch("./site/**/*", ["hugo"]); +}); + +function buildSite(cb, options) { + const args = options ? defaultArgs.concat(options) : defaultArgs; + + return cp.spawn(hugoBin, args, {stdio: "inherit"}).on("close", (code) => { + if (code === 0) { + browserSync.reload(); + cb(); + } else { + browserSync.notify("Hugo build failed :("); + cb("Hugo build failed"); + } + }); +} diff --git a/netlify.toml b/netlify.toml old mode 100644 new mode 100755 index 15cd02e51..3471397bb --- a/netlify.toml +++ b/netlify.toml @@ -1,86 +1,6 @@ [build] - command = "npm run build" + command = "yarn build" publish = "dist" -[build.environment] - NODE_VERSION = "22.17.1" - NODE_ENV = "production" - -[dev] - command = "npm run start" - publish = "dist" - -[[redirects]] - from = "/conference" - to = "/conf" - status = 301 - -[[redirects]] - from = "/conf" - to = "https://jamstackconf.com/conf/" - status = 200 - - -[[redirects]] - from = "/conf/*" - to = "https://jamstackconf.com/conf/:splat" - status = 200 - -[[redirects]] - from = "/best-practices" - to = "/resources" - status = 301 - -[[redirects]] - from = "/diversity" - to = "/code-of-conduct" - status = 301 - -[[redirects]] - from = "/benefits" - to = "/why-jamstack" - status = 301 - -[[redirects]] - from = "/img/og/glossary/:term/:summary" - to = "https://res.cloudinary.com/netlify/image/fetch/c_fit,l_text:Roboto_56_bold::term,co_rgb:FFFFFF,g_north_west,y_75,x_100,w_1000/c_fit,l_text:Roboto_38_light::summary,co_rgb:FFFFFF,g_north_west,y_200,x_160,w_885/https://jamstack.org/img/og/glossary-card-bg.png" - status = 200 - -[[redirects]] - from = "/glossary/*" - to = "/glossary/contribute/index.html" - status = 404 - -[[redirects]] - from = "/headless-cms/keystone-5/" - to = "/headless-cms/keystone/" - status = 301 - -[[redirects]] - from = "/headless-cms/graphcms/" - to = "/headless-cms/hygraph/" - status = 301 - -[[redirects]] - from = "/survey/" - to = "/survey/2022/" - status = 302 - -[[redirects]] - from = "/survey/2020/" - to = "https://www.netlify.com/blog/2020/05/27/state-of-the-jamstack-survey-2020-first-results/" - status = 301 - -[[redirects]] - from = "/headless-cms/netlify-cms/" - to = "/headless-cms/decap-cms/" - status = 301 - -[[redirects]] - from = "/discord" - to = "https://answers.netlify.com/" - status = 302 - -[[plugins]] - package = "./plugins/keep-dot-cache-folder" - +[context.deploy-preview] + command = "yarn build-preview" diff --git a/package.json b/package.json old mode 100644 new mode 100755 index 657cbc4e8..e1862e151 --- a/package.json +++ b/package.json @@ -1,49 +1,51 @@ { - "name": "jamstackdotorg", - "version": "2.0.0", - "description": "Home page for the Jamstack community", - "author": "Phil Hawksworth", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/jamstack/jamstack.org" - }, - "engines": { - "node": ">=22" - }, + "name": "victor-hugo", + "version": "1.0.0", + "description": "Victor Hugo is a Hugo boilerplate for creating truly epic websites!", + "main": "index.js", "scripts": { - "build": "npm-run-all build:html build:css", - "build:html": "eleventy", - "build:css": "postcss src/css/tailwind.css -o dist/css/styles.css", - "watch:html": "ELEVENTY_ENV=dev eleventy --serve --port=8080 --quiet", - "watch:css": "postcss src/css/tailwind.css -o dist/css/styles.css --watch", - "start": "npm-run-all --parallel watch:html watch:css", - "clean": "rm -rf dist" + "hugo": "gulp hugo", + "webpack": "gulp webpack", + "build": "gulp build", + "build-preview": "gulp build-preview", + "start": "gulp server", + "lint": "eslint src" }, + "author": "", + "license": "MIT", "dependencies": { - "@11ty/eleventy": "^1.0.0", - "@11ty/eleventy-cache-assets": "^2.1.0", - "@zachleat/filter-container": "^1.0.3", - "autoprefixer": "^10.2.5", - "cssnano": "^4.1.10", - "d3": "^7.1.1", - "d3-textwrap": "^3.0.0", - "dotenv": "^8.2.0", - "fast-glob": "^3.2.5", - "gray-matter": "^4.0.2", - "i18n-iso-countries": "^6.5.0", - "js-yaml": "^3.14.0", - "lodash": "^4.17.21", - "luxon": "^1.26.0", - "markdown-it": "^12.0.4", - "netlify-plugin-minify-html": "^0.3.1", - "node-fetch": "^2.6.1", - "npm-run-all": "^4.1.5", - "placename": "^1.1.2", - "postcss": "^8.2.8", - "postcss-cli": "^8.3.1", - "postcss-import": "^13.0.0", - "spdx-correct": "^3.1.1", - "tailwindcss": "^3.1.8" + "autoprefixer": "^6.3.7", + "babel-eslint": "^6.1.2", + "babel-loader": "^6.2.4", + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "babel-plugin-transform-class-properties": "^6.10.2", + "babel-plugin-transform-object-assign": "^6.8.0", + "babel-plugin-transform-object-rest-spread": "^6.8.0", + "babel-preset-es2015": "^6.9.0", + "babel-register": "^6.11.6", + "browser-sync": "^2.13.0", + "css-loader": "^0.23.1", + "eslint": "^3.1.1", + "eslint-plugin-import": "^1.11.1", + "exports-loader": "^0.6.3", + "file-loader": "^0.9.0", + "gulp": "^3.9.1", + "gulp-babel": "^6.1.2", + "gulp-postcss": "^6.1.1", + "gulp-util": "^3.0.7", + "imports-loader": "^0.6.5", + "postcss-at2x": "^2.0.0", + "postcss-color-function": "^3.0.0", + "postcss-cssnext": "^2.7.0", + "postcss-import": "^8.1.2", + "postcss-loader": "^0.9.1", + "postcss-neat": "^2.5.2", + "postcss-nested": "^1.0.0", + "postcss-simple-extend": "^1.0.0", + "postcss-simple-vars-async": "^1.2.1", + "url-loader": "^0.5.7", + "webpack": "^1.13.1", + "whatwg-fetch": "^1.0.0", + "yamljs": "^0.2.8" } } diff --git a/plugins/keep-dot-cache-folder/index.js b/plugins/keep-dot-cache-folder/index.js deleted file mode 100644 index 5b7056114..000000000 --- a/plugins/keep-dot-cache-folder/index.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = { - // Restore file/directory cached in previous builds. - // Does not do anything if: - // - the file/directory already exists locally - // - the file/directory has not been cached yet - async onPreBuild({ utils }) { - await utils.cache.restore('./.cache'); - }, - // Cache file/directory for future builds. - // Does not do anything if: - // - the file/directory does not exist locally - async onPostBuild({ utils }) { - await utils.cache.save('./.cache'); - } -}; \ No newline at end of file diff --git a/plugins/keep-dot-cache-folder/manifest.yml b/plugins/keep-dot-cache-folder/manifest.yml deleted file mode 100644 index 59d33520c..000000000 --- a/plugins/keep-dot-cache-folder/manifest.yml +++ /dev/null @@ -1 +0,0 @@ -name: keep-dot-cache-folder \ No newline at end of file diff --git a/postcss.config.js b/postcss.config.js deleted file mode 100644 index 2c0018b60..000000000 --- a/postcss.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - plugins: [ - require("postcss-import"), - require('tailwindcss'), - require('autoprefixer'), - ] -}; diff --git a/site/config.yaml b/site/config.yaml new file mode 100755 index 000000000..9c2527796 --- /dev/null +++ b/site/config.yaml @@ -0,0 +1,7 @@ +baseurl: DEPLOY_PRIME_URL +languageCode: "en-us" +title: "JAMstack | JavaScript, APIs, and Markup" +disableKinds: ["404"] +metaDataFormat: "yaml" + +publishDir: "dist" \ No newline at end of file diff --git a/src/site/_includes/slack-tout.njk b/site/content/.keep old mode 100644 new mode 100755 similarity index 100% rename from src/site/_includes/slack-tout.njk rename to site/content/.keep diff --git a/site/content/best-practices.md b/site/content/best-practices.md new file mode 100644 index 000000000..19b2b6fe9 --- /dev/null +++ b/site/content/best-practices.md @@ -0,0 +1,6 @@ +--- +type: page +title: Best Practices +url: "/best-practices/" +layout: best-practices +--- \ No newline at end of file diff --git a/site/content/community.md b/site/content/community.md new file mode 100644 index 000000000..6eaacc408 --- /dev/null +++ b/site/content/community.md @@ -0,0 +1,6 @@ +--- +type: page +title: Community +url: "/community/" +layout: "community" +--- \ No newline at end of file diff --git a/site/content/examples.md b/site/content/examples.md new file mode 100644 index 000000000..170ced347 --- /dev/null +++ b/site/content/examples.md @@ -0,0 +1,6 @@ +--- +type: page +title: Examples +url: "/examples/" +layout: "examples" +--- \ No newline at end of file diff --git a/site/content/resources.md b/site/content/resources.md new file mode 100644 index 000000000..25510c197 --- /dev/null +++ b/site/content/resources.md @@ -0,0 +1,6 @@ +--- +type: page +title: Resources +url: "/resources/" +layout: "resources" +--- \ No newline at end of file diff --git a/site/data/.keep b/site/data/.keep new file mode 100755 index 000000000..e69de29bb diff --git a/site/data/bestpractices.yaml b/site/data/bestpractices.yaml new file mode 100644 index 000000000..779b160b3 --- /dev/null +++ b/site/data/bestpractices.yaml @@ -0,0 +1,15 @@ +--- +bestpractices: + - title: Entire Project on a CDN + description: Because JAMstack projects don’t rely on server-side code, they can be distributed instead of living on a single server. Serving directly from a CDN unlocks speeds and performance that can't be beat. The more of your app you can push to the edge, the better the user experience. + - title: Everything Lives in Git + description: With a JAMstack project, anyone should be able to do a `git clone`, install any needed dependencies with a standard procedure (like `npm install`), and be ready to run the full project locally. No databases to clone, no complex installs. This reduces contributor friction, and also simplifies staging and testing workflows. + - title: Modern Build Tools + description: Take advantage of the world of modern build tools. It can be a jungle to get oriented in and it's a fast moving space, but you'll want to be able to use tomorrow's web standards today without waiting for tomorrow's browsers. And that currently means Babel, PostCSS, Webpack, and friends. + - title: Automated Builds + description: Because JAMstack markup is prebuilt, content changes won’t go live until you run another build. Automating this process will save you lots of frustration. You can do this yourself with webhooks, or use a publishing platform that includes the service automatically. + - title: Atomic Deploys + description: As JAMstack projects grow really large, new changes might require re-deploying hundreds of files. Uploading these one at a time can cause inconsistent state while the process completes. You can avoid this with a system that lets you do "atomic deploys," where no changes go live until all changed files have been uploaded. + - title: Instant Cache Invalidation + description: When the build-to-deploy cycle becomes a regular occurrence, you need to know that when a deploy goes live, it really goes live. Eliminate any doubt by making sure your CDN can handle instant cache purges. +--- diff --git a/site/data/community.yaml b/site/data/community.yaml new file mode 100644 index 000000000..b67487bd9 --- /dev/null +++ b/site/data/community.yaml @@ -0,0 +1,79 @@ +chapters: + - name: JAMstack San Francisco + artpath: /img/chapters/sf-art.svg + btncopy: Join Now + link: https://www.meetup.com/jamstack-sf/ + - name: JAMstack Austin + artpath: /img/chapters/austin-art.svg + btncopy: Join Now + link: https://www.meetup.com/JAMstack-Austin/ + - name: JAMstack Boston + artpath: /img/chapters/boston-art.svg + btncopy: Join Now + link: https://www.meetup.com/JAMstack-Boston/ + - name: JAMstack Porto + artpath: /img/chapters/porto-art.svg + btncopy: Join Now + link: https://www.meetup.com/JAMstack-Porto/ + - name: JAMstack Oklahoma City + artpath: /img/chapters/okc-art.svg + btncopy: Join Now + link: https://www.meetup.com/JAMstack-OKC/ + - name: JAMstack NYC + artpath: /img/chapters/nyc-art.svg + btncopy: Join Now + link: https://www.meetup.com/JAMstack-nyc/ + - name: JAMstack London + artpath: /img/chapters/london-art.svg + btncopy: Join Now + link: https://www.meetup.com/JAMstack-London/ + - name: JAMstack Berlin + artpath: /img/chapters/berlin-illo.svg + btncopy: Join Now + link: https://www.meetup.com/JAMstack-Berlin/ + - name: JAMstack Toulouse + artpath: /img/chapters/toulouse-illo.svg + btncopy: Join Now + link: https://www.meetup.com/JAMstack-Toulouse/ + - name: JAMstack Wrocław + artpath: /img/chapters/wroclaw-illo.svg + btncopy: Join Now + link: https://www.meetup.com/JAMStack-Wroclaw/ + - name: JAMstack Portland + artpath: /img/chapters/portland-art.svg + btncopy: Join Now + link: https://www.meetup.com/JAMstack-Portland/ + - name: JAMstack Hamburg + artpath: /img/chapters/hamburg-art.svg + btncopy: Join Now + link: https://www.meetup.com/JAMstack-Hamburg/ + - name: JAMstack Bengaluru + artpath: /img/chapters/bengaluru-art.svg + btncopy: Join Now + link: https://www.meetup.com/JAMstack-Bengaluru/ + - name: JAMstack Paris + artpath: /img/chapters/paris-art.svg + btncopy: Join Now + link: https://www.meetup.com/fr-FR/JAMstack-paris/events/256464233/ + - name: JAMstack Seattle + artpath: /img/chapters/seattle-art.svg + btncopy: Join Now + link: https://www.meetup.com/jamstack-seattle/ + - name: JAMstack Tokyo + artpath: /img/chapters/tokyo-art.svg + btncopy: Join Now + link: https://jamstack-tokyo.connpass.com/ + - name: JAMstack Lisbon + artpath: /img/chapters/lisbon-art.svg + btncopy: Join Now + link: https://www.meetup.com/JAMstack-Lisbon/ + +gitterurl: https://gitter.im/jamstack/community + +bottomcta: + artpath: /img/chapters/meetup-map.svg + headline: Start a JAMstack Meetup + ctacopy: Contact Us + ctalink: mailto:community@netlify.com +--- + diff --git a/site/data/definitions.yaml b/site/data/definitions.yaml new file mode 100644 index 000000000..b212d3b32 --- /dev/null +++ b/site/data/definitions.yaml @@ -0,0 +1,23 @@ +--- +jamstack: "**JAMstack**: noun \’jam-stak’\
Modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup." +explanation: When we talk about "The Stack," we no longer talk about operating systems, specific web servers, backend programming languages, or databases.

The JAMstack is not about specific technologies. It's a new way of building websites and apps that delivers better performance, higher security, lower cost of scaling, and a better developer experience. + +javascript: "Any dynamic programming during the request/response cycle is handled by JavaScript, running entirely on the client. This could be any frontend framework, library, or even vanilla JavaScript." +apis: "All server-side processes or database actions are abstracted into reusable APIs, accessed over HTTPS with JavaScript. These can be custom-built or leverage third-party services." +markup: "Templated markup should be prebuilt at deploy time, usually using a site generator for content sites, or a build tool for web apps.

[Want to see some examples?](/examples)" + +disqualifications: + - disqualification: A site built with a server-side CMS like WordPress, Drupal, Joomla, or Squarespace. + - disqualification: A monolithic server-run web app that relies on Ruby, Node, or another backend language. + - disqualification: A single page app that uses isomorphic rendering to build views on the server at runtime. + +advantages: + - advantage: Better Performance + description: Why wait for pages to build on the fly when you can generate them at deploy time? When it comes to minimizing the time to first byte, nothing beats pre-built files served over a CDN. + - advantage: Higher Security + description: With server-side processes abstracted into microservice APIs, surface areas for attacks are reduced. You can also leverage the domain expertise of specialist third-party services. + - advantage: Cheaper, Easier Scaling + description: When your deployment amounts to a stack of files that can be served anywhere, scaling is a matter of serving those files in more places. CDNs are perfect for this, and often include scaling in all of their plans. + - advantage: Better Developer Experience + description: Loose coupling and separation of controls allow for more targeted development and debugging, and the expanding selection of CMS options for site generators remove the need to maintain a separate stack for content and marketing. +--- diff --git a/site/data/events.yaml b/site/data/events.yaml new file mode 100644 index 000000000..0c8048b25 --- /dev/null +++ b/site/data/events.yaml @@ -0,0 +1,9 @@ +--- +events: + # - title: "This is an manually entered event example." + # description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque consectetur, sapien eget mattis egestas."" + # date: 2020-10-10 + # time: 8:00 PM + # location: The Moon + # link: https://www.youreventsitelink.com +--- diff --git a/site/data/examples.yaml b/site/data/examples.yaml new file mode 100644 index 000000000..114770a31 --- /dev/null +++ b/site/data/examples.yaml @@ -0,0 +1,311 @@ +--- +examples: + - title: PSD Wizard + description: On-demand Front-End Coding Service + link: https://psdwizard.com + thumbnailurl: /img/examples/psdwizard.png + tools: + - tool: Netlify + - tool: React-Static + - tool: Netlify CMS + - tool: Webpack + - tool: Bootstrap + - tool: Sass + - tool: Github + - title: Fullstack HQ + description: Web Design & Development Team in the Philippines + link: https://fullstackhq.com + thumbnailurl: /img/examples/fullstackhq.jpg + tools: + - tool: Netlify + - tool: React-Static + - tool: Netlify CMS + - tool: Webpack + - tool: Bootstrap + - tool: Sass + - tool: Github + - title: William Oliveira Blog + description: A blog about software development, career, communities and more. + link: https://woliveiras.com.br/ + thumbnailurl: /img/examples/william-oliveira.png + tools: + - tool: Jekyll + - tool: GitHub Pages + - tool: Cloudflare + - tool: Disqus + - tool: Sass + - title: cState + description: Hugo status page. Fast, IE8+, and customizable. + link: https://github.com/mistermantas/cstate + thumbnailurl: /img/examples/cstate.jpg + tools: + - tool: Netlify + - tool: Hugo + - tool: Netlify CMS + - tool: GitHub + - tool: Vanilla JS & CSS + - tool: Google Analytics + - tool: Git + - title: Compare Ali + description: Curated brand-name clothing on Ali Express. + link: https://compareali.com + thumbnailurl: /img/examples/compareali.jpg + tools: + - tool: Netlify + - tool: Metalsmith + - tool: Prismic.io + - tool: Webpack + - title: Fabuwood Cabinetry + description: Fabuwood Cabinetry official website. + link: https://www.fabuwood.com + thumbnailurl: /img/examples/fabuwood.jpg + tools: + - tool: Metalsmith + - tool: Webpack + - tool: Prismic.io + - tool: Netlify + - tool: Browser Sync + - title: City of Boston - Budget Site + description: Executive summary of the City of Boston’s fiscal year 2018 recommended budget. + link: https://budget.boston.gov + thumbnailurl: /img/examples/boston-budget.jpg + tools: + - tool: Jekyll + - tool: Gulp + - tool: Chart.js + - title: Skcript + description: We build Artificial Intelligence powered products for today’s businesses. + link: https://www.skcript.com/ + thumbnailurl: /img/examples/skcript.jpg + tools: + - tool: Middleman + - tool: Gulp + - tool: GitHub + - tool: Sass + - tool: Service Workers + - tool: S3 + - tool: Progressive Web App + - tool: Google Analytics + - title: DUSK + description: DUSK is a creative collective agency for web design, development, strategy & branding built on jekyll using the JAMstack and Netlify CMS for content management. + link: https://www.justdusk.com + thumbnailurl: /img/examples/dusk.jpg + tools: + - tool: Jekyll + - tool: GitHub + - tool: Netlify + - tool: Sass + - tool: npm + - tool: Google Analytics + - title: Sequoia Capital + description: Sequoia Capital help the daring build legendary companies. + link: https://www.sequoiacap.com/ + thumbnailurl: /img/examples/sequoia.jpg + tools: + - tool: Middleman + - tool: jQuery + - tool: Sass + - tool: Contentful + - tool: fuse.js + - tool: GitHub + - tool: Netlify + - tool: Google Analytics + - title: Carrot Creative + description: Creative, technology, and distribution under one roof. Carrot is the full-service digital agency within VICE. + link: https://carrot.is/ + thumbnailurl: /img/examples/carrot.jpg + tools: + - tool: Roots + - tool: Vue + - tool: Stylus + - tool: Coffeescript + - tool: Jade (Pug) + - tool: Contentful + - tool: Internal APIs + - tool: Spike + - tool: GitHub + - tool: Netlify + - tool: Google Analytics + - title: Sphero + description: Sphero fuses physical robotic toys, digital apps, and entertainment experiences to unlock the true potential of play and inspire tomorrow’s creators. + link: http://www.sphero.com/ + thumbnailurl: /img/examples/sphero.jpg + tools: + - tool: Angular + - tool: Jekyll + - tool: Grunt + - tool: Contentful + - tool: Vero API + - tool: Sass + - tool: GitHub + - tool: Netlify + - title: Lodash + description: A JavaScript utility library delivering consistency, modularity, performance, & extras. + link: https://lodash.com/ + thumbnailurl: /img/examples/lodash.jpg + tools: + - tool: Grunt + - tool: Babel + - tool: Jekyll + - tool: React + - tool: Sass + - tool: GitHub + - tool: Netlify + - title: Serverless + description: Serverless Application Framework powered by AWS Lambda, Microsoft Azure, Google Cloud Platform, and IBM OpenWhisk + link: http://www.serverless.com/ + thumbnailurl: /img/examples/serverless.jpg + tools: + - tool: Webpack + - tool: Babel + - tool: Phenomic + - tool: React + - tool: CSS modules + - tool: PostCSS + - tool: Disqus + - tool: Auth0 + - tool: GitHub + - tool: Netlify + - title: MarvelSearch + description: Lightning fast search into all superheroes of the Marvel universe + link: https://community.algolia.com/marvel-search/ + thumbnailurl: /img/examples/marvel-search.jpg + tools: + - tool: Brunch + - tool: Babel + - tool: GitHub Pages + - tool: Algolia + - tool: Cloudinary + - tool: instantsearch.js + - tool: Sass (SCSS) + - title: Julian Gaviria + description: Front-end development and design blog with a focus on web performance, testing, and the modern web. + link: https://julian.is + thumbnailurl: /img/examples/julian.jpg + tools: + - tool: Jekyll + - tool: Grunt + - tool: CloudFlare + - tool: Sass + - tool: Critical CSS + - tool: GitHub + - tool: Service Workers + - tool: Web App Manifest + - title: Digital Continuum + description: A knowledge base that documents how organizations can optimize all aspects of their digital value delivery at the enterprise level. + link: https://www.digitalcontinuum.com/ + thumbnailurl: /img/examples/digital-continuum.jpg + tools: + - tool: Hexo + - tool: Contentful + - tool: Sass + - tool: Google Analytics + - tool: Algolia + - tool: Netlify + - title: Universal Mind + description: A digital solutions agency focused on services from innovation and design through development + link: http://www.universalmind.com/ + thumbnailurl: /img/examples/universalmind.jpg + tools: + - tool: Hexo + - tool: Contentful + - tool: Sass + - tool: S3 + - tool: Google Analytics + - tool: Algolia + - tool: Netlify + - title: Hyper Static + description: Prescriptive marketing agency with an exclusive focus on Hugo and Static Site Generators + link: https://www.gohyperstatic.com + thumbnailurl: /img/examples/hyperstatic.png + tools: + - tool: Hugo + - tool: WebPack 2 + - tool: CloudFlare + - tool: Babel + - tool: Critical CSS + - tool: Gitlab + - tool: PostCSS + - tool: Disqus + - tool: Netlify + - title: CiTA + description: Creative Internet Technology Agency + link: https://www.cita.hr + thumbnailurl: /img/examples/cita.png + tools: + - tool: Sass + - tool: WebPack 2 + - tool: Gulp + - tool: Critical CSS + - tool: Bitbucket + - tool: Netlify + - title: Silvestar Bistrović + description: SB - Silvestar's personal website + link: https://www.silvestarbistrovic.from.hr + thumbnailurl: /img/examples/silvestarbistrovic.png + tools: + - tool: Hexo + - tool: Sass + - tool: Gulp + - tool: Critical CSS + - tool: Bitbucket + - tool: Netlify + - tool: Cloudinary + - title: Han Han Xue + description: https://hanhanxue.com/info/ + link: https://hanhanxue.com + thumbnailurl: /img/examples/hanhanxue.png + tools: + - tool: Middleman + - tool: Sass + - tool: Gulp + - tool: Critical CSS + - tool: Bitbucket + - tool: Netlify + - title: Psykose | bipolar + description: A website for TIPS Sør-Øst with support and advice about mental disorders + link: https://psykose-bipolar.no + thumbnailurl: /img/examples/psykose-bipolar.png + tools: + - tool: Metalsmith + - tool: Contentful + - tool: GitHub + - tool: Travis + - tool: Firebase + - tool: Handlebars + - title: Story Breeding + description: Combines stories for inspiration. + link: http://storybreeding.surge.sh + thumbnailurl: /img/examples/story-breeding.png + tools: + - tool: Gulp + - tool: Sass + - tool: Surge + - tool: GitHub + - tool: Jasonbase + - tool: Coinhive + - tool: Critical CSS + - tool: Google style deferring script + - title: VAS + description: VAS - At the heart of your dairy + link: http://web.vas.com/ + thumbnailurl: /img/examples/vas.png + tools: + - tool: Roots + - tool: Stylus + - tool: Coffeescript + - tool: Jade (Pug) + - tool: Contentful + - tool: GitHub + - tool: Netlify + - tool: Google Analytics + - title: Adaptive Programmer + description: Learn. Build. Adapt. Thrive. + link: http://adaptiveprogrammer.com/ + thumbnailurl: /img/examples/adaptiveprogrammer.jpg + tools: + - tool: Hugo + - tool: Git + - tool: Netlify + - tool: Disqus +--- diff --git a/site/data/resources.yaml b/site/data/resources.yaml new file mode 100644 index 000000000..3fe2ee234 --- /dev/null +++ b/site/data/resources.yaml @@ -0,0 +1,34 @@ +--- +articles: + - title: How to Build a JAMstack Website + link: https://cosmicjs.com/blog/how-to-build-a-jamstack-website + - title: A JAMstack-ready CMS + link: https://www.contentful.com/r/knowledgebase/jamstack-cms/ + - title: Isomorphic Rendering on the JAMstack + link: https://www.hawksworx.com/blog/isomorphic-rendering-on-the-jam-stack/ + - title: Dynamic product management in a static e-commerce workflow + link: https://www.contentful.com/blog/2016/02/10/snipcart-middleman-contentful + - title: "JAMstack for Clients: On Benefits & Static Site CMS" + link: https://snipcart.com/blog/jamstack-clients-static-site-cms + - title: "Go static: 5 reasons to try JAMstack on your next project" + link: https://builtvisible.com/go-static-try-jamstack/ + - title: "Zero to HTTP/2 with AWS and Hugo" + description: A step-by-step guide to creating your own JAMstack site using Amazon Web Services and the Hugo static site generator. + link: https://habd.as/zero-to-http-2-aws-hugo/ + - title: "Static Websites + JAMstack = <3" + link: https://julian.is/article/static-websites-and-jamstack/ + +videos: + - title: Rise of the JAMstack + description: The emergence of Git centered workflows, around modern build tools, static site generators, and modern browsers, have changed the way most front-enders work. + link: https://www.youtube.com/watch?v=uWTMEDEPw8c + thumbnailurl: /img/videos/mathias-active-ingredients.jpg + - title: The New Front-end Stack. Javascript, APIs and Markup + description: Matt Biilmann covers how a new stack has emerged and how this has changed how web sites and web apps are built. + link: https://vimeo.com/163522126 + thumbnailurl: /img/videos/mathias-smashing-conf.png + - title: Easy Isomorphic Rendering on the JAMstack + description: In this talk, Phil explores some techniques and tools which can combine to create dynamic and powerful sites with on a JAM Stack. + link: https://www.youtube.com/watch?v=lRg99MH6rhw + thumbnailurl: /img/videos/isomorphic.jpg +--- diff --git a/site/layouts/_default/baseof.html b/site/layouts/_default/baseof.html new file mode 100644 index 000000000..cece47a71 --- /dev/null +++ b/site/layouts/_default/baseof.html @@ -0,0 +1,11 @@ + + + {{ partial "html-head" . }} + + {{ partial "header" . }} + {{ block "main" . }}{{ end }} + {{ partial "footer" . }} + {{ partial "scripts" . }} + {{ block "page-scripts" . }}{{ end }} + + diff --git a/site/layouts/index.html b/site/layouts/index.html new file mode 100755 index 000000000..10688f7a5 --- /dev/null +++ b/site/layouts/index.html @@ -0,0 +1,69 @@ +{{ define "main" }} +
+
+

{{ .Site.Data.definitions.jamstack | markdownify }}

+
+
+ +
+
+
{{ .Site.Data.definitions.explanation | markdownify }}
+
+

FAQ

+

What is the JAMstack?

+

Why the JAMstack?

+

How do I get started?

+
+
+
+ +
+
+

What is the JAMstack?

+

Your project is built with the JAMstack if it meets three key criteria:

+
+
+ +

JavaScript

+

{{ .Site.Data.definitions.javascript | markdownify }}

+
+
+ +

APIs

+

{{ .Site.Data.definitions.apis | markdownify }}

+
+
+ +

Markup

+

{{ .Site.Data.definitions.markup | markdownify }}

+
+
+ +
+

When is your site not built with the JAMstack?

+

Any project that relies on a tight coupling between client and server is not built with the JAMstack. This would include:

+
+ {{ range .Site.Data.definitions.disqualifications }} +

{{ .disqualification | markdownify }}

+ {{ end }} +
+
+ +
+

Why the JAMstack?

+
+ {{ range .Site.Data.definitions.advantages }} +
+

{{ .advantage | markdownify }}

+

{{ .description | markdownify }}

+
+ {{ end }} +
+
+ +
+

How do I get started?

+

Learn About Best Practices →

+

View Resources →

+
+{{ end }} diff --git a/site/layouts/page/baseof.html b/site/layouts/page/baseof.html new file mode 100644 index 000000000..cece47a71 --- /dev/null +++ b/site/layouts/page/baseof.html @@ -0,0 +1,11 @@ + + + {{ partial "html-head" . }} + + {{ partial "header" . }} + {{ block "main" . }}{{ end }} + {{ partial "footer" . }} + {{ partial "scripts" . }} + {{ block "page-scripts" . }}{{ end }} + + diff --git a/site/layouts/page/best-practices.html b/site/layouts/page/best-practices.html new file mode 100644 index 000000000..cdcf523db --- /dev/null +++ b/site/layouts/page/best-practices.html @@ -0,0 +1,16 @@ +{{ define "main" }} +
+
+

Best Practices

+

When building JAMstack projects, you can really get the most out of the stack if you stick to a few best practices.

+
+ {{ range .Site.Data.bestpractices.bestpractices }} +
+

{{ .title }}

+

{{ .description | markdownify }}

+
+ {{ end }} +
+
+
+{{ end }} diff --git a/site/layouts/page/community.html b/site/layouts/page/community.html new file mode 100644 index 000000000..923bd7d9c --- /dev/null +++ b/site/layouts/page/community.html @@ -0,0 +1,127 @@ +{{ define "main" }} +
+ +
+
+

Join your local JAMstack Chapter.

+
+
+ +
+
+ {{ range .Site.Data.community.chapters }} + + +

{{ .name }}

+
{{ .btncopy }}
+
+ {{ end }} +
+
+ +
+
+

Chat on Gitter.

+

+ Got a question or just want to chat? + Speak with leaders in the space on our community about all things JAMstack in our Gitter Chat. +

+
+ +

Join the Gitter Chat for...

+

+ • Expert advice on best practices + • Resource recommendations + • General discussion +

+
+
+ +
+ + + +

Come hang out at the next JAMstack event.

+ {{ range .Site.Data.events.events }} + +
{{ dateFormat "Jan 02" .date }}
+
+

+ {{ if .location }} + {{ .location }} + {{ end }} +

+

{{ .title }}

+ + {{ if .time }} + Starts at {{ .time }} + {{ end }} + +

{{ .description }}

+
+
+ {{ end }} + +
+
+ +
+
+ +

{{ .Site.Data.community.bottomcta.headline }}

+ {{ .Site.Data.community.bottomcta.ctacopy }} +
+
+ +
+

Spread the JAM by tweeting #JAMstack

+
+
+
    +
    +
    +
    +
    +{{ end }} diff --git a/site/layouts/page/examples.html b/site/layouts/page/examples.html new file mode 100644 index 000000000..b9d41d022 --- /dev/null +++ b/site/layouts/page/examples.html @@ -0,0 +1,29 @@ +{{ define "main" }} +
    +
    +
    +

    If you can use it on the web, you can probably build it with the JAMstack. Millions already do. Check out the JAMstacks of these examples below:

    +

    + Want to get your site listed here? + Submit a Pull Request with your JAMstack project’s information here. +

    +
    +
    + {{ range .Site.Data.examples.examples }} + +
    +
    •••
    +
    + +

    {{ .title }}

    +
      + {{ range .tools }} +
    • {{ .tool }}
    • + {{ end }} +
    +
    + {{ end }} +
    +
    +
    +{{ end }} diff --git a/site/layouts/page/resources.html b/site/layouts/page/resources.html new file mode 100644 index 000000000..44ed6b85b --- /dev/null +++ b/site/layouts/page/resources.html @@ -0,0 +1,108 @@ +{{ define "main" }} + +
    +

    Resources

    +

    + Have a great JAMstack resource to share? + Submit a Pull Request with your JAMstack resource's information here. +

    + +
    + +

    Videos

    +
    + {{ range .Site.Data.resources.videos }} + +
    + +
    +

    {{ .title }}

    +

    {{ .description }}

    +
    + {{ end }} +
    +
    + +
    +

    Articles

    + +
    + +
    +
    + +
    +

    Tune into the Podcast

    +

    Every week, Brian Douglas from Netlify talks with special guests about all things pertaining to the JAMstack.

    +
    +
    +
    + +
    +

    Spread the JAM by tweeting #JAMstack

    +
    +
    +
      +
      +
      +
      +
      + +{{ end }} +{{ define "page-scripts" }} + +{{ end }} \ No newline at end of file diff --git a/site/layouts/partials/footer.html b/site/layouts/partials/footer.html new file mode 100755 index 000000000..ae01003a8 --- /dev/null +++ b/site/layouts/partials/footer.html @@ -0,0 +1,3 @@ + diff --git a/site/layouts/partials/header.html b/site/layouts/partials/header.html new file mode 100755 index 000000000..e69078214 --- /dev/null +++ b/site/layouts/partials/header.html @@ -0,0 +1,9 @@ + diff --git a/site/layouts/partials/html-head.html b/site/layouts/partials/html-head.html new file mode 100644 index 000000000..8f0dcaa8c --- /dev/null +++ b/site/layouts/partials/html-head.html @@ -0,0 +1,12 @@ + + {{ .Site.Title }} + + + + {{ if or (eq .Title "Community") (eq .Title "Resources") }} + + + {{ end }} + + + diff --git a/site/layouts/partials/promo.html b/site/layouts/partials/promo.html new file mode 100644 index 000000000..e19bc4185 --- /dev/null +++ b/site/layouts/partials/promo.html @@ -0,0 +1,5 @@ +
      +

      + Learn more about the JAMstack at JAMstack Conf, San Francisco — 29-30 October, 2018 +

      +
      diff --git a/site/layouts/partials/scripts.html b/site/layouts/partials/scripts.html new file mode 100644 index 000000000..9e66d1e20 --- /dev/null +++ b/site/layouts/partials/scripts.html @@ -0,0 +1,4 @@ + + + + diff --git a/site/static/.keep b/site/static/.keep new file mode 100755 index 000000000..e69de29bb diff --git a/site/static/_redirects b/site/static/_redirects new file mode 100644 index 000000000..f5f043c3b --- /dev/null +++ b/site/static/_redirects @@ -0,0 +1,17 @@ +https://jamstack.com/* https://jamstack.org/:splat 301! +https://www.jamstack.com/* https://jamstack.org/:splat 301! +http://jamstack.com/* https://jamstack.org/:splat 301! +http://www.jamstack.com/* https://jamstack.org/:splat 301! + +https://jam-stack.com/* https://jamstack.org/:splat 301! +https://www.jam-stack.com/* https://jamstack.org/:splat 301! +http://jam-stack.com/* https://jamstack.org/:splat 301! +http://www.jam-stack.com/* https://jamstack.org/:splat 301! + +https://jam-stack.org/* https://jamstack.org/:splat 301! +https://www.jam-stack.org/* https://jamstack.org/:splat 301! +http://jam-stack.org/* https://jamstack.org/:splat 301! +http://www.jam-stack.org/* https://jamstack.org/:splat 301! + +https://staticwebtech.com/* https://jamstack.org 301! +https://www.staticwebtech.com/* https://jamstack.org 301! \ No newline at end of file diff --git a/site/static/js/jquery-2.2.4.min.js b/site/static/js/jquery-2.2.4.min.js new file mode 100644 index 000000000..5c82cc00e --- /dev/null +++ b/site/static/js/jquery-2.2.4.min.js @@ -0,0 +1,4 @@ +/*! jQuery v2.2.4 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="2.2.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isPlainObject:function(a){var b;if("object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype||{},"isPrototypeOf"))return!1;for(b in a);return void 0===b||k.call(a,b)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=d.createElement("script"),b.text=a,d.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:h.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(d=e.call(arguments,2),f=function(){return a.apply(b||this,d.concat(e.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return h.call(b,a)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?void 0!==c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?h.call(n(a),this[0]):h.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||n.uniqueSort(e),D.test(a)&&e.reverse()),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.removeEventListener("DOMContentLoaded",J),a.removeEventListener("load",J),n.ready()}n.ready.promise=function(b){return I||(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(n.ready):(d.addEventListener("DOMContentLoaded",J),a.addEventListener("load",J))),I.promise(b)},n.ready.promise();var K=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)K(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},L=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function M(){this.expando=n.expando+M.uid++}M.uid=1,M.prototype={register:function(a,b){var c=b||{};return a.nodeType?a[this.expando]=c:Object.defineProperty(a,this.expando,{value:c,writable:!0,configurable:!0}),a[this.expando]},cache:function(a){if(!L(a))return{};var b=a[this.expando];return b||(b={},L(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[b]=c;else for(d in b)e[d]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=a[this.expando];if(void 0!==f){if(void 0===b)this.register(a);else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in f?d=[b,e]:(d=e,d=d in f?[d]:d.match(G)||[])),c=d.length;while(c--)delete f[d[c]]}(void 0===b||n.isEmptyObject(f))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!n.isEmptyObject(b)}};var N=new M,O=new M,P=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Q=/[A-Z]/g;function R(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Q,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:P.test(c)?n.parseJSON(c):c; +}catch(e){}O.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:function(a,b,c){return O.access(a,b,c)},removeData:function(a,b){O.remove(a,b)},_data:function(a,b,c){return N.access(a,b,c)},_removeData:function(a,b){N.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=O.get(f),1===f.nodeType&&!N.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),R(f,d,e[d])));N.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){O.set(this,a)}):K(this,function(b){var c,d;if(f&&void 0===b){if(c=O.get(f,a)||O.get(f,a.replace(Q,"-$&").toLowerCase()),void 0!==c)return c;if(d=n.camelCase(a),c=O.get(f,d),void 0!==c)return c;if(c=R(f,d,void 0),void 0!==c)return c}else d=n.camelCase(a),this.each(function(){var c=O.get(this,d);O.set(this,d,b),a.indexOf("-")>-1&&void 0!==c&&O.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){O.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=N.get(a,b),c&&(!d||n.isArray(c)?d=N.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return N.get(a,c)||N.access(a,c,{empty:n.Callbacks("once memory").add(function(){N.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length",""],thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};$.optgroup=$.option,$.tbody=$.tfoot=$.colgroup=$.caption=$.thead,$.th=$.td;function _(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function aa(a,b){for(var c=0,d=a.length;d>c;c++)N.set(a[c],"globalEval",!b||N.get(b[c],"globalEval"))}var ba=/<|&#?\w+;/;function ca(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],o=0,p=a.length;p>o;o++)if(f=a[o],f||0===f)if("object"===n.type(f))n.merge(m,f.nodeType?[f]:f);else if(ba.test(f)){g=g||l.appendChild(b.createElement("div")),h=(Y.exec(f)||["",""])[1].toLowerCase(),i=$[h]||$._default,g.innerHTML=i[1]+n.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;n.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",o=0;while(f=m[o++])if(d&&n.inArray(f,d)>-1)e&&e.push(f);else if(j=n.contains(f.ownerDocument,f),g=_(l.appendChild(f),"script"),j&&aa(g),c){k=0;while(f=g[k++])Z.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var da=/^key/,ea=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,fa=/^([^.]*)(?:\.(.+)|)/;function ga(){return!0}function ha(){return!1}function ia(){try{return d.activeElement}catch(a){}}function ja(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ja(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ha;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return"undefined"!=typeof n&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(G)||[""],j=b.length;while(j--)h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.hasData(a)&&N.get(a);if(r&&(i=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&N.remove(a,"handle events")}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(N.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,la=/\s*$/g;function pa(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function qa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function ra(a){var b=na.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function sa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(N.hasData(a)&&(f=N.access(a),g=N.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}O.hasData(a)&&(h=O.access(a),i=n.extend({},h),O.set(b,i))}}function ta(a,b){var c=b.nodeName.toLowerCase();"input"===c&&X.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function ua(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&ma.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),ua(f,b,c,d)});if(o&&(e=ca(b,a[0].ownerDocument,!1,a,d),g=e.firstChild,1===e.childNodes.length&&(e=g),g||d)){for(h=n.map(_(e,"script"),qa),i=h.length;o>m;m++)j=e,m!==p&&(j=n.clone(j,!0,!0),i&&n.merge(h,_(j,"script"))),c.call(a[m],j,m);if(i)for(k=h[h.length-1].ownerDocument,n.map(h,ra),m=0;i>m;m++)j=h[m],Z.test(j.type||"")&&!N.access(j,"globalEval")&&n.contains(k,j)&&(j.src?n._evalUrl&&n._evalUrl(j.src):n.globalEval(j.textContent.replace(oa,"")))}return a}function va(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(_(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&aa(_(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(ka,"<$1>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=_(h),f=_(a),d=0,e=f.length;e>d;d++)ta(f[d],g[d]);if(b)if(c)for(f=f||_(a),g=g||_(h),d=0,e=f.length;e>d;d++)sa(f[d],g[d]);else sa(a,h);return g=_(h,"script"),g.length>0&&aa(g,!i&&_(a,"script")),h},cleanData:function(a){for(var b,c,d,e=n.event.special,f=0;void 0!==(c=a[f]);f++)if(L(c)){if(b=c[N.expando]){if(b.events)for(d in b.events)e[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);c[N.expando]=void 0}c[O.expando]&&(c[O.expando]=void 0)}}}),n.fn.extend({domManip:ua,detach:function(a){return va(this,a,!0)},remove:function(a){return va(this,a)},text:function(a){return K(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.appendChild(a)}})},prepend:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(_(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return K(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!la.test(a)&&!$[(Y.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(_(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return ua(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(_(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),f=e.length-1,h=0;f>=h;h++)c=h===f?this:this.clone(!0),n(e[h])[b](c),g.apply(d,c.get());return this.pushStack(d)}});var wa,xa={HTML:"block",BODY:"block"};function ya(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function za(a){var b=d,c=xa[a];return c||(c=ya(a,b),"none"!==c&&c||(wa=(wa||n(" diff --git a/src/site/headless-cms/sensenet.md b/src/site/headless-cms/sensenet.md deleted file mode 100644 index fe7596cec..000000000 --- a/src/site/headless-cms/sensenet.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: sensenet -homepage: https://www.sensenet.com/ -repo: SenseNet/sensenet -twitter: sensenet -opensource: "Yes" -typeofcms: "API Driven" -supportedgenerators: - - All -description: A single hub for all your content to manage with a variety of features. -images: - - path: /images/sensenet.png ---- - -# sensenet - -sensenet is a content repository with API first approach packed with a full featured permission system, preview and collaboration tools. - -A basic setup of sensenet has three top-level parts: -- A content repository that is the storage and service layer -- An application that uses the content of the connected content repository through API calls -- A sensenet admin surface (only in SNaaS) that helps you carry out common content managements tasks - -## Everything is content - -Content is the basic block for storing information in sensenet. A content can be any kind of data, user, document, workspace, memo, task, and more. Using content items everywhere unlocks a great deal of exceptional features, making your experience as a user more seamless, and your job as a developer a lot easier. - -## SNaaS - -In this model, sensenet content repositories live in our cloud infrastructure. - -**Advantages** - -- no installation required (easy onboarding) -- easy patches and upgrades -- no hosting related tasks -- central admin surface -- flexible pricing plans (based on # of contents, requests, and users) - -### Who is it good for? -From department websites and apps to enterprise rollouts. - -#### For developers -sensenet offers you a rich API allowing you to manage, integrate and deliver content. Use your favorite tech stack and turn sensenet into your and your team’s personal workshop . Build all sorts of new content, apps, solutions, and more for your clients or internal use. - -#### For marketers -As a content creator, you will find sensenet to be a platform with all the tools to fulfill your goals. Use the variety of content types and the many options to manage content, and create your own preferred process for your daily work. Improve all phases of marketing projects from content planning, through collaboration to deployment. - -#### For enterprises -Through sensenet as a service (SNaaS), you can utilize all the features of a flexible, secure, and nearly limitless headless CMS without spending resources on updates and maintenance. - -## Try it out! - -- [Get your free repo](https://www.sensenet.com/pricing) -- [sensenet basics](https://docs.sensenet.com/concepts/basics) -- [API docs](https://docs.sensenet.com/api-docs/basic-concepts) diff --git a/src/site/headless-cms/sheetson.md b/src/site/headless-cms/sheetson.md deleted file mode 100644 index 605bb5970..000000000 --- a/src/site/headless-cms/sheetson.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Sheetson -homepage: https://sheetson.com/ -twitter: sheetson -opensource: "No" -typeofcms: "API Driven" -supportedgenerators: - - All -description: Build Instant APIs from Google Sheets as CMS ---- -## Sheetson - Build Instant APIs from Google Sheets as CMS - -Sheetson gives you an instant backend solution for all your coding projects. No setup, no worries, unlimited possibilities. - -## From idea to production in minutes, not days -You don't need to prepare data model to get started. Each sheet serves as a data model where first row is the object fields. Get started with three easy steps: - -1. Prepare your spreadsheet -2. Share it with Sheetson -3. Consume the data in your project - -- [More info](https://sheetson.com/?utm_source=jamstack&utm_medium=headless-cms&utm_campaign=listing) - -## Comprehensive documentation -Head over to our [documentation](https://docs.sheetson.com/?utm_source=jamstack&utm_medium=headless-cms&utm_campaign=listing) to learn more about setup, making requests and some examples! diff --git a/src/site/headless-cms/siteleaf.md b/src/site/headless-cms/siteleaf.md deleted file mode 100644 index 9e1ba9cb7..000000000 --- a/src/site/headless-cms/siteleaf.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Siteleaf -homepage: 'https://www.siteleaf.com/' -twitter: siteleaf -opensource: 'No' -supportedgenerators: - - Jekyll -typeofcms: Git-based -description: Siteleaf is a content management system designed for a better web. ---- - -## Siteleaf -Siteleaf is a content management system designed for a better web, built for developers, and loved by everyone. - -### Develop with existing tools -Code offline with Jekyll, sync with GitHub. - -### Edit in the cloud -Easy for non-technical clients, writers, and producers. - -### Free your content -Access by API or generate static sites to S3, GitHub, FT. - - -Siteleaf is brought to you by Oak, a New York agency. diff --git a/src/site/headless-cms/sitepins.md b/src/site/headless-cms/sitepins.md deleted file mode 100644 index a6efd69e8..000000000 --- a/src/site/headless-cms/sitepins.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Sitepins -homepage: https://sitepins.com/ -twitter: sitepinscms -opensource: "No" -typeofcms: "Git-based" -supportedgenerators: - - Astro - - Hugo - - Next.js - - SvelteKit - - 11ty - - Jekyll - - Nuxt -description: Sitepins is a Git-based headless CMS designed for developers, marketers, and digital agencies building modern static websites. -images: - - path: /img/cms/sitepins-editor.png ---- -## Sitepins -Sitepins is a Git-based headless CMS designed for developers, marketers, and digital agencies building modern static websites. It offers a clean WYSIWYG editing experience, seamless Git integration, and full control over your content workflow. - -### Key Features -- **Git-First Workflow**: Content changes are version-controlled and synced to your Git repository. - -- **Visual + Markdown Editor**: Offers a clean, intuitive editor that supports Markdown and rich text. - -- **Media Library**: Drag-and-drop interface for managing images and assets. - -- **Nested Collections**: Supports deeply structured content models for flexible content architecture. - -- **Team Collaboration**: Role-based access and permissions for content teams. - -- **SSG Support**: Works with Astro, Hugo, Next.js, 11ty, SvelteKit and other static site generators. - -- **AI Assistant**: Connect your OpenAI API key to generate, rewrite, and enhance content—directly within the CMS interface. - -- **Custom Blocks & Shortcode Support**: Powerful content customization without writing code. - -- **Multiple Content Formats**: Native support for Markdown, JSON, YAML, and TOML. - -- **Cloud Hosted**: No setup required—start creating content right away. - -and much more... - - -### Use Cases - -- Developers and marketers managing static sites -- Agencies building content-driven websites for clients -- Teams looking for a simple, Git-powered CMS with a visual editor - -### Links - -- **Website**: [https://sitepins.com](https://sitepins.com) -- **Demo**: [https://demo.sitepins.com](https://demo.sitepins.com) -- **Docs**: [https://docs.sitepins.com](https://docs.sitepins.com) - - - diff --git a/src/site/headless-cms/slicknode.md b/src/site/headless-cms/slicknode.md deleted file mode 100644 index 67ea2c01f..000000000 --- a/src/site/headless-cms/slicknode.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Slicknode -homepage: https://slicknode.com -twitter: slicknode -repo: slicknode/slicknode -opensource: "No" -typeofcms: "API Driven" -supportedgenerators: - - All -description: Slicknode is a GraphQL based headless CMS + application framework for advanced digital experiences -images: - - path: /img/cms/slicknode-1.png ---- -## Slicknode - -[Slicknode](https://slicknode.com) is a GraphQL based headless content management system for fast paced development of advanced digital experiences. - -### Features: - -- Instant **GraphQL API** on managed cloud infrastructure -- Powerful [data modeling features](https://slicknode.com/docs/data-modeling/introduction/) with - [relations](https://slicknode.com/docs/data-modeling/relations/), - [interfaces](https://slicknode.com/docs/data-modeling/interfaces/introduction/), - [enum types](https://slicknode.com/docs/data-modeling/enum-types/) etc. -- Automatic **database migrations** -- [Declarative permission model](https://slicknode.com/docs/auth/authorization/) (multi tenant SaaS, customer facing apps, enterprise etc.) -- Use with any API and database -- **Multi-Stage** development workflow -- Works with your favorite technologies (React, Angular, Vue, Javascript, iOS, Android etc.) -- **Headless CMS** -- [Extensible](https://slicknode.com/docs/extensions/) with custom code (Javascript, TypeScript, Flow etc.) - -### Why Slicknode? - -Slicknode aims to be the most flexible CMS with the best development workflow: - -Define the data model on your local machine using GraphQL and then sync the changes to the cloud. -The schema lives in your local codebase to allow management via git (code review, merge, clone, revert etc.), -the content lives in a highly scalable cloud infrastructure. - -### Modular Architecture - -Slicknode is modular from the core. Build functionality once and reuse it across all your projects without -changes. - -### Extensible - -- Add **existing data sources** from your own IT systems or 3rd party APIs -- Add **custom business logic** with serverless functions -- Merge **multiple GraphQL APIs** into one unified data graph - -### Scalable Content Infrastructure - -Slicknode takes care of provisioning, monitoring and maintaining a highly scalable cloud infrastructure, -so you don't have to. - -**[> Get Started Here](https://slicknode.com/docs/quickstart/)** diff --git a/src/site/headless-cms/spearly.md b/src/site/headless-cms/spearly.md deleted file mode 100644 index 482e6e7f9..000000000 --- a/src/site/headless-cms/spearly.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Spearly CMS -homepage: https://cms.spearly.com -twitter: spearlycom -opensource: "No" -typeofcms: "API Driven" -supportedgenerators: - - All -description: Spearly CMS is a headless CMS easy to embed and easy to use. You can embed content into your site for few steps. -images: - - path: /img/cms/spearly-manager.png ---- -## Spearly CMS - -[Spearly CMS](https://cms.spearly.com) is a headless CMS easy to embed and easy to use. You can embed content into your site for few steps. - -Spearly CMS improve your making experience of site. - -### Features - -- REST API. -- Embed JavaScript Library. -- Team feature: Spearly has team feature for managing content with multiple users. -- Form feature: Online form creator and embed form easily. -- Preview feature: You can get preview of content by using preview key. -- WebHook feature - -### Embed JavaScript Syntax - -You can embed a content by following code: - -``` -
      -

      {%= content_title %}

      -

      {%= content_description %}

      -
      -``` - -### Searply Series - -Spearly CLOUD: - -- Hosting and deploying your site from GitHub or static site files. -- Spearly CLOUD can set the original domain. diff --git a/src/site/headless-cms/spinal.md b/src/site/headless-cms/spinal.md deleted file mode 100644 index ab3105fa5..000000000 --- a/src/site/headless-cms/spinal.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Spinal -homepage: https://spinalcms.com/ -twitter: spinalcms -opensource: "No" -typeofcms: "Git-based" -supportedgenerators: - - Astro - - 11ty - - Hugo - - Jekyll - - Middleman - - Bridgetown - - Next.js - - Gatsby - - VuePress - - VitePress - - Nuxt - - Hexo - - Zola -images: - - path: /img/cms/spinal-1.png - - path: /img/cms/spinal-2.png - - path: /img/cms/spinal-3.png -description: A minimal and beautiful git-based CMS for content marketing teams. ---- - -## Spinal is a beautiful git-based CMS for content marketing teams - -With it's beautiful and minimal UI, Spinal makes sure your content is the protagonist at all times. Making sure your whole team can collaborate on some or all the content of your static site generator. - -### Git-based - -Spinal connects to your GitHub repo to pull content you have and to push new content you created. - - -### Collaborate with your team - -Collaborate with your team. Leave comments on drafts, ask questions about existing content. - - -### Set permissions - -Set who can create content, publish content or invite new team members. Fine-grained permissions, will make sure members can only access certain content types. - - -### Lock editing - -Know when someone from your team is editing some content, so no conflicts will happen. - - -### Schedule content - -Schedule your content and it will be automatically published for you. diff --git a/src/site/headless-cms/squidex.md b/src/site/headless-cms/squidex.md deleted file mode 100644 index 2ac2de1c7..000000000 --- a/src/site/headless-cms/squidex.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Squidex -repo: squidex/squidex -homepage: https://squidex.io -twitter: squidexcms -opensource: "Yes" -typeofcms: "API Driven" -supportedgenerators: - - All -description: Scalable open source headless cms for developers and content authors. ---- -## Squidex -Our goal is to provide the best headless solution for developers and content authors. We support multiple API endpoints (REST and GraphQL), a great user interface and a powerful rule engine to manage and distribute your content. diff --git a/src/site/headless-cms/stastic.md b/src/site/headless-cms/stastic.md deleted file mode 100644 index 0dcea2929..000000000 --- a/src/site/headless-cms/stastic.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Stastic -homepage: https://stastic.net -opensource: "No" -typeofcms: "Git-based" -supportedgenerators: - - Jekyll -description: CMS for Jekyll built on top of GitHub and GitHub pages, for your clients to edit the content of Jekyll websites. ---- -## Stastic - -CMS for Jekyll built on top of GitHub and GitHub pages, for your clients to edit the content of Jekyll websites. - -Stastic is the best CMS option for your clients daily website content management: - -* Modern efficient UI -* Optimized for use on mobile -* Free hosting included, best quality based on Github pages - - -It has never been that easy to create and manage websites - -* Use any Jekyll template - we have a curated list too -* Edit the content with a clean attractive online editor -* If you need more, hand over to a developer diff --git a/src/site/headless-cms/statamic.md b/src/site/headless-cms/statamic.md deleted file mode 100644 index 9bb2553af..000000000 --- a/src/site/headless-cms/statamic.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Statamic -homepage: https://statamic.com/ -repo: statamic/cms -twitter: statamic -opensource: "Yes" -typeofcms: "Git-based" -supportedgenerators: - - Built In -description: A Laravel-powered, flat-first CMS that can run headless, as a full PHP stack, or generate and deploy static sites. ---- - -## What is Statamic? - -Statamic is a transformer. It adapts to your needs, growing with you and your site. - -- There’s no database until you need one. -- It’s a front-to-back CMS until you need to go headless. -- It’s dynamically powered by PHP & Laravel until you need to go static. -- It’s full-stack until you go Jamstack. -- Host it on any PHP7 server until you want to go serverless. -- Use the beautiful control panel unless you don’t feel like it. Everything can be edited in your code editor. -- You can version control everything unless you don’t want to. - -## Statamic's Architecture - -Statamic 3 is built as a highly extendable, standalone capable, Laravel package. If you’re already a Laravel developer, you’ll feel right at home extending core features with Models, Service Providers, and Middleware. You can even drop it into existing Laravel applications to add a full CMS in seconds. But you do not need to know Laravel or PHP to use Statamic. -The control panel is built with Vue.js and can be customized with your own JavaScript or third-party addons. Fieldtypes and filters have access to data through Vuex. Build Widgets to power any dashboard you can imagine. Or just let it do its thing because it's already pretty great. diff --git a/src/site/headless-cms/storyblok.md b/src/site/headless-cms/storyblok.md deleted file mode 100644 index b05b10cbf..000000000 --- a/src/site/headless-cms/storyblok.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Storyblok -homepage: https://www.storyblok.com/ -repo: storyblok/storyblok -twitter: storyblok -opensource: "No" -typeofcms: "API Driven" -supportedgenerators: - - All -description: Headless & API-based CMS as a Service. Not only a CMS for your editors. Clean and structured JSON for you as developer. ---- - -## What is Storyblok - -Storyblok builds a bridge between content creators and developers - without to force the developer into a technology. The main mission of Storyblok is to make the web faster - in development and maintenance! We want the content creator to write articles, stories and even build landing pages in one platform and still allow the developers to access the information in well structured content from an performant API. - -### For whom? - -Storyblok is for developers who like to take their time and do things right, building out their HTML, CSS, and JavaScript by hand. This is not a site builder or some sort of design tool. - -### For what? - -Storyblok was built to be unbelievable scalable and flexible, to the point that even its own feature set can adapt perfectly to the scope of the project (have a look at the Apps section in your Space). Whether you’re building a portfolio site or a big corporate site, Storyblok is a scalable and flexible choice for that. You can even use Storyblok in existing projects and enrich the content of any system with editorial content. - -### Tech Specs - -Storyblok is a headless, API-based SaaS CMS built with Ruby on Rails and VueJS as it’s core, but you don’t need to know Ruby or VueJs to use it. You can go with your favorite technologies and build awesome stuff with us. If you need more than a simple to use Content Delivery API and looking for a full stack you can still opt-in our Cloud Rendering Service without losing the access to your data at all. diff --git a/src/site/headless-cms/strapi.md b/src/site/headless-cms/strapi.md deleted file mode 100644 index f172bd814..000000000 --- a/src/site/headless-cms/strapi.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Strapi -repo: strapi/strapi -homepage: https://strapi.io -twitter: strapijs -opensource: "Yes" -typeofcms: "API Driven" -supportedgenerators: - - All -description: Strapi is the leading open-source headless CMS. It’s 100% Javascript, fully customizable, support TypeScript and developer-first. It saves API development time through a beautiful admin panel anyone can use. -images: - - path: /img/cms/strapi-content-types-builder.png - - path: /img/cms/strapi-content-manager.png - - path: /img/cms/strapi-media-library.png - - path: /img/cms/strapi-settings-edit-roles.png ---- - -## Get started - -Get started with Strapi: - -
      - -```sh -npx create-strapi-app@latest -``` - -
      - -Request a free [demo](https://strapi.io/demo) - -
      - -## Product overview - -### For Developers - -
      - -- **Multi-databases support**: SQLite, MySQL, Postgres are supported, you just have to pick one of your choice.
      -- **GraphQL or RESTful**: Consume the API from any client (React, Vue, Angular), mobile apps or even IoT, using REST or GraphQL.
      -- **100% Javascript**: One language fits all. Use JavaScript from front to back.
      -- **Webhooks**: Call back anywhere you need, to get the functionality you want, out of the box with our API.
      -- **Auto-generated documentation**: Write and maintain the documentation with a one-click integration.
      -- **Authentication & Permissions**: Secure your endpoints by allowing or not allowing users to -access your API by roles.
      -- **API Token v2 (NEW)**: Improved token-based authentication with custom permissions.
      -- **Custom Fields (NEW)**: Extend Strapi’s capabilities by allow users to add new fields to content types for a better content edition experience (nicer display, -enriched data, more actions, etc).
      -- **TypeScript support (NEW)**: As developer, you will now be able to create and write lines of code using TypeScript files. All these files will be automatically compiled during the development phase.

      - -### For Users - -
      - -- **An intuitive, minimal editor**: The editor allows you to pull in dynamic blocks of content. It’s 100% open-source, and it’s fully extensible.
      -- **Media Library**: Upload images, video or any files and crop and optimize their sizes, without quality loss.
      -- **Flexible content management**: Build any type of category, section, format or flow to adapt to your needs.
      -- **Sort and Filter**: Built-in sorting and filtering: you can manage thousands of entries without effort.
      -- **User-friendly interface**: The most user-friendly open-source interface on the market.
      -- **SEO optimized**: Easily manage your SEO metadata with a repeatable field and use our Media Library to add captions, notes, and custom filenames to optimize the SEO of media assets.

      - -### Global - -
      - -- [Customizable API](https://strapi.io/features/customizable-api): Automatically build out the schema, models, controllers for your API from the editor. Get REST or GraphQL API out of the box without writing a single line of code.
      -- [Media Library](https://strapi.io/features/media-library): The media library allows you to store your images, videos and files in your Strapi admin panel with many ways to visualize and manage them.
      -- [Role-Based Access Control (RBAC)](https://strapi.io/features/custom-roles-and-permissions): Role-Based Access Control is a feature available in the Administration Panel settings that let your team members have access rights only to the information they need.
      -- [Internationalization (i18n)](https://strapi.io/features/internationalization): Internationalization (i18n) lets you create many content versions, also called locales, in different languages and for different countries.
      -- [SSO (Enterprise)](https://strapi.io/blog/v3-5-sentry-plugin-sso-authentication): SSO authentication feature for the Strapi admin panel, which lets enterprises connect Strapi to their authentication providers and protocols such as Active Directory, Okta, Auth0, Keycloak, OAuth etc... -
      -- [Dark Mode](https://strapi.io/blog/strapiconf-2022-announcements-recap): You will be able to easily switch between the dark and the light mode through the user profile section in the administration panel. -
      -- [In-app marketplace](https://strapi.io/blog/strapiconf-2022-announcements-recap): Everything you love about the marketplace directly in Strapi. Now you can find all the plugins you need right in the app. -
      - -## Resources - -[Docs](https://docs.strapi.io) • [Demo](https://strapi.io/demo) • [Starters](https://strapi.io/starters) • [Forum](https://forum.strapi.io/) • [Discord](https://discord.strapi.io) • [Youtube](https://www.youtube.com/c/Strapi/featured) • [Try Enterprise Edition](https://strapi.io/enterprise) • [Strapi Design System](https://design-system.strapi.io/) • [Marketplace](https://market.strapi.io/) diff --git a/src/site/headless-cms/suncel.md b/src/site/headless-cms/suncel.md deleted file mode 100644 index aedbfbe72..000000000 --- a/src/site/headless-cms/suncel.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Suncel -homepage: https://suncel.io/ -twitter: Suncel_io -repo: suncel-io -opensource: "No" -typeofcms: "API Driven" -supportedgenerators: - - Next.js -description: Suncel is a headless CMS for Next.js, with a powerful no-code visual builder to rapidly create pages and publish your content. -images: - - path: /img/cms/suncel-2.png - - path: /img/cms/suncel-1.png ---- - -## Quickstart - -Implement a CMS in your Next.js app with one npm package : `@suncel/nextjs`. - -- [Create an account](https://app.suncel.io/signup) -- Install Suncel : check our [documentation](https://docs.suncel.io/developer/getting-started/manual-setup) use our CLI **npx create-suncel-app**, or go get our [starter project](https://github.com/suncel-io/suncel-nextjs-starter) for Next.js. - -## Benefits - -**For marketing team** : publish content 2x faster with a no-code editor. No complexity, focus on delivering content. Instant publish, don't wait for dev to publish your content. - -**For SEO** : SEO module, page optimization, better core web vitals, image optimization. - -**For developper** : installation in minutes, pre-built templates. Component-driven approach. Live preview when building a component. - -## Key features - -- Simple visual builder (no complexity) -- SEO module -- Multilanguage -- Reusable components -- Live preview in the builder -- Pre-built templates -- Basic components lib : richtext, images, links,... -- Component variation -- Admin and visual builder on your site -- Pages and asset organized in folders -- Self-hosted -- Asset management / Media Library -- User roles and permissions -- Revision History diff --git a/src/site/headless-cms/superdesk.md b/src/site/headless-cms/superdesk.md deleted file mode 100644 index bda477903..000000000 --- a/src/site/headless-cms/superdesk.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Superdesk -repo: superdesk/superdesk -homepage: https://www.superdesk.org/ -twitter: sourcefabric -opensource: "Yes" -typeofcms: "API Driven" -supportedgenerators: - - All -description: Superdesk is an end-to-end, api-driven open source headless CMS for news agencies, newspapers and corporate publishers. -images: - - path: /img/cms/superdesk-ui.png ---- -## Superdesk: Your digital newsroom - -Superdesk is a state-of-the-art digital newsroom system. It combines headless CMS functionality with powerful workflow features for an end-to-end news creation, production, curation and distribution platform. - -### Create once, publish everywhere - -Manage the production process from creation to distribution across all channels in a single headless content management platform. - -### Own your workflows - -Superdesk workflows are created and controlled by your editorial users, not imposed on them by the newsroom software. - -### Newsroom automation - -Save time and effort with flexible article templates that automate recurring tasks and routines in the digital newsroom. - -## Do you want to know more? - -We are happy to show you around! Request a demo at https://www.superdesk.org/demo diff --git a/src/site/headless-cms/sveltia-cms.md b/src/site/headless-cms/sveltia-cms.md deleted file mode 100644 index 59cd43130..000000000 --- a/src/site/headless-cms/sveltia-cms.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: Sveltia CMS -repo: sveltia/sveltia-cms -homepage: https://github.com/sveltia/sveltia-cms -opensource: "Yes" -typeofcms: "Git-based" -supportedgenerators: - - All -description: Sveltia CMS is a Git-based lightweight headless CMS under active development as a modern, quick replacement for Netlify/Decap CMS. Open source. Lightweight. UX-driven development. Made with Svelte. -images: - - path: /img/cms/sveltia-cms1.png - - path: /img/cms/sveltia-cms2.webp - - path: /img/cms/sveltia-cms3.webp - - path: /img/cms/sveltia-cms4.webp - - path: /img/cms/sveltia-cms5.webp - - path: /img/cms/sveltia-cms6.webp ---- -Sveltia CMS is a Git-based lightweight headless CMS under active development as a modern, quick replacement for Netlify/Decap CMS. You can use it with your favourite static site generator like SvelteKit, Eleventy, Next.js and Hugo to manage content as static files in a Git repository. The free open source alternative to Netlify/Decap CMS is now in public beta — with more features to come. - -## Features - -Here are some highlights mainly compared to Netlify/Decap CMS: - -### Compatible with Netlify/Decap CMS - -- Ready to replace Netlify/Decap CMS _in some casual use case scenarios_ by updating a single line of code. -- Your existing [configuration file](https://decapcms.org/docs/configuration-options/) can be reused as is. -- Various features are still missing though — look at the compatibility chart below to see if you can migrate. - -### UX - -- Created and maintained by an [experienced UX engineer](https://github.com/kyoshino) who loves code and design. You can expect constant UX improvements across the platform. -- Offers a modern, intuitive user interface, including an immersive dark mode, inspired in part by the Netlify CMS v3 prototype. -- Comes with touch device support. While the UI is not yet optimized for small screens, large tablets like iPad Pro or Pixel Tablet should work well. - -### Performance - -- Built completely from scratch with Svelte instead of forking React-based Netlify/Decap CMS. The app starts fast and stays fast. The compiled code is vanilla JavaScript — you can use it with almost any framework. -- Small footprint: less than 300 KB when minified and gzipped, compared to 1.5 MB of Netlify/Decap CMS. And [no virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead). -- Uses the GraphQL API for GitHub to quickly fetch content at once, so that entries and assets can be listed and searched instantly. This avoids the slowness and potential API rate limit violations caused by hundreds of requests with relation widgets[^14]. -- Saving entries and assets is also much faster thanks to the [GraphQL mutation](https://github.blog/changelog/2021-09-13-a-simpler-api-for-authoring-commits/). -- Caches Git files locally to further speed up startup and reduce bandwidth. - -### Productivity - -- You can work on a local Git repository without having to run a proxy server on your machine. -- You can delete multiple entries and assets at once. -- Some keyboard shortcuts are available for faster editing. More to come! - - Create a new entry: `Ctrl+E` (Windows/Linux) / `Command+E` (macOS) - - Save an entry: `Ctrl+S` (Windows/Linux) / `Command+S` (macOS) - - Search for entries and assets: `Ctrl+F` (Windows/Linux) / `Command+F` (macOS) -- Solves various outstanding Netlify/Decap CMS bugs[^11]. - -### Accessibility - -- Improved keyboard handling lets you efficiently navigate through UI elements using the Tab, Space, Enter and arrow keys[^17]. -- Comprehensive [WAI-ARIA](https://w3c.github.io/aria/) support empowers users who rely on screen readers such as NVDA or VoiceOver. -- Honours your operating system’s [reduced motion](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion) and [reduced transparency](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-transparency) settings. -- We’ll continue to test and improve the application to meet [WCAG 2.2](https://w3c.github.io/wcag/guidelines/22/). - -### i18n support - -- It’s now easier to switch between locales while editing with just a click on a button instead of a dropdown list. -- Fields in non-default locales are validated as expected. -- Integrates DeepL to allow translation of text fields from another locale with one click. -- You can disable non-default locale content. -- You can use a random UUID for an entry slug, which is a good option for locales that write in non-Latin characters. -- Resolves the limitations in the list and object widgets so that changes made with these widgets will be duplicated between locales as expected when using the `i18n: duplicate` field configuration. - -### Collection enhancements - -- You can choose a custom icon for each collection. -- A per-collection media folder will appear next to the entries. -- String values in YAML files can be quoted with the new `yaml_quote: true` option for a collection, mainly for framework compatibility. - -### Field enhancements - -- Required fields, not optional fields, are clearly marked for efficient data entry. -- Provides a reimagined all-in-one asset selection dialog for file and image fields. - - Collection-specific assets will be listed first for easy selection, while all assets can also be displayed in a separate tab. - - New assets can be uploaded by dragging & dropping them into the dialog. - - A file/image URL can also be entered in the dialog. - - Integration with Pexels, Pixabay and Unsplash makes it easy to select and insert free stock photos. -- Optional object fields (`widget: object` with `required: false`) can be manually added or removed. If removed, the required subfields will no longer trigger validation errors. -- You can revert changes to all fields or a specific field. - -### Asset management enhancements - -- A completely new Asset Library, built separately from the image selection dialog, makes it easy to manage all of your files, including images, videos and documents. -- You can sort or filter assets by name or file type and view asset details, including size, dimensions, and a list of entries that use the selected asset. -- You can upload multiple assets at once, including files in nested folders, by browsing or dragging & dropping them into the media library. -- You can navigate between the global media folder and per-collection media folders. - -## Read more - -- [Motivation](https://github.com/sveltia/sveltia-cms/tree/main#motivation) -- [Features](https://github.com/sveltia/sveltia-cms/tree/main#features) -- [Compatibility](https://github.com/sveltia/sveltia-cms/tree/main#compatibility) -- [Roadmap](https://github.com/sveltia/sveltia-cms/tree/main#roadmap) -- [Getting started](https://github.com/sveltia/sveltia-cms/tree/main#getting-started) -- [Tips & tricks](https://github.com/sveltia/sveltia-cms/tree/main#tips--tricks) -- [Support & feedback](https://github.com/sveltia/sveltia-cms/tree/main#support--feedback) -- [Contributions](https://github.com/sveltia/sveltia-cms/tree/main#contributions) \ No newline at end of file diff --git a/src/site/headless-cms/takeshape.md b/src/site/headless-cms/takeshape.md deleted file mode 100644 index ab5a15394..000000000 --- a/src/site/headless-cms/takeshape.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: TakeShape -homepage: http://www.takeshape.io/ -opensource: "No" -twitter: TakeShapeIO -typeofcms: "API Driven" -supportedgenerators: - - All -description: "TakeShape is a GraphQL API-first Content-as-a-Service platform with an integrated Static Content Generator." -startertemplaterepo: https://github.com/takeshape/takeshape-demo -images: - - path: /img/cms/takeshape-project-list.png - - path: /img/cms/takeshape-dashboard.png - - path: /img/cms/takeshape-add-content-type.png ---- -## TakeShape - -[TakeShape](http://www.takeshape.io/) is a GraphQL API-first Content Management-as-a-service cloud platform with an integrated Static Content Generator that removes the cost and effort of building and running a cloud-scale content experience. - -Check out the [quick start video](http://www.takeshape.io/docs/quickstart/). - -### Infinitely Scalable - -TakeShape runs on serverless infrastructure. It scales to handle any traffic you can throw at it. Deploy your site to AWS S3, Google Cloud Storage, FTP and coming soon Netlify. - -### Integrated Static Content Generator - -The integrated Static Content Generator allows you to get your site or product up quickly an easily without having to connect several services together. - -### Infinitely Customizable Content Schema - -Bring your own content model. Your content is unique to your product. TakeShape provides an easy to use drag-and-drop content modeling interface. - -### Be Creative - -We built TakeShape to allow you to focus your time on building what matters, your product, not on worrying about all the infrastructure and headache that goes into running a CMS. diff --git a/src/site/headless-cms/terminuscms.md b/src/site/headless-cms/terminuscms.md deleted file mode 100644 index 6a13c53a9..000000000 --- a/src/site/headless-cms/terminuscms.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: TerminusCMS -repo: terminusdb/terminusdb -homepage: https://terminusdb.com -twitter: TerminusDB -opensource: "Yes" -typeofcms: "API Driven" -supportedgenerators: - - All -description: TerminusCMS is a dev-first headless content management system for discovering and using data and content across complex use cases like supply chains, compliance, and enterprise content infrastructure. -images: - - path: /img/cms/terminuscms-schema-model.png - - path: /img/cms/terminuscms-curate-content.png - - path: /img/cms/terminuscms-change-request.png - - path: /img/cms/terminuscms-query.png ---- - -## TerminusCMS at a Glance - -TerminusCMS is a [headless content management system](https://terminusdb.com). Under the hood is a JSON document-oriented knowledge graph made for developers to solve complex enterprise problems. Model schema in code or with the UI to blueprint applications. The schema auto-generates document frames for viewing and editing, all served via REST and GraphQL APIs. Key features include - - -- Human and machine-readable JSON documents -- RDF graph database where the nodes are JSON for graph queries -- Change request workflows at the database layer -- User and team access and authentication at the database layer -- Git-like collaboration allows operations such as branch, clone, and merge -- Immutable commit history - See the complete history of documents and see who changed what and when -- Datalog and GraphQL graph query -- Distributed design - Work locally and push and pull changes to the cloud -- Schema migration tools - Evolve and scale applications -- AI best practice - Graph relationships, metadata, and version control provide the backbone to use your content infrastructure to train AI and exploit the boom of artificial intelligence. -- Open Source - -## Get Started - -[Sign up for free](https://dashboard.terminusdb.com), and clone a demo project to have a play. - -clone a demo project to experiment with from the TerminusCMS dashboard - -Alternatively, talk through your needs and [arrange a demo](https://terminusdb.com/contact/) - -## Collaboration Model - -Exploit TerminusCMS' collaboration model when building and within front-end applications. Features include - - -- Branch and merge with conflict checks - Branch projects with a client or with the dashboard to work in parallel, whether that's for feature development or to surface information to regulators, or for beta testing -- Time travel - See what content and data looked like in the past with the ability to branch the database from any commit -- Change request workflows with approvals built into content changes -- Clone projects with a click of a button -- Reset, rollback, and rebase operations -- Diff and patch operations to compare changes and apply patches either automatically or with manual intervention -- Push and pull to work locally or offline and merge changes later - -## Useful Links - -- [TerminusCMS Documentation](https://terminusdb.com/docs) -- [How to Guides](https://terminusdb.com/docs/guides/how-to-guides) -- [Talk to us & ask questions on Discord](https://discord.gg/Gvdqw97) -- [TerminusCMS Features](https://terminusdb.com/features/) -- [CMS for Supply Chain](https://terminusdb.com/cms-for-manufacturing/) -- [CMS for Compliance](https://terminusdb.com/cms-for-compliance/) -- [CMS for Pharma](https://terminusdb.com/pharmaceutical-cms/) diff --git a/src/site/headless-cms/tinacms.md b/src/site/headless-cms/tinacms.md deleted file mode 100644 index 97fd2c164..000000000 --- a/src/site/headless-cms/tinacms.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Tina -repo: tinacms/tinacms -homepage: https://tina.io -twitter: tinacms -opensource: "Yes" -typeofcms: "Git + API" -supportedgenerators: - - All -description: TinaCMS is a free and open-source headless CMS focused on providing the best developer experience for building web sites and applications. ---- - -[TinaCMS](https://tina.io) is a free and open-source headless CMS focused on providing the best developer experience for building web sites and applications. Tina has two main components: - -* An open-source admin UI (with support for visual editing) -* An open-source GraphQL API for serving content - -For people who don’t want to self-host their CMS, [Tina Cloud](https://tina.io/) provides a hosted option. - - - -## Try it out -Create a testing site: - -``` -npx create-tina-app@latest -``` - -Or request a [demo](mailto:info@tina.io). - -## Why Tina? -Tina is an open-source headless CMS that does two things differently: - -### 1. Git Sync -Like other headless CMSs, Tina provides a GraphQL API to query your content. However, Tina generates its API from content stored in Markdown and JSON files in a Git repository. This allows you to use the file system as the source of truth for your content instead of a database but gives you an API to query that content (i.e. `post.author.name`). - -Tina Cloud Enterprise customers can leverage Tina’s [Editorial Workflow](https://tina.io/editorial-workflow) for advanced Git features like branching and Pull Requests. - -### 2. Visual Editing -Tina supports visual editing for sites using React (and soon Vue & Svelte). This means your content creators get a live preview when editing content. This allows you to give content creators a site-builder experience with block-based editing that feels similar to Wix or Squarespace. - -## Enterprise Features -For Tina Cloud Business and Enterprise customers, Tina’s editorial workflow makes working on Branches and making Pull Requests user friendly. - - - -## Who's using Tina? -Tina is used by agencies, Fortune 500 companies, and governments to power various types of sites. Tina can scale to sites with 10’s of thousands of Markdown-based pages, such as [smashingmagazine.com](smashingmagazine.com). - -## Resources -* [Tina Documentation](https://tina.io/docs/) -* 20-minute video tutorial with Tina's architect [https://www.youtube.com/watch?v=PcgnJDILv4w](https://www.youtube.com/watch?v=PcgnJDILv4w) -* 5-part tutorial video series [here](https://tina.io/blog/Introducing-the-Deep-Dive-Video-Series/) -* [Tina for Enterprise](https://tina.io/enterprise/) diff --git a/src/site/headless-cms/tritan-cms.md b/src/site/headless-cms/tritan-cms.md deleted file mode 100644 index df94cd57b..000000000 --- a/src/site/headless-cms/tritan-cms.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: TriTan CMS -repo: parkerj/TriTan-CMS -homepage: https://github.com/parkerj/TriTan-CMS -twitter: tritan_cms -opensource: "Yes" -typeofcms: "API Driven" -supportedgenerators: - - All -description: TriTan CMS is a developer centric, headless, or nearly headless CMS. ---- -## TriTan CMS -TriTan CMS is a developer centric, lightweight content management system (CMS) and content management framework (CMF). It is easy to install, easy to manage, and easy to extend. The majority of TriTan's codebase is derived from WordPress, however, TriTan is not a fork of WordPress. It also should not be seen as a replacement for WordPress, Drupal, Joomla or any of the top used CMS's out there. - -The main purpose of TriTan is to give developer's an option that is geared toward how they think, how they code, and how they build websites. Although you can use TriTan for your traditional CMS needs, you can also use it to build API centric applications. diff --git a/src/site/headless-cms/troglio.md b/src/site/headless-cms/troglio.md deleted file mode 100644 index ac3738cbc..000000000 --- a/src/site/headless-cms/troglio.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Troglio -homepage: https://troglio.com/ -twitter: try_troglio -opensource: "No" -typeofcms: "Git-based" -supportedgenerators: - - All -description: Turn Trello into a CMS -images: - - path: /img/cms/troglio-1.png - - path: /img/cms/troglio-2.gif - - path: /img/cms/troglio-3.gif ---- - -# Power your apps and websites from Trello - -**Troglio** turns any Trello board into a headless **CMS** : connect any site or app to manage its content from Trello cards. - -Writers can write using **markdown**, **TOML** or the Custom Fields Power-up to author their content from anywhere, **even offline !** - -Developers can use data as they please without being tied to a provider or a database. - -This results in amazing collaborations between authors and developers offering literally no limits to what can be built. - - -# Features - -- Connect with any of **Github**, **Gitlab**, **Bibucket** or connect to any **custom endpoint accepting POST** -- **Master configs**: propagate default properties across cards from one central place. No need to repeat properties over and over again and make mass changes from one place. -- **Previews**: after a small change in your templates logic, Troglio helps generating live previews right from Trello cards. -- **Supports 19 languages** but developers only get english keywords as data. (i.e: users can use `type` or `类型` indiferently, developers will always get the value under the property in its english form `type`) -- **Common properties out of the box**: `title`, `type`, `template`, `layout`, `published`, `permalink`, `slug`... -- **Customizable permalinks**: content is affected an URL based on customizable permalinks rules simplifying routing a lot ! -- Kinds: **cards automatically inherits a `kind`** between any of `single`, `list` or `home`. This is very handy to adapt templates. (inspired from `Hugo` static site generator) -- **Add custom fields** to fill templates -- **Group data from other cards**: using the `add` property, it is possible to attach several cards content into another one. - - -*Why Trello ?* - -Trello is a simple collaboration tool really intuitive to organize ideas into lists, brainstorm, follow projects and more. This simplicity makes editing content a breeze for authors: they have a really neat and broad vision of their content in a single board. Plus, an important point to note is that Trello is available in any smartphone and **works offline** !! This means authors can edit content from anywhere literally. - - - -*Why use Troglio instead of Trello's API ?* - -Troglio comes with all the tools you expect from a classic CMS: custom types, publish/draft logic, template override... and even live previews ! Using TOML, authors can enrich content with more structured data leading to endless possibilities. -Finally, the most important part of Troglio is that it is an opninionated framework to manage apps and websites content from Trello: it removes the need for each developers to think about implementation details and Troglio helps get started right away. Examples, tutorials, starters, support... are all the benefits given from having a common framework to work with instead of being isolated :) -Don't be shy and help us enhance Troglio's experience by submitting an issue in [our Github repo](https://github.com/Troglio/troglio). - - - -# Get started - -**IMPORTANT:** Troglio is an indpendant power-up and thus has to be installed manually as a custom power-up: **it is not available in the public listings of Trello**, [here is why](https://github.com/Troglio/troglio#user-content-why-troglio-is-not-available-directly-into-trello-). - -To install Troglio and to see all its features, check our complete guide at [https://troglio.com/guide](https://troglio.com/guide). - - -# Support - -Support is centralized in our Github repo at [Troglio/troglio](https://github.com/Troglio/troglio), please feel free to post any suggestions and issues there :) - diff --git a/src/site/headless-cms/typewriter.md b/src/site/headless-cms/typewriter.md deleted file mode 100644 index a71cd8ce8..000000000 --- a/src/site/headless-cms/typewriter.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Typewriter -homepage: https://www.typewriter.cloud/ -twitter: typewritersoft -opensource: "No" -typeofcms: "API Driven" -supportedgenerators: - - All -description: Typewriter is a simple yet flexible headless CMS that works with any platform you want to use. ---- -## Typewriter Cloud CMS - -Typewriter is a headless, API-focused content management system that works with any platform you want to use. Create pages and collections of documents and combine them to build a powerful content provider for your API-driven website or app. Save yourself time and money by uncoupling your frontend from your CMS and the headaches of server maintenance. diff --git a/src/site/headless-cms/umbraco-heartcore.md b/src/site/headless-cms/umbraco-heartcore.md deleted file mode 100644 index a3cafd692..000000000 --- a/src/site/headless-cms/umbraco-heartcore.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Umbraco Heartcore -repo: umbraco/Umbraco-cms -homepage: https://umbraco.com/products/umbraco-heartcore/ -twitter: umbraco -opensource: "No" -typeofcms: "API Driven" -supportedgenerators: - - All -description: Umbraco Heartcore is a headless CMS with an editor experience like no other. On top of a managed RESTful and graphQL API and CDN, you'll get a powerful backoffice to structure, organize and create content in a fast and efficient manner. -images: - - path: /img/cms/umbraco-heartcore-backoffice.png - - path: /img/cms/umbraco-heartcore-channels.png - - path: /img/cms/umbraco-heartcore-cdn.png - - path: /img/cms/umbraco-heartcore-webhooks.gif ---- - -Umbraco Heartcore is a headless CMS with a strong core. This means you will get a backend and editor experience that makes working with content delightful, structured, logical and scalable. - -The strong core allows you to worry less about time-consuming administrative tasks and lets you focus on what's important: creating great content and displaying it beautifully on any frontend you build. - -### Managed, serviced and updated Headless CMS - -With Umbraco Heartcore you don't need to worry about keeping an extra codebase up to date - it’s taken care of it for you. - -This not only covers the backend, which is kept updated and secure, but also the API. Umbraco Heartcore comes with a managed API, which means all of your content is automatically exposed via the RESTful API, without you having to worry about keeping it updated. - -Of course this also means that all the new features that are added along the way will be automatically added to your projects ([see roadmap for upcoming features](https://umbraco.com/products/roadmap/)). - -Umbraco Heartcore - -### Smooth editing experience - -Umbraco Heartcore’s content management experience is largely based on the Open Source Umbraco CMS. It has been around since 2005 and has always had one focus: making content management simpler and more intuitive for developers and editors alike. - -Since the beginning it has kept improving and all the best content management features from the CMS has been put into Umbraco Heartcore - the Headless CMS - giving you a delightful experience when creating and managing content. - -The editor experience is called **Infinite Editing**, which helps reduce interruptions in your workflow. Infinite Editing allows you to create, manage and publish content - anything from multilingual content to rich media such as images and videos - without ever losing track of the context. - -Umbraco Heartcore - -### CDN included in all projects - -To ensure that users get the best user experience every time they visit your frontend - no matter where on the globe they might be - Umbraco Heartcore includes Cloudflare CDN. With a Content Delivery Network from Cloudflare you get a stable platform and fast delivery of your content to any of your frontends. - -The CDN is taken care of (just like the managed API and backend), so you don't have to worry about yet another service to manage. And best of all - CDN is included in all pricing tiers. No matter the size of your project and your other needs, you'll always have a rock-solid CDN to power your content. - -Umbraco Heartcore - -### Webhooks lets you integrate with anything - -Webhooks allow you to set up triggers in Umbraco Heartcore that will send a POST request to a URL that you define. This allows you to set up solutions where the platforms you connect to Umbraco Heartcore are notified when content is saved or published, so they can react to what happens in the CMS. - -With Webhooks being part of Heartcore, you can hookup to Ecommerce, Line of business apps, build Environments or anything else that you'll need. This enables you to use all the best-of-breed tools you love, without compromising on your workflows. - -Umbraco Heartcore - -### Front-end agnostic - -Do you already have a preferred tech stack that you want to use to display your amazing content? No problem! - -With Umbraco Heartcore you can essentially use anything that supports HTTP. And with the different (and expanding) client libraries your developers are provided with a little code to get started without any steep learning curve or code-language barrier. - -Umbraco uses .NET, but even if you've never worked with Umbraco or .NET before, you won't need to worry about it to build websites, apps or screens powered by Umbraco Heartcore. You can get up and running with your project in no time in the programming languages you feel confident in! - -### Try Umbraco Heartcore - -Umbraco Heartcore is a paid and managed product, but you can take a free 14-day trial if you’re interested to test it out before you buy it. [You can get started right here](https://umbraco.com/try-umbraco-heartcore/). - -Links for further info: -* [Umbraco Heartcore](https://umbraco.com/products/umbraco-heartcore/) -* [Pricing](https://umbraco.com/umbraco-heartcore-pricing/) -* [Documentation](https://our.umbraco.com/documentation/Umbraco-Heartcore/) diff --git a/src/site/headless-cms/unite-cms.md b/src/site/headless-cms/unite-cms.md deleted file mode 100644 index 5d4ad9f8e..000000000 --- a/src/site/headless-cms/unite-cms.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: unite cms -repo: unite-cms/unite-cms -homepage: https://unitecms.io/ -opensource: "Yes" -typeofcms: "API Driven" -supportedgenerators: - - All -description: Really flexible headless CMS, built on top of Symfony and GraphQL. ---- -## unite cms -unite cms allows you to connect and manage all your digital project's data in one single backend. With its headless architecture and powerful GraphQL API, you can display your content on any device and every project. Being Open-Source and built on Symfony 4 makes unite cms robust and easily extensible. diff --git a/src/site/headless-cms/usecue-cms.md b/src/site/headless-cms/usecue-cms.md deleted file mode 100644 index 9de02631f..000000000 --- a/src/site/headless-cms/usecue-cms.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Usecue CMS -homepage: https://cms.usecue.com -opensource: "No" -typeofcms: "Git-based" -supportedgenerators: - - Hugo -description: A Git-based CMS for the Hugo Static Site Generator. Manage your site's content with zero config. ---- -## Usecue CMS -A Git-based CMS for the Hugo Static Site Generator. Manage your site's content with zero config. - -Turn your code into a CMS and create the perfect customer experience for your Hugo website. Made possible by our integrated hosting solution. - -### Features - - Zero config - - Multi user support - - Multilingual support - - Mobile first layout - - Instant previews - - Instant deploys - - Integrated analytics - - WYSIWYG editor - - Shortcode support - - Smart linking - - Reference counter - - Form handling - - Spam filter - - Hosting failover - - Instant pageloads - - Full Git support - - Commit messages - - Image resizing - - Image caching - - SVG support - - Daily rebuilds diff --git a/src/site/headless-cms/versioned.md b/src/site/headless-cms/versioned.md deleted file mode 100644 index c6bfad341..000000000 --- a/src/site/headless-cms/versioned.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Versioned -homepage: https://www.versioned.io -twitter: VersionedCMS -opensource: "Yes" -typeofcms: "API Driven" -supportedgenerators: - - All -description: Versioned is an open source CMS API and admin UI based on Node.js/MongoDB/Vue.js ---- -## Versioned - -An admin UI and API backend that deliver content faster and cheaper to your website and mobile apps. Supports custom content types with relationships, versioning, and publishing. - -### Fully Managed and 100% Open Source - -No software development or operations required. Let your team focus on what they do best - building your product. The fact that all software is [open source](https://github.com/versioned) gives you flexibility and ownership. - -### Dedicated Database/Storage/Search - -Connect best in breed services like MongoDB Atlas, Algolia, and Cloudinary for scalable numbers of documents and files, less vendor lock-in, more control and direct access to your data. - -### Two-Way Relationships - -Flexible two-way (parent-child and child-parent) relationships between content types which allow you to navigate both up and down your content graph. diff --git a/src/site/headless-cms/wagtail.md b/src/site/headless-cms/wagtail.md deleted file mode 100644 index f9aef6b50..000000000 --- a/src/site/headless-cms/wagtail.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Wagtail -homepage: https://wagtail.org/ -repo: wagtail/wagtail -twitter: wagtailcms -opensource: "Yes" -typeofcms: "API Driven" -supportedgenerators: - - All -description: Wagtail is the leading open-source Python CMS. Based on Django, it supports both traditional and headless sites via REST and GraphQL APIs. -images: - - path: /img/cms/wagtail-page-editor.png ---- - -Wagtail is an open-source CMS built on the Django web framework, focused on flexibility and user experience. - -Its major features are: - -- **StreamField**. An intuitive block-based page editor, so authors control how content is displayed and how data is organised. -- **Page tree**. A tree structure for the site’s pages, that makes content easy to find and organise. -- **Customizable page types**. Using Django models to easily create and extend a custom architecture. -- **Snippets**. Reusable components that editors can use over and over again. -- **Advanced image management**. Image library organisation, custom cropping tools, and advanced image optimisations. - -Built upon Django, Wagtail projects can leverage an ecosystem of thousands of [Django packages](https://djangopackages.org/), as well as Wagtail-specific plugins. - -## Headless features - -Since Wagtail is built on the Django framework, you can integrate all Django features and third-party plugins. For example, if you don't want to use Wagtail's built-in REST API, you can build your own using [Django REST framework](https://www.django-rest-framework.org). - -View the official Wagtail [Are we headless yet?](https://areweheadlessyet.wagtail.org/) website for an overview of Wagtail’s features for headless projects, such as: - -- The [REST API](https://areweheadlessyet.wagtail.org/rest-api) to access site contents. -- Available [GraphQL packages](https://areweheadlessyet.wagtail.org/graphql). -- How to process [rich text](https://areweheadlessyet.wagtail.org/rich-text) based upon the needs of the site generator. -- And more details about common requirements, specific site generators, and hosting platforms. - -## GraphQL usage - -By using [wagtail-grapple](https://github.com/torchbox/wagtail-grapple), you can build GraphQL endpoints on a model-by-model basis as quickly as possible with a simple configuration. The library provides support for the following: - -- Annotation-based schema generation -- Built-in support for Page, Snippets, Image, Documents, Media, Settings, Redirects models. -- Search and pagination -- Jamstack website preview functionality built with GraphQL subscriptions - -## Jamstack sites built with Wagtail - -Currently, there are governments, nonprofits, and publications using Wagtail on Jamstack. Here are prominent examples: - -- [NASA Jet Propulsion Laboratory](https://www.jpl.nasa.gov/) – Nuxt -- [Hong Kong M+ Museum](https://www.mplus.org.hk/en/) – Nuxt -- [Visit Sweden](https://visitsweden.com/) – Next.js - -## Popular Resources - -- [Are we headless yet?](https://areweheadlessyet.wagtail.org/) – Overview of all the ins and outs of Wagtail on the Jamstack. -- [wagtail.org](https://wagtail.org/) – Official website. -- [guide.wagtail.org](https://guide.wagtail.org/) – User documentation. -- [docs.wagtail.org](https://docs.wagtail.org/) – Developer documentation. -- [wagtail.org/roadmap](https://wagtail.org/roadmap) – Public roadmap. diff --git a/src/site/headless-cms/webiny.md b/src/site/headless-cms/webiny.md deleted file mode 100644 index e78a81b5d..000000000 --- a/src/site/headless-cms/webiny.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: Webiny -repo: webiny/webiny-js -homepage: https://www.webiny.com/ -twitter: WebinyCMS -opensource: "Yes" -typeofcms: "API Driven" -supportedgenerators: - - All -description: Webiny is an highly customizable, scalable, serverless CMS that you can host on your own AWS account. It offers you enterprise-grade functionality while keeping your data within the secure perimeter of your own infrastructure. -images: - - path: /img/cms/webiny-headless-cms.gif - - path: /img/cms/webiny-file-manager.gif ---- - -## Get Started - -Create a new Webiny app by running: - -
      - -``` -npx create-webiny-project my-webiny-project -``` - -
      - -Or try our starters for [Gatsby](https://github.com/webiny/gatsby-starter-webiny) or [Next.js](https://github.com/webiny/nextjs-starter-webiny) - -
      - -## Four Applications in One - -- **Headless CMS** for writing and storing your articles, blog posts, and page content -- **File Manager** to store your images, videos and other files that are served via CDN -- **Page Builder** so you can build static landing pages easily without involvement from developers -- **Form Builder** to make forms and receive submissions without needing a 3rd party or an engineering team - -
      - -## Enterprise CMS for Custom Web Development - -Webiny provides a **framework** for your teams to build your own **unique product**. It is built to be **highly customizable:** you can modify the admin UI, the GraphQL resolvers, and even scaffold, build and deploy entirely new applications! All of this is achieved through composable, pluginable architecture using TypeScript, React, GraphQL, Recoil, Pulumi and a host of other exciting, modern, community accepted tools and libraries. - -✅ GraphQL based. ✅ Open Source. ✅ Built-in File Manager. ✅ Internationalization. ✅ Multi-site. ✅ Static Page Builder. - -
      - -## Decouple Marketing Needs from Engineering - -You don’t want your engineers to spend time fixing headlines and moving pixels on the screen. With Webiny, your marketing team has the full control to create and manage content (including content models themselves), landing pages, files and forms across multiple web properties. - -We created Webiny with **developers in mind**. It’s a single platform built with community accepted tools and libraries that's made to be extensible. Webiny has a fully fledged plugin ecosystem which you can use to change the user interface, modify GraphQL resolvers, add new fields, and generally repurpose Webiny into the framework for your business. - - -
      - -## The Power and Freedom of Open Source - -Businesses rely on Webiny because they see the value in open source tooling they can customize to their own needs. Although many organisations will leverage the features we've already built into Webiny, others will use a team of developers to modify it to their needs. That's something you simply cannot do with a SAAS platform. - -
      - -## Your Data Under Your Terms - -Don't be a tenant in someone else's system. Keep your data in your own cloud, under your own security perimeter, obeying your compliance requirements. Unlock greater performance by storing and delivering content closer to your users. - -
      - -## Infinite Scalability - -No need to spend weeks building and managing a fault-tolerant infrastructure. With Webiny that’s included. Webiny runs on highly-scalable fault-tolerant serverless services that scale in and out in seconds. You don’t need to do night shifts anymore! - -
      - -## The Future is Serverless - -We're really excited by Serverless. We're sure in the future it will be the way how we create most, if not all, web applications. Webiny makes it real easy. **You need an AWS account**, and the AWS cli set up locally before you begin. Once you have done that it's a single command to deploy. Now you can define your content models (or let your users do it), and start writing your content! - -
      - - -## Using Webiny You Get the Full Spectrum of Serverless Benefits Out of the Box - -* High-availability and fault tolerance built in -* 99.999999999% (11 9’s) of data durability -* Event-driven scalability - pay for what you use -* Enterprise-grade secure and scalable ACL -* Great performance using a global CDN -* DDoS Protection of your APIs - -
      - -## Get Started - -Get started: [Getting Started Docs](https://www.webiny.com/docs) - -## Resources - -[Docs](https://www.webiny.com/docs) • [Community](https://www.webiny.com/slack) • [Youtube](https://www.youtube.com/webiny) • [GitHub](https://github.com/webiny/webiny-js) • [Why Webiny](https://www.webiny.com/why-webiny/) \ No newline at end of file diff --git a/src/site/headless-cms/wordpress.md b/src/site/headless-cms/wordpress.md deleted file mode 100644 index c6e44b70d..000000000 --- a/src/site/headless-cms/wordpress.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: WordPress -repo: WordPress/WordPress -homepage: https://wordpress.org/ -twitter: WordPress -opensource: "Yes" -typeofcms: "API Driven" -supportedgenerators: - - All -description: The WordPress CMS enables headless development through a built-in REST API and offers extensions to enable methods like GraphQL via a rich plugin ecosystem. ---- -## What Is WordPress? - -WordPress is currently the most popular CMS on the internet today, used by everyone from small DIY bloggers to small/mid-sized agencies and complex enterprises. Using the built-in REST API, WordPress can power amazing headless experiences while providing content editors and managers an extensible and familiar publishing interface. - -## Using WordPress as a Headless CMS - -The WordPress CMS already gives site developers a method for server-side rendering (SSR) using themes based on PHP templates, but the platform also offers a robust and extensible REST API that allows developers to create headless sites and apps using any manner of frontend technologies. - -### REST API - -The [WordPress REST API](https://developer.wordpress.org/rest-api/) has been a stable feature of the platform for a number of years, and offers structured access to site content and settings over HTTP. Using existing patterns, developers can extend the API to support custom content types or create unique routes that support any use case that can be created with PHP and its associated libraries and tools. - -### WPGraphQL - -Using the extensible nature of WordPress' plugin APIs, developers of headless sites can take advantage of the [WPGraphQL plugin](https://www.wpgraphql.com/) to interact with their site's content using GraphQL. diff --git a/src/site/headless-cms/zestyio.md b/src/site/headless-cms/zestyio.md deleted file mode 100644 index a2e1d384c..000000000 --- a/src/site/headless-cms/zestyio.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Zesty.io -homepage: https://www.zesty.io/ -twitter: zestyio -opensource: "No" -typeofcms: "API Driven" -supportedgenerators: - - All -description: Zesty.io is a hybrid CMS that allows you to generate content APIs, custom endpoints, and more! ---- - -[Zesty.io](https://www.zesty.io/) is a hybrid CMS that allows you to generate content APIs, custom endpoints, and more! Works with virtually any static site generator. - -Check out our [documentation](https://zesty.org/) and [educational videos on YouTube](https://www.youtube.com/channel/UCvv6GLq8I-SJQ3ECEb1OswA). diff --git a/src/site/img/cms/Flycode_Jam_Step1.png b/src/site/img/cms/Flycode_Jam_Step1.png deleted file mode 100644 index a4b641e94..000000000 Binary files a/src/site/img/cms/Flycode_Jam_Step1.png and /dev/null differ diff --git a/src/site/img/cms/Flycode_Jam_Step2.png b/src/site/img/cms/Flycode_Jam_Step2.png deleted file mode 100644 index d4b5566c9..000000000 Binary files a/src/site/img/cms/Flycode_Jam_Step2.png and /dev/null differ diff --git a/src/site/img/cms/Flycode_Jam_Step3.png b/src/site/img/cms/Flycode_Jam_Step3.png deleted file mode 100644 index 45afcff03..000000000 Binary files a/src/site/img/cms/Flycode_Jam_Step3.png and /dev/null differ diff --git a/src/site/img/cms/agitcms.png b/src/site/img/cms/agitcms.png deleted file mode 100644 index b86caa9e6..000000000 Binary files a/src/site/img/cms/agitcms.png and /dev/null differ diff --git a/src/site/img/cms/airship-cms1.jpg b/src/site/img/cms/airship-cms1.jpg deleted file mode 100644 index eca78baad..000000000 Binary files a/src/site/img/cms/airship-cms1.jpg and /dev/null differ diff --git a/src/site/img/cms/airship-cms2.jpg b/src/site/img/cms/airship-cms2.jpg deleted file mode 100644 index 3c0e1a32d..000000000 Binary files a/src/site/img/cms/airship-cms2.jpg and /dev/null differ diff --git a/src/site/img/cms/airship-cms3.jpg b/src/site/img/cms/airship-cms3.jpg deleted file mode 100644 index 251e19a35..000000000 Binary files a/src/site/img/cms/airship-cms3.jpg and /dev/null differ diff --git a/src/site/img/cms/airship-cms4.jpg b/src/site/img/cms/airship-cms4.jpg deleted file mode 100644 index e291b8444..000000000 Binary files a/src/site/img/cms/airship-cms4.jpg and /dev/null differ diff --git a/src/site/img/cms/airship-cms5.jpg b/src/site/img/cms/airship-cms5.jpg deleted file mode 100644 index 52d9b5f93..000000000 Binary files a/src/site/img/cms/airship-cms5.jpg and /dev/null differ diff --git a/src/site/img/cms/airship-cms6.jpg b/src/site/img/cms/airship-cms6.jpg deleted file mode 100644 index 810931bb3..000000000 Binary files a/src/site/img/cms/airship-cms6.jpg and /dev/null differ diff --git a/src/site/img/cms/airship-cms7.jpg b/src/site/img/cms/airship-cms7.jpg deleted file mode 100644 index 3b2de88d9..000000000 Binary files a/src/site/img/cms/airship-cms7.jpg and /dev/null differ diff --git a/src/site/img/cms/airship-cms8.png b/src/site/img/cms/airship-cms8.png deleted file mode 100644 index 737281d13..000000000 Binary files a/src/site/img/cms/airship-cms8.png and /dev/null differ diff --git a/src/site/img/cms/airship-cms9.png b/src/site/img/cms/airship-cms9.png deleted file mode 100644 index e4b6e0047..000000000 Binary files a/src/site/img/cms/airship-cms9.png and /dev/null differ diff --git a/src/site/img/cms/alinea.png b/src/site/img/cms/alinea.png deleted file mode 100644 index badd2da77..000000000 Binary files a/src/site/img/cms/alinea.png and /dev/null differ diff --git a/src/site/img/cms/apirocket-1.jpg b/src/site/img/cms/apirocket-1.jpg deleted file mode 100644 index 43e1d5df7..000000000 Binary files a/src/site/img/cms/apirocket-1.jpg and /dev/null differ diff --git a/src/site/img/cms/apirocket-2.jpg b/src/site/img/cms/apirocket-2.jpg deleted file mode 100644 index 88b9a6529..000000000 Binary files a/src/site/img/cms/apirocket-2.jpg and /dev/null differ diff --git a/src/site/img/cms/apito-console-api.png b/src/site/img/cms/apito-console-api.png deleted file mode 100644 index 6d4c83902..000000000 Binary files a/src/site/img/cms/apito-console-api.png and /dev/null differ diff --git a/src/site/img/cms/apito-console-content.png b/src/site/img/cms/apito-console-content.png deleted file mode 100644 index a1c51b977..000000000 Binary files a/src/site/img/cms/apito-console-content.png and /dev/null differ diff --git a/src/site/img/cms/apito-console-model.png b/src/site/img/cms/apito-console-model.png deleted file mode 100644 index 595a06152..000000000 Binary files a/src/site/img/cms/apito-console-model.png and /dev/null differ diff --git a/src/site/img/cms/apito-console-project-space.png b/src/site/img/cms/apito-console-project-space.png deleted file mode 100644 index 62e3878bf..000000000 Binary files a/src/site/img/cms/apito-console-project-space.png and /dev/null differ diff --git a/src/site/img/cms/artgen-content.png b/src/site/img/cms/artgen-content.png deleted file mode 100644 index ece53e083..000000000 Binary files a/src/site/img/cms/artgen-content.png and /dev/null differ diff --git a/src/site/img/cms/artgen-no-code.png b/src/site/img/cms/artgen-no-code.png deleted file mode 100644 index 24ebe730b..000000000 Binary files a/src/site/img/cms/artgen-no-code.png and /dev/null differ diff --git a/src/site/img/cms/artgen-vdatabase.png b/src/site/img/cms/artgen-vdatabase.png deleted file mode 100644 index f4691ba3c..000000000 Binary files a/src/site/img/cms/artgen-vdatabase.png and /dev/null differ diff --git a/src/site/img/cms/bageldb-intro.png b/src/site/img/cms/bageldb-intro.png deleted file mode 100644 index d0a2f58cf..000000000 Binary files a/src/site/img/cms/bageldb-intro.png and /dev/null differ diff --git a/src/site/img/cms/bloomreach_delivery_options.png b/src/site/img/cms/bloomreach_delivery_options.png deleted file mode 100644 index 9d136eec1..000000000 Binary files a/src/site/img/cms/bloomreach_delivery_options.png and /dev/null differ diff --git a/src/site/img/cms/bloomreach_headless_cms.png b/src/site/img/cms/bloomreach_headless_cms.png deleted file mode 100644 index 16d2b23e3..000000000 Binary files a/src/site/img/cms/bloomreach_headless_cms.png and /dev/null differ diff --git a/src/site/img/cms/brill_cms.jpg b/src/site/img/cms/brill_cms.jpg deleted file mode 100644 index 18424c7b4..000000000 Binary files a/src/site/img/cms/brill_cms.jpg and /dev/null differ diff --git a/src/site/img/cms/builder-editor.png b/src/site/img/cms/builder-editor.png deleted file mode 100644 index 20318a998..000000000 Binary files a/src/site/img/cms/builder-editor.png and /dev/null differ diff --git a/src/site/img/cms/builder-visual-development-platform.png b/src/site/img/cms/builder-visual-development-platform.png deleted file mode 100644 index e089454a0..000000000 Binary files a/src/site/img/cms/builder-visual-development-platform.png and /dev/null differ diff --git a/src/site/img/cms/burdy-cms-1.png b/src/site/img/cms/burdy-cms-1.png deleted file mode 100644 index a840936a0..000000000 Binary files a/src/site/img/cms/burdy-cms-1.png and /dev/null differ diff --git a/src/site/img/cms/caisy-assets.png b/src/site/img/cms/caisy-assets.png deleted file mode 100644 index ded5d267b..000000000 Binary files a/src/site/img/cms/caisy-assets.png and /dev/null differ diff --git a/src/site/img/cms/caisy-blueprints.png b/src/site/img/cms/caisy-blueprints.png deleted file mode 100644 index ccff1180d..000000000 Binary files a/src/site/img/cms/caisy-blueprints.png and /dev/null differ diff --git a/src/site/img/cms/caisy-content.png b/src/site/img/cms/caisy-content.png deleted file mode 100644 index 6c366a1f0..000000000 Binary files a/src/site/img/cms/caisy-content.png and /dev/null differ diff --git a/src/site/img/cms/caisy-graphql-playground.png b/src/site/img/cms/caisy-graphql-playground.png deleted file mode 100644 index d6dfcbc3d..000000000 Binary files a/src/site/img/cms/caisy-graphql-playground.png and /dev/null differ diff --git a/src/site/img/cms/caisy-overview-search.png b/src/site/img/cms/caisy-overview-search.png deleted file mode 100644 index 258450c6e..000000000 Binary files a/src/site/img/cms/caisy-overview-search.png and /dev/null differ diff --git a/src/site/img/cms/coisas-basic.png b/src/site/img/cms/coisas-basic.png deleted file mode 100644 index 6a9437afe..000000000 Binary files a/src/site/img/cms/coisas-basic.png and /dev/null differ diff --git a/src/site/img/cms/coisas-expanded.png b/src/site/img/cms/coisas-expanded.png deleted file mode 100644 index 10106d266..000000000 Binary files a/src/site/img/cms/coisas-expanded.png and /dev/null differ diff --git a/src/site/img/cms/coisas-preview.png b/src/site/img/cms/coisas-preview.png deleted file mode 100644 index e0461b808..000000000 Binary files a/src/site/img/cms/coisas-preview.png and /dev/null differ diff --git a/src/site/img/cms/comfortable-1.jpg b/src/site/img/cms/comfortable-1.jpg deleted file mode 100644 index 52f8ccbbe..000000000 Binary files a/src/site/img/cms/comfortable-1.jpg and /dev/null differ diff --git a/src/site/img/cms/comfortable-2.jpg b/src/site/img/cms/comfortable-2.jpg deleted file mode 100644 index 353abd4c3..000000000 Binary files a/src/site/img/cms/comfortable-2.jpg and /dev/null differ diff --git a/src/site/img/cms/comfortable-3.png b/src/site/img/cms/comfortable-3.png deleted file mode 100644 index 59f11e8a2..000000000 Binary files a/src/site/img/cms/comfortable-3.png and /dev/null differ diff --git a/src/site/img/cms/contember-edit-page-without-shadow.png b/src/site/img/cms/contember-edit-page-without-shadow.png deleted file mode 100644 index 4c02ac8bd..000000000 Binary files a/src/site/img/cms/contember-edit-page-without-shadow.png and /dev/null differ diff --git a/src/site/img/cms/craft-entry-type-settings.png b/src/site/img/cms/craft-entry-type-settings.png deleted file mode 100644 index 26d73d155..000000000 Binary files a/src/site/img/cms/craft-entry-type-settings.png and /dev/null differ diff --git a/src/site/img/cms/craft-graphiql.png b/src/site/img/cms/craft-graphiql.png deleted file mode 100644 index 4070c68ad..000000000 Binary files a/src/site/img/cms/craft-graphiql.png and /dev/null differ diff --git a/src/site/img/cms/craft-live-preview.png b/src/site/img/cms/craft-live-preview.png deleted file mode 100644 index 6b2a22074..000000000 Binary files a/src/site/img/cms/craft-live-preview.png and /dev/null differ diff --git a/src/site/img/cms/crystallize-JAMStack-ecommerce-boilerplate.png b/src/site/img/cms/crystallize-JAMStack-ecommerce-boilerplate.png deleted file mode 100644 index 9493b369a..000000000 Binary files a/src/site/img/cms/crystallize-JAMStack-ecommerce-boilerplate.png and /dev/null differ diff --git a/src/site/img/cms/crystallize-beautiful-editorial-ui.png b/src/site/img/cms/crystallize-beautiful-editorial-ui.png deleted file mode 100644 index 47565be4c..000000000 Binary files a/src/site/img/cms/crystallize-beautiful-editorial-ui.png and /dev/null differ diff --git a/src/site/img/cms/crystallize-fast-graphql-api.png b/src/site/img/cms/crystallize-fast-graphql-api.png deleted file mode 100644 index 70c23533d..000000000 Binary files a/src/site/img/cms/crystallize-fast-graphql-api.png and /dev/null differ diff --git a/src/site/img/cms/crystallize-topic-maps-taxonomies.png b/src/site/img/cms/crystallize-topic-maps-taxonomies.png deleted file mode 100644 index ce7f7c155..000000000 Binary files a/src/site/img/cms/crystallize-topic-maps-taxonomies.png and /dev/null differ diff --git a/src/site/img/cms/datocms_1.png b/src/site/img/cms/datocms_1.png deleted file mode 100644 index edef024de..000000000 Binary files a/src/site/img/cms/datocms_1.png and /dev/null differ diff --git a/src/site/img/cms/datocms_2.png b/src/site/img/cms/datocms_2.png deleted file mode 100644 index 2434b75c5..000000000 Binary files a/src/site/img/cms/datocms_2.png and /dev/null differ diff --git a/src/site/img/cms/datocms_3.png b/src/site/img/cms/datocms_3.png deleted file mode 100644 index 0440efcb2..000000000 Binary files a/src/site/img/cms/datocms_3.png and /dev/null differ diff --git a/src/site/img/cms/doc2.site-author.png b/src/site/img/cms/doc2.site-author.png deleted file mode 100644 index 0fca79c37..000000000 Binary files a/src/site/img/cms/doc2.site-author.png and /dev/null differ diff --git a/src/site/img/cms/doc2.site-dev.png b/src/site/img/cms/doc2.site-dev.png deleted file mode 100644 index 5296ad176..000000000 Binary files a/src/site/img/cms/doc2.site-dev.png and /dev/null differ diff --git a/src/site/img/cms/dotcms-content-type-builder.png b/src/site/img/cms/dotcms-content-type-builder.png deleted file mode 100644 index d40ad85e1..000000000 Binary files a/src/site/img/cms/dotcms-content-type-builder.png and /dev/null differ diff --git a/src/site/img/cms/dotcms-digital-asset-management.png b/src/site/img/cms/dotcms-digital-asset-management.png deleted file mode 100644 index fd888997d..000000000 Binary files a/src/site/img/cms/dotcms-digital-asset-management.png and /dev/null differ diff --git a/src/site/img/cms/dotcms-spa-app-inline-editing.png b/src/site/img/cms/dotcms-spa-app-inline-editing.png deleted file mode 100644 index 9a7d87013..000000000 Binary files a/src/site/img/cms/dotcms-spa-app-inline-editing.png and /dev/null differ diff --git a/src/site/img/cms/editlayer-1.png b/src/site/img/cms/editlayer-1.png deleted file mode 100644 index f36fd445c..000000000 Binary files a/src/site/img/cms/editlayer-1.png and /dev/null differ diff --git a/src/site/img/cms/editlayer-2.png b/src/site/img/cms/editlayer-2.png deleted file mode 100644 index bb16deab1..000000000 Binary files a/src/site/img/cms/editlayer-2.png and /dev/null differ diff --git a/src/site/img/cms/editlayer-3.png b/src/site/img/cms/editlayer-3.png deleted file mode 100644 index 21201fc54..000000000 Binary files a/src/site/img/cms/editlayer-3.png and /dev/null differ diff --git a/src/site/img/cms/enonic-xp-content-studio-content.jpg b/src/site/img/cms/enonic-xp-content-studio-content.jpg deleted file mode 100644 index a6f056fea..000000000 Binary files a/src/site/img/cms/enonic-xp-content-studio-content.jpg and /dev/null differ diff --git a/src/site/img/cms/enonic-xp-content-studio-editing.jpg b/src/site/img/cms/enonic-xp-content-studio-editing.jpg deleted file mode 100644 index 8b7b05f2d..000000000 Binary files a/src/site/img/cms/enonic-xp-content-studio-editing.jpg and /dev/null differ diff --git a/src/site/img/cms/enonic-xp-content-studio-image-manipulation.gif b/src/site/img/cms/enonic-xp-content-studio-image-manipulation.gif deleted file mode 100644 index 085ee3ce5..000000000 Binary files a/src/site/img/cms/enonic-xp-content-studio-image-manipulation.gif and /dev/null differ diff --git a/src/site/img/cms/enonic-xp-graphql.jpg b/src/site/img/cms/enonic-xp-graphql.jpg deleted file mode 100644 index 5f63b93d3..000000000 Binary files a/src/site/img/cms/enonic-xp-graphql.jpg and /dev/null differ diff --git a/src/site/img/cms/flamelink-explainer.jpg b/src/site/img/cms/flamelink-explainer.jpg deleted file mode 100644 index 840c626cf..000000000 Binary files a/src/site/img/cms/flamelink-explainer.jpg and /dev/null differ diff --git a/src/site/img/cms/flamelink-navigation.png b/src/site/img/cms/flamelink-navigation.png deleted file mode 100644 index 4881c96dc..000000000 Binary files a/src/site/img/cms/flamelink-navigation.png and /dev/null differ diff --git a/src/site/img/cms/flamelink-slide.png b/src/site/img/cms/flamelink-slide.png deleted file mode 100644 index 35c273529..000000000 Binary files a/src/site/img/cms/flamelink-slide.png and /dev/null differ diff --git a/src/site/img/cms/flotiq-api-docs.png b/src/site/img/cms/flotiq-api-docs.png deleted file mode 100644 index 4f56e6d95..000000000 Binary files a/src/site/img/cms/flotiq-api-docs.png and /dev/null differ diff --git a/src/site/img/cms/flotiq-api-keys.png b/src/site/img/cms/flotiq-api-keys.png deleted file mode 100644 index bea1d1694..000000000 Binary files a/src/site/img/cms/flotiq-api-keys.png and /dev/null differ diff --git a/src/site/img/cms/flotiq-create-content-type-definition.png b/src/site/img/cms/flotiq-create-content-type-definition.png deleted file mode 100644 index 5a098166c..000000000 Binary files a/src/site/img/cms/flotiq-create-content-type-definition.png and /dev/null differ diff --git a/src/site/img/cms/flotiq-download-sdks.png b/src/site/img/cms/flotiq-download-sdks.png deleted file mode 100644 index dfe73e3e3..000000000 Binary files a/src/site/img/cms/flotiq-download-sdks.png and /dev/null differ diff --git a/src/site/img/cms/flotiq-postman-linkedin.png b/src/site/img/cms/flotiq-postman-linkedin.png deleted file mode 100644 index d5f6508a5..000000000 Binary files a/src/site/img/cms/flotiq-postman-linkedin.png and /dev/null differ diff --git a/src/site/img/cms/flotiq-sdk-benefits.gif b/src/site/img/cms/flotiq-sdk-benefits.gif deleted file mode 100644 index ada81e649..000000000 Binary files a/src/site/img/cms/flotiq-sdk-benefits.gif and /dev/null differ diff --git a/src/site/img/cms/flotiq-search-aggregations.png b/src/site/img/cms/flotiq-search-aggregations.png deleted file mode 100644 index aebe1e718..000000000 Binary files a/src/site/img/cms/flotiq-search-aggregations.png and /dev/null differ diff --git a/src/site/img/cms/flycode-installation-chart.png b/src/site/img/cms/flycode-installation-chart.png deleted file mode 100644 index c9e2b8742..000000000 Binary files a/src/site/img/cms/flycode-installation-chart.png and /dev/null differ diff --git a/src/site/img/cms/flycode-scan-result.png b/src/site/img/cms/flycode-scan-result.png deleted file mode 100644 index 27759ad46..000000000 Binary files a/src/site/img/cms/flycode-scan-result.png and /dev/null differ diff --git a/src/site/img/cms/forestry-ui-2.png b/src/site/img/cms/forestry-ui-2.png deleted file mode 100644 index 9eb395900..000000000 Binary files a/src/site/img/cms/forestry-ui-2.png and /dev/null differ diff --git a/src/site/img/cms/forestry-ui-3.png b/src/site/img/cms/forestry-ui-3.png deleted file mode 100644 index c2fa70838..000000000 Binary files a/src/site/img/cms/forestry-ui-3.png and /dev/null differ diff --git a/src/site/img/cms/forestry-ui.png b/src/site/img/cms/forestry-ui.png deleted file mode 100644 index 8fa8782ac..000000000 Binary files a/src/site/img/cms/forestry-ui.png and /dev/null differ diff --git a/src/site/img/cms/frontmatter-media-dashboard.png b/src/site/img/cms/frontmatter-media-dashboard.png deleted file mode 100644 index 9cc394009..000000000 Binary files a/src/site/img/cms/frontmatter-media-dashboard.png and /dev/null differ diff --git a/src/site/img/cms/frontmatter-social.png b/src/site/img/cms/frontmatter-social.png deleted file mode 100644 index 35ba58d56..000000000 Binary files a/src/site/img/cms/frontmatter-social.png and /dev/null differ diff --git a/src/site/img/cms/ghost-architecture.png b/src/site/img/cms/ghost-architecture.png deleted file mode 100644 index bcbed9125..000000000 Binary files a/src/site/img/cms/ghost-architecture.png and /dev/null differ diff --git a/src/site/img/cms/ghost-examples.png b/src/site/img/cms/ghost-examples.png deleted file mode 100644 index 1f88542bb..000000000 Binary files a/src/site/img/cms/ghost-examples.png and /dev/null differ diff --git a/src/site/img/cms/ghost-product.png b/src/site/img/cms/ghost-product.png deleted file mode 100644 index 68b1f717e..000000000 Binary files a/src/site/img/cms/ghost-product.png and /dev/null differ diff --git a/src/site/img/cms/headlesshost1.gif b/src/site/img/cms/headlesshost1.gif deleted file mode 100644 index 8c30dbf6b..000000000 Binary files a/src/site/img/cms/headlesshost1.gif and /dev/null differ diff --git a/src/site/img/cms/headlesshost1.png b/src/site/img/cms/headlesshost1.png deleted file mode 100644 index ccb3e874a..000000000 Binary files a/src/site/img/cms/headlesshost1.png and /dev/null differ diff --git a/src/site/img/cms/headlesshost2.png b/src/site/img/cms/headlesshost2.png deleted file mode 100644 index 730f7cb9e..000000000 Binary files a/src/site/img/cms/headlesshost2.png and /dev/null differ diff --git a/src/site/img/cms/headlesshost3.png b/src/site/img/cms/headlesshost3.png deleted file mode 100644 index 95e8acf23..000000000 Binary files a/src/site/img/cms/headlesshost3.png and /dev/null differ diff --git a/src/site/img/cms/hygraph-assets.png b/src/site/img/cms/hygraph-assets.png deleted file mode 100644 index e060556f5..000000000 Binary files a/src/site/img/cms/hygraph-assets.png and /dev/null differ diff --git a/src/site/img/cms/hygraph-content.png b/src/site/img/cms/hygraph-content.png deleted file mode 100644 index afb971e6c..000000000 Binary files a/src/site/img/cms/hygraph-content.png and /dev/null differ diff --git a/src/site/img/cms/hygraph-graphql-playground.png b/src/site/img/cms/hygraph-graphql-playground.png deleted file mode 100644 index 74d19ef2d..000000000 Binary files a/src/site/img/cms/hygraph-graphql-playground.png and /dev/null differ diff --git a/src/site/img/cms/hygraph-schema.png b/src/site/img/cms/hygraph-schema.png deleted file mode 100644 index e43c6649a..000000000 Binary files a/src/site/img/cms/hygraph-schema.png and /dev/null differ diff --git a/src/site/img/cms/jsharmonycms-component-editor.jpg b/src/site/img/cms/jsharmonycms-component-editor.jpg deleted file mode 100644 index c047cd7d7..000000000 Binary files a/src/site/img/cms/jsharmonycms-component-editor.jpg and /dev/null differ diff --git a/src/site/img/cms/jsharmonycms-existing-web-applications.jpg b/src/site/img/cms/jsharmonycms-existing-web-applications.jpg deleted file mode 100644 index 413c534f8..000000000 Binary files a/src/site/img/cms/jsharmonycms-existing-web-applications.jpg and /dev/null differ diff --git a/src/site/img/cms/jsharmonycms-page-editor.jpg b/src/site/img/cms/jsharmonycms-page-editor.jpg deleted file mode 100644 index 0cd67b563..000000000 Binary files a/src/site/img/cms/jsharmonycms-page-editor.jpg and /dev/null differ diff --git a/src/site/img/cms/jsharmonycms-publish-targets.jpg b/src/site/img/cms/jsharmonycms-publish-targets.jpg deleted file mode 100644 index 22543782d..000000000 Binary files a/src/site/img/cms/jsharmonycms-publish-targets.jpg and /dev/null differ diff --git a/src/site/img/cms/jsharmonycms-revisions.jpg b/src/site/img/cms/jsharmonycms-revisions.jpg deleted file mode 100644 index e246a554f..000000000 Binary files a/src/site/img/cms/jsharmonycms-revisions.jpg and /dev/null differ diff --git a/src/site/img/cms/jsharmonycms-sitemap.jpg b/src/site/img/cms/jsharmonycms-sitemap.jpg deleted file mode 100644 index f93af6c15..000000000 Binary files a/src/site/img/cms/jsharmonycms-sitemap.jpg and /dev/null differ diff --git a/src/site/img/cms/keystone-admin-ui.png b/src/site/img/cms/keystone-admin-ui.png deleted file mode 100644 index 4abce8a90..000000000 Binary files a/src/site/img/cms/keystone-admin-ui.png and /dev/null differ diff --git a/src/site/img/cms/keystone-graphQL-playground.png b/src/site/img/cms/keystone-graphQL-playground.png deleted file mode 100644 index 0d645d00a..000000000 Binary files a/src/site/img/cms/keystone-graphQL-playground.png and /dev/null differ diff --git a/src/site/img/cms/keystone-hero.png b/src/site/img/cms/keystone-hero.png deleted file mode 100644 index 7dad2ead6..000000000 Binary files a/src/site/img/cms/keystone-hero.png and /dev/null differ diff --git a/src/site/img/cms/keystone-js-schema-example.png b/src/site/img/cms/keystone-js-schema-example.png deleted file mode 100644 index b6015c940..000000000 Binary files a/src/site/img/cms/keystone-js-schema-example.png and /dev/null differ diff --git a/src/site/img/cms/leadcms-accounts-management.png b/src/site/img/cms/leadcms-accounts-management.png deleted file mode 100644 index 238cf35ca..000000000 Binary files a/src/site/img/cms/leadcms-accounts-management.png and /dev/null differ diff --git a/src/site/img/cms/leadcms-conent-management.png b/src/site/img/cms/leadcms-conent-management.png deleted file mode 100644 index bd4f8dd1d..000000000 Binary files a/src/site/img/cms/leadcms-conent-management.png and /dev/null differ diff --git a/src/site/img/cms/leadcms-contacts-management.png b/src/site/img/cms/leadcms-contacts-management.png deleted file mode 100644 index f1f3d7db2..000000000 Binary files a/src/site/img/cms/leadcms-contacts-management.png and /dev/null differ diff --git a/src/site/img/cms/leadcms-content-growth-dashboard.png b/src/site/img/cms/leadcms-content-growth-dashboard.png deleted file mode 100644 index ebc4436ff..000000000 Binary files a/src/site/img/cms/leadcms-content-growth-dashboard.png and /dev/null differ diff --git a/src/site/img/cms/leadcms-deployments-management.png b/src/site/img/cms/leadcms-deployments-management.png deleted file mode 100644 index af4db00a6..000000000 Binary files a/src/site/img/cms/leadcms-deployments-management.png and /dev/null differ diff --git a/src/site/img/cms/leadcms-generate-landing-page-with-AI.png b/src/site/img/cms/leadcms-generate-landing-page-with-AI.png deleted file mode 100644 index 5ba8d1f5a..000000000 Binary files a/src/site/img/cms/leadcms-generate-landing-page-with-AI.png and /dev/null differ diff --git a/src/site/img/cms/leadcms-live-preview-as-you-edit.png b/src/site/img/cms/leadcms-live-preview-as-you-edit.png deleted file mode 100644 index 281cd601f..000000000 Binary files a/src/site/img/cms/leadcms-live-preview-as-you-edit.png and /dev/null differ diff --git a/src/site/img/cms/leadcms-media-management.png b/src/site/img/cms/leadcms-media-management.png deleted file mode 100644 index f1cbfcd93..000000000 Binary files a/src/site/img/cms/leadcms-media-management.png and /dev/null differ diff --git a/src/site/img/cms/lexascms-1.jpg b/src/site/img/cms/lexascms-1.jpg deleted file mode 100644 index 09089d84c..000000000 Binary files a/src/site/img/cms/lexascms-1.jpg and /dev/null differ diff --git a/src/site/img/cms/magnolia-admincentral.png b/src/site/img/cms/magnolia-admincentral.png deleted file mode 100644 index 643f23adf..000000000 Binary files a/src/site/img/cms/magnolia-admincentral.png and /dev/null differ diff --git a/src/site/img/cms/magnolia-component-sheet.png b/src/site/img/cms/magnolia-component-sheet.png deleted file mode 100755 index a1d0506e4..000000000 Binary files a/src/site/img/cms/magnolia-component-sheet.png and /dev/null differ diff --git a/src/site/img/cms/magnolia-component.png b/src/site/img/cms/magnolia-component.png deleted file mode 100755 index ba2e1279c..000000000 Binary files a/src/site/img/cms/magnolia-component.png and /dev/null differ diff --git a/src/site/img/cms/magnolia-devs-and-marketers.png b/src/site/img/cms/magnolia-devs-and-marketers.png deleted file mode 100755 index b4d45f515..000000000 Binary files a/src/site/img/cms/magnolia-devs-and-marketers.png and /dev/null differ diff --git a/src/site/img/cms/magnolia-spa-editing.jpg b/src/site/img/cms/magnolia-spa-editing.jpg deleted file mode 100644 index 381802ebe..000000000 Binary files a/src/site/img/cms/magnolia-spa-editing.jpg and /dev/null differ diff --git a/src/site/img/cms/manifest-admin-panel.svg b/src/site/img/cms/manifest-admin-panel.svg deleted file mode 100644 index ea928839b..000000000 --- a/src/site/img/cms/manifest-admin-panel.svg +++ /dev/null @@ -1,750 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/site/img/cms/manifest-auth.png b/src/site/img/cms/manifest-auth.png deleted file mode 100644 index 86c3a0577..000000000 Binary files a/src/site/img/cms/manifest-auth.png and /dev/null differ diff --git a/src/site/img/cms/manifest-code.png b/src/site/img/cms/manifest-code.png deleted file mode 100644 index 496af3498..000000000 Binary files a/src/site/img/cms/manifest-code.png and /dev/null differ diff --git a/src/site/img/cms/manifest-login.png b/src/site/img/cms/manifest-login.png deleted file mode 100644 index c0f526c27..000000000 Binary files a/src/site/img/cms/manifest-login.png and /dev/null differ diff --git a/src/site/img/cms/middleman.png b/src/site/img/cms/middleman.png deleted file mode 100644 index c685e5643..000000000 Binary files a/src/site/img/cms/middleman.png and /dev/null differ diff --git a/src/site/img/cms/netlify-cms1.png b/src/site/img/cms/netlify-cms1.png deleted file mode 100644 index b0946f258..000000000 Binary files a/src/site/img/cms/netlify-cms1.png and /dev/null differ diff --git a/src/site/img/cms/netlify-cms2.png b/src/site/img/cms/netlify-cms2.png deleted file mode 100644 index 23ec9bd8d..000000000 Binary files a/src/site/img/cms/netlify-cms2.png and /dev/null differ diff --git a/src/site/img/cms/netlify-cms3.png b/src/site/img/cms/netlify-cms3.png deleted file mode 100644 index deeaf7be6..000000000 Binary files a/src/site/img/cms/netlify-cms3.png and /dev/null differ diff --git a/src/site/img/cms/notcms.jpg b/src/site/img/cms/notcms.jpg deleted file mode 100644 index ec90f35cd..000000000 Binary files a/src/site/img/cms/notcms.jpg and /dev/null differ diff --git a/src/site/img/cms/pages-cms-1.png b/src/site/img/cms/pages-cms-1.png deleted file mode 100644 index 6a9455277..000000000 Binary files a/src/site/img/cms/pages-cms-1.png and /dev/null differ diff --git a/src/site/img/cms/pages-cms-2.png b/src/site/img/cms/pages-cms-2.png deleted file mode 100644 index 4c1f9ab04..000000000 Binary files a/src/site/img/cms/pages-cms-2.png and /dev/null differ diff --git a/src/site/img/cms/pages-cms-3.png b/src/site/img/cms/pages-cms-3.png deleted file mode 100644 index 80209452b..000000000 Binary files a/src/site/img/cms/pages-cms-3.png and /dev/null differ diff --git a/src/site/img/cms/plasmic.png b/src/site/img/cms/plasmic.png deleted file mode 100644 index fbecf7660..000000000 Binary files a/src/site/img/cms/plasmic.png and /dev/null differ diff --git a/src/site/img/cms/pmkin-editor.png b/src/site/img/cms/pmkin-editor.png deleted file mode 100644 index 4fd1a2b86..000000000 Binary files a/src/site/img/cms/pmkin-editor.png and /dev/null differ diff --git a/src/site/img/cms/prose-choose-language.jpg b/src/site/img/cms/prose-choose-language.jpg deleted file mode 100644 index bfd7b2eef..000000000 Binary files a/src/site/img/cms/prose-choose-language.jpg and /dev/null differ diff --git a/src/site/img/cms/prose-edit-mode.jpg b/src/site/img/cms/prose-edit-mode.jpg deleted file mode 100644 index 4d054edad..000000000 Binary files a/src/site/img/cms/prose-edit-mode.jpg and /dev/null differ diff --git a/src/site/img/cms/prose-files-browser.jpg b/src/site/img/cms/prose-files-browser.jpg deleted file mode 100644 index 0584c842f..000000000 Binary files a/src/site/img/cms/prose-files-browser.jpg and /dev/null differ diff --git a/src/site/img/cms/prose-insert-image.jpg b/src/site/img/cms/prose-insert-image.jpg deleted file mode 100644 index 00b0a0e50..000000000 Binary files a/src/site/img/cms/prose-insert-image.jpg and /dev/null differ diff --git a/src/site/img/cms/prose-metadata.jpg b/src/site/img/cms/prose-metadata.jpg deleted file mode 100644 index 407c01b51..000000000 Binary files a/src/site/img/cms/prose-metadata.jpg and /dev/null differ diff --git a/src/site/img/cms/prose-preview-mode.jpg b/src/site/img/cms/prose-preview-mode.jpg deleted file mode 100644 index 38b433947..000000000 Binary files a/src/site/img/cms/prose-preview-mode.jpg and /dev/null differ diff --git a/src/site/img/cms/prose-save-changes.jpg b/src/site/img/cms/prose-save-changes.jpg deleted file mode 100644 index b8bb18f2a..000000000 Binary files a/src/site/img/cms/prose-save-changes.jpg and /dev/null differ diff --git a/src/site/img/cms/reactbricks-code.gif b/src/site/img/cms/reactbricks-code.gif deleted file mode 100644 index 8007635c6..000000000 Binary files a/src/site/img/cms/reactbricks-code.gif and /dev/null differ diff --git a/src/site/img/cms/reactbricks-visual-editing.gif b/src/site/img/cms/reactbricks-visual-editing.gif deleted file mode 100644 index 850f1e34f..000000000 Binary files a/src/site/img/cms/reactbricks-visual-editing.gif and /dev/null differ diff --git a/src/site/img/cms/sanity-content-studio.png b/src/site/img/cms/sanity-content-studio.png deleted file mode 100644 index 7e343c7b5..000000000 Binary files a/src/site/img/cms/sanity-content-studio.png and /dev/null differ diff --git a/src/site/img/cms/sanity-hosted-backend.png b/src/site/img/cms/sanity-hosted-backend.png deleted file mode 100644 index b95df9410..000000000 Binary files a/src/site/img/cms/sanity-hosted-backend.png and /dev/null differ diff --git a/src/site/img/cms/sanity-portable-text-editor.png b/src/site/img/cms/sanity-portable-text-editor.png deleted file mode 100644 index e8fcac195..000000000 Binary files a/src/site/img/cms/sanity-portable-text-editor.png and /dev/null differ diff --git a/src/site/img/cms/sanity-studio.png b/src/site/img/cms/sanity-studio.png deleted file mode 100644 index ca4d0357b..000000000 Binary files a/src/site/img/cms/sanity-studio.png and /dev/null differ diff --git a/src/site/img/cms/scrivito-1.png b/src/site/img/cms/scrivito-1.png deleted file mode 100644 index 16d56ebb3..000000000 Binary files a/src/site/img/cms/scrivito-1.png and /dev/null differ diff --git a/src/site/img/cms/sitepins-editor.png b/src/site/img/cms/sitepins-editor.png deleted file mode 100644 index 506d74f12..000000000 Binary files a/src/site/img/cms/sitepins-editor.png and /dev/null differ diff --git a/src/site/img/cms/slicknode-1.png b/src/site/img/cms/slicknode-1.png deleted file mode 100644 index 4af26a8c5..000000000 Binary files a/src/site/img/cms/slicknode-1.png and /dev/null differ diff --git a/src/site/img/cms/spearly-manager.png b/src/site/img/cms/spearly-manager.png deleted file mode 100644 index 7efeb8164..000000000 Binary files a/src/site/img/cms/spearly-manager.png and /dev/null differ diff --git a/src/site/img/cms/spinal-1.png b/src/site/img/cms/spinal-1.png deleted file mode 100644 index d545f627e..000000000 Binary files a/src/site/img/cms/spinal-1.png and /dev/null differ diff --git a/src/site/img/cms/spinal-2.png b/src/site/img/cms/spinal-2.png deleted file mode 100644 index b776e5131..000000000 Binary files a/src/site/img/cms/spinal-2.png and /dev/null differ diff --git a/src/site/img/cms/spinal-3.png b/src/site/img/cms/spinal-3.png deleted file mode 100644 index 70ff4619c..000000000 Binary files a/src/site/img/cms/spinal-3.png and /dev/null differ diff --git a/src/site/img/cms/strapi-content-manager.png b/src/site/img/cms/strapi-content-manager.png deleted file mode 100644 index a6c1735a5..000000000 Binary files a/src/site/img/cms/strapi-content-manager.png and /dev/null differ diff --git a/src/site/img/cms/strapi-content-types-builder.png b/src/site/img/cms/strapi-content-types-builder.png deleted file mode 100644 index 19ccaf51e..000000000 Binary files a/src/site/img/cms/strapi-content-types-builder.png and /dev/null differ diff --git a/src/site/img/cms/strapi-media-library.png b/src/site/img/cms/strapi-media-library.png deleted file mode 100644 index bc4edc372..000000000 Binary files a/src/site/img/cms/strapi-media-library.png and /dev/null differ diff --git a/src/site/img/cms/strapi-settings-edit-roles.png b/src/site/img/cms/strapi-settings-edit-roles.png deleted file mode 100644 index 076a6c4e0..000000000 Binary files a/src/site/img/cms/strapi-settings-edit-roles.png and /dev/null differ diff --git a/src/site/img/cms/suncel-1.png b/src/site/img/cms/suncel-1.png deleted file mode 100644 index 189f44386..000000000 Binary files a/src/site/img/cms/suncel-1.png and /dev/null differ diff --git a/src/site/img/cms/suncel-2.png b/src/site/img/cms/suncel-2.png deleted file mode 100644 index b07e40066..000000000 Binary files a/src/site/img/cms/suncel-2.png and /dev/null differ diff --git a/src/site/img/cms/superdesk-ui.png b/src/site/img/cms/superdesk-ui.png deleted file mode 100644 index c5a734d2f..000000000 Binary files a/src/site/img/cms/superdesk-ui.png and /dev/null differ diff --git a/src/site/img/cms/sveltia-cms1.png b/src/site/img/cms/sveltia-cms1.png deleted file mode 100644 index ce0dd54dd..000000000 Binary files a/src/site/img/cms/sveltia-cms1.png and /dev/null differ diff --git a/src/site/img/cms/sveltia-cms2.webp b/src/site/img/cms/sveltia-cms2.webp deleted file mode 100644 index 78f3b7de0..000000000 Binary files a/src/site/img/cms/sveltia-cms2.webp and /dev/null differ diff --git a/src/site/img/cms/sveltia-cms3.webp b/src/site/img/cms/sveltia-cms3.webp deleted file mode 100644 index 6b9627c84..000000000 Binary files a/src/site/img/cms/sveltia-cms3.webp and /dev/null differ diff --git a/src/site/img/cms/sveltia-cms4.webp b/src/site/img/cms/sveltia-cms4.webp deleted file mode 100644 index 643747d0d..000000000 Binary files a/src/site/img/cms/sveltia-cms4.webp and /dev/null differ diff --git a/src/site/img/cms/sveltia-cms5.webp b/src/site/img/cms/sveltia-cms5.webp deleted file mode 100644 index 98c7b4767..000000000 Binary files a/src/site/img/cms/sveltia-cms5.webp and /dev/null differ diff --git a/src/site/img/cms/sveltia-cms6.webp b/src/site/img/cms/sveltia-cms6.webp deleted file mode 100644 index 90f86f248..000000000 Binary files a/src/site/img/cms/sveltia-cms6.webp and /dev/null differ diff --git a/src/site/img/cms/takeshape-add-content-type.png b/src/site/img/cms/takeshape-add-content-type.png deleted file mode 100644 index ced60a3fe..000000000 Binary files a/src/site/img/cms/takeshape-add-content-type.png and /dev/null differ diff --git a/src/site/img/cms/takeshape-dashboard.png b/src/site/img/cms/takeshape-dashboard.png deleted file mode 100644 index c258feccc..000000000 Binary files a/src/site/img/cms/takeshape-dashboard.png and /dev/null differ diff --git a/src/site/img/cms/takeshape-project-list.png b/src/site/img/cms/takeshape-project-list.png deleted file mode 100644 index d84edaab6..000000000 Binary files a/src/site/img/cms/takeshape-project-list.png and /dev/null differ diff --git a/src/site/img/cms/terminuscms-change-request.png b/src/site/img/cms/terminuscms-change-request.png deleted file mode 100644 index aff1bef7e..000000000 Binary files a/src/site/img/cms/terminuscms-change-request.png and /dev/null differ diff --git a/src/site/img/cms/terminuscms-clone-project.png b/src/site/img/cms/terminuscms-clone-project.png deleted file mode 100644 index c2163dd74..000000000 Binary files a/src/site/img/cms/terminuscms-clone-project.png and /dev/null differ diff --git a/src/site/img/cms/terminuscms-curate-content.png b/src/site/img/cms/terminuscms-curate-content.png deleted file mode 100644 index 66b843477..000000000 Binary files a/src/site/img/cms/terminuscms-curate-content.png and /dev/null differ diff --git a/src/site/img/cms/terminuscms-query.png b/src/site/img/cms/terminuscms-query.png deleted file mode 100644 index 0772fc3d4..000000000 Binary files a/src/site/img/cms/terminuscms-query.png and /dev/null differ diff --git a/src/site/img/cms/terminuscms-schema-model.png b/src/site/img/cms/terminuscms-schema-model.png deleted file mode 100644 index a176b912d..000000000 Binary files a/src/site/img/cms/terminuscms-schema-model.png and /dev/null differ diff --git a/src/site/img/cms/troglio-1.png b/src/site/img/cms/troglio-1.png deleted file mode 100644 index 46d4f3ba2..000000000 Binary files a/src/site/img/cms/troglio-1.png and /dev/null differ diff --git a/src/site/img/cms/troglio-2.gif b/src/site/img/cms/troglio-2.gif deleted file mode 100644 index 64c90ac89..000000000 Binary files a/src/site/img/cms/troglio-2.gif and /dev/null differ diff --git a/src/site/img/cms/troglio-3.gif b/src/site/img/cms/troglio-3.gif deleted file mode 100644 index 45d6fef4f..000000000 Binary files a/src/site/img/cms/troglio-3.gif and /dev/null differ diff --git a/src/site/img/cms/umbraco-heartcore-backoffice.png b/src/site/img/cms/umbraco-heartcore-backoffice.png deleted file mode 100644 index 49a8de406..000000000 Binary files a/src/site/img/cms/umbraco-heartcore-backoffice.png and /dev/null differ diff --git a/src/site/img/cms/umbraco-heartcore-cdn.png b/src/site/img/cms/umbraco-heartcore-cdn.png deleted file mode 100644 index 2af6682b8..000000000 Binary files a/src/site/img/cms/umbraco-heartcore-cdn.png and /dev/null differ diff --git a/src/site/img/cms/umbraco-heartcore-channels.png b/src/site/img/cms/umbraco-heartcore-channels.png deleted file mode 100644 index 7782bc04f..000000000 Binary files a/src/site/img/cms/umbraco-heartcore-channels.png and /dev/null differ diff --git a/src/site/img/cms/umbraco-heartcore-webhooks.gif b/src/site/img/cms/umbraco-heartcore-webhooks.gif deleted file mode 100644 index 7195f26d2..000000000 Binary files a/src/site/img/cms/umbraco-heartcore-webhooks.gif and /dev/null differ diff --git a/src/site/img/cms/wagtail-page-editor.png b/src/site/img/cms/wagtail-page-editor.png deleted file mode 100644 index b8f724c02..000000000 Binary files a/src/site/img/cms/wagtail-page-editor.png and /dev/null differ diff --git a/src/site/img/cms/webiny-file-manager.gif b/src/site/img/cms/webiny-file-manager.gif deleted file mode 100644 index 338c7fcdb..000000000 Binary files a/src/site/img/cms/webiny-file-manager.gif and /dev/null differ diff --git a/src/site/img/cms/webiny-form-builder.gif b/src/site/img/cms/webiny-form-builder.gif deleted file mode 100644 index feb9c941e..000000000 Binary files a/src/site/img/cms/webiny-form-builder.gif and /dev/null differ diff --git a/src/site/img/cms/webiny-headless-cms.gif b/src/site/img/cms/webiny-headless-cms.gif deleted file mode 100644 index 25097b0f1..000000000 Binary files a/src/site/img/cms/webiny-headless-cms.gif and /dev/null differ diff --git a/src/site/img/cms/webiny-page-builder.gif b/src/site/img/cms/webiny-page-builder.gif deleted file mode 100644 index 713e6a7f1..000000000 Binary files a/src/site/img/cms/webiny-page-builder.gif and /dev/null differ diff --git a/src/site/img/conf-2021-tout.png b/src/site/img/conf-2021-tout.png deleted file mode 100644 index 9160e502f..000000000 Binary files a/src/site/img/conf-2021-tout.png and /dev/null differ diff --git a/src/site/img/conf-2022-tout-new.png b/src/site/img/conf-2022-tout-new.png deleted file mode 100644 index 5fc614467..000000000 Binary files a/src/site/img/conf-2022-tout-new.png and /dev/null differ diff --git a/src/site/img/conf-2022-tout.png b/src/site/img/conf-2022-tout.png deleted file mode 100644 index 997901225..000000000 Binary files a/src/site/img/conf-2022-tout.png and /dev/null differ diff --git a/src/site/img/examples/Nobel-laureates.jpg b/src/site/img/examples/Nobel-laureates.jpg deleted file mode 100644 index 80243095d..000000000 Binary files a/src/site/img/examples/Nobel-laureates.jpg and /dev/null differ diff --git a/src/site/img/examples/about-emircan-erkul.jpg b/src/site/img/examples/about-emircan-erkul.jpg deleted file mode 100644 index c75152298..000000000 Binary files a/src/site/img/examples/about-emircan-erkul.jpg and /dev/null differ diff --git a/src/site/img/examples/aboutmonica.png b/src/site/img/examples/aboutmonica.png deleted file mode 100644 index 3df4d9fba..000000000 Binary files a/src/site/img/examples/aboutmonica.png and /dev/null differ diff --git a/src/site/img/examples/acpbrasil.jpg b/src/site/img/examples/acpbrasil.jpg deleted file mode 100644 index 1e1749f65..000000000 Binary files a/src/site/img/examples/acpbrasil.jpg and /dev/null differ diff --git a/src/site/img/examples/ahaquiz.jpg b/src/site/img/examples/ahaquiz.jpg deleted file mode 100644 index 5ac7f0f1f..000000000 Binary files a/src/site/img/examples/ahaquiz.jpg and /dev/null differ diff --git a/src/site/img/examples/amaissaude.jpg b/src/site/img/examples/amaissaude.jpg deleted file mode 100644 index 97c3995e9..000000000 Binary files a/src/site/img/examples/amaissaude.jpg and /dev/null differ diff --git a/src/site/img/examples/amzscout-blog.jpg b/src/site/img/examples/amzscout-blog.jpg deleted file mode 100644 index 9ec642644..000000000 Binary files a/src/site/img/examples/amzscout-blog.jpg and /dev/null differ diff --git a/src/site/img/examples/analysis-tools.jpg b/src/site/img/examples/analysis-tools.jpg deleted file mode 100644 index 26bea2f8d..000000000 Binary files a/src/site/img/examples/analysis-tools.jpg and /dev/null differ diff --git a/src/site/img/examples/andrew-zeller.jpg b/src/site/img/examples/andrew-zeller.jpg deleted file mode 100644 index b9fc6b206..000000000 Binary files a/src/site/img/examples/andrew-zeller.jpg and /dev/null differ diff --git a/src/site/img/examples/anhek.png b/src/site/img/examples/anhek.png deleted file mode 100644 index 4e8874581..000000000 Binary files a/src/site/img/examples/anhek.png and /dev/null differ diff --git a/src/site/img/examples/appristas.jpg b/src/site/img/examples/appristas.jpg deleted file mode 100644 index d7e33dec5..000000000 Binary files a/src/site/img/examples/appristas.jpg and /dev/null differ diff --git a/src/site/img/examples/armexcnc.jpg b/src/site/img/examples/armexcnc.jpg deleted file mode 100644 index b1fdd95d3..000000000 Binary files a/src/site/img/examples/armexcnc.jpg and /dev/null differ diff --git a/src/site/img/examples/art-of-memory.png b/src/site/img/examples/art-of-memory.png deleted file mode 100644 index e47c7e26a..000000000 Binary files a/src/site/img/examples/art-of-memory.png and /dev/null differ diff --git a/src/site/img/examples/assortment.png b/src/site/img/examples/assortment.png deleted file mode 100644 index da0af26db..000000000 Binary files a/src/site/img/examples/assortment.png and /dev/null differ diff --git a/src/site/img/examples/ayushsharma.in.jpg b/src/site/img/examples/ayushsharma.in.jpg deleted file mode 100755 index 90f29c6a0..000000000 Binary files a/src/site/img/examples/ayushsharma.in.jpg and /dev/null differ diff --git a/src/site/img/examples/beararchery.jpg b/src/site/img/examples/beararchery.jpg deleted file mode 100644 index 448ed2983..000000000 Binary files a/src/site/img/examples/beararchery.jpg and /dev/null differ diff --git a/src/site/img/examples/bejamas.jpg b/src/site/img/examples/bejamas.jpg deleted file mode 100644 index e5b4bebf1..000000000 Binary files a/src/site/img/examples/bejamas.jpg and /dev/null differ diff --git a/src/site/img/examples/binaria.png b/src/site/img/examples/binaria.png deleted file mode 100644 index 154e4c909..000000000 Binary files a/src/site/img/examples/binaria.png and /dev/null differ diff --git a/src/site/img/examples/blogzen.jpg b/src/site/img/examples/blogzen.jpg deleted file mode 100644 index e632b81fa..000000000 Binary files a/src/site/img/examples/blogzen.jpg and /dev/null differ diff --git a/src/site/img/examples/bolajiayodeji.png b/src/site/img/examples/bolajiayodeji.png deleted file mode 100644 index cdf4f2110..000000000 Binary files a/src/site/img/examples/bolajiayodeji.png and /dev/null differ diff --git a/src/site/img/examples/boxpiper.png b/src/site/img/examples/boxpiper.png deleted file mode 100644 index bb183d997..000000000 Binary files a/src/site/img/examples/boxpiper.png and /dev/null differ diff --git a/src/site/img/examples/breezometer.png b/src/site/img/examples/breezometer.png deleted file mode 100644 index 792c8f1d4..000000000 Binary files a/src/site/img/examples/breezometer.png and /dev/null differ diff --git a/src/site/img/examples/browsersmart.png b/src/site/img/examples/browsersmart.png deleted file mode 100644 index 73f55d93a..000000000 Binary files a/src/site/img/examples/browsersmart.png and /dev/null differ diff --git a/src/site/img/examples/butcherbox.jpg b/src/site/img/examples/butcherbox.jpg deleted file mode 100644 index 0fac89531..000000000 Binary files a/src/site/img/examples/butcherbox.jpg and /dev/null differ diff --git a/src/site/img/examples/cafe-cuvee.jpg b/src/site/img/examples/cafe-cuvee.jpg deleted file mode 100644 index ff0d27093..000000000 Binary files a/src/site/img/examples/cafe-cuvee.jpg and /dev/null differ diff --git a/src/site/img/examples/camilia-coiffure.jpg b/src/site/img/examples/camilia-coiffure.jpg deleted file mode 100644 index 231125520..000000000 Binary files a/src/site/img/examples/camilia-coiffure.jpg and /dev/null differ diff --git a/src/site/img/examples/changelog.png b/src/site/img/examples/changelog.png deleted file mode 100644 index ad6c96251..000000000 Binary files a/src/site/img/examples/changelog.png and /dev/null differ diff --git a/src/site/img/examples/chris.jpg b/src/site/img/examples/chris.jpg deleted file mode 100644 index a2c5ded30..000000000 Binary files a/src/site/img/examples/chris.jpg and /dev/null differ diff --git a/src/site/img/examples/citrix-product-documentation.jpg b/src/site/img/examples/citrix-product-documentation.jpg deleted file mode 100644 index fe3eed8e0..000000000 Binary files a/src/site/img/examples/citrix-product-documentation.jpg and /dev/null differ diff --git a/src/site/img/examples/code-bushi.jpg b/src/site/img/examples/code-bushi.jpg deleted file mode 100644 index 984acd625..000000000 Binary files a/src/site/img/examples/code-bushi.jpg and /dev/null differ diff --git a/src/site/img/examples/covid-tracking-project.jpg b/src/site/img/examples/covid-tracking-project.jpg deleted file mode 100644 index b01c40611..000000000 Binary files a/src/site/img/examples/covid-tracking-project.jpg and /dev/null differ diff --git a/src/site/img/examples/creativedesignsguru.png b/src/site/img/examples/creativedesignsguru.png deleted file mode 100644 index 5f2dd8625..000000000 Binary files a/src/site/img/examples/creativedesignsguru.png and /dev/null differ diff --git a/src/site/img/examples/data-science-workshops.jpg b/src/site/img/examples/data-science-workshops.jpg deleted file mode 100644 index 80be77d74..000000000 Binary files a/src/site/img/examples/data-science-workshops.jpg and /dev/null differ diff --git a/src/site/img/examples/defiprime.png b/src/site/img/examples/defiprime.png deleted file mode 100644 index b6137a98f..000000000 Binary files a/src/site/img/examples/defiprime.png and /dev/null differ diff --git a/src/site/img/examples/delaney.jpg b/src/site/img/examples/delaney.jpg deleted file mode 100644 index 9c7cf2f30..000000000 Binary files a/src/site/img/examples/delaney.jpg and /dev/null differ diff --git a/src/site/img/examples/design-systems-repo.jpg b/src/site/img/examples/design-systems-repo.jpg deleted file mode 100644 index bb4ae5369..000000000 Binary files a/src/site/img/examples/design-systems-repo.jpg and /dev/null differ diff --git a/src/site/img/examples/devcommunitypage.png b/src/site/img/examples/devcommunitypage.png deleted file mode 100644 index d1db74e24..000000000 Binary files a/src/site/img/examples/devcommunitypage.png and /dev/null differ diff --git a/src/site/img/examples/developerforlife.jpg b/src/site/img/examples/developerforlife.jpg deleted file mode 100644 index 5d68e29ec..000000000 Binary files a/src/site/img/examples/developerforlife.jpg and /dev/null differ diff --git a/src/site/img/examples/devpodcasts.png b/src/site/img/examples/devpodcasts.png deleted file mode 100644 index 8c5dad67b..000000000 Binary files a/src/site/img/examples/devpodcasts.png and /dev/null differ diff --git a/src/site/img/examples/digital-nature.png b/src/site/img/examples/digital-nature.png deleted file mode 100644 index 7b344d791..000000000 Binary files a/src/site/img/examples/digital-nature.png and /dev/null differ diff --git a/src/site/img/examples/discoverit.png b/src/site/img/examples/discoverit.png deleted file mode 100644 index d789ab382..000000000 Binary files a/src/site/img/examples/discoverit.png and /dev/null differ diff --git a/src/site/img/examples/dog-world.png b/src/site/img/examples/dog-world.png deleted file mode 100644 index 0b2393e78..000000000 Binary files a/src/site/img/examples/dog-world.png and /dev/null differ diff --git a/src/site/img/examples/dreamhost.png b/src/site/img/examples/dreamhost.png deleted file mode 100644 index 38f13b8f9..000000000 Binary files a/src/site/img/examples/dreamhost.png and /dev/null differ diff --git a/src/site/img/examples/dudos.jpg b/src/site/img/examples/dudos.jpg deleted file mode 100644 index 28a1290e6..000000000 Binary files a/src/site/img/examples/dudos.jpg and /dev/null differ diff --git a/src/site/img/examples/duet.png b/src/site/img/examples/duet.png deleted file mode 100644 index 3301931ec..000000000 Binary files a/src/site/img/examples/duet.png and /dev/null differ diff --git a/src/site/img/examples/education-lessons.jpg b/src/site/img/examples/education-lessons.jpg deleted file mode 100644 index 8c2513b3f..000000000 Binary files a/src/site/img/examples/education-lessons.jpg and /dev/null differ diff --git a/src/site/img/examples/eliancodes.jpg b/src/site/img/examples/eliancodes.jpg deleted file mode 100644 index 8b1324bd9..000000000 Binary files a/src/site/img/examples/eliancodes.jpg and /dev/null differ diff --git a/src/site/img/examples/eneaxharja.jpg b/src/site/img/examples/eneaxharja.jpg deleted file mode 100644 index 0b8d3bed4..000000000 Binary files a/src/site/img/examples/eneaxharja.jpg and /dev/null differ diff --git a/src/site/img/examples/enginpolat.png b/src/site/img/examples/enginpolat.png deleted file mode 100644 index d87ca0cfe..000000000 Binary files a/src/site/img/examples/enginpolat.png and /dev/null differ diff --git a/src/site/img/examples/essential-clinic.jpg b/src/site/img/examples/essential-clinic.jpg deleted file mode 100644 index fbe567b8e..000000000 Binary files a/src/site/img/examples/essential-clinic.jpg and /dev/null differ diff --git a/src/site/img/examples/fbacatalog.png b/src/site/img/examples/fbacatalog.png deleted file mode 100644 index e40d5dee9..000000000 Binary files a/src/site/img/examples/fbacatalog.png and /dev/null differ diff --git a/src/site/img/examples/fineway-travel-thumb.jpg b/src/site/img/examples/fineway-travel-thumb.jpg deleted file mode 100644 index cb541e38f..000000000 Binary files a/src/site/img/examples/fineway-travel-thumb.jpg and /dev/null differ diff --git a/src/site/img/examples/flamingo.png b/src/site/img/examples/flamingo.png deleted file mode 100644 index cf812c9f6..000000000 Binary files a/src/site/img/examples/flamingo.png and /dev/null differ diff --git a/src/site/img/examples/flyingcolourslife.jpg b/src/site/img/examples/flyingcolourslife.jpg deleted file mode 100644 index 071cb73ea..000000000 Binary files a/src/site/img/examples/flyingcolourslife.jpg and /dev/null differ diff --git a/src/site/img/examples/form-films.jpg b/src/site/img/examples/form-films.jpg deleted file mode 100644 index e57d0da78..000000000 Binary files a/src/site/img/examples/form-films.jpg and /dev/null differ diff --git a/src/site/img/examples/ftpihole-thumb.jpg b/src/site/img/examples/ftpihole-thumb.jpg deleted file mode 100644 index f285f2acd..000000000 Binary files a/src/site/img/examples/ftpihole-thumb.jpg and /dev/null differ diff --git a/src/site/img/examples/fullstackhq.jpg b/src/site/img/examples/fullstackhq.jpg deleted file mode 100644 index 2a1f8d5dd..000000000 Binary files a/src/site/img/examples/fullstackhq.jpg and /dev/null differ diff --git a/src/site/img/examples/galapagoseden.jpg b/src/site/img/examples/galapagoseden.jpg deleted file mode 100644 index 0a209643e..000000000 Binary files a/src/site/img/examples/galapagoseden.jpg and /dev/null differ diff --git a/src/site/img/examples/goonlinetools.png b/src/site/img/examples/goonlinetools.png deleted file mode 100644 index d5229862b..000000000 Binary files a/src/site/img/examples/goonlinetools.png and /dev/null differ diff --git a/src/site/img/examples/greenrobit.jpg b/src/site/img/examples/greenrobit.jpg deleted file mode 100644 index ce756a6eb..000000000 Binary files a/src/site/img/examples/greenrobit.jpg and /dev/null differ diff --git a/src/site/img/examples/gridhaus.jpg b/src/site/img/examples/gridhaus.jpg deleted file mode 100644 index 337ebfdc3..000000000 Binary files a/src/site/img/examples/gridhaus.jpg and /dev/null differ diff --git a/src/site/img/examples/harishv.jpg b/src/site/img/examples/harishv.jpg deleted file mode 100644 index 411033221..000000000 Binary files a/src/site/img/examples/harishv.jpg and /dev/null differ diff --git a/src/site/img/examples/helenzys.jpg b/src/site/img/examples/helenzys.jpg deleted file mode 100644 index c5e69a9a5..000000000 Binary files a/src/site/img/examples/helenzys.jpg and /dev/null differ diff --git a/src/site/img/examples/hive-index.jpg b/src/site/img/examples/hive-index.jpg deleted file mode 100644 index cf1409b06..000000000 Binary files a/src/site/img/examples/hive-index.jpg and /dev/null differ diff --git a/src/site/img/examples/hoodiehut.png b/src/site/img/examples/hoodiehut.png deleted file mode 100644 index bcfc5f89a..000000000 Binary files a/src/site/img/examples/hoodiehut.png and /dev/null differ diff --git a/src/site/img/examples/hotmart-maquinadevideos.jpg b/src/site/img/examples/hotmart-maquinadevideos.jpg deleted file mode 100644 index 514fccfba..000000000 Binary files a/src/site/img/examples/hotmart-maquinadevideos.jpg and /dev/null differ diff --git a/src/site/img/examples/hueaction.png b/src/site/img/examples/hueaction.png deleted file mode 100644 index 40c5e80a0..000000000 Binary files a/src/site/img/examples/hueaction.png and /dev/null differ diff --git a/src/site/img/examples/hungryafin.jpg b/src/site/img/examples/hungryafin.jpg deleted file mode 100644 index fe20b9386..000000000 Binary files a/src/site/img/examples/hungryafin.jpg and /dev/null differ diff --git a/src/site/img/examples/jahid.jpg b/src/site/img/examples/jahid.jpg deleted file mode 100644 index 0ab7017fb..000000000 Binary files a/src/site/img/examples/jahid.jpg and /dev/null differ diff --git a/src/site/img/examples/jake101.jpg b/src/site/img/examples/jake101.jpg deleted file mode 100644 index 2aa88e9d3..000000000 Binary files a/src/site/img/examples/jake101.jpg and /dev/null differ diff --git a/src/site/img/examples/jamstack-new-imoclub-blog.jpg b/src/site/img/examples/jamstack-new-imoclub-blog.jpg deleted file mode 100644 index d446f56ac..000000000 Binary files a/src/site/img/examples/jamstack-new-imoclub-blog.jpg and /dev/null differ diff --git a/src/site/img/examples/jasonwilkens.jpg b/src/site/img/examples/jasonwilkens.jpg deleted file mode 100644 index 5252a88bf..000000000 Binary files a/src/site/img/examples/jasonwilkens.jpg and /dev/null differ diff --git a/src/site/img/examples/jfkt4.png b/src/site/img/examples/jfkt4.png deleted file mode 100644 index ff0a17cf3..000000000 Binary files a/src/site/img/examples/jfkt4.png and /dev/null differ diff --git a/src/site/img/examples/jsonapiapp.png b/src/site/img/examples/jsonapiapp.png deleted file mode 100644 index 83d07d255..000000000 Binary files a/src/site/img/examples/jsonapiapp.png and /dev/null differ diff --git a/src/site/img/examples/lc-blog.jpg b/src/site/img/examples/lc-blog.jpg deleted file mode 100644 index 7d0205450..000000000 Binary files a/src/site/img/examples/lc-blog.jpg and /dev/null differ diff --git a/src/site/img/examples/lc.jpg b/src/site/img/examples/lc.jpg deleted file mode 100644 index 560525bc9..000000000 Binary files a/src/site/img/examples/lc.jpg and /dev/null differ diff --git a/src/site/img/examples/leonardo-dicaprio-foundation.png b/src/site/img/examples/leonardo-dicaprio-foundation.png deleted file mode 100644 index 9a0377f0c..000000000 Binary files a/src/site/img/examples/leonardo-dicaprio-foundation.png and /dev/null differ diff --git a/src/site/img/examples/levar-burton.jpg b/src/site/img/examples/levar-burton.jpg deleted file mode 100644 index e449be9c5..000000000 Binary files a/src/site/img/examples/levar-burton.jpg and /dev/null differ diff --git a/src/site/img/examples/loggermts.jpg b/src/site/img/examples/loggermts.jpg deleted file mode 100644 index e2446960b..000000000 Binary files a/src/site/img/examples/loggermts.jpg and /dev/null differ diff --git a/src/site/img/examples/lovenils.jpg b/src/site/img/examples/lovenils.jpg deleted file mode 100644 index a336b4c5a..000000000 Binary files a/src/site/img/examples/lovenils.jpg and /dev/null differ diff --git a/src/site/img/examples/mak.jpg b/src/site/img/examples/mak.jpg deleted file mode 100644 index deef9ce98..000000000 Binary files a/src/site/img/examples/mak.jpg and /dev/null differ diff --git a/src/site/img/examples/mindkit.jpg b/src/site/img/examples/mindkit.jpg deleted file mode 100644 index faaedf136..000000000 Binary files a/src/site/img/examples/mindkit.jpg and /dev/null differ diff --git a/src/site/img/examples/monogram.jpg b/src/site/img/examples/monogram.jpg deleted file mode 100644 index 25651589f..000000000 Binary files a/src/site/img/examples/monogram.jpg and /dev/null differ diff --git a/src/site/img/examples/nextjs-and-supabase-subscription-payments.png b/src/site/img/examples/nextjs-and-supabase-subscription-payments.png deleted file mode 100644 index 780d23798..000000000 Binary files a/src/site/img/examples/nextjs-and-supabase-subscription-payments.png and /dev/null differ diff --git a/src/site/img/examples/nexxus.jpg b/src/site/img/examples/nexxus.jpg deleted file mode 100644 index fc1195ec3..000000000 Binary files a/src/site/img/examples/nexxus.jpg and /dev/null differ diff --git a/src/site/img/examples/nift.png b/src/site/img/examples/nift.png deleted file mode 100644 index 67f736d7c..000000000 Binary files a/src/site/img/examples/nift.png and /dev/null differ diff --git a/src/site/img/examples/norden-soft.jpg b/src/site/img/examples/norden-soft.jpg deleted file mode 100644 index 590171d20..000000000 Binary files a/src/site/img/examples/norden-soft.jpg and /dev/null differ diff --git a/src/site/img/examples/nowaker.png b/src/site/img/examples/nowaker.png deleted file mode 100644 index 28bc4761e..000000000 Binary files a/src/site/img/examples/nowaker.png and /dev/null differ diff --git a/src/site/img/examples/nshipster.png b/src/site/img/examples/nshipster.png deleted file mode 100644 index aa93aae06..000000000 Binary files a/src/site/img/examples/nshipster.png and /dev/null differ diff --git a/src/site/img/examples/nuttifox.jpg b/src/site/img/examples/nuttifox.jpg deleted file mode 100644 index 0f9be552d..000000000 Binary files a/src/site/img/examples/nuttifox.jpg and /dev/null differ diff --git a/src/site/img/examples/nvz.png b/src/site/img/examples/nvz.png deleted file mode 100644 index bbf6ca307..000000000 Binary files a/src/site/img/examples/nvz.png and /dev/null differ diff --git a/src/site/img/examples/nyxo.jpg b/src/site/img/examples/nyxo.jpg deleted file mode 100644 index ef2a2d742..000000000 Binary files a/src/site/img/examples/nyxo.jpg and /dev/null differ diff --git a/src/site/img/examples/opengraph.jpg b/src/site/img/examples/opengraph.jpg deleted file mode 100644 index bc90553c9..000000000 Binary files a/src/site/img/examples/opengraph.jpg and /dev/null differ diff --git a/src/site/img/examples/operous.jpg b/src/site/img/examples/operous.jpg deleted file mode 100644 index be7f2f61b..000000000 Binary files a/src/site/img/examples/operous.jpg and /dev/null differ diff --git a/src/site/img/examples/pan-macmillan.jpg b/src/site/img/examples/pan-macmillan.jpg deleted file mode 100644 index a04c5ddfc..000000000 Binary files a/src/site/img/examples/pan-macmillan.jpg and /dev/null differ diff --git a/src/site/img/examples/pathtoproduct.jpg b/src/site/img/examples/pathtoproduct.jpg deleted file mode 100644 index 8fb0e7aef..000000000 Binary files a/src/site/img/examples/pathtoproduct.jpg and /dev/null differ diff --git a/src/site/img/examples/postman.jpg b/src/site/img/examples/postman.jpg deleted file mode 100644 index c59332e18..000000000 Binary files a/src/site/img/examples/postman.jpg and /dev/null differ diff --git a/src/site/img/examples/quickchart.png b/src/site/img/examples/quickchart.png deleted file mode 100644 index 33f24903f..000000000 Binary files a/src/site/img/examples/quickchart.png and /dev/null differ diff --git a/src/site/img/examples/rafartmusic.jpg b/src/site/img/examples/rafartmusic.jpg deleted file mode 100644 index 7d807b7c9..000000000 Binary files a/src/site/img/examples/rafartmusic.jpg and /dev/null differ diff --git a/src/site/img/examples/rebelonline.jpg b/src/site/img/examples/rebelonline.jpg deleted file mode 100644 index a84d20a00..000000000 Binary files a/src/site/img/examples/rebelonline.jpg and /dev/null differ diff --git a/src/site/img/examples/rightfrombasics.jpg b/src/site/img/examples/rightfrombasics.jpg deleted file mode 100644 index b079700d4..000000000 Binary files a/src/site/img/examples/rightfrombasics.jpg and /dev/null differ diff --git a/src/site/img/examples/roberskine.jpg b/src/site/img/examples/roberskine.jpg deleted file mode 100644 index 7833c848f..000000000 Binary files a/src/site/img/examples/roberskine.jpg and /dev/null differ diff --git a/src/site/img/examples/ryeandbeyondcottages.png b/src/site/img/examples/ryeandbeyondcottages.png deleted file mode 100644 index 3c72186c8..000000000 Binary files a/src/site/img/examples/ryeandbeyondcottages.png and /dev/null differ diff --git a/src/site/img/examples/rzucokiem.jpg b/src/site/img/examples/rzucokiem.jpg deleted file mode 100644 index 3694b026a..000000000 Binary files a/src/site/img/examples/rzucokiem.jpg and /dev/null differ diff --git a/src/site/img/examples/scott-young.jpg b/src/site/img/examples/scott-young.jpg deleted file mode 100644 index 783742633..000000000 Binary files a/src/site/img/examples/scott-young.jpg and /dev/null differ diff --git a/src/site/img/examples/serverless-september.png b/src/site/img/examples/serverless-september.png deleted file mode 100644 index c11748ed0..000000000 Binary files a/src/site/img/examples/serverless-september.png and /dev/null differ diff --git a/src/site/img/examples/sharpen.png b/src/site/img/examples/sharpen.png deleted file mode 100644 index 4413c87df..000000000 Binary files a/src/site/img/examples/sharpen.png and /dev/null differ diff --git a/src/site/img/examples/smokeyfro.jpg b/src/site/img/examples/smokeyfro.jpg deleted file mode 100644 index ec5945392..000000000 Binary files a/src/site/img/examples/smokeyfro.jpg and /dev/null differ diff --git a/src/site/img/examples/spendesk.png b/src/site/img/examples/spendesk.png deleted file mode 100644 index a9682baa2..000000000 Binary files a/src/site/img/examples/spendesk.png and /dev/null differ diff --git a/src/site/img/examples/stackery.jpg b/src/site/img/examples/stackery.jpg deleted file mode 100644 index 96fff0c27..000000000 Binary files a/src/site/img/examples/stackery.jpg and /dev/null differ diff --git a/src/site/img/examples/storefront.png b/src/site/img/examples/storefront.png deleted file mode 100644 index 1594ec68d..000000000 Binary files a/src/site/img/examples/storefront.png and /dev/null differ diff --git a/src/site/img/examples/supabase.png b/src/site/img/examples/supabase.png deleted file mode 100644 index 4d9788fdc..000000000 Binary files a/src/site/img/examples/supabase.png and /dev/null differ diff --git a/src/site/img/examples/supercharge-dev.jpg b/src/site/img/examples/supercharge-dev.jpg deleted file mode 100644 index fc53a5a71..000000000 Binary files a/src/site/img/examples/supercharge-dev.jpg and /dev/null differ diff --git a/src/site/img/examples/syntac.png b/src/site/img/examples/syntac.png deleted file mode 100644 index 35d98622f..000000000 Binary files a/src/site/img/examples/syntac.png and /dev/null differ diff --git a/src/site/img/examples/t2-media.png b/src/site/img/examples/t2-media.png deleted file mode 100644 index 726c407e6..000000000 Binary files a/src/site/img/examples/t2-media.png and /dev/null differ diff --git a/src/site/img/examples/takeshape.png b/src/site/img/examples/takeshape.png deleted file mode 100644 index 80ec2c284..000000000 Binary files a/src/site/img/examples/takeshape.png and /dev/null differ diff --git a/src/site/img/examples/techconfessions.jpg b/src/site/img/examples/techconfessions.jpg deleted file mode 100644 index ddc564147..000000000 Binary files a/src/site/img/examples/techconfessions.jpg and /dev/null differ diff --git a/src/site/img/examples/the-urlist.png b/src/site/img/examples/the-urlist.png deleted file mode 100644 index 89b89b520..000000000 Binary files a/src/site/img/examples/the-urlist.png and /dev/null differ diff --git a/src/site/img/examples/timbenniks.jpg b/src/site/img/examples/timbenniks.jpg deleted file mode 100755 index 517233c03..000000000 Binary files a/src/site/img/examples/timbenniks.jpg and /dev/null differ diff --git a/src/site/img/examples/tntux.jpg b/src/site/img/examples/tntux.jpg deleted file mode 100644 index 2283c4cc0..000000000 Binary files a/src/site/img/examples/tntux.jpg and /dev/null differ diff --git a/src/site/img/examples/travelengineco.jpg b/src/site/img/examples/travelengineco.jpg deleted file mode 100644 index d3ecc9c92..000000000 Binary files a/src/site/img/examples/travelengineco.jpg and /dev/null differ diff --git a/src/site/img/examples/trinet.jpg b/src/site/img/examples/trinet.jpg deleted file mode 100644 index ee448a90d..000000000 Binary files a/src/site/img/examples/trinet.jpg and /dev/null differ diff --git a/src/site/img/examples/uicardio.jpg b/src/site/img/examples/uicardio.jpg deleted file mode 100644 index ce922f9d6..000000000 Binary files a/src/site/img/examples/uicardio.jpg and /dev/null differ diff --git a/src/site/img/examples/victoria-beckham-beauty.jpg b/src/site/img/examples/victoria-beckham-beauty.jpg deleted file mode 100644 index afef1a1e6..000000000 Binary files a/src/site/img/examples/victoria-beckham-beauty.jpg and /dev/null differ diff --git a/src/site/img/examples/votreapp.png b/src/site/img/examples/votreapp.png deleted file mode 100644 index 3afa7a782..000000000 Binary files a/src/site/img/examples/votreapp.png and /dev/null differ diff --git a/src/site/img/examples/webplace-digital-agency.jpg b/src/site/img/examples/webplace-digital-agency.jpg deleted file mode 100644 index 7dfdfa8b6..000000000 Binary files a/src/site/img/examples/webplace-digital-agency.jpg and /dev/null differ diff --git a/src/site/img/examples/wedbio.png b/src/site/img/examples/wedbio.png deleted file mode 100644 index 2acf8fefa..000000000 Binary files a/src/site/img/examples/wedbio.png and /dev/null differ diff --git a/src/site/img/examples/winkt.jpg b/src/site/img/examples/winkt.jpg deleted file mode 100644 index f7556c203..000000000 Binary files a/src/site/img/examples/winkt.jpg and /dev/null differ diff --git a/src/site/img/favicons/android-chrome-192x192.png b/src/site/img/favicons/android-chrome-192x192.png deleted file mode 100644 index 0477ed3e6..000000000 Binary files a/src/site/img/favicons/android-chrome-192x192.png and /dev/null differ diff --git a/src/site/img/favicons/android-chrome-512x512.png b/src/site/img/favicons/android-chrome-512x512.png deleted file mode 100644 index c6a8e8ebc..000000000 Binary files a/src/site/img/favicons/android-chrome-512x512.png and /dev/null differ diff --git a/src/site/img/favicons/apple-touch-icon.png b/src/site/img/favicons/apple-touch-icon.png deleted file mode 100644 index b5f6cbe30..000000000 Binary files a/src/site/img/favicons/apple-touch-icon.png and /dev/null differ diff --git a/src/site/img/favicons/favicon-16x16.png b/src/site/img/favicons/favicon-16x16.png deleted file mode 100644 index 368e6cbbb..000000000 Binary files a/src/site/img/favicons/favicon-16x16.png and /dev/null differ diff --git a/src/site/img/favicons/favicon-32x32.png b/src/site/img/favicons/favicon-32x32.png deleted file mode 100644 index 428c8020d..000000000 Binary files a/src/site/img/favicons/favicon-32x32.png and /dev/null differ diff --git a/src/site/img/favicons/favicon.ico b/src/site/img/favicons/favicon.ico deleted file mode 100644 index 7c8d09fd4..000000000 Binary files a/src/site/img/favicons/favicon.ico and /dev/null differ diff --git a/src/site/img/favicons/mstile-150x150.png b/src/site/img/favicons/mstile-150x150.png deleted file mode 100644 index 6aa993032..000000000 Binary files a/src/site/img/favicons/mstile-150x150.png and /dev/null differ diff --git a/src/site/img/logo/solid/Jamstack_Icon_Black_Solid.png b/src/site/img/logo/solid/Jamstack_Icon_Black_Solid.png deleted file mode 100644 index 5ab9a7e87..000000000 Binary files a/src/site/img/logo/solid/Jamstack_Icon_Black_Solid.png and /dev/null differ diff --git a/src/site/img/logo/solid/Jamstack_Icon_Grey_Solid.png b/src/site/img/logo/solid/Jamstack_Icon_Grey_Solid.png deleted file mode 100644 index 21d445609..000000000 Binary files a/src/site/img/logo/solid/Jamstack_Icon_Grey_Solid.png and /dev/null differ diff --git a/src/site/img/logo/solid/Jamstack_Icon_Original_Solid.png b/src/site/img/logo/solid/Jamstack_Icon_Original_Solid.png deleted file mode 100644 index 08275cab0..000000000 Binary files a/src/site/img/logo/solid/Jamstack_Icon_Original_Solid.png and /dev/null differ diff --git a/src/site/img/logo/solid/Jamstack_Icon_White_Solid.png b/src/site/img/logo/solid/Jamstack_Icon_White_Solid.png deleted file mode 100644 index ee0ea4f92..000000000 Binary files a/src/site/img/logo/solid/Jamstack_Icon_White_Solid.png and /dev/null differ diff --git a/src/site/img/logo/solid/Jamstack_Logo_Black_Solid.png b/src/site/img/logo/solid/Jamstack_Logo_Black_Solid.png deleted file mode 100644 index 945c5b7c4..000000000 Binary files a/src/site/img/logo/solid/Jamstack_Logo_Black_Solid.png and /dev/null differ diff --git a/src/site/img/logo/solid/Jamstack_Logo_DarkBG_Solid.png b/src/site/img/logo/solid/Jamstack_Logo_DarkBG_Solid.png deleted file mode 100644 index 08085e166..000000000 Binary files a/src/site/img/logo/solid/Jamstack_Logo_DarkBG_Solid.png and /dev/null differ diff --git a/src/site/img/logo/solid/Jamstack_Logo_Grey_Solid.png b/src/site/img/logo/solid/Jamstack_Logo_Grey_Solid.png deleted file mode 100644 index 03e8140f4..000000000 Binary files a/src/site/img/logo/solid/Jamstack_Logo_Grey_Solid.png and /dev/null differ diff --git a/src/site/img/logo/solid/Jamstack_Logo_Original_Solid.png b/src/site/img/logo/solid/Jamstack_Logo_Original_Solid.png deleted file mode 100644 index bf4817dc1..000000000 Binary files a/src/site/img/logo/solid/Jamstack_Logo_Original_Solid.png and /dev/null differ diff --git a/src/site/img/logo/solid/Jamstack_Logo_White_Solid.png b/src/site/img/logo/solid/Jamstack_Logo_White_Solid.png deleted file mode 100644 index 3db9b7bf3..000000000 Binary files a/src/site/img/logo/solid/Jamstack_Logo_White_Solid.png and /dev/null differ diff --git a/src/site/img/logo/svg/Jamstack_Icon_Black.svg b/src/site/img/logo/svg/Jamstack_Icon_Black.svg deleted file mode 100644 index 45516bba6..000000000 --- a/src/site/img/logo/svg/Jamstack_Icon_Black.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/site/img/logo/svg/Jamstack_Icon_Grey.svg b/src/site/img/logo/svg/Jamstack_Icon_Grey.svg deleted file mode 100644 index f5b3f05c1..000000000 --- a/src/site/img/logo/svg/Jamstack_Icon_Grey.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/site/img/logo/svg/Jamstack_Icon_Original.svg b/src/site/img/logo/svg/Jamstack_Icon_Original.svg deleted file mode 100644 index e4f011af4..000000000 --- a/src/site/img/logo/svg/Jamstack_Icon_Original.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/site/img/logo/svg/Jamstack_Icon_White.svg b/src/site/img/logo/svg/Jamstack_Icon_White.svg deleted file mode 100644 index 4d563f64e..000000000 --- a/src/site/img/logo/svg/Jamstack_Icon_White.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/site/img/logo/svg/Jamstack_Logo_Black.svg b/src/site/img/logo/svg/Jamstack_Logo_Black.svg deleted file mode 100644 index 340527dbd..000000000 --- a/src/site/img/logo/svg/Jamstack_Logo_Black.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/site/img/logo/svg/Jamstack_Logo_DarkBG.svg b/src/site/img/logo/svg/Jamstack_Logo_DarkBG.svg deleted file mode 100644 index 27f67fb01..000000000 --- a/src/site/img/logo/svg/Jamstack_Logo_DarkBG.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/site/img/logo/svg/Jamstack_Logo_Grey.svg b/src/site/img/logo/svg/Jamstack_Logo_Grey.svg deleted file mode 100644 index 56ab3f646..000000000 --- a/src/site/img/logo/svg/Jamstack_Logo_Grey.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/site/img/logo/svg/Jamstack_Logo_Original.svg b/src/site/img/logo/svg/Jamstack_Logo_Original.svg deleted file mode 100644 index f5fd0c330..000000000 --- a/src/site/img/logo/svg/Jamstack_Logo_Original.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/site/img/logo/svg/Jamstack_Logo_White.svg b/src/site/img/logo/svg/Jamstack_Logo_White.svg deleted file mode 100644 index 1a1d7e9b1..000000000 --- a/src/site/img/logo/svg/Jamstack_Logo_White.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/site/img/logo/transparent/Jamstack_Icon_Black_Transparent.png b/src/site/img/logo/transparent/Jamstack_Icon_Black_Transparent.png deleted file mode 100644 index bfb77b1af..000000000 Binary files a/src/site/img/logo/transparent/Jamstack_Icon_Black_Transparent.png and /dev/null differ diff --git a/src/site/img/logo/transparent/Jamstack_Icon_Grey_Transparent.png b/src/site/img/logo/transparent/Jamstack_Icon_Grey_Transparent.png deleted file mode 100644 index 9f8fbdd63..000000000 Binary files a/src/site/img/logo/transparent/Jamstack_Icon_Grey_Transparent.png and /dev/null differ diff --git a/src/site/img/logo/transparent/Jamstack_Icon_Original_Transparent.png b/src/site/img/logo/transparent/Jamstack_Icon_Original_Transparent.png deleted file mode 100644 index d24e5210b..000000000 Binary files a/src/site/img/logo/transparent/Jamstack_Icon_Original_Transparent.png and /dev/null differ diff --git a/src/site/img/logo/transparent/Jamstack_Icon_White_Transparent.png b/src/site/img/logo/transparent/Jamstack_Icon_White_Transparent.png deleted file mode 100644 index 5c52bd98f..000000000 Binary files a/src/site/img/logo/transparent/Jamstack_Icon_White_Transparent.png and /dev/null differ diff --git a/src/site/img/logo/transparent/Jamstack_Logo_Black_Transparent.png b/src/site/img/logo/transparent/Jamstack_Logo_Black_Transparent.png deleted file mode 100644 index a7d2cfbd4..000000000 Binary files a/src/site/img/logo/transparent/Jamstack_Logo_Black_Transparent.png and /dev/null differ diff --git a/src/site/img/logo/transparent/Jamstack_Logo_DarkBG_Transparent.png b/src/site/img/logo/transparent/Jamstack_Logo_DarkBG_Transparent.png deleted file mode 100644 index 970c024bf..000000000 Binary files a/src/site/img/logo/transparent/Jamstack_Logo_DarkBG_Transparent.png and /dev/null differ diff --git a/src/site/img/logo/transparent/Jamstack_Logo_Grey_Transparent.png b/src/site/img/logo/transparent/Jamstack_Logo_Grey_Transparent.png deleted file mode 100644 index 4b711186e..000000000 Binary files a/src/site/img/logo/transparent/Jamstack_Logo_Grey_Transparent.png and /dev/null differ diff --git a/src/site/img/logo/transparent/Jamstack_Logo_Original_Transparent.png b/src/site/img/logo/transparent/Jamstack_Logo_Original_Transparent.png deleted file mode 100644 index b57d761c3..000000000 Binary files a/src/site/img/logo/transparent/Jamstack_Logo_Original_Transparent.png and /dev/null differ diff --git a/src/site/img/logo/transparent/Jamstack_Logo_White_Transparent.png b/src/site/img/logo/transparent/Jamstack_Logo_White_Transparent.png deleted file mode 100644 index 502d138d1..000000000 Binary files a/src/site/img/logo/transparent/Jamstack_Logo_White_Transparent.png and /dev/null differ diff --git a/src/site/img/og/default-og-image.png b/src/site/img/og/default-og-image.png deleted file mode 100644 index 73454b147..000000000 Binary files a/src/site/img/og/default-og-image.png and /dev/null differ diff --git a/src/site/img/og/glossary-card-bg.png b/src/site/img/og/glossary-card-bg.png deleted file mode 100644 index 1885a28d0..000000000 Binary files a/src/site/img/og/glossary-card-bg.png and /dev/null differ diff --git a/src/site/img/og/jamstack-community-survey-2022-og.png b/src/site/img/og/jamstack-community-survey-2022-og.png deleted file mode 100644 index cd1064b1f..000000000 Binary files a/src/site/img/og/jamstack-community-survey-2022-og.png and /dev/null differ diff --git a/src/site/img/og/jamstack-community-survey-og.png b/src/site/img/og/jamstack-community-survey-og.png deleted file mode 100644 index 771ad2f26..000000000 Binary files a/src/site/img/og/jamstack-community-survey-og.png and /dev/null differ diff --git a/src/site/img/svg/architecture.svg b/src/site/img/svg/architecture.svg deleted file mode 100644 index 992b929d8..000000000 --- a/src/site/img/svg/architecture.svg +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/site/img/svg/device-scene.svg b/src/site/img/svg/device-scene.svg deleted file mode 100644 index 6db73d45b..000000000 --- a/src/site/img/svg/device-scene.svg +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/site/img/svg/diagram.svg b/src/site/img/svg/diagram.svg deleted file mode 100644 index fd671730b..000000000 --- a/src/site/img/svg/diagram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/site/img/svg/icon-chat.svg b/src/site/img/svg/icon-chat.svg deleted file mode 100644 index 4ccc2f04c..000000000 --- a/src/site/img/svg/icon-chat.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/site/img/svg/icon-disc-dx.svg b/src/site/img/svg/icon-disc-dx.svg deleted file mode 100644 index af60dfac7..000000000 --- a/src/site/img/svg/icon-disc-dx.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/site/img/svg/icon-disc-maintain.svg b/src/site/img/svg/icon-disc-maintain.svg deleted file mode 100644 index 1799f7cbe..000000000 --- a/src/site/img/svg/icon-disc-maintain.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/site/img/svg/icon-disc-performance.svg b/src/site/img/svg/icon-disc-performance.svg deleted file mode 100644 index 4604d4655..000000000 --- a/src/site/img/svg/icon-disc-performance.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/site/img/svg/icon-disc-portable.svg b/src/site/img/svg/icon-disc-portable.svg deleted file mode 100644 index d5306a030..000000000 --- a/src/site/img/svg/icon-disc-portable.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/site/img/svg/icon-disc-scale.svg b/src/site/img/svg/icon-disc-scale.svg deleted file mode 100644 index 87db7444f..000000000 --- a/src/site/img/svg/icon-disc-scale.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/site/img/svg/icon-disc-security.svg b/src/site/img/svg/icon-disc-security.svg deleted file mode 100644 index faafb4e5a..000000000 --- a/src/site/img/svg/icon-disc-security.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/site/img/svg/icon-learn.svg b/src/site/img/svg/icon-learn.svg deleted file mode 100644 index 1cb92a6ba..000000000 --- a/src/site/img/svg/icon-learn.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/site/img/svg/icon-pa.svg b/src/site/img/svg/icon-pa.svg deleted file mode 100644 index 69f24fc03..000000000 --- a/src/site/img/svg/icon-pa.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/site/img/svg/icon-search.svg b/src/site/img/svg/icon-search.svg deleted file mode 100644 index 4af15e70b..000000000 --- a/src/site/img/svg/icon-search.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/site/img/svg/icon-star.svg b/src/site/img/svg/icon-star.svg deleted file mode 100644 index f2202cfc6..000000000 --- a/src/site/img/svg/icon-star.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/site/img/svg/jamstack-jewel-black.svg b/src/site/img/svg/jamstack-jewel-black.svg deleted file mode 100644 index 2068b81b0..000000000 --- a/src/site/img/svg/jamstack-jewel-black.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/site/img/svg/jamstack-logo-punchout.svg b/src/site/img/svg/jamstack-logo-punchout.svg deleted file mode 100644 index 9ed64422d..000000000 --- a/src/site/img/svg/jamstack-logo-punchout.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/site/img/svg/poster_image-fallback.svg b/src/site/img/svg/poster_image-fallback.svg deleted file mode 100644 index 9d32b4a68..000000000 --- a/src/site/img/svg/poster_image-fallback.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/site/img/svg/websites-and-apps.svg b/src/site/img/svg/websites-and-apps.svg deleted file mode 100644 index 2d67f90d6..000000000 --- a/src/site/img/svg/websites-and-apps.svg +++ /dev/null @@ -1,311 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/site/img/videos/bringing-jamstack-to-the-enterprise.jpg b/src/site/img/videos/bringing-jamstack-to-the-enterprise.jpg deleted file mode 100644 index 60c7207f0..000000000 Binary files a/src/site/img/videos/bringing-jamstack-to-the-enterprise.jpg and /dev/null differ diff --git a/src/site/img/videos/lwj-contentful-graphql-and-paid-content.jpg b/src/site/img/videos/lwj-contentful-graphql-and-paid-content.jpg deleted file mode 100644 index d84626ee8..000000000 Binary files a/src/site/img/videos/lwj-contentful-graphql-and-paid-content.jpg and /dev/null differ diff --git a/src/site/index.njk b/src/site/index.njk deleted file mode 100644 index e5c903461..000000000 --- a/src/site/index.njk +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: For fast and secure sites -layout: layouts/base.njk ---- - -{% import "components/ticker.njk" as ticker %} -{% import "components/section-heading.njk" as section %} -{% import "components/zinger-cta.njk" as zinger %} -{% import "components/color-theme-selector.njk" as colorThemeToggle %} - -
      - {{ ticker.icons() }} - {{ ticker.main() }} -
      - -
      -
      -
      - -

      What is Jamstack?

      -
      -

      - Jamstack is an architectural approach that decouples the web experience layer from data and business logic, improving flexibility, scalability, performance, and maintainability. -

      -

      - Jamstack removes the need for business logic to dictate the web experience. -

      -

      - It enables a composable architecture for the web where custom logic and 3rd party services are consumed through APIs.

      -

      -
      -
      -
      - -{# -
      -
      - - Jamstack Conf 2022, 7-8 November, San Francisco and online - -

      Thanks for joining us at Jamstack Conf! -

      - Check out this year's Jammies winners -

      -

      -
      - -{% include "components/join-the-movement.njk" %} -#} - -
      -
      -

      The Roots of Jamstack

      -

      - Matt Biilmann took the concept of Jamstack mainstream with his presentation at Smashing Conf 2016. Watch the quintessential introduction to the Jamstack. -

      - - See more videos and resources -
      -
      \ No newline at end of file diff --git a/src/site/logos.njk b/src/site/logos.njk deleted file mode 100644 index 108642d67..000000000 --- a/src/site/logos.njk +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Official Jamstack Logos -layout: layouts/base.njk ---- - -
      -

      Logos

      -

      - Offical Jamstack logos and usage guidelines. -

      -
      - -
      -

      Overview

      -

      - The Jamstack logo was designed to be an iconic brand that can be recognized with the full wordmark as well as by the icon alone. It pays tribute to core Jamstack attributes of Javascript, APIs and Markup with the three stacked shapes, and designed to illicit a J for Jamstack. It was designed to achieve a fresh, sophisticated and professional brand for the Jamstack Community, and distinct from any corporate sponsors. -

      -

      - The Jamstack logo needed to be versatile, and hold up at a variety of sizes and applications (digital, print, embroidery, screen printing, etc). -

      -

      - The logo can be used as both a two-color version or a one-color alternate. -

      -
      - -
      -

      Using the Logo

      -

      - The Jamstack logo is available in PNG & SVG formats, and in two layouts (horizontal and icon). The logo is not intended to be stacked with the icon on top of the wordmark. Icon layout is intended for square use cases. -

      -

      - Please note that although PNG is more common, SVG files sizes are smaller, supported in all common web browsers, and a high resolution format also suitable for screens on web or print. -

      -

      - The Jamstack logo can be used in combination with either light or dark backgrounds. On a light background the wordmark should aways be black and the icon should always use white J shapes inside of a dark drop gem. On a dark background the wordmark should always be white. The icon has more flexibility on a dark background and can be dark drop gem with white J shapes, or white drop gem with dark J shapes. -

      -

      - It is recommended to use the Jamstack pink as seen below. If another background color is desired, please use the all-white Jamstack logo. -

      -
      - - -{% set names = [ - "Jamstack_Logo_Black", - "Jamstack_Logo_DarkBG", - "Jamstack_Logo_Grey", - "Jamstack_Logo_Original", - "Jamstack_Logo_White", - "Jamstack_Icon_Black", - "Jamstack_Icon_Grey", - "Jamstack_Icon_Original", - "Jamstack_Icon_White" - ] -%} - -
      - {% for name in names %} - - {% endfor %} -
      - diff --git a/src/site/resources/a-jamstack-ready-cms.md b/src/site/resources/a-jamstack-ready-cms.md deleted file mode 100644 index d4a1ce577..000000000 --- a/src/site/resources/a-jamstack-ready-cms.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: A Jamstack-ready CMS -date: 2018-01-01T00:00:00.000Z -link: 'https://www.contentful.com/r/knowledgebase/jamstack-cms/' -excludeFromSitemap: true -type: - - article ---- diff --git a/src/site/resources/articles.njk b/src/site/resources/articles.njk deleted file mode 100644 index 6ec54df47..000000000 --- a/src/site/resources/articles.njk +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Resources / Articles -layout: layouts/base.njk ---- - -
      -

      Resources / Articles

      -

      - Learn more about the architecture changing modern web development -

      -

      - More and more people are talking about the Jamstack. We've curated some of our favorite resources here to help you get started, and to learn more about how people are using the Jamstack. -

      -

      - Terminology can sometimes be confusing. Take a look at the glossary for if some of the lagugage being used needs some clarification. -

      -
      - - -
      -

      Featured articles and resources

      -

      - Selected recent articles and case studies of Jamstack implementations. -

      -
        - - {% for item in collections.resources | featured | whereData("type=article") | luckydip(6) %} - {% include "components/resource-link.njk" %} - {% endfor %} -
      -
      - - -
      -

      More articles and resources

      -

      - Selected recent articles and case studies of Jamstack implementations. -

      -
        - {% for item in collections.resources | whereData("type=article") %} - {% include "components/resource-link.njk" %} - {% endfor %} -
      -
      - -
      -

      Contribute

      -

      - If you know of a article or a resource which could help people understand how to get the best out of the Jamstack, - you can contribute it to this list by opening a pull request. -

      -
      diff --git a/src/site/resources/bringing-jamstack-to-the-enterprise.md b/src/site/resources/bringing-jamstack-to-the-enterprise.md deleted file mode 100644 index a0f3664a8..000000000 --- a/src/site/resources/bringing-jamstack-to-the-enterprise.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Bringing JAMStack to the Enterprise -date: 2019-08-03T00:00:00.000Z -description: >- - Jamund Ferguson talks about some of the challenges PayPal faced with their - Node.js application servers and why they think the JAMStack approach improves - performance for both their apps and their developers. He includes discussions - around performance, security, development experience and deploy speed. -link: 'https://www.infoq.com/presentations/jamstack-enterprise/' -thumbnailurl: /img/videos/bringing-jamstack-to-the-enterprise.jpg -featured: true -excludeFromSitemap: true -type: - - video ---- diff --git a/src/site/resources/contentful-graphql-and-paid-content.md b/src/site/resources/contentful-graphql-and-paid-content.md deleted file mode 100644 index ffc34fd10..000000000 --- a/src/site/resources/contentful-graphql-and-paid-content.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Contentful, GraphQL, and Paid Content -date: 2020-08-06T00:00:00.000Z -description: >- - Learn how to combine Contentful’s powerful GraphQL API with Stripe to create paid content for your Jamstack app with Stefan Judis and Jason Lengstorf -link: 'https://www.learnwithjason.dev/contentful-graphql-paid-content' -thumbnailurl: /img/videos/lwj-contentful-graphql-and-paid-content.jpg -featured: true -type: - - video ---- diff --git a/src/site/resources/dynamic-product-management-in-a-static-e-commerce-workflow.md b/src/site/resources/dynamic-product-management-in-a-static-e-commerce-workflow.md deleted file mode 100644 index f3080d2e1..000000000 --- a/src/site/resources/dynamic-product-management-in-a-static-e-commerce-workflow.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Dynamic product management in a static e-commerce workflow -date: 2016-02-10T00:00:00.000Z -link: 'https://www.contentful.com/blog/2016/02/10/snipcart-middleman-contentful' -excludeFromSitemap: true -type: - - article ---- diff --git a/src/site/resources/easy-isomorphic-rendering-on-the-jamstack.md b/src/site/resources/easy-isomorphic-rendering-on-the-jamstack.md deleted file mode 100644 index 136b1b22e..000000000 --- a/src/site/resources/easy-isomorphic-rendering-on-the-jamstack.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Easy Isomorphic Rendering on the Jamstack -date: 2016-11-30T00:00:00.000Z -description: >- - In this talk, Phil explores some techniques and tools which can combine to - create dynamic and powerful sites with on a JAM Stack. -link: 'https://www.youtube.com/watch?v=lRg99MH6rhw' -thumbnailurl: /img/videos/isomorphic.jpg -featured: true -excludeFromSitemap: true -type: - - video ---- diff --git a/src/site/resources/freecodecamp-full-jamstack-course.md b/src/site/resources/freecodecamp-full-jamstack-course.md deleted file mode 100644 index ff9c7295b..000000000 --- a/src/site/resources/freecodecamp-full-jamstack-course.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Learn Jamstack with a free 3.5 hour video of demos and examples -date: 2020-03-12 -link: https://www.netlify.com/blog/2020/03/12/learn-jamstack-with-a-free-3.5-hour-video-of-demos-and-examples/?utm_source=jamstackorg&utm_medium=fcc-video-pnh&utm_campaign=devex -featured: true -excludeFromSitemap: true -type: - - video ---- diff --git a/src/site/resources/go-static-5-reasons-to-try-jamstack-on-your-next-project.md b/src/site/resources/go-static-5-reasons-to-try-jamstack-on-your-next-project.md deleted file mode 100644 index 0038dd93e..000000000 --- a/src/site/resources/go-static-5-reasons-to-try-jamstack-on-your-next-project.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: 'Go static: 5 reasons to try Jamstack on your next project' -date: 2017-03-13T00:00:00.000Z -link: 'https://builtvisible.com/go-static-try-jamstack/' -excludeFromSitemap: true -type: - - article ---- diff --git a/src/site/resources/going-jamstack-with-netlify-and-nuxt.md b/src/site/resources/going-jamstack-with-netlify-and-nuxt.md deleted file mode 100644 index 520d131ef..000000000 --- a/src/site/resources/going-jamstack-with-netlify-and-nuxt.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Going Jamstack with Netlify and Nuxt -date: 2019-09-27T00:00:00.000Z -link: 'https://blog.lichter.io/posts/going-jamstack-with-netlify-and-nuxt/' -excludeFromSitemap: true -type: - - article ---- diff --git a/src/site/resources/how-to-build-a-jamstack-website.md b/src/site/resources/how-to-build-a-jamstack-website.md deleted file mode 100644 index bdf330d8f..000000000 --- a/src/site/resources/how-to-build-a-jamstack-website.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: How to Build a Jamstack Website -date: 2017-03-21T00:00:00.000Z -link: 'https://cosmicjs.com/blog/how-to-build-a-jamstack-website' -excludeFromSitemap: true -type: - - article ---- diff --git a/src/site/resources/index.njk b/src/site/resources/index.njk deleted file mode 100644 index 5532a95c7..000000000 --- a/src/site/resources/index.njk +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Jamstack Resources -description: Learn more about the Jamstack architecture that is changing modern web development. Watch videos and presentations, view articles, and other resources. Check it out! -layout: layouts/base.njk ---- - -
      -

      Learning Resources

      -

      - Learn more about the architecture changing modern web development. -

      -

      - More and more people are talking about the Jamstack. We've curated some of our favorite resources here to help you get started, and to learn more about how people are using the Jamstack. -

      -

      - Here’s a few great starting points: -

      -

      -
      - - -
      -

      Videos and Presentations

      -

      - These are great presentations to help understand what the Jamstack is, and how it can be used to great effect. -

      -
      - - {% for item in collections.resources | featured | whereData("type=video") | luckydip(6) %} -
      - {% include "components/thumbnail-link.njk" %} -
      - {% endfor %} -
      - More videos and presentations -
      - -
      -

      Articles and resources

      -

      - Selected articles and case studies of Jamstack implementations. -

      -
        - {% for item in collections.resources | featured | whereData("type=article") | luckydip(6) %} - {% include "components/resource-link.njk" %} - {% endfor %} -
      - More articles and resources -
      - diff --git a/src/site/resources/introducing-jamstack-the-modern-web-architecture.md b/src/site/resources/introducing-jamstack-the-modern-web-architecture.md deleted file mode 100644 index a882f71ff..000000000 --- a/src/site/resources/introducing-jamstack-the-modern-web-architecture.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: 'Introducing Jamstack: The Modern Web Architecture' -date: 2019-05-14T00:00:00.000Z -link: https://bolajiayodeji.com/an-introduction-to-the-jamstack-the-architecture-of-the-modern-web-c4a0d128d9ca -excludeFromSitemap: true -type: - - article ---- diff --git a/src/site/resources/isomorphic-rendering-on-the-jamstack.md b/src/site/resources/isomorphic-rendering-on-the-jamstack.md deleted file mode 100644 index 57fb4deb6..000000000 --- a/src/site/resources/isomorphic-rendering-on-the-jamstack.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Isomorphic Rendering on the Jamstack -date: 2016-08-01T00:00:00.000Z -link: 'https://www.hawksworx.com/blog/isomorphic-rendering-on-the-jam-stack/' -excludeFromSitemap: true -type: - - article ---- diff --git a/src/site/resources/jamstack-modern-web-architecture-in-digestible-terms.md b/src/site/resources/jamstack-modern-web-architecture-in-digestible-terms.md deleted file mode 100644 index 35e7ebecc..000000000 --- a/src/site/resources/jamstack-modern-web-architecture-in-digestible-terms.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "JAMStack: Modern Web Architecture in Digestible Terms" -date: 2018-07-09T00:00:00.000Z -link: https://www.gridhaus.com/blog/jamstack-modern-web-architecture-in-digestible-terms -excludeFromSitemap: true -featured: true -type: - - article - ---- diff --git a/src/site/resources/jamstack-training-free-video-courses-on-jamstack-technologies.md b/src/site/resources/jamstack-training-free-video-courses-on-jamstack-technologies.md deleted file mode 100644 index 69c4c8fec..000000000 --- a/src/site/resources/jamstack-training-free-video-courses-on-jamstack-technologies.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "Jamstack.training - Free video courses on Jamstack technologies" -date: 2020-02-19 -link: 'https://jamstack.training' -excludeFromSitemap: true -featured: true -type: - - video - - training - - article - ---- diff --git a/src/site/resources/new-to-jamstack-everything-you-need-to-know-to-get-started.md b/src/site/resources/new-to-jamstack-everything-you-need-to-know-to-get-started.md deleted file mode 100644 index 902c96f59..000000000 --- a/src/site/resources/new-to-jamstack-everything-you-need-to-know-to-get-started.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: New to Jamstack? Everything You Need to Know to Get Started -date: 2020-01-16T00:00:00.000Z -link: 'https://snipcart.com/blog/jamstack' -excludeFromSitemap: true -type: - - article - ---- diff --git a/src/site/resources/rise-of-the-jamstack.md b/src/site/resources/rise-of-the-jamstack.md deleted file mode 100644 index 472387479..000000000 --- a/src/site/resources/rise-of-the-jamstack.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Rise of the Jamstack -date: 2017-05-26T00:00:00.000Z -description: >- - The emergence of Git centered workflows, around modern build tools, static - site generators, and modern browsers, have changed the way most front-enders - work. -link: 'https://www.youtube.com/watch?v=uWTMEDEPw8c' -thumbnailurl: /img/videos/mathias-active-ingredients.jpg -excludeFromSitemap: true -type: - - video -featured: true ---- diff --git a/src/site/resources/static-websites-jamstack-less3.md b/src/site/resources/static-websites-jamstack-less3.md deleted file mode 100644 index 55b1f6e46..000000000 --- a/src/site/resources/static-websites-jamstack-less3.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "Static Websites + Jamstack = <3" -date: 2017-04-25T00:00:00.000Z -link: 'https://julian.is/article/static-websites-and-jamstack/' -excludeFromSitemap: true -type: - - article - ---- diff --git a/src/site/resources/the-new-front-end-stack-javascript-apis-and-markup.md b/src/site/resources/the-new-front-end-stack-javascript-apis-and-markup.md deleted file mode 100644 index 65a828f5e..000000000 --- a/src/site/resources/the-new-front-end-stack-javascript-apis-and-markup.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: 'The New Front-end Stack. Javascript, APIs and Markup' -date: 2016-04-20T00:00:00.000Z -description: >- - Matt Biilmann covers how a new stack has emerged and how this has changed how - web sites and web apps are built. -link: 'https://vimeo.com/163522126' -thumbnailurl: /img/videos/mathias-smashing-conf.png -excludeFromSitemap: true -featured: true -type: - - video - ---- diff --git a/src/site/resources/videos.njk b/src/site/resources/videos.njk deleted file mode 100644 index 4fab757c7..000000000 --- a/src/site/resources/videos.njk +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Resources / Videos and Presentations -layout: layouts/base.njk ---- - -
      -

      Videos and Presentations

      -

      - Learn more about the architecture changing modern web development -

      -

      - More and more people are talking about the Jamstack. We've curated some of our favorite resources here to help you get started, and to learn more about how people are using the Jamstack. -

      -
      - -
      -

      Featured

      -

      - These are great presentations to help understand what the Jamstack is, and how it can be used to great effect. -

      -
      - {% for item in collections.resources | featured | whereData("type=video") | luckydip(4) %} -
      - {% include "components/thumbnail-link.njk" %} -
      - {% endfor %} -
      -
      - -
      -

      All videos and presentations

      -

      - These are great presentations to help understand what the Jamstack is, and how it can be used to great effect. -

      -
      - {% for item in collections.resources | whereData("type=video") %} -
      - {% include "components/thumbnail-link.njk" %} -
      - {% endfor %} -
      -
      - - -
      -

      Contribute

      -

      - If you know of a presentation or a video which could help people understand how to get the best out of the Jamstack, - you can contribute it to this list by opening a pull request. -

      -
      diff --git a/src/site/resources/what-is-jamstack-and-how-does-it-work.md b/src/site/resources/what-is-jamstack-and-how-does-it-work.md deleted file mode 100644 index d5e405e70..000000000 --- a/src/site/resources/what-is-jamstack-and-how-does-it-work.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: What is Jamstack and How Does it Work? -link: 'https://buttercms.com/blog/what-is-jamstack' -date: 2019-06-12T00:00:00.000Z -featured: true -excludeFromSitemap: true -type: - - article - ---- diff --git a/src/site/resources/what-is-jamstack-and-why-you-should-try-it.md b/src/site/resources/what-is-jamstack-and-why-you-should-try-it.md deleted file mode 100644 index fd7623c61..000000000 --- a/src/site/resources/what-is-jamstack-and-why-you-should-try-it.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: What is Jamstack and why you should try it -date: 2018-04-15T00:00:00.000Z -link: 'https://www.giftegwuenu.com/what-is-ja-mstack-and-why-you-should-try-it' -featured: true -excludeFromSitemap: true -type: - - article ---- diff --git a/src/site/resources/what-is-the-jamstack-and-how-do-i-get-started.md b/src/site/resources/what-is-the-jamstack-and-how-do-i-get-started.md deleted file mode 100644 index 30a2dacd4..000000000 --- a/src/site/resources/what-is-the-jamstack-and-how-do-i-get-started.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: What is the Jamstack and how do I get started? -date: 2020-02-19T00:00:00.000Z -link: >- - https://www.freecodecamp.org/news/what-is-the-jamstack-and-how-do-i-host-my-website-on-it/ -featured: true -excludeFromSitemap: true -type: - - article - ---- diff --git a/src/site/resources/zero-to-http2-with-aws-and-hugo.md b/src/site/resources/zero-to-http2-with-aws-and-hugo.md deleted file mode 100644 index 69c84815f..000000000 --- a/src/site/resources/zero-to-http2-with-aws-and-hugo.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Zero to HTTP/2 with AWS and Hugo -date: 2018-09-08T00:00:00.000Z -description: >- - A step-by-step guide to creating your own Jamstack site using Amazon Web - Services and the Hugo static site generator. -link: 'https://habd.as/zero-to-http-2-aws-hugo/' -excludeFromSitemap: true -type: - - article - ---- diff --git a/src/site/site.webmanifest b/src/site/site.webmanifest deleted file mode 100644 index 6d1f320ca..000000000 --- a/src/site/site.webmanifest +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Jamstack.org", - "short_name": "jamstack", - "icons": [ - { - "src": "/img/favicons/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/img/favicons/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#ffffff", - "background_color": "#F0047F", - "display": "standalone" -} diff --git a/src/site/sitemap.njk b/src/site/sitemap.njk deleted file mode 100644 index 29d1d37c4..000000000 --- a/src/site/sitemap.njk +++ /dev/null @@ -1,21 +0,0 @@ ---- -permalink: /sitemap.xml -excludeFromSitemap: true ---- - - - {%- for item in collections.all %} - {%- if item.data.excludeFromSitemap !== true %} - - https://www.jamstack.org{{ item.url }} - {{ item.data.lastmod or item.date | formatDate('yyyy-MM-dd') }} - {%- if item.data.changefreq %} - {{ item.data.changefreq }} - {%- endif %} - {%- if item.data.priority %} - {{ item.data.priority }} - {%- endif %} - - {%- endif %} - {%- endfor %} - \ No newline at end of file diff --git a/src/site/survey-closed.njk b/src/site/survey-closed.njk deleted file mode 100644 index b0a4f4aa2..000000000 --- a/src/site/survey-closed.njk +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Jamstack Sticker Giveaway -description: Share the survey with your network and we’ll share some sticker love! -layout: layouts/base.njk -excludeFromSitemap: true ---- - -{% import "components/zinger-cta.njk" as zinger %} - -
      -

      Thanks for filling out the Jamstack community survey

      - {{ zinger.cta( - "Share the survey", - "https://twitter.com/intent/tweet?text=%F0%9F%92%AB%20I%20completed%20the%20%2722%20Jamstack%20Community%20Survey.%20Share%20your%20feedback%20and%20unlock%20a%20special%20edition%20Jamstack%20sticker!%20&url=https%3A%2F%2Fnetlify.qualtrics.com%2Fjfe%2Fform%2FSV_0BRbhN47gyZWYNo%3FSource%3Dsurvey_share_page", - "bg-gradient-card-sunrise card-shadow hover:card-shadow-sunrise mb-9" - ) - }} -

      Jamstack Sticker Giveaway

      -

      Oh no! We’ve maxed out on our sticker giveaway.

      -

      Thank you for taking the time to complete the survey. Please continue to share with your network, communities, and teams.

      -
      diff --git a/src/site/survey-confirmation.njk b/src/site/survey-confirmation.njk deleted file mode 100644 index a6e3a5547..000000000 --- a/src/site/survey-confirmation.njk +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Jamstack Sticker Giveaway -description: Share the survey with your network and we’ll share some sticker love! -layout: layouts/base.njk ---- - -{% import "components/zinger-cta.njk" as zinger %} - -
      -

      Thanks for filling out the Jamstack community survey

      - {{ zinger.cta( - "Share the survey", - "https://twitter.com/intent/tweet?text=%F0%9F%92%AB%20I%20completed%20the%20%2722%20Jamstack%20Community%20Survey.%20Share%20your%20feedback%20and%20unlock%20a%20special%20edition%20Jamstack%20sticker!%20&url=https%3A%2F%2Fnetlify.qualtrics.com%2Fjfe%2Fform%2FSV_0BRbhN47gyZWYNo%3FSource%3Dsurvey_share_page", - "bg-gradient-card-sunrise card-shadow hover:card-shadow-sunrise mb-9" - ) - }} - -

      Jamstack Sticker Giveaway

      - -

      Share the survey with your network and we’ll share some sticker love! Complete this form, including a link to your shared post (social, blog, newsletter), and we’ll get your sticker in the mail.

      -

      *Offer is limited to the first 1,000 respondents.

      - -
      - - - -
      -

      Stickers will be sent after campaign has ended, or maximum has been reached. Stickers will be shipped with U.S. domestic or international postage stamps. Delivery is not guaranteed or trackable.

      - - -
      diff --git a/src/site/survey-thanks.njk b/src/site/survey-thanks.njk deleted file mode 100644 index f4ccbfea2..000000000 --- a/src/site/survey-thanks.njk +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Jamstack Sticker Giveaway -description: Share the survey with your network and we’ll share some sticker love! -layout: layouts/base.njk -excludeFromSitemap: true ---- - -
      -

      We’ve received your sticker request!

      -

      Stickers will be sent after campaign has ended, or maximum has been reached. Stickers will be shipped with U.S. domestic or international postage stamps. Delivery is not guarenteed or trackable.

      -
      diff --git a/src/site/survey/2021.njk b/src/site/survey/2021.njk deleted file mode 100644 index f40a4367d..000000000 --- a/src/site/survey/2021.njk +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: "Jamming into the Mainstream: Jamstack Community Survey 2021" -layout: layouts/base.njk -ogimage: "/img/og/jamstack-community-survey-og.png" -stylesheets: - - /css/d3chart.css -javascripts: - - /survey/2021/bundle.js -gradientColors: - sunrise: [ "#F0047F", "#FC814A" ] - blue: [ "#0090c9", "#00c0ad" ] - sun: [ "#FFC803", "#FC814A" ] - seamist: [ "#78ECC2", "#00FFB2" ] - hallows: [ "#DF4A1F", "#FFA278" ] - bubblegum: [ "#FF98BC", "#FFCCDE" ] - purple: [ "#6B38FB", "#CCB4FF" ] - air: [ "#03d0d0", "#B5FFF8" ] - pink: [ "#c40468", "#fc2796" ] - leaves: [ "#78f19a", "#13b110" ] - haze: [ "#91A5EE", "#d6deff" ] - gnat: [ "#02C6B3", "#59F7E7" ] - fire: [ "#FF0F00", "#FF928A" ] - ocean: [ "#003EDD", "#6CDCFF" ] - night: [ "#02465F", "#6AD7FF" ] - dusk: [ "#960000", "#E94242" ] - rain: [ "#FF72CF", "#C92ECC" ] ---- - - - - - - - - - - - - {%- for key, entry in gradientColors %} - - - - - - - - - {%- endfor %} - - - -
      -

      {{ title }}

      - -

      This year we saw Jamstack go mainstream, with big changes in working patterns for Jamstack developers in every region. Our community has grown, adding not only experienced developers but also becoming the first stop for those just breaking into the industry. We also learned that the move to remote work has been significant and lasting among web developers.

      -

      - Netlify sits at the center of the Jamstack community, and we conduct our annual survey so we can understand our community of developers. This helps us tailor our products and services to our community. In sharing our survey results, we also want to help developers better understand themselves and one another. Working as a developer often means working in a vacuum, without a sense of what’s happening in the broader community. Our survey data can help provide a sense of best practices as well as an idea of what else is happening in the community.

      -

      This year, for example, you told us that content management systems Sanity and Strapi are having a moment. You shared that security is a rising priority for all devs. You also offered a lot of insight about new developers, from which specific devs have moved to remote work to the (obvious and less obvious) reasons why.

      -

      To get a better picture of the full developer landscape, we surveyed people who build websites in general, regardless of whether they build Jamstack sites, though our analysis focuses on active Jamstack developers.

      -

      We ran this year’s survey from June 23 to August 10 and received over 7,000 responses, more than twice as many as last year’s survey. You can review our methodology document for a detailed breakdown of the demographics and accuracy of the survey sample and results.

      -

      To the developers who took the time to respond to our survey to help us learn more about the Jamstack and our community: Thank you. We hope you walk away from this report learning something about yourselves and the expanding Jamstack community.

      - - - -
      - -
      -

      Demographics

      - {% include "survey/2021/demographics.njk" %} - - {% include "survey/2021/experience.njk" %} -
      - -
      -

      Jamstack adoption

      - {% include "survey/2021/adoption.njk" %} -
      - -
      -

      Workflows

      - {% include "survey/2021/workflows.njk" %} -
      - -
      -

      Technology choices

      - {% include "survey/2021/choices.njk" %} -
      - -
      -

      Jamstack has become the standard architecture for the web.

      - {% include "survey/2021/conclusion.njk" %} -
      \ No newline at end of file diff --git a/src/site/survey/2021/community-survey-2021-methodology.pdf b/src/site/survey/2021/community-survey-2021-methodology.pdf deleted file mode 100644 index 32c4b4ccc..000000000 Binary files a/src/site/survey/2021/community-survey-2021-methodology.pdf and /dev/null differ diff --git a/src/site/survey/2021/d3chart-survey-2021.js b/src/site/survey/2021/d3chart-survey-2021.js deleted file mode 100644 index e40a666f7..000000000 --- a/src/site/survey/2021/d3chart-survey-2021.js +++ /dev/null @@ -1,181 +0,0 @@ -new D3VerticalBarChart("demographics-jobs-chart", "demographics-jobs-table", { - showInlineBarValues: "outside", -}); - -new D3HorizontalBarChart("demographics-jobtitle-chart", "demographics-jobtitle-table", { - showInlineBarValues: "outside", - showLegend: false, - margin: { - left: 150 - }, - colorMod: 2 -}); - -new D3HorizontalBarChart("demographics-employmentstatus-chart", "demographics-employmentstatus-table", { - showInlineBarValues: "outside", - margin: { - left: 100 - } -}); - -new D3HorizontalBarChart("experience-years-chart", "experience-years-table", { - showInlineBarValues: "outside", - margin: { - left: 50 - } -}); - -new D3HorizontalBarChart("experience-region-chart", "experience-region-table", { - mode: "stacked", - showInlineBarValues: false, - margin: { - left: 50, - right: 0 - } -}); - -new D3HorizontalBarChart("experience-fulltimevstudent-chart", "experience-fulltimevstudent-table", { - showInlineBarValues: "outside", - margin: { - left: 50 - } -}); - -// TODO (@zachleat) fix label wrapping -// https://bl.ocks.org/mbostock/7555321 -new D3HorizontalBarChart("experience-pandemic-chart", "experience-pandemic-table", { - showInlineBarValues: "outside", - showLegend: false, - margin: { - left: 200 - }, - wrapAxisLabel: { - left: true, - }, - colorMod: 3 -}); - -new D3VerticalBarChart("experience-wentremote-chart", "experience-wentremote-table", { - showInlineBarValues: "outside", - colorMod: 2, - showLegend: false, -}); - -new D3VerticalBarChart("experience-wentremotetitle-chart", "experience-wentremotetitle-table", { - showInlineBarValues: "outside", - showLegend: false, -}); - -new D3HorizontalBarChart("adoption-purpose-chart", "adoption-purpose-table", { - showInlineBarValues: "outside", - showLegend: false, - margin: { - left: 200 - }, - colorMod: 1 -}); - -new D3HorizontalBarChart("adoption-audience-chart", "adoption-audience-table", { - showInlineBarValues: "inside-offset", - margin: { - left: 110 - }, - mode: "stacked" -}); - -new D3HorizontalBarChart("adoption-titles-chart", "adoption-titles-table", { - showInlineBarValues: "inside-offset", - margin: { - left: 90, - top: 30, - }, - mode: "stacked", - scale: "proportional" -}); - -new D3VerticalBarChart("adoption-frequency-chart", "adoption-frequency-table", { - showInlineBarValues: "inside", - showAxisLabels: true, - margin: { - left: 60, - top: 30, - bottom: 60, - }, - mode: "stacked" -}); - -new D3HorizontalBarChart("adoption-industries-chart", "adoption-industries-table", { - showInlineBarValues: "outside", - showLegend: false, - margin: { - left: 200 - }, - wrapAxisLabel: { - left: true, - }, - colorMod: 3, - labelPrecision: 0, -}); - -new D3BubbleChart("adoption-serverside-chart", "adoption-serverside-table", { - valueType: ["percentage", "float"] -}); - -new D3HorizontalBarChart("workflows-devices-chart", "workflows-devices-table", { - showInlineBarValues: "inside-offset", - mode: "stacked", - margin: { - left: 140 - } -}); - -new D3VerticalBarChart("workflows-priorities-chart", "workflows-priorities-table", { - showInlineBarValues: "outside", - colorMod: 2, - showLegend: false, - valueType: ["float"], -}); - -new D3BubbleChart("workflows-design-chart", "workflows-design-table", { - valueType: ["percentage", "float"] -}); - -new D3BubbleChart("workflows-editors-chart", "workflows-editors-table", { - valueType: ["percentage", "float"] -}); - -new D3BubbleChart("choices-cms-chart", "choices-cms-table", { - valueType: ["percentage", "float"] -}); - -new D3BubbleChart("choices-cmsdelta-chart", "choices-cmsdelta-table", { - valueType: ["percentage", "float"] -}); - -new D3BubbleChart("choices-langs-chart", "choices-langs-table", { - valueType: ["percentage", "float"] -}); - -new D3BubbleChart("choices-langsdelta-chart", "choices-langsdelta-table", { - valueType: ["percentage", "float"] -}); - -new D3BubbleChart("choices-frameworks-chart", "choices-frameworks-table", { - valueType: ["percentage", "float"] -}); - -new D3BubbleChart("choices-frameworksminor-chart", "choices-frameworksminor-table", { - valueType: ["percentage", "float"] -}); - -new D3BubbleChart("choices-frameworksdelta-chart", "choices-frameworksdelta-table", { - valueType: ["percentage", "float"] -}); - -new D3HorizontalBarChart("choices-thirdparty-chart", "choices-thirdparty-table", { - showInlineBarValues: "outside", - showLegend: false, - margin: { - left: 185 - }, -}); \ No newline at end of file diff --git a/src/site/survey/2021/js.njk b/src/site/survey/2021/js.njk deleted file mode 100644 index 19ffb114c..000000000 --- a/src/site/survey/2021/js.njk +++ /dev/null @@ -1,7 +0,0 @@ ---- -permalink: /survey/2021/bundle.js ---- - -{% include "../../../../node_modules/d3/dist/d3.min.js" %} -{% include "../shared/d3chart.js" %} -{% include "./d3chart-survey-2021.js" %} diff --git a/src/site/survey/2022.njk b/src/site/survey/2022.njk deleted file mode 100644 index 24f00fe85..000000000 --- a/src/site/survey/2022.njk +++ /dev/null @@ -1,201 +0,0 @@ ---- -title: "Jamstack Community Survey Results 2022" -description: "The third annual Jamstack Survey conducted by Netlify reveals developer attitudes towards trends like remote work, Web3, serverless, edge and more." -layout: layouts/base.njk -ogimage: "/img/og/jamstack-community-survey-2022-og.png" -stylesheets: - - /css/d3chart.css -javascripts: - - /survey/2022/bundle.js -gradientColors: - sunrise: ["#F0047F", "#FC814A"] - blue: ["#0090c9", "#00c0ad"] - sun: ["#FC814A", "#FFC803"] - seamist: ["#78ECC2", "#00FFB2"] - hallows: ["#DF4A1F", "#FFA278"] - bubblegum: ["#FF98BC", "#FFCCDE"] - purple: ["#6B38FB", "#CCB4FF"] - air: ["#03d0d0", "#B5FFF8"] - pink: ["#c40468", "#fc2796"] - leaves: ["#78f19a", "#13b110"] - haze: ["#91A5EE", "#d6deff"] - gnat: ["#02C6B3", "#59F7E7"] - fire: ["#FF0F00", "#FF928A"] - ocean: ["#003EDD", "#6CDCFF"] - night: ["#02465F", "#6AD7FF"] - dusk: ["#960000", "#E94242"] - rain: ["#FF72CF", "#C92ECC"] -gradientColorsExtended: - "16": ["#f0185d", "#ff668f"] - "17": ["#448bd0", "#80c0ff"] - "18": ["#dbd600", "#ffff54"] - "19": ["#63edd7", "#a1ffff"] - "20": ["#cb5f00", "#ff932f"] - "21": ["#ff98a8", "#ffd0df"] - "22": ["#a800dc", "#e449ff"] - "23": ["#00cfe4", "#6affff"] - "24": ["#c5114c", "#ff5a7c"] - "25": ["#4af4b5", "#8effed"] - "26": ["#aa9ee9", "#e2d5ff"] - "27": ["#00c6c9", "#57ffff"] - "28": ["#e64b00", "#ff8300"] ---- - -{% import "components/permalink-heading.njk" as permalinkHeading %} - - - - - - - - - - - - {%- for key, entry in gradientColors %} - - - - - - - - - {%- endfor %} {%- for key, entry in gradientColorsExtended %} - - - - - - - - - {%- endfor %} - - - -
      -
      -
      -

      Jamstack gives developers full-stack powers

      -

      Findings from the Jamstack Community Survey 2022

      -
      -

      - The third year of the Jamstack Community Survey found a mix of things we - expected – indeed, things we predicted last year – as well as some big - surprises about the many diverse members of our community. Some key - takeaways include: -

      -
        -
      • - Four out of five developers are now working remotely most of the time, - and more than half say they would quit their jobs rather than go back to - an office. -
      • -
      • - The number of people who have used serverless technology jumped to 70%, - taking it fully into the mainstream. -
      • -
      • - React continued to grow to an almost unprecedented 71% share of - developers, and Next.js rode that wave and is now used by 1 in every 2 - developers. -
      • -
      -

      - Netlify sits at the - center of the Jamstack community, and we conduct our annual survey so we - can understand our community of developers. This helps us tailor our - products and services to our community. In sharing our survey results, we - also want to help developers better understand themselves and one another. - Working as a developer often means working in a vacuum, without a sense of - what’s happening in the broader community. Our survey data can help - provide a sense of best practices as well as an idea of what else is - happening in the community. -

      -

      - In addition to our usual framework census and our questions about content - management systems, this year we asked about some emerging technologies - that have received a lot of attention. The fuzzy group of technologies - called “Web3” garnered mixed feelings despite a great deal of press in - 2021 and 2022. Browser-native web components, on the other hand, seem to - have finally reached mainstream adoption. -

      -

      - As usual, our survey covers everyone we can reach: every kind of developer - responded to our survey from every region of the world, whether or not - they were Netlify users, and whether or not they considered themselves - Jamstack developers. Our survey this year received a little under 7,000 - responses. If you’re interested in the specifics of our methodology, we - have a - detailed writeup - of the demographics and margins of error in our survey. -

      -

      - As usual, we want to thank the developers who took the time to contribute - to the survey. We have done our best to take the data you’ve given us and - turn it into useful, actionable insights for everyone in our community, - and we hope it helps you. -

      -

      This year, our results are split into four sections:

      - -
      - - - - {% include "survey/2022/whos-doing-the-building/index.njk" %} - - {% include "survey/2022/what-are-we-building/index.njk" %} - - {% include "survey/2022/how-are-we-building/index.njk" %} - - {% include "survey/2022/where-are-we-going/index.njk" %} -
      diff --git a/src/site/survey/2022/community-survey-2022-methodology.pdf b/src/site/survey/2022/community-survey-2022-methodology.pdf deleted file mode 100644 index 33e636b24..000000000 Binary files a/src/site/survey/2022/community-survey-2022-methodology.pdf and /dev/null differ diff --git a/src/site/survey/2022/d3chart-survey-2022.js b/src/site/survey/2022/d3chart-survey-2022.js deleted file mode 100644 index a6ebe7b29..000000000 --- a/src/site/survey/2022/d3chart-survey-2022.js +++ /dev/null @@ -1,392 +0,0 @@ -new D3HorizontalBarChart( - "job-titles-2021-2022-comparison-chart", - "job-titles-2021-2022-comparison-table", - { - showInlineBarValues: "outside", - margin: { - left: 188, - }, - scaleTicks: { - x: true, - }, - colorMod: 1, - interactive: true - } -); - -new D3HorizontalBarChart("employment-status-chart", "employment-status-table", { - showInlineBarValues: "outside", - showLegend: false, - margin: { - left: 128, - }, - colorMod: 0, - scaleTicks: { - x: true, - }, -}); - -new D3VerticalBarChart( - "experience-increasing-over-time-chart", - "experience-increasing-over-time-table", - { - showInlineBarValues: false, - interactive: true - } -); - -new D3HorizontalBarChart( - "experience-by-region-chart", - "experience-by-region-table", - { - mode: "stacked", - showInlineBarValues: false, - margin: { - left: 48, - right: 0, - }, - interactive: true - } -); - -new D3VerticalBarChart( - "respondents-by-region-chart", - "respondents-by-region-table", - { - showInlineBarValues: false, - margin: { - left: 32, - bottom: 88, - right: 32, - }, - colorMod: 1, - rotateXAxisLabels: true, - interactive: true - } -); - -new D3HorizontalBarChart( - "have-you-changed-jobs-in-the-last-12-months-chart", - "have-you-changed-jobs-in-the-last-12-months-table", - { - showInlineBarValues: "outside", - showLegend: false, - margin: { - left: 40, - }, - colorMod: 3, - } -); - -new D3HorizontalBarChart( - "what-influenced-staying-chart", - "what-influenced-staying-table", - { - mode: "stacked", - showInlineBarValues: false, - margin: { - left: 164, - right: 0, - }, - scaleTicks: { - x: true, - }, - interactive: true - } -); - -new D3HorizontalBarChart( - "what-influenced-leaving-chart", - "what-influenced-leaving-table", - { - mode: "stacked", - showInlineBarValues: false, - margin: { - left: 164, - right: 0, - }, - scaleTicks: { - x: true, - }, - interactive: true - } -); - -new D3HorizontalBarChart("remote-frequency-chart", "remote-frequency-table", { - showLegend: false, - showInlineBarValues: "outside", - margin: { - left: 64, - }, - colorMod: 0, - scaleTicks: { - x: true, - }, -}); - -new D3HorizontalBarChart("remote-changes-chart", "remote-changes-table", { - showLegend: false, - showInlineBarValues: "outside", - margin: { - left: 164, - }, - colorMod: 1, - scaleTicks: { - x: true, - }, -}); - -new D3VerticalBarChart( - "i-enjoy-remote-work-chart", - "i-enjoy-remote-work-table", - { - showLegend: false, - showInlineBarValues: "outside", - colorMod: 2, - wrapTicks: { - x: true, - }, - } -); - -new D3VerticalBarChart( - "my-company-has-remote-work-figured-out-chart", - "my-company-has-remote-work-figured-out-table", - { - showLegend: false, - showInlineBarValues: "outside", - colorMod: 2, - wrapTicks: { - x: true, - }, - } -); - -new D3VerticalBarChart( - "i-would-like-to-work-remote-more-often-chart", - "i-would-like-to-work-remote-more-often-table", - { - showLegend: false, - showInlineBarValues: "outside", - colorMod: 3, - wrapTicks: { - x: true, - }, - } -); - -new D3VerticalBarChart( - "i-would-like-to-work-remote-more-often-chart", - "i-would-like-to-work-remote-more-often-table", - { - showLegend: false, - showInlineBarValues: "outside", - colorMod: 3, - wrapTicks: { - x: true, - }, - } -); - -new D3VerticalBarChart( - "i-changed-jobs-to-work-remotely-more-often-chart", - "i-changed-jobs-to-work-remotely-more-often-table", - { - showLegend: false, - showInlineBarValues: "outside", - colorMod: 3, - wrapTicks: { - x: true, - }, - } -); - -new D3VerticalBarChart( - "i-would-quit-if-in-person-was-more-often-chart", - "i-would-quit-if-in-person-was-more-often-table", - { - showLegend: false, - showInlineBarValues: "outside", - colorMod: 0, - wrapTicks: { - x: true, - }, - } -); - -new D3VerticalBarChart( - "i-would-quit-my-job-if-remote-was-more-often-chart", - "i-would-quit-my-job-if-remote-was-more-often-table", - { - showLegend: false, - showInlineBarValues: "outside", - colorMod: 0, - wrapTicks: { - x: true, - }, - } -); - -new D3HorizontalBarChart( - "what-is-the-purpose-of-the-sites-you-built-in-2022-chart", - "what-is-the-purpose-of-the-sites-you-built-in-2022-table", - { - showInlineBarValues: "outside", - showLegend: false, - margin: { - left: 148, - }, - colorMod: 2, - scaleTicks: { - x: true, - }, - } -); - -new D3HorizontalBarChart( - "types-of-sites-built-last-12-months-chart", - "types-of-sites-built-last-12-months-table", - { - mode: "stacked", - showInlineBarValues: false, - margin: { - left: 128, - right: 0, - }, - scaleTicks: { - x: true, - }, - interactive: true - } -); - -new D3VerticalBarChart( - "target-devices-by-type-chart", - "target-devices-by-type-table", - { - showInlineBarValues: "outside", - wrapTicks: { - x: true, - }, - interactive: true - } -); - -new D3VerticalBarChart("audience-sizes-chart", "audience-sizes-table", { - showInlineBarValues: "outside", - wrapTicks: { - x: true, - }, - interactive: true -}); - -new D3BubbleChart( - "cms-usage-vs-satisfaction-chart", - "cms-usage-vs-satisfaction-table", - { - radiusColumn: 1, - valueType: ["percentage", "float"], - extendedColors: true, - scaleTicks: { - x: true, - }, - } -); - -new D3BubbleChart( - "programming-language-usage-vs-satisfaction-chart", - "programming-language-usage-vs-satisfaction-table", - { - radiusColumn: 1, - valueType: ["percentage", "float"], - scaleTicks: { - x: true, - }, - } -); - -new D3BubbleChart( - "frameworks-usage-vs-satisfaction-chart", - "frameworks-usage-vs-satisfaction-table", - { - radiusColumn: 1, - valueType: ["percentage", "float"], - extendedColors: true, - scaleTicks: { - x: true, - }, - } -); - -new D3BubbleChart( - "smaller-frameworks-usage-vs-satisfaction-chart", - "smaller-frameworks-usage-vs-satisfaction-table", - { - radiusColumn: 1, - valueType: ["percentage", "float"], - scaleTicks: { - x: true, - }, - } -); - -new D3BubbleChart( - "frameworks-usage-vs-satisfaction-changes-chart", - "frameworks-usage-vs-satisfaction-changes-table", - { - valueType: ["percentage", "float"], - extendedColors: true, - scaleTicks: { - x: true, - }, - } -); - -new D3HorizontalBarChart("web3-feelings-chart", "web3-feelings-table", { - showLegend: false, - showInlineBarValues: "outside", - margin: { - left: 164, - }, - colorMod: 1, - scaleTicks: { - x: true, - }, -}); - -new D3HorizontalBarChart("web3-usage-chart", "web3-usage-table", { - mode: "stacked", - colorMod: 2, - showInlineBarValues: false, - margin: { - left: 128, - scaleTicks: { - x: true, - }, - }, - interactive: true -}); - -new D3HorizontalBarChart("web-components-chart", "web-components-table", { - showLegend: false, - showInlineBarValues: "outside", - margin: { - left: 180, - }, - colorMod: 3, - scaleTicks: { - x: true, - }, -}); - -new D3VerticalBarChart("serverless-usage-chart", "serverless-usage-table", { - showLegend: false, - showInlineBarValues: "outside", - colorMod: 2, - wrapTicks: { - x: true, - }, - scaleTicks: { - x: true, - }, -}); diff --git a/src/site/survey/2022/js.njk b/src/site/survey/2022/js.njk deleted file mode 100644 index d437aadfc..000000000 --- a/src/site/survey/2022/js.njk +++ /dev/null @@ -1,8 +0,0 @@ ---- -permalink: /survey/2022/bundle.js ---- - -{% include "../../../../node_modules/d3/dist/d3.min.js" %} -{% include "../../../../node_modules/d3-textwrap/build/d3-textwrap.min.js" %} -{% include "../shared/d3chart.js" %} -{% include "./d3chart-survey-2022.js" %} diff --git a/src/site/survey/shared/d3chart.js b/src/site/survey/shared/d3chart.js deleted file mode 100644 index 4385125f6..000000000 --- a/src/site/survey/shared/d3chart.js +++ /dev/null @@ -1,1559 +0,0 @@ -const debounce = (callback, wait) => { - let timeoutId = null; - return (...args) => { - window.clearTimeout(timeoutId); - timeoutId = window.setTimeout(() => { - callback.apply(null, args); - }, wait); - }; -}; - -class D3Chart { - constructor(targetId, options, className) { - this.targetId = targetId; - this.className = className; - - this.options = Object.assign( - { - showInlineBarValues: "inside", // inside, inside-offset, and outside supported - showLegend: true, - showAxisLabels: false, - margin: {}, - colors: [ - "#F0047F", - "#00BFAD", - "#FFC803", - "#78ECC2", - "#DF4A1F", - "#FD98BC", - "#6B38FB", - "#03D0D0", - "#C40468", - "#78F19A", - "#91A5EE", - "#02C6B3", - "#FF0F00", - "#003EDD", - "#02465F", - "#960000", - "#FF72CF", - ], - // only applies when `showInlineBarValues: "inside"` - labelColors: [ - "#fff", - "#000", - "#000", - "#000", - "#000", - "#000", - "#000", - "#000", - "#fff", - "#000", - "#000", - "#000", - "#000", - "#000", - "#000", - "#fff", - "#fff", - "#000", - "#000", - "#000", - "#000", - "#000", - "#000", - "#fff", - "#000", - "#fff", - "#000", - "#000", - "#000", - "#000", - ], - colorMod: 0, - inlineLabelPad: 5, - labelPrecision: 0, - // TODO make this automatic by parsing `%` signs - valueType: ["percentage"], - sortLegend: false, - highlightElementsFromLegend: false, - extendedColors: false, - }, - options - ); - - this.options.colors = this.normalizeColors( - this.options.colors, - this.options.colorMod - ); - this.options.labelColors = this.normalizeColors( - this.options.labelColors, - this.options.colorMod - ); - } - - scaleTicksX(svg) { - const getTranslateX = (node) => - node.transform.baseVal.consolidate().matrix["e"]; - - const tickDistancesX = []; - const tickWidths = []; - - svg.selectAll(".d3chart-xaxis .tick").each(function () { - tickDistancesX.push(getTranslateX(d3.select(this).node())); - tickWidths.push(d3.select(this).node().getBBox().width); - }); - - const tickSize = (tickDistancesX.at(-1) - tickDistancesX.at(-2)) * 0.75; - const largestTickWidth = Math.max(...tickWidths); - const baseFontSize = 1.3; - - if (largestTickWidth >= tickSize) { - const scale = tickSize / largestTickWidth; - - svg - .selectAll(".d3chart-xaxis .tick text") - .style("font-size", `${baseFontSize * scale}em`) - } - } - - onResize(callback) { - if (!("ResizeObserver" in window)) { - window.addEventListener("resize", () => { - callback.call(this); - }); - return; - } - - let resizeObserver = new ResizeObserver((entries) => { - for (let entry of entries) { - // console.log( "resizing", this.target ); - callback.call(this); - } - }); - - resizeObserver.observe(this.target); - } - - onDeferInit(callback) { - if (!("IntersectionObserver" in window)) { - callback.call(this); - return; - } - - let observer = new IntersectionObserver( - (entries, observer) => { - entries.forEach((entry) => { - if (entry.isIntersecting) { - // console.log( "initing", this.target ); - callback.call(this); - observer.unobserve(entry.target); - } - }); - }, - { - threshold: 0.1, - } - ); - - observer.observe(this.target); - } - - normalizeColors(colors = [], mod = 0) { - if (mod) { - let c = []; - let len = colors.length; - let k = len + mod; - for (let j = mod || 0; j < k; j++) { - c.push(colors[j % len]); - } - return c; - } - - return colors; - } - - get margin() { - let m = Object.assign( - { - top: 30, - right: 10, - bottom: 25, - left: 40, - }, - this.options.margin - ); - - return m; - } - - get dimensions() { - let target = this.target; - return { - container: { - width: target.clientWidth, - height: target.clientHeight, - }, - min: { - width: 300, - height: 450, - }, - max: { - height: 1000, - }, - }; - } - - get width() { - return Math.max(this.dimensions.container.width, this.dimensions.min.width); - } - - get height() { - return Math.max( - Math.min(this.dimensions.container.height, this.dimensions.max.height) - - this.margin.bottom, - this.dimensions.min.height - ); - } - - get svg() { - return d3 - .create("svg") - .attr("height", this.height) - .attr("viewBox", [0, 0, this.width, this.height]); - } - - get colors() { - return d3.scaleOrdinal().range(this.options.colors); - } - - get labelColors() { - return d3.scaleOrdinal().range(this.options.labelColors); - } - - get target() { - return document.getElementById(this.targetId); - } - - reset(svg) { - let target = this.target; - target.classList.add("d3chart"); - if (this.className) { - target.classList.add(this.className); - } - - for (let child of target.children) { - if (child.tagName.toLowerCase() === "svg") { - child.remove(); - } - } - - let node = svg.node(); - target.appendChild(node); - } - - // Thanks https://bl.ocks.org/mbostock/7555321 - static wrapText(text, width) { - text.each(function () { - var text = d3.select(this), - words = text.text().split(/\s+/).reverse(), - word, - line = [], - lineNumber = 0, - lineHeight = 1.01, // ems - y = text.attr("y"), - dy = parseFloat(text.attr("dy")), - tspan = text.text(null).append("tspan").attr("x", 0).attr("y", y), - firstTspan = tspan; - - let wrapCount = 0; - while ((word = words.pop())) { - line.push(word); - tspan.text(line.join(" ")); - if (tspan.node().getComputedTextLength() > width) { - wrapCount++; - line.pop(); - tspan.text(line.join(" ")); - line = [word]; - tspan = text - .append("tspan") - .attr("x", 0) - .attr("y", y) - .attr("dy", lineHeight + dy + "em") - .text(word); - } - } - - if (wrapCount) { - text.attr("dy", 0).attr("class", "d3chart-label-wrapped"); - firstTspan.attr("dy", -0.3 * wrapCount * lineHeight + "em"); - } - }); - } - - parseDataToCsv(tableId, reverse) { - let table = document.getElementById(tableId); - let headerCells = table.querySelectorAll(":scope thead th"); - let bodyRows = table.querySelectorAll(":scope tbody tr"); - - let headerOutput = []; - for (let th of headerCells) { - headerOutput.push(th.textContent.replace(/,/g, ",")); - } - - let output = []; - for (let tr of bodyRows) { - let row = []; - for (let child of tr.children) { - let value = child.textContent; - if ( - child.getAttribute("data-avoid-parse") === null && - value.endsWith("%") - ) { - value = parseFloat(value) / 100; - } - row.push(value); - } - output.push(row.join(",")); - } - - if (reverse) { - return [headerOutput.join(","), ...output.reverse()].join("\n"); - } - return [headerOutput.join(","), ...output].join("\n"); - } - - retrieveLabelId(label) { - let match = label.match(/^(\d*)\./); - if (match && match[1]) { - return parseInt(match[1], 10); - } - } - - slugify(slug, prefix) { - return `${prefix}${slug.toLowerCase().replace(/[\s\.]/g, "")}`; - } - - generateLegend(labels = []) { - let container = document.createElement("div"); - container.classList.add("d3chart-legend"); - - let entries = []; - for (let j = 0; j < labels.length; j++) { - let tag = "div"; - let attrs = ""; - if ( - this.options.highlightElementsFromLegend || - this.options.interactive - ) { - tag = "button"; - attrs = " type='button'"; - } - - attrs += ` data-item=${this.slugify(labels[j], "")} `; - - entries.push({ - label: labels[j], - html: `<${tag}${attrs} class="d3chart-legend-entry d3chart-legend-${ - j + this.options.colorMod - }">${labels[j] || ""}`, - }); - } - - if (this.options.sortLegend) { - entries = entries.sort((a, b) => { - let idA = this.retrieveLabelId(a.label); - let idB = this.retrieveLabelId(b.label); - if (idA && idB) { - return idA - idB; - } - if (a.label < b.label) { - return -1; - } else if (b.label < a.label) { - return 1; - } - return 0; - }); - } - - let html = []; - for (let entry of entries) { - html.push(entry.html); - } - container.innerHTML = html.join(""); - return container; - } - - getKeys(data) { - return data.columns.slice(1); - } - - highlightElements(target, method) { - // TODO this is specific to Bubble chart - if (target.classList.contains("d3chart-legend-entry")) { - let circleSlug = this.slugify( - target.innerHTML, - `${this.targetId}-bubblecircle-` - ); - let labelSlug = this.slugify( - target.innerHTML, - `${this.targetId}-bubblelabel-` - ); - - let circle = document.getElementById(circleSlug); - let label = document.getElementById(labelSlug); - - circle.classList[method]("active"); - label.classList[method]("active"); - - circle.closest("svg").classList[method]("d3chart-bubble-active"); - } - } - - renderLegend(data) { - if (!this.options.showLegend) { - return; - } - - let keys = this.getKeys(data); - let legend = this.generateLegend(keys, this.options.colors); - - legend.classList.add(`${this.targetId}-legend`); - - let selector = ":scope .d3chart-legend-placeholder"; - - let previousEl = this.target.previousElementSibling; - let legendAnchorBefore = previousEl - ? previousEl.querySelector(selector) - : null; - - let nextEl = this.target.nextElementSibling; - let legendAnchorAfter = nextEl ? nextEl.querySelector(selector) : null; - - if (legendAnchorBefore || legendAnchorAfter) { - (legendAnchorBefore || legendAnchorAfter).appendChild(legend); - } else { - // inside - this.target.appendChild(legend); - } - } - - roundValue(num, valueType = "percentage") { - if (valueType !== "percentage") { - return num; - } - - let d0 = (num * 100).toFixed(0); - if (this.options.labelPrecision === 0) { - return d0; - } - - let d1 = (num * 100).toFixed(1); - if (d1.endsWith(".0")) { - return d0; - } - return d1; - } -} - -class D3VerticalBarChart extends D3Chart { - constructor(target, tableId, optionOverrides = {}) { - if (!optionOverrides.rotateXAxisLabels) { - optionOverrides.rotateXAxisLabels = { - maxWidth: 0, - }; - } - - let chart = super(target, optionOverrides, "d3chart-vbar"); - - let csvData = chart.parseDataToCsv(tableId); - let dataSplit = csvData.split("\n"); - this.axisLabels = [dataSplit[0].split(",")[0]]; - - let data = Object.assign(d3.csvParse(csvData, d3.autoType)); - - this.onDeferInit(function () { - this.render(chart, data); - this.renderLegend(data); - - this.onResize(function () { - this.render(chart, data); - }); - }); - } - - render(chart, data) { - let { - options, - margin, - width, - height, - dimensions, - svg, - colors, - labelColors, - } = chart; - - let keys = this.getKeys(data); - let groupKey = data.columns[0]; - let groups = data.map((d) => d[groupKey]); - - let y = d3 - .scaleLinear() - .domain([ - 0, - d3.max(data, (d) => { - if (options.mode === "stacked") { - let sum = 0; - for (let key of keys) { - sum += d[key]; - } - return sum; - } - - return d3.max(keys, (key) => d[key]); - }), - ]) - .nice() - .rangeRound([height - margin.bottom, margin.top]); - - let x0 = d3 - .scaleBand() - .domain(groups) - .rangeRound([margin.left, width - margin.right]) - .paddingInner(0.2); - - let x1 = d3 - .scaleBand() - .domain(keys) - .rangeRound([0, x0.bandwidth()]) - .padding(0.1); - - let yAxis = (g) => - g - .attr("transform", `translate(${margin.left},0)`) - .attr("class", "d3chart-yaxis") - .call( - d3 - .axisLeft(y) - .ticks(null, options.valueType[0] === "percentage" ? "%" : "") - .tickSize(-width + margin.left + margin.right) - ) - .call((g) => g.select(".domain").remove()); - - let xAxis = (g) => - g - .attr("transform", `translate(0,${height - margin.bottom})`) - .attr("class", "d3chart-xaxis") - .call(d3.axisBottom(x0).tickSizeOuter(0)) - .call((g) => g.select(".domain").remove()); - - let dataMod = (d) => { - let incrementer = 0; - - return keys.map((key) => { - let data = { - key, - value: d[key], - width: x1.bandwidth(), - height: y(0) - y(d[key]), - left: x1(key), - top: y(d[key]), - slug: this.slugify(key, ""), - }; - - if (options.mode === "stacked") { - data.width = x0.bandwidth(); - data.left = 0; - data.top = y(d[key]) - incrementer; - incrementer += data.height; - } - - return data; - }); - }; - - svg.append("g").call(xAxis); - svg.append("g").call(yAxis); - - svg - .append("g") - .selectAll("g") - .data(data) - .join("g") - .attr("transform", (d) => `translate(${x0(d[groupKey])},0)`) - .selectAll("rect") - .data(dataMod) - .join("rect") - .attr("x", (d) => d.left) - .attr("y", (d) => d.top) - .attr("width", (d) => d.width) - .attr("height", (d) => (isNaN(d.height) ? 0 : d.height)) - .attr("fill", (d) => colors(d.key)) - .attr("data-item", (d) => d.key) - .attr("class", (d, j) => `d3chart-color-${j + options.colorMod}`) - .classed("d3chart-rect", true); - - if (options.showInlineBarValues) { - svg - .append("g") - .selectAll("g") - .data(data) - .join("g") - .attr("transform", (d) => `translate(${x0(d[groupKey])},0)`) - .selectAll("text") - .data(dataMod) - .join("text") - .attr("x", (d) => d.left + d.width / 2) - .attr("y", (d) => { - if (isNaN(d.height)) { - return 0; - } - - return ( - d.top - - (options.showInlineBarValues === "outside" - ? options.inlineLabelPad - : -15 - options.inlineLabelPad) - ); - }) - .attr("fill", (d) => - options.showInlineBarValues === "inside" - ? labelColors(d.key) - : "currentColor" - ) - .attr("class", "d3chart-inlinebarvalue") - .text((d) => { - if (d.value === null) { - return ""; - } - - return ( - this.roundValue(d.value, options.valueType[0]) + - (options.valueType[0] === "percentage" ? "%" : "") - ); - }); - } - - // TODO for horizontal bar chart - if (options.showAxisLabels) { - svg - .append("text") - .attr("x", Math.round(width / 2)) - .attr("y", height - 6) - .attr("class", "d3chart-axislabel d3chart-axislabel-center") - .text(this.axisLabels[0]); - } - - chart.reset(svg); - - if (options.wrapTicks && options.wrapTicks.x) { - const heights = []; - const wrap = d3.textwrap().bounds({ - height: margin.bottom, - width: x0.bandwidth() * 1 + keys.length + 2, - }); - - svg.selectAll(".d3chart-xaxis text").call(wrap); - svg - .selectAll("foreignObject") - .attr("x", function () { - return (-1 * +d3.select(this).attr("width")) / 2; - }) - .style("text-align", "center") - .style("font-weight", 600) - .attr("height", function () { - const height = d3 - .select(this) - .select("div") - .node() - .getBoundingClientRect().height; - heights.push(height); - return height; - }); - - svg.attr("overflow", "visible"); - svg.node().parentNode.style.marginBottom = `${Math.max(...heights)}px`; - } - - if (options.rotateXAxisLabels === true) { - svg - .select(".d3chart-xaxis") - .selectAll("text") - .attr("transform", "rotate(45)") - .style("text-anchor", "start"); - } - - if (options.interactive) { - this.setupInteractivity(svg); - } - } - - setupInteractivity(svg) { - const rectElements = svg.selectAll(".d3chart-rect"); - const labelElements = svg.selectAll(".d3chart-bubblelabel"); - - let resetTimeout; - - const legendItems = d3.selectAll( - `.${this.targetId}-legend .d3chart-legend-entry` - ); - - function knockBackOpacity() { - rectElements.style("fill-opacity", 0.15); - labelElements.style("fill-opacity", 0.15); - legendItems.style("opacity", 0.15); - } - - function resetOpacity() { - resetTimeout = setTimeout(() => { - labelElements.style("fill-opacity", 1); - rectElements.style("fill-opacity", 1); - - legendItems.style("opacity", 1); - }, 512); - } - - function handleLegendIteraction() { - clearTimeout(resetTimeout); - - knockBackOpacity(); - - const item = d3.select(this).attr("data-item"); - - const rect = rectElements.filter(function () { - return d3.select(this).attr("data-item") === item; - }); - - const label = labelElements.filter(function () { - return d3.select(this).attr("data-item") === item; - }); - - rect.style("fill-opacity", 1); - label.style("fill-opacity", 1); - - d3.select(this).style("opacity", 1); - } - - legendItems.on("mouseover", handleLegendIteraction); - legendItems.on("focus", handleLegendIteraction); - - legendItems.on("mouseout", function () { - resetOpacity(); - }); - - legendItems.on("focusout", function () { - resetOpacity(); - }); - - rectElements.on("mouseover", function (e, data) { - clearTimeout(resetTimeout); - - knockBackOpacity(); - - const label = svg.select( - `.d3chart-bubblelabel[data-item="${data.slug}"]` - ); - const legendItem = legendItems.filter(function () { - return d3.select(this).attr("data-item") === data.slug; - }); - - d3.select(this).style("fill-opacity", 1); - label.style("fill-opacity", 1); - legendItem.style("opacity", 1); - }); - - rectElements.on("mouseout", function () { - resetOpacity(); - }); - } -} - -class D3HorizontalBarChart extends D3Chart { - constructor(target, tableId, optionOverrides = {}) { - optionOverrides.margin = Object.assign( - { - top: 20, - right: 50, - bottom: 20, - left: 120, - }, - optionOverrides.margin - ); - let chart = super(target, optionOverrides, "d3chart-hbar"); - let csvData = chart.parseDataToCsv(tableId, true); - let data = Object.assign(d3.csvParse(csvData, d3.autoType)); - - this.onDeferInit(function () { - this.render(chart, data); - this.renderLegend(data); - - this.onResize(function () { - this.render(chart, data); - }); - }); - } - - render(chart, data) { - let { - options, - margin, - width, - height, - dimensions, - svg, - colors, - labelColors, - } = chart; - - let keys = this.getKeys(data); - let groupKey = data.columns[0]; - let groups = data.map((d) => d[groupKey]); - - let x = d3 - .scaleLinear() - .domain([ - 0, - d3.max(data, (d) => { - if (options.scale === "proportional") { - return 1; - } - - if (options.mode === "stacked") { - let sum = 0; - for (let key of keys) { - sum += d[key]; - } - return sum; - } - - return d3.max(keys, (key) => d[key]); - }), - ]) - .nice() - .rangeRound([margin.left, width - margin.right]); - - let y0 = d3 - .scaleBand() - .domain(groups) - .rangeRound([height - margin.bottom - margin.top, margin.top]) - .paddingInner( - options.showInlineBarValues === "inside-offset" ? 0.25 : 0.15 - ); - - let y1 = d3 - .scaleBand() - .domain(keys) - .rangeRound([0, y0.bandwidth()]) - .padding(0.05); - - let xAxis = (g) => - g - .attr("transform", `translate(0, ${(margin.top + margin.bottom) / 4})`) - .attr("class", "d3chart-xaxis") - .call( - d3 - .axisBottom(x) - .ticks(5, options.valueType[0] === "percentage" ? "%" : "") - .tickSize(height - margin.bottom - margin.top) - ) - .call((g) => g.select(".domain").remove()); - - let yAxis = (g) => - g - .attr("transform", `translate(${margin.left - 6},0)`) - .attr("class", "d3chart-yaxis") - .call(d3.axisLeft(y0).tickSize(0)) - .call((g) => g.select(".domain").remove()); - - let dataMod = (d) => { - let incrementer = 0; - let sum = 0; - for (let key of keys) { - sum += d[key]; - } - - return keys.map((key) => { - let data = { - key, - value: d[key], - sum, - width: - x(options.scale === "proportional" ? d[key] / sum : d[key]) - x(0), - height: y1.bandwidth(), - left: margin.left, - top: y1(key), - slug: this.slugify(key, ""), - }; - - if (options.mode === "stacked") { - data.top = 0; - data.height = y0.bandwidth(); - data.left = margin.left + incrementer; - - incrementer += data.width; - } - - return data; - }); - }; - - svg.append("g").call(xAxis); - svg.append("g").call(yAxis); - - svg - .append("g") - .selectAll("g") - .data(data) - .join("g") - .attr("transform", (d) => `translate(0,${y0(d[groupKey])})`) - .selectAll("rect") - .data(dataMod) - .join("rect") - .attr("x", (d) => d.left) - .attr("y", (d) => d.top) - .attr("width", (d) => (isNaN(d.width) ? 0 : d.width)) - .attr("height", (d) => d.height) - .attr("fill", (d) => colors(d.key)) - .attr("class", (d, j) => `d3chart-color-${j + options.colorMod}`) - .classed("d3chart-rect", true) - .attr("data-item", (d) => d.slug); - - if (options.showInlineBarValues) { - svg - .append("g") - .selectAll("g") - .data(data) - .join("g") - .attr("transform", (d) => `translate(0,${y0(d[groupKey])})`) - .selectAll("text") - .data(dataMod) - .join("text") - .attr("x", (d) => { - let offset = options.inlineLabelPad; - - if (isNaN(d.width)) { - return d.left + offset; - } - - if (options.showInlineBarValues.startsWith("inside")) { - offset = -1 * offset; - } - - if (options.showInlineBarValues === "inside-offset") { - offset += 16; - } - - return d.left + d.width + offset; - }) - .attr("y", (d) => { - if (options.showInlineBarValues === "inside-offset") { - return -10; - } - return d.top + Math.floor(d.height / 2) - 1; - }) - .attr( - "class", - (d) => - "d3chart-inlinebarvalue-h" + - (options.showInlineBarValues.length - ? ` ${options.showInlineBarValues}` - : "") - ) - .attr("fill", (d) => - options.showInlineBarValues === "inside" - ? labelColors(d.key) - : "currentColor" - ) - .text((d) => { - if (d.value === null) { - return ""; - } - - return ( - this.roundValue(d.value, options.valueType[0]) + - (options.valueType[0] === "percentage" ? "%" : "") - ); - }); - } - - chart.reset(svg); - - if (options.scaleTicks && options.scaleTicks.x) { - this.scaleTicksX(svg); - } - - if (options.wrapAxisLabel && options.wrapAxisLabel.left) { - D3Chart.wrapText( - svg.selectAll(".d3chart-yaxis .tick text"), - margin.left - 6 - ); - } - - if (options.interactive) { - this.setupInteractivity(svg); - } - } - - setupInteractivity(svg) { - const rectElements = svg.selectAll(".d3chart-rect"); - const labelElements = svg.selectAll(".d3chart-bubblelabel"); - - let resetTimeout; - - const legendItems = d3.selectAll( - `.${this.targetId}-legend .d3chart-legend-entry` - ); - - function knockBackOpacity() { - rectElements.style("fill-opacity", 0.15); - labelElements.style("fill-opacity", 0.15); - legendItems.style("opacity", 0.15); - } - - function resetOpacity() { - resetTimeout = setTimeout(() => { - labelElements.style("fill-opacity", 1); - rectElements.style("fill-opacity", 1); - - legendItems.style("opacity", 1); - }, 512); - } - - function handleLegendIteraction() { - clearTimeout(resetTimeout); - - knockBackOpacity(); - - const item = d3.select(this).attr("data-item"); - - const rect = rectElements.filter(function () { - return d3.select(this).attr("data-item") === item; - }); - - const label = labelElements.filter(function () { - return d3.select(this).attr("data-item") === item; - }); - - rect.style("fill-opacity", 1); - label.style("fill-opacity", 1); - - d3.select(this).style("opacity", 1); - } - - legendItems.on("mouseover", handleLegendIteraction); - legendItems.on("focus", handleLegendIteraction); - - legendItems.on("mouseout", function () { - resetOpacity(); - }); - - legendItems.on("focusout", function () { - resetOpacity(); - }); - - rectElements.on("mouseover", function (e, data) { - clearTimeout(resetTimeout); - - knockBackOpacity(); - - const label = svg.select( - `.d3chart-bubblelabel[data-item="${data.slug}"]` - ); - const legendItem = legendItems.filter(function () { - return d3.select(this).attr("data-item") === data.slug; - }); - - d3.select(this).style("fill-opacity", 1); - label.style("fill-opacity", 1); - legendItem.style("opacity", 1); - }); - - rectElements.on("mouseout", function () { - resetOpacity(); - }); - } -} - -class D3BubbleChart extends D3Chart { - constructor(target, tableId, optionOverrides = {}) { - optionOverrides.margin = { - top: 20, - right: 20, - bottom: 50, - left: 65, - }; - - optionOverrides.sortLegend = true; - optionOverrides.highlightElementsFromLegend = true; - optionOverrides.showAxisLabels = true; - - if (!optionOverrides.valueType) { - optionOverrides.valueType = ["percentage", "percentage"]; - } - - let chart = super(target, optionOverrides, "d3chart-bubble"); - let csvData = chart.parseDataToCsv(tableId); - let dataSplit = csvData.split("\n"); - this.axisLabels = dataSplit[0].split(",").slice(1); - - let data = dataSplit.slice(1).map((entry, id) => { - const columns = entry.split(","); - let [name, x, y, r] = columns; - return { - name, - id, - x, - y, - r: r ?? columns[optionOverrides.radiusColumn], - slug: this.slugify(name, ""), - }; - }); - - // sort from smallest to largest circles to insert in order (to render in the right z-index) - data = data.slice().sort((a, b) => { - return b.r - a.r; - }); - - this.onDeferInit(function () { - this.render(chart, data); - this.renderLegend(data); - - this.onResize(function () { - this.render(chart, data); - }); - }); - } - - getKeys(data) { - let keys = []; - for (let entry of data) { - keys.push(entry.name); - } - return keys; - } - - resolveLimit(data, key, valueType, mode) { - let limit = d3[mode](data, (d) => parseFloat(d[key])); - if (valueType !== "percentage") { - if (mode === "max") { - limit = Math.ceil(limit); - } else if (mode === "min") { - limit = Math.min(Math.floor(limit), 0); - } - } else { - if (mode === "max") { - if (limit > 1) { - limit += 0.1; - } else { - // round up to at most 1 if percentage < 100% - if (limit > 0.5) { - limit = Math.min(limit + 0.1, 1); - } else { - (limit = limit + 0.05), 1; - } - } - } - if (mode === "min") { - if (limit <= 0) { - limit -= 0.1; - } else { - // round up to at most 1 if percentage < 100% - limit = Math.min(limit, 0); - } - } - } - - return limit; - } - - render(chart, data) { - let { - options, - margin, - width, - height, - dimensions, - svg, - colors, - labelColors, - } = chart; - let xScale = d3.scaleLinear().range([margin.left, width - margin.right]); - let yScale = d3.scaleLinear().range([margin.top, height - margin.bottom]); - - let xAxisMin = this.resolveLimit(data, "x", options.valueType[0], "min"); - let xAxisMax = this.resolveLimit(data, "x", options.valueType[0], "max"); - let yAxisMin = this.resolveLimit(data, "y", options.valueType[1], "min"); - let yAxisMax = this.resolveLimit(data, "y", options.valueType[1], "max"); - - const yExtent = d3.extent([yAxisMin, yAxisMax]); - const yRange = yExtent[1] - yExtent[0]; - - xScale.domain([xAxisMin, xAxisMax]).nice(); - yScale - .domain([yExtent[1] + yRange * 0.05, yExtent[0] - yRange * 0.05]) - .nice(); - - let rScale = d3 - .scaleLinear() - .range([7, 25]) - .domain([ - Math.min( - d3.min(data, (d) => parseFloat(d.r)), - 0 - ), - d3.max(data, (d) => parseFloat(d.r)), - ]); - - let xAxis = d3 - .axisBottom() - .scale(xScale) - .ticks(null) - .tickSize(-height + margin.bottom + margin.top) - .tickFormat((d) => - options.valueType[0] === "percentage" ? `${(d * 100).toFixed(0)}%` : d - ); - - svg - .append("g") - .attr("class", "d3chart-xaxis") - .attr("transform", function () { - return "translate(0," + (height - margin.bottom) + ")"; - }) - .call(xAxis) - .call((g) => g.select(".domain").remove()); - - let yAxis = d3 - .axisLeft() - .scale(yScale) - .ticks(null) - .tickSize(-width + margin.right + margin.left) - .tickFormat((d) => - options.valueType[1] === "percentage" ? `${(d * 100).toFixed(0)}%` : d - ); - - svg - .append("g") - .attr("class", "d3chart-yaxis") - .attr("transform", function () { - return "translate(" + margin.left + "," + 0 + ")"; - }) - .call(yAxis) - .call((g) => g.select(".domain").remove()); - - svg.selectAll(".d3chart-xaxis .tick").attr("data-chart-value", (d) => d); - svg.selectAll(".d3chart-yaxis .tick").attr("data-chart-value", (d) => d); - - if (options.showAxisLabels) { - // Axis labels - svg - .append("text") - .attr("x", width - margin.right) - .attr("y", height - 6) - .attr("class", "d3chart-axislabel") - .text(this.axisLabels[0]); - - svg - .append("text") - .attr("x", -1 * margin.top) - .attr("y", 6) - .attr("dy", ".75em") - .attr("transform", "rotate(-90)") - .attr("class", "d3chart-axislabel") - .text(this.axisLabels[1]); - } - - let group = svg.append("g"); - - let circles = group.selectAll("circle").data(data); - - // Text Labels - function isOffsetLabel(d) { - let range = rScale(d.r); - return range <= 10; - } - - circles - .enter() - .insert("circle") - .attr("data-item", (d) => d.slug) - .attr("cx", function (d) { - return xScale(d.x); - }) - .attr("cy", function (d) { - return yScale(d.y); - }) - .attr("r", function (d) { - return rScale(d.r); - }) - .attr( - "class", - (d, j) => `d3chart-bubblecircle d3chart-color-${j + options.colorMod}` - ); - - circles - .enter() - .append("text") - .attr("data-item", (d) => d.slug) - .attr("x", (d) => { - return xScale(d.x) - (isOffsetLabel(d) ? rScale(d.r) + 4 : 0); - }) - .attr("y", (d) => yScale(d.y)) - .attr("class", (d) => { - return "d3chart-bubblelabel" + (isOffsetLabel(d) ? " offset-l" : ""); - }) - .attr("fill", (d) => (isOffsetLabel(d) ? "currentColor" : labelColors(d))) - .attr("pointer-events", "none") - .text((d) => { - let labelId = this.retrieveLabelId(d.name); - if (labelId) { - return labelId; - } - return d.name; - }) - .filter((d) => isOffsetLabel(d)) - .lower(); - - chart.reset(svg); - - if (options.scaleTicks && options.scaleTicks.x) { - this.scaleTicksX(svg); - } - - this.setupInteractivity(svg); - } - - setupInteractivity(svg) { - const circleElements = svg.selectAll(".d3chart-bubblecircle"); - const labelElements = svg.selectAll(".d3chart-bubblelabel"); - - let resetTimeout; - - const legendItems = d3.selectAll( - `.${this.targetId}-legend .d3chart-legend-entry` - ); - - function knockBackOpacity() { - circleElements.style("fill-opacity", 0.15); - labelElements.style("fill-opacity", 0.15); - legendItems.style("opacity", 0.15); - } - - function resetOpacity() { - resetTimeout = setTimeout(() => { - labelElements.style("fill-opacity", 1); - circleElements.style("fill-opacity", 0.85); - - legendItems.style("opacity", 1); - }, 512); - } - - function handleLegendIteraction() { - clearTimeout(resetTimeout); - - knockBackOpacity(); - - const item = d3.select(this).attr("data-item"); - - const circle = circleElements.filter(function () { - return d3.select(this).attr("data-item") === item; - }); - - const label = labelElements.filter(function () { - return d3.select(this).attr("data-item") === item; - }); - - circle.style("fill-opacity", 1); - label.style("fill-opacity", 1); - - d3.select(this).style("opacity", 1); - } - - legendItems.on("mouseover", handleLegendIteraction); - legendItems.on("focus", handleLegendIteraction); - - legendItems.on("mouseout", function () { - resetOpacity(); - }); - - legendItems.on("focusout", resetOpacity); - - circleElements.on("mouseover", function (e, data) { - clearTimeout(resetTimeout); - - knockBackOpacity(); - - const label = svg.select( - `.d3chart-bubblelabel[data-item="${data.slug}"]` - ); - const legendItem = legendItems.filter(function () { - return d3.select(this).attr("data-item") === data.slug; - }); - - d3.select(this).style("fill-opacity", 1); - label.style("fill-opacity", 1); - legendItem.style("opacity", 1); - }); - - circleElements.on("mouseout", function () { - resetOpacity(); - }); - } -} - -class D3LineChart extends D3Chart { - constructor(target, tableId, optionOverrides = {}) { - let chart = super(target, optionOverrides, "d3chart-hline"); - let csvData = chart.parseDataToCsv(tableId, true); - let data = Object.assign(d3.csvParse(csvData, d3.autoType)); - - this.onDeferInit(function () { - this.render(chart, data); - this.renderLegend(data); - - this.onResize(function () { - this.render(chart, data); - }); - }); - } - - render(chart, data) { - let { options, margin, width, height, dimensions, svg } = chart; - - const paddingX = dimensions.container.width / 16; - const paddingY = 0; - - const timeConv = d3.timeParse("%Y"); - - const slices = data.columns.slice(1).map((id) => { - return { - id, - values: data.map((d) => { - return { - date: timeConv(d.Date), - measurement: +d[id], - }; - }), - slug: this.slugify(id, ""), - }; - }); - - const xScale = d3 - .scaleTime() - .range([margin.left + paddingX, width - margin.right - paddingX]) - .domain(d3.extent(data, (d) => timeConv(d.Date))); - - const yScale = d3 - .scaleLinear() - .rangeRound([height - margin.bottom - paddingY, margin.top + paddingY]) - .domain([ - 0, - d3.max(slices, (c) => d3.max(c.values, (d) => d.measurement)), - ]) - .nice(); - - const yaxis = d3 - .axisLeft() - .tickFormat(d3.format(".0%")) - .tickSize(-width + margin.left + margin.right) - .scale(yScale); - const xaxis = d3.axisBottom().ticks(d3.timeYear.every(1)).scale(xScale); - - svg - .append("g") - .attr("transform", `translate(0, ${height - margin.bottom})`) - .call(xaxis) - .call((g) => g.select(".domain").remove()); - - svg - .append("g") - .attr("transform", `translate(${margin.left}, 0)`) - .call(yaxis) - .call((g) => g.select(".domain").remove()); - - const line = d3 - .line() - .x(function (d) { - return xScale(d.date); - }) - .y(function (d) { - return yScale(d.measurement); - }); - - const lines = svg.selectAll("lines").data(slices).enter().append("g"); - - lines - .append("path") - .attr("d", (d) => line(d.values)) - .attr("fill", "none") - .attr("stroke-width", 5) - .attr( - "class", - (d, j) => `d3chart-line d3chart-color-stroke-${j + options.colorMod}` - ) - .attr("data-item", (d) => d.slug); - - chart.reset(svg); - - this.setupInteractivity(svg); - } - - setupInteractivity(svg) { - const lineElements = svg.selectAll(".d3chart-line"); - const legendItems = d3.selectAll( - `.${this.targetId}-legend .d3chart-legend-entry` - ); - - let resetTimeout; - - function knockBackOpacity() { - lineElements.style("opacity", 0.15); - legendItems.style("opacity", 0.15); - } - - function resetOpacity() { - resetTimeout = setTimeout(() => { - lineElements.style("opacity", 1); - legendItems.style("opacity", 1); - }, 512); - } - - lineElements.on("mouseover", function (e, data) { - clearTimeout(resetTimeout); - - knockBackOpacity(); - - d3.select(this).style("opacity", 1); - - const legendItem = legendItems.filter(function () { - return d3.select(this).attr("data-item") === data.slug; - }); - - legendItem.style("opacity", 1); - }); - - lineElements.on("mouseout", function () { - resetOpacity(); - }); - - legendItems.on("mouseover", function (e, data) { - clearTimeout(resetTimeout); - knockBackOpacity(); - - const slug = d3.select(this).attr("data-item"); - - const line = lineElements.filter(function (d) { - return d.slug === slug; - }); - - line.style("opacity", 1); - - d3.select(this).style("opacity", 1); - }); - - legendItems.on("mouseout", function () { - resetOpacity(); - }); - } -} diff --git a/src/site/tv.njk b/src/site/tv.njk deleted file mode 100644 index c75f98b08..000000000 --- a/src/site/tv.njk +++ /dev/null @@ -1,385 +0,0 @@ ---- -title: Jamstack TV -subtitle: A curated collection of Jamstack video resources featuring talks, tutorials, and conference presentations from the community. -layout: layouts/base.njk ---- - -
      -

      {{ title }}

      -

      {{ subtitle }}

      -
      - -
      - - -
        -
      1. - -
        - Jamstack Meetup SF: Realizing the Potential of the A in Jamstack - 42:53 -
        -
        -
        - Jamstack Meetups - - Jamstack Meetup SF: Realizing the Potential of the A in Jamstack - -
        - - hello and - -
        -
        -
      2. - -
      3. - -
        - [Livestream] JAMstack Meetup #16 - 59:56 -
        -
        -
        - Jamstack Meetups - [Livestream] JAMstack Meetup #16 -
        - - - (captions sponsored by Prisma) - [Enxhi] And we're live. - - -
        -
        -
      4. - -
      5. - -
        - Oh The Scripts We'll Load - A Performance Talk by Tim Kadlec - 31:31 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - - Oh The Scripts We'll Load - A Performance Talk by Tim Kadlec - -
        - - thanks phil - -
        -
        -
      6. - -
      7. - -
        - Jamstack Conf Virtual - The Jammies Awards - 18:39 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - Jamstack Conf Virtual - The Jammies Awards -
        - - so let's move on - -
        -
        -
      8. - -
      9. - -
        - JamSnack - What's New in Hugo - 2:26 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - JamSnack - What's New in Hugo -
        - - hello - -
        -
        -
      10. - -
      11. - -
        - JamSnack - What's New in Next.js - 3:07 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - JamSnack - What's New in Next.js -
        - - hello jams.com my name is cassidy and - -
        -
        -
      12. - -
      13. - -
        - JamSnack - What's New in Redwood.js - 2:20 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - JamSnack - What's New in Redwood.js -
        - - does the javascript ecosystem leave you - -
        -
        -
      14. - -
      15. - -
        - JamSnack - What's New in Scully - 2:48 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - JamSnack - What's New in Scully -
        - - hey jammers - -
        -
        -
      16. - -
      17. - -
        - JamSnack - What's New in Vue.js - 2:54 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - JamSnack - What's New in Vue.js -
        - - hello james.com this is evan yu - -
        -
        -
      18. - -
      19. - -
        - JamSnack - What's New in Gatsby.js - 1:44 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - JamSnack - What's New in Gatsby.js -
        - - hi - -
        -
        -
      20. - -
      21. - -
        - JamSnack - What's New in Angular - 2:01 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - JamSnack - What's New in Angular -
        - - hi - -
        -
        -
      22. - -
      23. - -
        - JamSnack - What's New in 11ty - 2:32 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - JamSnack - What's New in 11ty -
        - - what's up y'all - -
        -
        -
      24. - -
      25. - -
        - Teespring's Journey to the Jamstack, Rick Takes - 17:32 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - Teespring's Journey to the Jamstack, Rick Takes -
        - - hi everyone - -
        -
        -
      26. - -
      27. - -
        - State of the Jamstack Oct 2020 Keynote, Matt Biilmann of Netlify - 20:49 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - - State of the Jamstack Oct 2020 Keynote, Matt Biilmann of Netlify - -
        - - hi everybody - -
        -
        -
      28. - -
      29. - -
        - Bringing Remote Sensing and Disaster Relief to the Jamstack - 9:38 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - - Bringing Remote Sensing and Disaster Relief to the Jamstack - -
        - - hey everyone - -
        -
        -
      30. - -
      31. - -
        - Migrating to Netlify, One Page at a Time - 9:56 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - Migrating to Netlify, One Page at a Time -
        - - hello - -
        -
        -
      32. - -
      33. - -
        - Jamstack Lightning Launch: Algolia Search Crawlers - 7:47 -
        -
        -
        - Jamstack Conf Virtual Oct 2020 - Jamstack Lightning Launch: Algolia Search Crawlers -
        - - - [Musique] i want my name is fair and engineering - - -
        -
        -
      34. -
      -
      \ No newline at end of file diff --git a/src/site/what-is-jamstack.njk b/src/site/what-is-jamstack.njk deleted file mode 100644 index 3acb5b409..000000000 --- a/src/site/what-is-jamstack.njk +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: What is the Jamstack? -description: What is the Jamstack? Why use the Jamstack? JavaScript, APIs, and Markup - learn what the Jamstack is all about and its approach for building faster, more secure websites. -layout: layouts/base.njk ---- - -
      -

      What is Jamstack?

      -

      - Jamstack is an architecture designed to make the web faster, more secure, and easier to scale. It builds on many of the tools and workflows which developers love, and which bring maximum productivity. -

      -

      - The core principles of pre-rendering, and decoupling, enable sites and applications to be delivered with greater confidence and resilience than ever before. -

      -

      - Explore more of the benefits of Jamstack. -

      -
      -
      -

      Pre-rendering

      -

      - With Jamstack, the entire front end is prebuilt into highly optimized static pages and assets during a build process. This process of pre-rendering results in sites which can be served directly from a CDN, reducing the cost, complexity and risk, of dynamic servers as critical infrastructure. -

      -

      - With so many popular tools for generating sites, like Gatsby, Hugo, Jekyll, Eleventy, NextJS, and very many more, many web developers are already familiar with the tools needed to become productive Jamstack developers. -

      -
      -
      -

      Enhancing with JavaScript

      -

      - With the markup and other user interface assets of Jamstack sites served directly from a CDN, they can be delivered very quickly and securely. On this foundation, Jamstack sites can use JavaScript and APIs to talk to backend services, allowing experiences to be enhanced and personalized. -

      -
      -
      -

      Supercharging with services

      -

      - The thriving API economy has become a significant enabler for Jamstack sites. The ability to leverage domain experts who offer their products and service via APIs has allowed teams to build far more complex applications than if they were to take on the risk and burden of such capabilities themselves. Now we can outsource things like authentication and identity, payments, content management, data services, search, and much more. -

      -

      - Jamstack sites might utilise such services at build time, and also at run time directly from the browser via JavaScript. And the clean decoupling of these services allows for greater portability and flexibility, as well as significantly reduced risk. -

      -
      -
      -

      Named to help the conversation

      -

      - The name "Jamstack" came about because as Matt Biilmann and Chris Bach were creating modern web development workflows and capabilities at Netlify, they found there was no easy way to refer to the architectural approach in conversation. Jamstack embraces many existing fundamentals of web architectures, and so they created the term Jamstack to help us talk about it more succinctly. -

      -

      - You can learn more about the background, benefits, and case studies of Jamstack in the book Modern web development on the Jamstack, (Biilmann & Hawksworth, O'Reilly, 2019) -

      -
      - - diff --git a/src/site/why-jamstack.njk b/src/site/why-jamstack.njk deleted file mode 100644 index e92619c2b..000000000 --- a/src/site/why-jamstack.njk +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Why Use the Jamstack? -description: Why use the Jamstack? Learn all about the security, speed, and other benefits that the Jamstack approach gives when building for the modern web. Check it out! -layout: layouts/base.njk ---- - -
      -

      Why Jamstack?

      -

      - A Jamstack architecture can bring all sorts of benefits to the sites and to project workflows. Some of the key benefits are: -

      -
      - -
      -

      Security

      -

      - The Jamstack removes multiple moving parts and systems from the hosting infrastructure resulting in fewer servers and systems to harden against attack. -

      -

      - Serving pages and assets as pre-generated files allows read-only hosting reducing attack vectors even further. Meanwhile dynamic tools and services can be provided by vendors with teams dedicated to securing their specific systems and providing high levels of service. -

      -
      - -
      -

      Scale

      -

      - Popular architectures deal with heavy traffic loads by adding logic to cache popular views and resources. The Jamstack provides this by default. When sites can be served entirely from a CDN there is no complex logic or workflow to determine what assets can be cached and when. -

      -

      - With Jamstack sites everything can be cached in a content delivery network. With simpler deployments, built-in redundancy and incredible load capacity. -

      -
      - -
      -

      Performance

      -

      - Page loading speeds have an impact on user experience and conversion. Jamstack sites remove the need to generate page views on a server at request time by instead generating pages ahead of time during a build. -

      -

      - With all the pages are already available on a CDN close to the user and ready to serve, very high performance is possible without introducing expensive or complex infrastructure. -

      -
      - -
      -

      Maintainability

      -

      - When hosting complexity is reduced, so are maintenance tasks. A pre-generated site, being served directly from a simple host or directly from a CDN does not need a team of experts to "keep the lights on". -

      -

      - The work was done during the build, so now the generated site is stable and can be hosted without servers which might require patching, updating and maintenance. -

      -
      - -
      -

      Portability

      -

      - Jamstack sites are pre-generated. That means that you can host them from a wide variety of hosting services and have greater ability to move them to your preferred host. Any simple static hosting solution should be able to serve a Jamstack site. -

      -

      - Bye-bye infrastructure lock-in. -

      -
      - -
      -

      Developer Experience

      -

      - Jamstack sites can be built with a wide variety of tools. They do not depend on the proprietary technologies or exotic and little known frameworks. Instead, they build on widely available tools and conventions. As a result, it's not hard to find enthusiastic and talented developers who have the right skills to build with the Jamstack. Efficiency and effectiveness can prosper. -

      -
      \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js deleted file mode 100644 index 75495f63d..000000000 --- a/tailwind.config.js +++ /dev/null @@ -1,53 +0,0 @@ -module.exports = { - content: [ - './src/site/**/*.njk', - './src/site/**/*.md' - ], - darkMode: ['class'], - theme: { - borderRadius: { - 'none': '0', - 'sm': '.125rem', - default: '.25rem', - 'lg': '.5rem', - 'xl': '1rem', - 'full': '9999px', - }, - extend: { - fontSize: { - xxs: "0.625rem", - }, - colors: { - orange: { - 500: "#DF4A1F", - }, - blue : { - //900: '#0E182A', // old - 900: '#161a2b', // old - 800: '#252D3B', // old - 300: '#718096', // old - 200: '#CBD5E0', // old - 100: '#E2E8F0' // old - }, - gray: { - 900: "#0D0F18", - 700: "#2D3247", - 400: "#5A5F75", - 300: "#9AA0B6", - 200: "#D8DEEC", - 100: "#F8FAFF" - }, - pink : { - 900 : '#D1036F', // old - 500 : '#F0047F', - 100 : '#FFB1C5' // old - } - } - } - }, - variants: { - borderRadius: ["last"], - textDecoration: ["group-hover", "hover"] - }, - plugins: [] -} diff --git a/webpack.conf.js b/webpack.conf.js new file mode 100755 index 000000000..8cc81c64c --- /dev/null +++ b/webpack.conf.js @@ -0,0 +1,37 @@ +import webpack from "webpack"; +import path from "path"; + +export default { + module: { + loaders: [ + { + test: /\.((png)|(eot)|(woff)|(woff2)|(ttf)|(svg)|(gif))(\?v=\d+\.\d+\.\d+)?$/, + loader: "file?name=/[hash].[ext]" + }, + {test: /\.json$/, loader: "json-loader"}, + { + loader: "babel", + test: /\.js?$/, + exclude: /node_modules/, + query: {cacheDirectory: true} + } + ] + }, + + plugins: [ + new webpack.ProvidePlugin({ + "fetch": "imports?this=>global!exports?global.fetch!whatwg-fetch" + }) + ], + + context: path.join(__dirname, "src"), + entry: { + app: ["./js/app"] + }, + output: { + path: path.join(__dirname, "dist"), + publicPath: "/", + filename: "[name].js" + }, + externals: [/^vendor\/.+\.js$/] +}; diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..51c780c5c --- /dev/null +++ b/yarn.lock @@ -0,0 +1,6176 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@types/estree@0.0.38": + version "0.0.38" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.38.tgz#c1be40aa933723c608820a99a373a16d215a1ca2" + +"@types/node@*": + version "10.3.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.3.3.tgz#8798d9e39af2fa604f715ee6a6b19796528e46c3" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +accepts@~1.3.3, accepts@~1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" + dependencies: + mime-types "~2.1.18" + negotiator "0.6.1" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.0, acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^5.5.0: + version "5.6.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.6.2.tgz#b1da1d7be2ac1b4a327fb9eab851702c5045b4e7" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv@^4.7.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.1.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ansi-colors@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" + dependencies: + ansi-wrap "^0.1.0" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-gray@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + dependencies: + ansi-wrap "0.1.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" + +ansi-wrap@0.1.0, ansi-wrap@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + +any-promise@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-0.1.0.tgz#830b680aa7e56f33451d4b049f3bd8044498ee27" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + +array-slice@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1, array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + +async-each-series@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-0.1.1.tgz#7617c1917401fd8ca4a28aadce3dbae98afeb432" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + +async@1.5.2, async@^1.3.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + +async@~0.2.6: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +atob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" + +autoprefixer@^6.0.2, autoprefixer@^6.3.1, autoprefixer@^6.3.7: + version "6.7.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + dependencies: + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.16" + postcss-value-parser "^3.2.3" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" + +axios@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.17.1.tgz#2d8e3e5d0bdbd7327f91bc814f5c57660f81824d" + dependencies: + follow-redirects "^1.2.5" + is-buffer "^1.1.5" + +babel-code-frame@^6.16.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.23.1, babel-core@^6.24.1, babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-eslint@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-6.1.2.tgz#5293419fe3672d66598d327da9694567ba6a5f2f" + dependencies: + babel-traverse "^6.0.20" + babel-types "^6.0.19" + babylon "^6.0.18" + lodash.assign "^4.0.0" + lodash.pickby "^4.0.0" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-loader@^6.2.4: + version "6.4.1" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.4.1.tgz#0b34112d5b0748a8dcdbf51acf6f9bd42d50b8ca" + dependencies: + find-cache-dir "^0.1.1" + loader-utils "^0.2.16" + mkdirp "^0.5.1" + object-assign "^4.0.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-syntax-class-properties@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" + +babel-plugin-syntax-dynamic-import@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + +babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + +babel-plugin-transform-amd-system-wrapper@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-amd-system-wrapper/-/babel-plugin-transform-amd-system-wrapper-0.3.7.tgz#521c782d35644491c979ea683e8a5e1caff0ba42" + dependencies: + babel-template "^6.9.0" + +babel-plugin-transform-cjs-system-wrapper@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-cjs-system-wrapper/-/babel-plugin-transform-cjs-system-wrapper-0.6.2.tgz#bd7494775289424ff493b6ed455de495bd71ba1d" + dependencies: + babel-template "^6.9.0" + +babel-plugin-transform-class-properties@^6.10.2: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" + dependencies: + babel-helper-function-name "^6.24.1" + babel-plugin-syntax-class-properties "^6.8.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.24.1, babel-plugin-transform-es2015-modules-systemjs@^6.6.5: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-global-system-wrapper@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-global-system-wrapper/-/babel-plugin-transform-global-system-wrapper-0.3.4.tgz#948dd7d29fc21447e39bd3447f2debc7f2f73aac" + dependencies: + babel-template "^6.9.0" + +babel-plugin-transform-object-assign@^6.8.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz#f99d2f66f1a0b0d498e346c5359684740caa20ba" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-object-rest-spread@^6.8.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-plugin-transform-regenerator@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-system-register@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-system-register/-/babel-plugin-transform-system-register-0.0.1.tgz#9dff40390c2763ac518f0b2ad7c5ea4f65a5be25" + +babel-polyfill@6.7.4: + version "6.7.4" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.7.4.tgz#757ea852e32952b9bfe0db96f464fcee642796a8" + dependencies: + babel-regenerator-runtime "^6.3.13" + babel-runtime "^5.0.0" + core-js "^2.1.0" + +babel-preset-es2015@^6.9.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.24.1" + babel-plugin-transform-es2015-classes "^6.24.1" + babel-plugin-transform-es2015-computed-properties "^6.24.1" + babel-plugin-transform-es2015-destructuring "^6.22.0" + babel-plugin-transform-es2015-duplicate-keys "^6.24.1" + babel-plugin-transform-es2015-for-of "^6.22.0" + babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-systemjs "^6.24.1" + babel-plugin-transform-es2015-modules-umd "^6.24.1" + babel-plugin-transform-es2015-object-super "^6.24.1" + babel-plugin-transform-es2015-parameters "^6.24.1" + babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.22.0" + babel-plugin-transform-es2015-unicode-regex "^6.24.1" + babel-plugin-transform-regenerator "^6.24.1" + +babel-regenerator-runtime@^6.3.13: + version "6.5.0" + resolved "https://registry.yarnpkg.com/babel-regenerator-runtime/-/babel-regenerator-runtime-6.5.0.tgz#0e41cd1c9f80442466f015c749fff8ba98f8e110" + +babel-register@^6.11.6, babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^5.0.0: + version "5.8.38" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-5.8.38.tgz#1c0b02eb63312f5f087ff20450827b425c9d4c19" + dependencies: + core-js "^1.0.0" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0, babel-template@^6.9.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.0.20, babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.0.19, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.0.18, babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + +balanced-match@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.1.0.tgz#b504bd05869b39259dd0c5efc35d843176dccc4a" + +balanced-match@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.2.1.tgz#7bc658b4bed61eee424ad74f75f5c3e2c4df3cc7" + +balanced-match@^0.4.1, balanced-match@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + +base64-js@^1.0.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + dependencies: + 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" + +batch@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +beeper@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + dependencies: + callsite "1.0.0" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + +binary-extensions@^1.0.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" + +bl@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +blob@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + +bluebird@^3.0.5, bluebird@^3.3.4: + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + +brace-expansion@^1.0.0, brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + dependencies: + 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" + +browser-sync-ui@v1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-1.0.1.tgz#9740527b26d1d7ace259acc0c79e5b5e37d0fdf2" + dependencies: + async-each-series "0.1.1" + connect-history-api-fallback "^1.1.0" + immutable "^3.7.6" + server-destroy "1.0.1" + socket.io-client "2.0.4" + stream-throttle "^0.1.3" + +browser-sync@^2.13.0: + version "2.24.4" + resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.24.4.tgz#e6e1544c8a6c088dc76f49f7059bc3df967e0ae0" + dependencies: + browser-sync-ui v1.0.1 + bs-recipes "1.3.4" + chokidar "1.7.0" + connect "3.5.0" + connect-history-api-fallback "^1.5.0" + dev-ip "^1.0.1" + easy-extender "2.3.2" + eazy-logger "3.0.2" + etag "^1.8.1" + fresh "^0.5.2" + fs-extra "3.0.1" + http-proxy "1.15.2" + immutable "3.8.2" + localtunnel "1.9.0" + micromatch "2.3.11" + opn "4.0.2" + portscanner "2.1.1" + qs "6.2.3" + raw-body "^2.3.2" + resp-modifier "6.0.2" + rx "4.1.0" + serve-index "1.8.0" + serve-static "1.13.2" + server-destroy "1.0.1" + socket.io "2.0.4" + ua-parser-js "0.7.17" + yargs "6.4.0" + +browserify-aes@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-0.4.0.tgz#067149b668df31c4b58533e02d01e806d8608e2c" + dependencies: + inherits "^2.0.1" + +browserify-zlib@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + dependencies: + pako "~0.2.0" + +browserslist@^1.0.0, browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: + version "1.7.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +bs-recipes@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/bs-recipes/-/bs-recipes-1.3.4.tgz#0d2d4d48a718c8c044769fdc4f89592dc8b69585" + +bser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" + dependencies: + node-int64 "^0.4.0" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + +buffer-alloc@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + +buffer-from@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" + +buffer-peek-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-peek-stream/-/buffer-peek-stream-1.0.1.tgz#53b47570a1347787c5bad4ca2ca3021f9d8b3cfd" + +buffer@^4.9.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^1.0.0, builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + dependencies: + 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" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +caniuse-api@^1.5.2, caniuse-api@^1.5.3: + version "1.6.1" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" + dependencies: + browserslist "^1.3.6" + caniuse-db "^1.0.30000529" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: + version "1.0.30000855" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000855.tgz#34f88bf1577aa505395e48e412dc21f7dd41ef3b" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chokidar@1.7.0, chokidar@^1.0.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +chownr@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + +clap@^1.0.9: + version "1.2.3" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" + dependencies: + chalk "^1.1.3" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +cli-cursor@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +clone-stats@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + +clone@^1.0.0, clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +coa@~1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" + dependencies: + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" + +color-convert@^1.3.0, color-convert@^1.9.0: + version "1.9.2" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" + dependencies: + color-name "1.1.1" + +color-name@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" + +color-name@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +color-string@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + dependencies: + color-name "^1.0.0" + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + +color@^0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/color/-/color-0.10.1.tgz#c04188df82a209ddebccecdacd3ec320f193739f" + dependencies: + color-convert "^0.5.3" + color-string "^0.3.0" + +color@^0.11.0, color@^0.11.3, color@^0.11.4: + version "0.11.4" + resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + dependencies: + clone "^1.0.2" + color-convert "^1.3.0" + color-string "^0.3.0" + +colormin@^1.0.5: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" + dependencies: + color "^0.11.0" + css-color-names "0.0.4" + has "^1.0.1" + +colors@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +combined-stream@1.0.6, combined-stream@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + dependencies: + delayed-stream "~1.0.0" + +commander@2.9.x: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^2.2.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + +component-emitter@1.2.1, component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +connect-history-api-fallback@^1.1.0, connect-history-api-fallback@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" + +connect@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.5.0.tgz#b357525a0b4c1f50599cd983e1d9efeea9677198" + dependencies: + debug "~2.2.0" + finalhandler "0.5.0" + parseurl "~1.3.1" + utils-merge "1.0.0" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + +convert-source-map@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + +core-js@^1.0.0, core-js@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + +core-js@^2.1.0, core-js@^2.4.0, core-js@^2.5.0: + version "2.5.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" + dependencies: + is-directory "^0.3.1" + js-yaml "^3.4.3" + minimist "^1.2.0" + object-assign "^4.1.0" + os-homedir "^1.0.1" + parse-json "^2.2.0" + require-from-string "^1.1.0" + +crypto-browserify@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.3.0.tgz#b9fc75bb4a0ed61dcf1cd5dae96eb30c9c3e506c" + dependencies: + browserify-aes "0.4.0" + pbkdf2-compat "2.0.1" + ripemd160 "0.2.0" + sha.js "2.2.6" + +css-color-function@^1.2.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/css-color-function/-/css-color-function-1.3.3.tgz#8ed24c2c0205073339fafa004bc8c141fccb282e" + dependencies: + balanced-match "0.1.0" + color "^0.11.0" + debug "^3.1.0" + rgb "~0.1.0" + +css-color-names@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + +css-loader@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.23.1.tgz#9fa23f2b5c0965235910ad5ecef3b8a36390fe50" + dependencies: + css-selector-tokenizer "^0.5.1" + cssnano ">=2.6.1 <4" + loader-utils "~0.2.2" + lodash.camelcase "^3.0.1" + object-assign "^4.0.1" + postcss "^5.0.6" + postcss-modules-extract-imports "^1.0.0" + postcss-modules-local-by-default "^1.0.1" + postcss-modules-scope "^1.0.0" + postcss-modules-values "^1.1.0" + source-list-map "^0.1.4" + +css-selector-tokenizer@^0.5.1: + version "0.5.4" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz#139bafd34a35fd0c1428487049e0699e6f6a2c21" + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + +css-selector-tokenizer@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +cssesc@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + +"cssnano@>=2.6.1 <4": + version "3.10.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" + dependencies: + autoprefixer "^6.3.1" + decamelize "^1.1.2" + defined "^1.0.0" + has "^1.0.1" + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-calc "^5.2.0" + postcss-colormin "^2.1.8" + postcss-convert-values "^2.3.4" + postcss-discard-comments "^2.0.4" + postcss-discard-duplicates "^2.0.1" + postcss-discard-empty "^2.0.1" + postcss-discard-overridden "^0.1.1" + postcss-discard-unused "^2.2.1" + postcss-filter-plugins "^2.0.0" + postcss-merge-idents "^2.1.5" + postcss-merge-longhand "^2.0.1" + postcss-merge-rules "^2.0.3" + postcss-minify-font-values "^1.0.2" + postcss-minify-gradients "^1.0.1" + postcss-minify-params "^1.0.4" + postcss-minify-selectors "^2.0.4" + postcss-normalize-charset "^1.1.0" + postcss-normalize-url "^3.0.7" + postcss-ordered-values "^2.1.0" + postcss-reduce-idents "^2.2.2" + postcss-reduce-initial "^1.0.0" + postcss-reduce-transforms "^1.0.3" + postcss-svgo "^2.1.1" + postcss-unique-selectors "^2.0.2" + postcss-value-parser "^3.2.3" + postcss-zindex "^2.0.1" + +csso@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +data-uri-to-buffer@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-0.0.4.tgz#46e13ab9da8e309745c8d01ce547213ebdb2fe3f" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +dateformat@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" + +debug@2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +debug@2.6.9, debug@^2.1.1, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9, debug@~2.6.4, debug@~2.6.6: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +debug@^3.1.0, debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +debug@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +defaults@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +del@^2.0.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + +deprecated@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + +dev-ip@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dev-ip/-/dev-ip-1.0.1.tgz#a76a3ed1855be7a012bb8ac16cb80f3c00dc28f0" + +doctrine@1.3.x: + version "1.3.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.3.0.tgz#13e75682b55518424276f7c173783456ef913d26" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + dependencies: + esutils "^2.0.2" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + dependencies: + readable-stream "~1.1.9" + +easy-extender@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/easy-extender/-/easy-extender-2.3.2.tgz#3d3248febe2b159607316d8f9cf491c16648221d" + dependencies: + lodash "^3.10.1" + +eazy-logger@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/eazy-logger/-/eazy-logger-3.0.2.tgz#a325aa5e53d13a2225889b2ac4113b2b9636f4fc" + dependencies: + tfunk "^3.0.1" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +electron-to-chromium@^1.2.7: + version "1.3.48" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.48.tgz#d3b0d8593814044e092ece2108fc3ac9aea4b900" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + dependencies: + once "^1.4.0" + +end-of-stream@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" + dependencies: + once "~1.3.0" + +engine.io-client@~3.1.0: + version "3.1.6" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.1.6.tgz#5bdeb130f8b94a50ac5cbeb72583e7a4a063ddfd" + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.1.1" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~3.3.1" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196" + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.4" + has-binary2 "~1.0.2" + +engine.io@~3.1.0: + version "3.1.5" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.1.5.tgz#0e7ef9d690eb0b35597f1d4ad02a26ca2dba3845" + dependencies: + accepts "~1.3.4" + base64id "1.0.0" + cookie "0.3.1" + debug "~3.1.0" + engine.io-parser "~2.1.0" + ws "~3.3.1" + optionalDependencies: + uws "~9.14.0" + +enhanced-resolve@~0.9.0: + version "0.9.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.2.0" + tapable "^0.1.8" + +err-code@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + +errno@^0.1.3: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +es5-ext@^0.10.12, es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.45" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.45.tgz#0bfdf7b473da5919d5adf3bd25ceb754fccc3653" + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "1" + +es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@^0.1.4, es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-template-strings@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-template-strings/-/es6-template-strings-2.0.1.tgz#b166c6a62562f478bb7775f6ca96103a599b4b2c" + dependencies: + es5-ext "^0.10.12" + esniff "^1.1" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-import-resolver-node@^0.2.0: + version "0.2.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c" + dependencies: + debug "^2.2.0" + object-assign "^4.0.1" + resolve "^1.1.6" + +eslint-plugin-import@^1.11.1: + version "1.16.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-1.16.0.tgz#b2fa07ebcc53504d0f2a4477582ec8bff1871b9f" + dependencies: + builtin-modules "^1.1.1" + contains-path "^0.1.0" + debug "^2.2.0" + doctrine "1.3.x" + es6-map "^0.1.3" + es6-set "^0.1.4" + eslint-import-resolver-node "^0.2.0" + has "^1.0.1" + lodash.cond "^4.3.0" + lodash.endswith "^4.0.1" + lodash.find "^4.3.0" + lodash.findindex "^4.3.0" + minimatch "^3.0.3" + object-assign "^4.0.1" + pkg-dir "^1.0.0" + pkg-up "^1.0.0" + +eslint@^3.1.1: + version "3.19.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" + dependencies: + babel-code-frame "^6.16.0" + chalk "^1.1.3" + concat-stream "^1.5.2" + debug "^2.1.1" + doctrine "^2.0.0" + escope "^3.6.0" + espree "^3.4.0" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + glob "^7.0.3" + globals "^9.14.0" + ignore "^3.2.0" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.7.5" + strip-bom "^3.0.0" + strip-json-comments "~2.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +esniff@^1.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/esniff/-/esniff-1.1.0.tgz#c66849229f91464dede2e0d40201ed6abf65f2ac" + dependencies: + d "1" + es5-ext "^0.10.12" + +espree@^3.4.0: + version "3.5.4" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +esprima@^2.6.0: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +esquery@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + dependencies: + estraverse "^4.1.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +etag@^1.8.1, etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@1.x.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" + +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +exec-sh@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38" + dependencies: + merge "^1.1.3" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + dependencies: + 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" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +expand-tilde@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + dependencies: + os-homedir "^1.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + dependencies: + homedir-polyfill "^1.0.1" + +exports-loader@^0.6.3: + version "0.6.4" + resolved "https://registry.yarnpkg.com/exports-loader/-/exports-loader-0.6.4.tgz#d70fc6121975b35fc12830cf52754be2740fc886" + dependencies: + loader-utils "^1.0.2" + source-map "0.5.x" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + dependencies: + 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" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + +fancy-log@^1.1.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1" + dependencies: + ansi-gray "^0.1.1" + color-support "^1.1.3" + time-stamp "^1.0.0" + +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +fastparse@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + +fb-watchman@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + dependencies: + bser "^2.0.0" + +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-loader@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.9.0.tgz#1d2daddd424ce6d1b07cfe3f79731bed3617ab42" + dependencies: + loader-utils "~0.2.5" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7" + dependencies: + debug "~2.2.0" + escape-html "~1.0.3" + on-finished "~2.3.0" + statuses "~1.3.0" + unpipe "~1.0.0" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-index@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + dependencies: + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +fined@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476" + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^2.0.3" + object.defaults "^1.1.0" + object.pick "^1.2.0" + parse-filepath "^1.0.1" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + +flagged-respawn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.0.tgz#4e79ae9b2eb38bf86b3bb56bf3e0a56aa5fcabd7" + +flat-cache@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + +flatten@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + +follow-redirects@^1.2.5: + version "1.5.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.0.tgz#234f49cf770b7f35b40e790f636ceba0c3a0ab77" + dependencies: + debug "^3.1.0" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + dependencies: + asynckit "^0.4.0" + combined-stream "1.0.6" + mime-types "^2.1.12" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2, fresh@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + +fs-extra@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^3.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + dependencies: + minipass "^2.2.1" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" + dependencies: + nan "^2.9.2" + node-pre-gyp "^0.10.0" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" + dependencies: + globule "~0.1.0" + +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob-stream@^3.1.5: + version "3.1.18" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" + dependencies: + glob "^4.3.1" + glob2base "^0.0.12" + minimatch "^2.0.1" + ordered-read-streams "^0.1.0" + through2 "^0.6.1" + unique-stream "^1.0.0" + +glob-watcher@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" + dependencies: + gaze "^0.5.1" + +glob2base@^0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" + dependencies: + find-index "^0.1.1" + +glob@5.0.x: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^4.3.1: + version "4.5.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "^2.0.1" + once "^1.3.0" + +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@~3.1.21: + version "3.1.21" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" + dependencies: + graceful-fs "~1.2.0" + inherits "1" + minimatch "~0.2.11" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +globals@^9.14.0, globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globule@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" + dependencies: + glob "~3.1.21" + lodash "~1.0.1" + minimatch "~0.2.11" + +glogg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810" + dependencies: + sparkles "^1.0.0" + +graceful-fs@^3.0.0: + version "3.0.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" + dependencies: + natives "^1.1.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +graceful-fs@~1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +gulp-babel@^6.1.2: + version "6.1.3" + resolved "https://registry.yarnpkg.com/gulp-babel/-/gulp-babel-6.1.3.tgz#5aad8acb0db6b7f2f0be19eeee9528f2064df631" + dependencies: + babel-core "^6.23.1" + object-assign "^4.0.1" + plugin-error "^1.0.1" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl-sourcemaps-apply "^0.2.0" + +gulp-postcss@^6.1.1: + version "6.4.0" + resolved "https://registry.yarnpkg.com/gulp-postcss/-/gulp-postcss-6.4.0.tgz#78a32e3c87aa6cdcec5ae1c905e196d478e8c5d5" + dependencies: + gulp-util "^3.0.8" + postcss "^5.2.12" + postcss-load-config "^1.2.0" + vinyl-sourcemaps-apply "^0.2.1" + +gulp-util@^3.0.0, gulp-util@^3.0.7, gulp-util@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^2.0.0" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulp@^3.9.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" + dependencies: + archy "^1.0.0" + chalk "^1.0.0" + deprecated "^0.0.1" + gulp-util "^3.0.0" + interpret "^1.0.0" + liftoff "^2.1.0" + minimist "^1.1.0" + orchestrator "^0.3.0" + pretty-hrtime "^1.0.0" + semver "^4.1.0" + tildify "^1.0.0" + v8flags "^2.0.2" + vinyl-fs "^0.3.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + dependencies: + glogg "^1.0.0" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + +har-validator@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + dependencies: + sparkles "^1.0.0" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + dependencies: + function-bind "^1.1.1" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +homedir-polyfill@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.6.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" + +html-comment-regex@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" + +http-errors@1.6.3, http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" + dependencies: + inherits "2.0.3" + setprototypeof "1.0.2" + statuses ">= 1.3.1 < 2" + +http-proxy@1.15.2: + version "1.15.2" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.15.2.tgz#642fdcaffe52d3448d2bda3b0079e9409064da31" + dependencies: + eventemitter3 "1.x.x" + requires-port "1.x.x" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" + +iconv-lite@0.4.23, iconv-lite@^0.4.4: + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + +ieee754@^1.1.4: + version "1.1.12" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + dependencies: + minimatch "^3.0.4" + +ignore@^3.2.0: + version "3.3.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.8.tgz#3f8e9c35d38708a3a7e0e9abb6c73e7ee7707b2b" + +immutable@3.8.2, immutable@^3.7.6: + version "3.8.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + +imports-loader@^0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.6.5.tgz#ae74653031d59e37b3c2fb2544ac61aeae3530a6" + dependencies: + loader-utils "0.2.x" + source-map "0.1.x" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@^1.3.4, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +inquirer@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +interpret@^0.6.4: + version "0.6.6" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" + +interpret@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + dependencies: + kind-of "^6.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-my-ip-valid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" + +is-my-json-valid@^2.10.0: + version "2.17.2" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + is-my-ip-valid "^1.0.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-number-like@^1.0.3: + version "1.0.8" + resolved "https://registry.yarnpkg.com/is-number-like/-/is-number-like-1.0.8.tgz#2e129620b50891042e44e9bbbb30593e75cfbbe3" + dependencies: + lodash.isfinite "^3.3.2" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + +is-odd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" + dependencies: + is-number "^4.0.0" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + dependencies: + is-unc-path "^1.0.0" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + +is-svg@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" + dependencies: + html-comment-regex "^1.1.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + dependencies: + unc-path-regex "^0.1.2" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isnumeric@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/isnumeric/-/isnumeric-0.2.0.tgz#a2347ba360de19e33d0ffd590fddf7755cbf2e64" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +js-base64@^2.1.9: + version "2.4.5" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.5.tgz#e293cd3c7c82f070d700fc7a1ca0a2e69f101f92" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +js-yaml@^3.4.3, js-yaml@^3.5.1: + version "3.12.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonfile@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + +jspm-github@^0.14.11: + version "0.14.13" + resolved "https://registry.yarnpkg.com/jspm-github/-/jspm-github-0.14.13.tgz#326e5217d3639b21609293b01e7e18775dd3dcc7" + dependencies: + bluebird "^3.0.5" + expand-tilde "^1.2.0" + graceful-fs "^4.1.3" + mkdirp "^0.5.1" + netrc "^0.1.3" + request "^2.74.0" + rimraf "^2.5.4" + semver "^5.0.1" + tar-fs "^1.13.0" + which "^1.0.9" + +jspm-npm@^0.30.3: + version "0.30.4" + resolved "https://registry.yarnpkg.com/jspm-npm/-/jspm-npm-0.30.4.tgz#60f48811af3866ddb16b90c1a91427aec7c3b337" + dependencies: + bluebird "^3.0.5" + buffer-peek-stream "^1.0.1" + graceful-fs "^4.1.3" + mkdirp "^0.5.1" + readdirp "^2.0.0" + request "^2.58.0" + semver "^5.0.1" + tar-fs "^1.13.0" + traceur "0.0.105" + which "^1.1.1" + +jspm-registry@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/jspm-registry/-/jspm-registry-0.4.4.tgz#d53166035a87cdce585d62baa397568546996d70" + dependencies: + graceful-fs "^4.1.3" + rimraf "^2.3.2" + rsvp "^3.0.18" + semver "^4.3.3" + +jspm@^0.17.0-beta.13: + version "0.17.0-beta.48" + resolved "https://registry.yarnpkg.com/jspm/-/jspm-0.17.0-beta.48.tgz#3d0980709dd547b6eddd2fa520d1948e3c44b6ef" + dependencies: + bluebird "^3.0.5" + chalk "^1.1.1" + core-js "^1.2.6" + glob "^6.0.1" + graceful-fs "^4.1.2" + jspm-github "^0.14.11" + jspm-npm "^0.30.3" + jspm-registry "^0.4.1" + liftoff "^2.2.0" + minimatch "^3.0.0" + mkdirp "~0.5.1" + ncp "^2.0.0" + proper-lockfile "^1.1.2" + request "^2.67.0" + rimraf "^2.4.4" + sane "^1.3.3" + semver "^5.1.0" + systemjs "0.21.3" + systemjs-builder "0.16.13" + traceur "0.0.105" + uglify-js "^2.6.1" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +liftoff@^2.1.0, liftoff@^2.2.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec" + dependencies: + extend "^3.0.0" + findup-sync "^2.0.0" + fined "^1.0.1" + flagged-respawn "^1.0.0" + is-plain-object "^2.0.4" + object.map "^1.0.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +limiter@^1.0.5: + version "1.1.3" + resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.3.tgz#32e2eb55b2324076943e5d04c1185ffb387968ef" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.14, loader-utils@^0.2.16, loader-utils@~0.2.2, loader-utils@~0.2.5: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +localtunnel@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-1.9.0.tgz#8ffecdcf8c8a14f62df1056cf9d54acbb0bb9a8f" + dependencies: + axios "0.17.1" + debug "2.6.8" + openurl "1.1.1" + yargs "6.6.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basetostring@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + +lodash._createcompounder@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz#5dd2cb55372d6e70e0e2392fb2304d6631091075" + dependencies: + lodash.deburr "^3.0.0" + lodash.words "^3.0.0" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + +lodash._reinterpolate@^3.0.0, lodash._reinterpolate@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash.assign@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + +lodash.camelcase@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz#932c8b87f8a4377897c67197533282f97aeac298" + dependencies: + lodash._createcompounder "^3.0.0" + +lodash.cond@^4.3.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" + +lodash.deburr@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.deburr/-/lodash.deburr-3.2.0.tgz#6da8f54334a366a7cf4c4c76ef8d80aa1b365ed5" + dependencies: + lodash._root "^3.0.0" + +lodash.endswith@^4.0.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.endswith/-/lodash.endswith-4.2.1.tgz#fed59ac1738ed3e236edd7064ec456448b37bc09" + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + dependencies: + lodash._root "^3.0.0" + +lodash.find@^4.3.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" + +lodash.findindex@^4.3.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.findindex/-/lodash.findindex-4.6.0.tgz#a3245dee61fb9b6e0624b535125624bb69c11106" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.isfinite@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz#fb89b65a9a80281833f0b7478b3a5104f898ebb3" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + +lodash.pickby@^4.0.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" + dependencies: + lodash._basecopy "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.template@^4.2.4: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" + dependencies: + lodash._reinterpolate "~3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + +lodash.templatesettings@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" + dependencies: + lodash._reinterpolate "~3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + +lodash.words@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.words/-/lodash.words-3.2.0.tgz#4e2a8649bc08745b17c695b1a3ce8fee596623b3" + dependencies: + lodash._root "^3.0.0" + +lodash@^3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +lodash@^4.0.0, lodash@^4.17.4, lodash@^4.3.0: + version "4.17.10" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" + +lodash@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +lru-cache@2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" + +make-iterator@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + dependencies: + kind-of "^6.0.2" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + dependencies: + tmpl "1.0.x" + +map-cache@^0.2.0, map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + dependencies: + object-visit "^1.0.0" + +math-expression-evaluator@^1.2.14: + version "1.2.17" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" + +math-random@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" + +memory-fs@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" + +memory-fs@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" + +micromatch@2.3.11, micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +micromatch@^3.0.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + dependencies: + 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-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + +mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.17, mime-types@~2.1.18: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + dependencies: + mime-db "~1.33.0" + +mime@1.3.x: + version "1.3.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" + +mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimatch@^2.0.1: + version "2.0.10" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + dependencies: + brace-expansion "^1.0.0" + +minimatch@~0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +minipass@^2.2.1, minipass@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.3.tgz#a7dcc8b7b833f5d368759cce544dccb55f50f233" + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" + dependencies: + minipass "^2.2.1" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +ms@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + dependencies: + duplexer2 "0.0.2" + +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + +nan@^2.9.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" + +nanomatch@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" + dependencies: + 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-odd "^2.0.0" + 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" + +natives@^1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.4.tgz#2f0f224fc9a7dd53407c7667c84cf8dbe773de58" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +ncp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + +needle@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d" + dependencies: + debug "^2.1.2" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +netrc@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/netrc/-/netrc-0.1.4.tgz#6be94fcaca8d77ade0a9670dc460914c94472444" + +next-tick@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + +node-libs-browser@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.7.0.tgz#3e272c0819e308935e26674408d7af0e1491b83b" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.1.4" + buffer "^4.9.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "3.3.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "0.0.1" + os-browserify "^0.2.0" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.0.5" + stream-browserify "^2.0.1" + stream-http "^2.3.1" + string_decoder "^0.10.25" + timers-browserify "^2.0.2" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-pre-gyp@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz#6e4ef5bb5c5203c6552448828c852c40111aac46" + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.0" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.1.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + +normalize-url@^1.4.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +npm-bundled@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" + +npm-packlist@^1.1.6: + version "1.1.10" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-path@^0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz#0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5" + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + dependencies: + isobject "^3.0.0" + +object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + +object.map@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.2.0, object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +once@~1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + dependencies: + wrappy "1" + +onecolor@~2.4.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/onecolor/-/onecolor-2.4.2.tgz#a53ec3ff171c3446016dd5210d1a1b544bf7d874" + +onetime@^1.0.0: + version "1.1.0" + resolved "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +openurl@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/openurl/-/openurl-1.1.1.tgz#3875b4b0ef7a52c156f0db41d4609dbb0f94b387" + +opn@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +optimist@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +orchestrator@^0.3.0: + version "0.3.8" + resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" + dependencies: + end-of-stream "~0.1.5" + sequencify "~0.0.7" + stream-consume "~0.1.0" + +ordered-read-streams@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" + +os-browserify@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + +parse-filepath@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + dependencies: + better-assert "~1.0.0" + +parseurl@~1.3.1, parseurl@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + dependencies: + path-root-regex "^0.1.0" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +pbkdf2-compat@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pixrem@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/pixrem/-/pixrem-3.0.2.tgz#30d1bafb4c3bdce8e9bb4bd56a13985619320c34" + dependencies: + browserslist "^1.0.0" + postcss "^5.0.0" + reduce-css-calc "^1.2.7" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + dependencies: + find-up "^1.0.0" + +pkg-resolve@^0.1.7: + version "0.1.14" + resolved "https://registry.yarnpkg.com/pkg-resolve/-/pkg-resolve-0.1.14.tgz#329b2e76ccbb372e22e6a3a41cb30ab0457836ba" + dependencies: + jspm "^0.17.0-beta.13" + resolve "^1.1.7" + +pkg-up@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26" + dependencies: + find-up "^1.0.0" + +pleeease-filters@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/pleeease-filters/-/pleeease-filters-3.0.1.tgz#4dfe0e8f1046613517c64b728bc80608a7ebf22f" + dependencies: + onecolor "~2.4.0" + postcss "^5.0.4" + +plugin-error@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" + dependencies: + ansi-colors "^1.0.1" + arr-diff "^4.0.0" + arr-union "^3.1.0" + extend-shallow "^3.0.2" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +portscanner@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/portscanner/-/portscanner-2.1.1.tgz#eabb409e4de24950f5a2a516d35ae769343fbb96" + dependencies: + async "1.5.2" + is-number-like "^1.0.3" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + +postcss-apply@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/postcss-apply/-/postcss-apply-0.3.0.tgz#a2f37c5bdfa881e4c15f4f245ec0cd96dd2e70d5" + dependencies: + balanced-match "^0.4.1" + postcss "^5.0.21" + +postcss-at2x@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-at2x/-/postcss-at2x-2.0.2.tgz#2183879b89a0ce3cd406dd44327a46f67efe5fbe" + dependencies: + postcss "^5.0.4" + string.prototype.includes "^1.0.0" + +postcss-attribute-case-insensitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-1.0.1.tgz#ceb73777e106167eb233f1938c9bd9f2e697308d" + dependencies: + postcss "^5.1.1" + postcss-selector-parser "^2.2.0" + +postcss-calc@^5.0.0, postcss-calc@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" + dependencies: + postcss "^5.0.2" + postcss-message-helpers "^2.0.0" + reduce-css-calc "^1.2.6" + +postcss-color-function@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-function/-/postcss-color-function-2.0.1.tgz#9ad226f550e8a7c7f8b8a77860545b6dd7f55241" + dependencies: + css-color-function "^1.2.0" + postcss "^5.0.4" + postcss-message-helpers "^2.0.0" + postcss-value-parser "^3.3.0" + +postcss-color-function@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-function/-/postcss-color-function-3.0.0.tgz#3c6fb60c6ff2240e541d49f2926edcad8700f3a6" + dependencies: + css-color-function "^1.2.0" + postcss "^5.0.4" + postcss-message-helpers "^2.0.0" + postcss-value-parser "^3.3.0" + +postcss-color-gray@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-3.0.1.tgz#74432ede66dd83b1d1363565c68b376e18ff6770" + dependencies: + color "^0.11.3" + postcss "^5.0.4" + postcss-message-helpers "^2.0.0" + reduce-function-call "^1.0.1" + +postcss-color-hex-alpha@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-2.0.0.tgz#44fd6ecade66028648c881cb6504cdcbfdc6cd09" + dependencies: + color "^0.10.1" + postcss "^5.0.4" + postcss-message-helpers "^2.0.0" + +postcss-color-hsl@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-color-hsl/-/postcss-color-hsl-1.0.5.tgz#f53bb1c348310ce307ad89e3181a864738b5e687" + dependencies: + postcss "^5.2.0" + postcss-value-parser "^3.3.0" + units-css "^0.4.0" + +postcss-color-hwb@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-hwb/-/postcss-color-hwb-2.0.1.tgz#d63afaf9b70cb595f900a29c9fe57bf2a32fabec" + dependencies: + color "^0.11.4" + postcss "^5.0.4" + postcss-message-helpers "^2.0.0" + reduce-function-call "^1.0.1" + +postcss-color-rebeccapurple@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-2.0.1.tgz#74c6444e7cbb7d85613b5f7286df7a491608451c" + dependencies: + color "^0.11.4" + postcss "^5.0.4" + +postcss-color-rgb@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/postcss-color-rgb/-/postcss-color-rgb-1.1.4.tgz#f29243e22e8e8c13434474092372d4ce605be8bc" + dependencies: + postcss "^5.2.0" + postcss-value-parser "^3.3.0" + +postcss-color-rgba-fallback@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-2.2.0.tgz#6d29491be5990a93173d47e7c76f5810b09402ba" + dependencies: + postcss "^5.0.0" + postcss-value-parser "^3.0.2" + rgb-hex "^1.0.0" + +postcss-colormin@^2.1.8: + version "2.2.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" + dependencies: + colormin "^1.0.5" + postcss "^5.0.13" + postcss-value-parser "^3.2.3" + +postcss-convert-values@^2.3.4: + version "2.6.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" + dependencies: + postcss "^5.0.11" + postcss-value-parser "^3.1.2" + +postcss-cssnext@^2.7.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/postcss-cssnext/-/postcss-cssnext-2.11.0.tgz#31e68f001e409604da703b66de14b8b8c8c9f2b1" + dependencies: + autoprefixer "^6.0.2" + caniuse-api "^1.5.3" + chalk "^1.1.1" + pixrem "^3.0.0" + pleeease-filters "^3.0.0" + postcss "^5.0.4" + postcss-apply "^0.3.0" + postcss-attribute-case-insensitive "^1.0.1" + postcss-calc "^5.0.0" + postcss-color-function "^2.0.0" + postcss-color-gray "^3.0.0" + postcss-color-hex-alpha "^2.0.0" + postcss-color-hsl "^1.0.5" + postcss-color-hwb "^2.0.0" + postcss-color-rebeccapurple "^2.0.0" + postcss-color-rgb "^1.1.4" + postcss-color-rgba-fallback "^2.0.0" + postcss-custom-media "^5.0.0" + postcss-custom-properties "^5.0.0" + postcss-custom-selectors "^3.0.0" + postcss-font-family-system-ui "^1.0.1" + postcss-font-variant "^2.0.0" + postcss-image-set-polyfill "^0.3.3" + postcss-initial "^1.3.1" + postcss-media-minmax "^2.1.0" + postcss-nesting "^2.0.5" + postcss-pseudo-class-any-link "^1.0.0" + postcss-pseudoelements "^3.0.0" + postcss-replace-overflow-wrap "^1.0.0" + postcss-selector-matches "^2.0.0" + postcss-selector-not "^2.0.0" + +postcss-custom-media@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-5.0.1.tgz#138d25a184bf2eb54de12d55a6c01c30a9d8bd81" + dependencies: + postcss "^5.0.0" + +postcss-custom-properties@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-5.0.2.tgz#9719d78f2da9cf9f53810aebc23d4656130aceb1" + dependencies: + balanced-match "^0.4.2" + postcss "^5.0.0" + +postcss-custom-selectors@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-3.0.0.tgz#8f81249f5ed07a8d0917cf6a39fe5b056b7f96ac" + dependencies: + balanced-match "^0.2.0" + postcss "^5.0.0" + postcss-selector-matches "^2.0.0" + +postcss-discard-comments@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" + dependencies: + postcss "^5.0.14" + +postcss-discard-duplicates@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" + dependencies: + postcss "^5.0.4" + +postcss-discard-empty@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" + dependencies: + postcss "^5.0.14" + +postcss-discard-overridden@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" + dependencies: + postcss "^5.0.16" + +postcss-discard-unused@^2.2.1: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" + dependencies: + postcss "^5.0.14" + uniqs "^2.0.0" + +postcss-filter-plugins@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" + dependencies: + postcss "^5.0.4" + +postcss-font-family-system-ui@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/postcss-font-family-system-ui/-/postcss-font-family-system-ui-1.0.2.tgz#3e1a5e3fb7e31e5e9e71439ccb0e8014556927c7" + dependencies: + lodash "^4.17.4" + postcss "^5.2.12" + postcss-value-parser "^3.3.0" + +postcss-font-variant@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-2.0.1.tgz#7ca29103f59fa02ca3ace2ca22b2f756853d4ef8" + dependencies: + postcss "^5.0.4" + +postcss-image-set-polyfill@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/postcss-image-set-polyfill/-/postcss-image-set-polyfill-0.3.5.tgz#0f193413700cf1f82bd39066ef016d65a4a18181" + dependencies: + postcss "^6.0.1" + postcss-media-query-parser "^0.2.3" + +postcss-import@^8.1.2: + version "8.2.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-8.2.0.tgz#f92fd2454e21ef4efb1e75c00c47ac03f4d1397c" + dependencies: + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + promise-each "^2.2.0" + read-cache "^1.0.0" + resolve "^1.1.7" + optionalDependencies: + pkg-resolve "^0.1.7" + +postcss-initial@^1.3.1: + version "1.5.3" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-1.5.3.tgz#20c3e91c96822ddb1bed49508db96d56bac377d0" + dependencies: + lodash.template "^4.2.4" + postcss "^5.0.19" + +postcss-load-config@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + postcss-load-options "^1.2.0" + postcss-load-plugins "^2.3.0" + +postcss-load-options@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + +postcss-load-plugins@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" + dependencies: + cosmiconfig "^2.1.1" + object-assign "^4.1.0" + +postcss-loader@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-0.9.1.tgz#87a3e70f58e46d68a75badc6725d9ea4773fd1d7" + dependencies: + loader-utils "^0.2.14" + postcss "^5.0.19" + +postcss-media-minmax@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-2.1.2.tgz#444c5cf8926ab5e4fd8a2509e9297e751649cdf8" + dependencies: + postcss "^5.0.4" + +postcss-media-query-parser@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" + +postcss-merge-idents@^2.1.5: + version "2.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" + dependencies: + has "^1.0.1" + postcss "^5.0.10" + postcss-value-parser "^3.1.1" + +postcss-merge-longhand@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" + dependencies: + postcss "^5.0.4" + +postcss-merge-rules@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" + dependencies: + browserslist "^1.5.2" + caniuse-api "^1.5.2" + postcss "^5.0.4" + postcss-selector-parser "^2.2.2" + vendors "^1.0.0" + +postcss-message-helpers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + +postcss-minify-font-values@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + dependencies: + object-assign "^4.0.1" + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-minify-gradients@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" + dependencies: + postcss "^5.0.12" + postcss-value-parser "^3.3.0" + +postcss-minify-params@^1.0.4: + version "1.2.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.2" + postcss-value-parser "^3.0.2" + uniqs "^2.0.0" + +postcss-minify-selectors@^2.0.4: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" + dependencies: + alphanum-sort "^1.0.2" + has "^1.0.1" + postcss "^5.0.14" + postcss-selector-parser "^2.0.0" + +postcss-modules-extract-imports@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" + dependencies: + postcss "^6.0.1" + +postcss-modules-local-by-default@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-neat@^2.5.2: + version "2.5.3" + resolved "https://registry.yarnpkg.com/postcss-neat/-/postcss-neat-2.5.3.tgz#80984aed8733355fd64db9ae9ef30eccc406a55b" + dependencies: + babel-polyfill "6.7.4" + postcss "5.0.19" + +postcss-nested@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-1.0.1.tgz#91f28f4e6e23d567241ac154558a0cfab4cc0d8f" + dependencies: + postcss "^5.2.17" + +postcss-nesting@^2.0.5: + version "2.3.1" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-2.3.1.tgz#94a6b6a4ef707fbec20a87fee5c957759b4e01cf" + dependencies: + postcss "^5.0.19" + +postcss-normalize-charset@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" + dependencies: + postcss "^5.0.5" + +postcss-normalize-url@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^1.4.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + +postcss-ordered-values@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.1" + +postcss-pseudo-class-any-link@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-1.0.0.tgz#903239196401d335fe73ac756186fa62e693af26" + dependencies: + postcss "^5.0.3" + postcss-selector-parser "^1.1.4" + +postcss-pseudoelements@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-pseudoelements/-/postcss-pseudoelements-3.0.0.tgz#6c682177c7900ba053b6df17f8c590284c7b8bbc" + dependencies: + postcss "^5.0.4" + +postcss-reduce-idents@^2.2.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-reduce-initial@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" + dependencies: + postcss "^5.0.4" + +postcss-reduce-transforms@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" + dependencies: + has "^1.0.1" + postcss "^5.0.8" + postcss-value-parser "^3.0.1" + +postcss-replace-overflow-wrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-1.0.0.tgz#f0a03b31eab9636a6936bfd210e2aef1b434a643" + dependencies: + postcss "^5.0.16" + +postcss-selector-matches@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-2.0.5.tgz#fa0f43be57b68e77aa4cd11807023492a131027f" + dependencies: + balanced-match "^0.4.2" + postcss "^5.0.0" + +postcss-selector-not@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-2.0.0.tgz#c73ad21a3f75234bee7fee269e154fd6a869798d" + dependencies: + balanced-match "^0.2.0" + postcss "^5.0.0" + +postcss-selector-parser@^1.1.4: + version "1.3.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-1.3.3.tgz#d2ee19df7a64f8ef21c1a71c86f7d4835c88c281" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.0, postcss-selector-parser@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-simple-extend@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postcss-simple-extend/-/postcss-simple-extend-1.0.0.tgz#7d369c4ee1c0df752c252f4a3d82aab81309c29e" + dependencies: + postcss "^5.0.0" + +postcss-simple-vars-async@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/postcss-simple-vars-async/-/postcss-simple-vars-async-1.2.1.tgz#599027a1129fc75cde64b421b965177ed4138c24" + dependencies: + postcss "^5.0.21" + +postcss-svgo@^2.1.1: + version "2.1.6" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" + dependencies: + is-svg "^2.0.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + svgo "^0.7.0" + +postcss-unique-selectors@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" + +postcss-zindex@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" + dependencies: + has "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss@5.0.19: + version "5.0.19" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.0.19.tgz#b6342a01dc75b8cab7e968afda96aefc67f888af" + dependencies: + js-base64 "^2.1.9" + source-map "^0.5.1" + supports-color "^3.1.2" + +postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.19, postcss@^5.0.2, postcss@^5.0.21, postcss@^5.0.3, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.1.1, postcss@^5.2.0, postcss@^5.2.12, postcss@^5.2.16, postcss@^5.2.17: + version "5.2.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.1: + version "6.0.22" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.22.tgz#e23b78314905c3b90cbd61702121e7a78848f2a3" + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +pretty-hrtime@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + +process@^0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +promise-each@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/promise-each/-/promise-each-2.2.0.tgz#3353174eff2694481037e04e01f77aa0fb6d1b60" + dependencies: + any-promise "^0.1.0" + +proper-lockfile@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-1.2.0.tgz#ceff5dd89d3e5f10fb75e1e8e76bc75801a59c34" + dependencies: + err-code "^1.0.0" + extend "^3.0.0" + graceful-fs "^4.1.2" + retry "^0.10.0" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + +pump@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + +qs@6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" + +qs@~6.5.1: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +randomatic@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923" + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +raw-body@^2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" + dependencies: + bytes "3.0.0" + http-errors "1.6.3" + iconv-lite "0.4.23" + unpipe "1.0.0" + +rc@^1.1.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + dependencies: + pify "^2.3.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +"readable-stream@>=1.0.33-1 <1.1.0-0": + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +reduce-css-calc@^1.2.6, reduce-css-calc@^1.2.7: + version "1.3.0" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + dependencies: + balanced-match "^0.4.2" + math-expression-evaluator "^1.2.14" + reduce-function-call "^1.0.1" + +reduce-function-call@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" + dependencies: + balanced-match "^0.4.2" + +regenerate@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpu-core@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + +request@^2.58.0, request@^2.67.0, request@^2.74.0: + version "2.87.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-from-string@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +require-uncached@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +requires-port@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@^1.1.6, resolve@^1.1.7: + version "1.7.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" + dependencies: + path-parse "^1.0.5" + +resp-modifier@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/resp-modifier/-/resp-modifier-6.0.2.tgz#b124de5c4fbafcba541f48ffa73970f4aa456b4f" + dependencies: + debug "^2.2.0" + minimatch "^3.0.2" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + +rgb-hex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgb-hex/-/rgb-hex-1.0.0.tgz#bfaf8cd9cd9164b5a26d71eb4f15a0965324b3c1" + +rgb@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/rgb/-/rgb-0.1.0.tgz#be27b291e8feffeac1bd99729721bfa40fc037b5" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@^2.2.8, rimraf@^2.3.2, rimraf@^2.4.4, rimraf@^2.5.4, rimraf@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +ripemd160@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" + +rollup@^0.58.2: + version "0.58.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.58.2.tgz#2feddea8c0c022f3e74b35c48e3c21b3433803ce" + dependencies: + "@types/estree" "0.0.38" + "@types/node" "*" + +rsvp@^3.0.13, rsvp@^3.0.18: + version "3.6.2" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + dependencies: + once "^1.3.0" + +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + +rx@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + +sane@^1.3.3: + version "1.7.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-1.7.0.tgz#b3579bccb45c94cf20355cc81124990dfd346e30" + dependencies: + anymatch "^1.3.0" + exec-sh "^0.2.0" + fb-watchman "^2.0.0" + minimatch "^3.0.2" + minimist "^1.1.1" + walker "~1.0.5" + watch "~0.10.0" + +sax@^1.2.4, sax@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + +"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.1.0, semver@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +semver@^4.1.0, semver@^4.3.3: + version "4.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + +send@0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + +sequencify@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" + +serve-index@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.8.0.tgz#7c5d96c13fb131101f93c1c5774f8516a1e78d3b" + dependencies: + accepts "~1.3.3" + batch "0.5.3" + debug "~2.2.0" + escape-html "~1.0.3" + http-errors "~1.5.0" + mime-types "~2.1.11" + parseurl "~1.3.1" + +serve-static@1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + +server-destroy@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +setprototypeof@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + +sha.js@2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" + +shelljs@^0.7.5: + version "0.7.8" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +sigmund@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + dependencies: + 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" + +socket.io-adapter@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" + +socket.io-client@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.0.4.tgz#0918a552406dc5e540b380dcd97afc4a64332f8e" + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~2.6.4" + engine.io-client "~3.1.0" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.1.1" + to-array "0.1.4" + +socket.io-parser@~3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.1.3.tgz#ed2da5ee79f10955036e3da413bfd7f1e4d86c8e" + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + has-binary2 "~1.0.2" + isarray "2.0.1" + +socket.io@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.0.4.tgz#c1a4590ceff87ecf13c72652f046f716b29e6014" + dependencies: + debug "~2.6.6" + engine.io "~3.1.0" + socket.io-adapter "~1.1.0" + socket.io-client "2.0.4" + socket.io-parser "~3.1.1" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^0.1.4, source-list-map@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + dependencies: + 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@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map-support@~0.2.8: + version "0.2.10" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.2.10.tgz#ea5a3900a1c1cb25096a0ae8cc5c2b4b10ded3dc" + dependencies: + source-map "0.1.32" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + +source-map@0.1.32: + version "0.1.32" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266" + dependencies: + amdefine ">=0.0.4" + +source-map@0.1.x: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + dependencies: + amdefine ">=0.0.4" + +source-map@0.5.x, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +source-map@~0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +sparkles@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" + +spdx-correct@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.14.2" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + safer-buffer "^2.0.2" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + +statuses@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + +statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + +stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-consume@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.1.tgz#d3bdb598c2bd0ae82b8cac7ac50b1107a7996c48" + +stream-http@^2.3.1: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-throttle@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/stream-throttle/-/stream-throttle-0.1.3.tgz#add57c8d7cc73a81630d31cd55d3961cfafba9c3" + dependencies: + commander "^2.2.0" + limiter "^1.0.5" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string.prototype.includes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-1.0.0.tgz#829361cef8ffb927def93ccd5373d9dcc37ee7af" + +string_decoder@^0.10.25, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-bom@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" + dependencies: + first-chunk-stream "^1.0.0" + is-utf8 "^0.2.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.1.0, supports-color@^3.1.2, supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0, supports-color@^5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + dependencies: + has-flag "^3.0.0" + +svgo@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.3.1" + js-yaml "~3.7.0" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + +systemjs-builder@0.16.13: + version "0.16.13" + resolved "https://registry.yarnpkg.com/systemjs-builder/-/systemjs-builder-0.16.13.tgz#02b47d03afd1e2f29562b11ec8bc13457e785c76" + dependencies: + babel-core "^6.24.1" + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-plugin-transform-amd-system-wrapper "^0.3.7" + babel-plugin-transform-cjs-system-wrapper "^0.6.2" + babel-plugin-transform-es2015-modules-systemjs "^6.6.5" + babel-plugin-transform-global-system-wrapper "^0.3.4" + babel-plugin-transform-system-register "^0.0.1" + bluebird "^3.3.4" + data-uri-to-buffer "0.0.4" + es6-template-strings "^2.0.0" + glob "^7.0.3" + mkdirp "^0.5.1" + rollup "^0.58.2" + source-map "^0.5.3" + systemjs "^0.19.46" + traceur "0.0.105" + uglify-js "^2.6.1" + +systemjs@0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/systemjs/-/systemjs-0.21.3.tgz#76467a34a9a12ead3b11028a27345f7649e46204" + +systemjs@^0.19.46: + version "0.19.47" + resolved "https://registry.yarnpkg.com/systemjs/-/systemjs-0.19.47.tgz#c8c93937180f3f5481c769cd2720763fb4a31c6f" + dependencies: + when "^3.7.5" + +table@^3.7.8: + version "3.8.3" + resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + +tapable@^0.1.8, tapable@~0.1.8: + version "0.1.10" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" + +tar-fs@^1.13.0: + version "1.16.2" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.2.tgz#17e5239747e399f7e77344f5f53365f04af53577" + dependencies: + chownr "^1.0.1" + mkdirp "^0.5.1" + pump "^1.0.0" + tar-stream "^1.1.2" + +tar-stream@^1.1.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395" + dependencies: + bl "^1.0.0" + buffer-alloc "^1.1.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.0" + xtend "^4.0.0" + +tar@^4: + version "4.4.4" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.4.tgz#ec8409fae9f665a4355cc3b4087d0820232bb8cd" + dependencies: + chownr "^1.0.1" + fs-minipass "^1.2.5" + minipass "^2.3.3" + minizlib "^1.1.0" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.2" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +tfunk@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/tfunk/-/tfunk-3.1.0.tgz#38e4414fc64977d87afdaa72facb6d29f82f7b5b" + dependencies: + chalk "^1.1.1" + object-path "^0.9.0" + +through2@^0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through2@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +tildify@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" + dependencies: + os-homedir "^1.0.0" + +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + +timers-browserify@^2.0.2: + version "2.0.10" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + dependencies: + setimmediate "^1.0.4" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +to-buffer@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +tough-cookie@~2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" + dependencies: + punycode "^1.4.1" + +traceur@0.0.105: + version "0.0.105" + resolved "https://registry.yarnpkg.com/traceur/-/traceur-0.0.105.tgz#5cf9dee83d6b77861c3d6c44d53859aed7ab0479" + dependencies: + commander "2.9.x" + glob "5.0.x" + rsvp "^3.0.13" + semver "^4.3.3" + source-map-support "~0.2.8" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +ua-parser-js@0.7.17: + version "0.7.17" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" + +uglify-js@^2.6.1: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-js@~2.7.3: + version "2.7.5" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + +unique-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" + +units-css@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/units-css/-/units-css-0.4.0.tgz#d6228653a51983d7c16ff28f8b9dc3b1ffed3a07" + dependencies: + isnumeric "^0.2.0" + viewport-dimensions "^0.2.0" + +universalify@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + +url-loader@^0.5.7: + version "0.5.9" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.9.tgz#cc8fea82c7b906e7777019250869e569e995c295" + dependencies: + loader-utils "^1.0.2" + mime "1.3.x" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" + dependencies: + kind-of "^6.0.2" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + dependencies: + os-homedir "^1.0.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +util@^0.10.3: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + dependencies: + inherits "2.0.3" + +utils-merge@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" + +uuid@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" + +uws@~9.14.0: + version "9.14.0" + resolved "https://registry.yarnpkg.com/uws/-/uws-9.14.0.tgz#fac8386befc33a7a3705cbd58dc47b430ca4dd95" + +v8flags@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +validate-npm-package-license@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vendors@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +viewport-dimensions@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/viewport-dimensions/-/viewport-dimensions-0.2.0.tgz#de740747db5387fd1725f5175e91bac76afdf36c" + +vinyl-fs@^0.3.0: + version "0.3.14" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" + dependencies: + defaults "^1.0.0" + glob-stream "^3.1.5" + glob-watcher "^0.0.6" + graceful-fs "^3.0.0" + mkdirp "^0.5.0" + strip-bom "^1.0.0" + through2 "^0.6.1" + vinyl "^0.4.0" + +vinyl-sourcemaps-apply@^0.2.0, vinyl-sourcemaps-apply@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" + dependencies: + source-map "^0.5.1" + +vinyl@^0.4.0: + version "0.4.6" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + dependencies: + makeerror "1.0.x" + +watch@~0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" + +watchpack@^0.2.1: + version "0.2.9" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" + dependencies: + async "^0.9.0" + chokidar "^1.0.0" + graceful-fs "^4.1.2" + +webpack-core@~0.6.9: + version "0.6.9" + resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2" + dependencies: + source-list-map "~0.1.7" + source-map "~0.4.1" + +webpack@^1.13.1: + version "1.15.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.15.0.tgz#4ff31f53db03339e55164a9d468ee0324968fe98" + dependencies: + acorn "^3.0.0" + async "^1.3.0" + clone "^1.0.2" + enhanced-resolve "~0.9.0" + interpret "^0.6.4" + loader-utils "^0.2.11" + memory-fs "~0.3.0" + mkdirp "~0.5.0" + node-libs-browser "^0.7.0" + optimist "~0.6.0" + supports-color "^3.1.0" + tapable "~0.1.8" + uglify-js "~2.7.3" + watchpack "^0.2.1" + webpack-core "~0.6.9" + +whatwg-fetch@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-1.1.1.tgz#ac3c9d39f320c6dce5339969d054ef43dd333319" + +when@^3.7.5: + version "3.7.8" + resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82" + +whet.extend@~0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + +which@^1.0.9, which@^1.1.1, which@^1.2.14: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + dependencies: + string-width "^1.0.2 || 2" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +window-size@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +ws@~3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" + +yamljs@^0.2.8: + version "0.2.10" + resolved "https://registry.yarnpkg.com/yamljs/-/yamljs-0.2.10.tgz#481cc7c25ca73af59f591f0c96e3ce56c757a40f" + dependencies: + argparse "^1.0.7" + glob "^7.0.5" + +yargs-parser@^4.1.0, yargs-parser@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" + dependencies: + camelcase "^3.0.0" + +yargs@6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.4.0.tgz#816e1a866d5598ccf34e5596ddce22d92da490d4" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + window-size "^0.2.0" + y18n "^3.2.1" + yargs-parser "^4.1.0" + +yargs@6.6.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^4.2.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"