{ "name": "pinafore", "description": "Alternative web client for Mastodon", "version": "0.5.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 ./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", "testcafe": "run-s testcafe-p testcafe-s", "testcafe-p": "cross-env-shell testcafe --hostname localhost --skip-js-errors -c 4 $BROWSER tests/spec/0*", "testcafe-s": "cross-env-shell testcafe --hostname localhost --skip-js-errors $BROWSER tests/spec/1*", "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", "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": "pg_dump -Fc mastodon_development > fixtures/dump.sql && cd mastodon/public/system && tar -czf ../../../fixtures/system.tgz ." }, "dependencies": { "@gamestdio/websocket": "0.2.5", "a11y-dialog": "4.0.1", "cheerio": "1.0.0-rc.2", "child-process-promise": "2.2.1", "chokidar": "2.0.3", "cross-env": "5.1.6", "css-loader": "0.28.11", "escape-html": "1.0.3", "esm": "3.0.38", "events": "2.1.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.2", "helmet": "3.12.1", "indexeddb-getall-shim": "1.3.3", "intersection-observer": "0.5.0", "lodash-es": "4.17.10", "lodash-webpack-plugin": "0.11.5", "mini-css-extract-plugin": "0.4.0", "mkdirp": "0.5.1", "node-fetch": "2.1.2", "node-sass": "4.9.0", "npm-run-all": "4.1.3", "optimize-css-assets-webpack-plugin": "4.0.1", "p-any": "1.1.0", "performance-now": "2.1.0", "pify": "3.0.0", "quick-lru": "1.1.0", "requestidlecallback": "0.3.0", "sapper": "github:nolanlawson/sapper#for-pinafore-7", "serve-static": "1.13.2", "shrink-ray-current": "2.1.0", "stringz": "1.0.0", "style-loader": "0.21.0", "svelte": "2.6.6", "svelte-extras": "2.0.2", "svelte-loader": "2.9.1", "svelte-transitions": "1.2.0", "svgo": "1.0.5", "timeago.js": "3.0.2", "tiny-queue": "0.2.1", "uglifyjs-webpack-plugin": "1.2.5", "web-animations-js": "2.3.1", "webpack": "4.9.1", "webpack-bundle-analyzer": "2.13.1", "yargs": "11.0.0" }, "devDependencies": { "eslint-plugin-html": "4.0.3", "now": "11.1.14", "standard": "11.0.1", "testcafe": "0.19.1" }, "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" ] }, "greenkeeper": { "ignore": [ "sapper", "a11y-dialog" ] } }