{ "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" } }