{ "name": "@scratch/scratch-gui", "version": "12.7.0", "description": "Graphical User Interface for creating and running Scratch 3.0 projects", "keywords": [], "homepage": "https://github.com/scratchfoundation/scratch-gui#readme", "bugs": { "url": "https://github.com/scratchfoundation/scratch-editor/issues" }, "repository": { "type": "git", "url": "git+https://github.com/scratchfoundation/scratch-editor.git" }, "license": "AGPL-3.0-only", "author": "Massachusetts Institute of Technology", "exports": { ".": { "types": "./dist/types/index.d.ts", "default": "./dist/scratch-gui.js" }, "./costumes": { "default": "./src/lib/libraries/costumes.json" }, "./sprites": { "default": "./src/lib/libraries/sprites.json" }, "./sounds": { "default": "./src/lib/libraries/sounds.json" }, "./backdrops": { "default": "./src/lib/libraries/backdrops.json" }, "./standalone": { "types": "./dist/types/index-standalone.d.ts", "default": "./dist/scratch-gui-standalone.js" } }, "main": "./dist/scratch-gui.js", "types": "./dist/types/index.d.ts", "directories": { "doc": "docs", "test": "test" }, "files": [ "dist", "src", "LICENSE", "TRADEMARK" ], "scripts": { "build": "npm run clean && npm run build:dev && npm run build:dist && npm run build:dist-standalone", "build:dev": "cross-env BUILD_TYPE=dev webpack", "build:dist": "cross-env NODE_ENV=production BUILD_TYPE=dist webpack", "build:dist-standalone": "cross-env NODE_ENV=production BUILD_TYPE=dist-standalone webpack", "clean": "rimraf build dist", "deploy": "touch build/.nojekyll && gh-pages -t -d build -m \"[skip ci] Build for $(git log --pretty=format:%H -n1)\"", "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/", "prepare": "node scripts/prepare.mjs", "prune": "./prune-gh-pages.sh", "start": "webpack serve", "test": "npm run test:lint && npm run test:unit && npm run test:integration", "test:integration": "cross-env JEST_JUNIT_OUTPUT_NAME=integration-tests-results.xml jest --maxWorkers=4 test[\\\\/]integration", "test:lint": "eslint", "test:smoke": "jest --runInBand test[\\\\/]smoke", "test:unit": "cross-env JEST_JUNIT_OUTPUT_NAME=unit-tests-results.xml jest test[\\\\/]unit", "watch": "webpack --watch" }, "jest": { "moduleFileExtensions": [ "ts", "js", "tsx", "jsx" ], "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" }, "reporters": [ "default", [ "jest-junit", { "outputDirectory": "test-results" } ] ], "setupFiles": [ "raf/polyfill" ], "testEnvironment": "jsdom", "testPathIgnorePatterns": [ "src/test.js" ], "transform": { "^.+\\.tsx?$": [ "ts-jest", { "isolatedModules": true, "tsconfig": "/tsconfig.test.json" } ], "^.+\\.jsx?$": "babel-jest" }, "transformIgnorePatterns": [ "/node_modules/(?!intl-messageformat|intl-messageformat-parser).+\\.js$" ] }, "dependencies": { "@mediapipe/face_detection": "0.4.1646425229", "@microbit/microbit-universal-hex": "0.2.2", "@radix-ui/react-context-menu": "2.2.16", "@scratch/scratch-render": "12.7.0", "@scratch/scratch-svg-renderer": "12.7.0", "@scratch/scratch-vm": "12.7.0", "@tensorflow-models/face-detection": "1.0.3", "@tensorflow/tfjs": "4.22.0", "@testing-library/user-event": "14.6.1", "arraybuffer-loader": "1.0.8", "autoprefixer": "9.8.8", "balance-text": "3.3.1", "base64-loader": "1.0.0", "bowser": "1.9.4", "classnames": "2.5.1", "computed-style-to-inline-style": "3.0.0", "cookie": "0.6.0", "copy-webpack-plugin": "6.4.1", "core-js": "2.6.12", "css-loader": "5.2.7", "dapjs": "2.3.0", "driver.js": "1.4.0", "es6-object-assign": "1.1.0", "fastestsmallesttextencoderdecoder": "1.0.22", "get-float-time-domain-data": "0.1.0", "get-user-media-promise": "1.1.4", "immutable": "3.8.2", "intl": "1.2.5", "js-base64": "2.6.4", "keymirror": "0.1.1", "lodash.bindall": "4.4.0", "lodash.debounce": "4.0.8", "lodash.defaultsdeep": "4.6.1", "lodash.omit": "4.5.0", "lodash.throttle": "4.1.1", "omggif": "1.0.10", "papaparse": "5.5.3", "postcss-import": "12.0.1", "postcss-loader": "4.3.0", "postcss-simple-vars": "5.0.2", "prop-types": "15.8.1", "query-string": "5.1.1", "raw-loader": "4.0.2", "react-draggable": "3.3.2", "react-ga": "3.3.1", "react-intl": "6.8.9", "react-modal": "3.16.3", "react-popover": "0.5.10", "react-redux": "8.1.3", "react-responsive": "9.0.2", "react-style-proptype": "3.2.2", "react-tabs": "5.2.0", "react-tooltip": "4.5.1", "react-virtualized": "9.22.6", "react-visibility-sensor": "5.1.1", "redux-throttle": "0.1.1", "scratch-audio": "2.0.268", "scratch-blocks": "2.0.0", "scratch-l10n": "6.1.60", "scratch-paint": "4.1.50", "scratch-render-fonts": "1.0.252", "scratch-storage": "6.1.11", "startaudiocontext": "1.2.1", "style-loader": "4.0.0", "text-encoding": "0.7.0", "to-style": "1.3.3", "tslog": "4.10.2", "wav-encoder": "1.3.0", "xhr": "2.6.0" }, "devDependencies": { "@babel/cli": "7.28.6", "@babel/core": "7.29.0", "@babel/preset-env": "7.29.0", "@babel/preset-react": "7.28.5", "@testing-library/jest-dom": "5.17.0", "@testing-library/react": "14.3.1", "@types/jest": "25.2.3", "@types/prop-types": "15.7.15", "@types/react-modal": "3.16.3", "babel-core": "7.0.0-bridge.0", "babel-loader": "9.2.1", "babel-plugin-react-intl": "3.5.1", "buffer": "6.0.3", "cheerio": "1.2.0", "cross-env": "7.0.3", "eslint": "9.39.3", "eslint-config-scratch": "13.0.0", "eslint-import-resolver-typescript": "4.4.4", "eslint-plugin-import-x": "4.16.1", "eslint-plugin-react": "7.37.5", "file-loader": "6.2.0", "gh-pages": "3.2.3", "html-webpack-plugin": "5.6.6", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jest-junit": "7.0.0", "mkdirp": "1.0.4", "raf": "3.4.1", "react-test-renderer": "18.3.1", "redux-mock-store": "1.5.5", "rimraf": "2.7.1", "scratch-semantic-release-config": "4.0.1", "scratch-webpack-configuration": "3.1.2", "selenium-webdriver": "3.6.0", "semantic-release": "25.0.3", "stream-browserify": "3.0.0", "ts-jest": "29.4.6", "ts-loader": "9.5.4", "url-loader": "4.1.1", "web-audio-test-api": "0.5.2", "webpack": "5.105.3", "webpack-cli": "5.1.4", "webpack-dev-server": "5.2.3", "yauzl": "3.2.0" }, "peerDependencies": { "react": "^18.0.0", "react-dom": "^18.0.0", "react-redux": "^8.0.0", "redux": "^4.0.0" } }