{ "name": "pinafore", "description": "Alternative web client for Mastodon", "version": "0.8.3", "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 ./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*", "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-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": "if [ $TRAVIS_BRANCH = master -a $TRAVIS_PULL_REQUEST = false ]; then run-s stage-dev launch-travis alias-dev-travis cleanup-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", "a11y-dialog": "^4.0.1", "browserslist": "^4.1.1", "cheerio": "^1.0.0-rc.2", "child-process-promise": "^2.2.1", "chokidar": "^2.0.4", "cross-env": "^5.2.0", "css-loader": "^1.0.0", "emoji-regex": "^7.0.1", "escape-html": "^1.0.3", "esm": "^3.0.84", "events": "^3.0.0", "express": "^4.16.3", "fg-loadcss": "^2.0.1", "file-api": "^0.10.4", "font-awesome-svg-png": "^1.2.2", "form-data": "^2.3.2", "glob": "^7.1.3", "helmet": "^3.13.0", "idb-keyval": "^3.1.0", "indexeddb-getall-shim": "^1.3.5", "intersection-observer": "^0.5.0", "lodash-es": "^4.17.11", "lodash-webpack-plugin": "^0.11.5", "mini-css-extract-plugin": "^0.4.3", "mkdirp": "^0.5.1", "node-fetch": "^2.2.0", "node-sass": "^4.9.3", "npm-run-all": "^4.1.3", "optimize-css-assets-webpack-plugin": "^5.0.0", "p-any": "^1.1.0", "page-lifecycle": "^0.1.1", "performance-now": "^2.1.0", "pify": "^4.0.0", "quick-lru": "^1.1.0", "requestidlecallback": "^0.3.0", "sapper": "github:nolanlawson/sapper#for-pinafore-8", "serve-static": "^1.13.2", "shrink-ray-current": "^2.1.2", "stringz": "^1.0.0", "style-loader": "^0.23.0", "svelte": "^2.13.5", "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.19.1", "webpack-bundle-analyzer": "^3.0.2", "workerize-loader": "^1.0.4", "yargs": "^12.0.2" }, "devDependencies": { "eslint-plugin-html": "^4.0.6", "now": "^11.4.5", "standard": "^12.0.1", "testcafe": "^0.22.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" ], "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", "a11y-dialog" ] }, "repository": { "type": "git", "url": "git+https://github.com/nolanlawson/pinafore.git" }, "keywords": [], "author": "Nolan Lawson ", "license": "AGPL-3.0-only", "bugs": { "url": "https://github.com/nolanlawson/pinafore/issues" }, "homepage": "https://github.com/nolanlawson/pinafore#readme" }