{ "name": "cncjs", "version": "1.9.22", "description": "A web-based interface for CNC milling controller running Grbl, Marlin, Smoothieware, or TinyG", "homepage": "https://github.com/cncjs/cncjs", "author": "Cheton Wu ", "main": "./dist/cncjs/server-cli.js", "bin": { "cncjs": "./bin/cncjs", "cnc": "./bin/cnc" }, "files": [ "bin", "dist", "static" ], "repository": { "type": "git", "url": "git@github.com:cncjs/cncjs.git" }, "license": "MIT", "engines": { "node": ">=6" }, "preferGlobal": true, "scripts": { "prebuild-latest": "npm run package-sync && bash scripts/prebuild-latest.sh", "prebuild-dev": "npm run package-sync && bash scripts/prebuild-dev.sh", "prebuild-prod": "npm run package-sync && bash scripts/prebuild-prod.sh", "build": "npm run build-prod", "build-latest": "concurrently --names \"build-app-prod,build-server-prod\" \"npm run build-app-prod\" \"npm run build-server-prod\"", "build-dev": "concurrently --names \"build-app-dev,build-server-dev\" \"npm run build-app-dev\" \"npm run build-server-dev\"", "build-prod": "concurrently --names \"build-app-prod,build-server-prod\" \"npm run build-app-prod\" \"npm run build-server-prod\"", "postbuild-latest": "bash scripts/postbuild-latest.sh", "postbuild-dev": "bash scripts/postbuild-dev.sh", "postbuild-prod": "bash scripts/postbuild-prod.sh", "build-app-i18n": "i18next-scanner --config i18next-scanner.app.config.js \"src/app/**/*.{html,js,jsx}\" \"!src/app/i18n/**\" \"!**/node_modules/**\"", "build-app-dev": "cross-env NODE_ENV=development webpack-cli --config webpack.config.development.js && npm run build-app-i18n", "build-app-prod": "cross-env NODE_ENV=production webpack-cli --config webpack.config.production.js && npm run build-app-i18n", "build-server-i18n": "i18next-scanner --config i18next-scanner.server.config.js \"src/server/**/*.{html,js,jsx}\" \"!src/server/i18n/**\" \"!**/node_modules/**\"", "build-server-dev": "babel -d output/cncjs/server src/server && npm run build-server-i18n", "build-server-prod": "babel -d dist/cncjs/server src/server && npm run build-server-i18n", "clean": "del dist output yarn.lock package-lock.json", "electron": "electron", "electron-builder": "electron-builder", "electron-builder:debug": "cross-env DEBUG=electron-builder electron-builder", "electron-rebuild": "electron-rebuild", "github-release": "github-release", "package-sync": "node scripts/package-sync.js", "build:macos-x64": "bash -c 'scripts/electron-builder.sh --macos --x64'", "build:linux-ia32": "bash -c 'scripts/electron-builder.sh --linux --ia32'", "build:linux-x64": "bash -c 'scripts/electron-builder.sh --linux --x64'", "build:linux-armv7l": "bash -c 'scripts/electron-builder.sh --linux --armv7l'", "build:linux-arm64": "bash -c 'scripts/electron-builder.sh --linux --arm64'", "build:windows-ia32": "bash -c 'scripts/electron-builder.sh --windows --ia32'", "build:windows-x64": "bash -c 'scripts/electron-builder.sh --windows --x64'", "start-electron": "electron ./dist/cncjs/main", "start-prod": "npm run build-prod && NODE_ENV=production ./bin/cncjs", "dev": "npm run build-dev && concurrently --names \"start-app-dev,start-server-dev\" \"npm run start-app-dev\" \"npm run start-server-dev\"", "start-app-dev": "cross-env NODE_ENV=development webpack serve --config webpack.config.development.js --inline --content-base output/cncjs/app", "start-server-dev": "cross-env NODE_ENV=development ./bin/cncjs --port 8000 -m /widget:https://cncjs.github.io/cncjs-widget-boilerplate/v1/", "lint": "concurrently --kill-others-on-fail --names \"i18nlint,eslint,stylint\" \"npm run i18nlint\" \"npm run eslint\" \"npm run stylint\"", "eslint": "eslint --color --ext .js --ext .jsx *.js src scripts test", "eslint-debug": "DEBUG=\"eslint:glob-util,eslint:config-*,eslint:cli*\" eslint --cache --color --quiet --ext .js --ext .jsx *.js src scripts test", "i18nlint": "bash -c 'find src/{app,server}/i18n -type f -name \"*.json\" | xargs -L1 -I{} -- bash -c \"echo Linting {}; jsonlint -q {}\"'", "stylint": "stylint src/app", "test": "tap test/*.js --no-timeout --node-arg=--require --node-arg=@babel/register --node-arg=--require --node-arg=@babel/polyfill", "coveralls": "tap test/*.js --coverage --coverage-report=text-lcov --nyc-arg=--require --nyc-arg=@babel/register --nyc-arg=--require --nyc-arg=@babel/polyfill", "postinstall": "opencollective postinstall" }, "build": { "appId": "org.cncjs", "asar": false, "asarUnpack": [], "productName": "CNCjs", "directories": { "buildResources": "electron-build", "output": "output", "app": "dist/cncjs" }, "publish": [], "mac": { "category": "public.app-category.productivity", "target": [ "dmg" ], "icon": "electron-build/icon.icns" }, "dmg": { "background": "electron-build/background.png", "icon": "electron-build/icon.icns", "iconSize": 80, "iconTextSize": 12, "contents": [ { "x": 448, "y": 344, "type": "link", "path": "/Applications" }, { "x": 192, "y": 344, "type": "file" } ] }, "win": { "target": [ "nsis" ], "icon": "electron-build/icon.ico" }, "linux": { "category": "Utility", "target": [ "AppImage", "deb", "rpm" ] } }, "keywords": [ "cncjs", "arduino", "raspberry", "pi", "cnc", "gcode", "grbl", "smoothie", "smoothieware", "tinyg", "g2core", "react", "socket.io" ], "dependencies": { "@babel/polyfill": "~7.4.3", "@babel/runtime": "~7.4.3", "@trendmicro/react-anchor": "~0.5.6", "@trendmicro/react-breadcrumbs": "~0.5.5", "@trendmicro/react-buttons": "~1.3.1", "@trendmicro/react-checkbox": "~3.4.1", "@trendmicro/react-datepicker": "~1.0.0-alpha.6", "@trendmicro/react-dropdown": "~1.3.0", "@trendmicro/react-form-control": "~0.1.0", "@trendmicro/react-grid-system": "~0.2.0", "@trendmicro/react-iframe": "~0.3.1", "@trendmicro/react-interpolate": "~0.5.5", "@trendmicro/react-loader": "~0.6.1", "@trendmicro/react-modal": "~2.2.2", "@trendmicro/react-navs": "~0.11.6", "@trendmicro/react-notifications": "~1.0.1", "@trendmicro/react-paginations": "~0.6.1", "@trendmicro/react-popover": "~0.4.0", "@trendmicro/react-portal": "~0.4.3", "@trendmicro/react-radio": "~3.2.2", "@trendmicro/react-table": "~1.0.1-alpha.2", "@trendmicro/react-toggle-switch": "~0.5.7", "@trendmicro/react-tooltip": "~0.6.0", "@trendmicro/react-validation": "~0.1.0", "bcrypt-nodejs": "0.0.3", "body-parser": "~1.18.3", "bootstrap": "~3.3.7", "chained-function": "~0.5.0", "chalk": "~2.4.2", "classnames": "~2.2.6", "cli-color": "~1.4.0", "cncjs-controller": "~1.3.0", "colornames": "~1.1.1", "commander": "~2.20.0", "compression": "~1.7.4", "connect-multiparty": "~2.2.0", "connect-restreamer": "~1.0.3", "consolidate": "~0.15.1", "cookie-parser": "~1.4.4", "debug": "~4.1.1", "deep-keys": "~0.5.0", "detect-browser": "~4.4.0", "electron-store": "~3.2.0", "ensure-array": "~1.0.0", "errorhandler": "~1.5.0", "es5-shim": "~4.5.13", "escodegen": "~1.11.1", "esprima": "~4.0.1", "expand-tilde": "~2.0.2", "expr-eval": "~1.2.2", "express": "~4.16.4", "express-jwt": "~5.3.1", "express-session": "~1.16.1", "final-form": "~4.12.0", "font-awesome": "~4.7.0", "frac": "~1.1.2", "gcode-interpreter": "~2.1.0", "gcode-parser": "~1.3.6", "gcode-toolpath": "~2.2.0", "history": "~4.9.0", "hogan.js": "~3.0.2", "http-proxy": "~1.18.1", "i18next": "~15.0.9", "i18next-browser-languagedetector": "~3.0.1", "i18next-express-middleware": "~1.8.0", "i18next-node-fs-backend": "~2.1.3", "i18next-xhr-backend": "~2.0.1", "infinite-tree": "~1.16.2", "is-electron": "~2.2.0", "jimp": "^0.10.3", "js-polyfills": "~0.1.42", "jsonwebtoken": "~8.5.1", "jsuri": "~1.3.1", "keycode": "~2.2.0", "lodash": "~4.17.11", "memoize-one": "~5.0.4", "method-override": "~3.0.0", "minimatch": "~3.0.4", "mkdirp": "~0.5.1", "moment": "~2.24.0", "morgan": "~1.9.1", "mousetrap": "~1.6.3", "namespace-constants": "~0.5.0", "normalize.css": "~8.0.1", "opencollective": "~1.0.3", "perfect-scrollbar": "~1.4.0", "prop-types": "~15.7.2", "pubsub-js": "~1.7.0", "push.js": "~1.0.9", "qs": "~6.7.0", "range_check": "~1.4.0", "rc-slider": "~8.6.9", "react": "~15.6.2", "react-bootstrap": "~0.32.1", "react-dom": "~15.6.2", "react-dropzone": "~4.2.13", "react-facebook-loading": "~0.6.2", "react-final-form": "~3.7.0", "react-foreach": "~0.1.1", "react-ga": "~2.5.7", "react-i18next": "~10.7.0", "react-icon-base": "~2.1.2", "react-infinite-tree": "~0.7.1", "react-redux": "~5.0.7", "react-repeatable": "~1.1.1", "react-router": "~4.3.1", "react-router-dom": "~4.3.1", "react-router-redux": "~5.0.0-alpha.6", "react-select": "~1.2.1", "react-sortablejs": "~1.5.1", "react-tiny-virtual-list": "~2.2.0", "react-toggle": "~4.0.2", "recompose": "~0.30.0", "redux": "~4.0.1", "registry-auth-token": "~3.4.0", "registry-url": "~5.1.0", "rimraf": "~2.6.3", "semver": "~6.0.0", "serialport": "~9.0.7", "serve-favicon": "~2.5.0", "serve-static": "~1.13.2", "session-file-store": "~1.2.0", "sha1": "~1.1.1", "shortid": "~2.2.14", "socket.io": "~2.2.0", "socket.io-client": "~2.2.0", "socketio-jwt": "~4.5.0", "sortablejs": "~1.9.0", "spawn-default-shell": "~2.0.0", "styled-components": "~3.4.9", "superagent": "~3.8.3", "superagent-use": "~0.1.0", "three": "~0.103.0", "universal-logger": "~1.0.1", "universal-logger-browser": "~1.0.2", "uuid": "~3.3.2", "watch": "~1.0.2", "webappengine": "~1.2.0", "winston": "~3.2.1", "xterm": "~3.0.2" }, "devDependencies": { "@babel/cli": "~7.4.3", "@babel/core": "~7.4.3", "@babel/node": "~7.2.2", "@babel/polyfill": "~7.4.3", "@babel/preset-env": "~7.4.3", "@babel/preset-react": "~7.0.0", "@babel/register": "~7.4.0", "@trendmicro/babel-config": "~1.0.0-alpha", "babel-core": "~7.0.0-bridge.0", "babel-eslint": "~10.0.1", "babel-loader": "~8.0.5", "babel-plugin-lodash": "~3.3.4", "boolean": "~1.0.0", "bundle-loader": "~0.5.6", "concurrently": "~4.1.0", "coveralls": "~3.0.3", "cross-env": "~5.2.0", "css-loader": "~2.1.1", "css-split-webpack-plugin": "~0.2.6", "del-cli": "~3.0.1", "dotenv": "~7.0.0", "electron": "~4.2.12", "electron-builder": "~22.4.0", "electron-rebuild": "~1.10.0", "eslint": "~5.16.0", "eslint-config-trendmicro": "~1.4.1", "eslint-import-resolver-webpack": "~0.11.1", "eslint-loader": "~2.1.2", "eslint-plugin-import": "~2.17.2", "eslint-plugin-jsx-a11y": "~6.2.1", "eslint-plugin-react": "~7.12.4", "eventsource-polyfill": "~0.9.6", "file-loader": "~3.0.1", "find-imports": "~1.1.0", "github-release-cli": "~2.0.0", "glob": "~7.1.3", "html-webpack-plugin": "~3.2.0", "i18next-scanner": "~2.10.1", "imports-loader": "~0.8.0", "json-loader": "~0.5.7", "jsonlint": "^1.6.3", "mini-css-extract-plugin": "~0.6.0", "nib": "~1.1.2", "optimize-css-assets-webpack-plugin": "~5.0.1", "pre-push": "~0.1.1", "progress": "~2.0.3", "react-hot-loader": "~4.8.4", "redux-devtools": "~3.5.0", "run-sequence": "~2.2.1", "style-loader": "~0.23.1", "stylint": "~1.5.9", "stylint-loader": "~1.0.0", "stylus": "~0.54.5", "stylus-loader": "~3.0.2", "tap": "~12.6.2", "terser-webpack-plugin": "~1.2.3", "text-table": "~0.2.0", "transform-loader": "~0.2.4", "url-loader": "~1.1.2", "webpack": "~4.30.0", "webpack-cli": "~3.3.1", "webpack-dev-middleware": "~3.6.2", "webpack-dev-server": "~3.3.1", "webpack-hot-middleware": "~2.24.3", "webpack-manifest-plugin": "~2.0.4", "webpack-node-externals": "~1.7.2", "write-file-webpack-plugin": "~4.5.0" }, "pre-push": [ "eslint:debug" ], "collective": { "type": "opencollective", "url": "https://opencollective.com/cncjs" }, "tap": { "check-coverage": true, "lines": 80, "functions": 60, "branches": 60, "statements": 80 } }