{ "name": "pinafore", "description": "Alternative web client for Mastodon", "version": "1.24.5", "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 node -r esm ./node_modules/sapper/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": "node -r esm ./node_modules/sapper/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", "install-mastodon": "node -r esm ./bin/install-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 2 $BROWSER tests/spec/0*", "testcafe-suite1": "cross-env-shell testcafe $BROWSER tests/spec/1*", "test-unit": "NODE_ENV=test mocha -r esm -r bin/browser-shim.js tests/unit/", "test-in-ci": "cross-env BROWSER=chrome:headless run-p --race run-mastodon start test-mastodon", "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", "backup-mastodon-data": "./bin/backup-mastodon-data.sh", "sapper-export": "cross-env PORT=22939 node -r esm ./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 -r esm bin/build-vercel-json.js" }, "dependencies": { "@formatjs/intl-listformat": "^6.2.6", "@formatjs/intl-locale": "^2.4.33", "@formatjs/intl-pluralrules": "^4.0.28", "@formatjs/intl-relativetimeformat": "^9.1.7", "@rollup/plugin-replace": "^2.4.2", "arrow-key-navigation": "^1.2.0", "blurhash": "^1.1.3", "cheerio": "1.0.0-rc.3", "child-process-promise": "^2.2.1", "chokidar": "^3.5.2", "circular-dependency-plugin": "^5.2.2", "compression": "^1.7.4", "cross-env": "^7.0.3", "css-dedoupe": "^0.1.1", "emoji-picker-element": "^1.6.0", "emoji-picker-element-data": "^1.2.0", "emoji-regex": "^9.2.2", "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": "^1.0.1", "file-loader": "^6.2.0", "focus-visible": "^5.2.0", "form-data": "^4.0.0", "format-message-interpret": "^6.2.3", "format-message-parse": "^6.2.3", "glob": "^7.1.7", "is-emoji-supported": "^0.0.5", "li": "^1.3.0", "localstorage-memory": "^1.0.3", "lodash-es": "4.17.15", "lodash-webpack-plugin": "^0.11.6", "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.52.7", "rollup-plugin-babel": "^4.4.0", "rollup-plugin-terser": "^7.0.2", "rtl-detect": "^1.0.3", "safari-14-idb-fix": "^1.0.3", "sapper": "nolanlawson/sapper#for-pinafore-25", "sass": "^1.35.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.3.1", "terser-webpack-plugin": "^5.1.4", "tesseract.js": "^2.1.4", "tesseract.js-core": "^2.2.0", "text-encoding": "^0.7.0", "tiny-queue": "^0.2.1", "webpack": "^5.42.0", "webpack-bundle-analyzer": "^4.4.2", "worker-loader": "^3.0.8" }, "devDependencies": { "assert": "^2.0.0", "eslint-plugin-html": "^6.1.2", "fake-indexeddb": "^3.1.3", "globby": "^11.0.4", "husky": "^7.0.0", "lint-staged": "^11.0.0", "mocha": "^9.0.2", "standard": "^16.0.3", "testcafe": "^1.14.2" }, "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'" } }