{
  "name": "pinafore",
  "description": "Alternative web client for Mastodon",
  "version": "0.11.0",
  "scripts": {
    "lint": "standard && standard --plugin html 'routes/**/*.html'",
    "lint-fix": "standard --fix && standard --fix --plugin html 'routes/**/*.html'",
    "dev": "run-s build-svg build-inline-script serve-dev",
    "serve-dev": "run-p --race build-sass-watch serve",
    "serve": "node server.js",
    "build": "cross-env NODE_ENV=production npm run build-steps",
    "build-steps": "run-s globalize-css build-sass build-svg build-inline-script sapper-build deglobalize-css",
    "sapper-build": "sapper build",
    "start": "cross-env NODE_ENV=production npm run serve",
    "build-and-start": "run-s build start",
    "build-svg": "node ./bin/build-svg.js",
    "build-inline-script": "node -r esm ./bin/build-inline-script.js",
    "build-sass": "node ./bin/build-sass.js",
    "build-sass-watch": "node ./bin/build-sass.js --watch",
    "run-mastodon": "node -r esm ./bin/run-mastodon.js",
    "test": "cross-env BROWSER=chrome:headless npm run test-browser",
    "test-browser": "run-p --race run-mastodon build-and-start test-mastodon",
    "test-mastodon": "run-s wait-for-mastodon-to-start wait-for-mastodon-data testcafe",
    "test-browser-suite0": "run-p --race run-mastodon build-and-start test-mastodon-suite0",
    "test-mastodon-suite0": "run-s wait-for-mastodon-to-start wait-for-mastodon-data testcafe-suite0",
    "test-browser-suite1": "run-p --race run-mastodon build-and-start test-mastodon-suite1",
    "test-mastodon-suite1": "run-s wait-for-mastodon-to-start wait-for-mastodon-data testcafe-suite1",
    "testcafe": "run-s testcafe-suite0 testcafe-suite1",
    "testcafe-suite0": "cross-env-shell testcafe --hostname localhost --skip-js-errors -c 4 $BROWSER tests/spec/0*",
    "testcafe-suite1": "cross-env-shell testcafe --hostname localhost --skip-js-errors $BROWSER tests/spec/1*",
    "test-unit": "mocha -r esm tests/unit/",
    "wait-for-mastodon-to-start": "node -r esm bin/wait-for-mastodon-to-start.js",
    "wait-for-mastodon-data": "node -r esm bin/wait-for-mastodon-data.js",
    "globalize-css": "node ./bin/globalize-css.js",
    "deglobalize-css": "node ./bin/globalize-css.js --reverse",
    "stage-dev": "printf 'User-agent: *\nDisallow: /' > assets/robots.txt",
    "stage-prod": "rm -f assets/robots.txt",
    "launch": "now -e SAPPER_TIMESTAMP=$(date +%s%3N) --team nolanlawson && sleep 60",
    "launch-travis": "now -e SAPPER_TIMESTAMP=$(date +%s%3N) --team nolanlawson --token $NOW_TOKEN && sleep 60",
    "alias-prod": "now alias pinafore.social --team nolanlawson",
    "alias-prod-travis": "now alias pinafore.social --team nolanlawson --token $NOW_TOKEN",
    "alias-dev": "now alias dev.pinafore.social --team nolanlawson",
    "alias-dev-travis": "now alias dev.pinafore.social --team nolanlawson --token $NOW_TOKEN",
    "cleanup": "now rm pinafore --safe --yes --team nolanlawson",
    "cleanup-travis": "now rm pinafore --safe --yes --team nolanlawson --token $NOW_TOKEN",
    "deploy-prod": "run-s stage-prod launch alias-prod cleanup",
    "deploy-dev": "run-s stage-dev launch alias-dev cleanup",
    "deploy-dev-travis": "run-s stage-dev launch-travis alias-dev-travis cleanup-travis; fi",
    "deploy-prod-travis": "if echo $TRAVIS_COMMIT_MESSAGE | grep -q -E '\\d+\\.\\d+\\.\\d+'; then run-s stage-prod launch-travis alias-prod-travis cleanup-travis; fi",
    "deploy-all-travis": "if [ $TRAVIS_BRANCH = master -a $TRAVIS_PULL_REQUEST = false ]; then run-s deploy-dev-travis deploy-prod-travis; fi",
    "backup-mastodon-data": "PGPASSWORD=pinafore pg_dump -U pinafore -w pinafore_development > fixtures/dump.sql && cd mastodon/public/system && tar -czf ../../../fixtures/system.tgz ."
  },
  "dependencies": {
    "@gamestdio/websocket": "^0.2.8",
    "browserslist": "^4.3.4",
    "cheerio": "^1.0.0-rc.2",
    "child-process-promise": "^2.2.1",
    "chokidar": "^2.0.4",
    "compression": "^1.7.3",
    "cross-env": "^5.2.0",
    "css-loader": "^1.0.1",
    "emoji-regex": "^7.0.1",
    "escape-html": "^1.0.3",
    "esm": "^3.0.84",
    "events": "^3.0.0",
    "express": "^4.16.4",
    "fg-loadcss": "^2.0.1",
    "file-api": "^0.10.4",
    "font-awesome-svg-png": "^1.2.2",
    "form-data": "^2.3.3",
    "glob": "^7.1.3",
    "helmet": "^3.14.0",
    "idb-keyval": "^3.1.0",
    "indexeddb-getall-shim": "^1.3.5",
    "intersection-observer": "^0.5.1",
    "lodash-es": "^4.17.11",
    "lodash-webpack-plugin": "^0.11.5",
    "mini-css-extract-plugin": "^0.4.4",
    "mkdirp": "^0.5.1",
    "node-fetch": "^2.2.0",
    "node-sass": "^4.10.0",
    "npm-run-all": "^4.1.3",
    "optimize-css-assets-webpack-plugin": "^5.0.1",
    "p-any": "^1.1.0",
    "page-lifecycle": "^0.1.1",
    "performance-now": "^2.1.0",
    "pify": "^4.0.1",
    "quick-lru": "^2.0.0",
    "requestidlecallback": "^0.3.0",
    "sapper": "github:nolanlawson/sapper#for-pinafore-8",
    "serve-static": "^1.13.2",
    "stringz": "^1.0.0",
    "style-loader": "^0.23.1",
    "svelte": "^2.15.3",
    "svelte-extras": "^2.0.2",
    "svelte-loader": "^2.11.0",
    "svelte-transitions": "^1.2.0",
    "svgo": "^1.1.1",
    "terser-webpack-plugin": "^1.1.0",
    "timeago.js": "^3.0.2",
    "tiny-queue": "^0.2.1",
    "web-animations-js": "^2.3.1",
    "webpack": "^4.24.0",
    "webpack-bundle-analyzer": "^3.0.3"
  },
  "devDependencies": {
    "assert": "^1.4.1",
    "eslint-plugin-html": "^5.0.0",
    "mocha": "^5.2.0",
    "now": "^12.0.0",
    "standard": "^12.0.1",
    "testcafe": "^0.23.0"
  },
  "engines": {
    "node": ">= 8"
  },
  "standard": {
    "globals": [
      "fetch",
      "IDBKeyRange",
      "IDBObjectStore",
      "indexedDB",
      "requestAnimationFrame",
      "requestIdleCallback",
      "location",
      "localStorage",
      "IntersectionObserver",
      "URL",
      "Event",
      "history",
      "performance",
      "self",
      "caches",
      "__routes__",
      "__shell__",
      "__assets__",
      "test",
      "fixture",
      "Element",
      "FormData",
      "atob",
      "btoa",
      "Blob",
      "Element",
      "Image",
      "NotificationEvent",
      "NodeList"
    ],
    "ignore": [
      "dist",
      "routes/_utils/asyncModules.js",
      "routes/_components/dialog/asyncDialogs.js"
    ]
  },
  "esm": {
    "mode": "auto",
    "cjs": "vars"
  },
  "now": {
    "type": "npm",
    "env": {
      "NODE_ENV": "production"
    },
    "files": [
      "assets",
      "bin",
      "original-assets",
      "routes",
      "scss",
      "templates",
      "package.json",
      "package-lock.json",
      "server.js",
      "inline-script.js",
      "webpack.client.config.js",
      "webpack.server.config.js"
    ],
    "engines": {
      "node": "^8.0.0"
    }
  },
  "greenkeeper": {
    "ignore": [
      "sapper"
    ]
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/nolanlawson/pinafore.git"
  },
  "keywords": [],
  "author": "Nolan Lawson <nolan@nolanlawson.com>",
  "license": "AGPL-3.0-only",
  "bugs": {
    "url": "https://github.com/nolanlawson/pinafore/issues"
  },
  "homepage": "https://github.com/nolanlawson/pinafore#readme"
}