{
  "name": "decoda",
  "private": true,
  "description": "Aplicação educacional desenvolvida para ensino de programação básica e letramento digital",
  "version": "1.2.0",
  "main": "main.cjs",
  "homepage": "./",
  "type": "module",
  "keywords": [
    "decoda",
    "blockly",
    "education",
    "programming",
    "react",
    "maze",
    "programação",
    "visual-programming",
    "educational-game"
  ],
  "scripts": {
    "dev": "concurrently -k -n APP \"pnpm run dev:app\"",
    "dev:app": "pnpm run build:letramento-assets && pnpm run build:letramento-css && vite",
    "build:letramento-assets": "rm -f src/atividades/letramento/shared/lucide.js && cpr node_modules/lucide/dist/umd/lucide.js src/atividades/letramento/shared/lucide.js",
    "build:letramento-css": "tailwindcss -c tailwind.letramento.config.js -i src/atividades/letramento/shared/tailwind-input.css -o src/atividades/letramento/shared/letramento.css",
    "build": "pnpm run build:letramento-assets && pnpm run build:letramento-css && vite build",
    "build:offline": "pnpm run build:letramento-assets && pnpm run build:letramento-css && vite build --mode offline",
    "test": "vitest",
    "test:ui": "vitest --ui",
    "coverage": "vitest run --coverage",
    "test:cache": "node scripts/test-cache.mjs",
    "lint": "eslint .",
    "preview": "vite preview",
    "preview:prod": "pnpm run build && serve dist -l 3000",
    "electron:dev": "electron .",
    "electron:build": "pnpm run build:offline && electron-builder"
  },
  "build": { 
    "appId": "com.plataformaedu.decoda",
    "productName": "Decoda",
    "icon": "assets/icon.png",
    "files": [
      "dist/**/*",
      "main.cjs",  
      "package.json"
    ],
    "directories": {
      "buildResources": "assets"
    },
    "win": {
      "target": "dir",
      "icon": "assets/icon.png"
    },
    "mac": {
      "target": "dir",
      "icon": "assets/icon.png"
    },
    "linux": {
      "target": "dir",
      "icon": "assets/icon.png"
    }
  },
  "dependencies": {
    "@blockly/field-angle": "^6.0.3",
    "@blockly/theme-modern": "^7.0.1",
    "@codemirror/autocomplete": "6.20.1",
    "@codemirror/commands": "6.10.3",
    "@codemirror/lang-javascript": "6.2.5",
    "@codemirror/language": "6.12.3",
    "@codemirror/state": "6.6.0",
    "@codemirror/view": "6.41.0",
    "@fortawesome/fontawesome-free": "^6.5.2",
    "@tsparticles/confetti": "^3.9.1",
    "@uiw/react-codemirror": "4.25.9",
    "acorn": "^8.15.0",
    "blockly": "^12.3.1",
    "js-interpreter": "^6.0.1",
    "lodash.debounce": "^4.0.8",
    "lucide": "^0.546.0",
    "lucide-react": "^0.546.0",
    "phaser": "^3.90.0",
    "phaser3-rex-plugins": "^1.80.16",
    "prop-types": "^15.8.1",
    "react": "^19.2.0",
    "react-confetti": "^6.4.0",
    "react-dom": "^19.2.0",
    "react-resizable-panels": "^3.0.6",
    "react-router-dom": "^7.9.4",
    "react-shepherd": "^6.1.9",
    "sentiment": "^5.0.2",
    "shepherd.js": "^14.5.1",
    "svgo": "^4.0.0"
  },
  "devDependencies": {
    "@eslint/js": "^9.38.0",
    "@tailwindcss/typography": "^0.5.19",
    "@testing-library/jest-dom": "^6.9.1",
    "@testing-library/react": "^16.3.1",
    "@testing-library/user-event": "^14.6.1",
    "@types/react": "^19.2.2",
    "@types/react-dom": "^19.2.2",
    "@vitejs/plugin-react": "^5.0.4",
    "@vitest/coverage-v8": "^4.0.18",
    "@vitest/ui": "4.0.16",
    "autoprefixer": "^10.4.21",
    "baseline-browser-mapping": "^2.9.11",
    "concurrently": "^9.2.1",
    "cpr": "^3.0.1",
    "electron": "^42.0.1",
    "electron-builder": "^26.8.1",
    "electron-is-dev": "^3.0.1",
    "eslint": "^9.38.0",
    "eslint-plugin-react-hooks": "^7.0.0",
    "eslint-plugin-react-refresh": "^0.4.24",
    "fs-extra": "^11.3.4",
    "globals": "^16.4.0",
    "jsdom": "^27.4.0",
    "postcss": "^8.5.6",
    "prettier": "^3.8.1",
    "rollup-plugin-visualizer": "^6.0.5",
    "serve": "^14.2.5",
    "sharp": "^0.34.4",
    "tailwindcss": "^3.4.18",
    "vite": "^7.1.10",
    "vite-plugin-image-optimizer": "^2.0.2",
    "vite-plugin-pwa": "^0.20.1",
    "vitest": "^4.0.16"
  }
}
