{
    "name": "@flowfuse/flowfuse",
    "version": "2.32.1",
    "description": "An open source low-code development platform",
    "homepage": "https://flowfuse.com",
    "bugs": {
        "url": "https://github.com/FlowFuse/flowfuse/issues"
    },
    "repository": {
        "type": "git",
        "url": "git+https://github.com/FlowFuse/flowfuse.git"
    },
    "license": "SEE LICENSE IN ./LICENSE",
    "author": {
        "name": "FlowFuse Inc."
    },
    "bin": {
        "ff-install-stack": "./scripts/install-stack.js",
        "flowforge": "./forge/app.js",
        "flowfuse": "./forge/app.js"
    },
    "scripts": {
        "start": "node forge/app.js",
        "repl": "node forge/app.js --repl",
        "build": "webpack --mode=production -c ./config/webpack.config.js",
        "serve": "npm-run-all --parallel build-watch start-watch",
        "serve-repl": "npm-run-all --parallel build-watch start-watch-repl",
        "start-watch": "cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js",
        "start-watch-repl": "cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl",
        "build-watch": "webpack --mode=development -c ./config/webpack.config.js --watch",
        "lint": "npm-run-all --sequential lint:eslint lint:colors",
        "lint:eslint": "eslint forge frontend test",
        "lint:fix": "eslint forge frontend test --fix",
        "lint:colors": "node scripts/lint-colors.js",
        "test": "npm-run-all --sequential lint test:unit test:system",
        "test:unit": "npm-run-all --sequential test:unit:forge test:unit:frontend",
        "test:unit:forge": "mocha \"test/unit/forge/**/*_spec.js\" --timeout 10000 --node-option=unhandled-rejections=strict",
        "test:unit:frontend": "vitest run --config ./config/vitest.config.ts",
        "test:docs": "node test/e2e/docs/valid-links.js ./docs",
        "test:system": "mocha \"test/system/**/*_spec.js\" --timeout 10000 --node-option=unhandled-rejections=strict",
        "cy:web-server": "npm-run-all --parallel cy:web-server:os cy:web-server:ee",
        "cy:web-server:os": "node ./test/e2e/frontend/test_environment_os",
        "cy:web-server:ee": "node ./test/e2e/frontend/test_environment_ee",
        "cy:run": "npm-run-all --parallel cy:run:os cy:run:ee",
        "cy:run:os": "cypress run --config-file ./config/cypress-os.config.js",
        "cy:run:ee": "cypress run --config-file ./config/cypress-ee.config.js",
        "cy:open:os": "cypress open --config-file ./config/cypress-os.config.js",
        "cy:open:ee": "cypress open --config-file ./config/cypress-ee.config.js",
        "cover": "npm-run-all --sequential cover:unit cover:system cover:report",
        "cover:unit": "npm-run-all --sequential cover:unit:forge cover:unit:frontend",
        "cover:unit:forge": "nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json",
        "cover:unit:frontend": "vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json",
        "cover:system": "nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json",
        "cover:report": "nyc report --reporter=html --reporter=json -t \"./coverage/reports\"",
        "install-stack": "node scripts/install-stack.js --",
        "generate:types": "node scripts/dump-openapi.js && openapi-typescript openapi.json -o frontend/src/types/generated.ts --root-types --root-types-no-schema-prefix"
    },
    "dependencies": {
        "@aws-sdk/client-sesv2": "^3.916.0",
        "@aws-sdk/credential-provider-node": "^3.352.0",
        "@fastify/cookie": "^11.0.2",
        "@fastify/csrf-protection": "^8.0.0",
        "@fastify/formbody": "^8.0.2",
        "@fastify/helmet": "^13.0.2",
        "@fastify/multipart": "^10.0.0",
        "@fastify/passport": "^3.0.2",
        "@fastify/rate-limit": "^11.0.0",
        "@fastify/request-context": "^7.0.0",
        "@fastify/routes": "^6.0.2",
        "@fastify/static": "^10.1.0",
        "@fastify/swagger": "^9.6.1",
        "@fastify/swagger-ui": "^6.0.0",
        "@fastify/websocket": "^11.2.0",
        "@flowfuse/driver-localfs": "^2.32.1",
        "@flowfuse/flow-renderer": "^0.5.1",
        "@headlessui/vue": "1.7.23",
        "@heroicons/vue": "2.1.5",
        "@levminer/speakeasy": "^1.4.2",
        "@node-saml/passport-saml": "^5.0.0",
        "@redis/client": "^6.0.0",
        "@sentry/node": "^10.54.0",
        "@sentry/vue": "^10.54.0",
        "@sentry/webpack-plugin": "^3.6.1",
        "@vuepic/vue-datepicker": "^11.0.2",
        "axios": "^1.4.0",
        "bcrypt": "^6.0.0",
        "cronosjs": "^1.7.1",
        "diff": "^9.0.0",
        "dompurify": "^3.3.0",
        "dotenv": "^17.4.2",
        "echarts": "^6.1.0",
        "fastify": "^5.8.5",
        "fastify-metrics": "^13.2.0",
        "fastify-plugin": "^6.0.0",
        "google-auth-library": "^10.1.0",
        "handlebars": "^4.7.7",
        "hashids": "^2.3.0",
        "highlight.js": "^11.11.1",
        "jsonwebtoken": "^9.0.0",
        "ldapts": "^8.1.8",
        "lottie-web-vue": "^2.0.7",
        "lru-cache": "^11.1.0",
        "marked": "^18.0.5",
        "mqtt": "^5.1.1",
        "mqtt-match": "^3.0.0",
        "nodemailer": "^9.0.0",
        "pg": "^8.11.3",
        "pinia": "3.0.4",
        "pinia-plugin-persistedstate": "4.7.1",
        "pino": "^10.3.1",
        "pino-pretty": "^13.1.3",
        "posthog-node": "^5.33.2",
        "qrcode": "^1.5.3",
        "random-words": "~2.0.0",
        "semver": "~7.8.4",
        "sequelize": "^6.33.0",
        "sqlite3": "^6.0.1",
        "stripe": "^8.222.0",
        "tar-stream": "^3.1.7",
        "uuid": "^14.0.0",
        "validate-npm-package-name": "^7.0.2",
        "vue": "^3.4.5",
        "vue-echarts": "^8.0.1",
        "vue-router": "^4.2.5",
        "vue-shepherd": "^3.0.0",
        "vue3-google-login": "^2.0.33",
        "yaml": "^2.3.1",
        "zod": "^4.4.3",
        "zxcvbn": "^4.4.2"
    },
    "devDependencies": {
        "@babel/core": "^7.22.15",
        "@babel/preset-env": "^7.22.15",
        "@eslint/js": "^9.39.4",
        "@fastify/response-validation": "^3.0.3",
        "@pinia/testing": "1.0.3",
        "@tailwindcss/postcss": "^4.2.4",
        "@types/mqtt": "^2.5.0",
        "@typescript-eslint/eslint-plugin": "^8.58.0",
        "@typescript-eslint/parser": "^8.58.0",
        "@vitejs/plugin-vue": "^6.0.7",
        "@vitest/coverage-istanbul": "^4.1.9",
        "@vue/test-utils": "^2.4.3",
        "ajv": "^8.18.0",
        "autoprefixer": "^10.4.15",
        "babel-loader": "^10.1.1",
        "clean-webpack-plugin": "^4.0.0",
        "copy-webpack-plugin": "^14.0.0",
        "cross-env": "^10.1.0",
        "css-loader": "^7.1.2",
        "cypress": "^15.14.2",
        "cypress-mailpit": "^0.0.4",
        "dotenv-webpack": "^9.0.0",
        "eslint": "^9.39.4",
        "eslint-plugin-cypress": "^6.4.2",
        "eslint-plugin-import-x": "^4.17.1",
        "eslint-plugin-no-only-tests": "^3.4.0",
        "eslint-plugin-vue": "^10.9.2",
        "file-loader": "^6.2.0",
        "globals": "^17.7.0",
        "html-link-extractor": "^1.0.5",
        "html-webpack-plugin": "^5.5.3",
        "jsdom": "^29.1.1",
        "mini-css-extract-plugin": "^2.7.6",
        "mocha": "^11.7.5",
        "mocha-cli": "^1.0.1",
        "mockdate": "^3.0.5",
        "neostandard": "^0.13.0",
        "nodemon": "^3.0.1",
        "npm-run-all": "^4.1.5",
        "nyc": "^18.0.0",
        "openapi-typescript": "^7.13.0",
        "postcss": "^8.4.29",
        "postcss-loader": "^8.1.1",
        "promptly": "^3.2.0",
        "proxyquire": "^2.1.3",
        "sass": "^1.97.3",
        "sass-loader": "^16.0.2",
        "should": "^13.2.3",
        "should-sinon": "^0.0.6",
        "sinon": "^22.0.0",
        "style-loader": "^4.0.0",
        "tailwindcss": "^4.2.4",
        "ts-loader": "^9.5.7",
        "typescript": "^5.9.3",
        "vitest": "^4.1.9",
        "vue-eslint-parser": "^10.4.1",
        "vue-loader": "^17.4.2",
        "vue-tsc": "^3.2.6",
        "webpack": "^5.88.2",
        "webpack-cli": "^7.0.2",
        "webpack-dev-server": "^5.2.1",
        "ws": "^8.20.1"
    },
    "engines": {
        "node": ">=20.10.0"
    },
    "keywords": [
        "low-code-platform",
        "low-code-development",
        "low-code-development-platform",
        "visual-programming",
        "flow-based-programming",
        "no-code",
        "low-code",
        "node-red"
    ]
}
