{ "name": "scratch-gui", "version": "0.1.0", "description": "GraphicaL User Interface for creating and running Scratch 3.0 projects", "main": "./dist/scratch-gui.js", "scripts": { "buildall": "npm run build && npm run deploy", "build": "cross-env NODE_OPTIONS=\"--openssl-legacy-provider\" webpack --colors --bail", "clean": "rimraf ./build && mkdirp build && rimraf ./dist && mkdirp dist", "deploy": "npm uni gh-pages && npm i gh-pages -g && gh-pages -d src", "prune": "./prune-gh-pages.sh", "i18n:push": "tx-push-src scratch-editor interface translations/en.json", "i18n:src": "rimraf ./translations/messages/src && babel src > tmp.js && rimraf tmp.js && build-i18n-src ./translations/messages/src ./translations/ && npm run i18n:push", "start": "cross-env NODE_OPTIONS=\"--openssl-legacy-provider\" webpack-dev-server --host 0.0.0.0 --port 3000 --disable-host-check", "test": "npm run test:lint && npm run test:unit && npm run build && npm run test:integration", "test:integration": "jest --maxWorkers=4 test[\\\\/]integration", "test:lint": "eslint . --ext .js,.jsx", "test:unit": "jest test[\\\\/]unit", "test:smoke": "jest --runInBand test[\\\\/]smoke", "watch": "webpack --colors --watch", "install-slow": "rimraf ./node_modules && rimraf ./package-lock.json && npm i --force" }, "author": "Massachusetts Institute of Technology", "license": "GPL-3.0", "private": true, "homepage": "https://github.com/LLK/scratch-gui#readme", "repository": { "type": "git", "url": "git+ssh://git@github.com/LLK/scratch-gui.git" }, "dependencies": { "@turbowarp/jszip": "^3.11.1", "@turbowarp/scratch-l10n": "^3.1000.20230326022803", "arraybuffer-loader": "^1.0.8", "autoprefixer": "^9.8.8", "base64-loader": "1.0.0", "bowser": "1.9.4", "classnames": "2.2.6", "computed-style-to-inline-style": "3.0.0", "copy-webpack-plugin": "6.4.1", "core-js": "2.5.7", "css-loader": "^1.0.1", "es6-object-assign": "1.1.0", "file-loader": "2.0.0", "get-float-time-domain-data": "0.1.0", "get-user-media-promise": "1.1.4", "immutable": "3.8.2", "intl": "1.2.5", "intl-messageformat": "^2.2.0", "js-base64": "2.4.9", "jszip": "^3.10.1", "keymirror": "0.1.1", "localforage": "^1.10.0", "lodash.bindall": "4.4.0", "lodash.debounce": "4.0.8", "lodash.omit": "4.5.0", "lodash.throttle": "4.0.1", "minilog": "3.1.0", "omggif": "1.0.9", "papaparse": "5.3.0", "PenguinMod-MarkDown": "github:PenguinMod/PenguinMod-MarkDown#master", "pmp-protobuf": "^1.5.1", "postcss-import": "^12.0.1", "postcss-loader": "^3.0.0", "postcss-simple-vars": "^5.0.2", "prop-types": "^15.8.1", "protobufjs": "^7.3.2", "query-string": "^5.1.1", "raw-loader": "^0.5.1", "react": "^16.0.0", "react-contextmenu": "2.9.4", "react-dom": "^16.0.0", "react-draggable": "3.0.5", "react-ga": "2.5.3", "react-intl": "2.9.0", "react-intl-redux": "0.7.0", "react-modal": "3.9.1", "react-popover": "0.5.10", "react-redux": "5.0.7", "react-responsive": "^4.1.0", "react-string-replace": "^0.4.4", "react-style-proptype": "3.2.2", "react-tabs": "2.3.0", "react-tooltip": "3.8.0", "react-virtualized": "9.20.1", "redux": "3.7.2", "redux-throttle": "0.1.1", "scratch-audio": "github:PenguinMod/PenguinMod-Audio#develop", "scratch-blocks": "github:PenguinMod/PenguinMod-Blocks#develop-builds", "scratch-paint": "github:PenguinMod/PenguinMod-Paint#develop", "scratch-render": "github:PenguinMod/PenguinMod-Render#develop", "scratch-render-fonts": "github:PenguinMod/penguinmod-render-fonts#master", "scratch-storage": "github:PenguinMod/PenguinMod-Storage#develop", "scratch-svg-renderer": "github:PenguinMod/penguinmod-svg-renderer#develop", "scratch-vm": "github:PenguinMod/PenguinMod-Vm#develop", "startaudiocontext": "1.2.1", "style-loader": "^0.23.1", "text-encoding": "0.7.0", "theia": "github:FreshPenguin112/theia-pnpm#master", "to-style": "1.3.3", "wav-encoder": "1.3.0", "xhr": "2.5.0" }, "peerDependencies": { "react": "^16.0.0", "react-dom": "^16.0.0" }, "devDependencies": { "@babel/cli": "7.14.8", "@babel/core": "7.14.8", "@babel/plugin-proposal-object-rest-spread": "7.14.7", "@babel/plugin-syntax-dynamic-import": "7.2.0", "@babel/plugin-transform-async-to-generator": "7.14.5", "@babel/preset-env": "7.14.8", "@babel/preset-react": "7.14.5", "babel-core": "7.0.0-bridge.0", "babel-eslint": "10.0.3", "babel-loader": "8.2.2", "chromedriver": "105.0.0", "cross-env": "^7.0.3", "enzyme": "3.10.0", "enzyme-adapter-react-16": "1.3.0", "eslint": "5.16.0", "eslint-config-scratch": "6.0.0", "eslint-import-resolver-webpack": "0.11.1", "eslint-plugin-import": "2.23.4", "eslint-plugin-jest": "22.17.0", "eslint-plugin-react": "7.24.0", "gh-pages": "3.2.3", "html-webpack-plugin": "^4.5.2", "jest": "21.2.1", "jest-junit": "7.0.0", "lodash.defaultsdeep": "4.6.1", "mkdirp": "1.0.3", "raf": "3.4.1", "react-test-renderer": "16.2.0", "redux-mock-store": "1.5.3", "rimraf": "2.7.1", "selenium-webdriver": "3.6.0", "uglifyjs-webpack-plugin": "1.3.0", "url-loader": "^4.1.1", "web-audio-test-api": "0.5.2", "webpack": "4.46.0", "webpack-cli": "3.3.12", "webpack-dev-server": "3.11.2", "webpack-sources": "3.2.3" }, "jest": { "setupFiles": [ "raf/polyfill", "/test/helpers/enzyme-setup.js" ], "testPathIgnorePatterns": [ "src/test.js" ], "moduleNameMapper": { "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "/test/__mocks__/fileMock.js", "\\.(css|less)$": "/test/__mocks__/styleMock.js", "editor-msgs(\\.js)?$": "/test/__mocks__/editor-msgs-mock.js" } } }