{ "name": "frontend", "version": "1.0.0", "license": "MPL-2.0", "author": "Kaleidos INC Sucursal en EspaƱa SL", "private": true, "packageManager": "pnpm@11.5.3+sha512.7ac1c919341c213a34dc0d02afb7143c5c26ac26ee8c4782deea821b8ac64d2134a081fd8941dae6e29bbb48f58dfc2b7fbceeccc07cb2f09d219d342a4969ed", "browserslist": [ "defaults" ], "type": "module", "repository": { "type": "git", "url": "https://github.com/penpot/penpot" }, "scripts": { "build:app:assets": "node ./scripts/build-app-assets.js", "build:storybook": "pnpm run build:storybook:assets && pnpm run build:storybook:cljs && storybook build", "build:storybook:assets": "node ./scripts/build-storybook-assets.js", "build:storybook:cljs": "clojure -M:dev:shadow-cljs compile storybook", "build:wasm": "../render-wasm/build", "build:app:libs": "node ./scripts/build-libs.js", "build:app:main": "clojure -M:dev:shadow-cljs release main worker", "build:app:worker": "clojure -M:dev:shadow-cljs release worker", "build:app": "pnpm run clear:shadow-cache && pnpm run build:app:main && pnpm run build:app:libs", "check-fmt:clj": "cljfmt check --parallel=true src/ test/", "check-fmt:js": "prettier -c src/**/*.stories.jsx -c playwright/**/*.js -c scripts/**/*.js -c text-editor/**/*.js", "check-fmt:scss": "prettier -c resources/styles -c src/**/*.scss", "fmt:clj": "cljfmt fix --parallel=true src/ test/", "fmt:js": "prettier -c src/**/*.stories.jsx -c playwright/**/*.js -c scripts/**/*.js -c text-editor/**/*.js -w", "fmt:scss": "prettier -c resources/styles -c src/**/*.scss -w", "lint:clj": "clj-kondo --parallel --lint ../common/src src/", "lint:js": "exit 0", "lint:scss": "pnpm exec stylelint '{src,resources}/**/*.scss'", "build:test": "clojure -M:dev:shadow-cljs compile test", "test": "pnpm run build:wasm && pnpm run build:test && node target/tests/test.js", "test:storybook": "vitest run --project=storybook", "watch:test": "mkdir -p target/tests && concurrently \"clojure -M:dev:shadow-cljs watch test\" \"nodemon -C -d 2 -w target/tests --exec 'node target/tests/test.js'\"", "test:e2e": "playwright test --project default", "translations": "node ./scripts/translations.js", "watch:app:assets": "node ./scripts/watch.js", "watch:app:libs": "node ./scripts/build-libs.js --watch", "watch:app:main": "clojure -M:dev:shadow-cljs watch main worker storybook", "clear:shadow-cache": "rm -rf .shadow-cljs", "clear:wasm": "cargo clean --manifest-path ../render-wasm/Cargo.toml", "watch": "exit 0", "watch:app": "pnpm run clear:shadow-cache && pnpm run clear:wasm && pnpm run build:wasm && concurrently --kill-others-on-fail \"pnpm run watch:app:assets\" \"pnpm run watch:app:main\" \"pnpm run watch:app:libs\"", "watch:storybook": "pnpm run build:storybook:assets && concurrently --kill-others-on-fail \"storybook dev -p 6006 -h 0.0.0.0 --no-open\" \"node ./scripts/watch-storybook.js\"", "postinstall": "(cd ../plugins/libs/plugins-runtime; pnpm install; pnpm run build)" }, "devDependencies": { "@penpot/draft-js": "link:packages/draft-js", "@penpot/mousetrap": "link:packages/mousetrap", "@penpot/plugins-runtime": "link:../plugins/libs/plugins-runtime", "@penpot/svgo": "github:penpot/svgo#v3.2", "@penpot/text-editor": "link:text-editor", "@penpot/tokenscript": "link:packages/tokenscript", "@penpot/ui": "link:packages/ui", "@playwright/test": "1.60.0", "@storybook/addon-docs": "10.4.3", "@storybook/addon-themes": "10.4.3", "@storybook/addon-vitest": "10.4.3", "@storybook/react-vite": "10.4.3", "@tokens-studio/sd-transforms": "2.0.3", "@types/node": "^25.9.2", "@vitest/browser": "4.1.8", "@vitest/browser-playwright": "^4.1.8", "@vitest/coverage-v8": "4.1.8", "@zip.js/zip.js": "2.8.26", "autoprefixer": "^10.4.27", "compression": "^1.8.1", "concurrently": "^10.0.3", "date-fns": "^4.4.0", "esbuild": "^0.28.0", "eventsource-parser": "^3.1.0", "express": "^5.1.0", "fancy-log": "^2.0.0", "getopts": "^2.3.0", "gettext-parser": "^9.0.2", "highlight.js": "^11.10.0", "js-beautify": "^1.15.4", "jsdom": "^29.0.2", "lodash": "^4.18.1", "lodash.debounce": "^4.0.8", "map-stream": "0.0.7", "marked": "^18.0.5", "mkdirp": "^3.0.1", "mustache": "^4.2.0", "nodemon": "^3.1.14", "npm-run-all": "^4.1.5", "opentype.js": "^2.0.0", "p-limit": "^7.3.0", "playwright": "1.60.0", "postcss": "^8.5.15", "postcss-clean": "^1.2.2", "postcss-modules": "^6.0.1", "postcss-scss": "^4.0.9", "prettier": "3.8.4", "pretty-time": "^1.1.0", "prop-types": "^15.8.1", "randomcolor": "^0.6.2", "react": "19.2.7", "react-dom": "19.2.7", "react-error-boundary": "^6.1.2", "react-virtualized": "^9.22.6", "rimraf": "^6.1.3", "rxjs": "8.0.0-alpha.14", "sass": "^1.100.0", "sass-embedded": "^1.100.0", "sax": "^1.6.0", "scheduler": "^0.27.0", "source-map-support": "^0.5.21", "storybook": "10.4.3", "style-dictionary": "5.4.4", "stylelint": "^17.13.0", "stylelint-config-standard-scss": "^17.0.0", "stylelint-scss": "^7.2.0", "stylelint-use-logical-spec": "^5.0.1", "svg-sprite": "^2.0.4", "tdigest": "^0.1.2", "tinycolor2": "^1.6.0", "typescript": "^6.0.2", "ua-parser-js": "2.0.10", "vite": "^8.0.16", "vitest": "^4.1.8", "wait-on": "^9.0.4", "watcher": "^2.3.1", "workerpool": "^10.0.1", "xregexp": "^5.1.2" } }