{ "name": "pinafore", "description": "Alternative web client for Mastodon", "version": "1.19.2", "scripts": { "lint": "standard && standard --plugin html 'src/routes/**/*.html'", "lint-fix": "standard --fix && standard --fix --plugin html 'src/routes/**/*.html'", "dev": "run-s build-template-html build-assets serve-dev", "serve-dev": "run-p --race build-template-html-watch sapper-dev", "sapper-dev": "cross-env NODE_ENV=development PORT=4002 sapper dev", "before-build": "run-s build-template-html build-assets", "build": "cross-env NODE_ENV=production run-s build-steps", "build-steps": "run-s before-build sapper-export build-vercel-json", "sapper-build": "sapper build", "start": "node server.js", "build-and-start": "run-s build start", "build-template-html": "node -r esm ./bin/build-template-html.js", "build-template-html-watch": "node -r esm ./bin/build-template-html.js --watch", "build-assets": "node -r esm ./bin/build-assets.js", "clone-mastodon": "node -r esm ./bin/clone-mastodon.js", "run-mastodon": "node -r esm ./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", "testcafe": "run-s testcafe-suite0 testcafe-suite1", "testcafe-suite0": "cross-env-shell testcafe -c 4 $BROWSER tests/spec/0*", "testcafe-suite1": "cross-env-shell testcafe $BROWSER tests/spec/1*", "test-unit": "mocha -r esm -r bin/browser-shim.js 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", "deploy-prod": "DEPLOY_TYPE=prod ./bin/deploy.sh", "deploy-dev": "DEPLOY_TYPE=dev ./bin/deploy.sh", "backup-mastodon-data": "./bin/backup-mastodon-data.sh", "sapper-export": "cross-env PORT=22939 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 -r esm bin/build-vercel-json.js" }, "dependencies": { "@rollup/plugin-replace": "^2.3.3", "arrow-key-navigation": "^1.2.0", "blurhash": "^1.1.3", "cheerio": "^1.0.0-rc.3", "child-process-promise": "^2.2.1", "chokidar": "^3.4.2", "circular-dependency-plugin": "^5.2.0", "compression": "^1.7.4", "cross-env": "^7.0.2", "css-dedoupe": "^0.1.1", "emoji-picker-element": "^1.3.0", "emoji-picker-element-data": "^1.0.0", "emoji-regex": "^9.0.0", "encoding": "^0.1.13", "escape-html": "^1.0.3", "esm": "^3.2.25", "events-light": "^1.0.5", "express": "^4.17.1", "file-api": "^0.10.4", "file-drop-element": "0.2.0", "file-loader": "^6.1.0", "focus-visible": "^5.1.0", "form-data": "^3.0.0", "glob": "^7.1.6", "li": "^1.3.0", "localstorage-memory": "^1.0.3", "lodash-es": "^4.17.15", "lodash-webpack-plugin": "^0.11.5", "mkdirp": "^1.0.4", "node-fetch": "^2.6.1", "npm-run-all": "^4.1.5", "p-any": "^3.0.0", "page-lifecycle": "^0.1.2", "performance-now": "^2.1.0", "pinch-zoom-element": "^1.1.1", "promise-worker": "^2.0.1", "prop-types": "^15.7.2", "requestidlecallback": "^0.3.0", "rollup": "^2.26.10", "rollup-plugin-babel": "^4.4.0", "rollup-plugin-terser": "^7.0.2", "sapper": "nolanlawson/sapper#for-pinafore-21", "sass": "^1.26.10", "stringz": "^2.1.0", "svelte": "^2.16.1", "svelte-extras": "^2.0.2", "svelte-loader": "^2.13.6", "svelte-transitions": "^1.2.0", "svgo": "^1.3.2", "terser-webpack-plugin": "^4.1.0", "tesseract.js": "^2.1.4", "tesseract.js-core": "^2.2.0", "text-encoding": "^0.7.0", "tiny-queue": "^0.2.1", "webpack": "^4.44.1", "webpack-bundle-analyzer": "^3.8.0", "worker-loader": "^3.0.2" }, "devDependencies": { "assert": "^2.0.0", "eslint-plugin-html": "^6.1.0", "fake-indexeddb": "^3.1.2", "husky": "^5.0.4", "lint-staged": "^10.3.0", "mocha": "^8.1.3", "standard": "^14.3.4", "testcafe": "1.9.2", "vercel": "^20.1.0" }, "engines": { "node": ">= 8" }, "standard": { "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 ", "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'" } }