{
  "name": "pinafore",
  "description": "Alternative web client for Mastodon",
  "version": "2.6.0",
  "type": "module",
  "engines": {
    "node": "^12.20.0 || ^14.13.1 || ^16.0.0 || ^18.0.0 || ^20.0.0"
  },
  "scripts": {
    "lint": "standard && standard --plugin html 'src/routes/**/*.html'",
    "lint-fix": "standard --fix && standard --fix --plugin html 'src/routes/**/*.html'",
    "dev": "run-s before-build serve-dev",
    "serve-dev": "run-p --race build-template-html-watch sapper-dev",
    "sapper-dev": "cross-env NODE_ENV=development PORT=4002 WEBPACK_CONFIG_FILE=webpack/webpack.config.cjs SERVER_FILE_EXT=cjs node ./node_modules/sapper/sapper dev",
    "before-build": "run-p build-template-html build-assets build-webpack-config",
    "build": "cross-env NODE_ENV=production run-s build-steps",
    "build-steps": "run-s before-build sapper-export build-vercel-json",
    "sapper-build": "cross-env WEBPACK_CONFIG_FILE=webpack/webpack.config.cjs SERVER_FILE_EXT=cjs node ./node_modules/sapper/sapper build",
    "start": "node server.js",
    "build-and-start": "run-s build start",
    "build-template-html": "node ./bin/build-template-html.js",
    "build-template-html-watch": "node ./bin/build-template-html.js --watch",
    "build-assets": "node ./bin/build-assets.js",
    "build-webpack-config": "rollup -c ./webpack/rollup.config.js",
    "clone-mastodon": "node ./bin/clone-mastodon.js",
    "install-mastodon": "node ./bin/install-mastodon.js",
    "run-mastodon": "node ./bin/run-mastodon.js",
    "test": "cross-env BROWSER=chrome:headless run-s 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-mastodon-suite0": "run-s wait-for-mastodon-to-start wait-for-mastodon-data testcafe-suite0",
    "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 -c 2 $BROWSER tests/spec/0*",
    "testcafe-suite1": "cross-env-shell testcafe $BROWSER tests/spec/1*",
    "test-unit": "NODE_ENV=test mocha -r bin/browser-shim.js tests/unit/",
    "test-in-ci-suite0": "cross-env BROWSER=chrome:headless run-p --race run-mastodon start test-mastodon-suite0",
    "test-in-ci-suite1": "cross-env BROWSER=chrome:headless run-p --race run-mastodon start test-mastodon-suite1",
    "test-vercel-json": "run-s test-vercel-json-copy build test-vercel-json-test",
    "test-vercel-json-copy": "./bin/copy-vercel-json.sh",
    "test-vercel-json-test": "./bin/test-vercel-json-unchanged.sh",
    "wait-for-mastodon-to-start": "node bin/wait-for-mastodon-to-start.js",
    "wait-for-mastodon-data": "node bin/wait-for-mastodon-data.js",
    "backup-mastodon-data": "./bin/backup-mastodon-data.sh",
    "sapper-export": "cross-env PORT=22939 WEBPACK_CONFIG_FILE=webpack/webpack.config.cjs SERVER_FILE_EXT=cjs node ./node_modules/sapper/sapper export",
    "print-export-info": "node ./bin/print-export-info.js",
    "export-steps": "run-s before-build sapper-export print-export-info",
    "export": "cross-env NODE_ENV=production run-s export-steps",
    "now-build": "run-s export",
    "build-vercel-json": "node bin/build-vercel-json.js"
  },
  "dependencies": {
    "@formatjs/intl-listformat": "^7.1.3",
    "@formatjs/intl-locale": "^3.0.7",
    "@formatjs/intl-pluralrules": "^5.1.4",
    "@formatjs/intl-relativetimeformat": "^11.1.4",
    "@rollup/plugin-json": "^4.1.0",
    "@rollup/plugin-node-resolve": "^14.1.0",
    "@rollup/plugin-replace": "^2.4.2",
    "@stdlib/utils-noop": "^0.0.13",
    "arrow-key-navigation": "^1.2.0",
    "blurhash": "^1.1.5",
    "cheerio": "1.0.0-rc.10",
    "child-process-promise": "^2.2.1",
    "chokidar": "^3.5.3",
    "circular-dependency-plugin": "^5.2.2",
    "compression": "^1.7.4",
    "country-flag-emoji-polyfill": "^0.1.4",
    "cross-env": "^7.0.3",
    "css-dedoupe": "^0.1.1",
    "emoji-picker-element": "^1.13.1",
    "emoji-picker-element-data": "^1.3.0",
    "emoji-regex": "^10.2.1",
    "encoding": "^0.1.13",
    "es-main": "^1.2.0",
    "escape-html": "^1.0.3",
    "esm": "^3.2.25",
    "events-light": "^1.0.5",
    "express": "^4.18.2",
    "file-api": "^0.10.4",
    "file-drop-element": "^1.0.1",
    "file-loader": "^6.2.0",
    "focus-visible": "^5.2.0",
    "form-data": "^4.0.0",
    "format-message-interpret": "^6.2.4",
    "format-message-parse": "^6.2.4",
    "glob": "^7.2.0",
    "is-emoji-supported": "^0.0.5",
    "li": "^1.3.0",
    "localstorage-memory": "^1.0.3",
    "mkdirp": "^1.0.4",
    "node-fetch": "^2.6.7",
    "npm-run-all": "^4.1.5",
    "p-any": "^4.0.0",
    "page-lifecycle": "^0.1.2",
    "pinch-zoom-element": "^1.1.1",
    "promise-worker": "^2.0.1",
    "prop-types": "^15.8.1",
    "requestidlecallback": "^0.3.0",
    "rollup": "^2.67.3",
    "rollup-plugin-terser": "^7.0.2",
    "rtl-detect": "^1.0.4",
    "safari-14-idb-fix": "^1.0.4",
    "sapper": "nolanlawson/sapper#for-pinafore-26",
    "sass": "^1.56.1",
    "stringz": "^2.1.0",
    "svelte": "^2.16.1",
    "svelte-extras": "^2.0.2",
    "svelte-loader": "^2.13.6",
    "svelte-transitions": "^1.2.0",
    "svgo": "^2.8.0",
    "terser-webpack-plugin": "^5.3.6",
    "tesseract.js": "^2.1.5",
    "tesseract.js-core": "^2.2.0",
    "text-encoding": "^0.7.0",
    "tiny-queue": "^0.2.1",
    "webpack": "^5.75.0",
    "webpack-bundle-analyzer": "^4.7.0",
    "worker-loader": "^3.0.8"
  },
  "devDependencies": {
    "assert": "^2.0.0",
    "eslint-plugin-html": "^7.1.0",
    "fake-indexeddb": "^4.0.0",
    "globby": "^13.1.2",
    "husky": "^8.0.2",
    "lint-staged": "^13.0.3",
    "mocha": "^10.1.0",
    "standard": "^17.0.0",
    "testcafe": "^1.20.1"
  },
  "standard": {
    "ignore": [
      "webpack/*.cjs"
    ],
    "globals": [
      "AbortController",
      "Blob",
      "CSS",
      "DOMParser",
      "Element",
      "Element",
      "Event",
      "FormData",
      "HTMLElement",
      "IDBKeyRange",
      "IDBObjectStore",
      "Image",
      "ImageData",
      "IntersectionObserver",
      "MessageChannel",
      "NodeList",
      "NotificationEvent",
      "OffscreenCanvas",
      "PointerEvent",
      "Response",
      "URL",
      "WebSocket",
      "__assets__",
      "__routes__",
      "__shell__",
      "atob",
      "btoa",
      "caches",
      "customElements",
      "fetch",
      "fixture",
      "getComputedStyle",
      "history",
      "indexedDB",
      "localStorage",
      "location",
      "matchMedia",
      "performance",
      "postMessage",
      "queueMicrotask",
      "requestAnimationFrame",
      "requestIdleCallback",
      "self",
      "test"
    ]
  },
  "esm": {
    "mode": "auto",
    "cjs": "vars"
  },
  "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",
  "lint-staged": {
    "*.js": "standard --fix",
    "*.html": "standard --fix --plugin html 'src/routes/**/*.html'"
  },
  "volta": {
    "node": "14.21.1",
    "yarn": "1.22.19"
  }
}