{
  "name": "@superdangerous/app-framework",
  "version": "4.17.18",
  "description": "Opinionated TypeScript framework for vibecoding enterprise web and desktop apps — 20+ UI components, WebSocket, Electron, and production services pre-wired",
  "type": "module",
  "main": "dist/index.js",
  "types": "dist/index.d.ts",
  "bin": {
    "app-framework": "dist/cli/index.js",
    "framework": "dist/cli/index.js",
    "dev-server": "dist/cli/dev-server.js"
  },
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.js"
    },
    "./core": {
      "types": "./dist/core/index.d.ts",
      "import": "./dist/core/index.js"
    },
    "./services": {
      "types": "./dist/services/index.d.ts",
      "import": "./dist/services/index.js"
    },
    "./middleware": {
      "types": "./dist/middleware/index.d.ts",
      "import": "./dist/middleware/index.js"
    },
    "./utils": {
      "types": "./dist/utils/index.d.ts",
      "import": "./dist/utils/index.js"
    },
    "./desktop": {
      "types": "./dist/desktop/index.d.ts",
      "import": "./dist/desktop/index.js"
    },
    "./ui": {
      "types": "./ui/dist/index.d.ts",
      "import": "./ui/dist/index.mjs",
      "require": "./ui/dist/index.js"
    },
    "./data-table": {
      "types": "./ui/dist/data-table.d.ts",
      "import": "./ui/dist/data-table.mjs",
      "require": "./ui/dist/data-table.js"
    },
    "./ui/utils": {
      "types": "./dist/ui/utils/index.d.ts",
      "import": "./dist/ui/utils/index.js"
    },
    "./styles/globals.css": "./ui/src/styles/globals.css"
  },
  "scripts": {
    "build": "tsc",
    "build:ui": "cd ui && npm ci --include=dev && npm run build",
    "build:all": "npm run build && npm run build:ui",
    "build:watch": "tsc --watch",
    "clean": "rm -rf dist",
    "prebuild": "npm run clean",
    "postbuild": "node ./scripts/postbuild-ensure-cli-executables.cjs",
    "prepack": "npm run build:all",
    "test": "npm run test:unit && npm run test:integration && npm run test:ui",
    "test:unit": "vitest run --config vitest.config.ts tests/unit",
    "test:integration": "vitest run --config tests/vitest.integration.config.ts tests/integration",
    "test:ui": "npm --prefix ui test -- --runInBand",
    "test:watch": "vitest",
    "test:coverage": "vitest run --config vitest.config.ts --coverage",
    "test:security": "npm audit --audit-level moderate",
    "security:deps": "npm audit fix --audit-level moderate --dry-run",
    "benchmark": "node benchmarks/index.js",
    "docs:api": "typedoc --out docs/api src/index.ts",
    "docs:build": "echo 'Documentation site build not yet configured'",
    "lint": "eslint src/ --ext .ts",
    "lint:fix": "eslint src/ --ext .ts --fix",
    "format": "prettier --write 'src/**/*.ts' '*.md'",
    "format:check": "prettier --check 'src/**/*.ts' '*.md'",
    "typecheck": "tsc --noEmit",
    "prepare": "npm run build:all"
  },
  "keywords": [
    "framework",
    "typescript",
    "nodejs",
    "industrial",
    "iot",
    "device-simulation",
    "logging",
    "configuration",
    "websockets"
  ],
  "author": "SuperDangerous",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/SuperDangerous/app-framework.git"
  },
  "dependencies": {
    "boxen": "^8.0.1",
    "chalk": "^5.5.0",
    "cmdk": "^1.1.1",
    "commander": "^12.1.0",
    "cors": "^2.8.5",
    "dotenv": "^17.2.1",
    "esbuild": "^0.25.9",
    "express": "^4.21.2",
    "express-session": "^1.18.2",
    "lowdb": "^7.0.1",
    "multer": "^2.0.2",
    "nodemailer": "^7.0.12",
    "openai": "^5.13.1",
    "papaparse": "^5.5.3",
    "resend": "^6.7.0",
    "sharp": "^0.34.3",
    "socket.io": "^4.8.1",
    "swagger-jsdoc": "^6.2.8",
    "swagger-ui-express": "^5.0.1",
    "unzipper": "^0.12.3",
    "winston": "^3.17.0",
    "winston-daily-rotate-file": "^5.0.0",
    "zod": "^3.23.8"
  },
  "devDependencies": {
    "@types/boxen": "^2.1.0",
    "@types/cors": "^2.8.17",
    "@types/express": "^4.17.23",
    "@types/express-session": "^1.18.2",
    "@types/fs-extra": "^11.0.4",
    "@types/multer": "^2.0.0",
    "@types/node": "^20.10.0",
    "@types/nodemailer": "^7.0.9",
    "@types/supertest": "^6.0.3",
    "@types/swagger-jsdoc": "^6.0.4",
    "@types/swagger-ui-express": "^4.1.8",
    "@types/ws": "^8.18.1",
    "@typescript-eslint/eslint-plugin": "^8.18.2",
    "@typescript-eslint/parser": "^8.18.2",
    "@vitest/coverage-v8": "^4.0.13",
    "eslint": "^9.32.0",
    "globals": "^16.3.0",
    "npm-run-all": "^4.1.5",
    "prettier": "^3.5.1",
    "react": "^18.3.1",
    "react-dom": "^18.3.1",
    "react-router-dom": "^7.13.0",
    "socket.io-client": "^4.8.1",
    "supertest": "^7.1.4",
    "tsx": "^4.20.4",
    "typedoc": "^0.28.12",
    "typescript": "^5.7.2",
    "vitest": "^4.0.13"
  },
  "engines": {
    "node": ">=18.0.0"
  },
  "files": [
    "dist/",
    "src/",
    "ui/dist/",
    "ui/src/styles/",
    "README.md",
    "LICENSE"
  ]
}
