mirror of
https://github.com/penpot/penpot.git
synced 2026-10-29 14:00:37 +00:00
Add prepared build artifacts, browser host and the build and purge commands for the CLJS renderer benchmarks. Each preparation attempt gets a build ID and a retained directory with its manifest, log, Node case catalog, browser bundle, renderer files and host page. Ready builds load their matching catalog in process and serve only their own directory through an owned loopback host. Own Chromium through a bounded process group, verify the compiled build identity before execution and retain failed preparations for diagnosis. Wire the diagnostic pilot to the same build, catalog, server and browser APIs. Add real boundary tests for artifacts, processes, servers, browsers and CLI parsing, and register them with the performance test runner. Rename the benchmark lint and test scripts to match the suite. AI-assisted-by: deepseek-flash
141 lines
6.3 KiB
JSON
141 lines
6.3 KiB
JSON
{
|
|
"name": "frontend",
|
|
"version": "1.0.0",
|
|
"license": "MPL-2.0",
|
|
"author": "Kaleidos INC Sucursal en España SL",
|
|
"private": true,
|
|
"packageManager": "pnpm@12.15.0+sha512.b3951d6d6ff4a9f13dc7cf56cd28d2b8eb37dbcc9c68e52e1e1191873ea9f82a017287ab50baadc5ccc494f036c67c0e47eb13608c2fa36f47711b61ea128e61",
|
|
"browserslist": [
|
|
"defaults"
|
|
],
|
|
"type": "module",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/penpot/penpot"
|
|
},
|
|
"scripts": {
|
|
"build:app:assets": "node ./scripts/build-app-assets.js",
|
|
"build:fonts-preview": "node ./scripts/build-fonts-preview.js",
|
|
"build:storybook": "(cd packages/ui && pnpm run build) && 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 frontend",
|
|
"build:renderer-benchmarks:runner": "clojure -M:dev:renderer-bench release bench-render-wasm-runner",
|
|
"build:renderer-benchmarks:pilot": "clojure -M:dev:renderer-bench release bench-render-wasm-pilot",
|
|
"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/ performance/ 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/ performance/ 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 --fail-level error --config-dir ../.clj-kondo --lint ../common/src src/ performance/ test/performance_tests/render_wasm/",
|
|
"lint:js": "exit 0",
|
|
"lint:renderer-benchmarks": "clj-kondo --config-dir ../.clj-kondo --lint performance/ test/performance_tests/render_wasm/",
|
|
"lint:scss": "pnpm exec stylelint '{src,resources}/**/*.scss'",
|
|
"build:test": "pnpm run build:wasm && clojure -M:dev:shadow-cljs compile test",
|
|
"build:renderer-benchmarks:tests": "clojure -M:dev:shadow-cljs compile performance-tests",
|
|
"test": "pnpm run build:test && node target/tests/test.js",
|
|
"test:quiet": "node ./scripts/test-quiet.js",
|
|
"test:renderer-benchmarks": "pnpm run build:renderer-benchmarks:tests && node target/performance-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": "../render-wasm/clean frontend",
|
|
"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 3451 -h 0.0.0.0 --no-open\" \"node ./scripts/watch-storybook.js\"",
|
|
"postinstall": "(cd ../plugins/libs/plugins-runtime; pnpm install; pnpm run build) && (cd packages/ui && 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": "penpot/svgo#3.3.0",
|
|
"@penpot/text-editor": "link:text-editor",
|
|
"@penpot/ua-parser": "penpot/ua-parser#1.0.0",
|
|
"@playwright/test": "1.63.0",
|
|
"@storybook/addon-docs": "10.6.1",
|
|
"@storybook/addon-themes": "10.6.1",
|
|
"@storybook/addon-vitest": "10.6.1",
|
|
"@storybook/react-vite": "10.6.1",
|
|
"@tokens-studio/sd-transforms": "2.0.3",
|
|
"@types/node": "^26.6.4",
|
|
"@vitest/browser": "5.0.3",
|
|
"@vitest/browser-playwright": "5.0.3",
|
|
"@vitest/coverage-v8": "5.0.3",
|
|
"@zip.js/zip.js": "2.8.34",
|
|
"autoprefixer": "^10.6.1",
|
|
"compression": "^1.8.2",
|
|
"concurrently": "^10.0.5",
|
|
"date-fns": "^4.4.0",
|
|
"esbuild": "^0.28.2",
|
|
"eventsource-parser": "^4.1.1",
|
|
"express": "^5.2.1",
|
|
"fancy-log": "^2.0.0",
|
|
"getopts": "^2.3.0",
|
|
"gettext-parser": "^9.1.1",
|
|
"highlight.js": "^11.12.0",
|
|
"js-beautify": "^2.0.3",
|
|
"jsdom": "^30.1.2",
|
|
"lodash": "^4.18.1",
|
|
"lodash.debounce": "^4.0.8",
|
|
"map-stream": "0.0.7",
|
|
"marked": "^18.1.0",
|
|
"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.3",
|
|
"playwright": "1.63.0",
|
|
"postcss": "^8.5.29",
|
|
"postcss-clean": "^1.2.2",
|
|
"postcss-modules": "^9.0.1",
|
|
"postcss-scss": "^4.0.9",
|
|
"prettier": "3.9.9",
|
|
"pretty-time": "^1.1.0",
|
|
"prop-types": "^15.8.1",
|
|
"randomcolor": "^0.6.2",
|
|
"react": "19.3.0",
|
|
"react-dom": "19.3.0",
|
|
"react-error-boundary": "^6.1.6",
|
|
"react-virtualized": "^9.22.6",
|
|
"rimraf": "^6.1.3",
|
|
"rxjs": "8.0.0-alpha.14",
|
|
"sass": "^1.105.1",
|
|
"sass-embedded": "^1.105.1",
|
|
"sax": "^1.6.1",
|
|
"scheduler": "^0.28.0",
|
|
"source-map-support": "^0.5.21",
|
|
"storybook": "10.6.1",
|
|
"style-dictionary": "5.5.5",
|
|
"stylelint": "^17.16.0",
|
|
"stylelint-config-standard-scss": "^17.0.0",
|
|
"stylelint-plugin-logical-css": "^2.1.0",
|
|
"stylelint-scss": "^7.3.0",
|
|
"svg-sprite": "^2.0.4",
|
|
"tdigest": "^0.1.3",
|
|
"tinycolor2": "^1.6.0",
|
|
"typescript": "^6.0.3",
|
|
"vite": "^8.3.3",
|
|
"vitest": "^5.0.3",
|
|
"wait-on": "^9.5.1",
|
|
"watcher": "^2.3.1",
|
|
"workerpool": "^10.0.3",
|
|
"xregexp": "^5.1.3"
|
|
},
|
|
"dependencies": {
|
|
"@penpot/ui": "link:packages/ui",
|
|
"react-aria-components": "^1.21.1"
|
|
}
|
|
}
|