{ "name": "p5.js-web-editor", "version": "1.0.7", "description": "The web editor for p5.js.", "scripts": { "clean": "rimraf dist", "start": "cross-env BABEL_DISABLE_CACHE=1 NODE_ENV=development nodemon index.js", "start:prod": "cross-env NODE_ENV=production node index.js", "lint": "eslint client server --ext .jsx --ext .js", "lint-fix": "eslint client server --ext .jsx --ext .js --fix", "build": "npm run build:client && npm run build:server && npm run build:examples", "build:client": "cross-env NODE_ENV=production webpack --config webpack/config.prod.js", "build:server": "cross-env NODE_ENV=production webpack --config webpack/config.server.js", "build:examples": "cross-env NODE_ENV=production webpack --config webpack/config.examples.js", "test": "jest", "test:ci": "npm run lint && npm run test", "fetch-examples": "cross-env NODE_ENV=development node ./server/scripts/fetch-examples.js", "fetch-examples-gg": "cross-env NODE_ENV=development node ./server/scripts/fetch-examples-gg.js", "fetch-examples-ml5": "cross-env NODE_ENV=development node ./server/scripts/fetch-examples-ml5.js", "fetch-examples:prod": "cross-env NODE_ENV=production node ./dist/fetch-examples.bundle.js", "fetch-examples-gg:prod": "cross-env NODE_ENV=production node ./dist/fetch-examples-gg.bundle.js", "fetch-examples-ml5:prod": "cross-env NODE_ENV=production node ./dist/fetch-examples-ml5.bundle.js", "update-syntax-highlighting": "node ./server/scripts/update-syntax-highlighting.js", "heroku-postbuild": "touch .env; npm run build", "storybook": "start-storybook -p 6006", "build-storybook": "build-storybook" }, "husky": { "hooks": { "pre-commit": "lint-staged" } }, "lint-staged": { "*.{js,jsx}": [ "npm run lint-fix" ] }, "jest": { "projects": [ { "displayName": "server", "testEnvironment": "node", "setupFilesAfterEnv": [ "/server/jest.setup.js" ], "testMatch": [ "/server/**/*.test.(js|jsx)" ] }, { "displayName": "client", "setupFilesAfterEnv": [ "/client/jest.setup.js" ], "moduleNameMapper": { "^.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "/client/__test__/mocks/fileMock.js" }, "testMatch": [ "/client/**/*.test.(js|jsx)" ] } ] }, "main": "index.js", "author": "Cassie Tarakajian", "license": "LGPL-2.1", "repository": { "type": "git", "url": "git+https://github.com/catarak/p5.js-web-editor.git" }, "devDependencies": { "@babel/plugin-proposal-class-properties": "^7.8.3", "@babel/plugin-proposal-decorators": "^7.8.3", "@babel/plugin-proposal-do-expressions": "^7.8.3", "@babel/plugin-proposal-export-default-from": "^7.8.3", "@babel/plugin-proposal-export-namespace-from": "^7.8.3", "@babel/plugin-proposal-function-bind": "^7.8.3", "@babel/plugin-proposal-function-sent": "^7.8.3", "@babel/plugin-proposal-json-strings": "^7.8.3", "@babel/plugin-proposal-logical-assignment-operators": "^7.8.3", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-proposal-numeric-separator": "^7.8.3", "@babel/plugin-proposal-optional-chaining": "^7.8.3", "@babel/plugin-proposal-pipeline-operator": "^7.8.3", "@babel/plugin-proposal-throw-expressions": "^7.8.3", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-import-meta": "^7.8.3", "@babel/plugin-transform-react-constant-elements": "^7.8.3", "@babel/plugin-transform-react-inline-elements": "^7.8.3", "@babel/preset-env": "^7.8.4", "@babel/preset-react": "^7.8.3", "@storybook/addon-actions": "^5.3.6", "@storybook/addon-docs": "^5.3.6", "@storybook/addon-knobs": "^5.3.6", "@storybook/addon-links": "^5.3.6", "@storybook/addons": "^5.3.6", "@storybook/react": "^5.3.6", "@svgr/webpack": "^5.4.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.2.1", "babel-core": "^7.0.0-bridge.0", "babel-eslint": "^9.0.0", "babel-loader": "^8.0.0", "babel-plugin-transform-react-remove-prop-types": "^0.2.12", "css-loader": "^3.4.2", "cssnano": "^4.1.10", "eslint": "^4.19.1", "eslint-config-airbnb": "^16.1.0", "eslint-plugin-import": "^2.20.2", "eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-react": "^7.18.3", "file-loader": "^2.0.0", "husky": "^4.2.5", "jest": "^26.0.1", "lint-staged": "^10.1.3", "mini-css-extract-plugin": "^0.8.2", "node-sass": "^4.14.1", "nodemon": "^1.19.4", "optimize-css-assets-webpack-plugin": "^5.0.3", "postcss-cssnext": "^3.1.0", "postcss-focus": "^4.0.0", "postcss-loader": "^3.0.0", "postcss-reporter": "^6.0.1", "react-test-renderer": "^16.12.0", "rimraf": "^2.7.1", "sass-loader": "^6.0.7", "storybook-addon-theme-playground": "^1.2.0", "style-loader": "^1.1.3", "terser-webpack-plugin": "^1.4.3", "webpack-cli": "^3.3.11", "webpack-manifest-plugin": "^2.2.0", "webpack-node-externals": "^1.7.2" }, "engines": { "node": "12.16.1", "npm": "6.13.4" }, "dependencies": { "@auth0/s3": "^1.0.0", "@babel/core": "^7.8.4", "@babel/polyfill": "^7.8.3", "@babel/register": "^7.8.3", "archiver": "^1.1.0", "async": "^2.6.3", "axios": "^0.18.1", "babel-plugin-styled-components": "^1.10.6", "bcrypt-nodejs": "0.0.3", "blob-util": "^1.2.1", "body-parser": "^1.18.3", "bson-objectid": "^1.3.0", "classnames": "^2.2.6", "clipboard": "^1.7.1", "codemirror": "^5.52.0", "connect-mongo": "^1.3.2", "console-feed": "^2.8.11", "cookie-parser": "^1.4.3", "copy-webpack-plugin": "^6.0.3", "cors": "^2.8.5", "cross-env": "^5.2.1", "csslint": "^1.0.5", "date-fns": "^1.30.1", "decomment": "^0.8.7", "dotenv": "^2.0.0", "dropzone": "^4.3.0", "escape-string-regexp": "^1.0.5", "eslint-loader": "^2.2.1", "express": "^4.17.1", "express-basic-auth": "^1.2.0", "express-session": "^1.17.0", "friendly-words": "^1.1.10", "htmlhint": "^0.10.1", "i18next": "^19.4.5", "i18next-browser-languagedetector": "^4.2.0", "i18next-http-backend": "^1.0.15", "is-url": "^1.2.4", "jest-express": "^1.11.0", "js-beautify": "^1.10.3", "jsdom": "^9.8.3", "jshint": "^2.11.0", "lodash": "^4.17.19", "loop-protect": "github:catarak/loop-protect", "mime-types": "^2.1.26", "mjml": "^3.3.2", "mockingoose": "^2.13.2", "mongoose": "^5.9.2", "node-uuid": "^1.4.7", "nodemailer": "^2.6.4", "nodemailer-mailgun-transport": "^1.4.0", "passport": "^0.3.2", "passport-github": "^1.1.0", "passport-google-oauth20": "^1.0.0", "passport-http": "^0.3.0", "passport-local": "^1.0.0", "pretty-bytes": "^3.0.1", "primer-tooltips": "^1.5.11", "prop-types": "^15.6.2", "q": "^1.4.1", "react": "^16.12.0", "react-dom": "^16.12.0", "react-helmet": "^5.1.3", "react-hot-loader": "^4.12.19", "react-i18next": "^11.5.0", "react-redux": "^7.2.0", "react-responsive": "^8.1.0", "react-router": "^3.2.5", "react-split-pane": "^0.1.89", "react-tabs": "^2.3.1", "redux": "^3.7.2", "redux-auth-wrapper": "^2.1.0", "redux-devtools": "^3.4.2", "redux-devtools-dock-monitor": "^1.1.3", "redux-devtools-log-monitor": "^1.4.0", "redux-form": "^5.3.3", "redux-thunk": "^2.3.0", "request": "^2.88.2", "request-promise": "^4.2.5", "reselect": "^4.0.0", "s3-policy-v4": "0.0.3", "sass-extract": "^2.1.0", "sass-extract-js": "^0.4.0", "sass-extract-loader": "^1.1.0", "shortid": "^2.2.15", "sinon": "^7.5.0", "sinon-mongoose": "^2.3.0", "slugify": "^1.3.6", "srcdoc-polyfill": "^0.2.0", "styled-components": "^5.0.0", "styled-theming": "^2.2.0", "url": "^0.11.0", "webpack": "^4.41.6", "webpack-dev-middleware": "^2.0.6", "webpack-hot-middleware": "^2.24.3", "xhr": "^2.5.0" } }